@code-yeongyu/senpi 2026.9.23-2 → 2026.9.23-4

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 (275) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/bundle/chunks/{app-server-command-UO3ODP6D.js → app-server-command-QRBQLEXY.js} +1 -1
  3. package/dist/bundle/chunks/{chunk-UCTYTLP3.js → chunk-3RN6BFG2.js} +2 -2
  4. package/dist/bundle/chunks/{chunk-OLJ7LQJY.js → chunk-BBOQ5H4W.js} +1 -1
  5. package/dist/bundle/chunks/{chunk-XTXBPXZZ.js → chunk-EN6KDFY2.js} +1 -1
  6. package/dist/bundle/chunks/{chunk-2NFHX2FJ.js → chunk-J3QXPP4T.js} +1 -1
  7. package/dist/bundle/chunks/chunk-KBG7BJIL.js +8 -0
  8. package/dist/bundle/chunks/{chunk-LMO3WYKH.js → chunk-N46LNXHU.js} +156 -167
  9. package/dist/bundle/chunks/{chunk-7EH64T6E.js → chunk-ORCF262V.js} +2 -2
  10. package/dist/bundle/chunks/{chunk-67Z5WNA4.js → chunk-PSMTQDII.js} +1 -1
  11. package/dist/bundle/chunks/{chunk-IDJUNOOR.js → chunk-WUYBEF7C.js} +2 -2
  12. package/dist/bundle/chunks/{chunk-IDSOMHWS.js → chunk-WXIRFRXY.js} +1 -1
  13. package/dist/bundle/chunks/{chunk-BPHXJ4N2.js → chunk-XDSQYM4F.js} +1 -1
  14. package/dist/bundle/chunks/{chunk-IBHBWRC4.js → chunk-ZEFQYQOU.js} +3 -3
  15. package/dist/bundle/chunks/{cli-main-LUQZADLN.js → cli-main-ROBDBYAB.js} +1 -1
  16. package/dist/bundle/chunks/cursor-agent.js +1 -1
  17. package/dist/bundle/chunks/{help-fast-path-VXAZDQ3Z.js → help-fast-path-QXVCHTP3.js} +1 -1
  18. package/dist/bundle/chunks/{host-command-5PEFD4N6.js → host-command-3PUZYQOK.js} +1 -1
  19. package/dist/bundle/chunks/{host-lifecycle-BXW5C4JT.js → host-lifecycle-OHPSU5VU.js} +1 -1
  20. package/dist/bundle/chunks/{interactive-host-runtime-A6PM52FT.js → interactive-host-runtime-57LEAJPU.js} +1 -1
  21. package/dist/bundle/chunks/{interactive-mode-VR7QYMAE.js → interactive-mode-SLPAGRHH.js} +1 -1
  22. package/dist/bundle/chunks/{list-tips-VGOIMT6W.js → list-tips-Z62FXPOJ.js} +1 -1
  23. package/dist/bundle/chunks/{multi-session-host-LYOVVA75.js → multi-session-host-3PACMEHC.js} +1 -1
  24. package/dist/bundle/chunks/{package-manager-cli-OMEJACX6.js → package-manager-cli-6UIUSRQO.js} +1 -1
  25. package/dist/bundle/chunks/{pi-messages-B6RSUQKL.js → pi-messages-CAS467IY.js} +1 -1
  26. package/dist/bundle/chunks/{rotation-stream-ZIYWOB2N.js → rotation-stream-CZT4TRPD.js} +1 -1
  27. package/dist/bundle/chunks/{rpc-mode-AKGJA73P.js → rpc-mode-47EVLL6X.js} +1 -1
  28. package/dist/bundle/chunks/{session-picker-UE5LOM6W.js → session-picker-ZIBANFBQ.js} +1 -1
  29. package/dist/bundle/chunks/session-worker.js +235 -246
  30. package/dist/bundle/cli.js +1 -1
  31. package/dist/bundle/index.js +1 -1
  32. package/dist/bundle/rpc-entry.js +1 -1
  33. package/dist/core/extensions/builtin/anthropic-subscription/executable-model-support.d.ts +19 -0
  34. package/dist/core/extensions/builtin/anthropic-subscription/executable-model-support.d.ts.map +1 -0
  35. package/dist/core/extensions/builtin/anthropic-subscription/executable-model-support.js +76 -0
  36. package/dist/core/extensions/builtin/anthropic-subscription/executable-model-support.js.map +1 -0
  37. package/dist/core/extensions/builtin/anthropic-subscription/executable-path-lookup.d.ts +7 -2
  38. package/dist/core/extensions/builtin/anthropic-subscription/executable-path-lookup.d.ts.map +1 -1
  39. package/dist/core/extensions/builtin/anthropic-subscription/executable-path-lookup.js +28 -3
  40. package/dist/core/extensions/builtin/anthropic-subscription/executable-path-lookup.js.map +1 -1
  41. package/dist/core/extensions/builtin/anthropic-subscription/executable.d.ts +11 -0
  42. package/dist/core/extensions/builtin/anthropic-subscription/executable.d.ts.map +1 -1
  43. package/dist/core/extensions/builtin/anthropic-subscription/executable.js +31 -10
  44. package/dist/core/extensions/builtin/anthropic-subscription/executable.js.map +1 -1
  45. package/dist/core/extensions/builtin/anthropic-subscription/guidance.d.ts +2 -1
  46. package/dist/core/extensions/builtin/anthropic-subscription/guidance.d.ts.map +1 -1
  47. package/dist/core/extensions/builtin/anthropic-subscription/guidance.js +18 -2
  48. package/dist/core/extensions/builtin/anthropic-subscription/guidance.js.map +1 -1
  49. package/dist/core/extensions/builtin/anthropic-subscription/stream-guidance.d.ts +2 -1
  50. package/dist/core/extensions/builtin/anthropic-subscription/stream-guidance.d.ts.map +1 -1
  51. package/dist/core/extensions/builtin/anthropic-subscription/stream-guidance.js +2 -2
  52. package/dist/core/extensions/builtin/anthropic-subscription/stream-guidance.js.map +1 -1
  53. package/dist/core/extensions/builtin/anthropic-subscription/stream.d.ts.map +1 -1
  54. package/dist/core/extensions/builtin/anthropic-subscription/stream.js +5 -3
  55. package/dist/core/extensions/builtin/anthropic-subscription/stream.js.map +1 -1
  56. package/dist/core/extensions/builtin/cursor-cli-oauth/models.d.ts.map +1 -1
  57. package/dist/core/extensions/builtin/cursor-cli-oauth/models.js +43 -26
  58. package/dist/core/extensions/builtin/cursor-cli-oauth/models.js.map +1 -1
  59. package/dist/core/extensions/builtin/goal/cache-warm-renderer.d.ts +6 -0
  60. package/dist/core/extensions/builtin/goal/cache-warm-renderer.d.ts.map +1 -1
  61. package/dist/core/extensions/builtin/goal/cache-warm-renderer.js +8 -0
  62. package/dist/core/extensions/builtin/goal/cache-warm-renderer.js.map +1 -1
  63. package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
  64. package/dist/core/extensions/builtin/goal/index.js +4 -2
  65. package/dist/core/extensions/builtin/goal/index.js.map +1 -1
  66. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts +3 -1
  67. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
  68. package/dist/core/extensions/builtin/goal/monitor-continuation.js +32 -10
  69. package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
  70. package/dist/core/extensions/builtin/goal/parked-wait.d.ts +16 -0
  71. package/dist/core/extensions/builtin/goal/parked-wait.d.ts.map +1 -0
  72. package/dist/core/extensions/builtin/goal/parked-wait.js +54 -0
  73. package/dist/core/extensions/builtin/goal/parked-wait.js.map +1 -0
  74. package/dist/core/extensions/builtin/mcp/auth/commands-auth-dispatch.d.ts +1 -1
  75. package/dist/core/extensions/builtin/mcp/auth/commands-auth-dispatch.d.ts.map +1 -1
  76. package/dist/core/extensions/builtin/mcp/auth/commands-auth-dispatch.js +8 -2
  77. package/dist/core/extensions/builtin/mcp/auth/commands-auth-dispatch.js.map +1 -1
  78. package/dist/core/extensions/builtin/mcp/auth/commands-auth.d.ts.map +1 -1
  79. package/dist/core/extensions/builtin/mcp/auth/commands-auth.js +15 -4
  80. package/dist/core/extensions/builtin/mcp/auth/commands-auth.js.map +1 -1
  81. package/dist/core/extensions/builtin/mcp/commands.d.ts.map +1 -1
  82. package/dist/core/extensions/builtin/mcp/commands.js +2 -0
  83. package/dist/core/extensions/builtin/mcp/commands.js.map +1 -1
  84. package/dist/core/extensions/builtin/nested-agents-md/index.js +1 -1
  85. package/dist/core/extensions/builtin/nested-agents-md/index.js.map +1 -1
  86. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts +5 -5
  87. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts.map +1 -1
  88. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +16 -11
  89. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
  90. package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.d.ts +5 -5
  91. package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.d.ts.map +1 -1
  92. package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.js +9 -6
  93. package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.js.map +1 -1
  94. package/dist/core/extensions/builtin/prompt-preset/test-decision.d.ts +2 -0
  95. package/dist/core/extensions/builtin/prompt-preset/test-decision.d.ts.map +1 -0
  96. package/dist/core/extensions/builtin/prompt-preset/test-decision.js +5 -0
  97. package/dist/core/extensions/builtin/prompt-preset/test-decision.js.map +1 -0
  98. package/dist/core/extensions/builtin/rule-activation/types.d.ts +2 -0
  99. package/dist/core/extensions/builtin/rule-activation/types.d.ts.map +1 -1
  100. package/dist/core/extensions/builtin/rule-activation/types.js +7 -1
  101. package/dist/core/extensions/builtin/rule-activation/types.js.map +1 -1
  102. package/dist/core/extensions/builtin/rules/index.d.ts.map +1 -1
  103. package/dist/core/extensions/builtin/rules/index.js +2 -1
  104. package/dist/core/extensions/builtin/rules/index.js.map +1 -1
  105. package/dist/core/extensions/builtin/webfetch/webfetch/tool.d.ts +3 -1
  106. package/dist/core/extensions/builtin/webfetch/webfetch/tool.d.ts.map +1 -1
  107. package/dist/core/extensions/builtin/webfetch/webfetch/tool.js +9 -3
  108. package/dist/core/extensions/builtin/webfetch/webfetch/tool.js.map +1 -1
  109. package/dist/core/extensions/index.d.ts +1 -1
  110. package/dist/core/extensions/index.d.ts.map +1 -1
  111. package/dist/core/extensions/index.js.map +1 -1
  112. package/dist/core/extensions/loader.d.ts.map +1 -1
  113. package/dist/core/extensions/loader.js +6 -1
  114. package/dist/core/extensions/loader.js.map +1 -1
  115. package/dist/core/extensions/runner.d.ts +3 -1
  116. package/dist/core/extensions/runner.d.ts.map +1 -1
  117. package/dist/core/extensions/runner.js +5 -0
  118. package/dist/core/extensions/runner.js.map +1 -1
  119. package/dist/core/extensions/types.d.ts +10 -1
  120. package/dist/core/extensions/types.d.ts.map +1 -1
  121. package/dist/core/extensions/types.js.map +1 -1
  122. package/dist/core/model-config.d.ts +1 -0
  123. package/dist/core/model-config.d.ts.map +1 -1
  124. package/dist/core/model-config.js +26 -20
  125. package/dist/core/model-config.js.map +1 -1
  126. package/dist/core/model-resolver.d.ts.map +1 -1
  127. package/dist/core/model-resolver.js +87 -14
  128. package/dist/core/model-resolver.js.map +1 -1
  129. package/dist/core/models-json-migration.d.ts +30 -0
  130. package/dist/core/models-json-migration.d.ts.map +1 -0
  131. package/dist/core/models-json-migration.js +257 -0
  132. package/dist/core/models-json-migration.js.map +1 -0
  133. package/dist/core/output-guard.d.ts +2 -0
  134. package/dist/core/output-guard.d.ts.map +1 -1
  135. package/dist/core/output-guard.js +31 -0
  136. package/dist/core/output-guard.js.map +1 -1
  137. package/dist/core/settings-manager.d.ts +4 -0
  138. package/dist/core/settings-manager.d.ts.map +1 -1
  139. package/dist/core/settings-manager.js +16 -6
  140. package/dist/core/settings-manager.js.map +1 -1
  141. package/dist/core/settings-overrides.d.ts +8 -0
  142. package/dist/core/settings-overrides.d.ts.map +1 -0
  143. package/dist/core/settings-overrides.js +28 -0
  144. package/dist/core/settings-overrides.js.map +1 -0
  145. package/dist/core/tools/bash.d.ts.map +1 -1
  146. package/dist/core/tools/bash.js +12 -7
  147. package/dist/core/tools/bash.js.map +1 -1
  148. package/dist/core/tools/find.d.ts.map +1 -1
  149. package/dist/core/tools/find.js +9 -6
  150. package/dist/core/tools/find.js.map +1 -1
  151. package/dist/core/tools/grep/format.d.ts +3 -2
  152. package/dist/core/tools/grep/format.d.ts.map +1 -1
  153. package/dist/core/tools/grep/format.js +5 -3
  154. package/dist/core/tools/grep/format.js.map +1 -1
  155. package/dist/core/tools/grep/index.js +2 -2
  156. package/dist/core/tools/grep/index.js.map +1 -1
  157. package/dist/core/tools/ls.d.ts.map +1 -1
  158. package/dist/core/tools/ls.js +5 -3
  159. package/dist/core/tools/ls.js.map +1 -1
  160. package/dist/core/tools/model-only-text.d.ts +4 -0
  161. package/dist/core/tools/model-only-text.d.ts.map +1 -0
  162. package/dist/core/tools/model-only-text.js +12 -0
  163. package/dist/core/tools/model-only-text.js.map +1 -0
  164. package/dist/core/tools/read.d.ts.map +1 -1
  165. package/dist/core/tools/read.js +15 -5
  166. package/dist/core/tools/read.js.map +1 -1
  167. package/dist/core/tools/render-utils.d.ts.map +1 -1
  168. package/dist/core/tools/render-utils.js +2 -1
  169. package/dist/core/tools/render-utils.js.map +1 -1
  170. package/dist/core/tools/renderers/bash.d.ts.map +1 -1
  171. package/dist/core/tools/renderers/bash.js +1 -25
  172. package/dist/core/tools/renderers/bash.js.map +1 -1
  173. package/dist/core/tools/renderers/grep.d.ts.map +1 -1
  174. package/dist/core/tools/renderers/grep.js +0 -25
  175. package/dist/core/tools/renderers/grep.js.map +1 -1
  176. package/dist/core/tools/renderers/read.d.ts +8 -0
  177. package/dist/core/tools/renderers/read.d.ts.map +1 -1
  178. package/dist/core/tools/renderers/read.js +2 -14
  179. package/dist/core/tools/renderers/read.js.map +1 -1
  180. package/dist/index.d.ts +1 -1
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js.map +1 -1
  183. package/dist/modes/interactive/components/assistant-message.d.ts +2 -0
  184. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  185. package/dist/modes/interactive/components/assistant-message.js +4 -0
  186. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  187. package/dist/modes/interactive/components/custom-entry.d.ts +10 -1
  188. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  189. package/dist/modes/interactive/components/custom-entry.js +22 -0
  190. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  191. package/dist/modes/interactive/components/exploration-call.d.ts +15 -0
  192. package/dist/modes/interactive/components/exploration-call.d.ts.map +1 -0
  193. package/dist/modes/interactive/components/exploration-call.js +56 -0
  194. package/dist/modes/interactive/components/exploration-call.js.map +1 -0
  195. package/dist/modes/interactive/components/exploration-group.d.ts +21 -0
  196. package/dist/modes/interactive/components/exploration-group.d.ts.map +1 -0
  197. package/dist/modes/interactive/components/exploration-group.js +95 -0
  198. package/dist/modes/interactive/components/exploration-group.js.map +1 -0
  199. package/dist/modes/interactive/components/exploration-rules.d.ts +5 -0
  200. package/dist/modes/interactive/components/exploration-rules.d.ts.map +1 -0
  201. package/dist/modes/interactive/components/exploration-rules.js +15 -0
  202. package/dist/modes/interactive/components/exploration-rules.js.map +1 -0
  203. package/dist/modes/interactive/components/exploration-transcript-container.d.ts +18 -0
  204. package/dist/modes/interactive/components/exploration-transcript-container.d.ts.map +1 -0
  205. package/dist/modes/interactive/components/exploration-transcript-container.js +76 -0
  206. package/dist/modes/interactive/components/exploration-transcript-container.js.map +1 -0
  207. package/dist/modes/interactive/components/tool-execution.d.ts +7 -1
  208. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  209. package/dist/modes/interactive/components/tool-execution.js +8 -1
  210. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  211. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  212. package/dist/modes/interactive/interactive-mode.js +24 -35
  213. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  214. package/dist/modes/interactive/replay-assistant-tools.d.ts +14 -0
  215. package/dist/modes/interactive/replay-assistant-tools.d.ts.map +1 -0
  216. package/dist/modes/interactive/replay-assistant-tools.js +33 -0
  217. package/dist/modes/interactive/replay-assistant-tools.js.map +1 -0
  218. package/dist/modes/interactive/tool-progress.d.ts +2 -0
  219. package/dist/modes/interactive/tool-progress.d.ts.map +1 -1
  220. package/dist/modes/interactive/tool-progress.js +5 -2
  221. package/dist/modes/interactive/tool-progress.js.map +1 -1
  222. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -1
  223. package/dist/modes/interactive/tui-renderer.js +6 -1
  224. package/dist/modes/interactive/tui-renderer.js.map +1 -1
  225. package/docs/extensions.md +8 -0
  226. package/docs/mcp.md +9 -6
  227. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +30 -0
  228. package/node_modules/@code-yeongyu/senpi-codemode/README.md +10 -8
  229. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  230. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/display-code.ts +145 -0
  231. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-request.ts +7 -12
  232. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +2 -2
  233. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/render.ts +38 -35
  234. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/types.ts +1 -4
  235. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  236. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.d.ts.map +1 -1
  237. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +17 -1
  238. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js.map +1 -1
  239. package/node_modules/@earendil-works/pi-ai/dist/cursor/catalog-grouping.d.ts +18 -1
  240. package/node_modules/@earendil-works/pi-ai/dist/cursor/catalog-grouping.d.ts.map +1 -1
  241. package/node_modules/@earendil-works/pi-ai/dist/cursor/catalog-grouping.js +103 -3
  242. package/node_modules/@earendil-works/pi-ai/dist/cursor/catalog-grouping.js.map +1 -1
  243. package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.d.ts +3 -1
  244. package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.d.ts.map +1 -1
  245. package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.js +15 -3
  246. package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.js.map +1 -1
  247. package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.d.ts +7 -2
  248. package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.d.ts.map +1 -1
  249. package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.js +92 -20
  250. package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.js.map +1 -1
  251. package/node_modules/@earendil-works/pi-ai/dist/model.d.ts +9 -1
  252. package/node_modules/@earendil-works/pi-ai/dist/model.d.ts.map +1 -1
  253. package/node_modules/@earendil-works/pi-ai/dist/model.js.map +1 -1
  254. package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.d.ts.map +1 -1
  255. package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.js +1 -0
  256. package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.js.map +1 -1
  257. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  258. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  259. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +5 -0
  260. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  261. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  262. package/node_modules/@earendil-works/pi-ai/package.json +2 -2
  263. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  264. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  265. package/node_modules/@earendil-works/pi-tui/dist/stderr-observer.d.ts +3 -0
  266. package/node_modules/@earendil-works/pi-tui/dist/stderr-observer.d.ts.map +1 -0
  267. package/node_modules/@earendil-works/pi-tui/dist/stderr-observer.js +14 -0
  268. package/node_modules/@earendil-works/pi-tui/dist/stderr-observer.js.map +1 -0
  269. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +4 -1
  270. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  271. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +8 -12
  272. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  273. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  274. package/package.json +7 -7
  275. package/dist/bundle/chunks/chunk-WJ2BGYFK.js +0 -8
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- import{KeybindingsManager,TUI_KEYBINDINGS}from"./chunk-7EH64T6E.js";import{getAgentDir,stripBom}from"./chunk-Y65WFI5H.js";import{existsSync,readFileSync}from"fs";import{join}from"path";function useWindowsKeybindings(platform=process.platform,env=process.env){return platform==="win32"||platform==="linux"&&!!(env.WSL_DISTRO_NAME||env.WSL_INTEROP)}var windowsKeybindings=useWindowsKeybindings(),QUESTION_ANSWER_PRIMARY_KEY="alt+up",QUESTION_ANSWER_FALLBACK_KEY="alt+a",KEYBINDINGS={...TUI_KEYBINDINGS,"tui.editor.undo":{...TUI_KEYBINDINGS["tui.editor.undo"],defaultKeys:process.platform==="win32"?"ctrl+z":windowsKeybindings?"alt+z":"ctrl+-"},"tui.altScreen.previousPrompt":{...TUI_KEYBINDINGS["tui.altScreen.previousPrompt"],defaultKeys:windowsKeybindings?"ctrl+up":["ctrl+shift+up","ctrl+up"]},"tui.altScreen.nextPrompt":{...TUI_KEYBINDINGS["tui.altScreen.nextPrompt"],defaultKeys:windowsKeybindings?"ctrl+down":["ctrl+shift+down","ctrl+down"]},"tui.altScreen.search":{...TUI_KEYBINDINGS["tui.altScreen.search"],defaultKeys:windowsKeybindings?"ctrl+f":"ctrl+shift+f"},"app.interrupt":{defaultKeys:"escape",description:"Cancel or abort"},"app.clear":{defaultKeys:"ctrl+c",description:"Clear editor"},"app.exit":{defaultKeys:"ctrl+d",description:"Exit when editor is empty"},"app.suspend":{defaultKeys:process.platform==="win32"?[]:"ctrl+z",description:"Suspend to background"},"app.thinking.cycle":{defaultKeys:"shift+tab",description:"Cycle thinking level"},"app.thinking.save":{defaultKeys:"ctrl+s",description:"Save thinking level"},"app.model.cycleForward":{defaultKeys:"ctrl+p",description:"Cycle to next model"},"app.model.cycleBackward":{defaultKeys:windowsKeybindings?"alt+p":"shift+ctrl+p",description:"Cycle to previous model"},"app.model.select":{defaultKeys:"ctrl+l",description:"Open model selector"},"app.history.search":{defaultKeys:"ctrl+r",description:"Search prompt history across sessions"},"app.tools.expand":{defaultKeys:"ctrl+o",description:"Toggle tool output"},"app.thinking.toggle":{defaultKeys:"ctrl+t",description:"Toggle thinking blocks"},"app.session.toggleNamedFilter":{defaultKeys:"ctrl+n",description:"Toggle named session filter"},"app.editor.external":{defaultKeys:"ctrl+g",description:"Open external editor"},"app.message.copy":{defaultKeys:"ctrl+x",description:"Copy message to clipboard"},"app.message.followUp":{defaultKeys:windowsKeybindings?"ctrl+q":"alt+enter",description:"Queue follow-up message"},"app.message.dequeue":{defaultKeys:windowsKeybindings?"alt+q":"alt+up",description:"Restore queued messages"},"app.question.answer":{defaultKeys:[QUESTION_ANSWER_PRIMARY_KEY,QUESTION_ANSWER_FALLBACK_KEY],description:"Open the pending question"},"app.question.next":{defaultKeys:"alt+down",description:"Show the next pending question"},"app.clipboard.pasteImage":{defaultKeys:windowsKeybindings?"alt+v":"ctrl+v",description:"Paste image from clipboard (text fallback)"},"app.session.new":{defaultKeys:[],description:"Start a new session"},"app.session.tree":{defaultKeys:[],description:"Open session tree"},"app.session.fork":{defaultKeys:[],description:"Fork current session"},"app.session.resume":{defaultKeys:[],description:"Resume a session"},"app.session.renameCurrent":{defaultKeys:[],description:"Rename the current session"},"app.tree.foldOrUp":{defaultKeys:process.platform==="darwin"?["alt+left","ctrl+left"]:["ctrl+left","alt+left"],description:"Fold tree branch or move up"},"app.tree.unfoldOrDown":{defaultKeys:process.platform==="darwin"?["alt+right","ctrl+right"]:["ctrl+right","alt+right"],description:"Unfold tree branch or move down"},"app.tree.editLabel":{defaultKeys:"shift+l",description:"Edit tree label"},"app.tree.editMessage":{defaultKeys:"ctrl+e",description:"Edit the selected assistant response, or reopen a user message in the editor"},"app.tree.toggleLabelTimestamp":{defaultKeys:"shift+t",description:"Toggle tree label timestamps"},"app.session.togglePath":{defaultKeys:"ctrl+p",description:"Toggle session path display"},"app.session.toggleSort":{defaultKeys:"ctrl+s",description:"Toggle session sort mode"},"app.session.rename":{defaultKeys:"ctrl+r",description:"Rename session"},"app.session.delete":{defaultKeys:"ctrl+d",description:"Delete session"},"app.session.deleteNoninvasive":{defaultKeys:"ctrl+backspace",description:"Delete session when query is empty"},"app.models.save":{defaultKeys:"ctrl+s",description:"Save model selection"},"app.models.toggleFavorite":{defaultKeys:"ctrl+f",description:"Toggle favorite model"},"app.models.enableAll":{defaultKeys:"ctrl+a",description:"Enable all models"},"app.models.clearAll":{defaultKeys:"ctrl+x",description:"Clear all models"},"app.models.toggleProvider":{defaultKeys:"ctrl+p",description:"Toggle all models for provider"},"app.models.reorderUp":{defaultKeys:"alt+up",description:"Move model up in order"},"app.models.reorderDown":{defaultKeys:"alt+down",description:"Move model down in order"},"app.tree.filter.default":{defaultKeys:"ctrl+d",description:"Tree filter: default view"},"app.tree.filter.noTools":{defaultKeys:"ctrl+t",description:"Tree filter: hide tool results"},"app.tree.filter.userOnly":{defaultKeys:"ctrl+u",description:"Tree filter: user messages only"},"app.tree.filter.labeledOnly":{defaultKeys:"ctrl+l",description:"Tree filter: labeled entries only"},"app.tree.filter.all":{defaultKeys:"ctrl+a",description:"Tree filter: show all entries"},"app.tree.filter.cycleForward":{defaultKeys:"ctrl+o",description:"Tree filter: cycle forward"},"app.tree.filter.cycleBackward":{defaultKeys:"shift+ctrl+o",description:"Tree filter: cycle backward"}},KEYBINDING_NAME_MIGRATIONS={cursorUp:"tui.editor.cursorUp",cursorDown:"tui.editor.cursorDown",cursorLeft:"tui.editor.cursorLeft",cursorRight:"tui.editor.cursorRight",cursorWordLeft:"tui.editor.cursorWordLeft",cursorWordRight:"tui.editor.cursorWordRight",cursorLineStart:"tui.editor.cursorLineStart",cursorLineEnd:"tui.editor.cursorLineEnd",jumpForward:"tui.editor.jumpForward",jumpBackward:"tui.editor.jumpBackward",pageUp:"tui.editor.pageUp",pageDown:"tui.editor.pageDown",deleteCharBackward:"tui.editor.deleteCharBackward",deleteCharForward:"tui.editor.deleteCharForward",deleteWordBackward:"tui.editor.deleteWordBackward",deleteWordForward:"tui.editor.deleteWordForward",deleteToLineStart:"tui.editor.deleteToLineStart",deleteToLineEnd:"tui.editor.deleteToLineEnd",yank:"tui.editor.yank",yankPop:"tui.editor.yankPop",undo:"tui.editor.undo",newLine:"tui.input.newLine",submit:"tui.input.submit",tab:"tui.input.tab",copy:"tui.input.copy",selectUp:"tui.select.up",selectDown:"tui.select.down",selectPageUp:"tui.select.pageUp",selectPageDown:"tui.select.pageDown",selectConfirm:"tui.select.confirm",selectCancel:"tui.select.cancel",interrupt:"app.interrupt",clear:"app.clear",exit:"app.exit",suspend:"app.suspend",cycleThinkingLevel:"app.thinking.cycle",cycleModelForward:"app.model.cycleForward",cycleModelBackward:"app.model.cycleBackward",selectModel:"app.model.select",expandTools:"app.tools.expand",toggleThinking:"app.thinking.toggle",toggleSessionNamedFilter:"app.session.toggleNamedFilter",externalEditor:"app.editor.external",followUp:"app.message.followUp",dequeue:"app.message.dequeue",pasteImage:"app.clipboard.pasteImage",newSession:"app.session.new",tree:"app.session.tree",fork:"app.session.fork",resume:"app.session.resume",treeFoldOrUp:"app.tree.foldOrUp",treeUnfoldOrDown:"app.tree.unfoldOrDown",treeEditLabel:"app.tree.editLabel",treeEditMessage:"app.tree.editMessage",treeToggleLabelTimestamp:"app.tree.toggleLabelTimestamp",toggleSessionPath:"app.session.togglePath",toggleSessionSort:"app.session.toggleSort",renameSession:"app.session.rename",deleteSession:"app.session.delete",deleteSessionNoninvasive:"app.session.deleteNoninvasive"};function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function hasOwn(value,key){return Object.hasOwn(value,key)}function isLegacyKeybindingName(key){return key in KEYBINDING_NAME_MIGRATIONS}function toKeybindingsConfig(value){let config={};for(let[key,binding]of Object.entries(value)){if(typeof binding=="string"){config[key]=binding;continue}Array.isArray(binding)&&binding.every(entry=>typeof entry=="string")&&(config[key]=binding)}return config}function migrateKeybindingsConfig(rawConfig){let config={},migrated=!1;for(let[key,value]of Object.entries(rawConfig)){let nextKey=isLegacyKeybindingName(key)?KEYBINDING_NAME_MIGRATIONS[key]:key;if(nextKey!==key&&(migrated=!0),key!==nextKey&&hasOwn(rawConfig,nextKey)){migrated=!0;continue}config[nextKey]=value}return{config:orderKeybindingsConfig(config),migrated}}function orderKeybindingsConfig(config){let ordered={};for(let keybinding of Object.keys(KEYBINDINGS))hasOwn(config,keybinding)&&(ordered[keybinding]=config[keybinding]);let extras=Object.keys(config).filter(key=>!hasOwn(ordered,key)).sort();for(let key of extras)ordered[key]=config[key];return ordered}function loadRawConfig(path){if(existsSync(path))try{let parsed=JSON.parse(stripBom(readFileSync(path,"utf-8")));return isRecord(parsed)?parsed:void 0}catch{return}}var KeybindingsManager2=class _KeybindingsManager extends KeybindingsManager{constructor(userBindings={},configPath){super(KEYBINDINGS,userBindings),this.configPath=configPath}static create(agentDir=getAgentDir()){let configPath=join(agentDir,"keybindings.json"),userBindings=_KeybindingsManager.loadFromFile(configPath);return new _KeybindingsManager(userBindings,configPath)}reload(){this.configPath&&this.setUserBindings(_KeybindingsManager.loadFromFile(this.configPath))}getEffectiveConfig(){return this.getResolvedBindings()}static loadFromFile(path){let rawConfig=loadRawConfig(path);return rawConfig?toKeybindingsConfig(migrateKeybindingsConfig(rawConfig).config):{}}};export{QUESTION_ANSWER_PRIMARY_KEY,QUESTION_ANSWER_FALLBACK_KEY,KEYBINDINGS,migrateKeybindingsConfig,KeybindingsManager2 as KeybindingsManager};
2
+ import{KeybindingsManager,TUI_KEYBINDINGS}from"./chunk-ORCF262V.js";import{getAgentDir,stripBom}from"./chunk-Y65WFI5H.js";import{existsSync,readFileSync}from"fs";import{join}from"path";function useWindowsKeybindings(platform=process.platform,env=process.env){return platform==="win32"||platform==="linux"&&!!(env.WSL_DISTRO_NAME||env.WSL_INTEROP)}var windowsKeybindings=useWindowsKeybindings(),QUESTION_ANSWER_PRIMARY_KEY="alt+up",QUESTION_ANSWER_FALLBACK_KEY="alt+a",KEYBINDINGS={...TUI_KEYBINDINGS,"tui.editor.undo":{...TUI_KEYBINDINGS["tui.editor.undo"],defaultKeys:process.platform==="win32"?"ctrl+z":windowsKeybindings?"alt+z":"ctrl+-"},"tui.altScreen.previousPrompt":{...TUI_KEYBINDINGS["tui.altScreen.previousPrompt"],defaultKeys:windowsKeybindings?"ctrl+up":["ctrl+shift+up","ctrl+up"]},"tui.altScreen.nextPrompt":{...TUI_KEYBINDINGS["tui.altScreen.nextPrompt"],defaultKeys:windowsKeybindings?"ctrl+down":["ctrl+shift+down","ctrl+down"]},"tui.altScreen.search":{...TUI_KEYBINDINGS["tui.altScreen.search"],defaultKeys:windowsKeybindings?"ctrl+f":"ctrl+shift+f"},"app.interrupt":{defaultKeys:"escape",description:"Cancel or abort"},"app.clear":{defaultKeys:"ctrl+c",description:"Clear editor"},"app.exit":{defaultKeys:"ctrl+d",description:"Exit when editor is empty"},"app.suspend":{defaultKeys:process.platform==="win32"?[]:"ctrl+z",description:"Suspend to background"},"app.thinking.cycle":{defaultKeys:"shift+tab",description:"Cycle thinking level"},"app.thinking.save":{defaultKeys:"ctrl+s",description:"Save thinking level"},"app.model.cycleForward":{defaultKeys:"ctrl+p",description:"Cycle to next model"},"app.model.cycleBackward":{defaultKeys:windowsKeybindings?"alt+p":"shift+ctrl+p",description:"Cycle to previous model"},"app.model.select":{defaultKeys:"ctrl+l",description:"Open model selector"},"app.history.search":{defaultKeys:"ctrl+r",description:"Search prompt history across sessions"},"app.tools.expand":{defaultKeys:"ctrl+o",description:"Toggle tool output"},"app.thinking.toggle":{defaultKeys:"ctrl+t",description:"Toggle thinking blocks"},"app.session.toggleNamedFilter":{defaultKeys:"ctrl+n",description:"Toggle named session filter"},"app.editor.external":{defaultKeys:"ctrl+g",description:"Open external editor"},"app.message.copy":{defaultKeys:"ctrl+x",description:"Copy message to clipboard"},"app.message.followUp":{defaultKeys:windowsKeybindings?"ctrl+q":"alt+enter",description:"Queue follow-up message"},"app.message.dequeue":{defaultKeys:windowsKeybindings?"alt+q":"alt+up",description:"Restore queued messages"},"app.question.answer":{defaultKeys:[QUESTION_ANSWER_PRIMARY_KEY,QUESTION_ANSWER_FALLBACK_KEY],description:"Open the pending question"},"app.question.next":{defaultKeys:"alt+down",description:"Show the next pending question"},"app.clipboard.pasteImage":{defaultKeys:windowsKeybindings?"alt+v":"ctrl+v",description:"Paste image from clipboard (text fallback)"},"app.session.new":{defaultKeys:[],description:"Start a new session"},"app.session.tree":{defaultKeys:[],description:"Open session tree"},"app.session.fork":{defaultKeys:[],description:"Fork current session"},"app.session.resume":{defaultKeys:[],description:"Resume a session"},"app.session.renameCurrent":{defaultKeys:[],description:"Rename the current session"},"app.tree.foldOrUp":{defaultKeys:process.platform==="darwin"?["alt+left","ctrl+left"]:["ctrl+left","alt+left"],description:"Fold tree branch or move up"},"app.tree.unfoldOrDown":{defaultKeys:process.platform==="darwin"?["alt+right","ctrl+right"]:["ctrl+right","alt+right"],description:"Unfold tree branch or move down"},"app.tree.editLabel":{defaultKeys:"shift+l",description:"Edit tree label"},"app.tree.editMessage":{defaultKeys:"ctrl+e",description:"Edit the selected assistant response, or reopen a user message in the editor"},"app.tree.toggleLabelTimestamp":{defaultKeys:"shift+t",description:"Toggle tree label timestamps"},"app.session.togglePath":{defaultKeys:"ctrl+p",description:"Toggle session path display"},"app.session.toggleSort":{defaultKeys:"ctrl+s",description:"Toggle session sort mode"},"app.session.rename":{defaultKeys:"ctrl+r",description:"Rename session"},"app.session.delete":{defaultKeys:"ctrl+d",description:"Delete session"},"app.session.deleteNoninvasive":{defaultKeys:"ctrl+backspace",description:"Delete session when query is empty"},"app.models.save":{defaultKeys:"ctrl+s",description:"Save model selection"},"app.models.toggleFavorite":{defaultKeys:"ctrl+f",description:"Toggle favorite model"},"app.models.enableAll":{defaultKeys:"ctrl+a",description:"Enable all models"},"app.models.clearAll":{defaultKeys:"ctrl+x",description:"Clear all models"},"app.models.toggleProvider":{defaultKeys:"ctrl+p",description:"Toggle all models for provider"},"app.models.reorderUp":{defaultKeys:"alt+up",description:"Move model up in order"},"app.models.reorderDown":{defaultKeys:"alt+down",description:"Move model down in order"},"app.tree.filter.default":{defaultKeys:"ctrl+d",description:"Tree filter: default view"},"app.tree.filter.noTools":{defaultKeys:"ctrl+t",description:"Tree filter: hide tool results"},"app.tree.filter.userOnly":{defaultKeys:"ctrl+u",description:"Tree filter: user messages only"},"app.tree.filter.labeledOnly":{defaultKeys:"ctrl+l",description:"Tree filter: labeled entries only"},"app.tree.filter.all":{defaultKeys:"ctrl+a",description:"Tree filter: show all entries"},"app.tree.filter.cycleForward":{defaultKeys:"ctrl+o",description:"Tree filter: cycle forward"},"app.tree.filter.cycleBackward":{defaultKeys:"shift+ctrl+o",description:"Tree filter: cycle backward"}},KEYBINDING_NAME_MIGRATIONS={cursorUp:"tui.editor.cursorUp",cursorDown:"tui.editor.cursorDown",cursorLeft:"tui.editor.cursorLeft",cursorRight:"tui.editor.cursorRight",cursorWordLeft:"tui.editor.cursorWordLeft",cursorWordRight:"tui.editor.cursorWordRight",cursorLineStart:"tui.editor.cursorLineStart",cursorLineEnd:"tui.editor.cursorLineEnd",jumpForward:"tui.editor.jumpForward",jumpBackward:"tui.editor.jumpBackward",pageUp:"tui.editor.pageUp",pageDown:"tui.editor.pageDown",deleteCharBackward:"tui.editor.deleteCharBackward",deleteCharForward:"tui.editor.deleteCharForward",deleteWordBackward:"tui.editor.deleteWordBackward",deleteWordForward:"tui.editor.deleteWordForward",deleteToLineStart:"tui.editor.deleteToLineStart",deleteToLineEnd:"tui.editor.deleteToLineEnd",yank:"tui.editor.yank",yankPop:"tui.editor.yankPop",undo:"tui.editor.undo",newLine:"tui.input.newLine",submit:"tui.input.submit",tab:"tui.input.tab",copy:"tui.input.copy",selectUp:"tui.select.up",selectDown:"tui.select.down",selectPageUp:"tui.select.pageUp",selectPageDown:"tui.select.pageDown",selectConfirm:"tui.select.confirm",selectCancel:"tui.select.cancel",interrupt:"app.interrupt",clear:"app.clear",exit:"app.exit",suspend:"app.suspend",cycleThinkingLevel:"app.thinking.cycle",cycleModelForward:"app.model.cycleForward",cycleModelBackward:"app.model.cycleBackward",selectModel:"app.model.select",expandTools:"app.tools.expand",toggleThinking:"app.thinking.toggle",toggleSessionNamedFilter:"app.session.toggleNamedFilter",externalEditor:"app.editor.external",followUp:"app.message.followUp",dequeue:"app.message.dequeue",pasteImage:"app.clipboard.pasteImage",newSession:"app.session.new",tree:"app.session.tree",fork:"app.session.fork",resume:"app.session.resume",treeFoldOrUp:"app.tree.foldOrUp",treeUnfoldOrDown:"app.tree.unfoldOrDown",treeEditLabel:"app.tree.editLabel",treeEditMessage:"app.tree.editMessage",treeToggleLabelTimestamp:"app.tree.toggleLabelTimestamp",toggleSessionPath:"app.session.togglePath",toggleSessionSort:"app.session.toggleSort",renameSession:"app.session.rename",deleteSession:"app.session.delete",deleteSessionNoninvasive:"app.session.deleteNoninvasive"};function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function hasOwn(value,key){return Object.hasOwn(value,key)}function isLegacyKeybindingName(key){return key in KEYBINDING_NAME_MIGRATIONS}function toKeybindingsConfig(value){let config={};for(let[key,binding]of Object.entries(value)){if(typeof binding=="string"){config[key]=binding;continue}Array.isArray(binding)&&binding.every(entry=>typeof entry=="string")&&(config[key]=binding)}return config}function migrateKeybindingsConfig(rawConfig){let config={},migrated=!1;for(let[key,value]of Object.entries(rawConfig)){let nextKey=isLegacyKeybindingName(key)?KEYBINDING_NAME_MIGRATIONS[key]:key;if(nextKey!==key&&(migrated=!0),key!==nextKey&&hasOwn(rawConfig,nextKey)){migrated=!0;continue}config[nextKey]=value}return{config:orderKeybindingsConfig(config),migrated}}function orderKeybindingsConfig(config){let ordered={};for(let keybinding of Object.keys(KEYBINDINGS))hasOwn(config,keybinding)&&(ordered[keybinding]=config[keybinding]);let extras=Object.keys(config).filter(key=>!hasOwn(ordered,key)).sort();for(let key of extras)ordered[key]=config[key];return ordered}function loadRawConfig(path){if(existsSync(path))try{let parsed=JSON.parse(stripBom(readFileSync(path,"utf-8")));return isRecord(parsed)?parsed:void 0}catch{return}}var KeybindingsManager2=class _KeybindingsManager extends KeybindingsManager{constructor(userBindings={},configPath){super(KEYBINDINGS,userBindings),this.configPath=configPath}static create(agentDir=getAgentDir()){let configPath=join(agentDir,"keybindings.json"),userBindings=_KeybindingsManager.loadFromFile(configPath);return new _KeybindingsManager(userBindings,configPath)}reload(){this.configPath&&this.setUserBindings(_KeybindingsManager.loadFromFile(this.configPath))}getEffectiveConfig(){return this.getResolvedBindings()}static loadFromFile(path){let rawConfig=loadRawConfig(path);return rawConfig?toKeybindingsConfig(migrateKeybindingsConfig(rawConfig).config):{}}};export{QUESTION_ANSWER_PRIMARY_KEY,QUESTION_ANSWER_FALLBACK_KEY,KEYBINDINGS,migrateKeybindingsConfig,KeybindingsManager2 as KeybindingsManager};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- import{contentText}from"./chunk-UCTYTLP3.js";var EDIT_CODES={empty:"empty","not-assistant":"not_assistant","not-found":"not_found","stale-leaf":"stale_leaf"},AssistantEditError=class extends Error{constructor(reason,message){super(message),this.name="AssistantEditError",this.reason=reason}get code(){return EDIT_CODES[this.reason]}},SessionStreamingError=class extends Error{constructor(){super("Wait for the current response to finish before navigating the session tree."),this.code="streaming",this.name="SessionStreamingError"}};function assertExpectedLeaf(expectedLeafId,currentLeafId){if(!(expectedLeafId===void 0||expectedLeafId===currentLeafId))throw new AssistantEditError("stale-leaf",`Session leaf moved (expected ${expectedLeafId}, now ${currentLeafId??"root"})`)}function assistantTextEquals(original,text){return contentText(original.content,"").trim()===text.trim()}function buildEditedAssistantMessage(original,text){let trimmed=text.trim();if(trimmed.length===0)throw new AssistantEditError("empty","Edited assistant response cannot be empty");return{role:"assistant",content:[{type:"text",text:trimmed}],api:original.api,provider:original.provider,model:original.model,...original.responseModel!==void 0?{responseModel:original.responseModel}:{},usage:original.usage,stopReason:"stop",timestamp:Date.now()}}var EDIT_CODES2={empty:"empty","not-user":"not_user","not-found":"not_found","stale-leaf":"stale_leaf"},UserEditError=class extends Error{constructor(reason,message){super(message),this.name="UserEditError",this.reason=reason}get code(){return EDIT_CODES2[this.reason]}};function assertExpectedUserLeaf(expectedLeafId,currentLeafId){if(!(expectedLeafId===void 0||expectedLeafId===currentLeafId))throw new UserEditError("stale-leaf",`Session leaf moved (expected ${expectedLeafId}, now ${currentLeafId??"root"})`)}function userTextEquals(original,text){return contentText(original.content,"").trim()===text.trim()}function buildEditedUserMessage(original,text){let trimmed=text.trim();if(trimmed.length===0)throw new UserEditError("empty","Edited user message cannot be empty");let attachments=Array.isArray(original.content)?original.content.filter(block=>block.type!=="text"):[];return{role:"user",content:[{type:"text",text:trimmed},...attachments],timestamp:Date.now()}}export{AssistantEditError,SessionStreamingError,assertExpectedLeaf,assistantTextEquals,buildEditedAssistantMessage,UserEditError,assertExpectedUserLeaf,userTextEquals,buildEditedUserMessage};
2
+ import{contentText}from"./chunk-3RN6BFG2.js";var EDIT_CODES={empty:"empty","not-assistant":"not_assistant","not-found":"not_found","stale-leaf":"stale_leaf"},AssistantEditError=class extends Error{constructor(reason,message){super(message),this.name="AssistantEditError",this.reason=reason}get code(){return EDIT_CODES[this.reason]}},SessionStreamingError=class extends Error{constructor(){super("Wait for the current response to finish before navigating the session tree."),this.code="streaming",this.name="SessionStreamingError"}};function assertExpectedLeaf(expectedLeafId,currentLeafId){if(!(expectedLeafId===void 0||expectedLeafId===currentLeafId))throw new AssistantEditError("stale-leaf",`Session leaf moved (expected ${expectedLeafId}, now ${currentLeafId??"root"})`)}function assistantTextEquals(original,text){return contentText(original.content,"").trim()===text.trim()}function buildEditedAssistantMessage(original,text){let trimmed=text.trim();if(trimmed.length===0)throw new AssistantEditError("empty","Edited assistant response cannot be empty");return{role:"assistant",content:[{type:"text",text:trimmed}],api:original.api,provider:original.provider,model:original.model,...original.responseModel!==void 0?{responseModel:original.responseModel}:{},usage:original.usage,stopReason:"stop",timestamp:Date.now()}}var EDIT_CODES2={empty:"empty","not-user":"not_user","not-found":"not_found","stale-leaf":"stale_leaf"},UserEditError=class extends Error{constructor(reason,message){super(message),this.name="UserEditError",this.reason=reason}get code(){return EDIT_CODES2[this.reason]}};function assertExpectedUserLeaf(expectedLeafId,currentLeafId){if(!(expectedLeafId===void 0||expectedLeafId===currentLeafId))throw new UserEditError("stale-leaf",`Session leaf moved (expected ${expectedLeafId}, now ${currentLeafId??"root"})`)}function userTextEquals(original,text){return contentText(original.content,"").trim()===text.trim()}function buildEditedUserMessage(original,text){let trimmed=text.trim();if(trimmed.length===0)throw new UserEditError("empty","Edited user message cannot be empty");let attachments=Array.isArray(original.content)?original.content.filter(block=>block.type!=="text"):[];return{role:"user",content:[{type:"text",text:trimmed},...attachments],timestamp:Date.now()}}export{AssistantEditError,SessionStreamingError,assertExpectedLeaf,assistantTextEquals,buildEditedAssistantMessage,UserEditError,assertExpectedUserLeaf,userTextEquals,buildEditedUserMessage};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- import{getApiKeyEnvVars}from"./chunk-UCTYTLP3.js";import{normalizeProviderId}from"./chunk-IVYZMSFY.js";var MAX_ENV_SLOT_INDEX=16;function primaryEnvVar(providerId){if(normalizeProviderId(providerId)==="anthropic-subscription")return"CLAUDE_CODE_OAUTH_TOKEN";let envVars=getApiKeyEnvVars(providerId);if(!(!envVars||envVars.length===0))return envVars.find(name=>name.endsWith("_API_KEY"))??envVars[0]}function discoverEnvSlots(providerId,env){let primary=primaryEnvVar(providerId);if(!primary)return[];let slots=[],base=env(primary);base&&slots.push({name:"env",envVarName:primary,key:base,source:"env"});for(let index=2;index<=MAX_ENV_SLOT_INDEX;index++){let envVarName=`${primary}_${index}`,value=env(envVarName);value&&slots.push({name:`env-${index}`,envVarName,key:value,source:"env"})}return slots}export{discoverEnvSlots};
2
+ import{getApiKeyEnvVars}from"./chunk-3RN6BFG2.js";import{normalizeProviderId}from"./chunk-IVYZMSFY.js";var MAX_ENV_SLOT_INDEX=16;function primaryEnvVar(providerId){if(normalizeProviderId(providerId)==="anthropic-subscription")return"CLAUDE_CODE_OAUTH_TOKEN";let envVars=getApiKeyEnvVars(providerId);if(!(!envVars||envVars.length===0))return envVars.find(name=>name.endsWith("_API_KEY"))??envVars[0]}function discoverEnvSlots(providerId,env){let primary=primaryEnvVar(providerId);if(!primary)return[];let slots=[],base=env(primary);base&&slots.push({name:"env",envVarName:primary,key:base,source:"env"});for(let index=2;index<=MAX_ENV_SLOT_INDEX;index++){let envVarName=`${primary}_${index}`,value=env(envVarName);value&&slots.push({name:`env-${index}`,envVarName,key:value,source:"env"})}return slots}export{discoverEnvSlots};