summaryrefslogtreecommitdiffhomepage
path: root/packages/console
diff options
context:
space:
mode:
authorFrank <[email protected]>2026-03-27 18:21:00 -0400
committerFrank <[email protected]>2026-03-28 20:16:51 -0400
commit62ac45a9c93e4e2eaeca48289c3a895fa7db251b (patch)
tree2cb88a5e07e679a220aa5fb960a91130319b4520 /packages/console
parentf7c2ef876f3ba261380ae37bac7ad5805b61d80b (diff)
downloadopencode-62ac45a9c93e4e2eaeca48289c3a895fa7db251b.tar.gz
opencode-62ac45a9c93e4e2eaeca48289c3a895fa7db251b.zip
wip: zen
Diffstat (limited to 'packages/console')
-rw-r--r--packages/console/core/script/lookup-user.ts150
1 files changed, 63 insertions, 87 deletions
diff --git a/packages/console/core/script/lookup-user.ts b/packages/console/core/script/lookup-user.ts
index 0011ae052..db783aadd 100644
--- a/packages/console/core/script/lookup-user.ts
+++ b/packages/console/core/script/lookup-user.ts
@@ -18,8 +18,9 @@ import { ModelTable } from "../src/schema/model.sql.js"
// get input from command line
const identifier = process.argv[2]
+const verbose = process.argv[process.argv.length - 1] === "-v"
if (!identifier) {
- console.error("Usage: bun lookup-user.ts <email|workspaceID|apiKey>")
+ console.error("Usage: bun lookup-user.ts <email|workspaceID|apiKey> [-v]")
process.exit(1)
}
@@ -223,93 +224,68 @@ async function printWorkspace(workspaceID: string) {
),
)
- await printTable("28-Day Usage", (tx) =>
- tx
- .select({
- date: sql<string>`DATE(${UsageTable.timeCreated})`.as("date"),
- requests: sql<number>`COUNT(*)`.as("requests"),
- inputTokens: sql<number>`SUM(${UsageTable.inputTokens})`.as("input_tokens"),
- outputTokens: sql<number>`SUM(${UsageTable.outputTokens})`.as("output_tokens"),
- reasoningTokens: sql<number>`SUM(${UsageTable.reasoningTokens})`.as("reasoning_tokens"),
- cacheReadTokens: sql<number>`SUM(${UsageTable.cacheReadTokens})`.as("cache_read_tokens"),
- cacheWrite5mTokens: sql<number>`SUM(${UsageTable.cacheWrite5mTokens})`.as("cache_write_5m_tokens"),
- cacheWrite1hTokens: sql<number>`SUM(${UsageTable.cacheWrite1hTokens})`.as("cache_write_1h_tokens"),
- cost: sql<number>`SUM(${UsageTable.cost})`.as("cost"),
- })
- .from(UsageTable)
- .where(
- and(
- eq(UsageTable.workspaceID, workspace.id),
- sql`${UsageTable.timeCreated} >= DATE_SUB(NOW(), INTERVAL 28 DAY)`,
+ if (verbose) {
+ await printTable("28-Day Usage", (tx) =>
+ tx
+ .select({
+ date: sql<string>`DATE(${UsageTable.timeCreated})`.as("date"),
+ requests: sql<number>`COUNT(*)`.as("requests"),
+ inputTokens: sql<number>`SUM(${UsageTable.inputTokens})`.as("input_tokens"),
+ outputTokens: sql<number>`SUM(${UsageTable.outputTokens})`.as("output_tokens"),
+ reasoningTokens: sql<number>`SUM(${UsageTable.reasoningTokens})`.as("reasoning_tokens"),
+ cacheReadTokens: sql<number>`SUM(${UsageTable.cacheReadTokens})`.as("cache_read_tokens"),
+ cacheWrite5mTokens: sql<number>`SUM(${UsageTable.cacheWrite5mTokens})`.as("cache_write_5m_tokens"),
+ cacheWrite1hTokens: sql<number>`SUM(${UsageTable.cacheWrite1hTokens})`.as("cache_write_1h_tokens"),
+ cost: sql<number>`SUM(${UsageTable.cost})`.as("cost"),
+ })
+ .from(UsageTable)
+ .where(
+ and(
+ eq(UsageTable.workspaceID, workspace.id),
+ sql`${UsageTable.timeCreated} >= DATE_SUB(NOW(), INTERVAL 28 DAY)`,
+ ),
+ )
+ .groupBy(sql`DATE(${UsageTable.timeCreated})`)
+ .orderBy(sql`DATE(${UsageTable.timeCreated}) DESC`)
+ .then((rows) => {
+ const totalCost = rows.reduce((sum, r) => sum + Number(r.cost), 0)
+ const mapped = rows.map((row) => ({
+ ...row,
+ cost: `$${(Number(row.cost) / 100000000).toFixed(2)}`,
+ }))
+ if (mapped.length > 0) {
+ mapped.push({
+ date: "TOTAL",
+ requests: null as any,
+ inputTokens: null as any,
+ outputTokens: null as any,
+ reasoningTokens: null as any,
+ cacheReadTokens: null as any,
+ cacheWrite5mTokens: null as any,
+ cacheWrite1hTokens: null as any,
+ cost: `$${(totalCost / 100000000).toFixed(2)}`,
+ })
+ }
+ return mapped
+ }),
+ )
+ await printTable("Disabled Models", (tx) =>
+ tx
+ .select({
+ model: ModelTable.model,
+ timeCreated: ModelTable.timeCreated,
+ })
+ .from(ModelTable)
+ .where(eq(ModelTable.workspaceID, workspace.id))
+ .orderBy(sql`${ModelTable.timeCreated} DESC`)
+ .then((rows) =>
+ rows.map((row) => ({
+ model: row.model,
+ timeCreated: formatDate(row.timeCreated),
+ })),
),
- )
- .groupBy(sql`DATE(${UsageTable.timeCreated})`)
- .orderBy(sql`DATE(${UsageTable.timeCreated}) DESC`)
- .then((rows) => {
- const totalCost = rows.reduce((sum, r) => sum + Number(r.cost), 0)
- const mapped = rows.map((row) => ({
- ...row,
- cost: `$${(Number(row.cost) / 100000000).toFixed(2)}`,
- }))
- if (mapped.length > 0) {
- mapped.push({
- date: "TOTAL",
- requests: null as any,
- inputTokens: null as any,
- outputTokens: null as any,
- reasoningTokens: null as any,
- cacheReadTokens: null as any,
- cacheWrite5mTokens: null as any,
- cacheWrite1hTokens: null as any,
- cost: `$${(totalCost / 100000000).toFixed(2)}`,
- })
- }
- return mapped
- }),
- )
- /*
- await printTable("Usage", (tx) =>
- tx
- .select({
- model: UsageTable.model,
- provider: UsageTable.provider,
- inputTokens: UsageTable.inputTokens,
- outputTokens: UsageTable.outputTokens,
- reasoningTokens: UsageTable.reasoningTokens,
- cacheReadTokens: UsageTable.cacheReadTokens,
- cacheWrite5mTokens: UsageTable.cacheWrite5mTokens,
- cacheWrite1hTokens: UsageTable.cacheWrite1hTokens,
- cost: UsageTable.cost,
- timeCreated: UsageTable.timeCreated,
- })
- .from(UsageTable)
- .where(eq(UsageTable.workspaceID, workspace.id))
- .orderBy(sql`${UsageTable.timeCreated} DESC`)
- .limit(10)
- .then((rows) =>
- rows.map((row) => ({
- ...row,
- cost: `$${(row.cost / 100000000).toFixed(2)}`,
- })),
- ),
- )
- await printTable("Disabled Models", (tx) =>
- tx
- .select({
- model: ModelTable.model,
- timeCreated: ModelTable.timeCreated,
- })
- .from(ModelTable)
- .where(eq(ModelTable.workspaceID, workspace.id))
- .orderBy(sql`${ModelTable.timeCreated} DESC`)
- .then((rows) =>
- rows.map((row) => ({
- model: row.model,
- timeCreated: formatDate(row.timeCreated),
- })),
- ),
- )
- */
+ )
+ }
}
function formatMicroCents(value: number | null | undefined) {