lsd-pi 1.2.2 → 1.2.3

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 (31) hide show
  1. package/dist/resources/extensions/slash-commands/plan.js +11 -7
  2. package/dist/resources/extensions/subagent/agents.js +17 -8
  3. package/dist/resources/extensions/subagent/index.js +112 -20
  4. package/package.json +1 -1
  5. package/packages/pi-coding-agent/dist/core/agent-session.d.ts +1 -0
  6. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  7. package/packages/pi-coding-agent/dist/core/agent-session.js +53 -3
  8. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  9. package/packages/pi-coding-agent/dist/core/sdk.js +1 -1
  10. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  11. package/packages/pi-coding-agent/dist/core/skill-tool.test.js +15 -0
  12. package/packages/pi-coding-agent/dist/core/skill-tool.test.js.map +1 -1
  13. package/packages/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
  14. package/packages/pi-coding-agent/dist/core/skills.js +1 -0
  15. package/packages/pi-coding-agent/dist/core/skills.js.map +1 -1
  16. package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
  17. package/packages/pi-coding-agent/dist/core/system-prompt.js +1 -0
  18. package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  19. package/packages/pi-coding-agent/dist/tests/path-display.test.js +1 -0
  20. package/packages/pi-coding-agent/dist/tests/path-display.test.js.map +1 -1
  21. package/packages/pi-coding-agent/package.json +1 -1
  22. package/packages/pi-coding-agent/src/core/agent-session.ts +51 -3
  23. package/packages/pi-coding-agent/src/core/sdk.ts +1 -1
  24. package/packages/pi-coding-agent/src/core/skill-tool.test.ts +18 -0
  25. package/packages/pi-coding-agent/src/core/skills.ts +1 -0
  26. package/packages/pi-coding-agent/src/core/system-prompt.ts +3 -0
  27. package/packages/pi-coding-agent/src/tests/path-display.test.ts +1 -0
  28. package/pkg/package.json +1 -1
  29. package/src/resources/extensions/slash-commands/plan.ts +14 -8
  30. package/src/resources/extensions/subagent/agents.ts +20 -6
  31. package/src/resources/extensions/subagent/index.ts +138 -18
@@ -226,13 +226,17 @@ function restoreStateFromSession(ctx) {
226
226
  }
227
227
  async function enablePlanModeWithModelSwitch(pi, ctx, currentModel, next = {}) {
228
228
  enablePlanMode(pi, currentModel, next);
229
- // Signal that before_agent_start should switch to the reasoning model on next turn
229
+ // Keep fallback behavior in before_agent_start for restored sessions or when
230
+ // immediate switching cannot be completed at entry-time.
230
231
  reasoningModelSwitchDone = false;
231
232
  if (!readAutoSwitchPlanModelSetting())
232
233
  return;
233
- if (!readPlanModeReasoningModel()) {
234
+ const reasoningModel = parseQualifiedModelRef(readPlanModeReasoningModel());
235
+ if (!reasoningModel) {
234
236
  ctx.ui?.notify?.("OpusPlan: set a Plan reasoning model in /settings to auto-switch on entry", "info");
237
+ return;
235
238
  }
239
+ reasoningModelSwitchDone = await setModelIfNeeded(pi, ctx, reasoningModel);
236
240
  }
237
241
  function enablePlanMode(pi, currentModel, next = {}) {
238
242
  const currentMode = getPermissionMode();
@@ -267,14 +271,15 @@ function leavePlanMode(pi, approvalStatus, nextPermissionMode, clearTask = false
267
271
  }
268
272
  async function setModelIfNeeded(pi, ctx, modelRef) {
269
273
  if (!modelRef)
270
- return;
274
+ return false;
271
275
  const currentModel = parseQualifiedModelRef(ctx?.model ? `${ctx.model.provider}/${ctx.model.id}` : undefined);
272
276
  if (sameModel(currentModel, modelRef))
273
- return;
277
+ return true;
274
278
  const model = resolveModelFromContext(ctx, modelRef);
275
279
  if (!model)
276
- return;
280
+ return false;
277
281
  await pi.setModel(model, { persist: false });
282
+ return true;
278
283
  }
279
284
  function buildExecutionKickoffMessage(options) {
280
285
  const { permissionMode, executeWithSubagent = false } = options;
@@ -531,8 +536,7 @@ export default function planCommand(pi) {
531
536
  if (!reasoningModelSwitchDone && readAutoSwitchPlanModelSetting()) {
532
537
  const reasoningModel = parseQualifiedModelRef(readPlanModeReasoningModel());
533
538
  if (reasoningModel) {
534
- reasoningModelSwitchDone = true;
535
- await setModelIfNeeded(pi, ctx, reasoningModel);
539
+ reasoningModelSwitchDone = await setModelIfNeeded(pi, ctx, reasoningModel);
536
540
  }
537
541
  }
538
542
  return { systemPrompt: buildPlanModeSystemPrompt() };
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import * as fs from "node:fs";
5
5
  import * as path from "node:path";
6
+ import { fileURLToPath } from "node:url";
6
7
  import { getAgentDir, parseFrontmatter } from "@gsd/pi-coding-agent";
7
8
  const PROJECT_AGENT_DIR_CANDIDATES = [".lsd", ".gsd", ".pi"];
8
9
  function normalizeAgentModel(model) {
@@ -87,25 +88,33 @@ function findNearestProjectAgentsDir(cwd) {
87
88
  currentDir = parentDir;
88
89
  }
89
90
  }
91
+ function getBundledAgentsDir() {
92
+ const here = path.dirname(fileURLToPath(import.meta.url));
93
+ return path.resolve(here, "../../agents");
94
+ }
90
95
  export function discoverAgents(cwd, scope) {
91
96
  const userDir = path.join(getAgentDir(), "agents");
97
+ const bundledDir = getBundledAgentsDir();
92
98
  const projectAgentsDir = findNearestProjectAgentsDir(cwd);
99
+ const bundledAgents = scope === "project" ? [] : loadAgentsFromDir(bundledDir, "bundled");
93
100
  const userAgents = scope === "project" ? [] : loadAgentsFromDir(userDir, "user");
94
101
  const projectAgents = scope === "user" || !projectAgentsDir ? [] : loadAgentsFromDir(projectAgentsDir, "project");
95
102
  const agentMap = new Map();
96
- if (scope === "both") {
97
- for (const agent of userAgents)
98
- agentMap.set(agent.name, agent);
99
- for (const agent of projectAgents)
103
+ const addAgents = (items) => {
104
+ for (const agent of items)
100
105
  agentMap.set(agent.name, agent);
106
+ };
107
+ if (scope === "both") {
108
+ addAgents(bundledAgents);
109
+ addAgents(userAgents);
110
+ addAgents(projectAgents);
101
111
  }
102
112
  else if (scope === "user") {
103
- for (const agent of userAgents)
104
- agentMap.set(agent.name, agent);
113
+ addAgents(bundledAgents);
114
+ addAgents(userAgents);
105
115
  }
106
116
  else {
107
- for (const agent of projectAgents)
108
- agentMap.set(agent.name, agent);
117
+ addAgents(projectAgents);
109
118
  }
110
119
  return { agents: Array.from(agentMap.values()), projectAgentsDir };
111
120
  }
@@ -18,9 +18,9 @@ import * as os from "node:os";
18
18
  import * as path from "node:path";
19
19
  import { StringEnum } from "@gsd/pi-ai";
20
20
  import { getAgentDir, getMarkdownTheme, } from "@gsd/pi-coding-agent";
21
- import { Container, Markdown, Spacer, Text } from "@gsd/pi-tui";
21
+ import { Container, Key, Markdown, Spacer, Text } from "@gsd/pi-tui";
22
22
  import { Type } from "@sinclair/typebox";
23
- import { formatTokenCount } from "../shared/mod.js";
23
+ import { formatTokenCount, shortcutDesc } from "../shared/mod.js";
24
24
  import { discoverAgents } from "./agents.js";
25
25
  import { buildSubagentProcessArgs, getBundledExtensionPathsFromEnv } from "./launch-helpers.js";
26
26
  import { createIsolation, mergeDeltaPatches, readIsolationMode, } from "./isolation.js";
@@ -394,7 +394,7 @@ async function waitForFile(filePath, signal, timeoutMs = 30 * 60 * 1000) {
394
394
  }
395
395
  return false;
396
396
  }
397
- async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, modelOverride, parentModel, signal, onUpdate, makeDetails) {
397
+ async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, modelOverride, parentModel, signal, onUpdate, makeDetails, foregroundHooks) {
398
398
  const agent = agents.find((a) => a.name === agentName);
399
399
  if (!agent) {
400
400
  const available = agents.map((a) => `"${a.name}"`).join(", ") || "none";
@@ -434,6 +434,28 @@ async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, mo
434
434
  });
435
435
  }
436
436
  };
437
+ let wasAborted = false;
438
+ let deferTempPromptCleanup = false;
439
+ let tempPromptCleanupDone = false;
440
+ const cleanupTempPromptFiles = () => {
441
+ if (tempPromptCleanupDone)
442
+ return;
443
+ tempPromptCleanupDone = true;
444
+ if (tmpPromptPath)
445
+ try {
446
+ fs.unlinkSync(tmpPromptPath);
447
+ }
448
+ catch {
449
+ /* ignore */
450
+ }
451
+ if (tmpPromptDir)
452
+ try {
453
+ fs.rmdirSync(tmpPromptDir);
454
+ }
455
+ catch {
456
+ /* ignore */
457
+ }
458
+ };
437
459
  try {
438
460
  if (agent.systemPrompt.trim()) {
439
461
  const tmp = writePromptToTempFile(agent.name, agent.systemPrompt);
@@ -441,7 +463,6 @@ async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, mo
441
463
  tmpPromptPath = tmp.filePath;
442
464
  }
443
465
  const args = buildSubagentProcessArgs(agent, task, tmpPromptPath, inferredModel);
444
- let wasAborted = false;
445
466
  const exitCode = await new Promise((resolve) => {
446
467
  const bundledPaths = getBundledExtensionPathsFromEnv();
447
468
  const extensionArgs = bundledPaths.flatMap((p) => ["--extension", p]);
@@ -459,6 +480,7 @@ async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, mo
459
480
  let buffer = "";
460
481
  let completionSeen = false;
461
482
  let resolved = false;
483
+ let foregroundReleased = false;
462
484
  const procAbortController = new AbortController();
463
485
  let resolveBackgroundResult;
464
486
  let rejectBackgroundResult;
@@ -472,6 +494,27 @@ async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, mo
472
494
  resolved = true;
473
495
  resolve(code);
474
496
  };
497
+ const adoptToBackground = (jobId) => {
498
+ if (resolved || foregroundReleased)
499
+ return false;
500
+ foregroundReleased = true;
501
+ deferTempPromptCleanup = true;
502
+ currentResult.backgroundJobId = jobId;
503
+ finishForeground(0);
504
+ return true;
505
+ };
506
+ backgroundResultPromise.finally(() => {
507
+ if (deferTempPromptCleanup)
508
+ cleanupTempPromptFiles();
509
+ });
510
+ foregroundHooks?.onStart?.({
511
+ agentName,
512
+ task,
513
+ cwd: cwd ?? defaultCwd,
514
+ abortController: procAbortController,
515
+ resultPromise: backgroundResultPromise,
516
+ adoptToBackground,
517
+ });
475
518
  proc.stdout.on("data", (data) => {
476
519
  buffer += data.toString();
477
520
  const lines = buffer.split("\n");
@@ -505,11 +548,13 @@ async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, mo
505
548
  exitCode: finalExitCode,
506
549
  model: currentResult.model,
507
550
  });
551
+ foregroundHooks?.onFinish?.();
508
552
  finishForeground(finalExitCode);
509
553
  });
510
554
  proc.on("error", (error) => {
511
555
  liveSubagentProcesses.delete(proc);
512
556
  rejectBackgroundResult?.(error);
557
+ foregroundHooks?.onFinish?.();
513
558
  finishForeground(1);
514
559
  });
515
560
  const killProc = () => {
@@ -546,20 +591,8 @@ async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, mo
546
591
  return currentResult;
547
592
  }
548
593
  finally {
549
- if (tmpPromptPath)
550
- try {
551
- fs.unlinkSync(tmpPromptPath);
552
- }
553
- catch {
554
- /* ignore */
555
- }
556
- if (tmpPromptDir)
557
- try {
558
- fs.rmdirSync(tmpPromptDir);
559
- }
560
- catch {
561
- /* ignore */
562
- }
594
+ if (!deferTempPromptCleanup)
595
+ cleanupTempPromptFiles();
563
596
  }
564
597
  }
565
598
  const TaskItem = Type.Object({
@@ -610,6 +643,9 @@ const SubagentParams = Type.Object({
610
643
  });
611
644
  export default function (pi) {
612
645
  let bgManager = null;
646
+ const foregroundSubagentStatusKey = "foreground-subagent";
647
+ const foregroundSubagentHint = "Ctrl+B: move foreground subagent to background";
648
+ let activeForegroundSubagent = null;
613
649
  function getBgManager() {
614
650
  if (!bgManager)
615
651
  throw new Error("BackgroundJobManager not initialized.");
@@ -642,6 +678,7 @@ export default function (pi) {
642
678
  });
643
679
  });
644
680
  pi.on("session_before_switch", async () => {
681
+ activeForegroundSubagent = null;
645
682
  if (bgManager) {
646
683
  for (const job of bgManager.getRunningJobs()) {
647
684
  bgManager.cancel(job.id);
@@ -649,6 +686,7 @@ export default function (pi) {
649
686
  }
650
687
  });
651
688
  pi.on("session_shutdown", async () => {
689
+ activeForegroundSubagent = null;
652
690
  await stopLiveSubagents();
653
691
  if (bgManager) {
654
692
  bgManager.shutdown();
@@ -757,6 +795,38 @@ export default function (pi) {
757
795
  ctx.ui.notify(`Available agents (${discovery.agents.length}):\n${lines.join("\n")}`, "info");
758
796
  },
759
797
  });
798
+ pi.registerShortcut(Key.ctrl("b"), {
799
+ description: shortcutDesc("Move foreground subagent to background", "/subagents list"),
800
+ handler: async (ctx) => {
801
+ const running = activeForegroundSubagent;
802
+ if (!running || running.claimed)
803
+ return;
804
+ const manager = bgManager;
805
+ if (!manager) {
806
+ ctx.ui.notify("Background subagent manager is not available.", "error");
807
+ return;
808
+ }
809
+ running.claimed = true;
810
+ let jobId;
811
+ try {
812
+ jobId = manager.adoptRunning(running.agentName, running.task, running.cwd, running.abortController, running.resultPromise);
813
+ }
814
+ catch (error) {
815
+ running.claimed = false;
816
+ ctx.ui.notify(error instanceof Error ? error.message : String(error), "error");
817
+ return;
818
+ }
819
+ const released = running.adoptToBackground(jobId);
820
+ if (!released) {
821
+ running.claimed = false;
822
+ manager.cancel(jobId);
823
+ return;
824
+ }
825
+ activeForegroundSubagent = null;
826
+ ctx.ui.setStatus(foregroundSubagentStatusKey, undefined);
827
+ ctx.ui.notify(`Moved ${running.agentName} to background as ${jobId}. Use /subagents wait ${jobId}, /subagents output ${jobId}, or /subagents cancel ${jobId}.`, "info");
828
+ },
829
+ });
760
830
  pi.registerTool({
761
831
  name: "await_subagent",
762
832
  label: "Await Background Subagent",
@@ -785,13 +855,15 @@ export default function (pi) {
785
855
  "Model selection can be overridden per call, otherwise it is inferred from the agent config, delegated-task preferences, or the current session model.",
786
856
  "Modes: single ({ agent, task }), parallel ({ tasks: [{agent, task},...] }), chain ({ chain: [{agent, task},...] } with {previous} placeholder).",
787
857
  "Agents are defined as .md files in the configured user agent directory (for LSD this is typically ~/.lsd/agent/agents/) or project-local .lsd/agents/, with legacy support for .gsd/agents/ and .pi/agents/.",
858
+ "If the user asks for a named subagent such as scout, worker, reviewer, or planner, invoke this tool directly rather than the Skill tool.",
788
859
  "Use the /subagent command to list available agents and their descriptions.",
789
860
  "Set background: true (single mode only) to run detached — returns immediately with a sa_xxxx job ID. Completion is announced back into the session. Use await_subagent or /subagents to manage background jobs.",
790
861
  ].join(" "),
791
862
  promptGuidelines: [
792
863
  "Use subagent to delegate self-contained tasks that benefit from an isolated context window.",
793
- "When scout is the right fit, call the subagent tool directly do not type '/subagent' as a shell-like command.",
864
+ "The subagent tool is available directly as a tool call invoke it programmatically like any other tool, not via a slash command. Do NOT type '/scout' or '/subagent' in the chat; call this tool with the correct parameters instead.",
794
865
  "Valid call shapes: single mode uses { agent, task }, parallel mode uses { tasks: [{ agent, task }, ...] }, and chain mode uses { chain: [{ agent, task }, ...] }.",
866
+ "If the user names a subagent such as scout, worker, reviewer, or planner, use this subagent tool directly rather than the Skill tool or ad-hoc search.",
795
867
  "Recon planning rule: use no scout for narrow known-file work, one scout for one broad unfamiliar subsystem, and parallel scouts only when the work spans multiple loosely-coupled subsystems.",
796
868
  "Use scout only for broad or unfamiliar codebase reconnaissance before you read many files yourself; save direct reads for targeted lookups once the relevant files are known.",
797
869
  "Do not use scout as the reviewer, auditor, or final judge. Scout should map architecture, files, ownership, and likely hotspots for another agent or the parent model to evaluate.",
@@ -1045,7 +1117,24 @@ export default function (pi) {
1045
1117
  const taskId = crypto.randomUUID();
1046
1118
  isolation = await createIsolation(effectiveCwd, taskId, isolationMode);
1047
1119
  }
1048
- const result = await runSingleAgent(ctx.cwd, agents, params.agent, params.task, isolation ? isolation.workDir : params.cwd, undefined, params.model, ctx.model ? { provider: ctx.model.provider, id: ctx.model.id } : undefined, signal, onUpdate, makeDetails("single"));
1120
+ const result = await runSingleAgent(ctx.cwd, agents, params.agent, params.task, isolation ? isolation.workDir : params.cwd, undefined, params.model, ctx.model ? { provider: ctx.model.provider, id: ctx.model.id } : undefined, signal, onUpdate, makeDetails("single"), !isolation
1121
+ ? {
1122
+ onStart: (control) => {
1123
+ activeForegroundSubagent = { ...control, claimed: false };
1124
+ ctx.ui.setStatus(foregroundSubagentStatusKey, foregroundSubagentHint);
1125
+ },
1126
+ onFinish: () => {
1127
+ activeForegroundSubagent = null;
1128
+ ctx.ui.setStatus(foregroundSubagentStatusKey, undefined);
1129
+ },
1130
+ }
1131
+ : undefined);
1132
+ if (result.backgroundJobId) {
1133
+ return {
1134
+ content: [{ type: "text", text: `Moved ${result.agent} to background as **${result.backgroundJobId}**. Use \`await_subagent\`, \`/subagents wait ${result.backgroundJobId}\`, or \`/subagents output ${result.backgroundJobId}\`.` }],
1135
+ details: makeDetails("single")([result]),
1136
+ };
1137
+ }
1049
1138
  // Capture and merge delta if isolated
1050
1139
  if (isolation) {
1051
1140
  const patches = await isolation.captureDelta();
@@ -1197,6 +1286,9 @@ export default function (pi) {
1197
1286
  if (displayItems.length > COLLAPSED_ITEM_COUNT)
1198
1287
  text += `\n${theme.fg("muted", "(Ctrl+O to expand)")}`;
1199
1288
  }
1289
+ if (!isError && !r.backgroundJobId && !finalOutput) {
1290
+ text += `\n${theme.fg("muted", "Hint: Ctrl+B to move running foreground subagent to background")}`;
1291
+ }
1200
1292
  const usageStr = formatUsageStats(r.usage, r.model);
1201
1293
  if (usageStr)
1202
1294
  text += `\n${theme.fg("dim", usageStr)}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lsd-pi",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "LSD — Looks Sort of Done coding agent",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -322,6 +322,7 @@ export declare class AgentSession {
322
322
  private _normalizePromptSnippet;
323
323
  private _normalizePromptGuidelines;
324
324
  private _findSkillByName;
325
+ private _findKnownSubagentByName;
325
326
  private _formatMissingSkillMessage;
326
327
  private _emitSkillExpansionError;
327
328
  private _renderSkillInvocation;
@@ -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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"}
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * Modes use this class and add their own I/O layer on top.
14
14
  */
15
- import { readFileSync } from "node:fs";
15
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
16
16
  import { basename, dirname, join } from "node:path";
17
17
  import { Text } from "@gsd/pi-tui";
18
18
  import { modelsAreEqual, resetApiProviders, supportsAdaptiveThinking, supportsXhigh } from "@gsd/pi-ai";
@@ -702,7 +702,54 @@ export class AgentSession {
702
702
  _findSkillByName(skillName) {
703
703
  return this.resourceLoader.getSkills().skills.find((skill) => skill.name === skillName);
704
704
  }
705
+ _findKnownSubagentByName(agentName) {
706
+ const normalized = agentName.trim().toLowerCase();
707
+ if (!normalized)
708
+ return undefined;
709
+ const builtInAgentNames = new Set(["scout", "worker", "reviewer", "planner", "teams-builder", "teams-reviewer"]);
710
+ if (builtInAgentNames.has(normalized)) {
711
+ return { name: normalized, source: "bundled" };
712
+ }
713
+ const userAgentsDir = join(process.env.LSD_CODING_AGENT_DIR || process.env.GSD_CODING_AGENT_DIR || join(process.env.HOME || "", ".lsd", "agent"), "agents");
714
+ const projectCandidates = [".lsd", ".gsd", ".pi"].map((dir) => join(this._cwd, dir, "agents"));
715
+ for (const [dirPath, source] of [[userAgentsDir, "user"], ...projectCandidates.map((p) => [p, "project"])]) {
716
+ if (!existsSync(dirPath))
717
+ continue;
718
+ let entries = [];
719
+ try {
720
+ entries = readdirSync(dirPath);
721
+ }
722
+ catch {
723
+ continue;
724
+ }
725
+ for (const entry of entries) {
726
+ if (!entry.endsWith(".md"))
727
+ continue;
728
+ const filePath = join(dirPath, entry);
729
+ try {
730
+ if (!statSync(filePath).isFile())
731
+ continue;
732
+ const raw = readFileSync(filePath, "utf-8");
733
+ const match = raw.match(/^---\s*[\r\n]+([\s\S]*?)[\r\n]+---/);
734
+ const frontmatter = match?.[1] ?? "";
735
+ const nameMatch = frontmatter.match(/^name:\s*(.+)$/m);
736
+ const name = nameMatch?.[1]?.trim().replace(/^['"]|['"]$/g, "");
737
+ if (name?.toLowerCase() === normalized) {
738
+ return { name, source };
739
+ }
740
+ }
741
+ catch {
742
+ continue;
743
+ }
744
+ }
745
+ }
746
+ return undefined;
747
+ }
705
748
  _formatMissingSkillMessage(skillName) {
749
+ const knownSubagent = this._findKnownSubagentByName(skillName);
750
+ if (knownSubagent) {
751
+ return `\"${knownSubagent.name}\" is an available subagent (${knownSubagent.source}), not a skill. Use the subagent tool directly with { agent: \"${knownSubagent.name}\", task: \"...\" }.`;
752
+ }
706
753
  const availableSkills = this.resourceLoader.getSkills().skills.map((skill) => skill.name).join(", ") || "(none)";
707
754
  return `Skill "${skillName}" not found. Available skills: ${availableSkills}`;
708
755
  }
@@ -753,6 +800,7 @@ export class AgentSession {
753
800
  "Scout-first reconnaissance policy: when you need architecture context across multiple files or folders, do not map the subsystem by reading file-after-file yourself. Launch the scout subagent first, then continue with lsp and targeted reads.",
754
801
  "If your next step would be broad exploration rather than a targeted lookup, prefer scout before doing more read/find/grep sweeps yourself.",
755
802
  "When you choose scout, call subagent directly with valid parameters: { agent, task } for one scout, or { tasks: [{ agent, task }, ...] } for parallel scouts.",
803
+ "If the user explicitly names a subagent such as scout, worker, reviewer, or planner, invoke the subagent tool directly rather than the Skill tool or ad-hoc discovery.",
756
804
  "Scout is reconnaissance-only. Do not use it as the reviewer, auditor, or final issue-ranker; use it to map files, ownership, and likely hotspots for later evaluation.",
757
805
  "If the work spans multiple loosely-coupled subsystems, prefer parallel scout subagents so each scout maps one area and the parent model reads the summaries instead of the raw files.",
758
806
  "For broad review or audit requests, use scout only as a prep step to map architecture and hotspots; the parent model or a reviewer should make the final judgments.",
@@ -1002,7 +1050,7 @@ export class AgentSession {
1002
1050
  return {
1003
1051
  name: "Skill",
1004
1052
  label: "Skill",
1005
- description: "Execute a skill within the main conversation. Use this tool when users ask for a slash command or reference a skill by name. Returns the expanded skill block and appends args after it.",
1053
+ description: "Execute a listed skill within the main conversation. Use this tool only for actual available skills or explicit /skill:name-style requests — not for launching subagents like scout, worker, reviewer, or planner. Returns the expanded skill block and appends args after it.",
1006
1054
  parameters: skillSchema,
1007
1055
  execute: async (_toolCallId, params) => {
1008
1056
  const input = params;
@@ -1889,7 +1937,9 @@ export class AgentSession {
1889
1937
  this._toolRegistry = toolRegistry;
1890
1938
  const nextActiveToolNames = options?.activeToolNames
1891
1939
  ? [...options.activeToolNames]
1892
- : [...previousActiveToolNames];
1940
+ : this.settingsManager.getToolProfile() === "full"
1941
+ ? Array.from(toolRegistry.keys())
1942
+ : [...previousActiveToolNames];
1893
1943
  if (options?.includeAllExtensionTools) {
1894
1944
  for (const tool of wrappedExtensionTools) {
1895
1945
  nextActiveToolNames.push(tool.name);