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.
Files changed (188) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +692 -0
  3. package/README.zh-CN.md +338 -0
  4. package/cli-acp.js +82 -0
  5. package/cli.js +105 -0
  6. package/dist/REPL-74GZVSMY.js +42 -0
  7. package/dist/REPL-74GZVSMY.js.map +7 -0
  8. package/dist/acp-A55ZRIPP.js +1357 -0
  9. package/dist/acp-A55ZRIPP.js.map +7 -0
  10. package/dist/agentsValidate-XWFIEHJ2.js +373 -0
  11. package/dist/agentsValidate-XWFIEHJ2.js.map +7 -0
  12. package/dist/ask-4ACYU23S.js +126 -0
  13. package/dist/ask-4ACYU23S.js.map +7 -0
  14. package/dist/autoUpdater-O2WHHSGP.js +17 -0
  15. package/dist/autoUpdater-O2WHHSGP.js.map +7 -0
  16. package/dist/chunk-2UO3BFZH.js +16 -0
  17. package/dist/chunk-2UO3BFZH.js.map +7 -0
  18. package/dist/chunk-3C73U2IU.js +2970 -0
  19. package/dist/chunk-3C73U2IU.js.map +7 -0
  20. package/dist/chunk-3U5X4VWP.js +2613 -0
  21. package/dist/chunk-3U5X4VWP.js.map +7 -0
  22. package/dist/chunk-755HIAI3.js +95 -0
  23. package/dist/chunk-755HIAI3.js.map +7 -0
  24. package/dist/chunk-7ZFLZNOW.js +21 -0
  25. package/dist/chunk-7ZFLZNOW.js.map +7 -0
  26. package/dist/chunk-A44DGORI.js +49 -0
  27. package/dist/chunk-A44DGORI.js.map +7 -0
  28. package/dist/chunk-AXWJI6N5.js +11 -0
  29. package/dist/chunk-AXWJI6N5.js.map +7 -0
  30. package/dist/chunk-B26ZUMJI.js +515 -0
  31. package/dist/chunk-B26ZUMJI.js.map +7 -0
  32. package/dist/chunk-BHNQGSLO.js +96 -0
  33. package/dist/chunk-BHNQGSLO.js.map +7 -0
  34. package/dist/chunk-BUI6KGVA.js +164 -0
  35. package/dist/chunk-BUI6KGVA.js.map +7 -0
  36. package/dist/chunk-DY5D4SS7.js +936 -0
  37. package/dist/chunk-DY5D4SS7.js.map +7 -0
  38. package/dist/chunk-EENI5HG7.js +498 -0
  39. package/dist/chunk-EENI5HG7.js.map +7 -0
  40. package/dist/chunk-EXPWPWA4.js +654 -0
  41. package/dist/chunk-EXPWPWA4.js.map +7 -0
  42. package/dist/chunk-FHOCKJOW.js +766 -0
  43. package/dist/chunk-FHOCKJOW.js.map +7 -0
  44. package/dist/chunk-GPKVTIYJ.js +191 -0
  45. package/dist/chunk-GPKVTIYJ.js.map +7 -0
  46. package/dist/chunk-H5BCUDEN.js +794 -0
  47. package/dist/chunk-H5BCUDEN.js.map +7 -0
  48. package/dist/chunk-INJSFEKL.js +47 -0
  49. package/dist/chunk-INJSFEKL.js.map +7 -0
  50. package/dist/chunk-JX5ZQYTQ.js +12 -0
  51. package/dist/chunk-JX5ZQYTQ.js.map +7 -0
  52. package/dist/chunk-KQSHIOZK.js +24 -0
  53. package/dist/chunk-KQSHIOZK.js.map +7 -0
  54. package/dist/chunk-L6WKZEK4.js +1609 -0
  55. package/dist/chunk-L6WKZEK4.js.map +7 -0
  56. package/dist/chunk-LC4CL3YJ.js +124 -0
  57. package/dist/chunk-LC4CL3YJ.js.map +7 -0
  58. package/dist/chunk-MXSB7IOZ.js +1097 -0
  59. package/dist/chunk-MXSB7IOZ.js.map +7 -0
  60. package/dist/chunk-N5OHRWG2.js +249 -0
  61. package/dist/chunk-N5OHRWG2.js.map +7 -0
  62. package/dist/chunk-NQE3GGE3.js +19 -0
  63. package/dist/chunk-NQE3GGE3.js.map +7 -0
  64. package/dist/chunk-QF6YDTME.js +139 -0
  65. package/dist/chunk-QF6YDTME.js.map +7 -0
  66. package/dist/chunk-QTX7AJFQ.js +240 -0
  67. package/dist/chunk-QTX7AJFQ.js.map +7 -0
  68. package/dist/chunk-S3ZAJPYZ.js +515 -0
  69. package/dist/chunk-S3ZAJPYZ.js.map +7 -0
  70. package/dist/chunk-S5Y5IF2H.js +735 -0
  71. package/dist/chunk-S5Y5IF2H.js.map +7 -0
  72. package/dist/chunk-SBE6Y327.js +836 -0
  73. package/dist/chunk-SBE6Y327.js.map +7 -0
  74. package/dist/chunk-T25Z3JMG.js +17 -0
  75. package/dist/chunk-T25Z3JMG.js.map +7 -0
  76. package/dist/chunk-T6VKT5FR.js +196 -0
  77. package/dist/chunk-T6VKT5FR.js.map +7 -0
  78. package/dist/chunk-TSGGSPYD.js +151 -0
  79. package/dist/chunk-TSGGSPYD.js.map +7 -0
  80. package/dist/chunk-TY3CCSAT.js +24 -0
  81. package/dist/chunk-TY3CCSAT.js.map +7 -0
  82. package/dist/chunk-U224EQOS.js +34 -0
  83. package/dist/chunk-U224EQOS.js.map +7 -0
  84. package/dist/chunk-U7S4MEYP.js +95 -0
  85. package/dist/chunk-U7S4MEYP.js.map +7 -0
  86. package/dist/chunk-ULVAAZ2U.js +30517 -0
  87. package/dist/chunk-ULVAAZ2U.js.map +7 -0
  88. package/dist/chunk-WWLFALT7.js +128 -0
  89. package/dist/chunk-WWLFALT7.js.map +7 -0
  90. package/dist/chunk-XJQATPV7.js +23 -0
  91. package/dist/chunk-XJQATPV7.js.map +7 -0
  92. package/dist/chunk-XMGUQHMF.js +72 -0
  93. package/dist/chunk-XMGUQHMF.js.map +7 -0
  94. package/dist/chunk-XOMW5QTV.js +472 -0
  95. package/dist/chunk-XOMW5QTV.js.map +7 -0
  96. package/dist/chunk-Y7VZUSIM.js +1256 -0
  97. package/dist/chunk-Y7VZUSIM.js.map +7 -0
  98. package/dist/chunk-YVNBXMIP.js +511 -0
  99. package/dist/chunk-YVNBXMIP.js.map +7 -0
  100. package/dist/chunk-YYPJWXSA.js +145 -0
  101. package/dist/chunk-YYPJWXSA.js.map +7 -0
  102. package/dist/cli-BW34VKCN.js +3917 -0
  103. package/dist/cli-BW34VKCN.js.map +7 -0
  104. package/dist/commands-4CNZZBTE.js +46 -0
  105. package/dist/commands-4CNZZBTE.js.map +7 -0
  106. package/dist/config-XKRCXCSS.js +81 -0
  107. package/dist/config-XKRCXCSS.js.map +7 -0
  108. package/dist/context-T5CR3RP6.js +30 -0
  109. package/dist/context-T5CR3RP6.js.map +7 -0
  110. package/dist/costTracker-2G3ZI2JF.js +19 -0
  111. package/dist/costTracker-2G3ZI2JF.js.map +7 -0
  112. package/dist/customCommands-OCUMXZDN.js +25 -0
  113. package/dist/customCommands-OCUMXZDN.js.map +7 -0
  114. package/dist/env-DYDNFB4D.js +22 -0
  115. package/dist/env-DYDNFB4D.js.map +7 -0
  116. package/dist/index.js +34 -0
  117. package/dist/index.js.map +7 -0
  118. package/dist/kodeAgentSessionId-KTGFX2BE.js +13 -0
  119. package/dist/kodeAgentSessionId-KTGFX2BE.js.map +7 -0
  120. package/dist/kodeAgentSessionLoad-ZKR2VGHO.js +18 -0
  121. package/dist/kodeAgentSessionLoad-ZKR2VGHO.js.map +7 -0
  122. package/dist/kodeAgentSessionResume-NFZCTIBZ.js +16 -0
  123. package/dist/kodeAgentSessionResume-NFZCTIBZ.js.map +7 -0
  124. package/dist/kodeAgentStreamJson-VIXFTYL5.js +13 -0
  125. package/dist/kodeAgentStreamJson-VIXFTYL5.js.map +7 -0
  126. package/dist/kodeAgentStreamJsonSession-6CKTK6AF.js +131 -0
  127. package/dist/kodeAgentStreamJsonSession-6CKTK6AF.js.map +7 -0
  128. package/dist/kodeAgentStructuredStdio-SI5C7AAD.js +10 -0
  129. package/dist/kodeAgentStructuredStdio-SI5C7AAD.js.map +7 -0
  130. package/dist/kodeHooks-5RXJRDCY.js +36 -0
  131. package/dist/kodeHooks-5RXJRDCY.js.map +7 -0
  132. package/dist/llm-QJA3QMXR.js +3118 -0
  133. package/dist/llm-QJA3QMXR.js.map +7 -0
  134. package/dist/llmLazy-VCEV22DK.js +15 -0
  135. package/dist/llmLazy-VCEV22DK.js.map +7 -0
  136. package/dist/loader-CKNYMPCZ.js +28 -0
  137. package/dist/loader-CKNYMPCZ.js.map +7 -0
  138. package/dist/mcp-2SZTOKZX.js +49 -0
  139. package/dist/mcp-2SZTOKZX.js.map +7 -0
  140. package/dist/mentionProcessor-O7NWOH6S.js +211 -0
  141. package/dist/mentionProcessor-O7NWOH6S.js.map +7 -0
  142. package/dist/messages-PRKIHXMK.js +65 -0
  143. package/dist/messages-PRKIHXMK.js.map +7 -0
  144. package/dist/model-WG6RA25G.js +30 -0
  145. package/dist/model-WG6RA25G.js.map +7 -0
  146. package/dist/openai-VQLYFQ6B.js +29 -0
  147. package/dist/openai-VQLYFQ6B.js.map +7 -0
  148. package/dist/outputStyles-VQ57E3B6.js +28 -0
  149. package/dist/outputStyles-VQ57E3B6.js.map +7 -0
  150. package/dist/package.json +4 -0
  151. package/dist/pluginRuntime-NWOLU73K.js +218 -0
  152. package/dist/pluginRuntime-NWOLU73K.js.map +7 -0
  153. package/dist/pluginValidation-R7B6QQ6T.js +17 -0
  154. package/dist/pluginValidation-R7B6QQ6T.js.map +7 -0
  155. package/dist/prompts-W4V4Y67M.js +48 -0
  156. package/dist/prompts-W4V4Y67M.js.map +7 -0
  157. package/dist/query-GFFKKURO.js +50 -0
  158. package/dist/query-GFFKKURO.js.map +7 -0
  159. package/dist/responsesStreaming-2AIT6GHG.js +10 -0
  160. package/dist/responsesStreaming-2AIT6GHG.js.map +7 -0
  161. package/dist/ripgrep-SVBVC46X.js +17 -0
  162. package/dist/ripgrep-SVBVC46X.js.map +7 -0
  163. package/dist/skillMarketplace-5Z7Y6FTD.js +37 -0
  164. package/dist/skillMarketplace-5Z7Y6FTD.js.map +7 -0
  165. package/dist/state-X3R7BV7A.js +16 -0
  166. package/dist/state-X3R7BV7A.js.map +7 -0
  167. package/dist/theme-4VA64EWF.js +14 -0
  168. package/dist/theme-4VA64EWF.js.map +7 -0
  169. package/dist/toolPermissionContext-I3IXPVED.js +17 -0
  170. package/dist/toolPermissionContext-I3IXPVED.js.map +7 -0
  171. package/dist/toolPermissionSettings-35DJQEKG.js +18 -0
  172. package/dist/toolPermissionSettings-35DJQEKG.js.map +7 -0
  173. package/dist/tools-USOBTPOI.js +47 -0
  174. package/dist/tools-USOBTPOI.js.map +7 -0
  175. package/dist/userInput-NID2UYXG.js +312 -0
  176. package/dist/userInput-NID2UYXG.js.map +7 -0
  177. package/dist/uuid-VA3KVASX.js +9 -0
  178. package/dist/uuid-VA3KVASX.js.map +7 -0
  179. package/dist/yoga.wasm +0 -0
  180. package/package.json +135 -0
  181. package/scripts/binary-utils.cjs +61 -0
  182. package/scripts/cli-acp-wrapper.cjs +82 -0
  183. package/scripts/cli-wrapper.cjs +105 -0
  184. package/scripts/postinstall.js +144 -0
  185. package/web/dist/assets/index-COAJqX1Z.css +1 -0
  186. package/web/dist/assets/index-CzS_4LmC.js +179 -0
  187. package/web/dist/index.html +14 -0
  188. 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
+ }