newcraw 1.0.2 → 1.0.4
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/REPL-DECTPCL5.js +50 -0
- package/dist/{acp-J4WDYGRX.js → acp-HA476EHW.js} +69 -40
- package/dist/acp-HA476EHW.js.map +7 -0
- package/dist/{agentsValidate-UBOER2IN.js → agentsValidate-EDPFUUMG.js} +13 -10
- package/dist/{agentsValidate-UBOER2IN.js.map → agentsValidate-EDPFUUMG.js.map} +1 -1
- package/dist/{ask-MGUO3L35.js → ask-5SP4YYRD.js} +62 -52
- package/dist/ask-5SP4YYRD.js.map +7 -0
- package/dist/{autoUpdater-2GS6LRPK.js → autoUpdater-FFMM2DR7.js} +5 -4
- package/dist/chunk-2BVCVKKB.js +135 -0
- package/dist/chunk-2BVCVKKB.js.map +7 -0
- package/dist/{chunk-2C43OXE7.js → chunk-2JCTO2EY.js} +38 -59
- package/dist/chunk-2JCTO2EY.js.map +7 -0
- package/dist/{chunk-OJIMOLIC.js → chunk-3CKC4ABU.js} +3631 -7464
- package/dist/chunk-3CKC4ABU.js.map +7 -0
- package/dist/chunk-ARCEUG3V.js +88 -0
- package/dist/chunk-ARCEUG3V.js.map +7 -0
- package/dist/{chunk-RUXIBQ3B.js → chunk-BJYXLCRS.js} +4 -4
- package/dist/{chunk-VKI7ORIO.js → chunk-BMKE6FT5.js} +37 -18
- package/dist/{chunk-VKI7ORIO.js.map → chunk-BMKE6FT5.js.map} +1 -1
- package/dist/chunk-BQCOSNM3.js +93 -0
- package/dist/chunk-BQCOSNM3.js.map +7 -0
- package/dist/chunk-CHB5K4GI.js +107 -0
- package/dist/chunk-CHB5K4GI.js.map +7 -0
- package/dist/chunk-D4OZACS2.js +35 -0
- package/dist/chunk-EHQ2M5B4.js +166 -0
- package/dist/{chunk-ZYSVG4X3.js.map → chunk-EHQ2M5B4.js.map} +2 -2
- package/dist/chunk-EUBZGAIN.js +372 -0
- package/dist/chunk-EUBZGAIN.js.map +7 -0
- package/dist/{chunk-UYRR6F5S.js → chunk-FIMCETCB.js} +9 -3
- package/dist/{chunk-UYRR6F5S.js.map → chunk-FIMCETCB.js.map} +1 -1
- package/dist/{chunk-DEF3KFP7.js → chunk-GVLJUD6R.js} +4 -2
- package/dist/{chunk-DEF3KFP7.js.map → chunk-GVLJUD6R.js.map} +1 -1
- package/dist/chunk-HLBLZKZH.js +45 -0
- package/dist/chunk-HLBLZKZH.js.map +7 -0
- package/dist/{chunk-XS6PU75S.js → chunk-IVWPPTDM.js} +1 -1
- package/dist/{chunk-A7X6OCZE.js → chunk-IXFBUXQW.js} +1 -1
- package/dist/{chunk-HSJ6HYAO.js → chunk-IZZTKEZH.js} +18 -10
- package/dist/chunk-IZZTKEZH.js.map +7 -0
- package/dist/{chunk-2EFL22PV.js → chunk-JI4HCLK7.js} +7 -3
- package/dist/chunk-JI4HCLK7.js.map +7 -0
- package/dist/chunk-JLVECHVJ.js +36 -0
- package/dist/chunk-JLVECHVJ.js.map +7 -0
- package/dist/{chunk-XXU2NVOE.js → chunk-KJTPUTU7.js} +30 -6
- package/dist/chunk-KJTPUTU7.js.map +7 -0
- package/dist/{chunk-V5U6BHT2.js → chunk-KS646CDL.js} +7 -3
- package/dist/{chunk-V5U6BHT2.js.map → chunk-KS646CDL.js.map} +1 -1
- package/dist/{chunk-53A4JHFW.js → chunk-MJ3MLGVB.js} +23 -4
- package/dist/chunk-MJ3MLGVB.js.map +7 -0
- package/dist/chunk-MJLWBVZP.js +822 -0
- package/dist/chunk-MJLWBVZP.js.map +7 -0
- package/dist/chunk-MMF5RMLU.js +65 -0
- package/dist/chunk-MMF5RMLU.js.map +7 -0
- package/dist/{chunk-QH2M65BR.js → chunk-MUW3J7CP.js} +7 -3
- package/dist/{chunk-QH2M65BR.js.map → chunk-MUW3J7CP.js.map} +1 -1
- package/dist/{chunk-3LMXSKZ7.js → chunk-NFXLN6FJ.js} +1 -1
- package/dist/chunk-NT7RDVDA.js +33 -0
- package/dist/{chunk-KQSHIOZK.js.map → chunk-NT7RDVDA.js.map} +1 -1
- package/dist/{chunk-OZHBEG7U.js → chunk-O4EKE3YR.js} +15 -5
- package/dist/{chunk-OZHBEG7U.js.map → chunk-O4EKE3YR.js.map} +1 -1
- package/dist/chunk-Q2OBTLBI.js +5473 -0
- package/dist/chunk-Q2OBTLBI.js.map +7 -0
- package/dist/{chunk-WWDVA4NV.js → chunk-QJ7MQIHN.js} +22 -6
- package/dist/{chunk-WWDVA4NV.js.map → chunk-QJ7MQIHN.js.map} +1 -1
- package/dist/{chunk-N5OHRWG2.js → chunk-QSRXXZO7.js} +4 -2
- package/dist/{chunk-N5OHRWG2.js.map → chunk-QSRXXZO7.js.map} +1 -1
- package/dist/{chunk-GZTCXXSS.js → chunk-QT5GS374.js} +57 -46
- package/dist/{chunk-GZTCXXSS.js.map → chunk-QT5GS374.js.map} +1 -1
- package/dist/chunk-QX5Y5CE5.js +683 -0
- package/dist/{chunk-F3COCCAE.js.map → chunk-QX5Y5CE5.js.map} +1 -1
- package/dist/{chunk-IIFUDVGS.js → chunk-U6IF5D3J.js} +310 -177
- package/dist/chunk-U6IF5D3J.js.map +7 -0
- package/dist/{chunk-VQSCECTS.js → chunk-UPRKGNBR.js} +6 -4
- package/dist/{chunk-VQSCECTS.js.map → chunk-UPRKGNBR.js.map} +1 -1
- package/dist/chunk-UUCRNFMH.js +62 -0
- package/dist/chunk-UUCRNFMH.js.map +7 -0
- package/dist/chunk-UYWZQVH5.js +35 -0
- package/dist/chunk-UYWZQVH5.js.map +7 -0
- package/dist/{chunk-XMGUQHMF.js → chunk-VSSVN6WG.js} +11 -1
- package/dist/chunk-VSSVN6WG.js.map +7 -0
- package/dist/{chunk-VHS2MZQS.js → chunk-W7Q3VYAB.js} +9 -6
- package/dist/{chunk-VHS2MZQS.js.map → chunk-W7Q3VYAB.js.map} +1 -1
- package/dist/{chunk-JWXQNBBA.js → chunk-WAXMRSVR.js} +7 -1
- package/dist/{chunk-JWXQNBBA.js.map → chunk-WAXMRSVR.js.map} +1 -1
- package/dist/{chunk-BWYKUDJR.js → chunk-X3NER6FY.js} +14 -8
- package/dist/{chunk-BWYKUDJR.js.map → chunk-X3NER6FY.js.map} +1 -1
- package/dist/{chunk-IM33F5CM.js → chunk-XYQZLDRB.js} +1668 -1623
- package/dist/chunk-XYQZLDRB.js.map +7 -0
- package/dist/{chunk-LOIZNQOU.js → chunk-ZM5FMRLS.js} +9 -3
- package/dist/{chunk-LOIZNQOU.js.map → chunk-ZM5FMRLS.js.map} +1 -1
- package/dist/{chunk-755HIAI3.js → chunk-ZMO4E7IW.js} +3 -42
- package/dist/chunk-ZMO4E7IW.js.map +7 -0
- package/dist/{cli-KZGF3FV5.js → cli-4KO6TA5J.js} +251 -485
- package/dist/cli-4KO6TA5J.js.map +7 -0
- package/dist/commands-JSY7CGSU.js +54 -0
- package/dist/{config-GTJWCNPF.js → config-DQEFVW3Y.js} +9 -6
- package/dist/{context-WF3TTXQU.js → context-HVQCTO5R.js} +8 -7
- package/dist/{costTracker-2G3ZI2JF.js → costTracker-VSWW7SRT.js} +3 -2
- package/dist/{customCommands-QOWK57EX.js → customCommands-XCINU5TG.js} +6 -5
- package/dist/{env-37BAP7QF.js → env-ZOPEXWMF.js} +10 -7
- package/dist/{gateway-IZYO6YFJ.js → gateway-SUXSILQL.js} +542 -96
- package/dist/gateway-SUXSILQL.js.map +7 -0
- package/dist/identity-3KZQQVBG.js +16 -0
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/{kodeAgentSessionId-KTGFX2BE.js → kodeAgentSessionId-4SH24DVH.js} +1 -1
- package/dist/{kodeAgentSessionLoad-6F7SJXBC.js → kodeAgentSessionLoad-HB3BYVNG.js} +6 -5
- package/dist/{kodeAgentSessionResume-UEEDRJ3N.js → kodeAgentSessionResume-IGSZZY3G.js} +6 -5
- package/dist/{kodeAgentStreamJson-VIXFTYL5.js → kodeAgentStreamJson-4ZKIWKS3.js} +4 -2
- package/dist/{kodeAgentStreamJsonSession-XC3IPREZ.js → kodeAgentStreamJsonSession-4L76UC75.js} +15 -4
- package/dist/kodeAgentStreamJsonSession-4L76UC75.js.map +7 -0
- package/dist/{kodeAgentStructuredStdio-SI5C7AAD.js → kodeAgentStructuredStdio-5DCUC6V6.js} +3 -3
- package/dist/{kodeHooks-V36SHCTC.js → kodeHooks-H6DMC3XX.js} +6 -5
- package/dist/{llm-CYUDKJNR.js → llm-OJZ6DZVC.js} +306 -60
- package/dist/llm-OJZ6DZVC.js.map +7 -0
- package/dist/{llmLazy-IXVVBRTN.js → llmLazy-TDLZZDPL.js} +2 -2
- package/dist/{loader-OEJ6C3TN.js → loader-MOVYZ76M.js} +6 -5
- package/dist/{mcp-KE3SILMX.js → mcp-DUYSIR5L.js} +10 -9
- package/dist/{mentionProcessor-GAU2WAYB.js → mentionProcessor-EKVLXJN4.js} +14 -7
- package/dist/{mentionProcessor-GAU2WAYB.js.map → mentionProcessor-EKVLXJN4.js.map} +1 -1
- package/dist/{messages-WCSGGSEU.js → messages-23ICFVMC.js} +2 -2
- package/dist/{model-4TQIV5J2.js → model-FUBCTRTV.js} +10 -7
- package/dist/{openai-KTZV6F7N.js → openai-SMYIAIO4.js} +8 -7
- package/dist/{outputStyles-WX5RYQOA.js → outputStyles-HBOYJFBE.js} +6 -5
- package/dist/{pluginRuntime-JXMJZ2LC.js → pluginRuntime-ATZMDZA7.js} +11 -8
- package/dist/{pluginRuntime-JXMJZ2LC.js.map → pluginRuntime-ATZMDZA7.js.map} +1 -1
- package/dist/{pluginValidation-JNQZYLUP.js → pluginValidation-7CGOMT6F.js} +8 -7
- package/dist/prompts-MFESKNYZ.js +58 -0
- package/dist/query-BFEFOX4S.js +58 -0
- package/dist/{responsesStreaming-2AIT6GHG.js → responsesStreaming-JORGEFQC.js} +1 -1
- package/dist/{ripgrep-KDPQAMB2.js → ripgrep-KNJBCJIQ.js} +5 -4
- package/dist/sandbox-P3FR4G4D.js +63 -0
- package/dist/{skillMarketplace-IXAGP3Q2.js → skillMarketplace-PCMKVV4O.js} +5 -4
- package/dist/{state-MSCYLB6Y.js → state-XBYIQ7R4.js} +6 -3
- package/dist/structuredOutput-KAVFUV2Z.js +9 -0
- package/dist/theme-4ZSXUILR.js +15 -0
- package/dist/thinking-TTNUZUB3.js +18 -0
- package/dist/{toolPermissionContext-I3IXPVED.js → toolPermissionContext-JCQ5MFUT.js} +1 -1
- package/dist/toolPermissionContext-JCQ5MFUT.js.map +7 -0
- package/dist/toolPermissionContextState-R6ZGMKP6.js +24 -0
- package/dist/toolPermissionContextState-R6ZGMKP6.js.map +7 -0
- package/dist/{toolPermissionSettings-EUZKGZU2.js → toolPermissionSettings-GMEYTJEA.js} +9 -8
- package/dist/toolPermissionSettings-GMEYTJEA.js.map +7 -0
- package/dist/tools-7FVKB7BG.js +55 -0
- package/dist/tools-7FVKB7BG.js.map +7 -0
- package/dist/{userInput-LJL4CVOB.js → userInput-SZEUY5J6.js} +49 -34
- package/dist/{userInput-LJL4CVOB.js.map → userInput-SZEUY5J6.js.map} +1 -1
- package/dist/{uuid-VA3KVASX.js → uuid-RQH3OZ3W.js} +1 -1
- package/dist/uuid-RQH3OZ3W.js.map +7 -0
- package/dist/workspace-EP63OB5S.js +21 -0
- package/dist/workspace-EP63OB5S.js.map +7 -0
- package/package.json +2 -2
- package/web/dist/assets/index-XuLVvSQF.js +251 -0
- package/web/dist/assets/index-pSid9IlY.css +10 -0
- package/web/dist/index.html +2 -2
- package/dist/REPL-IAK7ZN2Z.js +0 -42
- package/dist/acp-J4WDYGRX.js.map +0 -7
- package/dist/ask-MGUO3L35.js.map +0 -7
- package/dist/chunk-2C43OXE7.js.map +0 -7
- package/dist/chunk-2EFL22PV.js.map +0 -7
- package/dist/chunk-53A4JHFW.js.map +0 -7
- package/dist/chunk-755HIAI3.js.map +0 -7
- package/dist/chunk-AXWJI6N5.js +0 -11
- package/dist/chunk-F3COCCAE.js +0 -654
- package/dist/chunk-HSJ6HYAO.js.map +0 -7
- package/dist/chunk-IIFUDVGS.js.map +0 -7
- package/dist/chunk-IM33F5CM.js.map +0 -7
- package/dist/chunk-KQSHIOZK.js +0 -24
- package/dist/chunk-OJIMOLIC.js.map +0 -7
- package/dist/chunk-XMGUQHMF.js.map +0 -7
- package/dist/chunk-XXU2NVOE.js.map +0 -7
- package/dist/chunk-ZYSVG4X3.js +0 -151
- package/dist/cli-KZGF3FV5.js.map +0 -7
- package/dist/commands-AVEBLFVS.js +0 -46
- package/dist/gateway-IZYO6YFJ.js.map +0 -7
- package/dist/kodeAgentStreamJsonSession-XC3IPREZ.js.map +0 -7
- package/dist/llm-CYUDKJNR.js.map +0 -7
- package/dist/prompts-LE6GK75N.js +0 -48
- package/dist/query-GGIP6PWG.js +0 -50
- package/dist/theme-GAMFOLBW.js +0 -14
- package/dist/tools-3HOUIDM3.js +0 -47
- package/web/dist/assets/index-COAJqX1Z.css +0 -1
- package/web/dist/assets/index-CzS_4LmC.js +0 -179
- /package/dist/{REPL-IAK7ZN2Z.js.map → REPL-DECTPCL5.js.map} +0 -0
- /package/dist/{autoUpdater-2GS6LRPK.js.map → autoUpdater-FFMM2DR7.js.map} +0 -0
- /package/dist/{chunk-RUXIBQ3B.js.map → chunk-BJYXLCRS.js.map} +0 -0
- /package/dist/{chunk-AXWJI6N5.js.map → chunk-D4OZACS2.js.map} +0 -0
- /package/dist/{chunk-XS6PU75S.js.map → chunk-IVWPPTDM.js.map} +0 -0
- /package/dist/{chunk-A7X6OCZE.js.map → chunk-IXFBUXQW.js.map} +0 -0
- /package/dist/{chunk-3LMXSKZ7.js.map → chunk-NFXLN6FJ.js.map} +0 -0
- /package/dist/{commands-AVEBLFVS.js.map → commands-JSY7CGSU.js.map} +0 -0
- /package/dist/{config-GTJWCNPF.js.map → config-DQEFVW3Y.js.map} +0 -0
- /package/dist/{context-WF3TTXQU.js.map → context-HVQCTO5R.js.map} +0 -0
- /package/dist/{costTracker-2G3ZI2JF.js.map → costTracker-VSWW7SRT.js.map} +0 -0
- /package/dist/{customCommands-QOWK57EX.js.map → customCommands-XCINU5TG.js.map} +0 -0
- /package/dist/{env-37BAP7QF.js.map → env-ZOPEXWMF.js.map} +0 -0
- /package/dist/{kodeAgentSessionId-KTGFX2BE.js.map → identity-3KZQQVBG.js.map} +0 -0
- /package/dist/{kodeAgentSessionLoad-6F7SJXBC.js.map → kodeAgentSessionId-4SH24DVH.js.map} +0 -0
- /package/dist/{kodeAgentSessionResume-UEEDRJ3N.js.map → kodeAgentSessionLoad-HB3BYVNG.js.map} +0 -0
- /package/dist/{kodeAgentStreamJson-VIXFTYL5.js.map → kodeAgentSessionResume-IGSZZY3G.js.map} +0 -0
- /package/dist/{kodeAgentStructuredStdio-SI5C7AAD.js.map → kodeAgentStreamJson-4ZKIWKS3.js.map} +0 -0
- /package/dist/{kodeHooks-V36SHCTC.js.map → kodeAgentStructuredStdio-5DCUC6V6.js.map} +0 -0
- /package/dist/{llmLazy-IXVVBRTN.js.map → kodeHooks-H6DMC3XX.js.map} +0 -0
- /package/dist/{loader-OEJ6C3TN.js.map → llmLazy-TDLZZDPL.js.map} +0 -0
- /package/dist/{mcp-KE3SILMX.js.map → loader-MOVYZ76M.js.map} +0 -0
- /package/dist/{messages-WCSGGSEU.js.map → mcp-DUYSIR5L.js.map} +0 -0
- /package/dist/{model-4TQIV5J2.js.map → messages-23ICFVMC.js.map} +0 -0
- /package/dist/{openai-KTZV6F7N.js.map → model-FUBCTRTV.js.map} +0 -0
- /package/dist/{outputStyles-WX5RYQOA.js.map → openai-SMYIAIO4.js.map} +0 -0
- /package/dist/{pluginValidation-JNQZYLUP.js.map → outputStyles-HBOYJFBE.js.map} +0 -0
- /package/dist/{prompts-LE6GK75N.js.map → pluginValidation-7CGOMT6F.js.map} +0 -0
- /package/dist/{query-GGIP6PWG.js.map → prompts-MFESKNYZ.js.map} +0 -0
- /package/dist/{responsesStreaming-2AIT6GHG.js.map → query-BFEFOX4S.js.map} +0 -0
- /package/dist/{ripgrep-KDPQAMB2.js.map → responsesStreaming-JORGEFQC.js.map} +0 -0
- /package/dist/{skillMarketplace-IXAGP3Q2.js.map → ripgrep-KNJBCJIQ.js.map} +0 -0
- /package/dist/{state-MSCYLB6Y.js.map → sandbox-P3FR4G4D.js.map} +0 -0
- /package/dist/{theme-GAMFOLBW.js.map → skillMarketplace-PCMKVV4O.js.map} +0 -0
- /package/dist/{toolPermissionContext-I3IXPVED.js.map → state-XBYIQ7R4.js.map} +0 -0
- /package/dist/{toolPermissionSettings-EUZKGZU2.js.map → structuredOutput-KAVFUV2Z.js.map} +0 -0
- /package/dist/{tools-3HOUIDM3.js.map → theme-4ZSXUILR.js.map} +0 -0
- /package/dist/{uuid-VA3KVASX.js.map → thinking-TTNUZUB3.js.map} +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { createRequire as __newcrawCreateRequire } from "node:module";
|
|
2
|
+
const require = __newcrawCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/core/queryOptionsFactory.ts
|
|
5
|
+
async function createQueryOptions(opts) {
|
|
6
|
+
const [
|
|
7
|
+
{ getCommands },
|
|
8
|
+
{ getTools },
|
|
9
|
+
{ getClients },
|
|
10
|
+
{ getMaxThinkingTokens },
|
|
11
|
+
{ getLastAssistantMessageId },
|
|
12
|
+
{ getToolPermissionContextForConversationKey }
|
|
13
|
+
] = await Promise.all([
|
|
14
|
+
import("./commands-JSY7CGSU.js"),
|
|
15
|
+
import("./tools-7FVKB7BG.js"),
|
|
16
|
+
import("./mcp-DUYSIR5L.js"),
|
|
17
|
+
import("./thinking-TTNUZUB3.js"),
|
|
18
|
+
import("./messages-23ICFVMC.js"),
|
|
19
|
+
import("./toolPermissionContextState-R6ZGMKP6.js")
|
|
20
|
+
]);
|
|
21
|
+
const mcpClientsPromise = opts.mcpClients ? Promise.resolve(opts.mcpClients) : getClients();
|
|
22
|
+
const [commands, tools, mcpClients, maxThinkingTokens] = await Promise.all([
|
|
23
|
+
getCommands(),
|
|
24
|
+
getTools(),
|
|
25
|
+
mcpClientsPromise,
|
|
26
|
+
getMaxThinkingTokens(opts.messages)
|
|
27
|
+
]);
|
|
28
|
+
return {
|
|
29
|
+
options: {
|
|
30
|
+
commands,
|
|
31
|
+
tools,
|
|
32
|
+
mcpClients,
|
|
33
|
+
verbose: opts.verbose ?? false,
|
|
34
|
+
safeMode: opts.safeMode ?? false,
|
|
35
|
+
forkNumber: opts.forkNumber ?? 0,
|
|
36
|
+
messageLogName: opts.messageLogName,
|
|
37
|
+
maxThinkingTokens,
|
|
38
|
+
persistSession: opts.persistSession,
|
|
39
|
+
toolPermissionContext: getToolPermissionContextForConversationKey({
|
|
40
|
+
conversationKey: `${opts.messageLogName}:${opts.forkNumber ?? 0}`,
|
|
41
|
+
isBypassPermissionsModeAvailable: !(opts.safeMode ?? false)
|
|
42
|
+
})
|
|
43
|
+
},
|
|
44
|
+
messageId: getLastAssistantMessageId(opts.messages),
|
|
45
|
+
readFileTimestamps: {},
|
|
46
|
+
setToolJSX: (() => {
|
|
47
|
+
})
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// src/core/skillMatcher.ts
|
|
52
|
+
async function matchSkillForPrompt(userPrompt) {
|
|
53
|
+
let skills;
|
|
54
|
+
try {
|
|
55
|
+
const { loadCustomCommands } = await import("./customCommands-XCINU5TG.js");
|
|
56
|
+
const all = await loadCustomCommands();
|
|
57
|
+
skills = all.filter(
|
|
58
|
+
(cmd) => cmd.type === "prompt" && cmd.disableModelInvocation !== true && (cmd.hasUserSpecifiedDescription || cmd.whenToUse)
|
|
59
|
+
);
|
|
60
|
+
} catch {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
if (skills.length === 0) return null;
|
|
64
|
+
const promptLower = userPrompt.toLowerCase();
|
|
65
|
+
for (const skill of skills) {
|
|
66
|
+
const triggers = skill.whenToUse;
|
|
67
|
+
if (!triggers) continue;
|
|
68
|
+
const keywords = triggers.split(/[,;|,;、\n]+/).map((k) => k.trim().toLowerCase()).filter((k) => k.length >= 2);
|
|
69
|
+
for (const kw of keywords) {
|
|
70
|
+
if (promptLower.includes(kw)) {
|
|
71
|
+
return {
|
|
72
|
+
skillName: skill.userFacingName?.() ?? skill.name,
|
|
73
|
+
description: skill.description ?? ""
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
function buildSkillMatchDirective(match) {
|
|
81
|
+
return `[\u26A1 \u6280\u80FD\u5339\u914D] \u68C0\u6D4B\u5230\u7528\u6237\u8BF7\u6C42\u5339\u914D\u5DF2\u5B89\u88C5\u6280\u80FD"${match.skillName}"\uFF08${match.description}\uFF09\u3002\u4F60\u5FC5\u987B\u5C06 Skill("${match.skillName}") \u4F5C\u4E3A\u7B2C\u4E00\u4E2A\u5DE5\u5177\u8C03\u7528\uFF0C\u5728\u6B64\u4E4B\u524D\u4E0D\u5F97\u8C03\u7528\u4EFB\u4F55\u5176\u4ED6\u5DE5\u5177\uFF08\u5305\u62EC WebSearch\u3001WebFetch\u3001Bash \u7B49\uFF09\u3002\u8FD9\u662F\u5F3A\u5236\u8981\u6C42\u3002`;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export {
|
|
85
|
+
createQueryOptions,
|
|
86
|
+
matchSkillForPrompt,
|
|
87
|
+
buildSkillMatchDirective
|
|
88
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/core/queryOptionsFactory.ts", "../src/core/skillMatcher.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Message } from '@query'\r\nimport type { WrappedClient } from '@services/mcp'\r\n\r\nexport interface SmartQueryOptions {\r\n messages: Message[]\r\n safeMode?: boolean\r\n messageLogName: string\r\n verbose?: boolean\r\n mcpClients?: WrappedClient[]\r\n forkNumber?: number\r\n persistSession?: boolean\r\n}\r\n\r\nexport async function createQueryOptions(opts: SmartQueryOptions) {\r\n const [\r\n { getCommands },\r\n { getTools },\r\n { getClients },\r\n { getMaxThinkingTokens },\r\n { getLastAssistantMessageId },\r\n { getToolPermissionContextForConversationKey },\r\n ] = await Promise.all([\r\n import('@commands'),\r\n import('@tools'),\r\n import('@services/mcp'),\r\n import('@utils/model/thinking'),\r\n import('@utils/messages'),\r\n import('@utils/permissions/toolPermissionContextState'),\r\n ])\r\n\r\n const mcpClientsPromise = opts.mcpClients\r\n ? Promise.resolve(opts.mcpClients)\r\n : getClients()\r\n\r\n const [commands, tools, mcpClients, maxThinkingTokens] = await Promise.all([\r\n getCommands(),\r\n getTools(),\r\n mcpClientsPromise,\r\n getMaxThinkingTokens(opts.messages),\r\n ])\r\n\r\n return {\r\n options: {\r\n commands,\r\n tools,\r\n mcpClients,\r\n verbose: opts.verbose ?? false,\r\n safeMode: opts.safeMode ?? false,\r\n forkNumber: opts.forkNumber ?? 0,\r\n messageLogName: opts.messageLogName,\r\n maxThinkingTokens,\r\n persistSession: opts.persistSession,\r\n toolPermissionContext: getToolPermissionContextForConversationKey({\r\n conversationKey: `${opts.messageLogName}:${opts.forkNumber ?? 0}`,\r\n isBypassPermissionsModeAvailable: !(opts.safeMode ?? false),\r\n }),\r\n },\r\n messageId: getLastAssistantMessageId(opts.messages),\r\n readFileTimestamps: {} as Record<string, number>,\r\n setToolJSX: (() => {}) as (jsx: any) => void,\r\n }\r\n}\r\n", "import type { CustomCommandWithScope } from '@services/customCommands'\r\n\r\nexport interface SkillMatch {\r\n skillName: string\r\n description: string\r\n}\r\n\r\n/**\r\n * Programmatically checks if the user's prompt matches any installed skill's\r\n * trigger keywords (whenToUse). Returns the first match, or null.\r\n *\r\n * This runs BEFORE the LLM sees the message, so skill priority is code-enforced\r\n * rather than relying on the model following prompt instructions.\r\n */\r\nexport async function matchSkillForPrompt(\r\n userPrompt: string,\r\n): Promise<SkillMatch | null> {\r\n let skills: CustomCommandWithScope[]\r\n try {\r\n const { loadCustomCommands } = await import('@services/customCommands')\r\n const all = await loadCustomCommands()\r\n skills = all.filter(\r\n cmd =>\r\n cmd.type === 'prompt' &&\r\n cmd.disableModelInvocation !== true &&\r\n (cmd.hasUserSpecifiedDescription || cmd.whenToUse),\r\n )\r\n } catch {\r\n return null\r\n }\r\n\r\n if (skills.length === 0) return null\r\n\r\n const promptLower = userPrompt.toLowerCase()\r\n\r\n for (const skill of skills) {\r\n const triggers = skill.whenToUse\r\n if (!triggers) continue\r\n\r\n const keywords = triggers\r\n .split(/[,;|\uFF0C\uFF1B\u3001\\n]+/)\r\n .map(k => k.trim().toLowerCase())\r\n .filter(k => k.length >= 2)\r\n\r\n for (const kw of keywords) {\r\n if (promptLower.includes(kw)) {\r\n return {\r\n skillName: skill.userFacingName?.() ?? skill.name,\r\n description: skill.description ?? '',\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null\r\n}\r\n\r\nexport function buildSkillMatchDirective(match: SkillMatch): string {\r\n return `[\u26A1 \u6280\u80FD\u5339\u914D] \u68C0\u6D4B\u5230\u7528\u6237\u8BF7\u6C42\u5339\u914D\u5DF2\u5B89\u88C5\u6280\u80FD\"${match.skillName}\"\uFF08${match.description}\uFF09\u3002\u4F60\u5FC5\u987B\u5C06 Skill(\"${match.skillName}\") \u4F5C\u4E3A\u7B2C\u4E00\u4E2A\u5DE5\u5177\u8C03\u7528\uFF0C\u5728\u6B64\u4E4B\u524D\u4E0D\u5F97\u8C03\u7528\u4EFB\u4F55\u5176\u4ED6\u5DE5\u5177\uFF08\u5305\u62EC WebSearch\u3001WebFetch\u3001Bash \u7B49\uFF09\u3002\u8FD9\u662F\u5F3A\u5236\u8981\u6C42\u3002`\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;;AAaA,eAAsB,mBAAmB,MAAyB;AAChE,QAAM;AAAA,IACJ,EAAE,YAAY;AAAA,IACd,EAAE,SAAS;AAAA,IACX,EAAE,WAAW;AAAA,IACb,EAAE,qBAAqB;AAAA,IACvB,EAAE,0BAA0B;AAAA,IAC5B,EAAE,2CAA2C;AAAA,EAC/C,IAAI,MAAM,QAAQ,IAAI;AAAA,IACpB,OAAO,wBAAW;AAAA,IAClB,OAAO,qBAAQ;AAAA,IACf,OAAO,mBAAe;AAAA,IACtB,OAAO,wBAAuB;AAAA,IAC9B,OAAO,wBAAiB;AAAA,IACxB,OAAO,0CAA+C;AAAA,EACxD,CAAC;AAED,QAAM,oBAAoB,KAAK,aAC3B,QAAQ,QAAQ,KAAK,UAAU,IAC/B,WAAW;AAEf,QAAM,CAAC,UAAU,OAAO,YAAY,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACzE,YAAY;AAAA,IACZ,SAAS;AAAA,IACT;AAAA,IACA,qBAAqB,KAAK,QAAQ;AAAA,EACpC,CAAC;AAED,SAAO;AAAA,IACL,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,KAAK,WAAW;AAAA,MACzB,UAAU,KAAK,YAAY;AAAA,MAC3B,YAAY,KAAK,cAAc;AAAA,MAC/B,gBAAgB,KAAK;AAAA,MACrB;AAAA,MACA,gBAAgB,KAAK;AAAA,MACrB,uBAAuB,2CAA2C;AAAA,QAChE,iBAAiB,GAAG,KAAK,cAAc,IAAI,KAAK,cAAc,CAAC;AAAA,QAC/D,kCAAkC,EAAE,KAAK,YAAY;AAAA,MACvD,CAAC;AAAA,IACH;AAAA,IACA,WAAW,0BAA0B,KAAK,QAAQ;AAAA,IAClD,oBAAoB,CAAC;AAAA,IACrB,aAAa,MAAM;AAAA,IAAC;AAAA,EACtB;AACF;;;AC/CA,eAAsB,oBACpB,YAC4B;AAC5B,MAAI;AACJ,MAAI;AACF,UAAM,EAAE,mBAAmB,IAAI,MAAM,OAAO,8BAA0B;AACtE,UAAM,MAAM,MAAM,mBAAmB;AACrC,aAAS,IAAI;AAAA,MACX,SACE,IAAI,SAAS,YACb,IAAI,2BAA2B,SAC9B,IAAI,+BAA+B,IAAI;AAAA,IAC5C;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,EAAG,QAAO;AAEhC,QAAM,cAAc,WAAW,YAAY;AAE3C,aAAW,SAAS,QAAQ;AAC1B,UAAM,WAAW,MAAM;AACvB,QAAI,CAAC,SAAU;AAEf,UAAM,WAAW,SACd,MAAM,aAAa,EACnB,IAAI,OAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EAC/B,OAAO,OAAK,EAAE,UAAU,CAAC;AAE5B,eAAW,MAAM,UAAU;AACzB,UAAI,YAAY,SAAS,EAAE,GAAG;AAC5B,eAAO;AAAA,UACL,WAAW,MAAM,iBAAiB,KAAK,MAAM;AAAA,UAC7C,aAAa,MAAM,eAAe;AAAA,QACpC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,yBAAyB,OAA2B;AAClE,SAAO,0HAA2B,MAAM,SAAS,UAAK,MAAM,WAAW,+CAAiB,MAAM,SAAS;AACzG;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -3,7 +3,7 @@ const require = __newcrawCreateRequire(import.meta.url);
|
|
|
3
3
|
|
|
4
4
|
// src/services/ai/llmLazy.ts
|
|
5
5
|
async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal, options) {
|
|
6
|
-
const { queryLLM: inner } = await import("./llm-
|
|
6
|
+
const { queryLLM: inner } = await import("./llm-OJZ6DZVC.js");
|
|
7
7
|
return inner(
|
|
8
8
|
messages,
|
|
9
9
|
systemPrompt,
|
|
@@ -14,15 +14,15 @@ async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal
|
|
|
14
14
|
);
|
|
15
15
|
}
|
|
16
16
|
async function queryQuick(args) {
|
|
17
|
-
const { queryQuick: inner } = await import("./llm-
|
|
17
|
+
const { queryQuick: inner } = await import("./llm-OJZ6DZVC.js");
|
|
18
18
|
return inner(args);
|
|
19
19
|
}
|
|
20
20
|
async function verifyApiKey(apiKey, baseURL, provider) {
|
|
21
|
-
const { verifyApiKey: inner } = await import("./llm-
|
|
21
|
+
const { verifyApiKey: inner } = await import("./llm-OJZ6DZVC.js");
|
|
22
22
|
return inner(apiKey, baseURL, provider);
|
|
23
23
|
}
|
|
24
24
|
async function fetchAnthropicModels(apiKey, baseURL) {
|
|
25
|
-
const { fetchAnthropicModels: inner } = await import("./llm-
|
|
25
|
+
const { fetchAnthropicModels: inner } = await import("./llm-OJZ6DZVC.js");
|
|
26
26
|
return inner(apiKey, baseURL);
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -22,59 +22,69 @@ import {
|
|
|
22
22
|
countTokens,
|
|
23
23
|
getAbsolutePath,
|
|
24
24
|
getAgentPrompt,
|
|
25
|
-
getMaxThinkingTokens,
|
|
26
25
|
hasPermissionsToUseTool,
|
|
27
|
-
hasReadPermission,
|
|
28
26
|
query
|
|
29
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-3CKC4ABU.js";
|
|
28
|
+
import {
|
|
29
|
+
hasReadPermission
|
|
30
|
+
} from "./chunk-Q2OBTLBI.js";
|
|
31
|
+
import {
|
|
32
|
+
getMaxThinkingTokens
|
|
33
|
+
} from "./chunk-MMF5RMLU.js";
|
|
34
|
+
import {
|
|
35
|
+
queryLLM
|
|
36
|
+
} from "./chunk-BJYXLCRS.js";
|
|
30
37
|
import {
|
|
31
38
|
FallbackToolUseRejectedMessage,
|
|
32
39
|
MCPTool,
|
|
33
40
|
getClients,
|
|
34
41
|
getMCPTools
|
|
35
|
-
} from "./chunk-
|
|
36
|
-
import {
|
|
37
|
-
queryLLM
|
|
38
|
-
} from "./chunk-RUXIBQ3B.js";
|
|
42
|
+
} from "./chunk-QJ7MQIHN.js";
|
|
39
43
|
import {
|
|
40
44
|
generateAgentId
|
|
41
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-FIMCETCB.js";
|
|
42
46
|
import {
|
|
43
47
|
getActiveAgents,
|
|
44
48
|
getAgentByType,
|
|
45
49
|
getAvailableAgentTypes
|
|
46
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-ZM5FMRLS.js";
|
|
47
51
|
import {
|
|
48
52
|
INTERRUPT_MESSAGE,
|
|
49
53
|
createAssistantMessage,
|
|
50
54
|
createUserMessage,
|
|
51
55
|
getLastAssistantMessageId
|
|
52
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-IXFBUXQW.js";
|
|
53
57
|
import {
|
|
54
|
-
getModelManager
|
|
55
|
-
|
|
58
|
+
getModelManager,
|
|
59
|
+
init_model
|
|
60
|
+
} from "./chunk-QX5Y5CE5.js";
|
|
56
61
|
import {
|
|
57
62
|
getContext
|
|
58
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-MJ3MLGVB.js";
|
|
59
64
|
import {
|
|
60
65
|
getTheme
|
|
61
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-GVLJUD6R.js";
|
|
62
67
|
import {
|
|
63
|
-
debug
|
|
64
|
-
|
|
68
|
+
debug,
|
|
69
|
+
init_debugLogger
|
|
70
|
+
} from "./chunk-QT5GS374.js";
|
|
65
71
|
import {
|
|
66
72
|
BunShell,
|
|
67
73
|
getCwd,
|
|
68
74
|
getMessagesPath,
|
|
69
75
|
getNextAvailableLogSidechainNumber,
|
|
76
|
+
init_log,
|
|
77
|
+
init_shell,
|
|
78
|
+
init_state,
|
|
79
|
+
init_taskOutputStore,
|
|
70
80
|
logError,
|
|
71
81
|
overwriteLog,
|
|
72
82
|
readTaskOutput
|
|
73
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-XYQZLDRB.js";
|
|
74
84
|
import {
|
|
75
85
|
formatDuration,
|
|
76
86
|
formatNumber
|
|
77
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-HLBLZKZH.js";
|
|
78
88
|
|
|
79
89
|
// src/tools/index.ts
|
|
80
90
|
import { memoize as memoize2 } from "lodash-es";
|
|
@@ -83,8 +93,12 @@ import { memoize as memoize2 } from "lodash-es";
|
|
|
83
93
|
import * as React from "react";
|
|
84
94
|
import { Box, Text } from "ink";
|
|
85
95
|
import { z } from "zod";
|
|
96
|
+
init_model();
|
|
97
|
+
init_log();
|
|
86
98
|
|
|
87
99
|
// src/utils/session/expertChatStorage.ts
|
|
100
|
+
init_debugLogger();
|
|
101
|
+
init_log();
|
|
88
102
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
|
|
89
103
|
import { join } from "path";
|
|
90
104
|
import { homedir } from "os";
|
|
@@ -158,6 +172,7 @@ function getSessionMessages(sessionId) {
|
|
|
158
172
|
}
|
|
159
173
|
|
|
160
174
|
// src/tools/ai/AskExpertModelTool/AskExpertModelTool.tsx
|
|
175
|
+
init_debugLogger();
|
|
161
176
|
var inputSchema = z.strictObject({
|
|
162
177
|
question: z.string().describe(
|
|
163
178
|
"COMPLETE SELF-CONTAINED QUESTION: Must include full background context, relevant details, and a clear independent question. The expert model will receive ONLY this content with no access to previous conversation or external context. Structure as: 1) Background/Context 2) Specific situation/problem 3) Clear question. Ensure the expert can fully understand and respond without needing additional information."
|
|
@@ -545,6 +560,7 @@ Please check your model configuration with /model command.`
|
|
|
545
560
|
};
|
|
546
561
|
|
|
547
562
|
// src/tools/system/TaskOutputTool/TaskOutputTool.tsx
|
|
563
|
+
init_shell();
|
|
548
564
|
import { Box as Box2, Text as Text2 } from "ink";
|
|
549
565
|
import React2 from "react";
|
|
550
566
|
import { z as z2 } from "zod";
|
|
@@ -673,6 +689,7 @@ var PROMPT = `- Retrieves output from a running or completed task (background sh
|
|
|
673
689
|
- Works with all task types: background shells, async agents, and remote sessions`;
|
|
674
690
|
|
|
675
691
|
// src/tools/system/TaskOutputTool/TaskOutputTool.tsx
|
|
692
|
+
init_taskOutputStore();
|
|
676
693
|
var inputSchema2 = z2.strictObject({
|
|
677
694
|
task_id: z2.string().describe("The task ID to get output from"),
|
|
678
695
|
block: z2.boolean().optional().default(true).describe("Whether to wait for completion"),
|
|
@@ -1021,6 +1038,7 @@ var ListMcpResourcesTool = {
|
|
|
1021
1038
|
};
|
|
1022
1039
|
|
|
1023
1040
|
// src/tools/search/LspTool/LspTool.tsx
|
|
1041
|
+
init_state();
|
|
1024
1042
|
import { existsSync as existsSync2, readFileSync as readFileSync2, statSync } from "fs";
|
|
1025
1043
|
import { Box as Box4, Text as Text4 } from "ink";
|
|
1026
1044
|
import { createRequire } from "node:module";
|
|
@@ -1877,6 +1895,7 @@ import { Box as Box6, Text as Text6 } from "ink";
|
|
|
1877
1895
|
import { z as z6 } from "zod";
|
|
1878
1896
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
1879
1897
|
import { existsSync as existsSync3, readFileSync as readFileSync3 } from "fs";
|
|
1898
|
+
init_log();
|
|
1880
1899
|
|
|
1881
1900
|
// src/utils/agent/transcripts.ts
|
|
1882
1901
|
var transcripts = /* @__PURE__ */ new Map();
|