@shareai-lab/kode 2.1.0 → 2.1.2
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/chunks/{Doctor-AES5ON33.js → Doctor-TWRIVOVW.js} +13 -13
- package/dist/chunks/{LogList-PQJEJHHE.js → LogList-PUTPM24L.js} +10 -10
- package/dist/chunks/REPL-YGIR5VXC.js +78 -0
- package/dist/chunks/{ResumeConversation-OWQ3DB4M.js → ResumeConversation-IJMKQXBU.js} +44 -44
- package/dist/chunks/{ScreenFrame-AGLR6B4D.js → ScreenFrame-PQJRZ5DQ.js} +2 -2
- package/dist/chunks/{agentLoader-BMWB4UKI.js → agentLoader-GOYNJTAO.js} +5 -5
- package/dist/chunks/{agentsValidate-LSMJSFYW.js → agentsValidate-R26AKPAA.js} +6 -6
- package/dist/chunks/{ask-3TSZR6AJ.js → ask-6SYVJONJ.js} +18 -18
- package/dist/chunks/{autoUpdater-MEPC7LJF.js → autoUpdater-SDLJ5QSH.js} +4 -4
- package/dist/chunks/{chunk-NC3RX5AB.js → chunk-2B2TR2S3.js} +4 -4
- package/dist/chunks/{chunk-HDEYMVIJ.js → chunk-437YGKVA.js} +2 -2
- package/dist/chunks/{chunk-WGMKKKS2.js → chunk-4BBWDSDC.js} +1 -1
- package/dist/chunks/{chunk-KKOES3YK.js → chunk-4T5LR4P5.js} +55 -116
- package/dist/chunks/chunk-4T5LR4P5.js.map +7 -0
- package/dist/chunks/{chunk-PMC3BZ3M.js → chunk-5HZWM4JB.js} +1 -1
- package/dist/chunks/{chunk-REQTXUXO.js → chunk-5LBRVQT5.js} +1 -1
- package/dist/chunks/{chunk-BEDQTC44.js → chunk-5LL33G6X.js} +2 -2
- package/dist/chunks/{chunk-YUXYJB45.js → chunk-5RCVEFJS.js} +19 -8
- package/dist/chunks/chunk-5RCVEFJS.js.map +7 -0
- package/dist/chunks/{chunk-MDCOIZVX.js → chunk-6C6VNA2D.js} +2 -2
- package/dist/chunks/{chunk-P77NF36M.js → chunk-6CAQXUDY.js} +1 -1
- package/dist/chunks/{chunk-DPQE5NA4.js → chunk-7SRIFZDJ.js} +1 -1
- package/dist/chunks/{chunk-TI2CTTMA.js → chunk-7ZC22R33.js} +1 -1
- package/dist/chunks/{chunk-EV56PDOI.js → chunk-AX3VXMUS.js} +1 -1
- package/dist/chunks/{chunk-5MVUCX6O.js → chunk-AZHJLRRP.js} +1 -1
- package/dist/chunks/{chunk-LIBZWJEW.js → chunk-BNSPVA24.js} +11 -10
- package/dist/chunks/chunk-BNSPVA24.js.map +7 -0
- package/dist/chunks/{chunk-Z3J3WJ2K.js → chunk-BPMYW5DT.js} +415 -414
- package/dist/chunks/chunk-BPMYW5DT.js.map +7 -0
- package/dist/chunks/{chunk-QBW7VU7C.js → chunk-DWKF6SQH.js} +3 -3
- package/dist/chunks/{chunk-4RVYYLN7.js → chunk-E4C4N7OV.js} +1 -1
- package/dist/chunks/{chunk-4RVYYLN7.js.map → chunk-E4C4N7OV.js.map} +1 -1
- package/dist/chunks/chunk-ESRGV7DC.js +34 -0
- package/dist/chunks/chunk-ESRGV7DC.js.map +7 -0
- package/dist/chunks/{chunk-VSKGDU73.js → chunk-FKWFR23G.js} +2 -2
- package/dist/chunks/{chunk-E6BU32L2.js → chunk-H5F7M5D3.js} +2 -2
- package/dist/chunks/{chunk-DZPD6H7A.js → chunk-JXYXMP2Q.js} +2 -2
- package/dist/chunks/{chunk-65FLXXMH.js → chunk-KA543BHH.js} +8 -8
- package/dist/chunks/{chunk-MEQ7TAT7.js → chunk-KHMXPPO7.js} +4 -4
- package/dist/chunks/{chunk-G5ET7GFB.js → chunk-KQV5FGSS.js} +5 -5
- package/dist/chunks/{chunk-DPVCHIF7.js → chunk-KRBZO255.js} +1 -1
- package/dist/chunks/{chunk-Y33AS3MY.js → chunk-L2LWCVUF.js} +21 -7
- package/dist/chunks/chunk-L2LWCVUF.js.map +7 -0
- package/dist/chunks/{chunk-EKXQ7ZWV.js → chunk-L5ZJIOEF.js} +4 -4
- package/dist/chunks/{chunk-UUJN5ZCN.js → chunk-LBHVWSUP.js} +2 -2
- package/dist/chunks/{chunk-GL6HUBBX.js → chunk-LKDMUCWA.js} +6 -6
- package/dist/chunks/{chunk-HJCYE2AS.js → chunk-LUZMHHQF.js} +10 -10
- package/dist/chunks/{chunk-MXFN7OSL.js → chunk-MOGUUWKG.js} +1 -1
- package/dist/chunks/{chunk-4UDKRYWZ.js → chunk-N4772IDQ.js} +3 -3
- package/dist/chunks/{chunk-TJMA65RL.js → chunk-N5AH66UG.js} +168 -23
- package/dist/chunks/chunk-N5AH66UG.js.map +7 -0
- package/dist/chunks/{chunk-JJ67KF6A.js → chunk-PTIAF6KF.js} +4 -4
- package/dist/chunks/{chunk-YUJB4WDK.js → chunk-PVMCLI36.js} +1 -1
- package/dist/chunks/{chunk-3TLVYEGW.js → chunk-RTGKCKD3.js} +1 -1
- package/dist/chunks/{chunk-AKC4BUW5.js → chunk-SOBWNYOW.js} +7 -6
- package/dist/chunks/chunk-SOBWNYOW.js.map +7 -0
- package/dist/chunks/{chunk-3DBNJOZI.js → chunk-SUNG5KP5.js} +1 -1
- package/dist/chunks/{chunk-VBGSHKHX.js → chunk-SVRXO73D.js} +16 -13
- package/dist/chunks/chunk-SVRXO73D.js.map +7 -0
- package/dist/chunks/{chunk-Q55CB4Y4.js → chunk-WE7CQGRG.js} +2 -2
- package/dist/chunks/{chunk-V3IXG64X.js → chunk-WOMV4RCI.js} +404 -446
- package/dist/chunks/chunk-WOMV4RCI.js.map +7 -0
- package/dist/chunks/{chunk-ZAT5BSQI.js → chunk-WVJMXIKQ.js} +12 -12
- package/dist/chunks/{chunk-ZAT5BSQI.js.map → chunk-WVJMXIKQ.js.map} +1 -1
- package/dist/chunks/{chunk-DELUVYKS.js → chunk-XVNEJVZC.js} +2 -2
- package/dist/chunks/{chunk-KDY7XYYS.js → chunk-YQ3YJSMI.js} +1 -1
- package/dist/chunks/{chunk-6CNJ3CYQ.js → chunk-YUZBVKVH.js} +3 -3
- package/dist/chunks/{chunk-VJ2QSQ3E.js → chunk-ZXOTOID7.js} +2 -2
- package/dist/chunks/{client-OWTJ7TPE.js → client-QUCHWMEW.js} +5 -5
- package/dist/chunks/{customCommands-FA6HRXXV.js → customCommands-S6YGRUED.js} +5 -5
- package/dist/chunks/{engine-UBCAVO7E.js → engine-FRDEQVDF.js} +17 -17
- package/dist/chunks/{env-JIMGBRE2.js → env-YH77MILU.js} +3 -3
- package/dist/chunks/{kodeAgentSessionLoad-BZRTCPMB.js → kodeAgentSessionLoad-TBPU4TWU.js} +3 -3
- package/dist/chunks/{kodeAgentSessionResume-V3WB3OWQ.js → kodeAgentSessionResume-3CNE5T6N.js} +3 -3
- package/dist/chunks/{kodeHooks-R3YHG4ZI.js → kodeHooks-6SWQE5W7.js} +4 -4
- package/dist/chunks/{llm-C4F2Q7I2.js → llm-PONI6QWH.js} +47 -20
- package/dist/chunks/llm-PONI6QWH.js.map +7 -0
- package/dist/chunks/{llmLazy-IBED5LIH.js → llmLazy-O4T62IIT.js} +1 -1
- package/dist/chunks/{mcpCli-A744Z3FL.js → mcpCli-HIA4I4GG.js} +5 -5
- package/dist/chunks/{mentionProcessor-VV6DN2LJ.js → mentionProcessor-HH4EF7BE.js} +6 -6
- package/dist/chunks/{messages-ZR64JVON.js → messages-WKWCZBGM.js} +1 -1
- package/dist/chunks/{model-NPMMYL2U.js → model-4EIFU5QN.js} +5 -5
- package/dist/chunks/{openai-FEBNBOGM.js → openai-KTBJ2KNZ.js} +5 -5
- package/dist/chunks/{permissions-34CRWMCH.js → permissions-C3N4DKS2.js} +7 -7
- package/dist/chunks/{pluginRuntime-7YBUMVFI.js → pluginRuntime-2FKZLVA5.js} +3 -3
- package/dist/chunks/{pluginValidation-NZ4LOT3Q.js → pluginValidation-X5NZZCFA.js} +7 -7
- package/dist/chunks/registry-3UVW32YF.js +68 -0
- package/dist/chunks/{responsesStreaming-JNGE2P3D.js → responsesStreaming-LB4THIUM.js} +2 -2
- package/dist/chunks/{ripgrep-KGHLK4RO.js → ripgrep-N7O6M4IE.js} +4 -4
- package/dist/chunks/{runNonTextPrintMode-U3TKEYYN.js → runNonTextPrintMode-YFWCUTWZ.js} +12 -12
- package/dist/chunks/server-3CICV7EL.js +59 -0
- package/dist/chunks/server-FRP7OT4H.js +61 -0
- package/dist/chunks/{skillMarketplace-PPPUBC4N.js → skillMarketplace-4Y2H4JFK.js} +4 -4
- package/dist/chunks/{src-TVS6YABL.js → src-IETAWKYR.js} +30 -30
- package/dist/chunks/{src-QST7UD2A.js → src-OB2HE3RX.js} +27 -27
- package/dist/chunks/{src-DB7GKD4L.js → src-Y2IM2VKU.js} +78 -78
- package/dist/chunks/{thinking-O7LIIMFW.js → thinking-XG3FB4HO.js} +6 -6
- package/dist/chunks/{toolPermissionContext-UWGATCUZ.js → toolPermissionContext-RFYFDINH.js} +1 -1
- package/dist/chunks/{toolPermissionSettings-WD7CB37T.js → toolPermissionSettings-EEFURGBO.js} +5 -5
- package/dist/chunks/{useScreenLayout-PKLCMNZD.js → useScreenLayout-OUGQRR4I.js} +2 -2
- package/dist/chunks/{webOnlyMode-GJ6PQCPU.js → webOnlyMode-FRQBIAXG.js} +1 -1
- package/dist/entrypoints/cli.js +1 -1
- package/dist/entrypoints/daemon.js +1 -1
- package/dist/entrypoints/mcp.js +28 -28
- package/dist/index.js +5 -5
- package/dist/sdk/core.cjs +93 -34
- package/dist/sdk/core.cjs.map +3 -3
- package/dist/sdk/core.js +96 -37
- package/dist/sdk/core.js.map +4 -4
- package/dist/sdk/tools.cjs +1787 -1748
- package/dist/sdk/tools.cjs.map +4 -4
- package/dist/sdk/tools.js +1611 -1572
- package/dist/sdk/tools.js.map +4 -4
- package/package.json +1 -1
- package/dist/chunks/REPL-KD7YOSI5.js +0 -78
- package/dist/chunks/chunk-AKC4BUW5.js.map +0 -7
- package/dist/chunks/chunk-KKOES3YK.js.map +0 -7
- package/dist/chunks/chunk-LIBZWJEW.js.map +0 -7
- package/dist/chunks/chunk-LOCXPQNJ.js +0 -20
- package/dist/chunks/chunk-LOCXPQNJ.js.map +0 -7
- package/dist/chunks/chunk-TJMA65RL.js.map +0 -7
- package/dist/chunks/chunk-V3IXG64X.js.map +0 -7
- package/dist/chunks/chunk-VBGSHKHX.js.map +0 -7
- package/dist/chunks/chunk-Y33AS3MY.js.map +0 -7
- package/dist/chunks/chunk-YUXYJB45.js.map +0 -7
- package/dist/chunks/chunk-Z3J3WJ2K.js.map +0 -7
- package/dist/chunks/llm-C4F2Q7I2.js.map +0 -7
- package/dist/chunks/registry-FHPZ36EO.js +0 -68
- package/dist/chunks/server-Y42VR6YJ.js +0 -59
- package/dist/chunks/server-ZSC5G3TU.js +0 -61
- /package/dist/chunks/{Doctor-AES5ON33.js.map → Doctor-TWRIVOVW.js.map} +0 -0
- /package/dist/chunks/{LogList-PQJEJHHE.js.map → LogList-PUTPM24L.js.map} +0 -0
- /package/dist/chunks/{REPL-KD7YOSI5.js.map → REPL-YGIR5VXC.js.map} +0 -0
- /package/dist/chunks/{ResumeConversation-OWQ3DB4M.js.map → ResumeConversation-IJMKQXBU.js.map} +0 -0
- /package/dist/chunks/{ScreenFrame-AGLR6B4D.js.map → ScreenFrame-PQJRZ5DQ.js.map} +0 -0
- /package/dist/chunks/{agentLoader-BMWB4UKI.js.map → agentLoader-GOYNJTAO.js.map} +0 -0
- /package/dist/chunks/{agentsValidate-LSMJSFYW.js.map → agentsValidate-R26AKPAA.js.map} +0 -0
- /package/dist/chunks/{ask-3TSZR6AJ.js.map → ask-6SYVJONJ.js.map} +0 -0
- /package/dist/chunks/{autoUpdater-MEPC7LJF.js.map → autoUpdater-SDLJ5QSH.js.map} +0 -0
- /package/dist/chunks/{chunk-NC3RX5AB.js.map → chunk-2B2TR2S3.js.map} +0 -0
- /package/dist/chunks/{chunk-HDEYMVIJ.js.map → chunk-437YGKVA.js.map} +0 -0
- /package/dist/chunks/{chunk-WGMKKKS2.js.map → chunk-4BBWDSDC.js.map} +0 -0
- /package/dist/chunks/{chunk-PMC3BZ3M.js.map → chunk-5HZWM4JB.js.map} +0 -0
- /package/dist/chunks/{chunk-REQTXUXO.js.map → chunk-5LBRVQT5.js.map} +0 -0
- /package/dist/chunks/{chunk-BEDQTC44.js.map → chunk-5LL33G6X.js.map} +0 -0
- /package/dist/chunks/{chunk-MDCOIZVX.js.map → chunk-6C6VNA2D.js.map} +0 -0
- /package/dist/chunks/{chunk-P77NF36M.js.map → chunk-6CAQXUDY.js.map} +0 -0
- /package/dist/chunks/{chunk-DPQE5NA4.js.map → chunk-7SRIFZDJ.js.map} +0 -0
- /package/dist/chunks/{chunk-TI2CTTMA.js.map → chunk-7ZC22R33.js.map} +0 -0
- /package/dist/chunks/{chunk-EV56PDOI.js.map → chunk-AX3VXMUS.js.map} +0 -0
- /package/dist/chunks/{chunk-5MVUCX6O.js.map → chunk-AZHJLRRP.js.map} +0 -0
- /package/dist/chunks/{chunk-QBW7VU7C.js.map → chunk-DWKF6SQH.js.map} +0 -0
- /package/dist/chunks/{chunk-VSKGDU73.js.map → chunk-FKWFR23G.js.map} +0 -0
- /package/dist/chunks/{chunk-E6BU32L2.js.map → chunk-H5F7M5D3.js.map} +0 -0
- /package/dist/chunks/{chunk-DZPD6H7A.js.map → chunk-JXYXMP2Q.js.map} +0 -0
- /package/dist/chunks/{chunk-65FLXXMH.js.map → chunk-KA543BHH.js.map} +0 -0
- /package/dist/chunks/{chunk-MEQ7TAT7.js.map → chunk-KHMXPPO7.js.map} +0 -0
- /package/dist/chunks/{chunk-G5ET7GFB.js.map → chunk-KQV5FGSS.js.map} +0 -0
- /package/dist/chunks/{chunk-DPVCHIF7.js.map → chunk-KRBZO255.js.map} +0 -0
- /package/dist/chunks/{chunk-EKXQ7ZWV.js.map → chunk-L5ZJIOEF.js.map} +0 -0
- /package/dist/chunks/{chunk-UUJN5ZCN.js.map → chunk-LBHVWSUP.js.map} +0 -0
- /package/dist/chunks/{chunk-GL6HUBBX.js.map → chunk-LKDMUCWA.js.map} +0 -0
- /package/dist/chunks/{chunk-HJCYE2AS.js.map → chunk-LUZMHHQF.js.map} +0 -0
- /package/dist/chunks/{chunk-MXFN7OSL.js.map → chunk-MOGUUWKG.js.map} +0 -0
- /package/dist/chunks/{chunk-4UDKRYWZ.js.map → chunk-N4772IDQ.js.map} +0 -0
- /package/dist/chunks/{chunk-JJ67KF6A.js.map → chunk-PTIAF6KF.js.map} +0 -0
- /package/dist/chunks/{chunk-YUJB4WDK.js.map → chunk-PVMCLI36.js.map} +0 -0
- /package/dist/chunks/{chunk-3TLVYEGW.js.map → chunk-RTGKCKD3.js.map} +0 -0
- /package/dist/chunks/{chunk-3DBNJOZI.js.map → chunk-SUNG5KP5.js.map} +0 -0
- /package/dist/chunks/{chunk-Q55CB4Y4.js.map → chunk-WE7CQGRG.js.map} +0 -0
- /package/dist/chunks/{chunk-DELUVYKS.js.map → chunk-XVNEJVZC.js.map} +0 -0
- /package/dist/chunks/{chunk-KDY7XYYS.js.map → chunk-YQ3YJSMI.js.map} +0 -0
- /package/dist/chunks/{chunk-6CNJ3CYQ.js.map → chunk-YUZBVKVH.js.map} +0 -0
- /package/dist/chunks/{chunk-VJ2QSQ3E.js.map → chunk-ZXOTOID7.js.map} +0 -0
- /package/dist/chunks/{client-OWTJ7TPE.js.map → client-QUCHWMEW.js.map} +0 -0
- /package/dist/chunks/{customCommands-FA6HRXXV.js.map → customCommands-S6YGRUED.js.map} +0 -0
- /package/dist/chunks/{engine-UBCAVO7E.js.map → engine-FRDEQVDF.js.map} +0 -0
- /package/dist/chunks/{env-JIMGBRE2.js.map → env-YH77MILU.js.map} +0 -0
- /package/dist/chunks/{kodeAgentSessionLoad-BZRTCPMB.js.map → kodeAgentSessionLoad-TBPU4TWU.js.map} +0 -0
- /package/dist/chunks/{kodeAgentSessionResume-V3WB3OWQ.js.map → kodeAgentSessionResume-3CNE5T6N.js.map} +0 -0
- /package/dist/chunks/{kodeHooks-R3YHG4ZI.js.map → kodeHooks-6SWQE5W7.js.map} +0 -0
- /package/dist/chunks/{llmLazy-IBED5LIH.js.map → llmLazy-O4T62IIT.js.map} +0 -0
- /package/dist/chunks/{mcpCli-A744Z3FL.js.map → mcpCli-HIA4I4GG.js.map} +0 -0
- /package/dist/chunks/{mentionProcessor-VV6DN2LJ.js.map → mentionProcessor-HH4EF7BE.js.map} +0 -0
- /package/dist/chunks/{messages-ZR64JVON.js.map → messages-WKWCZBGM.js.map} +0 -0
- /package/dist/chunks/{model-NPMMYL2U.js.map → model-4EIFU5QN.js.map} +0 -0
- /package/dist/chunks/{openai-FEBNBOGM.js.map → openai-KTBJ2KNZ.js.map} +0 -0
- /package/dist/chunks/{permissions-34CRWMCH.js.map → permissions-C3N4DKS2.js.map} +0 -0
- /package/dist/chunks/{pluginRuntime-7YBUMVFI.js.map → pluginRuntime-2FKZLVA5.js.map} +0 -0
- /package/dist/chunks/{pluginValidation-NZ4LOT3Q.js.map → pluginValidation-X5NZZCFA.js.map} +0 -0
- /package/dist/chunks/{registry-FHPZ36EO.js.map → registry-3UVW32YF.js.map} +0 -0
- /package/dist/chunks/{responsesStreaming-JNGE2P3D.js.map → responsesStreaming-LB4THIUM.js.map} +0 -0
- /package/dist/chunks/{ripgrep-KGHLK4RO.js.map → ripgrep-N7O6M4IE.js.map} +0 -0
- /package/dist/chunks/{runNonTextPrintMode-U3TKEYYN.js.map → runNonTextPrintMode-YFWCUTWZ.js.map} +0 -0
- /package/dist/chunks/{server-Y42VR6YJ.js.map → server-3CICV7EL.js.map} +0 -0
- /package/dist/chunks/{server-ZSC5G3TU.js.map → server-FRP7OT4H.js.map} +0 -0
- /package/dist/chunks/{skillMarketplace-PPPUBC4N.js.map → skillMarketplace-4Y2H4JFK.js.map} +0 -0
- /package/dist/chunks/{src-TVS6YABL.js.map → src-IETAWKYR.js.map} +0 -0
- /package/dist/chunks/{src-QST7UD2A.js.map → src-OB2HE3RX.js.map} +0 -0
- /package/dist/chunks/{src-DB7GKD4L.js.map → src-Y2IM2VKU.js.map} +0 -0
- /package/dist/chunks/{thinking-O7LIIMFW.js.map → thinking-XG3FB4HO.js.map} +0 -0
- /package/dist/chunks/{toolPermissionContext-UWGATCUZ.js.map → toolPermissionContext-RFYFDINH.js.map} +0 -0
- /package/dist/chunks/{toolPermissionSettings-WD7CB37T.js.map → toolPermissionSettings-EEFURGBO.js.map} +0 -0
- /package/dist/chunks/{useScreenLayout-PKLCMNZD.js.map → useScreenLayout-OUGQRR4I.js.map} +0 -0
- /package/dist/chunks/{webOnlyMode-GJ6PQCPU.js.map → webOnlyMode-FRQBIAXG.js.map} +0 -0
|
@@ -7,13 +7,13 @@ import {
|
|
|
7
7
|
USE_VERTEX,
|
|
8
8
|
getModelManager,
|
|
9
9
|
getVertexRegionForModel
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-FKWFR23G.js";
|
|
11
11
|
import {
|
|
12
12
|
PRODUCT_COMMAND
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SOBWNYOW.js";
|
|
14
14
|
import {
|
|
15
15
|
MACRO
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-6CAQXUDY.js";
|
|
17
17
|
import {
|
|
18
18
|
getAnthropicApiKey,
|
|
19
19
|
getGlobalConfig
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../packages/core/src/types/toolPermissionContext.ts"],
|
|
4
|
-
"sourcesContent": ["import type { PermissionMode } from './PermissionMode'\n\n// Compatibility: mirrors the toolPermissionContext shape and update operations used by legacy transcripts.\n\nexport type ToolPermissionUpdateDestination =\n | 'session'\n | 'localSettings'\n | 'userSettings'\n | 'projectSettings'\n | 'flagSettings'\n | 'policySettings'\n | 'cliArg'\n | 'command'\n\nexport type ToolPermissionRuleBehavior = 'allow' | 'deny' | 'ask'\n\nexport type AdditionalWorkingDirectoryEntry = {\n path: string\n source: ToolPermissionUpdateDestination\n}\n\nexport type ToolPermissionContext = {\n mode: PermissionMode\n additionalWorkingDirectories: Map<string, AdditionalWorkingDirectoryEntry>\n alwaysAllowRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\n alwaysDenyRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\n alwaysAskRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\n isBypassPermissionsModeAvailable: boolean\n}\n\nexport type ToolPermissionContextUpdate =\n | {\n type: 'setMode'\n mode: PermissionMode\n destination: ToolPermissionUpdateDestination\n }\n | {\n type: 'addRules'\n destination: ToolPermissionUpdateDestination\n behavior: ToolPermissionRuleBehavior\n rules: string[]\n }\n | {\n type: 'replaceRules'\n destination: ToolPermissionUpdateDestination\n behavior: ToolPermissionRuleBehavior\n rules: string[]\n }\n | {\n type: 'removeRules'\n destination: ToolPermissionUpdateDestination\n behavior: ToolPermissionRuleBehavior\n rules: string[]\n }\n | {\n type: 'addDirectories'\n destination: ToolPermissionUpdateDestination\n directories: string[]\n }\n | {\n type: 'removeDirectories'\n destination: ToolPermissionUpdateDestination\n directories: string[]\n }\n\nexport function createDefaultToolPermissionContext(options?: {\n isBypassPermissionsModeAvailable?: boolean\n}): ToolPermissionContext {\n return {\n mode: '
|
|
4
|
+
"sourcesContent": ["import type { PermissionMode } from './PermissionMode'\n\n// Compatibility: mirrors the toolPermissionContext shape and update operations used by legacy transcripts.\n\nexport type ToolPermissionUpdateDestination =\n | 'session'\n | 'localSettings'\n | 'userSettings'\n | 'projectSettings'\n | 'flagSettings'\n | 'policySettings'\n | 'cliArg'\n | 'command'\n\nexport type ToolPermissionRuleBehavior = 'allow' | 'deny' | 'ask'\n\nexport type AdditionalWorkingDirectoryEntry = {\n path: string\n source: ToolPermissionUpdateDestination\n}\n\nexport type ToolPermissionContext = {\n mode: PermissionMode\n additionalWorkingDirectories: Map<string, AdditionalWorkingDirectoryEntry>\n alwaysAllowRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\n alwaysDenyRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\n alwaysAskRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\n isBypassPermissionsModeAvailable: boolean\n}\n\nexport type ToolPermissionContextUpdate =\n | {\n type: 'setMode'\n mode: PermissionMode\n destination: ToolPermissionUpdateDestination\n }\n | {\n type: 'addRules'\n destination: ToolPermissionUpdateDestination\n behavior: ToolPermissionRuleBehavior\n rules: string[]\n }\n | {\n type: 'replaceRules'\n destination: ToolPermissionUpdateDestination\n behavior: ToolPermissionRuleBehavior\n rules: string[]\n }\n | {\n type: 'removeRules'\n destination: ToolPermissionUpdateDestination\n behavior: ToolPermissionRuleBehavior\n rules: string[]\n }\n | {\n type: 'addDirectories'\n destination: ToolPermissionUpdateDestination\n directories: string[]\n }\n | {\n type: 'removeDirectories'\n destination: ToolPermissionUpdateDestination\n directories: string[]\n }\n\nexport function createDefaultToolPermissionContext(options?: {\n isBypassPermissionsModeAvailable?: boolean\n}): ToolPermissionContext {\n return {\n mode: 'yolo',\n additionalWorkingDirectories: new Map(),\n alwaysAllowRules: {},\n alwaysDenyRules: {},\n alwaysAskRules: {},\n isBypassPermissionsModeAvailable:\n options?.isBypassPermissionsModeAvailable ?? false,\n }\n}\n\nexport function applyToolPermissionContextUpdate(\n context: ToolPermissionContext,\n update: ToolPermissionContextUpdate,\n): ToolPermissionContext {\n switch (update.type) {\n case 'setMode':\n return { ...context, mode: update.mode }\n case 'addRules': {\n const key =\n update.behavior === 'allow'\n ? 'alwaysAllowRules'\n : update.behavior === 'deny'\n ? 'alwaysDenyRules'\n : 'alwaysAskRules'\n const existing = context[key][update.destination] ?? []\n return {\n ...context,\n [key]: {\n ...context[key],\n [update.destination]: [...existing, ...update.rules],\n },\n }\n }\n case 'replaceRules': {\n const key =\n update.behavior === 'allow'\n ? 'alwaysAllowRules'\n : update.behavior === 'deny'\n ? 'alwaysDenyRules'\n : 'alwaysAskRules'\n return {\n ...context,\n [key]: {\n ...context[key],\n [update.destination]: [...update.rules],\n },\n }\n }\n case 'removeRules': {\n const key =\n update.behavior === 'allow'\n ? 'alwaysAllowRules'\n : update.behavior === 'deny'\n ? 'alwaysDenyRules'\n : 'alwaysAskRules'\n const current = context[key][update.destination] ?? []\n const toRemove = new Set(update.rules)\n const next = current.filter(rule => !toRemove.has(rule))\n return {\n ...context,\n [key]: {\n ...context[key],\n [update.destination]: next,\n },\n }\n }\n case 'addDirectories': {\n const nextDirs = new Map(context.additionalWorkingDirectories)\n for (const dir of update.directories) {\n nextDirs.set(dir, { path: dir, source: update.destination })\n }\n return { ...context, additionalWorkingDirectories: nextDirs }\n }\n case 'removeDirectories': {\n const nextDirs = new Map(context.additionalWorkingDirectories)\n for (const dir of update.directories) {\n nextDirs.delete(dir)\n }\n return { ...context, additionalWorkingDirectories: nextDirs }\n }\n default:\n return context\n }\n}\n\nexport function applyToolPermissionContextUpdates(\n context: ToolPermissionContext,\n updates: ToolPermissionContextUpdate[],\n): ToolPermissionContext {\n let next = context\n for (const update of updates) {\n next = applyToolPermissionContextUpdate(next, update)\n }\n return next\n}\n\nexport function isPersistableToolPermissionDestination(\n destination: ToolPermissionUpdateDestination,\n): destination is 'localSettings' | 'userSettings' | 'projectSettings' {\n return (\n destination === 'localSettings' ||\n destination === 'userSettings' ||\n destination === 'projectSettings'\n )\n}\n\nexport function canUserModifyToolPermissionUpdate(\n update: ToolPermissionContextUpdate,\n): boolean {\n if (update.destination !== 'policySettings') return true\n // Managed policy settings are read-only (at least for deletion/overwrite).\n if (update.type === 'removeRules') return false\n if (update.type === 'replaceRules') return false\n if (update.type === 'removeDirectories') return false\n return true\n}\n"],
|
|
5
5
|
"mappings": ";AAiEO,SAAS,mCAAmC,SAEzB;AACxB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,8BAA8B,oBAAI,IAAI;AAAA,IACtC,kBAAkB,CAAC;AAAA,IACnB,iBAAiB,CAAC;AAAA,IAClB,gBAAgB,CAAC;AAAA,IACjB,kCACE,SAAS,oCAAoC;AAAA,EACjD;AACF;AAEO,SAAS,iCACd,SACA,QACuB;AACvB,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH,aAAO,EAAE,GAAG,SAAS,MAAM,OAAO,KAAK;AAAA,IACzC,KAAK,YAAY;AACf,YAAM,MACJ,OAAO,aAAa,UAChB,qBACA,OAAO,aAAa,SAClB,oBACA;AACR,YAAM,WAAW,QAAQ,GAAG,EAAE,OAAO,WAAW,KAAK,CAAC;AACtD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,GAAG,GAAG;AAAA,UACL,GAAG,QAAQ,GAAG;AAAA,UACd,CAAC,OAAO,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,OAAO,KAAK;AAAA,QACrD;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,gBAAgB;AACnB,YAAM,MACJ,OAAO,aAAa,UAChB,qBACA,OAAO,aAAa,SAClB,oBACA;AACR,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,GAAG,GAAG;AAAA,UACL,GAAG,QAAQ,GAAG;AAAA,UACd,CAAC,OAAO,WAAW,GAAG,CAAC,GAAG,OAAO,KAAK;AAAA,QACxC;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,eAAe;AAClB,YAAM,MACJ,OAAO,aAAa,UAChB,qBACA,OAAO,aAAa,SAClB,oBACA;AACR,YAAM,UAAU,QAAQ,GAAG,EAAE,OAAO,WAAW,KAAK,CAAC;AACrD,YAAM,WAAW,IAAI,IAAI,OAAO,KAAK;AACrC,YAAM,OAAO,QAAQ,OAAO,UAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;AACvD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,GAAG,GAAG;AAAA,UACL,GAAG,QAAQ,GAAG;AAAA,UACd,CAAC,OAAO,WAAW,GAAG;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,kBAAkB;AACrB,YAAM,WAAW,IAAI,IAAI,QAAQ,4BAA4B;AAC7D,iBAAW,OAAO,OAAO,aAAa;AACpC,iBAAS,IAAI,KAAK,EAAE,MAAM,KAAK,QAAQ,OAAO,YAAY,CAAC;AAAA,MAC7D;AACA,aAAO,EAAE,GAAG,SAAS,8BAA8B,SAAS;AAAA,IAC9D;AAAA,IACA,KAAK,qBAAqB;AACxB,YAAM,WAAW,IAAI,IAAI,QAAQ,4BAA4B;AAC7D,iBAAW,OAAO,OAAO,aAAa;AACpC,iBAAS,OAAO,GAAG;AAAA,MACrB;AACA,aAAO,EAAE,GAAG,SAAS,8BAA8B,SAAS;AAAA,IAC9D;AAAA,IACA;AACE,aAAO;AAAA,EACX;AACF;AAEO,SAAS,kCACd,SACA,SACuB;AACvB,MAAI,OAAO;AACX,aAAW,UAAU,SAAS;AAC5B,WAAO,iCAAiC,MAAM,MAAM;AAAA,EACtD;AACA,SAAO;AACT;AAEO,SAAS,uCACd,aACqE;AACrE,SACE,gBAAgB,mBAChB,gBAAgB,kBAChB,gBAAgB;AAEpB;AAEO,SAAS,kCACd,QACS;AACT,MAAI,OAAO,gBAAgB,iBAAkB,QAAO;AAEpD,MAAI,OAAO,SAAS,cAAe,QAAO;AAC1C,MAAI,OAAO,SAAS,eAAgB,QAAO;AAC3C,MAAI,OAAO,SAAS,oBAAqB,QAAO;AAChD,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// packages/core/src/utils/requestStatus.ts
|
|
2
|
+
var current = { kind: "idle", updatedAt: Date.now() };
|
|
3
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
4
|
+
function getRequestStatus() {
|
|
5
|
+
return current;
|
|
6
|
+
}
|
|
7
|
+
function setRequestStatus(status) {
|
|
8
|
+
current = { ...current, ...status, updatedAt: Date.now() };
|
|
9
|
+
for (const listener of listeners) listener(current);
|
|
10
|
+
}
|
|
11
|
+
function setRequestInputTokens(inputTokens) {
|
|
12
|
+
if (current.kind !== "idle") {
|
|
13
|
+
current = { ...current, inputTokens, outputTokens: void 0, updatedAt: Date.now() };
|
|
14
|
+
for (const listener of listeners) listener(current);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function updateRequestTokens(outputTokens) {
|
|
18
|
+
if (current.kind !== "idle") {
|
|
19
|
+
current = { ...current, outputTokens, updatedAt: Date.now() };
|
|
20
|
+
for (const listener of listeners) listener(current);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function subscribeRequestStatus(listener) {
|
|
24
|
+
listeners.add(listener);
|
|
25
|
+
return () => listeners.delete(listener);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
getRequestStatus,
|
|
30
|
+
setRequestStatus,
|
|
31
|
+
setRequestInputTokens,
|
|
32
|
+
updateRequestTokens,
|
|
33
|
+
subscribeRequestStatus
|
|
34
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/core/src/utils/requestStatus.ts"],
|
|
4
|
+
"sourcesContent": ["export type RequestStatusKind = 'idle' | 'thinking' | 'streaming' | 'tool'\n\nexport type RequestStatus = {\n kind: RequestStatusKind\n detail?: string\n updatedAt: number\n inputTokens?: number\n outputTokens?: number\n thinkingDurationMs?: number\n}\n\nlet current: RequestStatus = { kind: 'idle', updatedAt: Date.now() }\nconst listeners = new Set<(status: RequestStatus) => void>()\n\nexport function getRequestStatus(): RequestStatus {\n return current\n}\n\nexport function setRequestStatus(\n status: Omit<RequestStatus, 'updatedAt'>,\n): void {\n current = { ...current, ...status, updatedAt: Date.now() }\n for (const listener of listeners) listener(current)\n}\n\nexport function setRequestInputTokens(inputTokens: number): void {\n if (current.kind !== 'idle') {\n current = { ...current, inputTokens, outputTokens: undefined, updatedAt: Date.now() }\n for (const listener of listeners) listener(current)\n }\n}\n\nexport function updateRequestTokens(outputTokens: number): void {\n if (current.kind !== 'idle') {\n current = { ...current, outputTokens, updatedAt: Date.now() }\n for (const listener of listeners) listener(current)\n }\n}\n\nexport function subscribeRequestStatus(\n listener: (status: RequestStatus) => void,\n): () => void {\n listeners.add(listener)\n return () => listeners.delete(listener)\n}\n"],
|
|
5
|
+
"mappings": ";AAWA,IAAI,UAAyB,EAAE,MAAM,QAAQ,WAAW,KAAK,IAAI,EAAE;AACnE,IAAM,YAAY,oBAAI,IAAqC;AAEpD,SAAS,mBAAkC;AAChD,SAAO;AACT;AAEO,SAAS,iBACd,QACM;AACN,YAAU,EAAE,GAAG,SAAS,GAAG,QAAQ,WAAW,KAAK,IAAI,EAAE;AACzD,aAAW,YAAY,UAAW,UAAS,OAAO;AACpD;AAEO,SAAS,sBAAsB,aAA2B;AAC/D,MAAI,QAAQ,SAAS,QAAQ;AAC3B,cAAU,EAAE,GAAG,SAAS,aAAa,cAAc,QAAW,WAAW,KAAK,IAAI,EAAE;AACpF,eAAW,YAAY,UAAW,UAAS,OAAO;AAAA,EACpD;AACF;AAEO,SAAS,oBAAoB,cAA4B;AAC9D,MAAI,QAAQ,SAAS,QAAQ;AAC3B,cAAU,EAAE,GAAG,SAAS,cAAc,WAAW,KAAK,IAAI,EAAE;AAC5D,eAAW,YAAY,UAAW,UAAS,OAAO;AAAA,EACpD;AACF;AAEO,SAAS,uBACd,UACY;AACZ,YAAU,IAAI,QAAQ;AACtB,SAAO,MAAM,UAAU,OAAO,QAAQ;AACxC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
setInkInstanceForStdout
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LUZMHHQF.js";
|
|
4
4
|
import {
|
|
5
5
|
disableLineWrapping,
|
|
6
6
|
ensureTuiStdioPatched
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XVNEJVZC.js";
|
|
8
8
|
import {
|
|
9
9
|
getGlobalConfigCached
|
|
10
10
|
} from "./chunk-EYEZUJGL.js";
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
} from "./chunk-UINOTNT3.js";
|
|
8
8
|
import {
|
|
9
9
|
debug
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YQ3YJSMI.js";
|
|
11
11
|
import {
|
|
12
12
|
logError
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SOBWNYOW.js";
|
|
14
14
|
import {
|
|
15
15
|
getKodeRoot
|
|
16
16
|
} from "./chunk-KGE74PKI.js";
|
|
@@ -2,16 +2,16 @@ import {
|
|
|
2
2
|
buildSystemPromptForSession,
|
|
3
3
|
getSessionContext,
|
|
4
4
|
runTurn
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WE7CQGRG.js";
|
|
6
6
|
import {
|
|
7
7
|
isUuid
|
|
8
8
|
} from "./chunk-UNOY3VJ2.js";
|
|
9
9
|
import {
|
|
10
10
|
listKodeAgentSessions
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-AX3VXMUS.js";
|
|
12
12
|
import {
|
|
13
13
|
getTools
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WOMV4RCI.js";
|
|
15
15
|
import {
|
|
16
16
|
kodeMessageToSdkMessage,
|
|
17
17
|
makeSdkInitMessage,
|
|
@@ -19,21 +19,21 @@ import {
|
|
|
19
19
|
} from "./chunk-XX7Z3ORN.js";
|
|
20
20
|
import {
|
|
21
21
|
loadKodeAgentSessionMessages
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-PVMCLI36.js";
|
|
23
23
|
import {
|
|
24
24
|
grantReadPermissionForOriginalDir,
|
|
25
25
|
hasPermissionsToUseTool,
|
|
26
26
|
savePermission
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-N5AH66UG.js";
|
|
28
28
|
import {
|
|
29
29
|
resolveToolDescription
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-DWKF6SQH.js";
|
|
31
31
|
import {
|
|
32
32
|
setSessionId
|
|
33
33
|
} from "./chunk-UINOTNT3.js";
|
|
34
34
|
import {
|
|
35
35
|
loadToolPermissionContextFromDisk
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-LBHVWSUP.js";
|
|
37
37
|
import {
|
|
38
38
|
setKodeAgentSessionForkInfo
|
|
39
39
|
} from "./chunk-RPKUSL6P.js";
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
REJECT_MESSAGE_WITH_FEEDBACK_PREFIX,
|
|
43
43
|
createAssistantMessage,
|
|
44
44
|
createUserMessage
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-L2LWCVUF.js";
|
|
46
46
|
import {
|
|
47
47
|
getTotalCost
|
|
48
48
|
} from "./chunk-GJYXZ5IL.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
INTERRUPT_MESSAGE,
|
|
3
3
|
INTERRUPT_MESSAGE_FOR_TOOL_USE
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-L2LWCVUF.js";
|
|
5
5
|
import {
|
|
6
6
|
getSessionStartAdditionalContext
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5LL33G6X.js";
|
|
8
8
|
import {
|
|
9
9
|
PRODUCT_COMMAND,
|
|
10
10
|
PRODUCT_NAME,
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
env,
|
|
13
13
|
execFileNoThrow,
|
|
14
14
|
logError
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-SOBWNYOW.js";
|
|
16
16
|
import {
|
|
17
17
|
getCwd
|
|
18
18
|
} from "./chunk-5ARRC2T2.js";
|
|
19
19
|
import {
|
|
20
20
|
MACRO
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-6CAQXUDY.js";
|
|
22
22
|
import {
|
|
23
23
|
getKodeAgentSessionId
|
|
24
24
|
} from "./chunk-SWQV4KSY.js";
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getProjectDocs
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KHMXPPO7.js";
|
|
4
4
|
import {
|
|
5
5
|
generateSystemReminders
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JXYXMP2Q.js";
|
|
7
7
|
import {
|
|
8
8
|
getModelManager
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FKWFR23G.js";
|
|
10
10
|
import {
|
|
11
11
|
debug
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YQ3YJSMI.js";
|
|
13
13
|
import {
|
|
14
14
|
logError
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-SOBWNYOW.js";
|
|
16
16
|
|
|
17
17
|
// packages/core/src/ai/llm/kodeContext.ts
|
|
18
18
|
var KodeContextManager = class _KodeContextManager {
|
|
@@ -19,7 +19,7 @@ var SYNTHETIC_ASSISTANT_MESSAGES = /* @__PURE__ */ new Set([
|
|
|
19
19
|
]);
|
|
20
20
|
|
|
21
21
|
// packages/core/src/engine/messages/create.ts
|
|
22
|
-
import { randomUUID } from "crypto";
|
|
22
|
+
import { createHash, randomUUID } from "crypto";
|
|
23
23
|
|
|
24
24
|
// packages/core/src/ai/llm/constants.ts
|
|
25
25
|
var API_ERROR_MESSAGE_PREFIX = "API Error";
|
|
@@ -30,6 +30,10 @@ var NO_CONTENT_MESSAGE = "(no content)";
|
|
|
30
30
|
var MAIN_QUERY_TEMPERATURE = 1;
|
|
31
31
|
|
|
32
32
|
// packages/core/src/engine/messages/create.ts
|
|
33
|
+
function stableUuidFromSeed(seed) {
|
|
34
|
+
const hex = createHash("sha256").update(seed).digest("hex").slice(0, 32);
|
|
35
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
|
|
36
|
+
}
|
|
33
37
|
function baseCreateAssistantMessage(content, extra) {
|
|
34
38
|
return {
|
|
35
39
|
type: "assistant",
|
|
@@ -95,7 +99,7 @@ function createProgressMessage(toolUseID, siblingToolUseIDs, content, normalized
|
|
|
95
99
|
siblingToolUseIDs,
|
|
96
100
|
tools,
|
|
97
101
|
toolUseID,
|
|
98
|
-
uuid:
|
|
102
|
+
uuid: stableUuidFromSeed(`progress:${toolUseID}`)
|
|
99
103
|
};
|
|
100
104
|
}
|
|
101
105
|
function createToolResultStopMessage(toolUseID) {
|
|
@@ -152,9 +156,9 @@ function extractTag(html, tagName) {
|
|
|
152
156
|
}
|
|
153
157
|
|
|
154
158
|
// packages/core/src/engine/messages/normalize.ts
|
|
155
|
-
import { createHash, randomUUID as randomUUID2 } from "crypto";
|
|
156
|
-
function
|
|
157
|
-
const hex =
|
|
159
|
+
import { createHash as createHash2, randomUUID as randomUUID2 } from "crypto";
|
|
160
|
+
function stableUuidFromSeed2(seed) {
|
|
161
|
+
const hex = createHash2("sha256").update(seed).digest("hex").slice(0, 32);
|
|
158
162
|
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
|
|
159
163
|
}
|
|
160
164
|
function isNotEmptyMessage(message) {
|
|
@@ -188,13 +192,23 @@ function normalizeMessages(messages) {
|
|
|
188
192
|
}
|
|
189
193
|
const contentBlocks = message.message.content.filter(
|
|
190
194
|
(block) => !(block.type === "thinking" && !(typeof block.thinking === "string" && block.thinking.trim().length > 0))
|
|
191
|
-
)
|
|
195
|
+
).sort((a, b) => {
|
|
196
|
+
const order = {
|
|
197
|
+
thinking: 0,
|
|
198
|
+
redacted_thinking: 1,
|
|
199
|
+
text: 2,
|
|
200
|
+
tool_use: 3,
|
|
201
|
+
server_tool_use: 3,
|
|
202
|
+
mcp_tool_use: 3
|
|
203
|
+
};
|
|
204
|
+
return (order[a.type] ?? 2) - (order[b.type] ?? 2);
|
|
205
|
+
});
|
|
192
206
|
return contentBlocks.map((block, blockIndex) => {
|
|
193
207
|
const msgRecord = message;
|
|
194
208
|
const baseSeed = typeof msgRecord.uuid === "string" ? msgRecord.uuid : String(msgRecord.message?.id ?? randomUUID2());
|
|
195
209
|
return {
|
|
196
210
|
type: "assistant",
|
|
197
|
-
uuid:
|
|
211
|
+
uuid: stableUuidFromSeed2(`${baseSeed}:${blockIndex}`),
|
|
198
212
|
message: {
|
|
199
213
|
...message.message,
|
|
200
214
|
content: [block]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/core/src/engine/messages/constants.ts", "../../packages/core/src/engine/messages/create.ts", "../../packages/core/src/ai/llm/constants.ts", "../../packages/core/src/engine/messages/tags.ts", "../../packages/core/src/engine/messages/normalize.ts", "../../packages/core/src/engine/messages/toolUse.ts", "../../packages/core/src/engine/messages/api.ts"],
|
|
4
|
+
"sourcesContent": ["export const INTERRUPT_MESSAGE = '[Request interrupted by user]'\nexport const INTERRUPT_MESSAGE_FOR_TOOL_USE =\n '[Request interrupted by user for tool use]'\nexport const CANCEL_MESSAGE =\n \"The user doesn't want to take this action right now. STOP what you are doing and wait for the user to tell you how to proceed.\"\nexport const REJECT_MESSAGE =\n \"The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.\"\nexport const REJECT_MESSAGE_WITH_FEEDBACK_PREFIX = `The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). To tell you how to proceed, the user said:\\n`\nexport const REJECTED_PLAN_PREFIX = `The agent proposed a plan that was rejected by the user. The user chose to stay in plan mode rather than proceed with implementation.\\n\\nRejected plan:\\n`\nexport const NO_RESPONSE_REQUESTED = 'No response requested.'\n\nexport const SYNTHETIC_ASSISTANT_MESSAGES = new Set([\n INTERRUPT_MESSAGE,\n INTERRUPT_MESSAGE_FOR_TOOL_USE,\n CANCEL_MESSAGE,\n REJECT_MESSAGE,\n NO_RESPONSE_REQUESTED,\n])\n", "import { createHash, randomUUID } from 'crypto'\nimport type { UUID } from 'crypto'\n\nimport type {\n ContentBlock,\n ContentBlockParam,\n ToolResultBlockParam,\n} from '@anthropic-ai/sdk/resources/index.mjs'\n\nimport { NO_CONTENT_MESSAGE } from '#core/ai/constants'\nimport type { Tool } from '#core/tooling/Tool'\nimport type {\n AssistantMessage,\n Message,\n ProgressMessage,\n UserMessage,\n} from '#core/query'\n\nimport { CANCEL_MESSAGE } from './constants'\nimport type { NormalizedMessage } from './normalize'\n\nfunction stableUuidFromSeed(seed: string): UUID {\n const hex = createHash('sha256').update(seed).digest('hex').slice(0, 32)\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}` as UUID\n}\n\nfunction baseCreateAssistantMessage(\n content: ContentBlock[],\n extra?: Partial<AssistantMessage>,\n): AssistantMessage {\n return {\n type: 'assistant',\n costUSD: 0,\n durationMs: 0,\n uuid: randomUUID(),\n message: {\n id: randomUUID(),\n model: '<synthetic>',\n role: 'assistant',\n stop_reason: 'stop_sequence',\n stop_sequence: '',\n type: 'message',\n usage: {\n input_tokens: 0,\n output_tokens: 0,\n cache_creation_input_tokens: 0,\n cache_read_input_tokens: 0,\n },\n content,\n },\n ...extra,\n }\n}\n\nexport function createAssistantMessage(content: string): AssistantMessage {\n return baseCreateAssistantMessage([\n {\n type: 'text' as const,\n text: content === '' ? NO_CONTENT_MESSAGE : content,\n citations: [],\n },\n ])\n}\n\nexport function createAssistantAPIErrorMessage(\n content: string,\n): AssistantMessage {\n return baseCreateAssistantMessage(\n [\n {\n type: 'text' as const,\n text: content === '' ? NO_CONTENT_MESSAGE : content,\n citations: [],\n },\n ],\n { isApiErrorMessage: true },\n )\n}\n\nexport type FullToolUseResult = {\n data: unknown\n resultForAssistant: ToolResultBlockParam['content']\n newMessages?: Message[]\n contextModifier?: { modifyContext: (ctx: any) => any }\n}\n\nexport function createUserMessage(\n content: string | ContentBlockParam[],\n toolUseResult?: FullToolUseResult,\n): UserMessage {\n const m: UserMessage = {\n type: 'user',\n message: {\n role: 'user',\n content,\n },\n uuid: randomUUID(),\n toolUseResult,\n }\n return m\n}\n\nexport function createProgressMessage(\n toolUseID: string,\n siblingToolUseIDs: Set<string>,\n content: AssistantMessage,\n normalizedMessages: NormalizedMessage[],\n tools: Tool[],\n): ProgressMessage {\n return {\n type: 'progress',\n content,\n normalizedMessages,\n siblingToolUseIDs,\n tools,\n toolUseID,\n uuid: stableUuidFromSeed(`progress:${toolUseID}`),\n }\n}\n\nexport function createToolResultStopMessage(\n toolUseID: string,\n): ToolResultBlockParam {\n return {\n type: 'tool_result',\n content: CANCEL_MESSAGE,\n is_error: true,\n tool_use_id: toolUseID,\n }\n}\n", "export const API_ERROR_MESSAGE_PREFIX = 'API Error'\nexport const PROMPT_TOO_LONG_ERROR_MESSAGE = 'Prompt is too long'\nexport const CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE = 'Credit balance is too low'\nexport const INVALID_API_KEY_ERROR_MESSAGE =\n 'Invalid API key \u00B7 Please run /login'\nexport const NO_CONTENT_MESSAGE = '(no content)'\n\n// Keep at 1 for more variation in binary feedback sampling (matches existing behavior).\nexport const MAIN_QUERY_TEMPERATURE = 1\n", "import type { Message } from '#core/query'\n\nexport function extractTagFromMessage(\n message: Message,\n tagName: string,\n): string | null {\n if (message.type === 'progress') {\n return null\n }\n if (typeof message.message.content !== 'string') {\n return null\n }\n return extractTag(message.message.content, tagName)\n}\n\nexport function extractTag(html: string, tagName: string): string | null {\n if (!html.trim() || !tagName.trim()) {\n return null\n }\n\n const escapedTag = tagName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n const pattern = new RegExp(\n `<${escapedTag}(?:\\\\s+[^>]*)?>` + '([\\\\s\\\\S]*?)' + `<\\\\/${escapedTag}>`,\n 'gi',\n )\n\n let match\n let depth = 0\n let lastIndex = 0\n const openingTag = new RegExp(`<${escapedTag}(?:\\\\s+[^>]*?)?>`, 'gi')\n const closingTag = new RegExp(`<\\\\/${escapedTag}>`, 'gi')\n\n while ((match = pattern.exec(html)) !== null) {\n const content = match[1]\n const beforeMatch = html.slice(lastIndex, match.index)\n\n depth = 0\n\n openingTag.lastIndex = 0\n while (openingTag.exec(beforeMatch) !== null) {\n depth++\n }\n\n closingTag.lastIndex = 0\n while (closingTag.exec(beforeMatch) !== null) {\n depth--\n }\n\n if (depth === 0 && content) {\n return content\n }\n\n lastIndex = match.index + match[0].length\n }\n\n return null\n}\n", "import { createHash, randomUUID } from 'crypto'\nimport type { UUID } from 'crypto'\n\nimport type {\n ImageBlockParam,\n TextBlockParam,\n ToolResultBlockParam,\n ToolUseBlockParam,\n} from '@anthropic-ai/sdk/resources/index.mjs'\n\nimport { NO_CONTENT_MESSAGE } from '#core/ai/constants'\nimport type { AssistantMessage, Message, ProgressMessage } from '#core/query'\n\nimport { INTERRUPT_MESSAGE_FOR_TOOL_USE } from './constants'\n\nfunction stableUuidFromSeed(seed: string): UUID {\n const hex = createHash('sha256').update(seed).digest('hex').slice(0, 32)\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}` as UUID\n}\n\nexport function isNotEmptyMessage(message: Message): boolean {\n if (message.type === 'progress') {\n return true\n }\n\n if (typeof message.message.content === 'string') {\n return message.message.content.trim().length > 0\n }\n\n if (message.message.content.length === 0) {\n return false\n }\n\n if (message.message.content.length > 1) {\n return true\n }\n\n if (message.message.content[0]!.type !== 'text') {\n return true\n }\n\n return (\n message.message.content[0]!.text.trim().length > 0 &&\n message.message.content[0]!.text !== NO_CONTENT_MESSAGE &&\n message.message.content[0]!.text !== INTERRUPT_MESSAGE_FOR_TOOL_USE\n )\n}\n\ntype NormalizedUserMessage = {\n message: {\n content: [\n | TextBlockParam\n | ImageBlockParam\n | ToolUseBlockParam\n | ToolResultBlockParam,\n ]\n role: 'user'\n }\n type: 'user'\n uuid: UUID\n}\n\nexport type NormalizedMessage =\n | NormalizedUserMessage\n | AssistantMessage\n | ProgressMessage\n\nexport function normalizeMessages(messages: Message[]): NormalizedMessage[] {\n return messages.flatMap(message => {\n if (message.type === 'progress') {\n return [message] as NormalizedMessage[]\n }\n if (typeof message.message.content === 'string') {\n return [message] as NormalizedMessage[]\n }\n\n // User messages should not be split by content blocks - return as single message\n if (message.type === 'user') {\n return [message] as NormalizedMessage[]\n }\n\n // Only assistant messages need to be split by content blocks\n // Sort blocks so thinking/text appear before tool_use (for better UX)\n const contentBlocks = message.message.content\n .filter(\n block =>\n !(\n block.type === 'thinking' &&\n !(\n typeof (block as { thinking?: unknown }).thinking === 'string' &&\n (block as { thinking: string }).thinking.trim().length > 0\n )\n ),\n )\n .sort((a, b) => {\n const order: Record<string, number> = {\n thinking: 0,\n redacted_thinking: 1,\n text: 2,\n tool_use: 3,\n server_tool_use: 3,\n mcp_tool_use: 3,\n }\n return (order[a.type] ?? 2) - (order[b.type] ?? 2)\n })\n\n return contentBlocks.map((block, blockIndex) => {\n const msgRecord = message as {\n uuid?: unknown\n message?: { id?: unknown }\n }\n const baseSeed =\n typeof msgRecord.uuid === 'string'\n ? msgRecord.uuid\n : String(msgRecord.message?.id ?? randomUUID())\n return {\n type: 'assistant',\n uuid: stableUuidFromSeed(`${baseSeed}:${blockIndex}`),\n message: {\n ...message.message,\n content: [block],\n },\n costUSD:\n (message as AssistantMessage).costUSD / contentBlocks.length,\n durationMs: (message as AssistantMessage).durationMs,\n } as NormalizedMessage\n })\n })\n}\n", "import { memoize } from 'lodash-es'\n\nimport type {\n ToolResultBlockParam,\n ToolUseBlockParam,\n} from '@anthropic-ai/sdk/resources/index.mjs'\n\nimport type { AssistantMessage, Message, ProgressMessage } from '#core/query'\n\nimport type { NormalizedMessage } from './normalize'\nimport { extractTag } from './tags'\n\ntype ToolUseRequestMessage = AssistantMessage & {\n message: { content: any[] }\n}\n\ntype ToolUseLikeBlockParam = ToolUseBlockParam & {\n type: 'tool_use' | 'server_tool_use' | 'mcp_tool_use'\n}\n\nfunction isToolUseLikeBlockParam(block: any): block is ToolUseLikeBlockParam {\n return (\n block &&\n typeof block === 'object' &&\n (block.type === 'tool_use' ||\n block.type === 'server_tool_use' ||\n block.type === 'mcp_tool_use') &&\n typeof block.id === 'string'\n )\n}\n\nfunction isToolUseRequestMessage(\n message: Message,\n): message is ToolUseRequestMessage {\n return (\n message.type === 'assistant' &&\n 'costUSD' in message &&\n message.message.content.some(isToolUseLikeBlockParam)\n )\n}\n\nexport function reorderMessages(\n messages: NormalizedMessage[],\n): NormalizedMessage[] {\n const ms: NormalizedMessage[] = []\n const toolUseMessages: ToolUseRequestMessage[] = []\n\n for (const message of messages) {\n if (isToolUseRequestMessage(message)) {\n toolUseMessages.push(message)\n }\n\n if (message.type === 'progress') {\n const existingProgressMessage = ms.find(\n _ => _.type === 'progress' && _.toolUseID === message.toolUseID,\n )\n if (existingProgressMessage) {\n ms[ms.indexOf(existingProgressMessage)] = message\n continue\n }\n const toolUseMessage = toolUseMessages.find(\n _ => _.message.content[0]?.id === message.toolUseID,\n )\n if (toolUseMessage) {\n ms.splice(ms.indexOf(toolUseMessage) + 1, 0, message)\n continue\n }\n }\n\n if (\n message.type === 'user' &&\n Array.isArray(message.message.content) &&\n message.message.content[0]?.type === 'tool_result'\n ) {\n const toolUseID = (message.message.content[0] as ToolResultBlockParam)\n ?.tool_use_id\n\n const lastProgressMessage = ms.find(\n _ => _.type === 'progress' && _.toolUseID === toolUseID,\n )\n if (lastProgressMessage) {\n ms.splice(ms.indexOf(lastProgressMessage) + 1, 0, message)\n continue\n }\n\n const toolUseMessage = toolUseMessages.find(\n _ => _.message.content[0]?.id === toolUseID,\n )\n if (toolUseMessage) {\n ms.splice(ms.indexOf(toolUseMessage) + 1, 0, message)\n continue\n }\n } else {\n ms.push(message)\n }\n }\n\n return ms\n}\n\nconst getToolResultIDs = memoize(\n (normalizedMessages: NormalizedMessage[]): { [toolUseID: string]: boolean } =>\n Object.fromEntries(\n normalizedMessages.flatMap(_ =>\n _.type === 'user' && _.message.content[0]?.type === 'tool_result'\n ? [\n [\n _.message.content[0]!.tool_use_id,\n _.message.content[0]!.is_error ?? false,\n ],\n ]\n : ([] as [string, boolean][]),\n ),\n ),\n)\n\nexport function getUnresolvedToolUseIDs(\n normalizedMessages: NormalizedMessage[],\n): Set<string> {\n const toolResults = getToolResultIDs(normalizedMessages)\n return new Set(\n normalizedMessages\n .filter(\n (\n _,\n ): _ is AssistantMessage & {\n message: { content: [ToolUseLikeBlockParam] }\n } =>\n _.type === 'assistant' &&\n Array.isArray(_.message.content) &&\n isToolUseLikeBlockParam(_.message.content[0]) &&\n !(_.message.content[0].id in toolResults),\n )\n .map(_ => _.message.content[0].id),\n )\n}\n\nexport function getInProgressToolUseIDs(\n normalizedMessages: NormalizedMessage[],\n): Set<string> {\n const unresolvedToolUseIDs = getUnresolvedToolUseIDs(normalizedMessages)\n\n function isQueuedWaitingProgressMessage(message: NormalizedMessage): boolean {\n if (message.type !== 'progress') return false\n const firstBlock = message.content.message.content[0]\n if (!firstBlock || firstBlock.type !== 'text') return false\n const rawText = String(firstBlock.text ?? '')\n const text = rawText.startsWith('<tool-progress>')\n ? (extractTag(rawText, 'tool-progress') ?? rawText)\n : rawText\n return text.trim() === 'Waiting\u2026'\n }\n\n const toolUseIDsThatHaveProgressMessages = new Set(\n normalizedMessages\n .filter(\n (_): _ is ProgressMessage =>\n _.type === 'progress' && !isQueuedWaitingProgressMessage(_),\n )\n .map(_ => _.toolUseID),\n )\n return new Set(\n (\n normalizedMessages.filter(_ => {\n if (_.type !== 'assistant') {\n return false\n }\n const firstBlock = _.message.content[0]\n if (!isToolUseLikeBlockParam(firstBlock)) return false\n const toolUseID = firstBlock.id\n if (toolUseID === unresolvedToolUseIDs.values().next().value) {\n return true\n }\n\n if (\n toolUseIDsThatHaveProgressMessages.has(toolUseID) &&\n unresolvedToolUseIDs.has(toolUseID)\n ) {\n return true\n }\n\n return false\n }) as AssistantMessage[]\n ).map(_ => (_.message.content[0]! as ToolUseBlockParam).id),\n )\n}\n\nexport function getErroredToolUseMessages(\n normalizedMessages: NormalizedMessage[],\n): AssistantMessage[] {\n const toolResults = getToolResultIDs(normalizedMessages)\n return normalizedMessages.filter(\n _ =>\n _.type === 'assistant' &&\n Array.isArray(_.message.content) &&\n isToolUseLikeBlockParam(_.message.content[0]) &&\n _.message.content[0].id in toolResults &&\n toolResults[_.message.content[0].id],\n ) as AssistantMessage[]\n}\n\nexport function getToolUseID(message: NormalizedMessage): string | null {\n switch (message.type) {\n case 'assistant':\n return isToolUseLikeBlockParam(message.message.content[0])\n ? message.message.content[0].id\n : null\n case 'user':\n if (message.message.content[0]?.type !== 'tool_result') {\n return null\n }\n return message.message.content[0].tool_use_id\n case 'progress':\n return message.toolUseID\n }\n}\n", "import { last } from 'lodash-es'\n\nimport type {\n ContentBlockParam,\n Message as APIMessage,\n} from '@anthropic-ai/sdk/resources/index.mjs'\n\nimport { NO_CONTENT_MESSAGE } from '#core/ai/constants'\nimport type { AssistantMessage, Message, UserMessage } from '#core/query'\n\nexport function normalizeMessagesForAPI(\n messages: Message[],\n): (UserMessage | AssistantMessage)[] {\n function isSyntheticApiErrorMessage(message: Message): boolean {\n return (\n message.type === 'assistant' &&\n message.isApiErrorMessage === true &&\n message.message.model === '<synthetic>'\n )\n }\n\n function normalizeUserContent(\n content: UserMessage['message']['content'],\n ): ContentBlockParam[] {\n if (typeof content === 'string') {\n return [{ type: 'text', text: content }]\n }\n return content\n }\n\n function toolResultsFirst(content: ContentBlockParam[]): ContentBlockParam[] {\n const toolResults: ContentBlockParam[] = []\n const rest: ContentBlockParam[] = []\n for (const block of content) {\n if (block.type === 'tool_result') {\n toolResults.push(block)\n } else {\n rest.push(block)\n }\n }\n return [...toolResults, ...rest]\n }\n\n function mergeUserMessages(\n base: UserMessage,\n next: UserMessage,\n ): UserMessage {\n const baseBlocks = normalizeUserContent(base.message.content)\n const nextBlocks = normalizeUserContent(next.message.content)\n return {\n ...base,\n message: {\n ...base.message,\n content: toolResultsFirst([...baseBlocks, ...nextBlocks]),\n },\n }\n }\n\n function isUserToolResultMessage(message: Message): message is UserMessage {\n if (message.type !== 'user') return false\n if (!Array.isArray(message.message.content)) return false\n return message.message.content.some(block => block.type === 'tool_result')\n }\n\n const result: (UserMessage | AssistantMessage)[] = []\n for (const message of messages) {\n if (message.type === 'progress') continue\n if (isSyntheticApiErrorMessage(message)) continue\n\n switch (message.type) {\n case 'user': {\n const prev = last(result)\n if (prev?.type === 'user') {\n result[result.indexOf(prev)] = mergeUserMessages(prev, message)\n } else {\n result.push(message)\n }\n break\n }\n case 'assistant': {\n let merged = false\n for (let i = result.length - 1; i >= 0; i--) {\n const prev = result[i]\n if (prev.type !== 'assistant' && !isUserToolResultMessage(prev)) {\n break\n }\n if (prev.type === 'assistant') {\n if (prev.message.id === message.message.id) {\n result[i] = {\n ...prev,\n message: {\n ...prev.message,\n content: [\n ...(Array.isArray(prev.message.content)\n ? prev.message.content\n : []),\n ...(Array.isArray(message.message.content)\n ? message.message.content\n : []),\n ],\n },\n }\n merged = true\n }\n break\n }\n }\n if (!merged) {\n result.push(message)\n }\n break\n }\n }\n }\n\n return result\n}\n\nexport function normalizeContentFromAPI(\n content: APIMessage['content'],\n): APIMessage['content'] {\n const filteredContent = content.filter(\n _ => _.type !== 'text' || _.text.trim().length > 0,\n )\n\n if (filteredContent.length === 0) {\n return [{ type: 'text', text: NO_CONTENT_MESSAGE, citations: [] }]\n }\n\n return filteredContent\n}\n\nexport function isEmptyMessageText(text: string): boolean {\n return (\n stripSystemMessages(text).trim() === '' ||\n text.trim() === NO_CONTENT_MESSAGE\n )\n}\n\nconst STRIPPED_TAGS = [\n 'commit_analysis',\n 'context',\n 'function_analysis',\n 'pr_analysis',\n]\n\nexport function stripSystemMessages(content: string): string {\n const regex = new RegExp(\n `<(${STRIPPED_TAGS.join('|')})>.*?</\\\\\\\\1>\\\\n?`,\n 'gs',\n )\n return content.replace(regex, '').trim()\n}\n\nexport function getLastAssistantMessageId(\n messages: Message[],\n): string | undefined {\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i]\n if (message && message.type === 'assistant') {\n return message.message.id\n }\n }\n return undefined\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["createHash", "randomUUID", "stableUuidFromSeed", "createHash", "randomUUID"]
|
|
7
|
+
}
|
|
@@ -2,16 +2,16 @@ import {
|
|
|
2
2
|
emitReminderEvent,
|
|
3
3
|
getAgentFilePath,
|
|
4
4
|
systemReminderService
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JXYXMP2Q.js";
|
|
6
6
|
import {
|
|
7
7
|
debug
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YQ3YJSMI.js";
|
|
9
9
|
import {
|
|
10
10
|
listAllContentFiles
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4BBWDSDC.js";
|
|
12
12
|
import {
|
|
13
13
|
logError
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SOBWNYOW.js";
|
|
15
15
|
import {
|
|
16
16
|
getCwd
|
|
17
17
|
} from "./chunk-5ARRC2T2.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createDefaultToolPermissionContext,
|
|
3
3
|
isPersistableToolPermissionDestination
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-E4C4N7OV.js";
|
|
5
5
|
import {
|
|
6
6
|
logError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SOBWNYOW.js";
|
|
8
8
|
import {
|
|
9
9
|
getCwd
|
|
10
10
|
} from "./chunk-5ARRC2T2.js";
|
|
@@ -3,22 +3,22 @@ import {
|
|
|
3
3
|
} from "./chunk-QAXE37B5.js";
|
|
4
4
|
import {
|
|
5
5
|
getAllTools
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-WOMV4RCI.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveToolDescription
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DWKF6SQH.js";
|
|
10
10
|
import {
|
|
11
11
|
createAssistantMessage
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-L2LWCVUF.js";
|
|
13
13
|
import {
|
|
14
14
|
logError
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-SOBWNYOW.js";
|
|
16
16
|
import {
|
|
17
17
|
setCwd
|
|
18
18
|
} from "./chunk-5ARRC2T2.js";
|
|
19
19
|
import {
|
|
20
20
|
MACRO
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-6CAQXUDY.js";
|
|
22
22
|
import {
|
|
23
23
|
LEGACY_ENV
|
|
24
24
|
} from "./chunk-IJOMPG6S.js";
|
|
@@ -155,7 +155,7 @@ async function startMCPServer(cwd) {
|
|
|
155
155
|
);
|
|
156
156
|
}
|
|
157
157
|
const assistantMessage = createAssistantMessage("");
|
|
158
|
-
const permission = await (await import("./permissions-
|
|
158
|
+
const permission = await (await import("./permissions-C3N4DKS2.js")).hasPermissionsToUseTool(
|
|
159
159
|
tool,
|
|
160
160
|
toolInput,
|
|
161
161
|
toolUseContext,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useDoublePress,
|
|
3
3
|
useExitOnCtrlCD
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-AZHJLRRP.js";
|
|
5
5
|
import {
|
|
6
6
|
wrapLines
|
|
7
7
|
} from "./chunk-7FPYAZAS.js";
|
|
@@ -10,26 +10,26 @@ import {
|
|
|
10
10
|
terminalCapabilityManager,
|
|
11
11
|
useKeypress,
|
|
12
12
|
writeToStdout
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-XVNEJVZC.js";
|
|
14
14
|
import {
|
|
15
15
|
ScreenFrame
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-5LBRVQT5.js";
|
|
17
17
|
import {
|
|
18
18
|
useScreenLayout
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7SRIFZDJ.js";
|
|
20
20
|
import {
|
|
21
21
|
models_default
|
|
22
22
|
} from "./chunk-2WEXPKHH.js";
|
|
23
23
|
import {
|
|
24
24
|
fetchCustomModels,
|
|
25
25
|
providers
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-MOGUUWKG.js";
|
|
27
27
|
import {
|
|
28
28
|
FileWriteTool,
|
|
29
29
|
normalizeLineEndings,
|
|
30
30
|
shouldAggregatePasteChunk,
|
|
31
31
|
shouldTreatAsSpecialPaste
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-BNSPVA24.js";
|
|
33
33
|
import {
|
|
34
34
|
getCachedStringWidth
|
|
35
35
|
} from "./chunk-UKNILZCN.js";
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
getCompatSyspromptPrefix,
|
|
39
39
|
getCompatSystemPrompt,
|
|
40
40
|
getSystemPrompt
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-KHMXPPO7.js";
|
|
42
42
|
import {
|
|
43
43
|
COMPAT_TOOL_ALLOWLIST,
|
|
44
44
|
buildCompatHeaders,
|
|
@@ -50,14 +50,14 @@ import {
|
|
|
50
50
|
} from "./chunk-HDVL5VTM.js";
|
|
51
51
|
import {
|
|
52
52
|
getModelManager
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-FKWFR23G.js";
|
|
54
54
|
import {
|
|
55
55
|
debug
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-YQ3YJSMI.js";
|
|
57
57
|
import {
|
|
58
58
|
PRODUCT_NAME,
|
|
59
59
|
logError
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-SOBWNYOW.js";
|
|
61
61
|
import {
|
|
62
62
|
DEFAULT_GLOBAL_CONFIG,
|
|
63
63
|
getGlobalConfig,
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
} from "./chunk-M7P3QNRU.js";
|
|
7
7
|
import {
|
|
8
8
|
debug
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-YQ3YJSMI.js";
|
|
10
10
|
import {
|
|
11
11
|
getKodeBaseDir,
|
|
12
12
|
logError
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SOBWNYOW.js";
|
|
14
14
|
import {
|
|
15
15
|
getCwd
|
|
16
16
|
} from "./chunk-5ARRC2T2.js";
|
|
@@ -975,7 +975,7 @@ function emitCustomCommandReloaded(event) {
|
|
|
975
975
|
async function reloadCustomCommandsForSession(args) {
|
|
976
976
|
try {
|
|
977
977
|
reloadCustomCommands();
|
|
978
|
-
const { getCommands } = await import("./registry-
|
|
978
|
+
const { getCommands } = await import("./registry-3UVW32YF.js");
|
|
979
979
|
getCommands.cache.clear?.();
|
|
980
980
|
} catch (error) {
|
|
981
981
|
logError(error);
|