@gajae-code/coding-agent 0.8.1 → 0.9.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 (253) hide show
  1. package/CHANGELOG.md +63 -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/completion-cli.d.ts +41 -0
  5. package/dist/types/cli/config-cli.d.ts +1 -0
  6. package/dist/types/cli/fixture-report.d.ts +20 -0
  7. package/dist/types/cli/fixture-report.test.d.ts +1 -0
  8. package/dist/types/cli/nofile-limit.d.ts +11 -0
  9. package/dist/types/cli/notify-cli.d.ts +7 -0
  10. package/dist/types/cli/update-cli.d.ts +22 -0
  11. package/dist/types/cli.d.ts +124 -1
  12. package/dist/types/commands/completion.d.ts +29 -0
  13. package/dist/types/commands/config.d.ts +3 -0
  14. package/dist/types/commands/deep-interview.d.ts +3 -0
  15. package/dist/types/config/file-lock.d.ts +7 -6
  16. package/dist/types/config/keybindings.d.ts +2 -2
  17. package/dist/types/config/model-profile-activation.d.ts +6 -0
  18. package/dist/types/config/settings-schema.d.ts +105 -1
  19. package/dist/types/config/settings.d.ts +8 -0
  20. package/dist/types/discovery/index.d.ts +1 -0
  21. package/dist/types/export/html/template.generated.d.ts +1 -1
  22. package/dist/types/export/ttsr.d.ts +14 -3
  23. package/dist/types/extensibility/extensions/runner.d.ts +2 -1
  24. package/dist/types/extensibility/extensions/types.d.ts +8 -0
  25. package/dist/types/gjc-runtime/deep-interview-ambiguity.d.ts +39 -0
  26. package/dist/types/gjc-runtime/deep-interview-recorder.d.ts +10 -1
  27. package/dist/types/gjc-runtime/deep-interview-runtime.d.ts +1 -1
  28. package/dist/types/gjc-runtime/deep-interview-state.d.ts +17 -2
  29. package/dist/types/gjc-runtime/session-state-sidecar.d.ts +7 -0
  30. package/dist/types/gjc-runtime/state-writer.d.ts +3 -0
  31. package/dist/types/gjc-runtime/team-runtime.d.ts +28 -1
  32. package/dist/types/gjc-runtime/ultragoal-receipt-freshness.d.ts +42 -0
  33. package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +120 -13
  34. package/dist/types/goals/runtime.d.ts +1 -0
  35. package/dist/types/hooks/native-skill-hook.d.ts +12 -0
  36. package/dist/types/main.d.ts +4 -1
  37. package/dist/types/modes/components/assistant-message.d.ts +5 -1
  38. package/dist/types/modes/components/model-selector.d.ts +4 -0
  39. package/dist/types/modes/components/queued-message-selector.d.ts +12 -0
  40. package/dist/types/modes/components/settings-selector.d.ts +2 -0
  41. package/dist/types/modes/components/status-line.d.ts +9 -0
  42. package/dist/types/modes/controllers/command-controller.d.ts +1 -0
  43. package/dist/types/modes/controllers/event-controller.d.ts +5 -0
  44. package/dist/types/modes/controllers/input-controller.d.ts +1 -3
  45. package/dist/types/modes/interactive-mode.d.ts +2 -0
  46. package/dist/types/modes/print-mode.d.ts +13 -1
  47. package/dist/types/modes/prompt-action-autocomplete.d.ts +1 -1
  48. package/dist/types/modes/rpc/rpc-types.d.ts +14 -0
  49. package/dist/types/modes/shared/agent-wire/event-contract.d.ts +19 -0
  50. package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +23 -1
  51. package/dist/types/modes/types.d.ts +1 -0
  52. package/dist/types/modes/utils/ui-helpers.d.ts +1 -0
  53. package/dist/types/notifications/config.d.ts +14 -1
  54. package/dist/types/notifications/daemon-paths.d.ts +1 -0
  55. package/dist/types/notifications/index.d.ts +6 -3
  56. package/dist/types/notifications/lifecycle-commands.d.ts +11 -3
  57. package/dist/types/notifications/telegram-daemon.d.ts +23 -3
  58. package/dist/types/notifications/telegram-reference.d.ts +0 -5
  59. package/dist/types/notifications/threaded-render.d.ts +6 -0
  60. package/dist/types/runtime-api-key.d.ts +7 -0
  61. package/dist/types/sdk.d.ts +3 -0
  62. package/dist/types/session/agent-session.d.ts +53 -1
  63. package/dist/types/session/agent-storage.d.ts +1 -0
  64. package/dist/types/session/file-mention-pruning.d.ts +8 -0
  65. package/dist/types/session/messages.d.ts +4 -0
  66. package/dist/types/session/session-manager.d.ts +17 -1
  67. package/dist/types/skill-state/active-state.d.ts +18 -1
  68. package/dist/types/system-prompt.d.ts +18 -2
  69. package/dist/types/task/executor.d.ts +3 -0
  70. package/dist/types/task/fork-context-budget.d.ts +7 -0
  71. package/dist/types/task/token-log.d.ts +30 -0
  72. package/dist/types/task/token-log.test.d.ts +1 -0
  73. package/dist/types/tools/bisect.d.ts +81 -0
  74. package/dist/types/tools/computer.d.ts +2 -2
  75. package/dist/types/tools/index.d.ts +1 -0
  76. package/dist/types/tools/search.d.ts +2 -2
  77. package/dist/types/utils/file-mentions.d.ts +14 -0
  78. package/dist/types/utils/git.d.ts +32 -0
  79. package/dist/types/web/scrapers/youtube.d.ts +8 -0
  80. package/dist/types/workflow/workflow-intent-diff.d.ts +8 -2
  81. package/dist/types/workflow/workflow-intent-report-consumer.d.ts +50 -0
  82. package/dist/types/workflow/workflow-intent-report-schema.d.ts +2 -0
  83. package/dist/types/workflow/workflow-intent-report.d.ts +48 -0
  84. package/package.json +7 -7
  85. package/src/append-only-mode.ts +58 -0
  86. package/src/autoresearch/prompt.md +1 -1
  87. package/src/autoresearch/tools/log-experiment.ts +1 -1
  88. package/src/capability/rule.ts +9 -0
  89. package/src/cli/completion-cli.ts +234 -0
  90. package/src/cli/config-cli.ts +61 -9
  91. package/src/cli/fast-help.ts +1 -0
  92. package/src/cli/fixture-report.test.ts +230 -0
  93. package/src/cli/fixture-report.ts +171 -0
  94. package/src/cli/nofile-limit.ts +48 -0
  95. package/src/cli/notify-cli.ts +91 -7
  96. package/src/cli/update-cli.ts +85 -9
  97. package/src/cli.ts +29 -1
  98. package/src/commands/completion.ts +84 -0
  99. package/src/commands/config.ts +2 -0
  100. package/src/commands/contribution-prep.ts +1 -1
  101. package/src/commands/deep-interview.ts +2 -1
  102. package/src/config/file-lock.ts +73 -34
  103. package/src/config/keybindings.ts +2 -2
  104. package/src/config/model-profile-activation.ts +65 -0
  105. package/src/config/model-registry.ts +14 -2
  106. package/src/config/settings-schema.ts +68 -1
  107. package/src/config/settings.ts +22 -0
  108. package/src/coordinator-mcp/server.ts +34 -8
  109. package/src/defaults/gjc/skills/deep-interview/SKILL.md +50 -18
  110. package/src/defaults/gjc/skills/ralplan/SKILL.md +40 -99
  111. package/src/defaults/gjc/skills/team/SKILL.md +17 -14
  112. package/src/defaults/gjc/skills/ultragoal/SKILL.md +59 -4
  113. package/src/defaults/gjc/skills/ultragoal/pipeline-validation-contracts.md +30 -0
  114. package/src/defaults/gjc-defaults.ts +9 -0
  115. package/src/discovery/helpers.ts +10 -0
  116. package/src/discovery/index.ts +1 -0
  117. package/src/export/html/template.generated.ts +1 -1
  118. package/src/export/html/template.js +60 -2
  119. package/src/export/ttsr.ts +96 -18
  120. package/src/extensibility/extensions/runner.ts +183 -219
  121. package/src/extensibility/extensions/types.ts +9 -0
  122. package/src/extensibility/gjc-plugins/runtime-adapters.ts +156 -44
  123. package/src/gjc-runtime/deep-interview-ambiguity.ts +206 -0
  124. package/src/gjc-runtime/deep-interview-recorder.ts +62 -8
  125. package/src/gjc-runtime/deep-interview-runtime.ts +210 -2
  126. package/src/gjc-runtime/deep-interview-state.ts +44 -2
  127. package/src/gjc-runtime/session-state-sidecar.ts +263 -20
  128. package/src/gjc-runtime/state-runtime.ts +12 -2
  129. package/src/gjc-runtime/state-writer.ts +15 -0
  130. package/src/gjc-runtime/team-runtime.ts +187 -15
  131. package/src/gjc-runtime/ultragoal-guard.ts +55 -66
  132. package/src/gjc-runtime/ultragoal-receipt-freshness.ts +315 -0
  133. package/src/gjc-runtime/ultragoal-runtime.ts +1663 -159
  134. package/src/gjc-runtime/workflow-manifest.generated.json +113 -2
  135. package/src/gjc-runtime/workflow-manifest.ts +74 -1
  136. package/src/goals/runtime.ts +10 -2
  137. package/src/hindsight/backend.ts +1 -3
  138. package/src/hooks/native-skill-hook.ts +124 -4
  139. package/src/internal-urls/docs-index.generated.ts +16 -7
  140. package/src/main.ts +95 -43
  141. package/src/memories/index.ts +12 -1
  142. package/src/modes/components/assistant-message.ts +241 -82
  143. package/src/modes/components/custom-editor.ts +1 -0
  144. package/src/modes/components/model-selector.ts +54 -11
  145. package/src/modes/components/queued-message-selector.ts +92 -0
  146. package/src/modes/components/settings-selector.ts +4 -0
  147. package/src/modes/components/status-line.ts +167 -54
  148. package/src/modes/components/tool-execution.ts +44 -19
  149. package/src/modes/components/welcome.ts +160 -44
  150. package/src/modes/controllers/command-controller.ts +40 -4
  151. package/src/modes/controllers/event-controller.ts +66 -47
  152. package/src/modes/controllers/extension-ui-controller.ts +4 -10
  153. package/src/modes/controllers/input-controller.ts +180 -18
  154. package/src/modes/controllers/selector-controller.ts +122 -27
  155. package/src/modes/interactive-mode.ts +51 -16
  156. package/src/modes/print-mode.ts +43 -4
  157. package/src/modes/prompt-action-autocomplete.ts +21 -20
  158. package/src/modes/rpc/rpc-mode.ts +29 -3
  159. package/src/modes/rpc/rpc-types.ts +9 -0
  160. package/src/modes/shared/agent-wire/command-validation.ts +4 -0
  161. package/src/modes/shared/agent-wire/event-contract.ts +22 -0
  162. package/src/modes/shared/agent-wire/event-envelope.ts +82 -0
  163. package/src/modes/shared/agent-wire/scopes.ts +1 -0
  164. package/src/modes/types.ts +1 -0
  165. package/src/modes/utils/hotkeys-markdown.ts +1 -0
  166. package/src/modes/utils/ui-helpers.ts +19 -6
  167. package/src/notifications/config.ts +25 -5
  168. package/src/notifications/daemon-paths.ts +2 -0
  169. package/src/notifications/index.ts +117 -14
  170. package/src/notifications/lifecycle-commands.ts +37 -7
  171. package/src/notifications/lifecycle-orchestrator.ts +19 -6
  172. package/src/notifications/telegram-daemon-cli.ts +2 -2
  173. package/src/notifications/telegram-daemon-control.ts +5 -3
  174. package/src/notifications/telegram-daemon.ts +302 -51
  175. package/src/notifications/telegram-reference.ts +0 -16
  176. package/src/notifications/threaded-render.ts +17 -1
  177. package/src/prompts/agents/architect.md +19 -10
  178. package/src/prompts/agents/critic.md +16 -18
  179. package/src/prompts/agents/executor.md +14 -11
  180. package/src/prompts/agents/planner.md +18 -13
  181. package/src/prompts/ci-green-request.md +3 -8
  182. package/src/prompts/goals/goal-continuation.md +0 -5
  183. package/src/prompts/goals/goal-mode-active.md +0 -5
  184. package/src/prompts/system/agent-creation-architect.md +2 -2
  185. package/src/prompts/system/plan-mode-active.md +1 -1
  186. package/src/prompts/system/plan-mode-subagent.md +3 -3
  187. package/src/prompts/system/project-prompt.md +0 -13
  188. package/src/prompts/system/subagent-system-prompt.md +3 -2
  189. package/src/prompts/system/system-prompt.md +29 -19
  190. package/src/prompts/system/volatile-project-context.md +10 -0
  191. package/src/prompts/system/web-search.md +4 -7
  192. package/src/prompts/tools/apply-patch.md +6 -0
  193. package/src/prompts/tools/ast-edit.md +1 -0
  194. package/src/prompts/tools/bash.md +1 -1
  195. package/src/prompts/tools/bisect.md +22 -0
  196. package/src/prompts/tools/browser.md +1 -1
  197. package/src/prompts/tools/computer.md +2 -2
  198. package/src/prompts/tools/cron.md +0 -2
  199. package/src/prompts/tools/eval.md +2 -2
  200. package/src/prompts/tools/find.md +1 -1
  201. package/src/prompts/tools/github.md +6 -6
  202. package/src/prompts/tools/goal.md +1 -3
  203. package/src/prompts/tools/image-gen.md +12 -5
  204. package/src/prompts/tools/irc.md +5 -4
  205. package/src/prompts/tools/job.md +2 -2
  206. package/src/prompts/tools/lsp.md +1 -1
  207. package/src/prompts/tools/monitor.md +2 -2
  208. package/src/prompts/tools/patch.md +2 -2
  209. package/src/prompts/tools/replace.md +2 -21
  210. package/src/prompts/tools/rewind.md +1 -1
  211. package/src/prompts/tools/search-tool-bm25.md +1 -11
  212. package/src/prompts/tools/search.md +1 -1
  213. package/src/prompts/tools/skill.md +3 -2
  214. package/src/prompts/tools/ssh.md +2 -1
  215. package/src/prompts/tools/subagent.md +2 -2
  216. package/src/prompts/tools/task.md +4 -5
  217. package/src/prompts/tools/todo-write.md +1 -1
  218. package/src/prompts/tools/vim.md +1 -0
  219. package/src/prompts/tools/web-search.md +2 -0
  220. package/src/prompts/tools/write.md +8 -2
  221. package/src/runtime-api-key.ts +16 -0
  222. package/src/sdk.ts +52 -28
  223. package/src/session/agent-session.ts +951 -132
  224. package/src/session/agent-storage.ts +4 -0
  225. package/src/session/file-mention-pruning.ts +64 -0
  226. package/src/session/messages.ts +4 -0
  227. package/src/session/session-manager.ts +103 -4
  228. package/src/skill-state/active-state.ts +141 -5
  229. package/src/skill-state/deep-interview-mutation-guard.ts +67 -3
  230. package/src/slash-commands/builtin-registry.ts +218 -71
  231. package/src/system-prompt.ts +57 -16
  232. package/src/task/executor.ts +132 -24
  233. package/src/task/fork-context-advisory.ts +2 -7
  234. package/src/task/fork-context-budget.ts +9 -0
  235. package/src/task/index.ts +13 -6
  236. package/src/task/output-manager.ts +20 -8
  237. package/src/task/receipt.ts +26 -7
  238. package/src/task/token-log.test.ts +188 -0
  239. package/src/task/token-log.ts +179 -0
  240. package/src/tools/bisect.ts +367 -0
  241. package/src/tools/computer.ts +246 -43
  242. package/src/tools/index.ts +3 -0
  243. package/src/tools/output-meta.ts +116 -4
  244. package/src/tools/search.ts +8 -2
  245. package/src/tools/skill.ts +15 -0
  246. package/src/tools/telegram-send.ts +6 -0
  247. package/src/utils/file-mentions.ts +39 -7
  248. package/src/utils/git.ts +73 -0
  249. package/src/web/scrapers/youtube.ts +24 -12
  250. package/src/workflow/workflow-intent-diff.ts +29 -6
  251. package/src/workflow/workflow-intent-report-consumer.ts +221 -0
  252. package/src/workflow/workflow-intent-report-schema.ts +129 -0
  253. package/src/workflow/workflow-intent-report.ts +135 -0
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";
@@ -615,23 +619,12 @@ function registerJsVmCleanup(): void {
615
619
  postmortem.register("js-vm-cleanup", disposeAllVmContexts);
616
620
  }
617
621
 
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)
622
+ /*
623
+ * Append-only context-mode resolution + manager construction live in
624
+ * ./append-only-mode so the initial build, the runtime model/setting-change
625
+ * path, and the status UI share one implementation. Re-exported for importers/tests.
624
626
  */
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
- }
627
+ export { createAppendOnlyContextManager, providerSupportsAppendOnlyAuto, resolveAppendOnlyMode };
635
628
 
636
629
  function customToolToDefinition(tool: CustomTool): ToolDefinition {
637
630
  const definition: ToolDefinition & { [TOOL_DEFINITION_MARKER]: true } = {
@@ -866,6 +859,10 @@ function withEmbeddedDefaultGjcSkills(skills: Skill[]): Skill[] {
866
859
  return [...byName.values()];
867
860
  }
868
861
 
862
+ export function resolveIntentTracingEnabled(intentTracingSetting: boolean | undefined, hasUI: boolean): boolean {
863
+ return (!!intentTracingSetting || $flag("PI_INTENT_TRACING")) && hasUI;
864
+ }
865
+
869
866
  export async function createAgentSession(options: CreateAgentSessionOptions = {}): Promise<CreateAgentSessionResult> {
870
867
  const cwd = options.cwd ?? getProjectDir();
871
868
  const agentDir = options.agentDir ?? getDefaultAgentDir();
@@ -1125,8 +1122,15 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1125
1122
  rulebookRules.push(rule);
1126
1123
  }
1127
1124
  }
1128
- if (existingSession.injectedTtsrRules.length > 0) {
1129
- ttsrManager.restoreInjected(existingSession.injectedTtsrRules);
1125
+ if (ttsrManager.getSettings().enabled !== false) {
1126
+ if ((existingSession.ttsrMessageCount ?? 0) > 0) {
1127
+ ttsrManager.restoreMessageCount(existingSession.ttsrMessageCount ?? 0);
1128
+ }
1129
+ if (existingSession.injectedTtsrRuleRecords && existingSession.injectedTtsrRuleRecords.length > 0) {
1130
+ ttsrManager.restoreInjected(existingSession.injectedTtsrRuleRecords);
1131
+ } else if (existingSession.injectedTtsrRules.length > 0) {
1132
+ ttsrManager.restoreInjected(existingSession.injectedTtsrRules);
1133
+ }
1130
1134
  }
1131
1135
  return { ttsrManager, rulebookRules, alwaysApplyRules };
1132
1136
  });
@@ -1214,8 +1218,8 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1214
1218
 
1215
1219
  const agentRegistry = options.agentRegistry ?? AgentRegistry.global();
1216
1220
  const resolvedAgentId = options.agentId ?? options.parentTaskPrefix ?? MAIN_AGENT_ID;
1217
- const resolvedAgentDisplayName =
1218
- options.agentDisplayName ?? ((options.taskDepth ?? 0) > 0 || options.parentTaskPrefix ? "sub" : "main");
1221
+ const isSubSession = taskDepth > 0 || Boolean(options.parentTaskPrefix) || Boolean(options.currentAgentType);
1222
+ const resolvedAgentDisplayName = options.agentDisplayName ?? (isSubSession ? "sub" : "main");
1219
1223
  const evalKernelOwnerId = `agent-session:${Snowflake.next()}`;
1220
1224
 
1221
1225
  try {
@@ -1520,12 +1524,20 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1520
1524
  }
1521
1525
  let notificationCfg: NotificationConfig | undefined;
1522
1526
  try {
1523
- notificationCfg = getNotificationConfig(Settings.instance);
1527
+ notificationCfg = getNotificationConfig(settings);
1524
1528
  } catch {
1525
1529
  notificationCfg = undefined;
1526
1530
  }
1527
- if (shouldRegisterNotificationsExtension({ env: process.env, cfg: notificationCfg })) {
1528
- inlineExtensions.push(createNotificationsExtension);
1531
+ if (
1532
+ shouldRegisterNotificationsExtension({
1533
+ env: process.env,
1534
+ cfg: notificationCfg,
1535
+ taskDepth,
1536
+ parentTaskPrefix: options.parentTaskPrefix,
1537
+ currentAgentType: options.currentAgentType,
1538
+ })
1539
+ ) {
1540
+ inlineExtensions.push(api => createNotificationsExtension(api, { settings }));
1529
1541
  }
1530
1542
 
1531
1543
  // Extension/module discovery is quarantined; retain only the private
@@ -1632,6 +1644,12 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1632
1644
  cwd,
1633
1645
  sessionManager,
1634
1646
  modelRegistry,
1647
+ {
1648
+ kind: isSubSession ? "sub" : "main",
1649
+ taskDepth,
1650
+ ...(options.parentTaskPrefix ? { parentTaskPrefix: options.parentTaskPrefix } : {}),
1651
+ ...(options.currentAgentType ? { currentAgentType: options.currentAgentType } : {}),
1652
+ },
1635
1653
  );
1636
1654
  }
1637
1655
 
@@ -1751,7 +1769,11 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1751
1769
 
1752
1770
  const repeatToolDescriptions = settings.get("repeatToolDescriptions");
1753
1771
  const eagerTasks = settings.get("task.eager");
1754
- const intentField = settings.get("tools.intentTracing") || $flag("PI_INTENT_TRACING") ? INTENT_FIELD : undefined;
1772
+ const intentTracingEnabled = resolveIntentTracingEnabled(
1773
+ settings.get("tools.intentTracing"),
1774
+ options.hasUI ?? false,
1775
+ );
1776
+ const intentField = intentTracingEnabled ? INTENT_FIELD : undefined;
1755
1777
  const rebuildSystemPrompt = async (
1756
1778
  toolNames: string[],
1757
1779
  tools: Map<string, AgentTool>,
@@ -1823,6 +1845,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1823
1845
  eagerTasks,
1824
1846
  secretsEnabled,
1825
1847
  workspaceTree: workspaceTreePromise,
1848
+ subagent: options.parentTaskPrefix !== undefined,
1826
1849
  });
1827
1850
 
1828
1851
  if (options.systemPrompt === undefined) {
@@ -1924,7 +1947,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
1924
1947
  agentRegistry.register({
1925
1948
  id: resolvedAgentId,
1926
1949
  displayName: resolvedAgentDisplayName,
1927
- kind: (options.taskDepth ?? 0) > 0 || options.parentTaskPrefix ? "sub" : "main",
1950
+ kind: isSubSession ? "sub" : "main",
1928
1951
  parentId: options.parentTaskPrefix,
1929
1952
  session: null,
1930
1953
  sessionFile: sessionManager.getSessionFile() ?? null,
@@ -2031,7 +2054,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
2031
2054
 
2032
2055
  const appendOnlyContext =
2033
2056
  model && resolveAppendOnlyMode(settings.get("provider.appendOnlyContext"), model.provider)
2034
- ? new AppendOnlyContextManager()
2057
+ ? createAppendOnlyContextManager(model.provider)
2035
2058
  : undefined;
2036
2059
  if (appendOnlyContext && options.forkContextSeed && !hasExistingSession) {
2037
2060
  if (options.forkContextSeed.appendOnlyPrefixSnapshot) {
@@ -2202,6 +2225,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
2202
2225
  onResponse,
2203
2226
  convertToLlm: convertToLlmFinal,
2204
2227
  rebuildSystemPrompt,
2228
+ workspaceTree: resolvedWorkspaceTree,
2205
2229
  reloadSshTool,
2206
2230
  requestedToolNames: requestedToolNameSet,
2207
2231
  discoverableToolAllowedNames: options.discoverableToolAllowedNames,