@bastani/atomic 0.9.5-alpha.9 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +2 -2
  3. package/dist/builtin/cursor/CHANGELOG.md +12 -0
  4. package/dist/builtin/cursor/package.json +3 -3
  5. package/dist/builtin/cursor/src/model-mapper.ts +6 -3
  6. package/dist/builtin/intercom/CHANGELOG.md +37 -0
  7. package/dist/builtin/intercom/README.md +4 -2
  8. package/dist/builtin/intercom/broker/broker.ts +6 -114
  9. package/dist/builtin/intercom/broker/client.ts +29 -54
  10. package/dist/builtin/intercom/broker/delivered-message-cache.ts +44 -0
  11. package/dist/builtin/intercom/broker/pending-send-registry.ts +142 -0
  12. package/dist/builtin/intercom/broker/send-handler.ts +106 -0
  13. package/dist/builtin/intercom/broker/send-signature.ts +37 -0
  14. package/dist/builtin/intercom/foreground-detach-handoff.ts +136 -0
  15. package/dist/builtin/intercom/index-heavy.ts +49 -53
  16. package/dist/builtin/intercom/index.ts +278 -262
  17. package/dist/builtin/intercom/lazy-heavy-proxy.ts +114 -0
  18. package/dist/builtin/intercom/lazy-subagent-ack.ts +20 -0
  19. package/dist/builtin/intercom/lazy-tool-execution.ts +39 -0
  20. package/dist/builtin/intercom/lifecycle-lease.ts +51 -0
  21. package/dist/builtin/intercom/lifecycle.ts +37 -20
  22. package/dist/builtin/intercom/package.json +3 -6
  23. package/dist/builtin/intercom/reply-routing.ts +17 -0
  24. package/dist/builtin/intercom/subagent-relay.ts +58 -12
  25. package/dist/builtin/intercom/types.ts +3 -3
  26. package/dist/builtin/mcp/CHANGELOG.md +27 -0
  27. package/dist/builtin/mcp/OAUTH.md +1 -0
  28. package/dist/builtin/mcp/README.md +4 -0
  29. package/dist/builtin/mcp/apps-cancellation.ts +32 -0
  30. package/dist/builtin/mcp/call-tool-result.ts +9 -0
  31. package/dist/builtin/mcp/caller-wait.ts +50 -0
  32. package/dist/builtin/mcp/command-registration.ts +82 -0
  33. package/dist/builtin/mcp/direct-tool-executor.ts +279 -0
  34. package/dist/builtin/mcp/direct-tools.ts +6 -239
  35. package/dist/builtin/mcp/host-html-template.ts +4 -2
  36. package/dist/builtin/mcp/index.ts +258 -250
  37. package/dist/builtin/mcp/init.ts +96 -87
  38. package/dist/builtin/mcp/mcp-auth-flow.ts +247 -237
  39. package/dist/builtin/mcp/mcp-callback-server.ts +89 -68
  40. package/dist/builtin/mcp/mcp-oauth-provider.ts +23 -1
  41. package/dist/builtin/mcp/metadata-hydration.ts +21 -6
  42. package/dist/builtin/mcp/package.json +3 -3
  43. package/dist/builtin/mcp/proxy-auth.ts +4 -4
  44. package/dist/builtin/mcp/proxy-call.ts +111 -40
  45. package/dist/builtin/mcp/proxy-connect.ts +35 -15
  46. package/dist/builtin/mcp/proxy-info-modes.ts +49 -19
  47. package/dist/builtin/mcp/proxy-modes.ts +3 -3
  48. package/dist/builtin/mcp/session-cleanup-barrier.ts +43 -0
  49. package/dist/builtin/mcp/state-lease.ts +12 -0
  50. package/dist/builtin/mcp/ui-server.ts +8 -8
  51. package/dist/builtin/mcp/ui-session.ts +9 -18
  52. package/dist/builtin/subagents/CHANGELOG.md +66 -0
  53. package/dist/builtin/subagents/README.md +30 -29
  54. package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
  55. package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
  56. package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
  57. package/dist/builtin/subagents/agents/codebase-online-researcher.md +2 -2
  58. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
  59. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
  60. package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
  61. package/dist/builtin/subagents/agents/debugger.md +2 -2
  62. package/dist/builtin/subagents/agents/worker.md +2 -2
  63. package/dist/builtin/subagents/package.json +5 -5
  64. package/dist/builtin/subagents/prompts/review-loop.md +1 -1
  65. package/dist/builtin/subagents/skills/subagent/SKILL.md +37 -36
  66. package/dist/builtin/subagents/src/extension/api-lifecycle.ts +64 -0
  67. package/dist/builtin/subagents/src/extension/fanout-child.ts +44 -51
  68. package/dist/builtin/subagents/src/extension/index.ts +287 -307
  69. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +7 -10
  70. package/dist/builtin/subagents/src/extension/schemas.ts +22 -5
  71. package/dist/builtin/subagents/src/extension/tool-description.ts +29 -0
  72. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +13 -2
  73. package/dist/builtin/subagents/src/intercom/result-intercom.ts +4 -4
  74. package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +106 -0
  75. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +3 -2
  76. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +13 -2
  77. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +3 -0
  78. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +1 -1
  79. package/dist/builtin/subagents/src/runs/background/completion-claims.ts +189 -0
  80. package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +44 -7
  81. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +34 -0
  82. package/dist/builtin/subagents/src/runs/background/notify.ts +72 -22
  83. package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +232 -0
  84. package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +151 -0
  85. package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +72 -0
  86. package/dist/builtin/subagents/src/runs/background/result-retry-scheduler.ts +48 -0
  87. package/dist/builtin/subagents/src/runs/background/result-status.ts +81 -0
  88. package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +59 -0
  89. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +172 -238
  90. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +3 -2
  91. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +73 -14
  92. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +17 -13
  93. package/dist/builtin/subagents/src/runs/background/top-level-async.ts +1 -2
  94. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +1 -0
  95. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +1 -0
  96. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +1 -0
  97. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +7 -9
  98. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +3 -13
  99. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +2 -15
  100. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +2 -2
  101. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +53 -44
  102. package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +48 -0
  103. package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +17 -0
  104. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +39 -26
  105. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +3 -1
  106. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +3 -51
  107. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +6 -11
  108. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +11 -2
  109. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +2 -0
  110. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +5 -112
  111. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +2 -0
  112. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +68 -118
  113. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +79 -7
  114. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +2 -2
  115. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +3 -0
  116. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +2 -2
  117. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +27 -11
  118. package/dist/builtin/subagents/src/shared/artifacts.ts +22 -11
  119. package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +294 -0
  120. package/dist/builtin/subagents/src/shared/exclusive-file-publication.ts +44 -0
  121. package/dist/builtin/subagents/src/shared/jsonl-writer.ts +1 -0
  122. package/dist/builtin/subagents/src/shared/model-info.ts +2 -2
  123. package/dist/builtin/subagents/src/shared/settings.ts +20 -10
  124. package/dist/builtin/subagents/src/shared/types-async.ts +3 -1
  125. package/dist/builtin/subagents/src/shared/types-config.ts +2 -0
  126. package/dist/builtin/subagents/src/shared/types-runtime.ts +3 -2
  127. package/dist/builtin/subagents/src/slash/slash-commands.ts +9 -12
  128. package/dist/builtin/subagents/src/slash/slash-live-state.ts +63 -32
  129. package/dist/builtin/subagents/src/tui/render-result.ts +7 -0
  130. package/dist/builtin/subagents/src/tui/render-stable-output.ts +1 -0
  131. package/dist/builtin/subagents/src/tui/render-widget.ts +128 -89
  132. package/dist/builtin/web-access/CHANGELOG.md +28 -0
  133. package/dist/builtin/web-access/README.md +4 -0
  134. package/dist/builtin/web-access/content-tools.ts +8 -3
  135. package/dist/builtin/web-access/index-heavy.ts +1 -1
  136. package/dist/builtin/web-access/index.ts +190 -46
  137. package/dist/builtin/web-access/lifecycle-lease.ts +38 -0
  138. package/dist/builtin/web-access/package.json +2 -2
  139. package/dist/builtin/web-access/result-renderers.ts +1 -1
  140. package/dist/builtin/web-access/summary-review.ts +1 -1
  141. package/dist/builtin/web-access/web-search-activity.ts +1 -1
  142. package/dist/builtin/web-access/web-search-return.ts +7 -0
  143. package/dist/builtin/web-access/web-search-summary.ts +1 -1
  144. package/dist/builtin/web-access/web-search-tool.ts +4 -2
  145. package/dist/builtin/workflows/CHANGELOG.md +68 -0
  146. package/dist/builtin/workflows/README.md +4 -4
  147. package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +27 -4
  148. package/dist/builtin/workflows/builtin/goal-runner.ts +47 -26
  149. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +10 -0
  150. package/dist/builtin/workflows/builtin/ralph-core.ts +9 -9
  151. package/dist/builtin/workflows/builtin/ralph-models.ts +71 -36
  152. package/dist/builtin/workflows/builtin/ralph-runner.ts +20 -31
  153. package/dist/builtin/workflows/package.json +2 -2
  154. package/dist/builtin/workflows/src/durable/stage-primitive.ts +2 -1
  155. package/dist/builtin/workflows/src/engine/primitives/task.ts +2 -1
  156. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +17 -22
  157. package/dist/builtin/workflows/src/extension/workflow-schema.ts +15 -2
  158. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +1 -2
  159. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +1 -1
  160. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -2
  161. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +2 -2
  162. package/dist/builtin/workflows/src/shared/resume-continuation.ts +2 -0
  163. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +1 -23
  164. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +54 -9
  165. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +5 -2
  166. package/dist/cli/args.d.ts.map +1 -1
  167. package/dist/cli/args.js +2 -2
  168. package/dist/cli/args.js.map +1 -1
  169. package/dist/core/agent-session-events.d.ts.map +1 -1
  170. package/dist/core/agent-session-events.js +2 -1
  171. package/dist/core/agent-session-events.js.map +1 -1
  172. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  173. package/dist/core/agent-session-message-queue.js +1 -1
  174. package/dist/core/agent-session-message-queue.js.map +1 -1
  175. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  176. package/dist/core/agent-session-prompt.js +1 -1
  177. package/dist/core/agent-session-prompt.js.map +1 -1
  178. package/dist/core/agent-session-retry.d.ts.map +1 -1
  179. package/dist/core/agent-session-retry.js +1 -1
  180. package/dist/core/agent-session-retry.js.map +1 -1
  181. package/dist/core/agent-session-services.d.ts.map +1 -1
  182. package/dist/core/agent-session-services.js +3 -2
  183. package/dist/core/agent-session-services.js.map +1 -1
  184. package/dist/core/agent-session-types.d.ts.map +1 -1
  185. package/dist/core/agent-session-types.js +1 -1
  186. package/dist/core/agent-session-types.js.map +1 -1
  187. package/dist/core/anthropic-thinking-guard.d.ts +5 -5
  188. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  189. package/dist/core/anthropic-thinking-guard.js +42 -32
  190. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  191. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  192. package/dist/core/atomic-guide-command.js +15 -15
  193. package/dist/core/atomic-guide-command.js.map +1 -1
  194. package/dist/core/auth-storage.d.ts.map +1 -1
  195. package/dist/core/auth-storage.js +14 -9
  196. package/dist/core/auth-storage.js.map +1 -1
  197. package/dist/core/compaction/compaction.d.ts +2 -0
  198. package/dist/core/compaction/compaction.d.ts.map +1 -1
  199. package/dist/core/compaction/compaction.js +79 -46
  200. package/dist/core/compaction/compaction.js.map +1 -1
  201. package/dist/core/compaction/context-assistant-turns.d.ts +42 -0
  202. package/dist/core/compaction/context-assistant-turns.d.ts.map +1 -0
  203. package/dist/core/compaction/context-assistant-turns.js +87 -0
  204. package/dist/core/compaction/context-assistant-turns.js.map +1 -0
  205. package/dist/core/compaction/context-compaction-critical.d.ts +1 -1
  206. package/dist/core/compaction/context-compaction-critical.d.ts.map +1 -1
  207. package/dist/core/compaction/context-compaction-critical.js +2 -2
  208. package/dist/core/compaction/context-compaction-critical.js.map +1 -1
  209. package/dist/core/compaction/context-compaction-eviction-alternates.d.ts +18 -0
  210. package/dist/core/compaction/context-compaction-eviction-alternates.d.ts.map +1 -0
  211. package/dist/core/compaction/context-compaction-eviction-alternates.js +186 -0
  212. package/dist/core/compaction/context-compaction-eviction-alternates.js.map +1 -0
  213. package/dist/core/compaction/context-compaction-eviction.d.ts +10 -2
  214. package/dist/core/compaction/context-compaction-eviction.d.ts.map +1 -1
  215. package/dist/core/compaction/context-compaction-eviction.js +196 -146
  216. package/dist/core/compaction/context-compaction-eviction.js.map +1 -1
  217. package/dist/core/compaction/context-compaction-prompt.d.ts.map +1 -1
  218. package/dist/core/compaction/context-compaction-prompt.js +1 -1
  219. package/dist/core/compaction/context-compaction-prompt.js.map +1 -1
  220. package/dist/core/compaction/context-compaction-types.d.ts +2 -0
  221. package/dist/core/compaction/context-compaction-types.d.ts.map +1 -1
  222. package/dist/core/compaction/context-compaction-types.js.map +1 -1
  223. package/dist/core/compaction/context-deletion-application.d.ts +5 -4
  224. package/dist/core/compaction/context-deletion-application.d.ts.map +1 -1
  225. package/dist/core/compaction/context-deletion-application.js +17 -15
  226. package/dist/core/compaction/context-deletion-application.js.map +1 -1
  227. package/dist/core/compaction/context-deletion-store.d.ts.map +1 -1
  228. package/dist/core/compaction/context-deletion-store.js +1 -1
  229. package/dist/core/compaction/context-deletion-store.js.map +1 -1
  230. package/dist/core/compaction/context-deletion-targets.d.ts +2 -1
  231. package/dist/core/compaction/context-deletion-targets.d.ts.map +1 -1
  232. package/dist/core/compaction/context-deletion-targets.js +36 -31
  233. package/dist/core/compaction/context-deletion-targets.js.map +1 -1
  234. package/dist/core/compaction/context-deletion-tool-helpers.d.ts.map +1 -1
  235. package/dist/core/compaction/context-deletion-tool-helpers.js +116 -43
  236. package/dist/core/compaction/context-deletion-tool-helpers.js.map +1 -1
  237. package/dist/core/compaction/context-transcript-analysis.d.ts +1 -2
  238. package/dist/core/compaction/context-transcript-analysis.d.ts.map +1 -1
  239. package/dist/core/compaction/context-transcript-analysis.js +33 -37
  240. package/dist/core/compaction/context-transcript-analysis.js.map +1 -1
  241. package/dist/core/copilot-model-synthesis.d.ts.map +1 -1
  242. package/dist/core/copilot-model-synthesis.js +3 -1
  243. package/dist/core/copilot-model-synthesis.js.map +1 -1
  244. package/dist/core/extensions/provider-types.d.ts +2 -7
  245. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  246. package/dist/core/extensions/provider-types.js.map +1 -1
  247. package/dist/core/messages.d.ts +9 -0
  248. package/dist/core/messages.d.ts.map +1 -1
  249. package/dist/core/messages.js +100 -18
  250. package/dist/core/messages.js.map +1 -1
  251. package/dist/core/model-registry-builtins.d.ts.map +1 -1
  252. package/dist/core/model-registry-builtins.js +5 -0
  253. package/dist/core/model-registry-builtins.js.map +1 -1
  254. package/dist/core/model-registry-custom-loader.d.ts.map +1 -1
  255. package/dist/core/model-registry-custom-loader.js +49 -8
  256. package/dist/core/model-registry-custom-loader.js.map +1 -1
  257. package/dist/core/model-registry-dynamic.d.ts.map +1 -1
  258. package/dist/core/model-registry-dynamic.js +11 -5
  259. package/dist/core/model-registry-dynamic.js.map +1 -1
  260. package/dist/core/model-registry-loader.d.ts.map +1 -1
  261. package/dist/core/model-registry-loader.js +8 -0
  262. package/dist/core/model-registry-loader.js.map +1 -1
  263. package/dist/core/model-registry-schemas.d.ts +93 -8
  264. package/dist/core/model-registry-schemas.d.ts.map +1 -1
  265. package/dist/core/model-registry-schemas.js +24 -12
  266. package/dist/core/model-registry-schemas.js.map +1 -1
  267. package/dist/core/model-registry-types.d.ts +7 -6
  268. package/dist/core/model-registry-types.d.ts.map +1 -1
  269. package/dist/core/model-registry-types.js.map +1 -1
  270. package/dist/core/model-registry.d.ts +5 -0
  271. package/dist/core/model-registry.d.ts.map +1 -1
  272. package/dist/core/model-registry.js +23 -0
  273. package/dist/core/model-registry.js.map +1 -1
  274. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  275. package/dist/core/model-resolver-cli.js +33 -5
  276. package/dist/core/model-resolver-cli.js.map +1 -1
  277. package/dist/core/model-resolver-initial.d.ts +6 -1
  278. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  279. package/dist/core/model-resolver-initial.js +12 -7
  280. package/dist/core/model-resolver-initial.js.map +1 -1
  281. package/dist/core/model-resolver.d.ts +1 -1
  282. package/dist/core/model-resolver.d.ts.map +1 -1
  283. package/dist/core/model-resolver.js +1 -1
  284. package/dist/core/model-resolver.js.map +1 -1
  285. package/dist/core/resource-loader-context-files.d.ts +1 -0
  286. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  287. package/dist/core/resource-loader-context-files.js +13 -10
  288. package/dist/core/resource-loader-context-files.js.map +1 -1
  289. package/dist/core/sdk.d.ts.map +1 -1
  290. package/dist/core/sdk.js +2 -2
  291. package/dist/core/sdk.js.map +1 -1
  292. package/dist/core/session-entry-normalization.d.ts +7 -0
  293. package/dist/core/session-entry-normalization.d.ts.map +1 -0
  294. package/dist/core/session-entry-normalization.js +14 -0
  295. package/dist/core/session-entry-normalization.js.map +1 -0
  296. package/dist/core/session-manager-core.d.ts.map +1 -1
  297. package/dist/core/session-manager-core.js +1 -0
  298. package/dist/core/session-manager-core.js.map +1 -1
  299. package/dist/core/session-manager-history.d.ts +2 -2
  300. package/dist/core/session-manager-history.d.ts.map +1 -1
  301. package/dist/core/session-manager-history.js +127 -108
  302. package/dist/core/session-manager-history.js.map +1 -1
  303. package/dist/core/settings-manager-basic-accessors.d.ts +2 -2
  304. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  305. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  306. package/dist/core/settings-types.d.ts +1 -1
  307. package/dist/core/settings-types.d.ts.map +1 -1
  308. package/dist/core/settings-types.js.map +1 -1
  309. package/dist/core/tools/bash.d.ts.map +1 -1
  310. package/dist/core/tools/bash.js +11 -8
  311. package/dist/core/tools/bash.js.map +1 -1
  312. package/dist/main-session.d.ts.map +1 -1
  313. package/dist/main-session.js +1 -0
  314. package/dist/main-session.js.map +1 -1
  315. package/dist/modes/interactive/components/settings-selector-options.d.ts.map +1 -1
  316. package/dist/modes/interactive/components/settings-selector-options.js +3 -1
  317. package/dist/modes/interactive/components/settings-selector-options.js.map +1 -1
  318. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  319. package/dist/modes/interactive/components/thinking-selector.js +2 -1
  320. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  321. package/dist/modes/interactive/interactive-agent-events.d.ts.map +1 -1
  322. package/dist/modes/interactive/interactive-agent-events.js +2 -1
  323. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  324. package/dist/modes/interactive/interactive-child-ordering.d.ts +7 -0
  325. package/dist/modes/interactive/interactive-child-ordering.d.ts.map +1 -0
  326. package/dist/modes/interactive/interactive-child-ordering.js +26 -0
  327. package/dist/modes/interactive/interactive-child-ordering.js.map +1 -0
  328. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  329. package/dist/modes/interactive/interactive-deferred-startup.js +2 -2
  330. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  331. package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -1
  332. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  333. package/dist/modes/interactive/interactive-mode-deps.js +1 -1
  334. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  335. package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -1
  336. package/dist/modes/interactive/interactive-model-routing.js +8 -3
  337. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  338. package/dist/modes/interactive/theme/theme-class.d.ts +1 -1
  339. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  340. package/dist/modes/interactive/theme/theme-class.js +2 -0
  341. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  342. package/dist/utils/clipboard-image.d.ts.map +1 -1
  343. package/dist/utils/clipboard-image.js +3 -0
  344. package/dist/utils/clipboard-image.js.map +1 -1
  345. package/docs/changelog.mdx +19 -0
  346. package/docs/compaction.md +55 -48
  347. package/docs/custom-provider.md +18 -5
  348. package/docs/extensions.md +7 -3
  349. package/docs/models.md +69 -10
  350. package/docs/providers.md +1 -1
  351. package/docs/quickstart.md +11 -7
  352. package/docs/rpc.md +2 -2
  353. package/docs/sdk.md +1 -1
  354. package/docs/settings.md +3 -3
  355. package/docs/subagents.md +36 -5
  356. package/docs/tools.md +1 -1
  357. package/docs/usage.md +4 -2
  358. package/docs/workflows.md +26 -43
  359. package/examples/extensions/preset.ts +2 -2
  360. package/examples/extensions/subagent/README.md +2 -2
  361. package/examples/extensions/subagent/index.ts +1 -2
  362. package/examples/extensions/subagent/schemas.ts +4 -1
  363. package/examples/sdk/12-full-control.ts +1 -1
  364. package/npm-shrinkwrap.json +48 -51
  365. package/package.json +7 -7
  366. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-behavior.ts +0 -75
  367. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-component.ts +0 -202
  368. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-edit.ts +0 -97
  369. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-editor.ts +0 -160
  370. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-frame.ts +0 -72
  371. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-modes.ts +0 -161
  372. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-selectors.ts +0 -203
  373. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-selectors.ts +0 -234
  374. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-state.ts +0 -103
  375. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-types.ts +0 -29
  376. package/dist/builtin/subagents/src/runs/foreground/chain-clarify.ts +0 -9
  377. package/dist/builtin/subagents/src/runs/foreground/chain-execution-clarify.ts +0 -117
@@ -11,8 +11,8 @@ import {
11
11
  getConfiguredOAuthCallbackPort,
12
12
  getOAuthCallbackPort,
13
13
  setOAuthCallbackPort,
14
- } from "./mcp-oauth-provider.ts"
15
- import { logger } from "./logger.ts"
14
+ } from "./mcp-oauth-provider.js"
15
+ import { logger } from "./logger.js"
16
16
 
17
17
  // HTML templates for callback responses
18
18
  const HTML_SUCCESS = `<!DOCTYPE html>
@@ -63,8 +63,9 @@ interface PendingAuth {
63
63
  timeout: ReturnType<typeof setTimeout>
64
64
  }
65
65
 
66
- /** Server singleton state */
66
+ /** Serialized callback-server ownership prevents startup/teardown publication races. */
67
67
  let server: Server | undefined
68
+ let serverTransition: Promise<void> = Promise.resolve()
68
69
  const pendingAuths = new Map<string, PendingAuth>()
69
70
 
70
71
  /** Timeout for callback completion (5 minutes) */
@@ -108,12 +109,9 @@ export function handleRequest(req: IncomingMessage, res: ServerResponse): void {
108
109
  // Send HTTP response first before rejecting promise
109
110
  res.writeHead(200, { "Content-Type": "text/html" })
110
111
  res.end(renderCallbackErrorHtml())
111
- // Reject promise after response is sent (defer to allow test to attach handler)
112
+ // Reject only after the response is sent.
112
113
  if (pendingAuths.has(state)) {
113
- const pending = pendingAuths.get(state)!
114
- clearTimeout(pending.timeout)
115
- pendingAuths.delete(state)
116
- setTimeout(() => pending.reject(new Error(errorMsg)), 0)
114
+ rejectPendingCallback(state, new Error(errorMsg))
117
115
  }
118
116
  return
119
117
  }
@@ -149,69 +147,87 @@ export function handleRequest(req: IncomingMessage, res: ServerResponse): void {
149
147
  * If strictPort is true, requires binding on the configured callback port.
150
148
  * If strictPort is false, scans forward for an available local port.
151
149
  */
152
- export async function ensureCallbackServer(options: EnsureCallbackServerOptions = {}): Promise<void> {
150
+ export function ensureCallbackServer(options: EnsureCallbackServerOptions = {}): Promise<void> {
151
+ return enqueueServerTransition(() => ensureCallbackServerNow(options))
152
+ }
153
+
154
+ function enqueueServerTransition<T>(operation: () => Promise<T>): Promise<T> {
155
+ const result = serverTransition.then(operation, operation)
156
+ serverTransition = result.then(() => undefined, () => undefined)
157
+ return result
158
+ }
159
+
160
+ async function closeServer(target: Server): Promise<void> {
161
+ await new Promise<void>((resolve) => {
162
+ target.close(() => resolve())
163
+ })
164
+ }
165
+
166
+ async function stopPublishedServer(): Promise<void> {
167
+ const target = server
168
+ if (!target) return
169
+ server = undefined
170
+ await closeServer(target)
171
+ }
172
+
173
+ async function listen(candidate: Server, port: number): Promise<void> {
174
+ await new Promise<void>((resolve, reject) => {
175
+ const onError = (error: Error): void => {
176
+ candidate.off("error", onError)
177
+ reject(error)
178
+ }
179
+ const onListening = (): void => {
180
+ candidate.off("error", onError)
181
+ resolve()
182
+ }
183
+ candidate.once("error", onError)
184
+ candidate.listen(port, "localhost", onListening)
185
+ })
186
+ }
187
+
188
+ async function ensureCallbackServerNow(options: EnsureCallbackServerOptions): Promise<void> {
153
189
  const configuredPort = getConfiguredOAuthCallbackPort()
154
190
  const strictPort = options.strictPort === true
155
191
 
156
192
  if (server) {
157
193
  if (!strictPort || getOAuthCallbackPort() === configuredPort) return
158
-
159
194
  if (pendingAuths.size > 0) {
160
195
  throw new Error(
161
- `OAuth callback server is running on port ${getOAuthCallbackPort()}, but strict callback port ${configuredPort} is required and cannot be switched while authorizations are pending`
196
+ `OAuth callback server is running on port ${getOAuthCallbackPort()}, but strict callback port ${configuredPort} is required and cannot be switched while authorizations are pending`,
162
197
  )
163
198
  }
164
-
165
- await stopCallbackServer()
199
+ await stopPublishedServer()
200
+ setOAuthCallbackPort(configuredPort)
166
201
  }
167
202
 
168
- const preferredPort = configuredPort
169
203
  const maxAttempts = strictPort ? 1 : MAX_PORT_SCAN_ATTEMPTS
170
204
  let lastError: Error | undefined
171
-
172
205
  for (let offset = 0; offset < maxAttempts; offset++) {
173
- const candidatePort = preferredPort + offset
206
+ const candidatePort = configuredPort + offset
174
207
  const candidateServer = createServer(handleRequest)
175
-
176
208
  try {
177
- await new Promise<void>((resolve, reject) => {
178
- candidateServer.once("error", (err) => {
179
- reject(err)
180
- })
181
-
182
- candidateServer.listen(candidatePort, "localhost", () => {
183
- resolve()
184
- })
185
- })
186
-
209
+ await listen(candidateServer, candidatePort)
187
210
  server = candidateServer
188
- server.unref()
211
+ candidateServer.unref()
189
212
  setOAuthCallbackPort(candidatePort)
190
213
  return
191
214
  } catch (error) {
192
215
  const nodeError = error as NodeJS.ErrnoException
193
- await new Promise<void>((resolve) => {
194
- candidateServer.close(() => resolve())
195
- })
196
-
197
- if (nodeError.code !== "EADDRINUSE") {
198
- throw error
199
- }
200
-
216
+ await closeServer(candidateServer)
217
+ if (nodeError.code !== "EADDRINUSE") throw error
201
218
  lastError = error instanceof Error ? error : new Error(String(error))
202
219
  }
203
220
  }
204
221
 
205
222
  if (strictPort) {
206
223
  throw new Error(
207
- `OAuth callback port ${preferredPort} is already in use. Pre-registered OAuth clients require an exact redirect URI; set MCP_OAUTH_CALLBACK_PORT to your registered port or free port ${preferredPort}`,
208
- { cause: lastError }
224
+ `OAuth callback port ${configuredPort} is already in use. Pre-registered OAuth clients require an exact redirect URI; set MCP_OAUTH_CALLBACK_PORT to your registered port or free port ${configuredPort}`,
225
+ { cause: lastError },
209
226
  )
210
227
  }
211
-
212
228
  throw new Error(
213
- `OAuth callback port ${preferredPort} is already in use and no free port was found in range ${preferredPort}-${preferredPort + MAX_PORT_SCAN_ATTEMPTS - 1}`,
214
- { cause: lastError }
229
+ `OAuth callback port ${configuredPort} is already in use and no free port was found in range ${configuredPort}-${configuredPort + MAX_PORT_SCAN_ATTEMPTS - 1}`,
230
+ { cause: lastError },
215
231
  )
216
232
  }
217
233
 
@@ -220,7 +236,7 @@ export async function ensureCallbackServer(options: EnsureCallbackServerOptions
220
236
  * Returns a promise that resolves with the authorization code.
221
237
  */
222
238
  export function waitForCallback(oauthState: string): Promise<string> {
223
- return new Promise((resolve, reject) => {
239
+ const promise = new Promise<string>((resolve, reject) => {
224
240
  const timeout = setTimeout(() => {
225
241
  if (pendingAuths.has(oauthState)) {
226
242
  pendingAuths.delete(oauthState)
@@ -230,44 +246,49 @@ export function waitForCallback(oauthState: string): Promise<string> {
230
246
 
231
247
  pendingAuths.set(oauthState, { resolve, reject, timeout })
232
248
  })
249
+ void promise.catch(() => undefined)
250
+ return promise
233
251
  }
234
252
 
235
253
  /**
236
254
  * Cancel a pending authorization by state.
237
255
  */
238
- export function cancelPendingCallback(oauthState: string): void {
256
+ function rejectPendingCallback(oauthState: string, error: Error): boolean {
239
257
  const pending = pendingAuths.get(oauthState)
240
- if (pending) {
241
- clearTimeout(pending.timeout)
242
- pendingAuths.delete(oauthState)
243
- pending.reject(new Error("Authorization cancelled"))
258
+ if (!pending) return false
259
+ pendingAuths.delete(oauthState)
260
+ clearTimeout(pending.timeout)
261
+ pending.reject(error)
262
+ return true
263
+ }
264
+
265
+ export function cancelPendingCallback(
266
+ oauthState: string,
267
+ error = new Error("Authorization cancelled"),
268
+ ): void {
269
+ rejectPendingCallback(oauthState, error)
270
+ }
271
+
272
+ /** Reject and remove every callback waiter before lifecycle cleanup settles. */
273
+ export function cancelAllPendingCallbacks(error: Error): void {
274
+ for (const oauthState of Array.from(pendingAuths.keys())) {
275
+ rejectPendingCallback(oauthState, error)
244
276
  }
245
277
  }
246
278
 
247
279
  /**
248
280
  * Stop the callback server and reject all pending authorizations.
249
281
  */
250
- export async function stopCallbackServer(): Promise<void> {
251
- if (server) {
252
- await new Promise<void>((resolve) => {
253
- server!.close(() => {
254
- resolve()
255
- })
256
- })
257
- server = undefined
258
- }
259
-
260
- setOAuthCallbackPort(getConfiguredOAuthCallbackPort())
261
-
262
- // Reject all pending auths (defer to allow any pending operations to complete)
263
- const pendingList = Array.from(pendingAuths.entries())
264
- pendingAuths.clear()
265
- setTimeout(() => {
266
- for (const [, pending] of pendingList) {
267
- clearTimeout(pending.timeout)
268
- pending.reject(new Error("OAuth callback server stopped"))
269
- }
270
- }, 0)
282
+ export function stopCallbackServer(
283
+ error = new Error("OAuth callback server stopped"),
284
+ ): Promise<void> {
285
+ cancelAllPendingCallbacks(error)
286
+ return enqueueServerTransition(async () => {
287
+ // A producer can register its waiter while an earlier startup is publishing.
288
+ cancelAllPendingCallbacks(error)
289
+ await stopPublishedServer()
290
+ setOAuthCallbackPort(getConfiguredOAuthCallbackPort())
291
+ })
271
292
  }
272
293
 
273
294
  /**
@@ -24,7 +24,7 @@ import {
24
24
  clearTokens,
25
25
  type StoredTokens,
26
26
  type StoredClientInfo,
27
- } from "./mcp-auth.ts"
27
+ } from "./mcp-auth.js"
28
28
 
29
29
  // Callback server configuration
30
30
  const DEFAULT_OAUTH_CALLBACK_PORT = 19876
@@ -64,6 +64,7 @@ export interface McpOAuthConfig {
64
64
  /** Callbacks for OAuth flow interactions */
65
65
  export interface McpOAuthCallbacks {
66
66
  onRedirect: (url: URL) => void | Promise<void>
67
+ assertActive?: () => void
67
68
  }
68
69
 
69
70
  /**
@@ -78,6 +79,10 @@ export class McpOAuthProvider implements OAuthClientProvider {
78
79
  private callbacks: McpOAuthCallbacks,
79
80
  ) {}
80
81
 
82
+ private ensureActive(): void {
83
+ this.callbacks.assertActive?.()
84
+ }
85
+
81
86
  private get usesClientCredentials(): boolean {
82
87
  return this.config.grantType === "client_credentials"
83
88
  }
@@ -125,6 +130,7 @@ export class McpOAuthProvider implements OAuthClientProvider {
125
130
  * Returns undefined if no client info exists or if the server URL has changed.
126
131
  */
127
132
  async clientInformation(): Promise<OAuthClientInformation | undefined> {
133
+ this.ensureActive()
128
134
  // Check config first (pre-registered client)
129
135
  if (this.config.clientId) {
130
136
  return {
@@ -136,6 +142,7 @@ export class McpOAuthProvider implements OAuthClientProvider {
136
142
  // Check stored client info (from dynamic registration)
137
143
  // Use getAuthForUrl to validate credentials are for the current server URL
138
144
  const entry = await getAuthForUrl(this.serverName, this.serverUrl)
145
+ this.ensureActive()
139
146
  if (entry?.clientInfo) {
140
147
  // Check if client secret has expired
141
148
  if (entry.clientInfo.clientSecretExpiresAt && entry.clientInfo.clientSecretExpiresAt < Date.now() / 1000) {
@@ -155,6 +162,7 @@ export class McpOAuthProvider implements OAuthClientProvider {
155
162
  * Save client information from dynamic registration.
156
163
  */
157
164
  async saveClientInformation(info: OAuthClientInformationFull): Promise<void> {
165
+ this.ensureActive()
158
166
  const clientInfo: StoredClientInfo = {
159
167
  clientId: info.client_id,
160
168
  clientSecret: info.client_secret,
@@ -169,8 +177,10 @@ export class McpOAuthProvider implements OAuthClientProvider {
169
177
  * Returns undefined if no tokens exist or if the server URL has changed.
170
178
  */
171
179
  async tokens(): Promise<OAuthTokens | undefined> {
180
+ this.ensureActive()
172
181
  // Use getAuthForUrl to validate tokens are for the current server URL
173
182
  const entry = await getAuthForUrl(this.serverName, this.serverUrl)
183
+ this.ensureActive()
174
184
  if (!entry?.tokens) return undefined
175
185
 
176
186
  return {
@@ -188,6 +198,7 @@ export class McpOAuthProvider implements OAuthClientProvider {
188
198
  * Save OAuth tokens.
189
199
  */
190
200
  async saveTokens(tokens: OAuthTokens): Promise<void> {
201
+ this.ensureActive()
191
202
  const storedTokens: StoredTokens = {
192
203
  accessToken: tokens.access_token,
193
204
  refreshToken: tokens.refresh_token,
@@ -207,11 +218,13 @@ export class McpOAuthProvider implements OAuthClientProvider {
207
218
  * flow, which library hosts cannot complete in-process.
208
219
  */
209
220
  async redirectToAuthorization(authorizationUrl: URL): Promise<void> {
221
+ this.ensureActive()
210
222
  if (this.usesClientCredentials) {
211
223
  throw new Error("redirectToAuthorization is not used for client_credentials flow")
212
224
  }
213
225
  // No saved oauthState means we're on the post-refresh authorize fallback.
214
226
  const entry = await getAuthForUrl(this.serverName, this.serverUrl)
227
+ this.ensureActive()
215
228
  if (!entry?.oauthState) {
216
229
  throw new UnauthorizedError(
217
230
  `Re-authentication required for MCP server: ${this.serverName}`,
@@ -219,12 +232,14 @@ export class McpOAuthProvider implements OAuthClientProvider {
219
232
  }
220
233
  // URL is passed to callback, not logged (may contain sensitive params)
221
234
  await this.callbacks.onRedirect(authorizationUrl)
235
+ this.ensureActive()
222
236
  }
223
237
 
224
238
  /**
225
239
  * Save the PKCE code verifier.
226
240
  */
227
241
  async saveCodeVerifier(codeVerifier: string): Promise<void> {
242
+ this.ensureActive()
228
243
  updateCodeVerifier(this.serverName, codeVerifier, this.serverUrl)
229
244
  }
230
245
 
@@ -233,10 +248,12 @@ export class McpOAuthProvider implements OAuthClientProvider {
233
248
  * @throws Error if no code verifier is stored
234
249
  */
235
250
  async codeVerifier(): Promise<string> {
251
+ this.ensureActive()
236
252
  if (this.usesClientCredentials) {
237
253
  throw new Error("codeVerifier is not used for client_credentials flow")
238
254
  }
239
255
  const entry = await getAuthForUrl(this.serverName, this.serverUrl)
256
+ this.ensureActive()
240
257
  if (!entry?.codeVerifier) {
241
258
  throw new Error(`No code verifier saved for MCP server: ${this.serverName}`)
242
259
  }
@@ -247,6 +264,7 @@ export class McpOAuthProvider implements OAuthClientProvider {
247
264
  * Save the OAuth state parameter for CSRF protection.
248
265
  */
249
266
  async saveState(state: string): Promise<void> {
267
+ this.ensureActive()
250
268
  updateOAuthState(this.serverName, state, this.serverUrl)
251
269
  }
252
270
 
@@ -255,10 +273,12 @@ export class McpOAuthProvider implements OAuthClientProvider {
255
273
  * @throws UnauthorizedError if no flow is in progress (see redirectToAuthorization)
256
274
  */
257
275
  async state(): Promise<string> {
276
+ this.ensureActive()
258
277
  if (this.usesClientCredentials) {
259
278
  throw new Error("state is not used for client_credentials flow")
260
279
  }
261
280
  const entry = await getAuthForUrl(this.serverName, this.serverUrl)
281
+ this.ensureActive()
262
282
  if (!entry?.oauthState) {
263
283
  throw new UnauthorizedError(
264
284
  `Re-authentication required for MCP server: ${this.serverName}`,
@@ -272,6 +292,7 @@ export class McpOAuthProvider implements OAuthClientProvider {
272
292
  * Clears tokens, client info, or all credentials based on the type.
273
293
  */
274
294
  async invalidateCredentials(type: "all" | "client" | "tokens"): Promise<void> {
295
+ this.ensureActive()
275
296
  switch (type) {
276
297
  case "all":
277
298
  clearAllCredentials(this.serverName)
@@ -286,6 +307,7 @@ export class McpOAuthProvider implements OAuthClientProvider {
286
307
  }
287
308
 
288
309
  prepareTokenRequest(scope?: string): URLSearchParams | undefined {
310
+ this.ensureActive()
289
311
  if (!this.usesClientCredentials) {
290
312
  return undefined
291
313
  }
@@ -1,30 +1,44 @@
1
- import type { McpExtensionState } from "./state.ts";
2
- import { lazyConnect, updateMetadataCache, updateServerMetadata } from "./init.ts";
3
- import { parallelLimit } from "./utils.ts";
1
+ import type { McpExtensionState } from "./state.js";
2
+ import { lazyConnect, updateMetadataCache, updateServerMetadata } from "./init.js";
3
+ import { parallelLimit } from "./utils.js";
4
+ import { waitForCaller } from "./caller-wait.js";
5
+ import { assertMcpStateLease, type AssertMcpStateLease } from "./state-lease.js";
4
6
 
5
7
  export async function hydrateServerMetadata(
6
8
  state: McpExtensionState,
7
9
  serverName: string,
10
+ signal?: AbortSignal,
11
+ assertActive?: AssertMcpStateLease,
8
12
  ): Promise<boolean> {
13
+ signal?.throwIfAborted();
14
+ assertMcpStateLease(assertActive);
9
15
  if (state.toolMetadata.has(serverName)) return true;
10
16
  if (!state.config.mcpServers[serverName]) return false;
11
17
 
12
18
  const connection = state.manager.getConnection(serverName);
13
19
  if (connection?.status === "connected") {
20
+ assertMcpStateLease(assertActive);
14
21
  updateServerMetadata(state, serverName);
15
22
  updateMetadataCache(state, serverName);
16
23
  return state.toolMetadata.has(serverName);
17
24
  }
18
25
 
19
- return lazyConnect(state, serverName);
26
+ const connected = await waitForCaller(() => lazyConnect(state, serverName), signal);
27
+ signal?.throwIfAborted();
28
+ assertMcpStateLease(assertActive);
29
+ return connected;
20
30
  }
21
31
 
22
32
  export async function hydrateMissingMetadata(
23
33
  state: McpExtensionState,
24
34
  options?: { server?: string },
35
+ signal?: AbortSignal,
36
+ assertActive?: AssertMcpStateLease,
25
37
  ): Promise<void> {
38
+ signal?.throwIfAborted();
39
+ assertMcpStateLease(assertActive);
26
40
  if (options?.server) {
27
- await hydrateServerMetadata(state, options.server);
41
+ await hydrateServerMetadata(state, options.server, signal, assertActive);
28
42
  return;
29
43
  }
30
44
 
@@ -32,6 +46,7 @@ export async function hydrateMissingMetadata(
32
46
  (serverName) => !state.toolMetadata.has(serverName),
33
47
  );
34
48
  await parallelLimit(missingServers, 10, async (serverName) => {
35
- await hydrateServerMetadata(state, serverName);
49
+ await hydrateServerMetadata(state, serverName, signal, assertActive);
36
50
  });
51
+ assertMcpStateLease(assertActive);
37
52
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/mcp",
3
- "version": "0.9.5-alpha.9",
3
+ "version": "0.9.5",
4
4
  "private": true,
5
5
  "description": "Atomic extension that adapts MCP (Model Context Protocol) servers into the coding agent. Fork of: https://github.com/nicobailon/pi-mcp-adapter",
6
6
  "contributors": [
@@ -32,8 +32,8 @@
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@bastani/atomic": "*",
35
- "@earendil-works/pi-ai": "^0.80.3",
36
- "@earendil-works/pi-tui": "^0.80.3",
35
+ "@earendil-works/pi-ai": "^0.80.6",
36
+ "@earendil-works/pi-tui": "^0.80.6",
37
37
  "zod": "^3.25.0 || ^4.0.0"
38
38
  },
39
39
  "peerDependenciesMeta": {
@@ -1,8 +1,8 @@
1
- import type { McpExtensionState } from "./state.ts";
2
- import { authenticate, supportsOAuth } from "./mcp-auth-flow.ts";
3
- import { formatAuthRequiredMessage } from "./utils.ts";
1
+ import type { McpExtensionState } from "./state.js";
2
+ import { authenticate, supportsOAuth } from "./mcp-auth-flow.js";
3
+ import { formatAuthRequiredMessage } from "./utils.js";
4
4
 
5
- type AutoAuthResult =
5
+ export type AutoAuthResult =
6
6
  | { status: "skipped" }
7
7
  | { status: "success" }
8
8
  | { status: "failed"; message: string };