@mjasnikovs/pi-task 0.4.3 → 0.4.4

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 (2) hide show
  1. package/dist/task/phases.js +10 -12
  2. package/package.json +1 -1
@@ -177,25 +177,23 @@ export async function phaseResearch(deps, refined, researchDeps = {}) {
177
177
  // is gone, but 4 concurrent streams still split the one GPU and slow
178
178
  // each other ~4x (context worker measured 27s solo vs 128s under load),
179
179
  // so summed-but-fast (~100s) beats max-of-slowed (~130s).
180
- // Every worker runs /no_think (below), so sequential is the faster regime.
181
180
  // Do NOT switch this back to Promise.all without re-running that A/B.
182
181
  //
183
- // `/no_think` is the big win: these are agentic exploration loops, and on a
184
- // reasoning model the child would otherwise emit a full <think> trace at
185
- // every tool step ("let me read X next…") — the single largest decode sink
186
- // in the pipeline. Stripping it cut each worker's decode 3-8x in the A/B.
187
- // The worker still calls as many tools as it wants; it just stops narrating
188
- // between them. See appendNoThink. Result order (files, apis, context,
189
- // tooling) is preserved for assembly.
182
+ // NOTE: `/no_think` is intentionally NOT applied to research workers.
183
+ // Several local reasoning models (Qwen3.6, DeepSeek-R1) ignore the
184
+ // directive they still emit thinking but the confused stopping logic
185
+ // causes them to burn their entire output budget on tool calls without
186
+ // producing text. Letting the model think freely produces proper output.
187
+ // Result order (files, apis, context, tooling) is preserved for assembly.
190
188
  const workerSpecs = [
191
189
  {
192
190
  label: 'worker:files',
193
- prompt: appendNoThink(promptHeader + RESEARCH_FILES_PROMPT(refined))
191
+ prompt: promptHeader + RESEARCH_FILES_PROMPT(refined)
194
192
  },
195
- { label: 'worker:apis', prompt: appendNoThink(promptHeader + RESEARCH_APIS_PROMPT(refined)) },
193
+ { label: 'worker:apis', prompt: promptHeader + RESEARCH_APIS_PROMPT(refined) },
196
194
  {
197
195
  label: 'worker:context',
198
- prompt: appendNoThink(promptHeader + RESEARCH_CONTEXT_PROMPT(refined)),
196
+ prompt: promptHeader + RESEARCH_CONTEXT_PROMPT(refined),
199
197
  // Context owns architectural understanding, not path discovery —
200
198
  // FILES handles that. Dropping `find`/`ls` keeps the worker from
201
199
  // spawning long enumeration loops whose output then inflates
@@ -204,7 +202,7 @@ export async function phaseResearch(deps, refined, researchDeps = {}) {
204
202
  },
205
203
  {
206
204
  label: 'worker:tooling',
207
- prompt: appendNoThink(promptHeader + RESEARCH_TOOLING_PROMPT(refined))
205
+ prompt: promptHeader + RESEARCH_TOOLING_PROMPT(refined)
208
206
  }
209
207
  ];
210
208
  const workerResults = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjasnikovs/pi-task",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Deterministic spec-orchestration for local models, with a bundled real-time remote web view and web/docs/fetch/worker subagent tools.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",