@bastani/atomic 0.9.11-alpha.1 → 0.9.11-alpha.10

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 (2333) hide show
  1. package/CHANGELOG.md +241 -0
  2. package/README.md +15 -10
  3. package/dist/builtin/intercom/package.json +3 -3
  4. package/dist/builtin/mcp/CHANGELOG.md +12 -0
  5. package/dist/builtin/mcp/README.md +3 -3
  6. package/dist/builtin/mcp/cli.js +0 -1
  7. package/dist/builtin/mcp/commands.ts +7 -3
  8. package/dist/builtin/mcp/config.ts +0 -2
  9. package/dist/builtin/mcp/package.json +6 -6
  10. package/dist/builtin/mcp/sampling-handler.ts +1 -5
  11. package/dist/builtin/mcp/types.ts +0 -1
  12. package/dist/builtin/subagents/CHANGELOG.md +34 -0
  13. package/dist/builtin/subagents/README.md +10 -1
  14. package/dist/builtin/subagents/agents/code-simplifier.md +48 -103
  15. package/dist/builtin/subagents/agents/codebase-analyzer.md +28 -131
  16. package/dist/builtin/subagents/agents/codebase-locator.md +25 -84
  17. package/dist/builtin/subagents/agents/codebase-online-researcher.md +61 -260
  18. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +30 -208
  19. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +29 -151
  20. package/dist/builtin/subagents/agents/codebase-research-locator.md +22 -119
  21. package/dist/builtin/subagents/agents/debugger.md +29 -65
  22. package/dist/builtin/subagents/agents/worker.md +24 -31
  23. package/dist/builtin/subagents/package.json +5 -5
  24. package/dist/builtin/subagents/prompts/gather-context-and-clarify.md +18 -11
  25. package/dist/builtin/subagents/prompts/parallel-cleanup.md +34 -33
  26. package/dist/builtin/subagents/prompts/parallel-context-build.md +22 -36
  27. package/dist/builtin/subagents/prompts/parallel-handoff-plan.md +20 -52
  28. package/dist/builtin/subagents/prompts/parallel-research.md +17 -41
  29. package/dist/builtin/subagents/prompts/parallel-review.md +23 -28
  30. package/dist/builtin/subagents/prompts/review-loop.md +18 -27
  31. package/dist/builtin/subagents/skills/subagent/SKILL.md +6 -6
  32. package/dist/builtin/subagents/src/agents/agent-discovery.ts +26 -15
  33. package/dist/builtin/subagents/src/agents/agent-loaders.ts +48 -34
  34. package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +80 -31
  35. package/dist/builtin/subagents/src/agents/agent-management.ts +194 -55
  36. package/dist/builtin/subagents/src/agents/agent-overrides.ts +85 -32
  37. package/dist/builtin/subagents/src/agents/agent-paths.ts +4 -1
  38. package/dist/builtin/subagents/src/agents/agent-selection.ts +1 -1
  39. package/dist/builtin/subagents/src/agents/agent-serializer.ts +1 -4
  40. package/dist/builtin/subagents/src/agents/agents.ts +9 -9
  41. package/dist/builtin/subagents/src/agents/chain-serializer.ts +9 -5
  42. package/dist/builtin/subagents/src/agents/identity.ts +12 -3
  43. package/dist/builtin/subagents/src/agents/skills-paths.ts +64 -24
  44. package/dist/builtin/subagents/src/agents/skills.ts +29 -26
  45. package/dist/builtin/subagents/src/extension/doctor.ts +31 -20
  46. package/dist/builtin/subagents/src/extension/fanout-child.ts +27 -12
  47. package/dist/builtin/subagents/src/extension/index.ts +119 -43
  48. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +4 -2
  49. package/dist/builtin/subagents/src/extension/schemas.ts +304 -177
  50. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +137 -73
  51. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +49 -21
  52. package/dist/builtin/subagents/src/intercom/result-intercom.ts +76 -38
  53. package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +12 -6
  54. package/dist/builtin/subagents/src/runs/background/async-execution-chain.ts +183 -57
  55. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +15 -18
  56. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +67 -26
  57. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +8 -8
  58. package/dist/builtin/subagents/src/runs/background/async-execution.ts +1 -1
  59. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +86 -32
  60. package/dist/builtin/subagents/src/runs/background/async-resume.ts +93 -36
  61. package/dist/builtin/subagents/src/runs/background/async-status.ts +82 -27
  62. package/dist/builtin/subagents/src/runs/background/completion-claims.ts +12 -5
  63. package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +3 -1
  64. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +3 -1
  65. package/dist/builtin/subagents/src/runs/background/notify.ts +38 -18
  66. package/dist/builtin/subagents/src/runs/background/parallel-groups.ts +28 -14
  67. package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +147 -79
  68. package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +20 -5
  69. package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +7 -2
  70. package/dist/builtin/subagents/src/runs/background/result-status.ts +11 -5
  71. package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +18 -5
  72. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +104 -35
  73. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +28 -7
  74. package/dist/builtin/subagents/src/runs/background/run-status.ts +120 -32
  75. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +98 -39
  76. package/dist/builtin/subagents/src/runs/background/subagent-runner-dynamic.ts +185 -37
  77. package/dist/builtin/subagents/src/runs/background/subagent-runner-finalize.ts +23 -9
  78. package/dist/builtin/subagents/src/runs/background/subagent-runner-output.ts +6 -2
  79. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel-helpers.ts +34 -18
  80. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel.ts +175 -26
  81. package/dist/builtin/subagents/src/runs/background/subagent-runner-sequential.ts +68 -23
  82. package/dist/builtin/subagents/src/runs/background/subagent-runner-state.ts +200 -49
  83. package/dist/builtin/subagents/src/runs/background/subagent-runner-step.ts +82 -49
  84. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +33 -11
  85. package/dist/builtin/subagents/src/runs/background/subagent-runner-types.ts +16 -6
  86. package/dist/builtin/subagents/src/runs/background/subagent-runner-utils.ts +2 -3
  87. package/dist/builtin/subagents/src/runs/background/subagent-runner.ts +11 -8
  88. package/dist/builtin/subagents/src/runs/foreground/chain-execution-details.ts +5 -2
  89. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +115 -31
  90. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +71 -54
  91. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +104 -37
  92. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +102 -61
  93. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +24 -10
  94. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +9 -6
  95. package/dist/builtin/subagents/src/runs/foreground/detached-cleanup-barrier.ts +22 -22
  96. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-control.ts +45 -40
  97. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +6 -5
  98. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +118 -43
  99. package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +17 -7
  100. package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +5 -3
  101. package/dist/builtin/subagents/src/runs/foreground/execution-intercom-detach.ts +39 -35
  102. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +81 -42
  103. package/dist/builtin/subagents/src/runs/foreground/execution-structured-retries.ts +27 -21
  104. package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +2 -5
  105. package/dist/builtin/subagents/src/runs/foreground/execution-utils.ts +9 -4
  106. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +69 -25
  107. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +36 -19
  108. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +95 -62
  109. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +30 -9
  110. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +106 -96
  111. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +68 -36
  112. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +262 -83
  113. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-runtime.ts +6 -1
  114. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +67 -41
  115. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +129 -44
  116. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +20 -3
  117. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +8 -6
  118. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +65 -47
  119. package/dist/builtin/subagents/src/runs/shared/chain-outputs.ts +37 -12
  120. package/dist/builtin/subagents/src/runs/shared/dynamic-fanout.ts +120 -34
  121. package/dist/builtin/subagents/src/runs/shared/final-drain.ts +12 -7
  122. package/dist/builtin/subagents/src/runs/shared/intercom-group.ts +3 -2
  123. package/dist/builtin/subagents/src/runs/shared/long-running-guard.ts +8 -3
  124. package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +42 -20
  125. package/dist/builtin/subagents/src/runs/shared/model-candidate-filter.ts +8 -4
  126. package/dist/builtin/subagents/src/runs/shared/model-fallback.ts +103 -38
  127. package/dist/builtin/subagents/src/runs/shared/nested-events-control.ts +30 -20
  128. package/dist/builtin/subagents/src/runs/shared/nested-events-core.ts +45 -20
  129. package/dist/builtin/subagents/src/runs/shared/nested-events-projection.ts +57 -23
  130. package/dist/builtin/subagents/src/runs/shared/nested-events-registry.ts +77 -29
  131. package/dist/builtin/subagents/src/runs/shared/nested-events-sanitize.ts +99 -42
  132. package/dist/builtin/subagents/src/runs/shared/nested-events.ts +32 -26
  133. package/dist/builtin/subagents/src/runs/shared/nested-path.ts +22 -17
  134. package/dist/builtin/subagents/src/runs/shared/nested-render.ts +31 -10
  135. package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +10 -8
  136. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +59 -33
  137. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +17 -13
  138. package/dist/builtin/subagents/src/runs/shared/run-history.ts +13 -6
  139. package/dist/builtin/subagents/src/runs/shared/single-output.ts +11 -6
  140. package/dist/builtin/subagents/src/runs/shared/spawn-env.ts +21 -0
  141. package/dist/builtin/subagents/src/runs/shared/structured-output.ts +33 -19
  142. package/dist/builtin/subagents/src/runs/shared/subagent-control.ts +59 -48
  143. package/dist/builtin/subagents/src/runs/shared/subagent-prompt-runtime.ts +18 -11
  144. package/dist/builtin/subagents/src/runs/shared/workflow-graph.ts +41 -11
  145. package/dist/builtin/subagents/src/runs/shared/worktree-post-create.ts +46 -10
  146. package/dist/builtin/subagents/src/runs/shared/worktree-root.ts +21 -5
  147. package/dist/builtin/subagents/src/runs/shared/worktree.ts +89 -34
  148. package/dist/builtin/subagents/src/shared/artifacts.ts +137 -7
  149. package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +49 -13
  150. package/dist/builtin/subagents/src/shared/fast-mode.ts +13 -6
  151. package/dist/builtin/subagents/src/shared/fork-context.ts +7 -4
  152. package/dist/builtin/subagents/src/shared/formatters.ts +14 -9
  153. package/dist/builtin/subagents/src/shared/jsonl-writer.ts +2 -1
  154. package/dist/builtin/subagents/src/shared/model-info.ts +10 -3
  155. package/dist/builtin/subagents/src/shared/post-exit-stdio-guard.ts +7 -6
  156. package/dist/builtin/subagents/src/shared/session-tokens.ts +2 -1
  157. package/dist/builtin/subagents/src/shared/settings.ts +43 -43
  158. package/dist/builtin/subagents/src/shared/status-format.ts +10 -2
  159. package/dist/builtin/subagents/src/shared/types-async.ts +22 -19
  160. package/dist/builtin/subagents/src/shared/types-config.ts +1 -1
  161. package/dist/builtin/subagents/src/shared/types-depth.ts +23 -11
  162. package/dist/builtin/subagents/src/shared/types-results.ts +49 -6
  163. package/dist/builtin/subagents/src/shared/types-runtime.ts +16 -17
  164. package/dist/builtin/subagents/src/shared/types.ts +2 -2
  165. package/dist/builtin/subagents/src/shared/utils.ts +34 -20
  166. package/dist/builtin/subagents/src/slash/prompt-template-bridge.ts +44 -47
  167. package/dist/builtin/subagents/src/slash/saved-chain-mapping.ts +5 -7
  168. package/dist/builtin/subagents/src/slash/slash-bridge.ts +3 -3
  169. package/dist/builtin/subagents/src/slash/slash-commands.ts +78 -52
  170. package/dist/builtin/subagents/src/slash/slash-live-state.ts +59 -32
  171. package/dist/builtin/subagents/src/tui/render-chain-graph.ts +120 -32
  172. package/dist/builtin/subagents/src/tui/render-event-formatting.ts +85 -22
  173. package/dist/builtin/subagents/src/tui/render-helpers.ts +16 -6
  174. package/dist/builtin/subagents/src/tui/render-layout.ts +8 -3
  175. package/dist/builtin/subagents/src/tui/render-result-compact.ts +125 -43
  176. package/dist/builtin/subagents/src/tui/render-result.ts +128 -85
  177. package/dist/builtin/subagents/src/tui/render-stable-output.ts +17 -13
  178. package/dist/builtin/subagents/src/tui/render-status-progress.ts +52 -20
  179. package/dist/builtin/subagents/src/tui/render-widget-graph.ts +130 -28
  180. package/dist/builtin/subagents/src/tui/render-widget.ts +54 -27
  181. package/dist/builtin/subagents/src/tui/render.ts +10 -3
  182. package/dist/builtin/web-access/package.json +2 -2
  183. package/dist/builtin/workflows/CHANGELOG.md +110 -0
  184. package/dist/builtin/workflows/README.md +78 -70
  185. package/dist/builtin/workflows/ambient.d.ts +0 -5
  186. package/dist/builtin/workflows/builtin/adversarial-verification-prompts.ts +7 -4
  187. package/dist/builtin/workflows/builtin/adversarial-verification-runner.ts +1 -1
  188. package/dist/builtin/workflows/builtin/adversarial-verification.ts +2 -1
  189. package/dist/builtin/workflows/builtin/classify-and-act-prompts.ts +5 -2
  190. package/dist/builtin/workflows/builtin/classify-and-act-runner.ts +5 -7
  191. package/dist/builtin/workflows/builtin/classify-and-act.ts +3 -2
  192. package/dist/builtin/workflows/builtin/fan-out-and-synthesize-prompts.ts +6 -3
  193. package/dist/builtin/workflows/builtin/fan-out-and-synthesize-runner.ts +5 -5
  194. package/dist/builtin/workflows/builtin/fan-out-and-synthesize.ts +3 -2
  195. package/dist/builtin/workflows/builtin/generate-and-filter-prompts.ts +7 -4
  196. package/dist/builtin/workflows/builtin/generate-and-filter-runner.ts +6 -3
  197. package/dist/builtin/workflows/builtin/generate-and-filter.ts +3 -2
  198. package/dist/builtin/workflows/builtin/goal-artifacts.ts +1 -1
  199. package/dist/builtin/workflows/builtin/goal-models.ts +39 -39
  200. package/dist/builtin/workflows/builtin/goal-orchestrator-prompts.ts +94 -0
  201. package/dist/builtin/workflows/builtin/goal-prompts.ts +70 -285
  202. package/dist/builtin/workflows/builtin/goal-reducer.ts +1 -1
  203. package/dist/builtin/workflows/builtin/goal-runner.ts +72 -116
  204. package/dist/builtin/workflows/builtin/goal.ts +12 -11
  205. package/dist/builtin/workflows/builtin/index.d.ts +17 -112
  206. package/dist/builtin/workflows/builtin/index.ts +1 -2
  207. package/dist/builtin/workflows/builtin/loop-until-done-prompts.ts +20 -12
  208. package/dist/builtin/workflows/builtin/loop-until-done-runner.ts +3 -0
  209. package/dist/builtin/workflows/builtin/loop-until-done.ts +3 -2
  210. package/dist/builtin/workflows/builtin/open-claude-design-phases.ts +149 -88
  211. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +102 -78
  212. package/dist/builtin/workflows/builtin/open-claude-design-setup.ts +164 -56
  213. package/dist/builtin/workflows/builtin/open-claude-design-utils.ts +16 -21
  214. package/dist/builtin/workflows/builtin/open-claude-design.ts +2 -1
  215. package/dist/builtin/workflows/builtin/ralph-core.ts +61 -57
  216. package/dist/builtin/workflows/builtin/ralph-forked-prompts.ts +41 -45
  217. package/dist/builtin/workflows/builtin/ralph-models.ts +37 -47
  218. package/dist/builtin/workflows/builtin/ralph-reviewer-prompt.ts +37 -117
  219. package/dist/builtin/workflows/builtin/ralph-runner.ts +83 -108
  220. package/dist/builtin/workflows/builtin/ralph.ts +6 -5
  221. package/dist/builtin/workflows/builtin/shared-prompts.ts +117 -70
  222. package/dist/builtin/workflows/builtin/steering-context.ts +51 -0
  223. package/dist/builtin/workflows/builtin/tournament-prompts.ts +21 -12
  224. package/dist/builtin/workflows/builtin/tournament-runner.ts +3 -0
  225. package/dist/builtin/workflows/builtin/tournament.ts +3 -2
  226. package/dist/builtin/workflows/package.json +4 -4
  227. package/dist/builtin/workflows/skills/create-spec/SKILL.md +1 -1
  228. package/dist/builtin/workflows/skills/impeccable/SKILL.md +33 -129
  229. package/dist/builtin/workflows/skills/impeccable/agents/impeccable_asset_producer.toml +11 -3
  230. package/dist/builtin/workflows/skills/impeccable/agents/impeccable_documenter.toml +26 -0
  231. package/dist/builtin/workflows/skills/impeccable/agents/impeccable_finish_reviewer.toml +35 -0
  232. package/dist/builtin/workflows/skills/impeccable/reference/android.md +1 -1
  233. package/dist/builtin/workflows/skills/impeccable/reference/animate.md +72 -189
  234. package/dist/builtin/workflows/skills/impeccable/reference/audit.md +10 -9
  235. package/dist/builtin/workflows/skills/impeccable/reference/audit.native.md +2 -2
  236. package/dist/builtin/workflows/skills/impeccable/reference/bolder.md +19 -108
  237. package/dist/builtin/workflows/skills/impeccable/reference/clarify.md +59 -253
  238. package/dist/builtin/workflows/skills/impeccable/reference/colorize.md +51 -222
  239. package/dist/builtin/workflows/skills/impeccable/reference/craft-floor.md +45 -0
  240. package/dist/builtin/workflows/skills/impeccable/reference/craft.md +3 -121
  241. package/dist/builtin/workflows/skills/impeccable/reference/critique.md +28 -20
  242. package/dist/builtin/workflows/skills/impeccable/reference/degraded/asset-producer.md +97 -0
  243. package/dist/builtin/workflows/skills/impeccable/reference/degraded/documenter.md +23 -0
  244. package/dist/builtin/workflows/skills/impeccable/reference/degraded/finish-reviewer.md +32 -0
  245. package/dist/builtin/workflows/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
  246. package/dist/builtin/workflows/skills/impeccable/reference/delight.md +47 -279
  247. package/dist/builtin/workflows/skills/impeccable/reference/distill.md +2 -2
  248. package/dist/builtin/workflows/skills/impeccable/reference/doctor.md +53 -0
  249. package/dist/builtin/workflows/skills/impeccable/reference/document.md +60 -73
  250. package/dist/builtin/workflows/skills/impeccable/reference/harden.md +1 -12
  251. package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +23 -12
  252. package/dist/builtin/workflows/skills/impeccable/reference/init.md +64 -163
  253. package/dist/builtin/workflows/skills/impeccable/reference/ios.md +1 -1
  254. package/dist/builtin/workflows/skills/impeccable/reference/layout.md +52 -153
  255. package/dist/builtin/workflows/skills/impeccable/reference/live.md +47 -36
  256. package/dist/builtin/workflows/skills/impeccable/reference/new-work.md +105 -0
  257. package/dist/builtin/workflows/skills/impeccable/reference/{product.md → operate.md} +6 -5
  258. package/dist/builtin/workflows/skills/impeccable/reference/optimize.md +4 -4
  259. package/dist/builtin/workflows/skills/impeccable/reference/overdrive.md +1 -4
  260. package/dist/builtin/workflows/skills/impeccable/reference/polish.md +68 -212
  261. package/dist/builtin/workflows/skills/impeccable/reference/quieter.md +3 -3
  262. package/dist/builtin/workflows/skills/impeccable/reference/routing.md +18 -0
  263. package/dist/builtin/workflows/skills/impeccable/reference/shape.md +38 -144
  264. package/dist/builtin/workflows/skills/impeccable/reference/typeset.md +48 -269
  265. package/dist/builtin/workflows/skills/impeccable/reference/visualize.md +38 -0
  266. package/dist/builtin/workflows/skills/impeccable/scripts/command-metadata.json +1 -1
  267. package/dist/builtin/workflows/skills/impeccable/scripts/concept-seed.mjs +584 -0
  268. package/dist/builtin/workflows/skills/impeccable/scripts/context-signals.mjs +117 -9
  269. package/dist/builtin/workflows/skills/impeccable/scripts/context.mjs +486 -59
  270. package/dist/builtin/workflows/skills/impeccable/scripts/critique-storage.mjs +16 -45
  271. package/dist/builtin/workflows/skills/impeccable/scripts/detector/browser/injected/index.mjs +96 -10
  272. package/dist/builtin/workflows/skills/impeccable/scripts/detector/cli/main.mjs +143 -26
  273. package/dist/builtin/workflows/skills/impeccable/scripts/detector/design-system.mjs +181 -12
  274. package/dist/builtin/workflows/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +3187 -182
  275. package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +102 -7
  276. package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +282 -70
  277. package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +183 -15
  278. package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +22 -7
  279. package/dist/builtin/workflows/skills/impeccable/scripts/detector/findings.mjs +7 -1
  280. package/dist/builtin/workflows/skills/impeccable/scripts/detector/node/file-system.mjs +16 -2
  281. package/dist/builtin/workflows/skills/impeccable/scripts/detector/registry/antipatterns.mjs +155 -42
  282. package/dist/builtin/workflows/skills/impeccable/scripts/detector/rules/checks.mjs +2988 -155
  283. package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/constants.mjs +11 -0
  284. package/dist/builtin/workflows/skills/impeccable/scripts/doctor.mjs +336 -0
  285. package/dist/builtin/workflows/skills/impeccable/scripts/generate-image.mjs +232 -0
  286. package/dist/builtin/workflows/skills/impeccable/scripts/hook-admin.mjs +92 -30
  287. package/dist/builtin/workflows/skills/impeccable/scripts/hook-lib.mjs +414 -120
  288. package/dist/builtin/workflows/skills/impeccable/scripts/hook.mjs +25 -8
  289. package/dist/builtin/workflows/skills/impeccable/scripts/lib/artifact-schema.mjs +93 -0
  290. package/dist/builtin/workflows/skills/impeccable/scripts/lib/composition-catalog.mjs +165 -0
  291. package/dist/builtin/workflows/skills/impeccable/scripts/lib/concept-catalog.mjs +329 -0
  292. package/dist/builtin/workflows/skills/impeccable/scripts/lib/impeccable-config.mjs +20 -5
  293. package/dist/builtin/workflows/skills/impeccable/scripts/lib/impeccable-paths.mjs +16 -8
  294. package/dist/builtin/workflows/skills/impeccable/scripts/lib/provider.mjs +1 -0
  295. package/dist/builtin/workflows/skills/impeccable/scripts/lib/staleness-deep.mjs +455 -0
  296. package/dist/builtin/workflows/skills/impeccable/scripts/lib/staleness-notice.mjs +169 -0
  297. package/dist/builtin/workflows/skills/impeccable/scripts/lib/staleness.mjs +457 -0
  298. package/dist/builtin/workflows/skills/impeccable/scripts/lib/surface-briefs.mjs +151 -0
  299. package/dist/builtin/workflows/skills/impeccable/scripts/lib/target-slug.mjs +33 -0
  300. package/dist/builtin/workflows/skills/impeccable/scripts/lib/template-extensions.mjs +146 -0
  301. package/dist/builtin/workflows/skills/impeccable/scripts/live/completion.mjs +10 -1
  302. package/dist/builtin/workflows/skills/impeccable/scripts/live/event-validation.mjs +15 -0
  303. package/dist/builtin/workflows/skills/impeccable/scripts/live/generation-preflight.mjs +149 -0
  304. package/dist/builtin/workflows/skills/impeccable/scripts/live/poll-lanes.mjs +14 -0
  305. package/dist/builtin/workflows/skills/impeccable/scripts/live/session-store.mjs +109 -32
  306. package/dist/builtin/workflows/skills/impeccable/scripts/live/source-lock.mjs +105 -0
  307. package/dist/builtin/workflows/skills/impeccable/scripts/live/source-search.mjs +105 -0
  308. package/dist/builtin/workflows/skills/impeccable/scripts/live/sveltekit-adapter.mjs +8 -6
  309. package/dist/builtin/workflows/skills/impeccable/scripts/live/tanstack-adapter.mjs +280 -0
  310. package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +212 -69
  311. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-dom.js +5 -1
  312. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-session.js +7 -1
  313. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +565 -115
  314. package/dist/builtin/workflows/skills/impeccable/scripts/live-commit-manual-edits.mjs +3 -0
  315. package/dist/builtin/workflows/skills/impeccable/scripts/live-inject.mjs +198 -14
  316. package/dist/builtin/workflows/skills/impeccable/scripts/live-insert.mjs +24 -6
  317. package/dist/builtin/workflows/skills/impeccable/scripts/live-manual-edit-evidence.mjs +11 -3
  318. package/dist/builtin/workflows/skills/impeccable/scripts/live-poll.mjs +44 -14
  319. package/dist/builtin/workflows/skills/impeccable/scripts/live-server.mjs +405 -34
  320. package/dist/builtin/workflows/skills/impeccable/scripts/live-status.mjs +9 -5
  321. package/dist/builtin/workflows/skills/impeccable/scripts/live-wrap.mjs +81 -67
  322. package/dist/builtin/workflows/skills/impeccable/scripts/live.mjs +7 -2
  323. package/dist/builtin/workflows/skills/impeccable/scripts/palette.mjs +76 -81
  324. package/dist/builtin/workflows/skills/impeccable/scripts/pin.mjs +4 -4
  325. package/dist/builtin/workflows/skills/impeccable/scripts/serve-question.mjs +890 -0
  326. package/dist/builtin/workflows/skills/impeccable/scripts/surface-brief.mjs +74 -0
  327. package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +57 -252
  328. package/dist/builtin/workflows/skills/prompt-engineer/references/advanced_patterns.md +70 -226
  329. package/dist/builtin/workflows/skills/prompt-engineer/references/core_prompting.md +64 -103
  330. package/dist/builtin/workflows/skills/prompt-engineer/references/quality_improvement.md +81 -155
  331. package/dist/builtin/workflows/src/authoring/typebox-defaults.d.ts +5 -5
  332. package/dist/builtin/workflows/src/authoring/typebox-defaults.ts +160 -197
  333. package/dist/builtin/workflows/src/authoring/workflow.ts +137 -132
  334. package/dist/builtin/workflows/src/authoring.d.ts +7 -3
  335. package/dist/builtin/workflows/src/durable/backend.ts +510 -383
  336. package/dist/builtin/workflows/src/durable/boundary-lifecycle.ts +172 -0
  337. package/dist/builtin/workflows/src/durable/boundary-topology.ts +475 -0
  338. package/dist/builtin/workflows/src/durable/child-invocation.ts +14 -0
  339. package/dist/builtin/workflows/src/durable/child-primitive.ts +115 -74
  340. package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +290 -0
  341. package/dist/builtin/workflows/src/durable/completed-catalog.ts +419 -189
  342. package/dist/builtin/workflows/src/durable/completed-inspection.ts +118 -105
  343. package/dist/builtin/workflows/src/durable/completed-subtree.ts +35 -0
  344. package/dist/builtin/workflows/src/durable/dbos-backend.ts +484 -414
  345. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres-root.ts +86 -87
  346. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres.ts +171 -149
  347. package/dist/builtin/workflows/src/durable/dbos-envelope.ts +415 -189
  348. package/dist/builtin/workflows/src/durable/dbos-lifecycle.ts +128 -106
  349. package/dist/builtin/workflows/src/durable/dbos-local-postgres.ts +75 -68
  350. package/dist/builtin/workflows/src/durable/dbos-metadata.ts +138 -101
  351. package/dist/builtin/workflows/src/durable/dbos-prompt-reservations.ts +316 -259
  352. package/dist/builtin/workflows/src/durable/dbos-sdk-handle.ts +138 -117
  353. package/dist/builtin/workflows/src/durable/dbos-status-transition.ts +48 -43
  354. package/dist/builtin/workflows/src/durable/dbos-tombstone.ts +14 -14
  355. package/dist/builtin/workflows/src/durable/durable-hash.ts +9 -11
  356. package/dist/builtin/workflows/src/durable/factory.ts +54 -29
  357. package/dist/builtin/workflows/src/durable/format-version.ts +1 -1
  358. package/dist/builtin/workflows/src/durable/index.ts +69 -68
  359. package/dist/builtin/workflows/src/durable/local-command.ts +47 -43
  360. package/dist/builtin/workflows/src/durable/prompt-reservation-state.ts +156 -149
  361. package/dist/builtin/workflows/src/durable/prompt-reservations.ts +16 -16
  362. package/dist/builtin/workflows/src/durable/resume-catalog.ts +11 -11
  363. package/dist/builtin/workflows/src/durable/resume-eligibility.ts +27 -25
  364. package/dist/builtin/workflows/src/durable/resume-runtime.ts +261 -222
  365. package/dist/builtin/workflows/src/durable/retention-policy.ts +31 -30
  366. package/dist/builtin/workflows/src/durable/run-timing.ts +42 -41
  367. package/dist/builtin/workflows/src/durable/scoped-backend.ts +261 -193
  368. package/dist/builtin/workflows/src/durable/stage-primitive.ts +466 -370
  369. package/dist/builtin/workflows/src/durable/stage-topology-validation.ts +247 -0
  370. package/dist/builtin/workflows/src/durable/stage-topology.ts +53 -0
  371. package/dist/builtin/workflows/src/durable/tool-failure-checkpoint.ts +49 -0
  372. package/dist/builtin/workflows/src/durable/tool-outcome.ts +130 -0
  373. package/dist/builtin/workflows/src/durable/tool-primitive.ts +642 -137
  374. package/dist/builtin/workflows/src/durable/types.ts +243 -132
  375. package/dist/builtin/workflows/src/durable/ui-primitive.ts +243 -164
  376. package/dist/builtin/workflows/src/durable/workflow-child-result.ts +61 -0
  377. package/dist/builtin/workflows/src/durable/workflow-status-transition.ts +16 -15
  378. package/dist/builtin/workflows/src/engine/graph-inference.ts +76 -76
  379. package/dist/builtin/workflows/src/engine/options.ts +35 -35
  380. package/dist/builtin/workflows/src/engine/primitives/chain.ts +27 -22
  381. package/dist/builtin/workflows/src/engine/primitives/exit.ts +1 -1
  382. package/dist/builtin/workflows/src/engine/primitives/parallel.ts +64 -52
  383. package/dist/builtin/workflows/src/engine/primitives/task.ts +110 -95
  384. package/dist/builtin/workflows/src/engine/primitives/ui.ts +46 -50
  385. package/dist/builtin/workflows/src/engine/primitives/workflow.ts +194 -151
  386. package/dist/builtin/workflows/src/engine/replay.ts +6 -6
  387. package/dist/builtin/workflows/src/engine/run-durable-admission.ts +50 -0
  388. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +64 -37
  389. package/dist/builtin/workflows/src/engine/run-durable-stage-session.ts +30 -24
  390. package/dist/builtin/workflows/src/engine/run-durable-topology.ts +288 -0
  391. package/dist/builtin/workflows/src/engine/run-returned-status.ts +60 -57
  392. package/dist/builtin/workflows/src/engine/run-terminal-event.ts +39 -0
  393. package/dist/builtin/workflows/src/engine/run-terminal-failure.ts +53 -0
  394. package/dist/builtin/workflows/src/engine/run-tool-admission-boundary.ts +99 -0
  395. package/dist/builtin/workflows/src/engine/run-tool-control-registry.ts +179 -0
  396. package/dist/builtin/workflows/src/engine/run-tool-execution-tracker.ts +164 -0
  397. package/dist/builtin/workflows/src/engine/run-tool-node-lifecycle.ts +152 -0
  398. package/dist/builtin/workflows/src/engine/run.ts +680 -477
  399. package/dist/builtin/workflows/src/engine/runtime.ts +160 -140
  400. package/dist/builtin/workflows/src/engine/workflow-activity.ts +7 -3
  401. package/dist/builtin/workflows/src/engine/workflow-tool-abort.ts +92 -0
  402. package/dist/builtin/workflows/src/extension/atomic-stage-session.ts +123 -120
  403. package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +108 -112
  404. package/dist/builtin/workflows/src/extension/companions.ts +116 -116
  405. package/dist/builtin/workflows/src/extension/completed-stage-intercom-ask.ts +123 -111
  406. package/dist/builtin/workflows/src/extension/config-file-loader.ts +153 -148
  407. package/dist/builtin/workflows/src/extension/config-loader.ts +264 -283
  408. package/dist/builtin/workflows/src/extension/discovery-loaders.ts +81 -84
  409. package/dist/builtin/workflows/src/extension/discovery.ts +267 -272
  410. package/dist/builtin/workflows/src/extension/dispatcher.ts +214 -217
  411. package/dist/builtin/workflows/src/extension/extension-factory.ts +103 -93
  412. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +127 -111
  413. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +414 -409
  414. package/dist/builtin/workflows/src/extension/hil-answer-notifications.ts +270 -261
  415. package/dist/builtin/workflows/src/extension/index.bundle.mjs +74625 -0
  416. package/dist/builtin/workflows/src/extension/index.ts +37 -37
  417. package/dist/builtin/workflows/src/extension/lifecycle-notification-delivery.ts +64 -64
  418. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +386 -369
  419. package/dist/builtin/workflows/src/extension/mcp.ts +35 -35
  420. package/dist/builtin/workflows/src/extension/postmortem-deps.ts +31 -35
  421. package/dist/builtin/workflows/src/extension/public-types.ts +160 -182
  422. package/dist/builtin/workflows/src/extension/render-call.ts +85 -88
  423. package/dist/builtin/workflows/src/extension/render-component.ts +9 -11
  424. package/dist/builtin/workflows/src/extension/render-result.ts +450 -375
  425. package/dist/builtin/workflows/src/extension/renderers.ts +35 -35
  426. package/dist/builtin/workflows/src/extension/runtime-active-block-claim.ts +37 -37
  427. package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +146 -138
  428. package/dist/builtin/workflows/src/extension/runtime.ts +346 -258
  429. package/dist/builtin/workflows/src/extension/status-writer.ts +95 -95
  430. package/dist/builtin/workflows/src/extension/ui-surface.ts +224 -218
  431. package/dist/builtin/workflows/src/extension/wiring.ts +307 -281
  432. package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +109 -108
  433. package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +257 -224
  434. package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +84 -83
  435. package/dist/builtin/workflows/src/extension/workflow-command-utils.ts +126 -132
  436. package/dist/builtin/workflows/src/extension/workflow-durable-resume-command.ts +213 -199
  437. package/dist/builtin/workflows/src/extension/workflow-model-catalog.ts +24 -0
  438. package/dist/builtin/workflows/src/extension/workflow-module-loader.ts +110 -95
  439. package/dist/builtin/workflows/src/extension/workflow-policy.ts +7 -9
  440. package/dist/builtin/workflows/src/extension/workflow-ports.ts +30 -34
  441. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +41 -20
  442. package/dist/builtin/workflows/src/extension/workflow-reload-coordinator.ts +46 -46
  443. package/dist/builtin/workflows/src/extension/workflow-reload-report.ts +28 -25
  444. package/dist/builtin/workflows/src/extension/workflow-resume-picker-rows.ts +48 -45
  445. package/dist/builtin/workflows/src/extension/workflow-resume-shadow.ts +28 -31
  446. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +539 -453
  447. package/dist/builtin/workflows/src/extension/workflow-schema.ts +149 -92
  448. package/dist/builtin/workflows/src/extension/workflow-stage-results.ts +182 -194
  449. package/dist/builtin/workflows/src/extension/workflow-status-summary.ts +154 -116
  450. package/dist/builtin/workflows/src/extension/workflow-targets.ts +159 -125
  451. package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +204 -217
  452. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +512 -372
  453. package/dist/builtin/workflows/src/extension/workflow-tool-inspection.ts +146 -150
  454. package/dist/builtin/workflows/src/extension/workflow-tool-registration.ts +43 -46
  455. package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +354 -206
  456. package/dist/builtin/workflows/src/extension/workflow-tool.ts +122 -129
  457. package/dist/builtin/workflows/src/intercom/intercom-bridge.ts +17 -20
  458. package/dist/builtin/workflows/src/intercom/intercom-routing.ts +62 -62
  459. package/dist/builtin/workflows/src/intercom/result-intercom.ts +123 -123
  460. package/dist/builtin/workflows/src/runs/background/cancellation-registry.ts +72 -59
  461. package/dist/builtin/workflows/src/runs/background/durable-resume-transition.ts +45 -45
  462. package/dist/builtin/workflows/src/runs/background/job-tracker.ts +69 -34
  463. package/dist/builtin/workflows/src/runs/background/quit-tool-node.ts +71 -0
  464. package/dist/builtin/workflows/src/runs/background/quit.ts +359 -138
  465. package/dist/builtin/workflows/src/runs/background/resume-acknowledgements.ts +70 -69
  466. package/dist/builtin/workflows/src/runs/background/run-inspect.ts +85 -74
  467. package/dist/builtin/workflows/src/runs/background/runner.ts +122 -121
  468. package/dist/builtin/workflows/src/runs/background/startup-admission.ts +56 -60
  469. package/dist/builtin/workflows/src/runs/background/status.ts +324 -284
  470. package/dist/builtin/workflows/src/runs/background/workflow-lifecycle-aggregate.ts +24 -26
  471. package/dist/builtin/workflows/src/runs/foreground/executor-abort.ts +311 -309
  472. package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +229 -199
  473. package/dist/builtin/workflows/src/runs/foreground/executor-child-helpers.ts +56 -51
  474. package/dist/builtin/workflows/src/runs/foreground/executor-continuation.ts +168 -152
  475. package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +255 -217
  476. package/dist/builtin/workflows/src/runs/foreground/executor-exit-manager.ts +178 -173
  477. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +273 -269
  478. package/dist/builtin/workflows/src/runs/foreground/executor-inputs.ts +59 -56
  479. package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +375 -351
  480. package/dist/builtin/workflows/src/runs/foreground/executor-outputs.ts +123 -127
  481. package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +360 -295
  482. package/dist/builtin/workflows/src/runs/foreground/executor-queued-user-message.ts +47 -47
  483. package/dist/builtin/workflows/src/runs/foreground/executor-run-finalizers.ts +125 -104
  484. package/dist/builtin/workflows/src/runs/foreground/executor-scheduler.ts +189 -189
  485. package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +294 -242
  486. package/dist/builtin/workflows/src/runs/foreground/executor-stage-context.ts +141 -127
  487. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +219 -179
  488. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +406 -354
  489. package/dist/builtin/workflows/src/runs/foreground/executor-stage-replay.ts +143 -126
  490. package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +50 -47
  491. package/dist/builtin/workflows/src/runs/foreground/executor-task-context.ts +1 -1
  492. package/dist/builtin/workflows/src/runs/foreground/executor-task-prompts.ts +148 -153
  493. package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +157 -110
  494. package/dist/builtin/workflows/src/runs/foreground/executor.ts +10 -10
  495. package/dist/builtin/workflows/src/runs/foreground/postmortem-stage-chat.ts +176 -100
  496. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +363 -257
  497. package/dist/builtin/workflows/src/runs/foreground/stage-delivery-activity.ts +86 -0
  498. package/dist/builtin/workflows/src/runs/foreground/stage-queued-user-messages.ts +95 -0
  499. package/dist/builtin/workflows/src/runs/foreground/stage-runner-candidate.ts +8 -8
  500. package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +233 -221
  501. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +630 -494
  502. package/dist/builtin/workflows/src/runs/foreground/stage-runner-message-admission.ts +182 -181
  503. package/dist/builtin/workflows/src/runs/foreground/stage-runner-messages.ts +80 -80
  504. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +78 -74
  505. package/dist/builtin/workflows/src/runs/foreground/stage-runner-output.ts +102 -104
  506. package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +200 -0
  507. package/dist/builtin/workflows/src/runs/foreground/stage-runner-replacement.ts +31 -32
  508. package/dist/builtin/workflows/src/runs/foreground/stage-runner-send-user-message.ts +115 -98
  509. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session-options.ts +29 -42
  510. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session.ts +44 -52
  511. package/dist/builtin/workflows/src/runs/foreground/stage-runner-structured-output.ts +63 -58
  512. package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +161 -124
  513. package/dist/builtin/workflows/src/runs/foreground/stage-runner-unresolved-overflow.ts +27 -23
  514. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +10 -10
  515. package/dist/builtin/workflows/src/runs/foreground/stage-tool-execution-buffer.ts +33 -31
  516. package/dist/builtin/workflows/src/runs/shared/concurrency.ts +53 -53
  517. package/dist/builtin/workflows/src/runs/shared/graph-inference.ts +1 -1
  518. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +257 -385
  519. package/dist/builtin/workflows/src/runs/shared/model-fallback-failures.ts +378 -363
  520. package/dist/builtin/workflows/src/runs/shared/prompt-callsite.ts +55 -55
  521. package/dist/builtin/workflows/src/runs/shared/validate-inputs.ts +75 -84
  522. package/dist/builtin/workflows/src/runs/shared/worktree-cache-lifecycle.ts +1 -3
  523. package/dist/builtin/workflows/src/runs/shared/worktree-cwd.ts +96 -83
  524. package/dist/builtin/workflows/src/runs/shared/worktree-diff.ts +9 -2
  525. package/dist/builtin/workflows/src/runs/shared/worktree-git-runner.ts +21 -6
  526. package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +60 -30
  527. package/dist/builtin/workflows/src/runs/shared/worktree-post-create.ts +12 -5
  528. package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +51 -30
  529. package/dist/builtin/workflows/src/runs/shared/worktree.ts +4 -4
  530. package/dist/builtin/workflows/src/sdk-surface.ts +38 -19
  531. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +17 -16
  532. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +299 -280
  533. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +76 -10
  534. package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +311 -219
  535. package/dist/builtin/workflows/src/shared/expanded-workflow-graph.ts +255 -156
  536. package/dist/builtin/workflows/src/shared/intercom-group.ts +33 -26
  537. package/dist/builtin/workflows/src/shared/persistence-compaction-policy.ts +30 -30
  538. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +435 -379
  539. package/dist/builtin/workflows/src/shared/persistence-restore.ts +187 -181
  540. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +211 -207
  541. package/dist/builtin/workflows/src/shared/prompt-callsite-context.ts +3 -3
  542. package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +87 -94
  543. package/dist/builtin/workflows/src/shared/resume-continuation.ts +1 -1
  544. package/dist/builtin/workflows/src/shared/returned-run-status.ts +91 -77
  545. package/dist/builtin/workflows/src/shared/run-visibility.ts +2 -2
  546. package/dist/builtin/workflows/src/shared/schema-introspection.ts +50 -60
  547. package/dist/builtin/workflows/src/shared/serializable.ts +72 -86
  548. package/dist/builtin/workflows/src/shared/session-transcript.ts +44 -39
  549. package/dist/builtin/workflows/src/shared/stage-prompt.ts +183 -202
  550. package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +270 -274
  551. package/dist/builtin/workflows/src/shared/store-factory.ts +9 -7
  552. package/dist/builtin/workflows/src/shared/store-internal.ts +172 -168
  553. package/dist/builtin/workflows/src/shared/store-prompt-methods.ts +196 -200
  554. package/dist/builtin/workflows/src/shared/store-public-types.ts +208 -196
  555. package/dist/builtin/workflows/src/shared/store-run-methods.ts +238 -222
  556. package/dist/builtin/workflows/src/shared/store-stage-methods.ts +284 -283
  557. package/dist/builtin/workflows/src/shared/store-tool-node-methods.ts +53 -0
  558. package/dist/builtin/workflows/src/shared/store-types.ts +269 -235
  559. package/dist/builtin/workflows/src/shared/store.ts +7 -7
  560. package/dist/builtin/workflows/src/shared/timing.ts +36 -34
  561. package/dist/builtin/workflows/src/shared/types.ts +257 -217
  562. package/dist/builtin/workflows/src/shared/workflow-authoring-types.d.ts +11 -4
  563. package/dist/builtin/workflows/src/shared/workflow-authoring-types.ts +81 -58
  564. package/dist/builtin/workflows/src/shared/workflow-failures-classifier.ts +247 -221
  565. package/dist/builtin/workflows/src/shared/workflow-failures-contract.ts +45 -46
  566. package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +330 -351
  567. package/dist/builtin/workflows/src/shared/workflow-failures-signals.ts +212 -157
  568. package/dist/builtin/workflows/src/shared/workflow-failures.ts +10 -10
  569. package/dist/builtin/workflows/src/shared/workflow-run-ownership.ts +49 -0
  570. package/dist/builtin/workflows/src/tui/chat-surface-message.ts +157 -184
  571. package/dist/builtin/workflows/src/tui/chat-surface.ts +332 -355
  572. package/dist/builtin/workflows/src/tui/color-utils.ts +21 -30
  573. package/dist/builtin/workflows/src/tui/connectors.ts +57 -61
  574. package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +168 -192
  575. package/dist/builtin/workflows/src/tui/edge.ts +10 -9
  576. package/dist/builtin/workflows/src/tui/graph-canvas.ts +131 -134
  577. package/dist/builtin/workflows/src/tui/graph-theme.ts +139 -148
  578. package/dist/builtin/workflows/src/tui/graph-view-constants.ts +6 -6
  579. package/dist/builtin/workflows/src/tui/graph-view-graph-render.ts +146 -179
  580. package/dist/builtin/workflows/src/tui/graph-view-input.ts +295 -329
  581. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +291 -320
  582. package/dist/builtin/workflows/src/tui/graph-view-render.ts +171 -190
  583. package/dist/builtin/workflows/src/tui/graph-view-state.ts +319 -287
  584. package/dist/builtin/workflows/src/tui/graph-view-types.ts +65 -58
  585. package/dist/builtin/workflows/src/tui/header.ts +140 -156
  586. package/dist/builtin/workflows/src/tui/host-input-form.ts +47 -45
  587. package/dist/builtin/workflows/src/tui/inline-form-card.ts +277 -266
  588. package/dist/builtin/workflows/src/tui/inline-form-editor-text.ts +61 -62
  589. package/dist/builtin/workflows/src/tui/inline-form-editor.ts +407 -412
  590. package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +203 -214
  591. package/dist/builtin/workflows/src/tui/inline-form-store.ts +24 -24
  592. package/dist/builtin/workflows/src/tui/inputs-overlay.ts +116 -129
  593. package/dist/builtin/workflows/src/tui/inputs-picker-editing.ts +111 -115
  594. package/dist/builtin/workflows/src/tui/inputs-picker-input.ts +255 -269
  595. package/dist/builtin/workflows/src/tui/inputs-picker-render.ts +248 -236
  596. package/dist/builtin/workflows/src/tui/inputs-picker-types.ts +111 -140
  597. package/dist/builtin/workflows/src/tui/inputs-picker.ts +12 -12
  598. package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +49 -57
  599. package/dist/builtin/workflows/src/tui/layout.ts +124 -133
  600. package/dist/builtin/workflows/src/tui/mouse-input.ts +45 -47
  601. package/dist/builtin/workflows/src/tui/node-card.ts +230 -218
  602. package/dist/builtin/workflows/src/tui/overlay-adapter.ts +381 -398
  603. package/dist/builtin/workflows/src/tui/overlay-terminal-modes.ts +20 -19
  604. package/dist/builtin/workflows/src/tui/prompt-card-input.ts +183 -194
  605. package/dist/builtin/workflows/src/tui/prompt-card-render.ts +243 -302
  606. package/dist/builtin/workflows/src/tui/prompt-card-select.ts +76 -98
  607. package/dist/builtin/workflows/src/tui/prompt-card-state.ts +40 -40
  608. package/dist/builtin/workflows/src/tui/prompt-card-text.ts +76 -83
  609. package/dist/builtin/workflows/src/tui/prompt-card.ts +3 -3
  610. package/dist/builtin/workflows/src/tui/renderers.ts +6 -6
  611. package/dist/builtin/workflows/src/tui/run-detail.ts +300 -256
  612. package/dist/builtin/workflows/src/tui/session-list.ts +19 -18
  613. package/dist/builtin/workflows/src/tui/session-overlays.ts +82 -87
  614. package/dist/builtin/workflows/src/tui/session-picker.ts +258 -275
  615. package/dist/builtin/workflows/src/tui/stage-chat-composer-drafts.ts +11 -11
  616. package/dist/builtin/workflows/src/tui/stage-chat-layout.ts +55 -62
  617. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +220 -263
  618. package/dist/builtin/workflows/src/tui/stage-chat-view-custom-ui.ts +91 -102
  619. package/dist/builtin/workflows/src/tui/stage-chat-view-delivery-activity.ts +113 -0
  620. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +154 -208
  621. package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +174 -208
  622. package/dist/builtin/workflows/src/tui/stage-chat-view-live-events.ts +53 -23
  623. package/dist/builtin/workflows/src/tui/stage-chat-view-pending-tools.ts +2 -4
  624. package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +85 -88
  625. package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +39 -17
  626. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +435 -409
  627. package/dist/builtin/workflows/src/tui/stage-chat-view-status.ts +24 -25
  628. package/dist/builtin/workflows/src/tui/stage-chat-view-transcript.ts +181 -197
  629. package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +125 -128
  630. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +210 -205
  631. package/dist/builtin/workflows/src/tui/status-helpers.ts +65 -69
  632. package/dist/builtin/workflows/src/tui/status-list.ts +316 -294
  633. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +213 -214
  634. package/dist/builtin/workflows/src/tui/submit-pane.ts +114 -130
  635. package/dist/builtin/workflows/src/tui/switcher.ts +120 -128
  636. package/dist/builtin/workflows/src/tui/text-helpers.ts +136 -145
  637. package/dist/builtin/workflows/src/tui/toast.ts +68 -67
  638. package/dist/builtin/workflows/src/tui/widget.ts +265 -285
  639. package/dist/builtin/workflows/src/tui/workflow-attach-pane-handle.ts +12 -17
  640. package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +81 -91
  641. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +468 -479
  642. package/dist/builtin/workflows/src/tui/workflow-list.ts +130 -145
  643. package/dist/builtin/workflows/src/tui/workflow-notice-card.ts +127 -144
  644. package/dist/builtin/workflows/src/tui/workflow-resume-selector.ts +217 -217
  645. package/dist/builtin/workflows/src/tui/workflow-status.ts +7 -0
  646. package/dist/builtin/workflows/src/workflows/identity.ts +12 -12
  647. package/dist/builtin/workflows/src/workflows/registry.ts +66 -68
  648. package/dist/bun/cli.js.map +1 -1
  649. package/dist/bun/internal-intercom-broker.d.ts.map +1 -1
  650. package/dist/bun/internal-intercom-broker.js +1 -1
  651. package/dist/bun/internal-intercom-broker.js.map +1 -1
  652. package/dist/bun/register-bedrock.js +1 -1
  653. package/dist/bun/register-bedrock.js.map +1 -1
  654. package/dist/cli/args.d.ts +8 -1
  655. package/dist/cli/args.d.ts.map +1 -1
  656. package/dist/cli/args.js +28 -22
  657. package/dist/cli/args.js.map +1 -1
  658. package/dist/cli/config-selector.d.ts +4 -2
  659. package/dist/cli/config-selector.d.ts.map +1 -1
  660. package/dist/cli/config-selector.js +2 -2
  661. package/dist/cli/config-selector.js.map +1 -1
  662. package/dist/cli/credential-print.d.ts +170 -0
  663. package/dist/cli/credential-print.d.ts.map +1 -0
  664. package/dist/cli/credential-print.js +513 -0
  665. package/dist/cli/credential-print.js.map +1 -0
  666. package/dist/cli/list-models.d.ts +2 -2
  667. package/dist/cli/list-models.d.ts.map +1 -1
  668. package/dist/cli/list-models.js +6 -7
  669. package/dist/cli/list-models.js.map +1 -1
  670. package/dist/cli/project-trust.d.ts +1 -1
  671. package/dist/cli/project-trust.d.ts.map +1 -1
  672. package/dist/cli/project-trust.js.map +1 -1
  673. package/dist/cli/session-picker.d.ts.map +1 -1
  674. package/dist/cli/session-picker.js +2 -1
  675. package/dist/cli/session-picker.js.map +1 -1
  676. package/dist/cli/startup-ui.d.ts +3 -0
  677. package/dist/cli/startup-ui.d.ts.map +1 -1
  678. package/dist/cli/startup-ui.js +58 -2
  679. package/dist/cli/startup-ui.js.map +1 -1
  680. package/dist/cli.js +2 -0
  681. package/dist/cli.js.map +1 -1
  682. package/dist/config-command-parser.d.ts +9 -0
  683. package/dist/config-command-parser.d.ts.map +1 -0
  684. package/dist/config-command-parser.js +22 -0
  685. package/dist/config-command-parser.js.map +1 -0
  686. package/dist/config-self-update.d.ts +6 -2
  687. package/dist/config-self-update.d.ts.map +1 -1
  688. package/dist/config-self-update.js +23 -13
  689. package/dist/config-self-update.js.map +1 -1
  690. package/dist/config.d.ts +5 -3
  691. package/dist/config.d.ts.map +1 -1
  692. package/dist/config.js +36 -14
  693. package/dist/config.js.map +1 -1
  694. package/dist/core/agent-session-accessors.d.ts.map +1 -1
  695. package/dist/core/agent-session-accessors.js +125 -24
  696. package/dist/core/agent-session-accessors.js.map +1 -1
  697. package/dist/core/agent-session-auto-compaction.d.ts +4 -3
  698. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  699. package/dist/core/agent-session-auto-compaction.js +59 -64
  700. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  701. package/dist/core/agent-session-bash.d.ts +10 -7
  702. package/dist/core/agent-session-bash.d.ts.map +1 -1
  703. package/dist/core/agent-session-bash.js +34 -13
  704. package/dist/core/agent-session-bash.js.map +1 -1
  705. package/dist/core/agent-session-compaction.d.ts +11 -1
  706. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  707. package/dist/core/agent-session-compaction.js +138 -27
  708. package/dist/core/agent-session-compaction.js.map +1 -1
  709. package/dist/core/agent-session-custom-message-commit.d.ts +14 -0
  710. package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -0
  711. package/dist/core/agent-session-custom-message-commit.js +145 -0
  712. package/dist/core/agent-session-custom-message-commit.js.map +1 -0
  713. package/dist/core/agent-session-delivery-forwarding.d.ts +9 -0
  714. package/dist/core/agent-session-delivery-forwarding.d.ts.map +1 -0
  715. package/dist/core/agent-session-delivery-forwarding.js +36 -0
  716. package/dist/core/agent-session-delivery-forwarding.js.map +1 -0
  717. package/dist/core/agent-session-events.d.ts +1 -1
  718. package/dist/core/agent-session-events.d.ts.map +1 -1
  719. package/dist/core/agent-session-events.js +57 -19
  720. package/dist/core/agent-session-events.js.map +1 -1
  721. package/dist/core/agent-session-export.d.ts +1 -1
  722. package/dist/core/agent-session-export.d.ts.map +1 -1
  723. package/dist/core/agent-session-export.js +32 -25
  724. package/dist/core/agent-session-export.js.map +1 -1
  725. package/dist/core/agent-session-extension-bindings.d.ts +2 -6
  726. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  727. package/dist/core/agent-session-extension-bindings.js +38 -18
  728. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  729. package/dist/core/agent-session-message-queue.d.ts +7 -4
  730. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  731. package/dist/core/agent-session-message-queue.js +101 -98
  732. package/dist/core/agent-session-message-queue.js.map +1 -1
  733. package/dist/core/agent-session-methods.d.ts +52 -45
  734. package/dist/core/agent-session-methods.d.ts.map +1 -1
  735. package/dist/core/agent-session-methods.js.map +1 -1
  736. package/dist/core/agent-session-models.d.ts +3 -39
  737. package/dist/core/agent-session-models.d.ts.map +1 -1
  738. package/dist/core/agent-session-models.js +22 -160
  739. package/dist/core/agent-session-models.js.map +1 -1
  740. package/dist/core/agent-session-persistent-custom-messages.d.ts +47 -0
  741. package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -0
  742. package/dist/core/agent-session-persistent-custom-messages.js +269 -0
  743. package/dist/core/agent-session-persistent-custom-messages.js.map +1 -0
  744. package/dist/core/agent-session-post-tool-compaction.d.ts +1 -1
  745. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
  746. package/dist/core/agent-session-post-tool-compaction.js +34 -11
  747. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  748. package/dist/core/agent-session-prompt.d.ts +2 -0
  749. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  750. package/dist/core/agent-session-prompt.js +52 -25
  751. package/dist/core/agent-session-prompt.js.map +1 -1
  752. package/dist/core/agent-session-queue-pause.d.ts +10 -0
  753. package/dist/core/agent-session-queue-pause.d.ts.map +1 -0
  754. package/dist/core/agent-session-queue-pause.js +87 -0
  755. package/dist/core/agent-session-queue-pause.js.map +1 -0
  756. package/dist/core/agent-session-retry.d.ts +0 -11
  757. package/dist/core/agent-session-retry.d.ts.map +1 -1
  758. package/dist/core/agent-session-retry.js +38 -64
  759. package/dist/core/agent-session-retry.js.map +1 -1
  760. package/dist/core/agent-session-runtime-auth.d.ts +6 -0
  761. package/dist/core/agent-session-runtime-auth.d.ts.map +1 -0
  762. package/dist/core/agent-session-runtime-auth.js +18 -0
  763. package/dist/core/agent-session-runtime-auth.js.map +1 -0
  764. package/dist/core/agent-session-runtime.d.ts +25 -3
  765. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  766. package/dist/core/agent-session-runtime.js +55 -11
  767. package/dist/core/agent-session-runtime.js.map +1 -1
  768. package/dist/core/agent-session-services.d.ts +4 -9
  769. package/dist/core/agent-session-services.d.ts.map +1 -1
  770. package/dist/core/agent-session-services.js +25 -25
  771. package/dist/core/agent-session-services.js.map +1 -1
  772. package/dist/core/agent-session-state.d.ts +1 -1
  773. package/dist/core/agent-session-state.d.ts.map +1 -1
  774. package/dist/core/agent-session-state.js +3 -0
  775. package/dist/core/agent-session-state.js.map +1 -1
  776. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  777. package/dist/core/agent-session-tool-hooks.js +8 -7
  778. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  779. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  780. package/dist/core/agent-session-tool-registry.js +6 -20
  781. package/dist/core/agent-session-tool-registry.js.map +1 -1
  782. package/dist/core/agent-session-transfer.d.ts +4 -0
  783. package/dist/core/agent-session-transfer.d.ts.map +1 -0
  784. package/dist/core/agent-session-transfer.js +67 -0
  785. package/dist/core/agent-session-transfer.js.map +1 -0
  786. package/dist/core/agent-session-tree.d.ts +1 -1
  787. package/dist/core/agent-session-tree.d.ts.map +1 -1
  788. package/dist/core/agent-session-tree.js +13 -3
  789. package/dist/core/agent-session-tree.js.map +1 -1
  790. package/dist/core/agent-session-types.d.ts +28 -14
  791. package/dist/core/agent-session-types.d.ts.map +1 -1
  792. package/dist/core/agent-session-types.js +4 -4
  793. package/dist/core/agent-session-types.js.map +1 -1
  794. package/dist/core/agent-session.d.ts +27 -13
  795. package/dist/core/agent-session.d.ts.map +1 -1
  796. package/dist/core/agent-session.js +17 -12
  797. package/dist/core/agent-session.js.map +1 -1
  798. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  799. package/dist/core/anthropic-thinking-guard.js +4 -2
  800. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  801. package/dist/core/async/format.d.ts +1 -1
  802. package/dist/core/async/format.d.ts.map +1 -1
  803. package/dist/core/async/format.js +3 -1
  804. package/dist/core/async/format.js.map +1 -1
  805. package/dist/core/async/job-manager.d.ts.map +1 -1
  806. package/dist/core/async/job-manager.js +20 -5
  807. package/dist/core/async/job-manager.js.map +1 -1
  808. package/dist/core/async/session-manager.d.ts.map +1 -1
  809. package/dist/core/async/session-manager.js.map +1 -1
  810. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  811. package/dist/core/atomic-guide-command.js +32 -35
  812. package/dist/core/atomic-guide-command.js.map +1 -1
  813. package/dist/core/auth-guidance.d.ts.map +1 -1
  814. package/dist/core/auth-guidance.js.map +1 -1
  815. package/dist/core/auth-storage-backends.d.ts +1 -0
  816. package/dist/core/auth-storage-backends.d.ts.map +1 -1
  817. package/dist/core/auth-storage-backends.js +30 -5
  818. package/dist/core/auth-storage-backends.js.map +1 -1
  819. package/dist/core/auth-storage.d.ts +13 -136
  820. package/dist/core/auth-storage.d.ts.map +1 -1
  821. package/dist/core/auth-storage.js +69 -375
  822. package/dist/core/auth-storage.js.map +1 -1
  823. package/dist/core/bash-executor.d.ts +5 -3
  824. package/dist/core/bash-executor.d.ts.map +1 -1
  825. package/dist/core/bash-executor.js +5 -4
  826. package/dist/core/bash-executor.js.map +1 -1
  827. package/dist/core/builtin-packages.d.ts.map +1 -1
  828. package/dist/core/builtin-packages.js +1 -10
  829. package/dist/core/builtin-packages.js.map +1 -1
  830. package/dist/core/cache-stats.d.ts +25 -0
  831. package/dist/core/cache-stats.d.ts.map +1 -0
  832. package/dist/core/cache-stats.js +70 -0
  833. package/dist/core/cache-stats.js.map +1 -0
  834. package/dist/core/callback-activity.d.ts.map +1 -1
  835. package/dist/core/callback-activity.js.map +1 -1
  836. package/dist/core/codex-errors.d.ts.map +1 -1
  837. package/dist/core/codex-errors.js +1 -1
  838. package/dist/core/codex-errors.js.map +1 -1
  839. package/dist/core/codex-fast-mode.d.ts.map +1 -1
  840. package/dist/core/codex-fast-mode.js.map +1 -1
  841. package/dist/core/compaction/branch-summarization.d.ts +15 -5
  842. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  843. package/dist/core/compaction/branch-summarization.js +23 -12
  844. package/dist/core/compaction/branch-summarization.js.map +1 -1
  845. package/dist/core/compaction/compaction-boundary.d.ts +18 -1
  846. package/dist/core/compaction/compaction-boundary.d.ts.map +1 -1
  847. package/dist/core/compaction/compaction-boundary.js +12 -8
  848. package/dist/core/compaction/compaction-boundary.js.map +1 -1
  849. package/dist/core/compaction/compaction-runner.d.ts +63 -6
  850. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  851. package/dist/core/compaction/compaction-runner.js +244 -17
  852. package/dist/core/compaction/compaction-runner.js.map +1 -1
  853. package/dist/core/compaction/compaction-types.d.ts +53 -2
  854. package/dist/core/compaction/compaction-types.d.ts.map +1 -1
  855. package/dist/core/compaction/compaction-types.js.map +1 -1
  856. package/dist/core/compaction/compaction.d.ts.map +1 -1
  857. package/dist/core/compaction/compaction.js +5 -1
  858. package/dist/core/compaction/compaction.js.map +1 -1
  859. package/dist/core/compaction/deleted-ranges.d.ts.map +1 -1
  860. package/dist/core/compaction/deleted-ranges.js.map +1 -1
  861. package/dist/core/compaction/fallback-planner.d.ts +64 -0
  862. package/dist/core/compaction/fallback-planner.d.ts.map +1 -0
  863. package/dist/core/compaction/fallback-planner.js +75 -0
  864. package/dist/core/compaction/fallback-planner.js.map +1 -0
  865. package/dist/core/compaction/index.d.ts +7 -4
  866. package/dist/core/compaction/index.d.ts.map +1 -1
  867. package/dist/core/compaction/index.js +7 -4
  868. package/dist/core/compaction/index.js.map +1 -1
  869. package/dist/core/compaction/planner-outcome.d.ts +86 -0
  870. package/dist/core/compaction/planner-outcome.d.ts.map +1 -0
  871. package/dist/core/compaction/planner-outcome.js +122 -0
  872. package/dist/core/compaction/planner-outcome.js.map +1 -0
  873. package/dist/core/compaction/range-planner-diagnostics.d.ts +58 -6
  874. package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
  875. package/dist/core/compaction/range-planner-diagnostics.js +71 -31
  876. package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
  877. package/dist/core/compaction/range-planner.d.ts +39 -8
  878. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  879. package/dist/core/compaction/range-planner.js +140 -51
  880. package/dist/core/compaction/range-planner.js.map +1 -1
  881. package/dist/core/compaction/region-trimming.d.ts +34 -0
  882. package/dist/core/compaction/region-trimming.d.ts.map +1 -0
  883. package/dist/core/compaction/region-trimming.js +73 -0
  884. package/dist/core/compaction/region-trimming.js.map +1 -0
  885. package/dist/core/compaction/transcript-serialization.d.ts +8 -1
  886. package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
  887. package/dist/core/compaction/transcript-serialization.js +78 -27
  888. package/dist/core/compaction/transcript-serialization.js.map +1 -1
  889. package/dist/core/context-tool-pairing.d.ts +19 -0
  890. package/dist/core/context-tool-pairing.d.ts.map +1 -0
  891. package/dist/core/context-tool-pairing.js +50 -0
  892. package/dist/core/context-tool-pairing.js.map +1 -0
  893. package/dist/core/copilot-env-routing.d.ts +36 -0
  894. package/dist/core/copilot-env-routing.d.ts.map +1 -0
  895. package/dist/core/copilot-env-routing.js +94 -0
  896. package/dist/core/copilot-env-routing.js.map +1 -0
  897. package/dist/core/diagnostics.d.ts +8 -0
  898. package/dist/core/diagnostics.d.ts.map +1 -1
  899. package/dist/core/diagnostics.js.map +1 -1
  900. package/dist/core/exec.d.ts.map +1 -1
  901. package/dist/core/exec.js +5 -0
  902. package/dist/core/exec.js.map +1 -1
  903. package/dist/core/experimental.d.ts.map +1 -1
  904. package/dist/core/experimental.js +2 -1
  905. package/dist/core/experimental.js.map +1 -1
  906. package/dist/core/extensions/agent-events.d.ts +10 -0
  907. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  908. package/dist/core/extensions/agent-events.js.map +1 -1
  909. package/dist/core/extensions/api-types.d.ts +9 -3
  910. package/dist/core/extensions/api-types.d.ts.map +1 -1
  911. package/dist/core/extensions/api-types.js.map +1 -1
  912. package/dist/core/extensions/context-types.d.ts +10 -1
  913. package/dist/core/extensions/context-types.d.ts.map +1 -1
  914. package/dist/core/extensions/context-types.js.map +1 -1
  915. package/dist/core/extensions/event-types.d.ts +2 -2
  916. package/dist/core/extensions/event-types.d.ts.map +1 -1
  917. package/dist/core/extensions/event-types.js.map +1 -1
  918. package/dist/core/extensions/index.d.ts +7 -5
  919. package/dist/core/extensions/index.d.ts.map +1 -1
  920. package/dist/core/extensions/index.js +2 -2
  921. package/dist/core/extensions/index.js.map +1 -1
  922. package/dist/core/extensions/loader-api.d.ts +1 -1
  923. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  924. package/dist/core/extensions/loader-api.js +63 -29
  925. package/dist/core/extensions/loader-api.js.map +1 -1
  926. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  927. package/dist/core/extensions/loader-core.js +3 -2
  928. package/dist/core/extensions/loader-core.js.map +1 -1
  929. package/dist/core/extensions/loader-discovery.d.ts.map +1 -1
  930. package/dist/core/extensions/loader-discovery.js.map +1 -1
  931. package/dist/core/extensions/loader-resources.d.ts.map +1 -1
  932. package/dist/core/extensions/loader-resources.js.map +1 -1
  933. package/dist/core/extensions/loader-runtime.d.ts +2 -4
  934. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  935. package/dist/core/extensions/loader-runtime.js +214 -13
  936. package/dist/core/extensions/loader-runtime.js.map +1 -1
  937. package/dist/core/extensions/loader-virtual-modules.d.ts +17 -0
  938. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  939. package/dist/core/extensions/loader-virtual-modules.js +288 -19
  940. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  941. package/dist/core/extensions/loader.d.ts.map +1 -1
  942. package/dist/core/extensions/loader.js.map +1 -1
  943. package/dist/core/extensions/message-types.d.ts +12 -4
  944. package/dist/core/extensions/message-types.d.ts.map +1 -1
  945. package/dist/core/extensions/message-types.js.map +1 -1
  946. package/dist/core/extensions/provider-types.d.ts +16 -5
  947. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  948. package/dist/core/extensions/provider-types.js.map +1 -1
  949. package/dist/core/extensions/reactive-widget.d.ts.map +1 -1
  950. package/dist/core/extensions/reactive-widget.js.map +1 -1
  951. package/dist/core/extensions/runner-context.d.ts +29 -1
  952. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  953. package/dist/core/extensions/runner-context.js +56 -0
  954. package/dist/core/extensions/runner-context.js.map +1 -1
  955. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  956. package/dist/core/extensions/runner-events.js.map +1 -1
  957. package/dist/core/extensions/runner-registries.d.ts +2 -1
  958. package/dist/core/extensions/runner-registries.d.ts.map +1 -1
  959. package/dist/core/extensions/runner-registries.js +8 -0
  960. package/dist/core/extensions/runner-registries.js.map +1 -1
  961. package/dist/core/extensions/runner.d.ts +7 -2
  962. package/dist/core/extensions/runner.d.ts.map +1 -1
  963. package/dist/core/extensions/runner.js +65 -23
  964. package/dist/core/extensions/runner.js.map +1 -1
  965. package/dist/core/extensions/runtime-types.d.ts +35 -2
  966. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  967. package/dist/core/extensions/runtime-types.js.map +1 -1
  968. package/dist/core/extensions/session-events.d.ts.map +1 -1
  969. package/dist/core/extensions/session-events.js.map +1 -1
  970. package/dist/core/extensions/tool-types.d.ts +7 -3
  971. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  972. package/dist/core/extensions/tool-types.js.map +1 -1
  973. package/dist/core/extensions/types.d.ts +15 -2
  974. package/dist/core/extensions/types.d.ts.map +1 -1
  975. package/dist/core/extensions/types.js +1 -1
  976. package/dist/core/extensions/types.js.map +1 -1
  977. package/dist/core/extensions/ui-types.d.ts +34 -6
  978. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  979. package/dist/core/extensions/ui-types.js.map +1 -1
  980. package/dist/core/fallback-models.d.ts +37 -0
  981. package/dist/core/fallback-models.d.ts.map +1 -0
  982. package/dist/core/fallback-models.js +57 -0
  983. package/dist/core/fallback-models.js.map +1 -0
  984. package/dist/core/flattened-tool-arguments.d.ts +4 -7
  985. package/dist/core/flattened-tool-arguments.d.ts.map +1 -1
  986. package/dist/core/flattened-tool-arguments.js +4 -7
  987. package/dist/core/flattened-tool-arguments.js.map +1 -1
  988. package/dist/core/footer-data-provider.d.ts +10 -0
  989. package/dist/core/footer-data-provider.d.ts.map +1 -1
  990. package/dist/core/footer-data-provider.js +5 -3
  991. package/dist/core/footer-data-provider.js.map +1 -1
  992. package/dist/core/http-dispatcher.d.ts +1 -0
  993. package/dist/core/http-dispatcher.d.ts.map +1 -1
  994. package/dist/core/http-dispatcher.js +42 -8
  995. package/dist/core/http-dispatcher.js.map +1 -1
  996. package/dist/core/keybindings.d.ts +7 -2
  997. package/dist/core/keybindings.d.ts.map +1 -1
  998. package/dist/core/keybindings.js +3 -1
  999. package/dist/core/keybindings.js.map +1 -1
  1000. package/dist/core/messages.d.ts +24 -4
  1001. package/dist/core/messages.d.ts.map +1 -1
  1002. package/dist/core/messages.js +64 -13
  1003. package/dist/core/messages.js.map +1 -1
  1004. package/dist/core/model-capabilities.d.ts +18 -0
  1005. package/dist/core/model-capabilities.d.ts.map +1 -0
  1006. package/dist/core/model-capabilities.js +22 -0
  1007. package/dist/core/model-capabilities.js.map +1 -0
  1008. package/dist/core/model-config.d.ts +542 -0
  1009. package/dist/core/model-config.d.ts.map +1 -0
  1010. package/dist/core/{model-registry-schemas.js → model-config.js} +92 -32
  1011. package/dist/core/model-config.js.map +1 -0
  1012. package/dist/core/model-refresh-timeout.d.ts +9 -0
  1013. package/dist/core/model-refresh-timeout.d.ts.map +1 -0
  1014. package/dist/core/model-refresh-timeout.js +9 -0
  1015. package/dist/core/model-refresh-timeout.js.map +1 -0
  1016. package/dist/core/model-registry.d.ts +26 -94
  1017. package/dist/core/model-registry.d.ts.map +1 -1
  1018. package/dist/core/model-registry.js +65 -382
  1019. package/dist/core/model-registry.js.map +1 -1
  1020. package/dist/core/model-resolver-cli.d.ts +2 -2
  1021. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  1022. package/dist/core/model-resolver-cli.js +2 -2
  1023. package/dist/core/model-resolver-cli.js.map +1 -1
  1024. package/dist/core/model-resolver-defaults.d.ts.map +1 -1
  1025. package/dist/core/model-resolver-defaults.js +5 -1
  1026. package/dist/core/model-resolver-defaults.js.map +1 -1
  1027. package/dist/core/model-resolver-initial.d.ts +4 -4
  1028. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  1029. package/dist/core/model-resolver-initial.js +26 -17
  1030. package/dist/core/model-resolver-initial.js.map +1 -1
  1031. package/dist/core/model-resolver-patterns.d.ts.map +1 -1
  1032. package/dist/core/model-resolver-patterns.js +0 -2
  1033. package/dist/core/model-resolver-patterns.js.map +1 -1
  1034. package/dist/core/model-resolver-scope.d.ts +5 -3
  1035. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  1036. package/dist/core/model-resolver-scope.js +32 -8
  1037. package/dist/core/model-resolver-scope.js.map +1 -1
  1038. package/dist/core/model-resolver-types.d.ts +2 -0
  1039. package/dist/core/model-resolver-types.d.ts.map +1 -1
  1040. package/dist/core/model-resolver-types.js.map +1 -1
  1041. package/dist/core/model-resolver.d.ts +3 -3
  1042. package/dist/core/model-resolver.d.ts.map +1 -1
  1043. package/dist/core/model-resolver.js +1 -1
  1044. package/dist/core/model-resolver.js.map +1 -1
  1045. package/dist/core/model-runtime-auth.d.ts +7 -0
  1046. package/dist/core/model-runtime-auth.d.ts.map +1 -0
  1047. package/dist/core/model-runtime-auth.js +17 -0
  1048. package/dist/core/model-runtime-auth.js.map +1 -0
  1049. package/dist/core/model-runtime-providers.d.ts +6 -0
  1050. package/dist/core/model-runtime-providers.d.ts.map +1 -0
  1051. package/dist/core/model-runtime-providers.js +22 -0
  1052. package/dist/core/model-runtime-providers.js.map +1 -0
  1053. package/dist/core/model-runtime-restoration.d.ts +6 -0
  1054. package/dist/core/model-runtime-restoration.d.ts.map +1 -0
  1055. package/dist/core/model-runtime-restoration.js +21 -0
  1056. package/dist/core/model-runtime-restoration.js.map +1 -0
  1057. package/dist/core/model-runtime-snapshot.d.ts +19 -0
  1058. package/dist/core/model-runtime-snapshot.d.ts.map +1 -0
  1059. package/dist/core/model-runtime-snapshot.js +111 -0
  1060. package/dist/core/model-runtime-snapshot.js.map +1 -0
  1061. package/dist/core/model-runtime-streaming.d.ts +17 -0
  1062. package/dist/core/model-runtime-streaming.d.ts.map +1 -0
  1063. package/dist/core/model-runtime-streaming.js +66 -0
  1064. package/dist/core/model-runtime-streaming.js.map +1 -0
  1065. package/dist/core/model-runtime-types.d.ts +21 -0
  1066. package/dist/core/model-runtime-types.d.ts.map +1 -0
  1067. package/dist/core/model-runtime-types.js +2 -0
  1068. package/dist/core/model-runtime-types.js.map +1 -0
  1069. package/dist/core/model-runtime.d.ts +79 -0
  1070. package/dist/core/model-runtime.d.ts.map +1 -0
  1071. package/dist/core/model-runtime.js +417 -0
  1072. package/dist/core/model-runtime.js.map +1 -0
  1073. package/dist/core/models-store.d.ts +2 -10
  1074. package/dist/core/models-store.d.ts.map +1 -1
  1075. package/dist/core/models-store.js +2 -29
  1076. package/dist/core/models-store.js.map +1 -1
  1077. package/dist/core/oauth-login.d.ts +24 -0
  1078. package/dist/core/oauth-login.d.ts.map +1 -0
  1079. package/dist/core/oauth-login.js +92 -0
  1080. package/dist/core/oauth-login.js.map +1 -0
  1081. package/dist/core/oauth-provider-metadata.d.ts +5 -0
  1082. package/dist/core/oauth-provider-metadata.d.ts.map +1 -0
  1083. package/dist/core/oauth-provider-metadata.js +33 -0
  1084. package/dist/core/oauth-provider-metadata.js.map +1 -0
  1085. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
  1086. package/dist/core/output-guard.d.ts +44 -0
  1087. package/dist/core/output-guard.d.ts.map +1 -1
  1088. package/dist/core/output-guard.js +63 -0
  1089. package/dist/core/output-guard.js.map +1 -1
  1090. package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
  1091. package/dist/core/package-manager-auto-resources.js +18 -5
  1092. package/dist/core/package-manager-auto-resources.js.map +1 -1
  1093. package/dist/core/package-manager-git.d.ts.map +1 -1
  1094. package/dist/core/package-manager-git.js +27 -11
  1095. package/dist/core/package-manager-git.js.map +1 -1
  1096. package/dist/core/package-manager-npm.d.ts.map +1 -1
  1097. package/dist/core/package-manager-npm.js +4 -2
  1098. package/dist/core/package-manager-npm.js.map +1 -1
  1099. package/dist/core/package-manager-operations.d.ts.map +1 -1
  1100. package/dist/core/package-manager-operations.js +2 -2
  1101. package/dist/core/package-manager-operations.js.map +1 -1
  1102. package/dist/core/package-manager-paths.d.ts.map +1 -1
  1103. package/dist/core/package-manager-paths.js.map +1 -1
  1104. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  1105. package/dist/core/package-manager-resolver.js +71 -26
  1106. package/dist/core/package-manager-resolver.js.map +1 -1
  1107. package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
  1108. package/dist/core/package-manager-resource-collector.js +13 -7
  1109. package/dist/core/package-manager-resource-collector.js.map +1 -1
  1110. package/dist/core/package-manager-resource-files.d.ts.map +1 -1
  1111. package/dist/core/package-manager-resource-files.js +4 -3
  1112. package/dist/core/package-manager-resource-files.js.map +1 -1
  1113. package/dist/core/package-manager-resource-patterns.d.ts +1 -0
  1114. package/dist/core/package-manager-resource-patterns.d.ts.map +1 -1
  1115. package/dist/core/package-manager-resource-patterns.js +15 -0
  1116. package/dist/core/package-manager-resource-patterns.js.map +1 -1
  1117. package/dist/core/package-manager-settings.d.ts.map +1 -1
  1118. package/dist/core/package-manager-settings.js +3 -2
  1119. package/dist/core/package-manager-settings.js.map +1 -1
  1120. package/dist/core/package-manager-source.d.ts.map +1 -1
  1121. package/dist/core/package-manager-source.js +16 -9
  1122. package/dist/core/package-manager-source.js.map +1 -1
  1123. package/dist/core/package-manager-types.d.ts +3 -0
  1124. package/dist/core/package-manager-types.d.ts.map +1 -1
  1125. package/dist/core/package-manager-types.js.map +1 -1
  1126. package/dist/core/package-manager.d.ts +1 -1
  1127. package/dist/core/package-manager.d.ts.map +1 -1
  1128. package/dist/core/package-manager.js +2 -3
  1129. package/dist/core/package-manager.js.map +1 -1
  1130. package/dist/core/prompt-templates-async.d.ts.map +1 -1
  1131. package/dist/core/prompt-templates-async.js +15 -7
  1132. package/dist/core/prompt-templates-async.js.map +1 -1
  1133. package/dist/core/prompt-templates.d.ts +1 -0
  1134. package/dist/core/prompt-templates.d.ts.map +1 -1
  1135. package/dist/core/prompt-templates.js +4 -4
  1136. package/dist/core/prompt-templates.js.map +1 -1
  1137. package/dist/core/provider-composer-internal.d.ts +53 -0
  1138. package/dist/core/provider-composer-internal.d.ts.map +1 -0
  1139. package/dist/core/provider-composer-internal.js +273 -0
  1140. package/dist/core/provider-composer-internal.js.map +1 -0
  1141. package/dist/core/provider-composer.d.ts +16 -0
  1142. package/dist/core/provider-composer.d.ts.map +1 -0
  1143. package/dist/core/provider-composer.js +108 -0
  1144. package/dist/core/provider-composer.js.map +1 -0
  1145. package/dist/core/provider-context-usage.d.ts.map +1 -1
  1146. package/dist/core/provider-context-usage.js +2 -1
  1147. package/dist/core/provider-context-usage.js.map +1 -1
  1148. package/dist/core/provider-display-names.d.ts.map +1 -1
  1149. package/dist/core/provider-display-names.js +4 -0
  1150. package/dist/core/provider-display-names.js.map +1 -1
  1151. package/dist/core/remote-catalog-provider.d.ts +1 -1
  1152. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  1153. package/dist/core/remote-catalog-provider.js +82 -105
  1154. package/dist/core/remote-catalog-provider.js.map +1 -1
  1155. package/dist/core/resolve-config-value.d.ts +8 -7
  1156. package/dist/core/resolve-config-value.d.ts.map +1 -1
  1157. package/dist/core/resolve-config-value.js +26 -23
  1158. package/dist/core/resolve-config-value.js.map +1 -1
  1159. package/dist/core/resource-loader-assets.d.ts.map +1 -1
  1160. package/dist/core/resource-loader-assets.js +58 -8
  1161. package/dist/core/resource-loader-assets.js.map +1 -1
  1162. package/dist/core/resource-loader-context-files.d.ts +6 -0
  1163. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  1164. package/dist/core/resource-loader-context-files.js +85 -4
  1165. package/dist/core/resource-loader-context-files.js.map +1 -1
  1166. package/dist/core/resource-loader-core.d.ts +13 -3
  1167. package/dist/core/resource-loader-core.d.ts.map +1 -1
  1168. package/dist/core/resource-loader-core.js +39 -19
  1169. package/dist/core/resource-loader-core.js.map +1 -1
  1170. package/dist/core/resource-loader-discovery.d.ts.map +1 -1
  1171. package/dist/core/resource-loader-discovery.js.map +1 -1
  1172. package/dist/core/resource-loader-extensions.d.ts +1 -0
  1173. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  1174. package/dist/core/resource-loader-extensions.js +140 -12
  1175. package/dist/core/resource-loader-extensions.js.map +1 -1
  1176. package/dist/core/resource-loader-helpers.d.ts.map +1 -1
  1177. package/dist/core/resource-loader-helpers.js +1 -0
  1178. package/dist/core/resource-loader-helpers.js.map +1 -1
  1179. package/dist/core/resource-loader-internals.d.ts +14 -7
  1180. package/dist/core/resource-loader-internals.d.ts.map +1 -1
  1181. package/dist/core/resource-loader-internals.js.map +1 -1
  1182. package/dist/core/resource-loader-package-resources.d.ts.map +1 -1
  1183. package/dist/core/resource-loader-package-resources.js +15 -2
  1184. package/dist/core/resource-loader-package-resources.js.map +1 -1
  1185. package/dist/core/resource-loader-paths.js.map +1 -1
  1186. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  1187. package/dist/core/resource-loader-reload.js +29 -13
  1188. package/dist/core/resource-loader-reload.js.map +1 -1
  1189. package/dist/core/resource-loader-source-info.d.ts +1 -1
  1190. package/dist/core/resource-loader-source-info.d.ts.map +1 -1
  1191. package/dist/core/resource-loader-source-info.js +7 -4
  1192. package/dist/core/resource-loader-source-info.js.map +1 -1
  1193. package/dist/core/resource-loader-types.d.ts +12 -6
  1194. package/dist/core/resource-loader-types.d.ts.map +1 -1
  1195. package/dist/core/resource-loader-types.js.map +1 -1
  1196. package/dist/core/resource-loader.d.ts +1 -1
  1197. package/dist/core/resource-loader.d.ts.map +1 -1
  1198. package/dist/core/resource-loader.js +1 -1
  1199. package/dist/core/resource-loader.js.map +1 -1
  1200. package/dist/core/runtime-credentials.d.ts +16 -0
  1201. package/dist/core/runtime-credentials.d.ts.map +1 -0
  1202. package/dist/core/runtime-credentials.js +42 -0
  1203. package/dist/core/runtime-credentials.js.map +1 -0
  1204. package/dist/core/sdk-exports.d.ts +2 -2
  1205. package/dist/core/sdk-exports.d.ts.map +1 -1
  1206. package/dist/core/sdk-exports.js +2 -2
  1207. package/dist/core/sdk-exports.js.map +1 -1
  1208. package/dist/core/sdk-types.d.ts +16 -18
  1209. package/dist/core/sdk-types.d.ts.map +1 -1
  1210. package/dist/core/sdk-types.js.map +1 -1
  1211. package/dist/core/sdk.d.ts +2 -1
  1212. package/dist/core/sdk.d.ts.map +1 -1
  1213. package/dist/core/sdk.js +61 -132
  1214. package/dist/core/sdk.js.map +1 -1
  1215. package/dist/core/session-manager-archive.d.ts.map +1 -1
  1216. package/dist/core/session-manager-archive.js +5 -2
  1217. package/dist/core/session-manager-archive.js.map +1 -1
  1218. package/dist/core/session-manager-classification.js +3 -3
  1219. package/dist/core/session-manager-classification.js.map +1 -1
  1220. package/dist/core/session-manager-core.d.ts +5 -4
  1221. package/dist/core/session-manager-core.d.ts.map +1 -1
  1222. package/dist/core/session-manager-core.js +29 -33
  1223. package/dist/core/session-manager-core.js.map +1 -1
  1224. package/dist/core/session-manager-entries.d.ts +5 -8
  1225. package/dist/core/session-manager-entries.d.ts.map +1 -1
  1226. package/dist/core/session-manager-entries.js +4 -9
  1227. package/dist/core/session-manager-entries.js.map +1 -1
  1228. package/dist/core/session-manager-history.d.ts +8 -3
  1229. package/dist/core/session-manager-history.d.ts.map +1 -1
  1230. package/dist/core/session-manager-history.js +90 -27
  1231. package/dist/core/session-manager-history.js.map +1 -1
  1232. package/dist/core/session-manager-list.d.ts.map +1 -1
  1233. package/dist/core/session-manager-list.js +1 -1
  1234. package/dist/core/session-manager-list.js.map +1 -1
  1235. package/dist/core/session-manager-migrations.js.map +1 -1
  1236. package/dist/core/session-manager-storage.d.ts +6 -0
  1237. package/dist/core/session-manager-storage.d.ts.map +1 -1
  1238. package/dist/core/session-manager-storage.js +38 -5
  1239. package/dist/core/session-manager-storage.js.map +1 -1
  1240. package/dist/core/session-manager-types.d.ts +10 -8
  1241. package/dist/core/session-manager-types.d.ts.map +1 -1
  1242. package/dist/core/session-manager-types.js.map +1 -1
  1243. package/dist/core/session-manager-validation.d.ts.map +1 -1
  1244. package/dist/core/session-manager-validation.js +3 -16
  1245. package/dist/core/session-manager-validation.js.map +1 -1
  1246. package/dist/core/session-manager.d.ts +4 -4
  1247. package/dist/core/session-manager.d.ts.map +1 -1
  1248. package/dist/core/session-manager.js +2 -2
  1249. package/dist/core/session-manager.js.map +1 -1
  1250. package/dist/core/settings-manager-basic-accessors.d.ts +7 -4
  1251. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  1252. package/dist/core/settings-manager-basic-accessors.js +35 -50
  1253. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  1254. package/dist/core/settings-manager-core.d.ts +2 -4
  1255. package/dist/core/settings-manager-core.d.ts.map +1 -1
  1256. package/dist/core/settings-manager-core.js +5 -51
  1257. package/dist/core/settings-manager-core.js.map +1 -1
  1258. package/dist/core/settings-manager-resource-accessors.d.ts +3 -0
  1259. package/dist/core/settings-manager-resource-accessors.d.ts.map +1 -1
  1260. package/dist/core/settings-manager-resource-accessors.js +16 -0
  1261. package/dist/core/settings-manager-resource-accessors.js.map +1 -1
  1262. package/dist/core/settings-manager-ui-accessors.js +2 -1
  1263. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  1264. package/dist/core/settings-manager.d.ts +1 -1
  1265. package/dist/core/settings-manager.d.ts.map +1 -1
  1266. package/dist/core/settings-manager.js.map +1 -1
  1267. package/dist/core/settings-storage.d.ts +3 -1
  1268. package/dist/core/settings-storage.d.ts.map +1 -1
  1269. package/dist/core/settings-storage.js +23 -1
  1270. package/dist/core/settings-storage.js.map +1 -1
  1271. package/dist/core/settings-types.d.ts +10 -6
  1272. package/dist/core/settings-types.d.ts.map +1 -1
  1273. package/dist/core/settings-types.js.map +1 -1
  1274. package/dist/core/skills-async.d.ts.map +1 -1
  1275. package/dist/core/skills-async.js +18 -8
  1276. package/dist/core/skills-async.js.map +1 -1
  1277. package/dist/core/slash-commands.d.ts +1 -0
  1278. package/dist/core/slash-commands.d.ts.map +1 -1
  1279. package/dist/core/slash-commands.js +127 -24
  1280. package/dist/core/slash-commands.js.map +1 -1
  1281. package/dist/core/source-info.d.ts +3 -1
  1282. package/dist/core/source-info.d.ts.map +1 -1
  1283. package/dist/core/source-info.js +2 -0
  1284. package/dist/core/source-info.js.map +1 -1
  1285. package/dist/core/summarization-retry.d.ts +11 -0
  1286. package/dist/core/summarization-retry.d.ts.map +1 -0
  1287. package/dist/core/summarization-retry.js +21 -0
  1288. package/dist/core/summarization-retry.js.map +1 -0
  1289. package/dist/core/system-prompt.d.ts.map +1 -1
  1290. package/dist/core/system-prompt.js +15 -18
  1291. package/dist/core/system-prompt.js.map +1 -1
  1292. package/dist/core/thinking-blocks.d.ts.map +1 -1
  1293. package/dist/core/thinking-blocks.js +2 -2
  1294. package/dist/core/thinking-blocks.js.map +1 -1
  1295. package/dist/core/tools/artifact-protocol.d.ts.map +1 -1
  1296. package/dist/core/tools/artifact-protocol.js.map +1 -1
  1297. package/dist/core/tools/artifacts.d.ts.map +1 -1
  1298. package/dist/core/tools/artifacts.js.map +1 -1
  1299. package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
  1300. package/dist/core/tools/ask-user-question/ask-user-question.js +1 -1
  1301. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  1302. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts +1 -1
  1303. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts.map +1 -1
  1304. package/dist/core/tools/ask-user-question/state/build-questionnaire.js +1 -1
  1305. package/dist/core/tools/ask-user-question/state/build-questionnaire.js.map +1 -1
  1306. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
  1307. package/dist/core/tools/ask-user-question/state/questionnaire-session.js +2 -4
  1308. package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
  1309. package/dist/core/tools/ask-user-question/state/state-reducer.d.ts.map +1 -1
  1310. package/dist/core/tools/ask-user-question/state/state-reducer.js.map +1 -1
  1311. package/dist/core/tools/ask-user-question/view/body-residual-spacer.d.ts.map +1 -1
  1312. package/dist/core/tools/ask-user-question/view/body-residual-spacer.js.map +1 -1
  1313. package/dist/core/tools/ask-user-question/view/components/multi-select-view.d.ts.map +1 -1
  1314. package/dist/core/tools/ask-user-question/view/components/multi-select-view.js.map +1 -1
  1315. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts +1 -1
  1316. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts.map +1 -1
  1317. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.js.map +1 -1
  1318. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts +1 -1
  1319. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts.map +1 -1
  1320. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js +1 -3
  1321. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js.map +1 -1
  1322. package/dist/core/tools/ask-user-question/view/components/submit-picker.d.ts.map +1 -1
  1323. package/dist/core/tools/ask-user-question/view/components/submit-picker.js.map +1 -1
  1324. package/dist/core/tools/ask-user-question/view/components/tab-bar.d.ts.map +1 -1
  1325. package/dist/core/tools/ask-user-question/view/components/tab-bar.js.map +1 -1
  1326. package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts +1 -1
  1327. package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts.map +1 -1
  1328. package/dist/core/tools/ask-user-question/view/dialog-builder.js +1 -1
  1329. package/dist/core/tools/ask-user-question/view/dialog-builder.js.map +1 -1
  1330. package/dist/core/tools/ask-user-question/view/props-adapter.d.ts.map +1 -1
  1331. package/dist/core/tools/ask-user-question/view/props-adapter.js +2 -4
  1332. package/dist/core/tools/ask-user-question/view/props-adapter.js.map +1 -1
  1333. package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts +1 -1
  1334. package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts.map +1 -1
  1335. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js +2 -9
  1336. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js.map +1 -1
  1337. package/dist/core/tools/bash-async-execution.d.ts.map +1 -1
  1338. package/dist/core/tools/bash-async-execution.js +11 -4
  1339. package/dist/core/tools/bash-async-execution.js.map +1 -1
  1340. package/dist/core/tools/bash-async-jobs.d.ts.map +1 -1
  1341. package/dist/core/tools/bash-async-jobs.js +14 -2
  1342. package/dist/core/tools/bash-async-jobs.js.map +1 -1
  1343. package/dist/core/tools/bash-async-output.d.ts.map +1 -1
  1344. package/dist/core/tools/bash-async-output.js +6 -2
  1345. package/dist/core/tools/bash-async-output.js.map +1 -1
  1346. package/dist/core/tools/bash-interceptor.d.ts.map +1 -1
  1347. package/dist/core/tools/bash-interceptor.js +20 -4
  1348. package/dist/core/tools/bash-interceptor.js.map +1 -1
  1349. package/dist/core/tools/bash-leading-cd.d.ts.map +1 -1
  1350. package/dist/core/tools/bash-leading-cd.js +9 -3
  1351. package/dist/core/tools/bash-leading-cd.js.map +1 -1
  1352. package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
  1353. package/dist/core/tools/bash-pty-native.js.map +1 -1
  1354. package/dist/core/tools/bash-session-environment.d.ts +13 -0
  1355. package/dist/core/tools/bash-session-environment.d.ts.map +1 -0
  1356. package/dist/core/tools/bash-session-environment.js +47 -0
  1357. package/dist/core/tools/bash-session-environment.js.map +1 -0
  1358. package/dist/core/tools/bash.d.ts +4 -1
  1359. package/dist/core/tools/bash.d.ts.map +1 -1
  1360. package/dist/core/tools/bash.js +134 -30
  1361. package/dist/core/tools/bash.js.map +1 -1
  1362. package/dist/core/tools/block-resolver.d.ts.map +1 -1
  1363. package/dist/core/tools/block-resolver.js.map +1 -1
  1364. package/dist/core/tools/conflict-registry.d.ts.map +1 -1
  1365. package/dist/core/tools/conflict-registry.js.map +1 -1
  1366. package/dist/core/tools/directory-tree.d.ts.map +1 -1
  1367. package/dist/core/tools/directory-tree.js +20 -4
  1368. package/dist/core/tools/directory-tree.js.map +1 -1
  1369. package/dist/core/tools/edit.d.ts.map +1 -1
  1370. package/dist/core/tools/edit.js +37 -13
  1371. package/dist/core/tools/edit.js.map +1 -1
  1372. package/dist/core/tools/fetch-url.d.ts.map +1 -1
  1373. package/dist/core/tools/fetch-url.js +127 -41
  1374. package/dist/core/tools/fetch-url.js.map +1 -1
  1375. package/dist/core/tools/find.d.ts.map +1 -1
  1376. package/dist/core/tools/find.js +176 -46
  1377. package/dist/core/tools/find.js.map +1 -1
  1378. package/dist/core/tools/grep.d.ts.map +1 -1
  1379. package/dist/core/tools/grep.js +43 -10
  1380. package/dist/core/tools/grep.js.map +1 -1
  1381. package/dist/core/tools/hashline-engine/apply.d.ts.map +1 -1
  1382. package/dist/core/tools/hashline-engine/apply.js +6 -6
  1383. package/dist/core/tools/hashline-engine/apply.js.map +1 -1
  1384. package/dist/core/tools/hashline-engine/block.js +1 -1
  1385. package/dist/core/tools/hashline-engine/block.js.map +1 -1
  1386. package/dist/core/tools/hashline-engine/format.d.ts.map +1 -1
  1387. package/dist/core/tools/hashline-engine/format.js +1 -1
  1388. package/dist/core/tools/hashline-engine/format.js.map +1 -1
  1389. package/dist/core/tools/hashline-engine/input.d.ts.map +1 -1
  1390. package/dist/core/tools/hashline-engine/input.js +7 -7
  1391. package/dist/core/tools/hashline-engine/input.js.map +1 -1
  1392. package/dist/core/tools/hashline-engine/parser.js +1 -1
  1393. package/dist/core/tools/hashline-engine/parser.js.map +1 -1
  1394. package/dist/core/tools/hashline-engine/patcher.js +5 -5
  1395. package/dist/core/tools/hashline-engine/patcher.js.map +1 -1
  1396. package/dist/core/tools/hashline-engine/prefixes.js +4 -4
  1397. package/dist/core/tools/hashline-engine/prefixes.js.map +1 -1
  1398. package/dist/core/tools/hashline-engine/recovery.d.ts.map +1 -1
  1399. package/dist/core/tools/hashline-engine/recovery.js +4 -2
  1400. package/dist/core/tools/hashline-engine/recovery.js.map +1 -1
  1401. package/dist/core/tools/hashline-engine/snapshots.js +5 -5
  1402. package/dist/core/tools/hashline-engine/snapshots.js.map +1 -1
  1403. package/dist/core/tools/hashline.d.ts.map +1 -1
  1404. package/dist/core/tools/hashline.js +24 -13
  1405. package/dist/core/tools/hashline.js.map +1 -1
  1406. package/dist/core/tools/index.d.ts +6 -6
  1407. package/dist/core/tools/index.d.ts.map +1 -1
  1408. package/dist/core/tools/index.js +6 -6
  1409. package/dist/core/tools/index.js.map +1 -1
  1410. package/dist/core/tools/ls.d.ts.map +1 -1
  1411. package/dist/core/tools/ls.js +2 -1
  1412. package/dist/core/tools/ls.js.map +1 -1
  1413. package/dist/core/tools/notebook.d.ts.map +1 -1
  1414. package/dist/core/tools/notebook.js +13 -3
  1415. package/dist/core/tools/notebook.js.map +1 -1
  1416. package/dist/core/tools/read-document-extract.d.ts.map +1 -1
  1417. package/dist/core/tools/read-document-extract.js +30 -10
  1418. package/dist/core/tools/read-document-extract.js.map +1 -1
  1419. package/dist/core/tools/read-selectors.d.ts.map +1 -1
  1420. package/dist/core/tools/read-selectors.js +59 -15
  1421. package/dist/core/tools/read-selectors.js.map +1 -1
  1422. package/dist/core/tools/read-url.d.ts.map +1 -1
  1423. package/dist/core/tools/read-url.js +41 -7
  1424. package/dist/core/tools/read-url.js.map +1 -1
  1425. package/dist/core/tools/read.d.ts.map +1 -1
  1426. package/dist/core/tools/read.js +307 -72
  1427. package/dist/core/tools/read.js.map +1 -1
  1428. package/dist/core/tools/resource-selectors.d.ts +4 -0
  1429. package/dist/core/tools/resource-selectors.d.ts.map +1 -1
  1430. package/dist/core/tools/resource-selectors.js +324 -84
  1431. package/dist/core/tools/resource-selectors.js.map +1 -1
  1432. package/dist/core/tools/search-details.d.ts.map +1 -1
  1433. package/dist/core/tools/search-details.js +13 -1
  1434. package/dist/core/tools/search-details.js.map +1 -1
  1435. package/dist/core/tools/search-line-ranges.d.ts.map +1 -1
  1436. package/dist/core/tools/search-line-ranges.js +5 -2
  1437. package/dist/core/tools/search-line-ranges.js.map +1 -1
  1438. package/dist/core/tools/search-native.d.ts.map +1 -1
  1439. package/dist/core/tools/search-native.js.map +1 -1
  1440. package/dist/core/tools/search.d.ts.map +1 -1
  1441. package/dist/core/tools/search.js +244 -90
  1442. package/dist/core/tools/search.js.map +1 -1
  1443. package/dist/core/tools/structured-output.d.ts +1 -1
  1444. package/dist/core/tools/structured-output.d.ts.map +1 -1
  1445. package/dist/core/tools/structured-output.js.map +1 -1
  1446. package/dist/core/tools/todos-execute.d.ts.map +1 -1
  1447. package/dist/core/tools/todos-execute.js +4 -4
  1448. package/dist/core/tools/todos-execute.js.map +1 -1
  1449. package/dist/core/tools/todos-locks.d.ts.map +1 -1
  1450. package/dist/core/tools/todos-locks.js.map +1 -1
  1451. package/dist/core/tools/todos-mutations.js +1 -1
  1452. package/dist/core/tools/todos-mutations.js.map +1 -1
  1453. package/dist/core/tools/todos-paths.js +2 -2
  1454. package/dist/core/tools/todos-paths.js.map +1 -1
  1455. package/dist/core/tools/todos-render.d.ts.map +1 -1
  1456. package/dist/core/tools/todos-render.js +2 -2
  1457. package/dist/core/tools/todos-render.js.map +1 -1
  1458. package/dist/core/tools/todos-storage.d.ts.map +1 -1
  1459. package/dist/core/tools/todos-storage.js +1 -2
  1460. package/dist/core/tools/todos-storage.js.map +1 -1
  1461. package/dist/core/tools/todos-types.d.ts.map +1 -1
  1462. package/dist/core/tools/todos-types.js +1 -11
  1463. package/dist/core/tools/todos-types.js.map +1 -1
  1464. package/dist/core/tools/tool-definition-wrapper.d.ts +3 -0
  1465. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1466. package/dist/core/tools/tool-definition-wrapper.js +9 -5
  1467. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1468. package/dist/core/tools/url-ip-guards.d.ts.map +1 -1
  1469. package/dist/core/tools/url-ip-guards.js +27 -17
  1470. package/dist/core/tools/url-ip-guards.js.map +1 -1
  1471. package/dist/core/tools/write.d.ts.map +1 -1
  1472. package/dist/core/tools/write.js +88 -29
  1473. package/dist/core/tools/write.js.map +1 -1
  1474. package/dist/core/usage-totals.d.ts +18 -0
  1475. package/dist/core/usage-totals.d.ts.map +1 -0
  1476. package/dist/core/usage-totals.js +43 -0
  1477. package/dist/core/usage-totals.js.map +1 -0
  1478. package/dist/core/workflow-stage-admission.d.ts.map +1 -1
  1479. package/dist/core/workflow-stage-admission.js +8 -2
  1480. package/dist/core/workflow-stage-admission.js.map +1 -1
  1481. package/dist/extensions/index.d.ts +3 -0
  1482. package/dist/extensions/index.d.ts.map +1 -0
  1483. package/dist/extensions/index.js +5 -0
  1484. package/dist/extensions/index.js.map +1 -0
  1485. package/dist/extensions/llama/client.d.ts +61 -0
  1486. package/dist/extensions/llama/client.d.ts.map +1 -0
  1487. package/dist/extensions/llama/client.js +300 -0
  1488. package/dist/extensions/llama/client.js.map +1 -0
  1489. package/dist/extensions/llama/huggingface-ui.d.ts +33 -0
  1490. package/dist/extensions/llama/huggingface-ui.d.ts.map +1 -0
  1491. package/dist/extensions/llama/huggingface-ui.js +166 -0
  1492. package/dist/extensions/llama/huggingface-ui.js.map +1 -0
  1493. package/dist/extensions/llama/huggingface.d.ts +23 -0
  1494. package/dist/extensions/llama/huggingface.d.ts.map +1 -0
  1495. package/dist/extensions/llama/huggingface.js +139 -0
  1496. package/dist/extensions/llama/huggingface.js.map +1 -0
  1497. package/dist/extensions/llama/index.d.ts +3 -0
  1498. package/dist/extensions/llama/index.d.ts.map +1 -0
  1499. package/dist/extensions/llama/index.js +208 -0
  1500. package/dist/extensions/llama/index.js.map +1 -0
  1501. package/dist/extensions/llama/provider.d.ts +10 -0
  1502. package/dist/extensions/llama/provider.d.ts.map +1 -0
  1503. package/dist/extensions/llama/provider.js +107 -0
  1504. package/dist/extensions/llama/provider.js.map +1 -0
  1505. package/dist/extensions/llama/ui.d.ts +42 -0
  1506. package/dist/extensions/llama/ui.d.ts.map +1 -0
  1507. package/dist/extensions/llama/ui.js +237 -0
  1508. package/dist/extensions/llama/ui.js.map +1 -0
  1509. package/dist/index-extensions.d.ts +2 -2
  1510. package/dist/index-extensions.d.ts.map +1 -1
  1511. package/dist/index-extensions.js +1 -1
  1512. package/dist/index-extensions.js.map +1 -1
  1513. package/dist/index.d.ts +22 -23
  1514. package/dist/index.d.ts.map +1 -1
  1515. package/dist/index.js +26 -27
  1516. package/dist/index.js.map +1 -1
  1517. package/dist/main-app-mode.d.ts +1 -0
  1518. package/dist/main-app-mode.d.ts.map +1 -1
  1519. package/dist/main-app-mode.js +3 -0
  1520. package/dist/main-app-mode.js.map +1 -1
  1521. package/dist/main-deferred-startup.d.ts +1 -1
  1522. package/dist/main-deferred-startup.d.ts.map +1 -1
  1523. package/dist/main-deferred-startup.js +16 -15
  1524. package/dist/main-deferred-startup.js.map +1 -1
  1525. package/dist/main-early-input.js.map +1 -1
  1526. package/dist/main-first-time-setup.d.ts +6 -0
  1527. package/dist/main-first-time-setup.d.ts.map +1 -0
  1528. package/dist/main-first-time-setup.js +10 -0
  1529. package/dist/main-first-time-setup.js.map +1 -0
  1530. package/dist/main-runtime-api-key.d.ts +6 -0
  1531. package/dist/main-runtime-api-key.d.ts.map +1 -0
  1532. package/dist/main-runtime-api-key.js +6 -0
  1533. package/dist/main-runtime-api-key.js.map +1 -0
  1534. package/dist/main-session-options.d.ts +2 -2
  1535. package/dist/main-session-options.d.ts.map +1 -1
  1536. package/dist/main-session-options.js +3 -7
  1537. package/dist/main-session-options.js.map +1 -1
  1538. package/dist/main-session.d.ts.map +1 -1
  1539. package/dist/main-session.js +5 -4
  1540. package/dist/main-session.js.map +1 -1
  1541. package/dist/main-types.d.ts +2 -2
  1542. package/dist/main-types.d.ts.map +1 -1
  1543. package/dist/main-types.js.map +1 -1
  1544. package/dist/main.d.ts +1 -1
  1545. package/dist/main.d.ts.map +1 -1
  1546. package/dist/main.js +173 -69
  1547. package/dist/main.js.map +1 -1
  1548. package/dist/migrations-config-values.d.ts.map +1 -1
  1549. package/dist/migrations-config-values.js +3 -1
  1550. package/dist/migrations-config-values.js.map +1 -1
  1551. package/dist/migrations.d.ts.map +1 -1
  1552. package/dist/migrations.js.map +1 -1
  1553. package/dist/modes/index.d.ts +1 -1
  1554. package/dist/modes/index.d.ts.map +1 -1
  1555. package/dist/modes/index.js.map +1 -1
  1556. package/dist/modes/interactive/chat-input-actions.d.ts +1 -1
  1557. package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -1
  1558. package/dist/modes/interactive/chat-input-actions.js +30 -103
  1559. package/dist/modes/interactive/chat-input-actions.js.map +1 -1
  1560. package/dist/modes/interactive/components/atomic-banner.d.ts +9 -8
  1561. package/dist/modes/interactive/components/atomic-banner.d.ts.map +1 -1
  1562. package/dist/modes/interactive/components/atomic-banner.js +68 -22
  1563. package/dist/modes/interactive/components/atomic-banner.js.map +1 -1
  1564. package/dist/modes/interactive/components/atomic-working-status.d.ts +52 -0
  1565. package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -0
  1566. package/dist/modes/interactive/components/atomic-working-status.js +215 -0
  1567. package/dist/modes/interactive/components/atomic-working-status.js.map +1 -0
  1568. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -1
  1569. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  1570. package/dist/modes/interactive/components/chat-message-renderer.js +7 -6
  1571. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  1572. package/dist/modes/interactive/components/chat-session-host-actions.d.ts +3 -2
  1573. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
  1574. package/dist/modes/interactive/components/chat-session-host-actions.js +93 -17
  1575. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  1576. package/dist/modes/interactive/components/chat-session-host-editor.d.ts +4 -4
  1577. package/dist/modes/interactive/components/chat-session-host-editor.d.ts.map +1 -1
  1578. package/dist/modes/interactive/components/chat-session-host-editor.js +12 -7
  1579. package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -1
  1580. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  1581. package/dist/modes/interactive/components/chat-session-host-events.js +84 -15
  1582. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  1583. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts +1 -1
  1584. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
  1585. package/dist/modes/interactive/components/chat-session-host-rendering.js +49 -14
  1586. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
  1587. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts +36 -2
  1588. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts.map +1 -1
  1589. package/dist/modes/interactive/components/chat-session-host-runtime.js +129 -25
  1590. package/dist/modes/interactive/components/chat-session-host-runtime.js.map +1 -1
  1591. package/dist/modes/interactive/components/chat-session-host-state.d.ts +11 -2
  1592. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  1593. package/dist/modes/interactive/components/chat-session-host-state.js +5 -0
  1594. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  1595. package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.d.ts.map +1 -1
  1596. package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.js.map +1 -1
  1597. package/dist/modes/interactive/components/chat-session-host-types.d.ts +19 -2
  1598. package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -1
  1599. package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -1
  1600. package/dist/modes/interactive/components/chat-session-host-utils.d.ts +1 -1
  1601. package/dist/modes/interactive/components/chat-session-host-utils.d.ts.map +1 -1
  1602. package/dist/modes/interactive/components/chat-session-host-utils.js +3 -8
  1603. package/dist/modes/interactive/components/chat-session-host-utils.js.map +1 -1
  1604. package/dist/modes/interactive/components/chat-session-host.d.ts +17 -4
  1605. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  1606. package/dist/modes/interactive/components/chat-session-host.js +26 -3
  1607. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  1608. package/dist/modes/interactive/components/chat-transcript.d.ts +1 -1
  1609. package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
  1610. package/dist/modes/interactive/components/chat-transcript.js +5 -12
  1611. package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
  1612. package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
  1613. package/dist/modes/interactive/components/compaction-boundary-message.js +20 -8
  1614. package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
  1615. package/dist/modes/interactive/components/config-selector-list.d.ts +6 -6
  1616. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
  1617. package/dist/modes/interactive/components/config-selector-list.js +66 -125
  1618. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  1619. package/dist/modes/interactive/components/config-selector-project-scope.d.ts +4 -0
  1620. package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -0
  1621. package/dist/modes/interactive/components/config-selector-project-scope.js +59 -0
  1622. package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -0
  1623. package/dist/modes/interactive/components/config-selector.d.ts +8 -5
  1624. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1625. package/dist/modes/interactive/components/config-selector.js +46 -13
  1626. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1627. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1628. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1629. package/dist/modes/interactive/components/custom-editor.d.ts +11 -0
  1630. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1631. package/dist/modes/interactive/components/custom-editor.js +21 -5
  1632. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1633. package/dist/modes/interactive/components/custom-entry.d.ts +16 -0
  1634. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  1635. package/dist/modes/interactive/components/custom-entry.js +45 -0
  1636. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  1637. package/dist/modes/interactive/components/custom-message.d.ts +3 -1
  1638. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1639. package/dist/modes/interactive/components/custom-message.js +10 -5
  1640. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1641. package/dist/modes/interactive/components/diff.js +2 -2
  1642. package/dist/modes/interactive/components/diff.js.map +1 -1
  1643. package/dist/modes/interactive/components/extension-editor.d.ts +3 -2
  1644. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1645. package/dist/modes/interactive/components/extension-editor.js +14 -43
  1646. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1647. package/dist/modes/interactive/components/first-time-setup.d.ts +24 -0
  1648. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  1649. package/dist/modes/interactive/components/first-time-setup.js +80 -0
  1650. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  1651. package/dist/modes/interactive/components/footer.d.ts +7 -1
  1652. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1653. package/dist/modes/interactive/components/footer.js +68 -39
  1654. package/dist/modes/interactive/components/footer.js.map +1 -1
  1655. package/dist/modes/interactive/components/host-input-form-mount.d.ts.map +1 -1
  1656. package/dist/modes/interactive/components/host-input-form-mount.js +4 -2
  1657. package/dist/modes/interactive/components/host-input-form-mount.js.map +1 -1
  1658. package/dist/modes/interactive/components/host-input-form.d.ts +2 -0
  1659. package/dist/modes/interactive/components/host-input-form.d.ts.map +1 -1
  1660. package/dist/modes/interactive/components/host-input-form.js +61 -24
  1661. package/dist/modes/interactive/components/host-input-form.js.map +1 -1
  1662. package/dist/modes/interactive/components/host-session-picker.d.ts.map +1 -1
  1663. package/dist/modes/interactive/components/host-session-picker.js +8 -3
  1664. package/dist/modes/interactive/components/host-session-picker.js.map +1 -1
  1665. package/dist/modes/interactive/components/idle-status.d.ts +8 -0
  1666. package/dist/modes/interactive/components/idle-status.d.ts.map +1 -0
  1667. package/dist/modes/interactive/components/idle-status.js +13 -0
  1668. package/dist/modes/interactive/components/idle-status.js.map +1 -0
  1669. package/dist/modes/interactive/components/index.d.ts +8 -5
  1670. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1671. package/dist/modes/interactive/components/index.js +5 -2
  1672. package/dist/modes/interactive/components/index.js.map +1 -1
  1673. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1674. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1675. package/dist/modes/interactive/components/login-dialog.d.ts +5 -5
  1676. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1677. package/dist/modes/interactive/components/login-dialog.js +15 -9
  1678. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1679. package/dist/modes/interactive/components/model-selector.d.ts +4 -3
  1680. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1681. package/dist/modes/interactive/components/model-selector.js +70 -72
  1682. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1683. package/dist/modes/interactive/components/oauth-selector.d.ts +4 -3
  1684. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1685. package/dist/modes/interactive/components/oauth-selector.js +19 -18
  1686. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1687. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1688. package/dist/modes/interactive/components/scoped-models-selector.js +22 -13
  1689. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1690. package/dist/modes/interactive/components/session-selector-list.d.ts +1 -1
  1691. package/dist/modes/interactive/components/session-selector-list.d.ts.map +1 -1
  1692. package/dist/modes/interactive/components/session-selector-list.js.map +1 -1
  1693. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1694. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1695. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  1696. package/dist/modes/interactive/components/settings-selector-handlers.js +6 -0
  1697. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  1698. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  1699. package/dist/modes/interactive/components/settings-selector-items.js +14 -0
  1700. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  1701. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  1702. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  1703. package/dist/modes/interactive/components/settings-selector-types.d.ts +4 -0
  1704. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  1705. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  1706. package/dist/modes/interactive/components/startup-identity.d.ts +22 -0
  1707. package/dist/modes/interactive/components/startup-identity.d.ts.map +1 -0
  1708. package/dist/modes/interactive/components/startup-identity.js +58 -0
  1709. package/dist/modes/interactive/components/startup-identity.js.map +1 -0
  1710. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1711. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1712. package/dist/modes/interactive/components/tree-selector-content.d.ts.map +1 -1
  1713. package/dist/modes/interactive/components/tree-selector-content.js +0 -6
  1714. package/dist/modes/interactive/components/tree-selector-content.js.map +1 -1
  1715. package/dist/modes/interactive/components/tree-selector-model.d.ts.map +1 -1
  1716. package/dist/modes/interactive/components/tree-selector-model.js +1 -10
  1717. package/dist/modes/interactive/components/tree-selector-model.js.map +1 -1
  1718. package/dist/modes/interactive/components/tree-selector-viewport.d.ts.map +1 -1
  1719. package/dist/modes/interactive/components/tree-selector-viewport.js.map +1 -1
  1720. package/dist/modes/interactive/components/working-status.d.ts +5 -11
  1721. package/dist/modes/interactive/components/working-status.d.ts.map +1 -1
  1722. package/dist/modes/interactive/components/working-status.js +14 -15
  1723. package/dist/modes/interactive/components/working-status.js.map +1 -1
  1724. package/dist/modes/interactive/external-editor.d.ts +23 -0
  1725. package/dist/modes/interactive/external-editor.d.ts.map +1 -0
  1726. package/dist/modes/interactive/external-editor.js +120 -0
  1727. package/dist/modes/interactive/external-editor.js.map +1 -0
  1728. package/dist/modes/interactive/interactive-agent-events.js +73 -28
  1729. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  1730. package/dist/modes/interactive/interactive-auth-login.js +36 -28
  1731. package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
  1732. package/dist/modes/interactive/interactive-auth-routing.d.ts +3 -1
  1733. package/dist/modes/interactive/interactive-auth-routing.d.ts.map +1 -1
  1734. package/dist/modes/interactive/interactive-auth-routing.js +86 -64
  1735. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  1736. package/dist/modes/interactive/interactive-autocomplete.js +13 -13
  1737. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  1738. package/dist/modes/interactive/interactive-bash-compact.d.ts +2 -1
  1739. package/dist/modes/interactive/interactive-bash-compact.d.ts.map +1 -1
  1740. package/dist/modes/interactive/interactive-bash-compact.js +26 -8
  1741. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  1742. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  1743. package/dist/modes/interactive/interactive-deferred-startup.js +61 -27
  1744. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  1745. package/dist/modes/interactive/interactive-editor-actions.js +9 -13
  1746. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  1747. package/dist/modes/interactive/interactive-extension-context.js +4 -4
  1748. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  1749. package/dist/modes/interactive/interactive-extension-custom-ui.js +15 -8
  1750. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
  1751. package/dist/modes/interactive/interactive-extension-dialogs.js +51 -25
  1752. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  1753. package/dist/modes/interactive/interactive-extension-runtime.js +15 -6
  1754. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  1755. package/dist/modes/interactive/interactive-extension-widgets.js +1 -1
  1756. package/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
  1757. package/dist/modes/interactive/interactive-global-clear.d.ts +55 -3
  1758. package/dist/modes/interactive/interactive-global-clear.d.ts.map +1 -1
  1759. package/dist/modes/interactive/interactive-global-clear.js +61 -3
  1760. package/dist/modes/interactive/interactive-global-clear.js.map +1 -1
  1761. package/dist/modes/interactive/interactive-hotkeys-debug.js +2 -3
  1762. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  1763. package/dist/modes/interactive/interactive-initial-session-binding.d.ts +4 -0
  1764. package/dist/modes/interactive/interactive-initial-session-binding.d.ts.map +1 -0
  1765. package/dist/modes/interactive/interactive-initial-session-binding.js +23 -0
  1766. package/dist/modes/interactive/interactive-initial-session-binding.js.map +1 -0
  1767. package/dist/modes/interactive/interactive-input-handling.d.ts +2 -1
  1768. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
  1769. package/dist/modes/interactive/interactive-input-handling.js +82 -69
  1770. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  1771. package/dist/modes/interactive/interactive-key-identity.d.ts +22 -0
  1772. package/dist/modes/interactive/interactive-key-identity.d.ts.map +1 -0
  1773. package/dist/modes/interactive/interactive-key-identity.js +29 -0
  1774. package/dist/modes/interactive/interactive-key-identity.js.map +1 -0
  1775. package/dist/modes/interactive/interactive-mode-base.d.ts +18 -13
  1776. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  1777. package/dist/modes/interactive/interactive-mode-base.js +26 -18
  1778. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  1779. package/dist/modes/interactive/interactive-mode-deps.d.ts +20 -22
  1780. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  1781. package/dist/modes/interactive/interactive-mode-deps.js +16 -18
  1782. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  1783. package/dist/modes/interactive/interactive-mode-helpers.d.ts +3 -2
  1784. package/dist/modes/interactive/interactive-mode-helpers.d.ts.map +1 -1
  1785. package/dist/modes/interactive/interactive-mode-helpers.js +8 -18
  1786. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  1787. package/dist/modes/interactive/interactive-mode-surface.d.ts +28 -17
  1788. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  1789. package/dist/modes/interactive/interactive-mode-surface.js +1 -0
  1790. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  1791. package/dist/modes/interactive/interactive-mode-types.d.ts +2 -2
  1792. package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
  1793. package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
  1794. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  1795. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1796. package/dist/modes/interactive/interactive-mode.js +1 -0
  1797. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1798. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts +12 -0
  1799. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts.map +1 -0
  1800. package/dist/modes/interactive/interactive-model-catalog-startup.js +22 -0
  1801. package/dist/modes/interactive/interactive-model-catalog-startup.js.map +1 -0
  1802. package/dist/modes/interactive/interactive-model-routing.js +41 -111
  1803. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  1804. package/dist/modes/interactive/interactive-onboarding.js +7 -7
  1805. package/dist/modes/interactive/interactive-onboarding.js.map +1 -1
  1806. package/dist/modes/interactive/interactive-pause.d.ts +4 -0
  1807. package/dist/modes/interactive/interactive-pause.d.ts.map +1 -0
  1808. package/dist/modes/interactive/interactive-pause.js +8 -0
  1809. package/dist/modes/interactive/interactive-pause.js.map +1 -0
  1810. package/dist/modes/interactive/interactive-process-lifecycle.js +43 -12
  1811. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
  1812. package/dist/modes/interactive/interactive-prompt-restore.d.ts +58 -0
  1813. package/dist/modes/interactive/interactive-prompt-restore.d.ts.map +1 -0
  1814. package/dist/modes/interactive/interactive-prompt-restore.js +87 -0
  1815. package/dist/modes/interactive/interactive-prompt-restore.js.map +1 -0
  1816. package/dist/modes/interactive/interactive-prompt-turn.d.ts +2 -0
  1817. package/dist/modes/interactive/interactive-prompt-turn.d.ts.map +1 -0
  1818. package/dist/modes/interactive/interactive-prompt-turn.js +56 -0
  1819. package/dist/modes/interactive/interactive-prompt-turn.js.map +1 -0
  1820. package/dist/modes/interactive/interactive-queueing.js +6 -9
  1821. package/dist/modes/interactive/interactive-queueing.js.map +1 -1
  1822. package/dist/modes/interactive/interactive-render-chat.js +128 -48
  1823. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  1824. package/dist/modes/interactive/interactive-resource-disclosure.js +1 -3
  1825. package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -1
  1826. package/dist/modes/interactive/interactive-resource-paths.js +17 -21
  1827. package/dist/modes/interactive/interactive-resource-paths.js.map +1 -1
  1828. package/dist/modes/interactive/interactive-resource-rendering.js +110 -12
  1829. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  1830. package/dist/modes/interactive/interactive-selectors.js +13 -5
  1831. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  1832. package/dist/modes/interactive/interactive-session-routing.js +19 -4
  1833. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  1834. package/dist/modes/interactive/interactive-session-runtime.js +12 -1
  1835. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  1836. package/dist/modes/interactive/interactive-slash-commands.js +23 -4
  1837. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  1838. package/dist/modes/interactive/interactive-startup-chat-container.d.ts +20 -0
  1839. package/dist/modes/interactive/interactive-startup-chat-container.d.ts.map +1 -0
  1840. package/dist/modes/interactive/interactive-startup-chat-container.js +26 -0
  1841. package/dist/modes/interactive/interactive-startup-chat-container.js.map +1 -0
  1842. package/dist/modes/interactive/interactive-startup.d.ts +1 -1
  1843. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  1844. package/dist/modes/interactive/interactive-startup.js +37 -37
  1845. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  1846. package/dist/modes/interactive/interactive-submission.d.ts +24 -0
  1847. package/dist/modes/interactive/interactive-submission.d.ts.map +1 -0
  1848. package/dist/modes/interactive/interactive-submission.js +10 -0
  1849. package/dist/modes/interactive/interactive-submission.js.map +1 -0
  1850. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts +8 -0
  1851. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts.map +1 -0
  1852. package/dist/modes/interactive/interactive-summarization-retry-events.js +48 -0
  1853. package/dist/modes/interactive/interactive-summarization-retry-events.js.map +1 -0
  1854. package/dist/modes/interactive/login-provider-options.d.ts +21 -0
  1855. package/dist/modes/interactive/login-provider-options.d.ts.map +1 -0
  1856. package/dist/modes/interactive/login-provider-options.js +50 -0
  1857. package/dist/modes/interactive/login-provider-options.js.map +1 -0
  1858. package/dist/modes/interactive/theme/catppuccin-frappe.json +1 -1
  1859. package/dist/modes/interactive/theme/catppuccin-latte.json +1 -1
  1860. package/dist/modes/interactive/theme/catppuccin-macchiato.json +1 -1
  1861. package/dist/modes/interactive/theme/catppuccin-mocha.json +9 -1
  1862. package/dist/modes/interactive/theme/dark.json +1 -1
  1863. package/dist/modes/interactive/theme/global-theme.d.ts +1 -1
  1864. package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -1
  1865. package/dist/modes/interactive/theme/global-theme.js.map +1 -1
  1866. package/dist/modes/interactive/theme/light.json +1 -1
  1867. package/dist/modes/interactive/theme/theme-class.d.ts +4 -0
  1868. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  1869. package/dist/modes/interactive/theme/theme-class.js +7 -0
  1870. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  1871. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  1872. package/dist/modes/interactive/theme/theme-loading.js +5 -1
  1873. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  1874. package/dist/modes/interactive/theme/theme-schema.d.ts +32 -0
  1875. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  1876. package/dist/modes/interactive/theme/theme-schema.js +8 -0
  1877. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  1878. package/dist/modes/interactive/theme/theme-schema.json +15 -2
  1879. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1880. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1881. package/dist/modes/interactive/theme/theme.js +2 -2
  1882. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1883. package/dist/modes/interactive/whimsical-messages.d.ts +1 -0
  1884. package/dist/modes/interactive/whimsical-messages.d.ts.map +1 -1
  1885. package/dist/modes/interactive/whimsical-messages.js +2 -2
  1886. package/dist/modes/interactive/whimsical-messages.js.map +1 -1
  1887. package/dist/modes/interactive-engine/activity-watchdog.d.ts +16 -6
  1888. package/dist/modes/interactive-engine/activity-watchdog.d.ts.map +1 -1
  1889. package/dist/modes/interactive-engine/activity-watchdog.js +12 -6
  1890. package/dist/modes/interactive-engine/activity-watchdog.js.map +1 -1
  1891. package/dist/modes/interactive-engine/create-isolated-runtime.d.ts.map +1 -1
  1892. package/dist/modes/interactive-engine/create-isolated-runtime.js +8 -5
  1893. package/dist/modes/interactive-engine/create-isolated-runtime.js.map +1 -1
  1894. package/dist/modes/interactive-engine/engine-args.d.ts.map +1 -1
  1895. package/dist/modes/interactive-engine/engine-args.js +0 -1
  1896. package/dist/modes/interactive-engine/engine-args.js.map +1 -1
  1897. package/dist/modes/interactive-engine/engine-child-liveness.d.ts.map +1 -1
  1898. package/dist/modes/interactive-engine/engine-child-liveness.js +6 -4
  1899. package/dist/modes/interactive-engine/engine-child-liveness.js.map +1 -1
  1900. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +3 -2
  1901. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  1902. package/dist/modes/interactive-engine/engine-custom-ui.js +37 -28
  1903. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  1904. package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts +16 -0
  1905. package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts.map +1 -0
  1906. package/dist/modes/interactive-engine/engine-diagnostic-view.js +19 -0
  1907. package/dist/modes/interactive-engine/engine-diagnostic-view.js.map +1 -0
  1908. package/dist/modes/interactive-engine/engine-dialog-host.d.ts +33 -0
  1909. package/dist/modes/interactive-engine/engine-dialog-host.d.ts.map +1 -0
  1910. package/dist/modes/interactive-engine/engine-dialog-host.js +129 -0
  1911. package/dist/modes/interactive-engine/engine-dialog-host.js.map +1 -0
  1912. package/dist/modes/interactive-engine/engine-generation.d.ts +29 -0
  1913. package/dist/modes/interactive-engine/engine-generation.d.ts.map +1 -0
  1914. package/dist/modes/interactive-engine/engine-generation.js +11 -0
  1915. package/dist/modes/interactive-engine/engine-generation.js.map +1 -0
  1916. package/dist/modes/interactive-engine/engine-health.d.ts +107 -0
  1917. package/dist/modes/interactive-engine/engine-health.d.ts.map +1 -0
  1918. package/dist/modes/interactive-engine/engine-health.js +250 -0
  1919. package/dist/modes/interactive-engine/engine-health.js.map +1 -0
  1920. package/dist/modes/interactive-engine/engine-input-form.d.ts +1 -1
  1921. package/dist/modes/interactive-engine/engine-input-form.d.ts.map +1 -1
  1922. package/dist/modes/interactive-engine/engine-input-form.js +21 -4
  1923. package/dist/modes/interactive-engine/engine-input-form.js.map +1 -1
  1924. package/dist/modes/interactive-engine/engine-monitor.d.ts +8 -1
  1925. package/dist/modes/interactive-engine/engine-monitor.d.ts.map +1 -1
  1926. package/dist/modes/interactive-engine/engine-monitor.js +19 -16
  1927. package/dist/modes/interactive-engine/engine-monitor.js.map +1 -1
  1928. package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
  1929. package/dist/modes/interactive-engine/engine-render-service.js +19 -24
  1930. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
  1931. package/dist/modes/interactive-engine/engine-session-picker.d.ts.map +1 -1
  1932. package/dist/modes/interactive-engine/engine-session-picker.js +4 -2
  1933. package/dist/modes/interactive-engine/engine-session-picker.js.map +1 -1
  1934. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +16 -3
  1935. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  1936. package/dist/modes/interactive-engine/extension-ui-bridge.js +35 -45
  1937. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  1938. package/dist/modes/interactive-engine/input-form-host.d.ts +1 -0
  1939. package/dist/modes/interactive-engine/input-form-host.d.ts.map +1 -1
  1940. package/dist/modes/interactive-engine/input-form-host.js +18 -3
  1941. package/dist/modes/interactive-engine/input-form-host.js.map +1 -1
  1942. package/dist/modes/interactive-engine/isolated-auth.d.ts +10 -0
  1943. package/dist/modes/interactive-engine/isolated-auth.d.ts.map +1 -0
  1944. package/dist/modes/interactive-engine/isolated-auth.js +15 -0
  1945. package/dist/modes/interactive-engine/isolated-auth.js.map +1 -0
  1946. package/dist/modes/interactive-engine/isolated-runtime.d.ts +40 -6
  1947. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  1948. package/dist/modes/interactive-engine/isolated-runtime.js +161 -84
  1949. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  1950. package/dist/modes/interactive-engine/protocol.d.ts +26 -2
  1951. package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
  1952. package/dist/modes/interactive-engine/protocol.js +192 -63
  1953. package/dist/modes/interactive-engine/protocol.js.map +1 -1
  1954. package/dist/modes/interactive-engine/remote-component.d.ts +38 -0
  1955. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
  1956. package/dist/modes/interactive-engine/remote-component.js +111 -22
  1957. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  1958. package/dist/modes/interactive-engine/remote-input-ownership.d.ts +48 -0
  1959. package/dist/modes/interactive-engine/remote-input-ownership.d.ts.map +1 -0
  1960. package/dist/modes/interactive-engine/remote-input-ownership.js +42 -0
  1961. package/dist/modes/interactive-engine/remote-input-ownership.js.map +1 -0
  1962. package/dist/modes/interactive-engine/remote-model-catalog.d.ts +2 -0
  1963. package/dist/modes/interactive-engine/remote-model-catalog.d.ts.map +1 -1
  1964. package/dist/modes/interactive-engine/remote-model-catalog.js +23 -10
  1965. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
  1966. package/dist/modes/interactive-engine/remote-queue-pause.d.ts +13 -0
  1967. package/dist/modes/interactive-engine/remote-queue-pause.d.ts.map +1 -0
  1968. package/dist/modes/interactive-engine/remote-queue-pause.js +38 -0
  1969. package/dist/modes/interactive-engine/remote-queue-pause.js.map +1 -0
  1970. package/dist/modes/interactive-engine/remote-renderer.d.ts +3 -1
  1971. package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -1
  1972. package/dist/modes/interactive-engine/remote-renderer.js +41 -10
  1973. package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
  1974. package/dist/modes/interactive-engine/session-picker-host.d.ts +1 -0
  1975. package/dist/modes/interactive-engine/session-picker-host.d.ts.map +1 -1
  1976. package/dist/modes/interactive-engine/session-picker-host.js +4 -0
  1977. package/dist/modes/interactive-engine/session-picker-host.js.map +1 -1
  1978. package/dist/modes/print-mode.d.ts.map +1 -1
  1979. package/dist/modes/print-mode.js +5 -0
  1980. package/dist/modes/print-mode.js.map +1 -1
  1981. package/dist/modes/rpc/jsonl.d.ts +9 -7
  1982. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1983. package/dist/modes/rpc/jsonl.js +23 -24
  1984. package/dist/modes/rpc/jsonl.js.map +1 -1
  1985. package/dist/modes/rpc/queued-writer.d.ts +33 -0
  1986. package/dist/modes/rpc/queued-writer.d.ts.map +1 -0
  1987. package/dist/modes/rpc/queued-writer.js +104 -0
  1988. package/dist/modes/rpc/queued-writer.js.map +1 -0
  1989. package/dist/modes/rpc/rpc-bash-request-owners.d.ts +24 -0
  1990. package/dist/modes/rpc/rpc-bash-request-owners.d.ts.map +1 -0
  1991. package/dist/modes/rpc/rpc-bash-request-owners.js +45 -0
  1992. package/dist/modes/rpc/rpc-bash-request-owners.js.map +1 -0
  1993. package/dist/modes/rpc/rpc-client-api.d.ts +10 -4
  1994. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  1995. package/dist/modes/rpc/rpc-client-api.js +83 -25
  1996. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  1997. package/dist/modes/rpc/rpc-client-process.d.ts +11 -4
  1998. package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
  1999. package/dist/modes/rpc/rpc-client-process.js +77 -29
  2000. package/dist/modes/rpc/rpc-client-process.js.map +1 -1
  2001. package/dist/modes/rpc/rpc-client-waits.d.ts +17 -1
  2002. package/dist/modes/rpc/rpc-client-waits.d.ts.map +1 -1
  2003. package/dist/modes/rpc/rpc-client-waits.js +25 -0
  2004. package/dist/modes/rpc/rpc-client-waits.js.map +1 -1
  2005. package/dist/modes/rpc/rpc-client.d.ts +68 -9
  2006. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  2007. package/dist/modes/rpc/rpc-client.js +205 -158
  2008. package/dist/modes/rpc/rpc-client.js.map +1 -1
  2009. package/dist/modes/rpc/rpc-command-handler.d.ts +10 -3
  2010. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  2011. package/dist/modes/rpc/rpc-command-handler.js +148 -56
  2012. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  2013. package/dist/modes/rpc/rpc-command-timeouts.d.ts +30 -0
  2014. package/dist/modes/rpc/rpc-command-timeouts.d.ts.map +1 -0
  2015. package/dist/modes/rpc/rpc-command-timeouts.js +52 -0
  2016. package/dist/modes/rpc/rpc-command-timeouts.js.map +1 -0
  2017. package/dist/modes/rpc/rpc-event-buffer.d.ts.map +1 -1
  2018. package/dist/modes/rpc/rpc-event-buffer.js +3 -1
  2019. package/dist/modes/rpc/rpc-event-buffer.js.map +1 -1
  2020. package/dist/modes/rpc/rpc-extension-ui.d.ts +4 -2
  2021. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
  2022. package/dist/modes/rpc/rpc-extension-ui.js +50 -17
  2023. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
  2024. package/dist/modes/rpc/rpc-generation-buffer.d.ts +21 -0
  2025. package/dist/modes/rpc/rpc-generation-buffer.d.ts.map +1 -0
  2026. package/dist/modes/rpc/rpc-generation-buffer.js +35 -0
  2027. package/dist/modes/rpc/rpc-generation-buffer.js.map +1 -0
  2028. package/dist/modes/rpc/rpc-input-scheduler.d.ts +3 -3
  2029. package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
  2030. package/dist/modes/rpc/rpc-input-scheduler.js +19 -8
  2031. package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
  2032. package/dist/modes/rpc/rpc-input.d.ts +7 -1
  2033. package/dist/modes/rpc/rpc-input.d.ts.map +1 -1
  2034. package/dist/modes/rpc/rpc-input.js +14 -4
  2035. package/dist/modes/rpc/rpc-input.js.map +1 -1
  2036. package/dist/modes/rpc/rpc-keybindings-reload.d.ts.map +1 -1
  2037. package/dist/modes/rpc/rpc-keybindings-reload.js.map +1 -1
  2038. package/dist/modes/rpc/rpc-mode.d.ts +1 -1
  2039. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  2040. package/dist/modes/rpc/rpc-mode.js +23 -23
  2041. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  2042. package/dist/modes/rpc/rpc-model-fallback-prompt.d.ts +4 -0
  2043. package/dist/modes/rpc/rpc-model-fallback-prompt.d.ts.map +1 -0
  2044. package/dist/modes/rpc/rpc-model-fallback-prompt.js +11 -0
  2045. package/dist/modes/rpc/rpc-model-fallback-prompt.js.map +1 -0
  2046. package/dist/modes/rpc/rpc-oauth-client.d.ts +21 -0
  2047. package/dist/modes/rpc/rpc-oauth-client.d.ts.map +1 -0
  2048. package/dist/modes/rpc/rpc-oauth-client.js +81 -0
  2049. package/dist/modes/rpc/rpc-oauth-client.js.map +1 -0
  2050. package/dist/modes/rpc/rpc-oauth-interaction.d.ts +9 -0
  2051. package/dist/modes/rpc/rpc-oauth-interaction.d.ts.map +1 -0
  2052. package/dist/modes/rpc/rpc-oauth-interaction.js +49 -0
  2053. package/dist/modes/rpc/rpc-oauth-interaction.js.map +1 -0
  2054. package/dist/modes/rpc/rpc-output-buffer.d.ts +2 -1
  2055. package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -1
  2056. package/dist/modes/rpc/rpc-output-buffer.js +7 -40
  2057. package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
  2058. package/dist/modes/rpc/rpc-pending-requests.d.ts +37 -0
  2059. package/dist/modes/rpc/rpc-pending-requests.d.ts.map +1 -0
  2060. package/dist/modes/rpc/rpc-pending-requests.js +57 -0
  2061. package/dist/modes/rpc/rpc-pending-requests.js.map +1 -0
  2062. package/dist/modes/rpc/rpc-provider-auth.d.ts +22 -0
  2063. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -0
  2064. package/dist/modes/rpc/rpc-provider-auth.js +117 -0
  2065. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -0
  2066. package/dist/modes/rpc/rpc-responses.d.ts +0 -1
  2067. package/dist/modes/rpc/rpc-responses.d.ts.map +1 -1
  2068. package/dist/modes/rpc/rpc-responses.js +0 -14
  2069. package/dist/modes/rpc/rpc-responses.js.map +1 -1
  2070. package/dist/modes/rpc/rpc-session-binding.d.ts +2 -1
  2071. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
  2072. package/dist/modes/rpc/rpc-session-binding.js +71 -43
  2073. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  2074. package/dist/modes/rpc/rpc-terminal-drain.d.ts +52 -0
  2075. package/dist/modes/rpc/rpc-terminal-drain.d.ts.map +1 -0
  2076. package/dist/modes/rpc/rpc-terminal-drain.js +85 -0
  2077. package/dist/modes/rpc/rpc-terminal-drain.js.map +1 -0
  2078. package/dist/modes/rpc/rpc-transport-error.d.ts +49 -0
  2079. package/dist/modes/rpc/rpc-transport-error.d.ts.map +1 -0
  2080. package/dist/modes/rpc/rpc-transport-error.js +78 -0
  2081. package/dist/modes/rpc/rpc-transport-error.js.map +1 -0
  2082. package/dist/modes/rpc/rpc-types.d.ts +123 -20
  2083. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  2084. package/dist/modes/rpc/rpc-types.js.map +1 -1
  2085. package/dist/package-manager-cli-parser.js.map +1 -1
  2086. package/dist/package-manager-cli.d.ts +3 -3
  2087. package/dist/package-manager-cli.d.ts.map +1 -1
  2088. package/dist/package-manager-cli.js +66 -53
  2089. package/dist/package-manager-cli.js.map +1 -1
  2090. package/dist/rpc-entry.js +6 -2
  2091. package/dist/rpc-entry.js.map +1 -1
  2092. package/dist/self-update-plan.d.ts +12 -0
  2093. package/dist/self-update-plan.d.ts.map +1 -0
  2094. package/dist/self-update-plan.js +42 -0
  2095. package/dist/self-update-plan.js.map +1 -0
  2096. package/dist/utils/child-process.d.ts.map +1 -1
  2097. package/dist/utils/child-process.js.map +1 -1
  2098. package/dist/utils/clipboard-image.js +1 -1
  2099. package/dist/utils/clipboard-image.js.map +1 -1
  2100. package/dist/utils/clipboard-native.d.ts +1 -0
  2101. package/dist/utils/clipboard-native.d.ts.map +1 -1
  2102. package/dist/utils/clipboard-native.js.map +1 -1
  2103. package/dist/utils/clipboard.d.ts +3 -0
  2104. package/dist/utils/clipboard.d.ts.map +1 -1
  2105. package/dist/utils/clipboard.js +31 -8
  2106. package/dist/utils/clipboard.js.map +1 -1
  2107. package/dist/utils/compile-cache.d.ts +8 -0
  2108. package/dist/utils/compile-cache.d.ts.map +1 -0
  2109. package/dist/utils/compile-cache.js +31 -0
  2110. package/dist/utils/compile-cache.js.map +1 -0
  2111. package/dist/utils/fs-watch.d.ts.map +1 -1
  2112. package/dist/utils/fs-watch.js +1 -3
  2113. package/dist/utils/fs-watch.js.map +1 -1
  2114. package/dist/utils/git.js +1 -1
  2115. package/dist/utils/git.js.map +1 -1
  2116. package/dist/utils/interactive-engine-bootstrap.d.ts +67 -0
  2117. package/dist/utils/interactive-engine-bootstrap.d.ts.map +1 -0
  2118. package/dist/utils/interactive-engine-bootstrap.js +117 -0
  2119. package/dist/utils/interactive-engine-bootstrap.js.map +1 -0
  2120. package/dist/utils/interactive-engine-env.d.ts +41 -0
  2121. package/dist/utils/interactive-engine-env.d.ts.map +1 -0
  2122. package/dist/utils/interactive-engine-env.js +67 -0
  2123. package/dist/utils/interactive-engine-env.js.map +1 -0
  2124. package/dist/utils/markit.d.ts.map +1 -1
  2125. package/dist/utils/markit.js +15 -5
  2126. package/dist/utils/markit.js.map +1 -1
  2127. package/dist/utils/shell.js +2 -2
  2128. package/dist/utils/shell.js.map +1 -1
  2129. package/dist/utils/split-launcher.d.ts.map +1 -1
  2130. package/dist/utils/split-launcher.js +1 -2
  2131. package/dist/utils/split-launcher.js.map +1 -1
  2132. package/dist/utils/tools-manager.d.ts.map +1 -1
  2133. package/dist/utils/tools-manager.js +8 -34
  2134. package/dist/utils/tools-manager.js.map +1 -1
  2135. package/dist/utils/version-check.d.ts +1 -0
  2136. package/dist/utils/version-check.d.ts.map +1 -1
  2137. package/dist/utils/version-check.js +7 -5
  2138. package/dist/utils/version-check.js.map +1 -1
  2139. package/docs/changelog.mdx +24 -2
  2140. package/docs/compaction.md +101 -18
  2141. package/docs/custom-provider.md +40 -8
  2142. package/docs/development.md +14 -15
  2143. package/docs/docs.json +3 -1
  2144. package/docs/environment-variables.md +37 -0
  2145. package/docs/extensions.md +166 -18
  2146. package/docs/index.md +1 -0
  2147. package/docs/intercom.md +1 -1
  2148. package/docs/json.md +11 -5
  2149. package/docs/keybindings.md +19 -2
  2150. package/docs/llama-cpp.md +72 -0
  2151. package/docs/models.md +41 -50
  2152. package/docs/packages.md +4 -2
  2153. package/docs/prompt-templates.md +1 -0
  2154. package/docs/providers.md +86 -24
  2155. package/docs/quickstart.md +21 -17
  2156. package/docs/rpc.md +88 -86
  2157. package/docs/sdk.md +68 -71
  2158. package/docs/security.md +15 -0
  2159. package/docs/session-format.md +6 -15
  2160. package/docs/sessions.md +1 -1
  2161. package/docs/settings.md +29 -18
  2162. package/docs/skills.md +8 -0
  2163. package/docs/subagents.md +24 -8
  2164. package/docs/themes.md +10 -1
  2165. package/docs/tui.md +14 -7
  2166. package/docs/usage.md +71 -2
  2167. package/docs/windows.md +1 -1
  2168. package/docs/workflows.md +1235 -529
  2169. package/examples/extensions/README.md +2 -2
  2170. package/examples/extensions/border-status-editor.ts +1 -6
  2171. package/examples/extensions/custom-compaction.ts +7 -2
  2172. package/examples/extensions/custom-footer.ts +1 -1
  2173. package/examples/extensions/custom-provider-anthropic/index.ts +14 -2
  2174. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  2175. package/examples/extensions/gondolin/index.ts +1 -1
  2176. package/examples/extensions/handoff.ts +9 -2
  2177. package/examples/extensions/hello.ts +1 -1
  2178. package/examples/extensions/message-renderer.ts +2 -2
  2179. package/examples/extensions/minimal-mode.ts +6 -6
  2180. package/examples/extensions/overlay-qa-focus-components.ts +0 -1
  2181. package/examples/extensions/overlay-qa-streaming-input-components.ts +2 -2
  2182. package/examples/extensions/overlay-qa-tests.ts +16 -14
  2183. package/examples/extensions/overlay-qa-toggle-passive-components.ts +3 -5
  2184. package/examples/extensions/overlay-test.ts +3 -6
  2185. package/examples/extensions/plan-mode/index.ts +1 -1
  2186. package/examples/extensions/preset.ts +1 -1
  2187. package/examples/extensions/qna.ts +1 -1
  2188. package/examples/extensions/sandbox/package-lock.json +3 -3
  2189. package/examples/extensions/structured-output.ts +9 -9
  2190. package/examples/extensions/subagent/display.ts +115 -127
  2191. package/examples/extensions/subagent/index.ts +310 -349
  2192. package/examples/extensions/subagent/render.ts +244 -345
  2193. package/examples/extensions/subagent/runner.ts +223 -230
  2194. package/examples/extensions/subagent/schemas.ts +39 -46
  2195. package/examples/extensions/subagent/types.ts +22 -22
  2196. package/examples/extensions/summarize.ts +4 -1
  2197. package/examples/extensions/tic-tac-toe.ts +4 -4
  2198. package/examples/extensions/todo.ts +1 -1
  2199. package/examples/extensions/tool-override.ts +1 -1
  2200. package/examples/extensions/trigger-compact.ts +4 -1
  2201. package/examples/extensions/working-indicator.ts +3 -2
  2202. package/examples/rpc-extension-ui-components.ts +1 -2
  2203. package/examples/sdk/02-custom-model.ts +8 -10
  2204. package/examples/sdk/03-custom-prompt.ts +1 -6
  2205. package/examples/sdk/06-extensions.ts +1 -6
  2206. package/examples/sdk/07-context-files.ts +1 -6
  2207. package/examples/sdk/09-api-keys-and-oauth.ts +17 -23
  2208. package/examples/sdk/12-full-control.ts +10 -12
  2209. package/examples/sdk/README.md +17 -21
  2210. package/npm-shrinkwrap.json +304 -313
  2211. package/package.json +15 -13
  2212. package/dist/builtin/cursor/CHANGELOG.md +0 -281
  2213. package/dist/builtin/cursor/LICENSE +0 -26
  2214. package/dist/builtin/cursor/README.md +0 -24
  2215. package/dist/builtin/cursor/index.ts +0 -9
  2216. package/dist/builtin/cursor/package.json +0 -47
  2217. package/dist/builtin/cursor/src/auth.ts +0 -352
  2218. package/dist/builtin/cursor/src/catalog-cache.ts +0 -155
  2219. package/dist/builtin/cursor/src/config.ts +0 -123
  2220. package/dist/builtin/cursor/src/conversation-state.ts +0 -135
  2221. package/dist/builtin/cursor/src/cursor-models-raw.json +0 -412
  2222. package/dist/builtin/cursor/src/model-mapper.ts +0 -369
  2223. package/dist/builtin/cursor/src/model-reference.ts +0 -282
  2224. package/dist/builtin/cursor/src/models.ts +0 -54
  2225. package/dist/builtin/cursor/src/native-loader.ts +0 -71
  2226. package/dist/builtin/cursor/src/proto/README.md +0 -34
  2227. package/dist/builtin/cursor/src/proto/agent_pb.ts +0 -15294
  2228. package/dist/builtin/cursor/src/proto/protobuf-codec-base64.ts +0 -22
  2229. package/dist/builtin/cursor/src/proto/protobuf-codec-json.ts +0 -44
  2230. package/dist/builtin/cursor/src/proto/protobuf-codec-request.ts +0 -311
  2231. package/dist/builtin/cursor/src/proto/protobuf-codec-wire.ts +0 -248
  2232. package/dist/builtin/cursor/src/proto/protobuf-codec.ts +0 -200
  2233. package/dist/builtin/cursor/src/provider.ts +0 -301
  2234. package/dist/builtin/cursor/src/stream.ts +0 -494
  2235. package/dist/builtin/cursor/src/transport-errors.ts +0 -74
  2236. package/dist/builtin/cursor/src/transport-frame.ts +0 -56
  2237. package/dist/builtin/cursor/src/transport-http2.ts +0 -122
  2238. package/dist/builtin/cursor/src/transport-native-client.ts +0 -161
  2239. package/dist/builtin/cursor/src/transport-run-stream.ts +0 -188
  2240. package/dist/builtin/cursor/src/transport-timeouts.ts +0 -87
  2241. package/dist/builtin/cursor/src/transport-types.ts +0 -143
  2242. package/dist/builtin/cursor/src/transport.ts +0 -26
  2243. package/dist/builtin/workflows/builtin/deep-research-codebase-runner.ts +0 -492
  2244. package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +0 -383
  2245. package/dist/builtin/workflows/builtin/deep-research-codebase.d.ts +0 -35
  2246. package/dist/builtin/workflows/builtin/deep-research-codebase.ts +0 -47
  2247. package/dist/builtin/workflows/skills/impeccable/reference/brand.md +0 -108
  2248. package/dist/builtin/workflows/skills/impeccable/reference/codex.md +0 -105
  2249. package/dist/builtin/workflows/skills/impeccable/reference/interaction-design.md +0 -189
  2250. package/dist/builtin/workflows/skills/impeccable/scripts/hook-before-edit.mjs +0 -516
  2251. package/dist/core/context-window.d.ts +0 -54
  2252. package/dist/core/context-window.d.ts.map +0 -1
  2253. package/dist/core/context-window.js +0 -110
  2254. package/dist/core/context-window.js.map +0 -1
  2255. package/dist/core/copilot-anthropic-sse-repair.d.ts +0 -23
  2256. package/dist/core/copilot-anthropic-sse-repair.d.ts.map +0 -1
  2257. package/dist/core/copilot-anthropic-sse-repair.js +0 -340
  2258. package/dist/core/copilot-anthropic-sse-repair.js.map +0 -1
  2259. package/dist/core/copilot-errors.d.ts +0 -9
  2260. package/dist/core/copilot-errors.d.ts.map +0 -1
  2261. package/dist/core/copilot-errors.js +0 -32
  2262. package/dist/core/copilot-errors.js.map +0 -1
  2263. package/dist/core/copilot-gemini-payload-sanitizer.d.ts +0 -72
  2264. package/dist/core/copilot-gemini-payload-sanitizer.d.ts.map +0 -1
  2265. package/dist/core/copilot-gemini-payload-sanitizer.js +0 -296
  2266. package/dist/core/copilot-gemini-payload-sanitizer.js.map +0 -1
  2267. package/dist/core/copilot-gemini-reasoning.d.ts +0 -126
  2268. package/dist/core/copilot-gemini-reasoning.d.ts.map +0 -1
  2269. package/dist/core/copilot-gemini-reasoning.js +0 -265
  2270. package/dist/core/copilot-gemini-reasoning.js.map +0 -1
  2271. package/dist/core/copilot-gemini-tool-arguments.d.ts +0 -42
  2272. package/dist/core/copilot-gemini-tool-arguments.d.ts.map +0 -1
  2273. package/dist/core/copilot-gemini-tool-arguments.js +0 -159
  2274. package/dist/core/copilot-gemini-tool-arguments.js.map +0 -1
  2275. package/dist/core/copilot-hosts.d.ts +0 -12
  2276. package/dist/core/copilot-hosts.d.ts.map +0 -1
  2277. package/dist/core/copilot-hosts.js +0 -33
  2278. package/dist/core/copilot-hosts.js.map +0 -1
  2279. package/dist/core/copilot-model-catalog.d.ts +0 -114
  2280. package/dist/core/copilot-model-catalog.d.ts.map +0 -1
  2281. package/dist/core/copilot-model-catalog.js +0 -392
  2282. package/dist/core/copilot-model-catalog.js.map +0 -1
  2283. package/dist/core/copilot-model-static-fallbacks.d.ts +0 -43
  2284. package/dist/core/copilot-model-static-fallbacks.d.ts.map +0 -1
  2285. package/dist/core/copilot-model-static-fallbacks.js +0 -50
  2286. package/dist/core/copilot-model-static-fallbacks.js.map +0 -1
  2287. package/dist/core/copilot-model-synthesis.d.ts +0 -10
  2288. package/dist/core/copilot-model-synthesis.d.ts.map +0 -1
  2289. package/dist/core/copilot-model-synthesis.js +0 -91
  2290. package/dist/core/copilot-model-synthesis.js.map +0 -1
  2291. package/dist/core/model-registry-auth.d.ts +0 -8
  2292. package/dist/core/model-registry-auth.d.ts.map +0 -1
  2293. package/dist/core/model-registry-auth.js +0 -83
  2294. package/dist/core/model-registry-auth.js.map +0 -1
  2295. package/dist/core/model-registry-builtins.d.ts +0 -10
  2296. package/dist/core/model-registry-builtins.d.ts.map +0 -1
  2297. package/dist/core/model-registry-builtins.js +0 -171
  2298. package/dist/core/model-registry-builtins.js.map +0 -1
  2299. package/dist/core/model-registry-custom-loader.d.ts +0 -3
  2300. package/dist/core/model-registry-custom-loader.d.ts.map +0 -1
  2301. package/dist/core/model-registry-custom-loader.js +0 -254
  2302. package/dist/core/model-registry-custom-loader.js.map +0 -1
  2303. package/dist/core/model-registry-dynamic.d.ts +0 -7
  2304. package/dist/core/model-registry-dynamic.d.ts.map +0 -1
  2305. package/dist/core/model-registry-dynamic.js +0 -201
  2306. package/dist/core/model-registry-dynamic.js.map +0 -1
  2307. package/dist/core/model-registry-loader.d.ts +0 -5
  2308. package/dist/core/model-registry-loader.d.ts.map +0 -1
  2309. package/dist/core/model-registry-loader.js +0 -28
  2310. package/dist/core/model-registry-loader.js.map +0 -1
  2311. package/dist/core/model-registry-schemas.d.ts +0 -1273
  2312. package/dist/core/model-registry-schemas.d.ts.map +0 -1
  2313. package/dist/core/model-registry-schemas.js.map +0 -1
  2314. package/dist/core/model-registry-types.d.ts +0 -82
  2315. package/dist/core/model-registry-types.d.ts.map +0 -1
  2316. package/dist/core/model-registry-types.js +0 -2
  2317. package/dist/core/model-registry-types.js.map +0 -1
  2318. package/dist/core/oauth-compat.d.ts +0 -17
  2319. package/dist/core/oauth-compat.d.ts.map +0 -1
  2320. package/dist/core/oauth-compat.js +0 -2
  2321. package/dist/core/oauth-compat.js.map +0 -1
  2322. package/dist/core/oauth-provider-bridge.d.ts +0 -40
  2323. package/dist/core/oauth-provider-bridge.d.ts.map +0 -1
  2324. package/dist/core/oauth-provider-bridge.js +0 -169
  2325. package/dist/core/oauth-provider-bridge.js.map +0 -1
  2326. package/dist/modes/interactive/components/context-window-selector.d.ts +0 -53
  2327. package/dist/modes/interactive/components/context-window-selector.d.ts.map +0 -1
  2328. package/dist/modes/interactive/components/context-window-selector.js +0 -136
  2329. package/dist/modes/interactive/components/context-window-selector.js.map +0 -1
  2330. package/dist/modes/rpc/bounded-writer.d.ts +0 -27
  2331. package/dist/modes/rpc/bounded-writer.d.ts.map +0 -1
  2332. package/dist/modes/rpc/bounded-writer.js +0 -103
  2333. package/dist/modes/rpc/bounded-writer.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-engine-bootstrap.js","sourceRoot":"","sources":["../../src/utils/interactive-engine-bootstrap.ts"],"names":[],"mappings":"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","sourcesContent":["import { mkdtempSync, readFileSync, renameSync, rmSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\n\n/**\n * Private startup channel for the isolated interactive engine.\n *\n * The engine child needs four control values (engine role, host PID, guardian\n * path, and optionally an API key) before its runtime exists. They used to\n * travel as environment variables, which cannot be taken back: under Bun a\n * child spawned without an explicit `env` inherits the runtime's launch-time\n * environment map, so deleting the variables from `process.env` afterwards does\n * not stop arbitrary extension or hook code from leaking them — including the\n * API key — into its own subprocesses.\n *\n * The engine is therefore launched with an environment that never contained the\n * values, and the values travel in a 0600 file whose path is passed as a private\n * CLI argument. The child reads it once, freezes the snapshot, and unlinks it.\n * The filename carries no secret material.\n *\n * Cleanup is ownership-scoped. The path is untrusted child input — anyone can\n * pass the private flag — so a reader may unlink only that exact file. Only the\n * writer, which holds an {@link InteractiveEngineBootstrapHandle} for the\n * directory it created, may remove that directory recursively.\n */\nexport const INTERACTIVE_ENGINE_BOOTSTRAP_FLAG = \"--internal-engine-bootstrap\";\nexport const INTERACTIVE_ENGINE_BOOTSTRAP_VERSION = 1;\n\nexport interface InteractiveEngineBootstrap {\n\tversion: number;\n\thostPid: number;\n\tguardFile: string;\n\tapiKey?: string;\n}\n\n/**\n * Proof that this process created a bootstrap record. A bare path — in\n * particular one taken from argv — is never sufficient for recursive removal.\n */\nexport interface InteractiveEngineBootstrapHandle {\n\treadonly path: string;\n\treadonly directory: string;\n}\n\n/**\n * Publish a bootstrap record atomically so a reader never sees a partial file.\n *\n * On any failure the exact temporary file and the directory this call created\n * are removed before the original error propagates, so a `0600` file holding a\n * credential is never left behind.\n */\nexport function writeInteractiveEngineBootstrap(\n\trecord: Omit<InteractiveEngineBootstrap, \"version\">,\n): InteractiveEngineBootstrapHandle {\n\tconst directory = mkdtempSync(join(tmpdir(), \"atomic-engine-bootstrap-\"));\n\tconst path = join(directory, \"bootstrap.json\");\n\tconst tempPath = `${path}.tmp`;\n\tconst payload: InteractiveEngineBootstrap = { version: INTERACTIVE_ENGINE_BOOTSTRAP_VERSION, ...record };\n\ttry {\n\t\twriteFileSync(tempPath, JSON.stringify(payload), { encoding: \"utf8\", mode: 0o600 });\n\t\trenameSync(tempPath, path);\n\t} catch (error) {\n\t\trmSync(tempPath, { force: true });\n\t\trmSync(directory, { recursive: true, force: true });\n\t\tthrow error;\n\t}\n\treturn { path, directory };\n}\n\n/** Remove a bootstrap record and the directory whose creation this handle proves. */\nexport function removeOwnedInteractiveEngineBootstrap(handle: InteractiveEngineBootstrapHandle | undefined): void {\n\tif (!handle) return;\n\trmSync(handle.directory, { recursive: true, force: true });\n}\n\n/**\n * Split the private bootstrap argument out of an argv slice.\n *\n * Returns the remaining arguments so normal CLI parsing never sees the flag.\n */\nexport function takeInteractiveEngineBootstrapArg(args: readonly string[]): {\n\targs: string[];\n\tpath: string | undefined;\n} {\n\tconst remaining: string[] = [];\n\tlet path: string | undefined;\n\tfor (let index = 0; index < args.length; index += 1) {\n\t\tconst value = args[index]!;\n\t\tif (value === INTERACTIVE_ENGINE_BOOTSTRAP_FLAG && index + 1 < args.length) {\n\t\t\tpath = args[++index];\n\t\t\tcontinue;\n\t\t}\n\t\tif (value.startsWith(`${INTERACTIVE_ENGINE_BOOTSTRAP_FLAG}=`)) {\n\t\t\tpath = value.slice(INTERACTIVE_ENGINE_BOOTSTRAP_FLAG.length + 1);\n\t\t\tcontinue;\n\t\t}\n\t\tremaining.push(value);\n\t}\n\treturn { args: remaining, path };\n}\n\n/** True when this argv belongs to an isolated interactive engine child. */\nexport function hasInteractiveEngineBootstrapArg(args: readonly string[]): boolean {\n\treturn takeInteractiveEngineBootstrapArg(args).path !== undefined;\n}\n\n/**\n * Read and consume a bootstrap record.\n *\n * The named file is always unlinked, including on malformed content, so a stale\n * API key never outlives the handshake. The path came from argv, so nothing\n * around it is touched: no parent directory, no sibling.\n */\nexport function readInteractiveEngineBootstrap(path: string): InteractiveEngineBootstrap | undefined {\n\tlet raw: string;\n\ttry {\n\t\traw = readFileSync(path, \"utf8\");\n\t} catch {\n\t\treturn undefined;\n\t} finally {\n\t\trmSync(path, { force: true });\n\t}\n\ttry {\n\t\tconst parsed = JSON.parse(raw) as Partial<InteractiveEngineBootstrap>;\n\t\tif (parsed.version !== INTERACTIVE_ENGINE_BOOTSTRAP_VERSION) return undefined;\n\t\tif (typeof parsed.hostPid !== \"number\" || typeof parsed.guardFile !== \"string\") return undefined;\n\t\treturn {\n\t\t\tversion: parsed.version,\n\t\t\thostPid: parsed.hostPid,\n\t\t\tguardFile: parsed.guardFile,\n\t\t\t...(typeof parsed.apiKey === \"string\" ? { apiKey: parsed.apiKey } : {}),\n\t\t};\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n"]}
@@ -0,0 +1,41 @@
1
+ import type { InteractiveEngineBootstrap } from "./interactive-engine-bootstrap.ts";
2
+ /**
3
+ * Legacy interactive-engine control variables.
4
+ *
5
+ * The host no longer sets these: engine startup metadata travels through a
6
+ * protected bootstrap file (see interactive-engine-bootstrap.ts) precisely
7
+ * because environment values cannot be taken back from a Bun process tree. They
8
+ * are still recognized and scrubbed as defense in depth, so an inherited or
9
+ * caller-supplied value can neither select engine mode nor reach a child.
10
+ */
11
+ export declare const INTERACTIVE_ENGINE_ENV_VARS: readonly ["ATOMIC_INTERACTIVE_ENGINE_CHILD", "ATOMIC_INTERACTIVE_ENGINE_HOST_PID", "ATOMIC_INTERACTIVE_ENGINE_GUARD_FILE", "ATOMIC_INTERACTIVE_ENGINE_API_KEY"];
12
+ /** Immutable startup values captured before they are removed from `process.env`. */
13
+ export interface InteractiveEngineStartupEnv {
14
+ readonly child: string | undefined;
15
+ readonly hostPid: string | undefined;
16
+ readonly guardFile: string | undefined;
17
+ readonly apiKey: string | undefined;
18
+ }
19
+ /**
20
+ * Copy an environment without the interactive-engine control variables.
21
+ *
22
+ * Pure: the input object is never mutated. Call this AFTER merging every other
23
+ * environment source so a caller-supplied value cannot reintroduce a key.
24
+ */
25
+ export declare function scrubInteractiveEngineEnv<T extends NodeJS.ProcessEnv>(env: T): T;
26
+ /**
27
+ * Capture the engine startup values once and remove the legacy variables from
28
+ * `process.env`.
29
+ *
30
+ * A bootstrap record is authoritative when present. The legacy environment is
31
+ * only a fallback for a host that still launches the old way; it cannot be made
32
+ * safe on its own, because Bun children spawned without an explicit `env`
33
+ * inherit the runtime's launch-time environment no matter what this process
34
+ * deletes afterwards. Idempotent: later calls return the same frozen snapshot.
35
+ */
36
+ export declare function captureInteractiveEngineStartupEnv(bootstrap?: InteractiveEngineBootstrap): InteractiveEngineStartupEnv;
37
+ /** Frozen startup snapshot; captures (and scrubs) on first read. */
38
+ export declare function interactiveEngineStartupEnv(): InteractiveEngineStartupEnv;
39
+ /** True when this process was started as the isolated interactive engine child. */
40
+ export declare function isInteractiveEngineChild(): boolean;
41
+ //# sourceMappingURL=interactive-engine-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-engine-env.d.ts","sourceRoot":"","sources":["../../src/utils/interactive-engine-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEpF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,YACvC,iCAAiC,EACjC,oCAAoC,EACpC,sCAAsC,EACtC,mCAAmC,CAC1B,CAAC;AAEX,oFAAoF;AACpF,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAID;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAIhF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CACjD,SAAS,CAAC,EAAE,0BAA0B,GACpC,2BAA2B,CAmB7B;AAED,oEAAoE;AACpE,wBAAgB,2BAA2B,IAAI,2BAA2B,CAEzE;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,OAAO,CAElD"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Legacy interactive-engine control variables.
3
+ *
4
+ * The host no longer sets these: engine startup metadata travels through a
5
+ * protected bootstrap file (see interactive-engine-bootstrap.ts) precisely
6
+ * because environment values cannot be taken back from a Bun process tree. They
7
+ * are still recognized and scrubbed as defense in depth, so an inherited or
8
+ * caller-supplied value can neither select engine mode nor reach a child.
9
+ */
10
+ export const INTERACTIVE_ENGINE_ENV_VARS = [
11
+ "ATOMIC_INTERACTIVE_ENGINE_CHILD",
12
+ "ATOMIC_INTERACTIVE_ENGINE_HOST_PID",
13
+ "ATOMIC_INTERACTIVE_ENGINE_GUARD_FILE",
14
+ "ATOMIC_INTERACTIVE_ENGINE_API_KEY",
15
+ ];
16
+ let snapshot;
17
+ /**
18
+ * Copy an environment without the interactive-engine control variables.
19
+ *
20
+ * Pure: the input object is never mutated. Call this AFTER merging every other
21
+ * environment source so a caller-supplied value cannot reintroduce a key.
22
+ */
23
+ export function scrubInteractiveEngineEnv(env) {
24
+ const copy = { ...env };
25
+ for (const name of INTERACTIVE_ENGINE_ENV_VARS)
26
+ delete copy[name];
27
+ return copy;
28
+ }
29
+ /**
30
+ * Capture the engine startup values once and remove the legacy variables from
31
+ * `process.env`.
32
+ *
33
+ * A bootstrap record is authoritative when present. The legacy environment is
34
+ * only a fallback for a host that still launches the old way; it cannot be made
35
+ * safe on its own, because Bun children spawned without an explicit `env`
36
+ * inherit the runtime's launch-time environment no matter what this process
37
+ * deletes afterwards. Idempotent: later calls return the same frozen snapshot.
38
+ */
39
+ export function captureInteractiveEngineStartupEnv(bootstrap) {
40
+ if (snapshot)
41
+ return snapshot;
42
+ snapshot = Object.freeze(bootstrap
43
+ ? {
44
+ child: "1",
45
+ hostPid: String(bootstrap.hostPid),
46
+ guardFile: bootstrap.guardFile,
47
+ apiKey: bootstrap.apiKey,
48
+ }
49
+ : {
50
+ child: process.env.ATOMIC_INTERACTIVE_ENGINE_CHILD,
51
+ hostPid: process.env.ATOMIC_INTERACTIVE_ENGINE_HOST_PID,
52
+ guardFile: process.env.ATOMIC_INTERACTIVE_ENGINE_GUARD_FILE,
53
+ apiKey: process.env.ATOMIC_INTERACTIVE_ENGINE_API_KEY,
54
+ });
55
+ for (const name of INTERACTIVE_ENGINE_ENV_VARS)
56
+ delete process.env[name];
57
+ return snapshot;
58
+ }
59
+ /** Frozen startup snapshot; captures (and scrubs) on first read. */
60
+ export function interactiveEngineStartupEnv() {
61
+ return captureInteractiveEngineStartupEnv();
62
+ }
63
+ /** True when this process was started as the isolated interactive engine child. */
64
+ export function isInteractiveEngineChild() {
65
+ return interactiveEngineStartupEnv().child === "1";
66
+ }
67
+ //# sourceMappingURL=interactive-engine-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-engine-env.js","sourceRoot":"","sources":["../../src/utils/interactive-engine-env.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C,iCAAiC;IACjC,oCAAoC;IACpC,sCAAsC;IACtC,mCAAmC;CAC1B,CAAC;AAUX,IAAI,QAAiD,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAA8B,GAAM;IAC5E,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAO,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,2BAA2B;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kCAAkC,CACjD,SAAsC;IAEtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,QAAQ,GAAG,MAAM,CAAC,MAAM,CACvB,SAAS;QACR,CAAC,CAAC;YACA,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAClC,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;SACxB;QACF,CAAC,CAAC;YACA,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;YAClD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC;YACvD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,oCAAoC;YAC3D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;SACrD,CACH,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,2BAA2B;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,2BAA2B;IAC1C,OAAO,kCAAkC,EAAE,CAAC;AAC7C,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,wBAAwB;IACvC,OAAO,2BAA2B,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC;AACpD,CAAC","sourcesContent":["import type { InteractiveEngineBootstrap } from \"./interactive-engine-bootstrap.ts\";\n\n/**\n * Legacy interactive-engine control variables.\n *\n * The host no longer sets these: engine startup metadata travels through a\n * protected bootstrap file (see interactive-engine-bootstrap.ts) precisely\n * because environment values cannot be taken back from a Bun process tree. They\n * are still recognized and scrubbed as defense in depth, so an inherited or\n * caller-supplied value can neither select engine mode nor reach a child.\n */\nexport const INTERACTIVE_ENGINE_ENV_VARS = [\n\t\"ATOMIC_INTERACTIVE_ENGINE_CHILD\",\n\t\"ATOMIC_INTERACTIVE_ENGINE_HOST_PID\",\n\t\"ATOMIC_INTERACTIVE_ENGINE_GUARD_FILE\",\n\t\"ATOMIC_INTERACTIVE_ENGINE_API_KEY\",\n] as const;\n\n/** Immutable startup values captured before they are removed from `process.env`. */\nexport interface InteractiveEngineStartupEnv {\n\treadonly child: string | undefined;\n\treadonly hostPid: string | undefined;\n\treadonly guardFile: string | undefined;\n\treadonly apiKey: string | undefined;\n}\n\nlet snapshot: InteractiveEngineStartupEnv | undefined;\n\n/**\n * Copy an environment without the interactive-engine control variables.\n *\n * Pure: the input object is never mutated. Call this AFTER merging every other\n * environment source so a caller-supplied value cannot reintroduce a key.\n */\nexport function scrubInteractiveEngineEnv<T extends NodeJS.ProcessEnv>(env: T): T {\n\tconst copy = { ...env } as T;\n\tfor (const name of INTERACTIVE_ENGINE_ENV_VARS) delete copy[name];\n\treturn copy;\n}\n\n/**\n * Capture the engine startup values once and remove the legacy variables from\n * `process.env`.\n *\n * A bootstrap record is authoritative when present. The legacy environment is\n * only a fallback for a host that still launches the old way; it cannot be made\n * safe on its own, because Bun children spawned without an explicit `env`\n * inherit the runtime's launch-time environment no matter what this process\n * deletes afterwards. Idempotent: later calls return the same frozen snapshot.\n */\nexport function captureInteractiveEngineStartupEnv(\n\tbootstrap?: InteractiveEngineBootstrap,\n): InteractiveEngineStartupEnv {\n\tif (snapshot) return snapshot;\n\tsnapshot = Object.freeze(\n\t\tbootstrap\n\t\t\t? {\n\t\t\t\t\tchild: \"1\",\n\t\t\t\t\thostPid: String(bootstrap.hostPid),\n\t\t\t\t\tguardFile: bootstrap.guardFile,\n\t\t\t\t\tapiKey: bootstrap.apiKey,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tchild: process.env.ATOMIC_INTERACTIVE_ENGINE_CHILD,\n\t\t\t\t\thostPid: process.env.ATOMIC_INTERACTIVE_ENGINE_HOST_PID,\n\t\t\t\t\tguardFile: process.env.ATOMIC_INTERACTIVE_ENGINE_GUARD_FILE,\n\t\t\t\t\tapiKey: process.env.ATOMIC_INTERACTIVE_ENGINE_API_KEY,\n\t\t\t\t},\n\t);\n\tfor (const name of INTERACTIVE_ENGINE_ENV_VARS) delete process.env[name];\n\treturn snapshot;\n}\n\n/** Frozen startup snapshot; captures (and scrubs) on first read. */\nexport function interactiveEngineStartupEnv(): InteractiveEngineStartupEnv {\n\treturn captureInteractiveEngineStartupEnv();\n}\n\n/** True when this process was started as the isolated interactive engine child. */\nexport function isInteractiveEngineChild(): boolean {\n\treturn interactiveEngineStartupEnv().child === \"1\";\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"markit.d.ts","sourceRoot":"","sources":["../../src/utils/markit.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;AAoCxF,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAGnH;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAK1I"}
1
+ {"version":3,"file":"markit.d.ts","sourceRoot":"","sources":["../../src/utils/markit.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AA8CD,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC,CASnH;AAED,wBAAsB,uBAAuB,CAC5C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,sBAAsB,CAAC,CAWjC"}
@@ -9,10 +9,16 @@ let markit = async () => {
9
9
  };
10
10
  function normalizeExtension(extension) {
11
11
  const trimmed = extension.trim().toLowerCase();
12
- return trimmed ? trimmed.startsWith(".") ? trimmed : `.${trimmed}` : ".bin";
12
+ return trimmed ? (trimmed.startsWith(".") ? trimmed : `.${trimmed}`) : ".bin";
13
+ }
14
+ function normalizeError(error) {
15
+ return error instanceof Error && error.message.trim().length > 0 ? error.message.trim() : "Conversion failed";
16
+ }
17
+ function abortError() {
18
+ const error = new Error("Aborted");
19
+ error.name = "AbortError";
20
+ return error;
13
21
  }
14
- function normalizeError(error) { return error instanceof Error && error.message.trim().length > 0 ? error.message.trim() : "Conversion failed"; }
15
- function abortError() { const error = new Error("Aborted"); error.name = "AbortError"; return error; }
16
22
  async function runMarkitConversion(task, signal) {
17
23
  if (signal?.aborted)
18
24
  throw abortError();
@@ -22,11 +28,15 @@ async function runMarkitConversion(task, signal) {
22
28
  return await new Promise((resolve, reject) => {
23
29
  const abort = () => reject(abortError());
24
30
  signal.addEventListener("abort", abort, { once: true });
25
- void task(instance).then(resolve, reject).finally(() => signal.removeEventListener("abort", abort));
31
+ void task(instance)
32
+ .then(resolve, reject)
33
+ .finally(() => signal.removeEventListener("abort", abort));
26
34
  });
27
35
  }
28
36
  function finalizeConversion(markdown) {
29
- return typeof markdown === "string" && markdown.length > 0 ? { content: markdown, ok: true } : { content: "", ok: false, error: "Conversion produced no output" };
37
+ return typeof markdown === "string" && markdown.length > 0
38
+ ? { content: markdown, ok: true }
39
+ : { content: "", ok: false, error: "Conversion produced no output" };
30
40
  }
31
41
  export async function convertFileWithMarkit(filePath, signal) {
32
42
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"markit.js","sourceRoot":"","sources":["../../src/utils/markit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Markit, StreamInfo } from \"markit-ai\";\n\nexport interface MarkitConversionResult { content: string; ok: boolean; error?: string }\n\nlet markit: () => Markit | Promise<Markit> = async () => {\n\tconst promise = import(\"markit-ai\").then(({ Markit }) => {\n\t\tconst instance = new Markit();\n\t\tmarkit = () => instance;\n\t\treturn instance;\n\t});\n\tmarkit = () => promise;\n\treturn promise;\n};\n\nfunction normalizeExtension(extension: string): string {\n\tconst trimmed = extension.trim().toLowerCase();\n\treturn trimmed ? trimmed.startsWith(\".\") ? trimmed : `.${trimmed}` : \".bin\";\n}\n\nfunction normalizeError(error: unknown): string { return error instanceof Error && error.message.trim().length > 0 ? error.message.trim() : \"Conversion failed\"; }\n\nfunction abortError(): Error { const error = new Error(\"Aborted\"); error.name = \"AbortError\"; return error; }\n\nasync function runMarkitConversion<T>(task: (markit: Markit) => Promise<T>, signal?: AbortSignal): Promise<T> {\n\tif (signal?.aborted) throw abortError();\n\tconst instance = await markit();\n\tif (!signal) return task(instance);\n\treturn await new Promise<T>((resolve, reject) => {\n\t\tconst abort = () => reject(abortError());\n\t\tsignal.addEventListener(\"abort\", abort, { once: true });\n\t\tvoid task(instance).then(resolve, reject).finally(() => signal.removeEventListener(\"abort\", abort));\n\t});\n}\n\nfunction finalizeConversion(markdown?: string): MarkitConversionResult {\n\treturn typeof markdown === \"string\" && markdown.length > 0 ? { content: markdown, ok: true } : { content: \"\", ok: false, error: \"Conversion produced no output\" };\n}\n\nexport async function convertFileWithMarkit(filePath: string, signal?: AbortSignal): Promise<MarkitConversionResult> {\n\ttry { return finalizeConversion((await runMarkitConversion((instance) => instance.convertFile(filePath), signal)).markdown); }\n\tcatch (error) { if (error instanceof Error && error.name === \"AbortError\") throw error; return { content: \"\", ok: false, error: normalizeError(error) }; }\n}\n\nexport async function convertBufferWithMarkit(buffer: Uint8Array, extension: string, signal?: AbortSignal): Promise<MarkitConversionResult> {\n\tconst normalizedExtension = normalizeExtension(extension);\n\tconst streamInfo: StreamInfo = { extension: normalizedExtension, filename: `input${normalizedExtension}` };\n\ttry { return finalizeConversion((await runMarkitConversion((instance) => instance.convert(Buffer.from(buffer), streamInfo), signal)).markdown); }\n\tcatch (error) { if (error instanceof Error && error.name === \"AbortError\") throw error; return { content: \"\", ok: false, error: normalizeError(error) }; }\n}\n"]}
1
+ {"version":3,"file":"markit.js","sourceRoot":"","sources":["../../src/utils/markit.ts"],"names":[],"mappings":"AAQA,IAAI,MAAM,GAAmC,KAAK,IAAI,EAAE;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACvD,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;QACxB,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;IACvB,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,SAAS,kBAAkB,CAAC,SAAiB;IAC5C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC/E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACrC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;AAC/G,CAAC;AAED,SAAS,UAAU;IAClB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO,KAAK,CAAC;AACd,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAI,IAAoC,EAAE,MAAoB;IAC/F,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,UAAU,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,MAAM,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,QAAQ,CAAC;aACjB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAiB;IAC5C,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QACzD,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE;QACjC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,QAAgB,EAAE,MAAoB;IACjF,IAAI,CAAC;QACJ,OAAO,kBAAkB,CACxB,CAAC,MAAM,mBAAmB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAC1F,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,KAAK,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,MAAkB,EAClB,SAAiB,EACjB,MAAoB;IAEpB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,mBAAmB,EAAE,EAAE,CAAC;IAC3G,IAAI,CAAC;QACJ,OAAO,kBAAkB,CACxB,CAAC,MAAM,mBAAmB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAC7G,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,KAAK,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,CAAC;AACF,CAAC","sourcesContent":["import type { Markit, StreamInfo } from \"markit-ai\";\n\nexport interface MarkitConversionResult {\n\tcontent: string;\n\tok: boolean;\n\terror?: string;\n}\n\nlet markit: () => Markit | Promise<Markit> = async () => {\n\tconst promise = import(\"markit-ai\").then(({ Markit }) => {\n\t\tconst instance = new Markit();\n\t\tmarkit = () => instance;\n\t\treturn instance;\n\t});\n\tmarkit = () => promise;\n\treturn promise;\n};\n\nfunction normalizeExtension(extension: string): string {\n\tconst trimmed = extension.trim().toLowerCase();\n\treturn trimmed ? (trimmed.startsWith(\".\") ? trimmed : `.${trimmed}`) : \".bin\";\n}\n\nfunction normalizeError(error: unknown): string {\n\treturn error instanceof Error && error.message.trim().length > 0 ? error.message.trim() : \"Conversion failed\";\n}\n\nfunction abortError(): Error {\n\tconst error = new Error(\"Aborted\");\n\terror.name = \"AbortError\";\n\treturn error;\n}\n\nasync function runMarkitConversion<T>(task: (markit: Markit) => Promise<T>, signal?: AbortSignal): Promise<T> {\n\tif (signal?.aborted) throw abortError();\n\tconst instance = await markit();\n\tif (!signal) return task(instance);\n\treturn await new Promise<T>((resolve, reject) => {\n\t\tconst abort = () => reject(abortError());\n\t\tsignal.addEventListener(\"abort\", abort, { once: true });\n\t\tvoid task(instance)\n\t\t\t.then(resolve, reject)\n\t\t\t.finally(() => signal.removeEventListener(\"abort\", abort));\n\t});\n}\n\nfunction finalizeConversion(markdown?: string): MarkitConversionResult {\n\treturn typeof markdown === \"string\" && markdown.length > 0\n\t\t? { content: markdown, ok: true }\n\t\t: { content: \"\", ok: false, error: \"Conversion produced no output\" };\n}\n\nexport async function convertFileWithMarkit(filePath: string, signal?: AbortSignal): Promise<MarkitConversionResult> {\n\ttry {\n\t\treturn finalizeConversion(\n\t\t\t(await runMarkitConversion((instance) => instance.convertFile(filePath), signal)).markdown,\n\t\t);\n\t} catch (error) {\n\t\tif (error instanceof Error && error.name === \"AbortError\") throw error;\n\t\treturn { content: \"\", ok: false, error: normalizeError(error) };\n\t}\n}\n\nexport async function convertBufferWithMarkit(\n\tbuffer: Uint8Array,\n\textension: string,\n\tsignal?: AbortSignal,\n): Promise<MarkitConversionResult> {\n\tconst normalizedExtension = normalizeExtension(extension);\n\tconst streamInfo: StreamInfo = { extension: normalizedExtension, filename: `input${normalizedExtension}` };\n\ttry {\n\t\treturn finalizeConversion(\n\t\t\t(await runMarkitConversion((instance) => instance.convert(Buffer.from(buffer), streamInfo), signal)).markdown,\n\t\t);\n\t} catch (error) {\n\t\tif (error instanceof Error && error.name === \"AbortError\") throw error;\n\t\treturn { content: \"\", ok: false, error: normalizeError(error) };\n\t}\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { delimiter } from "node:path";
3
- import { spawn, spawnSync } from "child_process";
4
3
  import { Worker } from "node:worker_threads";
4
+ import { spawn, spawnSync } from "child_process";
5
5
  import { getBinDir } from "../config.js";
6
6
  function isLegacyWslBashPath(path) {
7
7
  const normalized = path.replace(/\//g, "\\").toLowerCase();
@@ -147,7 +147,7 @@ export function sanitizeBinaryOutput(str) {
147
147
  .join("");
148
148
  }
149
149
  let detachedChildGuardian;
150
- const PARENT_GUARDIAN_SOURCE = String.raw `
150
+ const PARENT_GUARDIAN_SOURCE = `
151
151
  const { parentPort, workerData } = require("node:worker_threads");
152
152
  const { spawn } = require("node:child_process");
153
153
  const { existsSync } = require("node:fs");
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync } from \"node:fs\";\nimport { delimiter } from \"node:path\";\nimport { spawn, spawnSync } from \"child_process\";\nimport { Worker } from \"node:worker_threads\";\nimport { getBinDir } from \"../config.ts\";\n\nexport interface ShellConfig {\n\tshell: string;\n\targs: string[];\n\tcommandTransport?: \"argv\" | \"stdin\";\n}\n\nfunction isLegacyWslBashPath(path: string): boolean {\n\tconst normalized = path.replace(/\\//g, \"\\\\\").toLowerCase();\n\treturn /^[a-z]:\\\\windows\\\\(?:system32|sysnative)\\\\bash\\.exe$/.test(normalized);\n}\n\nfunction getBashShellConfig(shell: string): ShellConfig {\n\treturn isLegacyWslBashPath(shell) ? { shell, args: [\"-s\"], commandTransport: \"stdin\" } : { shell, args: [\"-c\"] };\n}\n\n/**\n * Find bash executable on PATH (cross-platform)\n */\nfunction findBashOnPath(): string | null {\n\tif (process.platform === \"win32\") {\n\t\t// Windows: Use 'where' and verify file exists (where can return non-existent paths)\n\t\ttry {\n\t\t\tconst result = spawnSync(\"where\", [\"bash.exe\"], { encoding: \"utf-8\", timeout: 5000 });\n\t\t\tif (result.status === 0 && result.stdout) {\n\t\t\t\tconst firstMatch = result.stdout.trim().split(/\\r?\\n/)[0];\n\t\t\t\tif (firstMatch && existsSync(firstMatch)) {\n\t\t\t\t\treturn firstMatch;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {\n\t\t\t// Ignore errors\n\t\t}\n\t\treturn null;\n\t}\n\n\t// Unix: Use 'which' and trust its output (handles Termux and special filesystems)\n\ttry {\n\t\tconst result = spawnSync(\"which\", [\"bash\"], { encoding: \"utf-8\", timeout: 5000 });\n\t\tif (result.status === 0 && result.stdout) {\n\t\t\tconst firstMatch = result.stdout.trim().split(/\\r?\\n/)[0];\n\t\t\tif (firstMatch) {\n\t\t\t\treturn firstMatch;\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// Ignore errors\n\t}\n\treturn null;\n}\n\n/**\n * Resolve shell configuration based on platform and an optional explicit shell path.\n * Resolution order:\n * 1. User-specified shellPath\n * 2. On Windows: Git Bash in known locations, then bash on PATH\n * 3. On Unix: /bin/bash, then bash on PATH, then fallback to sh\n */\nexport function getShellConfig(customShellPath?: string): ShellConfig {\n\t// 1. Check user-specified shell path\n\tif (customShellPath) {\n\t\tif (existsSync(customShellPath)) {\n\t\t\treturn getBashShellConfig(customShellPath);\n\t\t}\n\t\tthrow new Error(`Custom shell path not found: ${customShellPath}`);\n\t}\n\n\tif (process.platform === \"win32\") {\n\t\t// 2. Try Git Bash in known locations\n\t\tconst paths: string[] = [];\n\t\tconst programFiles = process.env.ProgramFiles;\n\t\tif (programFiles) {\n\t\t\tpaths.push(`${programFiles}\\\\Git\\\\bin\\\\bash.exe`);\n\t\t}\n\t\tconst programFilesX86 = process.env[\"ProgramFiles(x86)\"];\n\t\tif (programFilesX86) {\n\t\t\tpaths.push(`${programFilesX86}\\\\Git\\\\bin\\\\bash.exe`);\n\t\t}\n\n\t\tfor (const path of paths) {\n\t\t\tif (existsSync(path)) {\n\t\t\t\treturn getBashShellConfig(path);\n\t\t\t}\n\t\t}\n\n\t\t// 3. Fallback: search bash.exe on PATH (Cygwin, MSYS2, WSL, etc.)\n\t\tconst bashOnPath = findBashOnPath();\n\t\tif (bashOnPath) {\n\t\t\treturn getBashShellConfig(bashOnPath);\n\t\t}\n\n\t\tthrow new Error(\n\t\t\t`No bash shell found. Options:\\n` +\n\t\t\t\t` 1. Install Git for Windows: https://git-scm.com/download/win\\n` +\n\t\t\t\t` 2. Add your bash to PATH (Cygwin, MSYS2, etc.)\\n` +\n\t\t\t\t\" 3. Set shellPath in settings.json\\n\\n\" +\n\t\t\t\t`Searched Git Bash in:\\n${paths.map((p) => ` ${p}`).join(\"\\n\")}`,\n\t\t);\n\t}\n\n\t// Unix: try /bin/bash, then bash on PATH, then fallback to sh\n\tif (existsSync(\"/bin/bash\")) {\n\t\treturn getBashShellConfig(\"/bin/bash\");\n\t}\n\n\tconst bashOnPath = findBashOnPath();\n\tif (bashOnPath) {\n\t\treturn getBashShellConfig(bashOnPath);\n\t}\n\n\treturn { shell: \"sh\", args: [\"-c\"] };\n}\n\nexport function getShellEnv(): NodeJS.ProcessEnv {\n\tconst binDir = getBinDir();\n\tconst pathKey = Object.keys(process.env).find((key) => key.toLowerCase() === \"path\") ?? \"PATH\";\n\tconst currentPath = process.env[pathKey] ?? \"\";\n\tconst pathEntries = currentPath.split(delimiter).filter(Boolean);\n\tconst hasBinDir = pathEntries.includes(binDir);\n\tconst updatedPath = hasBinDir ? currentPath : [binDir, currentPath].filter(Boolean).join(delimiter);\n\n\treturn {\n\t\t...process.env,\n\t\t[pathKey]: updatedPath,\n\t};\n}\n\n/**\n * Sanitize binary output for display/storage.\n * Removes characters that crash string-width or cause display issues:\n * - Control characters (except tab, newline, carriage return)\n * - Lone surrogates\n * - Unicode Format characters (crash string-width due to a bug)\n * - Characters with undefined code points\n */\nexport function sanitizeBinaryOutput(str: string): string {\n\t// Use Array.from to properly iterate over code points (not code units)\n\t// This handles surrogate pairs correctly and catches edge cases where\n\t// codePointAt() might return undefined\n\treturn Array.from(str)\n\t\t.filter((char) => {\n\t\t\t// Filter out characters that cause string-width to crash\n\t\t\t// This includes:\n\t\t\t// - Unicode format characters\n\t\t\t// - Lone surrogates (already filtered by Array.from)\n\t\t\t// - Control chars except \\t \\n \\r\n\t\t\t// - Characters with undefined code points\n\n\t\t\tconst code = char.codePointAt(0);\n\n\t\t\t// Skip if code point is undefined (edge case with invalid strings)\n\t\t\tif (code === undefined) return false;\n\n\t\t\t// Allow tab, newline, carriage return\n\t\t\tif (code === 0x09 || code === 0x0a || code === 0x0d) return true;\n\n\t\t\t// Filter out control characters (0x00-0x1F, except 0x09, 0x0a, 0x0x0d)\n\t\t\tif (code <= 0x1f) return false;\n\n\t\t\t// Filter out Unicode format characters\n\t\t\tif (code >= 0xfff9 && code <= 0xfffb) return false;\n\n\t\t\treturn true;\n\t\t})\n\t\t.join(\"\");\n}\n\ninterface DetachedChildGuardian {\n\tpostMessage(message: { action: \"track\" | \"untrack\"; pid: number }): void;\n\tterminate(): Promise<number>;\n\tunref(): void;\n}\n\nlet detachedChildGuardian: DetachedChildGuardian | undefined;\n\nconst PARENT_GUARDIAN_SOURCE = String.raw`\nconst { parentPort, workerData } = require(\"node:worker_threads\");\nconst { spawn } = require(\"node:child_process\");\nconst { existsSync } = require(\"node:fs\");\nconst tracked = new Set();\nparentPort.on(\"message\", ({ action, pid }) => {\n if (action === \"track\") tracked.add(pid);\n else tracked.delete(pid);\n});\nfunction killTree(pid) {\n if (process.platform === \"win32\") {\n try { spawn(\"taskkill\", [\"/F\", \"/T\", \"/PID\", String(pid)], { stdio: \"ignore\", detached: true }); } catch {}\n return;\n }\n try { process.kill(-pid, \"SIGKILL\"); }\n catch { try { process.kill(pid, \"SIGKILL\"); } catch {} }\n}\nconst timer = setInterval(() => {\n let parentAlive = true;\n try { process.kill(workerData.parentPid, 0); } catch { parentAlive = false; }\n if (parentAlive && (!workerData.stopFile || !existsSync(workerData.stopFile))) return;\n for (const pid of tracked) killTree(pid);\n killTree(process.pid);\n}, 50);\ntimer.unref?.();\n`;\n\nexport function startParentProcessGuardian(parentPid: number, stopFile?: string): () => Promise<void> {\n\tif (detachedChildGuardian) return async () => {};\n\tconst guardian = new Worker(PARENT_GUARDIAN_SOURCE, { eval: true, workerData: { parentPid, stopFile } });\n\tdetachedChildGuardian = guardian;\n\tfor (const pid of trackedDetachedChildPids) guardian.postMessage({ action: \"track\", pid });\n\tguardian.unref();\n\treturn async () => {\n\t\tif (detachedChildGuardian !== guardian) return;\n\t\tdetachedChildGuardian = undefined;\n\t\tawait guardian.terminate();\n\t};\n}\n\n/**\n * Detached child processes must be tracked so they can be killed on parent\n * shutdown signals (SIGHUP/SIGTERM).\n */\nconst trackedDetachedChildPids = new Set<number>();\n\nexport function trackDetachedChildPid(pid: number): void {\n\ttrackedDetachedChildPids.add(pid);\n\tdetachedChildGuardian?.postMessage({ action: \"track\", pid });\n}\n\nexport function untrackDetachedChildPid(pid: number): void {\n\ttrackedDetachedChildPids.delete(pid);\n\tdetachedChildGuardian?.postMessage({ action: \"untrack\", pid });\n}\n\nexport function killTrackedDetachedChildren(): void {\n\tfor (const pid of trackedDetachedChildPids) {\n\t\tkillProcessTree(pid);\n\t\tdetachedChildGuardian?.postMessage({ action: \"untrack\", pid });\n\t}\n\ttrackedDetachedChildPids.clear();\n}\n\n/**\n * Kill a process and all its children (cross-platform)\n */\nexport function killProcessTree(pid: number): void {\n\tif (process.platform === \"win32\") {\n\t\t// Use taskkill on Windows to kill process tree\n\t\ttry {\n\t\t\tspawn(\"taskkill\", [\"/F\", \"/T\", \"/PID\", String(pid)], {\n\t\t\t\tstdio: \"ignore\",\n\t\t\t\tdetached: true,\n\t\t\t});\n\t\t} catch {\n\t\t\t// Ignore errors if taskkill fails\n\t\t}\n\t} else {\n\t\t// Use SIGKILL on Unix/Linux/Mac\n\t\ttry {\n\t\t\tprocess.kill(-pid, \"SIGKILL\");\n\t\t} catch {\n\t\t\t// Fallback to killing just the child if process group kill fails\n\t\t\ttry {\n\t\t\t\tprocess.kill(pid, \"SIGKILL\");\n\t\t\t} catch {\n\t\t\t\t// Process already dead\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync } from \"node:fs\";\nimport { delimiter } from \"node:path\";\nimport { Worker } from \"node:worker_threads\";\nimport { spawn, spawnSync } from \"child_process\";\nimport { getBinDir } from \"../config.ts\";\n\nexport interface ShellConfig {\n\tshell: string;\n\targs: string[];\n\tcommandTransport?: \"argv\" | \"stdin\";\n}\n\nfunction isLegacyWslBashPath(path: string): boolean {\n\tconst normalized = path.replace(/\\//g, \"\\\\\").toLowerCase();\n\treturn /^[a-z]:\\\\windows\\\\(?:system32|sysnative)\\\\bash\\.exe$/.test(normalized);\n}\n\nfunction getBashShellConfig(shell: string): ShellConfig {\n\treturn isLegacyWslBashPath(shell) ? { shell, args: [\"-s\"], commandTransport: \"stdin\" } : { shell, args: [\"-c\"] };\n}\n\n/**\n * Find bash executable on PATH (cross-platform)\n */\nfunction findBashOnPath(): string | null {\n\tif (process.platform === \"win32\") {\n\t\t// Windows: Use 'where' and verify file exists (where can return non-existent paths)\n\t\ttry {\n\t\t\tconst result = spawnSync(\"where\", [\"bash.exe\"], { encoding: \"utf-8\", timeout: 5000 });\n\t\t\tif (result.status === 0 && result.stdout) {\n\t\t\t\tconst firstMatch = result.stdout.trim().split(/\\r?\\n/)[0];\n\t\t\t\tif (firstMatch && existsSync(firstMatch)) {\n\t\t\t\t\treturn firstMatch;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {\n\t\t\t// Ignore errors\n\t\t}\n\t\treturn null;\n\t}\n\n\t// Unix: Use 'which' and trust its output (handles Termux and special filesystems)\n\ttry {\n\t\tconst result = spawnSync(\"which\", [\"bash\"], { encoding: \"utf-8\", timeout: 5000 });\n\t\tif (result.status === 0 && result.stdout) {\n\t\t\tconst firstMatch = result.stdout.trim().split(/\\r?\\n/)[0];\n\t\t\tif (firstMatch) {\n\t\t\t\treturn firstMatch;\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// Ignore errors\n\t}\n\treturn null;\n}\n\n/**\n * Resolve shell configuration based on platform and an optional explicit shell path.\n * Resolution order:\n * 1. User-specified shellPath\n * 2. On Windows: Git Bash in known locations, then bash on PATH\n * 3. On Unix: /bin/bash, then bash on PATH, then fallback to sh\n */\nexport function getShellConfig(customShellPath?: string): ShellConfig {\n\t// 1. Check user-specified shell path\n\tif (customShellPath) {\n\t\tif (existsSync(customShellPath)) {\n\t\t\treturn getBashShellConfig(customShellPath);\n\t\t}\n\t\tthrow new Error(`Custom shell path not found: ${customShellPath}`);\n\t}\n\n\tif (process.platform === \"win32\") {\n\t\t// 2. Try Git Bash in known locations\n\t\tconst paths: string[] = [];\n\t\tconst programFiles = process.env.ProgramFiles;\n\t\tif (programFiles) {\n\t\t\tpaths.push(`${programFiles}\\\\Git\\\\bin\\\\bash.exe`);\n\t\t}\n\t\tconst programFilesX86 = process.env[\"ProgramFiles(x86)\"];\n\t\tif (programFilesX86) {\n\t\t\tpaths.push(`${programFilesX86}\\\\Git\\\\bin\\\\bash.exe`);\n\t\t}\n\n\t\tfor (const path of paths) {\n\t\t\tif (existsSync(path)) {\n\t\t\t\treturn getBashShellConfig(path);\n\t\t\t}\n\t\t}\n\n\t\t// 3. Fallback: search bash.exe on PATH (Cygwin, MSYS2, WSL, etc.)\n\t\tconst bashOnPath = findBashOnPath();\n\t\tif (bashOnPath) {\n\t\t\treturn getBashShellConfig(bashOnPath);\n\t\t}\n\n\t\tthrow new Error(\n\t\t\t`No bash shell found. Options:\\n` +\n\t\t\t\t` 1. Install Git for Windows: https://git-scm.com/download/win\\n` +\n\t\t\t\t` 2. Add your bash to PATH (Cygwin, MSYS2, etc.)\\n` +\n\t\t\t\t\" 3. Set shellPath in settings.json\\n\\n\" +\n\t\t\t\t`Searched Git Bash in:\\n${paths.map((p) => ` ${p}`).join(\"\\n\")}`,\n\t\t);\n\t}\n\n\t// Unix: try /bin/bash, then bash on PATH, then fallback to sh\n\tif (existsSync(\"/bin/bash\")) {\n\t\treturn getBashShellConfig(\"/bin/bash\");\n\t}\n\n\tconst bashOnPath = findBashOnPath();\n\tif (bashOnPath) {\n\t\treturn getBashShellConfig(bashOnPath);\n\t}\n\n\treturn { shell: \"sh\", args: [\"-c\"] };\n}\n\nexport function getShellEnv(): NodeJS.ProcessEnv {\n\tconst binDir = getBinDir();\n\tconst pathKey = Object.keys(process.env).find((key) => key.toLowerCase() === \"path\") ?? \"PATH\";\n\tconst currentPath = process.env[pathKey] ?? \"\";\n\tconst pathEntries = currentPath.split(delimiter).filter(Boolean);\n\tconst hasBinDir = pathEntries.includes(binDir);\n\tconst updatedPath = hasBinDir ? currentPath : [binDir, currentPath].filter(Boolean).join(delimiter);\n\n\treturn {\n\t\t...process.env,\n\t\t[pathKey]: updatedPath,\n\t};\n}\n\n/**\n * Sanitize binary output for display/storage.\n * Removes characters that crash string-width or cause display issues:\n * - Control characters (except tab, newline, carriage return)\n * - Lone surrogates\n * - Unicode Format characters (crash string-width due to a bug)\n * - Characters with undefined code points\n */\nexport function sanitizeBinaryOutput(str: string): string {\n\t// Use Array.from to properly iterate over code points (not code units)\n\t// This handles surrogate pairs correctly and catches edge cases where\n\t// codePointAt() might return undefined\n\treturn Array.from(str)\n\t\t.filter((char) => {\n\t\t\t// Filter out characters that cause string-width to crash\n\t\t\t// This includes:\n\t\t\t// - Unicode format characters\n\t\t\t// - Lone surrogates (already filtered by Array.from)\n\t\t\t// - Control chars except \\t \\n \\r\n\t\t\t// - Characters with undefined code points\n\n\t\t\tconst code = char.codePointAt(0);\n\n\t\t\t// Skip if code point is undefined (edge case with invalid strings)\n\t\t\tif (code === undefined) return false;\n\n\t\t\t// Allow tab, newline, carriage return\n\t\t\tif (code === 0x09 || code === 0x0a || code === 0x0d) return true;\n\n\t\t\t// Filter out control characters (0x00-0x1F, except 0x09, 0x0a, 0x0x0d)\n\t\t\tif (code <= 0x1f) return false;\n\n\t\t\t// Filter out Unicode format characters\n\t\t\tif (code >= 0xfff9 && code <= 0xfffb) return false;\n\n\t\t\treturn true;\n\t\t})\n\t\t.join(\"\");\n}\n\ninterface DetachedChildGuardian {\n\tpostMessage(message: { action: \"track\" | \"untrack\"; pid: number }): void;\n\tterminate(): Promise<number>;\n\tunref(): void;\n}\n\nlet detachedChildGuardian: DetachedChildGuardian | undefined;\n\nconst PARENT_GUARDIAN_SOURCE = `\nconst { parentPort, workerData } = require(\"node:worker_threads\");\nconst { spawn } = require(\"node:child_process\");\nconst { existsSync } = require(\"node:fs\");\nconst tracked = new Set();\nparentPort.on(\"message\", ({ action, pid }) => {\n if (action === \"track\") tracked.add(pid);\n else tracked.delete(pid);\n});\nfunction killTree(pid) {\n if (process.platform === \"win32\") {\n try { spawn(\"taskkill\", [\"/F\", \"/T\", \"/PID\", String(pid)], { stdio: \"ignore\", detached: true }); } catch {}\n return;\n }\n try { process.kill(-pid, \"SIGKILL\"); }\n catch { try { process.kill(pid, \"SIGKILL\"); } catch {} }\n}\nconst timer = setInterval(() => {\n let parentAlive = true;\n try { process.kill(workerData.parentPid, 0); } catch { parentAlive = false; }\n if (parentAlive && (!workerData.stopFile || !existsSync(workerData.stopFile))) return;\n for (const pid of tracked) killTree(pid);\n killTree(process.pid);\n}, 50);\ntimer.unref?.();\n`;\n\nexport function startParentProcessGuardian(parentPid: number, stopFile?: string): () => Promise<void> {\n\tif (detachedChildGuardian) return async () => {};\n\tconst guardian = new Worker(PARENT_GUARDIAN_SOURCE, { eval: true, workerData: { parentPid, stopFile } });\n\tdetachedChildGuardian = guardian;\n\tfor (const pid of trackedDetachedChildPids) guardian.postMessage({ action: \"track\", pid });\n\tguardian.unref();\n\treturn async () => {\n\t\tif (detachedChildGuardian !== guardian) return;\n\t\tdetachedChildGuardian = undefined;\n\t\tawait guardian.terminate();\n\t};\n}\n\n/**\n * Detached child processes must be tracked so they can be killed on parent\n * shutdown signals (SIGHUP/SIGTERM).\n */\nconst trackedDetachedChildPids = new Set<number>();\n\nexport function trackDetachedChildPid(pid: number): void {\n\ttrackedDetachedChildPids.add(pid);\n\tdetachedChildGuardian?.postMessage({ action: \"track\", pid });\n}\n\nexport function untrackDetachedChildPid(pid: number): void {\n\ttrackedDetachedChildPids.delete(pid);\n\tdetachedChildGuardian?.postMessage({ action: \"untrack\", pid });\n}\n\nexport function killTrackedDetachedChildren(): void {\n\tfor (const pid of trackedDetachedChildPids) {\n\t\tkillProcessTree(pid);\n\t\tdetachedChildGuardian?.postMessage({ action: \"untrack\", pid });\n\t}\n\ttrackedDetachedChildPids.clear();\n}\n\n/**\n * Kill a process and all its children (cross-platform)\n */\nexport function killProcessTree(pid: number): void {\n\tif (process.platform === \"win32\") {\n\t\t// Use taskkill on Windows to kill process tree\n\t\ttry {\n\t\t\tspawn(\"taskkill\", [\"/F\", \"/T\", \"/PID\", String(pid)], {\n\t\t\t\tstdio: \"ignore\",\n\t\t\t\tdetached: true,\n\t\t\t});\n\t\t} catch {\n\t\t\t// Ignore errors if taskkill fails\n\t\t}\n\t} else {\n\t\t// Use SIGKILL on Unix/Linux/Mac\n\t\ttry {\n\t\t\tprocess.kill(-pid, \"SIGKILL\");\n\t\t} catch {\n\t\t\t// Fallback to killing just the child if process group kill fails\n\t\t\ttry {\n\t\t\t\tprocess.kill(pid, \"SIGKILL\");\n\t\t\t} catch {\n\t\t\t\t// Process already dead\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"split-launcher.d.ts","sourceRoot":"","sources":["../../src/utils/split-launcher.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAKhD;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAE,MAAM,EAAE,GAAG,MAAM,CAO/F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAOvF"}
1
+ {"version":3,"file":"split-launcher.d.ts","sourceRoot":"","sources":["../../src/utils/split-launcher.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAE,MAAM,EAAE,GAAG,MAAM,CAO/F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAOvF"}
@@ -23,8 +23,7 @@ import { fileURLToPath } from "node:url";
23
23
  * scattered ad-hoc guards.
24
24
  */
25
25
  export function isSplitLauncherRuntime() {
26
- return (process.env.ATOMIC_CODING_AGENT === "true" &&
27
- /(?:^|[\\/])atomic(?:\.exe)?$/i.test(process.execPath));
26
+ return process.env.ATOMIC_CODING_AGENT === "true" && /(?:^|[\\/])atomic(?:\.exe)?$/i.test(process.execPath);
28
27
  }
29
28
  /** Directory containing the launcher executable and its sidecar bundle/assets. */
30
29
  export function splitLauncherDir() {
@@ -1 +1 @@
1
- {"version":3,"file":"split-launcher.js","sourceRoot":"","sources":["../../src/utils/split-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,sBAAsB;IACrC,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM;QAC1C,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CACtD,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,gBAAgB;IAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,GAAG,oBAA8B;IACtF,IAAI,CAAC;QACJ,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,sBAAsB,EAAE;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,oBAAoB,CAAC,CAAC;QACvF,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,gBAAwB;IAC9E,IAAI,CAAC;QACJ,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,sBAAsB,EAAE;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAChF,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC","sourcesContent":["import { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n/**\n * Split-launcher / foreign-build `import.meta.url` handling.\n *\n * Atomic's release binaries use a split launcher: a tiny compiled `atomic` /\n * `atomic.exe` executable sets `ATOMIC_CODING_AGENT=true` and then dynamically\n * imports the bundled sidecar `app.js` (plus raw-TS built-in extensions) from\n * disk next to the executable.\n *\n * Unlike pi's single monolithic `bun --compile` binary — where `import.meta.url`\n * is always a `$bunfs://` virtual-FS URL — the split sidecar bundle carries the\n * build machine's source path baked in at bundle time (e.g. a macOS\n * `file:///Users/.../app.js` URL). On Windows, `fileURLToPath()` rejects that\n * URL with `ERR_INVALID_FILE_URL_PATH` (\"File URL path must be an absolute\n * path\") because `/Users/...` has no drive letter, so every site that decodes\n * `import.meta.url` to a filesystem path must tolerate it.\n *\n * These helpers centralize that tolerance: decode normally, and only when the\n * decode fails under the split launcher fall back to a path resolved relative to\n * the launcher executable (where the sidecar bundle and its assets actually\n * live). This mirrors pi's convention of a single detection point rather than\n * scattered ad-hoc guards.\n */\nexport function isSplitLauncherRuntime(): boolean {\n\treturn (\n\t\tprocess.env.ATOMIC_CODING_AGENT === \"true\" &&\n\t\t/(?:^|[\\\\/])atomic(?:\\.exe)?$/i.test(process.execPath)\n\t);\n}\n\n/** Directory containing the launcher executable and its sidecar bundle/assets. */\nexport function splitLauncherDir(): string {\n\treturn dirname(process.execPath);\n}\n\n/**\n * Resolve a module's directory from its `import.meta.url`, tolerating the\n * split-launcher case where the bundled URL is a foreign-OS build path.\n * `execRelativeSegments` locate the equivalent directory next to the launcher.\n */\nexport function moduleDirFromMetaUrl(metaUrl: string, ...execRelativeSegments: string[]): string {\n\ttry {\n\t\treturn dirname(fileURLToPath(metaUrl));\n\t} catch (error) {\n\t\tif (isSplitLauncherRuntime()) return join(splitLauncherDir(), ...execRelativeSegments);\n\t\tthrow error;\n\t}\n}\n\n/**\n * Resolve a module's filename from its `import.meta.url`, tolerating the\n * split-launcher case. `execRelativeFile` locates the equivalent file next to\n * the launcher (used as a stable resolution base, e.g. for `createRequire`).\n */\nexport function moduleFileFromMetaUrl(metaUrl: string, execRelativeFile: string): string {\n\ttry {\n\t\treturn fileURLToPath(metaUrl);\n\t} catch (error) {\n\t\tif (isSplitLauncherRuntime()) return join(splitLauncherDir(), execRelativeFile);\n\t\tthrow error;\n\t}\n}\n"]}
1
+ {"version":3,"file":"split-launcher.js","sourceRoot":"","sources":["../../src/utils/split-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,sBAAsB;IACrC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,IAAI,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7G,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,gBAAgB;IAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,GAAG,oBAA8B;IACtF,IAAI,CAAC;QACJ,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,sBAAsB,EAAE;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,oBAAoB,CAAC,CAAC;QACvF,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,gBAAwB;IAC9E,IAAI,CAAC;QACJ,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,sBAAsB,EAAE;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAChF,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC","sourcesContent":["import { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n/**\n * Split-launcher / foreign-build `import.meta.url` handling.\n *\n * Atomic's release binaries use a split launcher: a tiny compiled `atomic` /\n * `atomic.exe` executable sets `ATOMIC_CODING_AGENT=true` and then dynamically\n * imports the bundled sidecar `app.js` (plus raw-TS built-in extensions) from\n * disk next to the executable.\n *\n * Unlike pi's single monolithic `bun --compile` binary — where `import.meta.url`\n * is always a `$bunfs://` virtual-FS URL — the split sidecar bundle carries the\n * build machine's source path baked in at bundle time (e.g. a macOS\n * `file:///Users/.../app.js` URL). On Windows, `fileURLToPath()` rejects that\n * URL with `ERR_INVALID_FILE_URL_PATH` (\"File URL path must be an absolute\n * path\") because `/Users/...` has no drive letter, so every site that decodes\n * `import.meta.url` to a filesystem path must tolerate it.\n *\n * These helpers centralize that tolerance: decode normally, and only when the\n * decode fails under the split launcher fall back to a path resolved relative to\n * the launcher executable (where the sidecar bundle and its assets actually\n * live). This mirrors pi's convention of a single detection point rather than\n * scattered ad-hoc guards.\n */\nexport function isSplitLauncherRuntime(): boolean {\n\treturn process.env.ATOMIC_CODING_AGENT === \"true\" && /(?:^|[\\\\/])atomic(?:\\.exe)?$/i.test(process.execPath);\n}\n\n/** Directory containing the launcher executable and its sidecar bundle/assets. */\nexport function splitLauncherDir(): string {\n\treturn dirname(process.execPath);\n}\n\n/**\n * Resolve a module's directory from its `import.meta.url`, tolerating the\n * split-launcher case where the bundled URL is a foreign-OS build path.\n * `execRelativeSegments` locate the equivalent directory next to the launcher.\n */\nexport function moduleDirFromMetaUrl(metaUrl: string, ...execRelativeSegments: string[]): string {\n\ttry {\n\t\treturn dirname(fileURLToPath(metaUrl));\n\t} catch (error) {\n\t\tif (isSplitLauncherRuntime()) return join(splitLauncherDir(), ...execRelativeSegments);\n\t\tthrow error;\n\t}\n}\n\n/**\n * Resolve a module's filename from its `import.meta.url`, tolerating the\n * split-launcher case. `execRelativeFile` locates the equivalent file next to\n * the launcher (used as a stable resolution base, e.g. for `createRequire`).\n */\nexport function moduleFileFromMetaUrl(metaUrl: string, execRelativeFile: string): string {\n\ttry {\n\t\treturn fileURLToPath(metaUrl);\n\t} catch (error) {\n\t\tif (isSplitLauncherRuntime()) return join(splitLauncherDir(), execRelativeFile);\n\t\tthrow error;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tools-manager.d.ts","sourceRoot":"","sources":["../../src/utils/tools-manager.ts"],"names":[],"mappings":"AAkGA,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAsB5D;AAuQD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuD7B"}
1
+ {"version":3,"file":"tools-manager.d.ts","sourceRoot":"","sources":["../../src/utils/tools-manager.ts"],"names":[],"mappings":"AAmFA,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAmB5D;AA0ND,wBAAsB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2CxG"}
@@ -1,6 +1,6 @@
1
1
  import chalk from "chalk";
2
2
  import { spawnSync } from "child_process";
3
- import { chmodSync, existsSync, mkdirSync, readdirSync, renameSync, rmSync, } from "fs";
3
+ import { chmodSync, existsSync, mkdirSync, readdirSync, renameSync, rmSync } from "fs";
4
4
  import { writeFile } from "fs/promises";
5
5
  import { arch, platform } from "os";
6
6
  import { join } from "path";
@@ -12,9 +12,7 @@ function isOfflineModeEnabled() {
12
12
  const value = getEnvValue(ENV_OFFLINE);
13
13
  if (!value)
14
14
  return false;
15
- return (value === "1" ||
16
- value.toLowerCase() === "true" ||
17
- value.toLowerCase() === "yes");
15
+ return value === "1" || value.toLowerCase() === "true" || value.toLowerCase() === "yes";
18
16
  }
19
17
  const TOOLS = {
20
18
  fd: {
@@ -159,12 +157,7 @@ function runExtractionCommand(command, args) {
159
157
  return `${command}: ${formatSpawnFailure(result)}`;
160
158
  }
161
159
  function extractTarGzArchive(archivePath, extractDir, assetName) {
162
- const failure = runExtractionCommand("tar", [
163
- "xzf",
164
- archivePath,
165
- "-C",
166
- extractDir,
167
- ]);
160
+ const failure = runExtractionCommand("tar", ["xzf", archivePath, "-C", extractDir]);
168
161
  if (failure) {
169
162
  throw new Error(`Failed to extract ${assetName}: ${failure}`);
170
163
  }
@@ -184,12 +177,7 @@ function extractZipArchive(archivePath, extractDir, assetName) {
184
177
  if (platform() === "win32") {
185
178
  // Windows ships bsdtar as tar.exe, which supports zip files. Prefer the
186
179
  // System32 binary over Git Bash's GNU tar, which does not handle zip archives.
187
- const tarFailure = runExtractionCommand(getWindowsTarCommand(), [
188
- "xf",
189
- archivePath,
190
- "-C",
191
- extractDir,
192
- ]);
180
+ const tarFailure = runExtractionCommand(getWindowsTarCommand(), ["xf", archivePath, "-C", extractDir]);
193
181
  if (!tarFailure)
194
182
  return;
195
183
  failures.push(tarFailure);
@@ -210,21 +198,11 @@ function extractZipArchive(archivePath, extractDir, assetName) {
210
198
  failures.push(powershellFailure);
211
199
  }
212
200
  else {
213
- const unzipFailure = runExtractionCommand("unzip", [
214
- "-q",
215
- archivePath,
216
- "-d",
217
- extractDir,
218
- ]);
201
+ const unzipFailure = runExtractionCommand("unzip", ["-q", archivePath, "-d", extractDir]);
219
202
  if (!unzipFailure)
220
203
  return;
221
204
  failures.push(unzipFailure);
222
- const tarFailure = runExtractionCommand("tar", [
223
- "xf",
224
- archivePath,
225
- "-C",
226
- extractDir,
227
- ]);
205
+ const tarFailure = runExtractionCommand("tar", ["xf", archivePath, "-C", extractDir]);
228
206
  if (!tarFailure)
229
207
  return;
230
208
  failures.push(tarFailure);
@@ -271,14 +249,10 @@ async function downloadTool(tool) {
271
249
  // at root, others nest under a versioned subdirectory.
272
250
  const binaryFileName = config.binaryName + binaryExt;
273
251
  const extractedDir = join(extractDir, assetName.replace(/\.(tar\.gz|zip)$/, ""));
274
- const extractedBinaryCandidates = [
275
- join(extractedDir, binaryFileName),
276
- join(extractDir, binaryFileName),
277
- ];
252
+ const extractedBinaryCandidates = [join(extractedDir, binaryFileName), join(extractDir, binaryFileName)];
278
253
  let extractedBinary = extractedBinaryCandidates.find((candidate) => existsSync(candidate));
279
254
  if (!extractedBinary) {
280
- extractedBinary =
281
- findBinaryRecursively(extractDir, binaryFileName) ?? undefined;
255
+ extractedBinary = findBinaryRecursively(extractDir, binaryFileName) ?? undefined;
282
256
  }
283
257
  if (extractedBinary) {
284
258
  renameSync(extractedBinary, binaryPath);
@@ -1 +1 @@
1
- {"version":3,"file":"tools-manager.js","sourceRoot":"","sources":["../../src/utils/tools-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from \"chalk\";\nimport { type SpawnSyncReturns, spawnSync } from \"child_process\";\nimport {\n chmodSync,\n existsSync,\n mkdirSync,\n readdirSync,\n renameSync,\n rmSync,\n} from \"fs\";\nimport { writeFile } from \"fs/promises\";\nimport { arch, platform } from \"os\";\nimport { join } from \"path\";\nimport { APP_NAME, ENV_OFFLINE, getBinDir, getEnvValue } from \"../config.ts\";\n\nconst TOOLS_DIR = getBinDir();\nconst NETWORK_TIMEOUT_MS = 10_000;\nconst DOWNLOAD_TIMEOUT_MS = 120_000;\n\nfunction isOfflineModeEnabled(): boolean {\n const value = getEnvValue(ENV_OFFLINE);\n if (!value) return false;\n return (\n value === \"1\" ||\n value.toLowerCase() === \"true\" ||\n value.toLowerCase() === \"yes\"\n );\n}\n\ninterface ToolConfig {\n name: string;\n repo: string; // GitHub repo (e.g., \"sharkdp/fd\")\n binaryName: string; // Name of the binary inside the archive\n systemBinaryNames?: string[]; // Alternative system command names to try before downloading\n tagPrefix: string; // Prefix for tags (e.g., \"v\" for v1.0.0, \"\" for 1.0.0)\n getAssetName: (\n version: string,\n plat: string,\n architecture: string,\n ) => string | null;\n}\n\nconst TOOLS: Record<string, ToolConfig> = {\n fd: {\n name: \"fd\",\n repo: \"sharkdp/fd\",\n binaryName: \"fd\",\n systemBinaryNames: [\"fd\", \"fdfind\"],\n tagPrefix: \"v\",\n getAssetName: (version, plat, architecture) => {\n if (plat === \"darwin\") {\n const archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n return `fd-v${version}-${archStr}-apple-darwin.tar.gz`;\n } else if (plat === \"linux\") {\n const archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n return `fd-v${version}-${archStr}-unknown-linux-gnu.tar.gz`;\n } else if (plat === \"win32\") {\n const archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n return `fd-v${version}-${archStr}-pc-windows-msvc.zip`;\n }\n return null;\n },\n },\n rg: {\n name: \"ripgrep\",\n repo: \"BurntSushi/ripgrep\",\n binaryName: \"rg\",\n tagPrefix: \"\",\n getAssetName: (version, plat, architecture) => {\n if (plat === \"darwin\") {\n const archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n return `ripgrep-${version}-${archStr}-apple-darwin.tar.gz`;\n } else if (plat === \"linux\") {\n if (architecture === \"arm64\") {\n return `ripgrep-${version}-aarch64-unknown-linux-gnu.tar.gz`;\n }\n return `ripgrep-${version}-x86_64-unknown-linux-musl.tar.gz`;\n } else if (plat === \"win32\") {\n const archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n return `ripgrep-${version}-${archStr}-pc-windows-msvc.zip`;\n }\n return null;\n },\n },\n};\n\n// Check if a command exists in PATH by trying to run it\nfunction commandExists(cmd: string): boolean {\n try {\n const result = spawnSync(cmd, [\"--version\"], { stdio: \"pipe\" });\n // Check for ENOENT error (command not found)\n return result.error === undefined || result.error === null;\n } catch {\n return false;\n }\n}\n\n// Get the path to a tool (system-wide or in our tools dir)\nexport function getToolPath(tool: \"fd\" | \"rg\"): string | null {\n const config = TOOLS[tool];\n if (!config) return null;\n\n // Check our tools directory first\n const localPath = join(\n TOOLS_DIR,\n config.binaryName + (platform() === \"win32\" ? \".exe\" : \"\"),\n );\n if (existsSync(localPath)) {\n return localPath;\n }\n\n // Check system PATH - if found, just return the command name (it's in PATH)\n const systemBinaryNames = config.systemBinaryNames ?? [config.binaryName];\n for (const systemBinaryName of systemBinaryNames) {\n if (commandExists(systemBinaryName)) {\n return systemBinaryName;\n }\n }\n\n return null;\n}\n\n// Fetch latest release version from GitHub\nasync function getLatestVersion(repo: string): Promise<string> {\n const response = await fetch(\n `https://api.github.com/repos/${repo}/releases/latest`,\n {\n headers: { \"User-Agent\": APP_NAME },\n signal: AbortSignal.timeout(NETWORK_TIMEOUT_MS),\n },\n );\n\n if (!response.ok) {\n throw new Error(`GitHub API error: ${response.status}`);\n }\n\n const data = (await response.json()) as { tag_name: string };\n return data.tag_name.replace(/^v/, \"\");\n}\n\n// Download a file from URL\nasync function downloadFile(url: string, dest: string): Promise<void> {\n const response = await fetch(url, {\n signal: AbortSignal.timeout(DOWNLOAD_TIMEOUT_MS),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.status}`);\n }\n\n if (!response.body) {\n throw new Error(\"No response body\");\n }\n\n await writeFile(dest, Buffer.from(await response.arrayBuffer()));\n}\n\nfunction findBinaryRecursively(\n rootDir: string,\n binaryFileName: string,\n): string | null {\n const stack: string[] = [rootDir];\n\n while (stack.length > 0) {\n const currentDir = stack.pop();\n if (!currentDir) continue;\n\n const entries = readdirSync(currentDir, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = join(currentDir, entry.name);\n if (entry.isFile() && entry.name === binaryFileName) {\n return fullPath;\n }\n if (entry.isDirectory()) {\n stack.push(fullPath);\n }\n }\n }\n\n return null;\n}\n\nfunction formatSpawnFailure(result: SpawnSyncReturns<Buffer>): string {\n if (result.error?.message) {\n return result.error.message;\n }\n const stderr = result.stderr?.toString().trim();\n if (stderr) {\n return stderr;\n }\n const stdout = result.stdout?.toString().trim();\n if (stdout) {\n return stdout;\n }\n return `exit status ${result.status ?? \"unknown\"}`;\n}\n\nfunction runExtractionCommand(command: string, args: string[]): string | null {\n const result = spawnSync(command, args, { stdio: \"pipe\" });\n if (!result.error && result.status === 0) {\n return null;\n }\n return `${command}: ${formatSpawnFailure(result)}`;\n}\n\nfunction extractTarGzArchive(\n archivePath: string,\n extractDir: string,\n assetName: string,\n): void {\n const failure = runExtractionCommand(\"tar\", [\n \"xzf\",\n archivePath,\n \"-C\",\n extractDir,\n ]);\n if (failure) {\n throw new Error(`Failed to extract ${assetName}: ${failure}`);\n }\n}\n\nfunction getWindowsTarCommand(): string {\n const systemRoot = process.env.SystemRoot ?? process.env.WINDIR;\n if (systemRoot) {\n const systemTar = join(systemRoot, \"System32\", \"tar.exe\");\n if (existsSync(systemTar)) {\n return systemTar;\n }\n }\n return \"tar.exe\";\n}\n\nfunction extractZipArchive(\n archivePath: string,\n extractDir: string,\n assetName: string,\n): void {\n const failures: string[] = [];\n\n if (platform() === \"win32\") {\n // Windows ships bsdtar as tar.exe, which supports zip files. Prefer the\n // System32 binary over Git Bash's GNU tar, which does not handle zip archives.\n const tarFailure = runExtractionCommand(getWindowsTarCommand(), [\n \"xf\",\n archivePath,\n \"-C\",\n extractDir,\n ]);\n if (!tarFailure) return;\n failures.push(tarFailure);\n\n const script =\n \"& { param($archive, $destination) $ErrorActionPreference = 'Stop'; Expand-Archive -LiteralPath $archive -DestinationPath $destination -Force }\";\n const powershellFailure = runExtractionCommand(\"powershell.exe\", [\n \"-NoLogo\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Bypass\",\n \"-Command\",\n script,\n archivePath,\n extractDir,\n ]);\n if (!powershellFailure) return;\n failures.push(powershellFailure);\n } else {\n const unzipFailure = runExtractionCommand(\"unzip\", [\n \"-q\",\n archivePath,\n \"-d\",\n extractDir,\n ]);\n if (!unzipFailure) return;\n failures.push(unzipFailure);\n\n const tarFailure = runExtractionCommand(\"tar\", [\n \"xf\",\n archivePath,\n \"-C\",\n extractDir,\n ]);\n if (!tarFailure) return;\n failures.push(tarFailure);\n }\n\n throw new Error(`Failed to extract ${assetName}: ${failures.join(\"; \")}`);\n}\n\n// Download and install a tool\nasync function downloadTool(tool: \"fd\" | \"rg\"): Promise<string> {\n const config = TOOLS[tool];\n if (!config) throw new Error(`Unknown tool: ${tool}`);\n\n const plat = platform();\n const architecture = arch();\n\n // Get latest version\n const version = await getLatestVersion(config.repo);\n\n // Get asset name for this platform\n const assetName = config.getAssetName(version, plat, architecture);\n if (!assetName) {\n throw new Error(`Unsupported platform: ${plat}/${architecture}`);\n }\n\n // Create tools directory\n mkdirSync(TOOLS_DIR, { recursive: true });\n\n const downloadUrl = `https://github.com/${config.repo}/releases/download/${config.tagPrefix}${version}/${assetName}`;\n const archivePath = join(TOOLS_DIR, assetName);\n const binaryExt = plat === \"win32\" ? \".exe\" : \"\";\n const binaryPath = join(TOOLS_DIR, config.binaryName + binaryExt);\n\n // Download\n await downloadFile(downloadUrl, archivePath);\n\n // Extract into a unique temp directory. fd and rg downloads can run concurrently\n // during startup, so sharing a fixed directory causes races.\n const extractDir = join(\n TOOLS_DIR,\n `extract_tmp_${config.binaryName}_${process.pid}_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`,\n );\n mkdirSync(extractDir, { recursive: true });\n\n try {\n if (assetName.endsWith(\".tar.gz\")) {\n extractTarGzArchive(archivePath, extractDir, assetName);\n } else if (assetName.endsWith(\".zip\")) {\n extractZipArchive(archivePath, extractDir, assetName);\n } else {\n throw new Error(`Unsupported archive format: ${assetName}`);\n }\n\n // Find the binary in extracted files. Some archives contain files directly\n // at root, others nest under a versioned subdirectory.\n const binaryFileName = config.binaryName + binaryExt;\n const extractedDir = join(\n extractDir,\n assetName.replace(/\\.(tar\\.gz|zip)$/, \"\"),\n );\n const extractedBinaryCandidates = [\n join(extractedDir, binaryFileName),\n join(extractDir, binaryFileName),\n ];\n let extractedBinary = extractedBinaryCandidates.find((candidate) =>\n existsSync(candidate),\n );\n\n if (!extractedBinary) {\n extractedBinary =\n findBinaryRecursively(extractDir, binaryFileName) ?? undefined;\n }\n\n if (extractedBinary) {\n renameSync(extractedBinary, binaryPath);\n } else {\n throw new Error(\n `Binary not found in archive: expected ${binaryFileName} under ${extractDir}`,\n );\n }\n\n // Make executable (Unix only)\n if (plat !== \"win32\") {\n chmodSync(binaryPath, 0o755);\n }\n } finally {\n // Cleanup\n rmSync(archivePath, { force: true });\n rmSync(extractDir, { recursive: true, force: true });\n }\n\n return binaryPath;\n}\n\n// Termux package names for tools\nconst TERMUX_PACKAGES: Record<string, string> = {\n fd: \"fd\",\n rg: \"ripgrep\",\n};\n\n// Ensure a tool is available, downloading if necessary\n// Returns the path to the tool, or null if unavailable\nexport async function ensureTool(\n tool: \"fd\" | \"rg\",\n silent: boolean = false,\n): Promise<string | undefined> {\n const existingPath = getToolPath(tool);\n if (existingPath) {\n return existingPath;\n }\n\n const config = TOOLS[tool];\n if (!config) return undefined;\n\n if (isOfflineModeEnabled()) {\n if (!silent) {\n console.log(\n chalk.yellow(\n `${config.name} not found. Offline mode enabled, skipping download.`,\n ),\n );\n }\n return undefined;\n }\n\n // On Android/Termux, Linux binaries don't work due to Bionic libc incompatibility.\n // Users must install via pkg.\n if (platform() === \"android\") {\n const pkgName = TERMUX_PACKAGES[tool] ?? tool;\n if (!silent) {\n console.log(\n chalk.yellow(\n `${config.name} not found. Install with: pkg install ${pkgName}`,\n ),\n );\n }\n return undefined;\n }\n\n // Tool not found - download it\n if (!silent) {\n console.log(chalk.dim(`${config.name} not found. Downloading...`));\n }\n\n try {\n const path = await downloadTool(tool);\n if (!silent) {\n console.log(chalk.dim(`${config.name} installed to ${path}`));\n }\n return path;\n } catch (e) {\n if (!silent) {\n console.log(\n chalk.yellow(\n `Failed to download ${config.name}: ${e instanceof Error ? e.message : e}`,\n ),\n );\n }\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"tools-manager.js","sourceRoot":"","sources":["../../src/utils/tools-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from \"chalk\";\nimport { type SpawnSyncReturns, spawnSync } from \"child_process\";\nimport { chmodSync, existsSync, mkdirSync, readdirSync, renameSync, rmSync } from \"fs\";\nimport { writeFile } from \"fs/promises\";\nimport { arch, platform } from \"os\";\nimport { join } from \"path\";\nimport { APP_NAME, ENV_OFFLINE, getBinDir, getEnvValue } from \"../config.ts\";\n\nconst TOOLS_DIR = getBinDir();\nconst NETWORK_TIMEOUT_MS = 10_000;\nconst DOWNLOAD_TIMEOUT_MS = 120_000;\n\nfunction isOfflineModeEnabled(): boolean {\n\tconst value = getEnvValue(ENV_OFFLINE);\n\tif (!value) return false;\n\treturn value === \"1\" || value.toLowerCase() === \"true\" || value.toLowerCase() === \"yes\";\n}\n\ninterface ToolConfig {\n\tname: string;\n\trepo: string; // GitHub repo (e.g., \"sharkdp/fd\")\n\tbinaryName: string; // Name of the binary inside the archive\n\tsystemBinaryNames?: string[]; // Alternative system command names to try before downloading\n\ttagPrefix: string; // Prefix for tags (e.g., \"v\" for v1.0.0, \"\" for 1.0.0)\n\tgetAssetName: (version: string, plat: string, architecture: string) => string | null;\n}\n\nconst TOOLS: Record<string, ToolConfig> = {\n\tfd: {\n\t\tname: \"fd\",\n\t\trepo: \"sharkdp/fd\",\n\t\tbinaryName: \"fd\",\n\t\tsystemBinaryNames: [\"fd\", \"fdfind\"],\n\t\ttagPrefix: \"v\",\n\t\tgetAssetName: (version, plat, architecture) => {\n\t\t\tif (plat === \"darwin\") {\n\t\t\t\tconst archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n\t\t\t\treturn `fd-v${version}-${archStr}-apple-darwin.tar.gz`;\n\t\t\t} else if (plat === \"linux\") {\n\t\t\t\tconst archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n\t\t\t\treturn `fd-v${version}-${archStr}-unknown-linux-gnu.tar.gz`;\n\t\t\t} else if (plat === \"win32\") {\n\t\t\t\tconst archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n\t\t\t\treturn `fd-v${version}-${archStr}-pc-windows-msvc.zip`;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t},\n\trg: {\n\t\tname: \"ripgrep\",\n\t\trepo: \"BurntSushi/ripgrep\",\n\t\tbinaryName: \"rg\",\n\t\ttagPrefix: \"\",\n\t\tgetAssetName: (version, plat, architecture) => {\n\t\t\tif (plat === \"darwin\") {\n\t\t\t\tconst archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n\t\t\t\treturn `ripgrep-${version}-${archStr}-apple-darwin.tar.gz`;\n\t\t\t} else if (plat === \"linux\") {\n\t\t\t\tif (architecture === \"arm64\") {\n\t\t\t\t\treturn `ripgrep-${version}-aarch64-unknown-linux-gnu.tar.gz`;\n\t\t\t\t}\n\t\t\t\treturn `ripgrep-${version}-x86_64-unknown-linux-musl.tar.gz`;\n\t\t\t} else if (plat === \"win32\") {\n\t\t\t\tconst archStr = architecture === \"arm64\" ? \"aarch64\" : \"x86_64\";\n\t\t\t\treturn `ripgrep-${version}-${archStr}-pc-windows-msvc.zip`;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t},\n};\n\n// Check if a command exists in PATH by trying to run it\nfunction commandExists(cmd: string): boolean {\n\ttry {\n\t\tconst result = spawnSync(cmd, [\"--version\"], { stdio: \"pipe\" });\n\t\t// Check for ENOENT error (command not found)\n\t\treturn result.error === undefined || result.error === null;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n// Get the path to a tool (system-wide or in our tools dir)\nexport function getToolPath(tool: \"fd\" | \"rg\"): string | null {\n\tconst config = TOOLS[tool];\n\tif (!config) return null;\n\n\t// Check our tools directory first\n\tconst localPath = join(TOOLS_DIR, config.binaryName + (platform() === \"win32\" ? \".exe\" : \"\"));\n\tif (existsSync(localPath)) {\n\t\treturn localPath;\n\t}\n\n\t// Check system PATH - if found, just return the command name (it's in PATH)\n\tconst systemBinaryNames = config.systemBinaryNames ?? [config.binaryName];\n\tfor (const systemBinaryName of systemBinaryNames) {\n\t\tif (commandExists(systemBinaryName)) {\n\t\t\treturn systemBinaryName;\n\t\t}\n\t}\n\n\treturn null;\n}\n\n// Fetch latest release version from GitHub\nasync function getLatestVersion(repo: string): Promise<string> {\n\tconst response = await fetch(`https://api.github.com/repos/${repo}/releases/latest`, {\n\t\theaders: { \"User-Agent\": APP_NAME },\n\t\tsignal: AbortSignal.timeout(NETWORK_TIMEOUT_MS),\n\t});\n\n\tif (!response.ok) {\n\t\tthrow new Error(`GitHub API error: ${response.status}`);\n\t}\n\n\tconst data = (await response.json()) as { tag_name: string };\n\treturn data.tag_name.replace(/^v/, \"\");\n}\n\n// Download a file from URL\nasync function downloadFile(url: string, dest: string): Promise<void> {\n\tconst response = await fetch(url, {\n\t\tsignal: AbortSignal.timeout(DOWNLOAD_TIMEOUT_MS),\n\t});\n\n\tif (!response.ok) {\n\t\tthrow new Error(`Failed to download: ${response.status}`);\n\t}\n\n\tif (!response.body) {\n\t\tthrow new Error(\"No response body\");\n\t}\n\n\tawait writeFile(dest, Buffer.from(await response.arrayBuffer()));\n}\n\nfunction findBinaryRecursively(rootDir: string, binaryFileName: string): string | null {\n\tconst stack: string[] = [rootDir];\n\n\twhile (stack.length > 0) {\n\t\tconst currentDir = stack.pop();\n\t\tif (!currentDir) continue;\n\n\t\tconst entries = readdirSync(currentDir, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(currentDir, entry.name);\n\t\t\tif (entry.isFile() && entry.name === binaryFileName) {\n\t\t\t\treturn fullPath;\n\t\t\t}\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tstack.push(fullPath);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction formatSpawnFailure(result: SpawnSyncReturns<Buffer>): string {\n\tif (result.error?.message) {\n\t\treturn result.error.message;\n\t}\n\tconst stderr = result.stderr?.toString().trim();\n\tif (stderr) {\n\t\treturn stderr;\n\t}\n\tconst stdout = result.stdout?.toString().trim();\n\tif (stdout) {\n\t\treturn stdout;\n\t}\n\treturn `exit status ${result.status ?? \"unknown\"}`;\n}\n\nfunction runExtractionCommand(command: string, args: string[]): string | null {\n\tconst result = spawnSync(command, args, { stdio: \"pipe\" });\n\tif (!result.error && result.status === 0) {\n\t\treturn null;\n\t}\n\treturn `${command}: ${formatSpawnFailure(result)}`;\n}\n\nfunction extractTarGzArchive(archivePath: string, extractDir: string, assetName: string): void {\n\tconst failure = runExtractionCommand(\"tar\", [\"xzf\", archivePath, \"-C\", extractDir]);\n\tif (failure) {\n\t\tthrow new Error(`Failed to extract ${assetName}: ${failure}`);\n\t}\n}\n\nfunction getWindowsTarCommand(): string {\n\tconst systemRoot = process.env.SystemRoot ?? process.env.WINDIR;\n\tif (systemRoot) {\n\t\tconst systemTar = join(systemRoot, \"System32\", \"tar.exe\");\n\t\tif (existsSync(systemTar)) {\n\t\t\treturn systemTar;\n\t\t}\n\t}\n\treturn \"tar.exe\";\n}\n\nfunction extractZipArchive(archivePath: string, extractDir: string, assetName: string): void {\n\tconst failures: string[] = [];\n\n\tif (platform() === \"win32\") {\n\t\t// Windows ships bsdtar as tar.exe, which supports zip files. Prefer the\n\t\t// System32 binary over Git Bash's GNU tar, which does not handle zip archives.\n\t\tconst tarFailure = runExtractionCommand(getWindowsTarCommand(), [\"xf\", archivePath, \"-C\", extractDir]);\n\t\tif (!tarFailure) return;\n\t\tfailures.push(tarFailure);\n\n\t\tconst script =\n\t\t\t\"& { param($archive, $destination) $ErrorActionPreference = 'Stop'; Expand-Archive -LiteralPath $archive -DestinationPath $destination -Force }\";\n\t\tconst powershellFailure = runExtractionCommand(\"powershell.exe\", [\n\t\t\t\"-NoLogo\",\n\t\t\t\"-NoProfile\",\n\t\t\t\"-NonInteractive\",\n\t\t\t\"-ExecutionPolicy\",\n\t\t\t\"Bypass\",\n\t\t\t\"-Command\",\n\t\t\tscript,\n\t\t\tarchivePath,\n\t\t\textractDir,\n\t\t]);\n\t\tif (!powershellFailure) return;\n\t\tfailures.push(powershellFailure);\n\t} else {\n\t\tconst unzipFailure = runExtractionCommand(\"unzip\", [\"-q\", archivePath, \"-d\", extractDir]);\n\t\tif (!unzipFailure) return;\n\t\tfailures.push(unzipFailure);\n\n\t\tconst tarFailure = runExtractionCommand(\"tar\", [\"xf\", archivePath, \"-C\", extractDir]);\n\t\tif (!tarFailure) return;\n\t\tfailures.push(tarFailure);\n\t}\n\n\tthrow new Error(`Failed to extract ${assetName}: ${failures.join(\"; \")}`);\n}\n\n// Download and install a tool\nasync function downloadTool(tool: \"fd\" | \"rg\"): Promise<string> {\n\tconst config = TOOLS[tool];\n\tif (!config) throw new Error(`Unknown tool: ${tool}`);\n\n\tconst plat = platform();\n\tconst architecture = arch();\n\n\t// Get latest version\n\tconst version = await getLatestVersion(config.repo);\n\n\t// Get asset name for this platform\n\tconst assetName = config.getAssetName(version, plat, architecture);\n\tif (!assetName) {\n\t\tthrow new Error(`Unsupported platform: ${plat}/${architecture}`);\n\t}\n\n\t// Create tools directory\n\tmkdirSync(TOOLS_DIR, { recursive: true });\n\n\tconst downloadUrl = `https://github.com/${config.repo}/releases/download/${config.tagPrefix}${version}/${assetName}`;\n\tconst archivePath = join(TOOLS_DIR, assetName);\n\tconst binaryExt = plat === \"win32\" ? \".exe\" : \"\";\n\tconst binaryPath = join(TOOLS_DIR, config.binaryName + binaryExt);\n\n\t// Download\n\tawait downloadFile(downloadUrl, archivePath);\n\n\t// Extract into a unique temp directory. fd and rg downloads can run concurrently\n\t// during startup, so sharing a fixed directory causes races.\n\tconst extractDir = join(\n\t\tTOOLS_DIR,\n\t\t`extract_tmp_${config.binaryName}_${process.pid}_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`,\n\t);\n\tmkdirSync(extractDir, { recursive: true });\n\n\ttry {\n\t\tif (assetName.endsWith(\".tar.gz\")) {\n\t\t\textractTarGzArchive(archivePath, extractDir, assetName);\n\t\t} else if (assetName.endsWith(\".zip\")) {\n\t\t\textractZipArchive(archivePath, extractDir, assetName);\n\t\t} else {\n\t\t\tthrow new Error(`Unsupported archive format: ${assetName}`);\n\t\t}\n\n\t\t// Find the binary in extracted files. Some archives contain files directly\n\t\t// at root, others nest under a versioned subdirectory.\n\t\tconst binaryFileName = config.binaryName + binaryExt;\n\t\tconst extractedDir = join(extractDir, assetName.replace(/\\.(tar\\.gz|zip)$/, \"\"));\n\t\tconst extractedBinaryCandidates = [join(extractedDir, binaryFileName), join(extractDir, binaryFileName)];\n\t\tlet extractedBinary = extractedBinaryCandidates.find((candidate) => existsSync(candidate));\n\n\t\tif (!extractedBinary) {\n\t\t\textractedBinary = findBinaryRecursively(extractDir, binaryFileName) ?? undefined;\n\t\t}\n\n\t\tif (extractedBinary) {\n\t\t\trenameSync(extractedBinary, binaryPath);\n\t\t} else {\n\t\t\tthrow new Error(`Binary not found in archive: expected ${binaryFileName} under ${extractDir}`);\n\t\t}\n\n\t\t// Make executable (Unix only)\n\t\tif (plat !== \"win32\") {\n\t\t\tchmodSync(binaryPath, 0o755);\n\t\t}\n\t} finally {\n\t\t// Cleanup\n\t\trmSync(archivePath, { force: true });\n\t\trmSync(extractDir, { recursive: true, force: true });\n\t}\n\n\treturn binaryPath;\n}\n\n// Termux package names for tools\nconst TERMUX_PACKAGES: Record<string, string> = {\n\tfd: \"fd\",\n\trg: \"ripgrep\",\n};\n\n// Ensure a tool is available, downloading if necessary\n// Returns the path to the tool, or null if unavailable\nexport async function ensureTool(tool: \"fd\" | \"rg\", silent: boolean = false): Promise<string | undefined> {\n\tconst existingPath = getToolPath(tool);\n\tif (existingPath) {\n\t\treturn existingPath;\n\t}\n\n\tconst config = TOOLS[tool];\n\tif (!config) return undefined;\n\n\tif (isOfflineModeEnabled()) {\n\t\tif (!silent) {\n\t\t\tconsole.log(chalk.yellow(`${config.name} not found. Offline mode enabled, skipping download.`));\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t// On Android/Termux, Linux binaries don't work due to Bionic libc incompatibility.\n\t// Users must install via pkg.\n\tif (platform() === \"android\") {\n\t\tconst pkgName = TERMUX_PACKAGES[tool] ?? tool;\n\t\tif (!silent) {\n\t\t\tconsole.log(chalk.yellow(`${config.name} not found. Install with: pkg install ${pkgName}`));\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t// Tool not found - download it\n\tif (!silent) {\n\t\tconsole.log(chalk.dim(`${config.name} not found. Downloading...`));\n\t}\n\n\ttry {\n\t\tconst path = await downloadTool(tool);\n\t\tif (!silent) {\n\t\t\tconsole.log(chalk.dim(`${config.name} installed to ${path}`));\n\t\t}\n\t\treturn path;\n\t} catch (e) {\n\t\tif (!silent) {\n\t\t\tconsole.log(chalk.yellow(`Failed to download ${config.name}: ${e instanceof Error ? e.message : e}`));\n\t\t}\n\t\treturn undefined;\n\t}\n}\n"]}
@@ -2,6 +2,7 @@ export declare function isDevVersion(version: string): boolean;
2
2
  export interface LatestPiRelease {
3
3
  version: string;
4
4
  packageName?: string;
5
+ note?: string;
5
6
  }
6
7
  export declare function comparePackageVersions(leftVersion: string, rightVersion: string): number | undefined;
7
8
  export declare function isNewerPackageVersion(candidateVersion: string, currentVersion: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"AAeA,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOpG;AAED,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAM/F;AAED,wBAAsB,kBAAkB,CACvC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAiBtC;AAED,wBAAsB,kBAAkB,CACvC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE7B;AAED,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgB9F"}
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"AAeA,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOpG;AAED,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAM/F;AAED,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAgBnH;AAED,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE1G;AAED,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB9F"}