@pentoshi/clai 4.6.2 → 4.8.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 (149) hide show
  1. package/README.md +4 -1
  2. package/dist/agent/context-manager.js +13 -3
  3. package/dist/agent/context-manager.js.map +1 -1
  4. package/dist/agent/injected-blocks.d.ts +8 -0
  5. package/dist/agent/injected-blocks.js +26 -0
  6. package/dist/agent/injected-blocks.js.map +1 -0
  7. package/dist/agent/must-continue.js +13 -8
  8. package/dist/agent/must-continue.js.map +1 -1
  9. package/dist/agent/runner.js +91 -21
  10. package/dist/agent/runner.js.map +1 -1
  11. package/dist/agent/tool-call-parser.js +2 -1
  12. package/dist/agent/tool-call-parser.js.map +1 -1
  13. package/dist/agent/tool-history.js +8 -2
  14. package/dist/agent/tool-history.js.map +1 -1
  15. package/dist/app/commands/catalog.js +9 -1
  16. package/dist/app/commands/catalog.js.map +1 -1
  17. package/dist/app/controllers/session-controller.d.ts +1 -0
  18. package/dist/app/controllers/session-controller.js +9 -7
  19. package/dist/app/controllers/session-controller.js.map +1 -1
  20. package/dist/app/controllers/session-persistence.d.ts +6 -0
  21. package/dist/app/controllers/session-persistence.js +9 -0
  22. package/dist/app/controllers/session-persistence.js.map +1 -1
  23. package/dist/classic/app/ClassicApp.js +1 -1
  24. package/dist/classic/app/ClassicApp.js.map +1 -1
  25. package/dist/classic/app/wiring-lifecycle.js +6 -1
  26. package/dist/classic/app/wiring-lifecycle.js.map +1 -1
  27. package/dist/classic/bootstrap/start-classic.d.ts +2 -0
  28. package/dist/classic/bootstrap/start-classic.js +15 -0
  29. package/dist/classic/bootstrap/start-classic.js.map +1 -1
  30. package/dist/classic/chrome/Composer.d.ts +2 -0
  31. package/dist/classic/chrome/Composer.js +2 -1
  32. package/dist/classic/chrome/Composer.js.map +1 -1
  33. package/dist/classic/chrome/composer-controller.d.ts +3 -0
  34. package/dist/classic/chrome/composer-controller.js +21 -1
  35. package/dist/classic/chrome/composer-controller.js.map +1 -1
  36. package/dist/classic/chrome/editor-view.d.ts +5 -0
  37. package/dist/classic/chrome/editor-view.js +54 -4
  38. package/dist/classic/chrome/editor-view.js.map +1 -1
  39. package/dist/commands/update-install.d.ts +10 -1
  40. package/dist/commands/update-install.js +165 -11
  41. package/dist/commands/update-install.js.map +1 -1
  42. package/dist/commands/update.d.ts +2 -2
  43. package/dist/commands/update.js +2 -1
  44. package/dist/commands/update.js.map +1 -1
  45. package/dist/index.js +15 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/instructions/load.d.ts +19 -0
  48. package/dist/instructions/load.js +123 -0
  49. package/dist/instructions/load.js.map +1 -0
  50. package/dist/instructions/locations.d.ts +23 -0
  51. package/dist/instructions/locations.js +167 -0
  52. package/dist/instructions/locations.js.map +1 -0
  53. package/dist/instructions/record.d.ts +22 -0
  54. package/dist/instructions/record.js +157 -0
  55. package/dist/instructions/record.js.map +1 -0
  56. package/dist/instructions/scaffold.d.ts +8 -0
  57. package/dist/instructions/scaffold.js +70 -0
  58. package/dist/instructions/scaffold.js.map +1 -0
  59. package/dist/modes/ask.js +4 -0
  60. package/dist/modes/ask.js.map +1 -1
  61. package/dist/prompts/embedded.js +1 -1
  62. package/dist/prompts/embedded.js.map +1 -1
  63. package/dist/prompts/index.js +11 -1
  64. package/dist/prompts/index.js.map +1 -1
  65. package/dist/prompts/system.agent.md +8 -7
  66. package/dist/safety/classifier.js +9 -0
  67. package/dist/safety/classifier.js.map +1 -1
  68. package/dist/skills/catalog.d.ts +13 -0
  69. package/dist/skills/catalog.js +119 -0
  70. package/dist/skills/catalog.js.map +1 -0
  71. package/dist/skills/discover.d.ts +8 -0
  72. package/dist/skills/discover.js +203 -0
  73. package/dist/skills/discover.js.map +1 -0
  74. package/dist/skills/format.d.ts +3 -0
  75. package/dist/skills/format.js +29 -0
  76. package/dist/skills/format.js.map +1 -0
  77. package/dist/skills/frontmatter.d.ts +8 -0
  78. package/dist/skills/frontmatter.js +151 -0
  79. package/dist/skills/frontmatter.js.map +1 -0
  80. package/dist/skills/locations.d.ts +10 -0
  81. package/dist/skills/locations.js +174 -0
  82. package/dist/skills/locations.js.map +1 -0
  83. package/dist/skills/mentions.d.ts +9 -0
  84. package/dist/skills/mentions.js +31 -0
  85. package/dist/skills/mentions.js.map +1 -0
  86. package/dist/skills/registry.d.ts +12 -0
  87. package/dist/skills/registry.js +141 -0
  88. package/dist/skills/registry.js.map +1 -0
  89. package/dist/skills/types.d.ts +33 -0
  90. package/dist/skills/types.js +8 -0
  91. package/dist/skills/types.js.map +1 -0
  92. package/dist/tools/definitions.js +40 -0
  93. package/dist/tools/definitions.js.map +1 -1
  94. package/dist/tools/instructions.d.ts +2 -0
  95. package/dist/tools/instructions.js +54 -0
  96. package/dist/tools/instructions.js.map +1 -0
  97. package/dist/tools/registry.js +14 -0
  98. package/dist/tools/registry.js.map +1 -1
  99. package/dist/tools/skills.d.ts +3 -0
  100. package/dist/tools/skills.js +99 -0
  101. package/dist/tools/skills.js.map +1 -0
  102. package/dist/tui-v2/bootstrap/start-tui-v2.d.ts +2 -0
  103. package/dist/tui-v2/bootstrap/start-tui-v2.js +22 -0
  104. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  105. package/dist/tui-v2/composer/composer-editor.js +10 -0
  106. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  107. package/dist/tui-v2/composer/skill-highlight.d.ts +3 -0
  108. package/dist/tui-v2/composer/skill-highlight.js +63 -0
  109. package/dist/tui-v2/composer/skill-highlight.js.map +1 -0
  110. package/dist/tui-v2/composer/use-draft-actions.d.ts +1 -0
  111. package/dist/tui-v2/composer/use-draft-actions.js +13 -1
  112. package/dist/tui-v2/composer/use-draft-actions.js.map +1 -1
  113. package/dist/ui-core/bootstrap/composition-root.js +3 -0
  114. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  115. package/dist/ui-core/bootstrap/exit-epilogue.d.ts +22 -0
  116. package/dist/ui-core/bootstrap/exit-epilogue.js +43 -0
  117. package/dist/ui-core/bootstrap/exit-epilogue.js.map +1 -0
  118. package/dist/ui-core/bootstrap/lifecycle.d.ts +9 -0
  119. package/dist/ui-core/bootstrap/lifecycle.js +16 -0
  120. package/dist/ui-core/bootstrap/lifecycle.js.map +1 -1
  121. package/dist/ui-core/bootstrap/session-resume.d.ts +28 -0
  122. package/dist/ui-core/bootstrap/session-resume.js +163 -0
  123. package/dist/ui-core/bootstrap/session-resume.js.map +1 -0
  124. package/dist/ui-core/commands/command-handlers.js +2 -0
  125. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  126. package/dist/ui-core/commands/config-commands.js +7 -2
  127. package/dist/ui-core/commands/config-commands.js.map +1 -1
  128. package/dist/ui-core/commands/picker-commands.js +4 -60
  129. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  130. package/dist/ui-core/commands/skill-commands.d.ts +3 -0
  131. package/dist/ui-core/commands/skill-commands.js +69 -0
  132. package/dist/ui-core/commands/skill-commands.js.map +1 -0
  133. package/dist/ui-core/composer/composer-action-port.d.ts +3 -0
  134. package/dist/ui-core/composer/composer-action-port.js +14 -0
  135. package/dist/ui-core/composer/composer-action-port.js.map +1 -1
  136. package/dist/ui-core/composer/insert-token.d.ts +1 -0
  137. package/dist/ui-core/composer/insert-token.js +5 -0
  138. package/dist/ui-core/composer/insert-token.js.map +1 -0
  139. package/dist/ui-core/rendering/exit-summary.d.ts +16 -0
  140. package/dist/ui-core/rendering/exit-summary.js +466 -0
  141. package/dist/ui-core/rendering/exit-summary.js.map +1 -0
  142. package/dist/ui-core/rendering/intro-header.js +6 -2
  143. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  144. package/dist/ui-core/rendering/wordmark.d.ts +14 -8
  145. package/dist/ui-core/rendering/wordmark.js +206 -36
  146. package/dist/ui-core/rendering/wordmark.js.map +1 -1
  147. package/dist/version.generated.d.ts +2 -2
  148. package/dist/version.generated.js +2 -2
  149. package/package.json +1 -1
package/README.md CHANGED
@@ -453,6 +453,8 @@ The old line REPL has been removed — there are only full surfaces now. An Open
453
453
 
454
454
  Tool cards show the command/input clearly, with a live elapsed timer next to the command name while they run (the final duration stays visible afterwards), and keep long scan tails in an expandable OUTPUT pager (search, copy, export). File writes show a diff preview. When the agent finishes each prompt — naturally or aborted — a `✻ Worked for 1m16s` row is appended under the response, and it is restored when the session is resumed from `/history`. The status line names what the agent is actually doing right now — `responding` while streaming, `compacting` during auto or manual context compaction — instead of holding the last tool name. Prompts typed while the agent is busy are queued and run automatically in order once the turn settles; the queue pauses only when the previous turn was cancelled, errored, or stopped by the loop guard. Compaction cards preserve session memory without dropping the plan, and `/history` restores full sessions — prompts, tool results, and the matching plan — even after an abort or autosave.
455
455
 
456
+ On exit, both interactive surfaces leave the alternate screen and print a sign-off card on the normal terminal: the wordmark beside a labelled block — session title, folder, elapsed time and message count, reasoning/cache token notes, and the command that reopens the session — followed by the same per-provider/model token table `/usage` shows. Resuming is `clai --resume <id>` (a unique id prefix is enough, and `-c/--continue` picks the newest session for the current directory). Sessions that were never persisted (`--no-history`, private mode, or nothing sent) say so instead of offering a resume command. The card is borderless and reflows down to very narrow terminals: the wordmark drops from six rows to four, then the block stacks beneath it, and labels give way before the resume command is ever shortened.
457
+
456
458
  ---
457
459
 
458
460
  ## Slash commands
@@ -488,6 +490,7 @@ clai [prompt...] # interactive UI, or one-shot with a prom
488
490
  --show-thinking --verbose --quiet # one-shot stream controls
489
491
  --tui --classic
490
492
  --ui <tui|v2|opentui|classic|legacy|ink> # aliases; ignored with a prompt
493
+ --resume <sessionId> -c/--continue # reopen a saved session; ignored with a prompt
491
494
 
492
495
  clai set <provider> [key] # --from-env <VAR> | --stdin | --url <url> (repeatable) | --skip-ping
493
496
  clai unset <provider> # remove all keys for a provider (--url = endpoint URLs instead)
@@ -499,7 +502,7 @@ clai mode <ask|agent|plan> # set default mode
499
502
  clai search-provider <brave|tavily|duckduckgo>
500
503
  clai config [key] [value] # print / get / set config
501
504
  clai doctor # check installed tools + provider config
502
- clai history [--show <id>] # list sessions / print one
505
+ clai history [--show <id>] # list sessions / print one (with resume commands)
503
506
  clai update # check for updates
504
507
  clai authorize-pentest AGREE # enable scan/attack tools (one-time ack)
505
508
  clai scope <show|new|add|clear> # engagement scope (new: --targets --exclude --phases
@@ -6,6 +6,8 @@ import { buildCompactionChunkPrompt, buildCompactionReducePrompt, buildCompactio
6
6
  import { DURABLE_ENVELOPE_PREFIX, isDurableEnvelopeContent, } from "./durable-envelope.js";
7
7
  import { isResponderResultLedgerMessage, RESPONDER_RESULT_LEDGER_PREFIX, } from "./responder-context.js";
8
8
  import { slimToolArgs } from "./message-slim.js";
9
+ import { AGENT_INSTRUCTIONS_PREFIX } from "../instructions/load.js";
10
+ import { ACTIVE_SKILLS_PREFIX } from "../skills/catalog.js";
9
11
  import { estimateImageTokens, estimateMessagesTokens, estimateTextTokens as estimateTokens, } from "./request-accounting.js";
10
12
  export { estimateImageTokens, estimateMessagesTokens, estimateTokens };
11
13
  /**
@@ -191,7 +193,8 @@ export async function compactMessagesWithSummary(messages, summarize, options =
191
193
  summarized: false,
192
194
  };
193
195
  }
194
- const isDurableSystem = (content) => isDurableEnvelopeContent(content) ||
196
+ const isDurableSystem = (content) => isReinjectedSystem(content) ||
197
+ isDurableEnvelopeContent(content) ||
195
198
  content.startsWith("ACTIVE PLAN") ||
196
199
  content.startsWith("SESSION STATE") ||
197
200
  content.startsWith("ENGAGEMENT SCOPE") ||
@@ -230,7 +233,9 @@ export async function compactMessagesWithSummary(messages, summarize, options =
230
233
  .join("\n\n");
231
234
  const visualCoversOlderHistory = Boolean(visual) && uncoveredHistory.length === 0;
232
235
  const durableBits = messages
233
- .filter((m) => m.role === "system" && isDurableSystem(m.content))
236
+ .filter((m) => m.role === "system" &&
237
+ isDurableSystem(m.content) &&
238
+ !isReinjectedSystem(m.content))
234
239
  .map((m) => {
235
240
  // Large system prompts: extract only durable subsections when present.
236
241
  if (m.content.length > 4_000) {
@@ -487,8 +492,13 @@ export function shouldApplyAutoCompact(input) {
487
492
  }
488
493
  return true;
489
494
  }
495
+ function isReinjectedSystem(content) {
496
+ return (content.startsWith(AGENT_INSTRUCTIONS_PREFIX) ||
497
+ content.startsWith(ACTIVE_SKILLS_PREFIX));
498
+ }
490
499
  function isStaleDurableSystem(content) {
491
- return (isDurableEnvelopeContent(content) ||
500
+ return (isReinjectedSystem(content) ||
501
+ isDurableEnvelopeContent(content) ||
492
502
  content.startsWith("ACTIVE PLAN") ||
493
503
  content.startsWith("SESSION STATE") ||
494
504
  content.startsWith("ENGAGEMENT SCOPE") ||
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ChatMessage } from "../types.js";
2
+ import { AGENT_INSTRUCTIONS_PREFIX } from "../instructions/load.js";
3
+ import { ACTIVE_SKILLS_PREFIX } from "../skills/catalog.js";
4
+ export { AGENT_INSTRUCTIONS_PREFIX, ACTIVE_SKILLS_PREFIX };
5
+ export declare function isAgentInstructionsMessage(content: string): boolean;
6
+ export declare function isActiveSkillsMessage(content: string): boolean;
7
+ export declare function upsertAgentInstructionsMessage(messages: ChatMessage[], block: string | undefined): void;
8
+ export declare function upsertActiveSkillsMessage(messages: ChatMessage[], block: string | undefined): void;
@@ -0,0 +1,26 @@
1
+ import { AGENT_INSTRUCTIONS_PREFIX } from "../instructions/load.js";
2
+ import { ACTIVE_SKILLS_PREFIX } from "../skills/catalog.js";
3
+ export { AGENT_INSTRUCTIONS_PREFIX, ACTIVE_SKILLS_PREFIX };
4
+ function upsertKeyed(messages, prefix, content) {
5
+ for (let index = messages.length - 1; index >= 0; index -= 1) {
6
+ const message = messages[index];
7
+ if (message.role === "system" && message.content.startsWith(prefix)) {
8
+ messages.splice(index, 1);
9
+ }
10
+ }
11
+ if (content?.trim())
12
+ messages.push({ role: "system", content });
13
+ }
14
+ export function isAgentInstructionsMessage(content) {
15
+ return content.startsWith(AGENT_INSTRUCTIONS_PREFIX);
16
+ }
17
+ export function isActiveSkillsMessage(content) {
18
+ return content.startsWith(ACTIVE_SKILLS_PREFIX);
19
+ }
20
+ export function upsertAgentInstructionsMessage(messages, block) {
21
+ upsertKeyed(messages, AGENT_INSTRUCTIONS_PREFIX, block);
22
+ }
23
+ export function upsertActiveSkillsMessage(messages, block) {
24
+ upsertKeyed(messages, ACTIVE_SKILLS_PREFIX, block);
25
+ }
26
+ //# sourceMappingURL=injected-blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injected-blocks.js","sourceRoot":"","sources":["../../src/agent/injected-blocks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,CAAC;AAE3D,SAAS,WAAW,CAClB,QAAuB,EACvB,MAAc,EACd,OAA2B;IAE3B,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,OAAO,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAuB,EACvB,KAAyB;IAEzB,WAAW,CAAC,QAAQ,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAuB,EACvB,KAAyB;IAEzB,WAAW,CAAC,QAAQ,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC"}
@@ -41,6 +41,7 @@ export function recoveryForErrorDiagnosis(nativeTools) {
41
41
  "Then re-run the failing check.",
42
42
  };
43
43
  }
44
+ const INTENT_ESCAPE = " Before doing that, re-read the user's latest message. This nudge fires from a keyword guess about their wording and can be wrong: if they were asking a question, raising a doubt, or asking you to explain, review, compare, or advise, then an answer with no changes was the correct deliverable — say so in one line and finish, without calling a tool and without starting work they did not ask for.";
44
45
  export function recoveryForNarration(nativeTools, mode) {
45
46
  const base = {
46
47
  kind: "narration",
@@ -59,9 +60,10 @@ export function recoveryForNarration(nativeTools, mode) {
59
60
  return {
60
61
  ...base,
61
62
  notice: "described a security action but emitted no tool call",
62
- message: nativeTools
63
+ message: (nativeTools
63
64
  ? "You described security work but called NO tool. Call a real tool now (net.scan / http.fetch / dns.lookup / shell.exec)."
64
- : "You described security work but emitted NO ```tool block. Emit a real tool call now (e.g. sysinfo, net.scan, http.fetch).",
65
+ : "You described security work but emitted NO ```tool block. Emit a real tool call now (e.g. sysinfo, net.scan, http.fetch).") +
66
+ INTENT_ESCAPE,
65
67
  };
66
68
  }
67
69
  if (mode === "web") {
@@ -77,24 +79,27 @@ export function recoveryForNarration(nativeTools, mode) {
77
79
  return {
78
80
  ...base,
79
81
  notice: "plan was written as text, not created",
80
- message: nativeTools
82
+ message: (nativeTools
81
83
  ? 'You wrote the plan as prose but did NOT call plan.create. Call plan.create now with goal, detail, tasks, and a specific kind you choose to fit the work (e.g. build, frontend, feature, bugfix, pentest, recon — not "general").'
82
- : "You wrote the plan as prose but did NOT call plan.create. Emit one plan.create tool block now.",
84
+ : "You wrote the plan as prose but did NOT call plan.create. Emit one plan.create tool block now.") +
85
+ " If the user only asked how you would approach something rather than telling you to do it, the prose answer was correct — say so in one line and finish instead of creating a plan.",
83
86
  };
84
87
  }
85
88
  if (mode === "build") {
86
89
  return {
87
90
  ...base,
88
- message: nativeTools
91
+ message: (nativeTools
89
92
  ? 'You described work but called NO tool. Call a tool now (e.g. fs.list path="."), then plan.create when ready.'
90
- : "You described work but emitted NO ```tool block. Explore first, then plan.create when ready.",
93
+ : "You described work but emitted NO ```tool block. Explore first, then plan.create when ready.") +
94
+ INTENT_ESCAPE,
91
95
  };
92
96
  }
93
97
  return {
94
98
  ...base,
95
- message: nativeTools
99
+ message: (nativeTools
96
100
  ? "You described an action but called NO tool. Call the appropriate tool now."
97
- : "You described an action but emitted NO ```tool block. Emit a real tool call now.",
101
+ : "You described an action but emitted NO ```tool block. Emit a real tool call now.") +
102
+ INTENT_ESCAPE,
98
103
  };
99
104
  }
100
105
  /** Plan mode only — agent mode must not force plan.create. */
@@ -1 +1 @@
1
- {"version":3,"file":"must-continue.js","sourceRoot":"","sources":["../../src/agent/must-continue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"must-continue.js","sourceRoot":"","sources":["../../src/agent/must-continue.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,12 @@ import { accountAssembledRequest, RequestOverLimitError, } from "./request-accou
52
52
  import { autoCompactTriggerTokens, dedupeToolContextOutput, freeTierGuardNotices, getReliabilityPolicy, resolveStepMaxTokens, } from "./reliability-policy.js";
53
53
  import { auditLog } from "../store/logs.js";
54
54
  import { loadProjectContext } from "../store/project.js";
55
+ import { loadAgentInstructions } from "../instructions/load.js";
56
+ import { ensureProjectInstructionFiles } from "../instructions/scaffold.js";
57
+ import { upsertActiveSkillsMessage, upsertAgentInstructionsMessage, } from "./injected-blocks.js";
58
+ import { getSkillIndex, loadSkill } from "../skills/registry.js";
59
+ import { skillMentionNames } from "../skills/mentions.js";
60
+ import { renderActiveSkills, renderSkillCatalog, SKILLS_CATALOG_PREFIX, } from "../skills/catalog.js";
55
61
  import { loadScopeForSession, isScopeActive } from "../store/scope.js";
56
62
  import { ensureProviderConfigured } from "../commands/providers.js";
57
63
  import { createThinkingStreamParser, rememberThinking, stripThinking, } from "../ui/thinking.js";
@@ -384,6 +390,11 @@ export async function runAgentTurn(prompt, options = {}) {
384
390
  const maxSteps = options.maxSteps ?? 70;
385
391
  const confirmPort = options.confirm ?? stdioConfirmPort;
386
392
  const projectContext = await loadProjectContext();
393
+ const skillIndex = await getSkillIndex({
394
+ cwd: safeCwd(),
395
+ ...(getActiveProjectRoot() ? { projectRoot: getActiveProjectRoot() } : {}),
396
+ });
397
+ const skillsAvailable = skillIndex.skills.length > 0;
387
398
  const hasAttachedImages = Boolean(options.images?.length);
388
399
  const imageOcrEnabled = shouldEnableImageOcr(prompt, hasAttachedImages, options.visionProven !== false);
389
400
  const initialProvider = options.provider ?? config.defaultProvider;
@@ -397,6 +408,9 @@ export async function runAgentTurn(prompt, options = {}) {
397
408
  if (name === "image.view") {
398
409
  return modelSupportsVision(routeProvider, routeModel);
399
410
  }
411
+ if (name === "skill.load" || name === "skill.list") {
412
+ return skillsAvailable;
413
+ }
400
414
  return true;
401
415
  });
402
416
  const toolNames = routeToolNames(initialProvider, initialModel);
@@ -508,6 +522,31 @@ export async function runAgentTurn(prompt, options = {}) {
508
522
  if (!pinnedProject && discoveredProjects.length === 1) {
509
523
  setActiveProjectRootIfValid(discoveredProjects[0]);
510
524
  }
525
+ const instructionScanInput = {
526
+ cwd: safeCwd(),
527
+ ...(getActiveProjectRoot() ? { projectRoot: getActiveProjectRoot() } : {}),
528
+ };
529
+ if (!idleOrSocialPrompt && !informationalQuery) {
530
+ const scaffold = await ensureProjectInstructionFiles(instructionScanInput).catch(() => undefined);
531
+ if (scaffold && scaffold.created.length > 0) {
532
+ writeNotice("info", `created ${scaffold.created.join(" and ")} — put your project rules in CLAI.md`);
533
+ }
534
+ }
535
+ let agentInstructionsBlock = (await loadAgentInstructions(instructionScanInput).catch(() => undefined))?.block;
536
+ const refreshAgentInstructions = async () => {
537
+ const reloaded = await loadAgentInstructions(instructionScanInput).catch(() => undefined);
538
+ agentInstructionsBlock = reloaded?.block;
539
+ };
540
+ const selectedSkillNames = skillsAvailable
541
+ ? skillMentionNames(prompt, skillIndex.names)
542
+ : [];
543
+ const activeSkills = [];
544
+ for (const name of selectedSkillNames) {
545
+ const loaded = await loadSkill(name, instructionScanInput).catch(() => undefined);
546
+ if (loaded)
547
+ activeSkills.push(loaded);
548
+ }
549
+ const activeSkillsBlock = renderActiveSkills(activeSkills);
511
550
  // Only long-lived instructions belong in the provider-cached system prefix.
512
551
  // Request, project, workspace, recovery, scope, and plan state are appended
513
552
  // later as system-marked turns so a changing byte cannot invalidate the
@@ -661,35 +700,50 @@ export async function runAgentTurn(prompt, options = {}) {
661
700
  systemSections.push(formatTaskAnalysisHint(earlyAnalysis));
662
701
  }
663
702
  }
703
+ if (skillsAvailable && !idleOrSocialPrompt) {
704
+ const catalog = renderSkillCatalog({
705
+ skills: skillIndex.skills,
706
+ prompt,
707
+ pinned: selectedSkillNames,
708
+ truncatedScan: skillIndex.truncated,
709
+ ...(inputTokenBudget ? { maxTokens: 260 } : {}),
710
+ });
711
+ if (catalog)
712
+ systemSections.push(catalog);
713
+ }
664
714
  const promptSections = () => {
665
715
  const sections = systemSections.map((content) => ({
666
- kind: content.startsWith("ACTIVE PLAN")
667
- ? "plan"
668
- : content.startsWith("ENGAGEMENT SCOPE")
669
- ? "scope"
670
- : content.includes("MODE")
671
- ? "mode"
672
- : content.includes("OUTCOME")
673
- ? "outcome"
674
- : content.includes("WORKFLOW") || content.includes("FOCUS")
675
- ? "focus"
676
- : "context",
716
+ kind: content.startsWith(SKILLS_CATALOG_PREFIX)
717
+ ? "context"
718
+ : content.startsWith("ACTIVE PLAN")
719
+ ? "plan"
720
+ : content.startsWith("ENGAGEMENT SCOPE")
721
+ ? "scope"
722
+ : content.includes("MODE")
723
+ ? "mode"
724
+ : content.includes("OUTCOME")
725
+ ? "outcome"
726
+ : content.includes("WORKFLOW") || content.includes("FOCUS")
727
+ ? "focus"
728
+ : "context",
677
729
  content,
678
- mandatory: content.startsWith("ACTIVE PLAN") ||
679
- content.startsWith("ENGAGEMENT SCOPE") ||
680
- content.startsWith("REQUEST ENVIRONMENT") ||
681
- content.startsWith("Project context from .clai/context.md:") ||
682
- content.startsWith("ACTIVE PROJECT ROOT:") ||
683
- content.startsWith("USER DESTINATION:") ||
684
- content.startsWith("WORKSPACE STATUS") ||
685
- content.includes("MODE") ||
686
- content.includes("OUTCOME"),
730
+ mandatory: content.startsWith(SKILLS_CATALOG_PREFIX)
731
+ ? selectedSkillNames.length > 0
732
+ : content.startsWith("ACTIVE PLAN") ||
733
+ content.startsWith("ENGAGEMENT SCOPE") ||
734
+ content.startsWith("REQUEST ENVIRONMENT") ||
735
+ content.startsWith("Project context from .clai/context.md:") ||
736
+ content.startsWith("ACTIVE PROJECT ROOT:") ||
737
+ content.startsWith("USER DESTINATION:") ||
738
+ content.startsWith("WORKSPACE STATUS") ||
739
+ content.includes("MODE") ||
740
+ content.includes("OUTCOME"),
687
741
  }));
688
742
  const has = (kind) => sections.some((section) => section.kind === kind);
689
743
  if (!has("outcome")) {
690
744
  sections.push({
691
745
  kind: "outcome",
692
- content: `OUTCOME CONTRACT\nGoal: ${prompt}\nSuccess requires evidence that the requested result is complete; otherwise return partial, blocked, failed, aborted, or paused_budget with remaining criteria.`,
746
+ content: `OUTCOME CONTRACT\nGoal: ${prompt}\nDecide first what this request actually asks for: a question or doubt is satisfied by an accurate, grounded answer, while a directive to change something is satisfied only by the verified change. Success requires evidence that whichever of those the user asked for is delivered; otherwise return partial, blocked, failed, aborted, or paused_budget with remaining criteria.`,
693
747
  mandatory: true,
694
748
  });
695
749
  }
@@ -743,6 +797,11 @@ export async function runAgentTurn(prompt, options = {}) {
743
797
  { role: "system", content: requestContextMessage },
744
798
  ];
745
799
  liveMessages = messages;
800
+ const refreshInjectedBlocks = () => {
801
+ upsertAgentInstructionsMessage(messages, agentInstructionsBlock);
802
+ upsertActiveSkillsMessage(messages, activeSkillsBlock);
803
+ };
804
+ refreshInjectedBlocks();
746
805
  if (activePlan) {
747
806
  upsertPlanContextMessage(messages, planContextMessage(activePlan, session.planApproved.value));
748
807
  }
@@ -924,6 +983,7 @@ export async function runAgentTurn(prompt, options = {}) {
924
983
  const recovery = createRecoveryBudgets();
925
984
  let sawServerStart = false;
926
985
  let sawPlanCreateOk = false;
986
+ let instructionsChangedThisRound = false;
927
987
  let sawServerTail = false;
928
988
  let sawLocalHttpProbe = false;
929
989
  let sawFailedLocalHttpProbe = false;
@@ -1013,6 +1073,7 @@ export async function runAgentTurn(prompt, options = {}) {
1013
1073
  }).catch(() => undefined);
1014
1074
  }
1015
1075
  refreshSessionState = (plan) => {
1076
+ refreshInjectedBlocks();
1016
1077
  if (idleOrSocialPrompt || informationalQuery)
1017
1078
  return;
1018
1079
  const runningJobs = jobManager.getRunningJobs(session.sessionId);
@@ -2928,6 +2989,8 @@ export async function runAgentTurn(prompt, options = {}) {
2928
2989
  // validated against the complete next request, not the bare summary.
2929
2990
  const livePlan = await loadPlan(session.sessionId).catch(() => undefined);
2930
2991
  const candidateMessages = [...result.messages];
2992
+ upsertAgentInstructionsMessage(candidateMessages, agentInstructionsBlock);
2993
+ upsertActiveSkillsMessage(candidateMessages, activeSkillsBlock);
2931
2994
  if (livePlan) {
2932
2995
  upsertPlanContextMessage(candidateMessages, planContextMessage(livePlan, session.planApproved.value));
2933
2996
  }
@@ -4643,6 +4706,9 @@ export async function runAgentTurn(prompt, options = {}) {
4643
4706
  sawLocalAppMaterialWork = true;
4644
4707
  }
4645
4708
  }
4709
+ if (res.call.name === "instructions.record" && res.ok) {
4710
+ instructionsChangedThisRound = true;
4711
+ }
4646
4712
  if (res.call.name === "plan.create" && res.ok) {
4647
4713
  sawPlanCreateOk = true;
4648
4714
  if (isPlanMode) {
@@ -4889,6 +4955,10 @@ export async function runAgentTurn(prompt, options = {}) {
4889
4955
  for (const notification of deferredResponderLedgerNotifications.splice(0)) {
4890
4956
  upsertResponderResultLedger(messages, notification);
4891
4957
  }
4958
+ if (instructionsChangedThisRound) {
4959
+ instructionsChangedThisRound = false;
4960
+ await refreshAgentInstructions();
4961
+ }
4892
4962
  // SESSION STATE only after the assistant→tool group is closed.
4893
4963
  // Mid-group upserts were the root cause of "No stored body" thrash.
4894
4964
  refreshSessionState(pendingSessionStatePlan);