@theokit/sdk 4.24.0 → 4.26.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/a2a/index.cjs +10 -171
- package/dist/a2a/index.cjs.map +1 -1
- package/dist/a2a/index.js +3 -170
- package/dist/a2a/index.js.map +1 -1
- package/dist/agent-factory-registry-UU46BUMU.cjs +16 -0
- package/dist/agent-factory-registry-UU46BUMU.cjs.map +1 -0
- package/dist/agent-factory-registry-ZVTABLEY.js +3 -0
- package/dist/agent-factory-registry-ZVTABLEY.js.map +1 -0
- package/dist/auth/index.cjs +63 -367
- package/dist/auth/index.cjs.map +1 -1
- package/dist/auth/index.js +6 -342
- package/dist/auth/index.js.map +1 -1
- package/dist/batch-2FSD2UNL.cjs +244 -0
- package/dist/batch-2FSD2UNL.cjs.map +1 -0
- package/dist/batch-MR2HKYMS.js +241 -0
- package/dist/batch-MR2HKYMS.js.map +1 -0
- package/dist/chunk-2HRYBRD7.cjs +31 -0
- package/dist/chunk-2HRYBRD7.cjs.map +1 -0
- package/dist/chunk-2MF3IE2D.cjs +2863 -0
- package/dist/chunk-2MF3IE2D.cjs.map +1 -0
- package/dist/chunk-2ONFGMBV.js +6 -0
- package/dist/chunk-2ONFGMBV.js.map +1 -0
- package/dist/chunk-2SFBB54R.js +23 -0
- package/dist/chunk-2SFBB54R.js.map +1 -0
- package/dist/chunk-2XLKLVVR.js +18 -0
- package/dist/chunk-2XLKLVVR.js.map +1 -0
- package/dist/chunk-4SXHEZIV.cjs +240 -0
- package/dist/chunk-4SXHEZIV.cjs.map +1 -0
- package/dist/chunk-4VPXM6UU.js +10 -0
- package/dist/chunk-4VPXM6UU.js.map +1 -0
- package/dist/chunk-4WL52CXU.cjs +148 -0
- package/dist/chunk-4WL52CXU.cjs.map +1 -0
- package/dist/chunk-5NBUH3NO.js +39 -0
- package/dist/chunk-5NBUH3NO.js.map +1 -0
- package/dist/chunk-5PZMMF4H.js +43 -0
- package/dist/chunk-5PZMMF4H.js.map +1 -0
- package/dist/chunk-6CLRANZA.js +289 -0
- package/dist/chunk-6CLRANZA.js.map +1 -0
- package/dist/chunk-6JSIEDKL.cjs +121 -0
- package/dist/chunk-6JSIEDKL.cjs.map +1 -0
- package/dist/chunk-6M4ODB2V.cjs +145 -0
- package/dist/chunk-6M4ODB2V.cjs.map +1 -0
- package/dist/chunk-6X6ID4MO.js +20 -0
- package/dist/chunk-6X6ID4MO.js.map +1 -0
- package/dist/chunk-77FOZCOT.js +165 -0
- package/dist/chunk-77FOZCOT.js.map +1 -0
- package/dist/chunk-7AD3ZTZL.js +25 -0
- package/dist/chunk-7AD3ZTZL.js.map +1 -0
- package/dist/chunk-7GFX45DD.js +57 -0
- package/dist/chunk-7GFX45DD.js.map +1 -0
- package/dist/chunk-7S7KKUO6.cjs +45 -0
- package/dist/chunk-7S7KKUO6.cjs.map +1 -0
- package/dist/chunk-7W7ZWMLQ.js +99 -0
- package/dist/chunk-7W7ZWMLQ.js.map +1 -0
- package/dist/chunk-A44COQJJ.cjs +353 -0
- package/dist/chunk-A44COQJJ.cjs.map +1 -0
- package/dist/chunk-AKSBP7OO.js +185 -0
- package/dist/chunk-AKSBP7OO.js.map +1 -0
- package/dist/chunk-ANIZEWTU.cjs +196 -0
- package/dist/chunk-ANIZEWTU.cjs.map +1 -0
- package/dist/chunk-BEURCLDV.cjs +139 -0
- package/dist/chunk-BEURCLDV.cjs.map +1 -0
- package/dist/chunk-BFWPZMG7.js +379 -0
- package/dist/chunk-BFWPZMG7.js.map +1 -0
- package/dist/chunk-BUUUWQMB.cjs +34 -0
- package/dist/chunk-BUUUWQMB.cjs.map +1 -0
- package/dist/chunk-BV2MWEMV.cjs +26 -0
- package/dist/chunk-BV2MWEMV.cjs.map +1 -0
- package/dist/chunk-BWT67BI4.cjs +268 -0
- package/dist/chunk-BWT67BI4.cjs.map +1 -0
- package/dist/chunk-BXV2QUIC.js +191 -0
- package/dist/chunk-BXV2QUIC.js.map +1 -0
- package/dist/chunk-C6Y6CWYD.cjs +44 -0
- package/dist/chunk-C6Y6CWYD.cjs.map +1 -0
- package/dist/chunk-C7PICHRF.cjs +68 -0
- package/dist/chunk-C7PICHRF.cjs.map +1 -0
- package/dist/chunk-CAH3G4IS.js +13 -0
- package/dist/chunk-CAH3G4IS.js.map +1 -0
- package/dist/chunk-D42XHI4O.cjs +565 -0
- package/dist/chunk-D42XHI4O.cjs.map +1 -0
- package/dist/chunk-DGRZNMTU.js +104 -0
- package/dist/chunk-DGRZNMTU.js.map +1 -0
- package/dist/chunk-DUK5WMKJ.js +71 -0
- package/dist/chunk-DUK5WMKJ.js.map +1 -0
- package/dist/chunk-EEZ7CFMM.js +14 -0
- package/dist/chunk-EEZ7CFMM.js.map +1 -0
- package/dist/chunk-EPYZOCOL.cjs +82 -0
- package/dist/chunk-EPYZOCOL.cjs.map +1 -0
- package/dist/chunk-EVADEGM7.cjs +168 -0
- package/dist/chunk-EVADEGM7.cjs.map +1 -0
- package/dist/chunk-FD2UT76F.js +3 -0
- package/dist/chunk-FD2UT76F.js.map +1 -0
- package/dist/chunk-FV3YEMQ7.js +179 -0
- package/dist/chunk-FV3YEMQ7.js.map +1 -0
- package/dist/chunk-G2F67XUR.cjs +184 -0
- package/dist/chunk-G2F67XUR.cjs.map +1 -0
- package/dist/chunk-G6GO6BXD.js +994 -0
- package/dist/chunk-G6GO6BXD.js.map +1 -0
- package/dist/chunk-GIW4L6HY.cjs +27 -0
- package/dist/chunk-GIW4L6HY.cjs.map +1 -0
- package/dist/chunk-GJAGKFTR.js +74 -0
- package/dist/chunk-GJAGKFTR.js.map +1 -0
- package/dist/chunk-HFPGOTVF.cjs +324 -0
- package/dist/chunk-HFPGOTVF.cjs.map +1 -0
- package/dist/chunk-HRA3CPGG.js +486 -0
- package/dist/chunk-HRA3CPGG.js.map +1 -0
- package/dist/chunk-HZQEDNF6.js +66 -0
- package/dist/chunk-HZQEDNF6.js.map +1 -0
- package/dist/chunk-IT3PWBW4.cjs +19 -0
- package/dist/chunk-IT3PWBW4.cjs.map +1 -0
- package/dist/chunk-JD74LN7R.cjs +171 -0
- package/dist/chunk-JD74LN7R.cjs.map +1 -0
- package/dist/chunk-JTFYYKDT.js +135 -0
- package/dist/chunk-JTFYYKDT.js.map +1 -0
- package/dist/chunk-K2BQQ445.js +30 -0
- package/dist/chunk-K2BQQ445.js.map +1 -0
- package/dist/chunk-KAP4GJHO.js +546 -0
- package/dist/chunk-KAP4GJHO.js.map +1 -0
- package/dist/chunk-KDNBTPY2.js +458 -0
- package/dist/chunk-KDNBTPY2.js.map +1 -0
- package/dist/chunk-KIO7QFIV.cjs +223 -0
- package/dist/chunk-KIO7QFIV.cjs.map +1 -0
- package/dist/chunk-KSKU6JY6.cjs +71 -0
- package/dist/chunk-KSKU6JY6.cjs.map +1 -0
- package/dist/chunk-LSLPF6OI.cjs +192 -0
- package/dist/chunk-LSLPF6OI.cjs.map +1 -0
- package/dist/chunk-LU7VALW5.js +312 -0
- package/dist/chunk-LU7VALW5.js.map +1 -0
- package/dist/chunk-LUSXDZPV.cjs +296 -0
- package/dist/chunk-LUSXDZPV.cjs.map +1 -0
- package/dist/chunk-M72RJVPC.js +69 -0
- package/dist/chunk-M72RJVPC.js.map +1 -0
- package/dist/chunk-MQLCZ4HJ.cjs +1010 -0
- package/dist/chunk-MQLCZ4HJ.cjs.map +1 -0
- package/dist/chunk-MUUQ2WFJ.cjs +4 -0
- package/dist/chunk-MUUQ2WFJ.cjs.map +1 -0
- package/dist/chunk-MZ5ZRORA.cjs +496 -0
- package/dist/chunk-MZ5ZRORA.cjs.map +1 -0
- package/dist/chunk-N24XBYNX.cjs +140 -0
- package/dist/chunk-N24XBYNX.cjs.map +1 -0
- package/dist/chunk-NINIJCHU.cjs +23 -0
- package/dist/chunk-NINIJCHU.cjs.map +1 -0
- package/dist/chunk-NRSH7RJY.js +2841 -0
- package/dist/chunk-NRSH7RJY.js.map +1 -0
- package/dist/chunk-OIYQBUW4.cjs +111 -0
- package/dist/chunk-OIYQBUW4.cjs.map +1 -0
- package/dist/chunk-PNVDQL5Y.cjs +15 -0
- package/dist/chunk-PNVDQL5Y.cjs.map +1 -0
- package/dist/chunk-POQT2OIF.js +214 -0
- package/dist/chunk-POQT2OIF.js.map +1 -0
- package/dist/chunk-PSJN532Q.js +10573 -0
- package/dist/chunk-PSJN532Q.js.map +1 -0
- package/dist/chunk-QUTUJ6P6.cjs +76 -0
- package/dist/chunk-QUTUJ6P6.cjs.map +1 -0
- package/dist/chunk-R43CNCES.cjs +460 -0
- package/dist/chunk-R43CNCES.cjs.map +1 -0
- package/dist/chunk-S2BBRVQX.js +68 -0
- package/dist/chunk-S2BBRVQX.js.map +1 -0
- package/dist/chunk-S5RCBTSF.js +145 -0
- package/dist/chunk-S5RCBTSF.js.map +1 -0
- package/dist/chunk-S7OEXQMI.cjs +136 -0
- package/dist/chunk-S7OEXQMI.cjs.map +1 -0
- package/dist/chunk-SKWVAQAY.js +129 -0
- package/dist/chunk-SKWVAQAY.js.map +1 -0
- package/dist/chunk-SQLZ7ONU.js +152 -0
- package/dist/chunk-SQLZ7ONU.js.map +1 -0
- package/dist/chunk-TIZ4TS5V.cjs +72 -0
- package/dist/chunk-TIZ4TS5V.cjs.map +1 -0
- package/dist/chunk-TQKCU7CL.js +142 -0
- package/dist/chunk-TQKCU7CL.js.map +1 -0
- package/dist/chunk-U54XCYG3.js +116 -0
- package/dist/chunk-U54XCYG3.js.map +1 -0
- package/dist/chunk-U6QGZHPN.js +29 -0
- package/dist/chunk-U6QGZHPN.js.map +1 -0
- package/dist/chunk-UCFONJBG.js +79 -0
- package/dist/chunk-UCFONJBG.js.map +1 -0
- package/dist/chunk-UJ7IQJAG.js +141 -0
- package/dist/chunk-UJ7IQJAG.js.map +1 -0
- package/dist/chunk-UVNG67DG.js +253 -0
- package/dist/chunk-UVNG67DG.js.map +1 -0
- package/dist/chunk-V4XRLPEF.js +25 -0
- package/dist/chunk-V4XRLPEF.js.map +1 -0
- package/dist/chunk-VJ26EKGJ.cjs +28 -0
- package/dist/chunk-VJ26EKGJ.cjs.map +1 -0
- package/dist/chunk-VK7MAV65.cjs +90 -0
- package/dist/chunk-VK7MAV65.cjs.map +1 -0
- package/dist/chunk-VYCKUKPA.cjs +106 -0
- package/dist/chunk-VYCKUKPA.cjs.map +1 -0
- package/dist/chunk-VYHJZVL5.cjs +29 -0
- package/dist/chunk-VYHJZVL5.cjs.map +1 -0
- package/dist/chunk-WA3FO4R7.js +155 -0
- package/dist/chunk-WA3FO4R7.js.map +1 -0
- package/dist/chunk-WJVHMTKB.cjs +12 -0
- package/dist/chunk-WJVHMTKB.cjs.map +1 -0
- package/dist/chunk-WLKFWQSJ.js +333 -0
- package/dist/chunk-WLKFWQSJ.js.map +1 -0
- package/dist/chunk-WPZTYOUX.cjs +59 -0
- package/dist/chunk-WPZTYOUX.cjs.map +1 -0
- package/dist/chunk-X2FR4OIT.js +27 -0
- package/dist/chunk-X2FR4OIT.js.map +1 -0
- package/dist/chunk-XIG2IE3L.js +134 -0
- package/dist/chunk-XIG2IE3L.js.map +1 -0
- package/dist/chunk-YLQQX5W2.cjs +20 -0
- package/dist/chunk-YLQQX5W2.cjs.map +1 -0
- package/dist/chunk-YPEPCZHF.cjs +147 -0
- package/dist/chunk-YPEPCZHF.cjs.map +1 -0
- package/dist/chunk-YPQF26X7.cjs +8 -0
- package/dist/chunk-YPQF26X7.cjs.map +1 -0
- package/dist/chunk-YU6KON2I.cjs +160 -0
- package/dist/chunk-YU6KON2I.cjs.map +1 -0
- package/dist/chunk-Z2OC3UIW.cjs +388 -0
- package/dist/chunk-Z2OC3UIW.cjs.map +1 -0
- package/dist/chunk-ZUBIEQJF.cjs +10590 -0
- package/dist/chunk-ZUBIEQJF.cjs.map +1 -0
- package/dist/chunk-ZZWTY3RX.js +230 -0
- package/dist/chunk-ZZWTY3RX.js.map +1 -0
- package/dist/compact-session-OO2GD76G.js +17 -0
- package/dist/compact-session-OO2GD76G.js.map +1 -0
- package/dist/compact-session-OO7NVWPB.cjs +54 -0
- package/dist/compact-session-OO7NVWPB.cjs.map +1 -0
- package/dist/compaction.cjs +54 -303
- package/dist/compaction.cjs.map +1 -1
- package/dist/compaction.js +3 -292
- package/dist/compaction.js.map +1 -1
- package/dist/concurrency.cjs +9 -81
- package/dist/concurrency.cjs.map +1 -1
- package/dist/concurrency.js +5 -80
- package/dist/concurrency.js.map +1 -1
- package/dist/context-GWANQLX4.js +5 -0
- package/dist/context-GWANQLX4.js.map +1 -0
- package/dist/context-KNWVTZSY.cjs +22 -0
- package/dist/context-KNWVTZSY.cjs.map +1 -0
- package/dist/{cron-x3muPNgg.d.cts → cron-D0JKR-yX.d.cts} +2 -1
- package/dist/{cron-B_NkE_VM.d.ts → cron-DivRaEmN.d.ts} +2 -1
- package/dist/cron.cjs +44 -20676
- package/dist/cron.cjs.map +1 -1
- package/dist/cron.d.cts +1 -1
- package/dist/cron.d.ts +1 -1
- package/dist/cron.js +38 -20676
- package/dist/cron.js.map +1 -1
- package/dist/errors.cjs +78 -470
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +3 -424
- package/dist/errors.js +2 -455
- package/dist/errors.js.map +1 -1
- package/dist/eval.cjs +72 -20411
- package/dist/eval.cjs.map +1 -1
- package/dist/eval.js +59 -20402
- package/dist/eval.js.map +1 -1
- package/dist/executor-ORJS5GV2.js +981 -0
- package/dist/executor-ORJS5GV2.js.map +1 -0
- package/dist/executor-Y4MKPIUD.cjs +985 -0
- package/dist/executor-Y4MKPIUD.cjs.map +1 -0
- package/dist/filesystem/index.cjs +7 -112
- package/dist/filesystem/index.cjs.map +1 -1
- package/dist/filesystem/index.js +4 -109
- package/dist/filesystem/index.js.map +1 -1
- package/dist/fork-agent-RSV4E3EA.js +61 -0
- package/dist/fork-agent-RSV4E3EA.js.map +1 -0
- package/dist/fork-agent-Y2IK2RYU.cjs +64 -0
- package/dist/fork-agent-Y2IK2RYU.cjs.map +1 -0
- package/dist/fs-session-store-KAUQYSGI.cjs +17 -0
- package/dist/fs-session-store-KAUQYSGI.cjs.map +1 -0
- package/dist/fs-session-store-ZKB5NN37.js +8 -0
- package/dist/fs-session-store-ZKB5NN37.js.map +1 -0
- package/dist/generate-object-H3RNAM6S.cjs +20 -0
- package/dist/generate-object-H3RNAM6S.cjs.map +1 -0
- package/dist/generate-object-YJPDV5BS.js +7 -0
- package/dist/generate-object-YJPDV5BS.js.map +1 -0
- package/dist/index-manager-CB6I7XFQ.cjs +19 -0
- package/dist/index-manager-CB6I7XFQ.cjs.map +1 -0
- package/dist/index-manager-L27Q3QAC.js +10 -0
- package/dist/index-manager-L27Q3QAC.js.map +1 -0
- package/dist/index.cjs +371 -22888
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -21
- package/dist/index.d.ts +16 -21
- package/dist/index.js +92 -22713
- package/dist/index.js.map +1 -1
- package/dist/inject-session-6MJUSGZP.cjs +27 -0
- package/dist/inject-session-6MJUSGZP.cjs.map +1 -0
- package/dist/inject-session-KOFHS5K3.js +25 -0
- package/dist/inject-session-KOFHS5K3.js.map +1 -0
- package/dist/internal/judge/judge-call.d.ts +32 -19
- package/dist/internal/persistence/index.cjs +93 -508
- package/dist/internal/persistence/index.cjs.map +1 -1
- package/dist/internal/persistence/index.js +11 -489
- package/dist/internal/persistence/index.js.map +1 -1
- package/dist/internal/security/index.cjs +44 -361
- package/dist/internal/security/index.cjs.map +1 -1
- package/dist/internal/security/index.js +4 -355
- package/dist/internal/security/index.js.map +1 -1
- package/dist/judge-call-CEQ3FYYD.js +126 -0
- package/dist/judge-call-CEQ3FYYD.js.map +1 -0
- package/dist/judge-call-QG4WZ7F3.cjs +130 -0
- package/dist/judge-call-QG4WZ7F3.cjs.map +1 -0
- package/dist/models.cjs +24 -919
- package/dist/models.cjs.map +1 -1
- package/dist/models.js +11 -907
- package/dist/models.js.map +1 -1
- package/dist/oauth-transaction-store-7CKHPQRN.cjs +32 -0
- package/dist/oauth-transaction-store-7CKHPQRN.cjs.map +1 -0
- package/dist/oauth-transaction-store-W74I6EFD.js +3 -0
- package/dist/oauth-transaction-store-W74I6EFD.js.map +1 -0
- package/dist/path-safety.cjs +31 -200
- package/dist/path-safety.cjs.map +1 -1
- package/dist/path-safety.js +3 -197
- package/dist/path-safety.js.map +1 -1
- package/dist/persistence.cjs +73 -393
- package/dist/persistence.cjs.map +1 -1
- package/dist/persistence.js +9 -381
- package/dist/persistence.js.map +1 -1
- package/dist/project.cjs +8 -112
- package/dist/project.cjs.map +1 -1
- package/dist/project.js +6 -110
- package/dist/project.js.map +1 -1
- package/dist/registry-34IWWDQQ.js +9 -0
- package/dist/registry-34IWWDQQ.js.map +1 -0
- package/dist/registry-APYDISL6.cjs +46 -0
- package/dist/registry-APYDISL6.cjs.map +1 -0
- package/dist/retry.cjs +7 -87
- package/dist/retry.cjs.map +1 -1
- package/dist/retry.js +3 -90
- package/dist/retry.js.map +1 -1
- package/dist/run-to-completion-J73I6IY4.cjs +48 -0
- package/dist/run-to-completion-J73I6IY4.cjs.map +1 -0
- package/dist/run-to-completion-JDPIUKSH.js +3 -0
- package/dist/run-to-completion-JDPIUKSH.js.map +1 -0
- package/dist/run-until-PNO3QQLI.cjs +180 -0
- package/dist/run-until-PNO3QQLI.cjs.map +1 -0
- package/dist/run-until-XLHEHRQM.js +177 -0
- package/dist/run-until-XLHEHRQM.js.map +1 -0
- package/dist/sandbox/index.cjs +35 -337
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.js +7 -323
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sanitize/index.cjs +5 -112
- package/dist/sanitize/index.cjs.map +1 -1
- package/dist/sanitize/index.js +1 -114
- package/dist/sanitize/index.js.map +1 -1
- package/dist/server/auth/index.cjs +35 -175
- package/dist/server/auth/index.cjs.map +1 -1
- package/dist/server/auth/index.js +7 -161
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/errors-envelope.cjs +17 -328
- package/dist/server/errors-envelope.cjs.map +1 -1
- package/dist/server/errors-envelope.js +4 -317
- package/dist/server/errors-envelope.js.map +1 -1
- package/dist/session-transcript-LPNZR3YS.cjs +46 -0
- package/dist/session-transcript-LPNZR3YS.cjs.map +1 -0
- package/dist/session-transcript-T7LGJUGW.js +5 -0
- package/dist/session-transcript-T7LGJUGW.js.map +1 -0
- package/dist/skills.cjs +12 -280
- package/dist/skills.cjs.map +1 -1
- package/dist/skills.js +4 -282
- package/dist/skills.js.map +1 -1
- package/dist/stream-object-QEQJJDTI.cjs +20 -0
- package/dist/stream-object-QEQJJDTI.cjs.map +1 -0
- package/dist/stream-object-WUQSSRY2.js +7 -0
- package/dist/stream-object-WUQSSRY2.js.map +1 -0
- package/dist/stream-to-completion-DFJ5T3BK.js +30 -0
- package/dist/stream-to-completion-DFJ5T3BK.js.map +1 -0
- package/dist/stream-to-completion-H2MHISSK.cjs +32 -0
- package/dist/stream-to-completion-H2MHISSK.cjs.map +1 -0
- package/dist/subagents.cjs +2 -8
- package/dist/subagents.cjs.map +1 -1
- package/dist/subagents.js +1 -7
- package/dist/subagents.js.map +1 -1
- package/dist/subscription/index.cjs +4 -17
- package/dist/subscription/index.cjs.map +1 -1
- package/dist/subscription/index.js +3 -16
- package/dist/subscription/index.js.map +1 -1
- package/dist/task-store.cjs +16 -258
- package/dist/task-store.cjs.map +1 -1
- package/dist/task-store.js +4 -259
- package/dist/task-store.js.map +1 -1
- package/dist/types/goal-events.d.ts +2 -1
- package/dist/workflow.cjs +71 -2797
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.js +8 -2812
- package/dist/workflow.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,85 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export { JsonlParseError, appendJsonl, loadJsonl, readJsonlIds } from '../../chunk-DUK5WMKJ.js';
|
|
2
|
+
export { PersistenceSchema } from '../../chunk-CAH3G4IS.js';
|
|
3
|
+
export { displayTheokitHome, getProfilesRoot, getTheokitHome, migrateSchema, readVersionedJson, writeVersionedJson } from '../../chunk-DGRZNMTU.js';
|
|
4
|
+
export { applyWalWithFallback, containsCjk, isCorruptionError, openSqliteResilient, sanitizeFts5Query } from '../../chunk-77FOZCOT.js';
|
|
5
|
+
export { withFileLock } from '../../chunk-HZQEDNF6.js';
|
|
6
|
+
export { withCwdMutex } from '../../chunk-2XLKLVVR.js';
|
|
7
|
+
export { atomicWriteJson, atomicWriteText, replaceFileAtomic } from '../../chunk-S2BBRVQX.js';
|
|
8
|
+
import '../../chunk-WLKFWQSJ.js';
|
|
9
|
+
import '../../chunk-JTFYYKDT.js';
|
|
10
|
+
import { open } from 'fs/promises';
|
|
7
11
|
|
|
8
|
-
// src/internal/persistence/atomic-write.ts
|
|
9
|
-
var NETWORK_FS_MAGIC = /* @__PURE__ */ new Map([
|
|
10
|
-
[26985, "nfs"],
|
|
11
|
-
[20859, "smb"],
|
|
12
|
-
[4283649346, "cifs"],
|
|
13
|
-
[1702057286, "fuse"]
|
|
14
|
-
]);
|
|
15
|
-
function detectNetworkFsName(typeMagic) {
|
|
16
|
-
return NETWORK_FS_MAGIC.get(typeMagic) ?? null;
|
|
17
|
-
}
|
|
18
|
-
var warnedNfsDirs = /* @__PURE__ */ new Set();
|
|
19
|
-
async function warnOnNetworkFsOnce(dirPath, label) {
|
|
20
|
-
const key = `${dirPath}\0${label}`;
|
|
21
|
-
if (warnedNfsDirs.has(key)) return;
|
|
22
|
-
warnedNfsDirs.add(key);
|
|
23
|
-
try {
|
|
24
|
-
const info = await statfs(dirPath);
|
|
25
|
-
const fsName = detectNetworkFsName(info.type);
|
|
26
|
-
if (fsName === null) return;
|
|
27
|
-
process.stderr.write(
|
|
28
|
-
`[theokit-sdk] ${label}: detected network fs (${fsName}) at ${dirPath} \u2014 rename() atomicity guarantees may be weaker than expected.
|
|
29
|
-
`
|
|
30
|
-
);
|
|
31
|
-
} catch {
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
async function replaceFileAtomic(filePath, content) {
|
|
35
|
-
await warnOnNetworkFsOnce(dirname(filePath), "atomic-write");
|
|
36
|
-
const suffix = randomBytes(8).toString("hex");
|
|
37
|
-
const tmp = `${filePath}.${process.pid}.${suffix}.tmp`;
|
|
38
|
-
const handle = await open(tmp, "w", 384);
|
|
39
|
-
try {
|
|
40
|
-
await handle.writeFile(content, "utf8");
|
|
41
|
-
await handle.sync();
|
|
42
|
-
} finally {
|
|
43
|
-
await handle.close();
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
await rename(tmp, filePath);
|
|
47
|
-
} catch (cause) {
|
|
48
|
-
await unlink(tmp).catch(() => void 0);
|
|
49
|
-
throw cause;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
async function atomicWriteJson(filePath, data, options) {
|
|
53
|
-
const indent = options?.indent ?? 2;
|
|
54
|
-
const trailingNewline = options?.trailingNewline ?? true;
|
|
55
|
-
const json = JSON.stringify(data, null, indent);
|
|
56
|
-
if (json === void 0) {
|
|
57
|
-
throw new TypeError("atomicWriteJson: cannot serialize undefined");
|
|
58
|
-
}
|
|
59
|
-
const content = trailingNewline ? `${json}
|
|
60
|
-
` : json;
|
|
61
|
-
await mkdir(dirname(filePath), { recursive: true });
|
|
62
|
-
await replaceFileAtomic(filePath, content);
|
|
63
|
-
}
|
|
64
|
-
async function atomicWriteText(filePath, content) {
|
|
65
|
-
await mkdir(dirname(filePath), { recursive: true });
|
|
66
|
-
await replaceFileAtomic(filePath, content);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// src/internal/persistence/cwd-mutex.ts
|
|
70
|
-
var tails = /* @__PURE__ */ new Map();
|
|
71
|
-
function withCwdMutex(key, fn) {
|
|
72
|
-
const prev = tails.get(key) ?? Promise.resolve();
|
|
73
|
-
const next = prev.then(fn, fn);
|
|
74
|
-
tails.set(
|
|
75
|
-
key,
|
|
76
|
-
next.then(
|
|
77
|
-
() => void 0,
|
|
78
|
-
() => void 0
|
|
79
|
-
)
|
|
80
|
-
);
|
|
81
|
-
return next;
|
|
82
|
-
}
|
|
83
12
|
async function createExclusive(path, data, options) {
|
|
84
13
|
const mode = options?.mode ?? 384;
|
|
85
14
|
try {
|
|
@@ -98,276 +27,6 @@ async function createExclusive(path, data, options) {
|
|
|
98
27
|
}
|
|
99
28
|
}
|
|
100
29
|
|
|
101
|
-
// src/internal/persistence/file-lock.ts
|
|
102
|
-
var cached;
|
|
103
|
-
var warnedMissing = false;
|
|
104
|
-
var warnedStructural = false;
|
|
105
|
-
async function getProperLockfile() {
|
|
106
|
-
if (cached !== void 0) return cached;
|
|
107
|
-
try {
|
|
108
|
-
const mod = await import('proper-lockfile');
|
|
109
|
-
if (!validateLockModule(mod)) {
|
|
110
|
-
if (!warnedStructural) {
|
|
111
|
-
warnedStructural = true;
|
|
112
|
-
process.stderr.write(
|
|
113
|
-
"[theokit-sdk] proper-lockfile: imported module does NOT expose the expected `lock`/`unlock` API surface. This may indicate a supply-chain compromise or an incompatible major version. Falling back to in-process mutex (no cross-process safety). Reinstall with: pnpm add proper-lockfile@^11\n"
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
cached = null;
|
|
117
|
-
return cached;
|
|
118
|
-
}
|
|
119
|
-
cached = mod;
|
|
120
|
-
} catch {
|
|
121
|
-
cached = null;
|
|
122
|
-
}
|
|
123
|
-
return cached;
|
|
124
|
-
}
|
|
125
|
-
function validateLockModule(mod) {
|
|
126
|
-
if (mod === null || mod === void 0 || typeof mod !== "object") return false;
|
|
127
|
-
const m = mod;
|
|
128
|
-
return typeof m.lock === "function" && typeof m.unlock === "function";
|
|
129
|
-
}
|
|
130
|
-
async function withFileLock(path, fn, options) {
|
|
131
|
-
const lib = await getProperLockfile();
|
|
132
|
-
if (lib === null) {
|
|
133
|
-
if (!warnedMissing) {
|
|
134
|
-
warnedMissing = true;
|
|
135
|
-
process.stderr.write(
|
|
136
|
-
"[theokit-sdk] proper-lockfile not installed; cross-process file lock unavailable. Install with: pnpm add proper-lockfile\n"
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
return withCwdMutex(`file-lock:${path}`, fn);
|
|
140
|
-
}
|
|
141
|
-
return withCwdMutex(`file-lock:${path}`, async () => {
|
|
142
|
-
const release = await lib.lock(path, {
|
|
143
|
-
// EC-1: companion lockfile, target path may not exist yet.
|
|
144
|
-
lockfilePath: `${path}.lock`,
|
|
145
|
-
realpath: false,
|
|
146
|
-
stale: options?.stale ?? 3e4,
|
|
147
|
-
retries: {
|
|
148
|
-
retries: options?.retries ?? 5,
|
|
149
|
-
factor: options?.retryFactor ?? 1.5,
|
|
150
|
-
minTimeout: 100,
|
|
151
|
-
maxTimeout: 5e3
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
try {
|
|
155
|
-
return await fn();
|
|
156
|
-
} finally {
|
|
157
|
-
await release();
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// src/internal/persistence/fts5-sanitize.ts
|
|
163
|
-
var PHRASE_OPEN = "";
|
|
164
|
-
var PHRASE_CLOSE = "";
|
|
165
|
-
function sanitizeFts5Query(query) {
|
|
166
|
-
if (query.length === 0) return query;
|
|
167
|
-
const phrases = [];
|
|
168
|
-
let text = query.replace(/"[^"]+"/g, (match) => {
|
|
169
|
-
phrases.push(match);
|
|
170
|
-
return `${PHRASE_OPEN}${phrases.length - 1}${PHRASE_CLOSE}`;
|
|
171
|
-
});
|
|
172
|
-
text = text.replace(/[[\]{}()"^]/g, " ");
|
|
173
|
-
text = text.replace(/\*+/g, "*");
|
|
174
|
-
text = text.replace(/^\s*(AND|OR|NOT)\s+/i, "");
|
|
175
|
-
text = text.replace(/\s+(AND|OR|NOT)\s*$/i, "");
|
|
176
|
-
text = text.replace(/\b\w+[-._]\w[\w\-._]*\b/g, (match) => `"${match}"`);
|
|
177
|
-
for (let i = 0; i < phrases.length; i += 1) {
|
|
178
|
-
text = text.replace(`${PHRASE_OPEN}${i}${PHRASE_CLOSE}`, phrases[i] ?? "");
|
|
179
|
-
}
|
|
180
|
-
return text.trim();
|
|
181
|
-
}
|
|
182
|
-
var CJK_RANGES = [
|
|
183
|
-
[12288, 12351],
|
|
184
|
-
// CJK Symbols and Punctuation
|
|
185
|
-
[12352, 12447],
|
|
186
|
-
// Hiragana
|
|
187
|
-
[12448, 12543],
|
|
188
|
-
// Katakana
|
|
189
|
-
[13312, 19903],
|
|
190
|
-
// CJK Unified Ideographs Extension A
|
|
191
|
-
[19968, 40959],
|
|
192
|
-
// CJK Unified Ideographs
|
|
193
|
-
[44032, 55215]
|
|
194
|
-
// Hangul Syllables
|
|
195
|
-
];
|
|
196
|
-
function containsCjk(text) {
|
|
197
|
-
for (const char of text) {
|
|
198
|
-
const cp = char.codePointAt(0);
|
|
199
|
-
if (cp === void 0) continue;
|
|
200
|
-
for (const [lo, hi] of CJK_RANGES) {
|
|
201
|
-
if (cp >= lo && cp <= hi) return true;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
var JsonlParseError = class extends Error {
|
|
207
|
-
constructor(message, line) {
|
|
208
|
-
super(message);
|
|
209
|
-
this.line = line;
|
|
210
|
-
this.name = "JsonlParseError";
|
|
211
|
-
}
|
|
212
|
-
line;
|
|
213
|
-
};
|
|
214
|
-
function isPlainObject(value) {
|
|
215
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
216
|
-
}
|
|
217
|
-
function tryParseObjectLine(line) {
|
|
218
|
-
if (line.length === 0) return void 0;
|
|
219
|
-
let parsed;
|
|
220
|
-
try {
|
|
221
|
-
parsed = JSON.parse(line);
|
|
222
|
-
} catch {
|
|
223
|
-
return void 0;
|
|
224
|
-
}
|
|
225
|
-
return isPlainObject(parsed) ? parsed : void 0;
|
|
226
|
-
}
|
|
227
|
-
function loadJsonl(path, opts = {}) {
|
|
228
|
-
const text = readFileSync(path, "utf8");
|
|
229
|
-
const out = [];
|
|
230
|
-
let lineNumber = 0;
|
|
231
|
-
for (const rawLine of text.split("\n")) {
|
|
232
|
-
lineNumber += 1;
|
|
233
|
-
const line = rawLine.trim();
|
|
234
|
-
if (line.length === 0) continue;
|
|
235
|
-
let parsed;
|
|
236
|
-
try {
|
|
237
|
-
parsed = JSON.parse(line);
|
|
238
|
-
} catch {
|
|
239
|
-
throw new JsonlParseError(`line ${lineNumber}: invalid JSON`, lineNumber);
|
|
240
|
-
}
|
|
241
|
-
if (!isPlainObject(parsed)) {
|
|
242
|
-
throw new JsonlParseError(`line ${lineNumber}: not a JSON object`, lineNumber);
|
|
243
|
-
}
|
|
244
|
-
out.push(opts.map ? opts.map(parsed, lineNumber) : parsed);
|
|
245
|
-
}
|
|
246
|
-
return out;
|
|
247
|
-
}
|
|
248
|
-
function appendJsonl(path, record) {
|
|
249
|
-
mkdirSync(dirname(path), { recursive: true });
|
|
250
|
-
appendFileSync(path, `${JSON.stringify(record)}
|
|
251
|
-
`);
|
|
252
|
-
}
|
|
253
|
-
function readJsonlIds(path, keyFn) {
|
|
254
|
-
const done = /* @__PURE__ */ new Set();
|
|
255
|
-
let text;
|
|
256
|
-
try {
|
|
257
|
-
text = readFileSync(path, "utf8");
|
|
258
|
-
} catch {
|
|
259
|
-
return done;
|
|
260
|
-
}
|
|
261
|
-
for (const rawLine of text.split("\n")) {
|
|
262
|
-
const parsed = tryParseObjectLine(rawLine.trim());
|
|
263
|
-
if (parsed === void 0) continue;
|
|
264
|
-
const key = keyFn(parsed);
|
|
265
|
-
if (typeof key === "string" && key.length > 0) done.add(key);
|
|
266
|
-
}
|
|
267
|
-
return done;
|
|
268
|
-
}
|
|
269
|
-
var THEOKIT_DIR_NAME = ".theokit";
|
|
270
|
-
function getTheokitHome(cwd) {
|
|
271
|
-
const override = process.env.THEOKIT_HOME?.trim();
|
|
272
|
-
if (override !== void 0 && override.length > 0) {
|
|
273
|
-
return override;
|
|
274
|
-
}
|
|
275
|
-
return join(cwd, THEOKIT_DIR_NAME);
|
|
276
|
-
}
|
|
277
|
-
function getProfilesRoot() {
|
|
278
|
-
return join(homedir(), THEOKIT_DIR_NAME, "profiles");
|
|
279
|
-
}
|
|
280
|
-
function displayTheokitHome(cwd) {
|
|
281
|
-
const resolved = getTheokitHome(cwd);
|
|
282
|
-
const home = homedir();
|
|
283
|
-
if (resolved === home) return "~";
|
|
284
|
-
if (resolved.startsWith(`${home}/`)) {
|
|
285
|
-
return `~${resolved.slice(home.length)}`;
|
|
286
|
-
}
|
|
287
|
-
return resolved;
|
|
288
|
-
}
|
|
289
|
-
var PersistenceSchema = z.object({
|
|
290
|
-
backend: z.enum(["memory", "json"]),
|
|
291
|
-
dir: z.string().optional()
|
|
292
|
-
}).refine((p) => p.backend !== "json" || typeof p.dir === "string" && p.dir.length > 0, {
|
|
293
|
-
message: 'persistence.dir is required when backend = "json"'
|
|
294
|
-
}).optional();
|
|
295
|
-
function migrateSchema(opts) {
|
|
296
|
-
const { db, currentVersion, migrations, label = "db" } = opts;
|
|
297
|
-
const storedRaw = db.pragma("user_version", { simple: true });
|
|
298
|
-
const stored = typeof storedRaw === "number" ? storedRaw : 0;
|
|
299
|
-
if (stored > currentVersion) {
|
|
300
|
-
throw new Error(
|
|
301
|
-
`[${label}] schema version ${stored} > current ${currentVersion}; did you downgrade the SDK? Forward-only migrations only.`
|
|
302
|
-
);
|
|
303
|
-
}
|
|
304
|
-
if (stored === currentVersion) {
|
|
305
|
-
return { from: stored, to: stored, ran: 0 };
|
|
306
|
-
}
|
|
307
|
-
const pending = [...migrations].sort((a, b) => a.toVersion - b.toVersion).filter((m) => m.toVersion > stored && m.toVersion <= currentVersion);
|
|
308
|
-
let ran = 0;
|
|
309
|
-
let lastApplied = stored;
|
|
310
|
-
db.transaction(() => {
|
|
311
|
-
for (const m of pending) {
|
|
312
|
-
m.up(db);
|
|
313
|
-
db.pragma(`user_version = ${m.toVersion}`);
|
|
314
|
-
lastApplied = m.toVersion;
|
|
315
|
-
ran += 1;
|
|
316
|
-
}
|
|
317
|
-
})();
|
|
318
|
-
return { from: stored, to: lastApplied, ran };
|
|
319
|
-
}
|
|
320
|
-
async function readVersionedJson(opts) {
|
|
321
|
-
const { path, currentVersion, migrate, defaultValue } = opts;
|
|
322
|
-
let raw;
|
|
323
|
-
try {
|
|
324
|
-
raw = await readFile(path, "utf-8");
|
|
325
|
-
} catch {
|
|
326
|
-
return defaultValue();
|
|
327
|
-
}
|
|
328
|
-
let parsed;
|
|
329
|
-
try {
|
|
330
|
-
parsed = JSON.parse(raw);
|
|
331
|
-
} catch {
|
|
332
|
-
const asidePath = `${path}.corrupt.${Date.now()}`;
|
|
333
|
-
try {
|
|
334
|
-
await rename(path, asidePath);
|
|
335
|
-
process.stderr.write(
|
|
336
|
-
`[theokit-sdk] ${path} is corrupt; moved to ${asidePath}. Using default value.
|
|
337
|
-
`
|
|
338
|
-
);
|
|
339
|
-
} catch {
|
|
340
|
-
process.stderr.write(`[theokit-sdk] ${path} is corrupt; using default value.
|
|
341
|
-
`);
|
|
342
|
-
}
|
|
343
|
-
return defaultValue();
|
|
344
|
-
}
|
|
345
|
-
if (typeof parsed !== "object" || parsed === null) {
|
|
346
|
-
return defaultValue();
|
|
347
|
-
}
|
|
348
|
-
const file = parsed;
|
|
349
|
-
const storedRaw = file._schemaVersion;
|
|
350
|
-
const stored = typeof storedRaw === "number" ? storedRaw : 0;
|
|
351
|
-
if (stored === currentVersion) {
|
|
352
|
-
return file.data;
|
|
353
|
-
}
|
|
354
|
-
if (stored > currentVersion) {
|
|
355
|
-
process.stderr.write(
|
|
356
|
-
`[theokit-sdk] ${path} schema version ${stored} > current ${currentVersion}; using default value (forward-only).
|
|
357
|
-
`
|
|
358
|
-
);
|
|
359
|
-
return defaultValue();
|
|
360
|
-
}
|
|
361
|
-
return migrate(parsed, stored);
|
|
362
|
-
}
|
|
363
|
-
async function writeVersionedJson(path, data, currentVersion) {
|
|
364
|
-
const file = {
|
|
365
|
-
_schemaVersion: currentVersion,
|
|
366
|
-
data
|
|
367
|
-
};
|
|
368
|
-
await atomicWriteJson(path, file);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
30
|
// src/internal/persistence/sqlite-cas.ts
|
|
372
31
|
function casUpdate(db, sql, params, expectedChanges = 1) {
|
|
373
32
|
const stmt = db.prepare(sql);
|
|
@@ -375,143 +34,6 @@ function casUpdate(db, sql, params, expectedChanges = 1) {
|
|
|
375
34
|
return result.changes === expectedChanges;
|
|
376
35
|
}
|
|
377
36
|
|
|
378
|
-
|
|
379
|
-
var TheokitAgentError = class extends Error {
|
|
380
|
-
name = "TheokitAgentError";
|
|
381
|
-
isRetryable;
|
|
382
|
-
code;
|
|
383
|
-
protoErrorCode;
|
|
384
|
-
metadata;
|
|
385
|
-
constructor(message, options = {}) {
|
|
386
|
-
super(message, options.cause !== void 0 ? { cause: options.cause } : void 0);
|
|
387
|
-
this.isRetryable = options.isRetryable ?? false;
|
|
388
|
-
if (options.code !== void 0) this.code = options.code;
|
|
389
|
-
if (options.protoErrorCode !== void 0) this.protoErrorCode = options.protoErrorCode;
|
|
390
|
-
if (options.metadata !== void 0) this.metadata = options.metadata;
|
|
391
|
-
}
|
|
392
|
-
};
|
|
393
|
-
var ConfigurationError = class extends TheokitAgentError {
|
|
394
|
-
name = "ConfigurationError";
|
|
395
|
-
constructor(message, options = {}) {
|
|
396
|
-
super(message, { ...options, isRetryable: false });
|
|
397
|
-
}
|
|
398
|
-
};
|
|
399
|
-
|
|
400
|
-
// src/internal/persistence/sqlite-wal.ts
|
|
401
|
-
var warnedLabels = /* @__PURE__ */ new Set();
|
|
402
|
-
function applyWalWithFallback(db, label) {
|
|
403
|
-
try {
|
|
404
|
-
const result = db.pragma("journal_mode = WAL", { simple: true });
|
|
405
|
-
if (typeof result === "string" && result.toLowerCase() === "wal") {
|
|
406
|
-
return { mode: "wal", fellBack: false };
|
|
407
|
-
}
|
|
408
|
-
logFallback(label, `got "${String(result)}" instead of "wal"`);
|
|
409
|
-
} catch (err) {
|
|
410
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
411
|
-
logFallback(label, msg);
|
|
412
|
-
}
|
|
413
|
-
db.pragma("journal_mode = DELETE");
|
|
414
|
-
return { mode: "delete", fellBack: true };
|
|
415
|
-
}
|
|
416
|
-
function logFallback(label, reason) {
|
|
417
|
-
if (warnedLabels.has(label)) return;
|
|
418
|
-
warnedLabels.add(label);
|
|
419
|
-
process.stderr.write(
|
|
420
|
-
`[theokit-sdk] ${label}: WAL unavailable (${reason}); using DELETE journal mode. This is normal on NFS/SMB/FUSE; expect slightly slower concurrent access.
|
|
421
|
-
`
|
|
422
|
-
);
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
// src/internal/persistence/sqlite-open.ts
|
|
426
|
-
async function openSqliteResilient(options) {
|
|
427
|
-
await mkdir(dirname(options.filePath), { recursive: true });
|
|
428
|
-
try {
|
|
429
|
-
return await openConcrete(options);
|
|
430
|
-
} catch (cause) {
|
|
431
|
-
if (options.recoverCorrupt !== false && isCorruptionError(cause)) {
|
|
432
|
-
await renameAside(options.filePath, options.label ?? "sqlite");
|
|
433
|
-
return await openConcrete(options);
|
|
434
|
-
}
|
|
435
|
-
throw cause;
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
async function openConcrete(options) {
|
|
439
|
-
const db = await loadDriver(options.filePath);
|
|
440
|
-
applyWalWithFallback(db, options.label ?? "sqlite");
|
|
441
|
-
await options.onOpen?.(db);
|
|
442
|
-
return db;
|
|
443
|
-
}
|
|
444
|
-
var driverLoaderOverrides;
|
|
445
|
-
function adaptNodeSqlite(db) {
|
|
446
|
-
const pragma = (statement, options) => {
|
|
447
|
-
const stmt = db.prepare(`PRAGMA ${statement}`);
|
|
448
|
-
const row = stmt.get();
|
|
449
|
-
if (options?.simple === true) {
|
|
450
|
-
return row === void 0 ? void 0 : Object.values(row)[0];
|
|
451
|
-
}
|
|
452
|
-
return row === void 0 ? [] : [row];
|
|
453
|
-
};
|
|
454
|
-
return new Proxy(db, {
|
|
455
|
-
get(target, prop, receiver) {
|
|
456
|
-
if (prop === "pragma") return pragma;
|
|
457
|
-
if (prop === "loadExtension" && typeof db.loadExtension !== "function") {
|
|
458
|
-
return () => {
|
|
459
|
-
throw new Error(
|
|
460
|
-
"SQLite extension loading is unavailable on the node:sqlite fallback \u2014 install better-sqlite3 for sqlite-vec"
|
|
461
|
-
);
|
|
462
|
-
};
|
|
463
|
-
}
|
|
464
|
-
const value = Reflect.get(target, prop, receiver);
|
|
465
|
-
return typeof value === "function" ? value.bind(target) : value;
|
|
466
|
-
}
|
|
467
|
-
});
|
|
468
|
-
}
|
|
469
|
-
async function loadDriver(filePath) {
|
|
470
|
-
let betterSqliteCause;
|
|
471
|
-
try {
|
|
472
|
-
const mod = await (driverLoaderOverrides?.betterSqlite3?.() ?? import('better-sqlite3'));
|
|
473
|
-
const Ctor = mod.default ?? mod;
|
|
474
|
-
if (typeof Ctor !== "function") {
|
|
475
|
-
throw new Error(`better-sqlite3 export is not a constructor (got ${typeof Ctor})`);
|
|
476
|
-
}
|
|
477
|
-
return new Ctor(filePath);
|
|
478
|
-
} catch (cause) {
|
|
479
|
-
betterSqliteCause = cause;
|
|
480
|
-
}
|
|
481
|
-
try {
|
|
482
|
-
const mod = await (driverLoaderOverrides?.nodeSqlite?.() ?? Promise.resolve(
|
|
483
|
-
process.getBuiltinModule?.(
|
|
484
|
-
"node:sqlite"
|
|
485
|
-
) ?? (() => {
|
|
486
|
-
throw new Error("node:sqlite built-in unavailable (Node < 22.3)");
|
|
487
|
-
})()
|
|
488
|
-
));
|
|
489
|
-
return adaptNodeSqlite(new mod.DatabaseSync(filePath));
|
|
490
|
-
} catch (nodeSqliteCause) {
|
|
491
|
-
const b = betterSqliteCause instanceof Error ? betterSqliteCause.message : String(betterSqliteCause);
|
|
492
|
-
const n = nodeSqliteCause instanceof Error ? nodeSqliteCause.message : String(nodeSqliteCause);
|
|
493
|
-
throw new ConfigurationError(
|
|
494
|
-
`Failed to load SQLite driver. Install \`better-sqlite3\` or run on Node 22.5+ for built-in \`node:sqlite\`. better-sqlite3: ${b}; node:sqlite: ${n}`,
|
|
495
|
-
{ code: "sqlite_driver_unavailable", cause: nodeSqliteCause }
|
|
496
|
-
);
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
function isCorruptionError(cause) {
|
|
500
|
-
if (!(cause instanceof Error)) return false;
|
|
501
|
-
const msg = cause.message.toLowerCase();
|
|
502
|
-
return msg.includes("malformed") || msg.includes("not a database") || msg.includes("encrypted") || msg.includes("disk image is malformed");
|
|
503
|
-
}
|
|
504
|
-
async function renameAside(filePath, label) {
|
|
505
|
-
const asidePath = `${filePath}.corrupt-${Date.now()}`;
|
|
506
|
-
await rename(filePath, asidePath).catch(() => void 0);
|
|
507
|
-
await rename(`${filePath}-wal`, `${asidePath}-wal`).catch(() => void 0);
|
|
508
|
-
await rename(`${filePath}-shm`, `${asidePath}-shm`).catch(() => void 0);
|
|
509
|
-
process.stderr.write(
|
|
510
|
-
`[theokit-sdk] ${label} database corrupt; renamed aside to ${asidePath} and rebuilt schema
|
|
511
|
-
`
|
|
512
|
-
);
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
export { JsonlParseError, PersistenceSchema, appendJsonl, applyWalWithFallback, atomicWriteJson, atomicWriteText, casUpdate, containsCjk, createExclusive, displayTheokitHome, getProfilesRoot, getTheokitHome, isCorruptionError, loadJsonl, migrateSchema, openSqliteResilient, readJsonlIds, readVersionedJson, replaceFileAtomic, sanitizeFts5Query, withCwdMutex, withFileLock, writeVersionedJson };
|
|
37
|
+
export { casUpdate, createExclusive };
|
|
516
38
|
//# sourceMappingURL=index.js.map
|
|
517
39
|
//# sourceMappingURL=index.js.map
|