@bastani/atomic 0.9.14 → 0.9.15

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 (525) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +1 -1
  3. package/dist/builtin/intercom/package.json +2 -2
  4. package/dist/builtin/mcp/CHANGELOG.md +14 -0
  5. package/dist/builtin/mcp/package.json +4 -4
  6. package/dist/builtin/mcp/sampling-handler.ts +2 -2
  7. package/dist/builtin/mcp/types.ts +1 -1
  8. package/dist/builtin/subagents/CHANGELOG.md +40 -0
  9. package/dist/builtin/subagents/README.md +5 -22
  10. package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
  11. package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
  12. package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
  13. package/dist/builtin/subagents/agents/codebase-online-researcher.md +2 -2
  14. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
  15. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
  16. package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
  17. package/dist/builtin/subagents/agents/worker.md +2 -2
  18. package/dist/builtin/subagents/package.json +4 -4
  19. package/dist/builtin/subagents/skills/subagent/SKILL.md +6 -6
  20. package/dist/builtin/subagents/src/agents/agent-loaders.ts +0 -4
  21. package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +1 -12
  22. package/dist/builtin/subagents/src/agents/agent-management.ts +0 -1
  23. package/dist/builtin/subagents/src/agents/agent-serializer.ts +7 -6
  24. package/dist/builtin/subagents/src/agents/agent-types.ts +0 -1
  25. package/dist/builtin/subagents/src/extension/schemas.ts +2 -2
  26. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +2 -2
  27. package/dist/builtin/subagents/src/intercom/result-intercom.ts +0 -127
  28. package/dist/builtin/subagents/src/runs/foreground/inprocess-run-sync.ts +1 -3
  29. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +15 -106
  30. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +0 -3
  31. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +2 -13
  32. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +2 -12
  33. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +1 -20
  34. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +0 -6
  35. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +10 -21
  36. package/dist/builtin/subagents/src/runs/inprocess/attempt-handles.ts +104 -0
  37. package/dist/builtin/subagents/src/runs/inprocess/index.ts +10 -21
  38. package/dist/builtin/subagents/src/runs/inprocess/prompt-behavior.ts +2 -3
  39. package/dist/builtin/subagents/src/runs/inprocess/runner.ts +11 -32
  40. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/temp-cleanup.ts +69 -0
  41. package/dist/builtin/subagents/src/shared/model-resolution.ts +1 -1
  42. package/dist/builtin/subagents/src/shared/types-config.ts +0 -4
  43. package/dist/builtin/subagents/src/shared/types-depth.ts +15 -103
  44. package/dist/builtin/subagents/src/shared/types-foreground-state.ts +56 -0
  45. package/dist/builtin/subagents/src/shared/types-results.ts +1 -59
  46. package/dist/builtin/subagents/src/shared/types-runtime.ts +0 -2
  47. package/dist/builtin/subagents/src/shared/types.ts +1 -1
  48. package/dist/builtin/subagents/src/shared/utils.ts +1 -1
  49. package/dist/builtin/subagents/src/slash/slash-live-state.ts +1 -1
  50. package/dist/builtin/web-access/package.json +2 -2
  51. package/dist/builtin/web-access/summary-review.ts +2 -2
  52. package/dist/builtin/web-access/web-search-summary.ts +2 -2
  53. package/dist/builtin/workflows/CHANGELOG.md +30 -0
  54. package/dist/builtin/workflows/README.md +2 -2
  55. package/dist/builtin/workflows/package.json +2 -2
  56. package/dist/builtin/workflows/src/extension/index.bundle.mjs +60473 -401
  57. package/dist/builtin/workflows/src/extension/public-types.ts +1 -1
  58. package/dist/builtin/workflows/src/extension/wiring.ts +1 -1
  59. package/dist/builtin/workflows/src/extension/workflow-heartbeat-delivery.ts +48 -4
  60. package/dist/builtin/workflows/src/extension/workflow-tool.ts +1 -1
  61. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +5 -0
  62. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +35 -2
  63. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +1 -1
  64. package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +6 -0
  65. package/dist/builtin/workflows/src/tui/chat-surface-message.ts +15 -13
  66. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +25 -2
  67. package/dist/bun/cli.js +1 -1
  68. package/dist/bun/cli.js.map +1 -1
  69. package/dist/bun/register-bedrock.js +2 -2
  70. package/dist/bun/register-bedrock.js.map +1 -1
  71. package/dist/cli/auth-check.d.ts +1 -1
  72. package/dist/cli/auth-check.d.ts.map +1 -1
  73. package/dist/cli/auth-check.js +1 -1
  74. package/dist/cli/auth-check.js.map +1 -1
  75. package/dist/cli/credential-print.d.ts +1 -1
  76. package/dist/cli/credential-print.d.ts.map +1 -1
  77. package/dist/cli/credential-print.js +2 -2
  78. package/dist/cli/credential-print.js.map +1 -1
  79. package/dist/cli/file-processor.d.ts +1 -1
  80. package/dist/cli/file-processor.d.ts.map +1 -1
  81. package/dist/cli/file-processor.js.map +1 -1
  82. package/dist/cli/initial-message.d.ts +1 -1
  83. package/dist/cli/initial-message.d.ts.map +1 -1
  84. package/dist/cli/initial-message.js.map +1 -1
  85. package/dist/cli/list-models.js.map +1 -1
  86. package/dist/core/agent-session-auto-compaction.d.ts +1 -1
  87. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  88. package/dist/core/agent-session-auto-compaction.js +1 -1
  89. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  90. package/dist/core/agent-session-events.d.ts +1 -1
  91. package/dist/core/agent-session-events.d.ts.map +1 -1
  92. package/dist/core/agent-session-events.js +1 -1
  93. package/dist/core/agent-session-events.js.map +1 -1
  94. package/dist/core/agent-session-export.js.map +1 -1
  95. package/dist/core/agent-session-extension-bindings.js +1 -1
  96. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  97. package/dist/core/agent-session-message-queue.d.ts +1 -1
  98. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  99. package/dist/core/agent-session-message-queue.js.map +1 -1
  100. package/dist/core/agent-session-methods.d.ts +2 -2
  101. package/dist/core/agent-session-methods.d.ts.map +1 -1
  102. package/dist/core/agent-session-methods.js.map +1 -1
  103. package/dist/core/agent-session-models.d.ts +2 -2
  104. package/dist/core/agent-session-models.d.ts.map +1 -1
  105. package/dist/core/agent-session-models.js +2 -2
  106. package/dist/core/agent-session-models.js.map +1 -1
  107. package/dist/core/agent-session-prompt.d.ts +1 -1
  108. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  109. package/dist/core/agent-session-prompt.js.map +1 -1
  110. package/dist/core/agent-session-retry.d.ts +1 -1
  111. package/dist/core/agent-session-retry.d.ts.map +1 -1
  112. package/dist/core/agent-session-retry.js +1 -1
  113. package/dist/core/agent-session-retry.js.map +1 -1
  114. package/dist/core/agent-session-runtime-auth.js +1 -1
  115. package/dist/core/agent-session-runtime-auth.js.map +1 -1
  116. package/dist/core/agent-session-runtime.d.ts +1 -1
  117. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  118. package/dist/core/agent-session-runtime.js +1 -1
  119. package/dist/core/agent-session-runtime.js.map +1 -1
  120. package/dist/core/agent-session-services.d.ts +1 -1
  121. package/dist/core/agent-session-services.d.ts.map +1 -1
  122. package/dist/core/agent-session-services.js.map +1 -1
  123. package/dist/core/agent-session-state.d.ts +1 -1
  124. package/dist/core/agent-session-state.d.ts.map +1 -1
  125. package/dist/core/agent-session-state.js.map +1 -1
  126. package/dist/core/agent-session-tree.js.map +1 -1
  127. package/dist/core/agent-session-types.d.ts +1 -1
  128. package/dist/core/agent-session-types.d.ts.map +1 -1
  129. package/dist/core/agent-session-types.js.map +1 -1
  130. package/dist/core/agent-session.d.ts +1 -1
  131. package/dist/core/agent-session.d.ts.map +1 -1
  132. package/dist/core/agent-session.js.map +1 -1
  133. package/dist/core/anthropic-thinking-guard.d.ts +1 -1
  134. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  135. package/dist/core/anthropic-thinking-guard.js +1 -1
  136. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  137. package/dist/core/auth-storage.d.ts +1 -1
  138. package/dist/core/auth-storage.d.ts.map +1 -1
  139. package/dist/core/auth-storage.js.map +1 -1
  140. package/dist/core/cache-stats.d.ts +1 -1
  141. package/dist/core/cache-stats.d.ts.map +1 -1
  142. package/dist/core/cache-stats.js.map +1 -1
  143. package/dist/core/cloudflare-gateway-binding.d.ts +1 -1
  144. package/dist/core/cloudflare-gateway-binding.d.ts.map +1 -1
  145. package/dist/core/cloudflare-gateway-binding.js +1 -1
  146. package/dist/core/cloudflare-gateway-binding.js.map +1 -1
  147. package/dist/core/codex-fast-mode.d.ts +2 -2
  148. package/dist/core/codex-fast-mode.d.ts.map +1 -1
  149. package/dist/core/codex-fast-mode.js +3 -2
  150. package/dist/core/codex-fast-mode.js.map +1 -1
  151. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  152. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  153. package/dist/core/compaction/branch-summarization.js +2 -2
  154. package/dist/core/compaction/branch-summarization.js.map +1 -1
  155. package/dist/core/compaction/compaction-runner.d.ts +2 -2
  156. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  157. package/dist/core/compaction/compaction-runner.js.map +1 -1
  158. package/dist/core/compaction/compaction-types.d.ts +2 -2
  159. package/dist/core/compaction/compaction-types.d.ts.map +1 -1
  160. package/dist/core/compaction/compaction-types.js.map +1 -1
  161. package/dist/core/compaction/compaction.d.ts +1 -1
  162. package/dist/core/compaction/compaction.d.ts.map +1 -1
  163. package/dist/core/compaction/compaction.js.map +1 -1
  164. package/dist/core/compaction/fallback-planner.d.ts +1 -1
  165. package/dist/core/compaction/fallback-planner.d.ts.map +1 -1
  166. package/dist/core/compaction/fallback-planner.js.map +1 -1
  167. package/dist/core/compaction/planner-outcome.d.ts +1 -1
  168. package/dist/core/compaction/planner-outcome.d.ts.map +1 -1
  169. package/dist/core/compaction/planner-outcome.js +1 -1
  170. package/dist/core/compaction/planner-outcome.js.map +1 -1
  171. package/dist/core/compaction/range-planner-diagnostics.d.ts +1 -1
  172. package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
  173. package/dist/core/compaction/range-planner-diagnostics.js +1 -1
  174. package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
  175. package/dist/core/compaction/range-planner.d.ts +2 -2
  176. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  177. package/dist/core/compaction/range-planner.js +2 -2
  178. package/dist/core/compaction/range-planner.js.map +1 -1
  179. package/dist/core/compaction/session-summarization.d.ts +2 -2
  180. package/dist/core/compaction/session-summarization.d.ts.map +1 -1
  181. package/dist/core/compaction/session-summarization.js +2 -2
  182. package/dist/core/compaction/session-summarization.js.map +1 -1
  183. package/dist/core/compaction/transcript-serialization.d.ts +1 -1
  184. package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
  185. package/dist/core/compaction/transcript-serialization.js.map +1 -1
  186. package/dist/core/compaction/utils.d.ts +1 -1
  187. package/dist/core/compaction/utils.d.ts.map +1 -1
  188. package/dist/core/compaction/utils.js.map +1 -1
  189. package/dist/core/experimental.d.ts +1 -1
  190. package/dist/core/experimental.d.ts.map +1 -1
  191. package/dist/core/experimental.js.map +1 -1
  192. package/dist/core/export-html/tool-renderer.js.map +1 -1
  193. package/dist/core/extensions/agent-events.d.ts +2 -2
  194. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  195. package/dist/core/extensions/agent-events.js.map +1 -1
  196. package/dist/core/extensions/api-types.d.ts +2 -2
  197. package/dist/core/extensions/api-types.d.ts.map +1 -1
  198. package/dist/core/extensions/api-types.js.map +1 -1
  199. package/dist/core/extensions/context-types.d.ts +1 -7
  200. package/dist/core/extensions/context-types.d.ts.map +1 -1
  201. package/dist/core/extensions/context-types.js.map +1 -1
  202. package/dist/core/extensions/event-results.d.ts +1 -1
  203. package/dist/core/extensions/event-results.d.ts.map +1 -1
  204. package/dist/core/extensions/event-results.js.map +1 -1
  205. package/dist/core/extensions/index.d.ts +1 -1
  206. package/dist/core/extensions/index.d.ts.map +1 -1
  207. package/dist/core/extensions/index.js.map +1 -1
  208. package/dist/core/extensions/loader-api.js.map +1 -1
  209. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  210. package/dist/core/extensions/loader-virtual-modules.js +21 -9
  211. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  212. package/dist/core/extensions/provider-types.d.ts +2 -2
  213. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  214. package/dist/core/extensions/provider-types.js.map +1 -1
  215. package/dist/core/extensions/reactive-widget.d.ts +6 -0
  216. package/dist/core/extensions/reactive-widget.d.ts.map +1 -1
  217. package/dist/core/extensions/reactive-widget.js +62 -6
  218. package/dist/core/extensions/reactive-widget.js.map +1 -1
  219. package/dist/core/extensions/runner-context.d.ts +1 -1
  220. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  221. package/dist/core/extensions/runner-context.js.map +1 -1
  222. package/dist/core/extensions/runner-events.d.ts +1 -1
  223. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  224. package/dist/core/extensions/runner-events.js.map +1 -1
  225. package/dist/core/extensions/runner.d.ts +2 -2
  226. package/dist/core/extensions/runner.d.ts.map +1 -1
  227. package/dist/core/extensions/runner.js.map +1 -1
  228. package/dist/core/extensions/runtime-types.d.ts +2 -2
  229. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  230. package/dist/core/extensions/runtime-types.js.map +1 -1
  231. package/dist/core/extensions/tool-events.d.ts +1 -1
  232. package/dist/core/extensions/tool-events.d.ts.map +1 -1
  233. package/dist/core/extensions/tool-events.js.map +1 -1
  234. package/dist/core/extensions/tool-types.d.ts +2 -2
  235. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  236. package/dist/core/extensions/tool-types.js.map +1 -1
  237. package/dist/core/extensions/ui-types.d.ts +2 -0
  238. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  239. package/dist/core/extensions/ui-types.js.map +1 -1
  240. package/dist/core/fallback-models.d.ts +1 -1
  241. package/dist/core/fallback-models.d.ts.map +1 -1
  242. package/dist/core/fallback-models.js.map +1 -1
  243. package/dist/core/http-dispatcher.d.ts.map +1 -1
  244. package/dist/core/http-dispatcher.js +14 -0
  245. package/dist/core/http-dispatcher.js.map +1 -1
  246. package/dist/core/messages.d.ts +1 -1
  247. package/dist/core/messages.d.ts.map +1 -1
  248. package/dist/core/messages.js.map +1 -1
  249. package/dist/core/model-capabilities.d.ts +1 -1
  250. package/dist/core/model-capabilities.d.ts.map +1 -1
  251. package/dist/core/model-capabilities.js.map +1 -1
  252. package/dist/core/model-fallback-failures.d.ts.map +1 -1
  253. package/dist/core/model-fallback-failures.js +18 -1
  254. package/dist/core/model-fallback-failures.js.map +1 -1
  255. package/dist/core/model-registry.d.ts +1 -1
  256. package/dist/core/model-registry.d.ts.map +1 -1
  257. package/dist/core/model-registry.js.map +1 -1
  258. package/dist/core/model-resolver-cli.js.map +1 -1
  259. package/dist/core/model-resolver-defaults.d.ts +1 -1
  260. package/dist/core/model-resolver-defaults.d.ts.map +1 -1
  261. package/dist/core/model-resolver-defaults.js +1 -1
  262. package/dist/core/model-resolver-defaults.js.map +1 -1
  263. package/dist/core/model-resolver-initial.d.ts +1 -1
  264. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  265. package/dist/core/model-resolver-initial.js.map +1 -1
  266. package/dist/core/model-resolver-patterns.d.ts +1 -1
  267. package/dist/core/model-resolver-patterns.d.ts.map +1 -1
  268. package/dist/core/model-resolver-patterns.js.map +1 -1
  269. package/dist/core/model-resolver-scope.d.ts +1 -1
  270. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  271. package/dist/core/model-resolver-scope.js +1 -1
  272. package/dist/core/model-resolver-scope.js.map +1 -1
  273. package/dist/core/model-resolver-types.d.ts +1 -1
  274. package/dist/core/model-resolver-types.d.ts.map +1 -1
  275. package/dist/core/model-resolver-types.js.map +1 -1
  276. package/dist/core/model-runtime-auth.d.ts +1 -1
  277. package/dist/core/model-runtime-auth.d.ts.map +1 -1
  278. package/dist/core/model-runtime-auth.js.map +1 -1
  279. package/dist/core/model-runtime-providers.d.ts +2 -2
  280. package/dist/core/model-runtime-providers.d.ts.map +1 -1
  281. package/dist/core/model-runtime-providers.js +2 -2
  282. package/dist/core/model-runtime-providers.js.map +1 -1
  283. package/dist/core/model-runtime-restoration.d.ts +1 -1
  284. package/dist/core/model-runtime-restoration.d.ts.map +1 -1
  285. package/dist/core/model-runtime-restoration.js.map +1 -1
  286. package/dist/core/model-runtime-snapshot.d.ts +1 -1
  287. package/dist/core/model-runtime-snapshot.d.ts.map +1 -1
  288. package/dist/core/model-runtime-snapshot.js.map +1 -1
  289. package/dist/core/model-runtime-streaming.d.ts +1 -1
  290. package/dist/core/model-runtime-streaming.d.ts.map +1 -1
  291. package/dist/core/model-runtime-streaming.js +1 -1
  292. package/dist/core/model-runtime-streaming.js.map +1 -1
  293. package/dist/core/model-runtime-types.d.ts +1 -1
  294. package/dist/core/model-runtime-types.d.ts.map +1 -1
  295. package/dist/core/model-runtime-types.js.map +1 -1
  296. package/dist/core/model-runtime.d.ts +8 -1
  297. package/dist/core/model-runtime.d.ts.map +1 -1
  298. package/dist/core/model-runtime.js +15 -3
  299. package/dist/core/model-runtime.js.map +1 -1
  300. package/dist/core/models-store.d.ts +1 -1
  301. package/dist/core/models-store.d.ts.map +1 -1
  302. package/dist/core/models-store.js.map +1 -1
  303. package/dist/core/oauth-login.d.ts +1 -1
  304. package/dist/core/oauth-login.d.ts.map +1 -1
  305. package/dist/core/oauth-login.js.map +1 -1
  306. package/dist/core/oauth-provider-metadata.d.ts +1 -1
  307. package/dist/core/oauth-provider-metadata.d.ts.map +1 -1
  308. package/dist/core/oauth-provider-metadata.js.map +1 -1
  309. package/dist/core/openai-responses-payload-sanitizer.d.ts +1 -1
  310. package/dist/core/openai-responses-payload-sanitizer.d.ts.map +1 -1
  311. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
  312. package/dist/core/provider-attribution.d.ts +1 -1
  313. package/dist/core/provider-attribution.d.ts.map +1 -1
  314. package/dist/core/provider-attribution.js.map +1 -1
  315. package/dist/core/provider-composer-internal.d.ts +1 -1
  316. package/dist/core/provider-composer-internal.d.ts.map +1 -1
  317. package/dist/core/provider-composer-internal.js.map +1 -1
  318. package/dist/core/provider-composer.d.ts +1 -1
  319. package/dist/core/provider-composer.d.ts.map +1 -1
  320. package/dist/core/provider-composer.js +2 -2
  321. package/dist/core/provider-composer.js.map +1 -1
  322. package/dist/core/provider-context-usage.d.ts.map +1 -1
  323. package/dist/core/provider-context-usage.js.map +1 -1
  324. package/dist/core/remote-catalog-provider.d.ts +1 -1
  325. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  326. package/dist/core/remote-catalog-provider.js.map +1 -1
  327. package/dist/core/runtime-credentials.d.ts +1 -1
  328. package/dist/core/runtime-credentials.d.ts.map +1 -1
  329. package/dist/core/runtime-credentials.js.map +1 -1
  330. package/dist/core/sdk-types.d.ts +1 -1
  331. package/dist/core/sdk-types.d.ts.map +1 -1
  332. package/dist/core/sdk-types.js.map +1 -1
  333. package/dist/core/sdk.d.ts +1 -1
  334. package/dist/core/sdk.d.ts.map +1 -1
  335. package/dist/core/sdk.js +30 -6
  336. package/dist/core/sdk.js.map +1 -1
  337. package/dist/core/session-manager-core.d.ts +2 -2
  338. package/dist/core/session-manager-core.d.ts.map +1 -1
  339. package/dist/core/session-manager-core.js.map +1 -1
  340. package/dist/core/session-manager-entries.d.ts +1 -1
  341. package/dist/core/session-manager-entries.d.ts.map +1 -1
  342. package/dist/core/session-manager-entries.js.map +1 -1
  343. package/dist/core/session-manager-list.js.map +1 -1
  344. package/dist/core/session-manager-types.d.ts +1 -1
  345. package/dist/core/session-manager-types.d.ts.map +1 -1
  346. package/dist/core/session-manager-types.js.map +1 -1
  347. package/dist/core/session-manager-validation.js +1 -1
  348. package/dist/core/session-manager-validation.js.map +1 -1
  349. package/dist/core/settings-manager-basic-accessors.d.ts +1 -0
  350. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  351. package/dist/core/settings-manager-basic-accessors.js +11 -0
  352. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  353. package/dist/core/settings-types.d.ts +2 -1
  354. package/dist/core/settings-types.d.ts.map +1 -1
  355. package/dist/core/settings-types.js.map +1 -1
  356. package/dist/core/summarization-retry.d.ts +1 -1
  357. package/dist/core/summarization-retry.d.ts.map +1 -1
  358. package/dist/core/summarization-retry.js.map +1 -1
  359. package/dist/core/tools/bash-session-environment.d.ts +1 -1
  360. package/dist/core/tools/bash-session-environment.d.ts.map +1 -1
  361. package/dist/core/tools/bash-session-environment.js.map +1 -1
  362. package/dist/core/tools/oversized-tool-result.d.ts +1 -1
  363. package/dist/core/tools/oversized-tool-result.d.ts.map +1 -1
  364. package/dist/core/tools/oversized-tool-result.js.map +1 -1
  365. package/dist/core/tools/read-url.d.ts +1 -1
  366. package/dist/core/tools/read-url.d.ts.map +1 -1
  367. package/dist/core/tools/read-url.js.map +1 -1
  368. package/dist/core/tools/read.d.ts.map +1 -1
  369. package/dist/core/tools/read.js.map +1 -1
  370. package/dist/core/tools/render-utils.d.ts +1 -1
  371. package/dist/core/tools/render-utils.d.ts.map +1 -1
  372. package/dist/core/tools/render-utils.js.map +1 -1
  373. package/dist/core/tools/resource-selectors.d.ts +1 -1
  374. package/dist/core/tools/resource-selectors.d.ts.map +1 -1
  375. package/dist/core/tools/resource-selectors.js +2 -7
  376. package/dist/core/tools/resource-selectors.js.map +1 -1
  377. package/dist/core/typebox-compat.js +1 -1
  378. package/dist/core/typebox-compat.js.map +1 -1
  379. package/dist/core/usage-totals.d.ts +1 -1
  380. package/dist/core/usage-totals.d.ts.map +1 -1
  381. package/dist/core/usage-totals.js.map +1 -1
  382. package/dist/extensions/llama/provider.d.ts +1 -1
  383. package/dist/extensions/llama/provider.d.ts.map +1 -1
  384. package/dist/extensions/llama/provider.js +1 -1
  385. package/dist/extensions/llama/provider.js.map +1 -1
  386. package/dist/main-app-mode.d.ts +1 -1
  387. package/dist/main-app-mode.d.ts.map +1 -1
  388. package/dist/main-app-mode.js.map +1 -1
  389. package/dist/main-session-options.js +1 -1
  390. package/dist/main-session-options.js.map +1 -1
  391. package/dist/modes/interactive/components/assistant-message.d.ts +1 -1
  392. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  393. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  394. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -1
  395. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  396. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  397. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  398. package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  399. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  400. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  401. package/dist/modes/interactive/components/model-selector.d.ts +1 -1
  402. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  403. package/dist/modes/interactive/components/model-selector.js +1 -1
  404. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  405. package/dist/modes/interactive/components/scoped-models-selector.d.ts +1 -1
  406. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  407. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  408. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  409. package/dist/modes/interactive/components/settings-selector-types.d.ts +1 -1
  410. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  411. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  412. package/dist/modes/interactive/interactive-auth-routing.js +1 -1
  413. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  414. package/dist/modes/interactive/interactive-deferred-startup.js +1 -1
  415. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  416. package/dist/modes/interactive/interactive-extension-context.js +26 -0
  417. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  418. package/dist/modes/interactive/interactive-extension-runtime.js +7 -2
  419. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  420. package/dist/modes/interactive/interactive-mode-base.d.ts +1 -0
  421. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  422. package/dist/modes/interactive/interactive-mode-base.js +1 -0
  423. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  424. package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -1
  425. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  426. package/dist/modes/interactive/interactive-mode-deps.js +1 -1
  427. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  428. package/dist/modes/interactive/interactive-mode-helpers.js +1 -1
  429. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  430. package/dist/modes/interactive/interactive-mode-surface.d.ts +2 -0
  431. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  432. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  433. package/dist/modes/interactive/model-catalog-refresh.d.ts +1 -1
  434. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  435. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  436. package/dist/modes/interactive/streaming-assistant-message.d.ts +1 -1
  437. package/dist/modes/interactive/streaming-assistant-message.d.ts.map +1 -1
  438. package/dist/modes/interactive/streaming-assistant-message.js.map +1 -1
  439. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +3 -0
  440. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  441. package/dist/modes/interactive-engine/engine-custom-ui.js +26 -3
  442. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  443. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  444. package/dist/modes/interactive-engine/remote-component.d.ts +2 -1
  445. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
  446. package/dist/modes/interactive-engine/remote-component.js +14 -0
  447. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  448. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
  449. package/dist/modes/json-event.d.ts +1 -1
  450. package/dist/modes/json-event.d.ts.map +1 -1
  451. package/dist/modes/json-event.js.map +1 -1
  452. package/dist/modes/print-mode.d.ts +1 -1
  453. package/dist/modes/print-mode.d.ts.map +1 -1
  454. package/dist/modes/print-mode.js.map +1 -1
  455. package/dist/modes/rpc/rpc-client-api.d.ts +2 -2
  456. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  457. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  458. package/dist/modes/rpc/rpc-client.d.ts +1 -1
  459. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  460. package/dist/modes/rpc/rpc-client.js.map +1 -1
  461. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
  462. package/dist/modes/rpc/rpc-extension-ui.js +4 -1
  463. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
  464. package/dist/modes/rpc/rpc-provider-auth.d.ts +1 -1
  465. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  466. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  467. package/dist/modes/rpc/rpc-types.d.ts +2 -2
  468. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  469. package/dist/modes/rpc/rpc-types.js.map +1 -1
  470. package/dist/utils/tool-result-images.d.ts +1 -1
  471. package/dist/utils/tool-result-images.d.ts.map +1 -1
  472. package/dist/utils/tool-result-images.js.map +1 -1
  473. package/docs/custom-provider.md +11 -8
  474. package/docs/development.md +0 -2
  475. package/docs/extensions.md +2 -2
  476. package/docs/json.md +1 -1
  477. package/docs/models/artificial-analysis-index.md +2 -2
  478. package/docs/models/model-selection.md +8 -8
  479. package/docs/models/pareto-efficiency.md +10 -10
  480. package/docs/models.md +9 -3
  481. package/docs/packages.md +1 -1
  482. package/docs/providers.md +5 -3
  483. package/docs/quickstart.md +1 -1
  484. package/docs/rpc.md +1 -1
  485. package/docs/sdk.md +2 -2
  486. package/docs/session-format.md +2 -2
  487. package/docs/settings.md +2 -1
  488. package/docs/subagents.md +5 -6
  489. package/docs/tui.md +3 -0
  490. package/docs/workflows.md +3 -1
  491. package/examples/extensions/README.md +1 -1
  492. package/examples/extensions/custom-footer.ts +1 -1
  493. package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
  494. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  495. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  496. package/examples/extensions/handoff.ts +2 -2
  497. package/examples/extensions/hello.ts +1 -1
  498. package/examples/extensions/plan-mode/index.ts +1 -1
  499. package/examples/extensions/preset.ts +1 -1
  500. package/examples/extensions/qna.ts +1 -1
  501. package/examples/extensions/subagent/display.ts +1 -1
  502. package/examples/extensions/subagent/runner.ts +1 -1
  503. package/examples/extensions/subagent/types.ts +1 -1
  504. package/examples/extensions/summarize.ts +2 -2
  505. package/examples/extensions/tool-override.ts +1 -1
  506. package/examples/sdk/02-custom-model.ts +1 -1
  507. package/examples/sdk/12-full-control.ts +1 -1
  508. package/examples/sdk/README.md +1 -1
  509. package/npm-shrinkwrap.json +54 -31
  510. package/package.json +3 -3
  511. package/dist/builtin/subagents/src/extension/fanout-child.ts +0 -259
  512. package/dist/builtin/subagents/src/runs/inprocess/nested-routing.ts +0 -218
  513. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-api.ts +0 -55
  514. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-control.ts +0 -178
  515. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-core.ts +0 -187
  516. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-paths.ts +0 -57
  517. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-projection.ts +0 -42
  518. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-registry.ts +0 -352
  519. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-rendering.ts +0 -136
  520. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-sanitize.ts +0 -252
  521. package/dist/builtin/subagents/src/shared/types-nested.ts +0 -127
  522. package/dist/core/copilot-env-routing.d.ts +0 -36
  523. package/dist/core/copilot-env-routing.d.ts.map +0 -1
  524. package/dist/core/copilot-env-routing.js +0 -94
  525. package/dist/core/copilot-env-routing.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"context-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/context-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/context-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-types.js","sourceRoot":"","sources":["../../../src/core/extensions/context-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { Api, ImageContent, Model, TextContent } from \"@earendil-works/pi-ai/compat\";\nimport type { VerbatimCompactionResult } from \"../compaction/index.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ModelRegistry } from \"../model-registry.ts\";\nimport type { ScopedModel } from \"../model-resolver.ts\";\nimport type { ReadonlySessionManager, SessionManager } from \"../session-manager.ts\";\nimport type { SkillCatalog } from \"../skill-catalog.ts\";\nimport type { BuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport type { WorkflowStageAdmissionBoundary } from \"../workflow-stage-admission.ts\";\nimport type { SendMessageOptions, SendMessagesOptions } from \"./message-types.ts\";\nimport type { ExtensionUIContext } from \"./ui-types.ts\";\n\nexport interface ContextUsage {\n\t/** Estimated context tokens, or null if unknown (e.g. right after compaction, before next LLM response). */\n\ttokens: number | null;\n\tcontextWindow: number;\n\t/** Context usage as percentage of context window, or null if tokens is unknown. */\n\tpercent: number | null;\n}\n\nexport interface CompactOptions {\n\t/** Fraction of compactable context to keep. 0.3 is aggressive, 0.7 is light. */\n\tcompression_ratio?: number;\n\t/** Number of recent context-eligible messages to keep uncompressed. */\n\tpreserve_recent?: number;\n\t/** Focus query for relevance-based pruning. Defaults to auto-detected session context. */\n\tquery?: string;\n\tonComplete?: (result: VerbatimCompactionResult) => void;\n\tonError?: (error: Error) => void;\n}\n\n/**\n * Late routes settle as delivery acknowledgements: resolution means the route\n * accepted delivery, while rejection means delivery was not fully accepted. A\n * sequential batch may have delivered a prefix before it rejects; stale-context\n * rejection identifies the dropped route, and other failures reject unchanged.\n */\nexport interface WorkflowStageLateMessageRouter {\n\trouteMessage<T>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): void | Promise<void>;\n\trouteMessages<T>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): void | Promise<void>;\n}\n\nexport interface WorkflowStageMessageAdmission {\n\t/** Internal generation-owned boundary shared by every model-fallback session. */\n\treadonly boundary: WorkflowStageAdmissionBoundary;\n\t/** Internal extension state that must survive model-fallback session replacement. */\n\treadonly extensionState: Map<string, object>;\n\tisOpen(): boolean;\n}\n\nexport interface WorkflowStageOrchestrationContext {\n\treadonly kind: \"workflow-stage\";\n\treadonly workflowRunId: string;\n\treadonly workflowStageId: string;\n\treadonly workflowStageName: string;\n\treadonly constraints: {\n\t\treadonly disableWorkflowTool: true;\n\t\treadonly maxSubagentDepth: number;\n\t};\n\t/** Internal lifecycle seam for surfacing detached results after this stage closes. */\n\treadonly lateMessageRouter?: WorkflowStageLateMessageRouter;\n\t/** Internal synchronous boundary used before producer reply/turn side effects. */\n\treadonly messageAdmission?: WorkflowStageMessageAdmission;\n\t/**\n\t * Resolved per-session intercom home group for this stage. Concrete, already\n\t * normalized upstream. Read by the intercom extension (buildRegistration) and\n\t * inherited by subagents this stage spawns. Absent => no group override.\n\t */\n\treadonly intercomGroup?: string;\n}\n/** Typed child intercom identity and supervisor capability issued at admission. */\nexport interface SubagentIntercomIdentity {\n\treadonly orchestratorTarget: string;\n\treadonly runId: string;\n\treadonly agent: string;\n\treadonly index: number;\n\treadonly sessionName?: string;\n\treadonly supervisor?: {\n\t\treadonly capability: string;\n\t\treadonly supervisorSessionId: string;\n\t};\n}\n\n/** Typed child capability policy supplied by an in-process subagent admission. */\nexport interface SubagentChildPolicy {\n\treadonly managementActions: \"full\" | \"restricted\";\n\treadonly fanoutAuthorized: boolean;\n\treadonly inheritProjectContext: boolean;\n\treadonly inheritSkills: boolean;\n\t/** Current admitted in-process nesting depth; absent for top-level sessions. */\n\treadonly depth?: number;\n\t/**\n\t * Effective delegation limit inherited from the parent and the child's own\n\t * agent definition; absent when only the local limit applies.\n\t */\n\treadonly maxSubagentDepth?: number;\n\t/** Undefined preserves MCP configuration defaults; [] explicitly disables direct tools. */\n\treadonly mcpDirectTools?: readonly string[];\n\t/** Admission-issued identity/capability; never inherited through process environment. */\n\treadonly intercom?: SubagentIntercomIdentity;\n\t/** Resolved intercom group for this admitted child, when one was assigned. */\n\treadonly intercomGroup?: string;\n}\n// Union alias kept for forward-compatible orchestration context variants.\nexport type OrchestrationContext = WorkflowStageOrchestrationContext;\n\n/**\n * Context passed to extension event handlers.\n */\nexport type ExtensionMode = \"tui\" | \"rpc\" | \"json\" | \"print\";\n\nexport interface ExtensionContext {\n\t/** Session-scoped orchestration policy for child runtimes such as workflow stages. */\n\treadonly orchestrationContext?: OrchestrationContext;\n\t/** Typed capability policy for an in-process subagent child, when this session is one. */\n\treadonly subagentPolicy?: SubagentChildPolicy;\n\t/** UI methods for user interaction */\n\tui: ExtensionUIContext;\n\t/** Current run mode. Use \"tui\" to guard terminal-only UI such as custom components. */\n\tmode: ExtensionMode;\n\t/** Whether dialog-capable UI is available (true in TUI and RPC modes) */\n\thasUI: boolean;\n\t/** Current working directory */\n\tcwd: string;\n\t/** Session manager (read-only) */\n\tsessionManager: ReadonlySessionManager;\n\t/** Model registry for API key resolution */\n\tmodelRegistry: ModelRegistry;\n\t/** Current model (may be undefined) */\n\tmodel: Model<Api> | undefined;\n\t/** Models scoped to this session (resolved from `--models` / `enabledModels`\n\t * settings against the available catalogue). Same set the `/scoped-models`\n\t * command shows. Empty when no scoping is configured (all available models\n\t * are usable). Read-only snapshot, resolved at access time. */\n\tscopedModels: readonly ScopedModel[];\n\t/** Current thinking level, resolved from the active session at access time. */\n\tthinkingLevel?: ThinkingLevel;\n\t/** Session-scoped internal resource router (e.g. artifact:// resolver). */\n\treadonly internalResourceRouter?: import(\"../tools/resource-selectors.ts\").InternalResourceRouter;\n\t/** Whether the agent is idle (not streaming) */\n\tisIdle(): boolean;\n\t/** Whether project-local trust is active for this context. */\n\tisProjectTrusted(): boolean;\n\t/** The current abort signal, or undefined when the agent is not streaming. */\n\tsignal: AbortSignal | undefined;\n\t/** Abort the current agent operation */\n\tabort(): void;\n\t/** Whether there are queued messages waiting */\n\thasPendingMessages(): boolean;\n\t/** Gracefully shutdown pi and exit. Available in all contexts. */\n\tshutdown(): void;\n\t/** Get current context usage for the active model. */\n\tgetContextUsage(): ContextUsage | undefined;\n\t/** Trigger compaction without awaiting completion. */\n\tcompact(options?: CompactOptions): void;\n\t/** Get the current effective system prompt. */\n\tgetSystemPrompt(): string;\n\t/** Current loader-owned skill candidates and exact selector resolver. */\n\tgetSkillCatalog?(): SkillCatalog;\n}\n\n/**\n * Extended context for command handlers.\n * Includes session control methods only safe in user-initiated commands.\n */\nexport interface ExtensionCommandContext extends ExtensionContext {\n\t/** Get the current base system-prompt construction options. */\n\tgetSystemPromptOptions(): BuildSystemPromptOptions;\n\n\t/** Wait for the agent to finish streaming */\n\twaitForIdle(): Promise<void>;\n\n\t/** Start a new session, optionally with initialization. */\n\tnewSession(options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}): Promise<{ cancelled: boolean }>;\n\n\t/** Fork from a specific entry, creating a new session file. */\n\tfork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Navigate to a different point in the session tree. */\n\tnavigateTree(\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Switch to a different session file. */\n\tswitchSession(\n\t\tsessionPath: string,\n\t\toptions?: { withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Reload extensions, skills, prompts, and themes. */\n\treload(): Promise<void>;\n}\n\n/**\n * Fresh command-capable context bound to the replacement session after a session switch.\n *\n * This is passed to `withSession()` callbacks on `newSession()`, `fork()`, and `switchSession()`.\n */\nexport interface ReplacedSessionContext extends ExtensionCommandContext {\n\tsendMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): Promise<void>;\n\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"context-types.js","sourceRoot":"","sources":["../../../src/core/extensions/context-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Api, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { VerbatimCompactionResult } from \"../compaction/index.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ModelRegistry } from \"../model-registry.ts\";\nimport type { ScopedModel } from \"../model-resolver.ts\";\nimport type { ReadonlySessionManager, SessionManager } from \"../session-manager.ts\";\nimport type { SkillCatalog } from \"../skill-catalog.ts\";\nimport type { BuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport type { WorkflowStageAdmissionBoundary } from \"../workflow-stage-admission.ts\";\nimport type { SendMessageOptions, SendMessagesOptions } from \"./message-types.ts\";\nimport type { ExtensionUIContext } from \"./ui-types.ts\";\n\nexport interface ContextUsage {\n\t/** Estimated context tokens, or null if unknown (e.g. right after compaction, before next LLM response). */\n\ttokens: number | null;\n\tcontextWindow: number;\n\t/** Context usage as percentage of context window, or null if tokens is unknown. */\n\tpercent: number | null;\n}\n\nexport interface CompactOptions {\n\t/** Fraction of compactable context to keep. 0.3 is aggressive, 0.7 is light. */\n\tcompression_ratio?: number;\n\t/** Number of recent context-eligible messages to keep uncompressed. */\n\tpreserve_recent?: number;\n\t/** Focus query for relevance-based pruning. Defaults to auto-detected session context. */\n\tquery?: string;\n\tonComplete?: (result: VerbatimCompactionResult) => void;\n\tonError?: (error: Error) => void;\n}\n\n/**\n * Late routes settle as delivery acknowledgements: resolution means the route\n * accepted delivery, while rejection means delivery was not fully accepted. A\n * sequential batch may have delivered a prefix before it rejects; stale-context\n * rejection identifies the dropped route, and other failures reject unchanged.\n */\nexport interface WorkflowStageLateMessageRouter {\n\trouteMessage<T>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): void | Promise<void>;\n\trouteMessages<T>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): void | Promise<void>;\n}\n\nexport interface WorkflowStageMessageAdmission {\n\t/** Internal generation-owned boundary shared by every model-fallback session. */\n\treadonly boundary: WorkflowStageAdmissionBoundary;\n\t/** Internal extension state that must survive model-fallback session replacement. */\n\treadonly extensionState: Map<string, object>;\n\tisOpen(): boolean;\n}\n\nexport interface WorkflowStageOrchestrationContext {\n\treadonly kind: \"workflow-stage\";\n\treadonly workflowRunId: string;\n\treadonly workflowStageId: string;\n\treadonly workflowStageName: string;\n\treadonly constraints: {\n\t\treadonly disableWorkflowTool: true;\n\t};\n\t/** Internal lifecycle seam for surfacing detached results after this stage closes. */\n\treadonly lateMessageRouter?: WorkflowStageLateMessageRouter;\n\t/** Internal synchronous boundary used before producer reply/turn side effects. */\n\treadonly messageAdmission?: WorkflowStageMessageAdmission;\n\t/**\n\t * Resolved per-session intercom home group for this stage. Concrete, already\n\t * normalized upstream. Read by the intercom extension (buildRegistration) and\n\t * inherited by subagents this stage spawns. Absent => no group override.\n\t */\n\treadonly intercomGroup?: string;\n}\n/** Typed child intercom identity and supervisor capability issued at admission. */\nexport interface SubagentIntercomIdentity {\n\treadonly orchestratorTarget: string;\n\treadonly runId: string;\n\treadonly agent: string;\n\treadonly index: number;\n\treadonly sessionName?: string;\n\treadonly supervisor?: {\n\t\treadonly capability: string;\n\t\treadonly supervisorSessionId: string;\n\t};\n}\n\n/** Typed child capability policy supplied by an in-process subagent admission. */\nexport interface SubagentChildPolicy {\n\treadonly managementActions: \"full\" | \"restricted\";\n\treadonly fanoutAuthorized: boolean;\n\treadonly inheritProjectContext: boolean;\n\treadonly inheritSkills: boolean;\n\t/** Current admitted in-process nesting depth; absent for top-level sessions. */\n\treadonly depth?: number;\n\t/** Undefined preserves MCP configuration defaults; [] explicitly disables direct tools. */\n\treadonly mcpDirectTools?: readonly string[];\n\t/** Admission-issued identity/capability; never inherited through process environment. */\n\treadonly intercom?: SubagentIntercomIdentity;\n\t/** Resolved intercom group for this admitted child, when one was assigned. */\n\treadonly intercomGroup?: string;\n}\n// Union alias kept for forward-compatible orchestration context variants.\nexport type OrchestrationContext = WorkflowStageOrchestrationContext;\n\n/**\n * Context passed to extension event handlers.\n */\nexport type ExtensionMode = \"tui\" | \"rpc\" | \"json\" | \"print\";\n\nexport interface ExtensionContext {\n\t/** Session-scoped orchestration policy for child runtimes such as workflow stages. */\n\treadonly orchestrationContext?: OrchestrationContext;\n\t/** Typed capability policy for an in-process subagent child, when this session is one. */\n\treadonly subagentPolicy?: SubagentChildPolicy;\n\t/** UI methods for user interaction */\n\tui: ExtensionUIContext;\n\t/** Current run mode. Use \"tui\" to guard terminal-only UI such as custom components. */\n\tmode: ExtensionMode;\n\t/** Whether dialog-capable UI is available (true in TUI and RPC modes) */\n\thasUI: boolean;\n\t/** Current working directory */\n\tcwd: string;\n\t/** Session manager (read-only) */\n\tsessionManager: ReadonlySessionManager;\n\t/** Model registry for API key resolution */\n\tmodelRegistry: ModelRegistry;\n\t/** Current model (may be undefined) */\n\tmodel: Model<Api> | undefined;\n\t/** Models scoped to this session (resolved from `--models` / `enabledModels`\n\t * settings against the available catalogue). Same set the `/scoped-models`\n\t * command shows. Empty when no scoping is configured (all available models\n\t * are usable). Read-only snapshot, resolved at access time. */\n\tscopedModels: readonly ScopedModel[];\n\t/** Current thinking level, resolved from the active session at access time. */\n\tthinkingLevel?: ThinkingLevel;\n\t/** Session-scoped internal resource router (e.g. artifact:// resolver). */\n\treadonly internalResourceRouter?: import(\"../tools/resource-selectors.ts\").InternalResourceRouter;\n\t/** Whether the agent is idle (not streaming) */\n\tisIdle(): boolean;\n\t/** Whether project-local trust is active for this context. */\n\tisProjectTrusted(): boolean;\n\t/** The current abort signal, or undefined when the agent is not streaming. */\n\tsignal: AbortSignal | undefined;\n\t/** Abort the current agent operation */\n\tabort(): void;\n\t/** Whether there are queued messages waiting */\n\thasPendingMessages(): boolean;\n\t/** Gracefully shutdown pi and exit. Available in all contexts. */\n\tshutdown(): void;\n\t/** Get current context usage for the active model. */\n\tgetContextUsage(): ContextUsage | undefined;\n\t/** Trigger compaction without awaiting completion. */\n\tcompact(options?: CompactOptions): void;\n\t/** Get the current effective system prompt. */\n\tgetSystemPrompt(): string;\n\t/** Current loader-owned skill candidates and exact selector resolver. */\n\tgetSkillCatalog?(): SkillCatalog;\n}\n\n/**\n * Extended context for command handlers.\n * Includes session control methods only safe in user-initiated commands.\n */\nexport interface ExtensionCommandContext extends ExtensionContext {\n\t/** Get the current base system-prompt construction options. */\n\tgetSystemPromptOptions(): BuildSystemPromptOptions;\n\n\t/** Wait for the agent to finish streaming */\n\twaitForIdle(): Promise<void>;\n\n\t/** Start a new session, optionally with initialization. */\n\tnewSession(options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}): Promise<{ cancelled: boolean }>;\n\n\t/** Fork from a specific entry, creating a new session file. */\n\tfork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Navigate to a different point in the session tree. */\n\tnavigateTree(\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Switch to a different session file. */\n\tswitchSession(\n\t\tsessionPath: string,\n\t\toptions?: { withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Reload extensions, skills, prompts, and themes. */\n\treload(): Promise<void>;\n}\n\n/**\n * Fresh command-capable context bound to the replacement session after a session switch.\n *\n * This is passed to `withSession()` callbacks on `newSession()`, `fork()`, and `switchSession()`.\n */\nexport interface ReplacedSessionContext extends ExtensionCommandContext {\n\tsendMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): Promise<void>;\n\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): Promise<void>;\n}\n"]}
@@ -1,5 +1,5 @@
1
+ import type { ImageContent, TextContent } from "@bastani/pi-ai/compat";
1
2
  import type { AgentMessage } from "@earendil-works/pi-agent-core";
2
- import type { ImageContent, TextContent } from "@earendil-works/pi-ai/compat";
3
3
  import type { BashResult } from "../bash-executor.ts";
4
4
  import type { CustomMessage } from "../messages.ts";
5
5
  import type { BashOperations } from "../tools/bash.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"event-results.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/event-results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,gCAAgC,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IACnC,wFAAwF;IACxF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IACnC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,qEAAqE;IACrE,MAAM,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACrC,0FAA0F;IAC1F,OAAO,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC3C,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;IAChF,qGAAqG;IACrG,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"event-results.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/event-results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,gCAAgC,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IACnC,wFAAwF;IACxF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IACnC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,qEAAqE;IACrE,MAAM,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACrC,0FAA0F;IAC1F,OAAO,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC3C,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;IAChF,qGAAqG;IACrG,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-results.js","sourceRoot":"","sources":["../../../src/core/extensions/event-results.ts"],"names":[],"mappings":"","sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { ImageContent, TextContent } from \"@earendil-works/pi-ai/compat\";\nimport type { BashResult } from \"../bash-executor.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { BashOperations } from \"../tools/bash.ts\";\n\nexport interface ContextEventResult {\n\tmessages?: AgentMessage[];\n}\n\nexport type BeforeProviderRequestEventResult = unknown;\n\nexport interface ToolCallEventResult {\n\t/** Block tool execution. To modify arguments, mutate `event.input` in place instead. */\n\tblock?: boolean;\n\treason?: string;\n\t/**\n\t * Hint that the agent should stop after the current tool batch when this call is blocked.\n\t * Early termination only happens when every finalized tool result in the batch sets this to true.\n\t */\n\tterminate?: boolean;\n}\n\n/** Result from user_bash event handler */\nexport interface UserBashEventResult {\n\t/** Custom operations to use for execution */\n\toperations?: BashOperations;\n\t/** Full replacement: extension handled execution, use this result */\n\tresult?: BashResult;\n}\n\nexport interface ToolResultEventResult {\n\tcontent?: (TextContent | ImageContent)[];\n\tdetails?: unknown;\n\tisError?: boolean;\n}\n\nexport interface MessageEndEventResult {\n\t/** Replace the finalized message. The replacement must keep the original message role. */\n\tmessage?: AgentMessage;\n}\n\nexport interface BeforeAgentStartEventResult {\n\tmessage?: Pick<CustomMessage, \"customType\" | \"content\" | \"display\" | \"details\">;\n\t/** Replace the system prompt for this turn. If multiple extensions return this, they are chained. */\n\tsystemPrompt?: string;\n}\n\nexport interface SessionBeforeSwitchResult {\n\tcancel?: boolean;\n}\n\nexport interface SessionBeforeForkResult {\n\tcancel?: boolean;\n\tskipConversationRestore?: boolean;\n}\n\nexport interface SessionBeforeCompactResult {\n\tcancel?: boolean;\n\t/** Full verbatim replacement for the compactable region. */\n\tcompactedText?: string;\n}\n\nexport interface SessionBeforeTreeResult {\n\tcancel?: boolean;\n\tsummary?: {\n\t\tsummary: string;\n\t\tdetails?: unknown;\n\t};\n\t/** Override custom instructions for summarization */\n\tcustomInstructions?: string;\n\t/** Override whether customInstructions replaces the default prompt */\n\treplaceInstructions?: boolean;\n\t/** Override label to attach to the branch summary entry */\n\tlabel?: string;\n}\n"]}
1
+ {"version":3,"file":"event-results.js","sourceRoot":"","sources":["../../../src/core/extensions/event-results.ts"],"names":[],"mappings":"","sourcesContent":["import type { ImageContent, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { BashResult } from \"../bash-executor.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { BashOperations } from \"../tools/bash.ts\";\n\nexport interface ContextEventResult {\n\tmessages?: AgentMessage[];\n}\n\nexport type BeforeProviderRequestEventResult = unknown;\n\nexport interface ToolCallEventResult {\n\t/** Block tool execution. To modify arguments, mutate `event.input` in place instead. */\n\tblock?: boolean;\n\treason?: string;\n\t/**\n\t * Hint that the agent should stop after the current tool batch when this call is blocked.\n\t * Early termination only happens when every finalized tool result in the batch sets this to true.\n\t */\n\tterminate?: boolean;\n}\n\n/** Result from user_bash event handler */\nexport interface UserBashEventResult {\n\t/** Custom operations to use for execution */\n\toperations?: BashOperations;\n\t/** Full replacement: extension handled execution, use this result */\n\tresult?: BashResult;\n}\n\nexport interface ToolResultEventResult {\n\tcontent?: (TextContent | ImageContent)[];\n\tdetails?: unknown;\n\tisError?: boolean;\n}\n\nexport interface MessageEndEventResult {\n\t/** Replace the finalized message. The replacement must keep the original message role. */\n\tmessage?: AgentMessage;\n}\n\nexport interface BeforeAgentStartEventResult {\n\tmessage?: Pick<CustomMessage, \"customType\" | \"content\" | \"display\" | \"details\">;\n\t/** Replace the system prompt for this turn. If multiple extensions return this, they are chained. */\n\tsystemPrompt?: string;\n}\n\nexport interface SessionBeforeSwitchResult {\n\tcancel?: boolean;\n}\n\nexport interface SessionBeforeForkResult {\n\tcancel?: boolean;\n\tskipConversationRestore?: boolean;\n}\n\nexport interface SessionBeforeCompactResult {\n\tcancel?: boolean;\n\t/** Full verbatim replacement for the compactable region. */\n\tcompactedText?: string;\n}\n\nexport interface SessionBeforeTreeResult {\n\tcancel?: boolean;\n\tsummary?: {\n\t\tsummary: string;\n\t\tdetails?: unknown;\n\t};\n\t/** Override custom instructions for summarization */\n\tcustomInstructions?: string;\n\t/** Override whether customInstructions replaces the default prompt */\n\treplaceInstructions?: boolean;\n\t/** Override label to attach to the branch summary entry */\n\tlabel?: string;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Extension system for lifecycle events and custom tools.
3
3
  */
4
- export type { ConstrainedSamplingConfig } from "@earendil-works/pi-ai/compat";
4
+ export type { ConstrainedSamplingConfig } from "@bastani/pi-ai/compat";
5
5
  export type { AtomicProviderCompat } from "../model-capabilities.ts";
6
6
  export type { SlashCommandInfo, SlashCommandSource } from "../slash-commands.ts";
7
7
  export type { SourceInfo } from "../source-info.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,GACd,MAAM,aAAa,CAAC;AAerB,OAAO,EACN,0BAA0B,EAC1B,qBAAqB,GACrB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AA0KlG,cAAc;AACd,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC","sourcesContent":["/**\n * Extension system for lifecycle events and custom tools.\n */\n\nexport type { ConstrainedSamplingConfig } from \"@earendil-works/pi-ai/compat\";\nexport type { AtomicProviderCompat } from \"../model-capabilities.ts\";\nexport type { SlashCommandInfo, SlashCommandSource } from \"../slash-commands.ts\";\nexport type { SourceInfo } from \"../source-info.ts\";\nexport type { WorkflowResourceProvider, WorkflowResourceProviderInput } from \"./loader.ts\";\nexport {\n\tcreateExtensionRuntime,\n\tdiscoverAndLoadExtensions,\n\tloadExtensionFromFactory,\n\tloadExtensions,\n} from \"./loader.ts\";\nexport type {\n\tInstallReactiveWidgetOptions,\n\tReactiveWidgetAction,\n\tReactiveWidgetComponent,\n\tReactiveWidgetController,\n\tReactiveWidgetFactory,\n\tReactiveWidgetRefreshReason,\n\tReactiveWidgetRenderContext,\n\tReactiveWidgetRenderState,\n\tReactiveWidgetScheduler,\n\tReactiveWidgetTimerApi,\n\tReactiveWidgetTimerHandle,\n\tReactiveWidgetUi,\n} from \"./reactive-widget.ts\";\nexport {\n\tdecideReactiveWidgetAction,\n\tinstallReactiveWidget,\n} from \"./reactive-widget.ts\";\nexport type {\n\tExtensionErrorListener,\n\tForkHandler,\n\tNavigateTreeHandler,\n\tNewSessionHandler,\n\tShutdownHandler,\n\tSwitchSessionHandler,\n} from \"./runner.ts\";\nexport { ExtensionRunner } from \"./runner.ts\";\nexport { isStaleExtensionContextError, STALE_EXTENSION_CONTEXT_MARKER } from \"./stale-context.ts\";\nexport type {\n\tAfterProviderResponseEvent,\n\tAgentEndEvent,\n\tAgentSettledEvent,\n\tAgentStartEvent,\n\t// Re-exports\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tAppendEntryHandler,\n\t// App keybindings (for custom editors)\n\tAppKeybinding,\n\tAutocompleteProviderFactory,\n\t// Events - Tool (ToolCallEvent types)\n\tBashToolCallEvent,\n\tBashToolResultEvent,\n\tBeforeAgentStartEvent,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderHeadersEvent,\n\tBeforeProviderRequestEvent,\n\tBeforeProviderRequestEventResult,\n\tBuildSystemPromptOptions,\n\t// Context\n\tCompactOptions,\n\t// Events - Agent\n\tContextEvent,\n\t// Event Results\n\tContextEventResult,\n\tContextUsage,\n\tCustomMessageDelivery,\n\tCustomToolCallEvent,\n\tCustomToolResultEvent,\n\tEditorFactory,\n\tEditToolCallEvent,\n\tEditToolResultEvent,\n\t// Message Rendering\n\tEntryRenderer,\n\tEntryRenderOptions,\n\tExecOptions,\n\tExecResult,\n\tExtension,\n\tExtensionActions,\n\t// API\n\tExtensionAPI,\n\tExtensionCommandContext,\n\tExtensionCommandContextActions,\n\tExtensionContext,\n\tExtensionContextActions,\n\tExtensionCustomComponent,\n\t// Errors\n\tExtensionError,\n\tExtensionEvent,\n\tExtensionFactory,\n\tExtensionFlag,\n\tExtensionHandler,\n\tExtensionMode,\n\t// Runtime\n\tExtensionRuntime,\n\tExtensionScopedModels,\n\tExtensionShortcut,\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tFindToolCallEvent,\n\tFindToolResultEvent,\n\tGetActiveToolsHandler,\n\tGetAllToolsHandler,\n\tGetCommandsHandler,\n\tGetThinkingLevelHandler,\n\tHostCustomUiState,\n\tHostCustomUiStateListener,\n\tHostInputFormField,\n\tHostInputFormFieldType,\n\tHostInputFormRequest,\n\tHostSessionPickerHandle,\n\tHostSessionPickerRequest,\n\tHostSessionPickerRow,\n\tInlineExtension,\n\t// Events - Input\n\tInputEvent,\n\tInputEventResult,\n\tInputSource,\n\tKeybindingsManager,\n\tLoadExtensionsResult,\n\tLsToolCallEvent,\n\tLsToolResultEvent,\n\tMarkdownTransformContext,\n\tMarkdownTransformer,\n\t// Events - Message\n\tMessageEndEvent,\n\tMessageRenderer,\n\tMessageRenderOptions,\n\tMessageStartEvent,\n\tMessageUpdateEvent,\n\tModelSelectEvent,\n\tModelSelectSource,\n\tOrchestrationContext,\n\tProjectTrustContext,\n\tProjectTrustEvent,\n\tProjectTrustEventDecision,\n\tProjectTrustEventResult,\n\tProjectTrustHandler,\n\t// Provider Registration\n\tProviderConfig,\n\tProviderModelConfig,\n\tReadToolCallEvent,\n\tReadToolResultEvent,\n\t// Commands\n\tRegisteredCommand,\n\tRegisteredTool,\n\tReplacedSessionContext,\n\tResolvedCommand,\n\t// Events - Resources\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tScopedModel,\n\tSendMessageHandler,\n\tSendMessageOptions,\n\tSendMessagesHandler,\n\tSendMessagesOptions,\n\tSendUserMessageHandler,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkEvent,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeEvent,\n\tSessionBeforeTreeResult,\n\tSessionCompactEvent,\n\tSessionEvent,\n\tSessionInfoChangedEvent,\n\tSessionShutdownEvent,\n\t// Events - Session\n\tSessionStartEvent,\n\tSessionTreeEvent,\n\tSetActiveToolsHandler,\n\tSetLabelHandler,\n\tSetModelHandler,\n\tSetThinkingLevelHandler,\n\tSubagentChildPolicy,\n\tSubagentIntercomIdentity,\n\tTerminalInputHandler,\n\t// Events - Tool\n\tToolCallEvent,\n\tToolCallEventResult,\n\t// Tools\n\tToolDefinition,\n\t// Events - Tool Execution\n\tToolExecutionEndEvent,\n\t// Tool execution mode\n\tToolExecutionMode,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tToolInfo,\n\tToolRenderResultOptions,\n\tToolResultEvent,\n\tToolResultEventResult,\n\tTreePreparation,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\t// Events - User Bash\n\tUserBashEvent,\n\tUserBashEventResult,\n\tWidgetPlacement,\n\tWorkflowStageOrchestrationContext,\n\tWorkingIndicatorOptions,\n\tWriteToolCallEvent,\n\tWriteToolResultEvent,\n} from \"./types.ts\";\n// Type guards\nexport {\n\tdefineTool,\n\tisBashToolResult,\n\tisEditToolResult,\n\tisFindToolResult,\n\tisLsToolResult,\n\tisReadToolResult,\n\tisSearchToolResult,\n\tisToolCallEventType,\n\tisWriteToolResult,\n} from \"./types.ts\";\nexport { OVERLAY_ACTIVE_ROW_MARKER } from \"./ui-types.ts\";\nexport { wrapRegisteredTool, wrapRegisteredTools } from \"./wrapper.ts\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,GACd,MAAM,aAAa,CAAC;AAerB,OAAO,EACN,0BAA0B,EAC1B,qBAAqB,GACrB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AA0KlG,cAAc;AACd,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC","sourcesContent":["/**\n * Extension system for lifecycle events and custom tools.\n */\n\nexport type { ConstrainedSamplingConfig } from \"@bastani/pi-ai/compat\";\nexport type { AtomicProviderCompat } from \"../model-capabilities.ts\";\nexport type { SlashCommandInfo, SlashCommandSource } from \"../slash-commands.ts\";\nexport type { SourceInfo } from \"../source-info.ts\";\nexport type { WorkflowResourceProvider, WorkflowResourceProviderInput } from \"./loader.ts\";\nexport {\n\tcreateExtensionRuntime,\n\tdiscoverAndLoadExtensions,\n\tloadExtensionFromFactory,\n\tloadExtensions,\n} from \"./loader.ts\";\nexport type {\n\tInstallReactiveWidgetOptions,\n\tReactiveWidgetAction,\n\tReactiveWidgetComponent,\n\tReactiveWidgetController,\n\tReactiveWidgetFactory,\n\tReactiveWidgetRefreshReason,\n\tReactiveWidgetRenderContext,\n\tReactiveWidgetRenderState,\n\tReactiveWidgetScheduler,\n\tReactiveWidgetTimerApi,\n\tReactiveWidgetTimerHandle,\n\tReactiveWidgetUi,\n} from \"./reactive-widget.ts\";\nexport {\n\tdecideReactiveWidgetAction,\n\tinstallReactiveWidget,\n} from \"./reactive-widget.ts\";\nexport type {\n\tExtensionErrorListener,\n\tForkHandler,\n\tNavigateTreeHandler,\n\tNewSessionHandler,\n\tShutdownHandler,\n\tSwitchSessionHandler,\n} from \"./runner.ts\";\nexport { ExtensionRunner } from \"./runner.ts\";\nexport { isStaleExtensionContextError, STALE_EXTENSION_CONTEXT_MARKER } from \"./stale-context.ts\";\nexport type {\n\tAfterProviderResponseEvent,\n\tAgentEndEvent,\n\tAgentSettledEvent,\n\tAgentStartEvent,\n\t// Re-exports\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tAppendEntryHandler,\n\t// App keybindings (for custom editors)\n\tAppKeybinding,\n\tAutocompleteProviderFactory,\n\t// Events - Tool (ToolCallEvent types)\n\tBashToolCallEvent,\n\tBashToolResultEvent,\n\tBeforeAgentStartEvent,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderHeadersEvent,\n\tBeforeProviderRequestEvent,\n\tBeforeProviderRequestEventResult,\n\tBuildSystemPromptOptions,\n\t// Context\n\tCompactOptions,\n\t// Events - Agent\n\tContextEvent,\n\t// Event Results\n\tContextEventResult,\n\tContextUsage,\n\tCustomMessageDelivery,\n\tCustomToolCallEvent,\n\tCustomToolResultEvent,\n\tEditorFactory,\n\tEditToolCallEvent,\n\tEditToolResultEvent,\n\t// Message Rendering\n\tEntryRenderer,\n\tEntryRenderOptions,\n\tExecOptions,\n\tExecResult,\n\tExtension,\n\tExtensionActions,\n\t// API\n\tExtensionAPI,\n\tExtensionCommandContext,\n\tExtensionCommandContextActions,\n\tExtensionContext,\n\tExtensionContextActions,\n\tExtensionCustomComponent,\n\t// Errors\n\tExtensionError,\n\tExtensionEvent,\n\tExtensionFactory,\n\tExtensionFlag,\n\tExtensionHandler,\n\tExtensionMode,\n\t// Runtime\n\tExtensionRuntime,\n\tExtensionScopedModels,\n\tExtensionShortcut,\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tFindToolCallEvent,\n\tFindToolResultEvent,\n\tGetActiveToolsHandler,\n\tGetAllToolsHandler,\n\tGetCommandsHandler,\n\tGetThinkingLevelHandler,\n\tHostCustomUiState,\n\tHostCustomUiStateListener,\n\tHostInputFormField,\n\tHostInputFormFieldType,\n\tHostInputFormRequest,\n\tHostSessionPickerHandle,\n\tHostSessionPickerRequest,\n\tHostSessionPickerRow,\n\tInlineExtension,\n\t// Events - Input\n\tInputEvent,\n\tInputEventResult,\n\tInputSource,\n\tKeybindingsManager,\n\tLoadExtensionsResult,\n\tLsToolCallEvent,\n\tLsToolResultEvent,\n\tMarkdownTransformContext,\n\tMarkdownTransformer,\n\t// Events - Message\n\tMessageEndEvent,\n\tMessageRenderer,\n\tMessageRenderOptions,\n\tMessageStartEvent,\n\tMessageUpdateEvent,\n\tModelSelectEvent,\n\tModelSelectSource,\n\tOrchestrationContext,\n\tProjectTrustContext,\n\tProjectTrustEvent,\n\tProjectTrustEventDecision,\n\tProjectTrustEventResult,\n\tProjectTrustHandler,\n\t// Provider Registration\n\tProviderConfig,\n\tProviderModelConfig,\n\tReadToolCallEvent,\n\tReadToolResultEvent,\n\t// Commands\n\tRegisteredCommand,\n\tRegisteredTool,\n\tReplacedSessionContext,\n\tResolvedCommand,\n\t// Events - Resources\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tScopedModel,\n\tSendMessageHandler,\n\tSendMessageOptions,\n\tSendMessagesHandler,\n\tSendMessagesOptions,\n\tSendUserMessageHandler,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkEvent,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeEvent,\n\tSessionBeforeTreeResult,\n\tSessionCompactEvent,\n\tSessionEvent,\n\tSessionInfoChangedEvent,\n\tSessionShutdownEvent,\n\t// Events - Session\n\tSessionStartEvent,\n\tSessionTreeEvent,\n\tSetActiveToolsHandler,\n\tSetLabelHandler,\n\tSetModelHandler,\n\tSetThinkingLevelHandler,\n\tSubagentChildPolicy,\n\tSubagentIntercomIdentity,\n\tTerminalInputHandler,\n\t// Events - Tool\n\tToolCallEvent,\n\tToolCallEventResult,\n\t// Tools\n\tToolDefinition,\n\t// Events - Tool Execution\n\tToolExecutionEndEvent,\n\t// Tool execution mode\n\tToolExecutionMode,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tToolInfo,\n\tToolRenderResultOptions,\n\tToolResultEvent,\n\tToolResultEventResult,\n\tTreePreparation,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\t// Events - User Bash\n\tUserBashEvent,\n\tUserBashEventResult,\n\tWidgetPlacement,\n\tWorkflowStageOrchestrationContext,\n\tWorkingIndicatorOptions,\n\tWriteToolCallEvent,\n\tWriteToolResultEvent,\n} from \"./types.ts\";\n// Type guards\nexport {\n\tdefineTool,\n\tisBashToolResult,\n\tisEditToolResult,\n\tisFindToolResult,\n\tisLsToolResult,\n\tisReadToolResult,\n\tisSearchToolResult,\n\tisToolCallEventType,\n\tisWriteToolResult,\n} from \"./types.ts\";\nexport { OVERLAY_ACTIVE_ROW_MARKER } from \"./ui-types.ts\";\nexport { wrapRegisteredTool, wrapRegisteredTools } from \"./wrapper.ts\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"loader-api.js","sourceRoot":"","sources":["../../../src/core/extensions/loader-api.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Provider } from \"@earendil-works/pi-ai\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport { type EventBus, registerCanonicalEventBus } from \"../event-bus.ts\";\nimport type { ExecOptions } from \"../exec.ts\";\nimport { execCommand } from \"../exec.ts\";\nimport {\n\temptyWorkflowResourceProvider,\n\tnormalizeWorkflowResourceProvider,\n\ttype ResourceLoaderInheritanceSnapshotProvider,\n\ttype WorkflowResourceProviderInput,\n} from \"./loader-resources.ts\";\nimport type {\n\tEntryRenderer,\n\tExtension,\n\tExtensionAPI,\n\tExtensionContext,\n\tExtensionRuntime,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tProviderConfig,\n\tRegisteredCommand,\n\tToolDefinition,\n} from \"./types.ts\";\n\ntype HandlerFn = (...args: unknown[]) => Promise<unknown>;\n\n/**\n * Create the ExtensionAPI for an extension.\n * Registration methods write to the extension object.\n * Action methods delegate to the shared runtime.\n */\nexport function createExtensionAPI(\n\textension: Extension,\n\truntime: ExtensionRuntime,\n\tcwd: string,\n\teventBus: EventBus,\n\tworkflowResourceProvider: WorkflowResourceProviderInput = emptyWorkflowResourceProvider,\n\tresourceLoaderInheritanceSnapshotProvider?: ResourceLoaderInheritanceSnapshotProvider,\n): ExtensionAPI {\n\tconst workflowResources = normalizeWorkflowResourceProvider(workflowResourceProvider);\n\t// Successive load generations of one session each build a new facade over\n\t// the same shared bus; mapping the facade back to that bus lets\n\t// session-scoped state re-bind across module re-evaluation.\n\tconst events: EventBus = {\n\t\temit(channel, data) {\n\t\t\truntime.assertActive();\n\t\t\teventBus.emit(channel, data);\n\t\t},\n\t\ton(channel, handler) {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.trackEventBusSubscription(eventBus.on(channel, handler));\n\t\t},\n\t};\n\tregisterCanonicalEventBus(events, eventBus);\n\tconst api = {\n\t\ton(event: string, handler: HandlerFn): void {\n\t\t\truntime.assertActive();\n\t\t\tconst list = extension.handlers.get(event) ?? [];\n\t\t\tlist.push(handler);\n\t\t\textension.handlers.set(event, list);\n\t\t},\n\n\t\tregisterTool(tool: ToolDefinition): void {\n\t\t\truntime.assertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"tool\", tool.name) === false) return;\n\t\t\tconst registration = { definition: tool, sourceInfo: extension.sourceInfo };\n\t\t\tif (runtime.stageToolRegistration?.(extension, tool.name, registration)) return;\n\t\t\textension.tools.set(tool.name, registration);\n\t\t\tif (runtime.refreshToolsAfterRegistration) runtime.refreshToolsAfterRegistration();\n\t\t\telse runtime.refreshTools();\n\t\t},\n\n\t\tregisterCommand(name: string, options: Omit<RegisteredCommand, \"name\" | \"sourceInfo\">): void {\n\t\t\truntime.assertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"command\", name) === false) return;\n\t\t\tconst registration = { name, sourceInfo: extension.sourceInfo, ...options };\n\t\t\tif (runtime.stageCommandRegistration?.(extension, name, registration)) return;\n\t\t\textension.commands.set(name, registration);\n\t\t},\n\n\t\tregisterShortcut(\n\t\t\tshortcut: KeyId,\n\t\t\toptions: {\n\t\t\t\tdescription?: string;\n\t\t\t\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\t\t\t},\n\t\t): void {\n\t\t\truntime.assertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"shortcut\", shortcut) === false) return;\n\t\t\tconst registration = { shortcut, extensionPath: extension.path, ...options };\n\t\t\tif (runtime.stageShortcutRegistration?.(extension, shortcut, registration)) return;\n\t\t\textension.shortcuts.set(shortcut, registration);\n\t\t},\n\n\t\tregisterFlag(\n\t\t\tname: string,\n\t\t\toptions: {\n\t\t\t\tdescription?: string;\n\t\t\t\ttype: \"boolean\" | \"string\";\n\t\t\t\tdefault?: boolean | string;\n\t\t\t},\n\t\t): void {\n\t\t\truntime.assertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"flag\", name) === false) return;\n\t\t\tconst registration = { name, extensionPath: extension.path, ...options };\n\t\t\tif (runtime.stageFlagRegistration?.(extension, name, registration, options.default)) return;\n\t\t\textension.flags.set(name, registration);\n\t\t\truntime.flagOwners ??= new Map();\n\t\t\tconst flagOwners = runtime.flagOwners;\n\t\t\truntime.flagOwnerOrigins ??= new Map();\n\t\t\tconst flagOwnerOrigins = runtime.flagOwnerOrigins;\n\t\t\tif (!flagOwners.has(name)) {\n\t\t\t\tflagOwners.set(name, extension.path);\n\t\t\t\tflagOwnerOrigins.set(name, extension.sourceInfo.configurationOrigin);\n\t\t\t}\n\t\t\tif (options.default !== undefined && !runtime.flagValues.has(name)) {\n\t\t\t\tif (runtime.applyFlagDefaultAfterRegistration) {\n\t\t\t\t\truntime.applyFlagDefaultAfterRegistration(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\textension.path,\n\t\t\t\t\t\toptions.default,\n\t\t\t\t\t\textension.sourceInfo.configurationOrigin,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\truntime.flagValues.set(name, options.default);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tregisterMessageRenderer<T>(customType: string, renderer: MessageRenderer<T>): void {\n\t\t\truntime.assertActive();\n\t\t\textension.messageRenderers.set(customType, renderer as MessageRenderer);\n\t\t},\n\n\t\tregisterMarkdownTransformer(transformer: MarkdownTransformer): void {\n\t\t\truntime.assertActive();\n\t\t\textension.markdownTransformer = transformer;\n\t\t},\n\n\t\tregisterEntryRenderer<T>(customType: string, renderer: EntryRenderer<T>): void {\n\t\t\truntime.assertActive();\n\t\t\textension.entryRenderers.set(customType, renderer as EntryRenderer);\n\t\t},\n\n\t\tgetFlag(name: string): boolean | string | undefined {\n\t\t\truntime.assertActive();\n\t\t\tconst pendingDefault = runtime.getPendingFlagDefault?.(extension.path, name);\n\t\t\tif (!extension.flags.has(name) && pendingDefault === undefined) return undefined;\n\t\t\treturn runtime.flagValues.get(name) ?? pendingDefault;\n\t\t},\n\n\t\tgetWorkflowResources() {\n\t\t\truntime.assertActive();\n\t\t\treturn [...workflowResources.get()];\n\t\t},\n\n\t\tasync refreshWorkflowResources() {\n\t\t\truntime.assertActive();\n\t\t\tconst refreshed = await workflowResources.refresh?.();\n\t\t\treturn [...(refreshed ?? workflowResources.get())];\n\t\t},\n\n\t\tgetResourceLoaderInheritanceSnapshot() {\n\t\t\truntime.assertActive();\n\t\t\treturn resourceLoaderInheritanceSnapshotProvider?.() ?? {};\n\t\t},\n\n\t\tsendMessage(message, options): void | Promise<void> {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.sendMessage(message, options);\n\t\t},\n\n\t\tsendMessages(messages, options): void | Promise<void> {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.sendMessages(messages, options);\n\t\t},\n\n\t\tsendUserMessage(content, options): void {\n\t\t\truntime.assertActive();\n\t\t\truntime.sendUserMessage(content, options);\n\t\t},\n\n\t\tappendEntry(customType: string, data?: unknown): void {\n\t\t\truntime.assertActive();\n\t\t\truntime.appendEntry(customType, data);\n\t\t},\n\n\t\tsetSessionName(name: string): void {\n\t\t\truntime.assertActive();\n\t\t\truntime.setSessionName(name);\n\t\t},\n\n\t\tgetSessionName(): string | undefined {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getSessionName();\n\t\t},\n\n\t\tsetLabel(entryId: string, label: string | undefined): void {\n\t\t\truntime.assertActive();\n\t\t\truntime.setLabel(entryId, label);\n\t\t},\n\n\t\texec(command: string, args: string[], options?: ExecOptions) {\n\t\t\truntime.assertActive();\n\t\t\treturn execCommand(command, args, options?.cwd ?? cwd, options);\n\t\t},\n\n\t\tgetActiveTools(): string[] {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getActiveToolsAfterRegistration?.(extension) ?? runtime.getActiveTools();\n\t\t},\n\n\t\tgetAllTools() {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getAllToolsAfterRegistration?.(extension) ?? runtime.getAllTools();\n\t\t},\n\n\t\tsetActiveTools(toolNames: string[]): void {\n\t\t\truntime.assertActive();\n\t\t\tif (!runtime.setActiveToolsAfterRegistration?.(extension, toolNames)) runtime.setActiveTools(toolNames);\n\t\t},\n\n\t\tgetCommands() {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getCommandsAfterRegistration?.(extension) ?? runtime.getCommands();\n\t\t},\n\n\t\tsetModel(model) {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.setModel(model);\n\t\t},\n\n\t\tgetThinkingLevel() {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getThinkingLevel();\n\t\t},\n\n\t\tsetThinkingLevel(level) {\n\t\t\truntime.assertActive();\n\t\t\truntime.setThinkingLevel(level);\n\t\t},\n\n\t\tregisterProvider(nameOrProvider: string | Provider, config?: ProviderConfig) {\n\t\t\truntime.assertActive();\n\t\t\tif (typeof nameOrProvider === \"string\") {\n\t\t\t\tif (!config) throw new Error(\"Provider config is required\");\n\t\t\t\truntime.registerProvider(nameOrProvider, config, extension.path);\n\t\t\t} else {\n\t\t\t\truntime.registerProvider(nameOrProvider, extension.path);\n\t\t\t}\n\t\t},\n\n\t\tunregisterProvider(name: string) {\n\t\t\truntime.assertActive();\n\t\t\truntime.unregisterProvider(name, extension.path);\n\t\t},\n\n\t\tevents,\n\t} as ExtensionAPI;\n\n\treturn api;\n}\n"]}
1
+ {"version":3,"file":"loader-api.js","sourceRoot":"","sources":["../../../src/core/extensions/loader-api.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Provider } from \"@bastani/pi-ai\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport { type EventBus, registerCanonicalEventBus } from \"../event-bus.ts\";\nimport type { ExecOptions } from \"../exec.ts\";\nimport { execCommand } from \"../exec.ts\";\nimport {\n\temptyWorkflowResourceProvider,\n\tnormalizeWorkflowResourceProvider,\n\ttype ResourceLoaderInheritanceSnapshotProvider,\n\ttype WorkflowResourceProviderInput,\n} from \"./loader-resources.ts\";\nimport type {\n\tEntryRenderer,\n\tExtension,\n\tExtensionAPI,\n\tExtensionContext,\n\tExtensionRuntime,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tProviderConfig,\n\tRegisteredCommand,\n\tToolDefinition,\n} from \"./types.ts\";\n\ntype HandlerFn = (...args: unknown[]) => Promise<unknown>;\n\n/**\n * Create the ExtensionAPI for an extension.\n * Registration methods write to the extension object.\n * Action methods delegate to the shared runtime.\n */\nexport function createExtensionAPI(\n\textension: Extension,\n\truntime: ExtensionRuntime,\n\tcwd: string,\n\teventBus: EventBus,\n\tworkflowResourceProvider: WorkflowResourceProviderInput = emptyWorkflowResourceProvider,\n\tresourceLoaderInheritanceSnapshotProvider?: ResourceLoaderInheritanceSnapshotProvider,\n): ExtensionAPI {\n\tconst workflowResources = normalizeWorkflowResourceProvider(workflowResourceProvider);\n\t// Successive load generations of one session each build a new facade over\n\t// the same shared bus; mapping the facade back to that bus lets\n\t// session-scoped state re-bind across module re-evaluation.\n\tconst events: EventBus = {\n\t\temit(channel, data) {\n\t\t\truntime.assertActive();\n\t\t\teventBus.emit(channel, data);\n\t\t},\n\t\ton(channel, handler) {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.trackEventBusSubscription(eventBus.on(channel, handler));\n\t\t},\n\t};\n\tregisterCanonicalEventBus(events, eventBus);\n\tconst api = {\n\t\ton(event: string, handler: HandlerFn): void {\n\t\t\truntime.assertActive();\n\t\t\tconst list = extension.handlers.get(event) ?? [];\n\t\t\tlist.push(handler);\n\t\t\textension.handlers.set(event, list);\n\t\t},\n\n\t\tregisterTool(tool: ToolDefinition): void {\n\t\t\truntime.assertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"tool\", tool.name) === false) return;\n\t\t\tconst registration = { definition: tool, sourceInfo: extension.sourceInfo };\n\t\t\tif (runtime.stageToolRegistration?.(extension, tool.name, registration)) return;\n\t\t\textension.tools.set(tool.name, registration);\n\t\t\tif (runtime.refreshToolsAfterRegistration) runtime.refreshToolsAfterRegistration();\n\t\t\telse runtime.refreshTools();\n\t\t},\n\n\t\tregisterCommand(name: string, options: Omit<RegisteredCommand, \"name\" | \"sourceInfo\">): void {\n\t\t\truntime.assertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"command\", name) === false) return;\n\t\t\tconst registration = { name, sourceInfo: extension.sourceInfo, ...options };\n\t\t\tif (runtime.stageCommandRegistration?.(extension, name, registration)) return;\n\t\t\textension.commands.set(name, registration);\n\t\t},\n\n\t\tregisterShortcut(\n\t\t\tshortcut: KeyId,\n\t\t\toptions: {\n\t\t\t\tdescription?: string;\n\t\t\t\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\t\t\t},\n\t\t): void {\n\t\t\truntime.assertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"shortcut\", shortcut) === false) return;\n\t\t\tconst registration = { shortcut, extensionPath: extension.path, ...options };\n\t\t\tif (runtime.stageShortcutRegistration?.(extension, shortcut, registration)) return;\n\t\t\textension.shortcuts.set(shortcut, registration);\n\t\t},\n\n\t\tregisterFlag(\n\t\t\tname: string,\n\t\t\toptions: {\n\t\t\t\tdescription?: string;\n\t\t\t\ttype: \"boolean\" | \"string\";\n\t\t\t\tdefault?: boolean | string;\n\t\t\t},\n\t\t): void {\n\t\t\truntime.assertActive();\n\t\t\tif (runtime.canRegisterResource?.(extension, \"flag\", name) === false) return;\n\t\t\tconst registration = { name, extensionPath: extension.path, ...options };\n\t\t\tif (runtime.stageFlagRegistration?.(extension, name, registration, options.default)) return;\n\t\t\textension.flags.set(name, registration);\n\t\t\truntime.flagOwners ??= new Map();\n\t\t\tconst flagOwners = runtime.flagOwners;\n\t\t\truntime.flagOwnerOrigins ??= new Map();\n\t\t\tconst flagOwnerOrigins = runtime.flagOwnerOrigins;\n\t\t\tif (!flagOwners.has(name)) {\n\t\t\t\tflagOwners.set(name, extension.path);\n\t\t\t\tflagOwnerOrigins.set(name, extension.sourceInfo.configurationOrigin);\n\t\t\t}\n\t\t\tif (options.default !== undefined && !runtime.flagValues.has(name)) {\n\t\t\t\tif (runtime.applyFlagDefaultAfterRegistration) {\n\t\t\t\t\truntime.applyFlagDefaultAfterRegistration(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\textension.path,\n\t\t\t\t\t\toptions.default,\n\t\t\t\t\t\textension.sourceInfo.configurationOrigin,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\truntime.flagValues.set(name, options.default);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tregisterMessageRenderer<T>(customType: string, renderer: MessageRenderer<T>): void {\n\t\t\truntime.assertActive();\n\t\t\textension.messageRenderers.set(customType, renderer as MessageRenderer);\n\t\t},\n\n\t\tregisterMarkdownTransformer(transformer: MarkdownTransformer): void {\n\t\t\truntime.assertActive();\n\t\t\textension.markdownTransformer = transformer;\n\t\t},\n\n\t\tregisterEntryRenderer<T>(customType: string, renderer: EntryRenderer<T>): void {\n\t\t\truntime.assertActive();\n\t\t\textension.entryRenderers.set(customType, renderer as EntryRenderer);\n\t\t},\n\n\t\tgetFlag(name: string): boolean | string | undefined {\n\t\t\truntime.assertActive();\n\t\t\tconst pendingDefault = runtime.getPendingFlagDefault?.(extension.path, name);\n\t\t\tif (!extension.flags.has(name) && pendingDefault === undefined) return undefined;\n\t\t\treturn runtime.flagValues.get(name) ?? pendingDefault;\n\t\t},\n\n\t\tgetWorkflowResources() {\n\t\t\truntime.assertActive();\n\t\t\treturn [...workflowResources.get()];\n\t\t},\n\n\t\tasync refreshWorkflowResources() {\n\t\t\truntime.assertActive();\n\t\t\tconst refreshed = await workflowResources.refresh?.();\n\t\t\treturn [...(refreshed ?? workflowResources.get())];\n\t\t},\n\n\t\tgetResourceLoaderInheritanceSnapshot() {\n\t\t\truntime.assertActive();\n\t\t\treturn resourceLoaderInheritanceSnapshotProvider?.() ?? {};\n\t\t},\n\n\t\tsendMessage(message, options): void | Promise<void> {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.sendMessage(message, options);\n\t\t},\n\n\t\tsendMessages(messages, options): void | Promise<void> {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.sendMessages(messages, options);\n\t\t},\n\n\t\tsendUserMessage(content, options): void {\n\t\t\truntime.assertActive();\n\t\t\truntime.sendUserMessage(content, options);\n\t\t},\n\n\t\tappendEntry(customType: string, data?: unknown): void {\n\t\t\truntime.assertActive();\n\t\t\truntime.appendEntry(customType, data);\n\t\t},\n\n\t\tsetSessionName(name: string): void {\n\t\t\truntime.assertActive();\n\t\t\truntime.setSessionName(name);\n\t\t},\n\n\t\tgetSessionName(): string | undefined {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getSessionName();\n\t\t},\n\n\t\tsetLabel(entryId: string, label: string | undefined): void {\n\t\t\truntime.assertActive();\n\t\t\truntime.setLabel(entryId, label);\n\t\t},\n\n\t\texec(command: string, args: string[], options?: ExecOptions) {\n\t\t\truntime.assertActive();\n\t\t\treturn execCommand(command, args, options?.cwd ?? cwd, options);\n\t\t},\n\n\t\tgetActiveTools(): string[] {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getActiveToolsAfterRegistration?.(extension) ?? runtime.getActiveTools();\n\t\t},\n\n\t\tgetAllTools() {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getAllToolsAfterRegistration?.(extension) ?? runtime.getAllTools();\n\t\t},\n\n\t\tsetActiveTools(toolNames: string[]): void {\n\t\t\truntime.assertActive();\n\t\t\tif (!runtime.setActiveToolsAfterRegistration?.(extension, toolNames)) runtime.setActiveTools(toolNames);\n\t\t},\n\n\t\tgetCommands() {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getCommandsAfterRegistration?.(extension) ?? runtime.getCommands();\n\t\t},\n\n\t\tsetModel(model) {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.setModel(model);\n\t\t},\n\n\t\tgetThinkingLevel() {\n\t\t\truntime.assertActive();\n\t\t\treturn runtime.getThinkingLevel();\n\t\t},\n\n\t\tsetThinkingLevel(level) {\n\t\t\truntime.assertActive();\n\t\t\truntime.setThinkingLevel(level);\n\t\t},\n\n\t\tregisterProvider(nameOrProvider: string | Provider, config?: ProviderConfig) {\n\t\t\truntime.assertActive();\n\t\t\tif (typeof nameOrProvider === \"string\") {\n\t\t\t\tif (!config) throw new Error(\"Provider config is required\");\n\t\t\t\truntime.registerProvider(nameOrProvider, config, extension.path);\n\t\t\t} else {\n\t\t\t\truntime.registerProvider(nameOrProvider, extension.path);\n\t\t\t}\n\t\t},\n\n\t\tunregisterProvider(name: string) {\n\t\t\truntime.assertActive();\n\t\t\truntime.unregisterProvider(name, extension.path);\n\t\t},\n\n\t\tevents,\n\t} as ExtensionAPI;\n\n\treturn api;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"loader-virtual-modules.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/loader-virtual-modules.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,iBAAe,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyDnE;AAoBD;;;;;GAKG;AACH,iBAAS,oBAAoB,IAAI,MAAM,CAMtC;AAiBD;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,CAAC,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAWD,iBAAS,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGxD;AAgFD,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAYpG;AA8GD,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAOrE;AAiBD;;;;;;;;GAQG;AACH,iBAAS,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ5E;AAKD;;;GAGG;AACH,iBAAS,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqE5C;AAED,eAAO,MAAM,wBAAwB;;;;;;;oDAOY,MAAM,eAAe,mBAAmB;oDAExC,MAAM,eAAe,mBAAmB;CAExF,CAAC;AAgFF,wBAAsB,mBAAmB,CACxC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CA4BvC"}
1
+ {"version":3,"file":"loader-virtual-modules.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/loader-virtual-modules.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,iBAAe,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA6DnE;AAoBD;;;;;GAKG;AACH,iBAAS,oBAAoB,IAAI,MAAM,CAMtC;AAiBD;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,CAAC,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAWD,iBAAS,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGxD;AAgFD,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAYpG;AA8GD,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAOrE;AAiBD;;;;;;;;GAQG;AACH,iBAAS,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ5E;AAKD;;;GAGG;AACH,iBAAS,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0E5C;AAED,eAAO,MAAM,wBAAwB;;;;;;;oDAOY,MAAM,eAAe,mBAAmB;oDAExC,MAAM,eAAe,mBAAmB;CAExF,CAAC;AAgFF,wBAAsB,mBAAmB,CACxC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CA4BvC"}
@@ -21,14 +21,14 @@ async function loadVirtualModules() {
21
21
  import("@earendil-works/pi-tui/dist/layout.js"),
22
22
  // pi 0.80.2: the old global pi-ai API moved off the root entrypoint onto
23
23
  // `/compat` (a strict superset). Extensions still `import ... from
24
- // "@earendil-works/pi-ai"`, so we load the compat module here and key it
24
+ // "@bastani/pi-ai"`, so we load the compat module here and key it
25
25
  // under the root specifier below to keep every extension working unchanged.
26
- import("@earendil-works/pi-ai/compat"),
27
- import("@earendil-works/pi-ai/oauth"),
26
+ import("@bastani/pi-ai/compat"),
27
+ import("@bastani/pi-ai/oauth"),
28
28
  // Re-exported from `@bastani/atomic`; jiti-loaded extensions (the builtin
29
29
  // packages import the host entry) reach this specifier, so it needs a key
30
30
  // of its own instead of falling through to the compat/root prefix alias.
31
- import("@earendil-works/pi-ai/api/cloudflare-gateway-binding"),
31
+ import("@bastani/pi-ai/api/cloudflare-gateway-binding"),
32
32
  // NOTE: This import works because loader.ts exports are NOT re-exported from index.ts,
33
33
  // avoiding a circular dependency while preserving the package-name extension import path.
34
34
  import("../../index.js"),
@@ -43,6 +43,10 @@ async function loadVirtualModules() {
43
43
  "@earendil-works/pi-agent-core": piAgentCore,
44
44
  "@earendil-works/pi-tui": piTui,
45
45
  "@earendil-works/pi-tui/dist/layout.js": piTuiLayout,
46
+ "@bastani/pi-ai": piAi,
47
+ "@bastani/pi-ai/compat": piAi,
48
+ "@bastani/pi-ai/oauth": piAiOauth,
49
+ "@bastani/pi-ai/api/cloudflare-gateway-binding": piAiCloudflareGatewayBinding,
46
50
  "@earendil-works/pi-ai": piAi,
47
51
  "@earendil-works/pi-ai/compat": piAi,
48
52
  "@earendil-works/pi-ai/oauth": piAiOauth,
@@ -382,17 +386,25 @@ function getAliases() {
382
386
  // The workspace path mirrors pi-ai 0.80.x's built dist layout. If an
383
387
  // upstream layout change moves these files, this join needs updating to
384
388
  // match the package's real dist paths.
385
- const piAiEntry = resolveWorkspaceOrImport("ai/dist/compat.js", "@earendil-works/pi-ai");
386
- const piAiCodexResponsesEntry = resolveWorkspaceOrImport("ai/dist/api/openai-codex-responses.js", "@earendil-works/pi-ai");
387
- const piAiOauthEntry = resolveWorkspaceOrImport("ai/dist/oauth.js", "@earendil-works/pi-ai");
388
- const piAiProvidersEntry = resolveWorkspaceOrImport("ai/dist/providers/all.js", "@earendil-works/pi-ai");
389
- const piAiGatewayBindingEntry = resolveWorkspaceOrImport("ai/dist/api/cloudflare-gateway-binding.js", "@earendil-works/pi-ai");
389
+ const piAiEntry = resolveWorkspaceOrImport("ai/dist/compat.js", "@bastani/pi-ai");
390
+ const piAiCodexResponsesEntry = resolveWorkspaceOrImport("ai/dist/api/openai-codex-responses.js", "@bastani/pi-ai");
391
+ const piAiOauthEntry = resolveWorkspaceOrImport("ai/dist/oauth.js", "@bastani/pi-ai");
392
+ const piAiProvidersEntry = resolveWorkspaceOrImport("ai/dist/providers/all.js", "@bastani/pi-ai");
393
+ const piAiCopilotEnvEntry = resolveWorkspaceOrImport("ai/dist/providers/github-copilot-env.js", "@bastani/pi-ai");
394
+ const piAiGatewayBindingEntry = resolveWorkspaceOrImport("ai/dist/api/cloudflare-gateway-binding.js", "@bastani/pi-ai");
390
395
  _aliases = {
391
396
  "@bastani/atomic": piCodingAgentEntry,
392
397
  "@earendil-works/pi-coding-agent": piCodingAgentEntry,
393
398
  "@earendil-works/pi-agent-core": piAgentCoreEntry,
394
399
  "@earendil-works/pi-tui/dist/layout.js": piTuiLayoutEntry,
395
400
  "@earendil-works/pi-tui": piTuiEntry,
401
+ "@bastani/pi-ai/api/openai-codex-responses": piAiCodexResponsesEntry,
402
+ "@bastani/pi-ai/oauth": piAiOauthEntry,
403
+ "@bastani/pi-ai/providers/all": piAiProvidersEntry,
404
+ "@bastani/pi-ai/providers/github-copilot-env": piAiCopilotEnvEntry,
405
+ "@bastani/pi-ai/compat": piAiEntry,
406
+ "@bastani/pi-ai/api/cloudflare-gateway-binding": piAiGatewayBindingEntry,
407
+ "@bastani/pi-ai": piAiEntry,
396
408
  "@earendil-works/pi-ai/api/openai-codex-responses": piAiCodexResponsesEntry,
397
409
  "@earendil-works/pi-ai/oauth": piAiOauthEntry,
398
410
  "@earendil-works/pi-ai/providers/all": piAiProvidersEntry,
@@ -1 +1 @@
1
- {"version":3,"file":"loader-virtual-modules.js","sourceRoot":"","sources":["../../../src/core/extensions/loader-virtual-modules.ts"],"names":[],"mappings":"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","sourcesContent":["import * as crypto from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport * as path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { createJiti } from \"jiti/static\";\nimport { getExtensionTranspileCacheDir, isBunBinary, isBundledBuild } from \"../../config.ts\";\nimport { resolutionBaseUrl } from \"../../utils/module-require.ts\";\nimport { resolvePath } from \"../../utils/paths.ts\";\nimport { moduleDirFromMetaUrl } from \"../../utils/split-launcher.ts\";\nimport type { ExtensionFactory } from \"./types.ts\";\n\nconst require = createRequire(import.meta.url);\nlet _virtualModules: Record<string, object> | null = null;\nlet _virtualModulesPromise: Promise<Record<string, object>> | null = null;\n\nasync function loadVirtualModules(): Promise<Record<string, object>> {\n\tconst [\n\t\ttypebox,\n\t\ttypeboxCompile,\n\t\ttypeboxValue,\n\t\tpiAgentCore,\n\t\tpiTui,\n\t\tpiTuiLayout,\n\t\tpiAi,\n\t\tpiAiOauth,\n\t\tpiAiCloudflareGatewayBinding,\n\t\tpiCodingAgent,\n\t] = await Promise.all([\n\t\timport(\"typebox\"),\n\t\timport(\"typebox/compile\"),\n\t\timport(\"typebox/value\"),\n\t\timport(\"@earendil-works/pi-agent-core\"),\n\t\timport(\"@earendil-works/pi-tui\"),\n\t\timport(\"@earendil-works/pi-tui/dist/layout.js\"),\n\t\t// pi 0.80.2: the old global pi-ai API moved off the root entrypoint onto\n\t\t// `/compat` (a strict superset). Extensions still `import ... from\n\t\t// \"@earendil-works/pi-ai\"`, so we load the compat module here and key it\n\t\t// under the root specifier below to keep every extension working unchanged.\n\t\timport(\"@earendil-works/pi-ai/compat\"),\n\t\timport(\"@earendil-works/pi-ai/oauth\"),\n\t\t// Re-exported from `@bastani/atomic`; jiti-loaded extensions (the builtin\n\t\t// packages import the host entry) reach this specifier, so it needs a key\n\t\t// of its own instead of falling through to the compat/root prefix alias.\n\t\timport(\"@earendil-works/pi-ai/api/cloudflare-gateway-binding\"),\n\t\t// NOTE: This import works because loader.ts exports are NOT re-exported from index.ts,\n\t\t// avoiding a circular dependency while preserving the package-name extension import path.\n\t\timport(\"../../index.ts\"),\n\t]);\n\n\treturn {\n\t\ttypebox,\n\t\t\"typebox/compile\": typeboxCompile,\n\t\t\"typebox/value\": typeboxValue,\n\t\t\"@sinclair/typebox\": typebox,\n\t\t\"@sinclair/typebox/compile\": typeboxCompile,\n\t\t\"@sinclair/typebox/value\": typeboxValue,\n\t\t\"@earendil-works/pi-agent-core\": piAgentCore,\n\t\t\"@earendil-works/pi-tui\": piTui,\n\t\t\"@earendil-works/pi-tui/dist/layout.js\": piTuiLayout,\n\t\t\"@earendil-works/pi-ai\": piAi,\n\t\t\"@earendil-works/pi-ai/compat\": piAi,\n\t\t\"@earendil-works/pi-ai/oauth\": piAiOauth,\n\t\t\"@earendil-works/pi-ai/api/cloudflare-gateway-binding\": piAiCloudflareGatewayBinding,\n\t\t\"@bastani/atomic\": piCodingAgent,\n\t\t\"@mariozechner/pi-agent-core\": piAgentCore,\n\t\t\"@mariozechner/pi-tui\": piTui,\n\t\t\"@mariozechner/pi-tui/dist/layout.js\": piTuiLayout,\n\t\t\"@mariozechner/pi-ai\": piAi,\n\t\t\"@mariozechner/pi-ai/compat\": piAi,\n\t\t\"@mariozechner/pi-ai/oauth\": piAiOauth,\n\t\t\"@mariozechner/pi-ai/api/cloudflare-gateway-binding\": piAiCloudflareGatewayBinding,\n\t};\n}\n\n/** Modules available to extensions via virtualModules (for compiled Bun binary). */\nasync function getVirtualModules(): Promise<Record<string, object>> {\n\tif (_virtualModules) return _virtualModules;\n\t_virtualModulesPromise ??= loadVirtualModules().then(\n\t\t(virtualModules) => {\n\t\t\t_virtualModules = virtualModules;\n\t\t\treturn virtualModules;\n\t\t},\n\t\t(error: Error) => {\n\t\t\t_virtualModulesPromise = null;\n\t\t\tthrow error;\n\t\t},\n\t);\n\treturn _virtualModulesPromise;\n}\nlet _aliases: Record<string, string> | null = null;\nlet _transpileCacheDir: string | null = null;\n\n/**\n * Persistent on-disk cache for jiti-transpiled extension modules.\n * jiti keys cache entries by source-content hash, so entries self-invalidate\n * when extension sources change; stale sibling version dirs are pruned\n * in the background.\n */\nfunction getTranspileCacheDir(): string {\n\tif (_transpileCacheDir) return _transpileCacheDir;\n\t_transpileCacheDir = getExtensionTranspileCacheDir();\n\tfs.mkdirSync(_transpileCacheDir, { recursive: true });\n\tpruneStaleTranspileCaches(_transpileCacheDir);\n\treturn _transpileCacheDir;\n}\n\nfunction pruneStaleTranspileCaches(currentDir: string): void {\n\tconst parent = path.dirname(currentDir);\n\tconst keep = path.basename(currentDir);\n\tvoid fs.promises\n\t\t.readdir(parent)\n\t\t.then((entries) =>\n\t\t\tPromise.all(\n\t\t\t\tentries\n\t\t\t\t\t.filter((entry) => entry !== keep)\n\t\t\t\t\t.map((entry) => fs.promises.rm(path.join(parent, entry), { recursive: true, force: true })),\n\t\t\t),\n\t\t)\n\t\t.catch(() => {});\n}\n\n/**\n * Per-extension-path record of the complete file graph a transformed (jiti)\n * evaluation read, mapping each absolute file path to the SHA256 hex digest of\n * its content at evaluation time. Persisted under the versioned transpile\n * cache directory so pruneStaleTranspileCaches handles version cleanup.\n */\nexport interface ExtensionGraphManifest {\n\tversion: 1;\n\textensionPath: string;\n\tfiles: Record<string, string>;\n}\n\nconst GRAPH_MANIFEST_VERSION = 1;\nconst GRAPH_MANIFEST_DIR_NAME = \"graph-manifests\";\n\nconst graphManifestFileExtensions = new Set([\".ts\", \".tsx\", \".mts\", \".cts\", \".js\", \".mjs\", \".cjs\", \".jsx\", \".json\"]);\n\nfunction graphManifestDir(): string {\n\treturn path.join(getTranspileCacheDir(), GRAPH_MANIFEST_DIR_NAME);\n}\n\nfunction graphManifestPath(extensionPath: string): string {\n\tconst key = crypto.createHash(\"sha256\").update(extensionPath).digest(\"hex\").slice(0, 32);\n\treturn path.join(graphManifestDir(), `${key}.json`);\n}\n\nfunction sha256Hex(content: string | NodeJS.ArrayBufferView): string {\n\treturn crypto.createHash(\"sha256\").update(content).digest(\"hex\");\n}\n\n// jiti's CJS bundle reads every module source in the require graph through\n// fs.readFileSync (even on fsCache hits, since the cache key is a hash of the\n// source), so observing readFileSync while a transformed import is in flight\n// sees the complete transitive graph. The observer records into every active\n// recorder; unrelated reads that interleave only over-record, which at worst\n// forces a redundant re-evaluation later — never a stale one.\nconst fsExports = require(\"node:fs\") as typeof fs;\nconst activeGraphRecorders = new Set<Map<string, string>>();\nlet observedReadFileSync: typeof fs.readFileSync | null = null;\n\nfunction recordObservedRead(target: Parameters<typeof fs.readFileSync>[0], content: string | Buffer): void {\n\tif (typeof target !== \"string\" || !path.isAbsolute(target)) return;\n\tif (!graphManifestFileExtensions.has(path.extname(target).toLowerCase())) return;\n\tconst normalizedTarget = path.normalize(target);\n\tconst cachePrefix = path.normalize(getTranspileCacheDir()) + path.sep;\n\tif (normalizedTarget.toLowerCase().startsWith(cachePrefix.toLowerCase())) return;\n\tconst hash = sha256Hex(content);\n\tfor (const recorder of activeGraphRecorders) {\n\t\trecorder.set(normalizedTarget, hash);\n\t}\n}\n\nfunction installReadFileSyncObserver(): void {\n\tif (observedReadFileSync) return;\n\tconst original = fsExports.readFileSync;\n\tobservedReadFileSync = original;\n\tconst wrapped = ((...args: Parameters<typeof fs.readFileSync>) => {\n\t\tconst content = original(...args);\n\t\trecordObservedRead(args[0], content);\n\t\treturn content;\n\t}) as typeof fs.readFileSync;\n\tfsExports.readFileSync = wrapped;\n}\n\nfunction uninstallReadFileSyncObserver(): void {\n\tif (!observedReadFileSync || activeGraphRecorders.size > 0) return;\n\tfsExports.readFileSync = observedReadFileSync;\n\tobservedReadFileSync = null;\n}\n\nfunction writeGraphManifest(manifest: ExtensionGraphManifest): void {\n\tconst manifestFile = graphManifestPath(manifest.extensionPath);\n\tlet tempFile: string | undefined;\n\ttry {\n\t\tfs.mkdirSync(path.dirname(manifestFile), { recursive: true });\n\t\ttempFile = `${manifestFile}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;\n\t\tfs.writeFileSync(tempFile, JSON.stringify(manifest));\n\t\tfs.renameSync(tempFile, manifestFile);\n\t} catch {\n\t\t// Manifest persistence is best-effort: a missing manifest only means the\n\t\t// next reload cannot prove the graph unchanged and re-evaluates. A failed\n\t\t// replacement must not leave an older manifest behind describing a graph\n\t\t// that no longer matches this evaluation, so invalidate the destination\n\t\t// first, independently of removing the temporary file.\n\t\ttry {\n\t\t\tfs.rmSync(manifestFile, { force: true });\n\t\t} catch {\n\t\t\t// A leftover stale manifest cannot be reused without also matching\n\t\t\t// the in-memory manifest of the same evaluation, and readers\n\t\t\t// tolerate missing or corrupt files.\n\t\t}\n\t\ttry {\n\t\t\tif (tempFile) fs.rmSync(tempFile, { force: true });\n\t\t} catch {\n\t\t\t// Temporary files carry a unique suffix and are never read back.\n\t\t}\n\t}\n}\n\nfunction isStringRecord(value: unknown): value is Record<string, string> {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) return false;\n\treturn Object.values(value).every((entry) => typeof entry === \"string\");\n}\n\nexport function readExtensionGraphManifest(extensionPath: string): ExtensionGraphManifest | undefined {\n\ttry {\n\t\tconst parsed = JSON.parse(\n\t\t\tfs.readFileSync(graphManifestPath(extensionPath), \"utf-8\"),\n\t\t) as Partial<ExtensionGraphManifest>;\n\t\tif (parsed.version !== GRAPH_MANIFEST_VERSION) return undefined;\n\t\tif (parsed.extensionPath !== extensionPath) return undefined;\n\t\tif (!isStringRecord(parsed.files)) return undefined;\n\t\treturn { version: GRAPH_MANIFEST_VERSION, extensionPath, files: parsed.files };\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nasync function recordExtensionGraph<T>(\n\textensionPath: string,\n\tload: () => Promise<T>,\n): Promise<{ result: T; manifest: ExtensionGraphManifest }> {\n\tconst files = new Map<string, string>();\n\tactiveGraphRecorders.add(files);\n\tinstallReadFileSyncObserver();\n\tlet result: T;\n\ttry {\n\t\tresult = await load();\n\t} finally {\n\t\tactiveGraphRecorders.delete(files);\n\t\tuninstallReadFileSyncObserver();\n\t}\n\tconst manifest: ExtensionGraphManifest = {\n\t\tversion: GRAPH_MANIFEST_VERSION,\n\t\textensionPath,\n\t\tfiles: Object.fromEntries([...files.entries()].sort(([a], [b]) => a.localeCompare(b))),\n\t};\n\twriteGraphManifest(manifest);\n\treturn { result, manifest };\n}\n\n/**\n * Factories from transformed evaluations, retained across extension cache\n * generation bumps and paired with the graph manifest recorded by the\n * evaluation that produced them. A retained factory is reused on a reload only\n * when the persisted manifest still equals the paired one and every file in it\n * rehashes to its recorded digest; any doubt (missing or corrupt manifest,\n * missing file, hash mismatch, changed graph shape) falls back to a fresh\n * transformed re-evaluation, which re-records the manifest.\n */\nconst retainedTransformedLoads = new Map<string, { factory: ExtensionFactory; manifest: ExtensionGraphManifest }>();\n\nfunction manifestFilesEqual(a: Record<string, string>, b: Record<string, string>): boolean {\n\tconst aEntries = Object.entries(a);\n\tif (aEntries.length !== Object.keys(b).length) return false;\n\treturn aEntries.every(([filePath, hash]) => b[filePath] === hash);\n}\n\nfunction graphUnchangedSince(manifest: ExtensionGraphManifest): boolean {\n\tconst stored = readExtensionGraphManifest(manifest.extensionPath);\n\tif (!stored || !manifestFilesEqual(stored.files, manifest.files)) return false;\n\tconst entries = Object.entries(manifest.files);\n\tif (entries.length === 0) return false;\n\tfor (const [filePath, hash] of entries) {\n\t\ttry {\n\t\t\tif (sha256Hex(fs.readFileSync(filePath)) !== hash) return false;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * A factory can defer loading local code until it is invoked (e.g. a\n * `require()` inside the factory body). Those reads are invisible to the\n * import-time recording, so retained factories are wrapped to record reads\n * that happen while the factory executes and merge them into the retained and\n * persisted manifest — editing a deferred dependency then invalidates reuse\n * like any other graph file.\n */\nfunction withDeferredGraphRecording(extensionPath: string, factory: ExtensionFactory): ExtensionFactory {\n\treturn (pi) => {\n\t\tconst files = new Map<string, string>();\n\t\tactiveGraphRecorders.add(files);\n\t\tinstallReadFileSyncObserver();\n\t\tconst finish = () => {\n\t\t\tactiveGraphRecorders.delete(files);\n\t\t\tuninstallReadFileSyncObserver();\n\t\t\tif (files.size > 0) mergeDeferredGraphReads(extensionPath, files);\n\t\t};\n\t\ttry {\n\t\t\tconst result = factory(pi);\n\t\t\tif (\n\t\t\t\tresult !== null &&\n\t\t\t\t(typeof result === \"object\" || typeof result === \"function\") &&\n\t\t\t\ttypeof (result as PromiseLike<void>).then === \"function\"\n\t\t\t) {\n\t\t\t\treturn Promise.resolve(result).finally(finish);\n\t\t\t}\n\t\t\tfinish();\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tfinish();\n\t\t\tthrow error;\n\t\t}\n\t};\n}\n\nfunction mergeDeferredGraphReads(extensionPath: string, files: Map<string, string>): void {\n\tconst retained = retainedTransformedLoads.get(extensionPath);\n\tif (!retained) return;\n\tlet changed = false;\n\tfor (const [filePath, hash] of files) {\n\t\tif (retained.manifest.files[filePath] !== hash) {\n\t\t\tretained.manifest.files[filePath] = hash;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif (changed) writeGraphManifest(retained.manifest);\n}\n\nlet extensionCacheCwd: string | undefined;\nlet extensionCacheGeneration = 0;\nconst extensionCache = new Map<string, ExtensionFactory>();\n\nexport interface ExtensionCacheToken {\n\tcwd: string;\n\tgeneration: number;\n}\n\nexport function clearExtensionCache(): void {\n\textensionCache.clear();\n\textensionCacheCwd = undefined;\n\textensionCacheGeneration++;\n}\n\nexport function useExtensionCacheCwd(cwd: string): ExtensionCacheToken {\n\tconst resolvedCwd = resolvePath(cwd);\n\tif (extensionCacheCwd !== undefined && extensionCacheCwd !== resolvedCwd) {\n\t\tclearExtensionCache();\n\t}\n\textensionCacheCwd = resolvedCwd;\n\treturn { cwd: resolvedCwd, generation: extensionCacheGeneration };\n}\n\nfunction isCurrentCacheToken(cacheToken: ExtensionCacheToken | undefined): cacheToken is ExtensionCacheToken {\n\treturn (\n\t\tcacheToken !== undefined &&\n\t\textensionCacheCwd === cacheToken.cwd &&\n\t\textensionCacheGeneration === cacheToken.generation\n\t);\n}\n\nfunction extensionImportSpecifier(extensionPath: string, cacheToken: ExtensionCacheToken | undefined): string {\n\tconst url = pathToFileURL(extensionPath);\n\tconst cacheKey = cacheToken ? `${cacheToken.generation}:${cacheToken.cwd}` : `${Date.now()}:${Math.random()}`;\n\turl.searchParams.set(\"atomicExtensionCache\", cacheKey);\n\treturn url.href;\n}\n\n/**\n * Locate an installed package's root directory without consulting its\n * \"exports\" map: require.resolve(\"<pkg>/package.json\") throws\n * ERR_PACKAGE_PATH_NOT_EXPORTED under Node for packages that do not export\n * \"./package.json\" (pi-ai does not), and import.meta.resolve() cannot be\n * used because its mere presence silently disables bytecode generation for\n * the compiled binary (CJS bundle). Scanning require.resolve.paths() walks\n * the same node_modules chain Node would, without exports-map encapsulation.\n */\nfunction findPackageRoot(packageName: string, searchPaths?: string[]): string {\n\tfor (const base of searchPaths ?? require.resolve.paths(packageName) ?? []) {\n\t\tconst candidate = path.join(base, packageName);\n\t\tif (fs.existsSync(path.join(candidate, \"package.json\"))) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\tthrow new Error(`Cannot locate package directory for \"${packageName}\"`);\n}\nfunction currentModuleDir(): string {\n\treturn moduleDirFromMetaUrl(import.meta.url, \"dist\", \"core\", \"extensions\");\n}\n\n/**\n * Get aliases for jiti (used in Node.js/development mode).\n * In Bun binary mode, virtualModules is used instead.\n */\nfunction getAliases(): Record<string, string> {\n\tif (_aliases) return _aliases;\n\n\tconst __dirname = currentModuleDir();\n\tconst packageIndex = path.resolve(__dirname, \"../..\", \"index.js\");\n\n\tconst typeboxEntry = require.resolve(\"typebox\");\n\tconst typeboxCompileEntry = require.resolve(\"typebox/compile\");\n\tconst typeboxValueEntry = require.resolve(\"typebox/value\");\n\n\tconst packagesRoot = path.resolve(__dirname, \"../../../../\");\n\tconst resolveWorkspaceOrImport = (workspaceRelativePath: string, packageName: string): string => {\n\t\tconst workspacePath = path.join(packagesRoot, workspaceRelativePath);\n\t\tif (fs.existsSync(workspacePath)) {\n\t\t\treturn workspacePath;\n\t\t}\n\t\tconst packageRoot = findPackageRoot(packageName);\n\t\tconst entryRelativePath = workspaceRelativePath.split(\"/\").slice(1).join(\"/\");\n\t\treturn path.join(packageRoot, entryRelativePath);\n\t};\n\n\tconst piCodingAgentEntry = packageIndex;\n\tconst piAgentCoreEntry = resolveWorkspaceOrImport(\"agent/dist/index.js\", \"@earendil-works/pi-agent-core\");\n\tconst piTuiEntry = resolveWorkspaceOrImport(\"tui/dist/index.js\", \"@earendil-works/pi-tui\");\n\tconst piTuiLayoutEntry = resolveWorkspaceOrImport(\"tui/dist/layout.js\", \"@earendil-works/pi-tui\");\n\t// The workspace path mirrors pi-ai 0.80.x's built dist layout. If an\n\t// upstream layout change moves these files, this join needs updating to\n\t// match the package's real dist paths.\n\tconst piAiEntry = resolveWorkspaceOrImport(\"ai/dist/compat.js\", \"@earendil-works/pi-ai\");\n\tconst piAiCodexResponsesEntry = resolveWorkspaceOrImport(\n\t\t\"ai/dist/api/openai-codex-responses.js\",\n\t\t\"@earendil-works/pi-ai\",\n\t);\n\tconst piAiOauthEntry = resolveWorkspaceOrImport(\"ai/dist/oauth.js\", \"@earendil-works/pi-ai\");\n\tconst piAiProvidersEntry = resolveWorkspaceOrImport(\"ai/dist/providers/all.js\", \"@earendil-works/pi-ai\");\n\tconst piAiGatewayBindingEntry = resolveWorkspaceOrImport(\n\t\t\"ai/dist/api/cloudflare-gateway-binding.js\",\n\t\t\"@earendil-works/pi-ai\",\n\t);\n\n\t_aliases = {\n\t\t\"@bastani/atomic\": piCodingAgentEntry,\n\t\t\"@earendil-works/pi-coding-agent\": piCodingAgentEntry,\n\t\t\"@earendil-works/pi-agent-core\": piAgentCoreEntry,\n\t\t\"@earendil-works/pi-tui/dist/layout.js\": piTuiLayoutEntry,\n\t\t\"@earendil-works/pi-tui\": piTuiEntry,\n\t\t\"@earendil-works/pi-ai/api/openai-codex-responses\": piAiCodexResponsesEntry,\n\t\t\"@earendil-works/pi-ai/oauth\": piAiOauthEntry,\n\t\t\"@earendil-works/pi-ai/providers/all\": piAiProvidersEntry,\n\t\t\"@earendil-works/pi-ai/compat\": piAiEntry,\n\t\t\"@earendil-works/pi-ai/api/cloudflare-gateway-binding\": piAiGatewayBindingEntry,\n\t\t\"@earendil-works/pi-ai\": piAiEntry,\n\t\t\"@mariozechner/pi-agent-core\": piAgentCoreEntry,\n\t\t\"@mariozechner/pi-tui/dist/layout.js\": piTuiLayoutEntry,\n\t\t\"@mariozechner/pi-tui\": piTuiEntry,\n\t\t\"@mariozechner/pi-ai/oauth\": piAiOauthEntry,\n\t\t\"@mariozechner/pi-ai/providers/all\": piAiProvidersEntry,\n\t\t\"@mariozechner/pi-ai/compat\": piAiEntry,\n\t\t\"@mariozechner/pi-ai/api/cloudflare-gateway-binding\": piAiGatewayBindingEntry,\n\t\t\"@mariozechner/pi-ai\": piAiEntry,\n\t\ttypebox: typeboxEntry,\n\t\t\"typebox/compile\": typeboxCompileEntry,\n\t\t\"typebox/value\": typeboxValueEntry,\n\t\t\"@sinclair/typebox\": typeboxEntry,\n\t\t\"@sinclair/typebox/compile\": typeboxCompileEntry,\n\t\t\"@sinclair/typebox/value\": typeboxValueEntry,\n\t};\n\n\treturn _aliases;\n}\n\nexport const extensionLoaderTestHooks = {\n\tloadVirtualModules,\n\tgetAliases,\n\tfindPackageRoot,\n\tgetTranspileCacheDir,\n\tgraphManifestPath,\n\treadExtensionGraphManifest,\n\tloadExtensionModuleTransformed: (extensionPath: string, cacheToken?: ExtensionCacheToken) =>\n\t\timportExtensionModule(extensionPath, cacheToken, true),\n\tloadTransformedExtensionModule: (extensionPath: string, cacheToken?: ExtensionCacheToken) =>\n\t\tloadTransformedExtensionModule(extensionPath, cacheToken),\n};\n\n/**\n * Extension paths already evaluated via native import() in this process. Bun on\n * Windows ignores the cache-busting query on file URLs, so re-loads of these\n * paths (e.g. /reload) must go through jiti's transformed-import path to get a\n * fresh module evaluation.\n */\nconst nativelyImportedPaths = new Set<string>();\n\nasync function importExtensionModule(\n\textensionPath: string,\n\tcacheToken: ExtensionCacheToken | undefined,\n\tforceTransformedImports: boolean,\n): Promise<ExtensionFactory | undefined> {\n\tconst isWindows = process.platform === \"win32\";\n\tconst isSingleFileBuild = isBunBinary || isBundledBuild;\n\tconst jiti = createJiti(resolutionBaseUrl(import.meta.url), {\n\t\tmoduleCache: false,\n\t\t...(forceTransformedImports\n\t\t\t? { fsCache: getTranspileCacheDir(), tryNative: false }\n\t\t\t: isWindows\n\t\t\t\t? { fsCache: getTranspileCacheDir() }\n\t\t\t\t: {}),\n\t\t...(isSingleFileBuild ? { virtualModules: await getVirtualModules() } : { alias: getAliases() }),\n\t});\n\tconst specifier = extensionImportSpecifier(extensionPath, cacheToken);\n\t// Transformed evaluations are the loads whose repeat cost is the Windows\n\t// /reload regression, so they are also the loads whose file graph is\n\t// recorded into a content-hash manifest.\n\tlet module: unknown;\n\tlet recordedManifest: ExtensionGraphManifest | undefined;\n\tif (forceTransformedImports) {\n\t\tconst recorded = await recordExtensionGraph(extensionPath, () => jiti.import(specifier, { default: true }));\n\t\tmodule = recorded.result;\n\t\trecordedManifest = recorded.manifest;\n\t} else {\n\t\tmodule = await jiti.import(specifier, { default: true });\n\t}\n\tif (isWindows && !forceTransformedImports) {\n\t\tnativelyImportedPaths.add(extensionPath);\n\t}\n\tlet factory = module as ExtensionFactory;\n\tif (typeof factory !== \"function\") return undefined;\n\tif (recordedManifest) {\n\t\tfactory = withDeferredGraphRecording(extensionPath, factory);\n\t\tretainedTransformedLoads.set(extensionPath, { factory, manifest: recordedManifest });\n\t}\n\tif (isCurrentCacheToken(cacheToken)) {\n\t\textensionCache.set(extensionPath, factory);\n\t}\n\treturn factory;\n}\n\n/**\n * Load an extension through jiti's transformed-import path, reusing the\n * previously evaluated factory when the recorded graph manifest proves the\n * entire transitive file graph is byte-identical. This lets the\n * unchanged-graph case survive the /reload generation bump instead of\n * re-evaluating hundreds of files; anything else re-evaluates as before.\n *\n * Note: when the graph is byte-identical, the previously evaluated module\n * instance (including any mutable module-scoped state it closed over) is\n * reused. An extension that requires clean module state on every reload must\n * change a file in its graph to force re-evaluation.\n */\nasync function loadTransformedExtensionModule(\n\textensionPath: string,\n\tcacheToken: ExtensionCacheToken | undefined,\n): Promise<ExtensionFactory | undefined> {\n\tconst retained = retainedTransformedLoads.get(extensionPath);\n\tif (retained && graphUnchangedSince(retained.manifest)) {\n\t\tif (isCurrentCacheToken(cacheToken)) {\n\t\t\textensionCache.set(extensionPath, retained.factory);\n\t\t}\n\t\treturn retained.factory;\n\t}\n\treturn importExtensionModule(extensionPath, cacheToken, true);\n}\n\nexport async function loadExtensionModule(\n\textensionPath: string,\n\tcacheToken?: ExtensionCacheToken,\n): Promise<ExtensionFactory | undefined> {\n\tif (isCurrentCacheToken(cacheToken)) {\n\t\tconst cachedFactory = extensionCache.get(extensionPath);\n\t\tif (cachedFactory) return cachedFactory;\n\t}\n\n\tconst isWindows = process.platform === \"win32\";\n\t// Single-file builds (compiled binary or dev bundle) cannot alias host\n\t// package specifiers to files on disk: extensions must share the live\n\t// module instances baked into the build, so virtualModules is used instead\n\t// (which requires jiti's transformed-import path).\n\tconst isSingleFileBuild = isBunBinary || isBundledBuild;\n\t// Windows first-load fast path: native import() (jiti's default tryNative)\n\t// skips per-launch transpilation of the extension module graph. Re-loads of\n\t// the same path fall back to transformed imports for fresh evaluation.\n\t//\n\t// That fallback is not free. Measured on Windows CI, a transformed re-import\n\t// costs ~15 ms per module file in the extension's transitive graph, so a\n\t// reload of all five builtin packages (621 files) takes ~10.7 s cold and\n\t// ~2.5 s against a warm jiti fsCache, against ~40 ms on Linux and macOS. The\n\t// cost is correctness-driven and is paid interactively on every Windows\n\t// `/reload`; removing it needs a content-hash-keyed evaluation cache or a\n\t// narrower trigger, not a larger timeout.\n\tconst forceTransformedImports = isSingleFileBuild || (isWindows && nativelyImportedPaths.has(extensionPath));\n\tif (forceTransformedImports) {\n\t\treturn loadTransformedExtensionModule(extensionPath, cacheToken);\n\t}\n\treturn importExtensionModule(extensionPath, cacheToken, false);\n}\n"]}
1
+ {"version":3,"file":"loader-virtual-modules.js","sourceRoot":"","sources":["../../../src/core/extensions/loader-virtual-modules.ts"],"names":[],"mappings":"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","sourcesContent":["import * as crypto from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport * as path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { createJiti } from \"jiti/static\";\nimport { getExtensionTranspileCacheDir, isBunBinary, isBundledBuild } from \"../../config.ts\";\nimport { resolutionBaseUrl } from \"../../utils/module-require.ts\";\nimport { resolvePath } from \"../../utils/paths.ts\";\nimport { moduleDirFromMetaUrl } from \"../../utils/split-launcher.ts\";\nimport type { ExtensionFactory } from \"./types.ts\";\n\nconst require = createRequire(import.meta.url);\nlet _virtualModules: Record<string, object> | null = null;\nlet _virtualModulesPromise: Promise<Record<string, object>> | null = null;\n\nasync function loadVirtualModules(): Promise<Record<string, object>> {\n\tconst [\n\t\ttypebox,\n\t\ttypeboxCompile,\n\t\ttypeboxValue,\n\t\tpiAgentCore,\n\t\tpiTui,\n\t\tpiTuiLayout,\n\t\tpiAi,\n\t\tpiAiOauth,\n\t\tpiAiCloudflareGatewayBinding,\n\t\tpiCodingAgent,\n\t] = await Promise.all([\n\t\timport(\"typebox\"),\n\t\timport(\"typebox/compile\"),\n\t\timport(\"typebox/value\"),\n\t\timport(\"@earendil-works/pi-agent-core\"),\n\t\timport(\"@earendil-works/pi-tui\"),\n\t\timport(\"@earendil-works/pi-tui/dist/layout.js\"),\n\t\t// pi 0.80.2: the old global pi-ai API moved off the root entrypoint onto\n\t\t// `/compat` (a strict superset). Extensions still `import ... from\n\t\t// \"@bastani/pi-ai\"`, so we load the compat module here and key it\n\t\t// under the root specifier below to keep every extension working unchanged.\n\t\timport(\"@bastani/pi-ai/compat\"),\n\t\timport(\"@bastani/pi-ai/oauth\"),\n\t\t// Re-exported from `@bastani/atomic`; jiti-loaded extensions (the builtin\n\t\t// packages import the host entry) reach this specifier, so it needs a key\n\t\t// of its own instead of falling through to the compat/root prefix alias.\n\t\timport(\"@bastani/pi-ai/api/cloudflare-gateway-binding\"),\n\t\t// NOTE: This import works because loader.ts exports are NOT re-exported from index.ts,\n\t\t// avoiding a circular dependency while preserving the package-name extension import path.\n\t\timport(\"../../index.ts\"),\n\t]);\n\n\treturn {\n\t\ttypebox,\n\t\t\"typebox/compile\": typeboxCompile,\n\t\t\"typebox/value\": typeboxValue,\n\t\t\"@sinclair/typebox\": typebox,\n\t\t\"@sinclair/typebox/compile\": typeboxCompile,\n\t\t\"@sinclair/typebox/value\": typeboxValue,\n\t\t\"@earendil-works/pi-agent-core\": piAgentCore,\n\t\t\"@earendil-works/pi-tui\": piTui,\n\t\t\"@earendil-works/pi-tui/dist/layout.js\": piTuiLayout,\n\t\t\"@bastani/pi-ai\": piAi,\n\t\t\"@bastani/pi-ai/compat\": piAi,\n\t\t\"@bastani/pi-ai/oauth\": piAiOauth,\n\t\t\"@bastani/pi-ai/api/cloudflare-gateway-binding\": piAiCloudflareGatewayBinding,\n\t\t\"@earendil-works/pi-ai\": piAi,\n\t\t\"@earendil-works/pi-ai/compat\": piAi,\n\t\t\"@earendil-works/pi-ai/oauth\": piAiOauth,\n\t\t\"@earendil-works/pi-ai/api/cloudflare-gateway-binding\": piAiCloudflareGatewayBinding,\n\t\t\"@bastani/atomic\": piCodingAgent,\n\t\t\"@mariozechner/pi-agent-core\": piAgentCore,\n\t\t\"@mariozechner/pi-tui\": piTui,\n\t\t\"@mariozechner/pi-tui/dist/layout.js\": piTuiLayout,\n\t\t\"@mariozechner/pi-ai\": piAi,\n\t\t\"@mariozechner/pi-ai/compat\": piAi,\n\t\t\"@mariozechner/pi-ai/oauth\": piAiOauth,\n\t\t\"@mariozechner/pi-ai/api/cloudflare-gateway-binding\": piAiCloudflareGatewayBinding,\n\t};\n}\n\n/** Modules available to extensions via virtualModules (for compiled Bun binary). */\nasync function getVirtualModules(): Promise<Record<string, object>> {\n\tif (_virtualModules) return _virtualModules;\n\t_virtualModulesPromise ??= loadVirtualModules().then(\n\t\t(virtualModules) => {\n\t\t\t_virtualModules = virtualModules;\n\t\t\treturn virtualModules;\n\t\t},\n\t\t(error: Error) => {\n\t\t\t_virtualModulesPromise = null;\n\t\t\tthrow error;\n\t\t},\n\t);\n\treturn _virtualModulesPromise;\n}\nlet _aliases: Record<string, string> | null = null;\nlet _transpileCacheDir: string | null = null;\n\n/**\n * Persistent on-disk cache for jiti-transpiled extension modules.\n * jiti keys cache entries by source-content hash, so entries self-invalidate\n * when extension sources change; stale sibling version dirs are pruned\n * in the background.\n */\nfunction getTranspileCacheDir(): string {\n\tif (_transpileCacheDir) return _transpileCacheDir;\n\t_transpileCacheDir = getExtensionTranspileCacheDir();\n\tfs.mkdirSync(_transpileCacheDir, { recursive: true });\n\tpruneStaleTranspileCaches(_transpileCacheDir);\n\treturn _transpileCacheDir;\n}\n\nfunction pruneStaleTranspileCaches(currentDir: string): void {\n\tconst parent = path.dirname(currentDir);\n\tconst keep = path.basename(currentDir);\n\tvoid fs.promises\n\t\t.readdir(parent)\n\t\t.then((entries) =>\n\t\t\tPromise.all(\n\t\t\t\tentries\n\t\t\t\t\t.filter((entry) => entry !== keep)\n\t\t\t\t\t.map((entry) => fs.promises.rm(path.join(parent, entry), { recursive: true, force: true })),\n\t\t\t),\n\t\t)\n\t\t.catch(() => {});\n}\n\n/**\n * Per-extension-path record of the complete file graph a transformed (jiti)\n * evaluation read, mapping each absolute file path to the SHA256 hex digest of\n * its content at evaluation time. Persisted under the versioned transpile\n * cache directory so pruneStaleTranspileCaches handles version cleanup.\n */\nexport interface ExtensionGraphManifest {\n\tversion: 1;\n\textensionPath: string;\n\tfiles: Record<string, string>;\n}\n\nconst GRAPH_MANIFEST_VERSION = 1;\nconst GRAPH_MANIFEST_DIR_NAME = \"graph-manifests\";\n\nconst graphManifestFileExtensions = new Set([\".ts\", \".tsx\", \".mts\", \".cts\", \".js\", \".mjs\", \".cjs\", \".jsx\", \".json\"]);\n\nfunction graphManifestDir(): string {\n\treturn path.join(getTranspileCacheDir(), GRAPH_MANIFEST_DIR_NAME);\n}\n\nfunction graphManifestPath(extensionPath: string): string {\n\tconst key = crypto.createHash(\"sha256\").update(extensionPath).digest(\"hex\").slice(0, 32);\n\treturn path.join(graphManifestDir(), `${key}.json`);\n}\n\nfunction sha256Hex(content: string | NodeJS.ArrayBufferView): string {\n\treturn crypto.createHash(\"sha256\").update(content).digest(\"hex\");\n}\n\n// jiti's CJS bundle reads every module source in the require graph through\n// fs.readFileSync (even on fsCache hits, since the cache key is a hash of the\n// source), so observing readFileSync while a transformed import is in flight\n// sees the complete transitive graph. The observer records into every active\n// recorder; unrelated reads that interleave only over-record, which at worst\n// forces a redundant re-evaluation later — never a stale one.\nconst fsExports = require(\"node:fs\") as typeof fs;\nconst activeGraphRecorders = new Set<Map<string, string>>();\nlet observedReadFileSync: typeof fs.readFileSync | null = null;\n\nfunction recordObservedRead(target: Parameters<typeof fs.readFileSync>[0], content: string | Buffer): void {\n\tif (typeof target !== \"string\" || !path.isAbsolute(target)) return;\n\tif (!graphManifestFileExtensions.has(path.extname(target).toLowerCase())) return;\n\tconst normalizedTarget = path.normalize(target);\n\tconst cachePrefix = path.normalize(getTranspileCacheDir()) + path.sep;\n\tif (normalizedTarget.toLowerCase().startsWith(cachePrefix.toLowerCase())) return;\n\tconst hash = sha256Hex(content);\n\tfor (const recorder of activeGraphRecorders) {\n\t\trecorder.set(normalizedTarget, hash);\n\t}\n}\n\nfunction installReadFileSyncObserver(): void {\n\tif (observedReadFileSync) return;\n\tconst original = fsExports.readFileSync;\n\tobservedReadFileSync = original;\n\tconst wrapped = ((...args: Parameters<typeof fs.readFileSync>) => {\n\t\tconst content = original(...args);\n\t\trecordObservedRead(args[0], content);\n\t\treturn content;\n\t}) as typeof fs.readFileSync;\n\tfsExports.readFileSync = wrapped;\n}\n\nfunction uninstallReadFileSyncObserver(): void {\n\tif (!observedReadFileSync || activeGraphRecorders.size > 0) return;\n\tfsExports.readFileSync = observedReadFileSync;\n\tobservedReadFileSync = null;\n}\n\nfunction writeGraphManifest(manifest: ExtensionGraphManifest): void {\n\tconst manifestFile = graphManifestPath(manifest.extensionPath);\n\tlet tempFile: string | undefined;\n\ttry {\n\t\tfs.mkdirSync(path.dirname(manifestFile), { recursive: true });\n\t\ttempFile = `${manifestFile}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;\n\t\tfs.writeFileSync(tempFile, JSON.stringify(manifest));\n\t\tfs.renameSync(tempFile, manifestFile);\n\t} catch {\n\t\t// Manifest persistence is best-effort: a missing manifest only means the\n\t\t// next reload cannot prove the graph unchanged and re-evaluates. A failed\n\t\t// replacement must not leave an older manifest behind describing a graph\n\t\t// that no longer matches this evaluation, so invalidate the destination\n\t\t// first, independently of removing the temporary file.\n\t\ttry {\n\t\t\tfs.rmSync(manifestFile, { force: true });\n\t\t} catch {\n\t\t\t// A leftover stale manifest cannot be reused without also matching\n\t\t\t// the in-memory manifest of the same evaluation, and readers\n\t\t\t// tolerate missing or corrupt files.\n\t\t}\n\t\ttry {\n\t\t\tif (tempFile) fs.rmSync(tempFile, { force: true });\n\t\t} catch {\n\t\t\t// Temporary files carry a unique suffix and are never read back.\n\t\t}\n\t}\n}\n\nfunction isStringRecord(value: unknown): value is Record<string, string> {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) return false;\n\treturn Object.values(value).every((entry) => typeof entry === \"string\");\n}\n\nexport function readExtensionGraphManifest(extensionPath: string): ExtensionGraphManifest | undefined {\n\ttry {\n\t\tconst parsed = JSON.parse(\n\t\t\tfs.readFileSync(graphManifestPath(extensionPath), \"utf-8\"),\n\t\t) as Partial<ExtensionGraphManifest>;\n\t\tif (parsed.version !== GRAPH_MANIFEST_VERSION) return undefined;\n\t\tif (parsed.extensionPath !== extensionPath) return undefined;\n\t\tif (!isStringRecord(parsed.files)) return undefined;\n\t\treturn { version: GRAPH_MANIFEST_VERSION, extensionPath, files: parsed.files };\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nasync function recordExtensionGraph<T>(\n\textensionPath: string,\n\tload: () => Promise<T>,\n): Promise<{ result: T; manifest: ExtensionGraphManifest }> {\n\tconst files = new Map<string, string>();\n\tactiveGraphRecorders.add(files);\n\tinstallReadFileSyncObserver();\n\tlet result: T;\n\ttry {\n\t\tresult = await load();\n\t} finally {\n\t\tactiveGraphRecorders.delete(files);\n\t\tuninstallReadFileSyncObserver();\n\t}\n\tconst manifest: ExtensionGraphManifest = {\n\t\tversion: GRAPH_MANIFEST_VERSION,\n\t\textensionPath,\n\t\tfiles: Object.fromEntries([...files.entries()].sort(([a], [b]) => a.localeCompare(b))),\n\t};\n\twriteGraphManifest(manifest);\n\treturn { result, manifest };\n}\n\n/**\n * Factories from transformed evaluations, retained across extension cache\n * generation bumps and paired with the graph manifest recorded by the\n * evaluation that produced them. A retained factory is reused on a reload only\n * when the persisted manifest still equals the paired one and every file in it\n * rehashes to its recorded digest; any doubt (missing or corrupt manifest,\n * missing file, hash mismatch, changed graph shape) falls back to a fresh\n * transformed re-evaluation, which re-records the manifest.\n */\nconst retainedTransformedLoads = new Map<string, { factory: ExtensionFactory; manifest: ExtensionGraphManifest }>();\n\nfunction manifestFilesEqual(a: Record<string, string>, b: Record<string, string>): boolean {\n\tconst aEntries = Object.entries(a);\n\tif (aEntries.length !== Object.keys(b).length) return false;\n\treturn aEntries.every(([filePath, hash]) => b[filePath] === hash);\n}\n\nfunction graphUnchangedSince(manifest: ExtensionGraphManifest): boolean {\n\tconst stored = readExtensionGraphManifest(manifest.extensionPath);\n\tif (!stored || !manifestFilesEqual(stored.files, manifest.files)) return false;\n\tconst entries = Object.entries(manifest.files);\n\tif (entries.length === 0) return false;\n\tfor (const [filePath, hash] of entries) {\n\t\ttry {\n\t\t\tif (sha256Hex(fs.readFileSync(filePath)) !== hash) return false;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * A factory can defer loading local code until it is invoked (e.g. a\n * `require()` inside the factory body). Those reads are invisible to the\n * import-time recording, so retained factories are wrapped to record reads\n * that happen while the factory executes and merge them into the retained and\n * persisted manifest — editing a deferred dependency then invalidates reuse\n * like any other graph file.\n */\nfunction withDeferredGraphRecording(extensionPath: string, factory: ExtensionFactory): ExtensionFactory {\n\treturn (pi) => {\n\t\tconst files = new Map<string, string>();\n\t\tactiveGraphRecorders.add(files);\n\t\tinstallReadFileSyncObserver();\n\t\tconst finish = () => {\n\t\t\tactiveGraphRecorders.delete(files);\n\t\t\tuninstallReadFileSyncObserver();\n\t\t\tif (files.size > 0) mergeDeferredGraphReads(extensionPath, files);\n\t\t};\n\t\ttry {\n\t\t\tconst result = factory(pi);\n\t\t\tif (\n\t\t\t\tresult !== null &&\n\t\t\t\t(typeof result === \"object\" || typeof result === \"function\") &&\n\t\t\t\ttypeof (result as PromiseLike<void>).then === \"function\"\n\t\t\t) {\n\t\t\t\treturn Promise.resolve(result).finally(finish);\n\t\t\t}\n\t\t\tfinish();\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tfinish();\n\t\t\tthrow error;\n\t\t}\n\t};\n}\n\nfunction mergeDeferredGraphReads(extensionPath: string, files: Map<string, string>): void {\n\tconst retained = retainedTransformedLoads.get(extensionPath);\n\tif (!retained) return;\n\tlet changed = false;\n\tfor (const [filePath, hash] of files) {\n\t\tif (retained.manifest.files[filePath] !== hash) {\n\t\t\tretained.manifest.files[filePath] = hash;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif (changed) writeGraphManifest(retained.manifest);\n}\n\nlet extensionCacheCwd: string | undefined;\nlet extensionCacheGeneration = 0;\nconst extensionCache = new Map<string, ExtensionFactory>();\n\nexport interface ExtensionCacheToken {\n\tcwd: string;\n\tgeneration: number;\n}\n\nexport function clearExtensionCache(): void {\n\textensionCache.clear();\n\textensionCacheCwd = undefined;\n\textensionCacheGeneration++;\n}\n\nexport function useExtensionCacheCwd(cwd: string): ExtensionCacheToken {\n\tconst resolvedCwd = resolvePath(cwd);\n\tif (extensionCacheCwd !== undefined && extensionCacheCwd !== resolvedCwd) {\n\t\tclearExtensionCache();\n\t}\n\textensionCacheCwd = resolvedCwd;\n\treturn { cwd: resolvedCwd, generation: extensionCacheGeneration };\n}\n\nfunction isCurrentCacheToken(cacheToken: ExtensionCacheToken | undefined): cacheToken is ExtensionCacheToken {\n\treturn (\n\t\tcacheToken !== undefined &&\n\t\textensionCacheCwd === cacheToken.cwd &&\n\t\textensionCacheGeneration === cacheToken.generation\n\t);\n}\n\nfunction extensionImportSpecifier(extensionPath: string, cacheToken: ExtensionCacheToken | undefined): string {\n\tconst url = pathToFileURL(extensionPath);\n\tconst cacheKey = cacheToken ? `${cacheToken.generation}:${cacheToken.cwd}` : `${Date.now()}:${Math.random()}`;\n\turl.searchParams.set(\"atomicExtensionCache\", cacheKey);\n\treturn url.href;\n}\n\n/**\n * Locate an installed package's root directory without consulting its\n * \"exports\" map: require.resolve(\"<pkg>/package.json\") throws\n * ERR_PACKAGE_PATH_NOT_EXPORTED under Node for packages that do not export\n * \"./package.json\" (pi-ai does not), and import.meta.resolve() cannot be\n * used because its mere presence silently disables bytecode generation for\n * the compiled binary (CJS bundle). Scanning require.resolve.paths() walks\n * the same node_modules chain Node would, without exports-map encapsulation.\n */\nfunction findPackageRoot(packageName: string, searchPaths?: string[]): string {\n\tfor (const base of searchPaths ?? require.resolve.paths(packageName) ?? []) {\n\t\tconst candidate = path.join(base, packageName);\n\t\tif (fs.existsSync(path.join(candidate, \"package.json\"))) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\tthrow new Error(`Cannot locate package directory for \"${packageName}\"`);\n}\nfunction currentModuleDir(): string {\n\treturn moduleDirFromMetaUrl(import.meta.url, \"dist\", \"core\", \"extensions\");\n}\n\n/**\n * Get aliases for jiti (used in Node.js/development mode).\n * In Bun binary mode, virtualModules is used instead.\n */\nfunction getAliases(): Record<string, string> {\n\tif (_aliases) return _aliases;\n\n\tconst __dirname = currentModuleDir();\n\tconst packageIndex = path.resolve(__dirname, \"../..\", \"index.js\");\n\n\tconst typeboxEntry = require.resolve(\"typebox\");\n\tconst typeboxCompileEntry = require.resolve(\"typebox/compile\");\n\tconst typeboxValueEntry = require.resolve(\"typebox/value\");\n\n\tconst packagesRoot = path.resolve(__dirname, \"../../../../\");\n\tconst resolveWorkspaceOrImport = (workspaceRelativePath: string, packageName: string): string => {\n\t\tconst workspacePath = path.join(packagesRoot, workspaceRelativePath);\n\t\tif (fs.existsSync(workspacePath)) {\n\t\t\treturn workspacePath;\n\t\t}\n\t\tconst packageRoot = findPackageRoot(packageName);\n\t\tconst entryRelativePath = workspaceRelativePath.split(\"/\").slice(1).join(\"/\");\n\t\treturn path.join(packageRoot, entryRelativePath);\n\t};\n\n\tconst piCodingAgentEntry = packageIndex;\n\tconst piAgentCoreEntry = resolveWorkspaceOrImport(\"agent/dist/index.js\", \"@earendil-works/pi-agent-core\");\n\tconst piTuiEntry = resolveWorkspaceOrImport(\"tui/dist/index.js\", \"@earendil-works/pi-tui\");\n\tconst piTuiLayoutEntry = resolveWorkspaceOrImport(\"tui/dist/layout.js\", \"@earendil-works/pi-tui\");\n\t// The workspace path mirrors pi-ai 0.80.x's built dist layout. If an\n\t// upstream layout change moves these files, this join needs updating to\n\t// match the package's real dist paths.\n\tconst piAiEntry = resolveWorkspaceOrImport(\"ai/dist/compat.js\", \"@bastani/pi-ai\");\n\tconst piAiCodexResponsesEntry = resolveWorkspaceOrImport(\"ai/dist/api/openai-codex-responses.js\", \"@bastani/pi-ai\");\n\tconst piAiOauthEntry = resolveWorkspaceOrImport(\"ai/dist/oauth.js\", \"@bastani/pi-ai\");\n\tconst piAiProvidersEntry = resolveWorkspaceOrImport(\"ai/dist/providers/all.js\", \"@bastani/pi-ai\");\n\tconst piAiCopilotEnvEntry = resolveWorkspaceOrImport(\"ai/dist/providers/github-copilot-env.js\", \"@bastani/pi-ai\");\n\tconst piAiGatewayBindingEntry = resolveWorkspaceOrImport(\n\t\t\"ai/dist/api/cloudflare-gateway-binding.js\",\n\t\t\"@bastani/pi-ai\",\n\t);\n\n\t_aliases = {\n\t\t\"@bastani/atomic\": piCodingAgentEntry,\n\t\t\"@earendil-works/pi-coding-agent\": piCodingAgentEntry,\n\t\t\"@earendil-works/pi-agent-core\": piAgentCoreEntry,\n\t\t\"@earendil-works/pi-tui/dist/layout.js\": piTuiLayoutEntry,\n\t\t\"@earendil-works/pi-tui\": piTuiEntry,\n\t\t\"@bastani/pi-ai/api/openai-codex-responses\": piAiCodexResponsesEntry,\n\t\t\"@bastani/pi-ai/oauth\": piAiOauthEntry,\n\t\t\"@bastani/pi-ai/providers/all\": piAiProvidersEntry,\n\t\t\"@bastani/pi-ai/providers/github-copilot-env\": piAiCopilotEnvEntry,\n\t\t\"@bastani/pi-ai/compat\": piAiEntry,\n\t\t\"@bastani/pi-ai/api/cloudflare-gateway-binding\": piAiGatewayBindingEntry,\n\t\t\"@bastani/pi-ai\": piAiEntry,\n\t\t\"@earendil-works/pi-ai/api/openai-codex-responses\": piAiCodexResponsesEntry,\n\t\t\"@earendil-works/pi-ai/oauth\": piAiOauthEntry,\n\t\t\"@earendil-works/pi-ai/providers/all\": piAiProvidersEntry,\n\t\t\"@earendil-works/pi-ai/compat\": piAiEntry,\n\t\t\"@earendil-works/pi-ai/api/cloudflare-gateway-binding\": piAiGatewayBindingEntry,\n\t\t\"@earendil-works/pi-ai\": piAiEntry,\n\t\t\"@mariozechner/pi-agent-core\": piAgentCoreEntry,\n\t\t\"@mariozechner/pi-tui/dist/layout.js\": piTuiLayoutEntry,\n\t\t\"@mariozechner/pi-tui\": piTuiEntry,\n\t\t\"@mariozechner/pi-ai/oauth\": piAiOauthEntry,\n\t\t\"@mariozechner/pi-ai/providers/all\": piAiProvidersEntry,\n\t\t\"@mariozechner/pi-ai/compat\": piAiEntry,\n\t\t\"@mariozechner/pi-ai/api/cloudflare-gateway-binding\": piAiGatewayBindingEntry,\n\t\t\"@mariozechner/pi-ai\": piAiEntry,\n\t\ttypebox: typeboxEntry,\n\t\t\"typebox/compile\": typeboxCompileEntry,\n\t\t\"typebox/value\": typeboxValueEntry,\n\t\t\"@sinclair/typebox\": typeboxEntry,\n\t\t\"@sinclair/typebox/compile\": typeboxCompileEntry,\n\t\t\"@sinclair/typebox/value\": typeboxValueEntry,\n\t};\n\n\treturn _aliases;\n}\n\nexport const extensionLoaderTestHooks = {\n\tloadVirtualModules,\n\tgetAliases,\n\tfindPackageRoot,\n\tgetTranspileCacheDir,\n\tgraphManifestPath,\n\treadExtensionGraphManifest,\n\tloadExtensionModuleTransformed: (extensionPath: string, cacheToken?: ExtensionCacheToken) =>\n\t\timportExtensionModule(extensionPath, cacheToken, true),\n\tloadTransformedExtensionModule: (extensionPath: string, cacheToken?: ExtensionCacheToken) =>\n\t\tloadTransformedExtensionModule(extensionPath, cacheToken),\n};\n\n/**\n * Extension paths already evaluated via native import() in this process. Bun on\n * Windows ignores the cache-busting query on file URLs, so re-loads of these\n * paths (e.g. /reload) must go through jiti's transformed-import path to get a\n * fresh module evaluation.\n */\nconst nativelyImportedPaths = new Set<string>();\n\nasync function importExtensionModule(\n\textensionPath: string,\n\tcacheToken: ExtensionCacheToken | undefined,\n\tforceTransformedImports: boolean,\n): Promise<ExtensionFactory | undefined> {\n\tconst isWindows = process.platform === \"win32\";\n\tconst isSingleFileBuild = isBunBinary || isBundledBuild;\n\tconst jiti = createJiti(resolutionBaseUrl(import.meta.url), {\n\t\tmoduleCache: false,\n\t\t...(forceTransformedImports\n\t\t\t? { fsCache: getTranspileCacheDir(), tryNative: false }\n\t\t\t: isWindows\n\t\t\t\t? { fsCache: getTranspileCacheDir() }\n\t\t\t\t: {}),\n\t\t...(isSingleFileBuild ? { virtualModules: await getVirtualModules() } : { alias: getAliases() }),\n\t});\n\tconst specifier = extensionImportSpecifier(extensionPath, cacheToken);\n\t// Transformed evaluations are the loads whose repeat cost is the Windows\n\t// /reload regression, so they are also the loads whose file graph is\n\t// recorded into a content-hash manifest.\n\tlet module: unknown;\n\tlet recordedManifest: ExtensionGraphManifest | undefined;\n\tif (forceTransformedImports) {\n\t\tconst recorded = await recordExtensionGraph(extensionPath, () => jiti.import(specifier, { default: true }));\n\t\tmodule = recorded.result;\n\t\trecordedManifest = recorded.manifest;\n\t} else {\n\t\tmodule = await jiti.import(specifier, { default: true });\n\t}\n\tif (isWindows && !forceTransformedImports) {\n\t\tnativelyImportedPaths.add(extensionPath);\n\t}\n\tlet factory = module as ExtensionFactory;\n\tif (typeof factory !== \"function\") return undefined;\n\tif (recordedManifest) {\n\t\tfactory = withDeferredGraphRecording(extensionPath, factory);\n\t\tretainedTransformedLoads.set(extensionPath, { factory, manifest: recordedManifest });\n\t}\n\tif (isCurrentCacheToken(cacheToken)) {\n\t\textensionCache.set(extensionPath, factory);\n\t}\n\treturn factory;\n}\n\n/**\n * Load an extension through jiti's transformed-import path, reusing the\n * previously evaluated factory when the recorded graph manifest proves the\n * entire transitive file graph is byte-identical. This lets the\n * unchanged-graph case survive the /reload generation bump instead of\n * re-evaluating hundreds of files; anything else re-evaluates as before.\n *\n * Note: when the graph is byte-identical, the previously evaluated module\n * instance (including any mutable module-scoped state it closed over) is\n * reused. An extension that requires clean module state on every reload must\n * change a file in its graph to force re-evaluation.\n */\nasync function loadTransformedExtensionModule(\n\textensionPath: string,\n\tcacheToken: ExtensionCacheToken | undefined,\n): Promise<ExtensionFactory | undefined> {\n\tconst retained = retainedTransformedLoads.get(extensionPath);\n\tif (retained && graphUnchangedSince(retained.manifest)) {\n\t\tif (isCurrentCacheToken(cacheToken)) {\n\t\t\textensionCache.set(extensionPath, retained.factory);\n\t\t}\n\t\treturn retained.factory;\n\t}\n\treturn importExtensionModule(extensionPath, cacheToken, true);\n}\n\nexport async function loadExtensionModule(\n\textensionPath: string,\n\tcacheToken?: ExtensionCacheToken,\n): Promise<ExtensionFactory | undefined> {\n\tif (isCurrentCacheToken(cacheToken)) {\n\t\tconst cachedFactory = extensionCache.get(extensionPath);\n\t\tif (cachedFactory) return cachedFactory;\n\t}\n\n\tconst isWindows = process.platform === \"win32\";\n\t// Single-file builds (compiled binary or dev bundle) cannot alias host\n\t// package specifiers to files on disk: extensions must share the live\n\t// module instances baked into the build, so virtualModules is used instead\n\t// (which requires jiti's transformed-import path).\n\tconst isSingleFileBuild = isBunBinary || isBundledBuild;\n\t// Windows first-load fast path: native import() (jiti's default tryNative)\n\t// skips per-launch transpilation of the extension module graph. Re-loads of\n\t// the same path fall back to transformed imports for fresh evaluation.\n\t//\n\t// That fallback is not free. Measured on Windows CI, a transformed re-import\n\t// costs ~15 ms per module file in the extension's transitive graph, so a\n\t// reload of all five builtin packages (621 files) takes ~10.7 s cold and\n\t// ~2.5 s against a warm jiti fsCache, against ~40 ms on Linux and macOS. The\n\t// cost is correctness-driven and is paid interactively on every Windows\n\t// `/reload`; removing it needs a content-hash-keyed evaluation cache or a\n\t// narrower trigger, not a larger timeout.\n\tconst forceTransformedImports = isSingleFileBuild || (isWindows && nativelyImportedPaths.has(extensionPath));\n\tif (forceTransformedImports) {\n\t\treturn loadTransformedExtensionModule(extensionPath, cacheToken);\n\t}\n\treturn importExtensionModule(extensionPath, cacheToken, false);\n}\n"]}
@@ -1,5 +1,5 @@
1
- import type { RefreshModelsContext } from "@earendil-works/pi-ai";
2
- import type { Api, AssistantMessageEventStream, Context, Model, OAuthCredentials, OAuthLoginCallbacks, SimpleStreamOptions } from "@earendil-works/pi-ai/compat";
1
+ import type { RefreshModelsContext } from "@bastani/pi-ai";
2
+ import type { Api, AssistantMessageEventStream, Context, Model, OAuthCredentials, OAuthLoginCallbacks, SimpleStreamOptions } from "@bastani/pi-ai/compat";
3
3
  import type { AtomicProviderCompat } from "../model-capabilities.ts";
4
4
  import type { ExtensionAPI } from "./api-types.ts";
5
5
  export type { AtomicProviderCompat } from "../model-capabilities.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"provider-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/provider-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/provider-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EACX,GAAG,EACH,2BAA2B,EAC3B,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC9B,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mGAAmG;IACnG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,qDAAqD;IACrD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,mBAAmB,KAAK,2BAA2B,CAAC;IACnH,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uFAAuF;IACvF,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,iGAAiG;IACjG,aAAa,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9E,+FAA+F;IAC/F,KAAK,CAAC,EAAE;QACP,iDAAiD;QACjD,IAAI,EAAE,MAAM,CAAC;QACb,8CAA8C;QAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,mEAAmE;QACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,yDAAyD;QACzD,KAAK,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACtF;;;;WAIG;QACH,YAAY,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5F,8DAA8D;QAC9D,SAAS,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM,CAAC;QACjD,6FAA6F;QAC7F,YAAY,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;KACjF,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,WAAW,mBAAmB;IACnC,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAClD,6BAA6B;IAC7B,KAAK,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACzB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,qFAAqF;IACrF,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC9B;AAED,oFAAoF;AACpF,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1E,0FAA0F;AAC1F,MAAM,MAAM,eAAe,GACxB,gBAAgB,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC"}