ummaya 0.2.4 → 0.2.5

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 (477) hide show
  1. package/README.md +15 -2
  2. package/bin/ummaya +10 -1
  3. package/npm-shrinkwrap.json +253 -2
  4. package/package.json +5 -1
  5. package/prompts/manifest.yaml +1 -1
  6. package/prompts/system_v1.md +1 -0
  7. package/pyproject.toml +26 -2
  8. package/specs/2803-document-production-hardening/contracts/document-tools.schema.json +1043 -0
  9. package/src/ummaya/_canonical/__init__.py +2 -0
  10. package/src/ummaya/engine/engine.py +29 -132
  11. package/src/ummaya/evidence/__init__.py +21 -2
  12. package/src/ummaya/evidence/dataset_contract.py +193 -0
  13. package/src/ummaya/evidence/document_authoring_cases.py +33 -0
  14. package/src/ummaya/evidence/document_harness.py +313 -0
  15. package/src/ummaya/evidence/document_viewer_ux.py +391 -0
  16. package/src/ummaya/evidence/gates.py +70 -0
  17. package/src/ummaya/evidence/json_types.py +20 -0
  18. package/src/ummaya/evidence/models.py +88 -1
  19. package/src/ummaya/evidence/output_payload.py +89 -0
  20. package/src/ummaya/evidence/payload_documents.py +233 -0
  21. package/src/ummaya/evidence/route_contracts.py +224 -0
  22. package/src/ummaya/evidence/route_helpers.py +150 -0
  23. package/src/ummaya/evidence/runner.py +81 -212
  24. package/src/ummaya/evidence/source_provenance.py +246 -0
  25. package/src/ummaya/evidence/source_provenance_redaction.py +176 -0
  26. package/src/ummaya/evidence/tool_layer.py +39 -0
  27. package/src/ummaya/evidence/tool_layer_models.py +151 -0
  28. package/src/ummaya/ipc/adapter_manifest_emitter.py +26 -10
  29. package/src/ummaya/ipc/document_intent_normalization.py +185 -0
  30. package/src/ummaya/ipc/frame_schema.py +5 -5
  31. package/src/ummaya/ipc/route_diagnostics.py +73 -0
  32. package/src/ummaya/ipc/stdio.py +1109 -477
  33. package/src/ummaya/llm/client.py +102 -3
  34. package/src/ummaya/llm/config.py +8 -3
  35. package/src/ummaya/primitives/__init__.py +6 -2
  36. package/src/ummaya/primitives/delegation.py +1 -1
  37. package/src/ummaya/primitives/document.py +28 -0
  38. package/src/ummaya/settings.py +0 -3
  39. package/src/ummaya/tools/discovery_bridge.py +17 -1
  40. package/src/ummaya/tools/documents/__init__.py +297 -0
  41. package/src/ummaya/tools/documents/adapter_registry.py +487 -0
  42. package/src/ummaya/tools/documents/archive_container_probe.py +167 -0
  43. package/src/ummaya/tools/documents/artifact_store.py +454 -0
  44. package/src/ummaya/tools/documents/authoring.py +283 -0
  45. package/src/ummaya/tools/documents/baselines.py +114 -0
  46. package/src/ummaya/tools/documents/capability.py +331 -0
  47. package/src/ummaya/tools/documents/contracts.py +112 -0
  48. package/src/ummaya/tools/documents/conversion.py +521 -0
  49. package/src/ummaya/tools/documents/diff.py +275 -0
  50. package/src/ummaya/tools/documents/engines.py +163 -0
  51. package/src/ummaya/tools/documents/evaluation.py +291 -0
  52. package/src/ummaya/tools/documents/explicit_values.py +108 -0
  53. package/src/ummaya/tools/documents/fixtures.py +174 -0
  54. package/src/ummaya/tools/documents/format_completion_audit.py +471 -0
  55. package/src/ummaya/tools/documents/formats/__init__.py +2 -0
  56. package/src/ummaya/tools/documents/formats/archive.py +528 -0
  57. package/src/ummaya/tools/documents/formats/base.py +41 -0
  58. package/src/ummaya/tools/documents/formats/code_file.py +211 -0
  59. package/src/ummaya/tools/documents/formats/data_file.py +272 -0
  60. package/src/ummaya/tools/documents/formats/hwp.py +284 -0
  61. package/src/ummaya/tools/documents/formats/hwpx.py +1837 -0
  62. package/src/ummaya/tools/documents/formats/odf.py +435 -0
  63. package/src/ummaya/tools/documents/formats/ooxml.py +1030 -0
  64. package/src/ummaya/tools/documents/formats/passive.py +766 -0
  65. package/src/ummaya/tools/documents/formats/pdf.py +702 -0
  66. package/src/ummaya/tools/documents/formats/text_web.py +268 -0
  67. package/src/ummaya/tools/documents/hwp_conversion_probe.py +178 -0
  68. package/src/ummaya/tools/documents/hwp_direct_candidate.py +141 -0
  69. package/src/ummaya/tools/documents/inspection.py +289 -0
  70. package/src/ummaya/tools/documents/intake.py +1079 -0
  71. package/src/ummaya/tools/documents/legacy_office_promotion_probe.py +366 -0
  72. package/src/ummaya/tools/documents/models.py +1598 -0
  73. package/src/ummaya/tools/documents/odf_promotion_probe.py +167 -0
  74. package/src/ummaya/tools/documents/orchestrator.py +96 -0
  75. package/src/ummaya/tools/documents/passive_capability_probe.py +251 -0
  76. package/src/ummaya/tools/documents/patch.py +170 -0
  77. package/src/ummaya/tools/documents/pdfa_conformance.py +284 -0
  78. package/src/ummaya/tools/documents/pdfa_promotion_probe.py +198 -0
  79. package/src/ummaya/tools/documents/permissions.py +110 -0
  80. package/src/ummaya/tools/documents/planner.py +616 -0
  81. package/src/ummaya/tools/documents/registry.py +2733 -0
  82. package/src/ummaya/tools/documents/render.py +978 -0
  83. package/src/ummaya/tools/documents/render_comparison.py +113 -0
  84. package/src/ummaya/tools/documents/render_comparison_models.py +74 -0
  85. package/src/ummaya/tools/documents/render_comparison_regions.py +73 -0
  86. package/src/ummaya/tools/documents/render_comparison_style.py +161 -0
  87. package/src/ummaya/tools/documents/reread.py +157 -0
  88. package/src/ummaya/tools/documents/runtime_authoring.py +244 -0
  89. package/src/ummaya/tools/documents/runtime_authoring_bundle.py +76 -0
  90. package/src/ummaya/tools/documents/scorecard.py +184 -0
  91. package/src/ummaya/tools/documents/socratic_planner.py +193 -0
  92. package/src/ummaya/tools/documents/style.py +48 -0
  93. package/src/ummaya/tools/documents/tool_defs.py +523 -0
  94. package/src/ummaya/tools/documents/validate.py +347 -0
  95. package/src/ummaya/tools/executor.py +29 -0
  96. package/src/ummaya/tools/live_proxy.py +0 -3
  97. package/src/ummaya/tools/models.py +5 -1
  98. package/src/ummaya/tools/register_all.py +8 -0
  99. package/src/ummaya/tools/registry.py +10 -1
  100. package/src/ummaya/tools/routing/__init__.py +59 -0
  101. package/src/ummaya/tools/routing/builder.py +105 -0
  102. package/src/ummaya/tools/routing/cards.py +29 -0
  103. package/src/ummaya/tools/routing/decision_service.py +534 -0
  104. package/src/ummaya/tools/routing/decision_types.py +74 -0
  105. package/src/ummaya/tools/routing/feasibility.py +122 -0
  106. package/src/ummaya/tools/routing/intent.py +17 -0
  107. package/src/ummaya/tools/routing/intent_extractor.py +207 -0
  108. package/src/ummaya/tools/routing/intent_patterns.py +160 -0
  109. package/src/ummaya/tools/routing/intent_public_data.py +150 -0
  110. package/src/ummaya/tools/routing/intent_types.py +48 -0
  111. package/src/ummaya/tools/routing/lint.py +78 -0
  112. package/src/ummaya/tools/routing/metadata.py +174 -0
  113. package/src/ummaya/tools/routing/projection.py +340 -0
  114. package/src/ummaya/tools/routing/retrieval_policy.py +629 -0
  115. package/src/ummaya/tools/routing/schema.py +81 -0
  116. package/src/ummaya/tools/routing/types.py +96 -0
  117. package/src/ummaya/tools/routing_index.py +2 -2
  118. package/src/ummaya/tools/search.py +34 -746
  119. package/tests/fixtures/documents/public_forms/baselines.yaml +113 -0
  120. package/tui/package.json +1 -1
  121. package/tui/src/.cc-byte-identical-whitelist.yaml +266 -0
  122. package/tui/src/QueryEngine.ts +12 -8
  123. package/tui/src/bridge/inboundAttachments.ts +3 -3
  124. package/tui/src/cli/handlers/auth.ts +3 -12
  125. package/tui/src/cli/print.ts +7 -7
  126. package/tui/src/commands/insights.ts +1 -1
  127. package/tui/src/commands/install-github-app/types.ts +8 -30
  128. package/tui/src/commands/plugin/types.ts +6 -28
  129. package/tui/src/commands/plugin/unifiedTypes.ts +4 -26
  130. package/tui/src/commands/rename/generateSessionName.ts +1 -1
  131. package/tui/src/components/Feedback.tsx +1 -1
  132. package/tui/src/components/LogoV2/EmergencyTip.tsx +11 -2
  133. package/tui/src/components/LogoV2/WelcomeV2.tsx +1 -3
  134. package/tui/src/components/ScrollKeybindingHandler.tsx +6 -6
  135. package/tui/src/components/Spinner/types.ts +6 -28
  136. package/tui/src/components/agents/generateAgent.ts +1 -1
  137. package/tui/src/components/agents/new-agent-creation/types.ts +4 -26
  138. package/tui/src/components/config/EnvSecretIsolatedEditor.tsx +1 -1
  139. package/tui/src/components/mcp/types.ts +16 -38
  140. package/tui/src/components/messages/AssistantToolUseMessage.tsx +3 -2
  141. package/tui/src/components/messages/UserCrossSessionMessage.ts +16 -4
  142. package/tui/src/components/messages/UserForkBoilerplateMessage.ts +16 -4
  143. package/tui/src/components/messages/UserGitHubWebhookMessage.ts +16 -4
  144. package/tui/src/components/messages/UserToolResultMessage/utils.tsx +3 -2
  145. package/tui/src/components/permissions/MonitorPermissionRequest/MonitorPermissionRequest.ts +9 -4
  146. package/tui/src/components/permissions/ReviewArtifactPermissionRequest/ReviewArtifactPermissionRequest.ts +9 -4
  147. package/tui/src/components/primitive/DocumentSocraticReviewBlock.tsx +129 -0
  148. package/tui/src/components/primitive/DocumentToolResultCard.tsx +224 -0
  149. package/tui/src/components/primitive/documentSocraticReview.ts +215 -0
  150. package/tui/src/components/primitive/index.tsx +43 -1
  151. package/tui/src/components/primitive/types.ts +137 -0
  152. package/tui/src/components/ui/option.ts +4 -26
  153. package/tui/src/constants/common.ts +0 -2
  154. package/tui/src/constants/prompts.ts +4 -3
  155. package/tui/src/constants/querySource.ts +4 -26
  156. package/tui/src/entrypoints/sdk/controlTypes.ts +26 -48
  157. package/tui/src/entrypoints/sdk/coreTypes.generated.ts +3 -25
  158. package/tui/src/entrypoints/sdk/runtimeTypes.ts +38 -60
  159. package/tui/src/entrypoints/sdk/sdkUtilityTypes.ts +4 -26
  160. package/tui/src/entrypoints/sdk/settingsTypes.generated.ts +3 -25
  161. package/tui/src/entrypoints/sdk/toolTypes.ts +3 -25
  162. package/tui/src/hooks/toolPermission/handlers/interactiveHandler.ts +10 -0
  163. package/tui/src/hooks/useApiKeyVerification.ts +1 -1
  164. package/tui/src/hooks/useVirtualScroll.ts +1 -1
  165. package/tui/src/ink/ink.tsx +33 -14
  166. package/tui/src/ink/reconciler.ts +2 -3
  167. package/tui/src/ink/render-to-screen.ts +30 -10
  168. package/tui/src/ipc/bridge.ts +62 -15
  169. package/tui/src/ipc/bridgeSingleton.ts +5 -1
  170. package/tui/src/ipc/codec.ts +3 -3
  171. package/tui/src/ipc/frames.generated.ts +12 -12
  172. package/tui/src/ipc/llmClient.ts +151 -27
  173. package/tui/src/ipc/schema/frame.schema.json +1 -1
  174. package/tui/src/keybindings/defaultBindings.ts +4 -0
  175. package/tui/src/main.tsx +29 -11
  176. package/tui/src/native-ts/file-index/index.ts +33 -3
  177. package/tui/src/observability/surface.ts +2 -2
  178. package/tui/src/probes/toolRegistryProbe.tsx +3 -1
  179. package/tui/src/projectOnboardingState.ts +7 -6
  180. package/tui/src/query/chatMessageTypes.ts +18 -0
  181. package/tui/src/query/chatMessagesBuilder.ts +1 -1
  182. package/tui/src/query/deps.ts +1 -1
  183. package/tui/src/query/messageGuards.ts +106 -0
  184. package/tui/src/query/publicDataTerminalRepair.ts +384 -0
  185. package/tui/src/query/run.ts +1075 -0
  186. package/tui/src/query/supportBoundary.ts +168 -0
  187. package/tui/src/query/toolResultErrors.ts +103 -0
  188. package/tui/src/query/toolRunner.ts +687 -0
  189. package/tui/src/query/unavailableToolRepair.ts +118 -0
  190. package/tui/src/query.ts +9 -2186
  191. package/tui/src/screens/REPL.tsx +40 -29
  192. package/tui/src/services/api/adapterManifest.ts +4 -0
  193. package/tui/src/services/api/backendChat/events.ts +117 -0
  194. package/tui/src/services/api/backendChat/finalMessage.ts +40 -0
  195. package/tui/src/services/api/backendChat/frame.ts +9 -0
  196. package/tui/src/services/api/backendChat/streaming.ts +430 -0
  197. package/tui/src/services/api/backendChat/types.ts +62 -0
  198. package/tui/src/services/api/backendChat.ts +1 -0
  199. package/tui/src/services/api/client.ts +65 -2
  200. package/tui/src/services/api/errorUtils.ts +5 -5
  201. package/tui/src/services/api/errors.ts +1 -1
  202. package/tui/src/services/api/logging.ts +1 -1
  203. package/tui/src/services/api/ummaya/evidence.ts +194 -0
  204. package/tui/src/services/api/ummaya/messages.ts +255 -0
  205. package/tui/src/services/api/ummaya/nonStreaming.ts +66 -0
  206. package/tui/src/services/api/ummaya/provider.ts +200 -0
  207. package/tui/src/services/api/ummaya/reasoning.ts +24 -0
  208. package/tui/src/services/api/ummaya/request.ts +200 -0
  209. package/tui/src/services/api/ummaya/selectionContext.ts +240 -0
  210. package/tui/src/services/api/ummaya/streaming.ts +365 -0
  211. package/tui/src/services/api/ummaya/streamingPayload.ts +129 -0
  212. package/tui/src/services/api/ummaya/streamingReader.ts +40 -0
  213. package/tui/src/services/api/ummaya/toolSelection.ts +217 -0
  214. package/tui/src/services/api/ummaya/types.ts +110 -0
  215. package/tui/src/services/api/ummaya/usage.ts +30 -0
  216. package/tui/src/services/api/ummaya.ts +26 -418
  217. package/tui/src/services/api/withRetry.ts +1 -1
  218. package/tui/src/services/awaySummary.ts +2 -2
  219. package/tui/src/services/claudeAiLimits.ts +1 -1
  220. package/tui/src/services/compact/autoCompact.ts +1 -1
  221. package/tui/src/services/compact/compact.ts +1 -1
  222. package/tui/src/services/lsp/types.ts +8 -30
  223. package/tui/src/services/tips/types.ts +6 -28
  224. package/tui/src/services/tokenEstimation.ts +1 -1
  225. package/tui/src/services/toolRegistry/bootGuard.ts +5 -5
  226. package/tui/src/services/toolUseSummary/toolUseSummaryGenerator.ts +1 -1
  227. package/tui/src/services/tools/toolExecution.ts +94 -1
  228. package/tui/src/store/pendingPermissionSlot.ts +1 -1
  229. package/tui/src/store/session-store.ts +10 -36
  230. package/tui/src/stubs/any-stub.ts +15 -10
  231. package/tui/src/stubs/color-diff-napi.ts +37 -23
  232. package/tui/src/stubs/globals.d.ts +3 -3
  233. package/tui/src/stubs/macro-preload.ts +23 -12
  234. package/tui/src/tools/AdapterTool/AdapterTool.ts +1207 -714
  235. package/tui/src/tools/AdapterTool/routeDiagnostics.ts +75 -0
  236. package/tui/src/tools/AgentTool/AgentTool.tsx +84 -1371
  237. package/tui/src/tools/AgentTool/agentToolHandoff.ts +114 -0
  238. package/tui/src/tools/AgentTool/agentToolPartialResult.ts +16 -0
  239. package/tui/src/tools/AgentTool/agentToolProgress.ts +32 -0
  240. package/tui/src/tools/AgentTool/agentToolResolver.ts +161 -0
  241. package/tui/src/tools/AgentTool/agentToolResult.ts +163 -0
  242. package/tui/src/tools/AgentTool/agentToolUtils.ts +14 -686
  243. package/tui/src/tools/AgentTool/asyncAgentLifecycle.ts +208 -0
  244. package/tui/src/tools/AgentTool/asyncLifecycle.ts +153 -0
  245. package/tui/src/tools/AgentTool/backgroundedCompletion.ts +126 -0
  246. package/tui/src/tools/AgentTool/backgroundedLifecycle.ts +174 -0
  247. package/tui/src/tools/AgentTool/foregroundBackground.ts +83 -0
  248. package/tui/src/tools/AgentTool/foregroundDrain.tsx +133 -0
  249. package/tui/src/tools/AgentTool/foregroundFinalize.ts +98 -0
  250. package/tui/src/tools/AgentTool/foregroundLifecycle.tsx +237 -0
  251. package/tui/src/tools/AgentTool/foregroundProgress.tsx +169 -0
  252. package/tui/src/tools/AgentTool/foregroundTask.ts +89 -0
  253. package/tui/src/tools/AgentTool/forkSubagent.ts +1 -12
  254. package/tui/src/tools/AgentTool/forkSubagentGate.ts +34 -0
  255. package/tui/src/tools/AgentTool/launchRouting.ts +203 -0
  256. package/tui/src/tools/AgentTool/lifecycle.ts +244 -0
  257. package/tui/src/tools/AgentTool/mcpRouting.ts +73 -0
  258. package/tui/src/tools/AgentTool/orchestrationSupport.ts +70 -0
  259. package/tui/src/tools/AgentTool/permissions.ts +39 -0
  260. package/tui/src/tools/AgentTool/promptSetup.ts +181 -0
  261. package/tui/src/tools/AgentTool/remoteRouting.ts +62 -0
  262. package/tui/src/tools/AgentTool/resultMapping.ts +116 -0
  263. package/tui/src/tools/AgentTool/resumeAgent.ts +39 -107
  264. package/tui/src/tools/AgentTool/resumeAgentHelpers.ts +140 -0
  265. package/tui/src/tools/AgentTool/runAgent.ts +1 -1
  266. package/tui/src/tools/AgentTool/runtimeConfig.ts +57 -0
  267. package/tui/src/tools/AgentTool/schemas.ts +196 -0
  268. package/tui/src/tools/AgentTool/sourceVerificationPropagation.ts +263 -0
  269. package/tui/src/tools/AgentTool/worktreeLifecycle.ts +105 -0
  270. package/tui/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx +174 -202
  271. package/tui/src/tools/BashTool/BashTool.tsx +71 -1072
  272. package/tui/src/tools/BashTool/bashCommandHelpers.ts +12 -12
  273. package/tui/src/tools/BashTool/bashPermissions/astPreflight.ts +173 -0
  274. package/tui/src/tools/BashTool/bashPermissions/classifierChecks.ts +199 -0
  275. package/tui/src/tools/BashTool/bashPermissions/compoundGuards.ts +53 -0
  276. package/tui/src/tools/BashTool/bashPermissions/constants.ts +99 -0
  277. package/tui/src/tools/BashTool/bashPermissions/index.ts +38 -0
  278. package/tui/src/tools/BashTool/bashPermissions/legacyMisparsing.ts +62 -0
  279. package/tui/src/tools/BashTool/bashPermissions/main.ts +135 -0
  280. package/tui/src/tools/BashTool/bashPermissions/normalizedCommands.ts +33 -0
  281. package/tui/src/tools/BashTool/bashPermissions/operatorFlow.ts +98 -0
  282. package/tui/src/tools/BashTool/bashPermissions/permissionChecks.ts +200 -0
  283. package/tui/src/tools/BashTool/bashPermissions/prefixSuggestions.ts +88 -0
  284. package/tui/src/tools/BashTool/bashPermissions/promptClassifierRules.ts +125 -0
  285. package/tui/src/tools/BashTool/bashPermissions/ruleDelegates.ts +19 -0
  286. package/tui/src/tools/BashTool/bashPermissions/ruleMatching.ts +145 -0
  287. package/tui/src/tools/BashTool/bashPermissions/sandboxAutoAllow.ts +75 -0
  288. package/tui/src/tools/BashTool/bashPermissions/subcommandFlow.ts +205 -0
  289. package/tui/src/tools/BashTool/bashPermissions/subcommandGuards.ts +73 -0
  290. package/tui/src/tools/BashTool/bashPermissions/subcommandResultHelpers.ts +116 -0
  291. package/tui/src/tools/BashTool/bashPermissions/types.ts +26 -0
  292. package/tui/src/tools/BashTool/bashPermissions/wrapperStripping.ts +139 -0
  293. package/tui/src/tools/BashTool/bashPermissions.ts +26 -2621
  294. package/tui/src/tools/BashTool/call.ts +202 -0
  295. package/tui/src/tools/BashTool/callLoader.ts +35 -0
  296. package/tui/src/tools/BashTool/commandClassification.ts +151 -0
  297. package/tui/src/tools/BashTool/commandClassificationLoader.ts +40 -0
  298. package/tui/src/tools/BashTool/cwdReset.ts +33 -0
  299. package/tui/src/tools/BashTool/lineTruncation.ts +11 -0
  300. package/tui/src/tools/BashTool/modeValidation.ts +13 -1
  301. package/tui/src/tools/BashTool/outputPersistence.ts +42 -0
  302. package/tui/src/tools/BashTool/permissionClassification.ts +66 -0
  303. package/tui/src/tools/BashTool/permissionLoader.ts +44 -0
  304. package/tui/src/tools/BashTool/resultLoader.ts +29 -0
  305. package/tui/src/tools/BashTool/resultMapping.ts +83 -0
  306. package/tui/src/tools/BashTool/sandboxPolicy.ts +79 -0
  307. package/tui/src/tools/BashTool/schemas.ts +65 -0
  308. package/tui/src/tools/BashTool/sedEditExecution.ts +59 -0
  309. package/tui/src/tools/BashTool/shellExecution.tsx +245 -0
  310. package/tui/src/tools/BashTool/shellOutputUtils.ts +85 -0
  311. package/tui/src/tools/BashTool/shellPermissionGauntlet.ts +97 -0
  312. package/tui/src/tools/BashTool/uiLoader.ts +37 -0
  313. package/tui/src/tools/BriefTool/upload.ts +1 -1
  314. package/tui/src/tools/CalculatorTool/parser.ts +2 -2
  315. package/tui/src/tools/DocumentPrimitive/DocumentPrimitive.ts +262 -0
  316. package/tui/src/tools/DocumentPrimitive/dispatchNormalization.ts +270 -0
  317. package/tui/src/tools/DocumentPrimitive/documentDestinationPath.ts +18 -0
  318. package/tui/src/tools/DocumentPrimitive/documentMutationGuard.ts +22 -0
  319. package/tui/src/tools/DocumentPrimitive/documentPatchNormalization.ts +248 -0
  320. package/tui/src/tools/DocumentPrimitive/documentSourceVerification.ts +245 -0
  321. package/tui/src/tools/DocumentPrimitive/documentSourceVerificationFields.ts +103 -0
  322. package/tui/src/tools/DocumentPrimitive/modelVisibleOutput.ts +40 -0
  323. package/tui/src/tools/DocumentPrimitive/prompt.ts +35 -0
  324. package/tui/src/tools/FileEditTool/FileEditTool.ts +9 -507
  325. package/tui/src/tools/FileEditTool/call.ts +228 -0
  326. package/tui/src/tools/FileEditTool/validateInput.ts +196 -0
  327. package/tui/src/tools/FileReadTool/imageProcessor.ts +13 -0
  328. package/tui/src/tools/FileWriteTool/FileWriteTool.ts +7 -300
  329. package/tui/src/tools/FileWriteTool/call.ts +223 -0
  330. package/tui/src/tools/FileWriteTool/validateInput.ts +80 -0
  331. package/tui/src/tools/ListMcpResourcesTool/ListMcpResourcesTool.ts +19 -3
  332. package/tui/src/tools/LookupPrimitive/LookupPrimitive.ts +25 -32
  333. package/tui/src/tools/LookupPrimitive/prompt.ts +0 -2
  334. package/tui/src/tools/MCPTool/trustPolicy.ts +118 -0
  335. package/tui/src/tools/McpAuthTool/McpAuthTool.ts +21 -3
  336. package/tui/src/tools/NotebookEditTool/NotebookEditTool.ts +7 -326
  337. package/tui/src/tools/NotebookEditTool/call.ts +254 -0
  338. package/tui/src/tools/NotebookEditTool/notebookModel.ts +51 -0
  339. package/tui/src/tools/NotebookEditTool/validateInput.ts +142 -0
  340. package/tui/src/tools/PowerShellTool/PowerShellTool.tsx +46 -937
  341. package/tui/src/tools/PowerShellTool/acceptEditsCommandValidation.ts +162 -0
  342. package/tui/src/tools/PowerShellTool/call.ts +179 -0
  343. package/tui/src/tools/PowerShellTool/callLoader.ts +37 -0
  344. package/tui/src/tools/PowerShellTool/commandClassification.ts +86 -0
  345. package/tui/src/tools/PowerShellTool/modeValidation.ts +25 -332
  346. package/tui/src/tools/PowerShellTool/outputPersistence.ts +42 -0
  347. package/tui/src/tools/PowerShellTool/permissionClassification.ts +28 -0
  348. package/tui/src/tools/PowerShellTool/resultLoader.ts +31 -0
  349. package/tui/src/tools/PowerShellTool/resultMapping.ts +75 -0
  350. package/tui/src/tools/PowerShellTool/schemas.ts +40 -0
  351. package/tui/src/tools/PowerShellTool/shellExecution.tsx +258 -0
  352. package/tui/src/tools/PowerShellTool/symlinkModeValidation.ts +44 -0
  353. package/tui/src/tools/PowerShellTool/uiLoader.ts +37 -0
  354. package/tui/src/tools/PowerShellTool/validation.ts +39 -0
  355. package/tui/src/tools/ReadMcpResourceTool/ReadMcpResourceTool.ts +19 -3
  356. package/tui/src/tools/ResolveLocationPrimitive/ResolveLocationPrimitive.ts +1 -11
  357. package/tui/src/tools/ResolveLocationPrimitive/prompt.ts +2 -6
  358. package/tui/src/tools/SkillTool/SkillTool.ts +2 -2
  359. package/tui/src/tools/SubmitPrimitive/SubmitPrimitive.ts +27 -10
  360. package/tui/src/tools/TaskCreateTool/TaskCreateTool.ts +16 -2
  361. package/tui/src/tools/TaskGetTool/TaskGetTool.ts +23 -3
  362. package/tui/src/tools/TaskListTool/TaskListTool.ts +22 -4
  363. package/tui/src/tools/TaskOutputTool/TaskOutputTool.tsx +46 -547
  364. package/tui/src/tools/TaskOutputTool/lookup.ts +216 -0
  365. package/tui/src/tools/TaskOutputTool/render.tsx +257 -0
  366. package/tui/src/tools/TaskOutputTool/schemas.ts +55 -0
  367. package/tui/src/tools/TaskOutputTool/serialization.ts +36 -0
  368. package/tui/src/tools/TaskStopTool/TaskStopTool.ts +10 -0
  369. package/tui/src/tools/TaskUpdateTool/TaskUpdateTool.ts +14 -364
  370. package/tui/src/tools/TaskUpdateTool/completion.ts +62 -0
  371. package/tui/src/tools/TaskUpdateTool/schemas.ts +62 -0
  372. package/tui/src/tools/TaskUpdateTool/serialization.ts +46 -0
  373. package/tui/src/tools/TaskUpdateTool/statusUpdate.ts +247 -0
  374. package/tui/src/tools/TodoWriteTool/TodoWriteTool.ts +21 -2
  375. package/tui/src/tools/ToolSearchTool/ToolSearchTool.ts +21 -302
  376. package/tui/src/tools/ToolSearchTool/ccSupportTools.ts +223 -0
  377. package/tui/src/tools/ToolSearchTool/descriptionCache.ts +50 -0
  378. package/tui/src/tools/ToolSearchTool/keywordSearch.ts +216 -0
  379. package/tui/src/tools/ToolSearchTool/prompt.ts +10 -4
  380. package/tui/src/tools/ToolSearchTool/resultMapping.ts +30 -0
  381. package/tui/src/tools/ToolSearchTool/schemas.ts +30 -0
  382. package/tui/src/tools/ToolSearchTool/searchPool.ts +47 -0
  383. package/tui/src/tools/ToolSearchTool/supportIntentHints.ts +140 -0
  384. package/tui/src/tools/TranslateTool/TranslateTool.ts +1 -1
  385. package/tui/src/tools/VerifyPrimitive/VerifyPrimitive.ts +2 -1
  386. package/tui/src/tools/WebFetchTool/WebFetchTool.ts +43 -138
  387. package/tui/src/tools/WebFetchTool/call.ts +227 -0
  388. package/tui/src/tools/WebFetchTool/resolvedAddressSafety.ts +78 -0
  389. package/tui/src/tools/WebFetchTool/sourceVerification.ts +204 -0
  390. package/tui/src/tools/WebFetchTool/types.ts +23 -0
  391. package/tui/src/tools/WebFetchTool/urlSafety.ts +181 -0
  392. package/tui/src/tools/WebFetchTool/utils.ts +1 -1
  393. package/tui/src/tools/WebSearchTool/UI.tsx +0 -1
  394. package/tui/src/tools/WebSearchTool/WebSearchTool.ts +9 -313
  395. package/tui/src/tools/WebSearchTool/call.ts +33 -0
  396. package/tui/src/tools/WebSearchTool/responseMapping.ts +190 -0
  397. package/tui/src/tools/WebSearchTool/resultBlock.ts +47 -0
  398. package/tui/src/tools/WebSearchTool/schemas.ts +47 -0
  399. package/tui/src/tools/WebSearchTool/toolSchema.ts +12 -0
  400. package/tui/src/tools/WorkspaceToolAdapter/WorkspaceToolAdapter.ts +79 -0
  401. package/tui/src/tools/WorkspaceToolAdapter/allowedRootPolicy.ts +85 -0
  402. package/tui/src/tools/WorkspaceToolAdapter/documentFormatGuards.ts +73 -0
  403. package/tui/src/tools/WorkspaceToolAdapter/inputNormalization.ts +105 -0
  404. package/tui/src/tools/WorkspaceToolAdapter/mcpExposurePolicy.ts +64 -0
  405. package/tui/src/tools/WorkspaceToolAdapter/toolDefFactory.ts +215 -0
  406. package/tui/src/tools/WorkspaceToolAdapter/toolNames.ts +6 -0
  407. package/tui/src/tools/WorkspaceToolAdapter/workspacePolicy.ts +15 -0
  408. package/tui/src/tools/_shared/dispatchPrimitive.ts +6 -6
  409. package/tui/src/tools/_shared/documentChangeToPatch.ts +125 -0
  410. package/tui/src/tools/_shared/documentDispatchArguments.ts +87 -0
  411. package/tui/src/tools/_shared/documentPrimitiveTimeout.ts +13 -0
  412. package/tui/src/tools/_shared/documentToolResultRender.ts +98 -0
  413. package/tui/src/tools/_shared/pendingCallRegistry.ts +1 -6
  414. package/tui/src/tools/_shared/rootPrimitiveInput.ts +1 -0
  415. package/tui/src/tools/_shared/toolChoiceRepair/documentCompletionPatterns.ts +58 -0
  416. package/tui/src/tools/_shared/toolChoiceRepair/documentCompletionPrompt.ts +271 -0
  417. package/tui/src/tools/_shared/toolChoiceRepair/documentRepair.ts +452 -0
  418. package/tui/src/tools/_shared/toolChoiceRepair/messageAccess.ts +80 -0
  419. package/tui/src/tools/_shared/toolChoiceRepair/publicDataRepair.ts +92 -0
  420. package/tui/src/tools/_shared/toolChoiceRepair/supportRepair.ts +135 -0
  421. package/tui/src/tools/_shared/toolChoiceRepair.ts +55 -860
  422. package/tui/src/tools/shared/mockDisclaimer.ts +1 -1
  423. package/tui/src/tools.ts +39 -190
  424. package/tui/src/types/fileSuggestion.ts +4 -26
  425. package/tui/src/types/generated/events_mono/claude_code/v1/claude_code_internal_event.ts +186 -148
  426. package/tui/src/types/generated/events_mono/common/v1/auth.ts +25 -11
  427. package/tui/src/types/generated/events_mono/growthbook/v1/growthbook_experiment_event.ts +47 -30
  428. package/tui/src/types/generated/google/protobuf/timestamp.ts +21 -7
  429. package/tui/src/types/message.ts +80 -102
  430. package/tui/src/types/messageQueueTypes.ts +6 -28
  431. package/tui/src/types/notebook.ts +16 -38
  432. package/tui/src/types/statusLine.ts +4 -26
  433. package/tui/src/types/tools.ts +24 -46
  434. package/tui/src/types/utils.ts +6 -28
  435. package/tui/src/upstreamproxy/relay.ts +7 -3
  436. package/tui/src/upstreamproxy/upstreamproxy.ts +1 -1
  437. package/tui/src/utils/assistantMessageFactories.ts +9 -3
  438. package/tui/src/utils/auth.ts +129 -139
  439. package/tui/src/utils/bash/ast.ts +23 -23
  440. package/tui/src/utils/bash/bashParser.ts +5 -5
  441. package/tui/src/utils/billing.ts +1 -1
  442. package/tui/src/utils/collapseReadSearch.ts +3 -3
  443. package/tui/src/utils/cronTasks.ts +1 -1
  444. package/tui/src/utils/execFileNoThrow.ts +1 -1
  445. package/tui/src/utils/filePersistence/types.ts +16 -38
  446. package/tui/src/utils/forkedAgent.ts +1 -1
  447. package/tui/src/utils/gracefulShutdown.ts +4 -4
  448. package/tui/src/utils/heapDumpService.ts +12 -8
  449. package/tui/src/utils/hooks/apiQueryHookHelper.ts +1 -1
  450. package/tui/src/utils/hooks/execPromptHook.ts +1 -1
  451. package/tui/src/utils/hooks/skillImprovement.ts +1 -1
  452. package/tui/src/utils/mcp/dateTimeParser.ts +1 -1
  453. package/tui/src/utils/messages.ts +18 -0
  454. package/tui/src/utils/migrateSessions.ts +3 -3
  455. package/tui/src/utils/model/model.ts +6 -6
  456. package/tui/src/utils/permissions/yoloClassifier.ts +1 -1
  457. package/tui/src/utils/plugins/headlessPluginInstall.ts +1 -1
  458. package/tui/src/utils/plugins/mcpPluginIntegration.ts +1 -1
  459. package/tui/src/utils/plugins/mcpbHandler.ts +1 -1
  460. package/tui/src/utils/plugins/pluginLoader.ts +8 -8
  461. package/tui/src/utils/protectedNamespace.ts +5 -3
  462. package/tui/src/utils/rawJsonToolCall.ts +242 -0
  463. package/tui/src/utils/ripgrep.ts +16 -7
  464. package/tui/src/utils/sessionTitle.ts +1 -1
  465. package/tui/src/utils/settings/permissionValidation.ts +14 -2
  466. package/tui/src/utils/shell/prefix.ts +1 -1
  467. package/tui/src/utils/sideQuery.ts +1 -1
  468. package/tui/src/utils/systemThemeWatcher.ts +13 -3
  469. package/tui/src/utils/teleport.tsx +1 -1
  470. package/uv.lock +400 -14
  471. package/tui/src/services/api/claude.ts +0 -3540
  472. package/tui/src/tools/_shared/directPublicDataGuard.ts +0 -362
  473. package/tui/src/tools/_shared/kmaAnalysisGuard.ts +0 -197
  474. package/tui/src/tools/_shared/kmaAviationGuard.ts +0 -70
  475. package/tui/src/tools/_shared/nmcAedGuard.ts +0 -234
  476. package/tui/src/tools/_shared/protectedCheckGuard.ts +0 -207
  477. package/tui/src/tools/_shared/textToolCallGuard.ts +0 -91
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // UMMAYA-original — Audit-2 P0 fix · mock disclaimer helpers.
3
3
  //
4
- // Citizen-safety directive: any tool result whose payload contains
4
+ // Citizen-safety directive: each tool result whose payload contains
5
5
  // ``_mode === "mock"`` MUST display a prominent disclaimer so citizens
6
6
  // immediately recognise that no real administrative action was taken.
7
7
  //
package/tui/src/tools.ts CHANGED
@@ -6,163 +6,36 @@ import { LookupPrimitive } from './tools/LookupPrimitive/LookupPrimitive.js'
6
6
  import { ResolveLocationPrimitive } from './tools/ResolveLocationPrimitive/ResolveLocationPrimitive.js'
7
7
  import { SubmitPrimitive } from './tools/SubmitPrimitive/SubmitPrimitive.js'
8
8
  import { VerifyPrimitive } from './tools/VerifyPrimitive/VerifyPrimitive.js'
9
+ import { DocumentPrimitive } from './tools/DocumentPrimitive/DocumentPrimitive.js'
9
10
  import { getAdapterTools } from './tools/AdapterTool/AdapterTool.js'
10
- import { TranslateTool } from './tools/TranslateTool/TranslateTool.js'
11
- import { CalculatorTool } from './tools/CalculatorTool/CalculatorTool.js'
12
- import { DateParserTool } from './tools/DateParserTool/DateParserTool.js'
13
- import { ExportPDFTool } from './tools/ExportPDFTool/ExportPDFTool.js'
14
- import { BashTool } from './tools/BashTool/BashTool.js'
15
- import { FileEditTool } from './tools/FileEditTool/FileEditTool.js'
16
- import { FileReadTool } from './tools/FileReadTool/FileReadTool.js'
17
- import { FileWriteTool } from './tools/FileWriteTool/FileWriteTool.js'
18
- import { GlobTool } from './tools/GlobTool/GlobTool.js'
19
- import { NotebookEditTool } from './tools/NotebookEditTool/NotebookEditTool.js'
20
- import { WebFetchTool } from './tools/WebFetchTool/WebFetchTool.js'
21
- import { TaskStopTool } from './tools/TaskStopTool/TaskStopTool.js'
22
- import { BriefTool } from './tools/BriefTool/BriefTool.js'
23
- // Dead code elimination: conditional import for ant-only tools
24
- /* eslint-disable custom-rules/no-process-env-top-level, @typescript-eslint/no-require-imports */
25
- const REPLTool =
26
- process.env.USER_TYPE === 'ant'
27
- ? require('./tools/REPLTool/REPLTool.js').REPLTool
28
- : null
29
- const SuggestBackgroundPRTool =
30
- process.env.USER_TYPE === 'ant'
31
- ? require('./tools/SuggestBackgroundPRTool/SuggestBackgroundPRTool.js')
32
- .SuggestBackgroundPRTool
33
- : null
34
- const SleepTool =
35
- feature('PROACTIVE') || feature('KAIROS')
36
- ? require('./tools/SleepTool/SleepTool.js').SleepTool
37
- : null
38
- const cronTools = feature('AGENT_TRIGGERS')
39
- ? [
40
- require('./tools/ScheduleCronTool/CronCreateTool.js').CronCreateTool,
41
- require('./tools/ScheduleCronTool/CronDeleteTool.js').CronDeleteTool,
42
- require('./tools/ScheduleCronTool/CronListTool.js').CronListTool,
43
- ]
44
- : []
45
- const RemoteTriggerTool = feature('AGENT_TRIGGERS_REMOTE')
46
- ? require('./tools/RemoteTriggerTool/RemoteTriggerTool.js').RemoteTriggerTool
47
- : null
48
- const MonitorTool = feature('MONITOR_TOOL')
49
- ? require('./tools/MonitorTool/MonitorTool.js').MonitorTool
50
- : null
51
- const SendUserFileTool = feature('KAIROS')
52
- ? require('./tools/SendUserFileTool/SendUserFileTool.js').SendUserFileTool
53
- : null
54
- const PushNotificationTool =
55
- feature('KAIROS') || feature('KAIROS_PUSH_NOTIFICATION')
56
- ? require('./tools/PushNotificationTool/PushNotificationTool.js')
57
- .PushNotificationTool
58
- : null
59
- const SubscribePRTool = feature('KAIROS_GITHUB_WEBHOOKS')
60
- ? require('./tools/SubscribePRTool/SubscribePRTool.js').SubscribePRTool
61
- : null
62
- /* eslint-enable custom-rules/no-process-env-top-level, @typescript-eslint/no-require-imports */
63
- import { TaskOutputTool } from './tools/TaskOutputTool/TaskOutputTool.js'
64
- import { WebSearchTool } from './tools/WebSearchTool/WebSearchTool.js'
65
- import { TodoWriteTool } from './tools/TodoWriteTool/TodoWriteTool.js'
66
- import { ExitPlanModeV2Tool } from './tools/ExitPlanModeTool/ExitPlanModeV2Tool.js'
67
- import { TestingPermissionTool } from './tools/testing/TestingPermissionTool.js'
68
- import { GrepTool } from './tools/GrepTool/GrepTool.js'
69
- import { TungstenTool } from './tools/TungstenTool/TungstenTool.js'
70
- // Lazy require to break circular dependency: tools.ts -> TeamCreateTool/TeamDeleteTool -> ... -> tools.ts
71
- /* eslint-disable @typescript-eslint/no-require-imports */
72
- const getTeamCreateTool = () =>
73
- require('./tools/TeamCreateTool/TeamCreateTool.js')
74
- .TeamCreateTool as typeof import('./tools/TeamCreateTool/TeamCreateTool.js').TeamCreateTool
75
- const getTeamDeleteTool = () =>
76
- require('./tools/TeamDeleteTool/TeamDeleteTool.js')
77
- .TeamDeleteTool as typeof import('./tools/TeamDeleteTool/TeamDeleteTool.js').TeamDeleteTool
78
- const getSendMessageTool = () =>
79
- require('./tools/SendMessageTool/SendMessageTool.js')
80
- .SendMessageTool as typeof import('./tools/SendMessageTool/SendMessageTool.js').SendMessageTool
81
- /* eslint-enable @typescript-eslint/no-require-imports */
82
- import { AskUserQuestionTool } from './tools/AskUserQuestionTool/AskUserQuestionTool.js'
83
- import { LSPTool } from './tools/LSPTool/LSPTool.js'
84
- import { ListMcpResourcesTool } from './tools/ListMcpResourcesTool/ListMcpResourcesTool.js'
85
- import { ReadMcpResourceTool } from './tools/ReadMcpResourceTool/ReadMcpResourceTool.js'
86
11
  import { ToolSearchTool } from './tools/ToolSearchTool/ToolSearchTool.js'
87
- import { EnterPlanModeTool } from './tools/EnterPlanModeTool/EnterPlanModeTool.js'
88
- import { EnterWorktreeTool } from './tools/EnterWorktreeTool/EnterWorktreeTool.js'
89
- import { ExitWorktreeTool } from './tools/ExitWorktreeTool/ExitWorktreeTool.js'
90
- import { ConfigTool } from './tools/ConfigTool/ConfigTool.js'
91
- import { TaskCreateTool } from './tools/TaskCreateTool/TaskCreateTool.js'
92
- import { TaskGetTool } from './tools/TaskGetTool/TaskGetTool.js'
93
- import { TaskUpdateTool } from './tools/TaskUpdateTool/TaskUpdateTool.js'
94
- import { TaskListTool } from './tools/TaskListTool/TaskListTool.js'
12
+ import { getWorkspaceTools } from './tools/WorkspaceToolAdapter/WorkspaceToolAdapter.js'
95
13
  import uniqBy from 'lodash-es/uniqBy.js'
96
- import { isToolSearchEnabledOptimistic } from './utils/toolSearch.js'
97
- import { isTodoV2Enabled } from './utils/tasks.js'
98
- // Dead code elimination: conditional import for CLAUDE_CODE_VERIFY_PLAN
99
- /* eslint-disable custom-rules/no-process-env-top-level, @typescript-eslint/no-require-imports */
100
- const VerifyPlanExecutionTool =
101
- process.env.CLAUDE_CODE_VERIFY_PLAN === 'true'
102
- ? require('./tools/VerifyPlanExecutionTool/VerifyPlanExecutionTool.js')
103
- .VerifyPlanExecutionTool
104
- : null
105
- /* eslint-enable custom-rules/no-process-env-top-level, @typescript-eslint/no-require-imports */
106
- import { SYNTHETIC_OUTPUT_TOOL_NAME } from './tools/SyntheticOutputTool/SyntheticOutputTool.js'
107
14
  export {
108
15
  ALL_AGENT_DISALLOWED_TOOLS,
109
16
  CUSTOM_AGENT_DISALLOWED_TOOLS,
110
17
  ASYNC_AGENT_ALLOWED_TOOLS,
111
18
  COORDINATOR_MODE_ALLOWED_TOOLS,
112
19
  } from './constants/tools.js'
113
- import { feature } from 'bun:bundle'
114
- // Dead code elimination: conditional import for OVERFLOW_TEST_TOOL
115
- /* eslint-disable custom-rules/no-process-env-top-level, @typescript-eslint/no-require-imports */
116
- const OverflowTestTool = feature('OVERFLOW_TEST_TOOL')
117
- ? require('./tools/OverflowTestTool/OverflowTestTool.js').OverflowTestTool
118
- : null
119
- const CtxInspectTool = feature('CONTEXT_COLLAPSE')
120
- ? require('./tools/CtxInspectTool/CtxInspectTool.js').CtxInspectTool
121
- : null
122
- const TerminalCaptureTool = feature('TERMINAL_PANEL')
123
- ? require('./tools/TerminalCaptureTool/TerminalCaptureTool.js')
124
- .TerminalCaptureTool
125
- : null
126
- const WebBrowserTool = feature('WEB_BROWSER_TOOL')
127
- ? require('./tools/WebBrowserTool/WebBrowserTool.js').WebBrowserTool
128
- : null
129
- const coordinatorModeModule = feature('COORDINATOR_MODE')
130
- ? (require('./coordinator/coordinatorMode.js') as typeof import('./coordinator/coordinatorMode.js'))
131
- : null
132
- const SnipTool = feature('HISTORY_SNIP')
133
- ? require('./tools/SnipTool/SnipTool.js').SnipTool
134
- : null
135
- const ListPeersTool = feature('UDS_INBOX')
136
- ? require('./tools/ListPeersTool/ListPeersTool.js').ListPeersTool
137
- : null
138
- const WorkflowTool = feature('WORKFLOW_SCRIPTS')
139
- ? (() => {
140
- require('./tools/WorkflowTool/bundled/index.js').initBundledWorkflows()
141
- return require('./tools/WorkflowTool/WorkflowTool.js').WorkflowTool
142
- })()
143
- : null
144
- /* eslint-enable custom-rules/no-process-env-top-level, @typescript-eslint/no-require-imports */
145
20
  import type { ToolPermissionContext } from './Tool.js'
146
21
  import { getDenyRuleForTool } from './utils/permissions/permissions.js'
147
- import { hasEmbeddedSearchTools } from './utils/embeddedTools.js'
148
22
  import { isEnvTruthy } from './utils/envUtils.js'
149
- import { isPowerShellToolEnabled } from './utils/shell/shellToolUtils.js'
150
- import { isAgentSwarmsEnabled } from './utils/agentSwarmsEnabled.js'
151
- import { isWorktreeModeEnabled } from './utils/worktreeModeEnabled.js'
152
23
  import {
24
+ areCcSupportToolsEnabled,
25
+ getCcSupportCapabilityTools,
26
+ getSupportSimpleModeTools,
153
27
  REPL_TOOL_NAME,
154
28
  REPL_ONLY_TOOLS,
155
29
  isReplModeEnabled,
156
- } from './tools/REPLTool/constants.js'
157
- export { REPL_ONLY_TOOLS }
158
- /* eslint-disable @typescript-eslint/no-require-imports */
159
- const getPowerShellTool = () => {
160
- if (!isPowerShellToolEnabled()) return null
161
- return (
162
- require('./tools/PowerShellTool/PowerShellTool.js') as typeof import('./tools/PowerShellTool/PowerShellTool.js')
163
- ).PowerShellTool
164
- }
165
- /* eslint-enable @typescript-eslint/no-require-imports */
30
+ } from './tools/ToolSearchTool/ccSupportTools.js'
31
+ import { isModelFacingMcpTool } from './tools/WorkspaceToolAdapter/mcpExposurePolicy.js'
32
+
33
+ export { REPL_ONLY_TOOLS, areCcSupportToolsEnabled }
34
+ export {
35
+ MCP_MODEL_EXPOSURE_SERVER_CLASSES,
36
+ classifyMcpServerForModelExposure,
37
+ type McpModelExposureServerClass,
38
+ } from './tools/WorkspaceToolAdapter/mcpExposurePolicy.js'
166
39
 
167
40
  /**
168
41
  * Predefined tool presets that can be used with --tools flag
@@ -186,7 +59,7 @@ export function parseToolPreset(preset: string): ToolPreset | null {
186
59
  * @returns Array of tool names
187
60
  */
188
61
  export function getToolsForDefaultPreset(): string[] {
189
- const tools = getAllBaseTools()
62
+ const tools = getModelFacingBaseTools()
190
63
  const isEnabled = tools.map(tool => tool.isEnabled())
191
64
  return tools.filter((_, i) => isEnabled[i]).map(tool => tool.name)
192
65
  }
@@ -199,7 +72,7 @@ export function getToolsForDefaultPreset(): string[] {
199
72
  /**
200
73
  * NOTE: This MUST stay in sync with https://console.statsig.com/4aF3Ewatb6xPVpCwxb5nA3/dynamic_configs/claude_code_global_system_caching, in order to cache the system prompt across users.
201
74
  */
202
- export function getAllBaseTools(): Tools {
75
+ export function getModelFacingBaseTools(): Tools {
203
76
  return [
204
77
  // UMMAYA tool-surface swap: keep Claude Code's registry shape, but make
205
78
  // the built-in model-facing catalog the Korean public-service primitives.
@@ -208,9 +81,18 @@ export function getAllBaseTools(): Tools {
208
81
  ResolveLocationPrimitive,
209
82
  SubmitPrimitive,
210
83
  VerifyPrimitive,
84
+ DocumentPrimitive,
85
+ ...getWorkspaceTools(),
211
86
  ]
212
87
  }
213
88
 
89
+ export function getAllBaseTools(): Tools {
90
+ return uniqBy(
91
+ [...getModelFacingBaseTools(), ...getCcSupportCapabilityTools()],
92
+ 'name',
93
+ )
94
+ }
95
+
214
96
  /**
215
97
  * Filters out tools that are blanket-denied by the permission context.
216
98
  * A tool is filtered out if there's a deny rule matching its name with no
@@ -229,56 +111,19 @@ export function filterToolsByDenyRules<
229
111
  return tools.filter(tool => !getDenyRuleForTool(permissionContext, tool))
230
112
  }
231
113
 
232
- function isUmmayaModelFacingMcpTool(tool: {
233
- name: string
234
- mcpInfo?: { serverName: string; toolName: string }
235
- }): boolean {
236
- return (
237
- tool.mcpInfo?.serverName === 'ummaya' ||
238
- tool.name.startsWith('mcp__ummaya__')
239
- )
240
- }
241
-
242
114
  export const getTools = (permissionContext: ToolPermissionContext): Tools => {
243
- // Simple mode: only Bash, Read, and Edit tools
244
115
  if (isEnvTruthy(process.env.CLAUDE_CODE_SIMPLE)) {
245
- // --bare + REPL mode: REPL wraps Bash/Read/Edit/etc inside the VM, so
246
- // return REPL instead of the raw primitives. Matches the non-bare path
247
- // below which also hides REPL_ONLY_TOOLS when REPL is enabled.
248
- if (isReplModeEnabled() && REPLTool) {
249
- const replSimple: Tool[] = getAllBaseTools()
250
- if (
251
- feature('COORDINATOR_MODE') &&
252
- coordinatorModeModule?.isCoordinatorMode()
253
- ) {
254
- replSimple.push(TaskStopTool, getSendMessageTool())
255
- }
256
- return filterToolsByDenyRules(replSimple, permissionContext)
257
- }
258
- const simpleTools: Tool[] = getAllBaseTools()
259
- // When coordinator mode is also active, include AgentTool and TaskStopTool
260
- // so the coordinator gets Task+TaskStop (via useMergedTools filtering) and
261
- // workers get Bash/Read/Edit (via filterToolsForAgent filtering).
262
- if (
263
- feature('COORDINATOR_MODE') &&
264
- coordinatorModeModule?.isCoordinatorMode()
265
- ) {
266
- simpleTools.push(AgentTool, TaskStopTool, getSendMessageTool())
267
- }
268
- return filterToolsByDenyRules(simpleTools, permissionContext)
116
+ return filterToolsByDenyRules(
117
+ getSupportSimpleModeTools(getModelFacingBaseTools()),
118
+ permissionContext,
119
+ )
269
120
  }
270
121
 
271
- // Get all base tools and filter out special tools that get added conditionally
272
- const specialTools = new Set([
273
- ListMcpResourcesTool.name,
274
- ReadMcpResourceTool.name,
275
- SYNTHETIC_OUTPUT_TOOL_NAME,
276
- ])
277
-
278
- const tools = getAllBaseTools().filter(tool => !specialTools.has(tool.name))
279
-
280
122
  // Filter out tools that are denied by the deny rules
281
- let allowedTools = filterToolsByDenyRules(tools, permissionContext)
123
+ let allowedTools = filterToolsByDenyRules(
124
+ getModelFacingBaseTools(),
125
+ permissionContext,
126
+ )
282
127
 
283
128
  // When REPL mode is enabled, hide primitive tools from direct use.
284
129
  // They're still accessible inside REPL via the VM context.
@@ -323,7 +168,7 @@ export function assembleToolPool(
323
168
  const allowedMcpTools = filterToolsByDenyRules(
324
169
  mcpTools,
325
170
  permissionContext,
326
- ).filter(isUmmayaModelFacingMcpTool)
171
+ ).filter(tool => isModelFacingMcpTool(tool, permissionContext))
327
172
 
328
173
  // Sort each partition for prompt-cache stability, keeping built-ins as a
329
174
  // contiguous prefix. The server's claude_code_system_cache_policy places a
@@ -359,5 +204,9 @@ export function getMergedTools(
359
204
  mcpTools: Tools,
360
205
  ): Tools {
361
206
  const builtInTools = getTools(permissionContext)
362
- return [...builtInTools, ...mcpTools.filter(isUmmayaModelFacingMcpTool)]
207
+ const allowedMcpTools = filterToolsByDenyRules(
208
+ mcpTools,
209
+ permissionContext,
210
+ ).filter(tool => isModelFacingMcpTool(tool, permissionContext))
211
+ return [...builtInTools, ...allowedMcpTools]
363
212
  }
@@ -1,32 +1,10 @@
1
1
  // [P0 reconstructed · rebuild-stubs.ts · symbol-complete stub]
2
2
  // Aggregated from every consumer import across src/.
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { createStub } from '../stubs/any-stub'
4
4
 
5
- const __noop = (..._args: unknown[]): any => undefined as any;
6
- const __stub: any = new Proxy(function () {} as any, {
7
- get(_t, p) {
8
- if (p === Symbol.toPrimitive) return () => ""
9
- if (p === Symbol.iterator) return function* () {}
10
- if (p === Symbol.asyncIterator) return async function* () {}
11
- if (p === Symbol.toStringTag) return "Stub"
12
- if (p === Symbol.for("nodejs.util.inspect.custom")) return () => "<Stub>"
13
- if (p === "inspect") return () => "<Stub>"
14
- if (p === "then") return undefined
15
- if (p === "toString") return () => ""
16
- if (p === "valueOf") return () => undefined
17
- if (p === "toJSON") return () => null
18
- if (p === "length") return 0
19
- if (p === "name") return "Stub"
20
- if (p === "message") return ""
21
- if (p === "stack") return ""
22
- if (p === "constructor") return Object
23
- return __stub
24
- },
25
- apply() { return __stub },
26
- construct() { return __stub },
27
- });
5
+ const __stub = createStub()
28
6
 
29
- export type FileSuggestionCommandInput = any;
30
- export const FileSuggestionCommandInput: any = __stub;
7
+ export type FileSuggestionCommandInput = unknown;
8
+ export const FileSuggestionCommandInput = __stub;
31
9
 
32
10
  export default __stub;