@pentoshi/clai 4.12.0 → 4.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/CODE_OF_CONDUCT.md +132 -0
  2. package/CONTRIBUTING.md +101 -0
  3. package/PROVIDERS.md +149 -0
  4. package/README.md +217 -426
  5. package/SECURITY.md +33 -0
  6. package/dist/agent/compaction/summary-execution.js +19 -4
  7. package/dist/agent/compaction/summary-execution.js.map +1 -1
  8. package/dist/agent/compaction-summary.d.ts +5 -2
  9. package/dist/agent/compaction-summary.js +10 -4
  10. package/dist/agent/compaction-summary.js.map +1 -1
  11. package/dist/agent/confirm-port.d.ts +3 -5
  12. package/dist/agent/confirm-port.js +12 -6
  13. package/dist/agent/confirm-port.js.map +1 -1
  14. package/dist/agent/context/compact-with-summary.d.ts +1 -0
  15. package/dist/agent/context/compact-with-summary.js +36 -7
  16. package/dist/agent/context/compact-with-summary.js.map +1 -1
  17. package/dist/agent/context/compaction-recent-history.d.ts +12 -0
  18. package/dist/agent/context/compaction-recent-history.js +114 -0
  19. package/dist/agent/context/compaction-recent-history.js.map +1 -0
  20. package/dist/agent/context/latest-user-message.d.ts +2 -0
  21. package/dist/agent/context/latest-user-message.js +10 -0
  22. package/dist/agent/context/latest-user-message.js.map +1 -0
  23. package/dist/agent/context/user-credentials.d.ts +1 -0
  24. package/dist/agent/context/user-credentials.js +3 -0
  25. package/dist/agent/context/user-credentials.js.map +1 -1
  26. package/dist/agent/context-manager.js +6 -2
  27. package/dist/agent/context-manager.js.map +1 -1
  28. package/dist/agent/evidence/task-classification.js +2 -5
  29. package/dist/agent/evidence/task-classification.js.map +1 -1
  30. package/dist/agent/evidence/tool-budgets.js +4 -14
  31. package/dist/agent/evidence/tool-budgets.js.map +1 -1
  32. package/dist/agent/loop-guard.js +1 -5
  33. package/dist/agent/loop-guard.js.map +1 -1
  34. package/dist/agent/outcomes.js +9 -1
  35. package/dist/agent/outcomes.js.map +1 -1
  36. package/dist/agent/parser/arg-formatting.js +3 -16
  37. package/dist/agent/parser/arg-formatting.js.map +1 -1
  38. package/dist/agent/parser/bare-recognition.js +12 -6
  39. package/dist/agent/parser/bare-recognition.js.map +1 -1
  40. package/dist/agent/parser/xml-protocol.js +0 -2
  41. package/dist/agent/parser/xml-protocol.js.map +1 -1
  42. package/dist/agent/plan-implement-compact.js +2 -1
  43. package/dist/agent/plan-implement-compact.js.map +1 -1
  44. package/dist/agent/request-budget.d.ts +1 -0
  45. package/dist/agent/request-budget.js +6 -1
  46. package/dist/agent/request-budget.js.map +1 -1
  47. package/dist/agent/runner.js +2 -2
  48. package/dist/agent/runner.js.map +1 -1
  49. package/dist/agent/session-policy.d.ts +1 -0
  50. package/dist/agent/session-policy.js +1 -4
  51. package/dist/agent/session-policy.js.map +1 -1
  52. package/dist/agent/subagents/manager.d.ts +5 -1
  53. package/dist/agent/subagents/manager.js +96 -15
  54. package/dist/agent/subagents/manager.js.map +1 -1
  55. package/dist/agent/subagents/read-only-tools.js +44 -20
  56. package/dist/agent/subagents/read-only-tools.js.map +1 -1
  57. package/dist/agent/subagents/tools.d.ts +8 -1
  58. package/dist/agent/subagents/tools.js +21 -13
  59. package/dist/agent/subagents/tools.js.map +1 -1
  60. package/dist/agent/subagents/types.d.ts +8 -0
  61. package/dist/agent/subagents/worker.js +48 -7
  62. package/dist/agent/subagents/worker.js.map +1 -1
  63. package/dist/agent/task-evidence.js +2 -11
  64. package/dist/agent/task-evidence.js.map +1 -1
  65. package/dist/agent/tool-output-formatting.js +8 -2
  66. package/dist/agent/tool-output-formatting.js.map +1 -1
  67. package/dist/agent/turn/automatic-compaction-execution.js +1 -0
  68. package/dist/agent/turn/automatic-compaction-execution.js.map +1 -1
  69. package/dist/agent/turn/compaction-coordinator.js +4 -4
  70. package/dist/agent/turn/compaction-coordinator.js.map +1 -1
  71. package/dist/agent/turn/compaction-replay-selection.js +1 -0
  72. package/dist/agent/turn/compaction-replay-selection.js.map +1 -1
  73. package/dist/agent/turn/loop/run-rounds.js +11 -3
  74. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  75. package/dist/agent/turn/prompt-sections.js +4 -9
  76. package/dist/agent/turn/prompt-sections.js.map +1 -1
  77. package/dist/agent/turn/setup/turn-messages.js +2 -1
  78. package/dist/agent/turn/setup/turn-messages.js.map +1 -1
  79. package/dist/agent/turn/subagent-inbox.d.ts +5 -5
  80. package/dist/agent/turn/subagent-inbox.js +90 -11
  81. package/dist/agent/turn/subagent-inbox.js.map +1 -1
  82. package/dist/agent/turn/system-sections.d.ts +1 -0
  83. package/dist/agent/turn/system-sections.js +1 -1
  84. package/dist/agent/turn/system-sections.js.map +1 -1
  85. package/dist/agent/turn/task-autostart.js +2 -0
  86. package/dist/agent/turn/task-autostart.js.map +1 -1
  87. package/dist/agent/turn/tool-execution/authorization.js +3 -39
  88. package/dist/agent/turn/tool-execution/authorization.js.map +1 -1
  89. package/dist/agent/turn/tool-execution/single-tool.js +2 -4
  90. package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
  91. package/dist/agent/turn/tool-result-recorder.js +5 -0
  92. package/dist/agent/turn/tool-result-recorder.js.map +1 -1
  93. package/dist/agent/turn/tool-routing.d.ts +1 -1
  94. package/dist/agent/turn/tool-routing.js +11 -11
  95. package/dist/agent/turn/tool-routing.js.map +1 -1
  96. package/dist/agent/workspace-orient.js +2 -2
  97. package/dist/agent/workspace-orient.js.map +1 -1
  98. package/dist/app/adapters/agent-event-adapter.js +5 -0
  99. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  100. package/dist/app/adapters/current-store-adapter.js +2 -2
  101. package/dist/app/adapters/current-store-adapter.js.map +1 -1
  102. package/dist/app/commands/catalog.js +9 -4
  103. package/dist/app/commands/catalog.js.map +1 -1
  104. package/dist/app/commands/registry.js +1 -1
  105. package/dist/app/commands/registry.js.map +1 -1
  106. package/dist/app/controllers/session-compact-helper.js +2 -1
  107. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  108. package/dist/app/controllers/session-controller.d.ts +8 -0
  109. package/dist/app/controllers/session-controller.js +66 -12
  110. package/dist/app/controllers/session-controller.js.map +1 -1
  111. package/dist/app/controllers/session-naming.d.ts +4 -5
  112. package/dist/app/controllers/session-naming.js +38 -80
  113. package/dist/app/controllers/session-naming.js.map +1 -1
  114. package/dist/app/controllers/session-prompt-history.d.ts +4 -0
  115. package/dist/app/controllers/session-prompt-history.js +33 -0
  116. package/dist/app/controllers/session-prompt-history.js.map +1 -0
  117. package/dist/app/controllers/session-prompt-queue.d.ts +1 -0
  118. package/dist/app/controllers/session-prompt-queue.js +1 -1
  119. package/dist/app/controllers/session-prompt-queue.js.map +1 -1
  120. package/dist/app/events/artifact-output.d.ts +1 -0
  121. package/dist/app/events/artifact-output.js +32 -0
  122. package/dist/app/events/artifact-output.js.map +1 -0
  123. package/dist/app/events/event-buffer.d.ts +13 -1
  124. package/dist/app/events/event-buffer.js +92 -4
  125. package/dist/app/events/event-buffer.js.map +1 -1
  126. package/dist/app/operation-review.d.ts +7 -0
  127. package/dist/app/operation-review.js +61 -0
  128. package/dist/app/operation-review.js.map +1 -0
  129. package/dist/app/ports/confirm-port.d.ts +1 -1
  130. package/dist/app/ports/persistence-port.d.ts +2 -1
  131. package/dist/app/ports/secret-port.d.ts +2 -0
  132. package/dist/classic/app/ClassicApp.js +34 -3
  133. package/dist/classic/app/ClassicApp.js.map +1 -1
  134. package/dist/classic/app/action-handlers.js +0 -2
  135. package/dist/classic/app/action-handlers.js.map +1 -1
  136. package/dist/classic/app/app-wiring.d.ts +1 -2
  137. package/dist/classic/app/app-wiring.js +1 -8
  138. package/dist/classic/app/app-wiring.js.map +1 -1
  139. package/dist/classic/app/use-feed.js +2 -1
  140. package/dist/classic/app/use-feed.js.map +1 -1
  141. package/dist/classic/app/wiring-interactions.d.ts +0 -2
  142. package/dist/classic/app/wiring-interactions.js +5 -13
  143. package/dist/classic/app/wiring-interactions.js.map +1 -1
  144. package/dist/classic/app/wiring-types.d.ts +2 -2
  145. package/dist/classic/blocks/batch-lines.js +10 -8
  146. package/dist/classic/blocks/batch-lines.js.map +1 -1
  147. package/dist/classic/blocks/block-context.d.ts +1 -0
  148. package/dist/classic/blocks/block-context.js.map +1 -1
  149. package/dist/classic/blocks/tool-lines.js +20 -39
  150. package/dist/classic/blocks/tool-lines.js.map +1 -1
  151. package/dist/classic/bootstrap/renderer-handle.d.ts +5 -1
  152. package/dist/classic/bootstrap/renderer-handle.js.map +1 -1
  153. package/dist/classic/bootstrap/start-classic.js +12 -12
  154. package/dist/classic/bootstrap/start-classic.js.map +1 -1
  155. package/dist/classic/chrome/context-limit-editor.d.ts +7 -0
  156. package/dist/classic/chrome/context-limit-editor.js +5 -0
  157. package/dist/classic/chrome/context-limit-editor.js.map +1 -1
  158. package/dist/classic/chrome/status-rows.d.ts +4 -0
  159. package/dist/classic/chrome/status-rows.js +11 -0
  160. package/dist/classic/chrome/status-rows.js.map +1 -1
  161. package/dist/classic/feed/feed-blocks.d.ts +1 -1
  162. package/dist/classic/feed/feed-blocks.js +13 -6
  163. package/dist/classic/feed/feed-blocks.js.map +1 -1
  164. package/dist/classic/panels/confirm-panel.js +9 -3
  165. package/dist/classic/panels/confirm-panel.js.map +1 -1
  166. package/dist/classic/panels/keys-panel.js +12 -3
  167. package/dist/classic/panels/keys-panel.js.map +1 -1
  168. package/dist/classic/panels/pager-panel.js +0 -6
  169. package/dist/classic/panels/pager-panel.js.map +1 -1
  170. package/dist/classic/panels/pager-source-controller.d.ts +34 -0
  171. package/dist/classic/panels/pager-source-controller.js +209 -0
  172. package/dist/classic/panels/pager-source-controller.js.map +1 -0
  173. package/dist/classic/panels/panel-controller.d.ts +1 -5
  174. package/dist/classic/panels/panel-controller.js +44 -92
  175. package/dist/classic/panels/panel-controller.js.map +1 -1
  176. package/dist/classic/panels/panel-effect.d.ts +2 -4
  177. package/dist/classic/panels/panel-effect.js.map +1 -1
  178. package/dist/classic/panels/panel-effects.js +3 -6
  179. package/dist/classic/panels/panel-effects.js.map +1 -1
  180. package/dist/classic/panels/panel-types.d.ts +0 -2
  181. package/dist/classic/panels/picker-panel.js +1 -1
  182. package/dist/classic/panels/picker-panel.js.map +1 -1
  183. package/dist/classic/panels/secret-panel.d.ts +1 -0
  184. package/dist/classic/panels/secret-panel.js +8 -1
  185. package/dist/classic/panels/secret-panel.js.map +1 -1
  186. package/dist/commands/providers.d.ts +1 -0
  187. package/dist/commands/providers.js +1 -0
  188. package/dist/commands/providers.js.map +1 -1
  189. package/dist/commands/qoder.d.ts +8 -0
  190. package/dist/commands/qoder.js +85 -0
  191. package/dist/commands/qoder.js.map +1 -0
  192. package/dist/commands/update/installers.js +1 -0
  193. package/dist/commands/update/installers.js.map +1 -1
  194. package/dist/index.js +31 -15
  195. package/dist/index.js.map +1 -1
  196. package/dist/llm/capability/state.d.ts +1 -1
  197. package/dist/llm/capability/tool-dialect.js +1 -0
  198. package/dist/llm/capability/tool-dialect.js.map +1 -1
  199. package/dist/llm/capability/vision-patterns.js +1 -0
  200. package/dist/llm/capability/vision-patterns.js.map +1 -1
  201. package/dist/llm/catalog-facts.js +15 -8
  202. package/dist/llm/catalog-facts.js.map +1 -1
  203. package/dist/llm/codex-auth.d.ts +2 -0
  204. package/dist/llm/codex-auth.js +30 -0
  205. package/dist/llm/codex-auth.js.map +1 -1
  206. package/dist/llm/codex-config.js +18 -14
  207. package/dist/llm/codex-config.js.map +1 -1
  208. package/dist/llm/codex-models.d.ts +0 -1
  209. package/dist/llm/codex-models.js +0 -1
  210. package/dist/llm/codex-models.js.map +1 -1
  211. package/dist/llm/context-windows.js +2 -3
  212. package/dist/llm/context-windows.js.map +1 -1
  213. package/dist/llm/freebuff-run.d.ts +3 -0
  214. package/dist/llm/freebuff-run.js +9 -1
  215. package/dist/llm/freebuff-run.js.map +1 -1
  216. package/dist/llm/freebuff-session-api.d.ts +3 -1
  217. package/dist/llm/freebuff-session-api.js +14 -1
  218. package/dist/llm/freebuff-session-api.js.map +1 -1
  219. package/dist/llm/freebuff-session.d.ts +2 -0
  220. package/dist/llm/freebuff-session.js +61 -28
  221. package/dist/llm/freebuff-session.js.map +1 -1
  222. package/dist/llm/freebuff-wire.d.ts +3 -0
  223. package/dist/llm/freebuff-wire.js +82 -0
  224. package/dist/llm/freebuff-wire.js.map +1 -0
  225. package/dist/llm/freebuff.js +61 -117
  226. package/dist/llm/freebuff.js.map +1 -1
  227. package/dist/llm/provider-identity.js +5 -0
  228. package/dist/llm/provider-identity.js.map +1 -1
  229. package/dist/llm/provider-info-text.js +25 -0
  230. package/dist/llm/provider-info-text.js.map +1 -1
  231. package/dist/llm/provider-profile-layers.js +1 -1
  232. package/dist/llm/provider-profile-layers.js.map +1 -1
  233. package/dist/llm/qoder/qoder-accounts.d.ts +9 -0
  234. package/dist/llm/qoder/qoder-accounts.js +53 -0
  235. package/dist/llm/qoder/qoder-accounts.js.map +1 -0
  236. package/dist/llm/qoder/qoder-auth.d.ts +59 -0
  237. package/dist/llm/qoder/qoder-auth.js +203 -0
  238. package/dist/llm/qoder/qoder-auth.js.map +1 -0
  239. package/dist/llm/qoder/qoder-credential.d.ts +31 -0
  240. package/dist/llm/qoder/qoder-credential.js +82 -0
  241. package/dist/llm/qoder/qoder-credential.js.map +1 -0
  242. package/dist/llm/qoder/qoder-login.d.ts +28 -0
  243. package/dist/llm/qoder/qoder-login.js +153 -0
  244. package/dist/llm/qoder/qoder-login.js.map +1 -0
  245. package/dist/llm/qoder/qoder-refresh.d.ts +4 -0
  246. package/dist/llm/qoder/qoder-refresh.js +165 -0
  247. package/dist/llm/qoder/qoder-refresh.js.map +1 -0
  248. package/dist/llm/qoder/qoder-signer.d.ts +66 -0
  249. package/dist/llm/qoder/qoder-signer.js +119 -0
  250. package/dist/llm/qoder/qoder-signer.js.map +1 -0
  251. package/dist/llm/qoder/qoder.d.ts +20 -0
  252. package/dist/llm/qoder/qoder.js +441 -0
  253. package/dist/llm/qoder/qoder.js.map +1 -0
  254. package/dist/llm/qoder/signer-glue.generated.d.ts +1 -0
  255. package/dist/llm/qoder/signer-glue.generated.js +4 -0
  256. package/dist/llm/qoder/signer-glue.generated.js.map +1 -0
  257. package/dist/llm/qoder/signer-wasm.generated.d.ts +3 -0
  258. package/dist/llm/qoder/signer-wasm.generated.js +6 -0
  259. package/dist/llm/qoder/signer-wasm.generated.js.map +1 -0
  260. package/dist/llm/reasoning-capability.js +1 -0
  261. package/dist/llm/reasoning-capability.js.map +1 -1
  262. package/dist/llm/reasoning-controls.js +1 -3
  263. package/dist/llm/reasoning-controls.js.map +1 -1
  264. package/dist/llm/reasoning-errors.js +3 -1
  265. package/dist/llm/reasoning-errors.js.map +1 -1
  266. package/dist/llm/request-plan.js +18 -12
  267. package/dist/llm/request-plan.js.map +1 -1
  268. package/dist/llm/routing/attempt-complete.js +11 -4
  269. package/dist/llm/routing/attempt-complete.js.map +1 -1
  270. package/dist/llm/routing/attempt-request.d.ts +2 -1
  271. package/dist/llm/routing/attempt-request.js +37 -0
  272. package/dist/llm/routing/attempt-request.js.map +1 -1
  273. package/dist/llm/routing/attempt-stream.js +12 -4
  274. package/dist/llm/routing/attempt-stream.js.map +1 -1
  275. package/dist/llm/routing/provider-selection.js +3 -0
  276. package/dist/llm/routing/provider-selection.js.map +1 -1
  277. package/dist/llm/tool-protocol.js +6 -0
  278. package/dist/llm/tool-protocol.js.map +1 -1
  279. package/dist/llm/wire/chat-body.js +17 -0
  280. package/dist/llm/wire/chat-body.js.map +1 -1
  281. package/dist/llm/wire/reasoning-payload.d.ts +1 -1
  282. package/dist/llm/wire/reasoning-payload.js +6 -0
  283. package/dist/llm/wire/reasoning-payload.js.map +1 -1
  284. package/dist/modes/ask.js +26 -10
  285. package/dist/modes/ask.js.map +1 -1
  286. package/dist/noninteractive/readline-prompts.d.ts +2 -1
  287. package/dist/noninteractive/readline-prompts.js +34 -1
  288. package/dist/noninteractive/readline-prompts.js.map +1 -1
  289. package/dist/noninteractive/stdio-confirm-port.js +18 -6
  290. package/dist/noninteractive/stdio-confirm-port.js.map +1 -1
  291. package/dist/noninteractive/stream-blocks.d.ts +2 -4
  292. package/dist/noninteractive/stream-blocks.js +5 -5
  293. package/dist/noninteractive/stream-blocks.js.map +1 -1
  294. package/dist/noninteractive/stream-renderer.js +1 -1
  295. package/dist/noninteractive/stream-renderer.js.map +1 -1
  296. package/dist/prompts/embedded.js +2 -2
  297. package/dist/prompts/embedded.js.map +1 -1
  298. package/dist/prompts/index.d.ts +3 -1
  299. package/dist/prompts/index.js +27 -10
  300. package/dist/prompts/index.js.map +1 -1
  301. package/dist/prompts/system.agent.md +16 -16
  302. package/dist/prompts/system.ask.md +5 -3
  303. package/dist/safety/filesystem-permissions.d.ts +4 -0
  304. package/dist/safety/filesystem-permissions.js +113 -0
  305. package/dist/safety/filesystem-permissions.js.map +1 -0
  306. package/dist/safety/permission-mode.d.ts +5 -0
  307. package/dist/safety/permission-mode.js +22 -0
  308. package/dist/safety/permission-mode.js.map +1 -0
  309. package/dist/safety/shell-command-words.d.ts +11 -0
  310. package/dist/safety/shell-command-words.js +193 -0
  311. package/dist/safety/shell-command-words.js.map +1 -0
  312. package/dist/safety/shell-filesystem-effects.d.ts +14 -0
  313. package/dist/safety/shell-filesystem-effects.js +178 -0
  314. package/dist/safety/shell-filesystem-effects.js.map +1 -0
  315. package/dist/safety/shell-permission-words.d.ts +16 -0
  316. package/dist/safety/shell-permission-words.js +102 -0
  317. package/dist/safety/shell-permission-words.js.map +1 -0
  318. package/dist/safety/tool-classification.js +1 -15
  319. package/dist/safety/tool-classification.js.map +1 -1
  320. package/dist/session-runtime/binding.js +4 -1
  321. package/dist/session-runtime/binding.js.map +1 -1
  322. package/dist/session-runtime/client.js +111 -7
  323. package/dist/session-runtime/client.js.map +1 -1
  324. package/dist/session-runtime/discovery.d.ts +1 -1
  325. package/dist/session-runtime/discovery.js +2 -2
  326. package/dist/session-runtime/discovery.js.map +1 -1
  327. package/dist/session-runtime/host.d.ts +10 -2
  328. package/dist/session-runtime/host.js +206 -83
  329. package/dist/session-runtime/host.js.map +1 -1
  330. package/dist/session-runtime/input-commands.d.ts +2 -0
  331. package/dist/session-runtime/input-commands.js +11 -0
  332. package/dist/session-runtime/input-commands.js.map +1 -0
  333. package/dist/session-runtime/input-stream.d.ts +15 -0
  334. package/dist/session-runtime/input-stream.js +128 -0
  335. package/dist/session-runtime/input-stream.js.map +1 -0
  336. package/dist/session-runtime/types.d.ts +9 -0
  337. package/dist/store/config/endpoints.d.ts +2 -1
  338. package/dist/store/config/endpoints.js +4 -1
  339. package/dist/store/config/endpoints.js.map +1 -1
  340. package/dist/store/config.js +1 -0
  341. package/dist/store/config.js.map +1 -1
  342. package/dist/store/history/freshness.d.ts +9 -0
  343. package/dist/store/history/freshness.js +29 -0
  344. package/dist/store/history/freshness.js.map +1 -0
  345. package/dist/store/history/jsonl-backend.js +2 -16
  346. package/dist/store/history/jsonl-backend.js.map +1 -1
  347. package/dist/store/history/lifecycle.js +6 -2
  348. package/dist/store/history/lifecycle.js.map +1 -1
  349. package/dist/store/history/recovery.d.ts +1 -3
  350. package/dist/store/history/recovery.js +72 -111
  351. package/dist/store/history/recovery.js.map +1 -1
  352. package/dist/store/history/session-queries.js +5 -5
  353. package/dist/store/history/session-queries.js.map +1 -1
  354. package/dist/store/history-index.d.ts +5 -0
  355. package/dist/store/history-index.js +41 -9
  356. package/dist/store/history-index.js.map +1 -1
  357. package/dist/store/history.d.ts +7 -2
  358. package/dist/store/history.js +13 -7
  359. package/dist/store/history.js.map +1 -1
  360. package/dist/store/rtk-usage.d.ts +2 -0
  361. package/dist/store/rtk-usage.js +44 -0
  362. package/dist/store/rtk-usage.js.map +1 -0
  363. package/dist/store/session-model.js +0 -1
  364. package/dist/store/session-model.js.map +1 -1
  365. package/dist/store/session-prompts-format.d.ts +2 -0
  366. package/dist/store/session-prompts-format.js +29 -0
  367. package/dist/store/session-prompts-format.js.map +1 -0
  368. package/dist/store/session-prompts.d.ts +40 -0
  369. package/dist/store/session-prompts.js +213 -0
  370. package/dist/store/session-prompts.js.map +1 -0
  371. package/dist/store/subagents.d.ts +5 -1
  372. package/dist/store/subagents.js +67 -6
  373. package/dist/store/subagents.js.map +1 -1
  374. package/dist/tools/call-normalization.js +0 -3
  375. package/dist/tools/call-normalization.js.map +1 -1
  376. package/dist/tools/command-intent.d.ts +0 -1
  377. package/dist/tools/command-intent.js +3 -10
  378. package/dist/tools/command-intent.js.map +1 -1
  379. package/dist/tools/definitions/aggregate.js +0 -4
  380. package/dist/tools/definitions/aggregate.js.map +1 -1
  381. package/dist/tools/definitions/define.js +0 -3
  382. package/dist/tools/definitions/define.js.map +1 -1
  383. package/dist/tools/definitions/files.js +3 -111
  384. package/dist/tools/definitions/files.js.map +1 -1
  385. package/dist/tools/definitions/fs-read.d.ts +3 -0
  386. package/dist/tools/definitions/fs-read.js +43 -0
  387. package/dist/tools/definitions/fs-read.js.map +1 -0
  388. package/dist/tools/definitions/selection.js +0 -45
  389. package/dist/tools/definitions/selection.js.map +1 -1
  390. package/dist/tools/definitions/shell.js +6 -3
  391. package/dist/tools/definitions/shell.js.map +1 -1
  392. package/dist/tools/elevated-shell.d.ts +1 -0
  393. package/dist/tools/elevated-shell.js +2 -0
  394. package/dist/tools/elevated-shell.js.map +1 -1
  395. package/dist/tools/fs/read-budget.d.ts +8 -0
  396. package/dist/tools/fs/read-budget.js +30 -0
  397. package/dist/tools/fs/read-budget.js.map +1 -0
  398. package/dist/tools/fs/read-input.d.ts +16 -0
  399. package/dist/tools/fs/read-input.js +73 -0
  400. package/dist/tools/fs/read-input.js.map +1 -0
  401. package/dist/tools/fs/read-many.d.ts +6 -0
  402. package/dist/tools/fs/read-many.js +50 -0
  403. package/dist/tools/fs/read-many.js.map +1 -0
  404. package/dist/tools/fs/read-sections.d.ts +11 -0
  405. package/dist/tools/fs/read-sections.js +71 -0
  406. package/dist/tools/fs/read-sections.js.map +1 -0
  407. package/dist/tools/fs/read-window.d.ts +1 -1
  408. package/dist/tools/fs/read-window.js +57 -25
  409. package/dist/tools/fs/read-window.js.map +1 -1
  410. package/dist/tools/fs/read.d.ts +0 -4
  411. package/dist/tools/fs/read.js +34 -17
  412. package/dist/tools/fs/read.js.map +1 -1
  413. package/dist/tools/fs.d.ts +3 -2
  414. package/dist/tools/fs.js +23 -5
  415. package/dist/tools/fs.js.map +1 -1
  416. package/dist/tools/handlers/files-1.js +11 -35
  417. package/dist/tools/handlers/files-1.js.map +1 -1
  418. package/dist/tools/handlers/files-2.js.map +1 -1
  419. package/dist/tools/handlers/shell-1.js +26 -35
  420. package/dist/tools/handlers/shell-1.js.map +1 -1
  421. package/dist/tools/interactive-session-tools.js +1 -0
  422. package/dist/tools/interactive-session-tools.js.map +1 -1
  423. package/dist/tools/jobs/types.d.ts +4 -1
  424. package/dist/tools/jobs.js +9 -1
  425. package/dist/tools/jobs.js.map +1 -1
  426. package/dist/tools/read-only-shell.d.ts +2 -0
  427. package/dist/tools/read-only-shell.js +65 -0
  428. package/dist/tools/read-only-shell.js.map +1 -0
  429. package/dist/tools/registry.js +0 -9
  430. package/dist/tools/registry.js.map +1 -1
  431. package/dist/tools/retired-tools.js +1 -1
  432. package/dist/tools/retired-tools.js.map +1 -1
  433. package/dist/tools/rtk/rewrite.d.ts +3 -2
  434. package/dist/tools/rtk/rewrite.js +4 -5
  435. package/dist/tools/rtk/rewrite.js.map +1 -1
  436. package/dist/tools/shell/exec-attempt.js +1 -0
  437. package/dist/tools/shell/exec-attempt.js.map +1 -1
  438. package/dist/tools/shell/internals.d.ts +1 -1
  439. package/dist/tools/shell/internals.js +2 -1
  440. package/dist/tools/shell/internals.js.map +1 -1
  441. package/dist/tools/shell/spawn-argv.js +1 -1
  442. package/dist/tools/shell/spawn-argv.js.map +1 -1
  443. package/dist/tools/shell/timeout.d.ts +1 -0
  444. package/dist/tools/shell/timeout.js +2 -0
  445. package/dist/tools/shell/timeout.js.map +1 -0
  446. package/dist/tools/shell.d.ts +1 -0
  447. package/dist/tools/shell.js.map +1 -1
  448. package/dist/tools/sudo-session.d.ts +4 -5
  449. package/dist/tools/sudo-session.js +1 -0
  450. package/dist/tools/sudo-session.js.map +1 -1
  451. package/dist/tools/tool-types.d.ts +2 -4
  452. package/dist/tui-v2/app/App.js +5 -1
  453. package/dist/tui-v2/app/App.js.map +1 -1
  454. package/dist/tui-v2/bootstrap/start-tui-v2.js +0 -2
  455. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  456. package/dist/tui-v2/components/jobs/subagents-panel.js +14 -2
  457. package/dist/tui-v2/components/jobs/subagents-panel.js.map +1 -1
  458. package/dist/tui-v2/components/modal/confirm-modal.js +6 -2
  459. package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
  460. package/dist/tui-v2/components/modal/keys-modal.js +42 -6
  461. package/dist/tui-v2/components/modal/keys-modal.js.map +1 -1
  462. package/dist/tui-v2/components/modal/secret-modal.d.ts +8 -0
  463. package/dist/tui-v2/components/modal/secret-modal.js +27 -18
  464. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  465. package/dist/tui-v2/components/overlay/overlay-host.js +14 -3
  466. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  467. package/dist/tui-v2/components/pager/pager.js +43 -61
  468. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  469. package/dist/tui-v2/components/picker/picker.js +17 -3
  470. package/dist/tui-v2/components/picker/picker.js.map +1 -1
  471. package/dist/tui-v2/components/transcript/intro-card.js +2 -1
  472. package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
  473. package/dist/tui-v2/components/transcript/tool-card.js +21 -19
  474. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  475. package/dist/tui-v2/components/transcript/transcript-view.js +24 -21
  476. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  477. package/dist/tui-v2/components/transcript/use-transcript-selection.d.ts +1 -0
  478. package/dist/tui-v2/components/transcript/use-transcript-selection.js +12 -1
  479. package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
  480. package/dist/tui-v2/composer/composer-editor.js +1 -1
  481. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  482. package/dist/types.d.ts +17 -2
  483. package/dist/types.js +1 -0
  484. package/dist/types.js.map +1 -1
  485. package/dist/ui/mentions/expand.js +1 -1
  486. package/dist/ui-core/actions/action-id.d.ts +1 -1
  487. package/dist/ui-core/actions/action-id.js +0 -2
  488. package/dist/ui-core/actions/action-id.js.map +1 -1
  489. package/dist/ui-core/actions/format-shortcuts.js +0 -2
  490. package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
  491. package/dist/ui-core/actions/keymap.js +0 -6
  492. package/dist/ui-core/actions/keymap.js.map +1 -1
  493. package/dist/ui-core/bootstrap/composition-root.d.ts +0 -3
  494. package/dist/ui-core/bootstrap/composition-root.js +0 -8
  495. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  496. package/dist/ui-core/bootstrap/overlay-ports.js +14 -5
  497. package/dist/ui-core/bootstrap/overlay-ports.js.map +1 -1
  498. package/dist/ui-core/bootstrap/session-resume.d.ts +5 -0
  499. package/dist/ui-core/bootstrap/session-resume.js +13 -35
  500. package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
  501. package/dist/ui-core/commands/command-handlers.js +5 -2
  502. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  503. package/dist/ui-core/commands/config-commands.js +5 -1
  504. package/dist/ui-core/commands/config-commands.js.map +1 -1
  505. package/dist/ui-core/commands/key-commands.js +50 -30
  506. package/dist/ui-core/commands/key-commands.js.map +1 -1
  507. package/dist/ui-core/commands/keys/auth-picker.d.ts +3 -0
  508. package/dist/ui-core/commands/keys/auth-picker.js +29 -0
  509. package/dist/ui-core/commands/keys/auth-picker.js.map +1 -0
  510. package/dist/ui-core/commands/keys/qoder.d.ts +4 -0
  511. package/dist/ui-core/commands/keys/qoder.js +194 -0
  512. package/dist/ui-core/commands/keys/qoder.js.map +1 -0
  513. package/dist/ui-core/commands/picker-commands.js +19 -1
  514. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  515. package/dist/ui-core/commands/pickers/output-pager.js +19 -8
  516. package/dist/ui-core/commands/pickers/output-pager.js.map +1 -1
  517. package/dist/ui-core/commands/pickers/search-reasoning.js +3 -4
  518. package/dist/ui-core/commands/pickers/search-reasoning.js.map +1 -1
  519. package/dist/ui-core/commands/prompt-commands.d.ts +2 -0
  520. package/dist/ui-core/commands/prompt-commands.js +10 -0
  521. package/dist/ui-core/commands/prompt-commands.js.map +1 -0
  522. package/dist/ui-core/commands/rtk-commands.js +35 -16
  523. package/dist/ui-core/commands/rtk-commands.js.map +1 -1
  524. package/dist/ui-core/commands/session-commands.js +22 -7
  525. package/dist/ui-core/commands/session-commands.js.map +1 -1
  526. package/dist/ui-core/commands/subagent-commands.js +5 -4
  527. package/dist/ui-core/commands/subagent-commands.js.map +1 -1
  528. package/dist/ui-core/composer/composer-meta.js +2 -5
  529. package/dist/ui-core/composer/composer-meta.js.map +1 -1
  530. package/dist/ui-core/controllers/overlay-controller.d.ts +13 -0
  531. package/dist/ui-core/controllers/overlay-controller.js +33 -6
  532. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  533. package/dist/ui-core/rendering/batch-sections.d.ts +1 -1
  534. package/dist/ui-core/rendering/batch-sections.js +18 -4
  535. package/dist/ui-core/rendering/batch-sections.js.map +1 -1
  536. package/dist/ui-core/rendering/duration.d.ts +2 -0
  537. package/dist/ui-core/rendering/duration.js +9 -1
  538. package/dist/ui-core/rendering/duration.js.map +1 -1
  539. package/dist/ui-core/rendering/intro-header.js +5 -6
  540. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  541. package/dist/ui-core/rendering/open-tool-output.js +4 -1
  542. package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
  543. package/dist/ui-core/rendering/pager-source.js +3 -0
  544. package/dist/ui-core/rendering/pager-source.js.map +1 -1
  545. package/dist/ui-core/rendering/pager-text.js +3 -0
  546. package/dist/ui-core/rendering/pager-text.js.map +1 -1
  547. package/dist/ui-core/rendering/pager-view-policy.js +4 -2
  548. package/dist/ui-core/rendering/pager-view-policy.js.map +1 -1
  549. package/dist/ui-core/rendering/session-prompts-pager-source.d.ts +3 -0
  550. package/dist/ui-core/rendering/session-prompts-pager-source.js +40 -0
  551. package/dist/ui-core/rendering/session-prompts-pager-source.js.map +1 -0
  552. package/dist/ui-core/rendering/subagent-source.d.ts +4 -3
  553. package/dist/ui-core/rendering/subagent-source.js +79 -7
  554. package/dist/ui-core/rendering/subagent-source.js.map +1 -1
  555. package/dist/ui-core/rendering/text-width.d.ts +1 -0
  556. package/dist/ui-core/rendering/text-width.js +31 -0
  557. package/dist/ui-core/rendering/text-width.js.map +1 -1
  558. package/dist/ui-core/rendering/tool-presenter.d.ts +9 -4
  559. package/dist/ui-core/rendering/tool-presenter.js +43 -91
  560. package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
  561. package/dist/ui-core/rendering/usage-pager-source.js +6 -2
  562. package/dist/ui-core/rendering/usage-pager-source.js.map +1 -1
  563. package/dist/ui-core/state/transcript-store.js +7 -2
  564. package/dist/ui-core/state/transcript-store.js.map +1 -1
  565. package/dist/ui-core/state/transcript-types.d.ts +1 -1
  566. package/dist/ui-core/state/transcript-types.js +4 -2
  567. package/dist/ui-core/state/transcript-types.js.map +1 -1
  568. package/dist/version.generated.d.ts +2 -2
  569. package/dist/version.generated.js +2 -2
  570. package/package.json +6 -2
  571. package/dist/agent/turn/pentest-tools.d.ts +0 -3
  572. package/dist/agent/turn/pentest-tools.js +0 -17
  573. package/dist/agent/turn/pentest-tools.js.map +0 -1
  574. package/dist/classic/bootstrap/suspend-port.d.ts +0 -14
  575. package/dist/classic/bootstrap/suspend-port.js +0 -29
  576. package/dist/classic/bootstrap/suspend-port.js.map +0 -1
  577. package/dist/tools/capabilities.d.ts +0 -12
  578. package/dist/tools/capabilities.js +0 -225
  579. package/dist/tools/capabilities.js.map +0 -1
  580. package/dist/tools/definitions/network.d.ts +0 -2
  581. package/dist/tools/definitions/network.js +0 -17
  582. package/dist/tools/definitions/network.js.map +0 -1
  583. package/dist/tools/definitions/orchestration.d.ts +0 -2
  584. package/dist/tools/definitions/orchestration.js +0 -27
  585. package/dist/tools/definitions/orchestration.js.map +0 -1
  586. package/dist/tools/fs/search.d.ts +0 -32
  587. package/dist/tools/fs/search.js +0 -427
  588. package/dist/tools/fs/search.js.map +0 -1
  589. package/dist/tools/handlers/network-3.d.ts +0 -2
  590. package/dist/tools/handlers/network-3.js +0 -13
  591. package/dist/tools/handlers/network-3.js.map +0 -1
  592. package/dist/tools/handlers/orchestration-2.d.ts +0 -2
  593. package/dist/tools/handlers/orchestration-2.js +0 -16
  594. package/dist/tools/handlers/orchestration-2.js.map +0 -1
  595. package/dist/tools/net-ping-sweep.d.ts +0 -18
  596. package/dist/tools/net-ping-sweep.js +0 -274
  597. package/dist/tools/net-ping-sweep.js.map +0 -1
  598. package/dist/tools/wordlists.d.ts +0 -6
  599. package/dist/tools/wordlists.js +0 -390
  600. package/dist/tools/wordlists.js.map +0 -1
  601. package/dist/tui-v2/bootstrap/pager-export.d.ts +0 -7
  602. package/dist/tui-v2/bootstrap/pager-export.js +0 -19
  603. package/dist/tui-v2/bootstrap/pager-export.js.map +0 -1
  604. package/dist/ui-core/ports/pager-export-port.d.ts +0 -16
  605. package/dist/ui-core/ports/pager-export-port.js +0 -68
  606. package/dist/ui-core/ports/pager-export-port.js.map +0 -1
  607. package/dist/ui-core/rendering/fs-search-summary.d.ts +0 -11
  608. package/dist/ui-core/rendering/fs-search-summary.js +0 -65
  609. package/dist/ui-core/rendering/fs-search-summary.js.map +0 -1
@@ -1,9 +1,11 @@
1
1
  import { canonicalizeChatMessageReasoningArtifacts } from "../../llm/reasoning-artifacts.js";
2
2
  import { fixOwner, handlePermissionError, safeExists } from "../../os/permissions.js";
3
- import { readValidatedHistoryIndex, rebuildHistoryIndexWithStatus, scanHistoryJsonl, writeIndexedJsonl } from "../history-index.js";
3
+ import { historySummary, readValidatedHistoryIndex, rebuildHistoryIndexWithStatus, rewriteIndexedHistorySources, scanHistoryJsonl } from "../history-index.js";
4
4
  import { acquireJsonlWriteLock, historyDirPath } from "./jsonl-lock.js";
5
5
  import { copyFile, mkdir, readdir, rm } from "node:fs/promises";
6
6
  import { join } from "node:path";
7
+ import { compareHistoryFreshness } from "./freshness.js";
8
+ export { compareHistoryFreshness, historyRevision, historyWriterGeneration } from "./freshness.js";
7
9
  export function jsonlFilePath() {
8
10
  return join(historyDirPath(), "history.jsonl");
9
11
  }
@@ -31,39 +33,6 @@ function updatedAtMs(record) {
31
33
  const t = Date.parse(record.updatedAt || record.createdAt || "");
32
34
  return Number.isFinite(t) ? t : 0;
33
35
  }
34
- export function historyRevision(record) {
35
- const revision = record?.revision;
36
- return typeof revision === "number" &&
37
- Number.isSafeInteger(revision) &&
38
- revision > 0
39
- ? revision
40
- : 0;
41
- }
42
- export function historyWriterGeneration(record) {
43
- const generation = record?.writerGeneration;
44
- return typeof generation === "string" && generation.length > 0
45
- ? generation
46
- : undefined;
47
- }
48
- export function compareHistoryFreshness(left, right) {
49
- const leftGeneration = historyWriterGeneration(left);
50
- const rightGeneration = historyWriterGeneration(right);
51
- if (leftGeneration || rightGeneration) {
52
- if (!leftGeneration)
53
- return -1;
54
- if (!rightGeneration)
55
- return 1;
56
- const generationDelta = leftGeneration.localeCompare(rightGeneration);
57
- if (generationDelta !== 0)
58
- return generationDelta;
59
- }
60
- const revisionDelta = historyRevision(left) - historyRevision(right);
61
- if (revisionDelta !== 0)
62
- return revisionDelta;
63
- if (historyRevision(left) > 0)
64
- return 0;
65
- return updatedAtMs(left) - updatedAtMs(right);
66
- }
67
36
  export function dedupeHistoryById(records) {
68
37
  const byId = new Map();
69
38
  for (const record of records) {
@@ -122,6 +91,39 @@ export async function backupActiveHistory() {
122
91
  catch {
123
92
  }
124
93
  }
94
+ async function scanRecoverySource(path) {
95
+ const byId = new Map();
96
+ const scan = await scanHistoryJsonl(path, (record, offset, length) => {
97
+ if (!record?.id)
98
+ return;
99
+ const summary = historySummary(record);
100
+ const previous = byId.get(record.id);
101
+ if (previous && compareHistoryFreshness(summary, previous.entry.summary) <= 0)
102
+ return;
103
+ byId.set(record.id, { path, entry: { id: record.id, offset, length, summary } });
104
+ });
105
+ return { entries: [...byId.values()], malformed: scan.malformed };
106
+ }
107
+ function mergeRecoveryEntries(target, entries) {
108
+ for (const source of entries) {
109
+ const previous = target.get(source.entry.id);
110
+ if (!previous || compareHistoryFreshness(source.entry.summary, previous.entry.summary) > 0) {
111
+ target.set(source.entry.id, source);
112
+ }
113
+ }
114
+ }
115
+ async function readRecoveryBackup(sources) {
116
+ const names = await readdir(backupDirPath()).catch(() => []);
117
+ const backups = names.filter((name) => name.startsWith("history-") && name.endsWith(".jsonl")).sort().reverse();
118
+ for (const name of backups) {
119
+ const scan = await scanRecoverySource(join(backupDirPath(), name)).catch(() => undefined);
120
+ if (!scan?.entries.length)
121
+ continue;
122
+ sources.push(`history-backups/${name}`);
123
+ return scan.entries;
124
+ }
125
+ return [];
126
+ }
125
127
  export async function recoverOrphanedHistory() {
126
128
  const sources = [];
127
129
  const tempSources = [];
@@ -129,9 +131,8 @@ export async function recoverOrphanedHistory() {
129
131
  try {
130
132
  const activePath = jsonlFilePath();
131
133
  const activeExists = await safeExists(activePath);
132
- const tempNames = await readdir(historyDirPath())
133
- .then((names) => names.filter((name) => name.startsWith("history.jsonl.") && name.endsWith(".tmp")))
134
- .catch(() => []);
134
+ const names = await readdir(historyDirPath()).catch(() => []);
135
+ const tempNames = names.filter((name) => name.startsWith("history.jsonl.") && name.endsWith(".tmp"));
135
136
  if (activeExists && tempNames.length === 0) {
136
137
  const indexed = await readValidatedHistoryIndex(activePath, jsonlIndexFilePath());
137
138
  if (indexed)
@@ -140,84 +141,44 @@ export async function recoverOrphanedHistory() {
140
141
  if (!rebuilt.malformed)
141
142
  return { recovered: 0, sources };
142
143
  }
143
- let activeCorrupt = false;
144
- let active = [];
145
- if (activeExists) {
146
- try {
147
- const scan = await scanLatestHistoryRecords(activePath);
148
- active = scan.records;
149
- activeCorrupt = scan.malformed;
150
- }
151
- catch (error) {
152
- if (error?.code === "EACCES")
153
- handlePermissionError(error);
154
- activeCorrupt = true;
144
+ const active = activeExists
145
+ ? await scanRecoverySource(activePath)
146
+ : { entries: [], malformed: false };
147
+ const activeById = new Map(active.entries.map((source) => [source.entry.id, source]));
148
+ const merged = new Map(activeById);
149
+ if (!activeExists || active.malformed)
150
+ mergeRecoveryEntries(merged, await readRecoveryBackup(sources));
151
+ for (const name of tempNames) {
152
+ const path = join(historyDirPath(), name);
153
+ const scan = await scanRecoverySource(path).catch(() => undefined);
154
+ if (!scan)
155
+ continue;
156
+ if (scan.entries.length === 0) {
157
+ await rm(path, { force: true }).catch(() => undefined);
158
+ continue;
155
159
  }
160
+ mergeRecoveryEntries(merged, scan.entries);
161
+ sources.push(name);
162
+ tempSources.push(path);
156
163
  }
157
- const backupRecords = [];
158
- if (!activeExists || activeCorrupt) {
159
- try {
160
- const backups = (await readdir(backupDirPath()))
161
- .filter((name) => name.startsWith("history-") && name.endsWith(".jsonl"))
162
- .sort()
163
- .reverse();
164
- for (const name of backups) {
165
- const rows = await readJsonlRecordsFrom(join(backupDirPath(), name));
166
- if (rows.length === 0)
167
- continue;
168
- backupRecords.push(...rows);
169
- sources.push(`history-backups/${name}`);
170
- break;
171
- }
172
- }
173
- catch {
174
- }
175
- }
176
- const extras = [];
177
- try {
178
- const names = await readdir(historyDirPath());
179
- for (const name of names) {
180
- if (!name.startsWith("history.jsonl.") || !name.endsWith(".tmp")) {
181
- continue;
182
- }
183
- const path = join(historyDirPath(), name);
184
- const rows = await readJsonlRecordsFrom(path);
185
- if (rows.length === 0) {
186
- await rm(path, { force: true }).catch(() => undefined);
187
- continue;
188
- }
189
- extras.push(...rows);
190
- sources.push(name);
191
- tempSources.push(name);
192
- }
193
- }
194
- catch {
195
- }
196
- const activeById = new Map(active.map((record) => [record.id, record]));
197
- const merged = dedupeHistoryById([...active, ...backupRecords, ...extras]);
198
- const recoveredCount = merged.filter((record) => {
199
- const previous = activeById.get(record.id);
200
- return !previous || compareHistoryFreshness(record, previous) > 0;
164
+ const recoveredCount = [...merged.values()].filter((source) => {
165
+ const previous = activeById.get(source.entry.id);
166
+ return !previous || compareHistoryFreshness(source.entry.summary, previous.entry.summary) > 0;
201
167
  }).length;
202
- const needsRewrite = activeCorrupt ||
203
- (!activeExists && backupRecords.length > 0) ||
204
- recoveredCount > 0;
205
- if (!needsRewrite)
206
- return { recovered: 0, sources };
207
- await mkdir(historyDirPath(), { recursive: true });
208
- await fixOwner(historyDirPath());
209
- if (activeExists && !activeCorrupt)
210
- await backupActiveHistory();
211
- const sorted = sortHistoryByUpdatedDesc(merged);
212
- sorted.reverse();
213
- await writeIndexedJsonl(activePath, jsonlIndexFilePath(), sorted);
214
- await Promise.all([
215
- fixOwner(activePath),
216
- fixOwner(jsonlIndexFilePath()),
217
- ]);
218
- for (const name of tempSources) {
219
- await rm(join(historyDirPath(), name), { force: true }).catch(() => undefined);
168
+ if (active.malformed || recoveredCount > 0) {
169
+ await mkdir(historyDirPath(), { recursive: true });
170
+ await fixOwner(historyDirPath());
171
+ if (activeExists && !active.malformed)
172
+ await backupActiveHistory();
173
+ const sorted = [...merged.values()].sort((a, b) => updatedAtMs(b.entry.summary) - updatedAtMs(a.entry.summary)).reverse();
174
+ await rewriteIndexedHistorySources(activePath, jsonlIndexFilePath(), sorted);
175
+ await Promise.all([fixOwner(activePath), fixOwner(jsonlIndexFilePath())]);
176
+ }
177
+ else if (activeExists) {
178
+ await rebuildHistoryIndexWithStatus(activePath, jsonlIndexFilePath());
220
179
  }
180
+ for (const path of tempSources)
181
+ await rm(path, { force: true }).catch(() => undefined);
221
182
  return { recovered: recoveredCount, sources };
222
183
  }
223
184
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../src/store/history/recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../src/store/history/recovery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yCAAyC,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE/J,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEnG,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,oBAAoB,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,iBAAiB,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAkC/B,MAAM,CAAC,IAAI,iBAOE,CAAC;AAEd,MAAM,CAAC,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAErC,MAAM,UAAU,0BAA0B;IACxC,qBAAqB,IAAI,CAAC,CAAC;IAC3B,iBAAiB,GAAG,SAAS,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,yCAAyC,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,IAAI,eAA0C,CAAC;AAE/C,SAAS,WAAW,CAAC,MAAsD;IACzE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAiC;IAEjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,EAAE;YAAE,SAAS;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,IAAI,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAiC;IAEjC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,IAAY;IAIlD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAgB,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;QAClE,IAAI,CAAC,MAAM,EAAE,EAAE;YAAE,OAAO;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,IAAI,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACxD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAAE,OAAO;IACjD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;aAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC/D,IAAI,EAAE;aACN,OAAO,EAAE,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACnD,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IACT,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAI5C,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAgB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAClF,IAAI,CAAC,MAAM,EAAE,EAAE;YAAE,OAAO;QACxB,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,QAAQ,IAAI,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QACtF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAuC,EACvC,OAAsC;IAEtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,IAAI,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3F,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAiB;IACjD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChH,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM;YAAE,SAAS;QACpC,OAAO,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAI1C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACrG,IAAI,YAAY,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAClF,IAAI,OAAO;gBAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAgB,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,YAAY;YACzB,CAAC,CAAC,MAAM,kBAAkB,CAAC,UAAU,CAAC;YACtC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS;YAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACvG,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACvD,SAAS;YACX,CAAC;YACD,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,QAAQ,IAAI,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC,MAAM,CAAC;QACV,IAAI,MAAM,CAAC,SAAS,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;YACjC,IAAI,YAAY,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,MAAM,mBAAmB,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1H,MAAM,4BAA4B,CAAC,UAAU,EAAE,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;YAC7E,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,MAAM,6BAA6B,CAAgB,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,WAAW;YAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,sBAAsB,EAAE;aACvC,IAAI,CACH,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,0BAA0B,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,oBAAoB,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAMxB;IACX,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC"}
@@ -119,6 +119,11 @@ export async function getSession(sessionId) {
119
119
  if (indexed)
120
120
  return hydrateHistoryRecord(indexed);
121
121
  }
122
+ const active = await findHistoryRecordStreaming(jsonlFilePath(), sessionId);
123
+ if (active) {
124
+ void rebuildHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
125
+ return hydrateHistoryRecord(active);
126
+ }
122
127
  const db = await loadDatabase();
123
128
  if (db) {
124
129
  try {
@@ -131,11 +136,6 @@ export async function getSession(sessionId) {
131
136
  catch {
132
137
  }
133
138
  }
134
- const active = await findHistoryRecordStreaming(jsonlFilePath(), sessionId);
135
- if (active) {
136
- void rebuildHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
137
- return hydrateHistoryRecord(active);
138
- }
139
139
  const archived = await findHistoryRecordStreaming(archiveFilePath(), sessionId);
140
140
  return archived ? hydrateHistoryRecord(archived) : undefined;
141
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-queries.js","sourceRoot":"","sources":["../../../src/store/history/session-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-queries.js","sourceRoot":"","sources":["../../../src/store/history/session-queries.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ export interface HistoryIndexEntry {
18
18
  length: number;
19
19
  summary: HistorySummary;
20
20
  }
21
+ export interface HistorySourceEntry {
22
+ path: string;
23
+ entry: HistoryIndexEntry;
24
+ }
21
25
  interface HistoryRecordShape {
22
26
  id: string;
23
27
  writerGeneration?: string | undefined;
@@ -57,4 +61,5 @@ export declare function rebuildHistoryIndex<T extends HistoryRecordShape>(jsonlP
57
61
  export declare function findHistoryRecordStreaming<T extends HistoryRecordShape>(jsonlPath: string, id: string): Promise<T | undefined>;
58
62
  export declare function appendIndexedRanges(sourcePath: string, destinationPath: string, entries: readonly HistoryIndexEntry[]): Promise<void>;
59
63
  export declare function rewriteIndexedJsonl(jsonlPath: string, indexPath: string, entries: readonly HistoryIndexEntry[]): Promise<void>;
64
+ export declare function rewriteIndexedHistorySources(jsonlPath: string, indexPath: string, sources: readonly HistorySourceEntry[]): Promise<void>;
60
65
  export {};
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { open, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
3
+ import { compareHistoryFreshness } from "./history/freshness.js";
3
4
  export function historySummary(record) {
4
5
  const messages = Array.isArray(record.messages) ? record.messages : [];
5
6
  const transcript = Array.isArray(record.transcript) ? record.transcript : [];
@@ -24,8 +25,10 @@ export function historySummary(record) {
24
25
  ...(record.workspaceCode ? { workspaceCode: record.workspaceCode } : {}),
25
26
  };
26
27
  }
27
- async function writeHistoryIndexFile(jsonlPath, indexPath, entries) {
28
+ async function writeHistoryIndexFile(jsonlPath, indexPath, entries, expectedSource) {
28
29
  const source = await stat(jsonlPath);
30
+ if (expectedSource && (source.size !== expectedSource.size || source.mtimeMs !== expectedSource.mtimeMs))
31
+ return;
29
32
  const index = {
30
33
  schemaVersion: 1,
31
34
  source: { size: source.size, mtimeMs: source.mtimeMs },
@@ -44,7 +47,13 @@ export async function appendIndexedHistoryRecord(jsonlPath, indexPath, entries,
44
47
  let offset = 0;
45
48
  try {
46
49
  offset = (await handle.stat()).size;
47
- await handle.write(line, 0, line.length, offset);
50
+ let written = 0;
51
+ while (written < line.length) {
52
+ const result = await handle.write(line, written, line.length - written, offset + written);
53
+ if (result.bytesWritten <= 0)
54
+ throw new Error("Failed to append session history");
55
+ written += result.bytesWritten;
56
+ }
48
57
  await handle.sync().catch(() => undefined);
49
58
  }
50
59
  finally {
@@ -213,9 +222,13 @@ export async function scanHistoryJsonl(jsonlPath, visit) {
213
222
  }
214
223
  export async function rebuildHistoryIndexWithStatus(jsonlPath, indexPath) {
215
224
  const byId = new Map();
225
+ const source = await stat(jsonlPath).catch(() => undefined);
216
226
  const scan = await scanHistoryJsonl(jsonlPath, (record, offset, length) => {
217
227
  if (!record?.id)
218
228
  return;
229
+ const previous = byId.get(record.id);
230
+ if (previous && compareHistoryFreshness(record, previous.summary) <= 0)
231
+ return;
219
232
  byId.set(record.id, {
220
233
  id: record.id,
221
234
  offset,
@@ -225,7 +238,8 @@ export async function rebuildHistoryIndexWithStatus(jsonlPath, indexPath) {
225
238
  });
226
239
  const entries = [...byId.values()];
227
240
  try {
228
- await writeHistoryIndexFile(jsonlPath, indexPath, entries);
241
+ if (source)
242
+ await writeHistoryIndexFile(jsonlPath, indexPath, entries, source);
229
243
  }
230
244
  catch {
231
245
  }
@@ -237,7 +251,7 @@ export async function rebuildHistoryIndex(jsonlPath, indexPath) {
237
251
  export async function findHistoryRecordStreaming(jsonlPath, id) {
238
252
  let found;
239
253
  await scanHistoryJsonl(jsonlPath, (record) => {
240
- if (record.id === id)
254
+ if (record.id === id && (!found || compareHistoryFreshness(record, found) > 0))
241
255
  found = record;
242
256
  });
243
257
  return found;
@@ -252,16 +266,21 @@ async function copyEntryRanges(sourcePath, destination, entries, startOffset) {
252
266
  for (const entry of entries) {
253
267
  let remaining = entry.length;
254
268
  let position = entry.offset;
269
+ let lastByte = 0;
255
270
  while (remaining > 0) {
256
271
  const { bytesRead } = await source.read(buffer, 0, Math.min(buffer.length, remaining), position);
257
272
  if (bytesRead === 0)
258
273
  throw new Error(`history record ${entry.id} is shorter than indexed`);
259
- await destination.write(buffer, 0, bytesRead);
274
+ await destination.writeFile(buffer.subarray(0, bytesRead));
275
+ lastByte = buffer[bytesRead - 1];
260
276
  remaining -= bytesRead;
261
277
  position += bytesRead;
262
278
  }
263
- copied.push({ ...entry, offset });
264
- offset += entry.length;
279
+ const length = entry.length + (lastByte === 0x0a ? 0 : 1);
280
+ if (length > entry.length)
281
+ await destination.writeFile("\n");
282
+ copied.push({ ...entry, offset, length });
283
+ offset += length;
265
284
  }
266
285
  }
267
286
  finally {
@@ -283,11 +302,24 @@ export async function appendIndexedRanges(sourcePath, destinationPath, entries)
283
302
  }
284
303
  }
285
304
  export async function rewriteIndexedJsonl(jsonlPath, indexPath, entries) {
305
+ await rewriteIndexedHistorySources(jsonlPath, indexPath, entries.map((entry) => ({ path: jsonlPath, entry })));
306
+ }
307
+ export async function rewriteIndexedHistorySources(jsonlPath, indexPath, sources) {
286
308
  const jsonlTemp = `${jsonlPath}.${process.pid}.${randomUUID()}.tmp`;
287
309
  const handle = await open(jsonlTemp, "wx", 0o600);
288
- let copied;
310
+ const copied = [];
311
+ let offset = 0;
289
312
  try {
290
- copied = await copyEntryRanges(jsonlPath, handle, entries, 0);
313
+ for (let index = 0; index < sources.length;) {
314
+ const path = sources[index].path;
315
+ const entries = [];
316
+ do {
317
+ entries.push(sources[index++].entry);
318
+ } while (index < sources.length && sources[index].path === path);
319
+ const group = await copyEntryRanges(path, handle, entries, offset);
320
+ copied.push(...group);
321
+ offset += historyIndexLiveBytes(group);
322
+ }
291
323
  await handle.sync();
292
324
  }
293
325
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"history-index.js","sourceRoot":"","sources":["../../src/store/history-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history-index.js","sourceRoot":"","sources":["../../src/store/history-index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,11 @@ export { recoverOrphanedHistory } from "./history/recovery.js";
14
14
  export { compareHistoryFreshness, dedupeHistoryById, sortHistoryByUpdatedDesc };
15
15
  export type { HistoryRecord, PersistedContextUsage } from "./history/recovery.js";
16
16
  export type { HistorySummary } from "./history-index.js";
17
+ export interface HistorySessionLocation {
18
+ readonly cwd: string;
19
+ readonly workspaceFolder?: string | undefined;
20
+ readonly workspaceCode?: string | undefined;
21
+ }
17
22
  export interface ToolCallRecord {
18
23
  id: string;
19
24
  sessionId: string;
@@ -25,8 +30,8 @@ export interface ToolCallRecord {
25
30
  output: string;
26
31
  }
27
32
  export declare function materializeHistoryImages(messages: readonly ChatMessage[], budget?: ImageBudget): ChatMessage[];
28
- export declare function saveSession(messages: ChatMessage[], name?: string | undefined, transcript?: TranscriptItem[] | undefined, contextUsage?: PersistedContextUsage | undefined, revision?: number | undefined, writerGeneration?: string | undefined, previousTurn?: PreviousTurnSignal | null | undefined, sessionModel?: SessionModelSelection | undefined): Promise<HistoryRecord>;
29
- export declare function upsertSession(id: string, messages: ChatMessage[], name?: string | undefined, transcript?: TranscriptItem[] | undefined, contextUsage?: PersistedContextUsage | undefined, revision?: number | undefined, writerGeneration?: string | undefined, previousTurn?: PreviousTurnSignal | null | undefined, sessionModel?: SessionModelSelection | undefined): Promise<HistoryRecord>;
33
+ export declare function saveSession(messages: ChatMessage[], name?: string | undefined, transcript?: TranscriptItem[] | undefined, contextUsage?: PersistedContextUsage | undefined, revision?: number | undefined, writerGeneration?: string | undefined, previousTurn?: PreviousTurnSignal | null | undefined, sessionModel?: SessionModelSelection | undefined, location?: HistorySessionLocation | undefined): Promise<HistoryRecord>;
34
+ export declare function upsertSession(id: string, messages: ChatMessage[], name?: string | undefined, transcript?: TranscriptItem[] | undefined, contextUsage?: PersistedContextUsage | undefined, revision?: number | undefined, writerGeneration?: string | undefined, previousTurn?: PreviousTurnSignal | null | undefined, sessionModel?: SessionModelSelection | undefined, location?: HistorySessionLocation | undefined): Promise<HistoryRecord>;
30
35
  export declare function saveToolCall(sessionId: string, call: ToolCall, result: ToolResult): Promise<ToolCallRecord>;
31
36
  export declare function getHistoryPath(): string;
32
37
  export declare function getJsonlHistoryPath(): string;
@@ -30,13 +30,19 @@ function fallbackSessionName(messages) {
30
30
  .trim();
31
31
  return preview + (firstUser.content.length > FALLBACK_SESSION_NAME_LIMIT ? "…" : "");
32
32
  }
33
- function workspaceFieldsFromActive(existing) {
33
+ function workspaceFieldsFromActive(existing, location) {
34
34
  if (existing?.workspaceFolder) {
35
35
  return {
36
36
  workspaceFolder: existing.workspaceFolder,
37
37
  workspaceCode: existing.workspaceCode,
38
38
  };
39
39
  }
40
+ if (location) {
41
+ return {
42
+ ...(location.workspaceFolder ? { workspaceFolder: location.workspaceFolder } : {}),
43
+ ...(location.workspaceCode ? { workspaceCode: location.workspaceCode } : {}),
44
+ };
45
+ }
40
46
  const active = getActiveSessionWorkspace();
41
47
  if (active) {
42
48
  return {
@@ -169,11 +175,11 @@ function scrubTranscriptItem(item) {
169
175
  }
170
176
  }
171
177
  }
172
- export async function saveSession(messages, name, transcript, contextUsage, revision, writerGeneration, previousTurn, sessionModel) {
178
+ export async function saveSession(messages, name, transcript, contextUsage, revision, writerGeneration, previousTurn, sessionModel, location) {
173
179
  if (!name)
174
180
  name = fallbackSessionName(messages);
175
181
  const now = new Date().toISOString();
176
- const workspace = workspaceFieldsFromActive();
182
+ const workspace = workspaceFieldsFromActive(undefined, location);
177
183
  const record = {
178
184
  id: newId(),
179
185
  ...(writerGeneration ? { writerGeneration } : {}),
@@ -183,7 +189,7 @@ export async function saveSession(messages, name, transcript, contextUsage, revi
183
189
  name,
184
190
  createdAt: now,
185
191
  updatedAt: now,
186
- cwd: safeCwd(),
192
+ cwd: location?.cwd ?? safeCwd(),
187
193
  messages: scrubMessages(messages),
188
194
  transcript: scrubTranscript(transcript),
189
195
  ...(contextUsage ? { contextUsage } : {}),
@@ -225,14 +231,14 @@ async function existingSessionHeader(id) {
225
231
  }
226
232
  return getSession(id);
227
233
  }
228
- export async function upsertSession(id, messages, name, transcript, contextUsage, revision, writerGeneration, previousTurn, sessionModel) {
234
+ export async function upsertSession(id, messages, name, transcript, contextUsage, revision, writerGeneration, previousTurn, sessionModel, location) {
229
235
  const existing = await existingSessionHeader(id);
230
236
  const requestedRevision = typeof revision === "number" && Number.isSafeInteger(revision) && revision > 0
231
237
  ? revision
232
238
  : undefined;
233
239
  const derivedName = fallbackSessionName(messages);
234
240
  const now = new Date().toISOString();
235
- const workspace = workspaceFieldsFromActive(existing);
241
+ const workspace = workspaceFieldsFromActive(existing, location);
236
242
  const effectiveWriterGeneration = writerGeneration ?? existing?.writerGeneration;
237
243
  const record = {
238
244
  id,
@@ -244,7 +250,7 @@ export async function upsertSession(id, messages, name, transcript, contextUsage
244
250
  name: name ?? existing?.name ?? derivedName,
245
251
  createdAt: existing?.createdAt ?? now,
246
252
  updatedAt: now,
247
- cwd: safeCwd(),
253
+ cwd: location?.cwd ?? safeCwd(),
248
254
  messages: scrubMessages(messages),
249
255
  transcript: scrubTranscript(transcript),
250
256
  ...(contextUsage