newcraw 1.0.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/LICENSE +201 -0
- package/README.md +692 -0
- package/README.zh-CN.md +338 -0
- package/cli-acp.js +82 -0
- package/cli.js +105 -0
- package/dist/REPL-74GZVSMY.js +42 -0
- package/dist/REPL-74GZVSMY.js.map +7 -0
- package/dist/acp-A55ZRIPP.js +1357 -0
- package/dist/acp-A55ZRIPP.js.map +7 -0
- package/dist/agentsValidate-XWFIEHJ2.js +373 -0
- package/dist/agentsValidate-XWFIEHJ2.js.map +7 -0
- package/dist/ask-4ACYU23S.js +126 -0
- package/dist/ask-4ACYU23S.js.map +7 -0
- package/dist/autoUpdater-O2WHHSGP.js +17 -0
- package/dist/autoUpdater-O2WHHSGP.js.map +7 -0
- package/dist/chunk-2UO3BFZH.js +16 -0
- package/dist/chunk-2UO3BFZH.js.map +7 -0
- package/dist/chunk-3C73U2IU.js +2970 -0
- package/dist/chunk-3C73U2IU.js.map +7 -0
- package/dist/chunk-3U5X4VWP.js +2613 -0
- package/dist/chunk-3U5X4VWP.js.map +7 -0
- package/dist/chunk-755HIAI3.js +95 -0
- package/dist/chunk-755HIAI3.js.map +7 -0
- package/dist/chunk-7ZFLZNOW.js +21 -0
- package/dist/chunk-7ZFLZNOW.js.map +7 -0
- package/dist/chunk-A44DGORI.js +49 -0
- package/dist/chunk-A44DGORI.js.map +7 -0
- package/dist/chunk-AXWJI6N5.js +11 -0
- package/dist/chunk-AXWJI6N5.js.map +7 -0
- package/dist/chunk-B26ZUMJI.js +515 -0
- package/dist/chunk-B26ZUMJI.js.map +7 -0
- package/dist/chunk-BHNQGSLO.js +96 -0
- package/dist/chunk-BHNQGSLO.js.map +7 -0
- package/dist/chunk-BUI6KGVA.js +164 -0
- package/dist/chunk-BUI6KGVA.js.map +7 -0
- package/dist/chunk-DY5D4SS7.js +936 -0
- package/dist/chunk-DY5D4SS7.js.map +7 -0
- package/dist/chunk-EENI5HG7.js +498 -0
- package/dist/chunk-EENI5HG7.js.map +7 -0
- package/dist/chunk-EXPWPWA4.js +654 -0
- package/dist/chunk-EXPWPWA4.js.map +7 -0
- package/dist/chunk-FHOCKJOW.js +766 -0
- package/dist/chunk-FHOCKJOW.js.map +7 -0
- package/dist/chunk-GPKVTIYJ.js +191 -0
- package/dist/chunk-GPKVTIYJ.js.map +7 -0
- package/dist/chunk-H5BCUDEN.js +794 -0
- package/dist/chunk-H5BCUDEN.js.map +7 -0
- package/dist/chunk-INJSFEKL.js +47 -0
- package/dist/chunk-INJSFEKL.js.map +7 -0
- package/dist/chunk-JX5ZQYTQ.js +12 -0
- package/dist/chunk-JX5ZQYTQ.js.map +7 -0
- package/dist/chunk-KQSHIOZK.js +24 -0
- package/dist/chunk-KQSHIOZK.js.map +7 -0
- package/dist/chunk-L6WKZEK4.js +1609 -0
- package/dist/chunk-L6WKZEK4.js.map +7 -0
- package/dist/chunk-LC4CL3YJ.js +124 -0
- package/dist/chunk-LC4CL3YJ.js.map +7 -0
- package/dist/chunk-MXSB7IOZ.js +1097 -0
- package/dist/chunk-MXSB7IOZ.js.map +7 -0
- package/dist/chunk-N5OHRWG2.js +249 -0
- package/dist/chunk-N5OHRWG2.js.map +7 -0
- package/dist/chunk-NQE3GGE3.js +19 -0
- package/dist/chunk-NQE3GGE3.js.map +7 -0
- package/dist/chunk-QF6YDTME.js +139 -0
- package/dist/chunk-QF6YDTME.js.map +7 -0
- package/dist/chunk-QTX7AJFQ.js +240 -0
- package/dist/chunk-QTX7AJFQ.js.map +7 -0
- package/dist/chunk-S3ZAJPYZ.js +515 -0
- package/dist/chunk-S3ZAJPYZ.js.map +7 -0
- package/dist/chunk-S5Y5IF2H.js +735 -0
- package/dist/chunk-S5Y5IF2H.js.map +7 -0
- package/dist/chunk-SBE6Y327.js +836 -0
- package/dist/chunk-SBE6Y327.js.map +7 -0
- package/dist/chunk-T25Z3JMG.js +17 -0
- package/dist/chunk-T25Z3JMG.js.map +7 -0
- package/dist/chunk-T6VKT5FR.js +196 -0
- package/dist/chunk-T6VKT5FR.js.map +7 -0
- package/dist/chunk-TSGGSPYD.js +151 -0
- package/dist/chunk-TSGGSPYD.js.map +7 -0
- package/dist/chunk-TY3CCSAT.js +24 -0
- package/dist/chunk-TY3CCSAT.js.map +7 -0
- package/dist/chunk-U224EQOS.js +34 -0
- package/dist/chunk-U224EQOS.js.map +7 -0
- package/dist/chunk-U7S4MEYP.js +95 -0
- package/dist/chunk-U7S4MEYP.js.map +7 -0
- package/dist/chunk-ULVAAZ2U.js +30517 -0
- package/dist/chunk-ULVAAZ2U.js.map +7 -0
- package/dist/chunk-WWLFALT7.js +128 -0
- package/dist/chunk-WWLFALT7.js.map +7 -0
- package/dist/chunk-XJQATPV7.js +23 -0
- package/dist/chunk-XJQATPV7.js.map +7 -0
- package/dist/chunk-XMGUQHMF.js +72 -0
- package/dist/chunk-XMGUQHMF.js.map +7 -0
- package/dist/chunk-XOMW5QTV.js +472 -0
- package/dist/chunk-XOMW5QTV.js.map +7 -0
- package/dist/chunk-Y7VZUSIM.js +1256 -0
- package/dist/chunk-Y7VZUSIM.js.map +7 -0
- package/dist/chunk-YVNBXMIP.js +511 -0
- package/dist/chunk-YVNBXMIP.js.map +7 -0
- package/dist/chunk-YYPJWXSA.js +145 -0
- package/dist/chunk-YYPJWXSA.js.map +7 -0
- package/dist/cli-BW34VKCN.js +3917 -0
- package/dist/cli-BW34VKCN.js.map +7 -0
- package/dist/commands-4CNZZBTE.js +46 -0
- package/dist/commands-4CNZZBTE.js.map +7 -0
- package/dist/config-XKRCXCSS.js +81 -0
- package/dist/config-XKRCXCSS.js.map +7 -0
- package/dist/context-T5CR3RP6.js +30 -0
- package/dist/context-T5CR3RP6.js.map +7 -0
- package/dist/costTracker-2G3ZI2JF.js +19 -0
- package/dist/costTracker-2G3ZI2JF.js.map +7 -0
- package/dist/customCommands-OCUMXZDN.js +25 -0
- package/dist/customCommands-OCUMXZDN.js.map +7 -0
- package/dist/env-DYDNFB4D.js +22 -0
- package/dist/env-DYDNFB4D.js.map +7 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +7 -0
- package/dist/kodeAgentSessionId-KTGFX2BE.js +13 -0
- package/dist/kodeAgentSessionId-KTGFX2BE.js.map +7 -0
- package/dist/kodeAgentSessionLoad-ZKR2VGHO.js +18 -0
- package/dist/kodeAgentSessionLoad-ZKR2VGHO.js.map +7 -0
- package/dist/kodeAgentSessionResume-NFZCTIBZ.js +16 -0
- package/dist/kodeAgentSessionResume-NFZCTIBZ.js.map +7 -0
- package/dist/kodeAgentStreamJson-VIXFTYL5.js +13 -0
- package/dist/kodeAgentStreamJson-VIXFTYL5.js.map +7 -0
- package/dist/kodeAgentStreamJsonSession-6CKTK6AF.js +131 -0
- package/dist/kodeAgentStreamJsonSession-6CKTK6AF.js.map +7 -0
- package/dist/kodeAgentStructuredStdio-SI5C7AAD.js +10 -0
- package/dist/kodeAgentStructuredStdio-SI5C7AAD.js.map +7 -0
- package/dist/kodeHooks-5RXJRDCY.js +36 -0
- package/dist/kodeHooks-5RXJRDCY.js.map +7 -0
- package/dist/llm-QJA3QMXR.js +3118 -0
- package/dist/llm-QJA3QMXR.js.map +7 -0
- package/dist/llmLazy-VCEV22DK.js +15 -0
- package/dist/llmLazy-VCEV22DK.js.map +7 -0
- package/dist/loader-CKNYMPCZ.js +28 -0
- package/dist/loader-CKNYMPCZ.js.map +7 -0
- package/dist/mcp-2SZTOKZX.js +49 -0
- package/dist/mcp-2SZTOKZX.js.map +7 -0
- package/dist/mentionProcessor-O7NWOH6S.js +211 -0
- package/dist/mentionProcessor-O7NWOH6S.js.map +7 -0
- package/dist/messages-PRKIHXMK.js +65 -0
- package/dist/messages-PRKIHXMK.js.map +7 -0
- package/dist/model-WG6RA25G.js +30 -0
- package/dist/model-WG6RA25G.js.map +7 -0
- package/dist/openai-VQLYFQ6B.js +29 -0
- package/dist/openai-VQLYFQ6B.js.map +7 -0
- package/dist/outputStyles-VQ57E3B6.js +28 -0
- package/dist/outputStyles-VQ57E3B6.js.map +7 -0
- package/dist/package.json +4 -0
- package/dist/pluginRuntime-NWOLU73K.js +218 -0
- package/dist/pluginRuntime-NWOLU73K.js.map +7 -0
- package/dist/pluginValidation-R7B6QQ6T.js +17 -0
- package/dist/pluginValidation-R7B6QQ6T.js.map +7 -0
- package/dist/prompts-W4V4Y67M.js +48 -0
- package/dist/prompts-W4V4Y67M.js.map +7 -0
- package/dist/query-GFFKKURO.js +50 -0
- package/dist/query-GFFKKURO.js.map +7 -0
- package/dist/responsesStreaming-2AIT6GHG.js +10 -0
- package/dist/responsesStreaming-2AIT6GHG.js.map +7 -0
- package/dist/ripgrep-SVBVC46X.js +17 -0
- package/dist/ripgrep-SVBVC46X.js.map +7 -0
- package/dist/skillMarketplace-5Z7Y6FTD.js +37 -0
- package/dist/skillMarketplace-5Z7Y6FTD.js.map +7 -0
- package/dist/state-X3R7BV7A.js +16 -0
- package/dist/state-X3R7BV7A.js.map +7 -0
- package/dist/theme-4VA64EWF.js +14 -0
- package/dist/theme-4VA64EWF.js.map +7 -0
- package/dist/toolPermissionContext-I3IXPVED.js +17 -0
- package/dist/toolPermissionContext-I3IXPVED.js.map +7 -0
- package/dist/toolPermissionSettings-35DJQEKG.js +18 -0
- package/dist/toolPermissionSettings-35DJQEKG.js.map +7 -0
- package/dist/tools-USOBTPOI.js +47 -0
- package/dist/tools-USOBTPOI.js.map +7 -0
- package/dist/userInput-NID2UYXG.js +312 -0
- package/dist/userInput-NID2UYXG.js.map +7 -0
- package/dist/uuid-VA3KVASX.js +9 -0
- package/dist/uuid-VA3KVASX.js.map +7 -0
- package/dist/yoga.wasm +0 -0
- package/package.json +135 -0
- package/scripts/binary-utils.cjs +61 -0
- package/scripts/cli-acp-wrapper.cjs +82 -0
- package/scripts/cli-wrapper.cjs +105 -0
- package/scripts/postinstall.js +144 -0
- package/web/dist/assets/index-COAJqX1Z.css +1 -0
- package/web/dist/assets/index-CzS_4LmC.js +179 -0
- package/web/dist/index.html +14 -0
- package/yoga.wasm +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/services/ai/llmLazy.ts"],
|
|
4
|
+
"sourcesContent": ["import type { AssistantMessage, UserMessage } from '@query'\r\nimport type { Tool, ToolUseContext } from '@tool'\r\nimport type { ModelPointerType } from '@utils/config'\r\n\r\nexport async function queryLLM(\r\n messages: (UserMessage | AssistantMessage)[],\r\n systemPrompt: string[],\r\n maxThinkingTokens: number,\r\n tools: Tool[],\r\n signal: AbortSignal,\r\n options: {\r\n safeMode: boolean\r\n model: string | ModelPointerType\r\n prependCLISysprompt: boolean\r\n temperature?: number\r\n toolUseContext?: ToolUseContext\r\n __testModelManager?: any\r\n __testQueryLLMWithPromptCaching?: any\r\n },\r\n): Promise<AssistantMessage> {\r\n const { queryLLM: inner } = await import('@services/llm')\r\n return inner(\r\n messages as any,\r\n systemPrompt,\r\n maxThinkingTokens,\r\n tools,\r\n signal,\r\n options as any,\r\n )\r\n}\r\n\r\nexport async function queryQuick(args: {\r\n systemPrompt?: string[]\r\n userPrompt: string\r\n assistantPrompt?: string\r\n enablePromptCaching?: boolean\r\n signal?: AbortSignal\r\n}): Promise<AssistantMessage> {\r\n const { queryQuick: inner } = await import('@services/llm')\r\n return inner(args as any)\r\n}\r\n\r\nexport async function verifyApiKey(\r\n apiKey: string,\r\n baseURL?: string,\r\n provider?: string,\r\n): Promise<boolean> {\r\n const { verifyApiKey: inner } = await import('@services/llm')\r\n return inner(apiKey, baseURL, provider)\r\n}\r\n\r\nexport async function fetchAnthropicModels(\r\n apiKey: string,\r\n baseURL?: string,\r\n): Promise<any[]> {\r\n const { fetchAnthropicModels: inner } = await import('@services/llm')\r\n return inner(apiKey, baseURL)\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;;AAIA,eAAsB,SACpB,UACA,cACA,mBACA,OACA,QACA,SAS2B;AAC3B,QAAM,EAAE,UAAU,MAAM,IAAI,MAAM,OAAO,mBAAe;AACxD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,eAAsB,WAAW,MAMH;AAC5B,QAAM,EAAE,YAAY,MAAM,IAAI,MAAM,OAAO,mBAAe;AAC1D,SAAO,MAAM,IAAW;AAC1B;AAEA,eAAsB,aACpB,QACA,SACA,UACkB;AAClB,QAAM,EAAE,cAAc,MAAM,IAAI,MAAM,OAAO,mBAAe;AAC5D,SAAO,MAAM,QAAQ,SAAS,QAAQ;AACxC;AAEA,eAAsB,qBACpB,QACA,SACgB;AAChB,QAAM,EAAE,sBAAsB,MAAM,IAAI,MAAM,OAAO,mBAAe;AACpE,SAAO,MAAM,QAAQ,OAAO;AAC9B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { createRequire as __newcrawCreateRequire } from "node:module";
|
|
2
|
+
const require = __newcrawCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/types/toolPermissionContext.ts
|
|
5
|
+
function createDefaultToolPermissionContext(options) {
|
|
6
|
+
return {
|
|
7
|
+
mode: "default",
|
|
8
|
+
additionalWorkingDirectories: /* @__PURE__ */ new Map(),
|
|
9
|
+
alwaysAllowRules: {},
|
|
10
|
+
alwaysDenyRules: {},
|
|
11
|
+
alwaysAskRules: {},
|
|
12
|
+
isBypassPermissionsModeAvailable: options?.isBypassPermissionsModeAvailable ?? false
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function applyToolPermissionContextUpdate(context, update) {
|
|
16
|
+
switch (update.type) {
|
|
17
|
+
case "setMode":
|
|
18
|
+
return { ...context, mode: update.mode };
|
|
19
|
+
case "addRules": {
|
|
20
|
+
const key = update.behavior === "allow" ? "alwaysAllowRules" : update.behavior === "deny" ? "alwaysDenyRules" : "alwaysAskRules";
|
|
21
|
+
const existing = context[key][update.destination] ?? [];
|
|
22
|
+
return {
|
|
23
|
+
...context,
|
|
24
|
+
[key]: {
|
|
25
|
+
...context[key],
|
|
26
|
+
[update.destination]: [...existing, ...update.rules]
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
case "replaceRules": {
|
|
31
|
+
const key = update.behavior === "allow" ? "alwaysAllowRules" : update.behavior === "deny" ? "alwaysDenyRules" : "alwaysAskRules";
|
|
32
|
+
return {
|
|
33
|
+
...context,
|
|
34
|
+
[key]: {
|
|
35
|
+
...context[key],
|
|
36
|
+
[update.destination]: [...update.rules]
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
case "removeRules": {
|
|
41
|
+
const key = update.behavior === "allow" ? "alwaysAllowRules" : update.behavior === "deny" ? "alwaysDenyRules" : "alwaysAskRules";
|
|
42
|
+
const current = context[key][update.destination] ?? [];
|
|
43
|
+
const toRemove = new Set(update.rules);
|
|
44
|
+
const next = current.filter((rule) => !toRemove.has(rule));
|
|
45
|
+
return {
|
|
46
|
+
...context,
|
|
47
|
+
[key]: {
|
|
48
|
+
...context[key],
|
|
49
|
+
[update.destination]: next
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
case "addDirectories": {
|
|
54
|
+
const nextDirs = new Map(context.additionalWorkingDirectories);
|
|
55
|
+
for (const dir of update.directories) {
|
|
56
|
+
nextDirs.set(dir, { path: dir, source: update.destination });
|
|
57
|
+
}
|
|
58
|
+
return { ...context, additionalWorkingDirectories: nextDirs };
|
|
59
|
+
}
|
|
60
|
+
case "removeDirectories": {
|
|
61
|
+
const nextDirs = new Map(context.additionalWorkingDirectories);
|
|
62
|
+
for (const dir of update.directories) {
|
|
63
|
+
nextDirs.delete(dir);
|
|
64
|
+
}
|
|
65
|
+
return { ...context, additionalWorkingDirectories: nextDirs };
|
|
66
|
+
}
|
|
67
|
+
default:
|
|
68
|
+
return context;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function applyToolPermissionContextUpdates(context, updates) {
|
|
72
|
+
let next = context;
|
|
73
|
+
for (const update of updates) {
|
|
74
|
+
next = applyToolPermissionContextUpdate(next, update);
|
|
75
|
+
}
|
|
76
|
+
return next;
|
|
77
|
+
}
|
|
78
|
+
function isPersistableToolPermissionDestination(destination) {
|
|
79
|
+
return destination === "localSettings" || destination === "userSettings" || destination === "projectSettings";
|
|
80
|
+
}
|
|
81
|
+
function canUserModifyToolPermissionUpdate(update) {
|
|
82
|
+
if (update.destination !== "policySettings") return true;
|
|
83
|
+
if (update.type === "removeRules") return false;
|
|
84
|
+
if (update.type === "replaceRules") return false;
|
|
85
|
+
if (update.type === "removeDirectories") return false;
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export {
|
|
90
|
+
createDefaultToolPermissionContext,
|
|
91
|
+
applyToolPermissionContextUpdate,
|
|
92
|
+
applyToolPermissionContextUpdates,
|
|
93
|
+
isPersistableToolPermissionDestination,
|
|
94
|
+
canUserModifyToolPermissionUpdate
|
|
95
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/types/toolPermissionContext.ts"],
|
|
4
|
+
"sourcesContent": ["import type { PermissionMode } from './permissionMode'\r\n\r\n\r\nexport type ToolPermissionUpdateDestination =\r\n | 'session'\r\n | 'localSettings'\r\n | 'userSettings'\r\n | 'projectSettings'\r\n | 'flagSettings'\r\n | 'policySettings'\r\n | 'cliArg'\r\n | 'command'\r\n\r\nexport type ToolPermissionRuleBehavior = 'allow' | 'deny' | 'ask'\r\n\r\nexport type AdditionalWorkingDirectoryEntry = {\r\n path: string\r\n source: ToolPermissionUpdateDestination\r\n}\r\n\r\nexport type ToolPermissionContext = {\r\n mode: PermissionMode\r\n additionalWorkingDirectories: Map<string, AdditionalWorkingDirectoryEntry>\r\n alwaysAllowRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\r\n alwaysDenyRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\r\n alwaysAskRules: Partial<Record<ToolPermissionUpdateDestination, string[]>>\r\n isBypassPermissionsModeAvailable: boolean\r\n}\r\n\r\nexport type ToolPermissionContextUpdate =\r\n | {\r\n type: 'setMode'\r\n mode: PermissionMode\r\n destination: ToolPermissionUpdateDestination\r\n }\r\n | {\r\n type: 'addRules'\r\n destination: ToolPermissionUpdateDestination\r\n behavior: ToolPermissionRuleBehavior\r\n rules: string[]\r\n }\r\n | {\r\n type: 'replaceRules'\r\n destination: ToolPermissionUpdateDestination\r\n behavior: ToolPermissionRuleBehavior\r\n rules: string[]\r\n }\r\n | {\r\n type: 'removeRules'\r\n destination: ToolPermissionUpdateDestination\r\n behavior: ToolPermissionRuleBehavior\r\n rules: string[]\r\n }\r\n | {\r\n type: 'addDirectories'\r\n destination: ToolPermissionUpdateDestination\r\n directories: string[]\r\n }\r\n | {\r\n type: 'removeDirectories'\r\n destination: ToolPermissionUpdateDestination\r\n directories: string[]\r\n }\r\n\r\nexport function createDefaultToolPermissionContext(options?: {\r\n isBypassPermissionsModeAvailable?: boolean\r\n}): ToolPermissionContext {\r\n return {\r\n mode: 'default',\r\n additionalWorkingDirectories: new Map(),\r\n alwaysAllowRules: {},\r\n alwaysDenyRules: {},\r\n alwaysAskRules: {},\r\n isBypassPermissionsModeAvailable:\r\n options?.isBypassPermissionsModeAvailable ?? false,\r\n }\r\n}\r\n\r\nexport function applyToolPermissionContextUpdate(\r\n context: ToolPermissionContext,\r\n update: ToolPermissionContextUpdate,\r\n): ToolPermissionContext {\r\n switch (update.type) {\r\n case 'setMode':\r\n return { ...context, mode: update.mode }\r\n case 'addRules': {\r\n const key =\r\n update.behavior === 'allow'\r\n ? 'alwaysAllowRules'\r\n : update.behavior === 'deny'\r\n ? 'alwaysDenyRules'\r\n : 'alwaysAskRules'\r\n const existing = context[key][update.destination] ?? []\r\n return {\r\n ...context,\r\n [key]: {\r\n ...context[key],\r\n [update.destination]: [...existing, ...update.rules],\r\n },\r\n }\r\n }\r\n case 'replaceRules': {\r\n const key =\r\n update.behavior === 'allow'\r\n ? 'alwaysAllowRules'\r\n : update.behavior === 'deny'\r\n ? 'alwaysDenyRules'\r\n : 'alwaysAskRules'\r\n return {\r\n ...context,\r\n [key]: {\r\n ...context[key],\r\n [update.destination]: [...update.rules],\r\n },\r\n }\r\n }\r\n case 'removeRules': {\r\n const key =\r\n update.behavior === 'allow'\r\n ? 'alwaysAllowRules'\r\n : update.behavior === 'deny'\r\n ? 'alwaysDenyRules'\r\n : 'alwaysAskRules'\r\n const current = context[key][update.destination] ?? []\r\n const toRemove = new Set(update.rules)\r\n const next = current.filter(rule => !toRemove.has(rule))\r\n return {\r\n ...context,\r\n [key]: {\r\n ...context[key],\r\n [update.destination]: next,\r\n },\r\n }\r\n }\r\n case 'addDirectories': {\r\n const nextDirs = new Map(context.additionalWorkingDirectories)\r\n for (const dir of update.directories) {\r\n nextDirs.set(dir, { path: dir, source: update.destination })\r\n }\r\n return { ...context, additionalWorkingDirectories: nextDirs }\r\n }\r\n case 'removeDirectories': {\r\n const nextDirs = new Map(context.additionalWorkingDirectories)\r\n for (const dir of update.directories) {\r\n nextDirs.delete(dir)\r\n }\r\n return { ...context, additionalWorkingDirectories: nextDirs }\r\n }\r\n default:\r\n return context\r\n }\r\n}\r\n\r\nexport function applyToolPermissionContextUpdates(\r\n context: ToolPermissionContext,\r\n updates: ToolPermissionContextUpdate[],\r\n): ToolPermissionContext {\r\n let next = context\r\n for (const update of updates) {\r\n next = applyToolPermissionContextUpdate(next, update)\r\n }\r\n return next\r\n}\r\n\r\nexport function isPersistableToolPermissionDestination(\r\n destination: ToolPermissionUpdateDestination,\r\n): destination is 'localSettings' | 'userSettings' | 'projectSettings' {\r\n return (\r\n destination === 'localSettings' ||\r\n destination === 'userSettings' ||\r\n destination === 'projectSettings'\r\n )\r\n}\r\n\r\nexport function canUserModifyToolPermissionUpdate(\r\n update: ToolPermissionContextUpdate,\r\n): boolean {\r\n if (update.destination !== 'policySettings') return true\r\n if (update.type === 'removeRules') return false\r\n if (update.type === 'replaceRules') return false\r\n if (update.type === 'removeDirectories') return false\r\n return true\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;;AAgEO,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;AACpD,MAAI,OAAO,SAAS,cAAe,QAAO;AAC1C,MAAI,OAAO,SAAS,eAAgB,QAAO;AAC3C,MAAI,OAAO,SAAS,oBAAqB,QAAO;AAChD,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|