taskplane 0.24.19 → 0.24.21

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.
@@ -210,7 +210,7 @@ const DEFAULT_CONFIG: TaskConfig = {
210
210
  standards: { docs: [], rules: [] },
211
211
  standards_overrides: {},
212
212
  task_areas: {},
213
- worker: { model: "", tools: "read,write,edit,bash,grep,find,ls", thinking: "off" },
213
+ worker: { model: "", tools: "read,write,edit,bash,grep,find,ls", thinking: "" },
214
214
  reviewer: { model: "", tools: "read,bash,grep,find,ls", thinking: "on" },
215
215
  context: {
216
216
  worker_context_window: 0, warn_percent: 85, kill_percent: 95,
@@ -967,7 +967,7 @@ function processReviewVerdict(
967
967
  // ── Subagent Spawner ─────────────────────────────────────────────────
968
968
 
969
969
  function spawnAgent(opts: {
970
- model: string; tools: string; thinking: string;
970
+ model?: string; tools: string; thinking?: string;
971
971
  systemPrompt: string; prompt: string;
972
972
  contextWindow?: number; warnPct?: number; killPct?: number;
973
973
  wrapUpFile?: string;
@@ -990,12 +990,14 @@ function spawnAgent(opts: {
990
990
  const args = [
991
991
  "-p", "--mode", "json",
992
992
  "--no-session", "--no-extensions", "--no-skills",
993
- "--model", opts.model,
994
993
  "--tools", opts.tools,
995
- "--thinking", opts.thinking,
994
+ ];
995
+ if (opts.model) args.push("--model", opts.model);
996
+ if (opts.thinking) args.push("--thinking", opts.thinking);
997
+ args.push(
996
998
  "--append-system-prompt", sysTmpFile,
997
999
  `@${promptTmpFile}`,
998
- ];
1000
+ );
999
1001
 
1000
1002
  const proc = spawn("pi", args, {
1001
1003
  stdio: ["ignore", "pipe", "pipe"],
@@ -1625,7 +1627,7 @@ export default function (pi: ExtensionAPI) {
1625
1627
  const reviewerModelFallback = process.env.TASKPLANE_MODEL_FALLBACK === "1";
1626
1628
  const reviewerModel = reviewerModelFallback
1627
1629
  ? (ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "anthropic/claude-sonnet-4-20250514")
1628
- : (config.reviewer.model || reviewerDef?.model || (ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "anthropic/claude-sonnet-4-20250514"));
1630
+ : (config.reviewer.model || reviewerDef?.model || "");
1629
1631
  const reviewerPrompt = reviewerDef?.systemPrompt || "You are a code reviewer. Read the request and write your review to the specified output file.";
1630
1632
  const systemPrompt = reviewerPrompt + "\n\n" + buildProjectContext(config, task.taskFolder);
1631
1633
  const promptContent = readFileSync(requestPath, "utf-8");
@@ -1648,7 +1650,7 @@ export default function (pi: ExtensionAPI) {
1648
1650
  const spawned = spawnAgent({
1649
1651
  model: reviewerModel,
1650
1652
  tools: config.reviewer.tools || reviewerDef?.tools || "read,write,bash,grep,find,ls",
1651
- thinking: config.reviewer.thinking || "on",
1653
+ thinking: config.reviewer.thinking || undefined,
1652
1654
  systemPrompt,
1653
1655
  prompt: promptContent,
1654
1656
  onToolCall: (toolName, args) => {
@@ -2174,9 +2176,7 @@ export default function (pi: ExtensionAPI) {
2174
2176
  const modelFallbackActive = process.env.TASKPLANE_MODEL_FALLBACK === "1";
2175
2177
  const model = modelFallbackActive
2176
2178
  ? (ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "anthropic/claude-sonnet-4-20250514")
2177
- : (config.worker.model
2178
- || workerDef?.model
2179
- || (ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "anthropic/claude-sonnet-4-20250514"));
2179
+ : (config.worker.model || workerDef?.model || "");
2180
2180
 
2181
2181
  const promptLines = [
2182
2182
  `Read your task instructions at: ${task.promptPath}`,
@@ -2235,7 +2235,7 @@ export default function (pi: ExtensionAPI) {
2235
2235
  const spawned = spawnAgent({
2236
2236
  model,
2237
2237
  tools: config.worker.tools || workerDef?.tools || "read,write,edit,bash,grep,find,ls",
2238
- thinking: config.worker.thinking || "off",
2238
+ thinking: config.worker.thinking || undefined,
2239
2239
  systemPrompt,
2240
2240
  prompt,
2241
2241
  contextWindow,
@@ -2316,7 +2316,7 @@ export default function (pi: ExtensionAPI) {
2316
2316
  const reviewerModelFallback2 = process.env.TASKPLANE_MODEL_FALLBACK === "1";
2317
2317
  const reviewerModel = reviewerModelFallback2
2318
2318
  ? (ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "anthropic/claude-sonnet-4-20250514")
2319
- : (config.reviewer.model || reviewerDef?.model || (ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "anthropic/claude-sonnet-4-20250514"));
2319
+ : (config.reviewer.model || reviewerDef?.model || "");
2320
2320
  const reviewerPrompt = reviewerDef?.systemPrompt || "You are a code reviewer. Read the request and write your review to the specified output file.";
2321
2321
  const systemPrompt = reviewerPrompt + "\n\n" + buildProjectContext(config, task.taskFolder);
2322
2322
 
@@ -2336,7 +2336,7 @@ export default function (pi: ExtensionAPI) {
2336
2336
  const spawned = spawnAgent({
2337
2337
  model: reviewerModel,
2338
2338
  tools: config.reviewer.tools || reviewerDef?.tools || "read,write,bash,grep,find,ls",
2339
- thinking: config.reviewer.thinking || "on",
2339
+ thinking: config.reviewer.thinking || undefined,
2340
2340
  systemPrompt,
2341
2341
  prompt: promptContent,
2342
2342
  onToolCall: (toolName, args) => {
@@ -2425,7 +2425,7 @@ export default function (pi: ExtensionAPI) {
2425
2425
  : (config.quality_gate.review_model
2426
2426
  || config.reviewer.model
2427
2427
  || reviewerDef?.model
2428
- || (ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "anthropic/claude-sonnet-4-20250514"));
2428
+ || "");
2429
2429
 
2430
2430
  const reviewerPrompt = reviewerDef?.systemPrompt
2431
2431
  || "You are a quality gate reviewer. Read the review request and write your JSON verdict to the specified file.";
@@ -2449,7 +2449,7 @@ export default function (pi: ExtensionAPI) {
2449
2449
  const spawned = spawnAgent({
2450
2450
  model: reviewModel,
2451
2451
  tools: config.reviewer.tools || reviewerDef?.tools || "read,write,bash,grep,find,ls",
2452
- thinking: config.reviewer.thinking || "on",
2452
+ thinking: config.reviewer.thinking || undefined,
2453
2453
  systemPrompt,
2454
2454
  prompt,
2455
2455
  onToolCall: (toolName, args) => {
@@ -2568,7 +2568,7 @@ export default function (pi: ExtensionAPI) {
2568
2568
  const fixModelFallback = process.env.TASKPLANE_MODEL_FALLBACK === "1";
2569
2569
  const fixModel = fixModelFallback
2570
2570
  ? (ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "anthropic/claude-sonnet-4-20250514")
2571
- : (config.worker.model || workerDef?.model || "anthropic/claude-sonnet-4-20250514");
2571
+ : (config.worker.model || workerDef?.model || "");
2572
2572
 
2573
2573
  const basePrompt = workerDef?.systemPrompt
2574
2574
  || "You are a fix agent addressing quality gate findings. Read the feedback and make targeted code fixes.";
@@ -2601,7 +2601,7 @@ export default function (pi: ExtensionAPI) {
2601
2601
  const spawned = spawnAgent({
2602
2602
  model: fixModel,
2603
2603
  tools: config.worker.tools || workerDef?.tools || "read,write,edit,bash,grep,find,ls",
2604
- thinking: config.worker.thinking || "off",
2604
+ thinking: config.worker.thinking || undefined,
2605
2605
  systemPrompt,
2606
2606
  prompt: fixPrompt,
2607
2607
  onToolCall: (toolName, args) => {
@@ -2699,7 +2699,7 @@ export default function (pi: ExtensionAPI) {
2699
2699
  ctx.ui.notify(
2700
2700
  `Starting: ${state.task.taskId} — ${state.task.taskName}\n` +
2701
2701
  `Review Level: ${state.task.reviewLevel} · Size: ${state.task.size} · Steps: ${state.task.steps.length}\n` +
2702
- `Worker model: ${state.config.worker.model || "inherit"} · Reviewer: ${state.config.reviewer.model}`,
2702
+ `Worker model: ${state.config.worker.model || "inherit"} · Reviewer: ${state.config.reviewer.model || "inherit"}`,
2703
2703
  "info",
2704
2704
  );
2705
2705