@antelopejs/dms-ai 0.8.0 → 0.9.1

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 (275) hide show
  1. package/README.md +2 -1
  2. package/dist/lifecycle/skill-sources.js +19 -146
  3. package/dist/lifecycle/skill-sources.js.map +1 -1
  4. package/dist/pages/settings/availability.js +8 -1
  5. package/dist/pages/settings/availability.js.map +1 -1
  6. package/dist/pages/settings/options.d.ts +2 -1
  7. package/dist/pages/settings/options.js +29 -8
  8. package/dist/pages/settings/options.js.map +1 -1
  9. package/dist/pages/settings/sections.js +25 -4
  10. package/dist/pages/settings/sections.js.map +1 -1
  11. package/dist/routes/builder.d.ts +3 -3
  12. package/dist/routes/builder.js +10 -2
  13. package/dist/routes/builder.js.map +1 -1
  14. package/dist/routes/settings.js +1 -1
  15. package/dist/routes/settings.js.map +1 -1
  16. package/dist/sidecar/settings-values.d.ts +3 -0
  17. package/dist/sidecar/settings-values.js +33 -1
  18. package/dist/sidecar/settings-values.js.map +1 -1
  19. package/dist/vocabulary/enumerations.js +2 -0
  20. package/dist/vocabulary/enumerations.js.map +1 -1
  21. package/dist/vocabulary/tools.js +3 -0
  22. package/dist/vocabulary/tools.js.map +1 -1
  23. package/frontend-vue/app/chat/components/ChatView.vue +53 -85
  24. package/frontend-vue/app/chat/components/Composer.vue +23 -39
  25. package/frontend-vue/app/chat/components/NoticeCard.vue +25 -0
  26. package/frontend-vue/app/chat/components/PanelHeader.vue +2 -6
  27. package/frontend-vue/app/chat/components/ProviderNotice.vue +14 -3
  28. package/frontend-vue/app/chat/composables/conversation-events.ts +4 -3
  29. package/frontend-vue/app/chat/composables/useConversation.ts +6 -0
  30. package/frontend-vue/app/chat/composables/useConversationMode.ts +8 -11
  31. package/frontend-vue/app/chat/composables/useFollowScroll.ts +77 -0
  32. package/frontend-vue/app/chat/constants/modes.ts +15 -0
  33. package/frontend-vue/app/chat/constants/protocol.ts +0 -1
  34. package/frontend-vue/app/chat/constants/settings.ts +1 -1
  35. package/frontend-vue/app/chat/types/protocol.ts +19 -9
  36. package/frontend-vue/app/chat/types/settings.ts +7 -2
  37. package/frontend-vue/app/chat/utils/permission-view.ts +1 -0
  38. package/frontend-vue/app/chat/utils/status-label.ts +50 -0
  39. package/frontend-vue/app/chat/utils/tool-lexicon.ts +16 -0
  40. package/frontend-vue/app/plugins/ai.client.ts +2 -2
  41. package/frontend-vue/app/runtime/assistant-actions.ts +4 -2
  42. package/frontend-vue/app/runtime/assistant-session.ts +5 -1
  43. package/frontend-vue/app/runtime/block-health.ts +135 -0
  44. package/frontend-vue/app/runtime/constants.ts +1 -0
  45. package/frontend-vue/app/runtime/navigation-complete.ts +47 -6
  46. package/frontend-vue/app/runtime/panel-intents.ts +6 -2
  47. package/frontend-vue/app/views/constants.ts +2 -0
  48. package/frontend-vue/app/views/types.ts +3 -1
  49. package/frontend-vue/i18n/locales/dms-ai-pages-en-GB.json +28 -11
  50. package/frontend-vue/i18n/locales/dms-ai-pages-fr-FR.json +28 -11
  51. package/frontend-vue/i18n/locales/dms-ai-panel-en-GB.json +17 -22
  52. package/frontend-vue/i18n/locales/dms-ai-panel-fr-FR.json +17 -22
  53. package/frontend-vue/i18n/locales/dms-ai-views-en-GB.json +2 -0
  54. package/frontend-vue/i18n/locales/dms-ai-views-fr-FR.json +2 -0
  55. package/frontend-vue/tests/assistant-actions.test.ts +37 -0
  56. package/frontend-vue/tests/block-health.test.ts +142 -0
  57. package/frontend-vue/tests/chat/chat-scroll.test.ts +251 -0
  58. package/frontend-vue/tests/chat/conversation-events.test.ts +35 -3
  59. package/frontend-vue/tests/chat/provider-notice.test.ts +33 -0
  60. package/frontend-vue/tests/chat/tool-lexicon.test.ts +1 -0
  61. package/frontend-vue/tests/chat-panel.test.ts +2 -4
  62. package/frontend-vue/tests/navigation.test.ts +67 -2
  63. package/frontend-vue/tests/panel-modes.test.ts +146 -0
  64. package/frontend-vue/tests/panel-questions.test.ts +1 -19
  65. package/frontend-vue/tests/panel-states.test.ts +3 -15
  66. package/frontend-vue/tests/support/fake-layout.ts +119 -0
  67. package/frontend-vue/tests/support/panel-harness.ts +16 -8
  68. package/frontend-vue/tests/support/setup-layout.ts +3 -0
  69. package/frontend-vue/tests/support/stubs.ts +2 -0
  70. package/frontend-vue/vitest.config.ts +1 -0
  71. package/package.json +6 -5
  72. package/sidecar/dist/agent/always-ask-files.d.ts +2 -0
  73. package/sidecar/dist/agent/always-ask-files.js +34 -0
  74. package/sidecar/dist/agent/always-ask-files.js.map +1 -0
  75. package/sidecar/dist/agent/conversation-modes.d.ts +3 -12
  76. package/sidecar/dist/agent/conversation-modes.js +16 -69
  77. package/sidecar/dist/agent/conversation-modes.js.map +1 -1
  78. package/sidecar/dist/agent/effective-mode.d.ts +2 -5
  79. package/sidecar/dist/agent/effective-mode.js +1 -15
  80. package/sidecar/dist/agent/effective-mode.js.map +1 -1
  81. package/sidecar/dist/agent/permission-bus.d.ts +1 -2
  82. package/sidecar/dist/agent/permission-bus.js +1 -3
  83. package/sidecar/dist/agent/permission-bus.js.map +1 -1
  84. package/sidecar/dist/agent/permission-preview.d.ts +6 -0
  85. package/sidecar/dist/agent/permission-preview.js +35 -10
  86. package/sidecar/dist/agent/permission-preview.js.map +1 -1
  87. package/sidecar/dist/agent/permission-rules.js +2 -2
  88. package/sidecar/dist/agent/permission-rules.js.map +1 -1
  89. package/sidecar/dist/agent/project-secrets.d.ts +7 -0
  90. package/sidecar/dist/agent/project-secrets.js +61 -0
  91. package/sidecar/dist/agent/project-secrets.js.map +1 -0
  92. package/sidecar/dist/agent/provider.d.ts +10 -4
  93. package/sidecar/dist/agent/runner.d.ts +8 -2
  94. package/sidecar/dist/agent/runner.js +11 -3
  95. package/sidecar/dist/agent/runner.js.map +1 -1
  96. package/sidecar/dist/agent/session.d.ts +3 -3
  97. package/sidecar/dist/agent/session.js.map +1 -1
  98. package/sidecar/dist/agent/tool-kinds.d.ts +7 -1
  99. package/sidecar/dist/agent/tool-kinds.js +24 -5
  100. package/sidecar/dist/agent/tool-kinds.js.map +1 -1
  101. package/sidecar/dist/audit/activity-query.js +2 -0
  102. package/sidecar/dist/audit/activity-query.js.map +1 -1
  103. package/sidecar/dist/audit/activity.js +1 -0
  104. package/sidecar/dist/audit/activity.js.map +1 -1
  105. package/sidecar/dist/builder/builder-client.js +14 -2
  106. package/sidecar/dist/builder/builder-client.js.map +1 -1
  107. package/sidecar/dist/constants/audit.d.ts +1 -3
  108. package/sidecar/dist/constants/audit.js +2 -1
  109. package/sidecar/dist/constants/audit.js.map +1 -1
  110. package/sidecar/dist/constants/builder.d.ts +5 -1
  111. package/sidecar/dist/constants/builder.js +15 -0
  112. package/sidecar/dist/constants/builder.js.map +1 -1
  113. package/sidecar/dist/constants/claude.d.ts +8 -0
  114. package/sidecar/dist/constants/claude.js +8 -0
  115. package/sidecar/dist/constants/claude.js.map +1 -1
  116. package/sidecar/dist/constants/codex.d.ts +4 -0
  117. package/sidecar/dist/constants/codex.js +4 -0
  118. package/sidecar/dist/constants/codex.js.map +1 -1
  119. package/sidecar/dist/constants/mcp.d.ts +1 -1
  120. package/sidecar/dist/constants/mcp.js +1 -1
  121. package/sidecar/dist/constants/mcp.js.map +1 -1
  122. package/sidecar/dist/constants/native-binary.d.ts +5 -2
  123. package/sidecar/dist/constants/native-binary.js +5 -2
  124. package/sidecar/dist/constants/native-binary.js.map +1 -1
  125. package/sidecar/dist/constants/permissions.d.ts +2 -0
  126. package/sidecar/dist/constants/permissions.js +23 -0
  127. package/sidecar/dist/constants/permissions.js.map +1 -1
  128. package/sidecar/dist/constants/project-secrets.d.ts +5 -0
  129. package/sidecar/dist/constants/project-secrets.js +20 -0
  130. package/sidecar/dist/constants/project-secrets.js.map +1 -0
  131. package/sidecar/dist/constants/providers.d.ts +2 -0
  132. package/sidecar/dist/constants/providers.js +1 -0
  133. package/sidecar/dist/constants/providers.js.map +1 -1
  134. package/sidecar/dist/constants/settings.d.ts +2 -2
  135. package/sidecar/dist/constants/settings.js +4 -9
  136. package/sidecar/dist/constants/settings.js.map +1 -1
  137. package/sidecar/dist/constants/timing.d.ts +1 -0
  138. package/sidecar/dist/constants/timing.js +1 -0
  139. package/sidecar/dist/constants/timing.js.map +1 -1
  140. package/sidecar/dist/constants/tool-kinds.d.ts +67 -2
  141. package/sidecar/dist/constants/tool-kinds.js +111 -33
  142. package/sidecar/dist/constants/tool-kinds.js.map +1 -1
  143. package/sidecar/dist/mcp/tools/builder-compose.d.ts +51 -0
  144. package/sidecar/dist/mcp/tools/builder-compose.js +96 -0
  145. package/sidecar/dist/mcp/tools/builder-compose.js.map +1 -0
  146. package/sidecar/dist/mcp/tools/builder-gate.js +3 -1
  147. package/sidecar/dist/mcp/tools/builder-gate.js.map +1 -1
  148. package/sidecar/dist/mcp/tools/builder-project.js +119 -4
  149. package/sidecar/dist/mcp/tools/builder-project.js.map +1 -1
  150. package/sidecar/dist/mcp/tools/builder-queries.d.ts +31 -0
  151. package/sidecar/dist/mcp/tools/builder-queries.js +30 -13
  152. package/sidecar/dist/mcp/tools/builder-queries.js.map +1 -1
  153. package/sidecar/dist/mcp/tools/builder-table-view-schema.d.ts +99 -0
  154. package/sidecar/dist/mcp/tools/builder-table-view-schema.js +118 -0
  155. package/sidecar/dist/mcp/tools/builder-table-view-schema.js.map +1 -0
  156. package/sidecar/dist/mcp/tools/builder-table-view.d.ts +102 -0
  157. package/sidecar/dist/mcp/tools/builder-table-view.js +24 -0
  158. package/sidecar/dist/mcp/tools/builder-table-view.js.map +1 -0
  159. package/sidecar/dist/mcp/tools/builder.d.ts +135 -1
  160. package/sidecar/dist/mcp/tools/builder.js +17 -4
  161. package/sidecar/dist/mcp/tools/builder.js.map +1 -1
  162. package/sidecar/dist/mcp/tools/navigate-to-page.js +12 -4
  163. package/sidecar/dist/mcp/tools/navigate-to-page.js.map +1 -1
  164. package/sidecar/dist/pages/block-health.d.ts +14 -0
  165. package/sidecar/dist/pages/block-health.js +60 -0
  166. package/sidecar/dist/pages/block-health.js.map +1 -0
  167. package/sidecar/dist/prompts/agent.d.ts +1 -1
  168. package/sidecar/dist/prompts/agent.js +4 -3
  169. package/sidecar/dist/prompts/agent.js.map +1 -1
  170. package/sidecar/dist/protocol/events.d.ts +140 -63
  171. package/sidecar/dist/protocol/events.js +24 -8
  172. package/sidecar/dist/protocol/events.js.map +1 -1
  173. package/sidecar/dist/protocol/messages.d.ts +111 -49
  174. package/sidecar/dist/protocol/messages.js +30 -13
  175. package/sidecar/dist/protocol/messages.js.map +1 -1
  176. package/sidecar/dist/providers/claude/config.d.ts +19 -5
  177. package/sidecar/dist/providers/claude/config.js +21 -7
  178. package/sidecar/dist/providers/claude/config.js.map +1 -1
  179. package/sidecar/dist/providers/claude/model-fallback.d.ts +9 -0
  180. package/sidecar/dist/providers/claude/model-fallback.js +37 -0
  181. package/sidecar/dist/providers/claude/model-fallback.js.map +1 -0
  182. package/sidecar/dist/providers/claude/provider.js +35 -40
  183. package/sidecar/dist/providers/claude/provider.js.map +1 -1
  184. package/sidecar/dist/providers/claude/resolve-binary.js +18 -13
  185. package/sidecar/dist/providers/claude/resolve-binary.js.map +1 -1
  186. package/sidecar/dist/providers/claude/safe-mode.d.ts +5 -5
  187. package/sidecar/dist/providers/claude/safe-mode.js +49 -30
  188. package/sidecar/dist/providers/claude/safe-mode.js.map +1 -1
  189. package/sidecar/dist/providers/claude/secret-files.d.ts +2 -0
  190. package/sidecar/dist/providers/claude/secret-files.js +50 -0
  191. package/sidecar/dist/providers/claude/secret-files.js.map +1 -0
  192. package/sidecar/dist/providers/claude/session-stream.d.ts +18 -0
  193. package/sidecar/dist/providers/claude/session-stream.js +80 -0
  194. package/sidecar/dist/providers/claude/session-stream.js.map +1 -0
  195. package/sidecar/dist/providers/claude/tool-guard.d.ts +14 -0
  196. package/sidecar/dist/providers/claude/tool-guard.js +112 -0
  197. package/sidecar/dist/providers/claude/tool-guard.js.map +1 -0
  198. package/sidecar/dist/providers/codex/adapter.d.ts +10 -0
  199. package/sidecar/dist/providers/codex/adapter.js +20 -5
  200. package/sidecar/dist/providers/codex/adapter.js.map +1 -1
  201. package/sidecar/dist/providers/codex/config.d.ts +6 -17
  202. package/sidecar/dist/providers/codex/config.js +9 -56
  203. package/sidecar/dist/providers/codex/config.js.map +1 -1
  204. package/sidecar/dist/providers/codex/mcp-elicitation.d.ts +21 -0
  205. package/sidecar/dist/providers/codex/mcp-elicitation.js +66 -0
  206. package/sidecar/dist/providers/codex/mcp-elicitation.js.map +1 -0
  207. package/sidecar/dist/providers/codex/module.js +1 -1
  208. package/sidecar/dist/providers/codex/module.js.map +1 -1
  209. package/sidecar/dist/providers/codex/patch-directories.d.ts +6 -0
  210. package/sidecar/dist/providers/codex/patch-directories.js +53 -0
  211. package/sidecar/dist/providers/codex/patch-directories.js.map +1 -0
  212. package/sidecar/dist/providers/codex/permission-profiles.d.ts +11 -0
  213. package/sidecar/dist/providers/codex/permission-profiles.js +37 -0
  214. package/sidecar/dist/providers/codex/permission-profiles.js.map +1 -0
  215. package/sidecar/dist/providers/codex/permissions.d.ts +13 -4
  216. package/sidecar/dist/providers/codex/permissions.js +28 -2
  217. package/sidecar/dist/providers/codex/permissions.js.map +1 -1
  218. package/sidecar/dist/providers/codex/process.d.ts +1 -0
  219. package/sidecar/dist/providers/codex/process.js +3 -1
  220. package/sidecar/dist/providers/codex/process.js.map +1 -1
  221. package/sidecar/dist/providers/codex/protocol/common.d.ts +16 -4
  222. package/sidecar/dist/providers/codex/protocol/index.d.ts +2 -2
  223. package/sidecar/dist/providers/codex/protocol/index.js +1 -1
  224. package/sidecar/dist/providers/codex/protocol/index.js.map +1 -1
  225. package/sidecar/dist/providers/codex/protocol/v2.d.ts +23 -32
  226. package/sidecar/dist/providers/codex/provider.js +13 -12
  227. package/sidecar/dist/providers/codex/provider.js.map +1 -1
  228. package/sidecar/dist/providers/codex/secret-file-globs.d.ts +2 -0
  229. package/sidecar/dist/providers/codex/secret-file-globs.js +45 -0
  230. package/sidecar/dist/providers/codex/secret-file-globs.js.map +1 -0
  231. package/sidecar/dist/providers/types.d.ts +3 -1
  232. package/sidecar/dist/providers/types.js +2 -2
  233. package/sidecar/dist/providers/types.js.map +1 -1
  234. package/sidecar/dist/server/chat-events.js +1 -0
  235. package/sidecar/dist/server/chat-events.js.map +1 -1
  236. package/sidecar/dist/server/http-routes.js +1 -1
  237. package/sidecar/dist/server/http-routes.js.map +1 -1
  238. package/sidecar/dist/server/navigation-completer.d.ts +15 -2
  239. package/sidecar/dist/server/navigation-completer.js +42 -41
  240. package/sidecar/dist/server/navigation-completer.js.map +1 -1
  241. package/sidecar/dist/server/permission-events.d.ts +1 -1
  242. package/sidecar/dist/server/permission-events.js +5 -8
  243. package/sidecar/dist/server/permission-events.js.map +1 -1
  244. package/sidecar/dist/server/routing.js +11 -6
  245. package/sidecar/dist/server/routing.js.map +1 -1
  246. package/sidecar/dist/server/tool-calls.d.ts +0 -2
  247. package/sidecar/dist/server/tool-calls.js +7 -8
  248. package/sidecar/dist/server/tool-calls.js.map +1 -1
  249. package/sidecar/dist/server/turns.js +17 -1
  250. package/sidecar/dist/server/turns.js.map +1 -1
  251. package/sidecar/dist/server/ws.js +4 -15
  252. package/sidecar/dist/server/ws.js.map +1 -1
  253. package/sidecar/dist/skills/skill-usage.js +2 -2
  254. package/sidecar/dist/skills/skill-usage.js.map +1 -1
  255. package/sidecar/dist/state/conversations.d.ts +1 -0
  256. package/sidecar/dist/state/conversations.js +8 -0
  257. package/sidecar/dist/state/conversations.js.map +1 -1
  258. package/sidecar/dist/state/settings-store.d.ts +14 -5
  259. package/sidecar/dist/state/settings-store.js +34 -8
  260. package/sidecar/dist/state/settings-store.js.map +1 -1
  261. package/sidecar/dist/state/settings-types.d.ts +16 -2
  262. package/sidecar/dist/state/settings-types.js +14 -1
  263. package/sidecar/dist/state/settings-types.js.map +1 -1
  264. package/sidecar/dist/state/types.d.ts +14 -6
  265. package/sidecar/dist/state/types.js.map +1 -1
  266. package/sidecar/package.json +3 -3
  267. package/skills/dms-ai/SKILL.md +2 -1
  268. package/skills/dms-builder-safe/REFERENCE.md +5 -6
  269. package/skills/dms-builder-safe/SKILL.md +12 -10
  270. package/skills/dms-external-database/REFERENCE.md +20 -8
  271. package/skills/dms-external-database/SKILL.md +69 -20
  272. package/skills/dms-page-design/SKILL.md +192 -0
  273. package/skills/dms-page-design/cases.json +57 -0
  274. package/frontend-vue/app/chat/components/FullAutoBanner.vue +0 -76
  275. package/frontend-vue/app/chat/components/FullAutoDialog.vue +0 -103
@@ -5,28 +5,25 @@ import { isAutoAllowedRead, resolveReadRoots, } from "../../agent/read-access.js
5
5
  import { isMutatingBuilderTool } from "../../agent/tool-kinds.js";
6
6
  import { createAgentSession, } from "../../agent/session.js";
7
7
  import { buildSystemPrompt } from "../../agent/system-prompt.js";
8
- import { effectiveGenerationMode } from "../../builder/capability.js";
9
8
  import { TURN_IDLE_TIMEOUT_MS } from "../../constants/agent.js";
10
9
  import { SDK_INCLUDE_PARTIAL_MESSAGES, SDK_SETTING_SOURCES_ISOLATED, SKILL_PLUGIN_WRAPPER_DIR, SYSTEM_PROMPT_PRESET_NAME, SYSTEM_PROMPT_PRESET_TYPE, } from "../../constants/claude.js";
11
- import { ASK_USER_QUESTION_BUILTIN_TOOL_NAME, ASK_USER_QUESTION_REDIRECT_MESSAGE, FIRST_PARTY_AUTO_ALLOW_TOOL_NAMES, MCP_SERVER_KEY, } from "../../constants/mcp.js";
10
+ import { ASK_USER_QUESTION_BUILTIN_TOOL_NAME, ASK_USER_QUESTION_REDIRECT_MESSAGE, MCP_SERVER_KEY, } from "../../constants/mcp.js";
12
11
  import { STATE_DIR_SEGMENTS } from "../../constants/paths.js";
13
12
  import { SDK_PERMISSION_BEHAVIOR } from "../../constants/permissions.js";
14
13
  import { readProjectInfo } from "../../host/project-info.js";
15
14
  import { buildSkillCatalog } from "../../skills/build-catalog.js";
16
15
  import { ensurePluginWrapper } from "../../skills/plugin-wrapper.js";
17
16
  import { resolveSkillSources } from "../../skills/resolve-sources.js";
18
- import { extractTokenUsage, messageToEvents } from "./adapter.js";
19
17
  import { buildTurnContent } from "./attachments.js";
20
- import { buildClaudeEnv, resolvePermissionMode, THINKING_TOKENS, } from "./config.js";
18
+ import { isFirstPartyMcpTool } from "./tool-guard.js";
19
+ import { buildClaudeEnv, resolvePermissionMode, resolveModelOptions, } from "./config.js";
21
20
  import { createInputQueue } from "./input-queue.js";
21
+ import { createModelTrack } from "./model-fallback.js";
22
22
  import { resolveClaudeBinary } from "./resolve-binary.js";
23
23
  import { buildSafeModeHooks } from "./safe-mode.js";
24
+ import { withSecretFileGuard } from "./secret-files.js";
25
+ import { toRunnerEvents, } from "./session-stream.js";
24
26
  import { loadSdk } from "./sdk-loader.js";
25
- function buildThinkingConfig(settings) {
26
- if (settings.thinking === "off")
27
- return { type: "disabled" };
28
- return { type: "enabled", budgetTokens: THINKING_TOKENS[settings.thinking] };
29
- }
30
27
  function buildBasePromptOptions(input) {
31
28
  const base = {
32
29
  systemPrompt: {
@@ -37,10 +34,10 @@ function buildBasePromptOptions(input) {
37
34
  settingSources: SDK_SETTING_SOURCES_ISOLATED,
38
35
  includePartialMessages: SDK_INCLUDE_PARTIAL_MESSAGES,
39
36
  permissionMode: resolvePermissionMode(input.settings),
40
- hooks: input.hooks,
41
- thinking: buildThinkingConfig(input.settings),
37
+ hooks: withSecretFileGuard(input.hooks),
38
+ ...resolveModelOptions(input.settings),
42
39
  abortController: input.abortController,
43
- env: buildClaudeEnv(process.env),
40
+ env: buildClaudeEnv(process.env, input.hostProjectRoot),
44
41
  };
45
42
  const claudeBinary = resolveClaudeBinary();
46
43
  if (claudeBinary === undefined)
@@ -106,9 +103,6 @@ export async function bridgeCanUseTool(bus, conversationId, toolName, input, cal
106
103
  });
107
104
  return outcome.isAllowed ? buildAllowResult(input) : buildDenyResult(outcome);
108
105
  }
109
- function isFirstPartyMcpTool(toolName) {
110
- return FIRST_PARTY_AUTO_ALLOW_TOOL_NAMES.has(toolName);
111
- }
112
106
  function buildAskUserRedirectResult() {
113
107
  return {
114
108
  behavior: SDK_PERMISSION_BEHAVIOR.DENY,
@@ -139,18 +133,11 @@ function buildCanUseTool(deps) {
139
133
  return bridgeCanUseTool(deps.bus, ctx.conversationId, toolName, input, callId);
140
134
  };
141
135
  }
142
- function resolveCanUseTool(ctx, moduleRoots, skillRoots) {
136
+ function resolveCanUseTool(ctx, readRoots) {
143
137
  if (ctx.permissionBus === undefined)
144
138
  return undefined;
145
- const readRoots = resolveReadRoots(ctx.hostProjectRoot, [
146
- ...moduleRoots,
147
- ...skillRoots,
148
- ]);
149
139
  return buildCanUseTool({ bus: ctx.permissionBus, ctx, readRoots });
150
140
  }
151
- function activeGenerationMode(live) {
152
- return effectiveGenerationMode(live.settings.generationMode);
153
- }
154
141
  async function loadSharedSdk(config) {
155
142
  if (config.sdk !== undefined)
156
143
  return config.sdk;
@@ -173,31 +160,30 @@ function buildUserMessage(content) {
173
160
  session_id: "",
174
161
  };
175
162
  }
176
- async function* toRunnerEvents(output, onTokenUsage) {
177
- while (true) {
178
- const result = await output.next();
179
- if (result.done)
180
- return;
181
- const usage = extractTokenUsage(result.value);
182
- if (usage !== null)
183
- onTokenUsage?.(usage);
184
- yield* messageToEvents(result.value);
185
- }
186
- }
187
163
  async function submitTurn(backend, input) {
188
164
  const content = await buildTurnContent(input.text, input.attachments, {
189
165
  hostProjectRoot: backend.hostProjectRoot,
190
166
  conversationId: backend.conversationId,
191
167
  });
192
- backend.queue.push(buildUserMessage(content));
168
+ const message = buildUserMessage(content);
169
+ backend.lastTurn = message;
170
+ backend.queue.push(message);
193
171
  }
194
172
  function applyBackendSettings(backend, settings) {
195
173
  backend.live.settings = settings;
174
+ const { model, effort } = resolveModelOptions(settings);
175
+ if (backend.model.refused !== model) {
176
+ backend.model.refused = null;
177
+ void backend.output.setModel(model).catch(() => undefined);
178
+ }
196
179
  void backend.output
197
180
  .setPermissionMode(resolvePermissionMode(settings))
198
181
  .catch(() => undefined);
199
182
  void backend.output
200
- .setMaxThinkingTokens(THINKING_TOKENS[settings.thinking])
183
+ .applyFlagSettings({ effortLevel: effort ?? null })
184
+ .catch(() => undefined);
185
+ void backend.output
186
+ .setMaxThinkingTokens(effort === undefined ? 0 : null)
201
187
  .catch(() => undefined);
202
188
  }
203
189
  function buildSessionControls(backend) {
@@ -219,18 +205,25 @@ async function* runTurn(state, input, settings) {
219
205
  }
220
206
  async function buildSessionOptions(config, ctx, live, abortController) {
221
207
  const skillSources = resolveSkillSources(config.skillDirs, ctx.settings.allowLocalSkills, os.homedir());
208
+ const readRoots = resolveReadRoots(ctx.hostProjectRoot, [
209
+ ...config.moduleRoots,
210
+ ...skillSources.map((s) => s.dir),
211
+ ]);
222
212
  return buildPromptOptions({
223
213
  systemPrompt: await buildSessionPrompt(ctx),
224
214
  hooks: buildSafeModeHooks({
225
- getGenerationMode: () => activeGenerationMode(live),
226
- onBlocked: (callId, toolName) => ctx.onToolDecision?.({ callId, toolName, allowedBy: "blocked" }),
215
+ getSettings: () => live.settings,
216
+ readRoots,
217
+ hostProjectRoot: ctx.hostProjectRoot,
218
+ onToolDecision: ctx.onToolDecision,
227
219
  beforeMutation: ctx.beforeMutation,
228
220
  }),
229
- canUseTool: resolveCanUseTool(ctx, config.moduleRoots, skillSources.map((s) => s.dir)),
221
+ canUseTool: resolveCanUseTool(ctx, readRoots),
230
222
  mcpServer: ctx.mcpServer,
231
223
  settings: ctx.settings,
232
224
  abortController,
233
225
  skillLoadout: await buildSkillLoadout(skillSources, ctx.hostProjectRoot),
226
+ hostProjectRoot: ctx.hostProjectRoot,
234
227
  });
235
228
  }
236
229
  async function createProviderSession(config, ctx) {
@@ -245,10 +238,12 @@ async function createProviderSession(config, ctx) {
245
238
  live,
246
239
  hostProjectRoot: ctx.hostProjectRoot,
247
240
  conversationId: ctx.conversationId,
241
+ lastTurn: null,
242
+ model: createModelTrack(),
248
243
  };
249
244
  const state = {
250
245
  session: createAgentSession({
251
- events: toRunnerEvents(backend.output, ctx.onTokenUsage),
246
+ events: toRunnerEvents(backend, ctx),
252
247
  controls: buildSessionControls(backend),
253
248
  abortController,
254
249
  onDisposed: ctx.onDisposed,
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/providers/claude/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAY7B,OAAO,EACL,aAAa,GAGd,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAEL,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mCAAmC,EACnC,kCAAkC,EAClC,iCAAiC,EACjC,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAOtE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,cAAc,EAEd,qBAAqB,EACrB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAkB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AA0C1D,SAAS,mBAAmB,CAAC,QAAqB;IAChD,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC7D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,MAAM,IAAI,GAAkB;QAC1B,YAAY,EAAE;YACZ,IAAI,EAAE,yBAAyB;YAC/B,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,KAAK,CAAC,YAAY;SAC3B;QACD,cAAc,EAAE,4BAA4B;QAC5C,sBAAsB,EAAE,4BAA4B;QACpD,cAAc,EAAE,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrD,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7C,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;KACjC,CAAC;IACF,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,EAAE,GAAG,IAAI,EAAE,0BAA0B,EAAE,YAAY,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAsB;IAChD,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;AACzC,CAAC;AAOD,SAAS,kBAAkB,CAAC,KAAyB;IACnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,QAAQ,GACZ,KAAK,CAAC,UAAU,KAAK,SAAS;QAC5B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IAChD,MAAM,OAAO,GACX,KAAK,CAAC,SAAS,KAAK,SAAS;QAC3B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IACvE,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACrD,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO;QACnC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM;KAClC,CAAC;AACJ,CAAC;AAQD,KAAK,UAAU,iBAAiB,CAC9B,OAA+B,EAC/B,eAAuB;IAEvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CACpB,eAAe,EACf,GAAG,kBAAkB,EACrB,wBAAwB,CACzB,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CACjD,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,OAAgB;YACtB,IAAI,EAAE,CAAC,CAAC,UAAU;SACnB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC;AACJ,CAAC;AAOD,SAAS,gBAAgB,CAAC,KAAgB;IACxC,OAAO;QACL,QAAQ,EAAE,uBAAuB,CAAC,KAAK;QACvC,YAAY,EAAE,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAA0B;IACjD,MAAM,MAAM,GAAsB;QAChC,QAAQ,EAAE,uBAAuB,CAAC,IAAI;QACtC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;KAChC,CAAC;IACF,OAAO,OAAO,CAAC,eAAe,KAAK,IAAI;QACrC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE;QAChC,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAkB,EAClB,cAAsB,EACtB,QAAgB,EAChB,KAAgB,EAChB,MAAe;IAEf,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC;QAC1C,cAAc;QACd,QAAQ;QACR,IAAI,EAAE,KAAK;QACX,MAAM;KACP,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,iCAAiC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,0BAA0B;IACjC,OAAO;QACL,QAAQ,EAAE,uBAAuB,CAAC,IAAI;QACtC,OAAO,EAAE,kCAAkC;KAC5C,CAAC;AACJ,CAAC;AASD,SAAS,kBAAkB,CACzB,IAAoB,EACpB,QAAgB,EAChB,KAAgB,EAChB,MAAc;IAEd,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;QAC/C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,WAAW,CAAC;IAChB,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC;AAcD,SAAS,eAAe,CAAC,IAAoB;IAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAClC,IAAI,QAAQ,KAAK,mCAAmC,EAAE,CAAC;YACrD,OAAO,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;QACjC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,GAAG,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/C,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,IACE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,eAAe,CAAC,EACvE,CAAC;YACD,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,gBAAgB,CACrB,IAAI,CAAC,GAAG,EACR,GAAG,CAAC,cAAc,EAClB,QAAQ,EACR,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAMD,SAAS,iBAAiB,CACxB,GAA2B,EAC3B,WAAqB,EACrB,UAAoB;IAEpB,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,eAAe,EAAE;QACtD,GAAG,WAAW;QACd,GAAG,UAAU;KACd,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AACrE,CAAC;AAmCD,SAAS,oBAAoB,CAAC,IAAkB;IAC9C,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAsB;IACjD,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IAChD,MAAM,CAAC,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;IAC7B,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,GAA2B;IAE3B,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/D,OAAO,iBAAiB,CAAC;QACvB,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,eAAe,EAAE,WAAW,CAAC,eAAe;KAC7C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAoB;IAC5C,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAClC,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC;AAMD,KAAK,SAAS,CAAC,CAAC,cAAc,CAC5B,MAAa,EACb,YAAuD;IAEvD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI;YAAE,OAAO;QACxB,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,IAAI;YAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,OAAsB,EACtB,KAAgB;IAEhB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE;QACpE,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAsB,EACtB,QAAqB;IAErB,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,KAAK,OAAO,CAAC,MAAM;SAChB,iBAAiB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;SAClD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1B,KAAK,OAAO,CAAC,MAAM;SAChB,oBAAoB,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACxD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAsB;IAClD,OAAO;QACL,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QACjD,SAAS,EAAE,GAAG,EAAE;YACd,KAAK,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,OAAO,CACrB,KAAmB,EACnB,KAAgB,EAChB,QAAqB;IAErB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AAQD,KAAK,UAAU,mBAAmB,CAChC,MAAsB,EACtB,GAA2B,EAC3B,IAAkB,EAClB,eAAgC;IAEhC,MAAM,YAAY,GAAG,mBAAmB,CACtC,MAAM,CAAC,SAAS,EAChB,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAC7B,EAAE,CAAC,OAAO,EAAE,CACb,CAAC;IACF,OAAO,kBAAkB,CAAC;QACxB,YAAY,EAAE,MAAM,kBAAkB,CAAC,GAAG,CAAC;QAC3C,KAAK,EAAE,kBAAkB,CAAC;YACxB,iBAAiB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACnD,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAC9B,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;YAClE,cAAc,EAAE,GAAG,CAAC,cAAc;SACnC,CAAC;QACF,UAAU,EAAE,iBAAiB,CAC3B,GAAG,EACH,MAAM,CAAC,WAAW,EAClB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAC/B;QACD,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,eAAe;QACf,YAAY,EAAE,MAAM,iBAAiB,CAAC,YAAY,EAAE,GAAG,CAAC,eAAe,CAAC;KACzE,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,MAAsB,EACtB,GAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAiB,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACpD,KAAK;QACL,IAAI;QACJ,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,cAAc,EAAE,GAAG,CAAC,cAAc;KACnC,CAAC;IACF,MAAM,KAAK,GAAiB;QAC1B,OAAO,EAAE,kBAAkB,CAAC;YAC1B,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC;YACxD,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC;YACvC,eAAe;YACf,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC;QACF,OAAO;QACP,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC7D,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;QAC1C,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAClD,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAyC;IACjE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,oBAAoB,CAAC;IACvD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,oBAAoB,CAAC;IACjE,OAAO,OAAO,CAAC,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAA8B;IAE9B,MAAM,MAAM,GAAmB;QAC7B,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC;QACpC,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;QACvC,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;KACpC,CAAC;IACF,OAAO,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/providers/claude/provider.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { createRequire } from "node:module";
2
2
  import { z } from "zod";
3
- import { REAL_SDK_PACKAGE } from "../../constants/claude.js";
4
- import { CLAUDE_BINARY_SUBPATH, PLATFORM_LINUX, SDK_NATIVE_LINUX_PREFIX, SDK_NATIVE_MUSL_SUFFIX, } from "../../constants/native-binary.js";
3
+ import { CLAUDE_BINARY_SUBPATH, CLAUDE_CODE_NATIVE_PREFIX, CLAUDE_CODE_PACKAGE, CLAUDE_WINDOWS_BINARY_SUBPATH, NATIVE_MUSL_SUFFIX, PLATFORM_LINUX, PLATFORM_WINDOWS, } from "../../constants/native-binary.js";
5
4
  const nodeReportSchema = z.object({
6
5
  header: z.object({ glibcVersionRuntime: z.string().optional() }).optional(),
7
6
  });
@@ -9,27 +8,33 @@ function isGnuLibc() {
9
8
  const report = nodeReportSchema.safeParse(process.report?.getReport());
10
9
  return report.data?.header?.glibcVersionRuntime !== undefined;
11
10
  }
12
- function nativePackageOrder(arch) {
13
- const base = `${SDK_NATIVE_LINUX_PREFIX}${arch}`;
14
- const musl = `${base}${SDK_NATIVE_MUSL_SUFFIX}`;
11
+ function nativePackageOrder(platform, arch) {
12
+ const base = `${CLAUDE_CODE_NATIVE_PREFIX}${platform}-${arch}`;
13
+ if (platform !== PLATFORM_LINUX)
14
+ return [base];
15
+ const musl = `${base}${NATIVE_MUSL_SUFFIX}`;
15
16
  return isGnuLibc() ? [base, musl] : [musl, base];
16
17
  }
17
- function resolveFromSdk(packageName) {
18
+ function binarySubpath(platform) {
19
+ return platform === PLATFORM_WINDOWS
20
+ ? CLAUDE_WINDOWS_BINARY_SUBPATH
21
+ : CLAUDE_BINARY_SUBPATH;
22
+ }
23
+ function resolveFromClaudeCode(packageName, platform) {
18
24
  try {
19
25
  const requireFromHere = createRequire(import.meta.url);
20
- const sdkEntry = requireFromHere.resolve(REAL_SDK_PACKAGE);
21
- const requireFromSdk = createRequire(sdkEntry);
22
- return requireFromSdk.resolve(`${packageName}${CLAUDE_BINARY_SUBPATH}`);
26
+ const claudeCodeEntry = requireFromHere.resolve(`${CLAUDE_CODE_PACKAGE}/package.json`);
27
+ const requireFromClaudeCode = createRequire(claudeCodeEntry);
28
+ return requireFromClaudeCode.resolve(`${packageName}${binarySubpath(platform)}`);
23
29
  }
24
30
  catch {
25
31
  return undefined;
26
32
  }
27
33
  }
28
34
  function computeClaudeBinary() {
29
- if (process.platform !== PLATFORM_LINUX)
30
- return undefined;
31
- for (const packageName of nativePackageOrder(process.arch)) {
32
- const resolved = resolveFromSdk(packageName);
35
+ const { platform, arch } = process;
36
+ for (const packageName of nativePackageOrder(platform, arch)) {
37
+ const resolved = resolveFromClaudeCode(packageName, platform);
33
38
  if (resolved !== undefined)
34
39
  return resolved;
35
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../../../src/providers/claude/resolve-binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC5E,CAAC,CAAC;AAEH,SAAS,SAAS;IAChB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,KAAK,SAAS,CAAC;AAChE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,GAAG,uBAAuB,GAAG,IAAI,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,sBAAsB,EAAE,CAAC;IAChD,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,WAAmB;IACzC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,qBAAqB,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,cAAc;QAAE,OAAO,SAAS,CAAC;IAC1D,KAAK,MAAM,WAAW,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,IAAI,MAAM,GAAyC,IAAI,CAAC;AAExD,MAAM,UAAU,mBAAmB;IACjC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACzC,MAAM,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../../../src/providers/claude/resolve-binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC5E,CAAC,CAAC;AAEH,SAAS,SAAS;IAChB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,KAAK,SAAS,CAAC;AAChE,CAAC;AAGD,SAAS,kBAAkB,CAAC,QAAgB,EAAE,IAAY;IACxD,MAAM,IAAI,GAAG,GAAG,yBAAyB,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAC/D,IAAI,QAAQ,KAAK,cAAc;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAC5C,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,QAAQ,KAAK,gBAAgB;QAClC,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,qBAAqB,CAAC;AAC5B,CAAC;AAOD,SAAS,qBAAqB,CAC5B,WAAmB,EACnB,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,CAC7C,GAAG,mBAAmB,eAAe,CACtC,CAAC;QACF,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;QAC7D,OAAO,qBAAqB,CAAC,OAAO,CAClC,GAAG,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,EAAE,CAC3C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACnC,KAAK,MAAM,WAAW,IAAI,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9D,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,IAAI,MAAM,GAAyC,IAAI,CAAC;AAOxD,MAAM,UAAU,mBAAmB;IACjC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACzC,MAAM,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import type { HookCallbackMatcher, HookEvent } from "@anthropic-ai/claude-agent-sdk";
2
- import type { GenerationMode } from "../../state/settings-types.js";
2
+ import type { ToolCallHooks } from "../../agent/provider.js";
3
+ import type { TurnSettings } from "../../state/settings-types.js";
4
+ import { type GuardScope } from "./tool-guard.js";
3
5
  export type SdkHooks = Partial<Record<HookEvent, HookCallbackMatcher[]>>;
4
- export interface PreToolUseDeps {
5
- getGenerationMode: () => GenerationMode;
6
- onBlocked?: (callId: string, toolName: string) => void;
7
- beforeMutation?: () => Promise<void>;
6
+ export interface PreToolUseDeps extends Omit<GuardScope, "settings">, Pick<ToolCallHooks, "onToolDecision" | "beforeMutation"> {
7
+ getSettings: () => TurnSettings;
8
8
  }
9
9
  export declare function buildSafeModeHooks(deps: PreToolUseDeps): SdkHooks;
@@ -1,11 +1,11 @@
1
- import { PRE_TOOL_USE_HOOK_EVENT } from "../../constants/claude.js";
1
+ import { CLAUDE_AUTO_PERMISSION_MODE, HOOK_ASK_DECISION, PRE_TOOL_USE_HOOK_EVENT, } from "../../constants/claude.js";
2
2
  import { SDK_PERMISSION_BEHAVIOR } from "../../constants/permissions.js";
3
- import { SAFE_MODE_DENIED_MESSAGE, SAFE_MODE_DISALLOWED_TOOLS, } from "../../constants/settings.js";
4
- import { homedir } from "node:os";
3
+ import { SAFE_MODE_DENIED_MESSAGE } from "../../constants/settings.js";
5
4
  import { z } from "zod";
6
- import { isAbsolute, join, relative } from "node:path";
7
- import { isMutatingTool } from "../../agent/tool-kinds.js";
8
- const SAFE_MODE_BLOCKED_TOOLS = new Set(SAFE_MODE_DISALLOWED_TOOLS);
5
+ import { ToolArgsSchema } from "../../agent/edit-targets.js";
6
+ import { isMutatingTool, isWebTool } from "../../agent/tool-kinds.js";
7
+ import { effectiveGenerationMode } from "../../builder/capability.js";
8
+ import { isHostDecided, runsInSafeScope, } from "./tool-guard.js";
9
9
  const SAFE_MODE_DENIAL = {
10
10
  hookSpecificOutput: {
11
11
  hookEventName: PRE_TOOL_USE_HOOK_EVENT,
@@ -13,40 +13,59 @@ const SAFE_MODE_DENIAL = {
13
13
  permissionDecisionReason: SAFE_MODE_DENIED_MESSAGE,
14
14
  },
15
15
  };
16
+ const HOST_DECISION = {
17
+ hookSpecificOutput: {
18
+ hookEventName: PRE_TOOL_USE_HOOK_EVENT,
19
+ permissionDecision: HOOK_ASK_DECISION,
20
+ },
21
+ };
16
22
  const NO_DECISION = { continue: true };
17
- const PLANS_DIRECTORY = join(homedir(), ".claude", "plans");
18
- const fileToolCallSchema = z.object({
19
- tool_input: z.object({ file_path: z.string() }),
20
- });
21
23
  const preToolUseInputSchema = z.object({
22
- tool_name: z.string().optional(),
23
- tool_use_id: z.string().optional(),
24
+ tool_name: z.string().catch(""),
25
+ tool_use_id: z.string().catch(""),
26
+ tool_input: ToolArgsSchema,
27
+ permission_mode: z.string().optional().catch(undefined),
24
28
  });
25
- function isPlanFile(input) {
26
- const call = fileToolCallSchema.safeParse(input);
27
- if (!call.success)
28
- return false;
29
- const filePath = call.data.tool_input.file_path;
30
- if (!isAbsolute(filePath))
31
- return false;
32
- const inside = relative(PLANS_DIRECTORY, filePath);
33
- return inside.length > 0 && !inside.startsWith("..") && !isAbsolute(inside);
29
+ function isAutoReviewOrUnstated(call) {
30
+ return (call.permission_mode === undefined ||
31
+ call.permission_mode === CLAUDE_AUTO_PERMISSION_MODE);
32
+ }
33
+ function isAskedInAskFirst(toolName) {
34
+ return isMutatingTool(toolName) || isWebTool(toolName);
34
35
  }
35
- function isBlockedTool(input) {
36
- if (input.hook_event_name !== PRE_TOOL_USE_HOOK_EVENT)
37
- return false;
38
- return SAFE_MODE_BLOCKED_TOOLS.has(input.tool_name) && !isPlanFile(input);
36
+ function decideByMode(deps, call, guarded, scope) {
37
+ if (isHostDecided(guarded, scope, call.permission_mode))
38
+ return HOST_DECISION;
39
+ if (isAutoReviewOrUnstated(call) && isAskedInAskFirst(call.tool_name)) {
40
+ deps.onToolDecision?.({
41
+ callId: call.tool_use_id,
42
+ toolName: call.tool_name,
43
+ allowedBy: "auto_approved",
44
+ });
45
+ }
46
+ return NO_DECISION;
39
47
  }
40
48
  export function buildSafeModeHooks(deps) {
41
49
  const preToolUse = async (input) => {
42
- const { tool_name: toolName = "", tool_use_id: callId = "" } = preToolUseInputSchema.safeParse(input).data ?? {};
43
- if (deps.getGenerationMode() === "safe" && isBlockedTool(input)) {
44
- deps.onBlocked?.(callId, toolName);
50
+ const call = preToolUseInputSchema.parse(input);
51
+ const scope = {
52
+ readRoots: deps.readRoots,
53
+ hostProjectRoot: deps.hostProjectRoot,
54
+ settings: deps.getSettings(),
55
+ };
56
+ const guarded = { toolName: call.tool_name, args: call.tool_input };
57
+ if (effectiveGenerationMode(scope.settings.generationMode) === "safe" &&
58
+ !runsInSafeScope(guarded, scope)) {
59
+ deps.onToolDecision?.({
60
+ callId: call.tool_use_id,
61
+ toolName: call.tool_name,
62
+ allowedBy: "blocked",
63
+ });
45
64
  return SAFE_MODE_DENIAL;
46
65
  }
47
- if (isMutatingTool(toolName))
66
+ if (isMutatingTool(call.tool_name))
48
67
  await deps.beforeMutation?.();
49
- return NO_DECISION;
68
+ return decideByMode(deps, call, guarded, scope);
50
69
  };
51
70
  return { [PRE_TOOL_USE_HOOK_EVENT]: [{ hooks: [preToolUse] }] };
52
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"safe-mode.js","sourceRoot":"","sources":["../../../src/providers/claude/safe-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-mode.js","sourceRoot":"","sources":["../../../src/providers/claude/safe-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { SdkHooks } from "./safe-mode.js";
2
+ export declare function withSecretFileGuard(hooks: SdkHooks): SdkHooks;
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ import { reachesSecretFile } from "../../agent/project-secrets.js";
3
+ import { PRE_TOOL_USE_HOOK_EVENT } from "../../constants/claude.js";
4
+ import { SDK_PERMISSION_BEHAVIOR } from "../../constants/permissions.js";
5
+ import { SECRET_FILE_DENIED_MESSAGE } from "../../constants/project-secrets.js";
6
+ const SECRET_FILE_DENIAL = {
7
+ hookSpecificOutput: {
8
+ hookEventName: PRE_TOOL_USE_HOOK_EVENT,
9
+ permissionDecision: SDK_PERMISSION_BEHAVIOR.DENY,
10
+ permissionDecisionReason: SECRET_FILE_DENIED_MESSAGE,
11
+ },
12
+ };
13
+ const NO_DECISION = { continue: true };
14
+ const optionalString = z.string().optional().catch(undefined);
15
+ const toolCallSchema = z.object({
16
+ cwd: optionalString,
17
+ tool_input: z
18
+ .looseObject({
19
+ file_path: optionalString,
20
+ path: optionalString,
21
+ notebook_path: optionalString,
22
+ })
23
+ .default({}),
24
+ });
25
+ async function reachesSecret({ cwd, tool_input }) {
26
+ const paths = [
27
+ tool_input.file_path,
28
+ tool_input.path,
29
+ tool_input.notebook_path,
30
+ ];
31
+ const checks = paths.map(async (path) => path !== undefined &&
32
+ (await reachesSecretFile(path, cwd ?? process.cwd())));
33
+ return (await Promise.all(checks)).some(Boolean);
34
+ }
35
+ export function withSecretFileGuard(hooks) {
36
+ const guard = async (input) => {
37
+ const parsed = toolCallSchema.safeParse(input);
38
+ return parsed.success && (await reachesSecret(parsed.data))
39
+ ? SECRET_FILE_DENIAL
40
+ : NO_DECISION;
41
+ };
42
+ return {
43
+ ...hooks,
44
+ [PRE_TOOL_USE_HOOK_EVENT]: [
45
+ ...(hooks[PRE_TOOL_USE_HOOK_EVENT] ?? []),
46
+ { hooks: [guard] },
47
+ ],
48
+ };
49
+ }
50
+ //# sourceMappingURL=secret-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-files.js","sourceRoot":"","sources":["../../../src/providers/claude/secret-files.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,MAAM,kBAAkB,GAAuB;IAC7C,kBAAkB,EAAE;QAClB,aAAa,EAAE,uBAAuB;QACtC,kBAAkB,EAAE,uBAAuB,CAAC,IAAI;QAChD,wBAAwB,EAAE,0BAA0B;KACrD;CACF,CAAC;AAEF,MAAM,WAAW,GAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE3D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAE9D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,cAAc;IACnB,UAAU,EAAE,CAAC;SACV,WAAW,CAAC;QACX,SAAS,EAAE,cAAc;QACzB,IAAI,EAAE,cAAc;QACpB,aAAa,EAAE,cAAc;KAC9B,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC;AAIH,KAAK,UAAU,aAAa,CAAC,EAAE,GAAG,EAAE,UAAU,EAAY;IACxD,MAAM,KAAK,GAAG;QACZ,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,IAAI;QACf,UAAU,CAAC,aAAa;KACzB,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CACtB,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,IAAI,KAAK,SAAS;QAClB,CAAC,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CACxD,CAAC;IACF,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAQD,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,MAAM,KAAK,GAAiB,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,WAAW,CAAC;IAClB,CAAC,CAAC;IACF,OAAO;QACL,GAAG,KAAK;QACR,CAAC,uBAAuB,CAAC,EAAE;YACzB,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;YACzC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE;SACnB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Query, SDKUserMessage } from "@anthropic-ai/claude-agent-sdk";
2
+ import type { ProviderSessionContext } from "../../agent/provider.js";
3
+ import type { RunnerEvent } from "../../agent/runner-events.js";
4
+ import type { TurnSettings } from "../../state/settings-types.js";
5
+ import type { InputQueue } from "./input-queue.js";
6
+ import { type ModelTrack } from "./model-fallback.js";
7
+ export interface LiveSettings {
8
+ settings: TurnSettings;
9
+ }
10
+ export interface StreamBackend {
11
+ output: Query;
12
+ queue: InputQueue;
13
+ live: LiveSettings;
14
+ lastTurn: SDKUserMessage | null;
15
+ model: ModelTrack;
16
+ }
17
+ export type StreamHooks = Pick<ProviderSessionContext, "onModelUsed" | "onModelFallback" | "onTokenUsage" | "onAutoRefused" | "onToolDecision">;
18
+ export declare function toRunnerEvents(backend: StreamBackend, hooks: StreamHooks): AsyncGenerator<RunnerEvent, void>;
@@ -0,0 +1,80 @@
1
+ import { CLAUDE_AUTO_PERMISSION_MODE, CLAUDE_PERMISSION_SUBTYPES, } from "../../constants/claude.js";
2
+ import { extractTokenUsage, messageToEvents } from "./adapter.js";
3
+ import { resolvePermissionMode } from "./config.js";
4
+ import { isModelRefusal, repliedModel, } from "./model-fallback.js";
5
+ async function retryOnDefaultModel(backend) {
6
+ const { model, lastTurn, live } = backend;
7
+ if (model.refused !== null || lastTurn === null)
8
+ return false;
9
+ try {
10
+ await backend.output.setModel(undefined);
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ model.refused = live.settings.claudeModel;
16
+ model.announceFrom = model.refused;
17
+ backend.queue.push(lastTurn);
18
+ return true;
19
+ }
20
+ function observeModel(track, message, hooks) {
21
+ const used = repliedModel(message);
22
+ if (used === undefined)
23
+ return;
24
+ if (used !== track.active) {
25
+ track.active = used;
26
+ hooks.onModelUsed?.(used);
27
+ }
28
+ if (track.announceFrom === null)
29
+ return;
30
+ hooks.onModelFallback?.({ requested: track.announceFrom, used });
31
+ track.announceFrom = null;
32
+ }
33
+ function observePermissions(live, message, hooks) {
34
+ if (message.type !== "system")
35
+ return;
36
+ const isAutoAsked = resolvePermissionMode(live.settings) === CLAUDE_AUTO_PERMISSION_MODE;
37
+ if (message.subtype === CLAUDE_PERMISSION_SUBTYPES.INIT) {
38
+ if (isAutoAsked && message.permissionMode !== CLAUDE_AUTO_PERMISSION_MODE) {
39
+ hooks.onAutoRefused?.(message.model);
40
+ }
41
+ return;
42
+ }
43
+ if (!isAutoAsked || message.subtype !== CLAUDE_PERMISSION_SUBTYPES.DENIED) {
44
+ return;
45
+ }
46
+ hooks.onToolDecision?.({
47
+ callId: message.tool_use_id,
48
+ toolName: message.tool_name,
49
+ allowedBy: "auto_denied",
50
+ });
51
+ }
52
+ export async function* toRunnerEvents(backend, hooks) {
53
+ let held = [];
54
+ while (true) {
55
+ const result = await backend.output.next();
56
+ if (result.done)
57
+ return;
58
+ const message = result.value;
59
+ const usage = extractTokenUsage(message);
60
+ if (usage !== null)
61
+ hooks.onTokenUsage?.(usage);
62
+ observePermissions(backend.live, message, hooks);
63
+ if (isModelRefusal(message)) {
64
+ if (message.type === "assistant") {
65
+ held.push(message);
66
+ continue;
67
+ }
68
+ if (await retryOnDefaultModel(backend)) {
69
+ held = [];
70
+ continue;
71
+ }
72
+ }
73
+ for (const earlier of held)
74
+ yield* messageToEvents(earlier);
75
+ held = [];
76
+ observeModel(backend.model, message, hooks);
77
+ yield* messageToEvents(message);
78
+ }
79
+ }
80
+ //# sourceMappingURL=session-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-stream.js","sourceRoot":"","sources":["../../../src/providers/claude/session-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type ToolArgs } from "../../agent/edit-targets.js";
2
+ import type { TurnSettings } from "../../state/settings-types.js";
3
+ export interface GuardedCall {
4
+ toolName: string;
5
+ args: ToolArgs;
6
+ }
7
+ export interface GuardScope {
8
+ readRoots: string[];
9
+ hostProjectRoot: string;
10
+ settings: TurnSettings;
11
+ }
12
+ export declare function isFirstPartyMcpTool(toolName: string): boolean;
13
+ export declare function runsInSafeScope(call: GuardedCall, scope: GuardScope): boolean;
14
+ export declare function isHostDecided(call: GuardedCall, scope: GuardScope, permissionMode: string | undefined): boolean;