@earendil-works/pi-coding-agent 0.85.0 → 0.86.0

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 (544) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/README.md +2 -3
  3. package/dist/bun/cli.d.ts +3 -1
  4. package/dist/bun/cli.d.ts.map +1 -1
  5. package/dist/bun/cli.js +3 -12
  6. package/dist/bun/cli.js.map +1 -1
  7. package/dist/bun/sandbox-env-setup.d.ts +2 -0
  8. package/dist/bun/sandbox-env-setup.d.ts.map +1 -0
  9. package/dist/bun/sandbox-env-setup.js +4 -0
  10. package/dist/bun/sandbox-env-setup.js.map +1 -0
  11. package/dist/bundle/chunks/anthropic-messages-MYU5ZMRF.js +6 -0
  12. package/dist/bundle/chunks/azure-openai-responses-HUSQ3GP2.js +2 -0
  13. package/dist/bundle/chunks/bedrock-converse-stream.js +47 -38
  14. package/dist/bundle/chunks/chunk-7IOYH2SY.js +2 -0
  15. package/dist/bundle/chunks/chunk-7YM6BE7Y.js +1561 -0
  16. package/dist/bundle/chunks/chunk-A3JYRWB6.js +2 -0
  17. package/dist/bundle/chunks/chunk-DTD7JQ7Y.js +42 -0
  18. package/dist/bundle/chunks/chunk-FUXEF6JQ.js +44 -0
  19. package/dist/bundle/chunks/{chunk-IDDQWTHI.js → chunk-RCZIEVGO.js} +10 -1
  20. package/dist/bundle/chunks/chunk-S7SZN6Z3.js +2 -0
  21. package/dist/bundle/chunks/chunk-WIUZI2CJ.js +11 -0
  22. package/dist/bundle/chunks/github-copilot.js +1 -1
  23. package/dist/bundle/chunks/google-generative-ai-IMS5EK2Y.js +2 -0
  24. package/dist/bundle/chunks/google-vertex-O4YJEQUW.js +2 -0
  25. package/dist/bundle/chunks/jiti-loader-C3NU2SDH.js +21 -0
  26. package/dist/bundle/chunks/jiti-static-loader-E6ANQD5T.js +2 -0
  27. package/dist/bundle/chunks/mistral-conversations-NOSQHBEY.js +5 -0
  28. package/dist/bundle/chunks/{node-EM5FIVUN.js → node-O3RIBJRH.js} +1 -1
  29. package/dist/bundle/chunks/openai-codex-responses-QDSOTBBO.js +10 -0
  30. package/dist/bundle/chunks/openai-completions-KQPOPEVM.js +7 -0
  31. package/dist/bundle/chunks/openai-responses-HWEUZ6WZ.js +2 -0
  32. package/dist/bundle/chunks/{pi-messages-EGZIFQGG.js → pi-messages-GFKBWJHZ.js} +1 -1
  33. package/dist/bundle/chunks/virtual-modules-XW5APVUE.js +2 -0
  34. package/dist/bundle/cli.js +1 -1
  35. package/dist/bundle/index.js +1 -1
  36. package/dist/bundle/rpc-entry.js +1 -1
  37. package/dist/cli/args.d.ts.map +1 -1
  38. package/dist/cli/args.js +0 -2
  39. package/dist/cli/args.js.map +1 -1
  40. package/dist/cli/session-picker.d.ts +1 -1
  41. package/dist/cli/session-picker.d.ts.map +1 -1
  42. package/dist/cli/session-picker.js.map +1 -1
  43. package/dist/cli/setup.d.ts +2 -0
  44. package/dist/cli/setup.d.ts.map +1 -0
  45. package/dist/cli/setup.js +12 -0
  46. package/dist/cli/setup.js.map +1 -0
  47. package/dist/cli.d.ts.map +1 -1
  48. package/dist/cli.js +3 -25
  49. package/dist/cli.js.map +1 -1
  50. package/dist/config.d.ts.map +1 -1
  51. package/dist/config.js +1 -1
  52. package/dist/config.js.map +1 -1
  53. package/dist/core/agent-session.d.ts +56 -6
  54. package/dist/core/agent-session.d.ts.map +1 -1
  55. package/dist/core/agent-session.js +293 -155
  56. package/dist/core/agent-session.js.map +1 -1
  57. package/dist/core/bug-report-upload.d.ts +12 -0
  58. package/dist/core/bug-report-upload.d.ts.map +1 -0
  59. package/dist/core/bug-report-upload.js +22 -0
  60. package/dist/core/bug-report-upload.js.map +1 -0
  61. package/dist/core/bug-report.d.ts +176 -0
  62. package/dist/core/bug-report.d.ts.map +1 -0
  63. package/dist/core/bug-report.js +292 -0
  64. package/dist/core/bug-report.js.map +1 -0
  65. package/dist/core/cache-stats.d.ts.map +1 -1
  66. package/dist/core/cache-stats.js +12 -1
  67. package/dist/core/cache-stats.js.map +1 -1
  68. package/dist/core/cache-warmer.d.ts +102 -0
  69. package/dist/core/cache-warmer.d.ts.map +1 -0
  70. package/dist/core/cache-warmer.js +342 -0
  71. package/dist/core/cache-warmer.js.map +1 -0
  72. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  73. package/dist/core/compaction/branch-summarization.js +2 -2
  74. package/dist/core/compaction/branch-summarization.js.map +1 -1
  75. package/dist/core/compaction/compaction.d.ts +2 -2
  76. package/dist/core/compaction/compaction.d.ts.map +1 -1
  77. package/dist/core/compaction/compaction.js +11 -12
  78. package/dist/core/compaction/compaction.js.map +1 -1
  79. package/dist/core/crash-log.d.ts +22 -0
  80. package/dist/core/crash-log.d.ts.map +1 -0
  81. package/dist/core/crash-log.js +71 -0
  82. package/dist/core/crash-log.js.map +1 -0
  83. package/dist/core/experimental.d.ts +0 -4
  84. package/dist/core/experimental.d.ts.map +1 -1
  85. package/dist/core/experimental.js +0 -4
  86. package/dist/core/experimental.js.map +1 -1
  87. package/dist/core/extensions/index.d.ts +1 -1
  88. package/dist/core/extensions/index.d.ts.map +1 -1
  89. package/dist/core/extensions/index.js.map +1 -1
  90. package/dist/core/extensions/jiti-loader.d.ts +2 -0
  91. package/dist/core/extensions/jiti-loader.d.ts.map +1 -0
  92. package/dist/core/extensions/jiti-loader.js +4 -0
  93. package/dist/core/extensions/jiti-loader.js.map +1 -0
  94. package/dist/core/extensions/jiti-static-loader.d.ts +2 -0
  95. package/dist/core/extensions/jiti-static-loader.d.ts.map +1 -0
  96. package/dist/core/extensions/jiti-static-loader.js +4 -0
  97. package/dist/core/extensions/jiti-static-loader.js.map +1 -0
  98. package/dist/core/extensions/loader.d.ts.map +1 -1
  99. package/dist/core/extensions/loader.js +38 -51
  100. package/dist/core/extensions/loader.js.map +1 -1
  101. package/dist/core/extensions/runner.d.ts +10 -7
  102. package/dist/core/extensions/runner.d.ts.map +1 -1
  103. package/dist/core/extensions/runner.js +85 -67
  104. package/dist/core/extensions/runner.js.map +1 -1
  105. package/dist/core/extensions/types.d.ts +60 -50
  106. package/dist/core/extensions/types.d.ts.map +1 -1
  107. package/dist/core/extensions/types.js.map +1 -1
  108. package/dist/core/extensions/virtual-modules.d.ts +3 -0
  109. package/dist/core/extensions/virtual-modules.d.ts.map +1 -0
  110. package/dist/core/extensions/virtual-modules.js +38 -0
  111. package/dist/core/extensions/virtual-modules.js.map +1 -0
  112. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  113. package/dist/core/extensions/wrapper.js +1 -20
  114. package/dist/core/extensions/wrapper.js.map +1 -1
  115. package/dist/core/index.d.ts +2 -1
  116. package/dist/core/index.d.ts.map +1 -1
  117. package/dist/core/index.js.map +1 -1
  118. package/dist/core/keybindings.d.ts +6 -1
  119. package/dist/core/keybindings.d.ts.map +1 -1
  120. package/dist/core/keybindings.js +5 -1
  121. package/dist/core/keybindings.js.map +1 -1
  122. package/dist/core/messages.d.ts.map +1 -1
  123. package/dist/core/messages.js +1 -0
  124. package/dist/core/messages.js.map +1 -1
  125. package/dist/core/model-config.d.ts +101 -20
  126. package/dist/core/model-config.d.ts.map +1 -1
  127. package/dist/core/model-config.js +25 -18
  128. package/dist/core/model-config.js.map +1 -1
  129. package/dist/core/model-registry.d.ts +5 -1
  130. package/dist/core/model-registry.d.ts.map +1 -1
  131. package/dist/core/model-registry.js +8 -0
  132. package/dist/core/model-registry.js.map +1 -1
  133. package/dist/core/model-resolver.d.ts.map +1 -1
  134. package/dist/core/model-resolver.js +1 -1
  135. package/dist/core/model-resolver.js.map +1 -1
  136. package/dist/core/model-runtime.d.ts.map +1 -1
  137. package/dist/core/model-runtime.js +5 -3
  138. package/dist/core/model-runtime.js.map +1 -1
  139. package/dist/core/provider-composer.d.ts +3 -2
  140. package/dist/core/provider-composer.d.ts.map +1 -1
  141. package/dist/core/provider-composer.js +2 -0
  142. package/dist/core/provider-composer.js.map +1 -1
  143. package/dist/core/radius.d.ts +3 -0
  144. package/dist/core/radius.d.ts.map +1 -1
  145. package/dist/core/radius.js +6 -0
  146. package/dist/core/radius.js.map +1 -1
  147. package/dist/core/sdk.d.ts.map +1 -1
  148. package/dist/core/sdk.js +60 -38
  149. package/dist/core/sdk.js.map +1 -1
  150. package/dist/core/session-export.d.ts +6 -2
  151. package/dist/core/session-export.d.ts.map +1 -1
  152. package/dist/core/session-export.js +14 -13
  153. package/dist/core/session-export.js.map +1 -1
  154. package/dist/core/session-manager.d.ts +29 -6
  155. package/dist/core/session-manager.d.ts.map +1 -1
  156. package/dist/core/session-manager.js +159 -96
  157. package/dist/core/session-manager.js.map +1 -1
  158. package/dist/core/settings-manager.d.ts +20 -4
  159. package/dist/core/settings-manager.d.ts.map +1 -1
  160. package/dist/core/settings-manager.js +43 -7
  161. package/dist/core/settings-manager.js.map +1 -1
  162. package/dist/core/slash-commands.d.ts.map +1 -1
  163. package/dist/core/slash-commands.js +1 -0
  164. package/dist/core/slash-commands.js.map +1 -1
  165. package/dist/core/system-prompt.d.ts +49 -6
  166. package/dist/core/system-prompt.d.ts.map +1 -1
  167. package/dist/core/system-prompt.js +121 -92
  168. package/dist/core/system-prompt.js.map +1 -1
  169. package/dist/core/tools/bash.d.ts +2 -1
  170. package/dist/core/tools/bash.d.ts.map +1 -1
  171. package/dist/core/tools/bash.js +10 -4
  172. package/dist/core/tools/bash.js.map +1 -1
  173. package/dist/core/tools/edit.d.ts.map +1 -1
  174. package/dist/core/tools/edit.js +1 -2
  175. package/dist/core/tools/edit.js.map +1 -1
  176. package/dist/core/tools/read.d.ts.map +1 -1
  177. package/dist/core/tools/read.js +1 -2
  178. package/dist/core/tools/read.js.map +1 -1
  179. package/dist/core/tools/renderers/bash.d.ts.map +1 -1
  180. package/dist/core/tools/renderers/bash.js +9 -1
  181. package/dist/core/tools/renderers/bash.js.map +1 -1
  182. package/dist/core/tools/write.d.ts.map +1 -1
  183. package/dist/core/tools/write.js +1 -2
  184. package/dist/core/tools/write.js.map +1 -1
  185. package/dist/core/usage-totals.d.ts +1 -1
  186. package/dist/core/usage-totals.d.ts.map +1 -1
  187. package/dist/core/usage-totals.js +5 -1
  188. package/dist/core/usage-totals.js.map +1 -1
  189. package/dist/extensions/llama/client.d.ts +2 -0
  190. package/dist/extensions/llama/client.d.ts.map +1 -1
  191. package/dist/extensions/llama/client.js +7 -3
  192. package/dist/extensions/llama/client.js.map +1 -1
  193. package/dist/extensions/llama/provider.d.ts.map +1 -1
  194. package/dist/extensions/llama/provider.js +20 -5
  195. package/dist/extensions/llama/provider.js.map +1 -1
  196. package/dist/index.d.ts +3 -2
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js.map +1 -1
  199. package/dist/main.d.ts.map +1 -1
  200. package/dist/main.js +13 -131
  201. package/dist/main.js.map +1 -1
  202. package/dist/migrations.d.ts.map +1 -1
  203. package/dist/migrations.js +2 -2
  204. package/dist/migrations.js.map +1 -1
  205. package/dist/modes/interactive/bug-report.d.ts +14 -0
  206. package/dist/modes/interactive/bug-report.d.ts.map +1 -0
  207. package/dist/modes/interactive/bug-report.js +209 -0
  208. package/dist/modes/interactive/bug-report.js.map +1 -0
  209. package/dist/modes/interactive/chat-viewport.d.ts.map +1 -1
  210. package/dist/modes/interactive/chat-viewport.js +1 -1
  211. package/dist/modes/interactive/chat-viewport.js.map +1 -1
  212. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  213. package/dist/modes/interactive/components/branch-summary-message.js +12 -5
  214. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  215. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  216. package/dist/modes/interactive/components/compaction-summary-message.js +12 -5
  217. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  218. package/dist/modes/interactive/components/custom-editor.d.ts +3 -3
  219. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  220. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  221. package/dist/modes/interactive/components/extension-input.d.ts +2 -0
  222. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  223. package/dist/modes/interactive/components/extension-input.js +6 -0
  224. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  225. package/dist/modes/interactive/components/extension-selector.d.ts +1 -0
  226. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  227. package/dist/modes/interactive/components/extension-selector.js +4 -0
  228. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  229. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  230. package/dist/modes/interactive/components/footer.js +4 -1
  231. package/dist/modes/interactive/components/footer.js.map +1 -1
  232. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  233. package/dist/modes/interactive/components/model-selector.js +5 -5
  234. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  235. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  236. package/dist/modes/interactive/components/scoped-models-selector.js +8 -8
  237. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  238. package/dist/modes/interactive/components/session-selector.d.ts +5 -5
  239. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  240. package/dist/modes/interactive/components/session-selector.js +74 -48
  241. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  242. package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  243. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  244. package/dist/modes/interactive/components/settings-selector.js +11 -0
  245. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  246. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  247. package/dist/modes/interactive/components/skill-invocation-message.js +11 -4
  248. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  249. package/dist/modes/interactive/components/status-indicator.d.ts +2 -2
  250. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  251. package/dist/modes/interactive/components/status-indicator.js +7 -7
  252. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  253. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  254. package/dist/modes/interactive/components/thinking-selector.js +4 -4
  255. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  256. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  257. package/dist/modes/interactive/components/tool-execution.js +18 -9
  258. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  259. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  260. package/dist/modes/interactive/components/tree-selector.js +2 -0
  261. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  262. package/dist/modes/interactive/interactive-mode.d.ts +13 -1
  263. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  264. package/dist/modes/interactive/interactive-mode.js +220 -84
  265. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  266. package/dist/modes/interactive/session-share.d.ts +2 -0
  267. package/dist/modes/interactive/session-share.d.ts.map +1 -1
  268. package/dist/modes/interactive/session-share.js +8 -4
  269. package/dist/modes/interactive/session-share.js.map +1 -1
  270. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -1
  271. package/dist/modes/interactive/tui-renderer.js +2 -2
  272. package/dist/modes/interactive/tui-renderer.js.map +1 -1
  273. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  274. package/dist/modes/rpc/rpc-mode.js +2 -2
  275. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  276. package/dist/utils/clipboard-command.d.ts +7 -0
  277. package/dist/utils/clipboard-command.d.ts.map +1 -0
  278. package/dist/utils/clipboard-command.js +45 -0
  279. package/dist/utils/clipboard-command.js.map +1 -0
  280. package/dist/utils/clipboard-image.d.ts.map +1 -1
  281. package/dist/utils/clipboard-image.js +52 -69
  282. package/dist/utils/clipboard-image.js.map +1 -1
  283. package/dist/utils/clipboard.d.ts.map +1 -1
  284. package/dist/utils/clipboard.js +61 -125
  285. package/dist/utils/clipboard.js.map +1 -1
  286. package/dist/utils/zip.d.ts +7 -0
  287. package/dist/utils/zip.d.ts.map +1 -0
  288. package/dist/utils/zip.js +60 -0
  289. package/dist/utils/zip.js.map +1 -0
  290. package/docs/compaction.md +39 -13
  291. package/docs/containerization.md +45 -0
  292. package/docs/custom-provider.md +22 -13
  293. package/docs/development.md +23 -4
  294. package/docs/docs.json +4 -0
  295. package/docs/environment-variables.md +3 -2
  296. package/docs/extensions.md +57 -43
  297. package/docs/json.md +4 -4
  298. package/docs/keybindings.md +2 -1
  299. package/docs/models.md +34 -3
  300. package/docs/providers.md +2 -2
  301. package/docs/sdk.md +4 -2
  302. package/docs/security.md +1 -1
  303. package/docs/session-format.md +82 -40
  304. package/docs/sessions.md +27 -0
  305. package/docs/settings.md +60 -1
  306. package/docs/termux.md +0 -1
  307. package/docs/tui.md +2 -2
  308. package/docs/usage.md +1 -0
  309. package/examples/extensions/README.md +0 -1
  310. package/examples/extensions/custom-provider-anthropic/index.ts +18 -12
  311. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  312. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  313. package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
  314. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  315. package/examples/extensions/gondolin/package-lock.json +2 -2
  316. package/examples/extensions/gondolin/package.json +1 -1
  317. package/examples/extensions/prompt-customizer.ts +19 -67
  318. package/examples/extensions/sandbox/package-lock.json +2 -2
  319. package/examples/extensions/sandbox/package.json +1 -1
  320. package/examples/extensions/with-deps/package-lock.json +2 -2
  321. package/examples/extensions/with-deps/package.json +1 -1
  322. package/npm-shrinkwrap.json +425 -778
  323. package/package.json +22 -27
  324. package/dist/bundle/chunks/anthropic-messages-QAQLEQIY.js +0 -6
  325. package/dist/bundle/chunks/azure-openai-responses-Q7MJBRE6.js +0 -2
  326. package/dist/bundle/chunks/chunk-2KVJKXS2.js +0 -50
  327. package/dist/bundle/chunks/chunk-AXIIZGTV.js +0 -2
  328. package/dist/bundle/chunks/chunk-EQ6DR6XK.js +0 -5
  329. package/dist/bundle/chunks/chunk-GMWCTUPB.js +0 -2
  330. package/dist/bundle/chunks/chunk-LZKJTKCT.js +0 -2
  331. package/dist/bundle/chunks/chunk-OUXLLA64.js +0 -11
  332. package/dist/bundle/chunks/chunk-R7UUJ4C2.js +0 -42
  333. package/dist/bundle/chunks/chunk-UAQELI3K.js +0 -2
  334. package/dist/bundle/chunks/chunk-WBE4J4AU.js +0 -9
  335. package/dist/bundle/chunks/chunk-WZB2R5YO.js +0 -1558
  336. package/dist/bundle/chunks/google-generative-ai-BSMTYDAM.js +0 -2
  337. package/dist/bundle/chunks/google-vertex-5C3HASOJ.js +0 -2
  338. package/dist/bundle/chunks/mistral-conversations-4M6BZBX6.js +0 -5
  339. package/dist/bundle/chunks/openai-codex-responses-YJOO52RW.js +0 -10
  340. package/dist/bundle/chunks/openai-completions-QOT3QX7D.js +0 -7
  341. package/dist/bundle/chunks/openai-responses-U7LNPQN4.js +0 -2
  342. package/dist/bundle/client.js +0 -2
  343. package/dist/bundle/coordinator.js +0 -3
  344. package/dist/cli/experimental/cli.d.ts +0 -10
  345. package/dist/cli/experimental/cli.d.ts.map +0 -1
  346. package/dist/cli/experimental/cli.js +0 -9
  347. package/dist/cli/experimental/cli.js.map +0 -1
  348. package/dist/cli/experimental/command-options.d.ts +0 -28
  349. package/dist/cli/experimental/command-options.d.ts.map +0 -1
  350. package/dist/cli/experimental/command-options.js +0 -84
  351. package/dist/cli/experimental/command-options.js.map +0 -1
  352. package/dist/cli/experimental/command.d.ts +0 -70
  353. package/dist/cli/experimental/command.d.ts.map +0 -1
  354. package/dist/cli/experimental/command.js +0 -144
  355. package/dist/cli/experimental/command.js.map +0 -1
  356. package/dist/cli/experimental/commands/client.d.ts +0 -19
  357. package/dist/cli/experimental/commands/client.d.ts.map +0 -1
  358. package/dist/cli/experimental/commands/client.js +0 -63
  359. package/dist/cli/experimental/commands/client.js.map +0 -1
  360. package/dist/cli/experimental/commands/server.d.ts +0 -17
  361. package/dist/cli/experimental/commands/server.d.ts.map +0 -1
  362. package/dist/cli/experimental/commands/server.js +0 -44
  363. package/dist/cli/experimental/commands/server.js.map +0 -1
  364. package/dist/client/index.d.ts +0 -2
  365. package/dist/client/index.d.ts.map +0 -1
  366. package/dist/client/index.js +0 -2
  367. package/dist/client/index.js.map +0 -1
  368. package/dist/experimental/client-runtime.d.ts +0 -43
  369. package/dist/experimental/client-runtime.d.ts.map +0 -1
  370. package/dist/experimental/client-runtime.js +0 -183
  371. package/dist/experimental/client-runtime.js.map +0 -1
  372. package/dist/experimental/client-tui-chat.d.ts +0 -14
  373. package/dist/experimental/client-tui-chat.d.ts.map +0 -1
  374. package/dist/experimental/client-tui-chat.js +0 -171
  375. package/dist/experimental/client-tui-chat.js.map +0 -1
  376. package/dist/experimental/client-tui.d.ts +0 -37
  377. package/dist/experimental/client-tui.d.ts.map +0 -1
  378. package/dist/experimental/client-tui.js +0 -702
  379. package/dist/experimental/client-tui.js.map +0 -1
  380. package/dist/experimental/client.d.ts +0 -25
  381. package/dist/experimental/client.d.ts.map +0 -1
  382. package/dist/experimental/client.js +0 -99
  383. package/dist/experimental/client.js.map +0 -1
  384. package/dist/experimental/coordinator-entry.d.ts +0 -3
  385. package/dist/experimental/coordinator-entry.d.ts.map +0 -1
  386. package/dist/experimental/coordinator-entry.js +0 -11
  387. package/dist/experimental/coordinator-entry.js.map +0 -1
  388. package/dist/experimental/coordinator.d.ts +0 -38
  389. package/dist/experimental/coordinator.d.ts.map +0 -1
  390. package/dist/experimental/coordinator.js +0 -570
  391. package/dist/experimental/coordinator.js.map +0 -1
  392. package/dist/experimental/mini/main.d.ts +0 -7
  393. package/dist/experimental/mini/main.d.ts.map +0 -1
  394. package/dist/experimental/mini/main.js +0 -21
  395. package/dist/experimental/mini/main.js.map +0 -1
  396. package/dist/experimental/mini/server/entry.d.ts +0 -3
  397. package/dist/experimental/mini/server/entry.d.ts.map +0 -1
  398. package/dist/experimental/mini/server/entry.js +0 -11
  399. package/dist/experimental/mini/server/entry.js.map +0 -1
  400. package/dist/experimental/mini/server/run.d.ts +0 -13
  401. package/dist/experimental/mini/server/run.d.ts.map +0 -1
  402. package/dist/experimental/mini/server/run.js +0 -150
  403. package/dist/experimental/mini/server/run.js.map +0 -1
  404. package/dist/experimental/mini/shared/protocol.d.ts +0 -127
  405. package/dist/experimental/mini/shared/protocol.d.ts.map +0 -1
  406. package/dist/experimental/mini/shared/protocol.js +0 -13
  407. package/dist/experimental/mini/shared/protocol.js.map +0 -1
  408. package/dist/experimental/mini/shared/rpc.d.ts +0 -49
  409. package/dist/experimental/mini/shared/rpc.d.ts.map +0 -1
  410. package/dist/experimental/mini/shared/rpc.js +0 -171
  411. package/dist/experimental/mini/shared/rpc.js.map +0 -1
  412. package/dist/experimental/mini/shared/transport.d.ts +0 -35
  413. package/dist/experimental/mini/shared/transport.d.ts.map +0 -1
  414. package/dist/experimental/mini/shared/transport.js +0 -94
  415. package/dist/experimental/mini/shared/transport.js.map +0 -1
  416. package/dist/experimental/mini/tui/run.d.ts +0 -9
  417. package/dist/experimental/mini/tui/run.d.ts.map +0 -1
  418. package/dist/experimental/mini/tui/run.js +0 -62
  419. package/dist/experimental/mini/tui/run.js.map +0 -1
  420. package/dist/experimental/mini/tui/session.d.ts +0 -26
  421. package/dist/experimental/mini/tui/session.d.ts.map +0 -1
  422. package/dist/experimental/mini/tui/session.js +0 -94
  423. package/dist/experimental/mini/tui/session.js.map +0 -1
  424. package/dist/experimental/mini/tui/view.d.ts +0 -10
  425. package/dist/experimental/mini/tui/view.d.ts.map +0 -1
  426. package/dist/experimental/mini/tui/view.js +0 -459
  427. package/dist/experimental/mini/tui/view.js.map +0 -1
  428. package/dist/experimental/mini/worker/entry.d.ts +0 -3
  429. package/dist/experimental/mini/worker/entry.d.ts.map +0 -1
  430. package/dist/experimental/mini/worker/entry.js +0 -10
  431. package/dist/experimental/mini/worker/entry.js.map +0 -1
  432. package/dist/experimental/mini/worker/lane-service.d.ts +0 -44
  433. package/dist/experimental/mini/worker/lane-service.d.ts.map +0 -1
  434. package/dist/experimental/mini/worker/lane-service.js +0 -97
  435. package/dist/experimental/mini/worker/lane-service.js.map +0 -1
  436. package/dist/experimental/mini/worker/models-service.d.ts +0 -19
  437. package/dist/experimental/mini/worker/models-service.d.ts.map +0 -1
  438. package/dist/experimental/mini/worker/models-service.js +0 -136
  439. package/dist/experimental/mini/worker/models-service.js.map +0 -1
  440. package/dist/experimental/mini/worker/run.d.ts +0 -14
  441. package/dist/experimental/mini/worker/run.d.ts.map +0 -1
  442. package/dist/experimental/mini/worker/run.js +0 -88
  443. package/dist/experimental/mini/worker/run.js.map +0 -1
  444. package/dist/experimental/plugin.d.ts +0 -4
  445. package/dist/experimental/plugin.d.ts.map +0 -1
  446. package/dist/experimental/plugin.js +0 -4
  447. package/dist/experimental/plugin.js.map +0 -1
  448. package/dist/experimental/plugins/bundled.d.ts +0 -7
  449. package/dist/experimental/plugins/bundled.d.ts.map +0 -1
  450. package/dist/experimental/plugins/bundled.js +0 -48
  451. package/dist/experimental/plugins/bundled.js.map +0 -1
  452. package/dist/experimental/plugins/package.d.ts +0 -18
  453. package/dist/experimental/plugins/package.d.ts.map +0 -1
  454. package/dist/experimental/plugins/package.js +0 -113
  455. package/dist/experimental/plugins/package.js.map +0 -1
  456. package/dist/experimental/process.d.ts +0 -20
  457. package/dist/experimental/process.d.ts.map +0 -1
  458. package/dist/experimental/process.js +0 -85
  459. package/dist/experimental/process.js.map +0 -1
  460. package/dist/experimental/radius-auth.d.ts +0 -17
  461. package/dist/experimental/radius-auth.d.ts.map +0 -1
  462. package/dist/experimental/radius-auth.js +0 -52
  463. package/dist/experimental/radius-auth.js.map +0 -1
  464. package/dist/experimental/radius-relay.d.ts +0 -90
  465. package/dist/experimental/radius-relay.d.ts.map +0 -1
  466. package/dist/experimental/radius-relay.js +0 -582
  467. package/dist/experimental/radius-relay.js.map +0 -1
  468. package/dist/experimental/server.d.ts +0 -75
  469. package/dist/experimental/server.d.ts.map +0 -1
  470. package/dist/experimental/server.js +0 -682
  471. package/dist/experimental/server.js.map +0 -1
  472. package/dist/experimental/services/agent-controller-provider.d.ts +0 -4
  473. package/dist/experimental/services/agent-controller-provider.d.ts.map +0 -1
  474. package/dist/experimental/services/agent-controller-provider.js +0 -84
  475. package/dist/experimental/services/agent-controller-provider.js.map +0 -1
  476. package/dist/experimental/services/agent-controller.d.ts +0 -57
  477. package/dist/experimental/services/agent-controller.d.ts.map +0 -1
  478. package/dist/experimental/services/agent-controller.js +0 -3
  479. package/dist/experimental/services/agent-controller.js.map +0 -1
  480. package/dist/experimental/services/connection.d.ts +0 -40
  481. package/dist/experimental/services/connection.d.ts.map +0 -1
  482. package/dist/experimental/services/connection.js +0 -300
  483. package/dist/experimental/services/connection.js.map +0 -1
  484. package/dist/experimental/services/models-provider.d.ts +0 -16
  485. package/dist/experimental/services/models-provider.d.ts.map +0 -1
  486. package/dist/experimental/services/models-provider.js +0 -116
  487. package/dist/experimental/services/models-provider.js.map +0 -1
  488. package/dist/experimental/services/models.d.ts +0 -36
  489. package/dist/experimental/services/models.d.ts.map +0 -1
  490. package/dist/experimental/services/models.js +0 -3
  491. package/dist/experimental/services/models.js.map +0 -1
  492. package/dist/experimental/services/plugins.d.ts +0 -16
  493. package/dist/experimental/services/plugins.d.ts.map +0 -1
  494. package/dist/experimental/services/plugins.js +0 -4
  495. package/dist/experimental/services/plugins.js.map +0 -1
  496. package/dist/experimental/services/presentation-ui.d.ts +0 -13
  497. package/dist/experimental/services/presentation-ui.d.ts.map +0 -1
  498. package/dist/experimental/services/presentation-ui.js +0 -3
  499. package/dist/experimental/services/presentation-ui.js.map +0 -1
  500. package/dist/experimental/services/server.d.ts +0 -19
  501. package/dist/experimental/services/server.d.ts.map +0 -1
  502. package/dist/experimental/services/server.js +0 -104
  503. package/dist/experimental/services/server.js.map +0 -1
  504. package/dist/experimental/services/sessions.d.ts +0 -28
  505. package/dist/experimental/services/sessions.d.ts.map +0 -1
  506. package/dist/experimental/services/sessions.js +0 -4
  507. package/dist/experimental/services/sessions.js.map +0 -1
  508. package/dist/experimental/services/slash-commands-provider.d.ts +0 -14
  509. package/dist/experimental/services/slash-commands-provider.d.ts.map +0 -1
  510. package/dist/experimental/services/slash-commands-provider.js +0 -200
  511. package/dist/experimental/services/slash-commands-provider.js.map +0 -1
  512. package/dist/experimental/services/slash-commands.d.ts +0 -24
  513. package/dist/experimental/services/slash-commands.d.ts.map +0 -1
  514. package/dist/experimental/services/slash-commands.js +0 -3
  515. package/dist/experimental/services/slash-commands.js.map +0 -1
  516. package/dist/experimental/services/transcript-provider.d.ts +0 -12
  517. package/dist/experimental/services/transcript-provider.d.ts.map +0 -1
  518. package/dist/experimental/services/transcript-provider.js +0 -109
  519. package/dist/experimental/services/transcript-provider.js.map +0 -1
  520. package/dist/experimental/services/transcript.d.ts +0 -13
  521. package/dist/experimental/services/transcript.d.ts.map +0 -1
  522. package/dist/experimental/services/transcript.js +0 -3
  523. package/dist/experimental/services/transcript.js.map +0 -1
  524. package/dist/experimental/services/worker.d.ts +0 -28
  525. package/dist/experimental/services/worker.d.ts.map +0 -1
  526. package/dist/experimental/services/worker.js +0 -107
  527. package/dist/experimental/services/worker.js.map +0 -1
  528. package/dist/experimental/session-worker-manager.d.ts +0 -24
  529. package/dist/experimental/session-worker-manager.d.ts.map +0 -1
  530. package/dist/experimental/session-worker-manager.js +0 -691
  531. package/dist/experimental/session-worker-manager.js.map +0 -1
  532. package/dist/experimental/session-worker.d.ts +0 -188
  533. package/dist/experimental/session-worker.d.ts.map +0 -1
  534. package/dist/experimental/session-worker.js +0 -785
  535. package/dist/experimental/session-worker.js.map +0 -1
  536. package/dist/experimental/source-resolver.d.ts +0 -2
  537. package/dist/experimental/source-resolver.d.ts.map +0 -1
  538. package/dist/experimental/source-resolver.js +0 -71
  539. package/dist/experimental/source-resolver.js.map +0 -1
  540. package/dist/utils/clipboard-native.d.ts +0 -11
  541. package/dist/utils/clipboard-native.d.ts.map +0 -1
  542. package/dist/utils/clipboard-native.js +0 -20
  543. package/dist/utils/clipboard-native.js.map +0 -1
  544. package/examples/extensions/kimi-deferred-tools.ts +0 -61
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-worker.js","sourceRoot":"","sources":["../../src/experimental/session-worker.ts"],"names":[],"mappings":"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","sourcesContent":["import { createConnection, type Socket } from \"node:net\";\nimport { isAbsolute } from \"node:path\";\nimport {\n\tisJsonValue,\n\ttype JsonValue,\n\tparseServiceProviderUpdate,\n\tREMOTE_SERVICE_ERROR_CODES,\n\tRemoteServiceError,\n\ttype RemoteServiceErrorCode,\n\ttype ServiceCall,\n\ttype ServiceProviderUpdate,\n} from \"@earendil-works/chord\";\nimport {\n\tAgentHarness,\n\ttype AgentHarness as AgentHarnessInstance,\n\ttype AgentLane,\n\tBACKGROUND_CONTEXT,\n\tcreateBashTool,\n\tcreateReadTool,\n\tcreateWriteTool,\n\ttype JsonlSessionMetadata,\n\tJsonlSessionRepo,\n\ttype Session,\n\tTODO_CONTEXT,\n\twithCancel,\n} from \"@earendil-works/pi-agent-core\";\nimport { NodeExecutionEnv } from \"@earendil-works/pi-agent-core/node\";\nimport lockfile from \"proper-lockfile\";\nimport Type, { type Static } from \"typebox\";\nimport { Check } from \"typebox/value\";\nimport { findInitialModel, resolveCliModel } from \"../core/model-resolver.ts\";\nimport { ModelRuntime } from \"../core/model-runtime.ts\";\nimport { SettingsManager } from \"../core/settings-manager.ts\";\nimport { COORDINATOR_PROTOCOL_VERSION } from \"./coordinator.ts\";\nimport { createSessionPluginFacetLoader } from \"./plugins/bundled.ts\";\nimport {\n\tconsumeInternalProcessRole,\n\tencodeControlLine,\n\tisDirectInternalProcessEntry,\n\tMAX_CONTROL_LINE_BYTES,\n} from \"./process.ts\";\nimport {\n\tcreateSessionWorkerServices,\n\ttype SessionWorkerRuntime,\n\ttype SessionWorkerServices,\n\ttype WorkerServiceScope,\n} from \"./services/worker.ts\";\n\nexport type { SessionWorkerRuntime } from \"./services/worker.ts\";\n\nconst StrictObject = <const T extends Parameters<typeof Type.Object>[0]>(properties: T) =>\n\tType.Object(properties, { additionalProperties: false });\nconst OpaqueJsonValueSchema = Type.Unsafe<JsonValue>(Type.Unknown());\nconst ServiceCallSchema = Type.Unsafe<ServiceCall>(\n\tStrictObject({\n\t\tserviceId: Type.String({ minLength: 1 }),\n\t\tinstance: Type.Optional(\n\t\t\tStrictObject({ key: Type.String({ minLength: 1 }), generation: Type.Integer({ minimum: 1 }) }),\n\t\t),\n\t\tmember: Type.String({ minLength: 1 }),\n\t\targs: Type.Array(Type.Unknown()),\n\t}),\n);\nconst RemoteServiceErrorCodeSchema = Type.Unsafe<RemoteServiceErrorCode>(\n\tType.String({ pattern: `^(?:${REMOTE_SERVICE_ERROR_CODES.join(\"|\")})$` }),\n);\n\nexport const SESSION_WORKER_CONTROL_ADDRESS_ENV = \"PI_SESSION_WORKER_CONTROL_ADDRESS\";\nexport const SESSION_WORKER_CONTROL_TOKEN_ENV = \"PI_SESSION_WORKER_CONTROL_TOKEN\";\nexport const SESSION_WORKER_SESSION_KEY_ENV = \"PI_SESSION_WORKER_SESSION_KEY_BASE64\";\nexport const SESSION_WORKER_PEER_ID_ENV = \"PI_SESSION_WORKER_PEER_ID\";\n\nexport const SessionWorkerMetadataSchema = StrictObject({\n\tid: Type.String({ minLength: 1 }),\n\tcreatedAt: Type.Integer(),\n\tstorageVersion: Type.Integer(),\n\tcwd: Type.String(),\n\tpath: Type.String(),\n\tmodifiedAt: Type.Number(),\n\tparentSessionId: Type.Optional(Type.String()),\n});\n\nexport const SessionWorkerOptionsSchema = StrictObject({\n\tsessionDir: Type.String({ minLength: 1 }),\n\tmetadata: SessionWorkerMetadataSchema,\n\tprovider: Type.Optional(Type.String({ minLength: 1 })),\n\tmodel: Type.Optional(Type.String({ minLength: 1 })),\n\tpluginManifestPaths: Type.Array(Type.String({ minLength: 1 })),\n});\nexport type SessionWorkerOptions = Static<typeof SessionWorkerOptionsSchema>;\n\nexport const WorkerOperationScopeSchema = StrictObject({\n\tserverConnectionId: Type.String(),\n\tattachmentId: Type.String(),\n});\nexport type WorkerOperationScope = WorkerServiceScope;\n\nexport const WorkerOperationRequestSchema = StrictObject({\n\ttype: Type.Literal(\"operation\"),\n\trequestId: Type.String({ minLength: 1 }),\n\tscope: WorkerOperationScopeSchema,\n\tcall: ServiceCallSchema,\n});\nexport type WorkerOperationRequest = Static<typeof WorkerOperationRequestSchema>;\n\nexport const WorkerOperationResponseSchema = Type.Union([\n\tStrictObject({\n\t\ttype: Type.Literal(\"operation_result\"),\n\t\trequestId: Type.String({ minLength: 1 }),\n\t\tscope: WorkerOperationScopeSchema,\n\t\tresult: Type.Optional(OpaqueJsonValueSchema),\n\t}),\n\tStrictObject({\n\t\ttype: Type.Literal(\"operation_error\"),\n\t\trequestId: Type.String({ minLength: 1 }),\n\t\tscope: WorkerOperationScopeSchema,\n\t\tcode: Type.Optional(RemoteServiceErrorCodeSchema),\n\t\tmessage: Type.String(),\n\t}),\n]);\nexport type WorkerOperationResponse = Static<typeof WorkerOperationResponseSchema>;\n\nexport const SessionWorkerCommandSchema = Type.Union([\n\tType.Object({ type: Type.Literal(\"shutdown\") }),\n\tType.Object({ type: Type.Literal(\"discover_workers\") }),\n\tType.Object({\n\t\ttype: Type.Literal(\"session_demand\"),\n\t\tserverConnectionId: Type.String(),\n\t\trequestId: Type.String(),\n\t\tattachmentId: Type.String(),\n\t\tattached: Type.Boolean(),\n\t}),\n\tWorkerOperationRequestSchema,\n\tStrictObject({\n\t\ttype: Type.Literal(\"operation_cancel\"),\n\t\trequestId: Type.String({ minLength: 1 }),\n\t\tscope: WorkerOperationScopeSchema,\n\t}),\n]);\nexport type SessionWorkerCommand = Static<typeof SessionWorkerCommandSchema>;\n\nexport const SessionWorkerEventSchema = Type.Union([\n\tType.Object({\n\t\ttype: Type.Literal(\"worker_ready\"),\n\t\ttoken: Type.String(),\n\t\tsessionKey: Type.String(),\n\t\tsessionId: Type.String(),\n\t\tpid: Type.Integer({ minimum: 1 }),\n\t\tmetadata: SessionWorkerMetadataSchema,\n\t\tpluginManifestPaths: Type.Array(Type.String({ minLength: 1 })),\n\t}),\n\tType.Object({\n\t\ttype: Type.Literal(\"worker_failed\"),\n\t\ttoken: Type.String(),\n\t\tsessionKey: Type.String(),\n\t\tmessage: Type.String(),\n\t}),\n\tType.Object({\n\t\ttype: Type.Literal(\"demand_applied\"),\n\t\ttoken: Type.String(),\n\t\tsessionKey: Type.String(),\n\t\trequestId: Type.String(),\n\t\tattachmentId: Type.String(),\n\t\tattached: Type.Boolean(),\n\t}),\n\tType.Object({\n\t\ttype: Type.Literal(\"demand_rejected\"),\n\t\ttoken: Type.String(),\n\t\tsessionKey: Type.String(),\n\t\trequestId: Type.String(),\n\t\tmessage: Type.String(),\n\t}),\n\tType.Object({\n\t\ttype: Type.Literal(\"operation_response\"),\n\t\ttoken: Type.String(),\n\t\tsessionKey: Type.String(),\n\t\tresponse: WorkerOperationResponseSchema,\n\t}),\n\tType.Object({\n\t\ttype: Type.Literal(\"service_update\"),\n\t\ttoken: Type.String(),\n\t\tsessionKey: Type.String(),\n\t\tscope: WorkerOperationScopeSchema,\n\t\tsubscriptionId: Type.String({ minLength: 1 }),\n\t\tupdate: Type.Unknown(),\n\t}),\n]);\nexport type SessionWorkerEvent = Static<typeof SessionWorkerEventSchema>;\n\n/** Worker-local reconciliation of server-generation demand and Harness activity. */\nexport class WorkerLifecycle {\n\treadonly #initialDemandGraceMs: number;\n\treadonly #orphanDemandGraceMs: number;\n\treadonly #onRetire: () => void;\n\treadonly #demands = new Map<string, { serverConnectionId: string; attachmentId: string; timer?: NodeJS.Timeout }>();\n\treadonly #activeOperations = new Set<string>();\n\t#currentServerConnectionId: string | undefined;\n\t#initialTimer: NodeJS.Timeout | undefined;\n\t#demandInitialized: boolean;\n\t#retirementHolds = 0;\n\t#retiring = false;\n\n\tconstructor(options: {\n\t\tinitialServerConnectionId?: string;\n\t\tinitialDemandGraceMs: number;\n\t\torphanDemandGraceMs: number;\n\t\tonRetire(): void;\n\t}) {\n\t\tthis.#currentServerConnectionId = options.initialServerConnectionId;\n\t\tthis.#initialDemandGraceMs = options.initialDemandGraceMs;\n\t\tthis.#orphanDemandGraceMs = options.orphanDemandGraceMs;\n\t\tthis.#onRetire = options.onRetire;\n\t\tthis.#demandInitialized = false;\n\t\tthis.#initialTimer = setTimeout(() => {\n\t\t\tthis.#initialTimer = undefined;\n\t\t\tthis.#demandInitialized = true;\n\t\t\tthis.#reconcile();\n\t\t}, this.#initialDemandGraceMs);\n\t\tthis.#initialTimer.unref();\n\t}\n\n\tserverConnected(serverConnectionId: string): void {\n\t\tthis.#currentServerConnectionId = serverConnectionId;\n\t\tfor (const demand of this.#demands.values()) {\n\t\t\tif (demand.serverConnectionId !== serverConnectionId || !demand.timer) continue;\n\t\t\tclearTimeout(demand.timer);\n\t\t\tdelete demand.timer;\n\t\t}\n\t}\n\n\tserverDisconnected(serverConnectionId: string): void {\n\t\tif (this.#currentServerConnectionId === serverConnectionId) this.#currentServerConnectionId = undefined;\n\t\tfor (const [key, demand] of this.#demands) {\n\t\t\tif (demand.serverConnectionId !== serverConnectionId || demand.timer) continue;\n\t\t\tdemand.timer = setTimeout(() => {\n\t\t\t\tif (this.#demands.get(key) !== demand) return;\n\t\t\t\tthis.#demands.delete(key);\n\t\t\t\tthis.#reconcile();\n\t\t\t}, this.#orphanDemandGraceMs);\n\t\t\tdemand.timer.unref();\n\t\t}\n\t}\n\n\tbeginRequest(serverConnectionId: string, attachmentId: string): () => void {\n\t\tif (this.#retiring) throw new Error(\"Session worker is retiring\");\n\t\tif (serverConnectionId !== this.#currentServerConnectionId) {\n\t\t\tthrow new Error(\"Session worker received a request from a stale server generation\");\n\t\t}\n\t\tconst demand = this.#demands.get(demandKey(serverConnectionId, attachmentId));\n\t\tif (!demand || demand.timer) {\n\t\t\tthrow new Error(\"Session worker request does not match the active attachment\");\n\t\t}\n\t\treturn this.holdRetirement();\n\t}\n\n\tholdRetirement(): () => void {\n\t\tthis.#retirementHolds += 1;\n\t\tlet released = false;\n\t\treturn () => {\n\t\t\tif (released) return;\n\t\t\treleased = true;\n\t\t\tthis.#retirementHolds -= 1;\n\t\t\tthis.#reconcile();\n\t\t};\n\t}\n\n\tsetDemand(serverConnectionId: string, attachmentId: string, attached: boolean): void {\n\t\tif (this.#retiring) throw new Error(\"Session worker is retiring\");\n\t\tif (serverConnectionId !== this.#currentServerConnectionId) {\n\t\t\tthrow new Error(\"Session worker received demand from a stale server generation\");\n\t\t}\n\t\tthis.#demandInitialized = true;\n\t\tif (this.#initialTimer) {\n\t\t\tclearTimeout(this.#initialTimer);\n\t\t\tthis.#initialTimer = undefined;\n\t\t}\n\t\tconst key = demandKey(serverConnectionId, attachmentId);\n\t\tconst previous = this.#demands.get(key);\n\t\tif (previous?.timer) clearTimeout(previous.timer);\n\t\tif (attached) this.#demands.set(key, { serverConnectionId, attachmentId });\n\t\telse this.#demands.delete(key);\n\t\tthis.#reconcile();\n\t}\n\n\toperationStarted(kind: \"run\" | \"compaction\" | \"navigation\", lane: string, operationId: string): void {\n\t\tthis.#activeOperations.add(`${kind}\\0${lane}\\0${operationId}`);\n\t}\n\n\toperationStopped(kind: \"run\" | \"compaction\" | \"navigation\", lane: string, operationId: string): void {\n\t\tthis.#activeOperations.delete(`${kind}\\0${lane}\\0${operationId}`);\n\t\tthis.#reconcile();\n\t}\n\n\tclose(): void {\n\t\tif (this.#initialTimer) clearTimeout(this.#initialTimer);\n\t\tfor (const demand of this.#demands.values()) {\n\t\t\tif (demand.timer) clearTimeout(demand.timer);\n\t\t}\n\t\tthis.#demands.clear();\n\t}\n\n\t#reconcile(): void {\n\t\tif (\n\t\t\tthis.#retiring ||\n\t\t\t!this.#demandInitialized ||\n\t\t\tthis.#retirementHolds !== 0 ||\n\t\t\tthis.#activeOperations.size !== 0 ||\n\t\t\tthis.#demands.size !== 0\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tthis.#retiring = true;\n\t\tthis.#onRetire();\n\t}\n}\n\nconst DEFAULT_INITIAL_DEMAND_GRACE_MS = 10_000;\nconst DEFAULT_ORPHAN_DEMAND_GRACE_MS = 30_000;\nexport const SESSION_WORKER_INITIAL_DEMAND_GRACE_ENV = \"__PI_SESSION_WORKER_INITIAL_DEMAND_GRACE_MS\";\nexport const SESSION_WORKER_ORPHAN_DEMAND_GRACE_ENV = \"__PI_SESSION_WORKER_ORPHAN_DEMAND_GRACE_MS\";\n\nconst CoordinatorInputSchema = Type.Union([\n\tType.Object({\n\t\ttype: Type.Literal(\"peer_registered\"),\n\t\tpeerId: Type.String(),\n\t\tserverConnectionId: Type.Optional(Type.String()),\n\t}),\n\tType.Object({ type: Type.Literal(\"server_connected\"), serverConnectionId: Type.String() }),\n\tType.Object({ type: Type.Literal(\"server_disconnected\"), serverConnectionId: Type.String() }),\n\tType.Object({ type: Type.Literal(\"message\"), from: Type.Literal(\"server\"), payload: Type.Unknown() }),\n]);\ntype CoordinatorInput = Static<typeof CoordinatorInputSchema>;\n\ninterface WorkerControl {\n\treadonly initialServerConnectionId?: string;\n\treadonly messages: AsyncIterable<unknown>;\n\treadonly socket: Socket;\n\tsend(event: SessionWorkerEvent): Promise<void>;\n}\n\nlet failureControl: WorkerControl | undefined;\n\nasync function connectControl(): Promise<WorkerControl> {\n\tconst address = process.env[SESSION_WORKER_CONTROL_ADDRESS_ENV];\n\tconst token = process.env[SESSION_WORKER_CONTROL_TOKEN_ENV];\n\tconst encodedSessionKey = process.env[SESSION_WORKER_SESSION_KEY_ENV];\n\tif (!address || !token || !encodedSessionKey) throw new Error(\"Session worker requires a control address\");\n\tconst peerId = process.env[SESSION_WORKER_PEER_ID_ENV];\n\tif (!peerId) throw new Error(\"Session worker requires a peer ID\");\n\tconst socket = createConnection(address);\n\tawait new Promise<void>((resolve, reject) => {\n\t\tsocket.once(\"connect\", resolve);\n\t\tsocket.once(\"error\", reject);\n\t});\n\tconst messages = createJsonLineMessages(socket);\n\tawait writeJsonLine(socket, { type: \"register_peer\", protocol: COORDINATOR_PROTOCOL_VERSION, peerId });\n\tconst registered = await messages[Symbol.asyncIterator]().next();\n\tif (\n\t\tregistered.done ||\n\t\t!Check(CoordinatorInputSchema, registered.value) ||\n\t\tregistered.value.type !== \"peer_registered\"\n\t) {\n\t\tthrow new Error(\"Coordinator rejected the session worker registration\");\n\t}\n\treturn {\n\t\t...(registered.value.serverConnectionId === undefined\n\t\t\t? {}\n\t\t\t: { initialServerConnectionId: registered.value.serverConnectionId }),\n\t\tmessages,\n\t\tsocket,\n\t\tsend: (event) => writeJsonLine(socket, { type: \"send\", to: \"server\", payload: event }),\n\t};\n}\n\nasync function readCommands(\n\tcontrol: WorkerControl,\n\thandlers: {\n\t\tonShutdown(): void;\n\t\tonDiscovery(): void;\n\t\tonDemand(command: Extract<SessionWorkerCommand, { type: \"session_demand\" }>): Promise<void>;\n\t\tonOperation(command: WorkerOperationRequest): void;\n\t\tonOperationCancel(command: Extract<SessionWorkerCommand, { type: \"operation_cancel\" }>): void;\n\t\tonServerConnected(serverConnectionId: string): void;\n\t\tonServerDisconnected(serverConnectionId: string): void;\n\t},\n): Promise<void> {\n\tfor await (const value of control.messages) {\n\t\tif (!Check(CoordinatorInputSchema, value)) {\n\t\t\tcontrol.socket.destroy(new Error(\"Coordinator sent an invalid worker message\"));\n\t\t\treturn;\n\t\t}\n\t\tconst message: CoordinatorInput = value;\n\t\tif (message.type === \"server_connected\") {\n\t\t\thandlers.onServerConnected(message.serverConnectionId);\n\t\t\tcontinue;\n\t\t}\n\t\tif (message.type === \"server_disconnected\") {\n\t\t\thandlers.onServerDisconnected(message.serverConnectionId);\n\t\t\tcontinue;\n\t\t}\n\t\tif (message.type !== \"message\" || !Check(SessionWorkerCommandSchema, message.payload)) continue;\n\t\tconst command: SessionWorkerCommand = message.payload;\n\t\tif (command.type === \"shutdown\") handlers.onShutdown();\n\t\telse if (command.type === \"discover_workers\") handlers.onDiscovery();\n\t\telse if (command.type === \"session_demand\") await handlers.onDemand(command);\n\t\telse if (command.type === \"operation_cancel\") handlers.onOperationCancel(command);\n\t\telse handlers.onOperation(command);\n\t}\n}\n\nfunction createJsonLineMessages(socket: Socket): AsyncIterable<unknown> {\n\tconst queued: unknown[] = [];\n\tconst waiters: ((value: unknown) => void)[] = [];\n\tlet buffered = \"\";\n\tsocket.setEncoding(\"utf8\");\n\tsocket.on(\"data\", (chunk: string) => {\n\t\tbuffered += chunk;\n\t\tif (Buffer.byteLength(buffered) > MAX_CONTROL_LINE_BYTES) {\n\t\t\tsocket.destroy(new Error(\"Session worker control message is too large\"));\n\t\t\treturn;\n\t\t}\n\t\twhile (true) {\n\t\t\tconst newline = buffered.indexOf(\"\\n\");\n\t\t\tif (newline === -1) return;\n\t\t\tconst line = buffered.slice(0, newline);\n\t\t\tbuffered = buffered.slice(newline + 1);\n\t\t\ttry {\n\t\t\t\tconst value: unknown = JSON.parse(line);\n\t\t\t\tconst waiter = waiters.shift();\n\t\t\t\tif (waiter) waiter(value);\n\t\t\t\telse queued.push(value);\n\t\t\t} catch {\n\t\t\t\tsocket.destroy(new Error(\"Session worker received invalid control JSON\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t});\n\treturn {\n\t\t[Symbol.asyncIterator]() {\n\t\t\treturn {\n\t\t\t\tnext: async () => {\n\t\t\t\t\tconst value = queued.shift() ?? (await new Promise<unknown>((resolve) => waiters.push(resolve)));\n\t\t\t\t\treturn { done: false as const, value };\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t};\n}\n\nfunction writeJsonLine(socket: Socket, message: unknown): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tsocket.write(encodeControlLine(message), (error) => {\n\t\t\tif (error) reject(error);\n\t\t\telse resolve();\n\t\t});\n\t});\n}\n\nfunction toWorkerServiceUpdate(update: ServiceProviderUpdate): ServiceProviderUpdate {\n\tif (!isJsonValue(update)) throw new Error(\"Service produced a non-JSON update\");\n\treturn parseServiceProviderUpdate(update);\n}\n\nfunction demandKey(serverConnectionId: string, attachmentId: string): string {\n\treturn `${serverConnectionId}\\0${attachmentId}`;\n}\n\nfunction sameScope(left: WorkerOperationScope, right: WorkerOperationScope): boolean {\n\treturn left.serverConnectionId === right.serverConnectionId && left.attachmentId === right.attachmentId;\n}\n\nfunction lifecycleDelay(name: string, fallback: number): number {\n\tconst value = process.env[name];\n\tif (value === undefined) return fallback;\n\tconst parsed = Number(value);\n\tif (!Number.isSafeInteger(parsed) || parsed < 0) throw new Error(`${name} must be a non-negative safe integer`);\n\treturn parsed;\n}\n\nasync function closeResources(resources: {\n\tharness?: AgentHarnessInstance;\n\tservices?: SessionWorkerServices;\n\tsession?: Session<JsonlSessionMetadata>;\n\trepo: JsonlSessionRepo;\n\texecutionEnv: NodeExecutionEnv;\n\treleaseOwnership: () => Promise<void>;\n}): Promise<void> {\n\tconst errors: unknown[] = [];\n\ttry {\n\t\tawait resources.services?.dispose();\n\t} catch (error) {\n\t\terrors.push(error);\n\t}\n\ttry {\n\t\tif (resources.harness) await resources.harness.close(TODO_CONTEXT);\n\t\telse await resources.session?.close(TODO_CONTEXT);\n\t} catch (error) {\n\t\terrors.push(error);\n\t}\n\ttry {\n\t\tawait resources.repo.close(TODO_CONTEXT);\n\t} catch (error) {\n\t\terrors.push(error);\n\t}\n\ttry {\n\t\tawait resources.executionEnv.cleanup(TODO_CONTEXT);\n\t} catch (error) {\n\t\terrors.push(error);\n\t}\n\ttry {\n\t\tawait resources.releaseOwnership();\n\t} catch (error) {\n\t\terrors.push(error);\n\t}\n\tif (errors.length === 1) throw errors[0];\n\tif (errors.length > 1) throw new AggregateError(errors, \"Session worker cleanup failed\");\n}\n\nexport type CreateSessionWorkerHarness = (\n\tsession: Session<JsonlSessionMetadata>,\n\toptions: SessionWorkerOptions,\n\texecutionEnv: NodeExecutionEnv,\n) => Promise<SessionWorkerRuntime>;\n\nasync function run(options: SessionWorkerOptions, createHarness: CreateSessionWorkerHarness): Promise<void> {\n\tconst { sessionDir, metadata } = options;\n\tconst sessionId = metadata.id;\n\tconst control = await connectControl();\n\tconst token = process.env[SESSION_WORKER_CONTROL_TOKEN_ENV]!;\n\tconst sessionKey = Buffer.from(process.env[SESSION_WORKER_SESSION_KEY_ENV]!, \"base64url\").toString();\n\tfailureControl = control;\n\tconst pluginManifestPaths = options.pluginManifestPaths;\n\tconst releaseOwnership = await lockfile.lock(metadata.path, {\n\t\trealpath: true,\n\t\tstale: 2_000,\n\t\tupdate: 1_000,\n\t\tretries: { retries: 320, factor: 1, minTimeout: 25, maxTimeout: 25, maxRetryTime: 8_000 },\n\t});\n\tconst executionEnv = new NodeExecutionEnv({ cwd: metadata.cwd });\n\tconst repo = new JsonlSessionRepo({ fileSystem: executionEnv, sessionsRoot: sessionDir });\n\tlet session: Session<JsonlSessionMetadata> | undefined;\n\tlet harness: AgentHarnessInstance | undefined;\n\tlet lane: AgentLane | undefined;\n\tlet services: SessionWorkerServices | undefined;\n\ttry {\n\t\tsession = await repo.open(metadata, TODO_CONTEXT);\n\t\tconst runtime = await createHarness(session, options, executionEnv);\n\t\tharness = runtime.harness;\n\t\tlane = runtime.lane ?? (await harness.lane(\"main\", TODO_CONTEXT));\n\t\tservices = await createSessionWorkerServices({\n\t\t\tlane,\n\t\t\tmodelRuntime: runtime.modelRuntime,\n\t\t\tsettingsManager: runtime.settingsManager,\n\t\t\tfacetLoader: runtime.facetLoader,\n\t\t\tpublish: (scope, subscriptionId, update) =>\n\t\t\t\tcontrol.send({\n\t\t\t\t\ttype: \"service_update\",\n\t\t\t\t\ttoken,\n\t\t\t\t\tsessionKey,\n\t\t\t\t\tscope,\n\t\t\t\t\tsubscriptionId,\n\t\t\t\t\tupdate: toWorkerServiceUpdate(update),\n\t\t\t\t}),\n\t\t});\n\t} catch (error) {\n\t\ttry {\n\t\t\tawait closeResources({ harness, services, session, repo, executionEnv, releaseOwnership });\n\t\t} catch (cleanupError) {\n\t\t\tthrow new AggregateError([error, cleanupError], \"Session worker startup and cleanup failed\");\n\t\t}\n\t\tthrow error;\n\t}\n\n\tconst activeRequests = new Map<\n\t\tstring,\n\t\t{ readonly scope: WorkerOperationScope; readonly cancel: (reason?: unknown) => void }\n\t>();\n\tlet lifecycle: WorkerLifecycle | undefined;\n\tlet removeLifecycleListeners: (() => void)[] = [];\n\tlet closing: Promise<void> | undefined;\n\tconst close = (): Promise<void> => {\n\t\tif (closing) return closing;\n\t\tlifecycle?.close();\n\t\tservices.removeSubscriptions(() => true);\n\t\tfor (const request of activeRequests.values()) request.cancel(new Error(\"Session worker is closing\"));\n\t\tactiveRequests.clear();\n\t\tfor (const remove of removeLifecycleListeners) remove();\n\t\tremoveLifecycleListeners = [];\n\t\tclosing = closeResources({ harness, services, repo, executionEnv, releaseOwnership });\n\t\treturn closing;\n\t};\n\tconst closeAndExit = (): void => {\n\t\tvoid close().then(\n\t\t\t() => process.exit(0),\n\t\t\t(error: unknown) => {\n\t\t\t\tconsole.error(error);\n\t\t\t\tprocess.exit(1);\n\t\t\t},\n\t\t);\n\t};\n\n\tlifecycle = new WorkerLifecycle({\n\t\tinitialServerConnectionId: control.initialServerConnectionId,\n\t\tinitialDemandGraceMs: lifecycleDelay(SESSION_WORKER_INITIAL_DEMAND_GRACE_ENV, DEFAULT_INITIAL_DEMAND_GRACE_MS),\n\t\torphanDemandGraceMs: lifecycleDelay(SESSION_WORKER_ORPHAN_DEMAND_GRACE_ENV, DEFAULT_ORPHAN_DEMAND_GRACE_MS),\n\t\tonRetire: closeAndExit,\n\t});\n\tremoveLifecycleListeners = [\n\t\tharness.events.on(\"run_start\", (event) => lifecycle?.operationStarted(\"run\", event.lane, event.runId)),\n\t\tharness.events.on(\"run_resume\", (event) => lifecycle?.operationStarted(\"run\", event.lane, event.runId)),\n\t\tharness.events.on(\"run_suspend\", (event) => lifecycle?.operationStopped(\"run\", event.lane, event.runId)),\n\t\tharness.events.on(\"run_end\", (event) => lifecycle?.operationStopped(\"run\", event.lane, event.runId)),\n\t\tharness.events.on(\"compaction_start\", (event) =>\n\t\t\tlifecycle?.operationStarted(\"compaction\", event.lane, event.runId),\n\t\t),\n\t\tharness.events.on(\"compaction_end\", (event) =>\n\t\t\tlifecycle?.operationStopped(\"compaction\", event.lane, event.runId),\n\t\t),\n\t\tharness.events.on(\"navigation_start\", (event) =>\n\t\t\tlifecycle?.operationStarted(\"navigation\", event.lane, event.runId),\n\t\t),\n\t\tharness.events.on(\"navigation_end\", (event) =>\n\t\t\tlifecycle?.operationStopped(\"navigation\", event.lane, event.runId),\n\t\t),\n\t\tharness.events.on(\"fault\", closeAndExit),\n\t];\n\n\tconst handleOperation = async (request: WorkerOperationRequest): Promise<void> => {\n\t\tlet releaseRequest = (): void => {};\n\t\tconst cancellable = withCancel(BACKGROUND_CONTEXT);\n\t\ttry {\n\t\t\treleaseRequest = lifecycle!.beginRequest(request.scope.serverConnectionId, request.scope.attachmentId);\n\t\t\tactiveRequests.set(request.requestId, { scope: request.scope, cancel: cancellable.cancel });\n\t\t\tconst result = await services.invoke(request.call, request.scope, cancellable.context);\n\t\t\tif (result !== undefined && !isJsonValue(result)) throw new Error(\"Service produced a non-JSON result\");\n\t\t\tawait control.send({\n\t\t\t\ttype: \"operation_response\",\n\t\t\t\ttoken,\n\t\t\t\tsessionKey,\n\t\t\t\tresponse: {\n\t\t\t\t\ttype: \"operation_result\",\n\t\t\t\t\trequestId: request.requestId,\n\t\t\t\t\tscope: request.scope,\n\t\t\t\t\t...(result === undefined ? {} : { result }),\n\t\t\t\t},\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlet code: RemoteServiceErrorCode | undefined;\n\t\t\tif (error instanceof RemoteServiceError) {\n\t\t\t\tcode = error.code;\n\t\t\t} else if (error instanceof Error && \"code\" in error) {\n\t\t\t\tconst candidate = error.code;\n\t\t\t\tif (Check(RemoteServiceErrorCodeSchema, candidate)) code = candidate;\n\t\t\t}\n\t\t\tawait control.send({\n\t\t\t\ttype: \"operation_response\",\n\t\t\t\ttoken,\n\t\t\t\tsessionKey,\n\t\t\t\tresponse: {\n\t\t\t\t\ttype: \"operation_error\",\n\t\t\t\t\trequestId: request.requestId,\n\t\t\t\t\tscope: request.scope,\n\t\t\t\t\t...(code === undefined ? {} : { code }),\n\t\t\t\t\tmessage: error instanceof Error ? error.message : String(error),\n\t\t\t\t},\n\t\t\t});\n\t\t} finally {\n\t\t\tif (activeRequests.get(request.requestId)?.cancel === cancellable.cancel) {\n\t\t\t\tactiveRequests.delete(request.requestId);\n\t\t\t}\n\t\t\treleaseRequest();\n\t\t}\n\t};\n\n\tlet ready = false;\n\tconst announce = (): void => {\n\t\tif (!ready) return;\n\t\tvoid control\n\t\t\t.send({\n\t\t\t\ttype: \"worker_ready\",\n\t\t\t\ttoken,\n\t\t\t\tsessionKey,\n\t\t\t\tsessionId,\n\t\t\t\tpid: process.pid,\n\t\t\t\tmetadata,\n\t\t\t\tpluginManifestPaths: [...pluginManifestPaths],\n\t\t\t})\n\t\t\t.catch(() => closeAndExit());\n\t};\n\tvoid readCommands(control, {\n\t\tonShutdown: closeAndExit,\n\t\tonDiscovery: announce,\n\t\tonDemand: async (command) => {\n\t\t\tconst releaseRetirement = lifecycle?.holdRetirement() ?? (() => {});\n\t\t\ttry {\n\t\t\t\ttry {\n\t\t\t\t\tif (!command.attached) {\n\t\t\t\t\t\tconst matches = (scope: WorkerOperationScope): boolean =>\n\t\t\t\t\t\t\tscope.serverConnectionId === command.serverConnectionId &&\n\t\t\t\t\t\t\tscope.attachmentId === command.attachmentId;\n\t\t\t\t\t\tservices.removeSubscriptions(matches);\n\t\t\t\t\t}\n\t\t\t\t\tlifecycle?.setDemand(command.serverConnectionId, command.attachmentId, command.attached);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tawait control.send({\n\t\t\t\t\t\ttype: \"demand_rejected\",\n\t\t\t\t\t\ttoken,\n\t\t\t\t\t\tsessionKey,\n\t\t\t\t\t\trequestId: command.requestId,\n\t\t\t\t\t\tmessage: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait control.send({\n\t\t\t\t\ttype: \"demand_applied\",\n\t\t\t\t\ttoken,\n\t\t\t\t\tsessionKey,\n\t\t\t\t\trequestId: command.requestId,\n\t\t\t\t\tattachmentId: command.attachmentId,\n\t\t\t\t\tattached: command.attached,\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\treleaseRetirement();\n\t\t\t}\n\t\t},\n\t\tonOperation: (request) => {\n\t\t\tvoid handleOperation(request).catch(() => closeAndExit());\n\t\t},\n\t\tonOperationCancel: (command) => {\n\t\t\tconst active = activeRequests.get(command.requestId);\n\t\t\tif (active !== undefined && sameScope(active.scope, command.scope)) {\n\t\t\t\tactive.cancel(new DOMException(\"Service operation cancelled\", \"AbortError\"));\n\t\t\t}\n\t\t},\n\t\tonServerConnected: (serverConnectionId) => lifecycle?.serverConnected(serverConnectionId),\n\t\tonServerDisconnected: (serverConnectionId) => {\n\t\t\tconst matches = (scope: WorkerOperationScope): boolean => scope.serverConnectionId === serverConnectionId;\n\t\t\tservices.removeSubscriptions(matches);\n\t\t\tfor (const request of activeRequests.values()) {\n\t\t\t\tif (matches(request.scope)) request.cancel(new Error(\"Server disconnected\"));\n\t\t\t}\n\t\t\tlifecycle?.serverDisconnected(serverConnectionId);\n\t\t},\n\t}).catch(() => closeAndExit());\n\tcontrol.socket.once(\"close\", closeAndExit);\n\tcontrol.socket.once(\"error\", () => closeAndExit());\n\tprocess.once(\"SIGTERM\", closeAndExit);\n\tprocess.once(\"SIGINT\", closeAndExit);\n\n\ttry {\n\t\tready = true;\n\t\tawait control.send({\n\t\t\ttype: \"worker_ready\",\n\t\t\ttoken,\n\t\t\tsessionKey,\n\t\t\tsessionId,\n\t\t\tpid: process.pid,\n\t\t\tmetadata,\n\t\t\tpluginManifestPaths: [...pluginManifestPaths],\n\t\t});\n\t} catch (error) {\n\t\ttry {\n\t\t\tawait close();\n\t\t} catch (cleanupError) {\n\t\t\tthrow new AggregateError([error, cleanupError], \"Session worker readiness and cleanup failed\");\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nexport async function runSessionWorkerWithHarness(\n\targs: readonly string[],\n\tcreateHarness: CreateSessionWorkerHarness,\n): Promise<void> {\n\ttry {\n\t\tif (args.length !== 1) throw new Error(\"Session worker requires one options argument\");\n\t\tlet options: unknown;\n\t\ttry {\n\t\t\toptions = JSON.parse(args[0]!);\n\t\t} catch (error) {\n\t\t\tthrow new Error(\"Session worker received invalid options\", { cause: error });\n\t\t}\n\t\tif (\n\t\t\t!Check(SessionWorkerOptionsSchema, options) ||\n\t\t\t!isAbsolute(options.sessionDir) ||\n\t\t\t!isAbsolute(options.metadata.cwd) ||\n\t\t\t!isAbsolute(options.metadata.path) ||\n\t\t\t(options.provider !== undefined && options.model === undefined)\n\t\t) {\n\t\t\tthrow new Error(\"Session worker received invalid options\");\n\t\t}\n\t\tawait run(options, createHarness);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconst token = process.env[SESSION_WORKER_CONTROL_TOKEN_ENV];\n\t\tconst encodedSessionKey = process.env[SESSION_WORKER_SESSION_KEY_ENV];\n\t\tif (token && encodedSessionKey) {\n\t\t\tconst sessionKey = Buffer.from(encodedSessionKey, \"base64url\").toString();\n\t\t\tawait failureControl?.send({ type: \"worker_failed\", token, sessionKey, message }).catch(() => {});\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nasync function createCodingAgentHarness(\n\tsession: Session<JsonlSessionMetadata>,\n\toptions: SessionWorkerOptions,\n\texecutionEnv: NodeExecutionEnv,\n): Promise<SessionWorkerRuntime> {\n\tconst modelRuntime = await ModelRuntime.create();\n\tconst settingsManager = SettingsManager.create(session.metadata.cwd);\n\tlet resolved: Awaited<ReturnType<typeof findInitialModel>> | ReturnType<typeof resolveCliModel>;\n\tif (options.model === undefined) {\n\t\tresolved = await findInitialModel({\n\t\t\tscopedModels: [],\n\t\t\tisContinuing: true,\n\t\t\tdefaultProvider: settingsManager.getDefaultProvider(),\n\t\t\tdefaultModelId: settingsManager.getDefaultModel(),\n\t\t\tdefaultThinkingLevel: settingsManager.getDefaultThinkingLevel(),\n\t\t\tmodelRuntime,\n\t\t});\n\t} else {\n\t\tresolved = resolveCliModel({\n\t\t\tcliProvider: options.provider,\n\t\t\tcliModel: options.model,\n\t\t\tmodelRuntime,\n\t\t});\n\t\tif (resolved.error) throw new Error(`Session worker could not resolve model: ${resolved.error}`);\n\t}\n\tif (!resolved.model) throw new Error(\"Session worker could not resolve a model\");\n\tconst tools = [createReadTool(), createWriteTool(), createBashTool()];\n\tconst activeToolNames = tools.map((tool) => tool.name);\n\tconst harness = (\n\t\tawait AgentHarness.create(\n\t\t\t{\n\t\t\t\tsession,\n\t\t\t\tmodels: modelRuntime,\n\t\t\t\tmodel: resolved.model,\n\t\t\t\tthinkingLevel: resolved.thinkingLevel,\n\t\t\t\ttools,\n\t\t\t\tactiveToolNames,\n\t\t\t\ttoolContext: { env: executionEnv },\n\t\t\t\tresources: {},\n\t\t\t},\n\t\t\tTODO_CONTEXT,\n\t\t)\n\t).harness;\n\ttry {\n\t\tconst lane = await harness.lane(\"main\", TODO_CONTEXT);\n\t\tconst currentActiveToolNames = await lane.getActiveTools(TODO_CONTEXT);\n\t\tif (\n\t\t\tcurrentActiveToolNames.length !== activeToolNames.length ||\n\t\t\tcurrentActiveToolNames.some((name, index) => name !== activeToolNames[index])\n\t\t) {\n\t\t\tawait lane.setActiveTools(activeToolNames, TODO_CONTEXT);\n\t\t}\n\t\treturn {\n\t\t\tharness,\n\t\t\tlane,\n\t\t\tmodelRuntime,\n\t\t\tsettingsManager,\n\t\t\tfacetLoader: createSessionPluginFacetLoader(options.pluginManifestPaths),\n\t\t};\n\t} catch (error) {\n\t\ttry {\n\t\t\tawait harness.close(TODO_CONTEXT);\n\t\t} catch (cleanupError) {\n\t\t\tthrow new AggregateError([error, cleanupError], \"Session worker model selection and cleanup failed\");\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nexport function runSessionWorkerProcess(args: readonly string[]): Promise<void> {\n\treturn runSessionWorkerWithHarness(args, createCodingAgentHarness);\n}\n\nif (isDirectInternalProcessEntry(import.meta.url)) {\n\tconst role = consumeInternalProcessRole();\n\tif (role !== \"session-worker\") {\n\t\tthrow new Error(\"Session worker entrypoint requires an internal session-worker invocation\");\n\t}\n\tvoid runSessionWorkerProcess(process.argv.slice(2)).catch(() => process.exit(1));\n}\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=source-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-resolver.d.ts","sourceRoot":"","sources":["../../src/experimental/source-resolver.ts"],"names":[],"mappings":"","sourcesContent":["import { existsSync, readFileSync, statSync } from \"node:fs\";\nimport { registerHooks } from \"node:module\";\nimport { extname, resolve, sep } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\n// Node strips TypeScript natively, but it does not apply the workspace source\n// aliases from tsconfig.json. Internal source processes preload this resolver so\n// they cannot silently fall through to stale package dist files.\n\ninterface TsConfig {\n\treadonly compilerOptions?: {\n\t\treadonly paths?: Readonly<Record<string, readonly string[]>>;\n\t};\n}\n\ninterface SourceAlias {\n\treadonly pattern: string;\n\treadonly prefix: string;\n\treadonly suffix: string;\n\treadonly replacements: readonly string[];\n}\n\nconst repositoryRoot = fileURLToPath(new URL(\"../../../..\", import.meta.url));\nconst tsconfigPath = resolve(repositoryRoot, \"tsconfig.json\");\nconst tsconfig = JSON.parse(readFileSync(tsconfigPath, \"utf8\")) as TsConfig;\nconst paths = tsconfig.compilerOptions?.paths;\nif (!paths) throw new Error(`Source runtime requires compilerOptions.paths in ${tsconfigPath}`);\n\nconst aliases: SourceAlias[] = Object.entries(paths)\n\t.filter(([pattern]) => pattern.startsWith(\"@earendil-works/\"))\n\t.map(([pattern, replacements]) => {\n\t\tconst wildcard = pattern.indexOf(\"*\");\n\t\tif (wildcard !== -1 && pattern.indexOf(\"*\", wildcard + 1) !== -1) {\n\t\t\tthrow new Error(`Source runtime does not support multiple wildcards in ${pattern}`);\n\t\t}\n\t\treturn {\n\t\t\tpattern,\n\t\t\tprefix: wildcard === -1 ? pattern : pattern.slice(0, wildcard),\n\t\t\tsuffix: wildcard === -1 ? \"\" : pattern.slice(wildcard + 1),\n\t\t\treplacements,\n\t\t};\n\t})\n\t.sort((left, right) => right.pattern.length - left.pattern.length);\n\nregisterHooks({\n\tresolve(specifier, context, nextResolve) {\n\t\tlet matchedPattern: string | undefined;\n\t\tfor (const alias of aliases) {\n\t\t\tconst wildcard = matchAlias(alias, specifier);\n\t\t\tif (wildcard === undefined) continue;\n\t\t\tmatchedPattern ??= alias.pattern;\n\t\t\tfor (const replacement of alias.replacements) {\n\t\t\t\tconst resolved = resolveSourcePath(replacement.replace(\"*\", wildcard));\n\t\t\t\tif (resolved) return { url: pathToFileURL(resolved).href, shortCircuit: true };\n\t\t\t}\n\t\t}\n\t\tif (matchedPattern) {\n\t\t\tthrow new Error(`Source runtime could not resolve ${specifier} through tsconfig path ${matchedPattern}`);\n\t\t}\n\t\treturn nextResolve(specifier, context);\n\t},\n});\n\nfunction matchAlias(alias: SourceAlias, specifier: string): string | undefined {\n\tif (!alias.pattern.includes(\"*\")) return specifier === alias.pattern ? \"\" : undefined;\n\tif (!specifier.startsWith(alias.prefix) || !specifier.endsWith(alias.suffix)) return undefined;\n\treturn specifier.slice(alias.prefix.length, specifier.length - alias.suffix.length);\n}\n\nfunction resolveSourcePath(replacement: string): string | undefined {\n\tconst basePath = resolve(repositoryRoot, replacement);\n\tconst rootPrefix = repositoryRoot.endsWith(sep) ? repositoryRoot : `${repositoryRoot}${sep}`;\n\tif (!basePath.startsWith(rootPrefix)) return undefined;\n\tconst extension = extname(basePath);\n\tconst sourceExtension =\n\t\textension === \".js\" ? \".ts\" : extension === \".mjs\" ? \".mts\" : extension === \".cjs\" ? \".cts\" : undefined;\n\tconst candidates = sourceExtension\n\t\t? [basePath, `${basePath.slice(0, -extension.length)}${sourceExtension}`]\n\t\t: extension === \".ts\" || extension === \".mts\" || extension === \".cts\" || extension === \".json\"\n\t\t\t? [basePath]\n\t\t\t: [basePath, `${basePath}.ts`, resolve(basePath, \"index.ts\")];\n\tfor (const candidate of candidates) {\n\t\tif (existsSync(candidate) && statSync(candidate).isFile()) return candidate;\n\t}\n\treturn undefined;\n}\n"]}
@@ -1,71 +0,0 @@
1
- import { existsSync, readFileSync, statSync } from "node:fs";
2
- import { registerHooks } from "node:module";
3
- import { extname, resolve, sep } from "node:path";
4
- import { fileURLToPath, pathToFileURL } from "node:url";
5
- const repositoryRoot = fileURLToPath(new URL("../../../..", import.meta.url));
6
- const tsconfigPath = resolve(repositoryRoot, "tsconfig.json");
7
- const tsconfig = JSON.parse(readFileSync(tsconfigPath, "utf8"));
8
- const paths = tsconfig.compilerOptions?.paths;
9
- if (!paths)
10
- throw new Error(`Source runtime requires compilerOptions.paths in ${tsconfigPath}`);
11
- const aliases = Object.entries(paths)
12
- .filter(([pattern]) => pattern.startsWith("@earendil-works/"))
13
- .map(([pattern, replacements]) => {
14
- const wildcard = pattern.indexOf("*");
15
- if (wildcard !== -1 && pattern.indexOf("*", wildcard + 1) !== -1) {
16
- throw new Error(`Source runtime does not support multiple wildcards in ${pattern}`);
17
- }
18
- return {
19
- pattern,
20
- prefix: wildcard === -1 ? pattern : pattern.slice(0, wildcard),
21
- suffix: wildcard === -1 ? "" : pattern.slice(wildcard + 1),
22
- replacements,
23
- };
24
- })
25
- .sort((left, right) => right.pattern.length - left.pattern.length);
26
- registerHooks({
27
- resolve(specifier, context, nextResolve) {
28
- let matchedPattern;
29
- for (const alias of aliases) {
30
- const wildcard = matchAlias(alias, specifier);
31
- if (wildcard === undefined)
32
- continue;
33
- matchedPattern ??= alias.pattern;
34
- for (const replacement of alias.replacements) {
35
- const resolved = resolveSourcePath(replacement.replace("*", wildcard));
36
- if (resolved)
37
- return { url: pathToFileURL(resolved).href, shortCircuit: true };
38
- }
39
- }
40
- if (matchedPattern) {
41
- throw new Error(`Source runtime could not resolve ${specifier} through tsconfig path ${matchedPattern}`);
42
- }
43
- return nextResolve(specifier, context);
44
- },
45
- });
46
- function matchAlias(alias, specifier) {
47
- if (!alias.pattern.includes("*"))
48
- return specifier === alias.pattern ? "" : undefined;
49
- if (!specifier.startsWith(alias.prefix) || !specifier.endsWith(alias.suffix))
50
- return undefined;
51
- return specifier.slice(alias.prefix.length, specifier.length - alias.suffix.length);
52
- }
53
- function resolveSourcePath(replacement) {
54
- const basePath = resolve(repositoryRoot, replacement);
55
- const rootPrefix = repositoryRoot.endsWith(sep) ? repositoryRoot : `${repositoryRoot}${sep}`;
56
- if (!basePath.startsWith(rootPrefix))
57
- return undefined;
58
- const extension = extname(basePath);
59
- const sourceExtension = extension === ".js" ? ".ts" : extension === ".mjs" ? ".mts" : extension === ".cjs" ? ".cts" : undefined;
60
- const candidates = sourceExtension
61
- ? [basePath, `${basePath.slice(0, -extension.length)}${sourceExtension}`]
62
- : extension === ".ts" || extension === ".mts" || extension === ".cts" || extension === ".json"
63
- ? [basePath]
64
- : [basePath, `${basePath}.ts`, resolve(basePath, "index.ts")];
65
- for (const candidate of candidates) {
66
- if (existsSync(candidate) && statSync(candidate).isFile())
67
- return candidate;
68
- }
69
- return undefined;
70
- }
71
- //# sourceMappingURL=source-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-resolver.js","sourceRoot":"","sources":["../../src/experimental/source-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync, statSync } from \"node:fs\";\nimport { registerHooks } from \"node:module\";\nimport { extname, resolve, sep } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\n// Node strips TypeScript natively, but it does not apply the workspace source\n// aliases from tsconfig.json. Internal source processes preload this resolver so\n// they cannot silently fall through to stale package dist files.\n\ninterface TsConfig {\n\treadonly compilerOptions?: {\n\t\treadonly paths?: Readonly<Record<string, readonly string[]>>;\n\t};\n}\n\ninterface SourceAlias {\n\treadonly pattern: string;\n\treadonly prefix: string;\n\treadonly suffix: string;\n\treadonly replacements: readonly string[];\n}\n\nconst repositoryRoot = fileURLToPath(new URL(\"../../../..\", import.meta.url));\nconst tsconfigPath = resolve(repositoryRoot, \"tsconfig.json\");\nconst tsconfig = JSON.parse(readFileSync(tsconfigPath, \"utf8\")) as TsConfig;\nconst paths = tsconfig.compilerOptions?.paths;\nif (!paths) throw new Error(`Source runtime requires compilerOptions.paths in ${tsconfigPath}`);\n\nconst aliases: SourceAlias[] = Object.entries(paths)\n\t.filter(([pattern]) => pattern.startsWith(\"@earendil-works/\"))\n\t.map(([pattern, replacements]) => {\n\t\tconst wildcard = pattern.indexOf(\"*\");\n\t\tif (wildcard !== -1 && pattern.indexOf(\"*\", wildcard + 1) !== -1) {\n\t\t\tthrow new Error(`Source runtime does not support multiple wildcards in ${pattern}`);\n\t\t}\n\t\treturn {\n\t\t\tpattern,\n\t\t\tprefix: wildcard === -1 ? pattern : pattern.slice(0, wildcard),\n\t\t\tsuffix: wildcard === -1 ? \"\" : pattern.slice(wildcard + 1),\n\t\t\treplacements,\n\t\t};\n\t})\n\t.sort((left, right) => right.pattern.length - left.pattern.length);\n\nregisterHooks({\n\tresolve(specifier, context, nextResolve) {\n\t\tlet matchedPattern: string | undefined;\n\t\tfor (const alias of aliases) {\n\t\t\tconst wildcard = matchAlias(alias, specifier);\n\t\t\tif (wildcard === undefined) continue;\n\t\t\tmatchedPattern ??= alias.pattern;\n\t\t\tfor (const replacement of alias.replacements) {\n\t\t\t\tconst resolved = resolveSourcePath(replacement.replace(\"*\", wildcard));\n\t\t\t\tif (resolved) return { url: pathToFileURL(resolved).href, shortCircuit: true };\n\t\t\t}\n\t\t}\n\t\tif (matchedPattern) {\n\t\t\tthrow new Error(`Source runtime could not resolve ${specifier} through tsconfig path ${matchedPattern}`);\n\t\t}\n\t\treturn nextResolve(specifier, context);\n\t},\n});\n\nfunction matchAlias(alias: SourceAlias, specifier: string): string | undefined {\n\tif (!alias.pattern.includes(\"*\")) return specifier === alias.pattern ? \"\" : undefined;\n\tif (!specifier.startsWith(alias.prefix) || !specifier.endsWith(alias.suffix)) return undefined;\n\treturn specifier.slice(alias.prefix.length, specifier.length - alias.suffix.length);\n}\n\nfunction resolveSourcePath(replacement: string): string | undefined {\n\tconst basePath = resolve(repositoryRoot, replacement);\n\tconst rootPrefix = repositoryRoot.endsWith(sep) ? repositoryRoot : `${repositoryRoot}${sep}`;\n\tif (!basePath.startsWith(rootPrefix)) return undefined;\n\tconst extension = extname(basePath);\n\tconst sourceExtension =\n\t\textension === \".js\" ? \".ts\" : extension === \".mjs\" ? \".mts\" : extension === \".cjs\" ? \".cts\" : undefined;\n\tconst candidates = sourceExtension\n\t\t? [basePath, `${basePath.slice(0, -extension.length)}${sourceExtension}`]\n\t\t: extension === \".ts\" || extension === \".mts\" || extension === \".cts\" || extension === \".json\"\n\t\t\t? [basePath]\n\t\t\t: [basePath, `${basePath}.ts`, resolve(basePath, \"index.ts\")];\n\tfor (const candidate of candidates) {\n\t\tif (existsSync(candidate) && statSync(candidate).isFile()) return candidate;\n\t}\n\treturn undefined;\n}\n"]}
@@ -1,11 +0,0 @@
1
- export type ClipboardModule = {
2
- getText: () => Promise<string>;
3
- setText: (text: string) => Promise<void>;
4
- hasImage: () => boolean;
5
- getImageBinary: () => Promise<Array<number>>;
6
- };
7
- type ClipboardRequire = (id: string) => unknown;
8
- export declare function loadClipboardNative(requires?: readonly ClipboardRequire[]): ClipboardModule | null;
9
- declare const clipboard: ClipboardModule | null;
10
- export { clipboard };
11
- //# sourceMappingURL=clipboard-native.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clipboard-native.d.ts","sourceRoot":"","sources":["../../src/utils/clipboard-native.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAC7C,CAAC;AAEF,KAAK,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;AAMhD,wBAAgB,mBAAmB,CAClC,QAAQ,GAAE,SAAS,gBAAgB,EAA0C,GAC3E,eAAe,GAAG,IAAI,CASxB;AAED,QAAA,MAAM,SAAS,wBAA2E,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,CAAC","sourcesContent":["import { createRequire } from \"module\";\nimport { dirname, join } from \"path\";\nimport { pathToFileURL } from \"url\";\n\nexport type ClipboardModule = {\n\tgetText: () => Promise<string>;\n\tsetText: (text: string) => Promise<void>;\n\thasImage: () => boolean;\n\tgetImageBinary: () => Promise<Array<number>>;\n};\n\ntype ClipboardRequire = (id: string) => unknown;\n\nconst moduleRequire = createRequire(import.meta.url);\nconst executableDirRequire = createRequire(pathToFileURL(join(dirname(process.execPath), \"package.json\")).href);\nconst hasDisplay = process.platform !== \"linux\" || Boolean(process.env.DISPLAY || process.env.WAYLAND_DISPLAY);\n\nexport function loadClipboardNative(\n\trequires: readonly ClipboardRequire[] = [moduleRequire, executableDirRequire],\n): ClipboardModule | null {\n\tfor (const requireClipboard of requires) {\n\t\ttry {\n\t\t\treturn requireClipboard(\"@mariozechner/clipboard\") as ClipboardModule;\n\t\t} catch {\n\t\t\t// Try the next resolution root.\n\t\t}\n\t}\n\treturn null;\n}\n\nconst clipboard = !process.env.TERMUX_VERSION && hasDisplay ? loadClipboardNative() : null;\n\nexport { clipboard };\n"]}
@@ -1,20 +0,0 @@
1
- import { createRequire } from "module";
2
- import { dirname, join } from "path";
3
- import { pathToFileURL } from "url";
4
- const moduleRequire = createRequire(import.meta.url);
5
- const executableDirRequire = createRequire(pathToFileURL(join(dirname(process.execPath), "package.json")).href);
6
- const hasDisplay = process.platform !== "linux" || Boolean(process.env.DISPLAY || process.env.WAYLAND_DISPLAY);
7
- export function loadClipboardNative(requires = [moduleRequire, executableDirRequire]) {
8
- for (const requireClipboard of requires) {
9
- try {
10
- return requireClipboard("@mariozechner/clipboard");
11
- }
12
- catch {
13
- // Try the next resolution root.
14
- }
15
- }
16
- return null;
17
- }
18
- const clipboard = !process.env.TERMUX_VERSION && hasDisplay ? loadClipboardNative() : null;
19
- export { clipboard };
20
- //# sourceMappingURL=clipboard-native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clipboard-native.js","sourceRoot":"","sources":["../../src/utils/clipboard-native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAWpC,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,MAAM,oBAAoB,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChH,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAE/G,MAAM,UAAU,mBAAmB,CAClC,QAAQ,GAAgC,CAAC,aAAa,EAAE,oBAAoB,CAAC,EACpD;IACzB,KAAK,MAAM,gBAAgB,IAAI,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC;YACJ,OAAO,gBAAgB,CAAC,yBAAyB,CAAoB,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACR,gCAAgC;QACjC,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACZ;AAED,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,UAAU,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,CAAC","sourcesContent":["import { createRequire } from \"module\";\nimport { dirname, join } from \"path\";\nimport { pathToFileURL } from \"url\";\n\nexport type ClipboardModule = {\n\tgetText: () => Promise<string>;\n\tsetText: (text: string) => Promise<void>;\n\thasImage: () => boolean;\n\tgetImageBinary: () => Promise<Array<number>>;\n};\n\ntype ClipboardRequire = (id: string) => unknown;\n\nconst moduleRequire = createRequire(import.meta.url);\nconst executableDirRequire = createRequire(pathToFileURL(join(dirname(process.execPath), \"package.json\")).href);\nconst hasDisplay = process.platform !== \"linux\" || Boolean(process.env.DISPLAY || process.env.WAYLAND_DISPLAY);\n\nexport function loadClipboardNative(\n\trequires: readonly ClipboardRequire[] = [moduleRequire, executableDirRequire],\n): ClipboardModule | null {\n\tfor (const requireClipboard of requires) {\n\t\ttry {\n\t\t\treturn requireClipboard(\"@mariozechner/clipboard\") as ClipboardModule;\n\t\t} catch {\n\t\t\t// Try the next resolution root.\n\t\t}\n\t}\n\treturn null;\n}\n\nconst clipboard = !process.env.TERMUX_VERSION && hasDisplay ? loadClipboardNative() : null;\n\nexport { clipboard };\n"]}
@@ -1,61 +0,0 @@
1
- /**
2
- * Minimal Kimi deferred-tool loading demo.
3
- *
4
- * pi -e ./kimi-deferred-tools.ts
5
- * example prompt: Use the available tools to calculate 100 + 500. Do not calculate it yourself.
6
- */
7
-
8
- import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
9
- import { Type } from "typebox";
10
-
11
- function calculate(_expr: string): string {
12
- return "42";
13
- }
14
-
15
- export default function (pi: ExtensionAPI): void {
16
- pi.registerTool({
17
- name: "Calculator",
18
- label: "Calculator",
19
- description: "Evaluate a simple arithmetic expression.",
20
- parameters: Type.Object({
21
- expr: Type.String({ description: "An expression such as 100 + 500" }),
22
- }),
23
- async execute(_toolCallId, params) {
24
- return {
25
- content: [{ type: "text", text: calculate(params.expr) }],
26
- details: {},
27
- };
28
- },
29
- });
30
-
31
- pi.registerTool({
32
- name: "tool_search",
33
- label: "Tool Search",
34
- description: "Find and activate tools for a capability.",
35
- promptSnippet: "Search for additional tools when the active tools cannot perform the task",
36
- parameters: Type.Object({
37
- query: Type.String({ description: "Capability to search for" }),
38
- }),
39
- async execute(_toolCallId, params) {
40
- if (!params.query.toLowerCase().includes("calc")) {
41
- return {
42
- content: [{ type: "text", text: "The relevant tools do not exist." }],
43
- details: { matches: [], added: [] },
44
- };
45
- }
46
-
47
- const active = pi.getActiveTools();
48
- const added = active.includes("Calculator") ? [] : ["Calculator"];
49
- if (added.length > 0) pi.setActiveTools([...active, ...added]);
50
-
51
- return {
52
- content: [{ type: "text", text: "Success. Found 1 matching tool(s)" }],
53
- details: { matches: ["Calculator"], added },
54
- };
55
- },
56
- });
57
-
58
- pi.on("session_start", () => {
59
- pi.setActiveTools(["tool_search"]);
60
- });
61
- }