@theokit/sdk 4.37.1 → 4.38.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/CHANGELOG.md +77 -71
- package/dist/agent-2GZC4W2A.cjs +51 -0
- package/dist/{agent-4MHQUGO5.cjs.map → agent-2GZC4W2A.cjs.map} +1 -1
- package/dist/agent-3H3UKD6U.js +42 -0
- package/dist/{agent-GV36S2CF.js.map → agent-3H3UKD6U.js.map} +1 -1
- package/dist/{agent-SmxntivO.d.ts → agent-C3AEtM-W.d.ts} +39 -37
- package/dist/{agent-DGv1-d81.d.cts → agent-U3lBX-5t.d.cts} +39 -37
- package/dist/agent.d.ts +1 -1
- package/dist/auth/index.cjs +15 -15
- package/dist/auth/index.js +4 -4
- package/dist/{batch-SY5GZLFD.js → batch-LXSALQC3.js} +9 -9
- package/dist/{batch-SY5GZLFD.js.map → batch-LXSALQC3.js.map} +1 -1
- package/dist/{batch-3SEPDXCU.cjs → batch-NZGN6SFV.cjs} +23 -23
- package/dist/{batch-3SEPDXCU.cjs.map → batch-NZGN6SFV.cjs.map} +1 -1
- package/dist/{chunk-D4ZUJTFB.cjs → chunk-2K7PRHDB.cjs} +8 -8
- package/dist/{chunk-D4ZUJTFB.cjs.map → chunk-2K7PRHDB.cjs.map} +1 -1
- package/dist/chunk-2R6NBT5F.cjs +112 -0
- package/dist/chunk-2R6NBT5F.cjs.map +1 -0
- package/dist/{chunk-2423XDPT.cjs → chunk-3BSP7LSG.cjs} +26 -26
- package/dist/{chunk-2423XDPT.cjs.map → chunk-3BSP7LSG.cjs.map} +1 -1
- package/dist/{chunk-6EDQBX7U.cjs → chunk-3MUIYMUG.cjs} +17 -17
- package/dist/{chunk-6EDQBX7U.cjs.map → chunk-3MUIYMUG.cjs.map} +1 -1
- package/dist/{chunk-P34DHHYQ.cjs → chunk-3VKTDQMX.cjs} +34 -27
- package/dist/chunk-3VKTDQMX.cjs.map +1 -0
- package/dist/{chunk-77WHPVXE.js → chunk-3XKVRLR2.js} +4 -4
- package/dist/chunk-3XKVRLR2.js.map +1 -0
- package/dist/{chunk-SWIBQFPH.cjs → chunk-3XRXORBS.cjs} +4 -4
- package/dist/{chunk-SWIBQFPH.cjs.map → chunk-3XRXORBS.cjs.map} +1 -1
- package/dist/{chunk-DCJ5MCJ3.js → chunk-4APWS2YF.js} +7 -7
- package/dist/{chunk-DCJ5MCJ3.js.map → chunk-4APWS2YF.js.map} +1 -1
- package/dist/{chunk-56ZM6P7Z.cjs → chunk-4MWBKBS4.cjs} +12 -12
- package/dist/chunk-4MWBKBS4.cjs.map +1 -0
- package/dist/chunk-4NVV3GRU.js +110 -0
- package/dist/chunk-4NVV3GRU.js.map +1 -0
- package/dist/{chunk-QGDKZDPN.js → chunk-4WIJSKFA.js} +3 -3
- package/dist/{chunk-QGDKZDPN.js.map → chunk-4WIJSKFA.js.map} +1 -1
- package/dist/{chunk-VNNK6AKU.js → chunk-5BVBNE2F.js} +3 -3
- package/dist/chunk-5BVBNE2F.js.map +1 -0
- package/dist/{chunk-EEZ7CFMM.js → chunk-5KOW3GLE.js} +2 -2
- package/dist/chunk-5KOW3GLE.js.map +1 -0
- package/dist/{chunk-FK4EJD2I.cjs → chunk-6OIO4FYX.cjs} +7 -7
- package/dist/{chunk-FK4EJD2I.cjs.map → chunk-6OIO4FYX.cjs.map} +1 -1
- package/dist/{chunk-IEUDKUPM.cjs → chunk-6OKPJZMX.cjs} +8 -8
- package/dist/{chunk-IEUDKUPM.cjs.map → chunk-6OKPJZMX.cjs.map} +1 -1
- package/dist/{chunk-QFMXXUUT.js → chunk-6XZBKFQ7.js} +3 -3
- package/dist/{chunk-QFMXXUUT.js.map → chunk-6XZBKFQ7.js.map} +1 -1
- package/dist/{chunk-H5YVJB4K.cjs → chunk-6ZGD7R27.cjs} +37 -37
- package/dist/chunk-6ZGD7R27.cjs.map +1 -0
- package/dist/{chunk-HEN5WXXI.js → chunk-7QDTZJRV.js} +6 -6
- package/dist/{chunk-HEN5WXXI.js.map → chunk-7QDTZJRV.js.map} +1 -1
- package/dist/{chunk-MHCKWQR3.cjs → chunk-A3MHE2MQ.cjs} +8 -8
- package/dist/{chunk-MHCKWQR3.cjs.map → chunk-A3MHE2MQ.cjs.map} +1 -1
- package/dist/{chunk-5SB4V74H.js → chunk-A4XXV2C6.js} +18 -18
- package/dist/chunk-A4XXV2C6.js.map +1 -0
- package/dist/{chunk-6VP3XGEK.js → chunk-A6GXYF2Q.js} +9 -9
- package/dist/{chunk-6VP3XGEK.js.map → chunk-A6GXYF2Q.js.map} +1 -1
- package/dist/{chunk-SDIBMLL5.js → chunk-ACHGT3D2.js} +8 -8
- package/dist/{chunk-SDIBMLL5.js.map → chunk-ACHGT3D2.js.map} +1 -1
- package/dist/{chunk-XAEAMI5H.js → chunk-AOZYORH7.js} +4 -4
- package/dist/chunk-AOZYORH7.js.map +1 -0
- package/dist/{chunk-LTCOPATU.cjs → chunk-BE3W4HYV.cjs} +2 -2
- package/dist/chunk-BE3W4HYV.cjs.map +1 -0
- package/dist/{chunk-NQ4AC2U4.cjs → chunk-BT6DFWZB.cjs} +9 -9
- package/dist/{chunk-NQ4AC2U4.cjs.map → chunk-BT6DFWZB.cjs.map} +1 -1
- package/dist/{chunk-XAYVHS2B.cjs → chunk-BUGVDCI5.cjs} +4 -4
- package/dist/{chunk-XAYVHS2B.cjs.map → chunk-BUGVDCI5.cjs.map} +1 -1
- package/dist/{chunk-IT3PWBW4.cjs → chunk-BURYFNOM.cjs} +2 -2
- package/dist/chunk-BURYFNOM.cjs.map +1 -0
- package/dist/{chunk-NNSKJCBM.cjs → chunk-D3SJLXYZ.cjs} +10 -10
- package/dist/{chunk-NNSKJCBM.cjs.map → chunk-D3SJLXYZ.cjs.map} +1 -1
- package/dist/{chunk-MRODLUGY.cjs → chunk-ED7ANP6W.cjs} +4 -4
- package/dist/{chunk-MRODLUGY.cjs.map → chunk-ED7ANP6W.cjs.map} +1 -1
- package/dist/{chunk-MXSMAGDU.js → chunk-EDI7DBWO.js} +33 -26
- package/dist/chunk-EDI7DBWO.js.map +1 -0
- package/dist/{chunk-SSH2ZAZF.js → chunk-EE24WJJR.js} +5 -5
- package/dist/{chunk-SSH2ZAZF.js.map → chunk-EE24WJJR.js.map} +1 -1
- package/dist/{chunk-ZJN6NTHE.js → chunk-EUB7YLU2.js} +3 -3
- package/dist/{chunk-ZJN6NTHE.js.map → chunk-EUB7YLU2.js.map} +1 -1
- package/dist/{chunk-ALU3KC4G.cjs → chunk-G7X2Y7Y2.cjs} +156 -156
- package/dist/chunk-G7X2Y7Y2.cjs.map +1 -0
- package/dist/{chunk-YCXMSDSP.js → chunk-HHUDNTZC.js} +4 -4
- package/dist/{chunk-YCXMSDSP.js.map → chunk-HHUDNTZC.js.map} +1 -1
- package/dist/{chunk-GL7CFBVC.js → chunk-HI6G3SNY.js} +48 -48
- package/dist/chunk-HI6G3SNY.js.map +1 -0
- package/dist/{chunk-KDDL5HKQ.cjs → chunk-HLK35TD7.cjs} +24 -24
- package/dist/{chunk-KDDL5HKQ.cjs.map → chunk-HLK35TD7.cjs.map} +1 -1
- package/dist/{chunk-4YB7B3RP.cjs → chunk-IBDE4R5L.cjs} +13 -13
- package/dist/{chunk-4YB7B3RP.cjs.map → chunk-IBDE4R5L.cjs.map} +1 -1
- package/dist/{chunk-WDGCZDRG.js → chunk-JCXIDFRI.js} +3 -3
- package/dist/{chunk-WDGCZDRG.js.map → chunk-JCXIDFRI.js.map} +1 -1
- package/dist/{chunk-I35DI7ES.js → chunk-JI34KBNC.js} +3 -3
- package/dist/{chunk-I35DI7ES.js.map → chunk-JI34KBNC.js.map} +1 -1
- package/dist/{chunk-TAPQWDW2.js → chunk-KCZW75PI.js} +2 -2
- package/dist/chunk-KCZW75PI.js.map +1 -0
- package/dist/{chunk-U2WLFOA3.cjs → chunk-KL7E244K.cjs} +4 -4
- package/dist/{chunk-U2WLFOA3.cjs.map → chunk-KL7E244K.cjs.map} +1 -1
- package/dist/{chunk-PAEJPLVN.cjs → chunk-KTXOHCAE.cjs} +4 -4
- package/dist/{chunk-PAEJPLVN.cjs.map → chunk-KTXOHCAE.cjs.map} +1 -1
- package/dist/{chunk-2WFB5ZOX.js → chunk-KWXC6ERT.js} +5 -5
- package/dist/{chunk-2WFB5ZOX.js.map → chunk-KWXC6ERT.js.map} +1 -1
- package/dist/{chunk-56OXYUZE.js → chunk-LGCEYEU2.js} +3 -3
- package/dist/chunk-LGCEYEU2.js.map +1 -0
- package/dist/{chunk-FAY3QDGC.cjs → chunk-M4OGSS66.cjs} +11 -11
- package/dist/{chunk-FAY3QDGC.cjs.map → chunk-M4OGSS66.cjs.map} +1 -1
- package/dist/{chunk-F6Y4IEQM.js → chunk-M6UUTNDT.js} +4 -4
- package/dist/{chunk-F6Y4IEQM.js.map → chunk-M6UUTNDT.js.map} +1 -1
- package/dist/{chunk-GM7QDQ24.cjs → chunk-MXRBNJ6D.cjs} +11 -11
- package/dist/{chunk-GM7QDQ24.cjs.map → chunk-MXRBNJ6D.cjs.map} +1 -1
- package/dist/{chunk-YPQF26X7.cjs → chunk-OBA6YK2R.cjs} +2 -2
- package/dist/chunk-OBA6YK2R.cjs.map +1 -0
- package/dist/{chunk-BJMKQOY2.cjs → chunk-OFWU6UKF.cjs} +11 -11
- package/dist/{chunk-BJMKQOY2.cjs.map → chunk-OFWU6UKF.cjs.map} +1 -1
- package/dist/{chunk-3O2ELBST.cjs → chunk-PG3QQLWS.cjs} +5 -5
- package/dist/{chunk-3O2ELBST.cjs.map → chunk-PG3QQLWS.cjs.map} +1 -1
- package/dist/{chunk-2ONFGMBV.js → chunk-PY2RQOA7.js} +2 -2
- package/dist/chunk-PY2RQOA7.js.map +1 -0
- package/dist/{chunk-UQPDFW4E.js → chunk-QFWQLXCL.js} +3 -3
- package/dist/{chunk-UQPDFW4E.js.map → chunk-QFWQLXCL.js.map} +1 -1
- package/dist/{chunk-YBFDBOUN.cjs → chunk-QJQ2MAZF.cjs} +8 -8
- package/dist/{chunk-YBFDBOUN.cjs.map → chunk-QJQ2MAZF.cjs.map} +1 -1
- package/dist/{chunk-QUFSDDNU.cjs → chunk-R4AMI7KD.cjs} +15 -15
- package/dist/{chunk-QUFSDDNU.cjs.map → chunk-R4AMI7KD.cjs.map} +1 -1
- package/dist/{chunk-CSZRJ4RE.js → chunk-SGTMDQ4O.js} +5 -5
- package/dist/{chunk-CSZRJ4RE.js.map → chunk-SGTMDQ4O.js.map} +1 -1
- package/dist/{chunk-3ILFUXNE.cjs → chunk-SRIF7HMN.cjs} +5 -5
- package/dist/{chunk-3ILFUXNE.cjs.map → chunk-SRIF7HMN.cjs.map} +1 -1
- package/dist/{chunk-THEYGCYS.cjs → chunk-TKDWD3MU.cjs} +4 -4
- package/dist/chunk-TKDWD3MU.cjs.map +1 -0
- package/dist/{chunk-ZW345YOI.js → chunk-UD2T7ISG.js} +4 -4
- package/dist/{chunk-ZW345YOI.js.map → chunk-UD2T7ISG.js.map} +1 -1
- package/dist/{chunk-EXQV452X.js → chunk-UWEALKAN.js} +3 -3
- package/dist/{chunk-EXQV452X.js.map → chunk-UWEALKAN.js.map} +1 -1
- package/dist/{chunk-S3WZ7NHF.cjs → chunk-UZBA6YYP.cjs} +472 -326
- package/dist/chunk-UZBA6YYP.cjs.map +1 -0
- package/dist/{chunk-XJLGRJ7K.js → chunk-VUDH4D2M.js} +221 -75
- package/dist/chunk-VUDH4D2M.js.map +1 -0
- package/dist/{chunk-W4QN5CMG.cjs → chunk-VVMLMKYZ.cjs} +9 -9
- package/dist/{chunk-W4QN5CMG.cjs.map → chunk-VVMLMKYZ.cjs.map} +1 -1
- package/dist/{chunk-JNIWFCKI.js → chunk-VYD6BGKK.js} +3 -3
- package/dist/{chunk-JNIWFCKI.js.map → chunk-VYD6BGKK.js.map} +1 -1
- package/dist/{chunk-YHZXBDAW.js → chunk-XJ5TMOGA.js} +16 -16
- package/dist/{chunk-YHZXBDAW.js.map → chunk-XJ5TMOGA.js.map} +1 -1
- package/dist/{chunk-7DXLNNKH.cjs → chunk-XKBJT7WI.cjs} +4 -4
- package/dist/{chunk-7DXLNNKH.cjs.map → chunk-XKBJT7WI.cjs.map} +1 -1
- package/dist/{chunk-YDLNI7J6.js → chunk-XS7SKY2F.js} +3 -3
- package/dist/{chunk-YDLNI7J6.js.map → chunk-XS7SKY2F.js.map} +1 -1
- package/dist/{chunk-NFCKEBHI.js → chunk-YCHC45BY.js} +3 -3
- package/dist/{chunk-NFCKEBHI.js.map → chunk-YCHC45BY.js.map} +1 -1
- package/dist/{chunk-ICYBIC6N.cjs → chunk-YVI4YPUP.cjs} +4 -4
- package/dist/chunk-YVI4YPUP.cjs.map +1 -0
- package/dist/{chunk-TQI3KRXZ.cjs → chunk-ZET34IZE.cjs} +18 -18
- package/dist/{chunk-TQI3KRXZ.cjs.map → chunk-ZET34IZE.cjs.map} +1 -1
- package/dist/{chunk-GLUWH6JO.js → chunk-ZFZYPLQI.js} +4 -4
- package/dist/{chunk-GLUWH6JO.js.map → chunk-ZFZYPLQI.js.map} +1 -1
- package/dist/{chunk-M5ZQBOIZ.js → chunk-ZK3BJ4XQ.js} +3 -3
- package/dist/{chunk-M5ZQBOIZ.js.map → chunk-ZK3BJ4XQ.js.map} +1 -1
- package/dist/{chunk-CD73YHEH.js → chunk-ZYOHF37V.js} +3 -3
- package/dist/{chunk-CD73YHEH.js.map → chunk-ZYOHF37V.js.map} +1 -1
- package/dist/compact-session-RR3ILTES.js +17 -0
- package/dist/{compact-session-WNKKIIDW.js.map → compact-session-RR3ILTES.js.map} +1 -1
- package/dist/compact-session-YOWJJPPB.cjs +54 -0
- package/dist/{compact-session-H5TKLD55.cjs.map → compact-session-YOWJJPPB.cjs.map} +1 -1
- package/dist/compaction.cjs +19 -19
- package/dist/compaction.d.cts +9 -9
- package/dist/compaction.d.ts +9 -9
- package/dist/compaction.js +3 -3
- package/dist/concurrency.cjs +6 -6
- package/dist/concurrency.js +4 -4
- package/dist/context-Q6ISOCN2.cjs +22 -0
- package/dist/{context-ZV33V4DC.cjs.map → context-Q6ISOCN2.cjs.map} +1 -1
- package/dist/context-ZDBBPIHY.js +5 -0
- package/dist/{context-VAYLPT4O.js.map → context-ZDBBPIHY.js.map} +1 -1
- package/dist/{cron-BiK_aNJI.d.cts → cron-BdXOZco9.d.cts} +2 -2
- package/dist/{cron-Dx7B-3WB.d.ts → cron-ChQ6zcW2.d.ts} +2 -2
- package/dist/cron.cjs +29 -29
- package/dist/cron.d.cts +3 -3
- package/dist/cron.d.ts +3 -3
- package/dist/cron.js +28 -28
- package/dist/{errors-DyVbXdR4.d.cts → errors-BUVjJGJA.d.cts} +1 -1
- package/dist/{errors-Cua4WC9H.d.ts → errors-CZIUKLHt.d.ts} +1 -1
- package/dist/errors.cjs +21 -21
- package/dist/errors.d.cts +2 -2
- package/dist/errors.d.ts +2 -2
- package/dist/errors.js +2 -2
- package/dist/eval.cjs +32 -32
- package/dist/eval.js +28 -28
- package/dist/{executor-PAH72CB5.js → executor-ASDDIM2X.js} +7 -7
- package/dist/{executor-PAH72CB5.js.map → executor-ASDDIM2X.js.map} +1 -1
- package/dist/{executor-OZSYXDKF.cjs → executor-DPCBSI35.cjs} +23 -23
- package/dist/{executor-OZSYXDKF.cjs.map → executor-DPCBSI35.cjs.map} +1 -1
- package/dist/filesystem/index.cjs +7 -7
- package/dist/filesystem/index.js +3 -3
- package/dist/fs-session-store-K5QUPNJZ.js +10 -0
- package/dist/{fs-session-store-6MY7PNI2.js.map → fs-session-store-K5QUPNJZ.js.map} +1 -1
- package/dist/fs-session-store-T5ZLQX42.cjs +19 -0
- package/dist/{fs-session-store-7E7UPLF2.cjs.map → fs-session-store-T5ZLQX42.cjs.map} +1 -1
- package/dist/generate-object-F56VIZ6U.cjs +20 -0
- package/dist/{generate-object-5SCEH2EE.cjs.map → generate-object-F56VIZ6U.cjs.map} +1 -1
- package/dist/generate-object-LPSO6GVW.js +7 -0
- package/dist/{generate-object-I7UD4NWN.js.map → generate-object-LPSO6GVW.js.map} +1 -1
- package/dist/index-manager-DBJ55ZSO.cjs +19 -0
- package/dist/{index-manager-R6ZJFEZF.cjs.map → index-manager-DBJ55ZSO.cjs.map} +1 -1
- package/dist/index-manager-F2H2RCZU.js +10 -0
- package/dist/{index-manager-KKAK7NT3.js.map → index-manager-F2H2RCZU.js.map} +1 -1
- package/dist/index.cjs +140 -140
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +42 -42
- package/dist/index.d.ts +42 -42
- package/dist/index.js +54 -54
- package/dist/index.js.map +1 -1
- package/dist/{inject-session-DM4SKTZO.cjs → inject-session-25EC74WV.cjs} +10 -10
- package/dist/{inject-session-DM4SKTZO.cjs.map → inject-session-25EC74WV.cjs.map} +1 -1
- package/dist/{inject-session-UXNJQTZ6.js → inject-session-RKNLUE72.js} +7 -7
- package/dist/{inject-session-UXNJQTZ6.js.map → inject-session-RKNLUE72.js.map} +1 -1
- package/dist/internal/agent-loop/live-events.d.ts +46 -0
- package/dist/internal/budget/compute-cost.d.ts +1 -1
- package/dist/internal/diagnostics.d.ts +31 -29
- package/dist/internal/error-mappers/anthropic.d.ts +1 -1
- package/dist/internal/global-singleton.d.ts +7 -7
- package/dist/internal/judge/judge-call.d.ts +14 -14
- package/dist/internal/llm/retrying-client.d.ts +29 -29
- package/dist/internal/llm/transport-error.d.ts +2 -2
- package/dist/internal/persistence/exclusive-create.d.cts +2 -2
- package/dist/internal/persistence/exclusive-create.d.ts +2 -2
- package/dist/internal/persistence/fs-session-store.d.cts +18 -18
- package/dist/internal/persistence/fs-session-store.d.ts +18 -18
- package/dist/internal/persistence/index.cjs +25 -25
- package/dist/internal/persistence/index.cjs.map +1 -1
- package/dist/internal/persistence/index.js +6 -6
- package/dist/internal/persistence/index.js.map +1 -1
- package/dist/internal/persistence/paths.d.cts +7 -7
- package/dist/internal/persistence/paths.d.ts +7 -7
- package/dist/internal/persistence/session-transcript.d.cts +7 -7
- package/dist/internal/persistence/session-transcript.d.ts +7 -7
- package/dist/internal/persistence/session-writer.d.cts +30 -13
- package/dist/internal/persistence/session-writer.d.ts +30 -13
- package/dist/internal/runtime/fixtures/fixture-run-base.d.ts +45 -13
- package/dist/internal/runtime/lifecycle/goal-marker.d.ts +8 -8
- package/dist/internal/security/index.cjs +13 -13
- package/dist/internal/security/index.js +3 -3
- package/dist/internal/session/agent-session.d.ts +14 -14
- package/dist/internal/session/session-cache.d.ts +9 -9
- package/dist/judge-call-3S3T6O2Z.js +5 -0
- package/dist/{judge-call-TAEIXMYG.js.map → judge-call-3S3T6O2Z.js.map} +1 -1
- package/dist/judge-call-XIQJ5GIE.cjs +22 -0
- package/dist/{judge-call-SP3G3X2Y.cjs.map → judge-call-XIQJ5GIE.cjs.map} +1 -1
- package/dist/models.cjs +20 -20
- package/dist/models.cjs.map +1 -1
- package/dist/models.js +5 -5
- package/dist/models.js.map +1 -1
- package/dist/path-safety.cjs +10 -10
- package/dist/path-safety.js +3 -3
- package/dist/persistence.cjs +34 -34
- package/dist/persistence.cjs.map +1 -1
- package/dist/persistence.d.cts +1 -1
- package/dist/persistence.d.ts +1 -1
- package/dist/persistence.js +14 -14
- package/dist/persistence.js.map +1 -1
- package/dist/project.cjs +5 -5
- package/dist/project.js +3 -3
- package/dist/registry-BA3SLAN7.cjs +46 -0
- package/dist/{registry-N3GTKYCI.cjs.map → registry-BA3SLAN7.cjs.map} +1 -1
- package/dist/registry-KMI5RA22.js +9 -0
- package/dist/{registry-SOXE4RY6.js.map → registry-KMI5RA22.js.map} +1 -1
- package/dist/retry.cjs +4 -4
- package/dist/retry.js +3 -3
- package/dist/{run-until-YZ2ODWOF.js → run-until-BK56WG4P.js} +3 -3
- package/dist/{run-until-YZ2ODWOF.js.map → run-until-BK56WG4P.js.map} +1 -1
- package/dist/{run-until-ZZ2JLPJM.cjs → run-until-L5KQD3PV.cjs} +4 -4
- package/dist/{run-until-ZZ2JLPJM.cjs.map → run-until-L5KQD3PV.cjs.map} +1 -1
- package/dist/{run-CwEJtLPE.d.ts → run-vJHg2eGw.d.cts} +201 -174
- package/dist/{run-CwEJtLPE.d.cts → run-vJHg2eGw.d.ts} +201 -174
- package/dist/sandbox/bwrap.d.cts +20 -20
- package/dist/sandbox/bwrap.d.ts +20 -20
- package/dist/sandbox/index.cjs +39 -39
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +1 -1
- package/dist/sandbox/index.d.ts +1 -1
- package/dist/sandbox/index.js +35 -35
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/linux-sandbox.d.cts +26 -21
- package/dist/sandbox/linux-sandbox.d.ts +26 -21
- package/dist/server/auth/index.cjs.map +1 -1
- package/dist/server/auth/index.d.cts +6 -6
- package/dist/server/auth/index.d.ts +6 -6
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/auth/orchestrator.d.cts +2 -2
- package/dist/server/auth/orchestrator.d.ts +2 -2
- package/dist/server/auth/types.d.cts +4 -4
- package/dist/server/auth/types.d.ts +4 -4
- package/dist/server/errors-envelope.cjs +14 -14
- package/dist/server/errors-envelope.d.cts +3 -3
- package/dist/server/errors-envelope.d.ts +3 -3
- package/dist/server/errors-envelope.js +3 -3
- package/dist/session-transcript-DFGX6WNL.cjs +50 -0
- package/dist/{session-transcript-EAKR4D2W.cjs.map → session-transcript-DFGX6WNL.cjs.map} +1 -1
- package/dist/session-transcript-MMPWCESR.js +5 -0
- package/dist/{session-transcript-6WKLYIN4.js.map → session-transcript-MMPWCESR.js.map} +1 -1
- package/dist/skills.cjs +7 -7
- package/dist/skills.js +5 -5
- package/dist/stream-object-AFERZU63.js +7 -0
- package/dist/{stream-object-OFM66VUT.js.map → stream-object-AFERZU63.js.map} +1 -1
- package/dist/stream-object-YPXZ4F5P.cjs +20 -0
- package/dist/{stream-object-Y7YCX3BI.cjs.map → stream-object-YPXZ4F5P.cjs.map} +1 -1
- package/dist/subagents-loader.cjs +6 -6
- package/dist/subagents-loader.d.cts +2 -2
- package/dist/subagents-loader.d.ts +2 -2
- package/dist/subagents-loader.js +4 -4
- package/dist/subscription/index.cjs +3 -3
- package/dist/subscription/index.js +2 -2
- package/dist/task-store.cjs +7 -7
- package/dist/task-store.js +4 -4
- package/dist/types/agent-prims.d.ts +4 -4
- package/dist/types/goal-events.d.ts +24 -23
- package/dist/types/run.d.ts +27 -0
- package/dist/types/session-record.d.ts +14 -13
- package/dist/workflow.cjs +27 -27
- package/dist/workflow.js +6 -6
- package/package.json +12 -13
- package/dist/agent-4MHQUGO5.cjs +0 -51
- package/dist/agent-GV36S2CF.js +0 -42
- package/dist/chunk-2ONFGMBV.js.map +0 -1
- package/dist/chunk-56OXYUZE.js.map +0 -1
- package/dist/chunk-56ZM6P7Z.cjs.map +0 -1
- package/dist/chunk-5SB4V74H.js.map +0 -1
- package/dist/chunk-77WHPVXE.js.map +0 -1
- package/dist/chunk-ALU3KC4G.cjs.map +0 -1
- package/dist/chunk-EEZ7CFMM.js.map +0 -1
- package/dist/chunk-GL7CFBVC.js.map +0 -1
- package/dist/chunk-H5YVJB4K.cjs.map +0 -1
- package/dist/chunk-ICYBIC6N.cjs.map +0 -1
- package/dist/chunk-IT3PWBW4.cjs.map +0 -1
- package/dist/chunk-ITLS5LRF.cjs +0 -105
- package/dist/chunk-ITLS5LRF.cjs.map +0 -1
- package/dist/chunk-LTCOPATU.cjs.map +0 -1
- package/dist/chunk-MXSMAGDU.js.map +0 -1
- package/dist/chunk-P34DHHYQ.cjs.map +0 -1
- package/dist/chunk-S3WZ7NHF.cjs.map +0 -1
- package/dist/chunk-TAPQWDW2.js.map +0 -1
- package/dist/chunk-THEYGCYS.cjs.map +0 -1
- package/dist/chunk-VNNK6AKU.js.map +0 -1
- package/dist/chunk-XAEAMI5H.js.map +0 -1
- package/dist/chunk-XJLGRJ7K.js.map +0 -1
- package/dist/chunk-YPQF26X7.cjs.map +0 -1
- package/dist/chunk-YVTNFKZO.js +0 -103
- package/dist/chunk-YVTNFKZO.js.map +0 -1
- package/dist/compact-session-H5TKLD55.cjs +0 -54
- package/dist/compact-session-WNKKIIDW.js +0 -17
- package/dist/context-VAYLPT4O.js +0 -5
- package/dist/context-ZV33V4DC.cjs +0 -22
- package/dist/fs-session-store-6MY7PNI2.js +0 -10
- package/dist/fs-session-store-7E7UPLF2.cjs +0 -19
- package/dist/generate-object-5SCEH2EE.cjs +0 -20
- package/dist/generate-object-I7UD4NWN.js +0 -7
- package/dist/index-manager-KKAK7NT3.js +0 -10
- package/dist/index-manager-R6ZJFEZF.cjs +0 -19
- package/dist/judge-call-SP3G3X2Y.cjs +0 -22
- package/dist/judge-call-TAEIXMYG.js +0 -5
- package/dist/registry-N3GTKYCI.cjs +0 -46
- package/dist/registry-SOXE4RY6.js +0 -9
- package/dist/session-transcript-6WKLYIN4.js +0 -5
- package/dist/session-transcript-EAKR4D2W.cjs +0 -50
- package/dist/stream-object-OFM66VUT.js +0 -7
- package/dist/stream-object-Y7YCX3BI.cjs +0 -20
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { extractCodePlugins } from './chunk-2SFBB54R.js';
|
|
2
|
-
import { submit, emitRunEvent } from './chunk-
|
|
3
|
-
import { enqueueSessionWrite, hydrateSession, persistTurnToTranscript, flushSessionWrites, appendSessionMessage, getSessionMessages,
|
|
4
|
-
import { FsSessionStore } from './chunk-
|
|
5
|
-
import { discoverProviderPlugins, getConfiguredBaseUrl, httpRequest, isFixtureApiKey, shouldUseRealLocalRuntime, CircuitBreaker, buildDefaultSummarizer, parseSseStream, resolveProviderChain, inferProviderFromApiKey, detectPrimaryProvider, tryFirstEvent, relayStream, mapOpenAICompatibleError, renderToolResultContentText } from './chunk-
|
|
6
|
-
import { IndexManager, writeSessionSummary, memoryDir, globalEmbeddingCache, appendFact, readFacts, legacyMemoryJsonPath, memoryMdPath, appendFactToMarkdown } from './chunk-
|
|
7
|
-
import { loadHookConfig, warnOnce, currentPersonalityContext, warnPersonalitySwitchInsideFork } from './chunk-
|
|
2
|
+
import { submit, emitRunEvent } from './chunk-7QDTZJRV.js';
|
|
3
|
+
import { enqueueSessionWrite, hydrateSession, persistTurnToTranscript, flushSessionWrites, appendSessionMessage, getSessionMessages, discardSession, clearSession } from './chunk-A4XXV2C6.js';
|
|
4
|
+
import { FsSessionStore } from './chunk-4NVV3GRU.js';
|
|
5
|
+
import { discoverProviderPlugins, getConfiguredBaseUrl, httpRequest, isFixtureApiKey, shouldUseRealLocalRuntime, CircuitBreaker, buildDefaultSummarizer, parseSseStream, resolveProviderChain, inferProviderFromApiKey, detectPrimaryProvider, tryFirstEvent, relayStream, mapOpenAICompatibleError, renderToolResultContentText } from './chunk-HI6G3SNY.js';
|
|
6
|
+
import { IndexManager, writeSessionSummary, memoryDir, globalEmbeddingCache, appendFact, readFacts, legacyMemoryJsonPath, memoryMdPath, appendFactToMarkdown } from './chunk-4APWS2YF.js';
|
|
7
|
+
import { loadHookConfig, warnOnce, currentPersonalityContext, warnPersonalitySwitchInsideFork } from './chunk-M6UUTNDT.js';
|
|
8
8
|
import { resolveChildEnv } from './chunk-7GFX45DD.js';
|
|
9
|
-
import { readVersionedJson, getTheokitHome, writeVersionedJson } from './chunk-
|
|
9
|
+
import { readVersionedJson, getTheokitHome, writeVersionedJson } from './chunk-UD2T7ISG.js';
|
|
10
10
|
import { sanitizeToolInput } from './chunk-U54XCYG3.js';
|
|
11
11
|
import { subAgentToolsFromDefinitions, inheritSubAgentCredentials } from './chunk-FV3YEMQ7.js';
|
|
12
12
|
import { setAgentFacade } from './chunk-6X6ID4MO.js';
|
|
13
13
|
import { findGitRoot, DEFAULT_DISCOVERY_SPECS, walkUpForFile, walkUpForGlob } from './chunk-UJ7IQJAG.js';
|
|
14
14
|
import { withToolWhitelist, checkToolWhitelist } from './chunk-7AD3ZTZL.js';
|
|
15
|
-
import { mapWithConcurrency } from './chunk-
|
|
16
|
-
import { withFileLock } from './chunk-
|
|
15
|
+
import { mapWithConcurrency } from './chunk-4WIJSKFA.js';
|
|
16
|
+
import { withFileLock } from './chunk-XJ5TMOGA.js';
|
|
17
17
|
import { withCwdMutex } from './chunk-2XLKLVVR.js';
|
|
18
|
-
import { defaultBaseDir, expandTilde } from './chunk-
|
|
18
|
+
import { defaultBaseDir, expandTilde } from './chunk-AOZYORH7.js';
|
|
19
19
|
import { toJsonSchema } from './chunk-4VPXM6UU.js';
|
|
20
|
-
import { atomicWriteJson } from './chunk-
|
|
21
|
-
import { loadSubagents } from './chunk-
|
|
22
|
-
import { resolveEffectiveContextWindow, CONTEXT_WINDOW_FLOOR, CONTEXT_WINDOW_MARGIN } from './chunk-
|
|
20
|
+
import { atomicWriteJson } from './chunk-LGCEYEU2.js';
|
|
21
|
+
import { loadSubagents } from './chunk-HHUDNTZC.js';
|
|
22
|
+
import { resolveEffectiveContextWindow, CONTEXT_WINDOW_FLOOR, CONTEXT_WINDOW_MARGIN } from './chunk-A6GXYF2Q.js';
|
|
23
23
|
import { parseModelId } from './chunk-X2FR4OIT.js';
|
|
24
|
-
import { getCatalogModelInfo, registerBuiltins, getProviderProfile, registerProvider, isPatchedModelKey } from './chunk-
|
|
25
|
-
import { escapeBlockBody, buildSkillsBlock, discoverSkills, stripSkillFrontmatter } from './chunk-
|
|
26
|
-
import { validateArtifactPath, PathTraversalError, safePathJoin } from './chunk-
|
|
27
|
-
import { readWorkspaceDir, parseSimpleYaml } from './chunk-
|
|
28
|
-
import { AgentRunError, coerceToKnownAgentRunErrorCode, UnknownAgentError, ConfigurationError, AuthenticationError, UnsupportedRunOperationError, AgentDisposedError, NetworkError, TheokitAgentError } from './chunk-
|
|
29
|
-
import { diag, redactSecrets } from './chunk-
|
|
24
|
+
import { getCatalogModelInfo, registerBuiltins, getProviderProfile, registerProvider, isPatchedModelKey } from './chunk-3XKVRLR2.js';
|
|
25
|
+
import { escapeBlockBody, buildSkillsBlock, discoverSkills, stripSkillFrontmatter } from './chunk-KWXC6ERT.js';
|
|
26
|
+
import { validateArtifactPath, PathTraversalError, safePathJoin } from './chunk-JCXIDFRI.js';
|
|
27
|
+
import { readWorkspaceDir, parseSimpleYaml } from './chunk-QFWQLXCL.js';
|
|
28
|
+
import { AgentRunError, coerceToKnownAgentRunErrorCode, UnknownAgentError, ConfigurationError, AuthenticationError, UnsupportedRunOperationError, AgentDisposedError, NetworkError, TheokitAgentError } from './chunk-ZYOHF37V.js';
|
|
29
|
+
import { diag, redactSecrets } from './chunk-KCZW75PI.js';
|
|
30
30
|
import { stat, mkdir, readFile, readdir, access, unlink } from 'fs/promises';
|
|
31
31
|
import { randomUUID, createHash } from 'crypto';
|
|
32
32
|
import { join, dirname, resolve, relative, isAbsolute } from 'path';
|
|
@@ -221,7 +221,7 @@ async function agentGenerate(agent, agentModel, agentApiKey, agentLocal, input,
|
|
|
221
221
|
const { output, maxRetries, errorStrategy, ...sendOptions } = options;
|
|
222
222
|
const run = await agent.send(input, sendOptions);
|
|
223
223
|
const result = await run.wait();
|
|
224
|
-
const { generateObjectImpl, GenerateObjectError } = await import('./generate-object-
|
|
224
|
+
const { generateObjectImpl, GenerateObjectError } = await import('./generate-object-LPSO6GVW.js');
|
|
225
225
|
const answer = structurableAnswerOrThrow(result, GenerateObjectError);
|
|
226
226
|
const { getAgentFacade } = await import('./agent-factory-registry-ZVTABLEY.js');
|
|
227
227
|
const facade = getAgentFacade();
|
|
@@ -1320,6 +1320,16 @@ var FixtureRunBase = class {
|
|
|
1320
1320
|
resolveTermination;
|
|
1321
1321
|
terminated = false;
|
|
1322
1322
|
eventNotifier;
|
|
1323
|
+
/**
|
|
1324
|
+
* theokit#140 - the run's single ordered timeline: structural events and live token/tool deltas,
|
|
1325
|
+
* in the order they actually occurred.
|
|
1326
|
+
*
|
|
1327
|
+
* Kept alongside `script.events` rather than replacing it. `stream()` is the SDKMessage view and
|
|
1328
|
+
* stays byte-identical for every existing consumer; this is the complete view, and a consumer
|
|
1329
|
+
* picks one. Merging them would have changed `stream()`'s element type - a breaking change for
|
|
1330
|
+
* an additive feature.
|
|
1331
|
+
*/
|
|
1332
|
+
timeline = [];
|
|
1323
1333
|
constructor(options) {
|
|
1324
1334
|
this.id = options.id;
|
|
1325
1335
|
this.agentId = options.agentId;
|
|
@@ -1343,6 +1353,46 @@ var FixtureRunBase = class {
|
|
|
1343
1353
|
this.eventNotifier = makeNotifier();
|
|
1344
1354
|
current.resolve();
|
|
1345
1355
|
}
|
|
1356
|
+
/**
|
|
1357
|
+
* theokit#140 - every event of this run, in true order, from ONE source.
|
|
1358
|
+
*
|
|
1359
|
+
* ## The defect this replaces
|
|
1360
|
+
*
|
|
1361
|
+
* A consumer that needed tool calls interleaved with tokens had to fuse two surfaces by hand:
|
|
1362
|
+
* `stream()`, which was batched and post-completion, and `SendOptions.onDelta`, which was live.
|
|
1363
|
+
* Neither was complete alone - `onDelta` has no `run_started`/`system`, and `stream()` had no
|
|
1364
|
+
* token granularity - so the entire reconciliation, including its dedup, lived in the consumer.
|
|
1365
|
+
* `@theokit/agents` carried ~200 lines of exactly that, and it is the documented root of its
|
|
1366
|
+
* ordering bug (theokit#47), its namespace-dedup bug (#138) and its missing terminal frame (#142).
|
|
1367
|
+
*
|
|
1368
|
+
* The ordering is not reconstructed here. Both kinds are appended by the loop AS THEY HAPPEN, so
|
|
1369
|
+
* arrival order IS model order - there is nothing to sort, and no timestamp heuristic to get
|
|
1370
|
+
* wrong.
|
|
1371
|
+
*
|
|
1372
|
+
* `callId` is whatever the SDK's own `tool_call` events carry, so a consumer no longer holds two
|
|
1373
|
+
* id namespaces and no longer has to correlate them.
|
|
1374
|
+
*/
|
|
1375
|
+
async *events() {
|
|
1376
|
+
let index = 0;
|
|
1377
|
+
while (!this.terminated) {
|
|
1378
|
+
while (index < this.timeline.length) {
|
|
1379
|
+
yield this.timeline[index++];
|
|
1380
|
+
}
|
|
1381
|
+
if (this.terminated) break;
|
|
1382
|
+
await Promise.race([this.eventNotifier.promise, this.terminationPromise]);
|
|
1383
|
+
}
|
|
1384
|
+
while (index < this.timeline.length) {
|
|
1385
|
+
yield this.timeline[index++];
|
|
1386
|
+
}
|
|
1387
|
+
for await (const message of this.terminalErrorEvent()) {
|
|
1388
|
+
yield { kind: "message", message };
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
/** theokit#140 - append to the timeline and wake `events()`. */
|
|
1392
|
+
pushTimeline(event) {
|
|
1393
|
+
this.timeline.push(event);
|
|
1394
|
+
this.notifyNewEvents();
|
|
1395
|
+
}
|
|
1346
1396
|
async *stream() {
|
|
1347
1397
|
let index = 0;
|
|
1348
1398
|
while (!this.terminated) {
|
|
@@ -1358,22 +1408,22 @@ var FixtureRunBase = class {
|
|
|
1358
1408
|
yield* this.terminalErrorEvent();
|
|
1359
1409
|
}
|
|
1360
1410
|
/**
|
|
1361
|
-
* theokit#101 —
|
|
1411
|
+
* theokit#101 — when the run ends in error, `stream()` has to SAY SO.
|
|
1362
1412
|
*
|
|
1363
|
-
*
|
|
1364
|
-
* `status: 'error'`
|
|
1365
|
-
* `script.events`
|
|
1366
|
-
*
|
|
1413
|
+
* The error always existed: the loop records it in `ctx.error` and `wait()` returns
|
|
1414
|
+
* `status: 'error'` with the message. Only `stream()` failed to mention it — it drains
|
|
1415
|
+
* `script.events` and stops. A provider failure (404 "No endpoints found", auth, timeout)
|
|
1416
|
+
* produced a turn that looked successful and empty, on EVERY surface consuming the
|
|
1367
1417
|
* stream: HTTP web, MCP, stdio, TUI in-process.
|
|
1368
1418
|
*
|
|
1369
|
-
*
|
|
1370
|
-
*
|
|
1371
|
-
*
|
|
1419
|
+
* A silent error is the worst kind (Unbreakable Rule 8). And the asymmetry was what made it
|
|
1420
|
+
* hard to diagnose: anyone debugging via `wait()` saw the error and would not reproduce the
|
|
1421
|
+
* report of anyone debugging via the stream.
|
|
1372
1422
|
*
|
|
1373
|
-
*
|
|
1374
|
-
*
|
|
1375
|
-
*
|
|
1376
|
-
*
|
|
1423
|
+
* It emits `SDKStatusMessage` with `status: "ERROR"` — the type ALREADY EXISTS in the `SDKMessage` union
|
|
1424
|
+
* and is already expected by consumers. A new type would be breaking for every consumer doing
|
|
1425
|
+
* an exhaustive switch; this one is additive, and a consumer ignoring `status` simply
|
|
1426
|
+
* behaves as before — never worse than today.
|
|
1377
1427
|
*/
|
|
1378
1428
|
*terminalErrorEvent() {
|
|
1379
1429
|
if (this.status !== "error") return;
|
|
@@ -1383,7 +1433,7 @@ var FixtureRunBase = class {
|
|
|
1383
1433
|
agent_id: this.agentId,
|
|
1384
1434
|
run_id: this.id,
|
|
1385
1435
|
status: "ERROR",
|
|
1386
|
-
//
|
|
1436
|
+
// Without a message, the consumer knows THAT it failed and not WHAT — which is half the defect.
|
|
1387
1437
|
...detail?.message !== void 0 ? { message: detail.message } : {}
|
|
1388
1438
|
};
|
|
1389
1439
|
}
|
|
@@ -2643,7 +2693,7 @@ async function runPostRunLifecycle(inputs) {
|
|
|
2643
2693
|
}
|
|
2644
2694
|
const conversation = await safeConversation(run);
|
|
2645
2695
|
const resolvedWindow = resolveWindowForRun(model, contextWindow);
|
|
2646
|
-
const
|
|
2696
|
+
const effectiveWindow = resolvedWindow.window;
|
|
2647
2697
|
const budgetEvent = buildContextBudgetEvent(model, resolvedWindow);
|
|
2648
2698
|
if (budgetEvent !== void 0 && onRunEvent !== void 0) {
|
|
2649
2699
|
emitRunEvent(onRunEvent, budgetEvent);
|
|
@@ -2659,9 +2709,9 @@ async function runPostRunLifecycle(inputs) {
|
|
|
2659
2709
|
conversation,
|
|
2660
2710
|
autoCompact: {
|
|
2661
2711
|
usageTotal: usageForTrigger,
|
|
2662
|
-
//
|
|
2663
|
-
// `contextWindow`
|
|
2664
|
-
contextWindow:
|
|
2712
|
+
// The EFFECTIVE window (after override, clamp and margin) — not the declared one. Swapping for
|
|
2713
|
+
// `contextWindow` here would budget against a number the clamp already rejected.
|
|
2714
|
+
contextWindow: effectiveWindow,
|
|
2665
2715
|
summarize: buildDefaultSummarizer({
|
|
2666
2716
|
agentModel: model,
|
|
2667
2717
|
...inputs.apiKey !== void 0 ? { apiKey: inputs.apiKey } : {}
|
|
@@ -4985,6 +5035,35 @@ function buildAssistantTurn(text, toolCalls) {
|
|
|
4985
5035
|
return { role: "assistant", content };
|
|
4986
5036
|
}
|
|
4987
5037
|
|
|
5038
|
+
// src/internal/agent-loop/live-events.ts
|
|
5039
|
+
var LiveEventLog = class extends Array {
|
|
5040
|
+
/**
|
|
5041
|
+
* Not readonly, and not a constructor parameter — `Array` subclasses are re-instantiated by
|
|
5042
|
+
* `map`/`filter`/`slice` with a length argument, so a constructor with a different signature
|
|
5043
|
+
* breaks those. The sink is attached after construction instead.
|
|
5044
|
+
*/
|
|
5045
|
+
#sink;
|
|
5046
|
+
/** Attach the live subscriber. One sink: the run that owns this loop. */
|
|
5047
|
+
subscribe(sink) {
|
|
5048
|
+
this.#sink = sink;
|
|
5049
|
+
}
|
|
5050
|
+
push(...events) {
|
|
5051
|
+
const length = super.push(...events);
|
|
5052
|
+
for (const event of events) {
|
|
5053
|
+
try {
|
|
5054
|
+
this.#sink?.(event);
|
|
5055
|
+
} catch {
|
|
5056
|
+
}
|
|
5057
|
+
}
|
|
5058
|
+
return length;
|
|
5059
|
+
}
|
|
5060
|
+
};
|
|
5061
|
+
function createEventLog(seed) {
|
|
5062
|
+
const log = new LiveEventLog();
|
|
5063
|
+
log.push(...seed);
|
|
5064
|
+
return log;
|
|
5065
|
+
}
|
|
5066
|
+
|
|
4988
5067
|
// src/internal/agent-loop/loop-context-init.ts
|
|
4989
5068
|
function buildUserContent(text, images) {
|
|
4990
5069
|
const content = [{ type: "text", text }];
|
|
@@ -5048,13 +5127,14 @@ async function initLoopContext(inputs) {
|
|
|
5048
5127
|
});
|
|
5049
5128
|
}
|
|
5050
5129
|
}
|
|
5051
|
-
const events = [
|
|
5130
|
+
const events = createEventLog([
|
|
5052
5131
|
buildSystemEvent(
|
|
5053
5132
|
inputs,
|
|
5054
5133
|
tools.map((t) => t.name)
|
|
5055
5134
|
),
|
|
5056
5135
|
buildUserEvent(inputs)
|
|
5057
|
-
];
|
|
5136
|
+
]);
|
|
5137
|
+
if (inputs.onLoopEvent !== void 0) events.subscribe(inputs.onLoopEvent);
|
|
5058
5138
|
const priorMessages = (inputs.priorMessages ?? []).map((msg) => ({
|
|
5059
5139
|
role: msg.role,
|
|
5060
5140
|
content: [{ type: "text", text: msg.text }]
|
|
@@ -6901,6 +6981,31 @@ var HttpMcpClient = class extends BaseMcpClient {
|
|
|
6901
6981
|
* Never overwritten by a later one: a server that re-issues mid-session would otherwise split
|
|
6902
6982
|
* the session in two, and the second half would not see the first half's state.
|
|
6903
6983
|
*/
|
|
6984
|
+
/**
|
|
6985
|
+
* Read one JSON-RPC response, in either encoding the server may choose.
|
|
6986
|
+
*
|
|
6987
|
+
* Streamable HTTP lets the server answer a POST with `application/json` OR `text/event-stream`,
|
|
6988
|
+
* and the client advertises both. Reading the body with `response.json()` unconditionally is what
|
|
6989
|
+
* turned a working server into `Unexpected token 'e', "event: mes"... is not valid JSON` the
|
|
6990
|
+
* moment the Accept header started asking for SSE — measured against a real server, not imagined.
|
|
6991
|
+
*
|
|
6992
|
+
* Only the `data:` payload is JSON; `event:` / `id:` / `retry:` lines and comments are framing.
|
|
6993
|
+
* A single JSON-RPC reply arrives as one event, so the FIRST parseable `data:` is the answer.
|
|
6994
|
+
*/
|
|
6995
|
+
async readBody(response) {
|
|
6996
|
+
const tipo = response.headers.get("content-type") ?? "";
|
|
6997
|
+
if (!tipo.includes("text/event-stream")) return await response.json();
|
|
6998
|
+
const text = await response.text();
|
|
6999
|
+
for (const line of text.split(/\r?\n/)) {
|
|
7000
|
+
if (!line.startsWith("data:")) continue;
|
|
7001
|
+
const payload = line.slice(5).trim();
|
|
7002
|
+
if (payload === "") continue;
|
|
7003
|
+
return JSON.parse(payload);
|
|
7004
|
+
}
|
|
7005
|
+
throw new NetworkError(`MCP ${this.name} returned an event stream with no data payload`, {
|
|
7006
|
+
code: "mcp_http_error"
|
|
7007
|
+
});
|
|
7008
|
+
}
|
|
6904
7009
|
captureSession(response) {
|
|
6905
7010
|
if (this.sessionId !== void 0) return;
|
|
6906
7011
|
const issued = response.headers.get("mcp-session-id");
|
|
@@ -6931,7 +7036,7 @@ var HttpMcpClient = class extends BaseMcpClient {
|
|
|
6931
7036
|
}
|
|
6932
7037
|
this.captureSession(response);
|
|
6933
7038
|
try {
|
|
6934
|
-
return await
|
|
7039
|
+
return await this.readBody(response);
|
|
6935
7040
|
} catch (cause) {
|
|
6936
7041
|
if (isAbortLike(cause)) throw mcpTimeoutError(this.name, timeoutMs);
|
|
6937
7042
|
throw cause;
|
|
@@ -7326,7 +7431,26 @@ var RealLocalRun = class extends FixtureRunBase {
|
|
|
7326
7431
|
}
|
|
7327
7432
|
}
|
|
7328
7433
|
}
|
|
7434
|
+
/**
|
|
7435
|
+
* theokit#140 - events already handed to stream() by the live subscriber.
|
|
7436
|
+
*
|
|
7437
|
+
* The loop still RETURNS its full event list, and that batch path is deliberately kept: it is the
|
|
7438
|
+
* fallback if a live event is ever lost, and removing it would make the live channel a single
|
|
7439
|
+
* point of failure for the whole transcript.
|
|
7440
|
+
*/
|
|
7441
|
+
liveDelivered = /* @__PURE__ */ new Set();
|
|
7329
7442
|
async executeAgentLoop(inputs) {
|
|
7443
|
+
inputs.onLoopEvent = (event) => {
|
|
7444
|
+
this.liveDelivered.add(event);
|
|
7445
|
+
this.script.events.push(event);
|
|
7446
|
+
this.pushTimeline({ kind: "message", message: event });
|
|
7447
|
+
this.notifyNewEvents();
|
|
7448
|
+
};
|
|
7449
|
+
const callerOnDelta = inputs.onDelta;
|
|
7450
|
+
inputs.onDelta = (delta) => {
|
|
7451
|
+
callerOnDelta?.(delta);
|
|
7452
|
+
this.pushTimeline({ kind: "delta", update: delta.update });
|
|
7453
|
+
};
|
|
7330
7454
|
try {
|
|
7331
7455
|
const output = inputs.activeTools !== void 0 ? await withToolWhitelist(new Set(inputs.activeTools), () => runAgentLoop(inputs)) : await runAgentLoop(inputs);
|
|
7332
7456
|
this.applyAgentLoopOutput(output);
|
|
@@ -7349,10 +7473,7 @@ var RealLocalRun = class extends FixtureRunBase {
|
|
|
7349
7473
|
* Finding-B fix (sdk-error-packaging v1.1): set-once errorDetail copy.
|
|
7350
7474
|
*/
|
|
7351
7475
|
applyAgentLoopOutput(output) {
|
|
7352
|
-
|
|
7353
|
-
this.script.events.push(event);
|
|
7354
|
-
this.notifyNewEvents();
|
|
7355
|
-
}
|
|
7476
|
+
this.deliverUndeliveredEvents(output.events);
|
|
7356
7477
|
this.script.conversation.push(...output.conversation);
|
|
7357
7478
|
if (output.result.length > 0) this.script.result = output.result;
|
|
7358
7479
|
if (output.usage !== void 0) this.script.usage = output.usage;
|
|
@@ -7367,6 +7488,25 @@ var RealLocalRun = class extends FixtureRunBase {
|
|
|
7367
7488
|
};
|
|
7368
7489
|
}
|
|
7369
7490
|
}
|
|
7491
|
+
/**
|
|
7492
|
+
* theokit#140 - deliver only what the live subscriber has NOT already handed to `stream()`.
|
|
7493
|
+
*
|
|
7494
|
+
* The loop now reports each event as it happens, so this batch is the SAME list, replayed.
|
|
7495
|
+
* Without the guard every event would reach `stream()` twice: once live, once here.
|
|
7496
|
+
*
|
|
7497
|
+
* Identity, not deep equality: these are the very objects the live sink saw, and two genuinely
|
|
7498
|
+
* distinct events can be structurally identical (the same tool called twice with the same args
|
|
7499
|
+
* is not a duplicate).
|
|
7500
|
+
*
|
|
7501
|
+
* Extracted because the guard pushed `applyAgentLoopOutput` past the cognitive-complexity cap.
|
|
7502
|
+
*/
|
|
7503
|
+
deliverUndeliveredEvents(events) {
|
|
7504
|
+
for (const event of events) {
|
|
7505
|
+
if (this.liveDelivered.has(event)) continue;
|
|
7506
|
+
this.script.events.push(event);
|
|
7507
|
+
this.notifyNewEvents();
|
|
7508
|
+
}
|
|
7509
|
+
}
|
|
7370
7510
|
emitErrorEvent(cause, fallback, prefix = "", code) {
|
|
7371
7511
|
if (this.script.errorDetail === void 0) {
|
|
7372
7512
|
const message = cause instanceof Error ? cause.message : String(cause);
|
|
@@ -7652,7 +7792,7 @@ var LiveAgentRegistry = class {
|
|
|
7652
7792
|
var liveAgentRegistry = new LiveAgentRegistry();
|
|
7653
7793
|
|
|
7654
7794
|
// src/internal/local-agent/local-agent-lifecycle.ts
|
|
7655
|
-
async function
|
|
7795
|
+
async function acquireLeaseIfPossible(store, agentId) {
|
|
7656
7796
|
const a = store.acquire;
|
|
7657
7797
|
if (typeof a !== "function") return;
|
|
7658
7798
|
try {
|
|
@@ -7665,7 +7805,7 @@ async function adquirirLeaseSePossivel(store, agentId) {
|
|
|
7665
7805
|
);
|
|
7666
7806
|
}
|
|
7667
7807
|
}
|
|
7668
|
-
async function
|
|
7808
|
+
async function releaseLeaseIfPossible(store, agentId) {
|
|
7669
7809
|
const r = store.release;
|
|
7670
7810
|
if (typeof r === "function") await r.call(store, agentId);
|
|
7671
7811
|
}
|
|
@@ -7681,7 +7821,7 @@ async function disposeLocalAgentSession(agent) {
|
|
|
7681
7821
|
await flushSessionWrites();
|
|
7682
7822
|
await flushRegistrySaves(agent.workspaceCwd);
|
|
7683
7823
|
await disposeSessionStore(agent.sessionStore);
|
|
7684
|
-
|
|
7824
|
+
discardSession(agent.workspaceCwd, agent.agentId);
|
|
7685
7825
|
}
|
|
7686
7826
|
async function reloadLocalAgent(agent) {
|
|
7687
7827
|
if (agent.context !== void 0) await agent.context.refresh();
|
|
@@ -9022,9 +9162,9 @@ async function localAgentUsePersonality(args) {
|
|
|
9022
9162
|
// src/internal/local-agent/local-agent-runtime-extensions.ts
|
|
9023
9163
|
function localAgentRunUntil(agent, goal, options) {
|
|
9024
9164
|
async function* wrap() {
|
|
9025
|
-
const { runUntilImpl } = await import('./run-until-
|
|
9165
|
+
const { runUntilImpl } = await import('./run-until-BK56WG4P.js');
|
|
9026
9166
|
const buildDeps = async () => {
|
|
9027
|
-
const { judgeCallImpl } = await import('./judge-call-
|
|
9167
|
+
const { judgeCallImpl } = await import('./judge-call-3S3T6O2Z.js');
|
|
9028
9168
|
const { getAgentFacade } = await import('./agent-factory-registry-ZVTABLEY.js');
|
|
9029
9169
|
const create = getAgentFacade().create;
|
|
9030
9170
|
return {
|
|
@@ -9057,7 +9197,7 @@ async function* localAgentStreamToCompletion(agent, message, options) {
|
|
|
9057
9197
|
async function localAgentFork(parent, options) {
|
|
9058
9198
|
const { forkAgentImpl } = await import('./fork-agent-RSV4E3EA.js');
|
|
9059
9199
|
const { getAgentFacade } = await import('./agent-factory-registry-ZVTABLEY.js');
|
|
9060
|
-
const { withPersonalityContext } = await import('./context-
|
|
9200
|
+
const { withPersonalityContext } = await import('./context-ZDBBPIHY.js');
|
|
9061
9201
|
const create = getAgentFacade().create;
|
|
9062
9202
|
return withPersonalityContext(
|
|
9063
9203
|
{ slug: parent.personalitySlugSnapshot, isFork: true },
|
|
@@ -9213,6 +9353,9 @@ var SUPPORTED = /* @__PURE__ */ new Set([
|
|
|
9213
9353
|
"cancel",
|
|
9214
9354
|
"conversation"
|
|
9215
9355
|
]);
|
|
9356
|
+
function emptyTimeline() {
|
|
9357
|
+
return emptyStream();
|
|
9358
|
+
}
|
|
9216
9359
|
function emptyStream() {
|
|
9217
9360
|
return {
|
|
9218
9361
|
next: () => Promise.resolve({ done: true, value: void 0 }),
|
|
@@ -9237,6 +9380,9 @@ function createTripwireRun(args) {
|
|
|
9237
9380
|
status: "cancelled",
|
|
9238
9381
|
...args.model !== void 0 ? { model: args.model } : {},
|
|
9239
9382
|
stream: () => emptyStream(),
|
|
9383
|
+
// theokit#140 - a tripwire run never executed, so its timeline is empty by construction, the
|
|
9384
|
+
// same reason `stream()` is. Both are empty for the same fact, not by coincidence.
|
|
9385
|
+
events: () => emptyTimeline(),
|
|
9240
9386
|
wait: () => Promise.resolve(result),
|
|
9241
9387
|
cancel: () => Promise.resolve(),
|
|
9242
9388
|
conversation: () => Promise.resolve([]),
|
|
@@ -9432,7 +9578,7 @@ async function executeSendLocked(inputs, message, options) {
|
|
|
9432
9578
|
function buildCompletionCheckDeps() {
|
|
9433
9579
|
return {
|
|
9434
9580
|
judge: async (ctx, opts) => {
|
|
9435
|
-
const { judgeCallImpl } = await import('./judge-call-
|
|
9581
|
+
const { judgeCallImpl } = await import('./judge-call-3S3T6O2Z.js');
|
|
9436
9582
|
const { getAgentFacade } = await import('./agent-factory-registry-ZVTABLEY.js');
|
|
9437
9583
|
return judgeCallImpl(ctx, opts, { create: getAgentFacade().create });
|
|
9438
9584
|
}
|
|
@@ -9584,12 +9730,12 @@ var LocalAgent = class {
|
|
|
9584
9730
|
this.settingSourcesIncludeProject,
|
|
9585
9731
|
this.options.agents
|
|
9586
9732
|
);
|
|
9587
|
-
await
|
|
9733
|
+
await acquireLeaseIfPossible(this.sessionStore, this.agentId);
|
|
9588
9734
|
try {
|
|
9589
9735
|
await hydrateSession(this.agentId, { store: this.sessionStore, cwd: this.workspaceCwd });
|
|
9590
9736
|
await this.personalityStore.hydrate(this.agentId);
|
|
9591
9737
|
} catch (err) {
|
|
9592
|
-
await
|
|
9738
|
+
await releaseLeaseIfPossible(this.sessionStore, this.agentId);
|
|
9593
9739
|
throw err;
|
|
9594
9740
|
}
|
|
9595
9741
|
}
|
|
@@ -9622,16 +9768,16 @@ var LocalAgent = class {
|
|
|
9622
9768
|
});
|
|
9623
9769
|
}
|
|
9624
9770
|
/**
|
|
9625
|
-
*
|
|
9771
|
+
* The context window declared on the model selection, in conditional-spread form.
|
|
9626
9772
|
*
|
|
9627
|
-
* M94 —
|
|
9628
|
-
* call site
|
|
9629
|
-
*
|
|
9630
|
-
*
|
|
9773
|
+
* M94 — without this, `resolveEffectiveContextWindow`'s `override` had existed since M77 and no
|
|
9774
|
+
* production call site passed it: a 400k model with no catalog entry was budgeted against the
|
|
9775
|
+
* 128k floor. Its own method because the inline spread pushed `runLockedSendCycle` past the
|
|
9776
|
+
* project's cognitive-complexity ceiling.
|
|
9631
9777
|
*/
|
|
9632
|
-
#
|
|
9633
|
-
const
|
|
9634
|
-
return
|
|
9778
|
+
#declaredWindow() {
|
|
9779
|
+
const declared = this.model?.contextWindow;
|
|
9780
|
+
return declared !== void 0 ? { contextWindow: declared } : {};
|
|
9635
9781
|
}
|
|
9636
9782
|
async runLockedSendCycle(message, options, sendSpan, resolve, reject) {
|
|
9637
9783
|
const userText = typeof message === "string" ? message : message.text;
|
|
@@ -9660,7 +9806,7 @@ var LocalAgent = class {
|
|
|
9660
9806
|
workspaceCwd: this.workspaceCwd,
|
|
9661
9807
|
sessionStore: this.sessionStore,
|
|
9662
9808
|
model: this.model?.id ?? "unknown",
|
|
9663
|
-
...this.#
|
|
9809
|
+
...this.#declaredWindow(),
|
|
9664
9810
|
// M50 — the auto-compaction summarizer resolves credentials like the run itself.
|
|
9665
9811
|
...this.options.apiKey !== void 0 ? { apiKey: this.options.apiKey } : {},
|
|
9666
9812
|
...options.onRunEvent !== void 0 ? { onRunEvent: options.onRunEvent } : {},
|
|
@@ -10190,7 +10336,7 @@ var Agent = class _Agent {
|
|
|
10190
10336
|
* @public
|
|
10191
10337
|
*/
|
|
10192
10338
|
static async generateObject(options) {
|
|
10193
|
-
const { generateObjectImpl } = await import('./generate-object-
|
|
10339
|
+
const { generateObjectImpl } = await import('./generate-object-LPSO6GVW.js');
|
|
10194
10340
|
return generateObjectImpl(options, {
|
|
10195
10341
|
create: (opts) => _Agent.create(opts),
|
|
10196
10342
|
delete: (agentId) => _Agent.delete(agentId)
|
|
@@ -10214,7 +10360,7 @@ var Agent = class _Agent {
|
|
|
10214
10360
|
delete: (agentId) => _Agent.delete(agentId)
|
|
10215
10361
|
};
|
|
10216
10362
|
async function* wrapper() {
|
|
10217
|
-
streamObjectImport ??= import('./stream-object-
|
|
10363
|
+
streamObjectImport ??= import('./stream-object-AFERZU63.js');
|
|
10218
10364
|
const { streamObjectImpl } = await streamObjectImport;
|
|
10219
10365
|
yield* streamObjectImpl(options, deps);
|
|
10220
10366
|
}
|
|
@@ -10238,7 +10384,7 @@ var Agent = class _Agent {
|
|
|
10238
10384
|
* @public
|
|
10239
10385
|
*/
|
|
10240
10386
|
static async batch(prompts, options) {
|
|
10241
|
-
const { batchImpl } = await import('./batch-
|
|
10387
|
+
const { batchImpl } = await import('./batch-LXSALQC3.js');
|
|
10242
10388
|
return batchImpl(prompts, options, { create: (opts) => _Agent.create(opts) });
|
|
10243
10389
|
}
|
|
10244
10390
|
/**
|
|
@@ -10262,7 +10408,7 @@ var Agent = class _Agent {
|
|
|
10262
10408
|
*
|
|
10263
10409
|
* This bullet used to say the opposite ("Disposed agents are NOT auto-deleted...
|
|
10264
10410
|
* call `Agent.delete(agentId)` first"). It was measured false in M91:
|
|
10265
|
-
* `tests/m91-getorcreate-
|
|
10411
|
+
* `tests/m91-getorcreate-after-dispose.test.ts` builds an agent, disposes it, and
|
|
10266
10412
|
* gets a different instance back. The claim was about the PERSISTENT registry and
|
|
10267
10413
|
* read as being about the live cache — and consumers built around the wrong half.
|
|
10268
10414
|
* The agent-builder's M85 interrupt rotates the session id to work around a
|
|
@@ -10376,8 +10522,8 @@ var Agent = class _Agent {
|
|
|
10376
10522
|
`No local agent "${agentId}" registered \u2014 compact targets local sessions.`
|
|
10377
10523
|
);
|
|
10378
10524
|
}
|
|
10379
|
-
const { compactSessionTranscript, buildDefaultSummarizer: buildDefaultSummarizer2 } = await import('./compact-session-
|
|
10380
|
-
const { cwd, model, store } = await
|
|
10525
|
+
const { compactSessionTranscript, buildDefaultSummarizer: buildDefaultSummarizer2 } = await import('./compact-session-RR3ILTES.js');
|
|
10526
|
+
const { cwd, model, store } = await openLocalStore(reg);
|
|
10381
10527
|
return enqueueSessionWrite(
|
|
10382
10528
|
cwd,
|
|
10383
10529
|
agentId,
|
|
@@ -10412,8 +10558,8 @@ var Agent = class _Agent {
|
|
|
10412
10558
|
`No local agent "${agentId}" registered \u2014 injectSessionTurn targets local sessions.`
|
|
10413
10559
|
);
|
|
10414
10560
|
}
|
|
10415
|
-
const { injectSessionTurn } = await import('./inject-session-
|
|
10416
|
-
const { cwd, model, store } = await
|
|
10561
|
+
const { injectSessionTurn } = await import('./inject-session-RKNLUE72.js');
|
|
10562
|
+
const { cwd, model, store } = await openLocalStore(reg);
|
|
10417
10563
|
await injectSessionTurn({
|
|
10418
10564
|
store,
|
|
10419
10565
|
loc: { cwd, agentId, model },
|
|
@@ -10455,16 +10601,16 @@ setAgentFacade({
|
|
|
10455
10601
|
resume: (agentId, options) => Agent.resume(agentId, options),
|
|
10456
10602
|
batch: (prompts, options) => Agent.batch(prompts, options)
|
|
10457
10603
|
});
|
|
10458
|
-
async function
|
|
10604
|
+
async function openLocalStore(reg) {
|
|
10459
10605
|
const cwd = reg.cwd ?? process.cwd();
|
|
10460
10606
|
const optModel = reg.options.model;
|
|
10461
10607
|
const model = reg.model?.id ?? (typeof optModel === "string" ? optModel : optModel?.id) ?? "unknown";
|
|
10462
|
-
const { FsSessionStore: FsSessionStore2 } = await import('./fs-session-store-
|
|
10463
|
-
const { defaultBaseDir: defaultBaseDir2, expandTilde: expandTilde2 } = await import('./session-transcript-
|
|
10608
|
+
const { FsSessionStore: FsSessionStore2 } = await import('./fs-session-store-K5QUPNJZ.js');
|
|
10609
|
+
const { defaultBaseDir: defaultBaseDir2, expandTilde: expandTilde2 } = await import('./session-transcript-MMPWCESR.js');
|
|
10464
10610
|
const baseDir = reg.options.local?.baseDir !== void 0 ? expandTilde2(reg.options.local.baseDir) : defaultBaseDir2();
|
|
10465
10611
|
return { cwd, model, store: new FsSessionStore2({ baseDir, cwd }) };
|
|
10466
10612
|
}
|
|
10467
10613
|
|
|
10468
10614
|
export { Agent, AgentBuilder, DEFAULT_AGENTIC_MODEL_ID, MEMORY_EMBEDDING_ADAPTERS, Tool, ToolError, UsageAccumulator, computeCost, generateCronId, getPricingEntry, openRouterMemoryEmbeddingProviderAdapter, resolveApiKey };
|
|
10469
|
-
//# sourceMappingURL=chunk-
|
|
10470
|
-
//# sourceMappingURL=chunk-
|
|
10615
|
+
//# sourceMappingURL=chunk-VUDH4D2M.js.map
|
|
10616
|
+
//# sourceMappingURL=chunk-VUDH4D2M.js.map
|