@bastani/atomic 0.9.27 → 0.9.28-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/builtin/intercom/CHANGELOG.md +6 -0
  3. package/dist/builtin/intercom/broker/broker.ts +13 -1
  4. package/dist/builtin/intercom/package.json +2 -2
  5. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  6. package/dist/builtin/mcp/package.json +1 -1
  7. package/dist/builtin/subagents/package.json +3 -3
  8. package/dist/builtin/web-access/index.bundle.mjs +194 -44
  9. package/dist/builtin/web-access/package.json +3 -3
  10. package/dist/builtin/workflows/CHANGELOG.md +8 -0
  11. package/dist/builtin/workflows/builtin/{chunk-gts8wgjr.js → chunk-f61w0hpm.js} +1 -1
  12. package/dist/builtin/workflows/builtin/{chunk-9bhs02gm.js → chunk-tecnpe8j.js} +1 -1
  13. package/dist/builtin/workflows/builtin/{chunk-gw7rghda.js → chunk-wz8v67bn.js} +1 -1
  14. package/dist/builtin/workflows/builtin/goal.js +2 -2
  15. package/dist/builtin/workflows/builtin/index.js +3 -3
  16. package/dist/builtin/workflows/builtin/ralph.js +2 -2
  17. package/dist/builtin/workflows/package.json +2 -2
  18. package/dist/builtin/workflows/src/extension/index.bundle.mjs +7958 -7904
  19. package/dist/builtin/workflows/src/index.js +11210 -11204
  20. package/dist/cli/args.d.ts +1 -0
  21. package/dist/cli/args.d.ts.map +1 -1
  22. package/dist/cli/args.js +12 -5
  23. package/dist/cli/args.js.map +1 -1
  24. package/dist/codemode-worker.js +99 -3
  25. package/dist/core/agent-session-events.js +1 -1
  26. package/dist/core/agent-session-events.js.map +1 -1
  27. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  28. package/dist/core/agent-session-extension-bindings.js +9 -5
  29. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  30. package/dist/core/agent-session-methods.d.ts +2 -0
  31. package/dist/core/agent-session-methods.d.ts.map +1 -1
  32. package/dist/core/agent-session-methods.js.map +1 -1
  33. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  34. package/dist/core/agent-session-prompt.js +5 -2
  35. package/dist/core/agent-session-prompt.js.map +1 -1
  36. package/dist/core/agent-session-services.d.ts +1 -0
  37. package/dist/core/agent-session-services.d.ts.map +1 -1
  38. package/dist/core/agent-session-services.js +1 -0
  39. package/dist/core/agent-session-services.js.map +1 -1
  40. package/dist/core/agent-session-state.d.ts.map +1 -1
  41. package/dist/core/agent-session-state.js +3 -2
  42. package/dist/core/agent-session-state.js.map +1 -1
  43. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  44. package/dist/core/agent-session-tool-registry.js +10 -16
  45. package/dist/core/agent-session-tool-registry.js.map +1 -1
  46. package/dist/core/agent-session.d.ts +2 -0
  47. package/dist/core/agent-session.d.ts.map +1 -1
  48. package/dist/core/agent-session.js +5 -0
  49. package/dist/core/agent-session.js.map +1 -1
  50. package/dist/core/auth-storage-backends.d.ts.map +1 -1
  51. package/dist/core/auth-storage-backends.js +2 -1
  52. package/dist/core/auth-storage-backends.js.map +1 -1
  53. package/dist/core/auth-storage.d.ts +1 -1
  54. package/dist/core/auth-storage.d.ts.map +1 -1
  55. package/dist/core/auth-storage.js +15 -7
  56. package/dist/core/auth-storage.js.map +1 -1
  57. package/dist/core/azure-provider-compat.d.ts +8 -0
  58. package/dist/core/azure-provider-compat.d.ts.map +1 -0
  59. package/dist/core/azure-provider-compat.js +65 -0
  60. package/dist/core/azure-provider-compat.js.map +1 -0
  61. package/dist/core/child-session-options.d.ts +1 -1
  62. package/dist/core/child-session-options.d.ts.map +1 -1
  63. package/dist/core/child-session-options.js +11 -2
  64. package/dist/core/child-session-options.js.map +1 -1
  65. package/dist/core/extensions/api-types.d.ts +1 -0
  66. package/dist/core/extensions/api-types.d.ts.map +1 -1
  67. package/dist/core/extensions/api-types.js.map +1 -1
  68. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  69. package/dist/core/extensions/loader-api.js +5 -0
  70. package/dist/core/extensions/loader-api.js.map +1 -1
  71. package/dist/core/extensions/loader-host-modules.d.ts +1 -0
  72. package/dist/core/extensions/loader-host-modules.d.ts.map +1 -1
  73. package/dist/core/extensions/loader-host-modules.js +12 -0
  74. package/dist/core/extensions/loader-host-modules.js.map +1 -1
  75. package/dist/core/extensions/runner.d.ts +1 -1
  76. package/dist/core/extensions/runner.d.ts.map +1 -1
  77. package/dist/core/extensions/runner.js +7 -2
  78. package/dist/core/extensions/runner.js.map +1 -1
  79. package/dist/core/extensions/tool-types.d.ts +2 -0
  80. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  81. package/dist/core/extensions/tool-types.js.map +1 -1
  82. package/dist/core/fast-model-variants.d.ts +1 -1
  83. package/dist/core/fast-model-variants.js +1 -1
  84. package/dist/core/fast-model-variants.js.map +1 -1
  85. package/dist/core/keybindings.d.ts +4 -4
  86. package/dist/core/model-config.d.ts.map +1 -1
  87. package/dist/core/model-config.js +2 -1
  88. package/dist/core/model-config.js.map +1 -1
  89. package/dist/core/model-fallback-failures.d.ts.map +1 -1
  90. package/dist/core/model-fallback-failures.js +5 -1
  91. package/dist/core/model-fallback-failures.js.map +1 -1
  92. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  93. package/dist/core/model-resolver-cli.js +5 -1
  94. package/dist/core/model-resolver-cli.js.map +1 -1
  95. package/dist/core/model-resolver-defaults.js +1 -1
  96. package/dist/core/model-resolver-defaults.js.map +1 -1
  97. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  98. package/dist/core/model-resolver-initial.js +6 -1
  99. package/dist/core/model-resolver-initial.js.map +1 -1
  100. package/dist/core/model-resolver-patterns.d.ts.map +1 -1
  101. package/dist/core/model-resolver-patterns.js +2 -1
  102. package/dist/core/model-resolver-patterns.js.map +1 -1
  103. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  104. package/dist/core/model-resolver-scope.js +3 -1
  105. package/dist/core/model-resolver-scope.js.map +1 -1
  106. package/dist/core/model-runtime-streaming.d.ts.map +1 -1
  107. package/dist/core/model-runtime-streaming.js +2 -0
  108. package/dist/core/model-runtime-streaming.js.map +1 -1
  109. package/dist/core/model-runtime.d.ts.map +1 -1
  110. package/dist/core/model-runtime.js +48 -22
  111. package/dist/core/model-runtime.js.map +1 -1
  112. package/dist/core/provider-composer-internal.d.ts.map +1 -1
  113. package/dist/core/provider-composer-internal.js +4 -1
  114. package/dist/core/provider-composer-internal.js.map +1 -1
  115. package/dist/core/provider-display-names.js +1 -1
  116. package/dist/core/provider-display-names.js.map +1 -1
  117. package/dist/core/resource-loader-core.d.ts +1 -0
  118. package/dist/core/resource-loader-core.d.ts.map +1 -1
  119. package/dist/core/resource-loader-core.js +4 -0
  120. package/dist/core/resource-loader-core.js.map +1 -1
  121. package/dist/core/resource-loader-internals.d.ts +1 -0
  122. package/dist/core/resource-loader-internals.d.ts.map +1 -1
  123. package/dist/core/resource-loader-internals.js.map +1 -1
  124. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  125. package/dist/core/resource-loader-reload.js +28 -5
  126. package/dist/core/resource-loader-reload.js.map +1 -1
  127. package/dist/core/resource-loader-types.d.ts +2 -0
  128. package/dist/core/resource-loader-types.d.ts.map +1 -1
  129. package/dist/core/resource-loader-types.js.map +1 -1
  130. package/dist/core/sdk-types.d.ts +6 -4
  131. package/dist/core/sdk-types.d.ts.map +1 -1
  132. package/dist/core/sdk-types.js.map +1 -1
  133. package/dist/core/sdk.d.ts.map +1 -1
  134. package/dist/core/sdk.js +5 -3
  135. package/dist/core/sdk.js.map +1 -1
  136. package/dist/core/session-lifecycle-work.d.ts +2 -1
  137. package/dist/core/session-lifecycle-work.d.ts.map +1 -1
  138. package/dist/core/session-lifecycle-work.js +15 -1
  139. package/dist/core/session-lifecycle-work.js.map +1 -1
  140. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  141. package/dist/core/settings-manager-basic-accessors.js +4 -4
  142. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  143. package/dist/core/settings-manager-core.d.ts.map +1 -1
  144. package/dist/core/settings-manager-core.js +2 -0
  145. package/dist/core/settings-manager-core.js.map +1 -1
  146. package/dist/core/settings-storage.d.ts.map +1 -1
  147. package/dist/core/settings-storage.js +2 -1
  148. package/dist/core/settings-storage.js.map +1 -1
  149. package/dist/core/skills.d.ts +1 -1
  150. package/dist/core/skills.d.ts.map +1 -1
  151. package/dist/core/skills.js +3 -1
  152. package/dist/core/skills.js.map +1 -1
  153. package/dist/core/system-prompt.d.ts +3 -0
  154. package/dist/core/system-prompt.d.ts.map +1 -1
  155. package/dist/core/system-prompt.js +7 -3
  156. package/dist/core/system-prompt.js.map +1 -1
  157. package/dist/core/tool-loadout.d.ts.map +1 -1
  158. package/dist/core/tool-loadout.js +8 -1
  159. package/dist/core/tool-loadout.js.map +1 -1
  160. package/dist/core/tool-selection.d.ts +13 -0
  161. package/dist/core/tool-selection.d.ts.map +1 -0
  162. package/dist/core/tool-selection.js +43 -0
  163. package/dist/core/tool-selection.js.map +1 -0
  164. package/dist/core/tools/read.d.ts +7 -0
  165. package/dist/core/tools/read.d.ts.map +1 -1
  166. package/dist/core/tools/read.js +11 -1
  167. package/dist/core/tools/read.js.map +1 -1
  168. package/dist/extensions/codemode/execute.d.ts.map +1 -1
  169. package/dist/extensions/codemode/execute.js +2 -1
  170. package/dist/extensions/codemode/execute.js.map +1 -1
  171. package/dist/extensions/codemode/index.d.ts.map +1 -1
  172. package/dist/extensions/codemode/index.js +1 -0
  173. package/dist/extensions/codemode/index.js.map +1 -1
  174. package/dist/extensions/codemode/tool.d.ts +4 -1
  175. package/dist/extensions/codemode/tool.d.ts.map +1 -1
  176. package/dist/extensions/codemode/tool.js +6 -3
  177. package/dist/extensions/codemode/tool.js.map +1 -1
  178. package/dist/extensions/mcp/client/oauth/flow.d.ts.map +1 -1
  179. package/dist/extensions/mcp/client/oauth/flow.js +14 -1
  180. package/dist/extensions/mcp/client/oauth/flow.js.map +1 -1
  181. package/dist/extensions/mcp/client/oauth/types.d.ts +1 -0
  182. package/dist/extensions/mcp/client/oauth/types.d.ts.map +1 -1
  183. package/dist/extensions/mcp/client/oauth/types.js.map +1 -1
  184. package/dist/extensions/mcp/index.js.map +1 -1
  185. package/dist/extensions/mcp/runtime.d.ts +5 -2
  186. package/dist/extensions/mcp/runtime.d.ts.map +1 -1
  187. package/dist/extensions/mcp/runtime.js +18 -4
  188. package/dist/extensions/mcp/runtime.js.map +1 -1
  189. package/dist/main.d.ts.map +1 -1
  190. package/dist/main.js +2 -0
  191. package/dist/main.js.map +1 -1
  192. package/dist/migrations-azure.d.ts +4 -0
  193. package/dist/migrations-azure.d.ts.map +1 -0
  194. package/dist/migrations-azure.js +41 -0
  195. package/dist/migrations-azure.js.map +1 -0
  196. package/dist/migrations.d.ts.map +1 -1
  197. package/dist/migrations.js +2 -0
  198. package/dist/migrations.js.map +1 -1
  199. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  200. package/dist/modes/interactive/components/chat-session-host-state.js +2 -1
  201. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  202. package/dist/modes/interactive/components/chat-transcript.d.ts +2 -0
  203. package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
  204. package/dist/modes/interactive/components/chat-transcript.js +9 -3
  205. package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
  206. package/dist/modes/interactive/theme/tui-theme.d.ts.map +1 -1
  207. package/dist/modes/interactive/theme/tui-theme.js +1 -0
  208. package/dist/modes/interactive/theme/tui-theme.js.map +1 -1
  209. package/dist/modes/interactive-engine/engine-args.d.ts.map +1 -1
  210. package/dist/modes/interactive-engine/engine-args.js +1 -0
  211. package/dist/modes/interactive-engine/engine-args.js.map +1 -1
  212. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  213. package/dist/utils/syntax-highlight.js +6 -1
  214. package/dist/utils/syntax-highlight.js.map +1 -1
  215. package/docs/codemode.md +3 -2
  216. package/docs/extensions/api-reference.md +14 -0
  217. package/docs/extensions/authoring.md +1 -1
  218. package/docs/extensions.md +2 -0
  219. package/docs/keybindings.md +9 -9
  220. package/docs/mcp-servers.md +4 -0
  221. package/docs/providers.md +21 -2
  222. package/docs/reference/cli.md +10 -3
  223. package/docs/workflows/api-reference.md +3 -1
  224. package/docs/workflows/authoring.md +6 -2
  225. package/npm-shrinkwrap.json +78 -74
  226. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.28-alpha.1] - 2026-10-05
6
+
7
+ ### Added
8
+
9
+ - Added Azure Foundry Chat Completions with `azure/deepseek-v4-pro`, using the existing Azure endpoint and deployment-name settings.
10
+ - Added `*` patterns to `--tools` and `--exclude-tools`, including MCP tool names.
11
+ - Added `--no-mcp` to disable built-in MCP support for one run, including interactive sessions.
12
+ - Added `ExtensionAPI.getWorkflowHostModules()` to supply shared host module instances for the exact workflow imports `@bastani/atomic`, `@bastani/pi-ai`, and `@bastani/pi-ai/providers/all`, avoiding repeated package loading ([#3454](https://github.com/bastani-inc/atomic/issues/3454)).
13
+
14
+ ### Changed
15
+
16
+ - Home and End move the editor cursor to the start and end of the line. Ctrl+Home and Ctrl+End jump to the top and bottom of the fullscreen transcript.
17
+ - Renamed the Azure provider to `azure`. Existing provider references remain supported, and startup migrates credentials and configuration without replacing existing `azure` entries. Project files are migrated only when trusted.
18
+ - Codemode built-ins are frozen in pi 1.0.4. Patches to built-ins are ignored instead of crashing the host.
19
+
20
+ ### Fixed
21
+
22
+ - Fixed syntax colors leaking across lines in multiline tokens and interpolation substitutions inheriting string colors.
23
+ - Invalid router and provider-list settings retain their configuration validation errors during Azure provider migration.
24
+ - Fixed codemode `tools.read()` returning text instead of an image block for image files. Pass the result to `image()` to display it ([#10251](https://github.com/earendil-works/pi/issues/10251)).
25
+ - Fixed MCP OAuth dynamic registration omitting `application_type`, which caused redirect URI rejections on OpenID Connect servers ([#10493](https://github.com/earendil-works/pi/issues/10493)).
26
+ - Fixed `--tools` removing MCP tools when selecting codemode. MCP tools remain callable unless the allowlist contains an entry starting with `mcp__`; unmatched tools are not declared directly.
27
+ - Fixed shutdown leaving MCP connections open while a server was still connecting ([#10249](https://github.com/earendil-works/pi/issues/10249)).
28
+ - Fixed hidden tools appearing in prompt rules and skill-reading hints. Codemode tool declarations now include each tool's prompt guidelines ([#10343](https://github.com/earendil-works/pi/issues/10343)).
29
+ - Fixed interactive quit waiting on pending extension commands, which could leave connecting MCP servers running.
30
+ - Fixed HTTP/2 pending stream cancellations being treated as user cancellations instead of retryable transport failures.
31
+ - Updated the bundled `proxy-addr` dependency to 2.0.8, fixing IP spoofing through IPv4-mapped IPv6 trusted subnets.
32
+
5
33
  ## [0.9.27] - 2026-10-05
6
34
 
7
35
  ### Changed
@@ -4,6 +4,12 @@ All notable changes to the `pi-intercom` extension will be documented in this fi
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.9.28-alpha.1] - 2026-10-05
8
+
9
+ ### Fixed
10
+
11
+ - Fixed intercom occasionally reporting `Intercom not connected: connect ENOENT …/broker.sock` when a session connected just as an idle broker was shutting down.
12
+
7
13
  ## [0.9.27] - 2026-10-05
8
14
 
9
15
  ### Fixed
@@ -249,6 +249,7 @@ class IntercomBroker {
249
249
  private sessions = new Map<string, ConnectedSession>();
250
250
  private server: net.Server;
251
251
  private shutdownTimer: NodeJS.Timeout | null = null;
252
+ private lastConnectionAt = performance.now();
252
253
  private deliveredMessages = new DeliveredMessageCache(
253
254
  DELIVERED_MESSAGE_TTL_MS,
254
255
  DELIVERED_MESSAGE_MAX_ENTRIES,
@@ -280,6 +281,7 @@ class IntercomBroker {
280
281
  this.server.listen(SOCKET_PATH, () => {
281
282
  writeFileSync(PID_PATH, String(process.pid));
282
283
  console.log(`Intercom broker started (pid: ${process.pid})`);
284
+ this.lastConnectionAt = performance.now();
283
285
  this.scheduleShutdownCheck();
284
286
  });
285
287
  process.on("SIGTERM", () => this.shutdown());
@@ -288,6 +290,8 @@ class IntercomBroker {
288
290
 
289
291
  private handleConnection(socket: net.Socket): void {
290
292
  let sessionId: string | null = null;
293
+ this.lastConnectionAt = performance.now();
294
+ this.restartShutdownCheck();
291
295
 
292
296
  const reader = createMessageReader((msg) => {
293
297
  if (socket.destroyed || socket.writableEnded) return;
@@ -341,12 +345,20 @@ class IntercomBroker {
341
345
  this.shutdownTimer = setTimeout(() => {
342
346
  this.shutdownTimer = null;
343
347
  if (this.sessions.size === 0) {
344
- console.log("No sessions connected, shutting down");
348
+ const idleMs = Math.round(performance.now() - this.lastConnectionAt);
349
+ console.log(`No sessions connected for ${idleMs}ms since the last connection, shutting down`);
345
350
  this.shutdown();
346
351
  }
347
352
  }, 5000);
348
353
  }
349
354
 
355
+ private restartShutdownCheck(): void {
356
+ if (!this.shutdownTimer) return;
357
+ clearTimeout(this.shutdownTimer);
358
+ this.shutdownTimer = null;
359
+ this.scheduleShutdownCheck();
360
+ }
361
+
350
362
  /**
351
363
  * End a connection the broker itself is refusing, and retire its session first.
352
364
  *
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/intercom",
3
- "version": "0.9.27",
3
+ "version": "0.9.28-alpha.1",
4
4
  "private": true,
5
5
  "description": "Atomic extension providing a private coordination channel between parent and child agent sessions. Fork of: https://github.com/nicobailon/pi-intercom",
6
6
  "contributors": [
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "peerDependencies": {
46
46
  "@bastani/atomic": "*",
47
- "@earendil-works/pi-tui": "^1.0.2",
47
+ "@earendil-works/pi-tui": "^1.0.4",
48
48
  "typebox": "*"
49
49
  },
50
50
  "peerDependenciesMeta": {
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.9.28-alpha.1] - 2026-10-05
11
+
12
+ ### Fixed
13
+
14
+ - Fixed MCP OAuth dynamic registration omitting `application_type`, which caused redirect URI rejections on OpenID Connect servers ([#10493](https://github.com/earendil-works/pi/issues/10493)).
15
+
10
16
  ## [0.9.25] - 2026-10-01
11
17
 
12
18
  ### Breaking Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/mcp",
3
- "version": "0.9.27",
3
+ "version": "0.9.28-alpha.1",
4
4
  "private": true,
5
5
  "description": "Atomic's pi-compatible MCP integration for server connections, OAuth, tools, resources, and terminal management.",
6
6
  "contributors": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/subagents",
3
- "version": "0.9.27",
3
+ "version": "0.9.28-alpha.1",
4
4
  "private": true,
5
5
  "description": "Atomic extension for delegating tasks to subagents with parallel execution. Fork of: https://github.com/nicobailon/pi-subagents",
6
6
  "contributors": [
@@ -35,8 +35,8 @@
35
35
  "peerDependencies": {
36
36
  "@bastani/atomic": "*",
37
37
  "@bastani/pi-ai": "*",
38
- "@earendil-works/pi-agent-core": "^1.0.2",
39
- "@earendil-works/pi-tui": "^1.0.2",
38
+ "@earendil-works/pi-agent-core": "^1.0.4",
39
+ "@earendil-works/pi-tui": "^1.0.4",
40
40
  "typebox": "*"
41
41
  },
42
42
  "peerDependenciesMeta": {