codebuff 1.0.281 → 1.0.283
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-handlers/initialization-flow.d.ts +1 -0
- package/dist/cli-handlers/initialization-flow.js +24 -0
- package/dist/cli-handlers/initialization-flow.js.map +1 -0
- package/dist/cli-modules/command-processor.d.ts +2 -0
- package/dist/cli-modules/command-processor.js +112 -0
- package/dist/cli-modules/command-processor.js.map +1 -0
- package/dist/cli-modules/input-handler.d.ts +4 -0
- package/dist/cli-modules/input-handler.js +75 -0
- package/dist/cli-modules/input-handler.js.map +1 -0
- package/dist/cli-modules/readline-handler.d.ts +11 -0
- package/dist/cli-modules/readline-handler.js +158 -0
- package/dist/cli-modules/readline-handler.js.map +1 -0
- package/dist/cli-modules/signal-handler.d.ts +7 -0
- package/dist/cli-modules/signal-handler.js +128 -0
- package/dist/cli-modules/signal-handler.js.map +1 -0
- package/dist/cli-modules/types.d.ts +51 -0
- package/dist/cli-modules/types.js +3 -0
- package/dist/cli-modules/types.js.map +1 -0
- package/dist/cli-modules/websocket-handler.d.ts +16 -0
- package/dist/cli-modules/websocket-handler.js +53 -0
- package/dist/cli-modules/websocket-handler.js.map +1 -0
- package/dist/cli.js +8 -6
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +5 -1
- package/dist/client.js.map +1 -1
- package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts +12 -0
- package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts.map +1 -0
- package/dist/code-map/__mocks__/tree-sitter-typescript.js +14 -0
- package/dist/code-map/__mocks__/tree-sitter-typescript.js.map +1 -0
- package/dist/code-map/__mocks__/wasm-mock.d.ts +2 -0
- package/dist/code-map/__mocks__/wasm-mock.d.ts.map +1 -0
- package/dist/code-map/__mocks__/wasm-mock.js +3 -0
- package/dist/code-map/__mocks__/wasm-mock.js.map +1 -0
- package/dist/code-map/__tests__/parse.test.d.ts +2 -0
- package/dist/code-map/__tests__/parse.test.d.ts.map +1 -0
- package/dist/code-map/__tests__/parse.test.js +231 -0
- package/dist/code-map/__tests__/parse.test.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/consumer.d.ts +2 -0
- package/dist/code-map/__tests__/test-langs/consumer.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/consumer.js +6 -0
- package/dist/code-map/__tests__/test-langs/consumer.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/empty.d.ts +1 -0
- package/dist/code-map/__tests__/test-langs/empty.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/empty.js +2 -0
- package/dist/code-map/__tests__/test-langs/empty.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/test.d.ts +12 -0
- package/dist/code-map/__tests__/test-langs/test.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/test.js +23 -0
- package/dist/code-map/__tests__/test-langs/test.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/unused.d.ts +2 -0
- package/dist/code-map/__tests__/test-langs/unused.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/unused.js +7 -0
- package/dist/code-map/__tests__/test-langs/unused.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/utils1.d.ts +2 -0
- package/dist/code-map/__tests__/test-langs/utils1.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/utils1.js +7 -0
- package/dist/code-map/__tests__/test-langs/utils1.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/utils2.d.ts +2 -0
- package/dist/code-map/__tests__/test-langs/utils2.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/utils2.js +8 -0
- package/dist/code-map/__tests__/test-langs/utils2.js.map +1 -0
- package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts +2 -0
- package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts.map +1 -0
- package/dist/code-map/__tests__/tree-sitter-minimal.test.js +79 -0
- package/dist/code-map/__tests__/tree-sitter-minimal.test.js.map +1 -0
- package/dist/code-map/jest.config.d.ts +4 -0
- package/dist/code-map/jest.config.d.ts.map +1 -0
- package/dist/code-map/jest.config.js +18 -0
- package/dist/code-map/jest.config.js.map +1 -0
- package/dist/code-map/parse.d.ts.map +1 -1
- package/dist/code-map/parse.js.map +1 -1
- package/dist/code-map/parse.test.d.ts +2 -0
- package/dist/code-map/parse.test.d.ts.map +1 -0
- package/dist/code-map/parse.test.js +218 -0
- package/dist/code-map/parse.test.js.map +1 -0
- package/dist/code-map/scripts/tree-sitter-test.cjs +27 -0
- package/dist/code-map/scripts/tree-sitter-test.cjs.map +1 -0
- package/dist/code-map/scripts/tree-sitter-test.d.cts +2 -0
- package/dist/code-map/scripts/tree-sitter-test.d.cts.map +1 -0
- package/dist/code-map/scripts/tree-sitter-test.d.ts +2 -0
- package/dist/code-map/scripts/tree-sitter-test.d.ts.map +1 -0
- package/dist/code-map/scripts/tree-sitter-test.js +54 -0
- package/dist/code-map/scripts/tree-sitter-test.js.map +1 -0
- package/dist/code-map/test-parser.d.ts +2 -0
- package/dist/code-map/test-parser.d.ts.map +1 -0
- package/dist/code-map/test-parser.js +42 -0
- package/dist/code-map/test-parser.js.map +1 -0
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/actions.d.ts +82 -82
- package/dist/common/bigquery/client.d.ts +15 -0
- package/dist/common/bigquery/client.js +265 -0
- package/dist/common/bigquery/client.js.map +1 -0
- package/dist/common/bigquery/schema.d.ts +55 -0
- package/dist/common/bigquery/schema.js +24 -0
- package/dist/common/bigquery/schema.js.map +1 -0
- package/dist/common/constants/analytics-events.d.ts +2 -1
- package/dist/common/constants/analytics-events.js +2 -1
- package/dist/common/constants/analytics-events.js.map +1 -1
- package/dist/common/constants/tools.d.ts +0 -1
- package/dist/common/constants/tools.js +1 -3
- package/dist/common/constants/tools.js.map +1 -1
- package/dist/common/db/schema.d.ts +4 -4
- package/dist/common/types/agent-state.d.ts +12 -12
- package/dist/common/types/grant.d.ts +1 -1
- package/dist/common/types/grant.js.map +1 -1
- package/dist/common/types/usage.d.ts +7 -7
- package/dist/common/types/usage.js +2 -1
- package/dist/common/types/usage.js.map +1 -1
- package/dist/common/util/__tests__/saxy.test.js +182 -48
- package/dist/common/util/__tests__/saxy.test.js.map +1 -1
- package/dist/common/util/file-metadata.d.ts +9 -0
- package/dist/common/util/file-metadata.js +24 -0
- package/dist/common/util/file-metadata.js.map +1 -0
- package/dist/common/util/saxy.d.ts +0 -1
- package/dist/common/util/saxy.js +5 -15
- package/dist/common/util/saxy.js.map +1 -1
- package/dist/common/websockets/websocket-schema.d.ts +150 -150
- package/dist/display.js.map +1 -1
- package/dist/index.js +2 -56
- package/dist/tool-handlers.js +1 -6
- package/dist/tool-handlers.js.map +1 -1
- package/dist/utils/__tests__/tool-renderers.test.js +4 -6
- package/dist/utils/__tests__/tool-renderers.test.js.map +1 -1
- package/dist/utils/terminal.js +1 -1
- package/dist/utils/terminal.js.map +1 -1
- package/dist/utils/tool-renderers.js +3 -6
- package/dist/utils/tool-renderers.js.map +1 -1
- package/package.json +1 -1
- package/dist/common/__tests__/project-file-tree.test.d.ts +0 -1
- package/dist/common/__tests__/project-file-tree.test.js +0 -251
- package/dist/common/__tests__/project-file-tree.test.js.map +0 -1
- package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +0 -119
- package/dist/common/util/process-stream.d.ts +0 -7
- package/dist/common/util/process-stream.js +0 -162
- package/dist/common/util/process-stream.js.map +0 -1
- package/dist/utils/__tests__/__snapshots__/background-process-manager.test.js.snap +0 -137
- package/dist/utils/__tests__/file-paths.test.d.ts +0 -1
- package/dist/utils/__tests__/file-paths.test.js +0 -37
- package/dist/utils/__tests__/file-paths.test.js.map +0 -1
- package/dist/utils/__tests__/path.test.d.ts +0 -1
- package/dist/utils/__tests__/path.test.js +0 -37
- package/dist/utils/__tests__/path.test.js.map +0 -1
- package/dist/utils/file-paths.d.ts +0 -9
- package/dist/utils/file-paths.js +0 -24
- package/dist/utils/file-paths.js.map +0 -1
- package/dist/utils/path.d.ts +0 -9
- package/dist/utils/path.js +0 -27
- package/dist/utils/path.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { GetRelevantFilesTrace, Relabel, Trace } from './schema';
|
|
2
|
+
export declare function setupBigQuery(dataset?: string): Promise<void>;
|
|
3
|
+
export declare function insertTrace(trace: Trace, dataset?: string): Promise<boolean>;
|
|
4
|
+
export declare function insertRelabel(relabel: Relabel, dataset?: string): Promise<boolean>;
|
|
5
|
+
export declare function getRecentTraces(limit?: number, dataset?: string): Promise<Trace[]>;
|
|
6
|
+
export declare function getRecentRelabels(limit?: number, dataset?: string): Promise<Relabel[]>;
|
|
7
|
+
export declare function getTracesWithoutRelabels(model: string, limit?: number, userId?: string | undefined, dataset?: string): Promise<GetRelevantFilesTrace[]>;
|
|
8
|
+
export declare function getTracesWithRelabels(model: string, limit?: number, dataset?: string): Promise<{
|
|
9
|
+
trace: GetRelevantFilesTrace;
|
|
10
|
+
relabel: Relabel;
|
|
11
|
+
}[]>;
|
|
12
|
+
export declare function getTracesAndRelabelsForUser(userId: string, limit?: number, dataset?: string): Promise<{
|
|
13
|
+
trace: GetRelevantFilesTrace;
|
|
14
|
+
relabels: Relabel[];
|
|
15
|
+
}[]>;
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupBigQuery = setupBigQuery;
|
|
4
|
+
exports.insertTrace = insertTrace;
|
|
5
|
+
exports.insertRelabel = insertRelabel;
|
|
6
|
+
exports.getRecentTraces = getRecentTraces;
|
|
7
|
+
exports.getRecentRelabels = getRecentRelabels;
|
|
8
|
+
exports.getTracesWithoutRelabels = getTracesWithoutRelabels;
|
|
9
|
+
exports.getTracesWithRelabels = getTracesWithRelabels;
|
|
10
|
+
exports.getTracesAndRelabelsForUser = getTracesAndRelabelsForUser;
|
|
11
|
+
const bigquery_1 = require("@google-cloud/bigquery");
|
|
12
|
+
const logger_1 = require("../util/logger");
|
|
13
|
+
const schema_1 = require("./schema");
|
|
14
|
+
const DATASET = process.env.NEXT_PUBLIC_CB_ENVIRONMENT === 'production'
|
|
15
|
+
? 'codebuff_data'
|
|
16
|
+
: 'codebuff_data_dev';
|
|
17
|
+
const TRACES_TABLE = 'traces';
|
|
18
|
+
const RELABELS_TABLE = 'relabels';
|
|
19
|
+
// Create a single BigQuery client instance to be used by all functions
|
|
20
|
+
let client = null;
|
|
21
|
+
function getClient() {
|
|
22
|
+
if (!client) {
|
|
23
|
+
throw new Error('BigQuery client not initialized. Call setupBigQuery first.');
|
|
24
|
+
}
|
|
25
|
+
return client;
|
|
26
|
+
}
|
|
27
|
+
async function setupBigQuery(dataset = DATASET) {
|
|
28
|
+
try {
|
|
29
|
+
logger_1.logger.info('Creating BigQuery client...');
|
|
30
|
+
client = new bigquery_1.BigQuery();
|
|
31
|
+
logger_1.logger.info('BigQuery client created, initializing dataset...');
|
|
32
|
+
// Ensure dataset exists
|
|
33
|
+
const [ds] = await client.dataset(dataset).get({ autoCreate: true });
|
|
34
|
+
logger_1.logger.info({ dataset }, 'Dataset initialized');
|
|
35
|
+
// Ensure tables exist
|
|
36
|
+
logger_1.logger.info('Creating/verifying tables...');
|
|
37
|
+
await ds.table(TRACES_TABLE).get({
|
|
38
|
+
autoCreate: true,
|
|
39
|
+
schema: schema_1.TRACES_SCHEMA,
|
|
40
|
+
timePartitioning: {
|
|
41
|
+
type: 'MONTH',
|
|
42
|
+
field: 'created_at',
|
|
43
|
+
},
|
|
44
|
+
clustering: {
|
|
45
|
+
fields: ['user_id', 'agent_step_id'],
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
await ds.table(RELABELS_TABLE).get({
|
|
49
|
+
autoCreate: true,
|
|
50
|
+
schema: schema_1.RELABELS_SCHEMA,
|
|
51
|
+
timePartitioning: {
|
|
52
|
+
type: 'MONTH',
|
|
53
|
+
field: 'created_at',
|
|
54
|
+
},
|
|
55
|
+
clustering: {
|
|
56
|
+
fields: ['user_id', 'agent_step_id'],
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
logger_1.logger.info('Tables initialized successfully');
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
logger_1.logger.error({
|
|
63
|
+
error,
|
|
64
|
+
stack: error.stack,
|
|
65
|
+
message: error.message,
|
|
66
|
+
name: error.name,
|
|
67
|
+
code: error.code,
|
|
68
|
+
details: error.details,
|
|
69
|
+
}, 'Failed to initialize BigQuery');
|
|
70
|
+
throw error; // Re-throw to be caught by caller
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async function insertTrace(trace, dataset = DATASET) {
|
|
74
|
+
try {
|
|
75
|
+
// Create a copy of the trace and stringify payload if needed
|
|
76
|
+
const traceToInsert = {
|
|
77
|
+
...trace,
|
|
78
|
+
payload: trace.payload && typeof trace.payload !== 'string'
|
|
79
|
+
? JSON.stringify(trace.payload)
|
|
80
|
+
: trace.payload,
|
|
81
|
+
};
|
|
82
|
+
await getClient().dataset(dataset).table(TRACES_TABLE).insert(traceToInsert);
|
|
83
|
+
logger_1.logger.debug({ traceId: trace.id, type: trace.type }, 'Inserted trace into BigQuery');
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
logger_1.logger.error({ error, traceId: trace.id }, 'Failed to insert trace into BigQuery');
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async function insertRelabel(relabel, dataset = DATASET) {
|
|
92
|
+
try {
|
|
93
|
+
// Stringify payload if needed
|
|
94
|
+
const relabelToInsert = {
|
|
95
|
+
...relabel,
|
|
96
|
+
payload: relabel.payload && typeof relabel.payload !== 'string'
|
|
97
|
+
? JSON.stringify(relabel.payload)
|
|
98
|
+
: relabel.payload,
|
|
99
|
+
};
|
|
100
|
+
await getClient().dataset(dataset).table(RELABELS_TABLE).insert(relabelToInsert);
|
|
101
|
+
logger_1.logger.debug({ relabelId: relabel.id }, 'Inserted relabel into BigQuery');
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
logger_1.logger.error({ error, relabelId: relabel.id }, 'Failed to insert relabel into BigQuery');
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async function getRecentTraces(limit = 10, dataset = DATASET) {
|
|
110
|
+
const query = `
|
|
111
|
+
SELECT * FROM ${dataset}.${TRACES_TABLE}
|
|
112
|
+
ORDER BY created_at DESC
|
|
113
|
+
LIMIT ${limit}
|
|
114
|
+
`;
|
|
115
|
+
const [rows] = await getClient().query(query);
|
|
116
|
+
// Parse the payload as JSON if it's a string
|
|
117
|
+
return rows.map((row) => ({
|
|
118
|
+
...row,
|
|
119
|
+
payload: typeof row.payload === 'string' ? JSON.parse(row.payload) : row.payload,
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
async function getRecentRelabels(limit = 10, dataset = DATASET) {
|
|
123
|
+
const query = `
|
|
124
|
+
SELECT * FROM ${dataset}.${RELABELS_TABLE}
|
|
125
|
+
ORDER BY created_at DESC
|
|
126
|
+
LIMIT ${limit}
|
|
127
|
+
`;
|
|
128
|
+
const [rows] = await getClient().query(query);
|
|
129
|
+
// Parse the payload as JSON if it's a string
|
|
130
|
+
return rows.map((row) => ({
|
|
131
|
+
...row,
|
|
132
|
+
payload: typeof row.payload === 'string' ? JSON.parse(row.payload) : row.payload,
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
async function getTracesWithoutRelabels(model, limit = 100, userId = undefined, dataset = DATASET) {
|
|
136
|
+
// TODO: Optimize query, maybe only get traces in last 30 days etc
|
|
137
|
+
const query = `
|
|
138
|
+
SELECT t.*
|
|
139
|
+
FROM \`${dataset}.${TRACES_TABLE}\` t
|
|
140
|
+
LEFT JOIN (
|
|
141
|
+
SELECT r.agent_step_id, r.user_id, JSON_EXTRACT_SCALAR(r.payload, '$.user_input_id') as user_input_id
|
|
142
|
+
FROM \`${dataset}.${RELABELS_TABLE}\` r
|
|
143
|
+
WHERE r.model = '${model}'
|
|
144
|
+
${userId ? `AND r.user_id = '${userId}'` : ''}
|
|
145
|
+
) r
|
|
146
|
+
ON t.agent_step_id = r.agent_step_id
|
|
147
|
+
AND t.user_id = r.user_id
|
|
148
|
+
AND JSON_EXTRACT_SCALAR(t.payload, '$.user_input_id') = r.user_input_id
|
|
149
|
+
WHERE t.type = 'get-relevant-files'
|
|
150
|
+
AND r.agent_step_id IS NULL
|
|
151
|
+
${userId ? `AND t.user_id = '${userId}'` : ''}
|
|
152
|
+
ORDER BY t.created_at DESC
|
|
153
|
+
LIMIT ${limit}
|
|
154
|
+
`;
|
|
155
|
+
const [rows] = await getClient().query(query);
|
|
156
|
+
// Parse the payload as JSON if it's a string
|
|
157
|
+
return rows.map((row) => ({
|
|
158
|
+
...row,
|
|
159
|
+
payload: typeof row.payload === 'string' ? JSON.parse(row.payload) : row.payload,
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
async function getTracesWithRelabels(model, limit = 100, dataset = DATASET) {
|
|
163
|
+
// Get traces that DO have matching relabels for the specified model
|
|
164
|
+
const query = `
|
|
165
|
+
SELECT
|
|
166
|
+
ANY_VALUE(t) as trace,
|
|
167
|
+
ARRAY_AGG(r ORDER BY r.created_at DESC LIMIT 1)[OFFSET(0)] as relabel
|
|
168
|
+
FROM \`${dataset}.${TRACES_TABLE}\` t
|
|
169
|
+
INNER JOIN (
|
|
170
|
+
SELECT *
|
|
171
|
+
FROM \`${dataset}.${RELABELS_TABLE}\` r
|
|
172
|
+
WHERE r.model = '${model}'
|
|
173
|
+
) r
|
|
174
|
+
ON t.agent_step_id = r.agent_step_id
|
|
175
|
+
AND t.user_id = r.user_id
|
|
176
|
+
AND JSON_EXTRACT_SCALAR(t.payload, '$.user_input_id') = JSON_EXTRACT_SCALAR(r.payload, '$.user_input_id')
|
|
177
|
+
WHERE t.type = 'get-relevant-files'
|
|
178
|
+
AND JSON_EXTRACT_SCALAR(t.payload, '$.output') IS NOT NULL
|
|
179
|
+
AND JSON_EXTRACT_SCALAR(r.payload, '$.output') IS NOT NULL
|
|
180
|
+
GROUP BY t.agent_step_id
|
|
181
|
+
ORDER BY MAX(t.created_at) DESC
|
|
182
|
+
LIMIT ${limit}
|
|
183
|
+
`;
|
|
184
|
+
const [rows] = await getClient().query(query);
|
|
185
|
+
// Filter out any results where either trace or relabel data is missing
|
|
186
|
+
const res = rows
|
|
187
|
+
.filter((row) => row.trace && row.relabel)
|
|
188
|
+
.map((row) => ({
|
|
189
|
+
trace: row.trace,
|
|
190
|
+
relabel: row.relabel,
|
|
191
|
+
}));
|
|
192
|
+
// Parse the payload as JSON if it's a string
|
|
193
|
+
return res.map((row) => ({
|
|
194
|
+
...row,
|
|
195
|
+
trace: {
|
|
196
|
+
...row.trace,
|
|
197
|
+
payload: typeof row.trace.payload === 'string'
|
|
198
|
+
? JSON.parse(row.trace.payload)
|
|
199
|
+
: row.trace.payload,
|
|
200
|
+
},
|
|
201
|
+
relabel: {
|
|
202
|
+
...row.relabel,
|
|
203
|
+
payload: typeof row.relabel.payload === 'string'
|
|
204
|
+
? JSON.parse(row.relabel.payload)
|
|
205
|
+
: row.relabel.payload,
|
|
206
|
+
},
|
|
207
|
+
}));
|
|
208
|
+
}
|
|
209
|
+
async function getTracesAndRelabelsForUser(userId, limit = 50, dataset = DATASET) {
|
|
210
|
+
// Get recent traces for the user and any associated relabels
|
|
211
|
+
const query = `
|
|
212
|
+
WITH traces AS (
|
|
213
|
+
SELECT
|
|
214
|
+
id,
|
|
215
|
+
agent_step_id,
|
|
216
|
+
user_id,
|
|
217
|
+
created_at,
|
|
218
|
+
type,
|
|
219
|
+
payload
|
|
220
|
+
FROM \`${dataset}.${TRACES_TABLE}\`
|
|
221
|
+
WHERE user_id = '${userId}' AND type = 'get-relevant-files'
|
|
222
|
+
ORDER BY created_at DESC
|
|
223
|
+
LIMIT ${limit}
|
|
224
|
+
)
|
|
225
|
+
SELECT
|
|
226
|
+
t.id,
|
|
227
|
+
ANY_VALUE(t.agent_step_id) as agent_step_id,
|
|
228
|
+
ANY_VALUE(t.user_id) as user_id,
|
|
229
|
+
ANY_VALUE(t.created_at) as created_at,
|
|
230
|
+
ANY_VALUE(t.type) as type,
|
|
231
|
+
ANY_VALUE(t.payload) as payload,
|
|
232
|
+
ARRAY_AGG(r IGNORE NULLS) as relabels
|
|
233
|
+
FROM traces t
|
|
234
|
+
LEFT JOIN \`${dataset}.${RELABELS_TABLE}\` r
|
|
235
|
+
ON t.agent_step_id = r.agent_step_id
|
|
236
|
+
AND t.user_id = r.user_id
|
|
237
|
+
AND JSON_EXTRACT_SCALAR(t.payload, '$.user_input_id') = JSON_EXTRACT_SCALAR(r.payload, '$.user_input_id')
|
|
238
|
+
GROUP BY t.id
|
|
239
|
+
ORDER BY ANY_VALUE(t.created_at) DESC
|
|
240
|
+
`;
|
|
241
|
+
const [rows] = await getClient().query(query);
|
|
242
|
+
// Process and parse the results
|
|
243
|
+
return rows.map((row) => {
|
|
244
|
+
// Create trace object from individual fields
|
|
245
|
+
const trace = {
|
|
246
|
+
id: row.id,
|
|
247
|
+
agent_step_id: row.agent_step_id,
|
|
248
|
+
user_id: row.user_id,
|
|
249
|
+
created_at: row.created_at,
|
|
250
|
+
type: row.type,
|
|
251
|
+
payload: typeof row.payload === 'string' ? JSON.parse(row.payload) : row.payload,
|
|
252
|
+
};
|
|
253
|
+
// Parse relabel payloads (if any exist)
|
|
254
|
+
const relabels = row.relabels && row.relabels.length > 0
|
|
255
|
+
? row.relabels.map((relabel) => ({
|
|
256
|
+
...relabel,
|
|
257
|
+
payload: typeof relabel.payload === 'string'
|
|
258
|
+
? JSON.parse(relabel.payload)
|
|
259
|
+
: relabel.payload,
|
|
260
|
+
}))
|
|
261
|
+
: [];
|
|
262
|
+
return { trace, relabels };
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/bigquery/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { TableSchema } from '@google-cloud/bigquery';
|
|
2
|
+
interface BaseEvent {
|
|
3
|
+
id: string;
|
|
4
|
+
agent_step_id: string;
|
|
5
|
+
user_id: string;
|
|
6
|
+
}
|
|
7
|
+
interface BasePayload {
|
|
8
|
+
user_input_id: string;
|
|
9
|
+
client_session_id: string;
|
|
10
|
+
fingerprint_id: string;
|
|
11
|
+
}
|
|
12
|
+
export type TraceType = 'get-relevant-files' | 'file-trees' | 'agent-response';
|
|
13
|
+
export interface BaseTrace extends BaseEvent {
|
|
14
|
+
created_at: Date;
|
|
15
|
+
type: TraceType;
|
|
16
|
+
payload: unknown;
|
|
17
|
+
}
|
|
18
|
+
export interface GetRelevantFilesPayload extends BasePayload {
|
|
19
|
+
messages: unknown;
|
|
20
|
+
system: unknown;
|
|
21
|
+
output: string;
|
|
22
|
+
request_type: string;
|
|
23
|
+
cost_mode: string;
|
|
24
|
+
model?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface GetRelevantFilesTrace extends BaseTrace {
|
|
27
|
+
type: 'get-relevant-files';
|
|
28
|
+
payload: GetRelevantFilesPayload;
|
|
29
|
+
}
|
|
30
|
+
interface FileTreePayload extends BasePayload {
|
|
31
|
+
filetrees: Record<number, string>;
|
|
32
|
+
}
|
|
33
|
+
export interface FileTreeTrace extends BaseTrace {
|
|
34
|
+
type: 'file-trees';
|
|
35
|
+
payload: FileTreePayload;
|
|
36
|
+
}
|
|
37
|
+
interface AgentResponsePayload extends BasePayload {
|
|
38
|
+
output: string;
|
|
39
|
+
}
|
|
40
|
+
export interface AgentResponseTrace extends BaseTrace {
|
|
41
|
+
type: 'agent-response';
|
|
42
|
+
payload: AgentResponsePayload;
|
|
43
|
+
}
|
|
44
|
+
export type Trace = GetRelevantFilesTrace | FileTreeTrace | AgentResponseTrace;
|
|
45
|
+
export declare const TRACES_SCHEMA: TableSchema;
|
|
46
|
+
interface RelabelPayload extends BasePayload {
|
|
47
|
+
output: string;
|
|
48
|
+
}
|
|
49
|
+
export interface Relabel extends BaseEvent {
|
|
50
|
+
created_at: Date;
|
|
51
|
+
model: string;
|
|
52
|
+
payload: RelabelPayload;
|
|
53
|
+
}
|
|
54
|
+
export declare const RELABELS_SCHEMA: TableSchema;
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RELABELS_SCHEMA = exports.TRACES_SCHEMA = void 0;
|
|
4
|
+
exports.TRACES_SCHEMA = {
|
|
5
|
+
fields: [
|
|
6
|
+
{ name: 'id', type: 'STRING', mode: 'REQUIRED' }, // UUID
|
|
7
|
+
{ name: 'agent_step_id', type: 'STRING', mode: 'REQUIRED' }, // Used to link traces together within a single agent step
|
|
8
|
+
{ name: 'user_id', type: 'STRING', mode: 'REQUIRED' }, // user ID
|
|
9
|
+
{ name: 'created_at', type: 'TIMESTAMP', mode: 'REQUIRED' },
|
|
10
|
+
{ name: 'type', type: 'STRING', mode: 'REQUIRED' },
|
|
11
|
+
{ name: 'payload', type: 'JSON', mode: 'REQUIRED' },
|
|
12
|
+
],
|
|
13
|
+
};
|
|
14
|
+
exports.RELABELS_SCHEMA = {
|
|
15
|
+
fields: [
|
|
16
|
+
{ name: 'id', type: 'STRING', mode: 'REQUIRED' }, // UUID
|
|
17
|
+
{ name: 'agent_step_id', type: 'STRING', mode: 'REQUIRED' }, // Used to link traces together within a single agent step
|
|
18
|
+
{ name: 'user_id', type: 'STRING', mode: 'REQUIRED' }, // user ID
|
|
19
|
+
{ name: 'created_at', type: 'TIMESTAMP', mode: 'REQUIRED' },
|
|
20
|
+
{ name: 'model', type: 'STRING', mode: 'REQUIRED' },
|
|
21
|
+
{ name: 'payload', type: 'JSON', mode: 'REQUIRED' },
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/bigquery/schema.ts"],"names":[],"mappings":";;;AA4Da,QAAA,aAAa,GAAgB;IACxC,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO;QACzD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,0DAA0D;QACvH,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU;QACjE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;QAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE;QAClD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;KACpD;CACF,CAAA;AAYY,QAAA,eAAe,GAAgB;IAC1C,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO;QACzD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,0DAA0D;QACvH,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU;QACjE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;QAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;KACpD;CACF,CAAA"}
|
|
@@ -12,7 +12,8 @@ export declare enum AnalyticsEvent {
|
|
|
12
12
|
LOGIN = "cli.login",
|
|
13
13
|
TERMINAL_COMMAND_COMPLETED = "cli.terminal_command_completed",
|
|
14
14
|
MALFORMED_PROMPT_RESPONSE = "cli.malformed_prompt_response",
|
|
15
|
-
|
|
15
|
+
USER_INPUT = "backend.user_input",
|
|
16
|
+
AGENT_STEP = "backend.agent_step",
|
|
16
17
|
CREDIT_GRANT = "backend.credit_grant",
|
|
17
18
|
CREDIT_CONSUMED = "backend.credit_consumed",
|
|
18
19
|
TOOL_USE = "backend.tool_use",
|
|
@@ -18,7 +18,8 @@ var AnalyticsEvent;
|
|
|
18
18
|
AnalyticsEvent["TERMINAL_COMMAND_COMPLETED"] = "cli.terminal_command_completed";
|
|
19
19
|
AnalyticsEvent["MALFORMED_PROMPT_RESPONSE"] = "cli.malformed_prompt_response";
|
|
20
20
|
// Backend
|
|
21
|
-
AnalyticsEvent["
|
|
21
|
+
AnalyticsEvent["USER_INPUT"] = "backend.user_input";
|
|
22
|
+
AnalyticsEvent["AGENT_STEP"] = "backend.agent_step";
|
|
22
23
|
AnalyticsEvent["CREDIT_GRANT"] = "backend.credit_grant";
|
|
23
24
|
AnalyticsEvent["CREDIT_CONSUMED"] = "backend.credit_consumed";
|
|
24
25
|
AnalyticsEvent["TOOL_USE"] = "backend.tool_use";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-events.js","sourceRoot":"","sources":["../../src/constants/analytics-events.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"analytics-events.js","sourceRoot":"","sources":["../../src/constants/analytics-events.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,cAsBX;AAtBD,WAAY,cAAc;IACxB,MAAM;IACN,mDAAiC,CAAA;IACjC,iFAA+D,CAAA;IAC/D,uEAAqD,CAAA;IACrD,mGAAiF,CAAA;IACjF,2EAAyD,CAAA;IACzD,2DAAyC,CAAA;IACzC,yEAAuD,CAAA;IACvD,qCAAmB,CAAA;IACnB,+EAA6D,CAAA;IAC7D,6EAA2D,CAAA;IAE3D,UAAU;IACV,mDAAiC,CAAA;IACjC,mDAAiC,CAAA;IACjC,uDAAqC,CAAA;IACrC,6DAA2C,CAAA;IAC3C,+CAA6B,CAAA;IAE7B,MAAM;IACN,uCAAqB,CAAA;AACvB,CAAC,EAtBW,cAAc,8BAAd,cAAc,QAsBzB"}
|
|
@@ -17,9 +17,7 @@ exports.toolSchema = {
|
|
|
17
17
|
think_deeply: ['thought'],
|
|
18
18
|
create_plan: ['path', 'plan'],
|
|
19
19
|
browser_logs: ['type', 'url', 'waitUntil'],
|
|
20
|
-
|
|
21
|
-
await_tool_results: [], // No parameters
|
|
22
|
-
end_turn: [], // No parameters
|
|
20
|
+
end_turn: [],
|
|
23
21
|
};
|
|
24
22
|
// List of all available tools
|
|
25
23
|
exports.TOOL_LIST = Object.keys(exports.toolSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/constants/tools.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,yCAAyC;IACzC,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;IACzD,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;IAE/C,kBAAkB;IAClB,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC/B,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;IACnC,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,UAAU,EAAE,CAAC,aAAa,CAAC;IAE3B,sBAAsB;IACtB,WAAW,EAAE,CAAC,SAAS,CAAC;IACxB,oBAAoB,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,CAAC;IAE3E,iBAAiB;IACjB,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAE7B,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC;IAE1C,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/constants/tools.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,yCAAyC;IACzC,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;IACzD,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;IAE/C,kBAAkB;IAClB,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC/B,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;IACnC,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,UAAU,EAAE,CAAC,aAAa,CAAC;IAE3B,sBAAsB;IACtB,WAAW,EAAE,CAAC,SAAS,CAAC;IACxB,oBAAoB,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,CAAC;IAE3E,iBAAiB;IACjB,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAE7B,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC;IAE1C,QAAQ,EAAE,EAAE;CACb,CAAA;AAID,8BAA8B;AACjB,QAAA,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAU,CAAe,CAAA;AAEvD,MAAM,iBAAiB,GAAG,CAC/B,QAAkB,EAClB,MAA8B,EAC9B,EAAE;IACF,MAAM,OAAO,GAAG,IAAI,QAAQ,GAAG,CAAA;IAC/B,MAAM,QAAQ,GAAG,KAAK,QAAQ,GAAG,CAAA;IAEjC,0CAA0C;IAC1C,MAAM,UAAU,GAAG,kBAAU,CAAC,QAAQ,CAAa,CAAA;IAEnD,4DAA4D;IAC5D,MAAM,aAAa,GAAG,UAAU;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,iDAAiD;SACpF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,CAAA;IAE1D,wDAAwD;IACxD,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC5C,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,GAAG,CAAC,CAAA;IAE3D,4CAA4C;IAC5C,MAAM,YAAY,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvE,OAAO,YAAY;QACjB,CAAC,CAAC,GAAG,OAAO,KAAK,YAAY,KAAK,QAAQ,EAAE;QAC5C,CAAC,CAAC,GAAG,OAAO,GAAG,QAAQ,EAAE,CAAA;AAC7B,CAAC,CAAA;AA1BY,QAAA,iBAAiB,qBA0B7B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const ReferralStatus: import("drizzle-orm/pg-core").PgEnum<[import("../types/referral").ReferralStatus, ...import("../types/referral").ReferralStatus[]]>;
|
|
2
2
|
export declare const apiKeyTypeEnum: import("drizzle-orm/pg-core").PgEnum<["anthropic", "gemini", "openai"]>;
|
|
3
|
-
export declare const grantTypeEnum: import("drizzle-orm/pg-core").PgEnum<[
|
|
3
|
+
export declare const grantTypeEnum: import("drizzle-orm/pg-core").PgEnum<["free", ...("free" | "referral" | "purchase" | "admin")[]]>;
|
|
4
4
|
export type GrantType = (typeof grantTypeEnum.enumValues)[number];
|
|
5
5
|
export declare const user: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
6
6
|
name: "user";
|
|
@@ -569,14 +569,14 @@ export declare const creditLedger: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
569
569
|
tableName: "credit_ledger";
|
|
570
570
|
dataType: "string";
|
|
571
571
|
columnType: "PgEnumColumn";
|
|
572
|
-
data:
|
|
572
|
+
data: "free" | "referral" | "purchase" | "admin";
|
|
573
573
|
driverParam: string;
|
|
574
574
|
notNull: true;
|
|
575
575
|
hasDefault: false;
|
|
576
576
|
isPrimaryKey: false;
|
|
577
577
|
isAutoincrement: false;
|
|
578
578
|
hasRuntimeDefault: false;
|
|
579
|
-
enumValues: [
|
|
579
|
+
enumValues: ["free", ...("free" | "referral" | "purchase" | "admin")[]];
|
|
580
580
|
baseColumn: never;
|
|
581
581
|
identity: undefined;
|
|
582
582
|
generated: undefined;
|
|
@@ -1385,7 +1385,7 @@ export declare const encryptedApiKeys: import("drizzle-orm/pg-core").PgTableWith
|
|
|
1385
1385
|
tableName: "encrypted_api_keys";
|
|
1386
1386
|
dataType: "string";
|
|
1387
1387
|
columnType: "PgEnumColumn";
|
|
1388
|
-
data: "
|
|
1388
|
+
data: "anthropic" | "gemini" | "openai";
|
|
1389
1389
|
driverParam: string;
|
|
1390
1390
|
notNull: true;
|
|
1391
1391
|
hasDefault: false;
|
|
@@ -179,16 +179,16 @@ export declare const AgentStateSchema: z.ZodObject<{
|
|
|
179
179
|
type: "ephemeral";
|
|
180
180
|
}>>;
|
|
181
181
|
}, "strip", z.ZodTypeAny, {
|
|
182
|
-
type: "tool_use";
|
|
183
182
|
name: string;
|
|
183
|
+
type: "tool_use";
|
|
184
184
|
id: string;
|
|
185
185
|
input: Record<string, any>;
|
|
186
186
|
cache_control?: {
|
|
187
187
|
type: "ephemeral";
|
|
188
188
|
} | undefined;
|
|
189
189
|
}, {
|
|
190
|
-
type: "tool_use";
|
|
191
190
|
name: string;
|
|
191
|
+
type: "tool_use";
|
|
192
192
|
id: string;
|
|
193
193
|
input: Record<string, any>;
|
|
194
194
|
cache_control?: {
|
|
@@ -206,15 +206,15 @@ export declare const AgentStateSchema: z.ZodObject<{
|
|
|
206
206
|
type: "ephemeral";
|
|
207
207
|
}>>;
|
|
208
208
|
}, "strip", z.ZodTypeAny, {
|
|
209
|
-
content: string;
|
|
210
209
|
type: "tool_result";
|
|
210
|
+
content: string;
|
|
211
211
|
tool_use_id: string;
|
|
212
212
|
cache_control?: {
|
|
213
213
|
type: "ephemeral";
|
|
214
214
|
} | undefined;
|
|
215
215
|
}, {
|
|
216
|
-
content: string;
|
|
217
216
|
type: "tool_result";
|
|
217
|
+
content: string;
|
|
218
218
|
tool_use_id: string;
|
|
219
219
|
cache_control?: {
|
|
220
220
|
type: "ephemeral";
|
|
@@ -270,16 +270,16 @@ export declare const AgentStateSchema: z.ZodObject<{
|
|
|
270
270
|
type: "ephemeral";
|
|
271
271
|
} | undefined;
|
|
272
272
|
} | {
|
|
273
|
-
type: "tool_use";
|
|
274
273
|
name: string;
|
|
274
|
+
type: "tool_use";
|
|
275
275
|
id: string;
|
|
276
276
|
input: Record<string, any>;
|
|
277
277
|
cache_control?: {
|
|
278
278
|
type: "ephemeral";
|
|
279
279
|
} | undefined;
|
|
280
280
|
} | {
|
|
281
|
-
content: string;
|
|
282
281
|
type: "tool_result";
|
|
282
|
+
content: string;
|
|
283
283
|
tool_use_id: string;
|
|
284
284
|
cache_control?: {
|
|
285
285
|
type: "ephemeral";
|
|
@@ -304,16 +304,16 @@ export declare const AgentStateSchema: z.ZodObject<{
|
|
|
304
304
|
type: "ephemeral";
|
|
305
305
|
} | undefined;
|
|
306
306
|
} | {
|
|
307
|
-
type: "tool_use";
|
|
308
307
|
name: string;
|
|
308
|
+
type: "tool_use";
|
|
309
309
|
id: string;
|
|
310
310
|
input: Record<string, any>;
|
|
311
311
|
cache_control?: {
|
|
312
312
|
type: "ephemeral";
|
|
313
313
|
} | undefined;
|
|
314
314
|
} | {
|
|
315
|
-
content: string;
|
|
316
315
|
type: "tool_result";
|
|
316
|
+
content: string;
|
|
317
317
|
tool_use_id: string;
|
|
318
318
|
cache_control?: {
|
|
319
319
|
type: "ephemeral";
|
|
@@ -370,16 +370,16 @@ export declare const AgentStateSchema: z.ZodObject<{
|
|
|
370
370
|
type: "ephemeral";
|
|
371
371
|
} | undefined;
|
|
372
372
|
} | {
|
|
373
|
-
type: "tool_use";
|
|
374
373
|
name: string;
|
|
374
|
+
type: "tool_use";
|
|
375
375
|
id: string;
|
|
376
376
|
input: Record<string, any>;
|
|
377
377
|
cache_control?: {
|
|
378
378
|
type: "ephemeral";
|
|
379
379
|
} | undefined;
|
|
380
380
|
} | {
|
|
381
|
-
content: string;
|
|
382
381
|
type: "tool_result";
|
|
382
|
+
content: string;
|
|
383
383
|
tool_use_id: string;
|
|
384
384
|
cache_control?: {
|
|
385
385
|
type: "ephemeral";
|
|
@@ -436,16 +436,16 @@ export declare const AgentStateSchema: z.ZodObject<{
|
|
|
436
436
|
type: "ephemeral";
|
|
437
437
|
} | undefined;
|
|
438
438
|
} | {
|
|
439
|
-
type: "tool_use";
|
|
440
439
|
name: string;
|
|
440
|
+
type: "tool_use";
|
|
441
441
|
id: string;
|
|
442
442
|
input: Record<string, any>;
|
|
443
443
|
cache_control?: {
|
|
444
444
|
type: "ephemeral";
|
|
445
445
|
} | undefined;
|
|
446
446
|
} | {
|
|
447
|
-
content: string;
|
|
448
447
|
type: "tool_result";
|
|
448
|
+
content: string;
|
|
449
449
|
tool_use_id: string;
|
|
450
450
|
cache_control?: {
|
|
451
451
|
type: "ephemeral";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export type GrantType = 'free' | 'referral' | 'purchase' | 'admin';
|
|
2
|
-
export declare const GrantTypeValues:
|
|
2
|
+
export declare const GrantTypeValues: readonly ["free", "referral", "purchase", "admin"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant.js","sourceRoot":"","sources":["../../src/types/grant.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,
|
|
1
|
+
{"version":3,"file":"grant.js","sourceRoot":"","sources":["../../src/types/grant.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAG;IAC7B,MAAM;IACN,UAAU;IACV,UAAU;IACV,OAAO;CACC,CAAC"}
|
|
@@ -5,36 +5,36 @@ export declare const usageDataSchema: z.ZodObject<{
|
|
|
5
5
|
totalRemaining: z.ZodNumber;
|
|
6
6
|
totalDebt: z.ZodNumber;
|
|
7
7
|
netBalance: z.ZodNumber;
|
|
8
|
-
breakdown: z.
|
|
8
|
+
breakdown: z.ZodRecord<z.ZodEnum<["free", "referral", "purchase", "admin"]>, z.ZodNumber>;
|
|
9
9
|
}, "strip", z.ZodTypeAny, {
|
|
10
10
|
totalRemaining: number;
|
|
11
11
|
totalDebt: number;
|
|
12
12
|
netBalance: number;
|
|
13
|
-
breakdown
|
|
13
|
+
breakdown: Partial<Record<"free" | "referral" | "purchase" | "admin", number>>;
|
|
14
14
|
}, {
|
|
15
15
|
totalRemaining: number;
|
|
16
16
|
totalDebt: number;
|
|
17
17
|
netBalance: number;
|
|
18
|
-
breakdown
|
|
18
|
+
breakdown: Partial<Record<"free" | "referral" | "purchase" | "admin", number>>;
|
|
19
19
|
}>;
|
|
20
20
|
nextQuotaReset: z.ZodNullable<z.ZodDate>;
|
|
21
21
|
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
usageThisCycle: number;
|
|
22
23
|
balance: {
|
|
23
24
|
totalRemaining: number;
|
|
24
25
|
totalDebt: number;
|
|
25
26
|
netBalance: number;
|
|
26
|
-
breakdown
|
|
27
|
+
breakdown: Partial<Record<"free" | "referral" | "purchase" | "admin", number>>;
|
|
27
28
|
};
|
|
28
|
-
usageThisCycle: number;
|
|
29
29
|
nextQuotaReset: Date | null;
|
|
30
30
|
}, {
|
|
31
|
+
usageThisCycle: number;
|
|
31
32
|
balance: {
|
|
32
33
|
totalRemaining: number;
|
|
33
34
|
totalDebt: number;
|
|
34
35
|
netBalance: number;
|
|
35
|
-
breakdown
|
|
36
|
+
breakdown: Partial<Record<"free" | "referral" | "purchase" | "admin", number>>;
|
|
36
37
|
};
|
|
37
|
-
usageThisCycle: number;
|
|
38
38
|
nextQuotaReset: Date | null;
|
|
39
39
|
}>;
|
|
40
40
|
export type UsageData = z.infer<typeof usageDataSchema>;
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.usageDataSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const grant_1 = require("./grant");
|
|
5
6
|
exports.usageDataSchema = zod_1.z.object({
|
|
6
7
|
usageThisCycle: zod_1.z.number(),
|
|
7
8
|
balance: zod_1.z.object({
|
|
8
9
|
totalRemaining: zod_1.z.number(),
|
|
9
10
|
totalDebt: zod_1.z.number(),
|
|
10
11
|
netBalance: zod_1.z.number(),
|
|
11
|
-
breakdown: zod_1.z.record(zod_1.z.
|
|
12
|
+
breakdown: zod_1.z.record(zod_1.z.enum(grant_1.GrantTypeValues), zod_1.z.number()),
|
|
12
13
|
}),
|
|
13
14
|
nextQuotaReset: zod_1.z.coerce.date().nullable(),
|
|
14
15
|
});
|