@gajae-code/coding-agent 0.8.2 → 0.9.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 (214) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/types/append-only-mode.d.ts +31 -0
  3. package/dist/types/capability/rule.d.ts +8 -0
  4. package/dist/types/cli/fixture-report.d.ts +20 -0
  5. package/dist/types/cli/fixture-report.test.d.ts +1 -0
  6. package/dist/types/cli/nofile-limit.d.ts +11 -0
  7. package/dist/types/cli/update-cli.d.ts +22 -0
  8. package/dist/types/config/settings-schema.d.ts +119 -1
  9. package/dist/types/discovery/index.d.ts +1 -0
  10. package/dist/types/export/html/template.generated.d.ts +1 -1
  11. package/dist/types/export/ttsr.d.ts +14 -3
  12. package/dist/types/gjc-runtime/deep-interview-state.d.ts +5 -2
  13. package/dist/types/gjc-runtime/session-state-sidecar.d.ts +7 -0
  14. package/dist/types/gjc-runtime/state-writer.d.ts +3 -0
  15. package/dist/types/gjc-runtime/team-runtime.d.ts +26 -0
  16. package/dist/types/gjc-runtime/tmux-common.d.ts +1 -0
  17. package/dist/types/gjc-runtime/ultragoal-receipt-freshness.d.ts +42 -0
  18. package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +119 -13
  19. package/dist/types/goals/runtime.d.ts +1 -0
  20. package/dist/types/hooks/native-skill-hook.d.ts +12 -0
  21. package/dist/types/modes/components/assistant-message.d.ts +5 -1
  22. package/dist/types/modes/components/status-line.d.ts +9 -0
  23. package/dist/types/modes/components/thinking-selector.d.ts +2 -2
  24. package/dist/types/modes/controllers/command-controller.d.ts +1 -0
  25. package/dist/types/modes/controllers/event-controller.d.ts +5 -0
  26. package/dist/types/modes/controllers/selector-controller.d.ts +1 -0
  27. package/dist/types/modes/interactive-mode.d.ts +4 -0
  28. package/dist/types/modes/rpc/rpc-mode.d.ts +1 -3
  29. package/dist/types/modes/rpc/rpc-socket-security.d.ts +3 -0
  30. package/dist/types/modes/rpc/rpc-types.d.ts +14 -0
  31. package/dist/types/modes/shared/agent-wire/event-contract.d.ts +19 -0
  32. package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +23 -1
  33. package/dist/types/modes/types.d.ts +3 -0
  34. package/dist/types/modes/utils/injected-user-submission.d.ts +52 -0
  35. package/dist/types/modes/utils/ui-helpers.d.ts +1 -0
  36. package/dist/types/notifications/config-commands.d.ts +9 -0
  37. package/dist/types/notifications/config.d.ts +22 -0
  38. package/dist/types/notifications/index.d.ts +2 -0
  39. package/dist/types/notifications/lifecycle-commands.d.ts +1 -0
  40. package/dist/types/notifications/lifecycle-control-runtime.d.ts +2 -1
  41. package/dist/types/notifications/reply-sent-store.d.ts +53 -0
  42. package/dist/types/notifications/rich-draft.d.ts +68 -0
  43. package/dist/types/notifications/rich-render.d.ts +90 -0
  44. package/dist/types/notifications/telegram-daemon-cli.d.ts +3 -3
  45. package/dist/types/notifications/telegram-daemon.d.ts +30 -0
  46. package/dist/types/notifications/telegram-reference.d.ts +7 -0
  47. package/dist/types/notifications/threaded-render.d.ts +14 -0
  48. package/dist/types/sdk.d.ts +3 -0
  49. package/dist/types/session/agent-session.d.ts +43 -1
  50. package/dist/types/session/file-mention-pruning.d.ts +8 -0
  51. package/dist/types/session/messages.d.ts +4 -0
  52. package/dist/types/session/session-manager.d.ts +17 -1
  53. package/dist/types/skill-state/active-state.d.ts +18 -1
  54. package/dist/types/system-prompt.d.ts +18 -2
  55. package/dist/types/task/executor.d.ts +1 -0
  56. package/dist/types/task/fork-context-budget.d.ts +7 -0
  57. package/dist/types/task/token-log.d.ts +30 -0
  58. package/dist/types/task/token-log.test.d.ts +1 -0
  59. package/dist/types/tools/bisect.d.ts +81 -0
  60. package/dist/types/tools/index.d.ts +1 -0
  61. package/dist/types/tools/search.d.ts +2 -2
  62. package/dist/types/utils/file-mentions.d.ts +14 -0
  63. package/dist/types/utils/git.d.ts +32 -0
  64. package/dist/types/utils/pasted-image-path.d.ts +30 -0
  65. package/dist/types/web/scrapers/youtube.d.ts +8 -0
  66. package/package.json +8 -11
  67. package/src/append-only-mode.ts +58 -0
  68. package/src/autoresearch/prompt.md +1 -1
  69. package/src/autoresearch/tools/log-experiment.ts +1 -1
  70. package/src/capability/rule.ts +9 -0
  71. package/src/cli/config-cli.ts +27 -3
  72. package/src/cli/fixture-report.test.ts +230 -0
  73. package/src/cli/fixture-report.ts +171 -0
  74. package/src/cli/nofile-limit.ts +48 -0
  75. package/src/cli/notify-cli.ts +11 -9
  76. package/src/cli/update-cli.ts +85 -9
  77. package/src/cli.ts +26 -0
  78. package/src/commands/contribution-prep.ts +1 -1
  79. package/src/config/keybindings.ts +1 -1
  80. package/src/config/settings-schema.ts +76 -1
  81. package/src/defaults/gjc/skills/deep-interview/SKILL.md +12 -13
  82. package/src/defaults/gjc/skills/ralplan/SKILL.md +30 -93
  83. package/src/defaults/gjc/skills/team/SKILL.md +16 -13
  84. package/src/defaults/gjc/skills/ultragoal/SKILL.md +59 -4
  85. package/src/defaults/gjc/skills/ultragoal/pipeline-validation-contracts.md +30 -0
  86. package/src/defaults/gjc-defaults.ts +9 -0
  87. package/src/discovery/helpers.ts +10 -0
  88. package/src/discovery/index.ts +1 -0
  89. package/src/export/html/template.generated.ts +1 -1
  90. package/src/export/html/template.js +60 -2
  91. package/src/export/ttsr.ts +96 -18
  92. package/src/extensibility/extensions/runner.ts +181 -219
  93. package/src/extensibility/gjc-plugins/runtime-adapters.ts +156 -44
  94. package/src/gjc-runtime/deep-interview-state.ts +31 -2
  95. package/src/gjc-runtime/launch-tmux.ts +6 -0
  96. package/src/gjc-runtime/session-state-sidecar.ts +208 -13
  97. package/src/gjc-runtime/state-writer.ts +15 -0
  98. package/src/gjc-runtime/team-runtime.ts +175 -19
  99. package/src/gjc-runtime/tmux-common.ts +1 -0
  100. package/src/gjc-runtime/ultragoal-guard.ts +55 -66
  101. package/src/gjc-runtime/ultragoal-receipt-freshness.ts +315 -0
  102. package/src/gjc-runtime/ultragoal-runtime.ts +1602 -143
  103. package/src/gjc-runtime/workflow-manifest.generated.json +113 -2
  104. package/src/gjc-runtime/workflow-manifest.ts +74 -1
  105. package/src/goals/runtime.ts +10 -2
  106. package/src/hindsight/backend.ts +1 -3
  107. package/src/hooks/native-skill-hook.ts +95 -4
  108. package/src/internal-urls/docs-index.generated.ts +18 -9
  109. package/src/lsp/client.ts +1 -0
  110. package/src/main.ts +43 -2
  111. package/src/memories/index.ts +12 -1
  112. package/src/modes/components/assistant-message.ts +241 -82
  113. package/src/modes/components/custom-editor.ts +1 -0
  114. package/src/modes/components/footer.ts +7 -2
  115. package/src/modes/components/status-line.ts +167 -54
  116. package/src/modes/components/thinking-selector.ts +10 -8
  117. package/src/modes/components/tool-execution.ts +44 -19
  118. package/src/modes/controllers/command-controller.ts +39 -2
  119. package/src/modes/controllers/event-controller.ts +77 -49
  120. package/src/modes/controllers/extension-ui-controller.ts +8 -1
  121. package/src/modes/controllers/input-controller.ts +13 -18
  122. package/src/modes/controllers/selector-controller.ts +41 -0
  123. package/src/modes/interactive-mode.ts +14 -1
  124. package/src/modes/rpc/rpc-mode.ts +32 -12
  125. package/src/modes/rpc/rpc-socket-security.ts +13 -1
  126. package/src/modes/rpc/rpc-types.ts +9 -0
  127. package/src/modes/shared/agent-wire/command-validation.ts +4 -0
  128. package/src/modes/shared/agent-wire/event-contract.ts +22 -0
  129. package/src/modes/shared/agent-wire/event-envelope.ts +82 -0
  130. package/src/modes/shared/agent-wire/scopes.ts +1 -0
  131. package/src/modes/types.ts +3 -0
  132. package/src/modes/utils/injected-user-submission.ts +94 -0
  133. package/src/modes/utils/ui-helpers.ts +17 -4
  134. package/src/notifications/config-commands.ts +20 -0
  135. package/src/notifications/config.ts +43 -4
  136. package/src/notifications/index.ts +105 -9
  137. package/src/notifications/lifecycle-commands.ts +37 -16
  138. package/src/notifications/lifecycle-control-runtime.ts +8 -3
  139. package/src/notifications/reply-sent-store.ts +134 -0
  140. package/src/notifications/rich-draft.ts +107 -0
  141. package/src/notifications/rich-render.ts +142 -0
  142. package/src/notifications/telegram-daemon-cli.ts +54 -7
  143. package/src/notifications/telegram-daemon-control.ts +2 -2
  144. package/src/notifications/telegram-daemon.ts +390 -56
  145. package/src/notifications/telegram-reference.ts +17 -0
  146. package/src/notifications/threaded-render.ts +45 -2
  147. package/src/prompts/agents/architect.md +19 -10
  148. package/src/prompts/agents/critic.md +16 -18
  149. package/src/prompts/agents/executor.md +14 -11
  150. package/src/prompts/agents/planner.md +18 -13
  151. package/src/prompts/ci-green-request.md +3 -8
  152. package/src/prompts/goals/goal-continuation.md +0 -5
  153. package/src/prompts/goals/goal-mode-active.md +0 -5
  154. package/src/prompts/system/agent-creation-architect.md +2 -2
  155. package/src/prompts/system/plan-mode-active.md +1 -1
  156. package/src/prompts/system/plan-mode-subagent.md +3 -3
  157. package/src/prompts/system/project-prompt.md +0 -13
  158. package/src/prompts/system/subagent-system-prompt.md +3 -2
  159. package/src/prompts/system/system-prompt.md +26 -19
  160. package/src/prompts/system/volatile-project-context.md +10 -0
  161. package/src/prompts/system/web-search.md +4 -7
  162. package/src/prompts/tools/apply-patch.md +6 -0
  163. package/src/prompts/tools/ast-edit.md +1 -0
  164. package/src/prompts/tools/bash.md +1 -1
  165. package/src/prompts/tools/bisect.md +22 -0
  166. package/src/prompts/tools/browser.md +1 -1
  167. package/src/prompts/tools/cron.md +0 -2
  168. package/src/prompts/tools/eval.md +2 -2
  169. package/src/prompts/tools/find.md +1 -1
  170. package/src/prompts/tools/github.md +6 -6
  171. package/src/prompts/tools/goal.md +1 -3
  172. package/src/prompts/tools/image-gen.md +12 -5
  173. package/src/prompts/tools/irc.md +5 -4
  174. package/src/prompts/tools/job.md +2 -2
  175. package/src/prompts/tools/lsp.md +1 -1
  176. package/src/prompts/tools/monitor.md +2 -2
  177. package/src/prompts/tools/patch.md +2 -2
  178. package/src/prompts/tools/replace.md +2 -21
  179. package/src/prompts/tools/rewind.md +1 -1
  180. package/src/prompts/tools/search-tool-bm25.md +6 -11
  181. package/src/prompts/tools/search.md +1 -1
  182. package/src/prompts/tools/skill.md +3 -2
  183. package/src/prompts/tools/ssh.md +2 -1
  184. package/src/prompts/tools/subagent.md +2 -2
  185. package/src/prompts/tools/task.md +4 -5
  186. package/src/prompts/tools/todo-write.md +1 -1
  187. package/src/prompts/tools/vim.md +1 -0
  188. package/src/prompts/tools/web-search.md +2 -0
  189. package/src/prompts/tools/write.md +8 -2
  190. package/src/sdk.ts +68 -30
  191. package/src/session/agent-session.ts +734 -107
  192. package/src/session/file-mention-pruning.ts +64 -0
  193. package/src/session/messages.ts +4 -0
  194. package/src/session/session-manager.ts +59 -2
  195. package/src/skill-state/active-state.ts +141 -5
  196. package/src/skill-state/deep-interview-mutation-guard.ts +67 -3
  197. package/src/slash-commands/builtin-registry.ts +143 -1
  198. package/src/system-prompt.ts +57 -16
  199. package/src/task/executor.ts +125 -20
  200. package/src/task/fork-context-advisory.ts +2 -7
  201. package/src/task/fork-context-budget.ts +9 -0
  202. package/src/task/index.ts +4 -3
  203. package/src/task/output-manager.ts +4 -2
  204. package/src/task/token-log.test.ts +188 -0
  205. package/src/task/token-log.ts +179 -0
  206. package/src/tools/bisect.ts +367 -0
  207. package/src/tools/index.ts +3 -0
  208. package/src/tools/output-meta.ts +116 -4
  209. package/src/tools/search.ts +8 -2
  210. package/src/tools/skill.ts +15 -0
  211. package/src/utils/file-mentions.ts +39 -7
  212. package/src/utils/git.ts +73 -0
  213. package/src/utils/pasted-image-path.ts +170 -0
  214. package/src/web/scrapers/youtube.ts +24 -12
package/src/sdk.ts CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  type AgentMessage,
5
5
  type AgentTelemetryConfig,
6
6
  type AgentTool,
7
- AppendOnlyContextManager,
7
+ type AppendOnlyContextManager,
8
8
  INTENT_FIELD,
9
9
  type ThinkingLevel,
10
10
  } from "@gajae-code/agent-core";
@@ -31,7 +31,11 @@ import {
31
31
  prompt,
32
32
  Snowflake,
33
33
  } from "@gajae-code/utils";
34
-
34
+ import {
35
+ createAppendOnlyContextManager,
36
+ providerSupportsAppendOnlyAuto,
37
+ resolveAppendOnlyMode,
38
+ } from "./append-only-mode";
35
39
  import { type AsyncJob, AsyncJobManager, isBackgroundJobSupportEnabled, jobElapsedMs } from "./async";
36
40
  import { loadCapability } from "./capability";
37
41
  import { type Rule, ruleCapability, setActiveRules } from "./capability/rule";
@@ -117,7 +121,12 @@ import {
117
121
  } from "./system-prompt";
118
122
  import { AgentOutputManager } from "./task/output-manager";
119
123
  import { parseThinkingLevel, resolveThinkingLevelForModel, toReasoningEffort } from "./thinking";
120
- import { collectDiscoverableTools, type DiscoverableTool } from "./tool-discovery/tool-index";
124
+ import {
125
+ collectDiscoverableTools,
126
+ type DiscoverableTool,
127
+ isMCPBridgeTool,
128
+ isMCPToolName,
129
+ } from "./tool-discovery/tool-index";
121
130
  import {
122
131
  applyConfiguredSearchTimeout,
123
132
  BashTool,
@@ -615,23 +624,12 @@ function registerJsVmCleanup(): void {
615
624
  postmortem.register("js-vm-cleanup", disposeAllVmContexts);
616
625
  }
617
626
 
618
- /**
619
- * Resolve whether to enable append-only context mode based on the setting and provider.
620
- *
621
- * - `"on"` → always enable
622
- * - `"off"` → never enable
623
- * - `"auto"` → enable for DeepSeek (prefix-caching provider)
627
+ /*
628
+ * Append-only context-mode resolution + manager construction live in
629
+ * ./append-only-mode so the initial build, the runtime model/setting-change
630
+ * path, and the status UI share one implementation. Re-exported for importers/tests.
624
631
  */
625
- function resolveAppendOnlyMode(setting: "auto" | "on" | "off" | undefined, provider: string): boolean {
626
- switch (setting ?? "auto") {
627
- case "on":
628
- return true;
629
- case "off":
630
- return false;
631
- default:
632
- return provider === "deepseek";
633
- }
634
- }
632
+ export { createAppendOnlyContextManager, providerSupportsAppendOnlyAuto, resolveAppendOnlyMode };
635
633
 
636
634
  function customToolToDefinition(tool: CustomTool): ToolDefinition {
637
635
  const definition: ToolDefinition & { [TOOL_DEFINITION_MARKER]: true } = {
@@ -866,6 +864,10 @@ function withEmbeddedDefaultGjcSkills(skills: Skill[]): Skill[] {
866
864
  return [...byName.values()];
867
865
  }
868
866
 
867
+ export function resolveIntentTracingEnabled(intentTracingSetting: boolean | undefined, hasUI: boolean): boolean {
868
+ return (!!intentTracingSetting || $flag("PI_INTENT_TRACING")) && hasUI;
869
+ }
870
+
869
871
  export async function createAgentSession(options: CreateAgentSessionOptions = {}): Promise<CreateAgentSessionResult> {
870
872
  const cwd = options.cwd ?? getProjectDir();
871
873
  const agentDir = options.agentDir ?? getDefaultAgentDir();
@@ -1125,8 +1127,15 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1125
1127
  rulebookRules.push(rule);
1126
1128
  }
1127
1129
  }
1128
- if (existingSession.injectedTtsrRules.length > 0) {
1129
- ttsrManager.restoreInjected(existingSession.injectedTtsrRules);
1130
+ if (ttsrManager.getSettings().enabled !== false) {
1131
+ if ((existingSession.ttsrMessageCount ?? 0) > 0) {
1132
+ ttsrManager.restoreMessageCount(existingSession.ttsrMessageCount ?? 0);
1133
+ }
1134
+ if (existingSession.injectedTtsrRuleRecords && existingSession.injectedTtsrRuleRecords.length > 0) {
1135
+ ttsrManager.restoreInjected(existingSession.injectedTtsrRuleRecords);
1136
+ } else if (existingSession.injectedTtsrRules.length > 0) {
1137
+ ttsrManager.restoreInjected(existingSession.injectedTtsrRules);
1138
+ }
1130
1139
  }
1131
1140
  return { ttsrManager, rulebookRules, alwaysApplyRules };
1132
1141
  });
@@ -1765,7 +1774,11 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1765
1774
 
1766
1775
  const repeatToolDescriptions = settings.get("repeatToolDescriptions");
1767
1776
  const eagerTasks = settings.get("task.eager");
1768
- const intentField = settings.get("tools.intentTracing") || $flag("PI_INTENT_TRACING") ? INTENT_FIELD : undefined;
1777
+ const intentTracingEnabled = resolveIntentTracingEnabled(
1778
+ settings.get("tools.intentTracing"),
1779
+ options.hasUI ?? false,
1780
+ );
1781
+ const intentField = intentTracingEnabled ? INTENT_FIELD : undefined;
1769
1782
  const rebuildSystemPrompt = async (
1770
1783
  toolNames: string[],
1771
1784
  tools: Map<string, AgentTool>,
@@ -1781,7 +1794,15 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1781
1794
  { source: "builtin" },
1782
1795
  )
1783
1796
  : [];
1784
- const discoverableToolsForDesc: DiscoverableTool[] = [...discoverableBuiltinTools];
1797
+ const discoverableMCPTools: DiscoverableTool[] = mcpDiscoveryEnabled
1798
+ ? collectDiscoverableTools(
1799
+ Array.from(tools.values()).filter(
1800
+ tool => isMCPToolName(tool.name) && !activeToolNames.has(tool.name),
1801
+ ),
1802
+ { source: "mcp" },
1803
+ )
1804
+ : [];
1805
+ const discoverableToolsForDesc: DiscoverableTool[] = [...discoverableBuiltinTools, ...discoverableMCPTools];
1785
1806
  const promptTools = buildSystemPromptToolMetadata(tools, {
1786
1807
  search_tool_bm25: { description: renderSearchToolBm25Description(discoverableToolsForDesc) },
1787
1808
  });
@@ -1830,13 +1851,14 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1830
1851
  intentField,
1831
1852
  mcpDiscoveryMode: false,
1832
1853
  mcpDiscoveryServerSummaries: [],
1833
- toolDiscoveryActive: effectiveDiscoveryMode === "all",
1834
- discoverableTools: discoverableBuiltinTools
1854
+ toolDiscoveryActive: effectiveDiscoveryMode === "all" || mcpDiscoveryEnabled,
1855
+ discoverableTools: [...discoverableBuiltinTools, ...discoverableMCPTools]
1835
1856
  .map(tool => ({ name: tool.name, summary: tool.summary }))
1836
1857
  .sort((a, b) => a.name.localeCompare(b.name)),
1837
1858
  eagerTasks,
1838
1859
  secretsEnabled,
1839
1860
  workspaceTree: workspaceTreePromise,
1861
+ subagent: options.parentTaskPrefix !== undefined,
1840
1862
  });
1841
1863
 
1842
1864
  if (options.systemPrompt === undefined) {
@@ -1861,11 +1883,12 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1861
1883
  : toolNamesFromRegistry;
1862
1884
  const normalizedRequested = requestedToolNames.filter(name => toolRegistry.has(name));
1863
1885
  const requestedToolNameSet = new Set(normalizedRequested);
1864
- // Effective discovery mode only covers built-in tools; MCP tool discovery
1865
- // is quarantined from the GJC public surface.
1886
+ // Generic tool discovery hides non-essential built-ins behind search_tool_bm25.
1887
+ // Legacy MCP discovery remains separately controlled by mcp.discoveryMode so
1888
+ // loaded MCP catalogs can be searched without enabling every hidden built-in.
1866
1889
  const toolsDiscoveryModeSetting = settings.get("tools.discoveryMode");
1867
1890
  const effectiveDiscoveryMode: "off" | "all" = toolsDiscoveryModeSetting === "all" ? "all" : "off";
1868
- const mcpDiscoveryEnabled = false;
1891
+ const mcpDiscoveryEnabled = settings.get("mcp.discoveryMode") === true;
1869
1892
  const defaultInactiveToolNames = new Set(
1870
1893
  registeredTools.filter(tool => tool.definition.defaultInactive).map(tool => tool.definition.name),
1871
1894
  );
@@ -1878,6 +1901,20 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1878
1901
  const discoveryDefaultServerToolNames: string[] = [];
1879
1902
  let initialSelectedMCPToolNames: string[] = [];
1880
1903
  let defaultSelectedMCPToolNames: string[] = [];
1904
+ if (mcpDiscoveryEnabled) {
1905
+ const defaultServerNames = new Set(settings.get("mcp.discoveryDefaultServers") ?? []);
1906
+ for (const tool of toolRegistry.values()) {
1907
+ if (!isMCPBridgeTool(tool)) continue;
1908
+ discoverableMCPToolNames.add(tool.name);
1909
+ if (initialRequestedActiveToolNames.includes(tool.name)) {
1910
+ explicitlyRequestedMCPToolNames.push(tool.name);
1911
+ }
1912
+ const serverName = (tool as AgentTool & { mcpServerName?: string }).mcpServerName;
1913
+ if (serverName && defaultServerNames.has(serverName)) {
1914
+ discoveryDefaultServerToolNames.push(tool.name);
1915
+ }
1916
+ }
1917
+ }
1881
1918
  let initialToolNames = [...initialRequestedActiveToolNames];
1882
1919
  if (mcpDiscoveryEnabled) {
1883
1920
  const restoredSelectedMCPToolNames = existingSession.selectedMCPToolNames.filter(name =>
@@ -2045,7 +2082,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
2045
2082
 
2046
2083
  const appendOnlyContext =
2047
2084
  model && resolveAppendOnlyMode(settings.get("provider.appendOnlyContext"), model.provider)
2048
- ? new AppendOnlyContextManager()
2085
+ ? createAppendOnlyContextManager(model.provider)
2049
2086
  : undefined;
2050
2087
  if (appendOnlyContext && options.forkContextSeed && !hasExistingSession) {
2051
2088
  if (options.forkContextSeed.appendOnlyPrefixSnapshot) {
@@ -2216,6 +2253,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
2216
2253
  onResponse,
2217
2254
  convertToLlm: convertToLlmFinal,
2218
2255
  rebuildSystemPrompt,
2256
+ workspaceTree: resolvedWorkspaceTree,
2219
2257
  reloadSshTool,
2220
2258
  requestedToolNames: requestedToolNameSet,
2221
2259
  discoverableToolAllowedNames: options.discoverableToolAllowedNames,
@@ -2237,7 +2275,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
2237
2275
  initialSelectedMCPToolNames,
2238
2276
  defaultSelectedMCPToolNames,
2239
2277
  persistInitialMCPToolSelection: !hasExistingSession,
2240
- defaultSelectedMCPServerNames: [],
2278
+ defaultSelectedMCPServerNames: settings.get("mcp.discoveryDefaultServers") ?? [],
2241
2279
  ttsrManager,
2242
2280
  obfuscator,
2243
2281
  agentId: resolvedAgentId,