agentenkit 0.1.6 → 0.2.1
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/README.md +44 -2
- package/dist/adapters/memory.d.ts +2 -2
- package/dist/adapters/memory.d.ts.map +1 -1
- package/dist/adapters/memory.js +3 -9
- package/dist/adapters/memory.js.map +1 -1
- package/dist/adapters/prisma.d.ts +61 -18
- package/dist/adapters/prisma.d.ts.map +1 -1
- package/dist/adapters/prisma.js +65 -16
- package/dist/adapters/prisma.js.map +1 -1
- package/dist/adapters/sqlite.d.ts +3 -2
- package/dist/adapters/sqlite.d.ts.map +1 -1
- package/dist/adapters/sqlite.js +82 -11
- package/dist/adapters/sqlite.js.map +1 -1
- package/dist/admin/default.d.ts +11 -4
- package/dist/admin/default.d.ts.map +1 -1
- package/dist/admin/default.js +11 -6
- package/dist/admin/default.js.map +1 -1
- package/dist/admin/migrations/postgres/0001-init.d.ts +10 -0
- package/dist/admin/migrations/postgres/0001-init.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/0001-init.js +56 -0
- package/dist/admin/migrations/postgres/0001-init.js.map +1 -0
- package/dist/admin/migrations/postgres/index.d.ts +9 -0
- package/dist/admin/migrations/postgres/index.d.ts.map +1 -0
- package/dist/admin/migrations/postgres/index.js +17 -0
- package/dist/admin/migrations/postgres/index.js.map +1 -0
- package/dist/admin/migrations/runner.d.ts +81 -0
- package/dist/admin/migrations/runner.d.ts.map +1 -0
- package/dist/admin/migrations/runner.js +137 -0
- package/dist/admin/migrations/runner.js.map +1 -0
- package/dist/admin/migrations/sqlite/0001-init.d.ts +11 -0
- package/dist/admin/migrations/sqlite/0001-init.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/0001-init.js +44 -0
- package/dist/admin/migrations/sqlite/0001-init.js.map +1 -0
- package/dist/admin/migrations/sqlite/index.d.ts +7 -0
- package/dist/admin/migrations/sqlite/index.d.ts.map +1 -0
- package/dist/admin/migrations/sqlite/index.js +38 -0
- package/dist/admin/migrations/sqlite/index.js.map +1 -0
- package/dist/admin/postgres.d.ts +27 -4
- package/dist/admin/postgres.d.ts.map +1 -1
- package/dist/admin/postgres.js +41 -53
- package/dist/admin/postgres.js.map +1 -1
- package/dist/admin/sqlite.d.ts +18 -2
- package/dist/admin/sqlite.d.ts.map +1 -1
- package/dist/admin/sqlite.js +36 -53
- package/dist/admin/sqlite.js.map +1 -1
- package/dist/core/admin.d.ts +4 -0
- package/dist/core/admin.d.ts.map +1 -1
- package/dist/core/admin.js +9 -1
- package/dist/core/admin.js.map +1 -1
- package/dist/core/agent.d.ts +3 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +4 -4
- package/dist/core/agent.js.map +1 -1
- package/dist/core/context.d.ts +5 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +38 -9
- package/dist/core/context.js.map +1 -1
- package/dist/core/engine.d.ts +4 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +81 -17
- package/dist/core/engine.js.map +1 -1
- package/dist/core/hitl.d.ts +56 -4
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +94 -20
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/loop.d.ts +35 -0
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +125 -17
- package/dist/core/loop.js.map +1 -1
- package/dist/core/messages.d.ts +26 -0
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +23 -0
- package/dist/core/messages.js.map +1 -1
- package/dist/core/reclaim.d.ts.map +1 -1
- package/dist/core/reclaim.js +4 -3
- package/dist/core/reclaim.js.map +1 -1
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js +1 -0
- package/dist/core/run.js.map +1 -1
- package/dist/core/subagent.d.ts +5 -0
- package/dist/core/subagent.d.ts.map +1 -1
- package/dist/core/subagent.js +20 -8
- package/dist/core/subagent.js.map +1 -1
- package/dist/core/types.d.ts +145 -7
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +9 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/usage.d.ts +47 -2
- package/dist/core/usage.d.ts.map +1 -1
- package/dist/core/usage.js +130 -2
- package/dist/core/usage.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/ports/runtime.d.ts +69 -4
- package/dist/ports/runtime.d.ts.map +1 -1
- package/dist/ports/storage.d.ts +16 -4
- package/dist/ports/storage.d.ts.map +1 -1
- package/dist/pricing.d.ts +66 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +98 -0
- package/dist/pricing.js.map +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +5 -2
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/dist/admin/postgres.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { gatedAdminStore, runMigrations } from './migrations/runner.js';
|
|
2
|
+
import { dialect, migrations } from './migrations/postgres/index.js';
|
|
1
3
|
/** Open a `pg` Pool from a connection string. Dynamically imported so the
|
|
2
4
|
* driver only loads for callers who actually use Postgres, and marked
|
|
3
5
|
* webpackIgnore so a bundler leaves it as a runtime import. */
|
|
@@ -13,52 +15,24 @@ export async function openPostgres(url) {
|
|
|
13
15
|
`admin store. (${err instanceof Error ? err.message : String(err)})`);
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"inputTokens" INT NOT NULL DEFAULT 0, "cachedInputTokens" INT NOT NULL DEFAULT 0,
|
|
35
|
-
"outputTokens" INT NOT NULL DEFAULT 0, "totalTokens" INT NOT NULL DEFAULT 0,
|
|
36
|
-
result JSONB, prompt TEXT, "tokenBudget" INT, "runState" JSONB, "providerOptions" JSONB
|
|
37
|
-
)`,
|
|
38
|
-
`ALTER TABLE agentic_runs ADD COLUMN IF NOT EXISTS "providerOptions" JSONB`,
|
|
39
|
-
`ALTER TABLE agentic_threads ADD COLUMN IF NOT EXISTS "startedWith" JSONB`,
|
|
40
|
-
`ALTER TABLE agentic_runs ADD COLUMN IF NOT EXISTS prompt TEXT`,
|
|
41
|
-
`ALTER TABLE agentic_runs ADD COLUMN IF NOT EXISTS "tokenBudget" INT`,
|
|
42
|
-
`ALTER TABLE agentic_runs ADD COLUMN IF NOT EXISTS "runState" JSONB`,
|
|
43
|
-
`CREATE INDEX IF NOT EXISTS agentic_runs_thread ON agentic_runs("threadId", "startedAt" DESC)`,
|
|
44
|
-
`CREATE INDEX IF NOT EXISTS agentic_runs_state ON agentic_runs(state, "startedAt" DESC)`,
|
|
45
|
-
`CREATE INDEX IF NOT EXISTS agentic_runs_parent ON agentic_runs("parentRunId")`,
|
|
46
|
-
`CREATE TABLE IF NOT EXISTS agentic_steps (
|
|
47
|
-
"runId" TEXT NOT NULL, "threadId" TEXT, "agentId" TEXT, "index" INT NOT NULL,
|
|
48
|
-
"durationMs" INT NOT NULL, "finishReason" TEXT NOT NULL,
|
|
49
|
-
"inputTokens" INT NOT NULL DEFAULT 0, "cachedInputTokens" INT NOT NULL DEFAULT 0,
|
|
50
|
-
"outputTokens" INT NOT NULL DEFAULT 0, "totalTokens" INT NOT NULL DEFAULT 0,
|
|
51
|
-
tools JSONB, text TEXT, "toolCalls" JSONB,
|
|
52
|
-
at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
53
|
-
)`,
|
|
54
|
-
// CREATE TABLE IF NOT EXISTS leaves an existing table alone, so newer
|
|
55
|
-
// columns are added separately.
|
|
56
|
-
`ALTER TABLE agentic_steps ADD COLUMN IF NOT EXISTS text TEXT`,
|
|
57
|
-
`ALTER TABLE agentic_steps ADD COLUMN IF NOT EXISTS "threadId" TEXT`,
|
|
58
|
-
`CREATE INDEX IF NOT EXISTS agentic_steps_thread ON agentic_steps("threadId", at)`,
|
|
59
|
-
`ALTER TABLE agentic_steps ADD COLUMN IF NOT EXISTS "toolCalls" JSONB`,
|
|
60
|
-
`CREATE INDEX IF NOT EXISTS agentic_steps_run ON agentic_steps("runId", "index")`,
|
|
61
|
-
];
|
|
18
|
+
/** Run the migrations on ONE connection, checked out for the length of the
|
|
19
|
+
* transaction and handed back after. */
|
|
20
|
+
async function migrate(db) {
|
|
21
|
+
const client = db.connect ? await db.connect() : null;
|
|
22
|
+
const handle = client ?? db;
|
|
23
|
+
const driver = {
|
|
24
|
+
exec: async (sql, params = []) => {
|
|
25
|
+
await handle.query(sql, params);
|
|
26
|
+
},
|
|
27
|
+
rows: async (sql, params = []) => (await handle.query(sql, params)).rows,
|
|
28
|
+
};
|
|
29
|
+
try {
|
|
30
|
+
await runMigrations(driver, dialect, migrations);
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
client?.release();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
62
36
|
const toRun = (r) => ({
|
|
63
37
|
id: r.id, threadId: r.threadId, parentRunId: r.parentRunId ?? null, depth: r.depth,
|
|
64
38
|
agent: r.agent, model: r.model, state: r.state,
|
|
@@ -80,13 +54,27 @@ export class PostgresAdminStore {
|
|
|
80
54
|
constructor(db) {
|
|
81
55
|
this.db = db;
|
|
82
56
|
}
|
|
83
|
-
/**
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
57
|
+
/** The store with its schema migration already running behind it (§2.9).
|
|
58
|
+
*
|
|
59
|
+
* Connecting stays synchronous — a URL that cannot be reached is a
|
|
60
|
+
* configuration problem worth failing on at startup. Only the schema moves
|
|
61
|
+
* to the background, so a service starts at the same speed whether or not
|
|
62
|
+
* it has migrating to do, and the returned store waits for it before its
|
|
63
|
+
* first call.
|
|
64
|
+
*
|
|
65
|
+
* Several workers starting at once is expected and safe: each migration
|
|
66
|
+
* runs under a transaction-scoped advisory lock, so they queue rather than
|
|
67
|
+
* race. */
|
|
68
|
+
static connect(db, log) {
|
|
69
|
+
const store = new PostgresAdminStore(db);
|
|
70
|
+
const ready = migrate(db).catch((err) => {
|
|
71
|
+
// Loud, because everything downstream of this is silent: admin writes
|
|
72
|
+
// are best effort, so a failed migration shows up as a dashboard with
|
|
73
|
+
// nothing in it rather than as an error.
|
|
74
|
+
(log ?? console).error('admin migrations failed', err);
|
|
75
|
+
throw err;
|
|
76
|
+
});
|
|
77
|
+
return gatedAdminStore(store, ready);
|
|
90
78
|
}
|
|
91
79
|
threads = {
|
|
92
80
|
upsert: async (t) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/admin/postgres.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/admin/postgres.ts"],"names":[],"mappings":"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"}
|
package/dist/admin/sqlite.d.ts
CHANGED
|
@@ -4,10 +4,26 @@ import type { SqliteLike } from '../adapters/sqlite.js';
|
|
|
4
4
|
/** Operational history in SQLite — what `dev: true` uses (§2.9).
|
|
5
5
|
*
|
|
6
6
|
* Tables are prefixed `agentic_` because this may well share a database with
|
|
7
|
-
* the caller's own schema; nothing here should collide with a table they own.
|
|
7
|
+
* the caller's own schema; nothing here should collide with a table they own.
|
|
8
|
+
*
|
|
9
|
+
* The schema is applied by the migrator, not here. Use `SqliteAdminStore.open`
|
|
10
|
+
* unless you are driving migrations yourself: it returns a store that waits
|
|
11
|
+
* for the schema before its first call. */
|
|
8
12
|
export declare class SqliteAdminStore implements AdminStore {
|
|
9
13
|
private readonly db;
|
|
10
|
-
constructor(
|
|
14
|
+
private constructor();
|
|
15
|
+
/** The store `setupAgentCore` uses: schema migration running behind it, and
|
|
16
|
+
* every call gated on it (§2.9).
|
|
17
|
+
*
|
|
18
|
+
* Opening the database stays synchronous — a file that cannot be opened is
|
|
19
|
+
* a configuration problem worth failing on at startup. Only the schema
|
|
20
|
+
* moves to the background, so a service starts at the same speed whether or
|
|
21
|
+
* not it has migrating to do. */
|
|
22
|
+
static open(db: SqliteLike, log?: {
|
|
23
|
+
error(message: string, ...rest: unknown[]): void;
|
|
24
|
+
}): AdminStore;
|
|
25
|
+
/** The two calls the migrator needs, over this store's handle. */
|
|
26
|
+
private driver;
|
|
11
27
|
private all;
|
|
12
28
|
private one;
|
|
13
29
|
private write;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/admin/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EACV,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAC1D,aAAa,EAAE,SAAS,EAAE,UAAU,EACrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/admin/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EACV,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAC1D,aAAa,EAAE,SAAS,EAAE,UAAU,EACrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAaxD;;;;;;;4CAO4C;AAC5C,qBAAa,gBAAiB,YAAW,UAAU;IAG7B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAvC,OAAO;IAEP;;;;;;sCAMkC;IAClC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE;QAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;KAAE,GAAG,UAAU;IAYnG,kEAAkE;IAClE,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,GAAG;IAGX,OAAO,CAAC,GAAG;IAGX,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK,CAYV;IAEH,OAAO;oBACa,cAAc;;kBAkBhB,iBAAiB,KAAG,OAAO,CAAC,WAAW,EAAE,CAAC;MAkB1D;IAEF,IAAI;qBACiB,YAAY;uBAcV,MAAM,SAAS,QAAQ;qBAWzB,MAAM;iCAIM,MAAM;kBAGrB,SAAS;;MAsBzB;IAEF,KAAK;oBACe,aAAa;2BASN,MAAM,KAAG,OAAO,CAAC,UAAU,EAAE,CAAC;iCAGxB,MAAM,KAAG,OAAO,CAAC,UAAU,EAAE,CAAC;MAG7D;IAEF,OAAO,CAAC,MAAM,CAOX;CACJ"}
|
package/dist/admin/sqlite.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { gatedAdminStore, runMigrations } from './migrations/runner.js';
|
|
2
|
+
import { dialect, migrations } from './migrations/sqlite/index.js';
|
|
1
3
|
const date = (n) => (n == null ? null : new Date(n));
|
|
2
4
|
/** The stored ThreadStart, with its `at` back as a Date. */
|
|
3
5
|
const parseStart = (v) => {
|
|
@@ -6,66 +8,47 @@ const parseStart = (v) => {
|
|
|
6
8
|
};
|
|
7
9
|
const json = (v) => (v === undefined ? null : JSON.stringify(v));
|
|
8
10
|
const parse = (v) => (typeof v === 'string' ? JSON.parse(v) : (v ?? null));
|
|
9
|
-
const SCHEMA = `
|
|
10
|
-
CREATE TABLE IF NOT EXISTS agentic_runs (
|
|
11
|
-
id TEXT PRIMARY KEY, threadId TEXT NOT NULL, parentRunId TEXT,
|
|
12
|
-
depth INTEGER NOT NULL DEFAULT 0, agent TEXT NOT NULL, model TEXT NOT NULL,
|
|
13
|
-
state TEXT NOT NULL DEFAULT 'RUNNING', stopReason TEXT, error TEXT,
|
|
14
|
-
startedAt INTEGER NOT NULL, endedAt INTEGER, durationMs INTEGER, queuedMs INTEGER,
|
|
15
|
-
attempts INTEGER NOT NULL DEFAULT 0, steps INTEGER NOT NULL DEFAULT 0,
|
|
16
|
-
inputTokens INTEGER NOT NULL DEFAULT 0, cachedInputTokens INTEGER NOT NULL DEFAULT 0,
|
|
17
|
-
outputTokens INTEGER NOT NULL DEFAULT 0, totalTokens INTEGER NOT NULL DEFAULT 0,
|
|
18
|
-
result TEXT, prompt TEXT, tokenBudget INTEGER, runState TEXT, providerOptions TEXT
|
|
19
|
-
);
|
|
20
|
-
CREATE INDEX IF NOT EXISTS agentic_runs_thread ON agentic_runs(threadId, startedAt);
|
|
21
|
-
CREATE INDEX IF NOT EXISTS agentic_runs_state ON agentic_runs(state, startedAt);
|
|
22
|
-
CREATE INDEX IF NOT EXISTS agentic_runs_parent ON agentic_runs(parentRunId);
|
|
23
|
-
CREATE TABLE IF NOT EXISTS agentic_threads (
|
|
24
|
-
id TEXT PRIMARY KEY, state TEXT NOT NULL, model TEXT NOT NULL,
|
|
25
|
-
firstSeenAt INTEGER NOT NULL, updatedAt INTEGER NOT NULL, startedWith TEXT
|
|
26
|
-
);
|
|
27
|
-
CREATE INDEX IF NOT EXISTS agentic_threads_state ON agentic_threads(state, updatedAt);
|
|
28
|
-
CREATE TABLE IF NOT EXISTS agentic_steps (
|
|
29
|
-
runId TEXT NOT NULL, threadId TEXT, agentId TEXT, "index" INTEGER NOT NULL,
|
|
30
|
-
durationMs INTEGER NOT NULL, finishReason TEXT NOT NULL,
|
|
31
|
-
inputTokens INTEGER NOT NULL DEFAULT 0, cachedInputTokens INTEGER NOT NULL DEFAULT 0,
|
|
32
|
-
outputTokens INTEGER NOT NULL DEFAULT 0, totalTokens INTEGER NOT NULL DEFAULT 0,
|
|
33
|
-
tools TEXT, text TEXT, toolCalls TEXT, at INTEGER NOT NULL
|
|
34
|
-
);
|
|
35
|
-
CREATE INDEX IF NOT EXISTS agentic_steps_run ON agentic_steps(runId, "index");
|
|
36
|
-
CREATE INDEX IF NOT EXISTS agentic_steps_thread ON agentic_steps(threadId, at);
|
|
37
|
-
`;
|
|
38
11
|
/** Operational history in SQLite — what `dev: true` uses (§2.9).
|
|
39
12
|
*
|
|
40
13
|
* Tables are prefixed `agentic_` because this may well share a database with
|
|
41
|
-
* the caller's own schema; nothing here should collide with a table they own.
|
|
14
|
+
* the caller's own schema; nothing here should collide with a table they own.
|
|
15
|
+
*
|
|
16
|
+
* The schema is applied by the migrator, not here. Use `SqliteAdminStore.open`
|
|
17
|
+
* unless you are driving migrations yourself: it returns a store that waits
|
|
18
|
+
* for the schema before its first call. */
|
|
42
19
|
export class SqliteAdminStore {
|
|
43
20
|
db;
|
|
21
|
+
// Private: a store built without its migration would answer every query
|
|
22
|
+
// with "no such table". `open` is the only way in.
|
|
44
23
|
constructor(db) {
|
|
45
24
|
this.db = db;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
25
|
+
}
|
|
26
|
+
/** The store `setupAgentCore` uses: schema migration running behind it, and
|
|
27
|
+
* every call gated on it (§2.9).
|
|
28
|
+
*
|
|
29
|
+
* Opening the database stays synchronous — a file that cannot be opened is
|
|
30
|
+
* a configuration problem worth failing on at startup. Only the schema
|
|
31
|
+
* moves to the background, so a service starts at the same speed whether or
|
|
32
|
+
* not it has migrating to do. */
|
|
33
|
+
static open(db, log) {
|
|
34
|
+
const store = new SqliteAdminStore(db);
|
|
35
|
+
const ready = runMigrations(store.driver(), dialect, migrations).catch((err) => {
|
|
36
|
+
// Loud, because everything downstream of this is silent: admin writes
|
|
37
|
+
// are best effort, so a failed migration shows up as a dashboard with
|
|
38
|
+
// nothing in it rather than as an error.
|
|
39
|
+
(log ?? console).error('admin migrations failed', err);
|
|
40
|
+
throw err;
|
|
41
|
+
});
|
|
42
|
+
return gatedAdminStore(store, ready);
|
|
43
|
+
}
|
|
44
|
+
/** The two calls the migrator needs, over this store's handle. */
|
|
45
|
+
driver() {
|
|
46
|
+
return {
|
|
47
|
+
exec: async (sql, params = []) => {
|
|
48
|
+
this.db.prepare(sql).run(...params);
|
|
49
|
+
},
|
|
50
|
+
rows: async (sql, params = []) => this.db.prepare(sql).all(...params),
|
|
51
|
+
};
|
|
69
52
|
}
|
|
70
53
|
all(sql, ...p) {
|
|
71
54
|
return this.db.prepare(sql).all(...p);
|
package/dist/admin/sqlite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/admin/sqlite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/admin/sqlite.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAwB,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,IAAI,GAAG,CAAC,CAA4B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,4DAA4D;AAC5D,MAAM,UAAU,GAAG,CAAC,CAAU,EAAsB,EAAE;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IAChE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC,CAAC;AACF,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,MAAM,KAAK,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAEpF;;;;;;;4CAO4C;AAC5C,MAAM,OAAO,gBAAgB;IAGU;IAFrC,wEAAwE;IACxE,mDAAmD;IACnD,YAAqC,EAAc;QAAd,OAAE,GAAF,EAAE,CAAY;IAAG,CAAC;IAEvD;;;;;;sCAMkC;IAClC,MAAM,CAAC,IAAI,CAAC,EAAc,EAAE,GAA0D;QACpF,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7E,sEAAsE;YACtE,sEAAsE;YACtE,yCAAyC;YACzC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,kEAAkE;IAC1D,MAAM;QACZ,OAAO;YACL,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE;gBAC/B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAI,MAAoB,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,CAC/B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAI,MAAoB,CAAmC;SACvF,CAAC;IACJ,CAAC;IAEO,GAAG,CAAC,GAAW,EAAE,GAAG,CAAY;QACtC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAU,CAAC;IACjD,CAAC;IACO,GAAG,CAAC,GAAW,EAAE,GAAG,CAAY;QACtC,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC9D,CAAC;IACO,KAAK,CAAC,GAAW,EAAE,GAAG,CAAY;QACxC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,GAAG,CAAC,CAAM,EAAa,EAAE,CAAC,CAAC;QACtC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;QAClF,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAuB;QAChE,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI;QACxD,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;QAC9D,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;QACpC,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;QAClE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;QACxD,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAC5D,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;KACvE,CAAC,CAAC;IAEH,OAAO,GAAG;QACR,MAAM,EAAE,KAAK,EAAE,CAAiB,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,0EAA0E;YAC1E,IAAI,CAAC,KAAK,CACR;;;qFAG6E;YAC7E,mEAAmE;YACnE,mDAAmD;YACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7E,CAAC;QACJ,CAAC;QACD,YAAY,EAAE,KAAK,IAAI,EAAE,CACvB,MAAM,CAAC,WAAW,CAChB,IAAI,CAAC,GAAG,CAAC,iEAAiE,CAAC;aACxE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACa;QAC9C,IAAI,EAAE,KAAK,EAAE,CAAoB,EAA0B,EAAE;YAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,GAAG,CACb,gCAAgC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnF,kCAAkC,EACpC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,CACxB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACZ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAuB,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;gBAC1D,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;aACvC,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;IAEF,IAAI,GAAG;QACL,KAAK,EAAE,KAAK,EAAE,GAAiB,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CACR,mKAAmK,EACnK,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,EAC7D,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAC1C,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAC3F,CAAC;YACF,OAAO,IAAI,CAAC,KAAK,CAAC;gBAChB,GAAG,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;gBACnE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;gBAClD,WAAW,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;aACtE,CAAC,CAAC;QACL,CAAC;QACD,KAAK,EAAE,KAAK,EAAE,KAAa,EAAE,KAAe,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,SAAS;oBAAE,SAAS;gBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAa,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC9B,IAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;YACrE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClC,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAE,CACvC,IAAI,CAAC,GAAG,CAAC,uEAAuE,EAAE,QAAQ,CAAC;aACxF,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACpB,IAAI,EAAE,KAAK,EAAE,CAAY,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAC7D,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YACtE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAAC,CAAC;YAC5E,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,GAAG,CACb,6BAA6B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChF,kCAAkC,EACpC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,CACxB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,YAAY,EAAE,KAAK,IAAI,EAAE,CACvB,MAAM,CAAC,WAAW,CAChB,IAAI,CAAC,GAAG,CAAC,8DAA8D,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACa;KAC/C,CAAC;IAEF,KAAK,GAAG;QACN,MAAM,EAAE,KAAK,EAAE,CAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CACR,wMAAwM,EACxM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,EACrE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,WAAW,EACjE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAChD,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAC/B,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,KAAa,EAAyB,EAAE,CACxD,IAAI,CAAC,GAAG,CAAC,8DAA8D,EAAE,KAAK,CAAC;aAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QACrB,YAAY,EAAE,KAAK,EAAE,QAAgB,EAAyB,EAAE,CAC9D,IAAI,CAAC,GAAG,CAAC,4DAA4D,EAAE,QAAQ,CAAC;aAC7E,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KACtB,CAAC;IAEM,MAAM,GAAG,CAAC,CAAM,EAAc,EAAE,CAAC,CAAC;QAClC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;QACtF,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY;QACtD,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;QAClE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;QACxD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;QACjD,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC,CAAC;CACJ"}
|
package/dist/core/admin.d.ts
CHANGED
|
@@ -64,6 +64,10 @@ export interface RunDetail {
|
|
|
64
64
|
/** The run's events with CHUNKs stripped — the readable spine, not the
|
|
65
65
|
* token-by-token firehose. */
|
|
66
66
|
events: AgentEvent[];
|
|
67
|
+
/** What this run spent, nested runs included (§4): tokens, money, and a
|
|
68
|
+
* line per agent and model. Read from the usage rows, so it is the same
|
|
69
|
+
* number a bill is built from. */
|
|
70
|
+
usage: UsageTotals;
|
|
67
71
|
}
|
|
68
72
|
export declare function summarise(runs: RunRecord[]): RunStats;
|
|
69
73
|
export declare function listRuns(deps: RuntimePorts, filter?: RunFilter): Promise<RunRecord[]>;
|
package/dist/core/admin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/core/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB;oEACgE;IAChE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,mEAAmE;IACnE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf;oCACgC;IAChC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,0CAA0C;IAC1C,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;gDACgD;AAChD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;6DACyD;IACzD,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,wEAAwE;IACxE,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB;mCAC+B;IAC/B,MAAM,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/core/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/core/admin.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const EMPTY = {
|
|
2
2
|
inputTokens: 0, cachedInputTokens: 0, outputTokens: 0, totalTokens: 0,
|
|
3
|
+
costMicros: 0, unpriced: 0, lines: [],
|
|
3
4
|
};
|
|
4
5
|
function percentiles(values) {
|
|
5
6
|
if (values.length === 0)
|
|
@@ -134,10 +135,16 @@ export async function getRun(deps, runId) {
|
|
|
134
135
|
const run = await deps.admin.runs.get(runId);
|
|
135
136
|
if (!run)
|
|
136
137
|
return null;
|
|
137
|
-
const [steps, siblings, events] = await Promise.all([
|
|
138
|
+
const [steps, siblings, events, usage] = await Promise.all([
|
|
138
139
|
listSteps(deps, runId),
|
|
139
140
|
deps.admin.runs.listByThread(run.threadId),
|
|
140
141
|
deps.storage.events.listSince(run.threadId, -1),
|
|
142
|
+
// Spend per run, from the one place money lives (§4). Best effort: a run
|
|
143
|
+
// view must still render when the usage read fails.
|
|
144
|
+
deps.storage.usage.total(run.threadId, { runId }).catch((err) => {
|
|
145
|
+
(deps.log ?? console).error('run usage not read', { run: runId, err });
|
|
146
|
+
return { ...EMPTY };
|
|
147
|
+
}),
|
|
141
148
|
]);
|
|
142
149
|
const from = new Date(run.startedAt).getTime();
|
|
143
150
|
const to = run.endedAt ? new Date(run.endedAt).getTime() : Infinity;
|
|
@@ -153,6 +160,7 @@ export async function getRun(deps, runId) {
|
|
|
153
160
|
const at = new Date(e.createdAt).getTime();
|
|
154
161
|
return at >= from && at <= to;
|
|
155
162
|
}),
|
|
163
|
+
usage,
|
|
156
164
|
};
|
|
157
165
|
}
|
|
158
166
|
//# sourceMappingURL=admin.js.map
|
package/dist/core/admin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/core/admin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/core/admin.ts"],"names":[],"mappings":"AAmFA,MAAM,KAAK,GAAgB;IACzB,WAAW,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;IACrE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;CACtC,CAAC;AAEF,SAAS,WAAW,CAAC,MAAgB;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;IAC/E,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAE,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAiB;IACzC,MAAM,OAAO,GAA4C,EAAE,CAAC;IAC5D,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,UAAU;YAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrF,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;QACpC,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,CAAC;QAChD,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC;QACtC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;QACpC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ;YAAE,MAAM,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,OAAO;QACP,YAAY;QACZ,MAAM;QACN,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC;QAChC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;QAC3B,MAAM;KACP,CAAC;AACJ,CAAC;AAED;+DAC+D;AAC/D,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAkB,EAClB,SAAoB,EAAE;IAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAkB,EAClB,QAAwD,EAAE;IAE1D,2EAA2E;IAC3E,wEAAwE;IACxE,OAAO,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAkB,EAClB,QAA0B,EAAE;IAE5B,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE;QAC9B,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;KAC7E,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACnE,CAAC;AAED;6CAC6C;AAC7C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAkB,EAAE,KAAa;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,IAAiB,EAAE,IAA4D,EAAE,EAAE;IACpG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;IACrC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC;IACjD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;IACvC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;AACvC,CAAC,CAAC;AAEF,SAAS,MAAM,CAAC,MAGf,EAAE,IAAiB;IAClB,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;QACjB,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,2EAA2E;IAC3E,2BAA2B;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CACxD,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,WAAW,GACf,MAAM,CAAC,WAAW;QAClB,CAAC,IAAI;YACH,CAAC,CAAC;gBACE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS;gBACxE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;gBAClE,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;aAC5E;YACH,CAAC,CAAC,IAAI,CAAC,CAAC;IACZ,OAAO;QACL,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU;QACvD,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,IAAI,EAAE,WAAW;KACjD,CAAC;AACJ,CAAC;AAED;6DAC6D;AAC7D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAkB,EAClB,SAAqE,EAAE;IAEvE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KAC5D,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAkB,EAClB,QAAgB;IAEhB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;KACxC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9C,MAAM,IAAI,GAAG,MAAM,IAAI;QACrB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,MAAM,CAAmB;QACnD,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS;QAClC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE;QACjD,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE;KAC5C,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAkB,EAAE,KAAa;IAC5D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,yEAAyE;QACzE,oDAAoD;QACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9D,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpE,OAAO;QACL,GAAG;QACH,KAAK;QACL,2DAA2D;QAC3D,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC;QACrE,2DAA2D;QAC3D,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAa,EAAE,EAAE;YACtC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB;gBAAE,OAAO,KAAK,CAAC;YACpE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC,CAAC;QACF,KAAK;KACN,CAAC;AACJ,CAAC"}
|
package/dist/core/agent.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export interface RegisteredAgent {
|
|
|
12
12
|
model?: string;
|
|
13
13
|
subagents?: boolean | SubagentsConfig;
|
|
14
14
|
tokenBudget?: number;
|
|
15
|
+
/** Default per-run money cap (§4), in millionths of the pricer's
|
|
16
|
+
* currency. */
|
|
17
|
+
costBudgetMicros?: number;
|
|
15
18
|
/** Additional provider-specific options (§3.1) — merged per run. */
|
|
16
19
|
providerOptions?: ProviderOptions;
|
|
17
20
|
};
|
package/dist/core/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,eAAe,EAEf,mBAAmB,EACnB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C;;iDAEiD;AACjD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;QACtC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oEAAoE;QACpE,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,CAAC;IACF,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,GAC1C,eAAe,GAAG,IAAI,CAGxB;AAED;2EAC2E;AAC3E,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC;AAc9E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,mBAAmB,GACxB,WAAW,CASb;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,qBAAqB,GAC1B,WAAW,CASb"}
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,eAAe,EAEf,mBAAmB,EACnB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C;;iDAEiD;AACjD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;QACtC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;wBACgB;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,oEAAoE;QACpE,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,CAAC;IACF,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,GAC1C,eAAe,GAAG,IAAI,CAGxB;AAED;2EAC2E;AAC3E,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC;AAc9E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,mBAAmB,GACxB,WAAW,CASb;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,qBAAqB,GAC1B,WAAW,CASb"}
|
package/dist/core/agent.js
CHANGED
|
@@ -19,21 +19,21 @@ function createHandle(scope, agent) {
|
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
export function createStreamTextAgent(scope, spec) {
|
|
22
|
-
const { name, model, subagents, tokenBudget, providerOptions, ...args } = spec;
|
|
22
|
+
const { name, model, subagents, tokenBudget, costBudgetMicros, providerOptions, ...args } = spec;
|
|
23
23
|
return createHandle(scope, {
|
|
24
24
|
name,
|
|
25
25
|
kind: 'stream-text',
|
|
26
|
-
spec: { model, subagents, tokenBudget, providerOptions },
|
|
26
|
+
spec: { model, subagents, tokenBudget, costBudgetMicros, providerOptions },
|
|
27
27
|
args: args,
|
|
28
28
|
sem: new Semaphore(scope().config.subagentMaxConcurrent),
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
export function createGenerateTextAgent(scope, spec) {
|
|
32
|
-
const { name, model, subagents, tokenBudget, providerOptions, ...args } = spec;
|
|
32
|
+
const { name, model, subagents, tokenBudget, costBudgetMicros, providerOptions, ...args } = spec;
|
|
33
33
|
return createHandle(scope, {
|
|
34
34
|
name,
|
|
35
35
|
kind: 'generate-text',
|
|
36
|
-
spec: { model, subagents, tokenBudget, providerOptions },
|
|
36
|
+
spec: { model, subagents, tokenBudget, costBudgetMicros, providerOptions },
|
|
37
37
|
args: args,
|
|
38
38
|
sem: new Semaphore(scope().config.subagentMaxConcurrent),
|
|
39
39
|
});
|
package/dist/core/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAuBjC,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAChC,IAA2C;IAE3C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC;AAMD,SAAS,YAAY,CAAC,KAAc,EAAE,KAAsB;IAC1D,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,CAAC,KAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;QACxF,iBAAiB,EAAE,CAAC,KAAmB,EAAE,MAAiC,EAAE,EAAE,CAC5E,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;QAC1E,GAAG,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;QAC/D,IAAI,EAAE,CAAC,QAAgB,EAAE,KAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAc,EACd,IAAyB;IAEzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACjG,OAAO,YAAY,CAAC,KAAK,EAAE;QACzB,IAAI;QACJ,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE;QAC1E,IAAI,EAAE,IAA2B;QACjC,GAAG,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,IAA2B;IAE3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACjG,OAAO,YAAY,CAAC,KAAK,EAAE;QACzB,IAAI;QACJ,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE;QAC1E,IAAI,EAAE,IAA2B;QACjC,GAAG,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC;KACzD,CAAC,CAAC;AACL,CAAC"}
|
package/dist/core/context.d.ts
CHANGED
|
@@ -6,6 +6,11 @@ export declare const CONTEXT_TOKEN_CEILING = 265000;
|
|
|
6
6
|
* `contextWindow` (via `resolveModel`, §3.3) wins over the fallback tables;
|
|
7
7
|
* models below the ceiling keep their native window. */
|
|
8
8
|
export declare function contextBudget(deps: RuntimePorts, model: string): number;
|
|
9
|
+
/** The one token estimate the platform uses where a real count is
|
|
10
|
+
* unavailable: how full the context is (§2.6), and the output of a call that
|
|
11
|
+
* was cut off before the provider could report one (§4). One rule for both,
|
|
12
|
+
* so the two never disagree. */
|
|
13
|
+
export declare const estimateTokens: (content: unknown) => number;
|
|
9
14
|
/** Read-only view of the §2.6 budget math — what compactContext would see on
|
|
10
15
|
* the next run, without summarizing anything. */
|
|
11
16
|
export declare function contextUsage(deps: RuntimePorts, threadId: string, model: string): Promise<ContextUsage>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK3D,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,SAAU,CAAC;AAS7C;;yDAEyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAavE;AAED;;;iCAGiC;AACjC,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,WACA,CAAC;AAEhD;kDACkD;AAClD,wBAAsB,YAAY,CAChC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAUvB;AAKD,wBAAsB,cAAc,CAClC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,EAAE,CAAC,CAsEvB"}
|
package/dist/core/context.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { generateText } from 'ai';
|
|
2
2
|
import { publish } from './publish.js';
|
|
3
|
-
import {
|
|
3
|
+
import { fillTokens, providerMeta, recordCall } from './usage.js';
|
|
4
|
+
import { wireId } from './types.js';
|
|
4
5
|
/** Universal context ceiling across all models (§2.6) */
|
|
5
6
|
export const CONTEXT_TOKEN_CEILING = 265_000;
|
|
6
7
|
const DEFAULT_NATIVE_WINDOWS = {
|
|
@@ -26,7 +27,11 @@ export function contextBudget(deps, model) {
|
|
|
26
27
|
deps.config.contextCeilingTokens;
|
|
27
28
|
return Math.min(native, deps.config.contextCeilingTokens);
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
/** The one token estimate the platform uses where a real count is
|
|
31
|
+
* unavailable: how full the context is (§2.6), and the output of a call that
|
|
32
|
+
* was cut off before the provider could report one (§4). One rule for both,
|
|
33
|
+
* so the two never disagree. */
|
|
34
|
+
export const estimateTokens = (content) => Math.ceil(JSON.stringify(content).length / 4);
|
|
30
35
|
/** Read-only view of the §2.6 budget math — what compactContext would see on
|
|
31
36
|
* the next run, without summarizing anything. */
|
|
32
37
|
export async function contextUsage(deps, threadId, model) {
|
|
@@ -63,9 +68,22 @@ export async function compactContext(deps, threadId, model) {
|
|
|
63
68
|
const older = history.slice(0, history.length - tail.length);
|
|
64
69
|
if (older.length === 0)
|
|
65
70
|
return history; // single oversized turn — blocked by the input guards above
|
|
66
|
-
// ... and summarize everything before it with a cheap model
|
|
71
|
+
// ... and summarize everything before it with a cheap model, named in config
|
|
72
|
+
// so a registry that has never heard of 'gpt-4o-mini' can point this at its
|
|
73
|
+
// own (§2.6). Naming the key in the error matters: resolveModel throws from
|
|
74
|
+
// deep inside compaction, on a run that never mentioned this model, so the
|
|
75
|
+
// bare "Unknown model" says nothing about where it came from.
|
|
76
|
+
const compactionModel = deps.config.compactionModel;
|
|
77
|
+
let compactor;
|
|
78
|
+
try {
|
|
79
|
+
compactor = deps.resolveModel(compactionModel);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
throw new Error(`compactionModel ${JSON.stringify(compactionModel)} could not be resolved: ` +
|
|
83
|
+
`${err instanceof Error ? err.message : String(err)}`);
|
|
84
|
+
}
|
|
67
85
|
const { text, usage, ...rest } = await generateText({
|
|
68
|
-
model:
|
|
86
|
+
model: compactor.instance(),
|
|
69
87
|
prompt: 'Summarize the following conversation history into a dense context brief ' +
|
|
70
88
|
'(decisions, open threads, key facts) for an AI agent:\n\n' +
|
|
71
89
|
older.map((m) => `${m.role}: ${JSON.stringify(m.content)}`).join('\n'),
|
|
@@ -74,12 +92,23 @@ export async function compactContext(deps, threadId, model) {
|
|
|
74
92
|
role: 'system',
|
|
75
93
|
content: { type: 'CONTEXT_SUMMARY', text },
|
|
76
94
|
});
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
|
|
95
|
+
// Compaction is a model call the platform made on its own account (§2.6),
|
|
96
|
+
// so it gets its own priced row like any other (§4). Kind 'compaction' keeps
|
|
97
|
+
// it separable: nobody asked for this call, and it is worth being able to
|
|
98
|
+
// see what the platform's own housekeeping costs.
|
|
99
|
+
//
|
|
100
|
+
// The cache hit is reported in provider metadata, never in `usage` —
|
|
101
|
+
// attributing without it books every cached prompt at the full input price.
|
|
102
|
+
const meta = rest.providerMetadata ?? rest.experimental_providerMetadata;
|
|
103
|
+
await recordCall(deps, threadId, {
|
|
81
104
|
agentId: null,
|
|
82
|
-
|
|
105
|
+
kind: 'compaction',
|
|
106
|
+
step: 0,
|
|
107
|
+
model: compactionModel,
|
|
108
|
+
modelId: wireId(compactor, compactionModel),
|
|
109
|
+
outcome: 'finished',
|
|
110
|
+
providerMetadata: providerMeta(meta, rest.response),
|
|
111
|
+
...fillTokens(usage, meta),
|
|
83
112
|
});
|
|
84
113
|
await publish(deps, threadId, 'CONTEXT_COMPACTED', { summarizedMessages: older.length });
|
|
85
114
|
return [summary, ...tail];
|