gemi 0.143.0 → 0.145.0
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/ai/AgentController.d.ts +2 -2
- package/dist/ai/AgentController.d.ts.map +1 -1
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +11 -11
- package/dist/ai/index.js.map +3 -3
- package/dist/ai/store/Nonces.d.ts +68 -0
- package/dist/ai/store/Nonces.d.ts.map +1 -1
- package/dist/ai/store/index.d.ts +1 -1
- package/dist/ai/store/index.d.ts.map +1 -1
- package/dist/app/index.js +1 -1
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/chunk-0k8fk96c.js +5 -0
- package/dist/{chunk-mnmr27wd.js.map → chunk-0k8fk96c.js.map} +3 -3
- package/dist/{chunk-y5yac6n1.js → chunk-0mt7kqwx.js} +2 -2
- package/dist/{chunk-y5yac6n1.js.map → chunk-0mt7kqwx.js.map} +1 -1
- package/dist/{chunk-1ed75a7b.js → chunk-1fyn63ka.js} +3 -3
- package/dist/{chunk-1ed75a7b.js.map → chunk-1fyn63ka.js.map} +1 -1
- package/dist/{chunk-tkvamktq.js → chunk-1ttd4rn9.js} +2 -2
- package/dist/{chunk-tkvamktq.js.map → chunk-1ttd4rn9.js.map} +1 -1
- package/dist/{chunk-m70hn4eg.js → chunk-1wz6kwjc.js} +2 -2
- package/dist/{chunk-m70hn4eg.js.map → chunk-1wz6kwjc.js.map} +1 -1
- package/dist/{chunk-fsem81ec.js → chunk-29jmaj16.js} +1 -1
- package/dist/{chunk-fpz9e3xx.js → chunk-2b3hh9xw.js} +3 -3
- package/dist/{chunk-fpz9e3xx.js.map → chunk-2b3hh9xw.js.map} +1 -1
- package/dist/{chunk-n9zycjm1.js → chunk-2djjs8f1.js} +3 -3
- package/dist/{chunk-n9zycjm1.js.map → chunk-2djjs8f1.js.map} +1 -1
- package/dist/{chunk-p81qeav5.js → chunk-2ery6a75.js} +3 -3
- package/dist/{chunk-p81qeav5.js.map → chunk-2ery6a75.js.map} +1 -1
- package/dist/{chunk-hyhbk12v.js → chunk-2k3935ke.js} +2 -2
- package/dist/{chunk-hyhbk12v.js.map → chunk-2k3935ke.js.map} +1 -1
- package/dist/{chunk-qt6x2r6a.js → chunk-2x6cv37t.js} +2 -2
- package/dist/{chunk-qt6x2r6a.js.map → chunk-2x6cv37t.js.map} +1 -1
- package/dist/{chunk-68f0jpje.js → chunk-313593t3.js} +2 -2
- package/dist/{chunk-68f0jpje.js.map → chunk-313593t3.js.map} +1 -1
- package/dist/{chunk-5qfzvnyp.js → chunk-3csz8pfk.js} +3 -3
- package/dist/{chunk-5qfzvnyp.js.map → chunk-3csz8pfk.js.map} +1 -1
- package/dist/{chunk-rezmtdyt.js → chunk-3x8zrsby.js} +2 -2
- package/dist/{chunk-rezmtdyt.js.map → chunk-3x8zrsby.js.map} +1 -1
- package/dist/{chunk-159c392q.js → chunk-43ws58db.js} +2 -2
- package/dist/{chunk-159c392q.js.map → chunk-43ws58db.js.map} +1 -1
- package/dist/chunk-49s8wwp2.js +5 -0
- package/dist/{chunk-b6mgrrk6.js.map → chunk-49s8wwp2.js.map} +1 -1
- package/dist/{chunk-ncb1qtae.js → chunk-4d4td4k9.js} +2 -2
- package/dist/{chunk-ncb1qtae.js.map → chunk-4d4td4k9.js.map} +1 -1
- package/dist/{chunk-v57ndv0h.js → chunk-4jd25v6d.js} +2 -2
- package/dist/{chunk-v57ndv0h.js.map → chunk-4jd25v6d.js.map} +1 -1
- package/dist/{chunk-78bfmwp0.js → chunk-4m0eqq80.js} +2 -2
- package/dist/{chunk-78bfmwp0.js.map → chunk-4m0eqq80.js.map} +1 -1
- package/dist/{chunk-ktrm6y5j.js → chunk-563ksar3.js} +3 -3
- package/dist/{chunk-ktrm6y5j.js.map → chunk-563ksar3.js.map} +1 -1
- package/dist/{chunk-z80v4z8y.js → chunk-5q2pmve9.js} +2 -2
- package/dist/{chunk-z80v4z8y.js.map → chunk-5q2pmve9.js.map} +1 -1
- package/dist/{chunk-20d0n391.js → chunk-5yz684rw.js} +2 -2
- package/dist/{chunk-20d0n391.js.map → chunk-5yz684rw.js.map} +1 -1
- package/dist/{chunk-236be97q.js → chunk-63xwah5k.js} +1 -1
- package/dist/{chunk-b4jx4fzq.js → chunk-65wy1r1a.js} +1 -1
- package/dist/{chunk-9tgcmx4h.js → chunk-70yz9e7f.js} +2 -2
- package/dist/{chunk-9tgcmx4h.js.map → chunk-70yz9e7f.js.map} +1 -1
- package/dist/{chunk-t03nda3s.js → chunk-73rzf7ys.js} +2 -2
- package/dist/{chunk-t03nda3s.js.map → chunk-73rzf7ys.js.map} +1 -1
- package/dist/{chunk-1cn7ets3.js → chunk-7txqv2qq.js} +3 -3
- package/dist/{chunk-1cn7ets3.js.map → chunk-7txqv2qq.js.map} +1 -1
- package/dist/{chunk-1skdsmjx.js → chunk-86zhngpg.js} +2 -2
- package/dist/{chunk-1skdsmjx.js.map → chunk-86zhngpg.js.map} +1 -1
- package/dist/{chunk-ce9wm3r9.js → chunk-877yc341.js} +3 -3
- package/dist/{chunk-ce9wm3r9.js.map → chunk-877yc341.js.map} +1 -1
- package/dist/{chunk-wffc5k3m.js → chunk-87y2nrjy.js} +2 -2
- package/dist/{chunk-wffc5k3m.js.map → chunk-87y2nrjy.js.map} +1 -1
- package/dist/{chunk-mfn94b95.js → chunk-8k346pjw.js} +14 -14
- package/dist/{chunk-mfn94b95.js.map → chunk-8k346pjw.js.map} +3 -3
- package/dist/{chunk-j2k408xc.js → chunk-8km4drvv.js} +3 -3
- package/dist/{chunk-j2k408xc.js.map → chunk-8km4drvv.js.map} +1 -1
- package/dist/{chunk-sa6a0wy1.js → chunk-94hcjdbe.js} +2 -2
- package/dist/{chunk-sa6a0wy1.js.map → chunk-94hcjdbe.js.map} +1 -1
- package/dist/{chunk-kaphqnpp.js → chunk-9z8zq4rx.js} +3 -3
- package/dist/{chunk-kaphqnpp.js.map → chunk-9z8zq4rx.js.map} +1 -1
- package/dist/{chunk-8ex0y47w.js → chunk-apga49vp.js} +2 -2
- package/dist/{chunk-8ex0y47w.js.map → chunk-apga49vp.js.map} +1 -1
- package/dist/{chunk-yjszzjyj.js → chunk-attr793y.js} +2 -2
- package/dist/{chunk-yjszzjyj.js.map → chunk-attr793y.js.map} +1 -1
- package/dist/{chunk-1x9ghjpt.js → chunk-bsa6b82q.js} +1 -1
- package/dist/{chunk-ceb4jcrm.js → chunk-bstn00nx.js} +2 -2
- package/dist/{chunk-ceb4jcrm.js.map → chunk-bstn00nx.js.map} +1 -1
- package/dist/{chunk-azd6da5h.js → chunk-bykkqvd8.js} +2 -2
- package/dist/{chunk-azd6da5h.js.map → chunk-bykkqvd8.js.map} +1 -1
- package/dist/{chunk-9k46m1vf.js → chunk-cee5gq7t.js} +2 -2
- package/dist/{chunk-9k46m1vf.js.map → chunk-cee5gq7t.js.map} +1 -1
- package/dist/{chunk-9dkpv8ev.js → chunk-dxh8njb4.js} +2 -2
- package/dist/{chunk-9dkpv8ev.js.map → chunk-dxh8njb4.js.map} +1 -1
- package/dist/{chunk-maqkrbsb.js → chunk-e06t0625.js} +2 -2
- package/dist/{chunk-maqkrbsb.js.map → chunk-e06t0625.js.map} +1 -1
- package/dist/{chunk-0839f72f.js → chunk-e9z8p2fy.js} +2 -2
- package/dist/{chunk-0839f72f.js.map → chunk-e9z8p2fy.js.map} +1 -1
- package/dist/{chunk-6hs102jh.js → chunk-eqv7yxk7.js} +2 -2
- package/dist/{chunk-6hs102jh.js.map → chunk-eqv7yxk7.js.map} +1 -1
- package/dist/{chunk-m6t5a0me.js → chunk-fqqbnp0z.js} +2 -2
- package/dist/{chunk-m6t5a0me.js.map → chunk-fqqbnp0z.js.map} +1 -1
- package/dist/{chunk-1w5dnkd1.js → chunk-g22kph4n.js} +2 -2
- package/dist/{chunk-1w5dnkd1.js.map → chunk-g22kph4n.js.map} +1 -1
- package/dist/{chunk-rvm5mkwm.js → chunk-g8sh9btf.js} +2 -2
- package/dist/{chunk-rvm5mkwm.js.map → chunk-g8sh9btf.js.map} +1 -1
- package/dist/{chunk-kkqw8bqg.js → chunk-gvdg52ew.js} +4 -4
- package/dist/{chunk-kkqw8bqg.js.map → chunk-gvdg52ew.js.map} +1 -1
- package/dist/{chunk-8ky8cmde.js → chunk-h8eawyhx.js} +2 -2
- package/dist/{chunk-8ky8cmde.js.map → chunk-h8eawyhx.js.map} +1 -1
- package/dist/{chunk-r567t83k.js → chunk-hcw671mg.js} +4 -4
- package/dist/{chunk-r567t83k.js.map → chunk-hcw671mg.js.map} +1 -1
- package/dist/{chunk-ej4kf7m5.js → chunk-hh5bs656.js} +3 -3
- package/dist/{chunk-ej4kf7m5.js.map → chunk-hh5bs656.js.map} +1 -1
- package/dist/{chunk-3q7sc68p.js → chunk-j6ygdvj8.js} +2 -2
- package/dist/{chunk-3q7sc68p.js.map → chunk-j6ygdvj8.js.map} +1 -1
- package/dist/{chunk-t2nsn0r2.js → chunk-jzpbwvbt.js} +2 -2
- package/dist/{chunk-t2nsn0r2.js.map → chunk-jzpbwvbt.js.map} +1 -1
- package/dist/{chunk-r0z27j6t.js → chunk-k79ajvtc.js} +2 -2
- package/dist/{chunk-r0z27j6t.js.map → chunk-k79ajvtc.js.map} +1 -1
- package/dist/{chunk-hnsrwr0p.js → chunk-k8pn2qvf.js} +2 -2
- package/dist/{chunk-hnsrwr0p.js.map → chunk-k8pn2qvf.js.map} +1 -1
- package/dist/{chunk-83cvkhzn.js → chunk-kmh402m4.js} +2 -2
- package/dist/{chunk-83cvkhzn.js.map → chunk-kmh402m4.js.map} +1 -1
- package/dist/{chunk-9qfd02h8.js → chunk-m9am5fqq.js} +5 -5
- package/dist/{chunk-9qfd02h8.js.map → chunk-m9am5fqq.js.map} +3 -3
- package/dist/{chunk-m8yd59gg.js → chunk-mr3szvr3.js} +2 -2
- package/dist/{chunk-m8yd59gg.js.map → chunk-mr3szvr3.js.map} +1 -1
- package/dist/{chunk-mkw35cz7.js → chunk-mtamgvf4.js} +2 -2
- package/dist/{chunk-mkw35cz7.js.map → chunk-mtamgvf4.js.map} +1 -1
- package/dist/{chunk-5xfpqda5.js → chunk-mv1rs9he.js} +1 -1
- package/dist/{chunk-s29tgy4y.js → chunk-mzkzgp2j.js} +2 -2
- package/dist/{chunk-s29tgy4y.js.map → chunk-mzkzgp2j.js.map} +1 -1
- package/dist/{chunk-9xzg05xg.js → chunk-n9n4qt20.js} +3 -3
- package/dist/{chunk-9xzg05xg.js.map → chunk-n9n4qt20.js.map} +1 -1
- package/dist/{chunk-2ra5skyk.js → chunk-p27y4xrw.js} +2 -2
- package/dist/{chunk-2ra5skyk.js.map → chunk-p27y4xrw.js.map} +1 -1
- package/dist/{chunk-sgwgj2q0.js → chunk-pq657qcp.js} +1 -1
- package/dist/{chunk-63q7ycwt.js → chunk-pwbm3x1y.js} +2 -2
- package/dist/{chunk-63q7ycwt.js.map → chunk-pwbm3x1y.js.map} +1 -1
- package/dist/{chunk-1rvnk7g8.js → chunk-q4qw629n.js} +2 -2
- package/dist/{chunk-1rvnk7g8.js.map → chunk-q4qw629n.js.map} +1 -1
- package/dist/{chunk-f2e7n064.js → chunk-q9na1syb.js} +2 -2
- package/dist/{chunk-f2e7n064.js.map → chunk-q9na1syb.js.map} +1 -1
- package/dist/{chunk-x0t3t7g3.js → chunk-rkbwb3v5.js} +2 -2
- package/dist/{chunk-x0t3t7g3.js.map → chunk-rkbwb3v5.js.map} +1 -1
- package/dist/{chunk-0t2ym9ap.js → chunk-rma7afjd.js} +3 -3
- package/dist/{chunk-0t2ym9ap.js.map → chunk-rma7afjd.js.map} +1 -1
- package/dist/{chunk-f5qdyw45.js → chunk-tr9ynv3w.js} +2 -2
- package/dist/{chunk-f5qdyw45.js.map → chunk-tr9ynv3w.js.map} +1 -1
- package/dist/{chunk-kzc6bn8n.js → chunk-twrf6d08.js} +2 -2
- package/dist/{chunk-kzc6bn8n.js.map → chunk-twrf6d08.js.map} +1 -1
- package/dist/{chunk-6jd0e1dz.js → chunk-v9z4x5j2.js} +2 -2
- package/dist/{chunk-6jd0e1dz.js.map → chunk-v9z4x5j2.js.map} +1 -1
- package/dist/{chunk-jmhrpfqn.js → chunk-vm5t0j24.js} +2 -2
- package/dist/{chunk-jmhrpfqn.js.map → chunk-vm5t0j24.js.map} +1 -1
- package/dist/{chunk-a37shxb1.js → chunk-xv58jnpb.js} +2 -2
- package/dist/{chunk-a37shxb1.js.map → chunk-xv58jnpb.js.map} +1 -1
- package/dist/{chunk-p57nt0pm.js → chunk-ydkv9e8w.js} +3 -3
- package/dist/{chunk-p57nt0pm.js.map → chunk-ydkv9e8w.js.map} +1 -1
- package/dist/{chunk-aw8gj99f.js → chunk-ymdpt00k.js} +2 -2
- package/dist/{chunk-aw8gj99f.js.map → chunk-ymdpt00k.js.map} +1 -1
- package/dist/{chunk-5g7m7g4a.js → chunk-z7tsh9qr.js} +3 -3
- package/dist/{chunk-5g7m7g4a.js.map → chunk-z7tsh9qr.js.map} +1 -1
- package/dist/client/Head.d.ts.map +1 -1
- package/dist/client/index.js +7 -6
- package/dist/client/index.js.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/console/run.js +2 -2
- package/dist/console/run.js.map +1 -1
- package/dist/container/index.js +2 -2
- package/dist/container/index.js.map +1 -1
- package/dist/database/index.js +2 -2
- package/dist/database/index.js.map +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/foundation/index.js +2 -2
- package/dist/foundation/index.js.map +1 -1
- package/dist/http/Metadata.d.ts +8 -2
- package/dist/http/Metadata.d.ts.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/i18n/dictionaryRuntime.js +2 -2
- package/dist/i18n/dictionaryRuntime.js.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +1 -1
- package/dist/orm/index.js +2 -2
- package/dist/orm/index.js.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/services/index.d.ts +2 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +9 -9
- package/dist/services/index.js.map +4 -3
- package/dist/services/mcp/http/McpHttpServer.d.ts +81 -1
- package/dist/services/mcp/http/McpHttpServer.d.ts.map +1 -1
- package/dist/services/mcp/http/oauth/prismaStore.d.ts +112 -0
- package/dist/services/mcp/http/oauth/prismaStore.d.ts.map +1 -0
- package/dist/services/queue/work.js +2 -2
- package/dist/services/queue/work.js.map +1 -1
- package/dist/stats/route-table.js +1 -1
- package/dist/support/index.js +2 -2
- package/dist/support/index.js.map +1 -1
- package/dist/vitest/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-b6mgrrk6.js +0 -5
- package/dist/chunk-mnmr27wd.js +0 -5
- /package/dist/{chunk-fsem81ec.js.map → chunk-29jmaj16.js.map} +0 -0
- /package/dist/{chunk-236be97q.js.map → chunk-63xwah5k.js.map} +0 -0
- /package/dist/{chunk-b4jx4fzq.js.map → chunk-65wy1r1a.js.map} +0 -0
- /package/dist/{chunk-1x9ghjpt.js.map → chunk-bsa6b82q.js.map} +0 -0
- /package/dist/{chunk-5xfpqda5.js.map → chunk-mv1rs9he.js.map} +0 -0
- /package/dist/{chunk-sgwgj2q0.js.map → chunk-pq657qcp.js.map} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../ai/store/Nonces.ts", "../ai/redact.ts", "../ai/store/Attachments.ts", "../ai/jobs/AgentJobStore.ts", "../ai/runtime.ts", "../ai/memory/safety.ts", "../ai/memory/contextBlock.ts", "../ai/memory/search.ts", "../ai/memory/AgentMemoryStore.ts", "../ai/memory/AgentMemories.ts", "../ai/memory/runMemory.ts", "../ai/signing.ts", "../ai/providers/errors.ts", "../ai/contextWindow.ts", "../ai/contextCompaction.ts", "../ai/Agent.ts", "../ai/generate.ts", "../ai/jobs/AgentJob.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { app } from \"../../foundation/app\";\nimport { RedisManager } from \"../../services/redis/RedisManager\";\n\n/**\n * SPENT NONCES: what makes a signed answer single-use (#445).\n *\n * A pending call's signature (and a parked sub-run's record) carries a nonce\n * and an expiry. Verifying the MAC says the server once asked this exact\n * question; spending the nonce says nobody has answered it yet. Without that a\n * stateless client rewinds its history to before the result and replays the\n * same signed approval, and the human who approved once has approved forever.\n *\n * Spending has to be shared by every process that can receive the answer, and\n * it has to be atomic: insert-if-absent, so two instances handed the same\n * answer at the same moment cannot both be told \"first\". A check followed by a\n * write is not enough, since both reads can happen before either write.\n *\n * Implementations:\n *\n * MemoryNonceStore — the default. One process, lost on restart. Correct for\n * a single instance; with several, each instance accepts\n * the same answer once.\n * RedisNonceStore — `SET key 1 PX <ttl> NX` on the app's Redis. Shared,\n * atomic, and Redis drops each key at the token's expiry.\n * your own — e.g. a table with the nonce as its primary key:\n *\n * class DbNonceStore implements NonceStore {\n * async consume(nonce, expiresAt) {\n * // INSERT ... ON CONFLICT (nonce) DO NOTHING, then look at the row count.\n * const inserted = await db.$executeRaw`\n * INSERT INTO agent_nonces (nonce, expires_at)\n * VALUES (${nonce}, ${new Date(expiresAt)})\n * ON CONFLICT (nonce) DO NOTHING`;\n * return inserted === 1;\n * }\n * }\n * // and, from a cron: DELETE FROM agent_nonces WHERE expires_at < now()\n *\n * Expired tokens fail verification on their own, so a store only has to\n * remember a nonce until `expiresAt`; anything older may be dropped.\n */\nexport interface NonceStore {\n /**\n * Records `nonce` as spent until `expiresAt` (epoch milliseconds). Resolves\n * `true` when this call is the one that spent it, `false` when it was\n * already spent. Must be atomic across every process sharing the store.\n *\n * A rejection is treated as \"could not be spent\": the answer is refused,\n * and the user is asked again. A replay guard that silently lets an answer\n * through when its backing store is down is not a guard.\n */\n consume(nonce: string, expiresAt: number): Promise<boolean>;\n}\n\n/**\n * The in-process store. Bounded by the tokens issued in one TTL window: an\n * entry is dropped once its token expires, swept amortized O(1) per insert.\n */\nexport class MemoryNonceStore implements NonceStore {\n private readonly spent = new Map<string, number>();\n /** Sweep when the map has grown past this, so sweeping costs O(1) per insert\n * amortized instead of walking every entry on every answer. */\n private sweepAt = 1024;\n\n async consume(nonce: string, expiresAt: number): Promise<boolean> {\n return this.consumeSync(nonce, expiresAt);\n }\n\n /**\n * The same decision without the promise. JavaScript runs it to completion,\n * so within one process it is atomic. `now` is injectable for tests.\n */\n consumeSync(nonce: string, expiresAt: number, now = Date.now()): boolean {\n if (this.spent.size >= this.sweepAt) this.sweep(now);\n const spentUntil = this.spent.get(nonce);\n // A record past its own expiry binds nothing: the token it refers to fails\n // verification on its own, so holding the nonce would only grow the map.\n if (spentUntil !== undefined && spentUntil > now) return false;\n this.spent.set(nonce, expiresAt);\n return true;\n }\n\n get size(): number {\n return this.spent.size;\n }\n\n private sweep(now: number) {\n for (const [nonce, expiresAt] of this.spent) {\n if (expiresAt <= now) this.spent.delete(nonce);\n }\n this.sweepAt = Math.max(1024, this.spent.size * 2);\n }\n}\n\n/** The slice of Bun's `RedisClient` this store needs: `send(command, args)`. */\nexport interface NonceRedisClient {\n send(command: string, args: string[]): Promise<any>;\n}\n\nexport interface RedisNonceStoreOptions {\n /**\n * Client to run against. Defaults to the app's shared client from\n * `RedisServiceProvider`, resolved on first use so constructing the store\n * never needs a kernel or a connection.\n */\n client?: NonceRedisClient;\n /** Key namespace. Defaults to `gemi:ai:nonce`. */\n prefix?: string;\n}\n\n/**\n * Spent nonces in Redis, shared by every instance of the app. `SET ... NX` is\n * a single command, so the insert-if-absent is atomic in Redis; `PX` hands the\n * cleanup to Redis at the token's own expiry.\n *\n * ```ts\n * const nonces = new RedisNonceStore();\n *\n * class ChatController extends AgentController<typeof chat> {\n * agent = chat;\n * nonces = nonces;\n * }\n * ```\n *\n * A Redis failure rejects, and the answer it was checking is refused (see\n * `NonceStore.consume`).\n */\nexport class RedisNonceStore implements NonceStore {\n private readonly injectedClient?: NonceRedisClient;\n private readonly prefix: string;\n\n constructor(options: RedisNonceStoreOptions = {}) {\n this.injectedClient = options.client;\n this.prefix = options.prefix ?? \"gemi:ai:nonce\";\n }\n\n async consume(nonce: string, expiresAt: number): Promise<boolean> {\n // At least 1ms: `PX 0` is an error, and an already-expired token never\n // reaches here (verification refuses it first) unless the clock moved.\n const ttl = Math.max(1, Math.ceil(expiresAt - Date.now()));\n const reply = await this.client.send(\"SET\", [\n `${this.prefix}:${nonce}`,\n \"1\",\n \"PX\",\n String(ttl),\n \"NX\",\n ]);\n // `OK` when the key was set, nil when it already existed.\n return reply === \"OK\";\n }\n\n private get client(): NonceRedisClient {\n if (this.injectedClient) return this.injectedClient;\n const container = app();\n const client = container.bound(RedisManager)\n ? container.make(RedisManager).client\n : undefined;\n if (!client) {\n throw new Error(\n \"RedisNonceStore could not reach the Redis client. Register RedisServiceProvider on your application, or pass a client: new RedisNonceStore({ client }).\",\n );\n }\n return client;\n }\n}\n\n/** The process-wide default, shared by every agent that is not given a store. */\nexport const defaultNonceStore = new MemoryNonceStore();\n",
|
|
5
|
+
"import { app } from \"../../foundation/app\";\nimport { isUniqueConstraintError } from \"../../orm/errors\";\nimport { RedisManager } from \"../../services/redis/RedisManager\";\n\n/**\n * SPENT NONCES: what makes a signed answer single-use (#445).\n *\n * A pending call's signature (and a parked sub-run's record) carries a nonce\n * and an expiry. Verifying the MAC says the server once asked this exact\n * question; spending the nonce says nobody has answered it yet. Without that a\n * stateless client rewinds its history to before the result and replays the\n * same signed approval, and the human who approved once has approved forever.\n *\n * Spending has to be shared by every process that can receive the answer, and\n * it has to be atomic: insert-if-absent, so two instances handed the same\n * answer at the same moment cannot both be told \"first\". A check followed by a\n * write is not enough, since both reads can happen before either write.\n *\n * Implementations:\n *\n * MemoryNonceStore — the default. One process, lost on restart. Correct for\n * a single instance; with several, each instance accepts\n * the same answer once.\n * RedisNonceStore — `SET key 1 PX <ttl> NX` on the app's Redis. Shared,\n * atomic, and Redis drops each key at the token's expiry.\n * PrismaNonceStore — an insert keyed by the nonce, in a table of the app's\n * database (a gemi ORM model or a Prisma delegate).\n * your own — e.g. a table with the nonce as its primary key:\n *\n * class DbNonceStore implements NonceStore {\n * async consume(nonce, expiresAt) {\n * // INSERT ... ON CONFLICT (nonce) DO NOTHING, then look at the row count.\n * const inserted = await db.$executeRaw`\n * INSERT INTO agent_nonces (nonce, expires_at)\n * VALUES (${nonce}, ${new Date(expiresAt)})\n * ON CONFLICT (nonce) DO NOTHING`;\n * return inserted === 1;\n * }\n * }\n * // and, from a cron: DELETE FROM agent_nonces WHERE expires_at < now()\n *\n * Expired tokens fail verification on their own, so a store only has to\n * remember a nonce until `expiresAt`; anything older may be dropped.\n */\nexport interface NonceStore {\n /**\n * Records `nonce` as spent until `expiresAt` (epoch milliseconds). Resolves\n * `true` when this call is the one that spent it, `false` when it was\n * already spent. Must be atomic across every process sharing the store.\n *\n * A rejection is treated as \"could not be spent\": the answer is refused,\n * and the user is asked again. A replay guard that silently lets an answer\n * through when its backing store is down is not a guard.\n */\n consume(nonce: string, expiresAt: number): Promise<boolean>;\n}\n\n/**\n * The in-process store. Bounded by the tokens issued in one TTL window: an\n * entry is dropped once its token expires, swept amortized O(1) per insert.\n */\nexport class MemoryNonceStore implements NonceStore {\n private readonly spent = new Map<string, number>();\n /** Sweep when the map has grown past this, so sweeping costs O(1) per insert\n * amortized instead of walking every entry on every answer. */\n private sweepAt = 1024;\n\n async consume(nonce: string, expiresAt: number): Promise<boolean> {\n return this.consumeSync(nonce, expiresAt);\n }\n\n /**\n * The same decision without the promise. JavaScript runs it to completion,\n * so within one process it is atomic. `now` is injectable for tests.\n */\n consumeSync(nonce: string, expiresAt: number, now = Date.now()): boolean {\n if (this.spent.size >= this.sweepAt) this.sweep(now);\n const spentUntil = this.spent.get(nonce);\n // A record past its own expiry binds nothing: the token it refers to fails\n // verification on its own, so holding the nonce would only grow the map.\n if (spentUntil !== undefined && spentUntil > now) return false;\n this.spent.set(nonce, expiresAt);\n return true;\n }\n\n get size(): number {\n return this.spent.size;\n }\n\n private sweep(now: number) {\n for (const [nonce, expiresAt] of this.spent) {\n if (expiresAt <= now) this.spent.delete(nonce);\n }\n this.sweepAt = Math.max(1024, this.spent.size * 2);\n }\n}\n\n/** The slice of Bun's `RedisClient` this store needs: `send(command, args)`. */\nexport interface NonceRedisClient {\n send(command: string, args: string[]): Promise<any>;\n}\n\nexport interface RedisNonceStoreOptions {\n /**\n * Client to run against. Defaults to the app's shared client from\n * `RedisServiceProvider`, resolved on first use so constructing the store\n * never needs a kernel or a connection.\n */\n client?: NonceRedisClient;\n /** Key namespace. Defaults to `gemi:ai:nonce`. */\n prefix?: string;\n}\n\n/**\n * Spent nonces in Redis, shared by every instance of the app. `SET ... NX` is\n * a single command, so the insert-if-absent is atomic in Redis; `PX` hands the\n * cleanup to Redis at the token's own expiry.\n *\n * ```ts\n * const nonces = new RedisNonceStore();\n *\n * class ChatController extends AgentController<typeof chat> {\n * agent = chat;\n * nonces = nonces;\n * }\n * ```\n *\n * A Redis failure rejects, and the answer it was checking is refused (see\n * `NonceStore.consume`).\n */\nexport class RedisNonceStore implements NonceStore {\n private readonly injectedClient?: NonceRedisClient;\n private readonly prefix: string;\n\n constructor(options: RedisNonceStoreOptions = {}) {\n this.injectedClient = options.client;\n this.prefix = options.prefix ?? \"gemi:ai:nonce\";\n }\n\n async consume(nonce: string, expiresAt: number): Promise<boolean> {\n // At least 1ms: `PX 0` is an error, and an already-expired token never\n // reaches here (verification refuses it first) unless the clock moved.\n const ttl = Math.max(1, Math.ceil(expiresAt - Date.now()));\n const reply = await this.client.send(\"SET\", [\n `${this.prefix}:${nonce}`,\n \"1\",\n \"PX\",\n String(ttl),\n \"NX\",\n ]);\n // `OK` when the key was set, nil when it already existed.\n return reply === \"OK\";\n }\n\n private get client(): NonceRedisClient {\n if (this.injectedClient) return this.injectedClient;\n const container = app();\n const client = container.bound(RedisManager)\n ? container.make(RedisManager).client\n : undefined;\n if (!client) {\n throw new Error(\n \"RedisNonceStore could not reach the Redis client. Register RedisServiceProvider on your application, or pass a client: new RedisNonceStore({ client }).\",\n );\n }\n return client;\n }\n}\n\n/**\n * The slice of a model a `PrismaNonceStore` writes to: a Prisma client's\n * delegate (`prisma.mcpOAuthUse`) or a gemi ORM model class (`McpOAuthUse`).\n * Rows are `{ key: string; expiresAt: Date }`, `key` the primary key.\n */\nexport interface NonceModel {\n create(args: { data: { key: string; expiresAt: Date } }): PromiseLike<unknown>;\n deleteMany(args: { where: Record<string, unknown> }): PromiseLike<{ count: number }>;\n}\n\nexport interface PrismaNonceStoreOptions {\n /**\n * Put in front of every nonce, so a table shared with other single-use keys\n * (`McpOAuthUse`, whose keys are SHA-256 hex) cannot collide with them.\n * Default `\"\"`.\n */\n prefix?: string;\n}\n\n/**\n * Spent nonces in a table of the app's database, shared by every instance\n * that shares the database: for an app with no Redis. Spending is an\n * `INSERT` of the nonce as the primary key, so the database settles a race:\n * of two instances handed the same answer, one insert goes in and the other\n * hits the key and is told \"already spent\".\n *\n * ```prisma\n * model McpOAuthUse {\n * key String @id\n * expiresAt DateTime\n * }\n * ```\n *\n * ```ts\n * const nonces = new PrismaNonceStore(McpOAuthUse, { prefix: \"nonce:\" }); // gemi ORM model\n * const nonces = new PrismaNonceStore(prisma.mcpOAuthUse, { prefix: \"nonce:\" }); // Prisma client\n * ```\n *\n * A row past its `expiresAt` binds nothing (the token it was spent for fails\n * verification on its own), so `prune()` deletes them; run it from a\n * scheduled job. A failing database rejects, and the answer is refused (see\n * `NonceStore.consume`).\n */\nexport class PrismaNonceStore implements NonceStore {\n private readonly prefix: string;\n\n constructor(\n private readonly model: NonceModel,\n options: PrismaNonceStoreOptions = {},\n ) {\n if (typeof model?.create !== \"function\" || typeof model.deleteMany !== \"function\") {\n throw new Error(\n \"PrismaNonceStore needs a model with create() and deleteMany(): a gemi ORM model class or a Prisma client's delegate, like prisma.mcpOAuthUse.\",\n );\n }\n this.prefix = options.prefix ?? \"\";\n }\n\n async consume(nonce: string, expiresAt: number): Promise<boolean> {\n const key = this.prefix + nonce;\n if (await this.insert(key, expiresAt)) return true;\n // A row left over past its expiry (not pruned yet) binds nothing. Deleting\n // it is guarded by its expiry, so of two racers at most one deletes it,\n // and the primary key still lets only one insert in.\n const { count } = await this.model.deleteMany({\n where: { key, expiresAt: { lte: new Date() } },\n });\n return count > 0 && (await this.insert(key, expiresAt));\n }\n\n /** Deletes the nonces that have expired, and resolves to how many. */\n async prune(now = Date.now()): Promise<number> {\n const where: Record<string, unknown> = { expiresAt: { lte: new Date(now) } };\n if (this.prefix !== \"\") where.key = { startsWith: this.prefix };\n const { count } = await this.model.deleteMany({ where });\n return count;\n }\n\n private async insert(key: string, expiresAt: number): Promise<boolean> {\n try {\n await this.model.create({ data: { key, expiresAt: new Date(expiresAt) } });\n return true;\n } catch (error) {\n if (isUniqueViolation(error)) return false;\n throw error;\n }\n }\n}\n\n/**\n * A write refused by a unique key: gemi ORM's `UniqueConstraintError`, or\n * Prisma's `P2002` for an app whose models are a Prisma client. The Prisma\n * code is recognised here, inside a store written for both, and is not part\n * of gemi's public surface (see `UniqueConstraintError`).\n */\nexport function isUniqueViolation(error: unknown): boolean {\n if (isUniqueConstraintError(error)) return true;\n return typeof error === \"object\" && error !== null && (error as { code?: unknown }).code === \"P2002\";\n}\n\n/** The process-wide default, shared by every agent that is not given a store. */\nexport const defaultNonceStore = new MemoryNonceStore();\n",
|
|
6
6
|
"import type { AgentError, AgentErrorCode } from \"./types\";\n\n/**\n * A tool failure whose message is meant to be read: by the model, which can\n * act on it, and by the client, which shows it.\n *\n * Any other exception a tool throws reaches the model and the client as a\n * generic sentence (see `redactError`), because its message is whatever the\n * code underneath happened to say: a database driver's connection string, an\n * internal hostname, a third party's error body. The full error is logged.\n * Throw this instead when the message is written for the person:\n *\n * ```ts\n * if (!order) throw new ToolError(`There is no order ${input.orderId}.`);\n * ```\n */\nexport class ToolError extends Error {\n /** Whether the model may try the call again. Default `true`. */\n readonly retryable: boolean;\n\n constructor(message: string, options: { retryable?: boolean; cause?: unknown } = {}) {\n super(message, options.cause !== undefined ? { cause: options.cause } : undefined);\n this.name = \"ToolError\";\n this.retryable = options.retryable ?? true;\n }\n}\n\n/**\n * Where an error being redacted came from, with the unredacted detail.\n *\n * - `run`: the run's own failure, on its `error` frame. `failure` is what\n * `result().error` returns: the provider's own message, its HTTP status and\n * request id.\n * - `tool`: a tool threw. `cause` is what it threw; the result the model and\n * the client read is the redacted one.\n */\nexport type ErrorRedactionInfo =\n | {\n source: \"run\";\n failure: AgentError & { status?: number; requestId?: string };\n }\n | {\n source: \"tool\";\n toolName: string;\n cause: unknown;\n };\n\n/**\n * Decides what a client (and, for a tool, the model) is told about a failure.\n * Return the error to send. Full detail is never lost: it stays on\n * `result().error`, in the log and in the controller's `onError`.\n */\nexport type ErrorRedactor = (error: AgentError, info: ErrorRedactionInfo) => AgentError;\n\n/**\n * The run failures whose message comes from outside gemi: a provider's error\n * body or an exception's text. Those can carry resource and deployment names,\n * internal URLs, request ids and, in a provider's validation message, pieces of\n * the request itself. The rest (`timeout`, `invalid_output`, `aborted`, ...)\n * are sentences gemi wrote and are kept.\n */\nconst GENERIC_RUN_MESSAGES: Partial<Record<AgentErrorCode, string>> = {\n provider_error: \"The model provider returned an error.\",\n rate_limited: \"The model provider is rate limiting requests. Try again shortly.\",\n context_length_exceeded: \"The conversation is too long for the model.\",\n content_filtered: \"The model provider's content filter blocked this request.\",\n invalid_tool_input: \"The model provider rejected the request.\",\n tool_error: \"A tool failed.\",\n unknown: \"The run failed unexpectedly.\",\n};\n\n/**\n * The default redaction, and what an override of `AgentController.redactError`\n * falls back to.\n *\n * Keeps `code`, `retryable` and `toolCallId`, which are what a client branches\n * on, and replaces a message that did not come from gemi with a fixed sentence\n * for its code. A tool's exception keeps its message only when it is a\n * `ToolError`.\n */\nexport function redactError(error: AgentError, info: ErrorRedactionInfo): AgentError {\n if (info.source === \"tool\") {\n if (info.cause instanceof ToolError) return error;\n return {\n ...error,\n message: `The tool \"${info.toolName}\" failed with an unexpected error.`,\n };\n }\n const generic = GENERIC_RUN_MESSAGES[error.code];\n return generic === undefined ? error : { ...error, message: generic };\n}\n\n/**\n * Runs an app's redactor and keeps only the `AgentError` fields of what it\n * returns, so a redactor that spreads the failure (`{ ...info.failure }`)\n * cannot put its status or request id on the wire by accident. A redactor\n * that throws falls back to the default rather than to the unredacted error.\n */\nexport function applyRedaction(\n redactor: ErrorRedactor | undefined,\n error: AgentError,\n info: ErrorRedactionInfo,\n onFailure: (err: unknown) => void,\n): AgentError {\n let out: AgentError;\n try {\n out = (redactor ?? redactError)(error, info);\n } catch (err) {\n onFailure(err);\n out = redactError(error, info);\n }\n return {\n code: out.code,\n message: out.message,\n ...(out.toolCallId !== undefined ? { toolCallId: out.toolCallId } : {}),\n retryable: out.retryable,\n };\n}\n\n/**\n * The unredacted error behind a redacted one, for the server-side hooks.\n *\n * Keyed by the object put on the frame, which is the object the controller's\n * event hooks are handed in the same process; it never crosses a wire.\n */\nconst unredacted = new WeakMap<AgentError, AgentError>();\n\nexport function rememberUnredacted(redacted: AgentError, original: AgentError): void {\n if (redacted !== original) unredacted.set(redacted, original);\n}\n\n/** The original of `error` when it was redacted in this process, else `error`. */\nexport function unredactedError(error: AgentError): AgentError {\n return unredacted.get(error) ?? error;\n}\n",
|
|
7
7
|
"import { ToolError } from \"../redact\";\nimport type {\n PutFileParams,\n ReadFileParams,\n ReadResult,\n} from \"../../services/file-storage/drivers/types\";\nimport type { Usage } from \"../types\";\n\n/**\n * The bytes of an upload, kept by gemi, and the scope that says whose they are.\n *\n * WHY THIS EXISTS. `AgentController.upload` used to hand the file straight to\n * the model provider and keep nothing, which is the trade `AgentProvider.upload`\n * documents — provider file ids in the history, no storage story. That is a fine\n * trade for vision and it fails the moment a *tool* needs the file: the user\n * uploads an image and asks the agent to create a product, `POST /products`\n * wants multipart bytes, and the server is holding a provider file id and\n * nothing else. The model cannot make up the difference — it *saw* the image, it\n * cannot reproduce it — and the only recovery left is downloading from the\n * vendor, which is a round trip for bytes we held minutes ago, is not declared\n * anywhere (`AgentProvider` has `upload` and no counterpart), and is subject to\n * a retention policy that is not ours.\n *\n * WHY THE SCOPE IS NOT OPTIONAL. Once a tool takes an attachment id as an\n * argument, that id arrives *from the model*, and a model's arguments are as\n * untrusted as a request body: whatever the model wrote is a function of what it\n * read, and it reads the user's text, tool output, and any document it was\n * shown. A store that resolves ids globally therefore lets a prompt-injected\n * model name another tenant's upload and have the server fetch it — the model as\n * confused deputy, spending the server's own credentials.\n *\n * So there is no `find(id)` on this interface, only `find(scope, id)`, and the\n * thing a tool is handed is a `ScopedAttachments` whose methods take no scope at\n * all because it already closed over one. The unscoped read is not discouraged,\n * it is unspellable: the tool has no object to call it on. The scope itself is\n * derived from the server's own knowledge of the request — see\n * `AgentController.attachmentScope` — and never from anything the model can\n * write.\n */\n\n/**\n * The subject an attachment belongs to, as one opaque string.\n *\n * ONE STRING, COMPARED WITH `===`, RATHER THAN A STRUCTURE OF user/thread/org\n * fields. gemi does not have an opinion about tenancy — there is no `Org` in\n * this framework — so a structured scope would have had to be a bag of optional\n * fields, and a bag of optional fields has a worst member: `{}`, which under any\n * partial-match rule matches everything. Every such rule admits `{}` — or\n * `{ userId: undefined }`, which is the same thing arrived at by a typo — so one\n * forgetful line in an app turns the scope check into a no-op that still\n * typechecks. An opaque key has no such member: an app that wants org isolation\n * writes `org:${org.id}` and gets it, and an app that decides a request has no\n * subject returns `null` from `attachmentScope()` and gets no attachment ids at\n * all, rather than a bucket everyone shares.\n *\n * It is an object rather than a bare `string` for one reason, and it is a real\n * one: `find(scope, id)` taking two bare strings is a signature whose arguments\n * can be transposed, and the transposition typechecks, runs, and is a scope\n * check comparing an id against an id. The wrapper makes that a compile error.\n *\n * The key is never shown to the model and never sent to the client. It is a\n * server-side comparison value; it is not a path component and is not parsed.\n */\nexport type AttachmentScope = { readonly key: string };\n\n/**\n * Where an upload's bytes were sent. See `AgentController.attachmentDestination`.\n *\n * `\"provider\"` DESCRIBES A RECORD `upload` NEVER WRITES. A file that goes to the\n * provider alone leaves gemi holding nothing to resolve — `read` and `file`\n * would throw for it — so the route answers `fileId` and mints no attachment id\n * at all, and there is no id for anyone to look up its name with. The value is\n * on this type because a store *can* hold such a row (a custom `AttachmentStore`\n * filing provider uploads for its own bookkeeping is a reasonable thing to\n * write, and `ScopedAttachments` handles it correctly), not because the shipped\n * route produces one.\n */\nexport type AttachmentDestination = \"both\" | \"provider\" | \"storage\";\n\n/**\n * One recorded upload.\n *\n * `fileId` and `objectName` are both optional and at least one is always\n * present, because which of them exists is exactly the destination decision:\n * `provider` has a `fileId` and no bytes of ours, `storage` has bytes and no\n * `fileId`, `both` has both.\n */\nexport type Attachment = {\n /**\n * gemi's id for the upload — the one a tool takes as an argument, and the only\n * id in this module that may be shown to a model.\n *\n * Prefixed `gemi_att_` so that the mistake everyone makes once — a gemi\n * attachment id put into `FilePart.fileId`, which is a *provider* id — is\n * caught by a sentence to read rather than by whatever the vendor says about\n * a file it has never heard of, mid-conversation. `toResponsesInput` checks\n * for the prefix; the vendor's own answer to a bogus `file_id` has not been\n * measured, and the guard does not depend on it.\n */\n id: string;\n /**\n * The scope this was filed under, carried on the record so `ScopedAttachments`\n * can check it a second time. See `ScopedAttachments.get` for why the second\n * check is not redundant.\n */\n scopeKey: string;\n /** The provider file id, when the file was sent to the provider. */\n fileId?: string;\n /** The storage object name, when the bytes were kept. Feed it to `read`. */\n objectName?: string;\n /** The client's filename, kept so a tool can forward the file under it. */\n name: string;\n mimeType: string;\n size: number;\n createdAt: string;\n destination: AttachmentDestination;\n};\n\n/**\n * Where attachment *records* live. The bytes are in `AttachmentStorage`; this\n * holds the row that says which bytes, whose, and under what id.\n *\n * The default is `MemoryAttachmentStore`, which dies with the process, exactly\n * like `MemoryAgentStore`. An app that wants an attachment to outlive a deploy\n * implements this over a table — `id` primary key, `scope_key` column — and\n * assigns it to `AgentController.attachments`.\n *\n * IF YOU IMPLEMENT THIS, THE ONE THING YOU MUST NOT DO is answer `find` from the\n * id alone. `SELECT * FROM attachments WHERE id = ?` is the leak this module\n * exists to prevent, and it passes every test an app writes about its own\n * uploads, because those uploads are always in scope. It is wrong only for an id\n * that came from somewhere else, which is to say only when it matters. The\n * clause is `WHERE id = ? AND scope_key = ?`.\n */\nexport interface AttachmentStore {\n /** Records an attachment under `scope`. The caller has already minted the id. */\n put(scope: AttachmentScope, attachment: Attachment): Promise<void>;\n /**\n * The attachment with this id *within this scope*, or `null`.\n *\n * `null` for an id that does not exist and `null` for an id that exists under\n * another scope, and the caller cannot tell which — deliberately. See\n * `AttachmentNotFoundError`.\n */\n find(scope: AttachmentScope, id: string): Promise<Attachment | null>;\n}\n\n/**\n * The bytes half: whatever the app's file storage is.\n *\n * Structurally satisfied by the `Storage` facade, which is what\n * `AgentController` defaults to. Declared as an interface of two methods rather\n * than as `typeof Storage` so a test — or an app with a second bucket for user\n * uploads — can pass something else without standing up a container.\n */\nexport interface AttachmentStorage {\n put(params: PutFileParams | Blob): Promise<string>;\n read(params: ReadFileParams | string): Promise<ReadResult>;\n}\n\n/**\n * What both a missing id and someone else's id answer.\n *\n * THE MESSAGE MUST NOT SAY WHICH. \"Exists but is not yours\" and \"does not exist\"\n * are two answers to a question the caller is not entitled to ask, and a store\n * that distinguishes them is an oracle: a prompt-injected model that can tell\n * the two apart can walk an id space and report back which ids are live, which\n * is a tenant census delivered through the very tool the injection was aimed at.\n * One error, one wording, one code, for both.\n *\n * A `ToolError` rather than a `RequestBreakerError`: this is thrown inside a\n * tool, where the agent loop turns a throw into a tool result the model reads\n * and can recover from, not inside a route where it would decide a status code.\n * A `ToolError` so the model and the client are shown its message (#446).\n */\nexport class AttachmentNotFoundError extends ToolError {\n readonly code = \"attachment_not_found\";\n constructor(public readonly id: string) {\n super(`No attachment ${id}.`);\n this.name = \"AttachmentNotFoundError\";\n }\n}\n\n/** Raised for a scope no caller could have meant. See `assertScope`. */\nexport class InvalidAttachmentScopeError extends ToolError {\n readonly code = \"invalid_attachment_scope\";\n constructor(message: string) {\n super(message);\n this.name = \"InvalidAttachmentScopeError\";\n }\n}\n\n/**\n * Rejects the empty scope.\n *\n * `{ key: \"\" }` is what an app produces by writing `` `org:${org?.id ?? \"\"}` ``\n * for a request that has no org, and it is the one value that must never reach a\n * store: it compares equal to itself, so every subject-less upload in the\n * process lands in one shared bucket that every subject-less caller can read out\n * of. That is the global store this module exists not to be, arrived at by a\n * template literal. Failing here is loud, happens on the first request, and\n * names the method to fix.\n */\nfunction assertScope(scope: AttachmentScope): AttachmentScope {\n if (!scope || typeof scope.key !== \"string\" || scope.key.length === 0) {\n throw new InvalidAttachmentScopeError(\n \"An attachment scope needs a non-empty key. Return `null` from `attachmentScope()` for a request that has no subject — an empty key is a bucket every caller shares.\",\n );\n }\n return scope;\n}\n\n/** The prefix on every gemi attachment id. See `Attachment.id`. */\nexport const ATTACHMENT_ID_PREFIX = \"gemi_att_\";\n\nexport function newAttachmentId(): string {\n return `${ATTACHMENT_ID_PREFIX}${crypto.randomUUID()}`;\n}\n\n/**\n * The handle a tool is given, and the only attachment API a tool should ever\n * see.\n *\n * IT TAKES NO SCOPE, ON ANY METHOD. That is the whole design, and it is not a\n * convenience: an API where the scope is a parameter is an API where the scope\n * is a parameter someone passes the wrong thing to — and the wrong thing here is\n * whatever the model wrote, because inside a tool body the model's arguments are\n * the variables closest to hand. Handing the tool an object that has already\n * closed over the server's answer leaves nothing to pass. `resolve(id, scope)`\n * was the rejected shape: it is the same code with the mistake still available.\n */\nexport class ScopedAttachments {\n constructor(\n private readonly store: AttachmentStore,\n private readonly storage: AttachmentStorage,\n private readonly scope: AttachmentScope,\n ) {\n assertScope(scope);\n }\n\n /**\n * The scope's key. Read by `ctx.jobs.start` (#461), which records it on the\n * job so a background job gets the same attachments its tool had. Only the\n * key leaves: it is the server's answer, not something a tool can set.\n */\n get scopeKey(): string {\n return this.scope.key;\n }\n\n /**\n * The record for `id`, or `AttachmentNotFoundError`.\n *\n * THE SCOPE IS CHECKED TWICE HERE, and the second check is the one that\n * matters. `store.find` is an app's code — a table lookup somebody wrote, with\n * a `WHERE` clause somebody has to have remembered — and the failure mode of\n * forgetting the scope clause is a query that works perfectly for every upload\n * the app's own tests make. Comparing `record.scopeKey` again is three lines\n * that hold even when that clause is missing, so a careless store finds nothing\n * across scopes instead of leaking.\n *\n * It is not defence against a *malicious* store — an app's store is the app's\n * own code and could return anything. It is defence against the ordinary\n * version of this bug, which is the one that ships.\n */\n async get(id: string): Promise<Attachment> {\n const record = await this.store.find(this.scope, id);\n if (!record || record.scopeKey !== this.scope.key) {\n throw new AttachmentNotFoundError(id);\n }\n return record;\n }\n\n /**\n * The bytes, streaming, with the metadata `createStreamResponse` wants.\n *\n * Throws `AttachmentNotFoundError` for an attachment that exists but whose\n * bytes were never kept — a `provider`-destination upload. The same error as\n * an unknown id, for the reason on that class: \"it is at the vendor and not\n * here\" is information about someone else's upload as readily as about your\n * own.\n */\n async read(id: string): Promise<ReadResult> {\n return await this.readRecord(id, await this.get(id));\n }\n\n /**\n * The bytes for a record already resolved, so `file()` does one lookup rather\n * than two. `store.find` is a `SELECT` in any real store, and the second one\n * was not a second check of anything — same scope, same id, same row.\n *\n * It still takes the id the *caller* asked for, rather than reading\n * `record.id`, so the error stays a function of the caller's own input: an app\n * store that answers with the wrong row must not get to choose which id\n * appears in a message the model may read.\n */\n private async readRecord(id: string, record: Attachment): Promise<ReadResult> {\n if (!record.objectName) {\n throw new AttachmentNotFoundError(id);\n }\n return await this.storage.read({ name: record.objectName });\n }\n\n /**\n * The bytes as a `File`, under the name and type they were uploaded with —\n * which is the shape the motivating case actually needs, because\n * `form.append(\"image\", file)` is what a tool forwarding an upload to a\n * multipart endpoint writes.\n *\n * Buffers, and says so. `read()` is there for anything large enough that\n * buffering it is the wrong call.\n *\n * THIS IS ALSO HOW AN ATTACHMENT OUTLIVES THE RUN, and it is `file()` rather\n * than `read()` that composes for it:\n *\n * const file = await ctx.attachments.file(id);\n * await Storage.put({ name: `pages/${pageId}/hero.png`, body: file });\n *\n * `read()` answers a `ReadResult` whose `body` is `ReadableStream | Blob |\n * null`, and `PutFileParams.body` is `Blob | File | Buffer` — a stream body\n * has nowhere to go without being drained first.\n *\n * Two things that bite on the way out, both silent:\n *\n * - **Do not keep a `gemi_att_` id as an app's durable handle to a file.**\n * The default record store is `MemoryAttachmentStore`, so the id→object\n * mapping dies with the process while the bytes stay in storage. Copy the\n * file under a key of the app's own and keep that.\n * - **Put an extension on that key.** `FileSystemDriver` — the default —\n * ignores `contentType` on write and re-derives the type from the stored\n * path on read, so an extensionless object serves as\n * `application/octet-stream` and an `<img>` pointed at it renders nothing,\n * with no error anywhere. `attachmentObjectName` carries one over for this\n * module's own writes; an app's key is the app's to name.\n */\n async file(id: string): Promise<File> {\n const record = await this.get(id);\n const result = await this.readRecord(id, record);\n const body = result.body;\n const blob =\n body instanceof Blob ? body : body ? await new Response(body).blob() : new Blob([]);\n return new File([blob], record.name, { type: record.mimeType });\n }\n\n /**\n * Stores bytes a tool produced, under this caller's scope, and answers the\n * record.\n *\n * Here rather than on the store because the id, the object name and the scope\n * all have to be decided together, and because an attachment a tool created\n * has to land in the scope the tool is reading from — otherwise a tool writes\n * a file the next tool of the same run cannot see.\n *\n * Nothing is sent to the provider: bytes a tool made are bytes for the app,\n * and a tool that wants the model to look at its output says so by returning\n * something the model can read. Issue #490 builds `ctx.attachments.put(blob)`\n * on exactly this.\n */\n async put(\n blob: Blob,\n params: { name?: string; mimeType?: string; fileId?: string } = {},\n ): Promise<Attachment> {\n const id = newAttachmentId();\n const mimeType = params.mimeType ?? blob.type ?? \"\";\n const name = params.name ?? (blob instanceof File ? blob.name : id);\n const objectName = await this.storage.put({\n name: attachmentObjectName(id, name),\n body: blob,\n contentType: mimeType || undefined,\n });\n const record: Attachment = {\n id,\n scopeKey: this.scope.key,\n objectName,\n name,\n mimeType: mimeType || \"application/octet-stream\",\n size: blob.size,\n createdAt: new Date().toISOString(),\n // `both` when the caller has already sent the same bytes to the provider,\n // which is what `ctx.attachments.put(blob, { showModel: true })` does\n // before it gets here.\n //\n // The parameter exists rather than a second `markShown` call because the\n // alternative is a row that is briefly, and then permanently if the second\n // write fails, a lie: `destination` is the field that says where the bytes\n // went, and a file sitting in the vendor's file list under a record that\n // says `storage` is exactly the discrepancy the field was added to close.\n // Nothing here uploads — the provider is the run's, not this module's —\n // so the id is passed in rather than produced.\n destination: params.fileId ? \"both\" : \"storage\",\n ...(params.fileId ? { fileId: params.fileId } : {}),\n };\n await this.store.put(this.scope, record);\n return record;\n }\n}\n\n/**\n * What a tool asks for when it parks bytes.\n *\n * `showModel` is the whole of issue #490 in one flag: without it a tool's\n * output is an id in a string, which the model can quote back and cannot look\n * at, so \"edit this image\" produces a file nobody but the app ever sees. With\n * it the same bytes also go to the provider and come back into the transcript\n * as an input-role message the next step is built on — generate, look, fix.\n *\n * It is a flag rather than the default because the default costs money on every\n * call. The reasoning is `capabilitiesForModel`'s, run the other way round: a\n * file the model did not need and was shown anyway is an upload plus a set of\n * image tokens on every subsequent request of the run, on an invoice, for a\n * tool whose author never asked to be looked at. A file the model needed and\n * was not shown is a tool that returned an id, which is what tools did before\n * this existed and is visible in the transcript the moment anyone reads it. The\n * expensive mistake is the silent one here, so the expensive thing is opt in.\n */\nexport type PutAttachmentParams = {\n /** The filename to keep, so a later `file()` hands the bytes back under it. */\n name?: string;\n /** Overrides `blob.type`, which a `Blob` built from raw bytes does not have. */\n mimeType?: string;\n /**\n * Also send these bytes to the model provider and put them in front of the\n * model as an input-role message, once this tool call settles.\n *\n * Refused, loudly, by a provider whose `capabilities.fileInput` is false: the\n * request builder drops a file part such a provider cannot read, and an\n * upload paid for, stored, and then dropped on the way to the wire is the\n * silent-forever failure — the tool reports success, the model answers about\n * an image it was never shown, and nothing anywhere says why.\n */\n showModel?: boolean;\n};\n\n/**\n * The attachment API a tool is given, as `ctx.attachments`.\n *\n * Everything a `ScopedAttachments` does, plus `showModel`, plus the memo that\n * makes a re-entered tool call idempotent. It is a separate interface from\n * `ScopedAttachments` because those two additions are not properties of the\n * scope, they are properties of *one tool call*: the run has to know which call\n * a `put` belongs to in order to replay it, and the object handed to a tool is\n * therefore built per call — the same shape `ctx.runAgent` has, for the same\n * reason.\n *\n * The read half (`get`, `read`, `file`) is delegated to the `ScopedAttachments`\n * unchanged, including its two scope checks. A tool reading a file it did not\n * create is reading an id the model wrote, and #489's whole argument applies to\n * it word for word.\n */\nexport interface ToolAttachments {\n /**\n * Parks bytes under this caller's scope and answers the record.\n *\n * ON A REPLAY THIS STORES NOTHING. An escalating tool is re-entered from the\n * top on the next turn, so the body that built this blob has run before and\n * built one already; the record from that first attempt is what comes back,\n * and the bytes handed in now are dropped. That is the same bargain\n * `ctx.runAgent` makes and it is not avoidable: the id from the first attempt\n * is already in the transcript the model read, so minting a second one would\n * leave the model holding an id for bytes nobody kept — and uploading the\n * second copy would pay the vendor twice and put the same image into the\n * context twice. Work *before* a `put` still runs again; if producing the\n * bytes is what costs, branch on `ctx.resumed`.\n */\n put(blob: Blob, params?: PutAttachmentParams): Promise<Attachment>;\n /** The record for `id`, or `AttachmentNotFoundError`. Scoped. */\n get(id: string): Promise<Attachment>;\n /** The bytes, streaming. Scoped. */\n read(id: string): Promise<ReadResult>;\n /** The bytes as a `File`, under their original name and type. Scoped. */\n file(id: string): Promise<File>;\n}\n\n/**\n * One successful `ctx.attachments.put` of one tool call, written down so the\n * next turn can replay it instead of doing it again.\n *\n * Lives on `ToolCallPart.attachments`, indexed by the order the puts happened\n * in — exactly where and how `ToolCallPart.nested` records sub-runs, and for\n * exactly the same reason: the message history is the only state that survives\n * a turn boundary, in a thread and in the browser both, so a memo that is not\n * on the message is a memo a stateless app does not have.\n *\n * `shown` is absent for a plain `put`. When present it carries the provider\n * file id AND the identity of the message injected for it, because both have to\n * come back byte for byte: a replay that minted a fresh message id would put a\n * second copy of the same image in the transcript, and a client that had\n * already applied the first would show it twice.\n */\nexport type ToolAttachmentPut = {\n /** What `put` answered, replayed verbatim. */\n attachment: Attachment;\n /**\n * Set when this slot was filled by `ctx.generateImage` / `ctx.editImage`\n * rather than a plain `put`, carrying what the render reported and the\n * attachment record cannot.\n *\n * WHY THE RENDER IS MEMOIZED AT ALL, and why it is memoized *here*. An\n * escalating tool is re-entered from the top on the next turn, so a render\n * that is not written down is paid for again — and unlike a `put`, the thing\n * being repeated costs money at the vendor and about two minutes of wall\n * clock. The memo cannot hold the image: this record lives in the message\n * history, which goes over the wire and into a store on every turn, and a\n * megabyte of base64 per generated image would go with it. So what is\n * recorded is the attachment id, and the bytes live in storage where they\n * were going anyway.\n *\n * That is the whole reason `ctx.generateImage` answers an `Attachment`\n * instead of a `Blob` while `ImageModel.generate` answers the bytes: outside\n * a run there is nothing to replay and nowhere to park, and inside one there\n * has to be both.\n *\n * `size` is the pixel dimensions the model actually produced — read off the\n * response, which does not always echo the request — and is not derivable\n * from `Attachment.size`, which is a byte count.\n */\n generated?: {\n size: string;\n usage: Usage;\n };\n /** Set when `showModel` was asked for. See above. */\n shown?: {\n /** The provider's file id — what the injected `FilePart` carries. */\n fileId: string;\n /** The injected message's id, so a replay reproduces it rather than a twin. */\n messageId: string;\n /** Its `createdAt`, for the same reason. */\n createdAt: string;\n };\n};\n\n/**\n * A slot in that list, which is one `put` — or one `put` that threw.\n *\n * The failure arm exists because the index is what identifies a `put`, and an\n * index is taken the moment the call is made rather than when it succeeds: a\n * body that runs its puts concurrently must number them by the order it *asked*\n * and not by the order the network answered, or the next turn will not\n * reproduce the numbering. So a `put` that throws and is caught — a provider\n * that cannot read files, a vendor that refuses the type, a storage write that\n * fails — leaves a slot behind, and a later successful `put` in the same call\n * would otherwise leave a hole in front of it. A hole is `null` once it has\n * been through JSON, which is what a consumer walking `part.attachments`\n * crashes on; `{ failed: true }` is the same fact said out loud.\n *\n * It is written lazily, only when a later `put` needs the index above it, so a\n * tool whose puts all threw still adds no `attachments` field at all. And it is\n * not a memo: a replayed slot marked `failed` is re-attempted from scratch,\n * because there is nothing recorded to hand back and the failure may have been\n * the network's rather than the tool's.\n */\nexport type ToolAttachmentRecord = ToolAttachmentPut | { failed: true };\n\n/**\n * The object name an attachment's bytes are stored under.\n *\n * The scope is deliberately NOT in the path. A scope key is app-authored text —\n * `org:${slug}`, with whatever a slug turns out to be — and putting arbitrary\n * app text into an object name is how a `..` or a `/` ends up somewhere nobody\n * meant on the one driver that resolves names literally (`FileSystemDriver`\n * concatenates them onto a folder path). The record is what carries the scope;\n * the object name only has to be unique, and a uuid already is.\n *\n * The extension is carried over from the client's filename when it looks like\n * one, because `FileSystemDriver` reads a stored object's content type back off\n * its path and would otherwise answer `application/octet-stream` for everything.\n * `Attachment.mimeType` is the authority either way — this is for anything that\n * reads the bucket without the record.\n */\nexport function attachmentObjectName(id: string, name: string): string {\n const match = /\\.([A-Za-z0-9]{1,8})$/.exec(name);\n return `attachments/${id}${match ? `.${match[1]!.toLowerCase()}` : \"\"}`;\n}\n\n/**\n * The default: attachment records last as long as the process.\n *\n * Modelled as one flat map keyed by id, holding the scope beside the record and\n * comparing it in `find` — rather than as a map of maps, which would make the\n * scoping structural and unforgettable. That looks like the safer shape and is\n * the wrong reference implementation: an app's store is a table with an `id`\n * primary key and a `scope_key` column, and its `find` is a `WHERE` clause that\n * can be written wrong. The store gemi ships should have the same failure\n * available to it as the store an app writes, so that a test written against\n * this one is a test of the check every real store also has to make.\n */\nexport class MemoryAttachmentStore implements AttachmentStore {\n private readonly rows = new Map<string, Attachment>();\n\n async put(scope: AttachmentScope, attachment: Attachment): Promise<void> {\n assertScope(scope);\n this.rows.set(attachment.id, { ...attachment, scopeKey: scope.key });\n }\n\n async find(scope: AttachmentScope, id: string): Promise<Attachment | null> {\n assertScope(scope);\n const row = this.rows.get(id);\n // The scope clause. An id belonging to another scope answers `null`, which\n // is the answer an id that does not exist gets — see\n // `AttachmentNotFoundError` for why the two must be indistinguishable.\n if (!row || row.scopeKey !== scope.key) {\n return null;\n }\n return row;\n }\n\n /** Test and dev affordance: how many rows are held, across every scope. */\n get size(): number {\n return this.rows.size;\n }\n}\n\n/**\n * The process-wide default, so an app that configures nothing still gets\n * attachment ids that work for the length of a conversation.\n *\n * Module-level for the reason `defaultAgentStore` is: the controller is\n * constructed per request, so a store assigned as `new MemoryAttachmentStore()`\n * in a field initializer is an empty store on every request, and every\n * attachment id is a miss one turn after it was minted.\n */\nexport const defaultAttachmentStore = new MemoryAttachmentStore();\n",
|
|
8
8
|
"import type { AgentError, Usage } from \"../types\";\n\n/**\n * Where a background job stands (#461).\n *\n * `running` until something settles it; `ok` and `error` are final. A job\n * moves out of `running` once, by compare-and-set (`AgentJobStore.transition`),\n * so a queue worker, a provider's webhook, a poller and the deadline sweep can\n * all race to settle the same job and exactly one of them wins.\n */\nexport type AgentJobState = \"running\" | \"ok\" | \"error\";\n\n/**\n * One background job, as the job store keeps it.\n *\n * The record is the job's state, and it is NOT the tool result. The tool\n * result in the thread says `running` and points here by `id`; the controller\n * renders the record's current state over it whenever it loads the thread (see\n * `overlayJobs`). The record is kept apart from the messages because a live\n * run writes whole messages to the store, and a job settling during that run\n * would race those writes and lose.\n */\nexport type AgentJobRecord = {\n /** `ajob_…`. Handed to the app (`JobHandle.id`) to settle a tracked job. */\n id: string;\n threadId: string;\n /** The run whose tool started the job. */\n runId: string;\n /** The tool call whose result this job settles. */\n toolCallId: string;\n toolName: string;\n /** The `runOwner` of the run that started it, or `null` for an anonymous run. */\n owner: string | null;\n /** The `AgentJob` class's queue name, or `null` for a job made with `track`. */\n job: string | null;\n /**\n * What the tool said about the job when it started it: what the model and\n * the UI see while it runs. Server-owned, and kept small by the tool.\n */\n summary?: unknown;\n state: AgentJobState;\n /** The settled output, on `ok`. */\n output?: unknown;\n /** Why it failed, on `error`. Already redacted: this is what the model reads. */\n error?: AgentError;\n /** What the job spent on model and image calls. Counted on the turn that started it. */\n usage?: Usage;\n /**\n * Set when the job's tool result never reached the thread: the run died\n * after the job started and before the result was stored. The job still\n * runs and settles; nothing in the thread shows it.\n */\n orphaned?: true;\n /**\n * The attachment scope key of the run that started the job, so the job's\n * `attachments` are the ones the tool would have had. `null` when the run\n * had none.\n */\n attachmentScope: string | null;\n /** Epoch milliseconds, on the store's clock. */\n createdAt: number;\n updatedAt: number;\n /** When the deadline sweep fails the job if it is still running. */\n deadlineAt: number;\n settledAt?: number;\n};\n\n/** What `create` is given: the record minus what the store stamps. */\nexport type NewAgentJobRecord = Omit<\n AgentJobRecord,\n \"state\" | \"createdAt\" | \"updatedAt\" | \"deadlineAt\" | \"settledAt\"\n> & {\n /** How long from now the job may run, in milliseconds. */\n deadlineMs: number;\n};\n\n/** The fields a transition may write. `id`, the thread and the call never change. */\nexport type AgentJobUpdate = Partial<\n Pick<AgentJobRecord, \"state\" | \"output\" | \"error\" | \"usage\" | \"orphaned\" | \"settledAt\">\n>;\n\n/**\n * Where background jobs live.\n *\n * `MemoryAgentJobStore` is the default and is not durable. `DatabaseAgentJobStore`\n * keeps them in a table. An app that already has a jobs table can implement\n * this over it.\n */\nexport interface AgentJobStore {\n /** Writes a new `running` record and returns it as stored. */\n create(job: NewAgentJobRecord): Promise<AgentJobRecord>;\n get(id: string): Promise<AgentJobRecord | null>;\n /**\n * A thread's jobs, newest first. `states` filters, `limit` bounds. Each\n * record is a copy the caller may keep.\n */\n listForThread(\n threadId: string,\n options?: { states?: AgentJobState[]; limit?: number },\n ): Promise<AgentJobRecord[]>;\n /**\n * Compare-and-set: applies `to` only when the job's state is one of `from`,\n * and answers whether it did. Bumps `updatedAt`, and stamps `settledAt` when\n * `to.state` moves the job out of `running`.\n */\n transition(id: string, from: AgentJobState[], to: AgentJobUpdate): Promise<boolean>;\n /** Running jobs whose `deadlineAt` is at or before `now`, oldest deadline first. */\n overdue(now: number, limit: number): Promise<AgentJobRecord[]>;\n /**\n * The store's clock, in epoch milliseconds. The deadline sweep compares\n * `deadlineAt` against this rather than the process's clock. Optional: a\n * store without one is compared against `Date.now()`.\n */\n now?(): Promise<number>;\n /**\n * Runs `fn` in a transaction, so `ctx.jobs.start` writes the record and\n * queues the job together: both or neither. Optional: without it the record\n * is written first, and a dispatch that fails then fails the record.\n */\n transaction?<T>(fn: () => Promise<T>): Promise<T>;\n}\n\n/** How many settled jobs the memory store keeps per thread before dropping the oldest. */\nconst MEMORY_SETTLED_PER_THREAD = 200;\n\n/**\n * Jobs in a map, for as long as the process lives.\n *\n * NOT DURABLE, like `MemoryAgentStore`: a restart loses every record, and a\n * job that was running is then lost too. The tool result that pointed at it\n * reads as a lost job on the next turn. It is the default so that jobs work in\n * development and tests without a table; use `DatabaseAgentJobStore` in\n * production.\n *\n * It only works when the queue runs the jobs in this same process (the memory\n * queue driver, or a database driver claiming here), since a worker in another\n * process has a map of its own.\n */\nexport class MemoryAgentJobStore implements AgentJobStore {\n private jobs = new Map<string, AgentJobRecord>();\n\n async create(job: NewAgentJobRecord): Promise<AgentJobRecord> {\n if (this.jobs.has(job.id)) {\n throw new Error(`A background job with the id ${job.id} already exists.`);\n }\n const now = Date.now();\n const { deadlineMs, ...fields } = job;\n const record: AgentJobRecord = {\n ...structuredClone(fields),\n state: \"running\",\n createdAt: now,\n updatedAt: now,\n deadlineAt: now + deadlineMs,\n };\n this.jobs.set(record.id, record);\n this.trim(record.threadId);\n return structuredClone(record);\n }\n\n async get(id: string): Promise<AgentJobRecord | null> {\n const record = this.jobs.get(id);\n return record ? structuredClone(record) : null;\n }\n\n async listForThread(\n threadId: string,\n options: { states?: AgentJobState[]; limit?: number } = {},\n ): Promise<AgentJobRecord[]> {\n const out: AgentJobRecord[] = [];\n for (const record of this.jobs.values()) {\n if (record.threadId !== threadId) continue;\n if (options.states && !options.states.includes(record.state)) continue;\n out.push(record);\n }\n out.sort(newestFirst);\n return (options.limit === undefined ? out : out.slice(0, options.limit)).map((record) =>\n structuredClone(record),\n );\n }\n\n async transition(id: string, from: AgentJobState[], to: AgentJobUpdate): Promise<boolean> {\n const record = this.jobs.get(id);\n if (!record || !from.includes(record.state)) return false;\n // Cloned in before anything is assigned, so an output that is not plain\n // data fails the transition rather than half-applying it.\n const update = structuredClone(to);\n const now = Date.now();\n Object.assign(record, update, { updatedAt: now });\n if (update.state && update.state !== \"running\" && record.settledAt === undefined) {\n record.settledAt = update.settledAt ?? now;\n }\n return true;\n }\n\n async overdue(now: number, limit: number): Promise<AgentJobRecord[]> {\n const out: AgentJobRecord[] = [];\n for (const record of this.jobs.values()) {\n if (record.state === \"running\" && record.deadlineAt <= now) out.push(record);\n }\n out.sort((a, b) => a.deadlineAt - b.deadlineAt);\n return out.slice(0, Math.max(0, limit)).map((record) => structuredClone(record));\n }\n\n async now(): Promise<number> {\n return Date.now();\n }\n\n /** Bounds a long-lived thread: running jobs are never dropped, settled ones oldest first. */\n private trim(threadId: string): void {\n const settled = [...this.jobs.values()]\n .filter((record) => record.threadId === threadId && record.state !== \"running\")\n .sort(newestFirst);\n for (const record of settled.slice(MEMORY_SETTLED_PER_THREAD)) this.jobs.delete(record.id);\n }\n}\n\n/** Newest first, with the id as a tie-break so the order is stable. */\nexport function newestFirst(a: AgentJobRecord, b: AgentJobRecord): number {\n return b.createdAt - a.createdAt || (a.id < b.id ? 1 : a.id > b.id ? -1 : 0);\n}\n",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"import { Log } from \"../facades/Log\";\nimport { AgentRunError, type AgentRunFailure, type ReasoningEffort } from \"./Agent\";\nimport type { AgentProvider } from \"./AgentProvider\";\nimport { httpErrorDetail } from \"./providers/errors\";\nimport {\n addUsage,\n appendReasoning,\n appendText,\n emptyUsage,\n outputFormat,\n parseOutput,\n raceAbort,\n resolveRope,\n RunAborted,\n} from \"./runtime\";\nimport type { Infer, Schema } from \"./Schema\";\nimport type { AgentError, AgentMessage, FinishReason, Usage } from \"./types\";\n\n/**\n * One model call with an output schema: no tools, no loop, no stream to a client.\n *\n * const result = await generate({\n * provider,\n * instructions: \"You are the copywriter of …\",\n * prompt: `The business: ${description}`,\n * output: s.object({ headline: s.string(), cta: s.string() }),\n * });\n * if (result.ok) save(result.output);\n *\n * WHAT IT IS FOR. Before this, the only structured generation gemi offered was\n * an `Agent` with an `output` schema, and an app that wanted one typed answer\n * got a tool loop it did not want and — through `ctx.runAgent` — a nested\n * transcript streamed to the browser for a value the browser never renders\n * (#594, #595). This is the agent's step without the agent: it assembles the\n * same provider call and parses the answer the same way (`runtime.ts` holds\n * both halves, shared), and that is all it does.\n *\n * INSIDE A TOOL, CALL `ctx.generate` INSTEAD. It is this function with the turn\n * bound in, not a second implementation: it aborts when the turn is stopped and\n * adds its usage to the turn's, two things a tool passing `ctx.signal` by hand\n * would forget invisibly. See `ToolContext.generate`.\n *\n * IT DOES NOT THROW FOR A BAD ANSWER. It returns `{ ok: false, error }`, and\n * `messages` and `usage` are on both arms. That is the requesting app's retry\n * pattern, and the reason for the shape: a rejected answer is retried by\n * continuing the conversation — `messages` plus \"your output was rejected:\n * <problems>\" — so the transcript holding the reply that failed is exactly\n * what the retry needs, and a throw would have lost it or buried it on an\n * exception. Usage is on both because the tokens were billed either way, and\n * the failed attempt is the one an app repeats. It is also how the rest of the\n * module already reports: `Schema.safeParse` returns a result, and a failing\n * tool is a result the model reads. Pass `throwOnError: true` to have it\n * reject with an `AgentRunError` instead, as `run.result()` can.\n *\n * A FAILURE IS LOGGED through `Log.error` by default, as a failed agent run is\n * (`logErrors: false` turns it off); a stop is not a failure and is not. On\n * `ok: false`, `error` also carries the provider's HTTP `status` and\n * `requestId` when it answered with an error, as `result().error` does.\n *\n * `error.code` says which failure it was:\n *\n * - `invalid_output` — the answer did not match the schema, was cut off at\n * `maxOutputTokens` (then `finishReason` is `\"length\"`), or never came.\n * - `timeout` — `signal` fired with a `TimeoutError`: an\n * `AbortSignal.timeout`, or the tool's `timeoutMs` under `ctx.generate`.\n * - `aborted` — `signal` fired for any other reason: a stop.\n * - anything else — the provider failed, normalized by the provider's own\n * `normalizeError` exactly as a failed agent step is (`rate_limited`,\n * `content_filtered`, `provider_error`, …).\n *\n * The one thing that does throw is a call that could never work: neither\n * `prompt` nor `messages`. That is a bug in the caller, not an outcome.\n *\n * NOT MEMOIZED, AND NOT RECORDED. It writes nothing to a thread and sends no\n * frame, which is the point of it — and it also means a tool body that is\n * re-entered after an escalation (see `ToolContext.runAgent`) calls the model\n * again. `ctx.runAgent` and `ctx.generateImage` can replay because they record\n * on the tool call; this has nothing to record into by design.\n */\nexport function generate<O extends Schema<any>>(\n params: GenerateParams<O> & { throwOnError: true },\n): Promise<GenerateSuccess<Infer<O>>>;\nexport function generate<O extends Schema<any>>(\n params: GenerateParams<O>,\n): Promise<GenerateResult<Infer<O>>>;\nexport function generate(params: GenerateParams): Promise<GenerateResult<unknown>> {\n return generateWithin(params);\n}\n\n/**\n * Where a `generate` call was made from, for its log line: `ctx.generate`\n * passes the agent, run and tool call it belongs to.\n */\nexport type GenerateOrigin = Record<string, unknown>;\n\n/**\n * `generate`, plus what `ctx.generate` needs to bind it to a turn: the origin\n * for the log line, and `settled`, which sees the result before it is logged\n * or thrown. That is where the turn adds the usage (billed whether or not the\n * answer parsed, and whether or not it is about to throw) and throws when the\n * turn itself was stopped.\n */\nexport async function generateWithin(\n params: GenerateParams,\n hooks: { origin?: GenerateOrigin; settled?: (result: GenerateResult<unknown>) => void } = {},\n): Promise<GenerateResult<unknown>> {\n // An id for the call, so the log line and an `AgentRunError` can be matched\n // up. `gen_` rather than `run_`: there is no run, and nothing is stored.\n const id = `gen_${crypto.randomUUID()}`;\n const result = await callModel(params);\n hooks.settled?.(result);\n if (!result.ok) {\n // A stop is an outcome the caller asked for, not a failure — the same rule\n // an agent run follows (an aborted run carries no `error` and is not\n // logged). A timeout is a failure: it reports `timeout`, as a run's\n // deadline does, and is logged.\n if (params.logErrors !== false && result.error.code !== \"aborted\") {\n logFailure(id, result.error, hooks.origin);\n }\n if (params.throwOnError) {\n throw new AgentRunError({\n runId: id,\n messages: result.messages,\n finishReason: result.finishReason,\n usage: result.usage,\n error: result.error,\n });\n }\n }\n return result;\n}\n\n/**\n * Through the app's logger, as a failed agent run is (`AgentRunImpl.logFailure`):\n * `Log.error`, so it lands in `storage/logs` and `onLogCreated`; outside an\n * application, where there is no logger to resolve, `console.error` instead;\n * and in development the console as well.\n */\nfunction logFailure(id: string, failure: AgentRunFailure, origin?: GenerateOrigin): void {\n const message = `[gemi/ai] generate() failed (${failure.code}${\n failure.status !== undefined ? ` ${failure.status}` : \"\"\n }): ${failure.message}`;\n const metadata = { ...origin, generateId: id, error: failure };\n let logged = false;\n try {\n Log.error(message, metadata);\n logged = true;\n } catch {\n // No application to resolve a logger from. Reported below instead.\n }\n if (!logged || process.env.NODE_ENV === \"development\") {\n console.error(message, metadata);\n }\n}\n\nasync function callModel<O extends Schema<any>>(\n params: GenerateParams<O>,\n): Promise<GenerateResult<Infer<O>>> {\n const prior = params.messages ?? [];\n if (prior.length === 0 && !params.prompt) {\n throw new Error(\n \"generate() was given neither a `prompt` nor `messages`, so there is nothing to send the model.\",\n );\n }\n\n const messages: AgentMessage[] = [...prior];\n if (params.prompt) {\n messages.push({\n id: `msg_${crypto.randomUUID()}`,\n role: \"user\",\n content: [{ type: \"text\", text: params.prompt }],\n createdAt: new Date().toISOString(),\n });\n }\n const reply: AgentMessage = {\n id: `msg_${crypto.randomUUID()}`,\n role: \"assistant\",\n content: [],\n createdAt: new Date().toISOString(),\n };\n\n // `raceAbort` wants a signal to race, and a caller with none gets one that\n // never fires rather than a second code path.\n const signal = params.signal ?? new AbortController().signal;\n let usage = emptyUsage();\n let reason: FinishReason = \"stop\";\n let error: AgentError | undefined;\n // The HTTP status and request id of a failed provider response, as an agent\n // run records them on `result().error` (#656). Server-side only.\n let detail: { status?: number; requestId?: string } = {};\n let outputText = \"\";\n\n try {\n const stream = params.provider.stream({\n // A copy: the provider is handed the array and has no business growing\n // the one this function is about to return.\n messages: [...messages],\n systemPrompt: params.instructions?.trim() ? params.instructions : undefined,\n output: outputFormat(params.output),\n reasoning: params.reasoning,\n maxOutputTokens: params.maxOutputTokens,\n temperature: params.temperature,\n signal: params.signal,\n });\n const iterator = stream[Symbol.asyncIterator]();\n try {\n for (;;) {\n // Raced, as the agent's step is: a provider that ignores its signal\n // must not be able to hold a stopped call open.\n const next = await raceAbort(Promise.resolve(iterator.next()), signal);\n if (next.done) break;\n const event = next.value;\n switch (event.type) {\n case \"output-delta\":\n outputText += event.delta;\n break;\n // Kept on the reply for what they are worth to a retry: reasoning\n // carries its item id so a continuation echoes it back and keeps the\n // prompt cache, and prose is what a model that ignored the format\n // said instead.\n case \"text-delta\":\n appendText(reply, \"text\", event.delta);\n break;\n case \"reasoning-delta\":\n appendReasoning(reply, event.id, event.delta);\n break;\n case \"finish\":\n // Usage is taken whatever happened before it; the reason only if\n // nothing already failed. A content filter reports an error and\n // then closes the call with a finish that still bills — the same\n // rule `AgentRunImpl.runStep` follows.\n usage = addUsage(usage, event.usage);\n if (!error) reason = event.reason;\n break;\n case \"error\":\n reason = \"error\";\n error = event.error;\n detail = httpErrorDetail(event);\n break;\n // `tool-call-delta`, `tool-call` and `tool-search` cannot happen:\n // no tools were sent.\n // `file-rejected` needs nothing here: the provider already sent the\n // call again without that file, and `generate()` keeps no thread\n // to mark the part in. The caller's `messages` are its own.\n }\n }\n } finally {\n // Not awaited. On the abort path the generator may be parked inside a\n // `fetch` that ignores its signal, and waiting on it would give back\n // the hang the race above exists to prevent.\n if (signal.aborted) void Promise.resolve(iterator.return?.()).catch(() => {});\n }\n } catch (thrown) {\n if (thrown instanceof RunAborted || signal.aborted) {\n reason = \"aborted\";\n error = abortError(signal);\n } else {\n reason = \"error\";\n error = params.provider.normalizeError(thrown);\n detail = httpErrorDetail(thrown);\n }\n }\n\n // A flag rather than `output !== undefined`: the schema decides what a\n // valid answer is, and nothing says it cannot be a falsy one.\n let answered = false;\n let output: Infer<O> | undefined;\n if (!error) {\n if (reason === \"length\") {\n // Never parsed. A cut-off answer is a prefix of the JSON the model meant\n // to write, `bestEffortParse` closes its brackets, and against a loose\n // schema — `s.json()` — the repaired half passes looking finished. The\n // agent loop withholds its `output` part for the same reason.\n error = {\n code: \"invalid_output\",\n message:\n \"The model ran out of output tokens before finishing its structured answer, so it was cut off. Raise maxOutputTokens, or ask for a shorter answer.\",\n retryable: true,\n };\n } else if (!outputText.trim()) {\n error = {\n code: \"invalid_output\",\n message: \"The model finished without giving a structured answer.\",\n retryable: true,\n };\n } else {\n const parsed = parseOutput(params.output, outputText);\n if (parsed.ok === true) {\n answered = true;\n output = parsed.value as Infer<O>;\n } else {\n error = parsed.error;\n }\n }\n }\n\n if (answered) {\n reply.content.push({ type: \"output\", value: output });\n } else if (outputText) {\n // The answer that failed, as the model wrote it. A retry continues this\n // transcript, and \"your output did not parse\" means little to a model that\n // cannot see what it wrote. Text rather than an `output` part because it is\n // not a value of the schema — an `output` part promises one.\n appendText(reply, \"text\", outputText);\n }\n for (const part of reply.content) {\n if ((part.type === \"text\" || part.type === \"reasoning\") && typeof part.text === \"string\") {\n part.text = resolveRope(part.text);\n }\n }\n reply.finishReason = reason;\n // One call, one message: the reply's usage is the call's, as an agent step's\n // message carries its own (#467).\n reply.usage = usage;\n messages.push(reply);\n\n if (answered) {\n return { ok: true, output: output as Infer<O>, messages, usage, finishReason: reason };\n }\n return { ok: false, error: { ...error!, ...detail }, messages, usage, finishReason: reason };\n}\n\nfunction abortError(signal: AbortSignal): AgentError {\n // `AbortSignal.timeout()` aborts with a `TimeoutError` (and so does a tool's\n // `timeoutMs`, through `ctx.signal`), and saying so is the difference\n // between \"somebody pressed stop\" and \"try again with more time\".\n const timedOut = (signal.reason as { name?: unknown } | undefined)?.name === \"TimeoutError\";\n // The same code an agent run's deadline and a tool's `timeoutMs` report\n // (#455), so one branch on `\"timeout\"` covers all three.\n return timedOut\n ? { code: \"timeout\", message: \"The generation timed out.\", retryable: true }\n : { code: \"aborted\", message: \"The generation was stopped.\", retryable: false };\n}\n\n/** What `generate` and `ctx.generate` are given. `messages` and `prompt` are\n * alternatives, and together the prompt is appended as the next user turn —\n * the same pair `ctx.runAgent` takes, so a retry reads the same in both. */\nexport interface GenerateParams<O extends Schema<any> = Schema<any>> {\n provider: AgentProvider;\n /**\n * The answer's shape, and the type of `output`. Required: a call without one\n * is a chat completion, which is not what this is.\n *\n * `strict` is read off the schema, as it is for an agent — a schema holding\n * an `s.json()` node is sent non-strict, since strict mode cannot express it.\n */\n output: O;\n /** The system prompt. */\n instructions?: string;\n /** Prior turns. Returned again at the front of `messages`, untouched. */\n messages?: AgentMessage[];\n /** Sugar for one more user turn, appended after `messages`. */\n prompt?: string;\n /** Dropped by a provider whose model cannot reason, as for an agent. */\n reasoning?: ReasoningEffort;\n /**\n * The provider's `max_output_tokens`. An answer that reaches it is cut off,\n * and comes back `ok: false` with `finishReason: \"length\"` — never as a\n * repaired half that happens to pass the schema.\n */\n maxOutputTokens?: number;\n /** Sent whenever set; a reasoning model that rejects it answers 400. See\n * `CreateAgentParams.temperature`. */\n temperature?: number;\n /**\n * Stops the call; it then resolves `ok: false` with `code: \"aborted\"`, or\n * `code: \"timeout\"` when it aborted with a `TimeoutError`.\n * `AbortSignal.timeout(ms)` is how to bound one.\n *\n * On `ctx.generate` this is combined with the turn's signal rather than\n * replacing it, so a timeout of the tool's own cannot unhook a `stop()`.\n */\n signal?: AbortSignal;\n /**\n * Reject with an `AgentRunError` instead of resolving `ok: false`, as\n * `run.result({ throwOnError: true })` does for an agent. Its `result` holds\n * the `messages`, `usage` and `error`, and its `runId` is the call's\n * `gen_` id. Any `ok: false` rejects, a stop included, since there is no\n * output to resolve with; the return type is then the `ok: true` arm.\n * Default `false`.\n */\n throwOnError?: boolean;\n /**\n * Write a failed call to the app's log (`Log.error`), as a failed agent run\n * is. Default `true`. A stop (`code: \"aborted\"`) is not a failure and is not\n * logged. Turn it off when the caller reports `result.error` itself — a\n * retry loop that expects `invalid_output` now and then, say.\n */\n logErrors?: boolean;\n}\n\n/** The parts of a `GenerateResult` both arms have. */\ninterface GenerateOutcome {\n /**\n * The whole transcript: `messages` as given, the `prompt` as a user turn,\n * then the model's reply. On success the reply holds the value as an\n * `output` part; on a bad answer, the raw text the model wrote — so a retry\n * passes this straight back with a new `prompt` saying what was wrong.\n */\n messages: AgentMessage[];\n /** What the call cost, including when it failed — the tokens were billed. */\n usage: Usage;\n /** How the model call ended: `\"stop\"` on success, `\"length\"` for a cut-off\n * answer, `\"error\"` or `\"aborted\"` when it did not finish. */\n finishReason: FinishReason;\n}\n\n/**\n * Discriminated on `ok`. `output` and `error` are each declared on both arms —\n * as `undefined` on the one where they cannot be — so that destructuring\n * `{ ok, output, error }` compiles, and checking `ok` narrows both.\n */\nexport type GenerateResult<O> =\n | GenerateSuccess<O>\n | (GenerateOutcome & {\n ok: false;\n /** The `AgentError`, plus the provider's HTTP `status` and `requestId`\n * when the failure was a response from it — as on an agent run's\n * `result().error`. */\n error: AgentRunFailure;\n output?: undefined;\n });\n\n/** The `ok: true` arm of `GenerateResult`, and what `throwOnError` resolves. */\nexport type GenerateSuccess<O> = GenerateOutcome & { ok: true; output: O; error?: undefined };\n",
|
|
22
22
|
"import { Storage } from \"../../facades/Storage\";\nimport { app } from \"../../foundation/app\";\nimport { Job } from \"../../services/queue/Job\";\nimport { QueueManager } from \"../../services/queue/QueueManager\";\nimport type { GeneratedAttachment, ToolGenerateImageParams, ToolEditImageParams } from \"../Agent\";\nimport { generateWithin, type GenerateParams, type GenerateResult } from \"../generate\";\nimport type { ImageInput, ImageModel } from \"../ImageModel\";\nimport { redactError, ToolError } from \"../redact\";\nimport { addUsage, emptyUsage } from \"../runtime\";\nimport type { Infer, Schema } from \"../Schema\";\nimport {\n type Attachment,\n type AttachmentStorage,\n type AttachmentStore,\n defaultAttachmentStore,\n InvalidAttachmentScopeError,\n ScopedAttachments,\n} from \"../store/Attachments\";\nimport type { AgentError, Usage } from \"../types\";\nimport {\n type AgentJobRecord,\n type AgentJobState,\n type AgentJobStore,\n MemoryAgentJobStore,\n} from \"./AgentJobStore\";\n\n// --- the handle a tool returns -------------------------------------------\n\nconst HANDLE = Symbol.for(\"gemi.ai.JobHandle\");\n\n/**\n * What `ctx.jobs.start` and `ctx.jobs.track` answer, and what a tool returns to\n * say \"this call goes on in the background\" (#461).\n *\n * Returning it is what makes the call's result `running` rather than `ok`: the\n * model reads that the job started and is told not to start it again, the turn\n * goes on and ends as usual, and when the job settles the controller renders\n * its outcome over that result the next time it loads the thread.\n *\n * `Output` is the job's settled output, and it is what the tool's output type\n * becomes, so a client's `ToolShapes` see the job's result as the tool's.\n */\nexport class JobHandle<Output = unknown> {\n /** Phantom: the settled output's type. Never set. */\n declare readonly $output: Output;\n readonly [HANDLE] = true as const;\n\n constructor(\n /** The job's id. Hand it to whatever settles a tracked job. */\n readonly id: string,\n readonly toolCallId: string,\n readonly summary: unknown,\n /** Epoch milliseconds, on the job store's clock. */\n readonly deadlineAt: number,\n ) {}\n}\n\n/** Whether a tool's return value is a `JobHandle`, across copies of the module. */\nexport function isJobHandle(value: unknown): value is JobHandle {\n return typeof value === \"object\" && value !== null && (value as any)[HANDLE] === true;\n}\n\n// --- errors ----------------------------------------------------------------\n\n/**\n * `ctx.jobs.start` or `track` from a run that has nowhere to settle a job\n * into: a stateless turn, a run started without a job store, or a sub-run.\n *\n * A `ToolError`, so the model reads why the tool could not go to the\n * background and can say so, rather than being told the tool broke.\n */\nexport class JobsRequireThreadError extends ToolError {\n readonly code = \"jobs_require_thread\" as const;\n\n constructor(message: string) {\n super(message, { retryable: false });\n this.name = \"JobsRequireThreadError\";\n }\n}\n\n// --- the process-wide registry ----------------------------------------------\n\nlet currentStore: AgentJobStore = new MemoryAgentJobStore();\n\n/** Every state, for a transition that does not change the state. */\nconst ANY_STATE: AgentJobState[] = [\"running\", \"ok\", \"error\"];\n\n/** What a job settles with. */\nexport type AgentJobOutcome =\n | { output: unknown; usage?: Usage }\n | { error: string | Error | (Pick<AgentError, \"message\"> & Partial<AgentError>); usage?: Usage };\n\n/**\n * Background jobs, from anywhere in the app: settle one, fail one, look one up.\n *\n * PROCESS-WIDE, and that is forced. A job is started by a tool inside a run,\n * and settled by a queue worker, a provider's webhook, a poller or the deadline\n * sweep, none of which has a controller to read a store from. So the store is\n * set once, at boot, for every one of them:\n *\n * AgentJobs.use(new DatabaseAgentJobStore(app(DatabaseManager).connection()));\n *\n * Until then it is a `MemoryAgentJobStore`, which works in one process and\n * forgets on restart.\n */\nexport const AgentJobs = {\n /** The store every part of the feature reads and writes. */\n get store(): AgentJobStore {\n return currentStore;\n },\n\n /** Sets the store. Call it once, at boot, in every process that starts or runs jobs. */\n use(store: AgentJobStore): void {\n currentStore = store;\n },\n\n get(id: string): Promise<AgentJobRecord | null> {\n return currentStore.get(id);\n },\n\n /**\n * Settles a running job with its output or its error, and answers whether\n * this call did it.\n *\n * COMPARE-AND-SET FROM `running`. The first settle wins and every later one\n * answers `false` and changes nothing, so a webhook, a poller and the\n * deadline sweep can all race on one job. A job the deadline sweep has\n * already failed stays failed: a late result is refused, so the model never\n * sees a job flip from failed to done.\n *\n * An error given as a `ToolError`, a string or an `AgentError`-like object is\n * shown to the model as it is. Any other `Error` is logged in full and the\n * model is told only that the job failed, as for a tool that throws (#446).\n */\n async settle(id: string, outcome: AgentJobOutcome): Promise<boolean> {\n return settleOn(currentStore, id, outcome);\n },\n\n /** `settle(id, { error })`. */\n async fail(id: string, error: string | Error | AgentError): Promise<boolean> {\n return settleOn(currentStore, id, { error });\n },\n\n /**\n * The deadline sweep: fails every running job whose deadline has passed\n * with code `\"timeout\"`, and answers how many it failed.\n *\n * Compare-and-set like every settle, so it is safe to run on every\n * instance at once, and a result that arrives after it is refused. Run it\n * every minute with `AgentJobDeadlineSweep`; the controller also checks a\n * thread's jobs when it loads the thread, so an app without cron still sees\n * overdue jobs fail, just later. The job's queue worker is not stopped: what\n * it returns afterwards is dropped.\n */\n async sweep(options: { limit?: number } = {}): Promise<number> {\n const store = currentStore;\n const limit = options.limit ?? 100;\n const now = await clockOf(store);\n let failed = 0;\n for (const record of await store.overdue(now, limit)) {\n if (await expire(store, record)) failed++;\n }\n return failed;\n },\n};\n\n/** The store's clock, or this process's for a store without one. */\nexport async function clockOf(store: AgentJobStore): Promise<number> {\n return store.now ? await store.now() : Date.now();\n}\n\n/** Fails a running job for its deadline. Compare-and-set: false when it had settled. */\nexport function expire(store: AgentJobStore, record: AgentJobRecord): Promise<boolean> {\n return store.transition(record.id, [\"running\"], {\n state: \"error\",\n error: {\n code: \"timeout\",\n message: `The background job for \"${record.toolName}\" did not finish before its deadline, so it was given up on. Its result, if it ever arrives, is ignored.`,\n toolCallId: record.toolCallId,\n retryable: true,\n },\n });\n}\n\nasync function settleOn(\n store: AgentJobStore,\n id: string,\n outcome: AgentJobOutcome,\n): Promise<boolean> {\n const record = await store.get(id);\n if (!record || record.state !== \"running\") return false;\n const usage = outcome.usage ? addUsage(record.usage ?? emptyUsage(), outcome.usage) : undefined;\n if (\"error\" in outcome) {\n return store.transition(id, [\"running\"], {\n state: \"error\",\n error: jobError(record, outcome.error),\n ...(usage ? { usage } : {}),\n });\n }\n return store.transition(id, [\"running\"], {\n state: \"ok\",\n output: plainData(outcome.output, record),\n ...(usage ? { usage } : {}),\n });\n}\n\n/** The error the model reads. See `AgentJobs.settle`. */\nfunction jobError(\n record: Pick<AgentJobRecord, \"toolCallId\" | \"toolName\" | \"job\">,\n error: AgentJobOutcome extends infer O ? (O extends { error: infer E } ? E : never) : never,\n): AgentError {\n if (typeof error === \"string\") {\n return { code: \"tool_error\", message: error, toolCallId: record.toolCallId, retryable: true };\n }\n if (error instanceof Error) {\n const raw: AgentError = {\n code: \"tool_error\",\n message: error.message,\n toolCallId: record.toolCallId,\n retryable: error instanceof ToolError ? error.retryable : true,\n };\n if (!(error instanceof ToolError)) {\n console.error(\n `The background job ${record.job ?? \"(tracked)\"} for \"${record.toolName}\" failed.`,\n error,\n );\n }\n return redactError(raw, { source: \"tool\", toolName: record.toolName, cause: error });\n }\n return {\n code: error.code ?? \"tool_error\",\n message: String(error.message),\n toolCallId: record.toolCallId,\n retryable: error.retryable ?? true,\n };\n}\n\n/** A copy of the output that any store can keep, or a throw that says why not. */\nfunction plainData(output: unknown, record: Pick<AgentJobRecord, \"toolName\">): unknown {\n if (output === undefined) return null;\n try {\n return JSON.parse(JSON.stringify(output));\n } catch (error) {\n throw new Error(\n `The output of the background job for \"${record.toolName}\" is not JSON: ${String(error)}`,\n );\n }\n}\n\n// --- the tool side ---------------------------------------------------------\n\n/** Options for `ctx.jobs.start` and `ctx.jobs.track`. */\nexport type StartJobOptions = {\n /**\n * What the model and the UI see while the job runs, in place of a result:\n * which images, which pages. Plain data, and keep it small, since it is in\n * the history on every later turn.\n */\n summary?: unknown;\n /**\n * How long the job may run, in milliseconds. Defaults to the tool's\n * `async.deadlineMs`, else an hour. A job still running then is failed with\n * code `\"timeout\"` by the deadline sweep, and a later result is refused.\n */\n deadlineMs?: number;\n};\n\n/** A tool's `ctx.jobs`. See `ToolContext.jobs`. */\nexport interface ToolJobs {\n /**\n * Records a background job for this tool call and queues `job` to do it.\n * Return the handle from `execute` to make the call's result `running`.\n *\n * At least once, like every queued job: `job.run` may run again after a\n * crash, so make it idempotent. Only on a threaded run (a turn with a\n * `threadId` through `AgentController`), and only from a top-level tool.\n */\n start<A, O>(job: AgentJobClass<A, O>, args: A, options?: StartJobOptions): Promise<JobHandle<O>>;\n /**\n * Records a background job that something else settles: a provider's\n * webhook, a poller. Pass `handle.id` to it, and call\n * `AgentJobs.settle(id, { output })` when the work is done.\n */\n track<O = unknown>(options?: StartJobOptions): Promise<JobHandle<O>>;\n}\n\n/** What a run that may start jobs is given. `AgentController` passes it on a threaded turn. */\nexport type RunJobs = {\n /** The run's owner (`runOwner`), recorded on each job. */\n owner: string | null;\n};\n\n/** The longest a job runs when nothing says otherwise. */\nexport const DEFAULT_JOB_DEADLINE_MS = 60 * 60_000;\n\n/** @internal `ctx.jobs` for one tool call. Built by the run, per call. */\nexport function toolJobs(params: {\n jobs: RunJobs | undefined;\n threadId: string | undefined;\n runId: string;\n toolCallId: string;\n toolName: string;\n depth: number;\n /** The tool's `async` declaration; `undefined` for a tool without one. */\n async: { deadlineMs?: number } | undefined;\n attachments: ScopedAttachments | null;\n}): ToolJobs {\n /** One job per tool call: the handle the first `start`/`track` answered. */\n let started: Promise<JobHandle<any>> | null = null;\n\n const begin = (\n job: (new () => AgentJob<any, any>) | null,\n args: unknown,\n options: StartJobOptions = {},\n ) => {\n if (params.async === undefined) {\n throw new ToolError(\n `\"${params.toolName}\" called ctx.jobs, but the tool does not declare \\`async\\`. Add \\`async: { deadlineMs }\\` to its definition.`,\n { retryable: false },\n );\n }\n if (!params.jobs || !params.threadId) {\n throw new JobsRequireThreadError(\n `\"${params.toolName}\" can only run in the background on a conversation the server keeps (a turn with a threadId), and this one has none.`,\n );\n }\n if (params.depth > 0) {\n throw new JobsRequireThreadError(\n `\"${params.toolName}\" can only run in the background from the top-level agent, not from a sub-agent.`,\n );\n }\n if (started) {\n throw new ToolError(\n `\"${params.toolName}\" started a background job already: a tool call has at most one.`,\n { retryable: false },\n );\n }\n const deadlineMs = options.deadlineMs ?? params.async.deadlineMs ?? DEFAULT_JOB_DEADLINE_MS;\n if (!Number.isFinite(deadlineMs) || deadlineMs <= 0) {\n throw new ToolError(`A job's deadlineMs must be a positive number; got ${deadlineMs}.`);\n }\n const jobs = params.jobs;\n const threadId = params.threadId;\n started = (async () => {\n const store = AgentJobs.store;\n // A tool re-entered after an escalation runs from the top again. The job\n // it started the first time is the one it gets.\n const existing = (await store.listForThread(threadId, { limit: 50 })).find(\n (record) => record.toolCallId === params.toolCallId,\n );\n if (existing) return handleOf(existing);\n\n const write = async () => {\n const record = await store.create({\n id: `ajob_${crypto.randomUUID()}`,\n threadId,\n runId: params.runId,\n toolCallId: params.toolCallId,\n toolName: params.toolName,\n owner: jobs.owner,\n job: job ? job.name : null,\n ...(options.summary !== undefined ? { summary: plainData(options.summary, params) } : {}),\n attachmentScope: params.attachments?.scopeKey ?? null,\n deadlineMs,\n });\n if (job) {\n try {\n await dispatchJob(job, { jobId: record.id, args });\n } catch (error) {\n // In a store transaction the record goes with the rollback.\n if (store.transaction) throw error;\n // Nothing will ever run it, so it is failed now rather than left to\n // reach its deadline, and the tool call reports the failure.\n await store\n .transition(record.id, [\"running\"], {\n state: \"error\",\n error: {\n code: \"tool_error\",\n message: `The background job for \"${params.toolName}\" could not be queued.`,\n toolCallId: params.toolCallId,\n retryable: true,\n },\n })\n .catch(() => {});\n throw error;\n }\n }\n return record;\n };\n // Both or neither when the store can: see `AgentJobStore.transaction`.\n const record = store.transaction ? await store.transaction(write) : await write();\n return handleOf(record);\n })();\n return started;\n };\n\n return {\n start: (job, args, options) => begin(job as new () => AgentJob<any, any>, args, options),\n track: (options) => begin(null, undefined, options),\n };\n}\n\nfunction handleOf(record: AgentJobRecord): JobHandle<any> {\n return new JobHandle(record.id, record.toolCallId, record.summary, record.deadlineAt);\n}\n\n/** What the queue carries for an `AgentJob`: the record's id and the job's own arguments. */\ntype JobEnvelope = { jobId: string; args: unknown };\n\nfunction dispatchJob(job: new () => AgentJob<any, any>, envelope: JobEnvelope): Promise<string> {\n if (job.name === \"unset\" || !job.name) {\n throw new Error(\"Cannot start an AgentJob with no `static name`.\");\n }\n return app(QueueManager).push(job, JSON.stringify([envelope]));\n}\n\n// --- the job side ------------------------------------------------------------\n\n/** An `AgentJob` subclass, as `ctx.jobs.start` takes it. */\nexport type AgentJobClass<A, O> = new () => AgentJob<A, O>;\n\n/** `generateImage`'s params inside a job: as in a tool, without `showModel` (there is no run to show). */\nexport type JobGenerateImageParams = Omit<ToolGenerateImageParams, \"showModel\">;\nexport type JobEditImageParams = Omit<ToolEditImageParams, \"showModel\">;\n\n/** Attachments inside a job: the scope of the run that started it. */\nexport interface JobAttachments {\n put(blob: Blob, params?: { name?: string; mimeType?: string }): Promise<Attachment>;\n get(id: string): Promise<Attachment>;\n read: ScopedAttachments[\"read\"];\n file(id: string): Promise<File>;\n}\n\n/**\n * What `AgentJob.run` is handed beside its arguments: the parts of a tool's\n * `ToolContext` that still mean something with no run around them.\n */\nexport interface AgentJobContext {\n /** The job's id (`ajob_…`). */\n readonly id: string;\n readonly threadId: string;\n readonly toolCallId: string;\n readonly toolName: string;\n /** The `runOwner` of the run that started it. */\n readonly owner: string | null;\n readonly summary: unknown;\n /** Not aborted yet: cancellation comes with a later release (#461, phase 4). */\n readonly signal: AbortSignal;\n /**\n * The attachments of the run that started the job: what the tool's\n * `ctx.attachments` was. Throws when that run had no attachment scope.\n */\n readonly attachments: JobAttachments;\n /** `generate`, with its usage counted on the job. See `ToolContext.generate`. */\n generate<O extends Schema<any>>(params: GenerateParams<O>): Promise<GenerateResult<Infer<O>>>;\n /** Renders an image and stores it under the run's attachments. Usage is counted on the job. */\n generateImage(model: ImageModel, params: JobGenerateImageParams): Promise<GeneratedAttachment>;\n /** Edits images (bytes or attachment ids) and stores the result. Usage is counted on the job. */\n editImage(model: ImageModel, params: JobEditImageParams): Promise<GeneratedAttachment>;\n /** What this attempt has spent so far. */\n readonly usage: Usage;\n}\n\n/**\n * A queued job that settles a tool call (#461).\n *\n * class RenderImagesJob extends AgentJob<{ pageId: number; prompts: string[] }, { made: number }> {\n * static name = \"RenderImagesJob\";\n * async run({ pageId, prompts }, job) {\n * for (const prompt of prompts) await job.generateImage(model, { prompt });\n * return { made: prompts.length };\n * }\n * }\n *\n * A gemi `Job`, so it gets the queue's leases, retries, backoff and dead\n * letters. Register it with the queue like any other job. What `run` returns\n * settles the tool call `ok`; a throw on the last attempt settles it `error`.\n * At least once: make `run` idempotent.\n *\n * Declare `run` as a method, not as an arrow-function field. Override\n * `onDeadletter` only with a call to `super.onDeadletter`, which is what fails\n * the job. `worker = true` is not supported. The queue hands `uniqueId`,\n * `throttle`, `concurrency`, `onFail` and `onDeadletter` the envelope\n * `{ jobId, args }`, not `args`.\n */\nexport abstract class AgentJob<Args = unknown, Output = unknown> extends Job {\n /** Phantom: the arguments' type. Never set. */\n declare readonly $args: Args;\n /** Phantom: the output's type. Never set. */\n declare readonly $output: Output;\n\n /**\n * Where the job's `attachments` records live. Set it to what the\n * controller's `attachments` is, as for the controller itself.\n */\n attachments: AttachmentStore = defaultAttachmentStore;\n /** Where the attachments' bytes live. Defaults to the app's `Storage`. */\n attachmentStorage: AttachmentStorage = Storage;\n\n abstract run(args: Args, job: AgentJobContext): Promise<Output> | Output;\n\n constructor() {\n super();\n // The queue calls `run(...payload)`, and the payload is the envelope. The\n // subclass's `run` is the job's body, so it is wrapped here, on the\n // instance: the queue sees a `run` that loads the record, runs the body\n // and settles the job, and the subclass writes only its work.\n const body = (this as any).run as (args: Args, job: AgentJobContext) => Promise<Output>;\n (this as any).run = (envelope: JobEnvelope) => this.$runEnvelope(envelope, body);\n }\n\n /**\n * Fails the job once the queue has given up on it: its last attempt threw,\n * it called `this.fail(error, { retry: false })`, or its process died on the\n * last attempt.\n */\n onDeadletter(error: Error, ..._args: any[]): void {\n const envelope = _args[0] as JobEnvelope | undefined;\n if (!envelope?.jobId) return;\n void settleOn(AgentJobs.store, envelope.jobId, { error }).catch((err) => {\n console.error(`Could not record the failure of background job ${envelope.jobId}.`, err);\n });\n }\n\n /** @internal The queue-facing `run`: see the constructor. */\n private async $runEnvelope(\n envelope: JobEnvelope,\n body: (args: Args, job: AgentJobContext) => Promise<Output>,\n ): Promise<Output | undefined> {\n const store = AgentJobs.store;\n const record = await store.get(envelope.jobId);\n // Settled already (the deadline passed, or another attempt finished it):\n // nothing it produced would be kept, so the work is not done again.\n if (!record || record.state !== \"running\") return undefined;\n\n const context = new JobContext(record, this);\n let output: Output;\n try {\n output = await body.call(this, envelope.args as Args, context);\n } catch (error) {\n await keepUsage(store, record.id, context.usage);\n throw error;\n }\n if (this.$outcome) {\n // `this.release()` or `this.fail()`: the queue decides what happens next.\n await keepUsage(store, record.id, context.usage);\n return output;\n }\n await settleOn(store, record.id, { output, usage: context.usage });\n return output;\n }\n}\n\n/** Adds an attempt's spend to a job still running, so a retry does not lose it. */\nasync function keepUsage(store: AgentJobStore, id: string, usage: Usage): Promise<void> {\n if (usage.totalTokens === 0 && usage.inputTokens === 0 && usage.outputTokens === 0) return;\n const record = await store.get(id);\n if (!record) return;\n await store\n .transition(id, ANY_STATE, { usage: addUsage(record.usage ?? emptyUsage(), usage) })\n .catch(() => {});\n}\n\nclass JobContext implements AgentJobContext {\n readonly id: string;\n readonly threadId: string;\n readonly toolCallId: string;\n readonly toolName: string;\n readonly owner: string | null;\n readonly summary: unknown;\n readonly signal = new AbortController().signal;\n usage: Usage = emptyUsage();\n readonly attachments: JobAttachments;\n\n constructor(record: AgentJobRecord, job: AgentJob<any, any>) {\n this.id = record.id;\n this.threadId = record.threadId;\n this.toolCallId = record.toolCallId;\n this.toolName = record.toolName;\n this.owner = record.owner;\n this.summary = record.summary;\n const scoped = record.attachmentScope\n ? new ScopedAttachments(job.attachments, job.attachmentStorage, {\n key: record.attachmentScope,\n })\n : null;\n const scope = (): ScopedAttachments => {\n if (!scoped) {\n throw new InvalidAttachmentScopeError(\n \"The run that started this job had no attachment scope, so the job cannot store or read files. See `attachmentScope()` on the controller.\",\n );\n }\n return scoped;\n };\n this.attachments = {\n put: (blob, params = {}) => scope().put(blob, params),\n get: (id) => scope().get(id),\n read: (id) => scope().read(id),\n file: (id) => scope().file(id),\n };\n }\n\n generate(params: GenerateParams<any>): Promise<any> {\n return generateWithin(params, {\n origin: { threadId: this.threadId, toolCallId: this.toolCallId, jobId: this.id },\n settled: (result) => {\n this.usage = addUsage(this.usage, result.usage);\n },\n });\n }\n\n async generateImage(\n model: ImageModel,\n params: JobGenerateImageParams,\n ): Promise<GeneratedAttachment> {\n const { name, ...settings } = params as JobGenerateImageParams & { name?: string };\n const image = await model.generate({ ...settings, signal: this.signal });\n return this.park(model, image, name);\n }\n\n async editImage(model: ImageModel, params: JobEditImageParams): Promise<GeneratedAttachment> {\n const { name, images, mask, ...settings } = params as JobEditImageParams & { name?: string };\n const asInput = async (input: ImageInput | string): Promise<ImageInput> =>\n typeof input === \"string\" ? await this.attachments.file(input) : input;\n const image = await model.edit({\n ...settings,\n images: (await Promise.all(images.map(asInput))) as [ImageInput, ...ImageInput[]],\n ...(mask ? { mask: await asInput(mask) } : {}),\n signal: this.signal,\n });\n return this.park(model, image, name);\n }\n\n private async park(\n model: ImageModel,\n image: { image: Blob; mimeType: string; size: string; usage: Usage },\n name: string | undefined,\n ): Promise<GeneratedAttachment> {\n // Counted before the store write, which may fail: the render was billed.\n this.usage = addUsage(this.usage, image.usage);\n const extension = image.mimeType === \"image/jpeg\" ? \"jpg\" : \"png\";\n const attachment = await this.attachments.put(image.image, {\n name: name ?? `${model.name}.${extension}`,\n mimeType: image.mimeType,\n });\n return { attachment, size: image.size, mimeType: image.mimeType, usage: image.usage };\n }\n}\n"
|
|
23
23
|
],
|
|
24
|
-
"mappings": "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",
|
|
25
|
-
"debugId": "
|
|
24
|
+
"mappings": "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",
|
|
25
|
+
"debugId": "72639EDC084FECD064756E2164756E21",
|
|
26
26
|
"names": []
|
|
27
27
|
}
|