cli-jaw 2.17.38 → 2.17.39

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 (831) hide show
  1. package/README.md +40 -1
  2. package/dist/bin/commands/chat.js +19 -2
  3. package/dist/bin/commands/chat.js.map +1 -1
  4. package/dist/bin/commands/dashboard.js +27 -10
  5. package/dist/bin/commands/dashboard.js.map +1 -1
  6. package/dist/bin/commands/init.js +10 -1
  7. package/dist/bin/commands/init.js.map +1 -1
  8. package/dist/bin/commands/tui/activity-answer-read.js +122 -0
  9. package/dist/bin/commands/tui/activity-answer-read.js.map +1 -0
  10. package/dist/bin/commands/tui/activity-fallback.js +40 -0
  11. package/dist/bin/commands/tui/activity-fallback.js.map +1 -0
  12. package/dist/bin/commands/tui/activity-handler.js +273 -0
  13. package/dist/bin/commands/tui/activity-handler.js.map +1 -0
  14. package/dist/bin/commands/tui/activity-history.js +245 -0
  15. package/dist/bin/commands/tui/activity-history.js.map +1 -0
  16. package/dist/bin/commands/tui/activity-http.js +88 -0
  17. package/dist/bin/commands/tui/activity-http.js.map +1 -0
  18. package/dist/bin/commands/tui/activity-replay.js +250 -0
  19. package/dist/bin/commands/tui/activity-replay.js.map +1 -0
  20. package/dist/bin/commands/tui/api.js +48 -1
  21. package/dist/bin/commands/tui/api.js.map +1 -1
  22. package/dist/bin/commands/tui/channel.js +11 -1
  23. package/dist/bin/commands/tui/channel.js.map +1 -1
  24. package/dist/bin/commands/tui/fullscreen-mode.js +78 -12
  25. package/dist/bin/commands/tui/fullscreen-mode.js.map +1 -1
  26. package/dist/bin/commands/tui/input-handler.js +7 -0
  27. package/dist/bin/commands/tui/input-handler.js.map +1 -1
  28. package/dist/bin/commands/tui/overlays.js +6 -3
  29. package/dist/bin/commands/tui/overlays.js.map +1 -1
  30. package/dist/bin/commands/tui/renderer.js +27 -15
  31. package/dist/bin/commands/tui/renderer.js.map +1 -1
  32. package/dist/bin/commands/tui/types.js.map +1 -1
  33. package/dist/bin/commands/tui/ws-handler.js +158 -13
  34. package/dist/bin/commands/tui/ws-handler.js.map +1 -1
  35. package/dist/server.js +2 -0
  36. package/dist/server.js.map +1 -1
  37. package/dist/src/agent/claude-runtime-pool.js +386 -0
  38. package/dist/src/agent/claude-runtime-pool.js.map +1 -0
  39. package/dist/src/agent/claude-runtime-run.js +366 -0
  40. package/dist/src/agent/claude-runtime-run.js.map +1 -0
  41. package/dist/src/agent/codex-app-events.js +3 -1
  42. package/dist/src/agent/codex-app-events.js.map +1 -1
  43. package/dist/src/agent/events/claude.js +11 -9
  44. package/dist/src/agent/events/claude.js.map +1 -1
  45. package/dist/src/agent/events/codex.js +2 -0
  46. package/dist/src/agent/events/codex.js.map +1 -1
  47. package/dist/src/agent/events/cursor.js +49 -21
  48. package/dist/src/agent/events/cursor.js.map +1 -1
  49. package/dist/src/agent/events/grok.js +33 -5
  50. package/dist/src/agent/events/grok.js.map +1 -1
  51. package/dist/src/agent/events/helpers.js +9 -0
  52. package/dist/src/agent/events/helpers.js.map +1 -1
  53. package/dist/src/agent/events/index.js +13 -1
  54. package/dist/src/agent/events/index.js.map +1 -1
  55. package/dist/src/agent/events/opencode.js +65 -1
  56. package/dist/src/agent/events/opencode.js.map +1 -1
  57. package/dist/src/agent/lifecycle-handler.js +185 -62
  58. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  59. package/dist/src/agent/merge-tool-log.js +77 -0
  60. package/dist/src/agent/merge-tool-log.js.map +1 -0
  61. package/dist/src/agent/native-runtime-run.js +235 -0
  62. package/dist/src/agent/native-runtime-run.js.map +1 -0
  63. package/dist/src/agent/pi-runtime.js +468 -101
  64. package/dist/src/agent/pi-runtime.js.map +1 -1
  65. package/dist/src/agent/prompt-context.js +88 -2
  66. package/dist/src/agent/prompt-context.js.map +1 -1
  67. package/dist/src/agent/runtime/acp/callbacks.js +223 -0
  68. package/dist/src/agent/runtime/acp/callbacks.js.map +1 -0
  69. package/dist/src/agent/runtime/acp/config.js +182 -0
  70. package/dist/src/agent/runtime/acp/config.js.map +1 -0
  71. package/dist/src/agent/runtime/acp/connection.js +254 -0
  72. package/dist/src/agent/runtime/acp/connection.js.map +1 -0
  73. package/dist/src/agent/runtime/acp/content.js +63 -0
  74. package/dist/src/agent/runtime/acp/content.js.map +1 -0
  75. package/dist/src/agent/runtime/acp/cursor-session.js +92 -0
  76. package/dist/src/agent/runtime/acp/cursor-session.js.map +1 -0
  77. package/dist/src/agent/runtime/acp/grok-control.js +3 -0
  78. package/dist/src/agent/runtime/acp/grok-control.js.map +1 -0
  79. package/dist/src/agent/runtime/acp/grok-events.js +28 -0
  80. package/dist/src/agent/runtime/acp/grok-events.js.map +1 -0
  81. package/dist/src/agent/runtime/acp/grok-options.js +63 -0
  82. package/dist/src/agent/runtime/acp/grok-options.js.map +1 -0
  83. package/dist/src/agent/runtime/acp/grok-session.js +118 -0
  84. package/dist/src/agent/runtime/acp/grok-session.js.map +1 -0
  85. package/dist/src/agent/runtime/acp/notification-queue.js +107 -0
  86. package/dist/src/agent/runtime/acp/notification-queue.js.map +1 -0
  87. package/dist/src/agent/runtime/acp/permissions.js +133 -0
  88. package/dist/src/agent/runtime/acp/permissions.js.map +1 -0
  89. package/dist/src/agent/runtime/acp/projection.js +162 -0
  90. package/dist/src/agent/runtime/acp/projection.js.map +1 -0
  91. package/dist/src/agent/runtime/acp/replacement-turn.js +187 -0
  92. package/dist/src/agent/runtime/acp/replacement-turn.js.map +1 -0
  93. package/dist/src/agent/runtime/acp/replacement.js +159 -0
  94. package/dist/src/agent/runtime/acp/replacement.js.map +1 -0
  95. package/dist/src/agent/runtime/acp/runtime-session.js +245 -0
  96. package/dist/src/agent/runtime/acp/runtime-session.js.map +1 -0
  97. package/dist/src/agent/runtime/acp/session.js +426 -0
  98. package/dist/src/agent/runtime/acp/session.js.map +1 -0
  99. package/dist/src/agent/runtime/acp/wire.js +46 -0
  100. package/dist/src/agent/runtime/acp/wire.js.map +1 -0
  101. package/dist/src/agent/runtime/claude-run-controls.js +41 -0
  102. package/dist/src/agent/runtime/claude-run-controls.js.map +1 -0
  103. package/dist/src/agent/runtime/claude-sdk-children.js +405 -0
  104. package/dist/src/agent/runtime/claude-sdk-children.js.map +1 -0
  105. package/dist/src/agent/runtime/claude-sdk-close.js +43 -0
  106. package/dist/src/agent/runtime/claude-sdk-close.js.map +1 -0
  107. package/dist/src/agent/runtime/claude-sdk-content.js +42 -0
  108. package/dist/src/agent/runtime/claude-sdk-content.js.map +1 -0
  109. package/dist/src/agent/runtime/claude-sdk-events.js +337 -0
  110. package/dist/src/agent/runtime/claude-sdk-events.js.map +1 -0
  111. package/dist/src/agent/runtime/claude-sdk-hooks.js +32 -0
  112. package/dist/src/agent/runtime/claude-sdk-hooks.js.map +1 -0
  113. package/dist/src/agent/runtime/claude-sdk-input.js +58 -0
  114. package/dist/src/agent/runtime/claude-sdk-input.js.map +1 -0
  115. package/dist/src/agent/runtime/claude-sdk-loader.js +21 -0
  116. package/dist/src/agent/runtime/claude-sdk-loader.js.map +1 -0
  117. package/dist/src/agent/runtime/claude-sdk-messages.js +133 -0
  118. package/dist/src/agent/runtime/claude-sdk-messages.js.map +1 -0
  119. package/dist/src/agent/runtime/claude-sdk-metadata.js +40 -0
  120. package/dist/src/agent/runtime/claude-sdk-metadata.js.map +1 -0
  121. package/dist/src/agent/runtime/claude-sdk-options.js +70 -0
  122. package/dist/src/agent/runtime/claude-sdk-options.js.map +1 -0
  123. package/dist/src/agent/runtime/claude-sdk-owners.js +113 -0
  124. package/dist/src/agent/runtime/claude-sdk-owners.js.map +1 -0
  125. package/dist/src/agent/runtime/claude-sdk-permissions.js +283 -0
  126. package/dist/src/agent/runtime/claude-sdk-permissions.js.map +1 -0
  127. package/dist/src/agent/runtime/claude-sdk-process.js +72 -0
  128. package/dist/src/agent/runtime/claude-sdk-process.js.map +1 -0
  129. package/dist/src/agent/runtime/claude-sdk-roots.js +103 -0
  130. package/dist/src/agent/runtime/claude-sdk-roots.js.map +1 -0
  131. package/dist/src/agent/runtime/claude-sdk-session.js +518 -0
  132. package/dist/src/agent/runtime/claude-sdk-session.js.map +1 -0
  133. package/dist/src/agent/runtime/codex-projection.js +126 -0
  134. package/dist/src/agent/runtime/codex-projection.js.map +1 -0
  135. package/dist/src/agent/runtime/events.js +39 -0
  136. package/dist/src/agent/runtime/events.js.map +1 -0
  137. package/dist/src/agent/runtime/grok-main.js +7 -0
  138. package/dist/src/agent/runtime/grok-main.js.map +1 -0
  139. package/dist/src/agent/runtime/outcome.js +28 -0
  140. package/dist/src/agent/runtime/outcome.js.map +1 -0
  141. package/dist/src/agent/runtime/pi-projection.js +97 -0
  142. package/dist/src/agent/runtime/pi-projection.js.map +1 -0
  143. package/dist/src/agent/runtime/pi-raw-trace.js +87 -0
  144. package/dist/src/agent/runtime/pi-raw-trace.js.map +1 -0
  145. package/dist/src/agent/runtime/pi-turn.js +159 -0
  146. package/dist/src/agent/runtime/pi-turn.js.map +1 -0
  147. package/dist/src/agent/runtime/print-activity.js +47 -0
  148. package/dist/src/agent/runtime/print-activity.js.map +1 -0
  149. package/dist/src/agent/runtime/print-projection.js +51 -0
  150. package/dist/src/agent/runtime/print-projection.js.map +1 -0
  151. package/dist/src/agent/runtime/projection.js +283 -0
  152. package/dist/src/agent/runtime/projection.js.map +1 -0
  153. package/dist/src/agent/runtime/replace-turn.js +36 -0
  154. package/dist/src/agent/runtime/replace-turn.js.map +1 -0
  155. package/dist/src/agent/runtime/requests.js +207 -0
  156. package/dist/src/agent/runtime/requests.js.map +1 -0
  157. package/dist/src/agent/runtime/selection.js +31 -0
  158. package/dist/src/agent/runtime/selection.js.map +1 -0
  159. package/dist/src/agent/runtime/session.js +2 -0
  160. package/dist/src/agent/runtime/session.js.map +1 -0
  161. package/dist/src/agent/runtime-pool-contract.js +2 -0
  162. package/dist/src/agent/runtime-pool-contract.js.map +1 -0
  163. package/dist/src/agent/runtime-pool.js +317 -9
  164. package/dist/src/agent/runtime-pool.js.map +1 -1
  165. package/dist/src/agent/session-persistence.js +10 -2
  166. package/dist/src/agent/session-persistence.js.map +1 -1
  167. package/dist/src/agent/spawn.js +990 -143
  168. package/dist/src/agent/spawn.js.map +1 -1
  169. package/dist/src/agent/steer-input-guard.js +33 -0
  170. package/dist/src/agent/steer-input-guard.js.map +1 -0
  171. package/dist/src/cli/acp-client.js +20 -21
  172. package/dist/src/cli/acp-client.js.map +1 -1
  173. package/dist/src/cli/handlers-runtime.js +21 -12
  174. package/dist/src/cli/handlers-runtime.js.map +1 -1
  175. package/dist/src/cli/registry.js +2 -0
  176. package/dist/src/cli/registry.js.map +1 -1
  177. package/dist/src/cli/tui/activity-answer.js +97 -0
  178. package/dist/src/cli/tui/activity-answer.js.map +1 -0
  179. package/dist/src/cli/tui/activity-history.js +364 -0
  180. package/dist/src/cli/tui/activity-history.js.map +1 -0
  181. package/dist/src/cli/tui/activity-linear.js +29 -0
  182. package/dist/src/cli/tui/activity-linear.js.map +1 -0
  183. package/dist/src/cli/tui/activity-terminal-text.js +111 -0
  184. package/dist/src/cli/tui/activity-terminal-text.js.map +1 -0
  185. package/dist/src/cli/tui/activity.js +95 -0
  186. package/dist/src/cli/tui/activity.js.map +1 -0
  187. package/dist/src/cli/tui/cell-width.js +41 -0
  188. package/dist/src/cli/tui/cell-width.js.map +1 -0
  189. package/dist/src/cli/tui/events.js +15 -0
  190. package/dist/src/cli/tui/events.js.map +1 -1
  191. package/dist/src/cli/tui/keymap.js +2 -0
  192. package/dist/src/cli/tui/keymap.js.map +1 -1
  193. package/dist/src/cli/tui/render/composer-box.js +12 -14
  194. package/dist/src/cli/tui/render/composer-box.js.map +1 -1
  195. package/dist/src/cli/tui/render/viewport.js +9 -5
  196. package/dist/src/cli/tui/render/viewport.js.map +1 -1
  197. package/dist/src/cli/tui/renderers.js +119 -139
  198. package/dist/src/cli/tui/renderers.js.map +1 -1
  199. package/dist/src/cli/tui/settings-screen.js +11 -0
  200. package/dist/src/cli/tui/settings-screen.js.map +1 -1
  201. package/dist/src/cli/tui/store.js +3 -0
  202. package/dist/src/cli/tui/store.js.map +1 -1
  203. package/dist/src/cli/tui/transcript.js +68 -0
  204. package/dist/src/cli/tui/transcript.js.map +1 -1
  205. package/dist/src/core/bus.js +8 -0
  206. package/dist/src/core/bus.js.map +1 -1
  207. package/dist/src/core/chat-sessions.js +1 -0
  208. package/dist/src/core/chat-sessions.js.map +1 -1
  209. package/dist/src/core/compact.js +10 -3
  210. package/dist/src/core/compact.js.map +1 -1
  211. package/dist/src/core/config.js +21 -0
  212. package/dist/src/core/config.js.map +1 -1
  213. package/dist/src/core/db.js +26 -0
  214. package/dist/src/core/db.js.map +1 -1
  215. package/dist/src/core/runtime-settings.js +44 -3
  216. package/dist/src/core/runtime-settings.js.map +1 -1
  217. package/dist/src/core/session-ops.js +40 -9
  218. package/dist/src/core/session-ops.js.map +1 -1
  219. package/dist/src/core/settings-merge.js +31 -1
  220. package/dist/src/core/settings-merge.js.map +1 -1
  221. package/dist/src/core/settings-watch.js +8 -1
  222. package/dist/src/core/settings-watch.js.map +1 -1
  223. package/dist/src/discord/bot.js +28 -9
  224. package/dist/src/discord/bot.js.map +1 -1
  225. package/dist/src/discord/send-only-client.js +4 -0
  226. package/dist/src/discord/send-only-client.js.map +1 -1
  227. package/dist/src/manager/routes/telegram-hub.js +2 -1
  228. package/dist/src/manager/routes/telegram-hub.js.map +1 -1
  229. package/dist/src/manager/scan.js +12 -0
  230. package/dist/src/manager/scan.js.map +1 -1
  231. package/dist/src/manager/server.js +89 -13
  232. package/dist/src/manager/server.js.map +1 -1
  233. package/dist/src/manager/telegram-hub/hub-bot.js +9 -3
  234. package/dist/src/manager/telegram-hub/hub-bot.js.map +1 -1
  235. package/dist/src/orchestrator/collect.js +80 -6
  236. package/dist/src/orchestrator/collect.js.map +1 -1
  237. package/dist/src/orchestrator/gateway.js +13 -10
  238. package/dist/src/orchestrator/gateway.js.map +1 -1
  239. package/dist/src/orchestrator/pipeline.js +68 -29
  240. package/dist/src/orchestrator/pipeline.js.map +1 -1
  241. package/dist/src/orchestrator/request-registry.js +2 -0
  242. package/dist/src/orchestrator/request-registry.js.map +1 -1
  243. package/dist/src/orchestrator/scope.js +15 -0
  244. package/dist/src/orchestrator/scope.js.map +1 -1
  245. package/dist/src/routes/memory.js +2 -2
  246. package/dist/src/routes/memory.js.map +1 -1
  247. package/dist/src/routes/messages.js +51 -18
  248. package/dist/src/routes/messages.js.map +1 -1
  249. package/dist/src/routes/orchestrate.js +29 -17
  250. package/dist/src/routes/orchestrate.js.map +1 -1
  251. package/dist/src/routes/runtime-request-notices.js +23 -0
  252. package/dist/src/routes/runtime-request-notices.js.map +1 -0
  253. package/dist/src/routes/runtime-requests.js +43 -0
  254. package/dist/src/routes/runtime-requests.js.map +1 -0
  255. package/dist/src/routes/settings.js +7 -1
  256. package/dist/src/routes/settings.js.map +1 -1
  257. package/dist/src/routes/traces.js +93 -6
  258. package/dist/src/routes/traces.js.map +1 -1
  259. package/dist/src/shared/activity-read.js +158 -0
  260. package/dist/src/shared/activity-read.js.map +1 -0
  261. package/dist/src/shared/activity-replay.js +279 -0
  262. package/dist/src/shared/activity-replay.js.map +1 -0
  263. package/dist/src/shared/activity-state.js +144 -0
  264. package/dist/src/shared/activity-state.js.map +1 -0
  265. package/dist/src/shared/isolated-qa.js +132 -0
  266. package/dist/src/shared/isolated-qa.js.map +1 -0
  267. package/dist/src/shared/presentation.js +21 -0
  268. package/dist/src/shared/presentation.js.map +1 -0
  269. package/dist/src/shared/runtime-contract.js +2 -0
  270. package/dist/src/shared/runtime-contract.js.map +1 -0
  271. package/dist/src/shared/runtime-event-parse.js +99 -0
  272. package/dist/src/shared/runtime-event-parse.js.map +1 -0
  273. package/dist/src/shared/runtime-request-notice.js +9 -0
  274. package/dist/src/shared/runtime-request-notice.js.map +1 -0
  275. package/dist/src/shared/tool-log-sanitize.js +11 -5
  276. package/dist/src/shared/tool-log-sanitize.js.map +1 -1
  277. package/dist/src/slack/bot.js +20 -7
  278. package/dist/src/slack/bot.js.map +1 -1
  279. package/dist/src/slack/send-only-client.js +3 -0
  280. package/dist/src/slack/send-only-client.js.map +1 -1
  281. package/dist/src/telegram/bot.js +27 -5
  282. package/dist/src/telegram/bot.js.map +1 -1
  283. package/dist/src/telegram/rich-message.js +47 -1
  284. package/dist/src/telegram/rich-message.js.map +1 -1
  285. package/dist/src/trace/activity-control.js +87 -0
  286. package/dist/src/trace/activity-control.js.map +1 -0
  287. package/dist/src/trace/activity-journal.js +155 -0
  288. package/dist/src/trace/activity-journal.js.map +1 -0
  289. package/dist/src/trace/activity-retention.js +55 -0
  290. package/dist/src/trace/activity-retention.js.map +1 -0
  291. package/dist/src/trace/runtime-body-codec.js +162 -0
  292. package/dist/src/trace/runtime-body-codec.js.map +1 -0
  293. package/dist/src/trace/store.js +65 -22
  294. package/dist/src/trace/store.js.map +1 -1
  295. package/package.json +8 -5
  296. package/public/css/activity.css +211 -0
  297. package/public/css/chat-search.css +13 -1
  298. package/public/css/chat.css +10 -0
  299. package/public/css/native-requests.css +55 -0
  300. package/public/css/trace-drawer.css +15 -8
  301. package/public/dist/assets/AdvancedExport-q4DnVxpT.js +1 -0
  302. package/public/dist/assets/Agent-CI1AfYOA.js +1 -0
  303. package/public/dist/assets/Browser-D9kwPJfN.js +1 -0
  304. package/public/dist/assets/BrowserPanel-CVZyvbth.js +3 -0
  305. package/public/dist/assets/{ChannelEnablementControl-B9KiYDZZ.js → ChannelEnablementControl-BkxeZonM.js} +1 -1
  306. package/public/dist/assets/ChannelsDiscord-CulKFTiX.js +1 -0
  307. package/public/dist/assets/ChannelsSlack-D09H8GKC.js +1 -0
  308. package/public/dist/assets/ChannelsTelegram-yA_NMLfM.js +1 -0
  309. package/public/dist/assets/CodeCanvas-DUaLWPBe.js +3 -0
  310. package/public/dist/assets/{DashboardEmbeddingSection-CIOwsVB5.js → DashboardEmbeddingSection-R9vUu9X2.js} +1 -1
  311. package/public/dist/assets/{DashboardMeta-D6nJsY8n.js → DashboardMeta-BKutQ9Ps.js} +1 -1
  312. package/public/dist/assets/DesignPanel-CE5jvzt4.js +2 -0
  313. package/public/dist/assets/{DiffPanel-ZaDoV7qS.js → DiffPanel-D9Cch5FG.js} +2 -2
  314. package/public/dist/assets/Display-BPYZ295k.js +1 -0
  315. package/public/dist/assets/DocPanel-DvtFw8AP.js +1 -0
  316. package/public/dist/assets/{Employees-CR41RcWo.js → Employees-bxErTlcA.js} +1 -1
  317. package/public/dist/assets/FolderPanel-u2YeiFFr.js +3 -0
  318. package/public/dist/assets/HealthBadge-CDPKdSXc.js +1 -0
  319. package/public/dist/assets/{Heartbeat-CD1R95Kv.js → Heartbeat-BCt4mFWz.js} +1 -1
  320. package/public/dist/assets/{InlineWarn-B3bJfG-Z.js → InlineWarn-DakL-ThS.js} +1 -1
  321. package/public/dist/assets/MarkdownRenderer-Cc3DeHvm.js +1 -0
  322. package/public/dist/assets/MarkdownRenderer-DzN66XVb.js +15 -0
  323. package/public/dist/assets/{Mcp-DSIEQZfH.js → Mcp-Cp1ffHWt.js} +2 -2
  324. package/public/dist/assets/{Memory-CpZIdE1o.js → Memory-Rq4fHjZv.js} +1 -1
  325. package/public/dist/assets/MilkdownWysiwygEditor-xObhviw7.js +160 -0
  326. package/public/dist/assets/ModelProvider-BNDxlWHC.js +1 -0
  327. package/public/dist/assets/Network-D_OYGb_C.js +1 -0
  328. package/public/dist/assets/NotesGraphWorkspace-DO9LtVGF.js +1 -0
  329. package/public/dist/assets/PanelLayoutProvider-BFxal5fZ.js +1 -0
  330. package/public/dist/assets/Permissions-DZ3ADB4i.js +1 -0
  331. package/public/dist/assets/Permissions-wj06yuy6.js +1 -0
  332. package/public/dist/assets/Profile-BQiNETCP.js +1 -0
  333. package/public/dist/assets/Prompts-DrMb2Kom.js +1 -0
  334. package/public/dist/assets/{SpeechKeys-CIq4c1iz.js → SpeechKeys-DqMhN-bl.js} +1 -1
  335. package/public/dist/assets/{TelegramHub-BrCeAZEf.js → TelegramHub-BSZ3xTdS.js} +1 -1
  336. package/public/dist/assets/TerminalPanel-Dwfd6Mhs.js +16 -0
  337. package/public/dist/assets/TerminalPanel-muGat3B1.css +1 -0
  338. package/public/dist/assets/{abnfDiagram-VCTEODGH-DOF68zXc.js → abnfDiagram-VCTEODGH-Bh3YzulT.js} +1 -1
  339. package/public/dist/assets/api-CLHen33W.js +1 -0
  340. package/public/dist/assets/api-CUtiCd2-.js +1 -0
  341. package/public/dist/assets/{apl-CYLd9I-9.js → apl-gfMMiTNf.js} +1 -1
  342. package/public/dist/assets/app-Dskscukr.css +1 -0
  343. package/public/dist/assets/app-ckFtOSgc.js +55 -0
  344. package/public/dist/assets/architecture-7GRP2DOG-Bp3iCG16.js +1 -0
  345. package/public/dist/assets/architectureDiagram-5GKGNRK7-COhidFYz.js +36 -0
  346. package/public/dist/assets/asciiarmor-C_eisQCp.js +1 -0
  347. package/public/dist/assets/{asn1-BlhHp3qx.js → asn1-DCl_8MCW.js} +1 -1
  348. package/public/dist/assets/{asterisk-Q0-IBwUt.js → asterisk-BEn0Cwpx.js} +1 -1
  349. package/public/dist/assets/{bgtask-badge-Cu1w7rg2.js → bgtask-badge-BmSGU6nQ.js} +1 -1
  350. package/public/dist/assets/bgtask-badge-DKpNEyny.js +1 -0
  351. package/public/dist/assets/{blockDiagram-OSKFZWR5-CRNzDJwU.js → blockDiagram-OSKFZWR5--OxgY2yr.js} +4 -4
  352. package/public/dist/assets/bounded-api-DdpT93LB.js +1 -0
  353. package/public/dist/assets/{bounded-set-DXkYOGnQ.js → bounded-set-BELTet1M.js} +1 -1
  354. package/public/dist/assets/c4Diagram-7LVT6UL2-C0DocmNb.js +38 -0
  355. package/public/dist/assets/channel-DO94Q0oH.js +1 -0
  356. package/public/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  357. package/public/dist/assets/{chunk-2ZTRR5NV-DF9qGbFc.js → chunk-2ZTRR5NV-BFt7Dm5O.js} +1 -1
  358. package/public/dist/assets/chunk-3NF5O7KM-FbOqoUnr.js +168 -0
  359. package/public/dist/assets/{chunk-3Z5EZCMW-D-umBnbE.js → chunk-3Z5EZCMW-udVqggne.js} +1 -1
  360. package/public/dist/assets/{chunk-4HAMMTFA-BzeIXjef.js → chunk-4HAMMTFA-UBUVs5kk.js} +2 -2
  361. package/public/dist/assets/{chunk-5V3GS4D5-DB7RMaO_.js → chunk-5V3GS4D5-ecLo0f1p.js} +1 -1
  362. package/public/dist/assets/{chunk-5VM5RSS4-CEUkek2W.js → chunk-5VM5RSS4-ZNzvKenW.js} +1 -1
  363. package/public/dist/assets/{chunk-6AZGARVD-qPN7cVYY.js → chunk-6AZGARVD-Cou1D2Ji.js} +1 -1
  364. package/public/dist/assets/{chunk-6EIED4P4-Bt6lS0r9.js → chunk-6EIED4P4-DeqPLKcQ.js} +1 -1
  365. package/public/dist/assets/{chunk-6K3QC6MW-BC_6hNGf.js → chunk-6K3QC6MW-Cn9odKk7.js} +1 -1
  366. package/public/dist/assets/{chunk-6TQVIW2G-NQr1OdRE.js → chunk-6TQVIW2G-IVBzI7O8.js} +1 -1
  367. package/public/dist/assets/{chunk-747NJXEK-CukETSeX.js → chunk-747NJXEK-Bxgd5wfl.js} +1 -1
  368. package/public/dist/assets/{chunk-75Z2AOVW-BLiFJXcr.js → chunk-75Z2AOVW-B1-fK2mN.js} +1 -1
  369. package/public/dist/assets/chunk-CLGD4ZFX-CotBINqH.js +1 -0
  370. package/public/dist/assets/{chunk-DU6HZSFF-CqT8wcBs.js → chunk-DU6HZSFF-vsD_dO7e.js} +3 -3
  371. package/public/dist/assets/{chunk-F27PBJKO-Ccrogyxp.js → chunk-F27PBJKO-C3O21Si2.js} +1 -1
  372. package/public/dist/assets/{chunk-FOHPRMQF--f9XSh-3.js → chunk-FOHPRMQF-CoA4358r.js} +35 -35
  373. package/public/dist/assets/{chunk-GMAD6QVW-BJLz4nC-.js → chunk-GMAD6QVW-BSVfzVP1.js} +2 -2
  374. package/public/dist/assets/chunk-GVQU2GXP-CsYaquup.js +1 -0
  375. package/public/dist/assets/chunk-H2I77ZZE-ytBKuGMS.js +1 -0
  376. package/public/dist/assets/{chunk-HLEWEB6X-BKWwzzZJ.js → chunk-HLEWEB6X-bHrMh27k.js} +3 -3
  377. package/public/dist/assets/{chunk-I5DQTOEV-B46sdKHC.js → chunk-I5DQTOEV-BYKVfZyL.js} +1 -1
  378. package/public/dist/assets/{chunk-ICYGCRZG-CSu4gXtC.js → chunk-ICYGCRZG-hvV-gq8M.js} +1 -1
  379. package/public/dist/assets/{chunk-IH6LHLGP-B2m3mWfU.js → chunk-IH6LHLGP-DTNFuJiP.js} +1 -1
  380. package/public/dist/assets/{chunk-JWPE2WC7-D-FE5omP.js → chunk-JWPE2WC7-DVXcaiue.js} +1 -1
  381. package/public/dist/assets/{chunk-KI3K4JFJ-Bfn6wbch.js → chunk-KI3K4JFJ-B4ZziqcX.js} +1 -1
  382. package/public/dist/assets/chunk-L3NEJ4N5-DxbPaCWe.js +1 -0
  383. package/public/dist/assets/{chunk-LNGE3PJU-Dyjtq0ks.js → chunk-LNGE3PJU-5-SxdO55.js} +7 -7
  384. package/public/dist/assets/chunk-LQGUR6SS-C7emO-i3.js +2 -0
  385. package/public/dist/assets/chunk-OSK3NFVY-D_HWIC0H.js +10 -0
  386. package/public/dist/assets/{chunk-OUJLGHUK-DkWSHliq.js → chunk-OUJLGHUK-CTWiVXba.js} +1 -1
  387. package/public/dist/assets/{chunk-P2QGCYS3-B-9ymCdr.js → chunk-P2QGCYS3-D9LpOEME.js} +1 -1
  388. package/public/dist/assets/{chunk-POPQ4Y6H-Df0_Odad.js → chunk-POPQ4Y6H-BzSgf7pO.js} +1 -1
  389. package/public/dist/assets/{chunk-PWAF6VOD-B1cuaLs-.js → chunk-PWAF6VOD-CqSJPGBE.js} +1 -1
  390. package/public/dist/assets/{chunk-SVP7TREG-DCh4QTp-.js → chunk-SVP7TREG-NOSK04BT.js} +1 -1
  391. package/public/dist/assets/{chunk-UY3FDG6J--uyeDRt4.js → chunk-UY3FDG6J-BVPsKpVN.js} +1 -1
  392. package/public/dist/assets/{chunk-X3CZISLH-C1s9nTVF.js → chunk-X3CZISLH-ChyOdCnY.js} +1 -1
  393. package/public/dist/assets/{chunk-XHIXRSVI-CQtpMKYq.js → chunk-XHIXRSVI-CQipzMEr.js} +1 -1
  394. package/public/dist/assets/chunk-XXDRQBXY-Uq2wLB4L.js +1 -0
  395. package/public/dist/assets/{chunk-ZLD2IHE6-DOKyEMMC.js → chunk-ZLD2IHE6-CWSP7frq.js} +3 -3
  396. package/public/dist/assets/classDiagram-CYGNFDIV-C1ssjdiH.js +1 -0
  397. package/public/dist/assets/classDiagram-v2-TLXNO2FR-C1ssjdiH.js +1 -0
  398. package/public/dist/assets/clike-D_6L3tnO.js +1 -0
  399. package/public/dist/assets/cmake-84nbDH0I.js +1 -0
  400. package/public/dist/assets/cobol-DHLQUbN7.js +1 -0
  401. package/public/dist/assets/coffeescript-De_zI4J0.js +1 -0
  402. package/public/dist/assets/commonlisp-DgAKBe0r.js +1 -0
  403. package/public/dist/assets/{constants-BfYYzHNr.js → constants-TRkDoXvF.js} +1 -1
  404. package/public/dist/assets/{copy-text-Dy0kfmb9.js → copy-text-WsUHYigB.js} +1 -1
  405. package/public/dist/assets/cose-bilkent-JH36ORCC-BqCMCbxR.js +1 -0
  406. package/public/dist/assets/crystal-Bsdphhtm.js +1 -0
  407. package/public/dist/assets/css-CnaYoQib.js +1 -0
  408. package/public/dist/assets/cynefin-OW5HDTMX-57vG-IQU.js +1 -0
  409. package/public/dist/assets/cynefinDiagram-5FMLGOSQ-UAM-DZmU.js +62 -0
  410. package/public/dist/assets/cytoscape.esm-Ql0ZPabT.js +321 -0
  411. package/public/dist/assets/{d-BfHF1VVF.js → d-DWkQyNnU.js} +1 -1
  412. package/public/dist/assets/dagre-Fg-GCROL.js +1 -0
  413. package/public/dist/assets/{dagre-OS7QT2EB-c-JkA4ju.js → dagre-OS7QT2EB-CflcJHKB.js} +2 -2
  414. package/public/dist/assets/{diagram-S7CK7UJ4-CgObZnGW.js → diagram-S7CK7UJ4-Dzl9sLZD.js} +1 -1
  415. package/public/dist/assets/{diagram-UQ7AKVKN-DTiko3yH.js → diagram-UQ7AKVKN-BhpfQUAt.js} +2 -2
  416. package/public/dist/assets/{diagram-VSXAHHWV-BtwoQsOH.js → diagram-VSXAHHWV-CnuHIxOm.js} +1 -1
  417. package/public/dist/assets/{diagram-VX7I27RA-BvFpphqo.js → diagram-VX7I27RA-CQzbjtqd.js} +13 -13
  418. package/public/dist/assets/{diagram-Z3DM3KII-Zq8iJClC.js → diagram-Z3DM3KII-DR3Ie5C2.js} +1 -1
  419. package/public/dist/assets/dist--wUCkuiC.js +9 -0
  420. package/public/dist/assets/dist-B2ugUS7T.js +1 -0
  421. package/public/dist/assets/dist-B6-H00Bu.js +1 -0
  422. package/public/dist/assets/{dist-CD7tjeNO.js → dist-B_o5XbiL.js} +1 -1
  423. package/public/dist/assets/{dist-D8Zky4R1.js → dist-Bn361Kgk.js} +2 -2
  424. package/public/dist/assets/{dist-BspKh_Zg.js → dist-Box-O1ow.js} +1 -1
  425. package/public/dist/assets/dist-Bp7q5-Qc.js +39 -0
  426. package/public/dist/assets/dist-C9i-hLBK.js +1 -0
  427. package/public/dist/assets/{dist-JnCmAxGR.js → dist-CGUtB2hn.js} +1 -1
  428. package/public/dist/assets/dist-CHO5CBK1.js +1 -0
  429. package/public/dist/assets/dist-CJNnOuaA.js +1 -0
  430. package/public/dist/assets/dist-CPYD5RoF.js +1 -0
  431. package/public/dist/assets/dist-CW1HDUim.js +1 -0
  432. package/public/dist/assets/dist-Cbkb9LHa.js +1 -0
  433. package/public/dist/assets/dist-CcmA2WLJ.js +2 -0
  434. package/public/dist/assets/dist-ClT6EIJP.js +1 -0
  435. package/public/dist/assets/dist-D011G-p-.js +13 -0
  436. package/public/dist/assets/dist-DBX5LjYY.js +6 -0
  437. package/public/dist/assets/dist-DBpt7gM8.js +1 -0
  438. package/public/dist/assets/{dist-CgIOBybm.js → dist-DJGc9cyj.js} +1 -1
  439. package/public/dist/assets/{dist-CTpw6PFT.js → dist-DUl4SBwX.js} +1 -1
  440. package/public/dist/assets/{dist-DKd_hdkE.js → dist-DWvaIPaS.js} +1 -1
  441. package/public/dist/assets/{dist-DS7cuuIk.js → dist-Ds6qQDMC.js} +1 -1
  442. package/public/dist/assets/dist-Dxy8kUAu.js +1 -0
  443. package/public/dist/assets/{dist-Bg80xGMJ.js → dist-OaQUa3cd.js} +1 -1
  444. package/public/dist/assets/dist-Ohtnri73.js +11 -0
  445. package/public/dist/assets/dist-TN2_Nms3.js +2 -0
  446. package/public/dist/assets/dist-XM8qpb8C.js +1 -0
  447. package/public/dist/assets/dist-Y0iINzVl.js +1 -0
  448. package/public/dist/assets/{dist-uSfGXqs6.js → dist-kYfyPZP9.js} +1 -1
  449. package/public/dist/assets/{dist-D3ShDeDU.js → dist-lsEiXLAb.js} +1 -1
  450. package/public/dist/assets/{dockerfile-DkX5AHzr.js → dockerfile-DJkHQgkl.js} +1 -1
  451. package/public/dist/assets/{dylan-BQ0i5j3T.js → dylan-BCDoL_-p.js} +1 -1
  452. package/public/dist/assets/{ebnfDiagram-PWID7BFC-_fcO3z5G.js → ebnfDiagram-PWID7BFC-D_FcQuZg.js} +1 -1
  453. package/public/dist/assets/{ecl-oXh4vhiy.js → ecl-BVIeWmwY.js} +1 -1
  454. package/public/dist/assets/{employees-qLLnQlAv.js → employees-BJRRI3rV.js} +3 -3
  455. package/public/dist/assets/{erDiagram-2YWLMYGG-YIq0Go-p.js → erDiagram-2YWLMYGG-CLpGDU8-.js} +3 -3
  456. package/public/dist/assets/{erlang-GRIYhTbY.js → erlang-BV0c4Hdn.js} +1 -1
  457. package/public/dist/assets/{error-normalize-CLRJh19F.js → error-normalize-UHvG8s92.js} +1 -1
  458. package/public/dist/assets/esm-Q6VOkDbn.js +4 -0
  459. package/public/dist/assets/eventmodeling-NTZA5JFV-Dz1yjNT-.js +1 -0
  460. package/public/dist/assets/{factor-Xro2mWdw.js → factor-LKH5gN8L.js} +1 -1
  461. package/public/dist/assets/fields-CSdFjOgg.js +1 -0
  462. package/public/dist/assets/flowDiagram-T62WH6J4-jooH4x9e.js +1 -0
  463. package/public/dist/assets/forth-D6RzAl64.js +1 -0
  464. package/public/dist/assets/ganttDiagram-EL5Y4UJY-B9_NJDV6.js +292 -0
  465. package/public/dist/assets/gitGraph-4MIJSDKK-NIO2XoGv.js +1 -0
  466. package/public/dist/assets/{gitGraphDiagram-WWUBYQGX-Bg3OM_0S.js → gitGraphDiagram-WWUBYQGX-BO0vc7Qh.js} +4 -4
  467. package/public/dist/assets/graphlib-CGJNr7IJ.js +1 -0
  468. package/public/dist/assets/groovy-CUpZ7dEl.js +1 -0
  469. package/public/dist/assets/{haxe-BrZpr4Ca.js → haxe-DjVOVvNP.js} +1 -1
  470. package/public/dist/assets/idb-cache-BRpjf_a8.js +1 -0
  471. package/public/dist/assets/idb-cache-CFBnPfHz.js +1 -0
  472. package/public/dist/assets/iframe-renderer-BngLCbh9.js +1 -0
  473. package/public/dist/assets/iframe-renderer-CFD7rXuQ.js +142 -0
  474. package/public/dist/assets/info-A6RAGUB7-yRMwEr76.js +1 -0
  475. package/public/dist/assets/{infoDiagram-FKFFQAWI-Dbi9pIPw.js → infoDiagram-FKFFQAWI-BM2g31_p.js} +1 -1
  476. package/public/dist/assets/{ishikawaDiagram-5VMMS53U-C1FUP-sO.js → ishikawaDiagram-5VMMS53U-BZvjesKs.js} +2 -2
  477. package/public/dist/assets/javascript-B9I2pbsP.js +1 -0
  478. package/public/dist/assets/javascript-DctB8BJo.js +1 -0
  479. package/public/dist/assets/{journeyDiagram-EYS64GPL-CaEEa3uT.js → journeyDiagram-EYS64GPL-CqtePaqZ.js} +3 -3
  480. package/public/dist/assets/{jsx-runtime-CYoNlHAD.js → jsx-runtime-CkEUZM6i.js} +1 -1
  481. package/public/dist/assets/{kanban-definition-UXKFOSKX-DQjqFxtj.js → kanban-definition-UXKFOSKX-ChZA_T7a.js} +5 -5
  482. package/public/dist/assets/katex-DL-Py6bk.js +1 -0
  483. package/public/dist/assets/{lua-CxVmDfKg.js → lua-zbJo2mq3.js} +1 -1
  484. package/public/dist/assets/manager-Bfy42VgJ.css +1 -0
  485. package/public/dist/assets/manager-CTX6I1Jk.js +13 -0
  486. package/public/dist/assets/memory-BXcwokaP.js +1 -0
  487. package/public/dist/assets/{memory-I_6c8skr.js → memory-D2wwkOUi.js} +10 -10
  488. package/public/dist/assets/mermaid-loader-Beqble_i.js +1 -0
  489. package/public/dist/assets/{mermaid-parser.core-CBiGpWk6.js → mermaid-parser.core-J035_CYr.js} +1 -1
  490. package/public/dist/assets/{mermaid-preprocess-4oGDpf1X.js → mermaid-preprocess-D8xe5R2A.js} +1 -1
  491. package/public/dist/assets/mermaid.core-D1YZrgc_.js +11 -0
  492. package/public/dist/assets/mermaid.core-DSXunyto.js +1 -0
  493. package/public/dist/assets/message-history-C2JH-y2v.js +1 -0
  494. package/public/dist/assets/message-history-CYp7fqXy.js +4 -0
  495. package/public/dist/assets/{mindmap-definition-THT77NOG-CXOyjall.js → mindmap-definition-THT77NOG-C4c47DPO.js} +3 -3
  496. package/public/dist/assets/{mumps-BdPrWvs5.js → mumps-BSzj6Xyz.js} +1 -1
  497. package/public/dist/assets/{nginx-C7cLiM4x.js → nginx-8H7HVH4w.js} +1 -1
  498. package/public/dist/assets/{notes-graph-settings-Cl4lMj-A.js → notes-graph-settings-BUoTzvqs.js} +1 -1
  499. package/public/dist/assets/{nsis-iX94j4T9.js → nsis-CfSuhXs5.js} +1 -1
  500. package/public/dist/assets/{ntriples-DLMpvgb1.js → ntriples-B9h1VB_g.js} +1 -1
  501. package/public/dist/assets/packet-AYTQ26CC-BreuCLNh.js +1 -0
  502. package/public/dist/assets/{page-shell-DZ1lls_P.js → page-shell-Bs0RBRoD.js} +1 -1
  503. package/public/dist/assets/{pegDiagram-XKGWAZYB-DVD3P7WU.js → pegDiagram-XKGWAZYB-BHiELbRn.js} +1 -1
  504. package/public/dist/assets/perl-BkSkiI9m.js +1 -0
  505. package/public/dist/assets/pi-settings-B7e38HJP.js +1 -0
  506. package/public/dist/assets/{pi-settings-DEuKgvIj.js → pi-settings-BmvRWRpc.js} +1 -1
  507. package/public/dist/assets/pie-WAS4IAKB-Co3_rQ80.js +1 -0
  508. package/public/dist/assets/{pieDiagram-E7YTZNPT-DEH6UJP4.js → pieDiagram-E7YTZNPT-BEKTktaH.js} +2 -2
  509. package/public/dist/assets/{powershell-Dfw2t4-B.js → powershell-BcIto6Sf.js} +1 -1
  510. package/public/dist/assets/preload-helper-CfbQpVni.js +1 -0
  511. package/public/dist/assets/presentation-DWHWElFr.js +1 -0
  512. package/public/dist/assets/presentation-preference-BYEPPRPg.js +1 -0
  513. package/public/dist/assets/presentation-preference-D9u6LD07.js +1 -0
  514. package/public/dist/assets/{pug-C8nPBT90.js → pug-CqqUmdG7.js} +1 -1
  515. package/public/dist/assets/puppet-BZyAS7I4.js +1 -0
  516. package/public/dist/assets/python-B_1Jd8HM.js +1 -0
  517. package/public/dist/assets/{quadrantDiagram-AXDQQJYC-CAbCNOON.js → quadrantDiagram-AXDQQJYC-CeJGAkDA.js} +2 -2
  518. package/public/dist/assets/r-CxDmU1I4.js +1 -0
  519. package/public/dist/assets/radar-RG4KPBEZ-C2cOxc85.js +1 -0
  520. package/public/dist/assets/railroad-74A4TZTK-BZ4umY4g.js +1 -0
  521. package/public/dist/assets/railroad-abnf-HS5TGJTU-DxbXiuYs.js +1 -0
  522. package/public/dist/assets/railroad-ebnf-LZEXJU2U-Bthp2_-B.js +1 -0
  523. package/public/dist/assets/railroad-peg-WCYAUIDC-YcQ4ouxQ.js +1 -0
  524. package/public/dist/assets/{railroadDiagram-O6MQD6OU-CEs81LrU.js → railroadDiagram-O6MQD6OU-CsT34rgN.js} +1 -1
  525. package/public/dist/assets/{render-Cc0Y43E3.js → render-DRweFDYR.js} +13 -13
  526. package/public/dist/assets/{requirementDiagram-IS5BZ75X-DsPApdKv.js → requirementDiagram-IS5BZ75X-4PwTKQWK.js} +2 -2
  527. package/public/dist/assets/rolldown-runtime-hePW80VL.js +1 -0
  528. package/public/dist/assets/{rough.esm-DQG0wzX4.js → rough.esm-Dy-Kn_BL.js} +1 -1
  529. package/public/dist/assets/ruby-BjXV7-Qa.js +1 -0
  530. package/public/dist/assets/{sankeyDiagram-P5KCCOFB-Im52Eou9.js → sankeyDiagram-P5KCCOFB-BykRKMDj.js} +2 -2
  531. package/public/dist/assets/scheme-D9qYN0V5.js +1 -0
  532. package/public/dist/assets/sequenceDiagram-WJ2MYXX4-Dyj787ok.js +162 -0
  533. package/public/dist/assets/settings-2diaN51W.js +1 -0
  534. package/public/dist/assets/{settings-DpjZSu2J.js → settings-DuqNWkxS.js} +3 -3
  535. package/public/dist/assets/settings-client-CSHmzyxv.js +1 -0
  536. package/public/dist/assets/settings-core-CIPKFBNN.js +162 -0
  537. package/public/dist/assets/settings-core-DiYr5EbU.js +1 -0
  538. package/public/dist/assets/{shell-BBoIO9l0.js → shell-DwuoZtxw.js} +1 -1
  539. package/public/dist/assets/sidebar-DumxhgAD.js +49 -0
  540. package/public/dist/assets/{sieve-8oEe6gDx.js → sieve-tLWDfEkZ.js} +1 -1
  541. package/public/dist/assets/{simple-mode-BNw0K2rL.js → simple-mode-DXiLM1-G.js} +1 -1
  542. package/public/dist/assets/{sizeCapture-INFHLROL-D9Rpk-aA.js → sizeCapture-INFHLROL-B0uUizjq.js} +1 -1
  543. package/public/dist/assets/skills-CCXE-bXK.js +1 -0
  544. package/public/dist/assets/skills-D3AfzYbP.js +12 -0
  545. package/public/dist/assets/slash-commands-Cn9AWqF6.js +1 -0
  546. package/public/dist/assets/slash-commands-DCHYDCYa.js +20 -0
  547. package/public/dist/assets/solr-B78wSQJQ.js +1 -0
  548. package/public/dist/assets/sql-DuQMFDvy.js +1 -0
  549. package/public/dist/assets/state-Dl-xxPoS.js +1 -0
  550. package/public/dist/assets/{stateDiagram-XQSTLZYL-B5CxGVqv.js → stateDiagram-XQSTLZYL-6p5Yrm8S.js} +1 -1
  551. package/public/dist/assets/stateDiagram-v2-IH3M54BS-DfXrMbZg.js +1 -0
  552. package/public/dist/assets/{stex-32iK7T_9.js → stex-DNzd62Q_.js} +1 -1
  553. package/public/dist/assets/{stylus-C689wDNM.js → stylus-BOVgKnng.js} +1 -1
  554. package/public/dist/assets/swimlanes-V6O3JKXN-Pyw_hrrE.js +1 -0
  555. package/public/dist/assets/swimlanesDiagram-JKAHXJPX-R-OHp34K.js +8 -0
  556. package/public/dist/assets/textile-C4jVoHG1.js +1 -0
  557. package/public/dist/assets/tiki-AK6FwT8q.js +1 -0
  558. package/public/dist/assets/timeline-definition-24CTP7MA-V_LwIXs0.js +120 -0
  559. package/public/dist/assets/toml-BPTmHmyx.js +1 -0
  560. package/public/dist/assets/trace-drawer-B05Fa2ja.js +20 -0
  561. package/public/dist/assets/treeView-Q6P3EWNA-CDjnLfDO.js +1 -0
  562. package/public/dist/assets/treemap-WGGIJYW6-CbGUwvA1.js +1 -0
  563. package/public/dist/assets/{ttcn-CPOduycD.js → ttcn-PPSTk1ow.js} +1 -1
  564. package/public/dist/assets/{ttcn-cfg-DmA__-R_.js → ttcn-cfg-2b4Gb5sE.js} +1 -1
  565. package/public/dist/assets/turtle-Cx3rYX2g.js +1 -0
  566. package/public/dist/assets/ui-BO9pdl-p.js +1 -0
  567. package/public/dist/assets/ui-CCXcKDL5.js +2 -0
  568. package/public/dist/assets/vendor-render-Cmfl_oW8.js +383 -0
  569. package/public/dist/assets/vendor-render-DSSkXCir.css +1 -0
  570. package/public/dist/assets/vendor-utils-C1xaEGmb.js +1 -0
  571. package/public/dist/assets/{vennDiagram-4TSXK5OY-fVndHq7T.js → vennDiagram-4TSXK5OY-ZagiHlwi.js} +3 -3
  572. package/public/dist/assets/{verilog-DMw8DKoT.js → verilog-CjI9Y6RI.js} +1 -1
  573. package/public/dist/assets/vhdl-kS471soi.js +1 -0
  574. package/public/dist/assets/wardley-WFR3VGLG-Cj73o4Iq.js +1 -0
  575. package/public/dist/assets/{wardleyDiagram-VM6X3IG4-CXIfS7ZF.js → wardleyDiagram-VM6X3IG4-BBAHdIq-.js} +35 -35
  576. package/public/dist/assets/wiki-link-resolver-CbJATnBn.js +22 -0
  577. package/public/dist/assets/wiki-link-suggestions-BcEfThgf.js +2 -0
  578. package/public/dist/assets/{xquery-CYbd_YmJ.js → xquery-BKJx4mf9.js} +1 -1
  579. package/public/dist/assets/{xychartDiagram-S5SC5T6Z-CqC-Uvuc.js → xychartDiagram-S5SC5T6Z-C43SenTd.js} +4 -4
  580. package/public/dist/assets/z80-Co3PbHdE.js +1 -0
  581. package/public/dist/index.html +4 -4
  582. package/public/dist/manager/index.html +3 -3
  583. package/public/index.html +3 -1
  584. package/public/js/api.ts +2 -2
  585. package/public/js/bounded-api.ts +49 -0
  586. package/public/js/features/activity-discovery.ts +142 -0
  587. package/public/js/features/activity-history.ts +334 -0
  588. package/public/js/features/activity-http.ts +17 -0
  589. package/public/js/features/activity-live.ts +330 -0
  590. package/public/js/features/activity-view.ts +218 -0
  591. package/public/js/features/chat-messages.ts +13 -4
  592. package/public/js/features/idb-cache.ts +37 -3
  593. package/public/js/features/message-history.ts +144 -16
  594. package/public/js/features/message-item-html.ts +7 -3
  595. package/public/js/features/native-request-bridge.ts +133 -0
  596. package/public/js/features/native-requests.ts +337 -0
  597. package/public/js/features/presentation-preference.ts +52 -0
  598. package/public/js/features/process-block.ts +35 -1
  599. package/public/js/features/process-log-adapter.ts +11 -1
  600. package/public/js/features/settings-core.ts +20 -1
  601. package/public/js/features/settings-types.ts +5 -1
  602. package/public/js/features/trace-drawer.ts +145 -43
  603. package/public/js/features/ui-status.ts +5 -0
  604. package/public/js/state.ts +3 -0
  605. package/public/js/ui.ts +41 -8
  606. package/public/js/virtual-scroll.ts +66 -4
  607. package/public/js/ws.ts +324 -29
  608. package/public/manager/src/settings/fields/SelectField.tsx +7 -5
  609. package/public/manager/src/settings/pages/Agent.tsx +3 -2
  610. package/public/manager/src/settings/pages/Display.tsx +100 -19
  611. package/public/manager/src/settings/pages/ModelProvider.tsx +133 -45
  612. package/public/manager/src/settings/pages/Permissions.tsx +18 -10
  613. package/public/manager/src/settings/pages/components/PerCliRow.tsx +42 -6
  614. package/public/manager/src/settings/pages/components/PiProfileDialog.tsx +59 -6
  615. package/public/manager/src/settings/pages/components/agent/PermissionQuickSection.tsx +9 -6
  616. package/public/manager/src/settings/pages/components/agent/agent-meta.ts +3 -0
  617. package/public/manager/src/settings/pages/components/runtime-transport-field.tsx +68 -0
  618. package/public/manager/src/settings-controls.css +43 -0
  619. package/public/manager/src/settings-shell.css +21 -1
  620. package/scripts/bundle-sidecar.sh +282 -37
  621. package/scripts/check-sidecar-smoke.mjs +250 -137
  622. package/scripts/sidecar-smoke-probe.mjs +171 -0
  623. package/public/dist/assets/AdvancedExport-tXydxVAh.js +0 -1
  624. package/public/dist/assets/Agent-CHaTUS7c.js +0 -1
  625. package/public/dist/assets/Browser-Dm5J1gXP.js +0 -1
  626. package/public/dist/assets/BrowserPanel-0b3deLGR.js +0 -3
  627. package/public/dist/assets/ChannelsDiscord-D6jmfyHe.js +0 -1
  628. package/public/dist/assets/ChannelsSlack-BcykASIN.js +0 -1
  629. package/public/dist/assets/ChannelsTelegram-XkNtVi8o.js +0 -1
  630. package/public/dist/assets/CodeCanvas-D-JH2Ikl.js +0 -3
  631. package/public/dist/assets/DesignPanel-SuUOoyQN.js +0 -2
  632. package/public/dist/assets/Display-B25HqCMH.js +0 -1
  633. package/public/dist/assets/DocPanel-qiqo6365.js +0 -1
  634. package/public/dist/assets/FolderPanel-BkggPdTP.js +0 -3
  635. package/public/dist/assets/HealthBadge-D7BQ-LHD.js +0 -1
  636. package/public/dist/assets/MarkdownRenderer-DZ-hWmCB.js +0 -15
  637. package/public/dist/assets/MarkdownRenderer-uwE0Wam5.js +0 -1
  638. package/public/dist/assets/MilkdownWysiwygEditor-DanGAZL5.js +0 -160
  639. package/public/dist/assets/ModelProvider-tL42E5dy.js +0 -1
  640. package/public/dist/assets/Network-ByNu-VCZ.js +0 -1
  641. package/public/dist/assets/NotesGraphWorkspace-Be6ctzYE.js +0 -1
  642. package/public/dist/assets/PanelLayoutProvider-B9fYsunp.js +0 -1
  643. package/public/dist/assets/Permissions-B-74b-nO.js +0 -1
  644. package/public/dist/assets/Permissions-x_6_kLC1.js +0 -1
  645. package/public/dist/assets/Profile-Bf9-QN2Y.js +0 -1
  646. package/public/dist/assets/Prompts-DGDw56NQ.js +0 -1
  647. package/public/dist/assets/TerminalPanel-DdE69MNo.css +0 -1
  648. package/public/dist/assets/TerminalPanel-gXH7bTXQ.js +0 -36
  649. package/public/dist/assets/api-DNnX8m0u.js +0 -1
  650. package/public/dist/assets/api-tVoG39dL.js +0 -1
  651. package/public/dist/assets/app-CXraFyoA.js +0 -55
  652. package/public/dist/assets/app-DuyLYRC6.css +0 -1
  653. package/public/dist/assets/architecture-7GRP2DOG-DxLizWvy.js +0 -1
  654. package/public/dist/assets/architectureDiagram-5GKGNRK7-BpxFEoT5.js +0 -36
  655. package/public/dist/assets/asciiarmor-7YwhfGDq.js +0 -1
  656. package/public/dist/assets/bgtask-badge-BjyAbBio.js +0 -1
  657. package/public/dist/assets/c4Diagram-7LVT6UL2-Bg0DdRYW.js +0 -38
  658. package/public/dist/assets/channel-BjgXjYj8.js +0 -1
  659. package/public/dist/assets/chunk-2Q5K7J3B-BClkI2P5.js +0 -1
  660. package/public/dist/assets/chunk-3NF5O7KM-DXOprKA_.js +0 -168
  661. package/public/dist/assets/chunk-CLGD4ZFX-B5zkZ8n6.js +0 -1
  662. package/public/dist/assets/chunk-GVQU2GXP-BlVn1fMW.js +0 -1
  663. package/public/dist/assets/chunk-H2I77ZZE-BXf4_vA2.js +0 -1
  664. package/public/dist/assets/chunk-L3NEJ4N5-FGXu31jw.js +0 -1
  665. package/public/dist/assets/chunk-LQGUR6SS-qUTD5FMI.js +0 -2
  666. package/public/dist/assets/chunk-OSK3NFVY-CrXjNywV.js +0 -10
  667. package/public/dist/assets/chunk-XXDRQBXY-DEwmqeYc.js +0 -1
  668. package/public/dist/assets/classDiagram-CYGNFDIV-hbaxbeYd.js +0 -1
  669. package/public/dist/assets/classDiagram-v2-TLXNO2FR-_OfX3b6Y.js +0 -1
  670. package/public/dist/assets/clike-BcV5UqGE.js +0 -1
  671. package/public/dist/assets/cmake-DhPsEu0W.js +0 -1
  672. package/public/dist/assets/cobol-BEekiT-v.js +0 -1
  673. package/public/dist/assets/coffeescript-Bgk4ZVWF.js +0 -1
  674. package/public/dist/assets/commonlisp-Dw4PRJwx.js +0 -1
  675. package/public/dist/assets/cose-bilkent-JH36ORCC-HnUYAhwC.js +0 -1
  676. package/public/dist/assets/crystal-CJ-iCD_G.js +0 -1
  677. package/public/dist/assets/css-BDUaiSMY.js +0 -1
  678. package/public/dist/assets/cynefin-OW5HDTMX-VXYSLvft.js +0 -1
  679. package/public/dist/assets/cynefinDiagram-5FMLGOSQ-D0dmg5fA.js +0 -62
  680. package/public/dist/assets/cytoscape.esm-CS3SmpXd.js +0 -321
  681. package/public/dist/assets/dagre-DDTOgfwg.js +0 -1
  682. package/public/dist/assets/dist-BCCaGGDY.js +0 -1
  683. package/public/dist/assets/dist-BPE4W9iX.js +0 -6
  684. package/public/dist/assets/dist-BQMBTYXL.js +0 -1
  685. package/public/dist/assets/dist-BaPGPaX4.js +0 -1
  686. package/public/dist/assets/dist-CBnlLSQZ.js +0 -1
  687. package/public/dist/assets/dist-CINTuhik.js +0 -2
  688. package/public/dist/assets/dist-CX7KjpF3.js +0 -39
  689. package/public/dist/assets/dist-CczLsP0o.js +0 -9
  690. package/public/dist/assets/dist-CdfDDy4r.js +0 -1
  691. package/public/dist/assets/dist-Cl_pRobr.js +0 -1
  692. package/public/dist/assets/dist-CruwQXwE.js +0 -1
  693. package/public/dist/assets/dist-CvE8Qa9r.js +0 -2
  694. package/public/dist/assets/dist-Cy3mcP1e.js +0 -1
  695. package/public/dist/assets/dist-CzCFEnHw.js +0 -1
  696. package/public/dist/assets/dist-D2h9T4I9.js +0 -13
  697. package/public/dist/assets/dist-DLOg6n0b.js +0 -1
  698. package/public/dist/assets/dist-DW0I56_o.js +0 -1
  699. package/public/dist/assets/dist-TombgBki.js +0 -11
  700. package/public/dist/assets/dist-hBRIxDzG.js +0 -1
  701. package/public/dist/assets/dist-z5Z70wW8.js +0 -1
  702. package/public/dist/assets/esm-CT1xxdH5.js +0 -4
  703. package/public/dist/assets/eventmodeling-NTZA5JFV-Csqcv5T_.js +0 -1
  704. package/public/dist/assets/fields-E1L8aEhU.js +0 -1
  705. package/public/dist/assets/flowDiagram-T62WH6J4-Del9dfOW.js +0 -1
  706. package/public/dist/assets/forth-DNnBFTm6.js +0 -1
  707. package/public/dist/assets/ganttDiagram-EL5Y4UJY-CezfIvti.js +0 -292
  708. package/public/dist/assets/gitGraph-4MIJSDKK-D_1mlgPm.js +0 -1
  709. package/public/dist/assets/graphlib-Cjg_soTo.js +0 -1
  710. package/public/dist/assets/groovy-Cm4gdIYU.js +0 -1
  711. package/public/dist/assets/idb-cache-B5PX63p7.js +0 -1
  712. package/public/dist/assets/idb-cache-lOntwU3S.js +0 -1
  713. package/public/dist/assets/iframe-renderer-BLP8Army.js +0 -1
  714. package/public/dist/assets/iframe-renderer-vuNrU6aI.js +0 -142
  715. package/public/dist/assets/info-A6RAGUB7-ce7F80NR.js +0 -1
  716. package/public/dist/assets/javascript-DD7UxIxH.js +0 -1
  717. package/public/dist/assets/javascript-DZFdG8BN.js +0 -1
  718. package/public/dist/assets/katex-BoGadFcG.js +0 -1
  719. package/public/dist/assets/manager-BspQvGAC.js +0 -13
  720. package/public/dist/assets/manager-Cmu0aKPb.css +0 -1
  721. package/public/dist/assets/memory-CRji7xpO.js +0 -1
  722. package/public/dist/assets/mermaid-loader-BcReSszT.js +0 -1
  723. package/public/dist/assets/mermaid.core-BJIXJ0Ir.js +0 -11
  724. package/public/dist/assets/mermaid.core-J6tiqiVK.js +0 -1
  725. package/public/dist/assets/message-history-C1ThtA4i.js +0 -1
  726. package/public/dist/assets/message-history-CXg12lcd.js +0 -1
  727. package/public/dist/assets/packet-AYTQ26CC-86oNpyWh.js +0 -1
  728. package/public/dist/assets/perl-DfpfXWOH.js +0 -1
  729. package/public/dist/assets/pi-settings-5HVg1sXJ.js +0 -1
  730. package/public/dist/assets/pie-WAS4IAKB-CMzmzfvT.js +0 -1
  731. package/public/dist/assets/preload-helper-DFYRRz9w.js +0 -1
  732. package/public/dist/assets/puppet-DnsvBfcg.js +0 -1
  733. package/public/dist/assets/python-mfoZJSDM.js +0 -1
  734. package/public/dist/assets/r-FO7GgXB8.js +0 -1
  735. package/public/dist/assets/radar-RG4KPBEZ-CsDBxCx4.js +0 -1
  736. package/public/dist/assets/railroad-74A4TZTK-B6s85Oul.js +0 -1
  737. package/public/dist/assets/railroad-abnf-HS5TGJTU-jnABoAnr.js +0 -1
  738. package/public/dist/assets/railroad-ebnf-LZEXJU2U-C_VWXbk9.js +0 -1
  739. package/public/dist/assets/railroad-peg-WCYAUIDC-y3jeoP_s.js +0 -1
  740. package/public/dist/assets/rolldown-runtime-XQCOJYun.js +0 -1
  741. package/public/dist/assets/ruby-Cg1fwXaw.js +0 -1
  742. package/public/dist/assets/scheme-DGFmPoR2.js +0 -1
  743. package/public/dist/assets/sequenceDiagram-WJ2MYXX4-BChOR6yh.js +0 -162
  744. package/public/dist/assets/settings-B2Ix6Y7k.js +0 -1
  745. package/public/dist/assets/settings-client-D9KY2Ufl.js +0 -1
  746. package/public/dist/assets/settings-core-Bkb0BoYY.js +0 -1
  747. package/public/dist/assets/settings-core-DWYQIIoe.js +0 -162
  748. package/public/dist/assets/sidebar-C8WKweCz.js +0 -49
  749. package/public/dist/assets/skills-QWf6vRIB.js +0 -12
  750. package/public/dist/assets/skills-bEGqvmiQ.js +0 -1
  751. package/public/dist/assets/slash-commands-BbA0Y1up.js +0 -1
  752. package/public/dist/assets/slash-commands-qD6yScsx.js +0 -20
  753. package/public/dist/assets/solr-BwGyzi2H.js +0 -1
  754. package/public/dist/assets/sql-B6Phvk1R.js +0 -1
  755. package/public/dist/assets/state-DxpgDKMO.js +0 -1
  756. package/public/dist/assets/stateDiagram-v2-IH3M54BS-BmdRqxzy.js +0 -1
  757. package/public/dist/assets/swimlanes-V6O3JKXN-Ckem4dQh.js +0 -1
  758. package/public/dist/assets/swimlanesDiagram-JKAHXJPX-DW_0PiOk.js +0 -8
  759. package/public/dist/assets/textile-xOWO1SH7.js +0 -1
  760. package/public/dist/assets/tiki-OG7n6UAo.js +0 -1
  761. package/public/dist/assets/timeline-definition-24CTP7MA-CJRsjFnd.js +0 -120
  762. package/public/dist/assets/toml-DkxT-aUR.js +0 -1
  763. package/public/dist/assets/trace-drawer-Ct8sP4j-.js +0 -15
  764. package/public/dist/assets/treeView-Q6P3EWNA-ChnMvz2a.js +0 -1
  765. package/public/dist/assets/treemap-WGGIJYW6-DZJ4jE42.js +0 -1
  766. package/public/dist/assets/turtle-CEzrJHdY.js +0 -1
  767. package/public/dist/assets/ui-BZxyyJUk.js +0 -1
  768. package/public/dist/assets/ui-xoW9x-Pz.js +0 -2
  769. package/public/dist/assets/vendor-render-BpGO1zp3.js +0 -383
  770. package/public/dist/assets/vendor-render-kIxHrxDV.css +0 -1
  771. package/public/dist/assets/vendor-utils-BUFU5ypz.js +0 -1
  772. package/public/dist/assets/vhdl-M4wLPuJt.js +0 -1
  773. package/public/dist/assets/wardley-WFR3VGLG-CGM_JiX0.js +0 -1
  774. package/public/dist/assets/wiki-link-resolver-BGpGBLMp.js +0 -22
  775. package/public/dist/assets/wiki-link-suggestions-cvpqJp6c.js +0 -2
  776. package/public/dist/assets/z80-nGsPT_fm.js +0 -1
  777. /package/public/dist/assets/{agent-meta-KPnVam9G.js → agent-meta-WqLP4HPi.js} +0 -0
  778. /package/public/dist/assets/{api-FOqKQ9fm.js → api-B9RiiOMM.js} +0 -0
  779. /package/public/dist/assets/{brainfuck-CM8jf4Gu.js → brainfuck-D5EjA2JK.js} +0 -0
  780. /package/public/dist/assets/{chunk-Y2CYZVJY-DlLjK0OJ.js → chunk-Y2CYZVJY-DsF7k-Jl.js} +0 -0
  781. /package/public/dist/assets/{clojure-XHu9GAjV.js → clojure-BflJGmDX.js} +0 -0
  782. /package/public/dist/assets/{cypher-CJ05ZgAu.js → cypher-p9eYesGn.js} +0 -0
  783. /package/public/dist/assets/{desktop-bridge-DtydAvqu.js → desktop-bridge-DbRfkg8l.js} +0 -0
  784. /package/public/dist/assets/{diff-BVcHwfdB.js → diff-ChtP43wD.js} +0 -0
  785. /package/public/dist/assets/{dtd-Bg0TgBY9.js → dtd-DTF72YNO.js} +0 -0
  786. /package/public/dist/assets/{ebnf-QSFUkOiT.js → ebnf-D4c0_ac3.js} +0 -0
  787. /package/public/dist/assets/{eiffel-S15DDWzw.js → eiffel-BEjRio4Q.js} +0 -0
  788. /package/public/dist/assets/{elm-B746ZFPi.js → elm-Cshzl8qu.js} +0 -0
  789. /package/public/dist/assets/{fcl-DjQMeb0v.js → fcl-ClOhbFR7.js} +0 -0
  790. /package/public/dist/assets/{folder-drag-payload-CJ0dxhZa.js → folder-drag-payload-BhV9yzhH.js} +0 -0
  791. /package/public/dist/assets/{fortran-yg6K9z9n.js → fortran-Bt6PBEDR.js} +0 -0
  792. /package/public/dist/assets/{gas-fbsH19hy.js → gas-BHEdbvp9.js} +0 -0
  793. /package/public/dist/assets/{gherkin-BCy9haeT.js → gherkin-oBAE_ms0.js} +0 -0
  794. /package/public/dist/assets/{haskell-Dq28dVw2.js → haskell-BRsoo5mP.js} +0 -0
  795. /package/public/dist/assets/{http-B3zr0y0o.js → http-CLVgA2GD.js} +0 -0
  796. /package/public/dist/assets/{idl-C9CL9hdG.js → idl-BUZw3wgd.js} +0 -0
  797. /package/public/dist/assets/{julia-CjwfSXBk.js → julia-CQfgDRfP.js} +0 -0
  798. /package/public/dist/assets/{livescript-vRjI6jFU.js → livescript-BXxG0Yva.js} +0 -0
  799. /package/public/dist/assets/{locale-DC-ZsWOf.js → locale-B9w_kUtW.js} +0 -0
  800. /package/public/dist/assets/{mathematica-DJZPFt8k.js → mathematica-u8YMmbU0.js} +0 -0
  801. /package/public/dist/assets/{mbox-CxBBnlIA.js → mbox-BEMVcqjs.js} +0 -0
  802. /package/public/dist/assets/{mirc-CBWc0vcU.js → mirc-C9zpzAZU.js} +0 -0
  803. /package/public/dist/assets/{mllike-DYddHpeS.js → mllike-B45xgp2S.js} +0 -0
  804. /package/public/dist/assets/{modelica-B94rrYMn.js → modelica-CqHI_q-D.js} +0 -0
  805. /package/public/dist/assets/{mscgen-D0PO0iPT.js → mscgen-qgSLujhx.js} +0 -0
  806. /package/public/dist/assets/{octave-DeJPElAr.js → octave-D2Q8cUp1.js} +0 -0
  807. /package/public/dist/assets/{oz-4dtXWqwe.js → oz-BwTct_5T.js} +0 -0
  808. /package/public/dist/assets/{pascal-TdeXcL-o.js → pascal-Dp_KdFgX.js} +0 -0
  809. /package/public/dist/assets/{path-utils-QbjARuCC.js → path-utils-B6vBr0DD.js} +0 -0
  810. /package/public/dist/assets/{pig-xQ4essgV.js → pig-AF4Hwhju.js} +0 -0
  811. /package/public/dist/assets/{properties-CrJLOvU2.js → properties-C357ku5U.js} +0 -0
  812. /package/public/dist/assets/{protobuf-BYv78GYU.js → protobuf-D1ij_kNL.js} +0 -0
  813. /package/public/dist/assets/{provider-icons-CXA2mnPO.js → provider-icons-Det0fC-4.js} +0 -0
  814. /package/public/dist/assets/{q-BrTIu4PU.js → q-B9NhS7L_.js} +0 -0
  815. /package/public/dist/assets/{rpm-D8Wbdep5.js → rpm-gpDK5sbt.js} +0 -0
  816. /package/public/dist/assets/{sas-Ch1GEx-n.js → sas-C2OyD2Y6.js} +0 -0
  817. /package/public/dist/assets/{settings-types-DPhhM-cj.js → settings-types-B09BmpYe.js} +0 -0
  818. /package/public/dist/assets/{smalltalk-ChbxX23N.js → smalltalk-BLp5-jwC.js} +0 -0
  819. /package/public/dist/assets/{sparql-D9wgprRx.js → sparql-Dz-mlCAC.js} +0 -0
  820. /package/public/dist/assets/{spreadsheet-BySehl32.js → spreadsheet-CTIncYxj.js} +0 -0
  821. /package/public/dist/assets/{swift-DZwxTp-L.js → swift-DKB6_1j6.js} +0 -0
  822. /package/public/dist/assets/{tcl-BSOjIY_8.js → tcl-BGfruO1u.js} +0 -0
  823. /package/public/dist/assets/{tiddlywiki-B8jhOxrf.js → tiddlywiki-VlUiK86J.js} +0 -0
  824. /package/public/dist/assets/{troff-vE5gOX7Y.js → troff-C2dAgh7P.js} +0 -0
  825. /package/public/dist/assets/{vb-Cii5IQTv.js → vb-BthdM_4N.js} +0 -0
  826. /package/public/dist/assets/{vbscript-DcZWGZ_S.js → vbscript-D9f6rSsU.js} +0 -0
  827. /package/public/dist/assets/{velocity-BEag7EnK.js → velocity-CqftRsjg.js} +0 -0
  828. /package/public/dist/assets/{vendor-icons-Begb5v1n.js → vendor-icons-CNcMX6Ac.js} +0 -0
  829. /package/public/dist/assets/{w3c-keyname-hgmz1BF7.js → w3c-keyname-BOAvb0qz.js} +0 -0
  830. /package/public/dist/assets/{webidl-CjehKbx5.js → webidl-D5jiJvOU.js} +0 -0
  831. /package/public/dist/assets/{yacas-ClBNsli2.js → yacas-CXXgtw0p.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import fs from 'node:fs';
2
- import { join } from 'node:path';
2
+ import { isAbsolute, join } from 'node:path';
3
3
  import { detectCliBinary } from '../core/cli-detect.js';
4
4
  import { resolveWindowsLaunchSpec, launchArgv } from '../core/windows-launch-spec.js';
5
5
  import { decideShellFallback } from '../core/windows-shell-fallback.js';
@@ -11,6 +11,139 @@ import { probeOpenCodexEndpointModels } from '../cli/opencodex-models.js';
11
11
  import { launchSpec } from '../core/exec-name.js';
12
12
  import { mergeEnvWindowsSafe } from './spawn-env.js';
13
13
  import { createTextStreamReader } from './stream-text.js';
14
+ import { PiTurnAccumulator, PiRuntimeError, piSupportsSettled } from './runtime/pi-turn.js';
15
+ const PI_VERSION_TIMEOUT_MS = 15_000;
16
+ const PI_VERSION_OUTPUT_BYTES = 64 * 1024;
17
+ const PI_CLEANUP_TIMEOUT_MS = 2_000;
18
+ const PI_KILL_GRACE_MS = 1_000;
19
+ const PI_EXECUTION_CANCEL = Symbol('Pi execution cancellation');
20
+ /** A recognized child stays handled even after closure; never fall back to stale PID signalling. */
21
+ export function cancelPiExecution(child) {
22
+ const cancel = Reflect.get(child, PI_EXECUTION_CANCEL);
23
+ if (typeof cancel !== 'function')
24
+ return false;
25
+ cancel();
26
+ return true;
27
+ }
28
+ /** Per execution, never a PID registry. A receipt is evidence, not cwd ownership. */
29
+ function createPiExecutionCleanup() {
30
+ const handles = {};
31
+ let started = false, sealed = false, decided = false;
32
+ let receipt;
33
+ let deadline;
34
+ let escalation;
35
+ let gentle;
36
+ let resolve;
37
+ const cleanup = new Promise(yes => { resolve = yes; });
38
+ const signal = (entry, name) => {
39
+ if (!entry || entry.retired || entry.child.exitCode !== null || entry.child.signalCode !== null)
40
+ return false;
41
+ if (entry.sent.has(name) || entry.sent.has('SIGKILL'))
42
+ return entry.child.killed;
43
+ entry.sent.add(name);
44
+ try {
45
+ const sent = entry.kill(name);
46
+ if (!sent)
47
+ entry.retired = true;
48
+ return sent;
49
+ }
50
+ catch {
51
+ entry.retired = true;
52
+ return false;
53
+ }
54
+ };
55
+ const groupGone = (entry) => {
56
+ if (!entry?.ownGroup || !entry.child.pid)
57
+ return true;
58
+ try {
59
+ process.kill(-entry.child.pid, 0);
60
+ return false;
61
+ }
62
+ catch (error) {
63
+ return error.code === 'ESRCH';
64
+ }
65
+ };
66
+ const decide = (expired = false) => {
67
+ if (!started || !sealed || decided)
68
+ return;
69
+ if (!expired && Object.values(handles).some(entry => !entry.closed))
70
+ return;
71
+ decided = true;
72
+ clearTimeout(deadline);
73
+ clearTimeout(escalation);
74
+ clearTimeout(gentle);
75
+ const state = (kind) => !handles[kind] ? 'not-started'
76
+ : handles[kind].closed ? 'closed' : 'unconfirmed';
77
+ const rpc = state('rpc'), version = state('version');
78
+ const descendantsGone = !handles.version?.closed || groupGone(handles.version);
79
+ const safe = rpc !== 'unconfirmed' && version !== 'unconfirmed' && descendantsGone;
80
+ // Snapshot BEFORE detaching held pipes; induced close cannot upgrade it.
81
+ receipt = Object.freeze({ rpc, version, cwdDisposition: safe ? 'removable' : 'retain',
82
+ reason: safe ? null : !descendantsGone ? 'descendants-unconfirmed' : 'owned-close-unconfirmed' });
83
+ resolve(receipt);
84
+ if (!safe)
85
+ for (const entry of Object.values(handles)) {
86
+ if (!entry.closed) {
87
+ entry.child.stdout?.destroy();
88
+ entry.child.stderr?.destroy();
89
+ entry.child.unref();
90
+ }
91
+ }
92
+ };
93
+ return {
94
+ cleanup,
95
+ get receipt() { return receipt; },
96
+ killRpc: (name) => signal(handles.rpc, name),
97
+ track(kind, child, ownGroup = false) {
98
+ const entry = { child, retired: false, closed: false, ownGroup,
99
+ kill: child.kill.bind(child), sent: new Set() };
100
+ handles[kind] = entry;
101
+ child.once('exit', () => { entry.retired = true; });
102
+ child.once('error', () => { entry.retired = true; });
103
+ child.once('close', () => { entry.retired = true; entry.closed = true; decide(); });
104
+ },
105
+ versionGroupGone: () => groupGone(handles.version),
106
+ seal() { sealed = true; decide(); },
107
+ teardown(force = false) {
108
+ if (!started) {
109
+ started = true;
110
+ deadline = setTimeout(() => decide(true), PI_CLEANUP_TIMEOUT_MS);
111
+ escalation = setTimeout(() => {
112
+ for (const entry of Object.values(handles))
113
+ signal(entry, 'SIGKILL');
114
+ }, PI_KILL_GRACE_MS);
115
+ try {
116
+ handles.rpc?.child.stdin?.end();
117
+ }
118
+ catch { /* retained handle remains owned */ }
119
+ gentle = setTimeout(() => signal(handles.rpc, 'SIGTERM'), 750);
120
+ }
121
+ if (!decided) {
122
+ signal(handles.version, 'SIGTERM');
123
+ if (force)
124
+ signal(handles.rpc, 'SIGTERM');
125
+ decide();
126
+ }
127
+ return cleanup;
128
+ },
129
+ };
130
+ }
131
+ function notifyPiRawRecord(observer, record) {
132
+ try {
133
+ observer?.(record);
134
+ }
135
+ catch {
136
+ console.warn('[jaw:pi] raw activity observer failed');
137
+ }
138
+ }
139
+ function notifyPiEvent(observer, event) {
140
+ try {
141
+ observer?.(event);
142
+ }
143
+ catch {
144
+ console.warn('[jaw:pi] semantic observer failed');
145
+ }
146
+ }
14
147
  const PI_PACKAGE = '@earendil-works/pi-coding-agent';
15
148
  const LOCAL_HOST_RE = /^(localhost|127\.0\.0\.1|\[?::1\]?)$/i;
16
149
  const PI_RPC_CAPABILITY_SCHEMA = 1;
@@ -211,17 +344,11 @@ export function resolvePiCommand(env = process.env) {
211
344
  source: 'npm-exec',
212
345
  };
213
346
  }
214
- function resolvePiCommandIdentity(command, env = process.env) {
215
- const spec = launchSpec(command.command, [...command.baseArgs, '--version'], process.platform, env);
216
- const result = spawnSync(spec.file, spec.args, {
217
- encoding: 'utf8',
218
- env,
219
- timeout: 15_000,
220
- });
347
+ function resolvePiCommandIdentity(command, result) {
221
348
  const version = `${result.stdout || ''}\n${result.stderr || ''}`.trim() || `exit:${String(result.status)}`;
222
349
  return JSON.stringify({ source: command.source, command: command.command, baseArgs: command.baseArgs, version });
223
350
  }
224
- function loadPiAbortEffective(profileId, command) {
351
+ function loadPiAbortEffective(profileId, commandId) {
225
352
  try {
226
353
  const raw = JSON.parse(fs.readFileSync(join(JAW_HOME, 'pi', 'rpc-capabilities.json'), 'utf8'));
227
354
  if (!raw || typeof raw !== 'object' || Array.isArray(raw))
@@ -230,7 +357,7 @@ function loadPiAbortEffective(profileId, command) {
230
357
  if (capability['schemaVersion'] !== PI_RPC_CAPABILITY_SCHEMA
231
358
  || capability['abortEffective'] !== true
232
359
  || capability['profileId'] !== profileId
233
- || capability['commandId'] !== resolvePiCommandIdentity(command))
360
+ || capability['commandId'] !== commandId)
234
361
  return false;
235
362
  const probedAt = Date.parse(typeof capability['probedAt'] === 'string' ? capability['probedAt'] : '');
236
363
  return Number.isFinite(probedAt)
@@ -288,6 +415,93 @@ function resolvePiSpawn(command, args) {
288
415
  }
289
416
  return { command, args, useShell: wantsShell, envDelta: {} };
290
417
  }
418
+ function capturePiLaunchIdentity(command, launch) {
419
+ const files = [...new Set([command.command, launch.command].filter(isAbsolute))];
420
+ const snapshot = (file) => {
421
+ try {
422
+ const stat = fs.statSync(file, { bigint: true });
423
+ return [fs.realpathSync(file), stat.dev, stat.ino, stat.size, stat.mtimeNs, stat.ctimeNs].map(String).join('\0');
424
+ }
425
+ catch (error) {
426
+ if (error.code === 'ENOENT')
427
+ return null;
428
+ throw error;
429
+ }
430
+ };
431
+ const before = files.map(snapshot);
432
+ return () => files.every((file, index) => snapshot(file) === before[index]);
433
+ }
434
+ function startPiVersionProbe(launch, cwd, env, owner, identityCurrent) {
435
+ let settled = false, timer;
436
+ let resolve, reject;
437
+ const done = new Promise((yes, no) => { resolve = yes; reject = no; });
438
+ const fail = (reason) => {
439
+ if (settled)
440
+ return;
441
+ settled = true;
442
+ clearTimeout(timer);
443
+ reject(new Error(reason));
444
+ };
445
+ try {
446
+ const child = spawn(launch.command, launch.args, { cwd, env, stdio: ['ignore', 'pipe', 'pipe'],
447
+ detached: process.platform !== 'win32', ...(launch.useShell ? { shell: true } : {}) });
448
+ owner.track('version', child, process.platform !== 'win32');
449
+ const outDecoder = new StringDecoder('utf8'), errDecoder = new StringDecoder('utf8');
450
+ let stdout = '', stderr = '', outBytes = 0, errBytes = 0;
451
+ timer = setTimeout(() => fail('pi capability probe timed out'), PI_VERSION_TIMEOUT_MS);
452
+ child.once('error', () => fail('pi capability probe spawn failed'));
453
+ child.stdout?.once('error', () => fail('pi capability stdout failed'));
454
+ child.stderr?.once('error', () => fail('pi capability stderr failed'));
455
+ child.stdout?.on('data', (chunk) => {
456
+ if (settled)
457
+ return;
458
+ outBytes += chunk.length;
459
+ if (outBytes > PI_VERSION_OUTPUT_BYTES) {
460
+ fail('pi capability stdout exceeded limit');
461
+ return;
462
+ }
463
+ stdout += outDecoder.write(chunk);
464
+ });
465
+ child.stderr?.on('data', (chunk) => {
466
+ if (settled)
467
+ return;
468
+ errBytes += chunk.length;
469
+ if (errBytes > PI_VERSION_OUTPUT_BYTES) {
470
+ fail('pi capability stderr exceeded limit');
471
+ return;
472
+ }
473
+ stderr += errDecoder.write(chunk);
474
+ });
475
+ child.once('close', (status, signal) => {
476
+ if (settled)
477
+ return;
478
+ try {
479
+ if (status === null || signal !== null || !owner.versionGroupGone()) {
480
+ fail('pi capability probe close unconfirmed');
481
+ return;
482
+ }
483
+ if (!identityCurrent()) {
484
+ fail('pi capability command changed during preparation');
485
+ return;
486
+ }
487
+ stdout += outDecoder.end();
488
+ stderr += errDecoder.end();
489
+ settled = true;
490
+ clearTimeout(timer);
491
+ resolve({ stdout, stderr, status });
492
+ }
493
+ catch {
494
+ fail('pi capability command identity unavailable');
495
+ }
496
+ });
497
+ }
498
+ catch {
499
+ fail('pi capability probe setup failed');
500
+ }
501
+ // A factory can be closed before a caller submits its first prompt.
502
+ void done.catch(() => { });
503
+ return { done, cancel: () => fail('pi capability probe cancelled') };
504
+ }
291
505
  export function listPiModels(piInput, profileId, options = {}) {
292
506
  const dir = ensurePiRuntimeConfig(piInput, profileId, options.effort || '', options.root);
293
507
  const cmd = resolvePiCommand();
@@ -433,7 +647,8 @@ function extractPiSessionId(obj) {
433
647
  const PI_PERSISTENT_STDERR_MAX_CHARS = 4000;
434
648
  export function spawnPersistentPiRpc(profile, pi, options) {
435
649
  const dir = ensurePiRuntimeConfig(pi, profile.id, options.effort || '', options.root);
436
- const cmd = resolvePiCommand();
650
+ const inherited = { ...process.env }, cwd = options.cwd, profileId = profile.id, initialEffort = options.effort;
651
+ const cmd = resolvePiCommand(inherited);
437
652
  const args = [
438
653
  ...cmd.baseArgs,
439
654
  '--mode', 'rpc',
@@ -445,12 +660,18 @@ export function spawnPersistentPiRpc(profile, pi, options) {
445
660
  ...(options.sessionId ? ['--session-id', options.sessionId] : []),
446
661
  ];
447
662
  const launch = resolvePiSpawn(cmd.command, args);
663
+ const versionLaunch = resolvePiSpawn(cmd.command, [...cmd.baseArgs, '--version']);
664
+ const identityCurrent = capturePiLaunchIdentity(cmd, launch);
665
+ const rpcEnv = mergeEnvWindowsSafe({ ...inherited, PI_CODING_AGENT_DIR: dir }, launch.envDelta);
666
+ const versionEnv = mergeEnvWindowsSafe({ ...inherited, PI_CODING_AGENT_DIR: dir }, versionLaunch.envDelta);
667
+ const owner = createPiExecutionCleanup();
448
668
  const child = spawn(launch.command, launch.args, {
449
- cwd: options.cwd,
450
- env: mergeEnvWindowsSafe({ ...process.env, PI_CODING_AGENT_DIR: dir }, launch.envDelta),
669
+ cwd,
670
+ env: rpcEnv,
451
671
  stdio: ['pipe', 'pipe', 'pipe'],
452
672
  ...(launch.useShell ? { shell: true } : {}),
453
673
  });
674
+ owner.track('rpc', child);
454
675
  const decoder = new StringDecoder('utf8');
455
676
  let buffer = '';
456
677
  let stderr = '';
@@ -458,7 +679,12 @@ export function spawnPersistentPiRpc(profile, pi, options) {
458
679
  const stderrReader = createTextStreamReader();
459
680
  let activePrompt = null;
460
681
  let abortWait = null;
461
- let closed = false;
682
+ let closed = false, closing = false, poisoned = false, stopRequested = false, rpcExited = false;
683
+ let settledProtocol = false, capabilityReady = false, abortEffective = false;
684
+ let version;
685
+ let prepared;
686
+ let closePromise;
687
+ let failureClaim;
462
688
  const write = (type, fields = {}) => {
463
689
  if (!session.alive || !child.stdin.writable)
464
690
  throw new Error('pi rpc session is not writable');
@@ -475,17 +701,26 @@ export function spawnPersistentPiRpc(profile, pi, options) {
475
701
  wait.resolve();
476
702
  };
477
703
  const dispatchLine = (line) => {
704
+ if (closing || poisoned || owner.receipt?.rpc === 'unconfirmed')
705
+ return;
478
706
  let raw;
479
707
  try {
480
708
  raw = JSON.parse(line);
481
709
  }
482
710
  catch {
483
- console.warn(`[jaw:pi] JSON parse failed: ${line.slice(0, 200)}`);
711
+ console.warn(`[jaw:pi] JSON parse failed (${line.length} chars; payload omitted)`);
484
712
  return;
485
713
  }
486
714
  if (!raw || typeof raw !== 'object' || Array.isArray(raw))
487
715
  return;
488
716
  const record = raw;
717
+ const isAbortResponse = abortWait && record['id'] === abortWait.id
718
+ && record['type'] === 'response' && record['command'] === 'abort';
719
+ // The old prompt may have ended and a newer one may already be active.
720
+ // Its abort acknowledgement still belongs to the captured abort owner.
721
+ // A newer prompt with no observer deliberately owns (and drops) its raw records.
722
+ notifyPiRawRecord(isAbortResponse ? abortWait?.onRawRecord
723
+ : activePrompt ? activePrompt.turn ? activePrompt.onRawRecord : undefined : abortWait?.onRawRecord, raw);
489
724
  if (abortWait && record['id'] === abortWait.id && record['type'] === 'response' && record['command'] === 'abort') {
490
725
  if (record['success'] === true)
491
726
  abortWait.accepted = true;
@@ -509,32 +744,47 @@ export function spawnPersistentPiRpc(profile, pi, options) {
509
744
  || (stateName !== '' && !['running', 'active', 'generating'].includes(stateName)));
510
745
  if (event.sessionId) {
511
746
  session.sessionId = event.sessionId;
512
- activePrompt?.onEvent?.({ kind: 'session', sessionId: event.sessionId });
747
+ notifyPiEvent(activePrompt?.onEvent, { kind: 'session', sessionId: event.sessionId });
513
748
  }
514
- if (event.tool)
515
- activePrompt?.onEvent?.({ kind: 'tool', ...event.tool });
516
- if (event.thinking)
517
- activePrompt?.onEvent?.({ kind: 'thinking', text: event.thinking });
518
- if (event.text && activePrompt && !(event.done && activePrompt.text)) {
519
- activePrompt.text += event.text;
520
- activePrompt.onEvent?.({ kind: 'text', text: event.text });
749
+ if (event.tool && activePrompt?.turn)
750
+ notifyPiEvent(activePrompt.onEvent, { kind: 'tool', ...event.tool });
751
+ if (event.thinking && activePrompt?.turn)
752
+ notifyPiEvent(activePrompt.onEvent, { kind: 'thinking', text: event.thinking });
753
+ if (activePrompt?.turn && record['type'] === 'response' && record['command'] === 'prompt'
754
+ && record['id'] === activePrompt.requestId && record['success'] === false) {
755
+ const message = typeof record['error'] === 'string' ? record['error']
756
+ : trimString(record['error']?.['message']);
757
+ rejectOutstanding(new Error(message || 'pi rpc prompt rejected'));
758
+ return;
521
759
  }
522
- if (event.done || (abortWait && nonRunning)) {
523
- if (activePrompt) {
760
+ const accepted = activePrompt?.turn?.observe(record);
761
+ if (accepted?.text)
762
+ notifyPiEvent(activePrompt?.onEvent, { kind: 'text', text: accepted.text });
763
+ const abortNonRunning = Boolean(isAbortResponse) && nonRunning && !abortWait?.terminal;
764
+ const terminal = accepted?.done || (capabilityReady && !activePrompt && record['type'] === (settledProtocol ? 'agent_settled' : 'agent_end'));
765
+ if (terminal || abortNonRunning) {
766
+ if (activePrompt?.turn) {
767
+ const turn = activePrompt.turn;
524
768
  const prompt = activePrompt;
525
769
  activePrompt = null;
526
- prompt.resolve({ text: prompt.text, stderr: stderr.slice(prompt.stderrStart) });
770
+ const runtimeOutcome = turn.snapshot(abortNonRunning ? 'stopped' : undefined);
771
+ const result = { text: runtimeOutcome.partialText, stderr: stderr.slice(prompt.stderrStart), runtimeOutcome };
772
+ if (rpcExited)
773
+ void owner.cleanup.then(() => prompt.resolve(result));
774
+ else
775
+ prompt.resolve(result);
527
776
  }
528
777
  if (abortWait)
529
778
  abortWait.terminal = true;
530
779
  }
531
780
  settleAbort();
532
781
  };
533
- const rejectOutstanding = (error) => {
782
+ const rejectOutstanding = (error, status = child.killed ? 'stopped' : 'error') => {
534
783
  if (activePrompt) {
535
784
  const prompt = activePrompt;
536
785
  activePrompt = null;
537
- prompt.reject(error);
786
+ prompt.reject(new PiRuntimeError(error, prompt.turn?.snapshot(status)
787
+ ?? { status, finalText: null, partialText: '' }));
538
788
  }
539
789
  if (abortWait) {
540
790
  const wait = abortWait;
@@ -543,10 +793,49 @@ export function spawnPersistentPiRpc(profile, pi, options) {
543
793
  wait.reject(error);
544
794
  }
545
795
  };
796
+ const claimOutstanding = (status) => {
797
+ const prompt = activePrompt, abort = abortWait;
798
+ activePrompt = null;
799
+ abortWait = null;
800
+ if (abort)
801
+ clearTimeout(abort.timer);
802
+ const outcome = prompt?.turn?.snapshot(status) ?? { status, finalText: null, partialText: '' };
803
+ return (error) => {
804
+ prompt?.reject(new PiRuntimeError(error, outcome));
805
+ abort?.reject(error);
806
+ };
807
+ };
808
+ const failSession = (error, stopped = stopRequested || child.killed) => {
809
+ if (failureClaim)
810
+ return;
811
+ failureClaim = { error, stopped };
812
+ poisoned = true;
813
+ closing = true;
814
+ abortEffective = false;
815
+ const publish = claimOutstanding(stopped ? 'stopped' : 'error');
816
+ version?.cancel();
817
+ void owner.teardown(true).then(() => publish(error));
818
+ };
819
+ const closeSession = (force) => {
820
+ stopRequested = true;
821
+ closing = true;
822
+ abortEffective = false;
823
+ const publish = closePromise ? null : claimOutstanding('stopped');
824
+ version?.cancel();
825
+ const cleanup = owner.teardown(force);
826
+ closePromise ??= cleanup.then(receipt => {
827
+ publish?.(new Error(receipt.rpc === 'closed'
828
+ ? `pi rpc session exited with code ${String(child.exitCode)}` : 'pi rpc session cleanup unconfirmed'));
829
+ if (receipt.cwdDisposition === 'retain')
830
+ throw new Error('pi execution cleanup unconfirmed');
831
+ });
832
+ void closePromise.catch(() => { console.warn('[jaw:pi] execution cleanup unconfirmed'); });
833
+ return closePromise;
834
+ };
546
835
  const session = {
547
836
  child,
548
- get alive() { return !closed && child.exitCode == null && !child.killed; },
549
- abortEffective: loadPiAbortEffective(profile.id, cmd),
837
+ get alive() { return !closed && !closing && !poisoned && child.exitCode == null && !child.killed; },
838
+ get abortEffective() { return capabilityReady && !closing && !poisoned && abortEffective; },
550
839
  sessionId: options.sessionId || null,
551
840
  sendPrompt(message, opts = {}) {
552
841
  if (activePrompt)
@@ -560,21 +849,34 @@ export function spawnPersistentPiRpc(profile, pi, options) {
560
849
  // A head-only cap without this reset would freeze stderr.length
561
850
  // and make every later slice() return ''.
562
851
  stderr = '';
563
- activePrompt = { text: '', stderrStart: stderr.length, onEvent: opts.onEvent, resolve, reject };
564
- try {
565
- if (opts.effort)
566
- write('set_thinking_level', { level: opts.effort });
567
- write('prompt', { message });
568
- }
569
- catch (error) {
570
- activePrompt = null;
571
- reject(error);
572
- }
852
+ const effort = opts.effort;
853
+ const pending = { turn: null, requestId: 0, stderrStart: stderr.length,
854
+ onEvent: opts.onEvent, onRawRecord: opts.onRawRecord, resolve, reject };
855
+ activePrompt = pending;
856
+ void prepared.then(() => {
857
+ if (activePrompt !== pending || !session.alive)
858
+ return;
859
+ pending.turn = new PiTurnAccumulator(settledProtocol);
860
+ try {
861
+ if (effort)
862
+ write('set_thinking_level', { level: effort });
863
+ pending.requestId = write('prompt', { message });
864
+ }
865
+ catch (error) {
866
+ failSession(error);
867
+ }
868
+ }, () => { });
573
869
  });
574
870
  },
575
871
  abort() {
576
872
  if (!activePrompt)
577
873
  return Promise.resolve();
874
+ if (!activePrompt.turn) {
875
+ const pending = activePrompt;
876
+ activePrompt = null;
877
+ pending.resolve({ text: '', stderr: '', runtimeOutcome: { status: 'stopped', finalText: null, partialText: '' } });
878
+ return Promise.resolve();
879
+ }
578
880
  if (abortWait)
579
881
  return Promise.reject(new Error('pi rpc abort already active'));
580
882
  return new Promise((resolve, reject) => {
@@ -592,25 +894,11 @@ export function spawnPersistentPiRpc(profile, pi, options) {
592
894
  abortWait = null;
593
895
  reject(new Error('pi rpc abort timed out'));
594
896
  }, PI_RPC_ABORT_TIMEOUT_MS);
595
- abortWait = { id, accepted: false, terminal: false, resolve, reject, timer };
897
+ abortWait = { id, onRawRecord: activePrompt?.onRawRecord, accepted: false, terminal: false, resolve, reject, timer };
596
898
  });
597
899
  },
598
- close() {
599
- if (closed)
600
- return;
601
- try {
602
- child.stdin.end();
603
- }
604
- catch { /* already closed */ }
605
- setTimeout(() => {
606
- if (child.exitCode == null && !child.killed)
607
- child.kill('SIGTERM');
608
- }, 750).unref();
609
- },
610
- kill() {
611
- if (child.exitCode == null && !child.killed)
612
- child.kill('SIGTERM');
613
- },
900
+ close: () => closeSession(false),
901
+ kill() { void closeSession(true).catch(() => { }); },
614
902
  };
615
903
  child.stdout?.on('data', (chunk) => {
616
904
  buffer += decoder.write(chunk);
@@ -633,22 +921,47 @@ export function spawnPersistentPiRpc(profile, pi, options) {
633
921
  if (stderr.length < PI_PERSISTENT_STDERR_MAX_CHARS)
634
922
  stderr += stderrReader.write(chunk);
635
923
  });
636
- child.on('error', (error) => rejectOutstanding(error));
924
+ child.on('error', (error) => failSession(error));
925
+ child.stdin?.on('error', error => failSession(error));
926
+ child.stdout?.on('error', error => failSession(error));
927
+ child.stderr?.on('error', error => failSession(error));
928
+ child.once('exit', (code, signal) => {
929
+ rpcExited = true;
930
+ abortEffective = false;
931
+ version?.cancel();
932
+ void owner.teardown().then(() => {
933
+ failSession(new Error(`pi rpc session exited with code ${String(code)}`), Boolean(signal) || child.killed);
934
+ });
935
+ });
637
936
  child.on('close', (code) => {
638
937
  closed = true;
639
938
  buffer += decoder.end();
640
- if (buffer.trim())
939
+ if (buffer.trim() && owner.receipt?.rpc !== 'unconfirmed')
641
940
  dispatchLine(buffer.trim());
642
- rejectOutstanding(new Error(`pi rpc session exited with code ${String(code)}`));
941
+ failSession(new Error(`pi rpc session exited with code ${String(code)}`));
643
942
  });
644
- write('get_state');
645
- if (options.effort)
646
- write('set_thinking_level', { level: options.effort });
943
+ version = startPiVersionProbe(versionLaunch, cwd, versionEnv, owner, identityCurrent);
944
+ prepared = version.done.then(observation => {
945
+ if (!session.alive)
946
+ throw new Error('pi rpc session closed during preparation');
947
+ settledProtocol = observation.status === 0 && piSupportsSettled(observation.stdout);
948
+ abortEffective = observation.status === 0 && loadPiAbortEffective(profileId, resolvePiCommandIdentity(cmd, observation));
949
+ capabilityReady = true;
950
+ write('get_state');
951
+ if (initialEffort)
952
+ write('set_thinking_level', { level: initialEffort });
953
+ }).catch(error => { failSession(error); throw error; });
954
+ void prepared.catch(() => { });
955
+ owner.seal();
647
956
  return session;
648
957
  }
649
958
  export function spawnPiRpc(profile, pi, options) {
650
959
  const dir = ensurePiRuntimeConfig(pi, profile.id, options.effort || '', options.root);
651
- const cmd = resolvePiCommand();
960
+ const inherited = { ...process.env }, cwd = options.cwd, effort = options.effort;
961
+ const onEvent = options.onEvent, onRawRecord = options.onRawRecord;
962
+ const fullPrompt = options.sysPrompt ? `${options.sysPrompt}\n\n${options.prompt}` : options.prompt;
963
+ const hasHistory = fullPrompt.includes('[Recent Context]');
964
+ const cmd = resolvePiCommand(inherited);
652
965
  const args = [
653
966
  ...cmd.baseArgs,
654
967
  '--mode', 'rpc',
@@ -660,64 +973,90 @@ export function spawnPiRpc(profile, pi, options) {
660
973
  ...(options.sessionId ? ['--session-id', options.sessionId] : []),
661
974
  ];
662
975
  const launch = resolvePiSpawn(cmd.command, args);
976
+ const versionLaunch = resolvePiSpawn(cmd.command, [...cmd.baseArgs, '--version']);
977
+ const identityCurrent = capturePiLaunchIdentity(cmd, launch);
978
+ const rpcEnv = mergeEnvWindowsSafe({ ...inherited, PI_CODING_AGENT_DIR: dir }, launch.envDelta);
979
+ const versionEnv = mergeEnvWindowsSafe({ ...inherited, PI_CODING_AGENT_DIR: dir }, versionLaunch.envDelta);
980
+ const owner = createPiExecutionCleanup();
663
981
  const child = spawn(launch.command, launch.args, {
664
- cwd: options.cwd,
665
- env: mergeEnvWindowsSafe({ ...process.env, PI_CODING_AGENT_DIR: dir }, launch.envDelta),
982
+ cwd,
983
+ env: rpcEnv,
666
984
  stdio: ['pipe', 'pipe', 'pipe'],
667
985
  ...(launch.useShell ? { shell: true } : {}),
668
986
  });
987
+ owner.track('rpc', child);
669
988
  const decoder = new StringDecoder('utf8');
670
989
  let buffer = '';
671
990
  let stderr = '';
672
- let text = '';
673
991
  const stderrReader = createTextStreamReader();
674
992
  let sessionId = null;
675
- let doneSettled = false;
993
+ let doneSettled = false, promptDispatched = false;
994
+ let turn = null;
995
+ let version;
676
996
  let seq = 1;
997
+ let promptId = 0;
998
+ let finish;
677
999
  const done = new Promise((resolve, reject) => {
678
- const finish = (code = 0) => {
1000
+ finish = (code = 0, status, error) => {
679
1001
  if (doneSettled)
680
1002
  return;
681
1003
  doneSettled = true;
682
- try {
683
- child.stdin.end();
684
- }
685
- catch { /* already closed */ }
686
- setTimeout(() => {
687
- if (!child.killed && child.exitCode == null)
688
- child.kill('SIGTERM');
689
- }, 750);
690
- resolve({ text, code, sessionId, stderr });
1004
+ const runtimeOutcome = turn?.snapshot(status) ?? { status: status ?? 'error', finalText: null, partialText: '' };
1005
+ const selected = { text: runtimeOutcome.partialText, code, sessionId, stderr, runtimeOutcome };
1006
+ version?.cancel();
1007
+ void owner.teardown(status === 'error' || status === 'stopped').then(() => {
1008
+ if (error)
1009
+ reject(new PiRuntimeError(error, runtimeOutcome));
1010
+ else
1011
+ resolve(selected);
1012
+ });
691
1013
  };
692
1014
  let parseFailures = 0;
693
1015
  const dispatchLine = (line) => {
1016
+ if (doneSettled || owner.receipt?.rpc === 'unconfirmed')
1017
+ return;
694
1018
  let parsed;
695
1019
  try {
696
1020
  parsed = JSON.parse(line);
697
1021
  }
698
1022
  catch {
699
1023
  parseFailures++;
700
- console.warn(`[jaw:pi] JSON parse failed (${parseFailures}): ${line.slice(0, 200)}`);
1024
+ console.warn(`[jaw:pi] JSON parse failed (${parseFailures}; ${line.length} chars; payload omitted)`);
1025
+ return;
1026
+ }
1027
+ if (!promptDispatched || !turn)
1028
+ return;
1029
+ notifyPiRawRecord(onRawRecord, parsed);
1030
+ const record = parsed && typeof parsed === 'object' ? parsed : {};
1031
+ if (record['type'] === 'response' && record['command'] === 'prompt'
1032
+ && record['id'] === promptId && record['success'] === false) {
1033
+ finish(1, 'error');
701
1034
  return;
702
1035
  }
703
1036
  const event = parsePiRpcRecord(parsed);
704
1037
  if (event.sessionId) {
705
1038
  sessionId = event.sessionId;
706
- options.onEvent?.({ kind: 'session', sessionId });
1039
+ notifyPiEvent(onEvent, { kind: 'session', sessionId });
707
1040
  }
708
1041
  if (event.tool)
709
- options.onEvent?.({ kind: 'tool', ...event.tool });
1042
+ notifyPiEvent(onEvent, { kind: 'tool', ...event.tool });
710
1043
  if (event.thinking)
711
- options.onEvent?.({ kind: 'thinking', text: event.thinking });
712
- if (event.text && !(event.done && text)) {
713
- text += event.text;
714
- options.onEvent?.({ kind: 'text', text: event.text });
715
- }
716
- if (event.done)
1044
+ notifyPiEvent(onEvent, { kind: 'thinking', text: event.thinking });
1045
+ const accepted = turn.observe(parsed);
1046
+ if (accepted.text)
1047
+ notifyPiEvent(onEvent, { kind: 'text', text: accepted.text });
1048
+ if (accepted.done)
717
1049
  finish(0);
718
1050
  };
719
- child.on('error', reject);
720
- child.stdout.on('data', (chunk) => {
1051
+ child.on('error', error => finish(1, 'error', error));
1052
+ child.stdin?.on('error', error => finish(1, child.killed ? 'stopped' : 'error', error));
1053
+ child.stdout?.on('error', error => finish(1, 'error', error));
1054
+ child.stderr?.on('error', error => finish(1, 'error', error));
1055
+ child.once('exit', (code, signal) => {
1056
+ version?.cancel();
1057
+ void owner.teardown().then(() => finish(code ?? 1, signal || child.killed ? 'stopped' : 'error'));
1058
+ });
1059
+ child.stdout?.on('data', (chunk) => {
721
1060
  buffer += decoder.write(chunk);
722
1061
  const lines = buffer.split('\n');
723
1062
  buffer = lines.pop() ?? '';
@@ -730,24 +1069,52 @@ export function spawnPiRpc(profile, pi, options) {
730
1069
  if (line.trim())
731
1070
  dispatchLine(line.trim());
732
1071
  });
733
- child.stderr.on('data', (chunk) => { if (stderr.length < 4000)
1072
+ child.stderr?.on('data', (chunk) => { if (stderr.length < 4000)
734
1073
  stderr += stderrReader.write(chunk); });
735
- child.on('close', (code) => {
1074
+ child.on('close', (code, signal) => {
736
1075
  if (buffer.trim())
737
1076
  dispatchLine(buffer.trim());
738
- finish(code ?? 0);
1077
+ finish(code ?? 1, signal || child.killed ? 'stopped' : 'error');
739
1078
  });
740
1079
  });
741
1080
  const write = (type, fields = {}) => {
742
- child.stdin.write(JSON.stringify({ id: seq++, type, ...fields }) + '\n');
1081
+ if (doneSettled || child.exitCode !== null || child.signalCode !== null || child.killed || !child.stdin?.writable)
1082
+ throw new Error('pi rpc execution is not writable');
1083
+ const id = seq++;
1084
+ child.stdin.write(JSON.stringify({ id, type, ...fields }) + '\n');
1085
+ return id;
743
1086
  };
744
- write('get_state');
745
- if (options.effort)
746
- write('set_thinking_level', { level: options.effort });
747
- const fullPrompt = options.sysPrompt ? `${options.sysPrompt}\n\n${options.prompt}` : options.prompt;
748
- const hasHistory = fullPrompt.includes('[Recent Context]');
749
- console.log(`[jaw:pi] prompt len=${fullPrompt.length}, hasHistory=${hasHistory}, effort=${options.effort || 'none'}, sessionId=${options.sessionId || 'new'}`);
750
- write('prompt', { message: fullPrompt });
751
- return { child, done };
1087
+ const originalKill = child.kill.bind(child);
1088
+ child.kill = (signal) => {
1089
+ const stopSignal = signal === undefined || signal === 15 ? 'SIGTERM'
1090
+ : signal === 9 ? 'SIGKILL' : signal === 2 ? 'SIGINT' : signal;
1091
+ if (stopSignal !== 'SIGTERM' && stopSignal !== 'SIGKILL' && stopSignal !== 'SIGINT')
1092
+ return originalKill(signal);
1093
+ const sent = owner.killRpc(stopSignal);
1094
+ if (!doneSettled)
1095
+ finish(1, 'stopped');
1096
+ else
1097
+ owner.teardown(true);
1098
+ return sent;
1099
+ };
1100
+ Object.defineProperty(child, PI_EXECUTION_CANCEL, { value: () => { child.kill('SIGTERM'); } });
1101
+ version = startPiVersionProbe(versionLaunch, cwd, versionEnv, owner, identityCurrent);
1102
+ void version.done.then(observation => {
1103
+ if (doneSettled)
1104
+ return;
1105
+ if (child.killed || child.exitCode !== null || child.signalCode !== null) {
1106
+ finish(1, child.killed ? 'stopped' : 'error');
1107
+ return;
1108
+ }
1109
+ turn = new PiTurnAccumulator(observation.status === 0 && piSupportsSettled(observation.stdout));
1110
+ write('get_state');
1111
+ if (effort)
1112
+ write('set_thinking_level', { level: effort });
1113
+ console.log(`[jaw:pi] prompt len=${fullPrompt.length}, hasHistory=${hasHistory}, effort=${effort || 'none'}, sessionId=${options.sessionId || 'new'}`);
1114
+ promptId = write('prompt', { message: fullPrompt });
1115
+ promptDispatched = true;
1116
+ }).catch(error => finish(1, child.killed ? 'stopped' : 'error', error));
1117
+ owner.seal();
1118
+ return { child, done, cleanup: owner.cleanup };
752
1119
  }
753
1120
  //# sourceMappingURL=pi-runtime.js.map