@pentoshi/clai 5.0.0 → 5.1.1

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 (252) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/MCP.md +4 -3
  3. package/PROVIDERS.md +13 -0
  4. package/REA.md +2 -0
  5. package/README.md +3 -1
  6. package/dist/agent/compaction/compaction-prompt.js +1 -0
  7. package/dist/agent/compaction/compaction-prompt.js.map +1 -1
  8. package/dist/agent/context/compact-with-summary.js +5 -2
  9. package/dist/agent/context/compact-with-summary.js.map +1 -1
  10. package/dist/agent/context/compaction-skills.d.ts +4 -0
  11. package/dist/agent/context/compaction-skills.js +136 -0
  12. package/dist/agent/context/compaction-skills.js.map +1 -0
  13. package/dist/agent/context-manager.js +6 -3
  14. package/dist/agent/context-manager.js.map +1 -1
  15. package/dist/agent/events.d.ts +4 -0
  16. package/dist/agent/evidence/tool-budgets.js +3 -3
  17. package/dist/agent/evidence/tool-budgets.js.map +1 -1
  18. package/dist/agent/loop-guard.d.ts +1 -0
  19. package/dist/agent/loop-guard.js +29 -6
  20. package/dist/agent/loop-guard.js.map +1 -1
  21. package/dist/agent/outcomes.js +4 -0
  22. package/dist/agent/outcomes.js.map +1 -1
  23. package/dist/agent/parser/arg-formatting.js +8 -2
  24. package/dist/agent/parser/arg-formatting.js.map +1 -1
  25. package/dist/agent/plan-implement-compact.js +2 -1
  26. package/dist/agent/plan-implement-compact.js.map +1 -1
  27. package/dist/agent/reliability-policy.d.ts +2 -1
  28. package/dist/agent/reliability-policy.js +7 -16
  29. package/dist/agent/reliability-policy.js.map +1 -1
  30. package/dist/agent/subagents/read-only-tools.js +7 -8
  31. package/dist/agent/subagents/read-only-tools.js.map +1 -1
  32. package/dist/agent/turn/loop/native-tool-calls.js +2 -2
  33. package/dist/agent/turn/loop/native-tool-calls.js.map +1 -1
  34. package/dist/agent/turn/loop/pending-tool-calls.d.ts +16 -0
  35. package/dist/agent/turn/loop/pending-tool-calls.js +53 -0
  36. package/dist/agent/turn/loop/pending-tool-calls.js.map +1 -0
  37. package/dist/agent/turn/loop/round-request.js +1 -0
  38. package/dist/agent/turn/loop/round-request.js.map +1 -1
  39. package/dist/agent/turn/loop/run-rounds.js +2 -0
  40. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  41. package/dist/agent/turn/loop/stream-session.d.ts +5 -7
  42. package/dist/agent/turn/loop/stream-session.js +43 -31
  43. package/dist/agent/turn/loop/stream-session.js.map +1 -1
  44. package/dist/agent/turn/tool-result-recorder.js +1 -0
  45. package/dist/agent/turn/tool-result-recorder.js.map +1 -1
  46. package/dist/agent/turn/tool-watchdog.js +4 -0
  47. package/dist/agent/turn/tool-watchdog.js.map +1 -1
  48. package/dist/app/adapters/agent-event-adapter.d.ts +1 -0
  49. package/dist/app/adapters/agent-event-adapter.js +15 -0
  50. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  51. package/dist/app/commands/catalog.js +1 -0
  52. package/dist/app/commands/catalog.js.map +1 -1
  53. package/dist/app/controllers/cancel-coordinator.d.ts +1 -0
  54. package/dist/app/controllers/cancel-coordinator.js +7 -2
  55. package/dist/app/controllers/cancel-coordinator.js.map +1 -1
  56. package/dist/app/controllers/session-controller.js +2 -2
  57. package/dist/app/controllers/session-controller.js.map +1 -1
  58. package/dist/app/events/app-event.d.ts +1 -0
  59. package/dist/app/events/app-event.js.map +1 -1
  60. package/dist/classic/app/wiring-feed-scroll.js +1 -1
  61. package/dist/classic/app/wiring-feed-scroll.js.map +1 -1
  62. package/dist/classic/app/wiring-interactions.js +1 -2
  63. package/dist/classic/app/wiring-interactions.js.map +1 -1
  64. package/dist/classic/app/wiring-selection.js +1 -1
  65. package/dist/classic/app/wiring-selection.js.map +1 -1
  66. package/dist/classic/blocks/thinking-lines.js +1 -0
  67. package/dist/classic/blocks/thinking-lines.js.map +1 -1
  68. package/dist/classic/blocks/tool-lines.js +8 -3
  69. package/dist/classic/blocks/tool-lines.js.map +1 -1
  70. package/dist/classic/bootstrap/start-classic.js +6 -12
  71. package/dist/classic/bootstrap/start-classic.js.map +1 -1
  72. package/dist/classic/input/cancel-ladder.d.ts +1 -0
  73. package/dist/classic/input/cancel-ladder.js +21 -23
  74. package/dist/classic/input/cancel-ladder.js.map +1 -1
  75. package/dist/classic/panels/plan-panel.js +1 -1
  76. package/dist/classic/panels/plan-panel.js.map +1 -1
  77. package/dist/llm/capabilities.js +5 -5
  78. package/dist/llm/capabilities.js.map +1 -1
  79. package/dist/llm/capability/state.d.ts +1 -1
  80. package/dist/llm/capability/tool-dialect.js +1 -0
  81. package/dist/llm/capability/tool-dialect.js.map +1 -1
  82. package/dist/llm/capability/vision-patterns.js +1 -0
  83. package/dist/llm/capability/vision-patterns.js.map +1 -1
  84. package/dist/llm/capability/vision-registry.js +1 -1
  85. package/dist/llm/capability/vision-registry.js.map +1 -1
  86. package/dist/llm/hinoki-models.d.ts +3 -0
  87. package/dist/llm/hinoki-models.js +52 -0
  88. package/dist/llm/hinoki-models.js.map +1 -0
  89. package/dist/llm/hinoki-profile.d.ts +4 -0
  90. package/dist/llm/hinoki-profile.js +58 -0
  91. package/dist/llm/hinoki-profile.js.map +1 -0
  92. package/dist/llm/hinoki.d.ts +3 -0
  93. package/dist/llm/hinoki.js +149 -0
  94. package/dist/llm/hinoki.js.map +1 -0
  95. package/dist/llm/provider-identity.js +5 -0
  96. package/dist/llm/provider-identity.js.map +1 -1
  97. package/dist/llm/provider-info-text.js +22 -0
  98. package/dist/llm/provider-info-text.js.map +1 -1
  99. package/dist/llm/provider-model-layers.js +3 -0
  100. package/dist/llm/provider-model-layers.js.map +1 -1
  101. package/dist/llm/provider-profile-layers.js +3 -0
  102. package/dist/llm/provider-profile-layers.js.map +1 -1
  103. package/dist/llm/provider-profiles.js +1 -1
  104. package/dist/llm/provider-profiles.js.map +1 -1
  105. package/dist/llm/reasoning-capability.js +1 -0
  106. package/dist/llm/reasoning-capability.js.map +1 -1
  107. package/dist/llm/routing/provider-selection.js +3 -0
  108. package/dist/llm/routing/provider-selection.js.map +1 -1
  109. package/dist/llm/wire/chat-body.js +7 -5
  110. package/dist/llm/wire/chat-body.js.map +1 -1
  111. package/dist/llm/wire/openai-stream.js +2 -1
  112. package/dist/llm/wire/openai-stream.js.map +1 -1
  113. package/dist/mcp/manager.d.ts +3 -0
  114. package/dist/mcp/manager.js +43 -51
  115. package/dist/mcp/manager.js.map +1 -1
  116. package/dist/mcp/transport-http.js +1 -1
  117. package/dist/mcp/transport-http.js.map +1 -1
  118. package/dist/mcp/transport-stdio.js +1 -1
  119. package/dist/mcp/transport-stdio.js.map +1 -1
  120. package/dist/noninteractive/stream-renderer.js +1 -0
  121. package/dist/noninteractive/stream-renderer.js.map +1 -1
  122. package/dist/prompts/embedded.js +1 -1
  123. package/dist/prompts/embedded.js.map +1 -1
  124. package/dist/prompts/system.agent.md +1 -1
  125. package/dist/rea/runtime.js +1 -1
  126. package/dist/rea/runtime.js.map +1 -1
  127. package/dist/session-runtime/start-runtime.js +6 -1
  128. package/dist/session-runtime/start-runtime.js.map +1 -1
  129. package/dist/skills/bundled-catalog.generated.d.ts +2 -0
  130. package/dist/skills/bundled-catalog.generated.js +25 -0
  131. package/dist/skills/bundled-catalog.generated.js.map +1 -0
  132. package/dist/skills/bundled-content.generated.d.ts +1 -0
  133. package/dist/skills/bundled-content.generated.js +20 -0
  134. package/dist/skills/bundled-content.generated.js.map +1 -0
  135. package/dist/skills/bundled.d.ts +4 -0
  136. package/dist/skills/bundled.js +111 -0
  137. package/dist/skills/bundled.js.map +1 -0
  138. package/dist/skills/catalog.js +7 -4
  139. package/dist/skills/catalog.js.map +1 -1
  140. package/dist/skills/discover.js +1 -0
  141. package/dist/skills/discover.js.map +1 -1
  142. package/dist/skills/registry.js +24 -16
  143. package/dist/skills/registry.js.map +1 -1
  144. package/dist/skills/types.d.ts +9 -1
  145. package/dist/skills/types.js.map +1 -1
  146. package/dist/store/config/endpoints.js +1 -0
  147. package/dist/store/config/endpoints.js.map +1 -1
  148. package/dist/store/config.js +2 -0
  149. package/dist/store/config.js.map +1 -1
  150. package/dist/tools/definitions/aggregate.js +1 -1
  151. package/dist/tools/definitions/aggregate.js.map +1 -1
  152. package/dist/tools/definitions/fs-read.js +2 -2
  153. package/dist/tools/definitions/fs-read.js.map +1 -1
  154. package/dist/tools/fs/read-input.js +33 -20
  155. package/dist/tools/fs/read-input.js.map +1 -1
  156. package/dist/tools/skills.js +11 -1
  157. package/dist/tools/skills.js.map +1 -1
  158. package/dist/tui-v2/app/App.js +38 -93
  159. package/dist/tui-v2/app/App.js.map +1 -1
  160. package/dist/tui-v2/app/layout-widths.js +1 -1
  161. package/dist/tui-v2/app/layout-widths.js.map +1 -1
  162. package/dist/tui-v2/bootstrap/patch-opentui-wheel.d.ts +9 -0
  163. package/dist/tui-v2/bootstrap/patch-opentui-wheel.js +23 -0
  164. package/dist/tui-v2/bootstrap/patch-opentui-wheel.js.map +1 -0
  165. package/dist/tui-v2/bootstrap/runtime-view.js +2 -0
  166. package/dist/tui-v2/bootstrap/runtime-view.js.map +1 -1
  167. package/dist/tui-v2/bootstrap/start-tui-v2.js +8 -12
  168. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  169. package/dist/tui-v2/components/status/status-line.js +2 -2
  170. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  171. package/dist/tui-v2/components/transcript/linkable-text.d.ts +2 -0
  172. package/dist/tui-v2/components/transcript/linkable-text.js +22 -2
  173. package/dist/tui-v2/components/transcript/linkable-text.js.map +1 -1
  174. package/dist/tui-v2/components/transcript/pending-arguments.d.ts +6 -0
  175. package/dist/tui-v2/components/transcript/pending-arguments.js +16 -0
  176. package/dist/tui-v2/components/transcript/pending-arguments.js.map +1 -0
  177. package/dist/tui-v2/components/transcript/thinking-block.js +1 -0
  178. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  179. package/dist/tui-v2/components/transcript/tool-card.js +4 -3
  180. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  181. package/dist/tui-v2/components/transcript/transcript-row.js +1 -1
  182. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  183. package/dist/tui-v2/components/transcript/transcript-scroll-port.js +3 -1
  184. package/dist/tui-v2/components/transcript/transcript-scroll-port.js.map +1 -1
  185. package/dist/tui-v2/input/escape-cancellation.d.ts +3 -3
  186. package/dist/tui-v2/input/escape-cancellation.js +4 -4
  187. package/dist/tui-v2/input/escape-cancellation.js.map +1 -1
  188. package/dist/types.d.ts +7 -1
  189. package/dist/types.js +1 -0
  190. package/dist/types.js.map +1 -1
  191. package/dist/ui-core/bootstrap/shutdown-services.js +1 -0
  192. package/dist/ui-core/bootstrap/shutdown-services.js.map +1 -1
  193. package/dist/ui-core/commands/picker-commands.js +1 -0
  194. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  195. package/dist/ui-core/layout/compute-layout.d.ts +2 -2
  196. package/dist/ui-core/layout/compute-layout.js +3 -3
  197. package/dist/ui-core/layout/compute-layout.js.map +1 -1
  198. package/dist/ui-core/motion/wheel-scroll.d.ts +4 -2
  199. package/dist/ui-core/motion/wheel-scroll.js +18 -6
  200. package/dist/ui-core/motion/wheel-scroll.js.map +1 -1
  201. package/dist/ui-core/rendering/intro-header.js +1 -0
  202. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  203. package/dist/ui-core/rendering/markdown/bold-lines.d.ts +1 -0
  204. package/dist/ui-core/rendering/markdown/bold-lines.js +79 -0
  205. package/dist/ui-core/rendering/markdown/bold-lines.js.map +1 -0
  206. package/dist/ui-core/rendering/markdown.d.ts +1 -0
  207. package/dist/ui-core/rendering/markdown.js +19 -13
  208. package/dist/ui-core/rendering/markdown.js.map +1 -1
  209. package/dist/ui-core/rendering/pending-arguments.d.ts +2 -0
  210. package/dist/ui-core/rendering/pending-arguments.js +6 -0
  211. package/dist/ui-core/rendering/pending-arguments.js.map +1 -0
  212. package/dist/ui-core/rendering/plan-view.js +0 -4
  213. package/dist/ui-core/rendering/plan-view.js.map +1 -1
  214. package/dist/ui-core/rendering/render-markdown-lines.d.ts +1 -0
  215. package/dist/ui-core/rendering/render-markdown-lines.js +1 -0
  216. package/dist/ui-core/rendering/render-markdown-lines.js.map +1 -1
  217. package/dist/ui-core/rendering/status-segments.js +1 -1
  218. package/dist/ui-core/rendering/status-segments.js.map +1 -1
  219. package/dist/ui-core/rendering/streaming-markdown.js +1 -1
  220. package/dist/ui-core/rendering/streaming-markdown.js.map +1 -1
  221. package/dist/ui-core/rendering/tool-presenter.js +47 -64
  222. package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
  223. package/dist/ui-core/state/transcript/apply-app-event.d.ts +2 -2
  224. package/dist/ui-core/state/transcript/apply-app-event.js +164 -385
  225. package/dist/ui-core/state/transcript/apply-app-event.js.map +1 -1
  226. package/dist/ui-core/state/transcript/tool-lifecycle.d.ts +19 -0
  227. package/dist/ui-core/state/transcript/tool-lifecycle.js +102 -0
  228. package/dist/ui-core/state/transcript/tool-lifecycle.js.map +1 -0
  229. package/dist/ui-core/state/transcript-hydrate.js +2 -0
  230. package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
  231. package/dist/ui-core/state/transcript-types.d.ts +1 -0
  232. package/dist/ui-core/state/transcript-types.js.map +1 -1
  233. package/dist/version.generated.d.ts +2 -2
  234. package/dist/version.generated.js +2 -2
  235. package/guides/security-skill.md +59 -0
  236. package/package.json +7 -2
  237. package/resources/skills/clai-superman-skill/SKILL.md +73 -0
  238. package/resources/skills/clai-superman-skill/references/ai-agents.md +51 -0
  239. package/resources/skills/clai-superman-skill/references/cloud-platform.md +48 -0
  240. package/resources/skills/clai-superman-skill/references/code-supply-chain.md +61 -0
  241. package/resources/skills/clai-superman-skill/references/crypto-contracts.md +46 -0
  242. package/resources/skills/clai-superman-skill/references/evidence-reporting.md +86 -0
  243. package/resources/skills/clai-superman-skill/references/identity-ad.md +51 -0
  244. package/resources/skills/clai-superman-skill/references/mobile-client.md +52 -0
  245. package/resources/skills/clai-superman-skill/references/novel-research.md +97 -0
  246. package/resources/skills/clai-superman-skill/references/operations.md +109 -0
  247. package/resources/skills/clai-superman-skill/references/security-operations.md +55 -0
  248. package/resources/skills/clai-superman-skill/references/sources.md +51 -0
  249. package/resources/skills/clai-superman-skill/references/systems-protocols.md +52 -0
  250. package/resources/skills/clai-superman-skill/references/web-api.md +65 -0
  251. package/resources/skills/clai-superman-skill/references/wireless-iot-ot.md +49 -0
  252. package/test/fixtures/security-skill-scenarios.json +191 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,67 @@
1
1
  # Changelog
2
2
 
3
+ ## v5.1.1 — 2026-10-23
4
+
5
+ ### Long-running MCP and REA tools
6
+
7
+ - Remove automatic MCP tool execution and stall deadlines, including the outer watchdog that cancelled REA analysis after about 63 seconds. Stdio, HTTP, and SSE calls wait for completion unless manually cancelled or given an explicit request deadline.
8
+ - Keep connection startup, authentication, catalog discovery, and shutdown safeguards. Explicit request deadlines cover reconnect and retry without replaying ambiguous writes.
9
+
10
+ ### Foreground-only Esc and immediate mouse cancellation
11
+
12
+ - Keep double keyboard `Esc` limited to the main agent in Classic and OpenTUI. Shell jobs, Responder tasks, subagents, and their result delivery continue; background-only activity does not arm Esc cancellation.
13
+ - Make the OpenTUI `esc: cancel` button stop the main agent on one click, without keyboard confirmation or hover expansion.
14
+ - Preserve bulk cancellation through `Ctrl+C`, explicit manual stops, and exiting clai, including bounded shutdown cleanup of owned jobs.
15
+ - Add long-running transport/watchdog regressions and native OpenTUI checks covering hover layout, one-click abort, double Esc, real background process survival, Responder result delivery, and Ctrl+C cleanup.
16
+
17
+ [Full comparison since v5.1.0](https://github.com/pentoshi007/clai/compare/v5.1.0...v5.1.1)
18
+
19
+ ## v5.1.0 — 2026-10-23
20
+
21
+ This release adds the Hinoki provider and a bundled, on-demand security skill, improves skill recovery after compaction, and fixes tool progress and terminal rendering. It covers all changes since **v5.0.0**.
22
+
23
+ ### Hinoki provider
24
+
25
+ - Add `hinoki` with the default `hinoki-offensive` model, authenticated model discovery, streaming answers and reasoning, function calls, and image support. Configure it with `clai set hinoki` and `clai use hinoki`, or `HINOKI_API_KEY`; `HINOKI_BASE_URL` and saved endpoints can override the default URL.
26
+ - Use published model metadata for context/output limits, tools, vision, and reasoning controls. Retain learned limits between sessions, coalesce concurrent catalog requests, and isolate caches by credential and endpoint. Temporary catalog failures retain the last successful result with a retry cooldown; authentication errors remain visible for key rotation.
27
+ - Preserve complete conversation and tool-result replay, per-session cache affinity, shared key failover, and measured cached-input, cache-write, and reasoning-token usage when the API reports it. Cache hits and workspace credit balances are not inferred.
28
+
29
+ ### Bundled skills and compaction recovery
30
+
31
+ - Ship `clai-superman-skill`, an on-demand security investigation library covering web/API, identity, cloud, mobile, native systems, wireless/OT, AI agents, supply chains, and related research workflows. Include its usage guide and evaluation scenarios in the npm package.
32
+ - Discover bundled skill metadata without eagerly loading reference content. Embed the library in standalone binaries and materialize its files only when loaded. Project, user, and custom-root skills with the same name continue to override the bundle.
33
+ - Preserve a bounded index of loaded skills and previously read references through both summarized and mechanical compaction. Tell the agent to reload still-relevant instructions when their full content has left live context, rather than treating a historical load marker as sufficient.
34
+ - Allow necessary skill reloads after compaction without authorizing replay of side-effecting tool sequences. Keep stable prompt/tool prefixes and cache affinity intact when loading or recovering guidance.
35
+
36
+ ### Tool progress and file reads
37
+
38
+ - Show a pending tool card as soon as the provider identifies a streamed call, before its arguments finish. Animate argument preparation in both interfaces, stop the thinking timer at the tool boundary, and update the same card when complete arguments arrive and execution begins.
39
+ - Reconcile parallel calls by wire ID or stream order, deduplicate legacy progress signals, and settle incomplete previews on cancellation, errors, or retry. Partial argument bytes are not displayed, and an unfinished preview is never recorded as a successful tool execution.
40
+ - Use one `fs.read` input parser across execution, tool schemas, argument display, outcome handling, and read-only subagents. Normalize unambiguous single-file and multi-file inputs while rejecting conflicting paths, ranges, and ambiguous filter placement with actionable errors.
41
+
42
+ ### Terminal rendering and responsiveness
43
+
44
+ - Make wheel scrolling in Classic and OpenTUI follow current input instead of replaying a long frame-by-frame backlog. Preserve single-notch precision, catch up after delayed frames, and cancel remaining motion on reversal, boundaries, and explicit jumps.
45
+ - Keep clipped artifact paths and other one-row text stable while the transcript scrolls. Middle-clip long whole-text links to preserve both ends without losing their target.
46
+ - Pin the OpenTUI status line to the terminal bottom across viewport resizes, and restore the trailing gap after turn summaries.
47
+ - Restore a dedicated version row on startup cards in both interfaces, including the compact `ver` label at narrow widths.
48
+ - Keep bold reasoning titles on their own rows in both interfaces without changing ordinary assistant emphasis or losing streamed markdown consistency.
49
+ - Color Responder-owned plan rows by task state, matching their glyphs and phase chips. Adjust split and overlay pane widths to retain a clean gutter.
50
+
51
+ ### Validation and packaging
52
+
53
+ - Check generated bundled-skill content for drift during CI and normal builds, and include it in native compilation.
54
+ - Expand regressions for Hinoki routing/catalogs/streaming, skill discovery and packaging, cache continuity through compaction, pending tool lifecycles, file-read parsing, real terminal geometry, scrolling, and plan rendering.
55
+ - Repair catalog, updater, snapshot, and loaded-machine timing regressions so the release remains gated on the complete cross-platform CI suite.
56
+
57
+ ### Upgrade notes
58
+
59
+ - No configuration or session migration is required for this release. Existing providers and user/project skills remain supported.
60
+ - Hinoki requires its own API key; generation is charged against the provider's workspace credits. See [PROVIDERS.md](https://github.com/pentoshi007/clai/blob/v5.1.0/PROVIDERS.md#hinoki) for setup and capability details.
61
+ - The bundled security skill loads on demand and does not grant extra tool permissions or change engagement scope. Override it through a normal project/user/custom skill, not by editing its generated cache. See the [security skill guide](https://github.com/pentoshi007/clai/blob/v5.1.0/guides/security-skill.md).
62
+
63
+ [Full comparison since v5.0.0](https://github.com/pentoshi007/clai/compare/v5.0.0...v5.1.0)
64
+
3
65
  ## v5.0.0 — 2026-10-22
4
66
 
5
67
  This release covers all changes since **v4.19.0**, including the REA integration, session and interface improvements, provider fixes, and the reliability work below.
package/MCP.md CHANGED
@@ -44,8 +44,7 @@ Stdio servers run as child processes, exchanging MCP messages over stdin and std
44
44
  "env": {
45
45
  "SERVICE_API_KEY": "${env:SERVICE_API_KEY}"
46
46
  },
47
- "connectTimeoutMs": 30000,
48
- "timeoutMs": 60000
47
+ "connectTimeoutMs": 30000
49
48
  }
50
49
  }
51
50
  }
@@ -53,6 +52,8 @@ Stdio servers run as child processes, exchanging MCP messages over stdin and std
53
52
 
54
53
  Commands such as `npx` and `uvx` resolve through the process environment, including Windows command shims. Set `cwd` when a server needs a particular working directory. Environment credentials stay in the server process and are redacted from supported configuration displays.
55
54
 
55
+ MCP tool calls have no default execution or output-stall deadline. Long-running calls wait for the server's result unless you cancel them. Set a server's optional `timeoutMs` to impose a deadline in milliseconds; it covers the call and any reconnect/retry together. Omit it to leave tool execution unlimited. Connection startup, catalog discovery, authentication and shutdown retain their separate safeguards. A server or network can still terminate a request.
56
+
56
57
  ### Remote services with API keys
57
58
 
58
59
  Streamable HTTP is the default for a URL. Use `auth.kind: "bearer"` for a bearer token, or `auth.kind: "header"` for a service-specific key header:
@@ -166,7 +167,7 @@ MCP servers must be trusted before their tools are used. Their descriptions and
166
167
  | Server is invalid | Check `/mcp list` for missing environment variables, malformed fields, or the winning config source. |
167
168
  | Executable cannot start | Install its runtime, check `PATH` and `cwd`, then use `/mcp reconnect <server>`. |
168
169
  | First connection is slow | Increase `connectTimeoutMs` if package installation or startup needs more than the default 30 seconds. |
169
- | A tool exceeds its deadline | Increase `timeoutMs` for that server; the default is 60 seconds. Timed-out requests are cancelled, not automatically replayed. |
170
+ | A tool exceeds its deadline | Tool calls have no default deadline. Remove or increase an explicitly configured `timeoutMs`, and check for server-side limits. Timed-out requests are cancelled, not automatically replayed. |
170
171
  | Server returns 401 | Use `/mcp login <server>` for OAuth, or correct its API key/header configuration. |
171
172
  | `mcp.call` rejects a target locally | Follow the specific target or argument error. Use the exact name and JSON object from `mcp.tools`; enabling a server again does not repair malformed arguments or an unknown tool name. |
172
173
  | OAuth registration is unavailable | Configure the service's registered `clientId`, or use a supported token/key authentication method. |
package/PROVIDERS.md CHANGED
@@ -110,6 +110,7 @@ An environment credential is also used directly when no stored credentials take
110
110
  | ExpLabs | `explabs` | `EXPLABS_API_KEY` |
111
111
  | Fireworks | `fireworks` | `FIREWORKS_API_KEY` |
112
112
  | Hetzner | `hetzner` | `HETZNER_API_KEY` |
113
+ | Hinoki | `hinoki` | `HINOKI_API_KEY` |
113
114
  | Lightning AI | `lightning` | `LIGHTNING_API_KEY` |
114
115
  | Merge Gateway | `merge-gateway` | `MERGE_GATEWAY_API_KEY` |
115
116
  | Meta Model API | `meta` | `MODEL_API_KEY` |
@@ -133,6 +134,18 @@ Agent turns retry temporary HTTP 429 failures up to four times, with visible wai
133
134
 
134
135
  Retries preserve the conversation and tool definitions; cancelling the turn cancels the wait. Explicit billing or insufficient account quota errors require an account or provider change. If the gateway remains unavailable after the retry budget, select another model with `/model` or provider with `/provider`. Cross-provider fallback follows `/fallback` and `/freeonly` settings.
135
136
 
137
+ ### Hinoki
138
+
139
+ Configure `clai set hinoki` and `clai use hinoki`, or set `HINOKI_API_KEY`. Existing `hinoki` credentials in `~/.clai/keys.json`, including multiple key slots, use the same selection, disabled-key handling, cooldowns, and failover as other providers. The default endpoint is `https://inference.hinoki.security/v1`, and the default model is `hinoki-offensive`. `HINOKI_BASE_URL` or a saved endpoint can override the URL.
140
+
141
+ `/model` discovers the authenticated `/models` catalog. Published context/output limits, vision, tools, and reasoning metadata take precedence over fallback capabilities. Context limits are retained locally for later sessions. Generation reuses the catalog for five minutes; explicit model discovery refreshes it. Concurrent reads are coalesced and caches are isolated by key and endpoint. Temporary failures keep the last successful route catalog with a one-minute retry cooldown; authentication failures remain visible for shared key rotation.
142
+
143
+ `/effort` uses advertised or runtime-learned settings; when metadata is absent, the endpoint's verified effort vocabulary is `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. These are accepted API controls, not a guarantee of visible reasoning at every level. Returned reasoning streams separately from the answer. Hidden reasoning-token counts still appear in session usage. Images and function calls are supported by `hinoki-offensive`; future models follow their catalog metadata and shared runtime capability handling.
144
+
145
+ The integration uses Chat Completions for streaming and sends the full conversation, function calls, and tool results on every request. It never relies on saved responses or `previous_response_id`. Stable conversation/tool prefixes and a hashed per-session `prompt_cache_key` preserve cache affinity; cache hits depend on Hinoki's upstream infrastructure and cannot be guaranteed. Subagents and auxiliary requests retain their separate shared affinity.
146
+
147
+ `/usage` reports measured session input, output, total, cached-input, cache-write, and reasoning tokens when returned by the API, including trailing usage-only stream events. Unknown counters are not fabricated. Workspace credit balances are not available through this integration; use Hinoki's workspace settings for those. API usage is charged against workspace credits.
148
+
136
149
  ### Constellation Gate
137
150
 
138
151
  Create a `sk-gw-…` key in the [Gate dashboard](https://app.constellationgate.ai/), then run `clai set constellation` and `clai use constellation`, or set `GATE_API_KEY`. Aliases include `gate`, `constellationgate`, and `constellation-gate`. The integration uses [pay-through-Gate authentication](https://docs.constellationgate.ai/getting-started/authentication/), not BYOK upstream headers; prepaid balance and model access rules apply. Key verification sends a one-token request because the catalog is public and does not validate credentials.
package/REA.md CHANGED
@@ -40,6 +40,8 @@ REA is for shipped artifacts, decompilation, JavaScript/Electron applications, m
40
40
 
41
41
  Only one small `rea.manage` tool is permanently advertised. Installing does not start a server. Enabling registers `clai-rea` for the current runtime, preserves other selected MCP servers, and connects once. Repeated enables reuse the analysis. REA's tools are not added to the provider's native tool catalog; the agent calls them through `mcp.call`.
42
42
 
43
+ Managed REA analysis calls have no automatic execution or output-stall timeout in clai, including procedure searches and decompilation. Manual cancellation remains available. Startup and the initial engine-availability probe retain separate deadlines; REA itself or an analysis engine may still report its own timeout.
44
+
43
45
  On `@rea`, on enable and on a `guide` request the model receives, once per conversation, a workflow of about 4,200 characters, an `ENGINE:` line and a version-matched index generated from the live catalog: every tool name, grouped by verb, with its required arguments, `~` where the tool accepts `detail` and `!` where it changes state or the target (about 8,300 characters for REA 6.7.0's 207 tools, bounded at 10,000). The index lets the agent call tools directly; `mcp.tools` with an exact tool name returns just that tool's full schema for optional fields and structured arguments. REA schemas are strict, so an argument a tool does not list is rejected and clai appends the accepted argument names to the error. The context is sent once per conversation: later turns that repeat `@rea` reuse it, and it is sent again, once, only if it changed (for example after you install an engine and reconnect).
44
46
 
45
47
  So that the agent does not call tools that cannot work, clai asks REA once per connection (one `binary_session` call, about 2 seconds and 50 KB, not repeated) which tools need an open target, an analysis engine or a missing prerequisite, and marks the index: `#` acts on the binary opened by `open_binary` and takes no path, `^` also needs an analysis engine, `%` is unavailable on this machine. The `ENGINE:` line says which engines are ready. When a call still fails, clai replaces REA's long machine-readable error with a short instruction: pass no `path` to a `#` tool and call `open_binary` first; thin a universal Mach-O to one slice with `lipo` before Ghidra or Kuna can read it; or, when no engine is ready, do not retry and tell the user to run `/rea engines`. If the availability report cannot be read, the plain index is used. Repeating `enable` on a live connection returns it again on request, without restarting anything. The always-advertised `rea.manage` description is kept to about 450 characters because it is sent with every request. The long human-oriented usage guide is shown only by `/rea guide` and is never sent to the model. Version-matched detailed workflow references remain on disk for focused reading. Prefer summaries, retained Evidence IDs, selected fields and bounded pages instead of repeating analysis or requesting full results. A host timeout does not establish that server work stopped: inspect state/Evidence before retrying. Inspect the actual current schema or returned remediation rather than guessing arguments or reinstalling.
package/README.md CHANGED
@@ -151,7 +151,7 @@ Run `clai set <provider>` to add a key (`--from-env <variable>` imports one from
151
151
  </details>
152
152
 
153
153
  <details>
154
- <summary><b>API, keyless and local providers</b>: 30 providers including Free, Ollama, Anthropic, OpenAI, Gemini, DeepSeek, OpenRouter</summary>
154
+ <summary><b>API, keyless and local providers</b>: 31 providers including Free, Ollama, Anthropic, OpenAI, Gemini, DeepSeek, OpenRouter, Hinoki</summary>
155
155
 
156
156
  | Provider | Provider ID | Credential or endpoint variable |
157
157
  | --- | --- | --- |
@@ -165,6 +165,7 @@ Run `clai set <provider>` to add a key (`--from-env <variable>` imports one from
165
165
  | MiniMax | `minimax` | `MINIMAX_API_KEY` |
166
166
  | Mistral | `mistral` | `MISTRAL_API_KEY`; optional `MISTRAL_BASE_URL` for regional endpoints. |
167
167
  | River | `river` | `RIVER_API_KEY`; optional `RIVER_BASE_URL`. |
168
+ | Hinoki | `hinoki` | `HINOKI_API_KEY`; optional `HINOKI_BASE_URL`. |
168
169
  | Xiaomi MiMo | `mimo` | `MIMO_API_KEY` |
169
170
  | NVIDIA NIM | `nvidia` | `NVIDIA_API_KEY` |
170
171
  | OpenAI | `openai` | `OPENAI_API_KEY` |
@@ -213,6 +214,7 @@ Type `/` for suggestions and `@` to mention files. `/help` lists everything and
213
214
  | --- | --- |
214
215
  | [Persistent sessions](guides/sessions.md) | Detach and resume, SSH and multiple terminals, sudo, history and compaction |
215
216
  | [Working with clai](guides/usage.md) | Modes and permissions, subagents, background jobs, interactive terminals, security testing, models and key rotation, project context, skills and MCP |
217
+ | [Security investigation skill](guides/security-skill.md) | Bundled on-demand security methodology, cross-domain research, evidence and coverage, packaging and behavioral evaluation |
216
218
  | [Terminal interface](guides/interface.md) | OpenTUI and Classic, terminals, keyboard shortcuts, paste and transcript controls |
217
219
  | [Commands](guides/commands.md) | Every slash command and CLI flag |
218
220
  | [Configuration and privacy](guides/configuration.md) | Config file, private mode, retention, credential storage and the encrypted `/creds` vault |
@@ -89,6 +89,7 @@ const QUALITY = [
89
89
  "- State each fact once, in the section where the next agent will look for it.",
90
90
  "- Delegated workers are subagents: record each one's id and attempt, task, status, whether its result was read, and the conclusions of results already read; retained reports stay recoverable by id and attempt. Keep background jobs and Responder tasks separate from subagents. The RESPONDER RESULT LEDGER is authoritative: never describe a consumed=true result as unread, and keep unread results pending.",
91
91
  "- Approval and mode gates: plan-mode gather-only or wait-for-approval limits end only when the user accepts the plan; research-only or no-implementation limits the user set for the current topic stay in force. Compaction never grants approval, and an answered question never authorizes new work.",
92
+ "- Record names and exact paths of still-relevant skills and references, not copies of their instructions. A prior load is historical, not proof that its full body survives compaction; never tell the next agent not to reload content that was lost. The application appends authoritative skill-recovery guidance.",
92
93
  "- Refer to credentials and secrets by purpose only; their values are carried separately.",
93
94
  "- Length: as long as needed to lose nothing that matters and no longer, usually 1,500 to 4,000 tokens and up to about 6,000 for long sessions with several tasks. Plain Markdown with bullets, no code fences around the whole memory. Finish every section and end on a complete sentence.",
94
95
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-prompt.js","sourceRoot":"","sources":["../../../src/agent/compaction/compaction-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction-prompt.js","sourceRoot":"","sources":["../../../src/agent/compaction/compaction-prompt.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { compactionSourcePrefixEnd } from "./compaction-source-prefix.js";
6
6
  import { latestUserMessage } from "./latest-user-message.js";
7
7
  import { hasCompletedConversationTurn, recentUserPrompts, renderRecentUserPrompts, withoutRecentUserPrompts, } from "./compaction-recent-history.js";
8
8
  import { reconcileCompactionUserInstructions } from "./compaction-user-instructions.js";
9
+ import { compactedSkills, renderSkillRecovery, withoutSkillRecovery } from "./compaction-skills.js";
9
10
  import { redactUserCredentialsFromMemory } from "./user-credentials.js";
10
11
  import { canonicalMemoryLayout, COMPACTION_MEMORY_PREFIX, isCompactionMemoryMessage, MECHANICAL_MEMORY_PREFIX, PLAN_IMPLEMENT_MEMORY_PREFIX, } from "../compaction/memory-sections.js";
11
12
  import { stripThinking } from "../../ui/thinking.js";
@@ -331,7 +332,8 @@ export async function compactMessagesWithSummary(messages, summarize, options =
331
332
  const rawSummary = redactSecrets(redactUserCredentialsFromMemory(modelSummary.trim()));
332
333
  const normalizedSummary = normalizeCompactionSummary(stripThinking(rawSummary).visible);
333
334
  const instructionMemory = reconcileCompactionUserInstructions(withoutRecentUserPrompts(normalizedSummary), messages);
334
- const summary = canonicalMemoryLayout(instructionMemory.summary);
335
+ const summary = canonicalMemoryLayout(withoutSkillRecovery(instructionMemory.summary));
336
+ const skills = compactedSkills(messages);
335
337
  if (!summary) {
336
338
  throw new Error("compaction failed: model returned an empty summary");
337
339
  }
@@ -365,13 +367,14 @@ export async function compactMessagesWithSummary(messages, summarize, options =
365
367
  const memoryPrefix = compactionMemoryPrefixForPurpose(options.purpose);
366
368
  const memoryMsg = {
367
369
  role: "system",
368
- content: [memoryPrefix, summary, renderRecentUserPrompts(recentPrompts, protectedUser)]
370
+ content: [memoryPrefix, summary, renderSkillRecovery(skills), renderRecentUserPrompts(recentPrompts, protectedUser)]
369
371
  .filter(Boolean).join("\n\n"),
370
372
  compaction: {
371
373
  recentUserPrompts: recentPrompts
372
374
  .filter((prompt) => !prompt.message || !rawTail.includes(prompt.message))
373
375
  .map(({ content, truncated }) => ({ content, ...(truncated ? { truncated } : {}) })),
374
376
  userInstructions: instructionMemory.instructions,
377
+ ...(skills.length ? { skills } : {}),
375
378
  },
376
379
  };
377
380
  const envelopeMsg = options.durableEnvelope?.trim()
@@ -1 +1 @@
1
- {"version":3,"file":"compact-with-summary.js","sourceRoot":"","sources":["../../../src/agent/context/compact-with-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compact-with-summary.js","sourceRoot":"","sources":["../../../src/agent/context/compact-with-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ChatMessage, CompactedSkill } from "../../types.js";
2
+ export declare function compactedSkills(messages: readonly ChatMessage[]): CompactedSkill[];
3
+ export declare function withoutSkillRecovery(text: string): string;
4
+ export declare function renderSkillRecovery(skills: readonly CompactedSkill[]): string;
@@ -0,0 +1,136 @@
1
+ import { homedir } from "node:os";
2
+ import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
3
+ import { ACTIVE_SKILLS_PREFIX } from "../../skills/catalog.js";
4
+ import { parseFsReadSections } from "../../tools/fs/read-sections.js";
5
+ import { parseCanonicalTextToolCalls } from "../tool-history-projection.js";
6
+ import { withoutSection } from "../compaction/memory-sections.js";
7
+ const RECOVERY_HEADING = "## Skill recovery after compaction";
8
+ const MAX_SKILLS = 12;
9
+ const MAX_RESOURCES = 8;
10
+ const MAX_RECOVERY_CHARS = 6000;
11
+ const SKILL_NAME = /^[a-z0-9][a-z0-9-]{0,63}$/;
12
+ function readPath(value) {
13
+ return resolve(value.startsWith("~/") ? join(homedir(), value.slice(2)) : value);
14
+ }
15
+ function rememberSkill(skills, skill) {
16
+ if (!SKILL_NAME.test(skill.name) || !isAbsolute(skill.file) || basename(skill.file) !== "SKILL.md")
17
+ return;
18
+ if (skill.file.length > 1024 || /[\r\n\0]/.test(skill.file))
19
+ return;
20
+ const prior = skills.get(skill.name);
21
+ const resources = prior?.file === skill.file ? [...prior.resources, ...skill.resources] : skill.resources;
22
+ skills.delete(skill.name);
23
+ skills.set(skill.name, { ...skill, resources: [...new Set(resources)].slice(-MAX_RESOURCES) });
24
+ }
25
+ function systemSkills(message) {
26
+ const stored = message.compaction?.skills ?? [];
27
+ if (!message.content.startsWith(ACTIVE_SKILLS_PREFIX))
28
+ return [...stored];
29
+ const selected = [...message.content.matchAll(/^--- skill: ([a-z0-9-]+) \((.+)\) ---$/gm)]
30
+ .map(match => ({ name: match[1], file: match[2], resources: [] }));
31
+ return [...stored, ...selected];
32
+ }
33
+ function succeeded(message) {
34
+ if (message.ok !== undefined)
35
+ return message.ok;
36
+ return /^Tool [^\n]+ result \(exit=[^,\n]+, ok=true\):/.test(message.content);
37
+ }
38
+ function loadedSkill(message) {
39
+ if (!succeeded(message))
40
+ return undefined;
41
+ const header = /^skill: ([a-z0-9-]+) \[[^\n]*\]\r?\nfile: ([^\r\n]+)/m.exec(message.content);
42
+ return header ? { name: header[1], file: header[2], resources: [] } : undefined;
43
+ }
44
+ function argumentPaths(args) {
45
+ const entries = Array.isArray(args.files) ? args.files : [args];
46
+ return entries.flatMap(entry => {
47
+ if (!entry || typeof entry !== "object" || !("path" in entry))
48
+ return [];
49
+ return typeof entry.path === "string" ? [readPath(entry.path)] : [];
50
+ });
51
+ }
52
+ function readPaths(message, call) {
53
+ const requested = call ? argumentPaths(call.args) : [];
54
+ const sections = parseFsReadSections(message.content);
55
+ if (sections.length === 0)
56
+ return succeeded(message) ? requested : [];
57
+ const successful = new Set(sections.filter(section => section.ok).map(section => readPath(section.path)));
58
+ return requested.filter(path => successful.has(path));
59
+ }
60
+ function rememberRead(skills, path) {
61
+ if (basename(path) === "SKILL.md") {
62
+ rememberSkill(skills, { name: basename(dirname(path)), file: path, resources: [] });
63
+ return;
64
+ }
65
+ for (const skill of [...skills.values()]) {
66
+ const resource = relative(dirname(skill.file), path).split("\\").join("/");
67
+ if (!resource || resource.startsWith("../") || isAbsolute(resource))
68
+ continue;
69
+ if (resource.length > 512 || /[\r\n\0]/.test(resource))
70
+ continue;
71
+ rememberSkill(skills, { ...skill, resources: [...skill.resources.filter(value => value !== resource), resource] });
72
+ }
73
+ }
74
+ function rememberTool(skills, message, call) {
75
+ const name = call?.name ?? message.name ?? /^Tool ([\w.]+) result /.exec(message.content)?.[1];
76
+ if (name === "skill.load") {
77
+ const skill = loadedSkill(message);
78
+ if (skill)
79
+ rememberSkill(skills, skill);
80
+ return;
81
+ }
82
+ if (name === "fs.read") {
83
+ for (const path of readPaths(message, call))
84
+ rememberRead(skills, path);
85
+ }
86
+ }
87
+ function boundedSkills(skills) {
88
+ const selected = [];
89
+ let remaining = MAX_RECOVERY_CHARS;
90
+ for (const skill of [...skills.values()].reverse()) {
91
+ const cost = JSON.stringify(skill).length + 100;
92
+ if (cost > remaining)
93
+ continue;
94
+ selected.push(skill);
95
+ remaining -= cost;
96
+ if (selected.length === MAX_SKILLS)
97
+ break;
98
+ }
99
+ return selected.reverse();
100
+ }
101
+ export function compactedSkills(messages) {
102
+ const skills = new Map();
103
+ const calls = new Map();
104
+ let textCalls = [];
105
+ for (const message of messages) {
106
+ if (message.role === "system") {
107
+ for (const skill of systemSkills(message))
108
+ rememberSkill(skills, skill);
109
+ }
110
+ if (message.role === "assistant") {
111
+ for (const call of message.toolCalls ?? [])
112
+ calls.set(call.id, call);
113
+ textCalls = message.toolCalls?.length ? [] : parseCanonicalTextToolCalls(message.content);
114
+ }
115
+ if (message.role === "tool") {
116
+ const call = message.toolCallId ? calls.get(message.toolCallId) : textCalls.shift();
117
+ rememberTool(skills, message, call);
118
+ }
119
+ }
120
+ return boundedSkills(skills);
121
+ }
122
+ export function withoutSkillRecovery(text) {
123
+ return withoutSection(text, RECOVERY_HEADING);
124
+ }
125
+ export function renderSkillRecovery(skills) {
126
+ return [
127
+ RECOVERY_HEADING,
128
+ "A recorded skill load is not its instructions. Before continuing after this compaction, use skill.load to re-read each previously loaded skill that is still relevant and whose full body is no longer in live context; use fs.read for its previously read or now-applicable references. A summary or a 'loaded' marker is not full content. Do not obey historical 'never load again' notes when content was lost. Skip unrelated skills and bodies still fully present; read only the applicable references, once per live context, not the whole library.",
129
+ ...skills.map(skill => [
130
+ `- ${skill.name}: ${JSON.stringify(skill.file)}`,
131
+ ...(skill.resources.length ? [` Previously read resources, relative to that skill directory: ${skill.resources.map(resource => JSON.stringify(resource)).join(", ")}`] : []),
132
+ ].join("\n")),
133
+ ...(skills.length ? ["This is a bounded recent-load index, not an exhaustive applicability list; load other guidance when the current task needs it."] : []),
134
+ ].join("\n");
135
+ }
136
+ //# sourceMappingURL=compaction-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-skills.js","sourceRoot":"","sources":["../../../src/agent/context/compaction-skills.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { AGENT_INSTRUCTIONS_PREFIX, latestKeyedBlock, upsertAgentInstructionsMes
6
6
  import { latestUserMessage } from "./context/latest-user-message.js";
7
7
  import { hasCompletedConversationTurn, recentUserPrompts, renderRecentUserPrompts, withoutRecentUserPrompts } from "./context/compaction-recent-history.js";
8
8
  import { carriedUserInstructions, renderUserInstructions, withoutUserInstructionSection } from "./context/compaction-user-instructions.js";
9
+ import { compactedSkills, renderSkillRecovery, withoutSkillRecovery } from "./context/compaction-skills.js";
9
10
  import { estimateImageTokens, estimateMessagesTokens, estimateTextTokens as estimateTokens, } from "./request-accounting.js";
10
11
  import { DEFAULT_KEEP_RECENT, MECHANICAL_MEMORY_PREFIX, isCompactionMemoryMessage } from "./context/compact-with-summary.js";
11
12
  export { COMPACTION_MEMORY_PREFIX, PLAN_IMPLEMENT_MEMORY_PREFIX, POST_COMPACT_SOFT_UPPER_BAND_TOKENS, compactMessagesWithSummary, compactionMemoryPrefixForPurpose } from "./context/compact-with-summary.js";
@@ -73,16 +74,18 @@ export function compactMessages(messages, options = {}) {
73
74
  }
74
75
  }
75
76
  const userInstructions = carriedUserInstructions(messages);
77
+ const skills = compactedSkills(messages);
76
78
  const latestUser = latestUserMessage(messages);
77
79
  const memo = {
78
80
  role: "system",
79
81
  content: `${MECHANICAL_MEMORY_PREFIX} to fit the context budget. Full artifacts (when produced) are saved on disk and can be expanded with /output.\n\n` +
80
- [renderUserInstructions(userInstructions), bullets.join("\n"), renderRecentUserPrompts(recentUserPrompts(messages), hasCompletedConversationTurn(messages) ? undefined : latestUser)].filter(Boolean).join("\n\n"),
82
+ [renderUserInstructions(userInstructions), bullets.join("\n"), renderSkillRecovery(skills), renderRecentUserPrompts(recentUserPrompts(messages), hasCompletedConversationTurn(messages) ? undefined : latestUser)].filter(Boolean).join("\n\n"),
81
83
  compaction: {
82
84
  recentUserPrompts: recentUserPrompts(messages)
83
85
  .filter((prompt) => !prompt.message || (!tail.includes(prompt.message) && prompt.message !== latestUser))
84
86
  .map(({ content, truncated }) => ({ content, ...(truncated ? { truncated } : {}) })),
85
87
  userInstructions,
88
+ ...(skills.length ? { skills } : {}),
86
89
  },
87
90
  };
88
91
  let ledger;
@@ -105,7 +108,7 @@ export function shouldApplyAutoCompact(input) {
105
108
  return false;
106
109
  if (hasOrphanToolMessages([...input.afterMessages]))
107
110
  return false;
108
- const body = withoutRecentUserPrompts(input.summaryBody);
111
+ const body = withoutSkillRecovery(withoutRecentUserPrompts(input.summaryBody));
109
112
  if (!body)
110
113
  return false;
111
114
  if (input.beforeTokens >= AUTO_COMPACT_STUB_BEFORE_TOKENS &&
@@ -116,7 +119,7 @@ export function shouldApplyAutoCompact(input) {
116
119
  }
117
120
  const EARLIER_MEMORY_CHAR_BUDGET = 12_000;
118
121
  function earlierMemoryBody(content) {
119
- const body = withoutUserInstructionSection(withoutRecentUserPrompts(content.replace(/^[^\n]*\n+/, ""))).trim();
122
+ const body = withoutSkillRecovery(withoutUserInstructionSection(withoutRecentUserPrompts(content.replace(/^[^\n]*\n+/, "")))).trim();
120
123
  if (body.length <= EARLIER_MEMORY_CHAR_BUDGET)
121
124
  return body;
122
125
  return `${body.slice(0, EARLIER_MEMORY_CHAR_BUDGET - 1)}…`;
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAC5J,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC3I,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,IAAI,cAAc,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAkB,mBAAmB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC7I,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,0BAA0B,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAC9M,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,cAAc,EAAE,CAAC;AAEvE,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAEtD,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,SAAS,oBAAoB,CAAC,OAAoB;IAChD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IACjD,IACE,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAC9C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IACvD,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAuB,EACvB,UAA0B,EAAE;IAE5B,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC;IAC1E,IAAI,QAAQ,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC;IAEhE,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IACE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ;QAC9B,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EACvC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC9D,SAAS,GAAG,2BAA2B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;YAC/C,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CACV,sBAAsB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAgB;QACxB,IAAI,EAAE,QAAQ;QACd,OAAO,EACL,GAAG,wBAAwB,oHAAoH;YAC/I,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACpN,UAAU,EAAE;YACV,iBAAiB,EAAE,iBAAiB,CAAC,QAAQ,CAAC;iBAC3C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;iBACxG,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtF,gBAAgB;SACjB;KACF,CAAC;IAEF,IAAI,MAA+B,CAAC;IACpC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,IAAI,8BAA8B,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC;YACrD,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GACnB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,aAAa,GACjB,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC,CAAC;IACjF,8BAA8B,CAAC,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACjG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAMtC;IACC,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,qBAAqB,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IACE,KAAK,CAAC,YAAY,IAAI,+BAA+B;QACrD,IAAI,CAAC,MAAM,GAAG,2BAA2B,EACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAE1C,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,IAAI,GAAG,6BAA6B,CAAC,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/G,IAAI,IAAI,CAAC,MAAM,IAAI,0BAA0B;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,GAAG,CAAC,CAAC,GAAG,CAAC;AAC7D,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,QAAgB;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC/C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,10 @@ export type AgentEvent = {
28
28
  type: "notice";
29
29
  level: "info" | "warn";
30
30
  text: string;
31
+ } | {
32
+ type: "tool-call-pending";
33
+ id: string;
34
+ name: string;
31
35
  } | {
32
36
  type: "tool-call";
33
37
  id: string;
@@ -51,17 +51,17 @@ function requestedToolTimeoutMs(call) {
51
51
  if (requested !== undefined) {
52
52
  return Math.max(MIN_TOOL_TIMEOUT_MS, Math.min(MAX_TOOL_TIMEOUT_MS, Math.floor(requested)));
53
53
  }
54
- if (call.name.startsWith("mcp."))
55
- return 60_000;
56
54
  if (call.name === "shell.exec")
57
55
  return DEFAULT_SHELL_TIMEOUT_MS;
58
56
  return DEFAULT_TOOL_TIMEOUT_MS;
59
57
  }
60
58
  const OUTER_STALL_SETTLE_MARGIN_MS = 2_500;
61
59
  export function toolStallBudgetMs(call) {
60
+ if (call.name.startsWith("mcp."))
61
+ return 0;
62
62
  return requestedToolTimeoutMs(call) + OUTER_STALL_SETTLE_MARGIN_MS;
63
63
  }
64
64
  export function toolHardBudgetMs(call) {
65
- return requestedToolTimeoutMs(call) + OUTER_STALL_SETTLE_MARGIN_MS;
65
+ return toolStallBudgetMs(call);
66
66
  }
67
67
  //# sourceMappingURL=tool-budgets.js.map