@kenkaiiii/ggcoder 5.37.0 → 5.39.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 (170) hide show
  1. package/dist/app-sidecar.js +31 -18
  2. package/dist/app-sidecar.js.map +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +12 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +15 -4
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +34 -75
  9. package/dist/config.js.map +1 -1
  10. package/dist/config.test.js +19 -11
  11. package/dist/config.test.js.map +1 -1
  12. package/dist/core/agent-session-tool-tiers.test.d.ts +2 -0
  13. package/dist/core/agent-session-tool-tiers.test.d.ts.map +1 -0
  14. package/dist/core/agent-session-tool-tiers.test.js +138 -0
  15. package/dist/core/agent-session-tool-tiers.test.js.map +1 -0
  16. package/dist/core/agent-session.d.ts +43 -3
  17. package/dist/core/agent-session.d.ts.map +1 -1
  18. package/dist/core/agent-session.js +77 -11
  19. package/dist/core/agent-session.js.map +1 -1
  20. package/dist/core/agents.d.ts +29 -1
  21. package/dist/core/agents.d.ts.map +1 -1
  22. package/dist/core/agents.js +47 -97
  23. package/dist/core/agents.js.map +1 -1
  24. package/dist/core/agents.test.js +85 -5
  25. package/dist/core/agents.test.js.map +1 -1
  26. package/dist/core/bundled-agents.d.ts +3 -0
  27. package/dist/core/bundled-agents.d.ts.map +1 -0
  28. package/dist/core/bundled-agents.js +252 -0
  29. package/dist/core/bundled-agents.js.map +1 -0
  30. package/dist/core/code-retrieval-chunkers.d.ts +27 -0
  31. package/dist/core/code-retrieval-chunkers.d.ts.map +1 -0
  32. package/dist/core/code-retrieval-chunkers.js +264 -0
  33. package/dist/core/code-retrieval-chunkers.js.map +1 -0
  34. package/dist/core/code-retrieval-chunkers.test.d.ts +2 -0
  35. package/dist/core/code-retrieval-chunkers.test.d.ts.map +1 -0
  36. package/dist/core/code-retrieval-chunkers.test.js +203 -0
  37. package/dist/core/code-retrieval-chunkers.test.js.map +1 -0
  38. package/dist/core/code-retrieval.d.ts +6 -0
  39. package/dist/core/code-retrieval.d.ts.map +1 -1
  40. package/dist/core/code-retrieval.js +38 -1
  41. package/dist/core/code-retrieval.js.map +1 -1
  42. package/dist/core/lsp/client-navigation.test.d.ts +2 -0
  43. package/dist/core/lsp/client-navigation.test.d.ts.map +1 -0
  44. package/dist/core/lsp/client-navigation.test.js +119 -0
  45. package/dist/core/lsp/client-navigation.test.js.map +1 -0
  46. package/dist/core/lsp/client.d.ts +62 -0
  47. package/dist/core/lsp/client.d.ts.map +1 -1
  48. package/dist/core/lsp/client.js +147 -0
  49. package/dist/core/lsp/client.js.map +1 -1
  50. package/dist/core/lsp/manager-navigation.test.d.ts +2 -0
  51. package/dist/core/lsp/manager-navigation.test.d.ts.map +1 -0
  52. package/dist/core/lsp/manager-navigation.test.js +119 -0
  53. package/dist/core/lsp/manager-navigation.test.js.map +1 -0
  54. package/dist/core/lsp/manager.d.ts +35 -1
  55. package/dist/core/lsp/manager.d.ts.map +1 -1
  56. package/dist/core/lsp/manager.js +92 -0
  57. package/dist/core/lsp/manager.js.map +1 -1
  58. package/dist/core/mcp/deferred-catalog.d.ts +1 -1
  59. package/dist/core/mcp/deferred-catalog.js +1 -1
  60. package/dist/core/settings-manager.d.ts +2 -0
  61. package/dist/core/settings-manager.d.ts.map +1 -1
  62. package/dist/core/settings-manager.js +10 -1
  63. package/dist/core/settings-manager.js.map +1 -1
  64. package/dist/core/shutdown.d.ts +71 -0
  65. package/dist/core/shutdown.d.ts.map +1 -0
  66. package/dist/core/shutdown.js +144 -0
  67. package/dist/core/shutdown.js.map +1 -0
  68. package/dist/core/shutdown.test.d.ts +2 -0
  69. package/dist/core/shutdown.test.d.ts.map +1 -0
  70. package/dist/core/shutdown.test.js +160 -0
  71. package/dist/core/shutdown.test.js.map +1 -0
  72. package/dist/core/subagent-manager.d.ts +9 -0
  73. package/dist/core/subagent-manager.d.ts.map +1 -1
  74. package/dist/core/subagent-manager.js +45 -12
  75. package/dist/core/subagent-manager.js.map +1 -1
  76. package/dist/core/subagent-manager.test.js +13 -7
  77. package/dist/core/subagent-manager.test.js.map +1 -1
  78. package/dist/modes/agent-home-mode.d.ts.map +1 -1
  79. package/dist/modes/agent-home-mode.js +15 -11
  80. package/dist/modes/agent-home-mode.js.map +1 -1
  81. package/dist/modes/json-mode.d.ts +8 -0
  82. package/dist/modes/json-mode.d.ts.map +1 -1
  83. package/dist/modes/json-mode.js +2 -0
  84. package/dist/modes/json-mode.js.map +1 -1
  85. package/dist/modes/serve-mode.d.ts +2 -1
  86. package/dist/modes/serve-mode.d.ts.map +1 -1
  87. package/dist/modes/serve-mode.js +15 -9
  88. package/dist/modes/serve-mode.js.map +1 -1
  89. package/dist/modes/subagent-worker-mode.d.ts +5 -0
  90. package/dist/modes/subagent-worker-mode.d.ts.map +1 -1
  91. package/dist/modes/subagent-worker-mode.js.map +1 -1
  92. package/dist/system-prompt.d.ts +37 -1
  93. package/dist/system-prompt.d.ts.map +1 -1
  94. package/dist/system-prompt.js +108 -4
  95. package/dist/system-prompt.js.map +1 -1
  96. package/dist/system-prompt.test.js +48 -1
  97. package/dist/system-prompt.test.js.map +1 -1
  98. package/dist/system-prompt.tiering.test.d.ts +2 -0
  99. package/dist/system-prompt.tiering.test.d.ts.map +1 -0
  100. package/dist/system-prompt.tiering.test.js +103 -0
  101. package/dist/system-prompt.tiering.test.js.map +1 -0
  102. package/dist/tools/code-nav.d.ts +30 -0
  103. package/dist/tools/code-nav.d.ts.map +1 -0
  104. package/dist/tools/code-nav.js +247 -0
  105. package/dist/tools/code-nav.js.map +1 -0
  106. package/dist/tools/code-nav.test.d.ts +2 -0
  107. package/dist/tools/code-nav.test.d.ts.map +1 -0
  108. package/dist/tools/code-nav.test.js +109 -0
  109. package/dist/tools/code-nav.test.js.map +1 -0
  110. package/dist/tools/grep-parity.test.d.ts +2 -0
  111. package/dist/tools/grep-parity.test.d.ts.map +1 -0
  112. package/dist/tools/grep-parity.test.js +92 -0
  113. package/dist/tools/grep-parity.test.js.map +1 -0
  114. package/dist/tools/grep-recall.test.d.ts +2 -0
  115. package/dist/tools/grep-recall.test.d.ts.map +1 -0
  116. package/dist/tools/grep-recall.test.js +114 -0
  117. package/dist/tools/grep-recall.test.js.map +1 -0
  118. package/dist/tools/grep-spawn.test.d.ts +2 -0
  119. package/dist/tools/grep-spawn.test.d.ts.map +1 -0
  120. package/dist/tools/grep-spawn.test.js +66 -0
  121. package/dist/tools/grep-spawn.test.js.map +1 -0
  122. package/dist/tools/grep.d.ts +13 -3
  123. package/dist/tools/grep.d.ts.map +1 -1
  124. package/dist/tools/grep.js +340 -40
  125. package/dist/tools/grep.js.map +1 -1
  126. package/dist/tools/grep.test.js +11 -8
  127. package/dist/tools/grep.test.js.map +1 -1
  128. package/dist/tools/index.d.ts +7 -0
  129. package/dist/tools/index.d.ts.map +1 -1
  130. package/dist/tools/index.js +8 -1
  131. package/dist/tools/index.js.map +1 -1
  132. package/dist/tools/prompt-hints.d.ts +9 -0
  133. package/dist/tools/prompt-hints.d.ts.map +1 -1
  134. package/dist/tools/prompt-hints.js +61 -8
  135. package/dist/tools/prompt-hints.js.map +1 -1
  136. package/dist/tools/search-code.d.ts.map +1 -1
  137. package/dist/tools/search-code.js +7 -6
  138. package/dist/tools/search-code.js.map +1 -1
  139. package/dist/tools/search-code.test.js +8 -2
  140. package/dist/tools/search-code.test.js.map +1 -1
  141. package/dist/tools/subagent-control.d.ts.map +1 -1
  142. package/dist/tools/subagent-control.js +20 -5
  143. package/dist/tools/subagent-control.js.map +1 -1
  144. package/dist/tools/subagent-control.test.js +34 -1
  145. package/dist/tools/subagent-control.test.js.map +1 -1
  146. package/dist/tools/subagent-shared.d.ts +19 -0
  147. package/dist/tools/subagent-shared.d.ts.map +1 -1
  148. package/dist/tools/subagent-shared.js +32 -5
  149. package/dist/tools/subagent-shared.js.map +1 -1
  150. package/dist/tools/subagent-shared.test.js +42 -8
  151. package/dist/tools/subagent-shared.test.js.map +1 -1
  152. package/dist/tools/subagent.d.ts.map +1 -1
  153. package/dist/tools/subagent.js +11 -8
  154. package/dist/tools/subagent.js.map +1 -1
  155. package/dist/tools/subagent.test.js +3 -0
  156. package/dist/tools/subagent.test.js.map +1 -1
  157. package/dist/tools/tool-search.d.ts.map +1 -1
  158. package/dist/tools/tool-search.js +2 -1
  159. package/dist/tools/tool-search.js.map +1 -1
  160. package/dist/tools/tool-tiers.d.ts +42 -0
  161. package/dist/tools/tool-tiers.d.ts.map +1 -0
  162. package/dist/tools/tool-tiers.js +77 -0
  163. package/dist/tools/tool-tiers.js.map +1 -0
  164. package/dist/tools/tool-tiers.test.d.ts +2 -0
  165. package/dist/tools/tool-tiers.test.d.ts.map +1 -0
  166. package/dist/tools/tool-tiers.test.js +48 -0
  167. package/dist/tools/tool-tiers.test.js.map +1 -0
  168. package/dist/ui/hooks/useAgentLoop.js +1 -1
  169. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  170. package/package.json +4 -4
@@ -0,0 +1,138 @@
1
+ import fs from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
+ import { useFakeHome } from "../test-support/fake-home.js";
6
+ import { DEFERRED_TOOL_NAMES } from "../tools/tool-tiers.js";
7
+ vi.mock("@kenkaiiii/gg-agent", async () => {
8
+ const actual = await vi.importActual("@kenkaiiii/gg-agent");
9
+ return { ...actual, agentLoop: vi.fn(() => (async function* emptyLoop() { })()) };
10
+ });
11
+ vi.mock("./mcp/index.js", async () => {
12
+ const actual = await vi.importActual("./mcp/index.js");
13
+ return {
14
+ ...actual,
15
+ MCPClientManager: vi.fn(function MCPClientManagerMock() {
16
+ return { connectAll: vi.fn(async () => []), dispose: vi.fn(async () => { }) };
17
+ }),
18
+ };
19
+ });
20
+ let restoreHome;
21
+ let tempHome;
22
+ let tempProject;
23
+ beforeEach(async () => {
24
+ tempHome = await fs.mkdtemp(path.join(os.tmpdir(), "tiers-home-"));
25
+ tempProject = await fs.mkdtemp(path.join(os.tmpdir(), "tiers-project-"));
26
+ restoreHome = useFakeHome(tempHome);
27
+ await fs.mkdir(path.join(tempHome, ".gg"), { recursive: true });
28
+ await fs.writeFile(path.join(tempHome, ".gg", "auth.json"), JSON.stringify({
29
+ anthropic: {
30
+ accessToken: "test-token",
31
+ refreshToken: "test-refresh",
32
+ expiresAt: Date.now() + 3_600_000,
33
+ },
34
+ }));
35
+ });
36
+ afterEach(async () => {
37
+ restoreHome?.();
38
+ await Promise.all([
39
+ fs.rm(tempHome, { recursive: true, force: true }),
40
+ fs.rm(tempProject, { recursive: true, force: true }),
41
+ ]);
42
+ vi.clearAllMocks();
43
+ });
44
+ async function writeSettings(settings) {
45
+ await fs.writeFile(path.join(tempHome, ".gg", "settings.json"), JSON.stringify(settings), "utf-8");
46
+ }
47
+ async function createSession(extra = {}) {
48
+ const { AgentSession } = await import("./agent-session.js");
49
+ const session = new AgentSession({
50
+ provider: "anthropic",
51
+ model: "claude-test",
52
+ cwd: tempProject,
53
+ transient: true,
54
+ projectCustomization: false,
55
+ loadExtensions: false,
56
+ orchestrationPrompt: false,
57
+ selfCorrectionHooks: false,
58
+ ...extra,
59
+ });
60
+ await session.initialize();
61
+ return session;
62
+ }
63
+ /** The live tool array is private; tiering is precisely a claim about it. */
64
+ function liveToolNames(session) {
65
+ return session.tools.map((t) => t.name);
66
+ }
67
+ describe("AgentSession built-in tool tiering", () => {
68
+ it("keeps deferred schemas out of the live set but names them in the prompt", async () => {
69
+ const session = await createSession();
70
+ try {
71
+ const live = liveToolNames(session);
72
+ const prompt = String(session.getMessages()[0]?.content ?? "");
73
+ expect(live).toContain("tool_search");
74
+ expect(prompt).toContain("Available on demand (call `tool_search` to load):");
75
+ const deferredHere = DEFERRED_TOOL_NAMES.filter((name) => prompt.includes(`- **${name}**:`));
76
+ expect(deferredHere.length).toBeGreaterThan(0);
77
+ for (const name of deferredHere) {
78
+ expect(live, `${name} should not carry a schema`).not.toContain(name);
79
+ }
80
+ // Core tools are unaffected.
81
+ for (const name of ["read", "edit", "bash", "grep", "code_nav"]) {
82
+ expect(live).toContain(name);
83
+ }
84
+ }
85
+ finally {
86
+ await session.dispose();
87
+ }
88
+ }, 20_000);
89
+ it("registers tool_search even with no MCP server connected", async () => {
90
+ const session = await createSession();
91
+ try {
92
+ expect(liveToolNames(session).filter((n) => n === "tool_search")).toHaveLength(1);
93
+ }
94
+ finally {
95
+ await session.dispose();
96
+ }
97
+ }, 20_000);
98
+ it("appends tool_search after the core tools, never reordering them", async () => {
99
+ const session = await createSession();
100
+ try {
101
+ const live = liveToolNames(session);
102
+ expect(live.indexOf("tool_search")).toBe(live.length - 1);
103
+ expect(live.indexOf("read")).toBeLessThan(live.indexOf("edit"));
104
+ }
105
+ finally {
106
+ await session.dispose();
107
+ }
108
+ }, 20_000);
109
+ it("gives allowedTools sessions every requested tool eagerly", async () => {
110
+ const requested = ["read", "grep", "source_path", "screenshot"];
111
+ const session = await createSession({ allowedTools: requested });
112
+ try {
113
+ const live = liveToolNames(session);
114
+ for (const name of requested)
115
+ expect(live, `${name} missing`).toContain(name);
116
+ // No deferral means no catalog and no discovery tool to promote from.
117
+ expect(live).not.toContain("tool_search");
118
+ expect(String(session.getMessages()[0]?.content ?? "")).not.toContain("Available on demand");
119
+ }
120
+ finally {
121
+ await session.dispose();
122
+ }
123
+ }, 20_000);
124
+ it("ships every built-in eagerly when deferredBuiltinTools is off", async () => {
125
+ await writeSettings({ deferredBuiltinTools: false });
126
+ const session = await createSession();
127
+ try {
128
+ const live = liveToolNames(session);
129
+ expect(live).toContain("source_path");
130
+ expect(live).toContain("screenshot");
131
+ expect(String(session.getMessages()[0]?.content ?? "")).not.toContain("Available on demand");
132
+ }
133
+ finally {
134
+ await session.dispose();
135
+ }
136
+ }, 20_000);
137
+ });
138
+ //# sourceMappingURL=agent-session-tool-tiers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session-tool-tiers.test.js","sourceRoot":"","sources":["../../src/core/agent-session-tool-tiers.test.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,21 @@ export interface AgentSessionOptions {
22
22
  model: string;
23
23
  cwd: string;
24
24
  baseUrl?: string;
25
+ /** Replaces the whole system prompt — nothing else is rendered. */
25
26
  systemPrompt?: string;
27
+ /**
28
+ * A sub-agent definition's body, COMPOSED with the standard scaffolding
29
+ * (Tools, project context, return contract, Environment) instead of replacing
30
+ * it — see `buildSubAgentSystemPrompt`.
31
+ *
32
+ * Prefer this over `systemPrompt` for delegated children: a bare replacement
33
+ * leaves the child with no Tools section and no Environment facts, which is
34
+ * precisely how a sub-agent ends up misusing tools it was never told it had.
35
+ * Ignored when `systemPrompt` is set.
36
+ */
37
+ agentPrompt?: string;
38
+ /** Whether `agentPrompt` composition includes project instruction files. Default `"project"`. */
39
+ agentContext?: "project" | "none";
26
40
  /** Synchronous volatile prompt suffix, refreshed immediately before every run. */
27
41
  getSystemPromptTail?: () => string;
28
42
  sessionId?: string;
@@ -226,8 +240,14 @@ export declare class AgentSession {
226
240
  private managerAbortSignal?;
227
241
  private readonly managerAbortHandler;
228
242
  private mcpManager?;
229
- /** Deferred MCP tools awaiting discovery via tool_search (bench A win). */
243
+ /** Deferred MCP tools awaiting discovery via tool_search. */
230
244
  private mcpCatalog?;
245
+ /**
246
+ * Built-in tools held in the catalog instead of the live toolset. Their names
247
+ * still render as one-line hints in the prompt's Tools section, so the model
248
+ * can discover and promote them; a promoted name drops out of this list.
249
+ */
250
+ private deferredBuiltinToolNames;
231
251
  /** Live (connected) MCP tools by name — the reconcile target for cached stubs. */
232
252
  private liveMcpTools;
233
253
  /** Server name for each cached-only tool, so a stub knows what to wait on. */
@@ -245,6 +265,8 @@ export declare class AgentSession {
245
265
  private maxTokens;
246
266
  private thinkingLevel?;
247
267
  private customSystemPrompt?;
268
+ /** Sub-agent definition body composed into the standard prompt scaffolding. */
269
+ private agentPrompt?;
248
270
  /** Stable prompt prefix retained separately from the volatile uncached tail. */
249
271
  private baseSystemPrompt;
250
272
  /** Shared with the tool layer so plan-mode restrictions read live state. */
@@ -323,8 +345,8 @@ export declare class AgentSession {
323
345
  private connectMcpServers;
324
346
  /**
325
347
  * Route freshly connected MCP tools: deferred into the tool_search catalog
326
- * (default — keeps ~8k tokens of schema out of every cache-miss turn, see
327
- * bench/RESULTS.md bench A) or pushed eagerly when the user opted out.
348
+ * (default — keeps ~8k tokens of schema out of every cache-miss turn) or
349
+ * pushed eagerly when the user opted out.
328
350
  * Allow-listed sessions (Ken) always get the eager path — their fixed tool
329
351
  * expectations predate the catalog, and tool_search isn't allow-listed.
330
352
  * Promotion pushes onto the live `this.tools` array the running agent loop
@@ -335,6 +357,10 @@ export declare class AgentSession {
335
357
  * Register `tool_search` once. Promotion of a cached-only entry waits for its
336
358
  * server so the model is told immediately when that capability turns out to
337
359
  * be unreachable, instead of promoting a tool that fails on first call.
360
+ *
361
+ * The catalog is created on demand rather than required up front: deferred
362
+ * built-in tools populate it with zero MCP servers connected, so gating
363
+ * registration on an existing catalog would leave those tools unreachable.
338
364
  */
339
365
  private ensureToolSearchTool;
340
366
  /** Append tools, replacing any same-named entry (cached stub → live tool). */
@@ -571,8 +597,22 @@ export declare class AgentSession {
571
597
  ok: false;
572
598
  error: string;
573
599
  }>;
600
+ /**
601
+ * Names to advertise as available-on-demand. A tool the model already
602
+ * promoted lives in `this.tools` and carries its own schema, so it drops out
603
+ * of the index rather than being listed twice.
604
+ */
605
+ private deferredToolNamesForPrompt;
574
606
  /** Environment facts that vary per session rather than per host. */
575
607
  private promptEnvironment;
608
+ /**
609
+ * Build the stable system-prompt prefix for the current tool set and state.
610
+ *
611
+ * Three modes, in precedence order: a full replacement (`systemPrompt`), a
612
+ * composed sub-agent prompt (`agentPrompt` — agent body plus Tools, project
613
+ * context, return contract and Environment), or the standard prompt.
614
+ */
615
+ private buildBasePrompt;
576
616
  /** Rebuild messages[0] from current plan-mode + approved-plan state. */
577
617
  private rebuildSystemPromptInPlace;
578
618
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,9 @@ import { sourceFingerprint as computeSourceFingerprint } from "./session-compact
18
18
  import { getAuthStorageKeys, getContextWindow, getModel, getToolResultCharLimit, MODELS, } from "./model-registry.js";
19
19
  import { discoverSkills } from "./skills.js";
20
20
  import { ensureAppDirs } from "../config.js";
21
- import { buildSystemPrompt } from "../system-prompt.js";
21
+ import { buildSubAgentSystemPrompt, buildSystemPrompt, } from "../system-prompt.js";
22
22
  import { createTools, createWebSearchTool, } from "../tools/index.js";
23
+ import { partitionToolsByTier } from "../tools/tool-tiers.js";
23
24
  import { buildProcessCompletionFollowUp } from "./process-gate.js";
24
25
  import { buildSubAgentCompletionFollowUp } from "./subagent-manager.js";
25
26
  import { applyAsyncSubagentPolicy } from "./subagent-policy.js";
@@ -181,8 +182,14 @@ export class AgentSession {
181
182
  void this.subAgentManager?.interruptAll();
182
183
  };
183
184
  mcpManager;
184
- /** Deferred MCP tools awaiting discovery via tool_search (bench A win). */
185
+ /** Deferred MCP tools awaiting discovery via tool_search. */
185
186
  mcpCatalog;
187
+ /**
188
+ * Built-in tools held in the catalog instead of the live toolset. Their names
189
+ * still render as one-line hints in the prompt's Tools section, so the model
190
+ * can discover and promote them; a promoted name drops out of this list.
191
+ */
192
+ deferredBuiltinToolNames = [];
186
193
  /** Live (connected) MCP tools by name — the reconcile target for cached stubs. */
187
194
  liveMcpTools = new Map();
188
195
  /** Server name for each cached-only tool, so a stub knows what to wait on. */
@@ -200,6 +207,8 @@ export class AgentSession {
200
207
  maxTokens;
201
208
  thinkingLevel;
202
209
  customSystemPrompt;
210
+ /** Sub-agent definition body composed into the standard prompt scaffolding. */
211
+ agentPrompt;
203
212
  /** Stable prompt prefix retained separately from the volatile uncached tail. */
204
213
  baseSystemPrompt = "";
205
214
  /** Shared with the tool layer so plan-mode restrictions read live state. */
@@ -259,6 +268,7 @@ export class AgentSession {
259
268
  this.maxTokens = this.resolveMaxTokens(options.model);
260
269
  this.thinkingLevel = options.thinkingLevel;
261
270
  this.customSystemPrompt = options.systemPrompt;
271
+ this.agentPrompt = options.agentPrompt;
262
272
  }
263
273
  /**
264
274
  * Derive the output-token cap for a model. Follows the active model's
@@ -339,6 +349,7 @@ export class AgentSession {
339
349
  additionalRoots: this.additionalRoots,
340
350
  allowOutsideWorkspaceWrites: this.settingsManager.get("allowOutsideWorkspaceWrites"),
341
351
  }),
352
+ getUseExternalGrep: () => this.settingsManager.get("grepUseRipgrep"),
342
353
  authStorage: this.authStorage,
343
354
  onFileRead: (filePath) => this.reviewCoverage.recordRead(filePath),
344
355
  onFileMutated: (filePath) => {
@@ -376,6 +387,23 @@ export class AgentSession {
376
387
  // a hallucinated call can't mutate the repo — and buildSystemPrompt below is
377
388
  // fed the same filtered names so the Tools section matches exactly.
378
389
  this.tools = this.opts.allowedTools ? tools.filter((t) => this.isToolAllowed(t.name)) : tools;
390
+ // Tier the built-ins: rarely reached schemas move into the tool_search
391
+ // catalog and cost one hint line each instead of a full parameter schema on
392
+ // every request. Allow-listed sessions keep the eager path — their fixed
393
+ // tool expectations predate the catalog, and tool_search isn't allow-listed.
394
+ if (!this.opts.allowedTools && this.settingsManager.get("deferredBuiltinTools")) {
395
+ const { core, deferred } = partitionToolsByTier(this.tools);
396
+ if (deferred.length > 0) {
397
+ // Append-only: `core` preserves the original relative order and
398
+ // tool_search is pushed after it, so the serialized tool block that
399
+ // sits inside the cached prefix stays byte-stable across turns.
400
+ this.tools = core;
401
+ this.deferredBuiltinToolNames = deferred.map((t) => t.name);
402
+ this.mcpCatalog ??= new DeferredToolCatalog();
403
+ this.mcpCatalog.add(deferred);
404
+ this.ensureToolSearchTool();
405
+ }
406
+ }
379
407
  this.rebuildReadTool = rebuildReadTool;
380
408
  this.processManager = processManager;
381
409
  this.lspManager = lspManager;
@@ -399,8 +427,7 @@ export class AgentSession {
399
427
  else {
400
428
  await this.connectMcpServers();
401
429
  }
402
- const basePrompt = this.customSystemPrompt ??
403
- (await buildSystemPrompt(this.cwd, this.skills, false, undefined, this.tools.map((tool) => tool.name), undefined, this.provider, this.promptEnvironment()));
430
+ const basePrompt = await this.buildBasePrompt(false, undefined);
404
431
  this.baseSystemPrompt = basePrompt;
405
432
  this.messages = [{ role: "system", content: this.withSystemPromptTail(basePrompt) }];
406
433
  // Load or create session. Transient sessions (subagent spawns) never
@@ -585,8 +612,8 @@ export class AgentSession {
585
612
  }
586
613
  /**
587
614
  * Route freshly connected MCP tools: deferred into the tool_search catalog
588
- * (default — keeps ~8k tokens of schema out of every cache-miss turn, see
589
- * bench/RESULTS.md bench A) or pushed eagerly when the user opted out.
615
+ * (default — keeps ~8k tokens of schema out of every cache-miss turn) or
616
+ * pushed eagerly when the user opted out.
590
617
  * Allow-listed sessions (Ken) always get the eager path — their fixed tool
591
618
  * expectations predate the catalog, and tool_search isn't allow-listed.
592
619
  * Promotion pushes onto the live `this.tools` array the running agent loop
@@ -616,10 +643,13 @@ export class AgentSession {
616
643
  * Register `tool_search` once. Promotion of a cached-only entry waits for its
617
644
  * server so the model is told immediately when that capability turns out to
618
645
  * be unreachable, instead of promoting a tool that fails on first call.
646
+ *
647
+ * The catalog is created on demand rather than required up front: deferred
648
+ * built-in tools populate it with zero MCP servers connected, so gating
649
+ * registration on an existing catalog would leave those tools unreachable.
619
650
  */
620
651
  ensureToolSearchTool() {
621
- if (!this.mcpCatalog)
622
- return;
652
+ this.mcpCatalog ??= new DeferredToolCatalog();
623
653
  if (this.tools.some((t) => t.name === "tool_search"))
624
654
  return;
625
655
  this.tools.push(createToolSearchTool(this.mcpCatalog, (promoted) => {
@@ -1957,8 +1987,7 @@ export class AgentSession {
1957
1987
  this.autopilotMarkers = [];
1958
1988
  this.appMarkers = [];
1959
1989
  this.turnMetrics = [];
1960
- const basePrompt = this.customSystemPrompt ??
1961
- (await buildSystemPrompt(this.cwd, this.skills, false, undefined, this.tools.map((tool) => tool.name), undefined, this.provider, this.promptEnvironment()));
1990
+ const basePrompt = await this.buildBasePrompt(false, undefined);
1962
1991
  this.baseSystemPrompt = basePrompt;
1963
1992
  this.messages = [{ role: "system", content: this.withSystemPromptTail(basePrompt) }];
1964
1993
  // Fresh conversation — new entries must not chain onto the old DAG's leaf.
@@ -2240,6 +2269,17 @@ export class AgentSession {
2240
2269
  await this.rebuildSystemPromptInPlace();
2241
2270
  return { ok: true, root: resolved };
2242
2271
  }
2272
+ /**
2273
+ * Names to advertise as available-on-demand. A tool the model already
2274
+ * promoted lives in `this.tools` and carries its own schema, so it drops out
2275
+ * of the index rather than being listed twice.
2276
+ */
2277
+ deferredToolNamesForPrompt(liveNames) {
2278
+ if (this.deferredBuiltinToolNames.length === 0)
2279
+ return [];
2280
+ const live = new Set(liveNames);
2281
+ return this.deferredBuiltinToolNames.filter((name) => !live.has(name));
2282
+ }
2243
2283
  /** Environment facts that vary per session rather than per host. */
2244
2284
  promptEnvironment() {
2245
2285
  const networkAllow = this.settingsManager.get("networkMode") === "allowlist"
@@ -2247,11 +2287,37 @@ export class AgentSession {
2247
2287
  : [];
2248
2288
  return { additionalRoots: this.additionalRoots, networkAllow };
2249
2289
  }
2290
+ /**
2291
+ * Build the stable system-prompt prefix for the current tool set and state.
2292
+ *
2293
+ * Three modes, in precedence order: a full replacement (`systemPrompt`), a
2294
+ * composed sub-agent prompt (`agentPrompt` — agent body plus Tools, project
2295
+ * context, return contract and Environment), or the standard prompt.
2296
+ */
2297
+ async buildBasePrompt(planMode, approvedPlanPath) {
2298
+ if (this.customSystemPrompt)
2299
+ return this.customSystemPrompt;
2300
+ const toolNames = this.tools.map((tool) => tool.name);
2301
+ const deferredToolNames = this.deferredToolNamesForPrompt(toolNames);
2302
+ if (this.agentPrompt !== undefined) {
2303
+ return buildSubAgentSystemPrompt(this.agentPrompt, {
2304
+ cwd: this.cwd,
2305
+ toolNames,
2306
+ deferredToolNames,
2307
+ context: this.opts.agentContext,
2308
+ environment: this.promptEnvironment(),
2309
+ });
2310
+ }
2311
+ return buildSystemPrompt(this.cwd, this.skills, planMode, approvedPlanPath, toolNames, undefined, this.provider, this.promptEnvironment(), deferredToolNames);
2312
+ }
2250
2313
  /** Rebuild messages[0] from current plan-mode + approved-plan state. */
2251
2314
  async rebuildSystemPromptInPlace() {
2315
+ // A full replacement is verbatim by contract — there is nothing to rebuild.
2316
+ // A composed agent prompt still must be: its Tools section has to follow
2317
+ // late-arriving MCP tools, or a compacted child loses tools it can call.
2252
2318
  if (this.customSystemPrompt)
2253
2319
  return;
2254
- const rebuilt = await buildSystemPrompt(this.cwd, this.skills, this.planModeRef.current, this.approvedPlanPath, this.tools.map((tool) => tool.name), undefined, this.provider, this.promptEnvironment());
2320
+ const rebuilt = await this.buildBasePrompt(this.planModeRef.current, this.approvedPlanPath);
2255
2321
  this.baseSystemPrompt = rebuilt;
2256
2322
  const content = this.withSystemPromptTail(rebuilt);
2257
2323
  if (this.messages[0]?.role === "system") {