gemi 0.106.0 → 0.107.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/Agent.d.ts +88 -10
- package/dist/ai/Agent.d.ts.map +1 -1
- package/dist/ai/AgentController.d.ts +29 -1
- package/dist/ai/AgentController.d.ts.map +1 -1
- package/dist/ai/Schema.d.ts +26 -3
- package/dist/ai/Schema.d.ts.map +1 -1
- package/dist/ai/client/index.js +86 -25
- package/dist/ai/client/index.js.map +1 -1
- package/dist/ai/client/reducer.d.ts.map +1 -1
- package/dist/ai/contextWindow.d.ts +122 -0
- package/dist/ai/contextWindow.d.ts.map +1 -0
- package/dist/ai/index.d.ts +3 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +14 -14
- package/dist/ai/index.js.map +7 -6
- package/dist/ai/types.d.ts +9 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/ai/useChat.d.ts +47 -1
- package/dist/ai/useChat.d.ts.map +1 -1
- package/dist/app/index.js +2 -2
- package/dist/app/index.js.map +1 -1
- package/dist/bin/gemi.js +2 -2
- package/dist/bin/gemi.js.map +4 -4
- package/dist/bun/customRequestParser.d.ts +9 -0
- package/dist/bun/customRequestParser.d.ts.map +1 -0
- package/dist/bun/plugin.js +2 -2
- package/dist/bun/plugin.js.map +1 -1
- package/dist/bun/preload.js +2 -2
- package/dist/bun/preload.js.map +2 -2
- package/dist/{chunk-rjcmbwcc.js → chunk-00y49jcf.js} +2 -2
- package/dist/{chunk-rjcmbwcc.js.map → chunk-00y49jcf.js.map} +1 -1
- package/dist/{chunk-22k4b395.js → chunk-1npdp1w2.js} +2 -2
- package/dist/{chunk-22k4b395.js.map → chunk-1npdp1w2.js.map} +1 -1
- package/dist/{chunk-j6e99sra.js → chunk-1rs13253.js} +75 -75
- package/dist/{chunk-j6e99sra.js.map → chunk-1rs13253.js.map} +4 -5
- package/dist/{chunk-0fney17e.js → chunk-2gmgd05c.js} +2 -2
- package/dist/{chunk-0fney17e.js.map → chunk-2gmgd05c.js.map} +1 -1
- package/dist/{chunk-4f7n1r02.js → chunk-2q7m8a16.js} +2 -2
- package/dist/{chunk-4f7n1r02.js.map → chunk-2q7m8a16.js.map} +1 -1
- package/dist/{chunk-cbywzv21.js → chunk-2xqrh6d0.js} +1 -1
- package/dist/{chunk-gyareq03.js → chunk-331s9wqr.js} +3 -3
- package/dist/{chunk-gyareq03.js.map → chunk-331s9wqr.js.map} +1 -1
- package/dist/{chunk-1xzdexbq.js → chunk-3s3awh38.js} +2 -2
- package/dist/{chunk-1xzdexbq.js.map → chunk-3s3awh38.js.map} +1 -1
- package/dist/{chunk-v4exgqbp.js → chunk-47rgq59q.js} +2 -2
- package/dist/{chunk-v4exgqbp.js.map → chunk-47rgq59q.js.map} +1 -1
- package/dist/{chunk-fcsq613t.js → chunk-4rr9wmh8.js} +2 -2
- package/dist/{chunk-fcsq613t.js.map → chunk-4rr9wmh8.js.map} +1 -1
- package/dist/{chunk-9a8qz3s7.js → chunk-564zfdd1.js} +2 -2
- package/dist/{chunk-9a8qz3s7.js.map → chunk-564zfdd1.js.map} +1 -1
- package/dist/chunk-5mj7a141.js +17 -0
- package/dist/{chunk-48wh5mbp.js.map → chunk-5mj7a141.js.map} +12 -7
- package/dist/{chunk-st0d3ndv.js → chunk-5wt25tyd.js} +2 -2
- package/dist/{chunk-st0d3ndv.js.map → chunk-5wt25tyd.js.map} +1 -1
- package/dist/{chunk-gy6d6jeg.js → chunk-661wezaf.js} +2 -2
- package/dist/{chunk-gy6d6jeg.js.map → chunk-661wezaf.js.map} +1 -1
- package/dist/{chunk-yxh4xs3k.js → chunk-6rz8kyqb.js} +2 -2
- package/dist/{chunk-yxh4xs3k.js.map → chunk-6rz8kyqb.js.map} +1 -1
- package/dist/{chunk-70e5fypb.js → chunk-6tyf0h6k.js} +2 -2
- package/dist/{chunk-70e5fypb.js.map → chunk-6tyf0h6k.js.map} +1 -1
- package/dist/{chunk-18aqqrev.js → chunk-6wrhc9bq.js} +3 -3
- package/dist/{chunk-18aqqrev.js.map → chunk-6wrhc9bq.js.map} +1 -1
- package/dist/{chunk-tnp1sc4j.js → chunk-6zqqec7r.js} +2 -2
- package/dist/{chunk-tnp1sc4j.js.map → chunk-6zqqec7r.js.map} +1 -1
- package/dist/{chunk-3m93v7bt.js → chunk-82hpq0bq.js} +2 -2
- package/dist/{chunk-3m93v7bt.js.map → chunk-82hpq0bq.js.map} +1 -1
- package/dist/{chunk-ee92kx8s.js → chunk-8pynv9rw.js} +2 -2
- package/dist/{chunk-ee92kx8s.js.map → chunk-8pynv9rw.js.map} +1 -1
- package/dist/{chunk-7kedxtbp.js → chunk-9hbwvcxn.js} +2 -2
- package/dist/{chunk-7kedxtbp.js.map → chunk-9hbwvcxn.js.map} +1 -1
- package/dist/{chunk-47dqttnk.js → chunk-9jz4rggd.js} +2 -2
- package/dist/{chunk-47dqttnk.js.map → chunk-9jz4rggd.js.map} +1 -1
- package/dist/{chunk-xnggfm0s.js → chunk-9mqqr05d.js} +3 -3
- package/dist/{chunk-xnggfm0s.js.map → chunk-9mqqr05d.js.map} +1 -1
- package/dist/{chunk-gvkydx8r.js → chunk-9r3znmqq.js} +2 -2
- package/dist/{chunk-gvkydx8r.js.map → chunk-9r3znmqq.js.map} +1 -1
- package/dist/{chunk-zq5m4scz.js → chunk-a1g0bahx.js} +2 -2
- package/dist/{chunk-zq5m4scz.js.map → chunk-a1g0bahx.js.map} +1 -1
- package/dist/{chunk-5ngv175h.js → chunk-anp4kv3w.js} +1 -1
- package/dist/{chunk-214av8am.js → chunk-cfsscms3.js} +4 -4
- package/dist/{chunk-214av8am.js.map → chunk-cfsscms3.js.map} +1 -1
- package/dist/{chunk-q8r9mvzx.js → chunk-eytdyahy.js} +2 -2
- package/dist/{chunk-q8r9mvzx.js.map → chunk-eytdyahy.js.map} +1 -1
- package/dist/{chunk-j041a7ej.js → chunk-ffagkj3x.js} +2 -2
- package/dist/{chunk-j041a7ej.js.map → chunk-ffagkj3x.js.map} +1 -1
- package/dist/{chunk-gvv2trvz.js → chunk-fq3sb3xt.js} +3 -3
- package/dist/{chunk-gvv2trvz.js.map → chunk-fq3sb3xt.js.map} +1 -1
- package/dist/{chunk-b1dqx3b9.js → chunk-ftgd68se.js} +3 -3
- package/dist/{chunk-b1dqx3b9.js.map → chunk-ftgd68se.js.map} +1 -1
- package/dist/{chunk-j9deswmn.js → chunk-fwympxqk.js} +2 -2
- package/dist/{chunk-j9deswmn.js.map → chunk-fwympxqk.js.map} +1 -1
- package/dist/{chunk-5dwtmkk8.js → chunk-gqpge54c.js} +2 -2
- package/dist/{chunk-5dwtmkk8.js.map → chunk-gqpge54c.js.map} +1 -1
- package/dist/{chunk-r5pnz4nn.js → chunk-h3t4n0bn.js} +2 -2
- package/dist/{chunk-r5pnz4nn.js.map → chunk-h3t4n0bn.js.map} +1 -1
- package/dist/{chunk-zm00crsx.js → chunk-h4x7cba0.js} +3 -3
- package/dist/{chunk-zm00crsx.js.map → chunk-h4x7cba0.js.map} +1 -1
- package/dist/{chunk-b0jpvp5t.js → chunk-h7pafjej.js} +3 -3
- package/dist/{chunk-b0jpvp5t.js.map → chunk-h7pafjej.js.map} +1 -1
- package/dist/{chunk-63hvh35x.js → chunk-hdhahvd4.js} +2 -2
- package/dist/{chunk-63hvh35x.js.map → chunk-hdhahvd4.js.map} +1 -1
- package/dist/{chunk-zytmxty5.js → chunk-hyfzw1fk.js} +2 -2
- package/dist/{chunk-zytmxty5.js.map → chunk-hyfzw1fk.js.map} +1 -1
- package/dist/{chunk-zmag8k0z.js → chunk-jnw73s8c.js} +2 -2
- package/dist/{chunk-zmag8k0z.js.map → chunk-jnw73s8c.js.map} +1 -1
- package/dist/{chunk-bsq80942.js → chunk-k17prwhx.js} +3 -3
- package/dist/{chunk-bsq80942.js.map → chunk-k17prwhx.js.map} +1 -1
- package/dist/{chunk-xxkk60aw.js → chunk-k9qmr2wa.js} +3 -3
- package/dist/{chunk-xxkk60aw.js.map → chunk-k9qmr2wa.js.map} +1 -1
- package/dist/chunk-kda25fn4.js +5 -0
- package/dist/chunk-kda25fn4.js.map +10 -0
- package/dist/{chunk-cw7qfcvt.js → chunk-kh273hj0.js} +2 -2
- package/dist/{chunk-cw7qfcvt.js.map → chunk-kh273hj0.js.map} +1 -1
- package/dist/{chunk-kwkbzswm.js → chunk-kqff894s.js} +2 -2
- package/dist/{chunk-kwkbzswm.js.map → chunk-kqff894s.js.map} +1 -1
- package/dist/{chunk-ma5rmcbe.js → chunk-kqz8jp6v.js} +2 -2
- package/dist/{chunk-ma5rmcbe.js.map → chunk-kqz8jp6v.js.map} +1 -1
- package/dist/{chunk-dtybftkq.js → chunk-kstvyvr0.js} +2 -2
- package/dist/{chunk-dtybftkq.js.map → chunk-kstvyvr0.js.map} +1 -1
- package/dist/{chunk-h945tg0r.js → chunk-m31pfz1s.js} +2 -2
- package/dist/{chunk-h945tg0r.js.map → chunk-m31pfz1s.js.map} +1 -1
- package/dist/{chunk-4p752vk2.js → chunk-mhq2bd9c.js} +3 -3
- package/dist/{chunk-4p752vk2.js.map → chunk-mhq2bd9c.js.map} +1 -1
- package/dist/chunk-mrvcaakf.js +5 -0
- package/dist/{chunk-f2n21fef.js.map → chunk-mrvcaakf.js.map} +1 -1
- package/dist/{chunk-ayss2f8c.js → chunk-njkk498k.js} +2 -2
- package/dist/{chunk-ayss2f8c.js.map → chunk-njkk498k.js.map} +1 -1
- package/dist/{chunk-hwc8gt4n.js → chunk-pj2e1p07.js} +2 -2
- package/dist/{chunk-hwc8gt4n.js.map → chunk-pj2e1p07.js.map} +1 -1
- package/dist/{chunk-5k3rm4b6.js → chunk-q2fyp44f.js} +2 -2
- package/dist/{chunk-5k3rm4b6.js.map → chunk-q2fyp44f.js.map} +1 -1
- package/dist/{chunk-53we503k.js → chunk-q7y9v2v5.js} +3 -3
- package/dist/{chunk-53we503k.js.map → chunk-q7y9v2v5.js.map} +1 -1
- package/dist/chunk-rh9j8cwv.js +9 -0
- package/dist/chunk-rh9j8cwv.js.map +31 -0
- package/dist/{chunk-sedwjgvf.js → chunk-rjernda5.js} +2 -2
- package/dist/{chunk-sedwjgvf.js.map → chunk-rjernda5.js.map} +1 -1
- package/dist/{chunk-2baxmae9.js → chunk-rn2kgbg4.js} +2 -2
- package/dist/{chunk-2baxmae9.js.map → chunk-rn2kgbg4.js.map} +1 -1
- package/dist/{chunk-8nkdvgd9.js → chunk-sbyqs03h.js} +2 -2
- package/dist/{chunk-8nkdvgd9.js.map → chunk-sbyqs03h.js.map} +1 -1
- package/dist/{chunk-wc46df4w.js → chunk-t26n9vzw.js} +2 -2
- package/dist/{chunk-wc46df4w.js.map → chunk-t26n9vzw.js.map} +1 -1
- package/dist/{chunk-8z37k28d.js → chunk-tvy2fqza.js} +2 -2
- package/dist/{chunk-8z37k28d.js.map → chunk-tvy2fqza.js.map} +1 -1
- package/dist/{chunk-zhk3z9zk.js → chunk-tyhrrnp5.js} +3 -3
- package/dist/{chunk-zhk3z9zk.js.map → chunk-tyhrrnp5.js.map} +1 -1
- package/dist/{chunk-vh1hxm9y.js → chunk-v52dyw0q.js} +3 -3
- package/dist/{chunk-vh1hxm9y.js.map → chunk-v52dyw0q.js.map} +1 -1
- package/dist/{chunk-k6rd1nd4.js → chunk-vbm1ng3f.js} +3 -3
- package/dist/{chunk-k6rd1nd4.js.map → chunk-vbm1ng3f.js.map} +1 -1
- package/dist/{chunk-p2jn4bnx.js → chunk-vj2t77x1.js} +2 -2
- package/dist/{chunk-p2jn4bnx.js.map → chunk-vj2t77x1.js.map} +1 -1
- package/dist/{chunk-mnctdd8r.js → chunk-we2sj339.js} +2 -2
- package/dist/{chunk-mnctdd8r.js.map → chunk-we2sj339.js.map} +1 -1
- package/dist/{chunk-szrgwggb.js → chunk-wedwkqe7.js} +3 -3
- package/dist/{chunk-szrgwggb.js.map → chunk-wedwkqe7.js.map} +1 -1
- package/dist/{chunk-pfjr510h.js → chunk-wsftnxzs.js} +2 -2
- package/dist/{chunk-pfjr510h.js.map → chunk-wsftnxzs.js.map} +1 -1
- package/dist/{chunk-62cv9vjt.js → chunk-wzqkdmjd.js} +2 -2
- package/dist/{chunk-62cv9vjt.js.map → chunk-wzqkdmjd.js.map} +1 -1
- package/dist/{chunk-rkre6bqc.js → chunk-xg9vye7c.js} +1 -1
- package/dist/{chunk-vqvdptx4.js → chunk-xpyhmg45.js} +2 -2
- package/dist/{chunk-vqvdptx4.js.map → chunk-xpyhmg45.js.map} +1 -1
- package/dist/{chunk-hzmnqe4x.js → chunk-ydkjf626.js} +2 -2
- package/dist/{chunk-hzmnqe4x.js.map → chunk-ydkjf626.js.map} +1 -1
- package/dist/{chunk-jfnhzza6.js → chunk-yebaheh7.js} +3 -3
- package/dist/{chunk-jfnhzza6.js.map → chunk-yebaheh7.js.map} +1 -1
- package/dist/chunk-z38355mx.js +6 -0
- package/dist/{chunk-qxg2dnnr.js.map → chunk-z38355mx.js.map} +2 -2
- package/dist/{chunk-dyew1yf7.js → chunk-zrdbytx4.js} +2 -2
- package/dist/{chunk-dyew1yf7.js.map → chunk-zrdbytx4.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/ApiRouter.d.ts.map +1 -1
- package/dist/http/BodyLimitMiddleware.d.ts +27 -0
- package/dist/http/BodyLimitMiddleware.d.ts.map +1 -0
- package/dist/http/HttpRequest.d.ts.map +1 -1
- package/dist/http/bodyLimit.d.ts +45 -0
- package/dist/http/bodyLimit.d.ts.map +1 -0
- package/dist/http/index.d.ts +3 -0
- 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/http/middleware-config.d.ts +8 -0
- package/dist/http/middleware-config.d.ts.map +1 -1
- package/dist/http/safeFetch/addresses.d.ts +60 -0
- package/dist/http/safeFetch/addresses.d.ts.map +1 -0
- package/dist/http/safeFetch/errors.d.ts +78 -0
- package/dist/http/safeFetch/errors.d.ts.map +1 -0
- package/dist/http/safeFetch/index.d.ts +4 -0
- package/dist/http/safeFetch/index.d.ts.map +1 -0
- package/dist/http/safeFetch/safeFetch.d.ts +82 -0
- package/dist/http/safeFetch/safeFetch.d.ts.map +1 -0
- 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.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/middleware/MiddlewareRegistry.d.ts +8 -0
- package/dist/services/middleware/MiddlewareRegistry.d.ts.map +1 -1
- package/dist/services/queue/work.js +2 -2
- package/dist/services/queue/work.js.map +1 -1
- package/dist/services/router/ApiRouteDispatcher.d.ts.map +1 -1
- package/dist/support/index.js +2 -2
- package/dist/support/index.js.map +1 -1
- package/dist/vitest/index.d.ts +27 -0
- package/dist/vitest/index.d.ts.map +1 -0
- package/dist/vitest/index.js +4 -0
- package/dist/vitest/index.js.map +10 -0
- package/package.json +3 -2
- package/dist/chunk-3cxbvrts.js +0 -9
- package/dist/chunk-3cxbvrts.js.map +0 -31
- package/dist/chunk-48wh5mbp.js +0 -17
- package/dist/chunk-f2n21fef.js +0 -5
- package/dist/chunk-qxg2dnnr.js +0 -6
- /package/dist/{chunk-cbywzv21.js.map → chunk-2xqrh6d0.js.map} +0 -0
- /package/dist/{chunk-5ngv175h.js.map → chunk-anp4kv3w.js.map} +0 -0
- /package/dist/{chunk-rkre6bqc.js.map → chunk-xg9vye7c.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../ai/client/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAChB,YAAY,EAEZ,eAAe,EAEf,UAAU,EACV,KAAK,EACN,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,IAAI;IACtE,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC/B,sEAAsE;IACtE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;;;;;;;;OAeG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,EAC7E,IAAI,GAAE;IACJ,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAWjB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,EACvE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,KAAK,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7B,GAAG,GAAE,MAAiC,GACrC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAUjB;
|
|
1
|
+
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../ai/client/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAChB,YAAY,EAEZ,eAAe,EAEf,UAAU,EACV,KAAK,EACN,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,IAAI;IACtE,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC/B,sEAAsE;IACtE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;;;;;;;;OAeG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,EAC7E,IAAI,GAAE;IACJ,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAWjB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,EACvE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,KAAK,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7B,GAAG,GAAE,MAAiC,GACrC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAUjB;AA6TD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,EACxE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GACrB,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAWjB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounding what a long thread sends to the model (#473).
|
|
3
|
+
*
|
|
4
|
+
* A threaded conversation grows without end, and before this nothing in gemi
|
|
5
|
+
* bounded what a turn sent: the whole `loadThread` went to the provider until
|
|
6
|
+
* it answered `context_length_exceeded`. These are the pieces an app needs to
|
|
7
|
+
* bound it where the model call is, rather than in its store:
|
|
8
|
+
*
|
|
9
|
+
* - `turnStarts` / `splitTurns`: where the user's turns begin. A cut made at
|
|
10
|
+
* one never separates a tool call from its result, since a result is stored
|
|
11
|
+
* in the message that made the call, and never strands a tool-injected file
|
|
12
|
+
* message (user role, but not a turn) from the call that showed it.
|
|
13
|
+
* - `windowMessages`: a built-in policy over those turns (at most N turns, at
|
|
14
|
+
* most N bytes or approximate tokens), with cut points that move in steps so
|
|
15
|
+
* the provider's prompt cache keeps hitting.
|
|
16
|
+
*
|
|
17
|
+
* `Agent.create({ contextWindow })` applies the policy on every model call, and
|
|
18
|
+
* `prepareStep` is the hook for anything else. Neither changes what is stored:
|
|
19
|
+
* they shape the request, and the run's history, `onMessage` and the store
|
|
20
|
+
* see every message as before.
|
|
21
|
+
*/
|
|
22
|
+
import type { AgentMessage } from "./types";
|
|
23
|
+
/**
|
|
24
|
+
* The ids of the messages a tool injected to show a file, read from the
|
|
25
|
+
* `ToolCallPart.attachments` records in `messages`.
|
|
26
|
+
*
|
|
27
|
+
* The record is the test, not `attachmentId` on the part: a user's own upload
|
|
28
|
+
* carries an `attachmentId` too. Such a message has the user's role but is not
|
|
29
|
+
* the user's turn, which is why `turnStarts` steps over it.
|
|
30
|
+
*/
|
|
31
|
+
export declare function injectedMessageIds(messages: readonly AgentMessage[]): Set<string>;
|
|
32
|
+
/**
|
|
33
|
+
* The index of the first message of every turn in `messages`.
|
|
34
|
+
*
|
|
35
|
+
* A turn starts at a user message that no tool injected, and runs until the
|
|
36
|
+
* next one: the assistant's steps, their tool calls with their results (which
|
|
37
|
+
* are stored on the same message as the call), and any file a tool showed.
|
|
38
|
+
* Index 0 always starts a turn, so messages before the first user message (a
|
|
39
|
+
* greeting, a run cut short before its turn was stored) belong to the first
|
|
40
|
+
* turn rather than to none. Empty for an empty list.
|
|
41
|
+
*/
|
|
42
|
+
export declare function turnStarts(messages: readonly AgentMessage[]): number[];
|
|
43
|
+
/** `messages` grouped into turns. See `turnStarts`. */
|
|
44
|
+
export declare function splitTurns(messages: readonly AgentMessage[]): AgentMessage[][];
|
|
45
|
+
/**
|
|
46
|
+
* Roughly how much a message costs to send: the length of its JSON. A file
|
|
47
|
+
* part counts as its reference, not its bytes, which is what the request
|
|
48
|
+
* carries. Good enough to budget with, and the same number for the same
|
|
49
|
+
* message every time, which is what keeps a cut point stable.
|
|
50
|
+
*/
|
|
51
|
+
export declare function messageSize(message: AgentMessage): number;
|
|
52
|
+
/** `ContextWindowOptions.step`'s default. */
|
|
53
|
+
export declare const DEFAULT_CONTEXT_WINDOW_STEP = 10;
|
|
54
|
+
/** `ContextWindowOptions.note`'s default. */
|
|
55
|
+
export declare const DEFAULT_CONTEXT_WINDOW_NOTE = "[Earlier turns of this conversation are not shown.]";
|
|
56
|
+
export type ContextWindowOptions = {
|
|
57
|
+
/** The most turns sent. The latest turn is always sent, whatever the limits. */
|
|
58
|
+
maxTurns?: number;
|
|
59
|
+
/**
|
|
60
|
+
* The most characters of message JSON sent (see `messageSize`). The system
|
|
61
|
+
* prompt and the tools' schemas are not counted.
|
|
62
|
+
*/
|
|
63
|
+
maxBytes?: number;
|
|
64
|
+
/**
|
|
65
|
+
* The same budget in approximate tokens (four characters each). When both
|
|
66
|
+
* are given, the smaller one applies.
|
|
67
|
+
*/
|
|
68
|
+
maxTokens?: number;
|
|
69
|
+
/**
|
|
70
|
+
* How many turns the start of the window moves at a time. Default 10.
|
|
71
|
+
*
|
|
72
|
+
* A window that slid one turn per turn would send a different first message
|
|
73
|
+
* on every turn, and the provider's prompt cache (a prefix cache) would miss
|
|
74
|
+
* on every turn. With a step, the first kept turn is the 0th, the 10th, the
|
|
75
|
+
* 20th, … of the thread, so consecutive turns send the same prefix until the
|
|
76
|
+
* window has to move again. The cost is that the window holds up to `step`
|
|
77
|
+
* fewer turns than the limits would allow. `1` slides one turn at a time.
|
|
78
|
+
*/
|
|
79
|
+
step?: number;
|
|
80
|
+
/**
|
|
81
|
+
* Put at the start of the first kept turn when turns were left out, so the
|
|
82
|
+
* model knows the conversation goes back further. Default
|
|
83
|
+
* `DEFAULT_CONTEXT_WINDOW_NOTE`; `false` for none. A function gets how much
|
|
84
|
+
* was left out and answers the text, or `false`.
|
|
85
|
+
*/
|
|
86
|
+
note?: string | false | ((omitted: {
|
|
87
|
+
turns: number;
|
|
88
|
+
messages: number;
|
|
89
|
+
}) => string | false);
|
|
90
|
+
};
|
|
91
|
+
export type ContextWindowResult = {
|
|
92
|
+
/** What to send. New objects only where something changed (the note, a
|
|
93
|
+
* carried search); every other message is the one passed in. */
|
|
94
|
+
messages: AgentMessage[];
|
|
95
|
+
/** The index in the input of the first kept turn's first message. */
|
|
96
|
+
start: number;
|
|
97
|
+
/** How many turns and messages were left out. Both 0 when nothing was. */
|
|
98
|
+
omittedTurns: number;
|
|
99
|
+
omittedMessages: number;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* The latest turns of `messages` that fit `options`.
|
|
103
|
+
*
|
|
104
|
+
* - Cuts only at a turn start (`turnStarts`), so a tool call keeps its result
|
|
105
|
+
* and a tool-injected file stays below the call that showed it.
|
|
106
|
+
* - Always keeps the latest turn, even when it alone is over the budget: an
|
|
107
|
+
* empty request is worse than an oversized one, and the provider is the
|
|
108
|
+
* judge of whether it fits.
|
|
109
|
+
* - Moves the cut `step` turns at a time, counted from the thread's first
|
|
110
|
+
* turn, so the prefix sent stays the same from turn to turn (see `step`).
|
|
111
|
+
* When no step-aligned cut fits (one huge turn), it falls back to the
|
|
112
|
+
* earliest turn that does.
|
|
113
|
+
* - Keeps `system` messages from before the cut, at the front: they are
|
|
114
|
+
* instructions, not conversation.
|
|
115
|
+
* - Carries tool searches over the cut (#777). A namespaced or deferred tool
|
|
116
|
+
* is only loaded for the model by a search in its history, so a kept call to
|
|
117
|
+
* one whose search was left out gets that search put back on it (on a copy).
|
|
118
|
+
*
|
|
119
|
+
* Pure: the input is never changed, and the same input gives the same output.
|
|
120
|
+
*/
|
|
121
|
+
export declare function windowMessages(messages: readonly AgentMessage[], options?: ContextWindowOptions): ContextWindowResult;
|
|
122
|
+
//# sourceMappingURL=contextWindow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextWindow.d.ts","sourceRoot":"","sources":["../../ai/contextWindow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAkC,MAAM,SAAS,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAWjF;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CAStE;AAED,uDAAuD;AACvD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,EAAE,EAAE,CAG9E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAMzD;AAKD,6CAA6C;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,6CAA6C;AAC7C,eAAO,MAAM,2BAA2B,wDAAwD,CAAC;AAEjG,MAAM,MAAM,oBAAoB,GAAG;IACjC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,KAAK,CAAC,CAAC;CAC5F,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC;qEACiE;IACjE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA+DrB"}
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -28,7 +28,9 @@ export { supportsStrict } from "./Schema";
|
|
|
28
28
|
export type { AnySchema, FromJSONSchemaOptions, Infer, JSONSchemaFormat, JsonValue, JSONSchema, OptionalSchema, Schema, SchemaIssue, SchemaIssueCode, } from "./Schema";
|
|
29
29
|
export type { AgentContentPart, AgentError, AgentErrorCode, AgentMessage, AgentStreamEvent, AgentStreamFrame, ClientToolResult, ClientTurn, FilePart, FinishReason, NestedRun, OutputPart, PendingToolCall, ReasoningPart, TextPart, ToolCallPart, ToolResultPart, ToolSearchRecord, ToolShape, ToolShapes, Usage, } from "./types";
|
|
30
30
|
export { Agent, AgentTool, PendingEscalation, AgentRunError, DEFAULT_MAX_RUN_DURATION_MS, Skill, SKILLS_NAMESPACE, ToolNamespace, } from "./Agent";
|
|
31
|
-
export type { AgentContext, AgentResultOptions, AgentRun, AgentRunFailure, AgentRunResult, AgentStreamParams, AnyAgent, AnyAgentTool, CreateAgentParams, NestedRunResult, OutputOf, ReasoningEffort, RunAgentParams, SkillDefinition, ToolContext, ToolDefinition, ToolEntry, ToolExecute, ToolInputSchema, ToolSchemaContext, ToolShapesOf, ToolTurn, } from "./Agent";
|
|
31
|
+
export type { AgentContext, AgentResultOptions, AgentRun, AgentRunFailure, AgentRunResult, AgentStreamParams, AnyAgent, AnyAgentTool, CreateAgentParams, NestedRunResult, OutputOf, PrepareStep, PrepareStepContext, PrepareStepResult, ReasoningEffort, RunAgentParams, SkillDefinition, ToolContext, ToolDefinition, ToolEntry, ToolExecute, ToolInputSchema, ToolSchemaContext, ToolShapesOf, ToolTurn, } from "./Agent";
|
|
32
|
+
export { DEFAULT_CONTEXT_WINDOW_NOTE, DEFAULT_CONTEXT_WINDOW_STEP, injectedMessageIds, messageSize, splitTurns, turnStarts, windowMessages, } from "./contextWindow";
|
|
33
|
+
export type { ContextWindowOptions, ContextWindowResult } from "./contextWindow";
|
|
32
34
|
export { redactError, ToolError } from "./redact";
|
|
33
35
|
export type { ErrorRedactionInfo, ErrorRedactor } from "./redact";
|
|
34
36
|
export { generate } from "./generate";
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAQH,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAK9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,cAAc,EACd,MAAM,EACN,WAAW,EACX,eAAe,GAChB,MAAM,UAAU,CAAC;AAKlB,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,KAAK,GACN,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,KAAK,EACL,SAAS,EAIT,iBAAiB,EAGjB,aAAa,EAGb,2BAA2B,EAC3B,KAAK,EACL,gBAAgB,EAChB,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,cAAc,EACd,eAAe,EACf,WAAW,EACX,cAAc,EACd,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,QAAQ,GACT,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ai/index.ts"],"names":[],"mappings":"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"}
|