gemi 0.125.0 → 0.127.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/index.js +2 -2
- package/dist/ai/index.js.map +1 -1
- package/dist/app/index.js +1 -1
- package/dist/auth/connections/ConnectionsController.d.ts.map +1 -1
- package/dist/auth/oauth/GoogleOAuthProvider.d.ts +1 -1
- package/dist/auth/oauth/GoogleOAuthProvider.d.ts.map +1 -1
- package/dist/auth/oauth/InstagramOAuthProvider.d.ts +1 -1
- package/dist/auth/oauth/InstagramOAuthProvider.d.ts.map +1 -1
- package/dist/auth/oauth/XOAuthProvider.d.ts.map +1 -1
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-hff9w6rt.js → chunk-094m8mj3.js} +2 -2
- package/dist/{chunk-hff9w6rt.js.map → chunk-094m8mj3.js.map} +1 -1
- package/dist/chunk-0arss2xy.js +5 -0
- package/dist/{chunk-rany5zgk.js.map → chunk-0arss2xy.js.map} +5 -4
- package/dist/{chunk-mmqnq1qh.js → chunk-0f0xxqhy.js} +3 -3
- package/dist/{chunk-mmqnq1qh.js.map → chunk-0f0xxqhy.js.map} +1 -1
- package/dist/chunk-15bmfr7f.js +5 -0
- package/dist/{chunk-tabsxzg9.js.map → chunk-15bmfr7f.js.map} +5 -4
- package/dist/{chunk-910p6ne6.js → chunk-1dzs05dc.js} +2 -2
- package/dist/{chunk-910p6ne6.js.map → chunk-1dzs05dc.js.map} +1 -1
- package/dist/{chunk-rmgkc3a2.js → chunk-1eb4p352.js} +2 -2
- package/dist/{chunk-rmgkc3a2.js.map → chunk-1eb4p352.js.map} +1 -1
- package/dist/{chunk-cwt8e782.js → chunk-1gd1ykgj.js} +3 -3
- package/dist/{chunk-cwt8e782.js.map → chunk-1gd1ykgj.js.map} +1 -1
- package/dist/{chunk-stn0a56e.js → chunk-1v368y9a.js} +2 -2
- package/dist/{chunk-stn0a56e.js.map → chunk-1v368y9a.js.map} +1 -1
- package/dist/{chunk-x2j84d06.js → chunk-28bby5pp.js} +2 -2
- package/dist/{chunk-x2j84d06.js.map → chunk-28bby5pp.js.map} +1 -1
- package/dist/{chunk-gp00enrk.js → chunk-3fyhd641.js} +1 -1
- package/dist/{chunk-j5rwv09s.js → chunk-3hndrc5z.js} +2 -2
- package/dist/{chunk-j5rwv09s.js.map → chunk-3hndrc5z.js.map} +1 -1
- package/dist/chunk-3p9vj0h6.js +10 -0
- package/dist/{chunk-b4x1dt3s.js.map → chunk-3p9vj0h6.js.map} +4 -3
- package/dist/{chunk-ex41d03h.js → chunk-43faxwf5.js} +2 -2
- package/dist/{chunk-ex41d03h.js.map → chunk-43faxwf5.js.map} +1 -1
- package/dist/{chunk-ey1xrbaz.js → chunk-56ryda9y.js} +2 -2
- package/dist/{chunk-ey1xrbaz.js.map → chunk-56ryda9y.js.map} +1 -1
- package/dist/{chunk-t2t63wa0.js → chunk-5vvfcdpk.js} +2 -2
- package/dist/{chunk-t2t63wa0.js.map → chunk-5vvfcdpk.js.map} +1 -1
- package/dist/{chunk-p5df4pn7.js → chunk-62zn06wb.js} +2 -2
- package/dist/{chunk-p5df4pn7.js.map → chunk-62zn06wb.js.map} +1 -1
- package/dist/chunk-6c8pn6hj.js +57 -0
- package/dist/{chunk-eyptwf54.js.map → chunk-6c8pn6hj.js.map} +11 -6
- package/dist/{chunk-3br5zr7a.js → chunk-7dzprr9b.js} +3 -3
- package/dist/{chunk-3br5zr7a.js.map → chunk-7dzprr9b.js.map} +1 -1
- package/dist/{chunk-erzfs4t2.js → chunk-7eerqsg2.js} +2 -2
- package/dist/{chunk-erzfs4t2.js.map → chunk-7eerqsg2.js.map} +1 -1
- package/dist/{chunk-z5nfve1k.js → chunk-7nfprr9v.js} +2 -2
- package/dist/{chunk-z5nfve1k.js.map → chunk-7nfprr9v.js.map} +1 -1
- package/dist/{chunk-1jcngq6w.js → chunk-7x2n788t.js} +3 -3
- package/dist/{chunk-1jcngq6w.js.map → chunk-7x2n788t.js.map} +1 -1
- package/dist/{chunk-rwmja4zs.js → chunk-84rbdyhe.js} +2 -2
- package/dist/{chunk-rwmja4zs.js.map → chunk-84rbdyhe.js.map} +1 -1
- package/dist/chunk-87bmhng2.js +5 -0
- package/dist/{chunk-1xmh61fg.js.map → chunk-87bmhng2.js.map} +1 -1
- package/dist/{chunk-c0qpv8x7.js → chunk-87jj7n9q.js} +2 -2
- package/dist/{chunk-c0qpv8x7.js.map → chunk-87jj7n9q.js.map} +1 -1
- package/dist/{chunk-hxn0s3zh.js → chunk-89swy5aq.js} +2 -2
- package/dist/{chunk-hxn0s3zh.js.map → chunk-89swy5aq.js.map} +1 -1
- package/dist/{chunk-y9f2see3.js → chunk-8df7fn7f.js} +3 -3
- package/dist/{chunk-y9f2see3.js.map → chunk-8df7fn7f.js.map} +1 -1
- package/dist/{chunk-bny9s44t.js → chunk-99z9d0sa.js} +2 -2
- package/dist/{chunk-bny9s44t.js.map → chunk-99z9d0sa.js.map} +1 -1
- package/dist/{chunk-by5gwr8x.js → chunk-9hhxy88x.js} +2 -2
- package/dist/{chunk-by5gwr8x.js.map → chunk-9hhxy88x.js.map} +1 -1
- package/dist/{chunk-yhht1j7f.js → chunk-9x0pgkns.js} +2 -2
- package/dist/{chunk-yhht1j7f.js.map → chunk-9x0pgkns.js.map} +1 -1
- package/dist/{chunk-dy58aztm.js → chunk-avfntxm1.js} +2 -2
- package/dist/{chunk-dy58aztm.js.map → chunk-avfntxm1.js.map} +1 -1
- package/dist/{chunk-h8w9mzjj.js → chunk-b2pdqxj3.js} +11 -11
- package/dist/{chunk-h8w9mzjj.js.map → chunk-b2pdqxj3.js.map} +3 -4
- package/dist/{chunk-j12hpdxk.js → chunk-bghxdjqv.js} +1 -1
- package/dist/{chunk-6vz75swk.js → chunk-bhbxhk9e.js} +2 -2
- package/dist/{chunk-6vz75swk.js.map → chunk-bhbxhk9e.js.map} +1 -1
- package/dist/{chunk-6q6bhkyf.js → chunk-c48gag78.js} +1 -1
- package/dist/{chunk-5fh4pvyt.js → chunk-c65rh4k8.js} +2 -2
- package/dist/{chunk-5fh4pvyt.js.map → chunk-c65rh4k8.js.map} +1 -1
- package/dist/{chunk-6wgh7nk6.js → chunk-dm7mada7.js} +3 -3
- package/dist/{chunk-6wgh7nk6.js.map → chunk-dm7mada7.js.map} +1 -1
- package/dist/{chunk-1mxb44n9.js → chunk-ebdkmzm9.js} +2 -2
- package/dist/{chunk-1mxb44n9.js.map → chunk-ebdkmzm9.js.map} +1 -1
- package/dist/{chunk-xfvegbxn.js → chunk-ecb8qggy.js} +2 -2
- package/dist/{chunk-xfvegbxn.js.map → chunk-ecb8qggy.js.map} +1 -1
- package/dist/{chunk-p6jbmcrg.js → chunk-etf6h5m1.js} +2 -2
- package/dist/{chunk-p6jbmcrg.js.map → chunk-etf6h5m1.js.map} +1 -1
- package/dist/{chunk-zq5375wd.js → chunk-ewv1m1sv.js} +3 -3
- package/dist/{chunk-zq5375wd.js.map → chunk-ewv1m1sv.js.map} +1 -1
- package/dist/{chunk-dxyxd7b3.js → chunk-gv59djt3.js} +2 -2
- package/dist/{chunk-dxyxd7b3.js.map → chunk-gv59djt3.js.map} +1 -1
- package/dist/{chunk-8tvfmy1a.js → chunk-gxp48t81.js} +4 -4
- package/dist/{chunk-8tvfmy1a.js.map → chunk-gxp48t81.js.map} +1 -1
- package/dist/{chunk-r923001x.js → chunk-h4755p9h.js} +2 -2
- package/dist/{chunk-r923001x.js.map → chunk-h4755p9h.js.map} +1 -1
- package/dist/{chunk-q6ah4yjg.js → chunk-hye22tpt.js} +2 -2
- package/dist/{chunk-q6ah4yjg.js.map → chunk-hye22tpt.js.map} +1 -1
- package/dist/{chunk-eq5svwca.js → chunk-jg3kg55f.js} +2 -2
- package/dist/{chunk-eq5svwca.js.map → chunk-jg3kg55f.js.map} +1 -1
- package/dist/{chunk-s4semb89.js → chunk-k6gvbvyw.js} +1 -1
- package/dist/{chunk-vhvvjaj3.js → chunk-kzk5r6v4.js} +3 -3
- package/dist/{chunk-vhvvjaj3.js.map → chunk-kzk5r6v4.js.map} +1 -1
- package/dist/{chunk-ghcvztxn.js → chunk-m63v6aze.js} +2 -2
- package/dist/{chunk-ghcvztxn.js.map → chunk-m63v6aze.js.map} +1 -1
- package/dist/{chunk-khdkrfxp.js → chunk-mj4n5mar.js} +2 -2
- package/dist/{chunk-khdkrfxp.js.map → chunk-mj4n5mar.js.map} +1 -1
- package/dist/{chunk-kcsa57km.js → chunk-mj7h1dgh.js} +2 -2
- package/dist/{chunk-kcsa57km.js.map → chunk-mj7h1dgh.js.map} +1 -1
- package/dist/{chunk-3kxe9geg.js → chunk-n8mxsfc2.js} +3 -3
- package/dist/{chunk-3kxe9geg.js.map → chunk-n8mxsfc2.js.map} +1 -1
- package/dist/{chunk-n3z83qhq.js → chunk-nrf23yan.js} +2 -2
- package/dist/{chunk-n3z83qhq.js.map → chunk-nrf23yan.js.map} +1 -1
- package/dist/{chunk-sv125fqq.js → chunk-nv2t87c3.js} +2 -2
- package/dist/{chunk-sv125fqq.js.map → chunk-nv2t87c3.js.map} +1 -1
- package/dist/{chunk-j10a0m7q.js → chunk-p0ccxfkq.js} +1 -1
- package/dist/{chunk-crnfxn9n.js → chunk-p7abyc0b.js} +2 -2
- package/dist/{chunk-crnfxn9n.js.map → chunk-p7abyc0b.js.map} +1 -1
- package/dist/{chunk-hzen9gh4.js → chunk-psdyfaf1.js} +2 -2
- package/dist/{chunk-hzen9gh4.js.map → chunk-psdyfaf1.js.map} +1 -1
- package/dist/{chunk-cpem1j1x.js → chunk-pxstrw29.js} +2 -2
- package/dist/{chunk-cpem1j1x.js.map → chunk-pxstrw29.js.map} +1 -1
- package/dist/{chunk-knq4ack4.js → chunk-q9mxjh10.js} +2 -2
- package/dist/{chunk-knq4ack4.js.map → chunk-q9mxjh10.js.map} +1 -1
- package/dist/{chunk-7zj6bk9a.js → chunk-qmcjh6de.js} +2 -2
- package/dist/{chunk-7zj6bk9a.js.map → chunk-qmcjh6de.js.map} +1 -1
- package/dist/{chunk-k1ebt28j.js → chunk-qy3s6pwz.js} +2 -2
- package/dist/{chunk-k1ebt28j.js.map → chunk-qy3s6pwz.js.map} +1 -1
- package/dist/{chunk-rvspb96n.js → chunk-rtb64x14.js} +3 -3
- package/dist/{chunk-rvspb96n.js.map → chunk-rtb64x14.js.map} +1 -1
- package/dist/{chunk-ayfjjgv2.js → chunk-rvdsaqdv.js} +1 -1
- package/dist/{chunk-7vrrgxwm.js → chunk-s0kns9q1.js} +3 -3
- package/dist/{chunk-7vrrgxwm.js.map → chunk-s0kns9q1.js.map} +1 -1
- package/dist/{chunk-entpqjyn.js → chunk-s2krqtwj.js} +2 -2
- package/dist/{chunk-entpqjyn.js.map → chunk-s2krqtwj.js.map} +1 -1
- package/dist/{chunk-xe2pm36q.js → chunk-s2y2b8tz.js} +2 -2
- package/dist/{chunk-xe2pm36q.js.map → chunk-s2y2b8tz.js.map} +1 -1
- package/dist/{chunk-t6qpm2j7.js → chunk-t8kzaxaa.js} +2 -2
- package/dist/{chunk-t6qpm2j7.js.map → chunk-t8kzaxaa.js.map} +1 -1
- package/dist/{chunk-0x1s02r1.js → chunk-v1eeh7a7.js} +3 -3
- package/dist/{chunk-0x1s02r1.js.map → chunk-v1eeh7a7.js.map} +1 -1
- package/dist/{chunk-npbf06c1.js → chunk-v7nw1g2n.js} +2 -2
- package/dist/{chunk-npbf06c1.js.map → chunk-v7nw1g2n.js.map} +1 -1
- package/dist/{chunk-b7a22evs.js → chunk-v80890xx.js} +3 -3
- package/dist/{chunk-b7a22evs.js.map → chunk-v80890xx.js.map} +1 -1
- package/dist/{chunk-p7mvp5nf.js → chunk-w4111j5d.js} +2 -2
- package/dist/{chunk-p7mvp5nf.js.map → chunk-w4111j5d.js.map} +1 -1
- package/dist/{chunk-m7pghdcy.js → chunk-wat33wxh.js} +2 -2
- package/dist/{chunk-m7pghdcy.js.map → chunk-wat33wxh.js.map} +1 -1
- package/dist/{chunk-1n40bdxf.js → chunk-x5vpjzpp.js} +2 -2
- package/dist/{chunk-1n40bdxf.js.map → chunk-x5vpjzpp.js.map} +1 -1
- package/dist/{chunk-g52fcwca.js → chunk-xe2cfmyb.js} +2 -2
- package/dist/{chunk-g52fcwca.js.map → chunk-xe2cfmyb.js.map} +1 -1
- package/dist/{chunk-jykkqwcy.js → chunk-ych1dv5q.js} +3 -3
- package/dist/{chunk-jykkqwcy.js.map → chunk-ych1dv5q.js.map} +1 -1
- package/dist/{chunk-ap3g6rbw.js → chunk-yffm8nxa.js} +2 -2
- package/dist/{chunk-ap3g6rbw.js.map → chunk-yffm8nxa.js.map} +1 -1
- package/dist/{chunk-6gwxvmjv.js → chunk-yg8se4vs.js} +3 -3
- package/dist/{chunk-6gwxvmjv.js.map → chunk-yg8se4vs.js.map} +1 -1
- package/dist/{chunk-s4xg69r9.js → chunk-yhxjhrvp.js} +2 -2
- package/dist/{chunk-s4xg69r9.js.map → chunk-yhxjhrvp.js.map} +1 -1
- package/dist/chunks/{ThemeProvider-CS2a1snV.js → ThemeProvider-BIrCSrFY.js} +2 -2
- package/dist/chunks/{ThemeProvider-CS2a1snV.js.map → ThemeProvider-BIrCSrFY.js.map} +1 -1
- package/dist/client/fetchFile.d.ts +66 -0
- package/dist/client/fetchFile.d.ts.map +1 -0
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +121 -23
- package/dist/client/index.js.map +1 -1
- package/dist/client/rpc.d.ts +11 -0
- package/dist/client/rpc.d.ts.map +1 -1
- package/dist/client/useQuery.d.ts +9 -0
- package/dist/client/useQuery.d.ts.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/Cache.d.ts +36 -0
- package/dist/facades/Cache.d.ts.map +1 -0
- package/dist/facades/Url.d.ts +12 -1
- package/dist/facades/Url.d.ts.map +1 -1
- package/dist/facades/index.d.ts +1 -0
- package/dist/facades/index.d.ts.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/gemi.d.ts +4 -0
- package/dist/http/ApiRouter.d.ts +40 -3
- package/dist/http/ApiRouter.d.ts.map +1 -1
- package/dist/http/Metadata.d.ts.map +1 -1
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.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 +3 -3
- package/dist/kernel/index.js.map +3 -3
- package/dist/kernel/providers.d.ts +2 -2
- package/dist/kernel/providers.d.ts.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/cache/CacheManager.d.ts +115 -0
- package/dist/services/cache/CacheManager.d.ts.map +1 -0
- package/dist/services/cache/CacheServiceProvider.d.ts +5 -0
- package/dist/services/cache/CacheServiceProvider.d.ts.map +1 -0
- package/dist/services/cache/CacheStore.d.ts +26 -0
- package/dist/services/cache/CacheStore.d.ts.map +1 -0
- package/dist/services/cache/MemoryCacheStore.d.ts +36 -0
- package/dist/services/cache/MemoryCacheStore.d.ts.map +1 -0
- package/dist/services/cache/RedisCacheStore.d.ts +54 -0
- package/dist/services/cache/RedisCacheStore.d.ts.map +1 -0
- package/dist/services/cache/config.d.ts +35 -0
- package/dist/services/cache/config.d.ts.map +1 -0
- package/dist/services/index.d.ts +6 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +9 -9
- package/dist/services/index.js.map +5 -5
- 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/testing/index.js +1 -1
- package/dist/utils/appOrigin.d.ts +19 -0
- package/dist/utils/appOrigin.d.ts.map +1 -0
- package/dist/vitest/index.js +1 -1
- package/package.json +1 -1
- package/skills/gemi-react-best-practices/rules/query-no-hand-rolled-fetch.md +14 -0
- package/dist/chunk-1xmh61fg.js +0 -5
- package/dist/chunk-b4x1dt3s.js +0 -10
- package/dist/chunk-eyptwf54.js +0 -57
- package/dist/chunk-rany5zgk.js +0 -5
- package/dist/chunk-tabsxzg9.js +0 -5
- /package/dist/{chunk-gp00enrk.js.map → chunk-3fyhd641.js.map} +0 -0
- /package/dist/{chunk-j12hpdxk.js.map → chunk-bghxdjqv.js.map} +0 -0
- /package/dist/{chunk-6q6bhkyf.js.map → chunk-c48gag78.js.map} +0 -0
- /package/dist/{chunk-s4semb89.js.map → chunk-k6gvbvyw.js.map} +0 -0
- /package/dist/{chunk-j10a0m7q.js.map → chunk-p0ccxfkq.js.map} +0 -0
- /package/dist/{chunk-ayfjjgv2.js.map → chunk-rvdsaqdv.js.map} +0 -0
|
@@ -16,6 +16,6 @@
|
|
|
16
16
|
"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"
|
|
17
17
|
],
|
|
18
18
|
"mappings": "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",
|
|
19
|
-
"debugId": "
|
|
19
|
+
"debugId": "B45F53446952E38764756E2164756E21",
|
|
20
20
|
"names": []
|
|
21
21
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
class j{deliver=null;hooks;get started(){return this.deliver!==null}publish(b,g){this.deliver?.(b,g)}start(b,g){this.deliver=b,this.hooks=g}revoke(b){this.hooks?.onRevoke?.(b)}close(){this.deliver=null,this.hooks=void 0}}
|
|
3
|
-
export{j as
|
|
3
|
+
export{j as jj};
|
|
4
4
|
|
|
5
|
-
//# debugId=
|
|
5
|
+
//# debugId=635E2D7C66251E8B64756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import type {\n BroadcastDeliver,\n BroadcastDriver,\n BroadcastDriverHooks,\n BroadcastRevocation,\n} from \"./BroadcastDriver\";\n\n/**\n * The default driver: an emit reaches the sockets of **this process only**.\n *\n * Right for one instance whose web processes also run the jobs and cron that\n * emit. Wrong as soon as there are two replicas, or a `gemi queue:work`\n * worker that emits: those frames reach nobody, with nothing to say so. Use\n * the Redis driver there.\n *\n * Before the HTTP server starts the transport, there is nobody to deliver to,\n * and `publish` drops the frame.\n */\nexport class MemoryBroadcastDriver implements BroadcastDriver {\n private deliver: BroadcastDeliver | null = null;\n private hooks: BroadcastDriverHooks | undefined;\n\n /** Whether the transport has started this driver. */\n get started(): boolean {\n return this.deliver !== null;\n }\n\n publish(topic: string, frame: string): void {\n this.deliver?.(topic, frame);\n }\n\n start(deliver: BroadcastDeliver, hooks?: BroadcastDriverHooks): void {\n this.deliver = deliver;\n this.hooks = hooks;\n }\n\n revoke(revocation: BroadcastRevocation): void {\n this.hooks?.onRevoke?.(revocation);\n }\n\n close(): void {\n this.deliver = null;\n this.hooks = undefined;\n }\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";AAkBO,MAAM,CAAiD,CACpD,QAAmC,KACnC,SAGJ,QAAO,EAAY,CACrB,OAAO,KAAK,UAAY,KAG1B,OAAO,CAAC,EAAe,EAAqB,CAC1C,KAAK,UAAU,EAAO,CAAK,EAG7B,KAAK,CAAC,EAA2B,EAAoC,CACnE,KAAK,QAAU,EACf,KAAK,MAAQ,EAGf,MAAM,CAAC,EAAuC,CAC5C,KAAK,OAAO,WAAW,CAAU,EAGnC,KAAK,EAAS,CACZ,KAAK,QAAU,KACf,KAAK,MAAQ,OAEjB",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "635E2D7C66251E8B64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -29,6 +29,6 @@ export { h } from ${JSON.stringify("virtual:gemi-island-runtime")};
|
|
|
29
29
|
import { hydrateRoot } from "react-dom/client";
|
|
30
30
|
export ${z}
|
|
31
31
|
`,Q='const d=document,c=JSON.parse(d.getElementById("gemi-islands").textContent),w=f=>(window.requestIdleCallback||setTimeout)(f),m=(e,o)=>{if(!e.g){e.g=1;import(o.s).then(x=>x.h(e,x.m[o.e])).catch(r=>console.error(r))}};for(const e of d.querySelectorAll("gemi-island")){const o=c.i[e.dataset.island];if(!o)continue;if(o.l=="eager")m(e,o);else if(o.l=="idle"||!window.IntersectionObserver||!e.children.length)w(()=>m(e,o));else{const v=new IntersectionObserver(n=>{if(n.some(x=>x.isIntersecting)){v.disconnect();m(e,o)}});for(const k of e.children)v.observe(k)}}';
|
|
32
|
-
export{B as
|
|
32
|
+
export{B as vk,F as wk,G as xk,J as yk,M as zk,Q as Ak};
|
|
33
33
|
|
|
34
|
-
//# debugId=
|
|
34
|
+
//# debugId=4480E01B0EE66D6864756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"/**\n * The browser side of islands, shared by the Vite plugin (which builds it), the\n * servers (which point the loader at it) and the tests.\n *\n * No imports: the Vite plugin is built on its own and the servers load it at\n * boot, so this file stays plain strings.\n */\n\n/**\n * The module that hydrates islands: React, `react-dom/client` and the small\n * `h(marker, Component)` below. A virtual module of gemi's Vite plugin that\n * every island entry imports, so the islands on a page share one copy of\n * React, in one chunk.\n */\nexport const ISLAND_RUNTIME_ID = \"virtual:gemi-island-runtime\";\n\n/** What `resolveId` turns `ISLAND_RUNTIME_ID` into (Vite's virtual-module convention). */\nexport const RESOLVED_ISLAND_RUNTIME_ID = `\\0${ISLAND_RUNTIME_ID}`;\n\n/**\n * The query that turns a module into its island entry: `Counter.tsx?gemi-island`\n * is a module of the plugin's that re-exports `Counter.tsx` as `m` next to the\n * runtime's `h`. It is what a static page imports for an island, and so it\n * is what the client manifest lists, keyed `app/…/Counter.tsx?gemi-island`,\n * with React and `react-dom/client` among its imports.\n */\nexport const ISLAND_ENTRY_QUERY = \"?gemi-island\";\n\n/** The island entry module for `file` (an absolute path or a root-relative URL). */\nexport function islandEntrySource(file: string) {\n return `import * as m from ${JSON.stringify(file)};\nexport { m };\nexport { h } from ${JSON.stringify(ISLAND_RUNTIME_ID)};\n`;\n}\n\n/**\n * `h(marker, Component)`: hydrates one `<gemi-island>` marker with the island's\n * component and the props the server serialised into `data-props`.\n *\n * The island's static children were rendered on the server into a\n * `<gemi-slot>` (the first one that belongs to this marker, not to an island\n * nested in it). They are handed back to the component as that same element\n * with the server's HTML, so hydration matches and React leaves them alone.\n *\n * `data-uid` is the `identifierPrefix` the server rendered the island with, so\n * `useId` agrees on both sides and two islands never share an id.\n *\n * Written as a function body with `createElement` and `hydrateRoot` free, so a\n * test can run it against real React without a bundler.\n */\nexport const ISLAND_HYDRATE_SOURCE = `function h(marker, Component) {\n if (typeof Component !== \"function\" && (typeof Component !== \"object\" || Component === null)) {\n throw new Error(\"gemi: island module has no component export for \" + marker.outerHTML.slice(0, 80));\n }\n const json = marker.getAttribute(\"data-props\");\n const props = json ? JSON.parse(json) : {};\n let slot = null;\n for (const candidate of marker.querySelectorAll(\"gemi-slot\")) {\n if (candidate.closest(\"gemi-island\") === marker) {\n slot = candidate;\n break;\n }\n }\n const children = slot\n ? [createElement(\"gemi-slot\", {\n style: { display: \"contents\" },\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: { __html: slot.innerHTML },\n })]\n : [];\n return hydrateRoot(marker, createElement(Component, props, ...children), {\n identifierPrefix: marker.getAttribute(\"data-uid\") || undefined,\n });\n}`;\n\n/** The runtime module's source, as the plugin serves and builds it. */\nexport const ISLAND_RUNTIME_SOURCE = `import { createElement } from \"react\";\nimport { hydrateRoot } from \"react-dom/client\";\nexport ${ISLAND_HYDRATE_SOURCE}\n`;\n\n/**\n * The island loader, inlined into a static document that uses islands.\n *\n * Kept byte-for-byte constant (the per-page island table travels in a\n * separate `<script type=\"application/json\">`, which a Content Security Policy\n * does not treat as script), so a strict policy can allow it by hash:\n * `script-src 'sha256-…'` with `ISLAND_LOADER_CSP_HASH`. Everything it loads\n * is a plain `import()` of a same-origin (or asset-base) file.\n *\n * The table is `{ i: [{ s: entry URL, e: export, l: load }] }` and each\n * marker's `data-island` indexes `i`. Per marker, on its schedule: import the\n * island's entry (the module as `m`, the runtime's `h`), then\n * `h(marker, m[export])`, which calls `hydrateRoot`. A failure is logged and\n * leaves the server-rendered markup in place.\n */\nexport const ISLAND_LOADER_SOURCE =\n 'const d=document,c=JSON.parse(d.getElementById(\"gemi-islands\").textContent),' +\n \"w=f=>(window.requestIdleCallback||setTimeout)(f),\" +\n \"m=(e,o)=>{if(!e.g){e.g=1;import(o.s).then(x=>x.h(e,x.m[o.e])).catch(r=>console.error(r))}};\" +\n 'for(const e of d.querySelectorAll(\"gemi-island\")){const o=c.i[e.dataset.island];if(!o)continue;' +\n 'if(o.l==\"eager\")m(e,o);else if(o.l==\"idle\"||!window.IntersectionObserver||!e.children.length)w(()=>m(e,o));' +\n \"else{const v=new IntersectionObserver(n=>{if(n.some(x=>x.isIntersecting)){v.disconnect();m(e,o)}});for(const k of e.children)v.observe(k)}}\";\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";AAcO,IAAM,EAAoB,8BAGpB,EAA6B,kCAS7B,EAAqB,eAG3B,SAAS,CAAiB,CAAC,EAAc,CAC9C,MAAO,sBAAsB,KAAK,UAAU,CAAI;AAAA;AAAA,oBAE9B,KAAK,UAlBQ,6BAkBmB;AAAA,EAmB7C,IAAM,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA0BxB,EAAwB;AAAA;AAAA,SAE5B;AAAA,EAkBI,EACX",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "4480E01B0EE66D6864756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
class m{name;cron;withoutOverlapping=!1;onOneServer=!1;shouldRun(){return!0}callback(f){}onTick(){}onComplete(){}static exp(f){return f}}
|
|
3
|
-
export{m as
|
|
3
|
+
export{m as od};
|
|
4
4
|
|
|
5
|
-
//# debugId=
|
|
5
|
+
//# debugId=8721D599ADB028AA64756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"// A cron expression accepted by `Bun.cron`: a 5-field expression\n// (`minute hour day-of-month month day-of-week`, interpreted in UTC) or one of\n// the nicknames below. The `string & {}` member keeps arbitrary expressions\n// assignable while still surfacing the nicknames in editor autocomplete.\nexport type CronExpression =\n | \"@yearly\"\n | \"@annually\"\n | \"@monthly\"\n | \"@weekly\"\n | \"@daily\"\n | \"@midnight\"\n | \"@hourly\"\n | (string & {});\n\nimport type { HeldLock } from \"../lock/LockManager\";\n\nexport type WithoutOverlapping =\n | boolean\n | {\n /**\n * The lock's lease, in milliseconds: how long it outlives an instance\n * that died holding it. Renewed every third of this while the tick\n * runs, so it does not limit how long a tick may take. Default five\n * minutes.\n */\n expiresAfter?: number;\n };\n\nexport class CronJob {\n name: string;\n cron: CronExpression;\n\n /**\n * Skips a tick while an earlier tick of this job is still running, on this\n * instance or any other sharing the queue's storage. With the database\n * queue driver that is a lock row in `gemi_locks`; with the memory driver\n * it only covers this process.\n *\n * The lock is held across `onTick`, `callback` and `onComplete`, and handed\n * to `callback` as its argument. If its lease is lost while the tick runs\n * (the instance stalled past `expiresAfter`), `lock.lost` aborts and the\n * scheduler logs it. Writes that must not land after that go through\n * `lock.fence(...)`.\n *\n * It does not stop a second instance from running the same tick after the\n * first one finished; `onOneServer` does.\n */\n withoutOverlapping: WithoutOverlapping = false;\n\n /**\n * Runs each tick on one instance only, across every instance sharing the\n * queue's storage: the first to claim the tick's minute runs it, the others\n * skip it. Assumes the instances' clocks agree to well within a minute.\n */\n onOneServer = false;\n\n /**\n * Decides whether this tick happens at all. Evaluated once per tick, before\n * anything else; returning `false` skips `onTick`, `callback` and\n * `onComplete` alike.\n *\n * ### Why this is a member and not a line the job writes for itself\n *\n * A job that reports outward — mails a digest, opens a Sentry issue, pings a\n * channel — must not fire from a laptop, and the guard for that has to cover\n * the whole tick. There was nowhere to write it. gemi calls `onTick` and\n * `onComplete` *outside* `callback`, so a guard placed in a lifecycle hook\n * only stops the hook it lives in: an early `return` at the top of `callback`\n * leaves the job still announcing that it started and still announcing that\n * it finished, which for an outward-reporting job is most of the damage.\n *\n * The only construct that covered every hook was an abstract base class that\n * shadowed `callback` with the guard and renamed the real body to `run()` —\n * and that costs the app the framework's own vocabulary. A job then reads\n * `async run()` while every page of the documentation reads `async\n * callback()`, so the next person to follow the docs writes a `callback` the\n * base class never calls: no error, no output, a job that silently does\n * nothing. Forgetting *this* member fails the other way round — the job runs,\n * which is what it did before anyone asked for a gate.\n *\n * ### What it gates\n *\n * Work, not registration. A job whose gate returns `false` is still\n * scheduled, still holds its `Bun.cron` handle, and still appears in\n * `app(Scheduler).jobs` — \"is it scheduled\" and \"will it do anything\" are\n * different questions and the second one is answered per tick. That is also\n * why this is a method: a field would be read once, when the scheduler\n * constructs the job at boot, and would freeze whatever it saw then.\n *\n * A gate that throws is logged and treated as `false`. Cron work recurs, so\n * a skipped tick is recovered by the next one, while an email sent from the\n * wrong machine is not recovered at all.\n *\n * ### Composing with a base class\n *\n * Nothing here calls `super` for you. A subclass that overrides `shouldRun`\n * for its own reason silently replaces whatever its base was gating on, so\n * narrow rather than redefine:\n *\n * ```typescript\n * async shouldRun() {\n * return (await super.shouldRun()) && this.hasSubscribers();\n * }\n * ```\n *\n * A shared base should annotate its return type as written here rather than\n * let it be inferred: a base returning a plain `boolean` narrows the\n * signature its subclasses inherit, and the `await super` above then does not\n * typecheck against it.\n */\n shouldRun(): Promise<boolean> | boolean {\n return true;\n }\n\n /**\n * The tick's work. `lock` is the `withoutOverlapping` lock when the job\n * declares one.\n */\n callback(_lock?: HeldLock): Promise<void> | void {}\n onTick(): Promise<void> | void {}\n onComplete(): Promise<void> | void {}\n\n static exp(expression: CronExpression) {\n return expression;\n }\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";AA4BO,MAAM,CAAQ,CACnB,KACA,KAiBA,mBAAyC,GAOzC,YAAc,GAwDd,SAAS,EAA+B,CACtC,MAAO,GAOT,QAAQ,CAAC,EAAwC,EACjD,MAAM,EAAyB,EAC/B,UAAU,EAAyB,QAE5B,IAAG,CAAC,EAA4B,CACrC,OAAO,EAEX",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "8721D599ADB028AA64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
3
|
-
export{F as
|
|
2
|
+
import{Sk as P}from"./chunk-89swy5aq.js";class F{provider="custom";supportsIdempotencyKey=!1;async deliver(j){let x=await this.send(j);return{ok:Boolean(x),id:null}}}class G extends F{apiKey;provider="resend";supportsIdempotencyKey=!0;constructor(j=process.env.RESEND_API_KEY){super();this.apiKey=j}async send(j){return(await this.deliver(j)).ok}async deliver(j){let{Resend:x}=await import("./chunk-avfntxm1.js"),A=new x(this.apiKey),{idempotencyKey:z,...N}=j,{data:H,error:B}=await A.emails.send(N,z?{idempotencyKey:z}:void 0);if(B)return console.error(B),{ok:!1,id:null,error:B};if(H)return{ok:!0,id:H.id??null};return{ok:!1,id:null}}}function Z(j){return j}function J(){return{driver:new G,headers:{},filterRecipients:(j)=>j}}function Q(j){for(let x=j;x;x=Object.getPrototypeOf(x)){let A=Object.prototype.hasOwnProperty.call(x,"deliver"),z=Object.prototype.hasOwnProperty.call(x,"send");if(A)return!1;if(z)return!0}return!0}async function M(j,x){if(typeof j.deliver==="function"&&!Q(j))return j.deliver(x);return{ok:Boolean(await j.send(x)),id:null}}class U{static token="mail";driver;headers;recipientFilter;constructor(j={}){let x=J();this.driver=j.driver??x.driver,this.headers=j.headers??x.headers,this.recipientFilter=j.filterRecipients??x.filterRecipients}filterRecipients(j){return this.recipientFilter(j)}send(j){return this.driver.send(j)}async deliver(j){return M(this.driver,j)}}
|
|
3
|
+
export{F as dk,G as ek,Z as fk,J as gk,M as hk,U as ik};
|
|
4
4
|
|
|
5
|
-
//# debugId=
|
|
5
|
+
//# debugId=50884B2622F8A14764756E2164756E21
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
"import { mailConfigDefaults, type MailConfig } from \"./config\";\nimport { deliverThrough } from \"./deliver\";\nimport type { EmailDriver } from \"./drivers/EmailDriver\";\nimport type { EmailDeliveryResult, SendEmailParams } from \"./drivers/types\";\n\nexport class MailManager {\n static token = \"mail\";\n\n readonly driver: EmailDriver;\n readonly headers: Record<string, string>;\n\n private readonly recipientFilter: NonNullable<MailConfig[\"filterRecipients\"]>;\n\n constructor(config: MailConfig = {}) {\n const defaults = mailConfigDefaults();\n\n this.driver = config.driver ?? defaults.driver;\n this.headers = config.headers ?? defaults.headers;\n this.recipientFilter = config.filterRecipients ?? defaults.filterRecipients;\n }\n\n filterRecipients(emails: string[]): Promise<Array<string>> | Array<string> {\n return this.recipientFilter(emails);\n }\n\n send(params: SendEmailParams) {\n return this.driver.send(params);\n }\n\n /** Like `send`, but reports the outcome and the provider's message id. */\n async deliver(params: SendEmailParams): Promise<EmailDeliveryResult> {\n // A driver that doesn't extend `EmailDriver`, or a subclass that only\n // overrides `send`, is called through `send`.\n return deliverThrough(this.driver, params);\n }\n}\n"
|
|
10
10
|
],
|
|
11
11
|
"mappings": ";yCAEO,MAAe,CAAY,CAKvB,SAAmB,SAMnB,uBAAkC,QASrC,QAAO,CAAC,EAAuD,CACnE,IAAM,EAAK,MAAM,KAAK,KAAK,CAAM,EACjC,MAAO,CAAE,GAAI,QAAQ,CAAE,EAAG,GAAI,IAAK,EAEvC,CCvBO,MAAM,UAAqB,CAAY,CAIxB,OAHF,SAAW,SACX,uBAAyB,GAE3C,WAAW,CAAS,EAAS,QAAQ,IAAI,eAAgB,CACvD,MAAM,EADY,mBAId,KAAI,CAAC,EAAyB,CAClC,OAAQ,MAAM,KAAK,QAAQ,CAAM,GAAG,QAGvB,QAAO,CAAC,EAAuD,CAO5E,IAAQ,UAAW,KAAa,+BAC1B,EAAS,IAAI,EAAO,KAAK,MAAM,GAG7B,oBAAmB,GAAY,GAC/B,OAAM,SAAU,MAAM,EAAO,OAAO,KAC1C,EACA,EAAiB,CAAE,gBAAe,EAAI,MACxC,EAEA,GAAI,EAEF,OADA,QAAQ,MAAM,CAAK,EACZ,CAAE,GAAI,GAAO,GAAI,KAAM,OAAM,EAGtC,GAAI,EACF,MAAO,CAAE,GAAI,GAAM,GAAI,EAAK,IAAM,IAAK,EAGzC,MAAO,CAAE,GAAI,GAAO,GAAI,IAAK,EAEjC,CC7BO,SAAS,CAAgB,CAAC,EAAgC,CAC/D,OAAO,EAGF,SAAS,CAAkB,EAAyB,CACzD,MAAO,CACL,OAAQ,IAAI,EACZ,QAAS,CAAC,EACV,iBAAkB,CAAC,IAAW,CAChC,ECVF,SAAS,CAAgB,CAAC,EAAgB,CACxC,QAAS,EAAQ,EAAQ,EAAO,EAAQ,OAAO,eAAe,CAAK,EAAG,CACpE,IAAM,EAAa,OAAO,UAAU,eAAe,KAAK,EAAO,SAAS,EAClE,EAAU,OAAO,UAAU,eAAe,KAAK,EAAO,MAAM,EAClE,GAAI,EAAY,MAAO,GACvB,GAAI,EAAS,MAAO,GAEtB,MAAO,GAOT,eAAsB,CAAc,CAClC,EACA,EAC8B,CAC9B,GAAI,OAAO,EAAO,UAAY,YAAc,CAAC,EAAiB,CAAM,EAClE,OAAO,EAAO,QAAQ,CAAM,EAE9B,MAAO,CAAE,GAAI,QAAQ,MAAM,EAAO,KAAK,CAAM,CAAC,EAAG,GAAI,IAAK,EC7BrD,MAAM,CAAY,OAChB,OAAQ,OAEN,OACA,QAEQ,gBAEjB,WAAW,CAAC,EAAqB,CAAC,EAAG,CACnC,IAAM,EAAW,EAAmB,EAEpC,KAAK,OAAS,EAAO,QAAU,EAAS,OACxC,KAAK,QAAU,EAAO,SAAW,EAAS,QAC1C,KAAK,gBAAkB,EAAO,kBAAoB,EAAS,iBAG7D,gBAAgB,CAAC,EAA0D,CACzE,OAAO,KAAK,gBAAgB,CAAM,EAGpC,IAAI,CAAC,EAAyB,CAC5B,OAAO,KAAK,OAAO,KAAK,CAAM,OAI1B,QAAO,CAAC,EAAuD,CAGnE,OAAO,EAAe,KAAK,OAAQ,CAAM,EAE7C",
|
|
12
|
-
"debugId": "
|
|
12
|
+
"debugId": "50884B2622F8A14764756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
function E(z){return z}function f(){return{url:process.env.DATABASE_URL,dialect:void 0,options:void 0,slowTransactionThreshold:b,connections:void 0}}var b=2000;class Q extends Error{constructor(z){super(`Could not infer a database dialect from "${z}". Expected a URL starting with postgres://, postgresql://, mysql://, mariadb://, `+"sqlite://, or file: \u2014 or a SQLite path such as ./dev.db or :memory:.");this.name="UnknownDatabaseUrlError"}}class j extends Error{constructor(z){super(z===void 0||z==="default"?"No database URL configured. Set the DATABASE_URL environment variable, or set `url` in app/config/database.ts.":`The "${z}" database connection has no \`url\`. Set one under \`connections.${z}\` in app/config/database.ts.`);this.name="MissingDatabaseUrlError"}}var L={"postgres:":"postgres","postgresql:":"postgres","mysql:":"mysql","mariadb:":"mariadb","sqlite:":"sqlite","file:":"sqlite"},D=[".db",".sqlite",".sqlite3"];function F(z){let B=z.trim();if(B==="")throw new Q(z);if(B===":memory:")return"sqlite";let G=B.indexOf(":");if(G!==-1){let J=B.slice(0,G+1).toLowerCase(),K=L[J];if(K)return K}if(S(B))return"sqlite";throw new Q(z)}function S(z){if(z.startsWith("./")||z.startsWith("../")||z.startsWith("/"))return!0;let B=z.toLowerCase();return D.some((G)=>B.endsWith(G))}function p(z){return z==="sqlite"}function m(z){return z==="mysql"||z==="mariadb"}import{existsSync as g,readFileSync as y,realpathSync as I,statSync as U}from"fs";import{isAbsolute as w,join as H,resolve as q}from"path";var O=H("prisma","schema.prisma");class R extends Error{constructor(z,B,G){super(`"${z}" now resolves to ${B}, which is where Prisma migrates it. gemi used to open ${G} instead, and that file holds data \u2014 so `+`opening the resolved one would quietly leave it behind. gemi will not choose. Move ${G} onto ${B} if it is the database you want, or point DATABASE_URL at an absolute path to say so explicitly.`);this.name="AmbiguousSqlitePathError"}}function C(z){let B=z.trim(),G="",J=B;for(let K of["file://","file:","sqlite://","sqlite:"])if(B.slice(0,K.length).toLowerCase()===K){G=B.slice(0,K.length),J=B.slice(K.length);break}if(J===":memory:"||J.startsWith(":memory:?"))return null;return{prefix:G,file:J}}function _(z,B,G=process.cwd()){if(B!=="sqlite")return{url:z};let J=C(z);if(!J||J.file==="")return{url:z};if(w(J.file))return{url:z};let K=J.file.indexOf("?"),Z=K===-1?J.file:J.file.slice(0,K),$=K===-1?"":J.file.slice(K),X=H(G,"prisma");if(!T(G,z))return{url:z};let W=q(G,Z),Y=q(X,Z);if(W===Y)return{url:z};return{url:`${J.prefix}${Y}${$}`,moved:{from:W,to:Y}}}function T(z,B){let G=H(z,O);if(!g(G))return!1;let J;try{J=y(G,"utf8")}catch{return!1}let Z=J.replace(/^\s*\/\/.*$/gm,"").match(/datasource\s+\w+\s*\{([\s\S]*?)\}/);if(!Z)return!1;let $=Z[1];if(!/provider\s*=\s*["']sqlite["']/.test($))return!1;let X=$.match(/url\s*=\s*env\(\s*["']([^"']+)["']\s*\)/);if(X){let Y=process.env[X[1]];return typeof Y==="string"&&Y.trim()===B.trim()}let W=$.match(/url\s*=\s*["']([^"']+)["']/);return W?W[1].trim()===B.trim():!1}function k(z){try{if(I(z.from)===I(z.to))return null}catch{}try{let B=U(z.from);return B.isFile()&&B.size>0?z.from:null}catch{return null}}var{SQL:A}=globalThis.Bun;var V="default";class P extends Error{constructor(z,B){super(`No database connection named "${z}". Configured: ${B.map((G)=>`"${G}"`).join(", ")}. Declare it under \`connections\` in app/config/database.ts.`);this.name="UnknownConnectionError"}}class x extends Error{constructor(z){super(`"${z}" is the name of the connection declared by the top-level \`url\` and \`options\`, so it cannot also appear under \`connections\`. Rename it, or move its settings up to the top level.`);this.name="ReservedConnectionNameError"}}class N extends Error{open;requested;constructor(z,B){super(`A transaction is open on the "${z}" connection, and this statement names "${B}". A transaction cannot span two connections: the statement would run outside it and stay committed when the transaction rolls back. Move this query outside the transaction, or run the whole unit on one connection.`);this.open=z;this.requested=B;this.name="CrossConnectionTransactionError"}}class M{name;config;sql;dialect;url;ready;constructor(z,B={}){this.name=z;this.config=B;let G=B.url;if(!G)throw new j(z);this.dialect=B.dialect??F(G);let J=_(G,this.dialect);if(J.moved){let K=k(J.moved);if(K)throw new R(G,J.moved.to,K)}this.url=J.url,this.sql=B.options?new A(this.url,B.options):new A(this.url),this.ready=this.configure()}async configure(){if(this.dialect!=="sqlite")return;await this.sql.unsafe("pragma foreign_keys = ON")}get query(){return this.sql}async close(){this.ready.catch(()=>{}),await this.sql.close()}}class h{config;static token="database";name=V;pools=new Map;ready;constructor(z={}){this.config=z;let{connections:B={},...G}=z;this.pools.set(V,new M(V,G));try{this.build(B,G.slowTransactionThreshold)}catch(J){for(let K of this.pools.values())K.ready.catch(()=>{}),K.close().catch(()=>{});throw J}this.ready=Promise.all([...this.pools.values()].map((J)=>J.ready)).then(()=>{return})}build(z,B){for(let[G,J]of Object.entries(z)){if(G===V)throw new x(G);this.pools.set(G,new M(G,{slowTransactionThreshold:B,...J}))}}connection(z=V){if(z===V)return this;let B=this.pools.get(z);if(!B)throw new P(z,this.connectionNames);return B}get connectionNames(){return[...this.pools.keys()]}get sql(){return this.default.sql}get dialect(){return this.default.dialect}get url(){return this.default.url}get query(){return this.sql}async close(){this.ready.catch(()=>{}),await Promise.all([...this.pools.values()].map((z)=>z.close()))}get default(){return this.pools.get(V)}}
|
|
3
|
-
export{E as
|
|
3
|
+
export{E as Gj,f as Hj,b as Ij,Q as Jj,j as Kj,F as Lj,p as Mj,m as Nj,R as Oj,V as Pj,P as Qj,x as Rj,N as Sj,M as Tj,h as Uj};
|
|
4
4
|
|
|
5
|
-
//# debugId=
|
|
5
|
+
//# debugId=77D601EE2A4089BB64756E2164756E21
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
"import type { SQL } from \"bun\";\nimport type { ConnectionConfig, DatabaseConfig } from \"./config\";\nimport {\n Connection,\n DEFAULT_CONNECTION,\n ReservedConnectionNameError,\n UnknownConnectionError,\n type DatabaseConnection,\n} from \"./Connection\";\nimport type { Dialect } from \"./dialect\";\n\n// Wraps Bun's `SQL` client. Bun ships one client that speaks SQLite, Postgres,\n// MySQL and MariaDB, so gemi does not need a driver per database — it needs to\n// know *which* one is in use, which is what `dialect` carries.\n//\n// Safe to build eagerly: Bun's client connects on the first query, not at\n// construction. (`RedisManager` used to be cited here as the parallel case. As\n// of #403 it builds its client in a memoizing getter instead — not because\n// eager construction was unsafe, but because naming Bun's `RedisClient` at\n// module scope is what made `gemi/services` unloadable off Bun. `Connection`\n// still imports `SQL` as a value for the same reason, which is the remaining\n// half of #396.) It is still bound as a lazy singleton,\n// so an app that never touches the database never resolves it and never has to\n// have DATABASE_URL set.\n//\n// Since #327 it holds *connections*, plural: the top-level `url` and `options`\n// build the one called `\"default\"`, and each key under `connections` builds\n// another. What it does not do is decide which one a query uses — that is the\n// ORM's ambient scope and the `DB` facade, because the choice is per query\n// rather than per application. See `connection` below.\nexport class DatabaseManager implements DatabaseConnection {\n static token = \"database\";\n\n /**\n * This object *is* the default connection, so it answers to the name.\n *\n * Not a formality: `connection(\"default\")` returns `this` rather than the\n * `Connection` in the map, which is what keeps every existing reader —\n * `DB.sql`, `db.dialect`, and the test harnesses that wrap the manager in a\n * Proxy to count statements — looking at the same object the ORM executes\n * through. A second object for the default pool would have quietly bypassed\n * all of them while every test still passed.\n */\n public readonly name = DEFAULT_CONNECTION;\n\n /**\n * Every pool this manager owns, keyed by name and including the default one.\n *\n * Private because the map is the manager's bookkeeping — `connection()` is\n * the way in, and it is the only path that knows the default is `this`.\n */\n private readonly pools = new Map<string, Connection>();\n\n /**\n * Resolves once **every** connection has been configured, or rejects if one\n * could not be. Only SQLite has anything to do; elsewhere it is already\n * resolved.\n *\n * All of them rather than the default alone, because the thing a caller waits\n * on this for — SQLite's `pragma foreign_keys` — is per client, so a second\n * SQLite connection has its own and a caller awaiting one manager-level\n * promise means all of them.\n */\n public readonly ready: Promise<void>;\n\n constructor(public config: DatabaseConfig = {}) {\n const { connections = {}, ...primary } = config;\n\n // The default first, so a `MissingDatabaseUrlError` from a missing\n // `DATABASE_URL` still comes out of construction the way it always has,\n // rather than after a named connection has already opened a client.\n this.pools.set(\n DEFAULT_CONNECTION,\n new Connection(DEFAULT_CONNECTION, primary),\n );\n\n // A connection that is built before the one whose config is wrong is still\n // a live client with an open handle, and on the throwing path nothing else\n // will ever hold it: the manager never becomes a value, so nobody can call\n // `close`. Left alone, the pragma this constructor issues for a SQLite\n // connection settles against a client being torn down and surfaces as an\n // unhandled rejection with no configuration error anywhere near it.\n try {\n this.build(connections, primary.slowTransactionThreshold);\n } catch (error) {\n for (const pool of this.pools.values()) {\n // The in-flight configuration first: it is what rejects when the client\n // under it goes away, and this is the only place that can say the\n // rejection was expected.\n pool.ready.catch(() => {});\n pool.close().catch(() => {});\n }\n throw error;\n }\n\n // Built once here rather than derived per read, so that a connection whose\n // configuration rejects produces one unhandled rejection at most instead of\n // a fresh one per access.\n this.ready = Promise.all(\n [...this.pools.values()].map((pool) => pool.ready),\n ).then(() => undefined);\n }\n\n private build(\n connections: Record<string, ConnectionConfig>,\n slowTransactionThreshold: number | false | undefined,\n ): void {\n for (const [name, connection] of Object.entries(connections)) {\n if (name === DEFAULT_CONNECTION)\n throw new ReservedConnectionNameError(name);\n\n this.pools.set(\n name,\n new Connection(name, {\n // The threshold is the one setting a named connection is likely to\n // want *unchanged*: it is a development diagnostic about holding a\n // pooled connection, and that concern does not stop applying because\n // the pool has a name. `url`, `options` and `dialect` are deliberately\n // not inherited — a connection that borrowed the default's URL by\n // omission would be a second pool onto the same database created by a\n // typo in a key.\n slowTransactionThreshold,\n ...connection,\n }),\n );\n }\n }\n\n /**\n * The connection called `name`, or the default one when called with nothing.\n *\n * Throws rather than falling back to the default for an unknown name, and\n * that is the important half. A fallback would make `Model.on(\"analitycs\")`\n * run on the hot path — the exact pool the caller was trying to stay off —\n * and the only symptom would be the incident it was meant to prevent,\n * arriving weeks later with nothing pointing back at the typo.\n */\n connection(name: string = DEFAULT_CONNECTION): DatabaseConnection {\n // `this`, not `pools.get(DEFAULT_CONNECTION)` — see `name` above.\n if (name === DEFAULT_CONNECTION) return this;\n\n const found = this.pools.get(name);\n if (!found) throw new UnknownConnectionError(name, this.connectionNames);\n return found;\n }\n\n /** Every configured name, default first. For error messages and diagnostics. */\n get connectionNames(): string[] {\n return [...this.pools.keys()];\n }\n\n /**\n * The default connection's client. Unchanged in meaning: an application that\n * never names a connection sees exactly what it saw before #327.\n */\n get sql(): SQL {\n return this.default.sql;\n }\n\n get dialect(): Dialect {\n return this.default.dialect;\n }\n\n get url(): string {\n return this.default.url;\n }\n\n // Escape hatch matching Bun's own API, so `db.query` reads like `sql` does in\n // Bun's docs: db.query`select * from users where id = ${id}`\n get query(): SQL {\n return this.sql;\n }\n\n /** Closes every connection, not only the default one. */\n async close(): Promise<void> {\n // The aggregate promise needs the same treatment each connection's own\n // `ready` gets in `Connection.close` — it is derived from them, so a\n // rejection there arrives here as a second, separately unhandled one.\n this.ready.catch(() => {});\n await Promise.all([...this.pools.values()].map((pool) => pool.close()));\n }\n\n private get default(): Connection {\n return this.pools.get(DEFAULT_CONNECTION)!;\n }\n}\n"
|
|
10
10
|
],
|
|
11
11
|
"mappings": "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",
|
|
12
|
-
"debugId": "
|
|
12
|
+
"debugId": "77D601EE2A4089BB64756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|