@ai-agent-forge/agent-forge 0.86.1 → 0.86.3

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 (146) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/bundle/.build-manifest.json +158 -152
  3. package/dist/bundle/chunks/{anthropic-messages-RJYU4TCY.js → anthropic-messages-EVFQ6MLR.js} +3 -3
  4. package/dist/bundle/chunks/{azure-openai-responses-LESTCUL7.js → azure-openai-responses-WQCZWFAH.js} +1 -1
  5. package/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
  6. package/dist/bundle/chunks/{chunk-MDOTREMR.js → chunk-3WE3W52L.js} +2 -2
  7. package/dist/bundle/chunks/chunk-F6SBZUJG.js +141 -0
  8. package/dist/bundle/chunks/{chunk-SER2HCLE.js → chunk-N6BQJSGH.js} +1 -1
  9. package/dist/bundle/chunks/chunk-RK2X2KU2.js +1442 -0
  10. package/dist/bundle/chunks/chunk-TBPTHASB.js +2 -0
  11. package/dist/bundle/chunks/github-copilot.js +1 -1
  12. package/dist/bundle/chunks/{google-generative-ai-NZ66X6K7.js → google-generative-ai-ISTTUZMW.js} +1 -1
  13. package/dist/bundle/chunks/{google-vertex-2ZZOFBNQ.js → google-vertex-NS7ZF7DK.js} +1 -1
  14. package/dist/bundle/chunks/jiti-static-loader-CDSTNEDU.js +2 -0
  15. package/dist/bundle/chunks/{mistral-conversations-B6DZRMEK.js → mistral-conversations-GINO6Z4I.js} +1 -1
  16. package/dist/bundle/chunks/{openai-codex-responses-UFH6O5K6.js → openai-codex-responses-YDJSZOIH.js} +1 -1
  17. package/dist/bundle/chunks/{openai-completions-A55GHA4O.js → openai-completions-UPRWTQPT.js} +3 -3
  18. package/dist/bundle/chunks/openai-responses-O63W6HQ3.js +2 -0
  19. package/dist/bundle/chunks/virtual-modules-O72ICTMQ.js +2 -0
  20. package/dist/bundle/cli.js +1 -1
  21. package/dist/bundle/index.js +1 -1
  22. package/dist/bundle/rpc-entry.js +1 -1
  23. package/dist/cli/args.d.ts.map +1 -1
  24. package/dist/cli/args.js +14 -4
  25. package/dist/cli/args.js.map +1 -1
  26. package/dist/cli/session-picker.d.ts +1 -1
  27. package/dist/cli/session-picker.d.ts.map +1 -1
  28. package/dist/cli/session-picker.js +8 -2
  29. package/dist/cli/session-picker.js.map +1 -1
  30. package/dist/core/agent-session-compaction.d.ts +7 -2
  31. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  32. package/dist/core/agent-session-compaction.js +137 -43
  33. package/dist/core/agent-session-compaction.js.map +1 -1
  34. package/dist/core/agent-session-internal.d.ts +6 -0
  35. package/dist/core/agent-session-internal.d.ts.map +1 -1
  36. package/dist/core/agent-session-internal.js.map +1 -1
  37. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  38. package/dist/core/agent-session-runtime.js +1 -1
  39. package/dist/core/agent-session-runtime.js.map +1 -1
  40. package/dist/core/agent-session.d.ts +21 -4
  41. package/dist/core/agent-session.d.ts.map +1 -1
  42. package/dist/core/agent-session.js +104 -93
  43. package/dist/core/agent-session.js.map +1 -1
  44. package/dist/core/compaction/compaction.d.ts +15 -0
  45. package/dist/core/compaction/compaction.d.ts.map +1 -1
  46. package/dist/core/compaction/compaction.js +20 -1
  47. package/dist/core/compaction/compaction.js.map +1 -1
  48. package/dist/core/export-html/template.css +10 -0
  49. package/dist/core/export-html/template.js +50 -17
  50. package/dist/core/extensions/bootstrap-compaction-policy.d.ts.map +1 -1
  51. package/dist/core/extensions/bootstrap-compaction-policy.js +3 -1
  52. package/dist/core/extensions/bootstrap-compaction-policy.js.map +1 -1
  53. package/dist/core/extensions/capability-plugin.d.ts.map +1 -1
  54. package/dist/core/extensions/capability-plugin.js +25 -30
  55. package/dist/core/extensions/capability-plugin.js.map +1 -1
  56. package/dist/core/extensions/jiti-static-loader.d.ts +2 -0
  57. package/dist/core/extensions/jiti-static-loader.d.ts.map +1 -0
  58. package/dist/core/extensions/jiti-static-loader.js +5 -0
  59. package/dist/core/extensions/jiti-static-loader.js.map +1 -0
  60. package/dist/core/extensions/microcompact.d.ts +3 -2
  61. package/dist/core/extensions/microcompact.d.ts.map +1 -1
  62. package/dist/core/extensions/microcompact.js +14 -5
  63. package/dist/core/extensions/microcompact.js.map +1 -1
  64. package/dist/core/extensions/virtual-modules.d.ts +3 -0
  65. package/dist/core/extensions/virtual-modules.d.ts.map +1 -0
  66. package/dist/core/extensions/virtual-modules.js +32 -0
  67. package/dist/core/extensions/virtual-modules.js.map +1 -0
  68. package/dist/core/facade/coding-agent-facade.d.ts +3 -3
  69. package/dist/core/facade/coding-agent-facade.d.ts.map +1 -1
  70. package/dist/core/facade/coding-agent-facade.js.map +1 -1
  71. package/dist/core/facade/coding-agent-runtime-facade.d.ts +2 -2
  72. package/dist/core/facade/coding-agent-runtime-facade.d.ts.map +1 -1
  73. package/dist/core/facade/coding-agent-runtime-facade.js +4 -4
  74. package/dist/core/facade/coding-agent-runtime-facade.js.map +1 -1
  75. package/dist/core/model-resolver.d.ts.map +1 -1
  76. package/dist/core/model-resolver.js +2 -2
  77. package/dist/core/model-resolver.js.map +1 -1
  78. package/dist/core/package-install-host.d.ts +1 -1
  79. package/dist/core/package-install-host.d.ts.map +1 -1
  80. package/dist/core/package-install-host.js +4 -3
  81. package/dist/core/package-install-host.js.map +1 -1
  82. package/dist/core/prompt-templates.d.ts +6 -1
  83. package/dist/core/prompt-templates.d.ts.map +1 -1
  84. package/dist/core/prompt-templates.js +61 -35
  85. package/dist/core/prompt-templates.js.map +1 -1
  86. package/dist/core/resource-loader.d.ts.map +1 -1
  87. package/dist/core/resource-loader.js +6 -2
  88. package/dist/core/resource-loader.js.map +1 -1
  89. package/dist/core/session-manager.d.ts +23 -4
  90. package/dist/core/session-manager.d.ts.map +1 -1
  91. package/dist/core/session-manager.js +146 -108
  92. package/dist/core/session-manager.js.map +1 -1
  93. package/dist/core/settings-manager.d.ts +3 -0
  94. package/dist/core/settings-manager.d.ts.map +1 -1
  95. package/dist/core/settings-manager.js +4 -0
  96. package/dist/core/settings-manager.js.map +1 -1
  97. package/dist/core/tools/bash.d.ts +2 -1
  98. package/dist/core/tools/bash.d.ts.map +1 -1
  99. package/dist/core/tools/bash.js +18 -3
  100. package/dist/core/tools/bash.js.map +1 -1
  101. package/dist/main.d.ts.map +1 -1
  102. package/dist/main.js +6 -7
  103. package/dist/main.js.map +1 -1
  104. package/dist/modes/interactive/components/session-selector.d.ts +5 -5
  105. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  106. package/dist/modes/interactive/components/session-selector.js +74 -50
  107. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  108. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  109. package/dist/modes/interactive/components/tool-execution.js +18 -9
  110. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  111. package/dist/modes/interactive/interactive-mode.d.ts +2 -2
  112. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  113. package/dist/modes/interactive/interactive-mode.js +35 -32
  114. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  115. package/dist/modes/rpc/rpc-client.d.ts +14 -6
  116. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  117. package/dist/modes/rpc/rpc-client.js +47 -10
  118. package/dist/modes/rpc/rpc-client.js.map +1 -1
  119. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  120. package/dist/modes/rpc/rpc-mode.js +9 -10
  121. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  122. package/dist/modes/rpc/rpc-types.d.ts +10 -1
  123. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  124. package/dist/modes/rpc/rpc-types.js.map +1 -1
  125. package/dist/remote/server-assembly.d.ts.map +1 -1
  126. package/dist/remote/server-assembly.js +1 -1
  127. package/dist/remote/server-assembly.js.map +1 -1
  128. package/dist/utils/clipboard-image.d.ts.map +1 -1
  129. package/dist/utils/clipboard-image.js +1 -12
  130. package/dist/utils/clipboard-image.js.map +1 -1
  131. package/dist/utils/clipboard.d.ts.map +1 -1
  132. package/dist/utils/clipboard.js +88 -13
  133. package/dist/utils/clipboard.js.map +1 -1
  134. package/dist/utils/mime.d.ts.map +1 -1
  135. package/dist/utils/mime.js +1 -1
  136. package/dist/utils/mime.js.map +1 -1
  137. package/dist/utils/wsl.d.ts +3 -0
  138. package/dist/utils/wsl.d.ts.map +1 -0
  139. package/dist/utils/wsl.js +15 -0
  140. package/dist/utils/wsl.js.map +1 -0
  141. package/docs/rpc.md +7 -5
  142. package/docs/sdk.md +9 -8
  143. package/package.json +1 -1
  144. package/dist/bundle/chunks/chunk-KQEGUM34.js +0 -2
  145. package/dist/bundle/chunks/chunk-S3YLY4MG.js +0 -1581
  146. package/dist/bundle/chunks/openai-responses-TJLXRAXR.js +0 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,40 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.86.3] - 2026-10-01
6
+ ### Added
7
+ - The session picker loads progressively: partial session lists publish to the UI as they are discovered (sorted by activity), loading is cancellable through an `AbortSignal` threaded from the selector through `SessionManager.list`/`listAll`, and file stats are reused between discovery and header reads (upstream pi `dfbf793b7`).
8
+ - HTML exports gained a hidden-message toggle (H key): messages hidden in the terminal (`display: false`, e.g. turn-interrupted markers) render with a marker by default and can be revealed; deep links to hidden messages expand them automatically (upstream pi `b2bd111f2`).
9
+ - Successful RPC `prompt`, `steer`, and `follow_up` responses now include `data.disposition` (`"handled"` / `"queued"` / `"started"`), so clients can tell whether a run started and whether to wait for `agent_settled`; `AgentSession.steer()`/`followUp()` and `RpcClient.prompt()`/`steer()`/`followUp()` return the disposition, and `RpcClient.promptAndWait()` no longer waits for `agent_settled` when the disposition is `"handled"`. The `preflightResult` prompt hook now receives the disposition instead of a boolean and is not called for rejected prompts (upstream pi `e473b5cd8`).
10
+ ### Fixed
11
+ - New session files are now created at the first user message instead of the first assistant response, so interrupting the first turn (double Ctrl+C, process kill) no longer loses the prompt and the session stays visible to resume/fork; setup-only sessions still leave no file behind (upstream pi `ff72faba2`).
12
+ - Pinned temporary git plugin sources (`git:...@ref`) key their cache folder by host, path, and ref, so changing the pinned ref no longer keeps loading the previously downloaded commit; unpinned sources keep the existing folder (upstream pi `f444ea5ea`).
13
+ - Signal-terminated shell commands now report the conventional `128 + signal` exit code instead of `null`, and custom shell operations returning a null exit code fail closed with partial output preserved, so killed commands are no longer reported to the model as successful (upstream pi `a8b3dd199`).
14
+ - `RpcClient` event dispatch iterates a listener snapshot, so a listener unsubscribing during dispatch no longer makes later listeners miss that event (upstream pi `92e8d4f02`).
15
+ - Compaction cancellation races are closed: summarization auth waits honor `AbortSignal` (and abort is never swallowed into an unauthenticated fallback), branch-summary auth takes the branch controller's signal, and a cancelled auto-compaction settles as `compaction_end aborted:true` instead of reporting "Auto-compaction failed" and dispatching the failed lifecycle (upstream pi `de2de549b`).
16
+ - Split-turn summarization prompts no longer trigger reasoning-model refusals: the conversation payload and instructions are separated into `# Conversation` / `# Instructions` sections with continuation-oriented wording, replacing the `<conversation>` wrapper (upstream pi `d192bd6dc`).
17
+ - Recent-session discovery sorts candidates by mtime and reads headers until the first cwd match instead of reading every header (upstream pi `dd01f5b24`).
18
+ - Resuming by an exact session id (or validating a fork target) reads a single header through the new `SessionManager.findById` instead of scanning every transcript (upstream pi `9b791a4cc`).
19
+ - Anthropic thinking-drop notices are shortened to `Anthropic dropped N thinking block(s) (details in session)` and shown only when the count grows over the previous assistant message, instead of repeating a full reason/path list after every turn and during session replay (upstream pi `13784598d`, `465853498`).
20
+ - Stale tool-image conversions no longer render after a result update: the Kitty conversion cache validates the source image data and drops conversions whose source was replaced mid-flight (upstream pi `21b8cc1a4`).
21
+ - Clipboard writes report real failures: a local session with a display fails closed instead of counting an unverifiable OSC 52 write as success, backend failures surface platform-specific setup hints, and the fullscreen copy flash shows the concrete error for 5 seconds (upstream pi `3349e1db1`, `60e7e76bd`).
22
+ - Headless and WSL clipboard writes work again: display-less sessions keep the OSC 52 fallback, and WSL without WSLg routes through `powershell.exe Set-Clipboard` with a UTF-8 file handoff so non-ASCII text no longer corrupts through `clip.exe`'s code page (upstream pi `6dff740fa`).
23
+ - Bash tool durations format as hours/minutes/seconds once a command runs past a minute (upstream pi `fe219d7f8`).
24
+ - Image sniffing requires complete GIF signatures (`GIF87a`/`GIF89a`), so text files starting with `GIF` are no longer treated as images (upstream pi `47a18e37b`).
25
+ - Invalid prompt-template frontmatter is reported as a warning diagnostic with the parse location instead of the template silently disappearing (upstream pi `b6419322e`).
26
+ - Invalid `--mode` values are rejected with the list of valid modes instead of being silently ignored (upstream pi `e40126f57`).
27
+ - The `opencode-go` and `together` default models now resolve to `kimi-k3` / `moonshotai/Kimi-K3` after Kimi K2.6 retired from the catalog, instead of pointing at a nonexistent model (upstream pi `e1787702d`).
28
+
29
+ - Small context windows no longer spin the compaction loop: `keepRecentTokens` is now clamped per model window (`effectiveKeepRecentTokens`: half the summarizable window `contextWindow - reserveTokens`, floor 1024, result floor 1; unknown and large windows keep the configured value — 200K stays 20000, a 30K window resolves 20000 → 6808), applied uniformly to threshold decisions, manual and automatic preparations, and the overflow trim stage-0 target. Seat-measured on a 30K gateway window: the default 20000 budget protected the entire history, so threshold hits answered `compact: true` with a zero-length summarizable prefix until the real ceiling overflowed. Deterministic coverage in `test/suite/agent-session-compaction.test.ts`.
30
+ - A recoverable length stop (truncated response) whose compact-and-retry recovery failed now enters the overflow trim ladder instead of dead-ending: turn-boundary projection trims free input room for the truncated output, and the failure prefix is split by cause (the existing `Context overflow persists...` wording is unchanged; truncated responses report `Truncated response persists after compaction and N trim attempts. `). Deterministic coverage in `test/suite/agent-session-compaction.test.ts`.
31
+ ### Changed
32
+ - The pre-response threshold check (`compactBeforeNextAssistantResponse`, the default `prepareNextTurn` link between agent turns) now carries `branchEntries`/`keepRecentTokens`/`microcompactEnabled` in its decision request and lands `decision.relief` exactly like the post-run path (entry append + context reprojection + 3-response cooldown), so microcompact relief is no longer unreachable on that path. Deterministic coverage in `test/agent-session-microcompact.test.ts`.
33
+
34
+ ## [0.86.2] - 2026-10-01
35
+ ### Changed
36
+
37
+ - Microcompact relief hardening (cooldown guard / setting / media protection): threshold decisions now carry `microcompactEnabled` (settings `compaction.microcompactEnabled`, default `true`, AND a per-model-request cooldown), so a landed relief starts a 3-assistant-response cooldown (one decrement per `message_end`, floor 0, not reset by user `message_start`) during which threshold hits go straight to full compaction — every microcompact is a mid-history rewrite and this gateway's prefix cache keeps only 40-50% on those, so the cooldown caps the worst-case repeat-trigger churn on the threshold band. Tool results whose content carries non-text parts (images) are never elided (originals stay until full compaction). Deterministic coverage in `test/agent-session-microcompact.test.ts`.
38
+
5
39
  ## [0.86.1] - 2026-09-30
6
40
  ### Added
7
41