@felan-ai/ext-prewalk 0.3.1 → 0.3.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.
package/README.md CHANGED
@@ -1,16 +1,17 @@
1
1
  # @felan-ai/ext-prewalk
2
2
 
3
- Same-session Prewalk for Felan: the current model explores and plans the work, records a validated task plan, and makes one focused mutation. Felan then switches the next model request to `openai-codex/gpt-5.6-luna`, which finishes and verifies the task with the full conversation and tool history intact.
3
+ Same-session Prewalk for Felan: the current model explores and plans the work in the session task graph, then makes one focused mutation. Felan switches the next model request to the `low` model tier, which finishes and verifies the task with the full conversation and tool history intact. Tier resolution prefers the planner's provider and model family before falling back to another authenticated provider.
4
4
 
5
5
  After the run settles, Prewalk restores the original planner model and thinking level by default.
6
6
 
7
+ For ordinary file-changing requests, the model can enter Prewalk itself by calling `enter_prewalk` before it explores or mutates the repository. `/prewalk` remains available when the user wants to enter explicitly. Read-only requests do not use Prewalk.
8
+
7
9
  ## Requirements
8
10
 
9
- - An authenticated target model
10
- - A Beads workspace with an active `bash` or `exec_command` tool, or an active `todo_write` tool
11
- - At least one active mutation tool: `edit`, `write`, or `apply_patch`
11
+ - An authenticated model in the configured target tier, or an authenticated exact target model
12
+ - At least one explicit mutation tool: Pi's `edit` or `write`, or the Codex extension's `apply_patch`
12
13
 
13
- When `/prewalk` is armed, it probes the current working directory with `bd status` through the active Felan `AgentRuntime`. A configured Beads workspace makes Beads the task tracker for that run; otherwise Prewalk uses `todo_write`. Prewalk refuses to arm and names the missing capability when the selected tracker or mutation tools are unavailable. Felan currently does not provide a global `todo_write` tool, so non-Beads workspaces require another extension to provide that capability.
14
+ Prewalk refuses to arm when no explicit mutation tool is active. Shell tools such as `bash` and Codex `exec_command` do not qualify because they are also used for exploration and verification. The planning and verification prompts direct the models to use the Tasks workflow, but Prewalk does not inspect task activity at runtime.
14
15
 
15
16
  ## Commands
16
17
 
@@ -18,46 +19,73 @@ When `/prewalk` is armed, it probes the current working directory with `bd statu
18
19
  /prewalk <task> Arm Prewalk and start the task immediately
19
20
  /prewalk Arm Prewalk for the next ordinary prompt
20
21
  /prewalk status Show the phase, target model, and restoration setting
21
- /prewalk off Cancel Prewalk
22
+ /prewalk exit Exit Prewalk
23
+ /prewalk off Alias for exit
24
+ /prewalk cancel Alias for exit
22
25
  ```
23
26
 
24
- `status` and `off` are handled locally and do not make a provider request. In TUI mode, an inline task is submitted as a user message. In JSON and print modes, it is submitted as a visible custom message and the command waits for the run to become idle. Turning Prewalk off after handoff restores the original planner when restoration is enabled. A manual model selection cancels Prewalk and keeps the model selected by the user.
27
+ `status`, `exit`, `off`, and `cancel` are handled locally and do not make a provider request. In TUI mode, an inline task is submitted as a user message. In JSON and print modes, it is submitted as a visible custom message and the command waits for the run to become idle. Exiting during planning cancels the pending handoff immediately. Exiting while the target model is actively running defers planner restoration until that run settles; it does not abort the current provider request or the underlying task. A manual model selection cancels Prewalk and keeps the model selected by the user.
28
+
29
+ ## Model entry tool
30
+
31
+ ```text
32
+ enter_prewalk {} Enter Prewalk for the current file-changing task
33
+ ```
34
+
35
+ The no-argument tool transitions the current run directly into planning, so it works while the agent is active. It must be called once, by itself, before repository exploration or mutation. A mutation in the same model turn as the entry call cannot trigger handoff; the planning guidance must reach a later model turn first.
36
+
37
+ The successful entry call and result are orchestration controls. They remain in the stored session transcript but are removed from model context, along with phase guidance, so the target receives the useful exploration, task graph, and first valid change rather than an instruction to keep planning.
25
38
 
26
39
  ## Lifecycle
27
40
 
28
41
  1. The planner explores the relevant repository surface and determines the complete implementation scope.
29
- 2. The planner records implementation and validation work. It uses direct `bd` CLI commands when Beads is configured, or calls `todo_write` with 5–9 items and exactly one `in_progress` item otherwise.
30
- 3. The planner performs one focused successful `edit`, `write`, or `apply_patch` after the task-tracking gate opens.
31
- 4. At that turn boundary, Felan switches to the configured target model.
32
- 5. The target model completes the existing Beads graph or checklist and runs the relevant verification.
42
+ 2. The planner creates a concise graph of at most nine outcome-oriented tasks with `TaskCreate`, includes concrete validation in their acceptance criteria, links them with `blocked_by` dependencies that encode the execution order, and claims the first ready task with `TaskUpdate`.
43
+ 3. The planner performs one focused successful `edit`, `write`, or `apply_patch`.
44
+ 4. At that turn boundary, Felan resolves and switches to the configured target tier or exact model.
45
+ 5. The target model completes the existing session task graph and runs the relevant verification.
33
46
  6. Once the agent run has fully settled, Felan restores the planner model and thinking level.
34
47
 
35
- Tool-call order controls the handoff even when tools execute in parallel: a successful Beads task update or todo checklist followed by a mutation can qualify in the same turn, while a mutation before task tracking cannot. Failed tracking or mutation calls do not qualify. If the planner stops after prose or partial tool progress, Prewalk can queue a bounded hidden continuation, with a maximum of three per run.
48
+ A successful mutation qualifies the turn for handoff regardless of Tasks activity. Failed mutation calls do not qualify. If the planner stops after prose or partial tool progress, Prewalk can queue a bounded hidden continuation, with a maximum of three per run.
36
49
 
37
50
  The handoff does not fork, summarize, or replace the session. Planning guidance and implementation guidance are transient context messages; user messages, assistant responses, task-tracking results, mutations, and verification results remain in one trajectory.
38
51
 
52
+ This follows the [Prewalk design described by Stencil](https://stencil.so/blog/prewalk): transfer the grounded exploration, bounded work list, and first valid move rather than handing a detached plan document to a second reader.
53
+
39
54
  The extension also registers concise static `prewalk` capability guidance
40
55
  during initialization. Phase-specific planning and implementation instructions
41
56
  remain transient context messages.
42
57
 
58
+ ## Thinking levels
59
+
60
+ Prewalk does not force a planner or executor thinking level. It snapshots the current level, Pi carries and clamps that preference to the target model's supported levels during handoff, and Prewalk restores the planner model before restoring the exact original level. This keeps user and subagent thinking choices authoritative and avoids assuming that every low-tier executor supports or performs well at the same fixed effort.
61
+
62
+ The referenced Prewalk design requires deep planning and a cheaper executor, but does not prescribe a separate executor effort. Select the desired thinking level before starting the task; model-tier routing supplies the default cost reduction.
63
+
64
+ ## Subagents
65
+
66
+ `enter_prewalk` is loaded into mutation-capable general and custom child sessions whenever Prewalk is enabled. Each child owns an independent lifecycle and snapshots its own selected model and thinking level. Child handoffs honor the root session's configured model scope. Inspection-only `explore` and `reviewer` children do not receive the entry tool because their mutation tools are intentionally disabled.
67
+
43
68
  ## Flags
44
69
 
45
70
  Prewalk uses Pi's namespaced extension flags and does not read a configuration file.
46
71
 
47
72
  ```text
48
- --prewalk-target-model <provider/model-id>
73
+ --prewalk-target-model <high|medium|low|provider/model-id>
49
74
  --prewalk-restore-planner
50
75
  --no-prewalk-restore-planner
51
76
  ```
52
77
 
53
- `prewalk-target-model` defaults to `openai-codex/gpt-5.6-luna`. `prewalk-restore-planner` defaults to `true`.
78
+ `prewalk-target-model` defaults to `low`. Tier selection uses the authenticated models allowed by the current session, preferring the planner's provider and model family. An exact `provider/model-id` overrides tier selection but must remain inside a nonempty session model scope. `prewalk-restore-planner` defaults to `true`.
54
79
 
55
80
  ## Failure behavior
56
81
 
57
- - Missing target model or authentication clears the handoff and keeps the existing trajectory.
82
+ - A target tier with no authenticated candidate, or a missing exact target model or authentication, clears the handoff and keeps the existing trajectory.
83
+ - An exact target outside a nonempty session model scope is rejected before switching.
58
84
  - A failed target-model switch clears Prewalk and reports the failure once.
59
85
  - A failed planner restoration clears Prewalk, reports the failure once, and keeps the current model.
60
86
  - A manual model change cancels Prewalk without restoring over the user's selection.
87
+ - Repeated entry calls do not replace the active run or its planner snapshot.
88
+ - Exit requests during active target inference restore only after the run settles.
61
89
  - Session quit, reload, replacement, or fork while the target is active attempts planner restoration as a graceful shutdown backstop.
62
90
  - Reaching the automatic continuation limit lets the run settle normally.
63
91
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { FelanExtension } from '@felan-ai/agent-core';
1
+ import { type FelanExtension } from '@felan-ai/agent-core';
2
2
  declare const prewalkExtension: FelanExtension;
3
3
  export default prewalkExtension;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAmD9B,QAAA,MAAM,gBAAgB,EAAE,cAgWvB,CAAC;AAkGF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAuD9B,QAAA,MAAM,gBAAgB,EAAE,cAgevB,CAAC;AAmJF,eAAe,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,19 +1,23 @@
1
- import { BEADS_PLANNING_INSTRUCTION, BEADS_VERIFICATION_INSTRUCTION, CONTINUATION_MESSAGE_TYPE, CONTROL_MESSAGE_PREFIX, IMPLEMENTATION_MESSAGE_TYPE, PLANNING_INSTRUCTION, PLANNING_MESSAGE_TYPE, VERIFICATION_INSTRUCTION, } from './prompts.js';
2
- import { beginTurn, createRunState, recordToolCall, reduceTurn, validateArmingTools, validateTodoWriteInput, } from './state.js';
1
+ import { formatModelReference, isModelTier, parseModelReference, selectModelForTier, } from '@felan-ai/agent-core';
2
+ import { Type } from 'typebox';
3
+ import { CONTINUATION_MESSAGE_TYPE, CONTROL_MESSAGE_PREFIX, IMPLEMENTATION_MESSAGE_TYPE, PLANNING_INSTRUCTION, PLANNING_MESSAGE_TYPE, VERIFICATION_INSTRUCTION, } from './prompts.js';
4
+ import { beginTurn, createRunState, recordToolCall, reduceTurn, validateArmingTools, } from './state.js';
3
5
  const DEFAULT_CONFIG = {
4
- targetModel: 'openai-codex/gpt-5.6-luna',
6
+ targetModel: 'low',
5
7
  restorePlanner: true,
6
8
  };
7
9
  const TARGET_MODEL_FLAG = 'prewalk-target-model';
8
10
  const RESTORE_PLANNER_FLAG = 'prewalk-restore-planner';
9
11
  const HEADLESS_TASK_MESSAGE_TYPE = 'pi-prewalk-task';
12
+ const ENTER_PREWALK_TOOL = 'enter_prewalk';
13
+ const EnterPrewalkParams = Type.Object({}, { additionalProperties: false });
10
14
  const prewalkExtension = (pi) => {
11
15
  pi.registerCapability({
12
16
  id: 'prewalk',
13
- instructions: 'Prewalk can coordinate a same-session planning-to-implementation handoff when the user invokes /prewalk. During an active run, follow the phase-specific planning, task-tracking, implementation, and verification guidance injected into the conversation.',
17
+ instructions: 'Use Prewalk for user tasks that require creating, editing, moving, renaming, or deleting files. When such a task begins and no injected planning or implementation guidance is already present, call enter_prewalk as the first and only tool call before repository exploration or mutation. Do not call it when the context already directs you to explore and build a task graph or to continue an existing session task graph, and do not enter Prewalk for read-only requests. The tool is available in the root session and mutation-capable subagents. During an active run, follow the injected planning, task-tracking, implementation, and verification guidance. The user can exit with /prewalk exit (or /prewalk off).',
14
18
  });
15
19
  pi.registerFlag(TARGET_MODEL_FLAG, {
16
- description: 'Model used to implement a planned Prewalk task (provider/model-id)',
20
+ description: 'Model tier or exact provider/model-id used to implement a planned Prewalk task',
17
21
  type: 'string',
18
22
  default: DEFAULT_CONFIG.targetModel,
19
23
  });
@@ -28,8 +32,10 @@ const prewalkExtension = (pi) => {
28
32
  let configWarningShown = false;
29
33
  let state = { phase: 'idle' };
30
34
  let plannerSnapshot;
31
- let expectedModelKey;
32
- let useBeads = false;
35
+ let exitRequested = false;
36
+ let modelTransition;
37
+ let handoffPromise;
38
+ let restorationPromise;
33
39
  function refreshConfig() {
34
40
  loadedConfig = loadConfig(pi);
35
41
  config = loadedConfig.config;
@@ -58,18 +64,19 @@ const prewalkExtension = (pi) => {
58
64
  const continuationText = state.phase === 'planning' && continuationCount > 0
59
65
  ? ` · ${continuationCount}/3`
60
66
  : '';
61
- ctx.ui.setStatus('prewalk', `Prewalk ${state.phase}${continuationText} ${targetModel.key}`);
67
+ const exitText = exitRequested ? ' · exit pending' : '';
68
+ ctx.ui.setStatus('prewalk', `Prewalk ${state.phase}${continuationText}${exitText} → ${targetModel.key}`);
62
69
  }
63
70
  function publishStatus(ctx) {
64
71
  publishConfigWarning(ctx);
65
72
  const planner = plannerSnapshot ? ` | planner ${plannerSnapshot.modelKey}` : '';
66
- notify(ctx, `Prewalk: ${state.phase} | target ${targetModel.key} | restore planner ${config.restorePlanner ? 'on' : 'off'}${planner}`);
73
+ const exit = exitRequested ? ' | exit pending' : '';
74
+ notify(ctx, `Prewalk: ${state.phase} | target ${targetModel.key} | restore planner ${config.restorePlanner ? 'on' : 'off'}${planner}${exit}`);
67
75
  }
68
76
  function clearAutomation(ctx) {
69
77
  state = { phase: 'idle' };
70
78
  plannerSnapshot = undefined;
71
- expectedModelKey = undefined;
72
- useBeads = false;
79
+ exitRequested = false;
73
80
  updateStatus(ctx);
74
81
  }
75
82
  function failAutomation(ctx, message) {
@@ -86,32 +93,35 @@ const prewalkExtension = (pi) => {
86
93
  notify(ctx, 'Prewalk can only be armed while the agent is idle.', 'warning');
87
94
  return false;
88
95
  }
89
- useBeads = await hasBeadsWorkspace(pi, ctx.cwd);
90
- const validation = validateArmingTools(pi.getActiveTools(), useBeads);
96
+ const validation = validateArmingTools(pi.getActiveTools());
91
97
  if (!validation.ok) {
92
98
  notify(ctx, validation.reason, 'error');
93
99
  return false;
94
100
  }
95
101
  state = { phase: 'armed' };
96
102
  updateStatus(ctx);
97
- const tracking = useBeads ? 'Beads' : 'todo_write';
98
- notify(ctx, `Prewalk armed with ${tracking}. The next task will plan, make one mutation, then hand off to ${targetModel.key}.`);
103
+ notify(ctx, `Prewalk armed. The next task will plan, make one mutation, then hand off to ${targetModel.key}.`);
99
104
  return true;
100
105
  }
101
- function beginRun(ctx) {
102
- if (state.phase !== 'armed')
103
- return;
106
+ function startRun(ctx, handoffArmed = true) {
104
107
  if (!ctx.model) {
105
108
  failAutomation(ctx, 'Prewalk requires a selected planner model.');
106
- return;
109
+ return false;
107
110
  }
108
111
  plannerSnapshot = {
109
112
  model: ctx.model,
110
113
  modelKey: modelKey(ctx.model),
111
114
  thinkingLevel: pi.getThinkingLevel(),
112
115
  };
113
- state = { phase: 'planning', run: createRunState() };
116
+ exitRequested = false;
117
+ state = { phase: 'planning', run: createRunState({ handoffArmed }) };
114
118
  updateStatus(ctx);
119
+ return true;
120
+ }
121
+ function beginRun(ctx) {
122
+ if (state.phase !== 'armed')
123
+ return;
124
+ startRun(ctx);
115
125
  }
116
126
  async function switchToTarget(ctx) {
117
127
  if (state.phase !== 'planning' || !state.run || !plannerSnapshot)
@@ -120,39 +130,70 @@ const prewalkExtension = (pi) => {
120
130
  const snapshot = plannerSnapshot;
121
131
  state = { phase: 'handoff', run };
122
132
  updateStatus(ctx);
123
- const target = ctx.modelRegistry.find(targetModel.provider, targetModel.modelId);
124
- if (!target) {
125
- failAutomation(ctx, `Prewalk target model is unavailable: ${targetModel.key}.`);
126
- return;
133
+ let target;
134
+ if (targetModel.kind === 'tier') {
135
+ const availableModels = ctx.scopedModels.length > 0
136
+ ? ctx.scopedModels.map(({ model }) => model)
137
+ : ctx.modelRegistry.getAvailable();
138
+ const selected = selectModelForTier(targetModel.tier, availableModels, {
139
+ preferredModel: snapshot.model,
140
+ });
141
+ if (!selected) {
142
+ failAutomation(ctx, `Prewalk has no authenticated model for the ${targetModel.tier} tier.`);
143
+ return;
144
+ }
145
+ target = selected.model;
127
146
  }
128
- if (!ctx.modelRegistry.hasConfiguredAuth(target)) {
129
- failAutomation(ctx, `Prewalk target model is not authenticated: ${targetModel.key}.`);
130
- return;
147
+ else {
148
+ const exactReference = targetModel.model;
149
+ const registeredTarget = ctx.modelRegistry.find(exactReference.provider, exactReference.id);
150
+ if (!registeredTarget) {
151
+ failAutomation(ctx, `Prewalk target model is unavailable: ${targetModel.key}.`);
152
+ return;
153
+ }
154
+ const scopedTarget = ctx.scopedModels.find(({ model }) => (model.provider === exactReference.provider && model.id === exactReference.id))?.model;
155
+ if (ctx.scopedModels.length > 0 && !scopedTarget) {
156
+ failAutomation(ctx, `Prewalk target model is outside the current session model scope: ${targetModel.key}.`);
157
+ return;
158
+ }
159
+ target = scopedTarget ?? registeredTarget;
160
+ if (!ctx.modelRegistry.hasConfiguredAuth(target)) {
161
+ failAutomation(ctx, `Prewalk target model is not authenticated: ${targetModel.key}.`);
162
+ return;
163
+ }
131
164
  }
165
+ const targetKey = formatModelReference(target);
132
166
  try {
133
- expectedModelKey = targetModel.key;
134
- const switched = await pi.setModel(target);
167
+ const switched = await setModelPreservingExternalSelection(target, ctx);
135
168
  if (state.phase !== 'handoff' || plannerSnapshot !== snapshot)
136
169
  return;
137
170
  if (!switched) {
138
- failAutomation(ctx, `Prewalk could not switch to ${targetModel.key}.`);
171
+ failAutomation(ctx, `Prewalk could not switch to ${targetKey}.`);
139
172
  return;
140
173
  }
141
174
  state = { phase: 'implementing', run };
142
175
  updateStatus(ctx);
143
- notify(ctx, `Prewalk handed implementation to ${targetModel.key}.`);
176
+ notify(ctx, `Prewalk handed implementation to ${targetKey}.`);
144
177
  }
145
178
  catch (error) {
146
179
  if (state.phase === 'handoff' && plannerSnapshot === snapshot) {
147
- failAutomation(ctx, `Prewalk could not switch to ${targetModel.key}: ${errorMessage(error)}`);
180
+ failAutomation(ctx, `Prewalk could not switch to ${targetKey}: ${errorMessage(error)}`);
148
181
  }
149
182
  }
150
- finally {
151
- if (expectedModelKey === targetModel.key)
152
- expectedModelKey = undefined;
153
- }
154
183
  }
155
- async function restorePlanner(ctx) {
184
+ function restorePlanner(ctx) {
185
+ if (restorationPromise)
186
+ return restorationPromise;
187
+ const restoration = performPlannerRestoration(ctx).finally(() => {
188
+ if (restorationPromise === restoration)
189
+ restorationPromise = undefined;
190
+ });
191
+ restorationPromise = restoration;
192
+ return restoration;
193
+ }
194
+ async function performPlannerRestoration(ctx) {
195
+ if (handoffPromise)
196
+ await handoffPromise;
156
197
  const snapshot = plannerSnapshot;
157
198
  if (!snapshot) {
158
199
  clearAutomation(ctx);
@@ -162,8 +203,7 @@ const prewalkExtension = (pi) => {
162
203
  updateStatus(ctx);
163
204
  try {
164
205
  if (modelKey(ctx.model) !== snapshot.modelKey) {
165
- expectedModelKey = snapshot.modelKey;
166
- const restored = await pi.setModel(snapshot.model);
206
+ const restored = await setModelPreservingExternalSelection(snapshot.model, ctx);
167
207
  if (state.phase !== 'restoring' || plannerSnapshot !== snapshot)
168
208
  return false;
169
209
  if (!restored)
@@ -182,9 +222,40 @@ const prewalkExtension = (pi) => {
182
222
  }
183
223
  return false;
184
224
  }
225
+ }
226
+ async function setModelPreservingExternalSelection(model, ctx) {
227
+ if (modelTransition)
228
+ throw new Error('another Prewalk model transition is already active');
229
+ const transition = { expectedModelKey: modelKey(model) };
230
+ modelTransition = transition;
231
+ try {
232
+ let switched;
233
+ try {
234
+ switched = await pi.setModel(model);
235
+ }
236
+ finally {
237
+ await reapplyExternalModel(ctx, transition);
238
+ }
239
+ return switched;
240
+ }
185
241
  finally {
186
- if (expectedModelKey === snapshot.modelKey)
187
- expectedModelKey = undefined;
242
+ if (modelTransition === transition)
243
+ modelTransition = undefined;
244
+ }
245
+ }
246
+ async function reapplyExternalModel(ctx, transition) {
247
+ while (transition.externalModel
248
+ && modelKey(ctx.model) !== modelKey(transition.externalModel)) {
249
+ const externalModel = transition.externalModel;
250
+ transition.expectedModelKey = modelKey(externalModel);
251
+ const restored = await pi.setModel(externalModel);
252
+ if (!restored)
253
+ throw new Error(`could not retain manual model ${modelKey(externalModel)}`);
254
+ }
255
+ if (transition.externalModel
256
+ && transition.externalThinkingLevel !== undefined
257
+ && modelKey(ctx.model) === modelKey(transition.externalModel)) {
258
+ pi.setThinkingLevel(transition.externalThinkingLevel);
188
259
  }
189
260
  }
190
261
  async function turnOff(ctx) {
@@ -192,10 +263,26 @@ const prewalkExtension = (pi) => {
192
263
  notify(ctx, 'Prewalk is already off.');
193
264
  return;
194
265
  }
266
+ if (state.phase === 'restoring') {
267
+ const restored = await restorePlanner(ctx);
268
+ if (restored)
269
+ notify(ctx, 'Prewalk is off and the planner model has been restored.');
270
+ return;
271
+ }
195
272
  const targetIsActive = state.phase === 'handoff'
196
- || state.phase === 'implementing'
197
- || state.phase === 'restoring';
273
+ || state.phase === 'implementing';
198
274
  if (targetIsActive && config.restorePlanner && plannerSnapshot) {
275
+ if (state.phase === 'handoff' || !ctx.isIdle()) {
276
+ if (!exitRequested) {
277
+ exitRequested = true;
278
+ updateStatus(ctx);
279
+ notify(ctx, 'Prewalk will exit and restore the planner when the current agent run settles.');
280
+ }
281
+ else {
282
+ notify(ctx, 'Prewalk exit is already pending.');
283
+ }
284
+ return;
285
+ }
199
286
  const restored = await restorePlanner(ctx);
200
287
  if (restored)
201
288
  notify(ctx, 'Prewalk is off and the planner model has been restored.');
@@ -204,8 +291,37 @@ const prewalkExtension = (pi) => {
204
291
  clearAutomation(ctx);
205
292
  notify(ctx, 'Prewalk is off.');
206
293
  }
294
+ pi.registerTool({
295
+ name: ENTER_PREWALK_TOOL,
296
+ label: 'Enter Prewalk',
297
+ description: 'Enter same-session Prewalk for the current user task. Call this once, as the only tool call in the response and before exploration or mutation, when completing the request requires creating, editing, moving, renaming, or deleting files. Do not call it for read-only work or when injected guidance already directs planning or implementation.',
298
+ promptSnippet: 'Enter Prewalk before starting a task that will mutate files',
299
+ executionMode: 'sequential',
300
+ parameters: EnterPrewalkParams,
301
+ async execute(_toolCallId, _params, _signal, _onUpdate, ctx) {
302
+ if (state.phase === 'idle')
303
+ refreshConfig();
304
+ publishConfigWarning(ctx);
305
+ if (state.phase !== 'idle') {
306
+ return prewalkToolError(`Prewalk is already ${state.phase}; continue the active run without calling ${ENTER_PREWALK_TOOL} again.`, state.phase);
307
+ }
308
+ const validation = validateArmingTools(pi.getActiveTools());
309
+ if (!validation.ok)
310
+ return prewalkToolError(validation.reason, state.phase);
311
+ if (!ctx.model)
312
+ return prewalkToolError('Prewalk requires a selected planner model.', state.phase);
313
+ startRun(ctx, false);
314
+ return {
315
+ content: [{
316
+ type: 'text',
317
+ text: `Prewalk entered for the current task. Follow the injected planning guidance, keep the task graph concise, and make one focused mutation before the handoff to ${targetModel.key}.`,
318
+ }],
319
+ details: { phase: 'planning', targetModel: targetModel.key },
320
+ };
321
+ },
322
+ });
207
323
  pi.registerCommand('prewalk', {
208
- description: 'Plan with the current model, make one mutation, then hand off implementation',
324
+ description: 'Enter Prewalk, inspect status, or exit its model-routing lifecycle',
209
325
  handler: async (args, ctx) => {
210
326
  if (state.phase === 'idle')
211
327
  refreshConfig();
@@ -214,7 +330,7 @@ const prewalkExtension = (pi) => {
214
330
  publishStatus(ctx);
215
331
  return;
216
332
  }
217
- if (command === 'off') {
333
+ if (command === 'off' || command === 'exit' || command === 'cancel') {
218
334
  await turnOff(ctx);
219
335
  return;
220
336
  }
@@ -247,7 +363,7 @@ const prewalkExtension = (pi) => {
247
363
  beginRun(ctx);
248
364
  });
249
365
  pi.on('context', (event) => {
250
- return { messages: buildContextMessages(event.messages, state.phase, useBeads) };
366
+ return { messages: buildContextMessages(event.messages, state.phase) };
251
367
  });
252
368
  pi.on('turn_start', () => {
253
369
  if (state.phase !== 'planning' || !state.run)
@@ -257,14 +373,9 @@ const prewalkExtension = (pi) => {
257
373
  pi.on('tool_call', (event) => {
258
374
  if (state.phase !== 'planning' || !state.run)
259
375
  return;
260
- if (!useBeads && event.toolName === 'todo_write') {
261
- const validation = validateTodoWriteInput(event.input);
262
- if (!validation.ok)
263
- return { block: true, reason: validation.reason };
264
- }
265
376
  state = {
266
377
  phase: 'planning',
267
- run: recordToolCall(state.run, { toolCallId: event.toolCallId, toolName: event.toolName, input: event.input }, useBeads),
378
+ run: recordToolCall(state.run, { toolCallId: event.toolCallId, toolName: event.toolName }),
268
379
  };
269
380
  });
270
381
  pi.on('turn_end', async (event, ctx) => {
@@ -276,7 +387,12 @@ const prewalkExtension = (pi) => {
276
387
  state = { phase: 'planning', run: decision.state };
277
388
  updateStatus(ctx);
278
389
  if (decision.shouldHandoff) {
279
- await switchToTarget(ctx);
390
+ const handoff = switchToTarget(ctx).finally(() => {
391
+ if (handoffPromise === handoff)
392
+ handoffPromise = undefined;
393
+ });
394
+ handoffPromise = handoff;
395
+ await handoff;
280
396
  return;
281
397
  }
282
398
  if (decision.shouldContinue) {
@@ -288,13 +404,15 @@ const prewalkExtension = (pi) => {
288
404
  }
289
405
  });
290
406
  pi.on('model_select', (event, ctx) => {
291
- if (state.phase === 'idle')
292
- return;
293
407
  const selectedModelKey = modelKey(event.model);
294
- if (expectedModelKey === selectedModelKey) {
295
- expectedModelKey = undefined;
408
+ if (modelTransition?.expectedModelKey === selectedModelKey)
296
409
  return;
410
+ if (modelTransition) {
411
+ modelTransition.externalModel = event.model;
412
+ modelTransition.externalThinkingLevel = pi.getThinkingLevel();
297
413
  }
414
+ if (state.phase === 'idle')
415
+ return;
298
416
  clearAutomation(ctx);
299
417
  notify(ctx, `Prewalk cancelled after the model changed to ${selectedModelKey}.`, 'warning');
300
418
  });
@@ -328,14 +446,22 @@ const prewalkExtension = (pi) => {
328
446
  }
329
447
  });
330
448
  };
331
- function buildContextMessages(messages, phase, useBeads) {
332
- const filtered = structuredClone(messages).filter((message) => !isControlMessage(message));
449
+ function buildContextMessages(messages, phase) {
450
+ const successfulEntries = successfulEntryCallIds(messages);
451
+ const filtered = [];
452
+ for (const message of structuredClone(messages)) {
453
+ if (isControlMessage(message) || isSuccessfulEntryResult(message, successfulEntries))
454
+ continue;
455
+ const stripped = stripSuccessfulEntryCall(message, successfulEntries);
456
+ if (stripped !== undefined)
457
+ filtered.push(stripped);
458
+ }
333
459
  const instruction = phase === 'planning'
334
- ? { customType: PLANNING_MESSAGE_TYPE, content: useBeads ? BEADS_PLANNING_INSTRUCTION : PLANNING_INSTRUCTION }
460
+ ? { customType: PLANNING_MESSAGE_TYPE, content: PLANNING_INSTRUCTION }
335
461
  : phase === 'implementing'
336
462
  ? {
337
463
  customType: IMPLEMENTATION_MESSAGE_TYPE,
338
- content: useBeads ? BEADS_VERIFICATION_INSTRUCTION : VERIFICATION_INSTRUCTION,
464
+ content: VERIFICATION_INSTRUCTION,
339
465
  }
340
466
  : undefined;
341
467
  if (!instruction)
@@ -351,15 +477,6 @@ function buildContextMessages(messages, phase, useBeads) {
351
477
  },
352
478
  ];
353
479
  }
354
- async function hasBeadsWorkspace(pi, cwd) {
355
- try {
356
- const result = await pi.exec('bd', ['-C', cwd, '--readonly', '--json', 'status', '--no-activity'], { timeout: 5_000 });
357
- return result.code === 0;
358
- }
359
- catch {
360
- return false;
361
- }
362
- }
363
480
  function isTextOnlyCompletion(message) {
364
481
  return isRecord(message)
365
482
  && message.role === 'assistant'
@@ -373,25 +490,60 @@ function isControlMessage(message) {
373
490
  && typeof message.customType === 'string'
374
491
  && message.customType.startsWith(CONTROL_MESSAGE_PREFIX);
375
492
  }
493
+ function successfulEntryCallIds(messages) {
494
+ const callIds = new Set();
495
+ for (const message of messages) {
496
+ if (isRecord(message)
497
+ && message.role === 'toolResult'
498
+ && message.toolName === ENTER_PREWALK_TOOL
499
+ && message.isError !== true
500
+ && typeof message.toolCallId === 'string') {
501
+ callIds.add(message.toolCallId);
502
+ }
503
+ }
504
+ return callIds;
505
+ }
506
+ function isSuccessfulEntryResult(message, callIds) {
507
+ return isRecord(message)
508
+ && message.role === 'toolResult'
509
+ && message.toolName === ENTER_PREWALK_TOOL
510
+ && typeof message.toolCallId === 'string'
511
+ && callIds.has(message.toolCallId);
512
+ }
513
+ function stripSuccessfulEntryCall(message, callIds) {
514
+ if (!isRecord(message) || message.role !== 'assistant' || !Array.isArray(message.content)) {
515
+ return message;
516
+ }
517
+ const isEntryCall = (item) => (isRecord(item)
518
+ && item.type === 'toolCall'
519
+ && item.name === ENTER_PREWALK_TOOL
520
+ && typeof item.id === 'string'
521
+ && callIds.has(item.id));
522
+ if (!message.content.some(isEntryCall))
523
+ return message;
524
+ const hasOtherToolCalls = message.content.some((item) => (isRecord(item) && item.type === 'toolCall' && !isEntryCall(item)));
525
+ if (!hasOtherToolCalls)
526
+ return undefined;
527
+ const content = message.content.filter((item) => !isEntryCall(item));
528
+ return content.length === 0 ? undefined : { ...message, content };
529
+ }
376
530
  function modelKey(model) {
377
531
  return model ? `${model.provider}/${model.id}` : 'none';
378
532
  }
379
533
  function parseTargetModel(value) {
380
- const separator = value.indexOf('/');
381
- if (separator <= 0 || separator === value.length - 1)
382
- return undefined;
383
- const provider = value.slice(0, separator).trim();
384
- const modelId = value.slice(separator + 1).trim();
385
- if (!provider || !modelId)
386
- return undefined;
387
- return { provider, modelId, key: `${provider}/${modelId}` };
534
+ const normalized = value.trim();
535
+ if (isModelTier(normalized))
536
+ return { kind: 'tier', tier: normalized, key: normalized };
537
+ const model = parseModelReference(normalized);
538
+ return model ? { kind: 'model', model, key: formatModelReference(model) } : undefined;
388
539
  }
389
540
  function loadConfig(pi) {
390
541
  const targetModel = pi.getFlag(TARGET_MODEL_FLAG);
391
542
  const restorePlanner = pi.getFlag(RESTORE_PLANNER_FLAG);
392
543
  const parsedTarget = typeof targetModel === 'string' ? parseTargetModel(targetModel) : undefined;
393
- if (!parsedTarget)
394
- return invalidConfig(`${TARGET_MODEL_FLAG} must use the form "provider/model-id"`);
544
+ if (!parsedTarget) {
545
+ return invalidConfig(`${TARGET_MODEL_FLAG} must be high, medium, low, or an exact provider/model-id`);
546
+ }
395
547
  if (typeof restorePlanner !== 'boolean')
396
548
  return invalidConfig(`${RESTORE_PLANNER_FLAG} must be a boolean`);
397
549
  return {
@@ -407,6 +559,13 @@ function invalidConfig(reason) {
407
559
  function errorMessage(error) {
408
560
  return error instanceof Error ? error.message : String(error);
409
561
  }
562
+ function prewalkToolError(message, phase) {
563
+ return {
564
+ content: [{ type: 'text', text: message }],
565
+ details: { error: message, phase },
566
+ isError: true,
567
+ };
568
+ }
410
569
  function isRecord(value) {
411
570
  return typeof value === 'object' && value !== null;
412
571
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/prompts.d.ts CHANGED
@@ -3,8 +3,6 @@ export declare const PLANNING_MESSAGE_TYPE = "pi-prewalk:planning";
3
3
  export declare const IMPLEMENTATION_MESSAGE_TYPE = "pi-prewalk:implementation";
4
4
  export declare const CONTINUATION_MESSAGE_TYPE = "pi-prewalk:continuation";
5
5
  export declare const MAX_AUTOMATIC_CONTINUATIONS = 3;
6
- export declare const PLANNING_INSTRUCTION = "Explore the repository thoroughly and determine the complete work required for the user's request.\n\nFollow this order:\n1. Inspect the relevant source, tests, configuration, documentation, and constraints.\n2. Determine the full implementation scope, affected files and symbols, risks, and verification required.\n3. Call todo_write with 5-9 detailed implementation tasks in execution order. Include validation work and mark exactly one ready task in_progress.\n4. Start implementing immediately. Work through the checklist in order, keep task statuses current, run the relevant validation, and continue until the request is complete.\n\nKeep the implementation focused on the requested scope and revise the checklist when repository evidence changes the plan.";
7
- export declare const VERIFICATION_INSTRUCTION = "Continue implementing the existing todo_write checklist in task order. Keep statuses current, complete every remaining item, and keep the changes limited to the requested scope. Run the full relevant test module or suite, resolve failures, and report the verification performed.";
8
- export declare const BEADS_PLANNING_INSTRUCTION = "Explore the repository thoroughly and determine the complete work required for the user's request.\n\nUse the beads skill and direct bd CLI commands for task tracking. Track the work with Beads instead of todo_write.\n\nFollow this order:\n1. Inspect the relevant source, tests, configuration, documentation, and constraints.\n2. Determine the full implementation scope, affected files and symbols, risks, and verification required.\n3. Create detailed Beads tasks for all implementation and validation work. Give each task a concrete scope and acceptance criteria, add dependencies that represent the required execution order, and mark the first ready task in_progress.\n4. Start implementing immediately. Work through ready Beads while honoring their dependencies, keep task statuses current, validate each completed task, and continue until every task for the request is complete.\n\nKeep the implementation focused on the requested scope and update the Beads graph when repository evidence changes the plan.";
9
- export declare const BEADS_VERIFICATION_INSTRUCTION = "Continue implementing the existing Beads task graph. Honor task dependencies, work through ready Beads in execution order, and keep their statuses current with direct bd CLI commands instead of todo_write. Validate and close each completed Bead, keep the changes limited to the requested scope, run the full relevant test module or suite, resolve failures, and continue until every task is complete.";
6
+ export declare const PLANNING_INSTRUCTION = "Explore the repository thoroughly and determine the complete work required for the user's request.\n\nFollow this order:\n1. Inspect the relevant source, tests, configuration, documentation, and constraints.\n2. Determine the full implementation scope, affected files and symbols, risks, and verification required.\n3. Use TaskCreate to record a concise graph of no more than 9 outcome-oriented tasks. Put concrete validation in each task's acceptance criteria, using a dedicated validation task only when it covers multiple changes. Link tasks with blocked_by dependencies that encode the required implementation and validation order, so the next ready task is unambiguous at each step.\n4. Use TaskUpdate to claim the first ready task by setting it in_progress.\n5. Start implementing immediately with one focused change. Work through ready tasks in dependency order, keep task statuses current, record verified results when completing them, and continue until the request is complete.\n\nKeep the implementation focused on the requested scope and revise the task graph when repository evidence changes the plan.";
7
+ export declare const VERIFICATION_INSTRUCTION = "Continue implementing the existing session task graph. Honor task dependencies, claim ready work with TaskUpdate, keep statuses current, and complete every remaining task with a verified result. Keep the changes limited to the requested scope, run the full relevant test module or suite, resolve failures, and continue until every task is complete.";
10
8
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,qBAAqB,wBAAsC,CAAC;AACzE,eAAO,MAAM,2BAA2B,8BAA4C,CAAC;AACrF,eAAO,MAAM,yBAAyB,4BAA0C,CAAC;AACjF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,eAAO,MAAM,oBAAoB,+vBAQ0F,CAAC;AAE5H,eAAO,MAAM,wBAAwB,2RAA2R,CAAC;AAEjU,eAAO,MAAM,0BAA0B,w/BAUsF,CAAC;AAE9H,eAAO,MAAM,8BAA8B,oZAAoZ,CAAC"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,qBAAqB,wBAAsC,CAAC;AACzE,eAAO,MAAM,2BAA2B,8BAA4C,CAAC;AACrF,eAAO,MAAM,yBAAyB,4BAA0C,CAAC;AACjF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,eAAO,MAAM,oBAAoB,+lCAS2F,CAAC;AAE7H,eAAO,MAAM,wBAAwB,iWAAiW,CAAC"}
package/dist/prompts.js CHANGED
@@ -8,21 +8,10 @@ export const PLANNING_INSTRUCTION = `Explore the repository thoroughly and deter
8
8
  Follow this order:
9
9
  1. Inspect the relevant source, tests, configuration, documentation, and constraints.
10
10
  2. Determine the full implementation scope, affected files and symbols, risks, and verification required.
11
- 3. Call todo_write with 5-9 detailed implementation tasks in execution order. Include validation work and mark exactly one ready task in_progress.
12
- 4. Start implementing immediately. Work through the checklist in order, keep task statuses current, run the relevant validation, and continue until the request is complete.
11
+ 3. Use TaskCreate to record a concise graph of no more than 9 outcome-oriented tasks. Put concrete validation in each task's acceptance criteria, using a dedicated validation task only when it covers multiple changes. Link tasks with blocked_by dependencies that encode the required implementation and validation order, so the next ready task is unambiguous at each step.
12
+ 4. Use TaskUpdate to claim the first ready task by setting it in_progress.
13
+ 5. Start implementing immediately with one focused change. Work through ready tasks in dependency order, keep task statuses current, record verified results when completing them, and continue until the request is complete.
13
14
 
14
- Keep the implementation focused on the requested scope and revise the checklist when repository evidence changes the plan.`;
15
- export const VERIFICATION_INSTRUCTION = `Continue implementing the existing todo_write checklist in task order. Keep statuses current, complete every remaining item, and keep the changes limited to the requested scope. Run the full relevant test module or suite, resolve failures, and report the verification performed.`;
16
- export const BEADS_PLANNING_INSTRUCTION = `Explore the repository thoroughly and determine the complete work required for the user's request.
17
-
18
- Use the beads skill and direct bd CLI commands for task tracking. Track the work with Beads instead of todo_write.
19
-
20
- Follow this order:
21
- 1. Inspect the relevant source, tests, configuration, documentation, and constraints.
22
- 2. Determine the full implementation scope, affected files and symbols, risks, and verification required.
23
- 3. Create detailed Beads tasks for all implementation and validation work. Give each task a concrete scope and acceptance criteria, add dependencies that represent the required execution order, and mark the first ready task in_progress.
24
- 4. Start implementing immediately. Work through ready Beads while honoring their dependencies, keep task statuses current, validate each completed task, and continue until every task for the request is complete.
25
-
26
- Keep the implementation focused on the requested scope and update the Beads graph when repository evidence changes the plan.`;
27
- export const BEADS_VERIFICATION_INSTRUCTION = `Continue implementing the existing Beads task graph. Honor task dependencies, work through ready Beads in execution order, and keep their statuses current with direct bd CLI commands instead of todo_write. Validate and close each completed Bead, keep the changes limited to the requested scope, run the full relevant test module or suite, resolve failures, and continue until every task is complete.`;
15
+ Keep the implementation focused on the requested scope and revise the task graph when repository evidence changes the plan.`;
16
+ export const VERIFICATION_INSTRUCTION = `Continue implementing the existing session task graph. Honor task dependencies, claim ready work with TaskUpdate, keep statuses current, and complete every remaining task with a verified result. Keep the changes limited to the requested scope, run the full relevant test module or suite, resolve failures, and continue until every task is complete.`;
28
17
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,sBAAsB,UAAU,CAAC;AACzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,sBAAsB,gBAAgB,CAAC;AACrF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,sBAAsB,cAAc,CAAC;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;2HAQuF,CAAC;AAE5H,MAAM,CAAC,MAAM,wBAAwB,GAAG,wRAAwR,CAAC;AAEjU,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;6HAUmF,CAAC;AAE9H,MAAM,CAAC,MAAM,8BAA8B,GAAG,iZAAiZ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,sBAAsB,UAAU,CAAC;AACzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,sBAAsB,gBAAgB,CAAC;AACrF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,sBAAsB,cAAc,CAAC;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;4HASwF,CAAC;AAE7H,MAAM,CAAC,MAAM,wBAAwB,GAAG,8VAA8V,CAAC"}
package/dist/state.d.ts CHANGED
@@ -4,16 +4,14 @@ export interface PrewalkState {
4
4
  run?: PrewalkRunState;
5
5
  }
6
6
  export interface PrewalkRunState {
7
- trackingGateOpen: boolean;
8
- toolCalls: RecordedToolCall[];
9
- nextOrdinal: number;
7
+ mutationCallIds: string[];
10
8
  continuationCount: number;
11
9
  continuationArmed: boolean;
10
+ handoffArmed: boolean;
12
11
  }
13
12
  export interface ToolCallSummary {
14
13
  toolCallId: string;
15
14
  toolName: string;
16
- input?: unknown;
17
15
  }
18
16
  export interface ToolResultSummary {
19
17
  toolCallId: string;
@@ -30,19 +28,14 @@ export type ValidationResult = {
30
28
  ok: false;
31
29
  reason: string;
32
30
  };
33
- type RecordedToolCall = {
34
- toolCallId: string;
35
- kind: 'tracking' | 'mutation';
36
- ordinal: number;
37
- };
38
31
  export declare const MUTATION_TOOL_NAMES: ReadonlySet<string>;
39
- export declare function validateArmingTools(activeTools: readonly string[], useBeads?: boolean): ValidationResult;
40
- export declare function validateTodoWriteInput(input: unknown): ValidationResult;
41
- export declare function createRunState(): PrewalkRunState;
32
+ export declare function validateArmingTools(activeTools: readonly string[]): ValidationResult;
33
+ export declare function createRunState(options?: {
34
+ handoffArmed?: boolean;
35
+ }): PrewalkRunState;
42
36
  export declare function beginTurn(state: PrewalkRunState): PrewalkRunState;
43
- export declare function recordToolCall(state: PrewalkRunState, call: ToolCallSummary, useBeads?: boolean): PrewalkRunState;
37
+ export declare function recordToolCall(state: PrewalkRunState, call: ToolCallSummary): PrewalkRunState;
44
38
  export declare function reduceTurn(state: PrewalkRunState, results: readonly ToolResultSummary[], options?: {
45
39
  allowContinuation?: boolean;
46
40
  }): TurnDecision;
47
- export {};
48
41
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,CAAC;AAEpG,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAwBF,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAA2B,CAAC;AAEhF,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,UAAQ,GAAG,gBAAgB,CAkBtG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAmBvE;AAED,wBAAgB,cAAc,IAAI,eAAe,CAQhD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAMjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,UAAQ,GAAG,eAAe,CAe/G;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,YAAY,CAwCd"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,CAAC;AAEpG,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAI5E,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAA2B,CAAC;AAEhF,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,CAIpF;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,eAAe,CAOxF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAMjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,GAAG,eAAe,CAO7F;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,YAAY,CA+Bd"}
package/dist/state.js CHANGED
@@ -1,98 +1,38 @@
1
1
  import { MAX_AUTOMATIC_CONTINUATIONS } from './prompts.js';
2
2
  const MUTATION_TOOLS = ['edit', 'write', 'apply_patch'];
3
- const TODO_STATUSES = new Set(['pending', 'in_progress', 'completed']);
4
- const BEADS_MUTATIONS = new Set([
5
- 'create',
6
- 'new',
7
- 'q',
8
- 'update',
9
- 'close',
10
- 'done',
11
- 'link',
12
- 'dep',
13
- 'reopen',
14
- 'assign',
15
- 'priority',
16
- 'tag',
17
- 'label',
18
- 'note',
19
- 'comment',
20
- 'edit',
21
- 'set-state',
22
- ]);
23
3
  export const MUTATION_TOOL_NAMES = new Set(MUTATION_TOOLS);
24
- export function validateArmingTools(activeTools, useBeads = false) {
25
- const missingTracking = useBeads
26
- ? !activeTools.some((toolName) => toolName === 'bash' || toolName === 'exec_command')
27
- : !activeTools.includes('todo_write');
28
- const missingMutation = !activeTools.some((toolName) => MUTATION_TOOL_NAMES.has(toolName));
29
- if (!missingTracking && !missingMutation)
30
- return { ok: true };
31
- const requirements = [];
32
- if (missingTracking) {
33
- requirements.push(useBeads ? 'an active shell tool (bash or exec_command)' : 'the active todo_write tool');
34
- }
35
- if (missingMutation)
36
- requirements.push('an active mutation tool (edit, write, or apply_patch)');
37
- return {
38
- ok: false,
39
- reason: `Prewalk requires ${requirements.join(' and ')}.`,
40
- };
41
- }
42
- export function validateTodoWriteInput(input) {
43
- if (!isRecord(input) || !Array.isArray(input.todos)) {
44
- return { ok: false, reason: 'Prewalk requires todo_write input with a todos array.' };
45
- }
46
- if (input.todos.length < 5 || input.todos.length > 9) {
47
- return { ok: false, reason: 'Prewalk requires 5-9 todo items before the first mutation.' };
48
- }
49
- if (input.todos.some((todo) => !isRecord(todo) || !TODO_STATUSES.has(String(todo.status)))) {
50
- return { ok: false, reason: 'Every Prewalk todo must have a valid pending, in_progress, or completed status.' };
51
- }
52
- const inProgressCount = input.todos.filter((todo) => todo.status === 'in_progress').length;
53
- if (inProgressCount !== 1) {
54
- return { ok: false, reason: 'Prewalk requires exactly one in_progress todo item.' };
55
- }
56
- return { ok: true };
4
+ export function validateArmingTools(activeTools) {
5
+ return activeTools.some((toolName) => MUTATION_TOOL_NAMES.has(toolName))
6
+ ? { ok: true }
7
+ : { ok: false, reason: 'Prewalk requires an active mutation tool (edit, write, or apply_patch).' };
57
8
  }
58
- export function createRunState() {
9
+ export function createRunState(options = {}) {
59
10
  return {
60
- trackingGateOpen: false,
61
- toolCalls: [],
62
- nextOrdinal: 0,
11
+ mutationCallIds: [],
63
12
  continuationCount: 0,
64
13
  continuationArmed: true,
14
+ handoffArmed: options.handoffArmed ?? true,
65
15
  };
66
16
  }
67
17
  export function beginTurn(state) {
68
18
  return {
69
19
  ...state,
70
- toolCalls: [],
71
- nextOrdinal: 0,
20
+ mutationCallIds: [],
21
+ handoffArmed: true,
72
22
  };
73
23
  }
74
- export function recordToolCall(state, call, useBeads = false) {
75
- const ordinal = state.nextOrdinal;
76
- const nextState = { ...state, nextOrdinal: ordinal + 1 };
77
- const kind = isTrackingCall(call, useBeads)
78
- ? 'tracking'
79
- : MUTATION_TOOL_NAMES.has(call.toolName)
80
- ? 'mutation'
81
- : undefined;
82
- if (!kind)
83
- return nextState;
24
+ export function recordToolCall(state, call) {
25
+ if (!MUTATION_TOOL_NAMES.has(call.toolName))
26
+ return state;
84
27
  return {
85
- ...nextState,
86
- toolCalls: [...state.toolCalls, { toolCallId: call.toolCallId, kind, ordinal }],
28
+ ...state,
29
+ mutationCallIds: [...state.mutationCallIds, call.toolCallId],
87
30
  };
88
31
  }
89
32
  export function reduceTurn(state, results, options = {}) {
90
33
  const successfulIds = new Set(results.filter((result) => !result.isError).map((result) => result.toolCallId));
91
- const successfulTracking = state.toolCalls.filter((call) => call.kind === 'tracking' && successfulIds.has(call.toolCallId));
92
- const successfulMutations = state.toolCalls.filter((call) => call.kind === 'mutation' && successfulIds.has(call.toolCallId));
93
- const shouldHandoff = state.trackingGateOpen
94
- ? successfulMutations.length > 0
95
- : successfulMutations.some((mutation) => successfulTracking.some((tracking) => tracking.ordinal < mutation.ordinal));
34
+ const shouldHandoff = state.handoffArmed
35
+ && state.mutationCallIds.some((toolCallId) => successfulIds.has(toolCallId));
96
36
  let continuationArmed = results.some((result) => !result.isError) || state.continuationArmed;
97
37
  let continuationCount = state.continuationCount;
98
38
  let shouldContinue = false;
@@ -107,99 +47,13 @@ export function reduceTurn(state, results, options = {}) {
107
47
  }
108
48
  return {
109
49
  state: {
110
- trackingGateOpen: state.trackingGateOpen || successfulTracking.length > 0,
111
- toolCalls: [],
112
- nextOrdinal: 0,
50
+ mutationCallIds: [],
113
51
  continuationCount,
114
52
  continuationArmed,
53
+ handoffArmed: state.handoffArmed,
115
54
  },
116
55
  shouldHandoff,
117
56
  shouldContinue,
118
57
  };
119
58
  }
120
- function isTrackingCall(call, useBeads) {
121
- if (!useBeads)
122
- return call.toolName === 'todo_write';
123
- if (call.toolName !== 'bash' && call.toolName !== 'exec_command')
124
- return false;
125
- if (!isRecord(call.input))
126
- return false;
127
- const command = call.input.command ?? call.input.cmd;
128
- return typeof command === 'string' && shellCommandSegments(command).some(isBeadsMutationSegment);
129
- }
130
- function isBeadsMutationSegment(argv) {
131
- const commandIndex = argv.findIndex((argument) => !/^[A-Za-z_][A-Za-z0-9_]*=/.test(argument));
132
- if (commandIndex === -1 || argv[commandIndex] !== 'bd')
133
- return false;
134
- return BEADS_MUTATIONS.has(argv[commandIndex + 1] ?? '');
135
- }
136
- function shellCommandSegments(command) {
137
- const segments = [];
138
- let argv = [];
139
- let token = '';
140
- let tokenStarted = false;
141
- let quote;
142
- const finishToken = () => {
143
- if (!tokenStarted)
144
- return;
145
- argv.push(token);
146
- token = '';
147
- tokenStarted = false;
148
- };
149
- const finishSegment = () => {
150
- finishToken();
151
- if (argv.length > 0)
152
- segments.push(argv);
153
- argv = [];
154
- };
155
- for (let index = 0; index < command.length; index += 1) {
156
- const character = command[index];
157
- if (quote !== undefined) {
158
- if (character === quote) {
159
- quote = undefined;
160
- }
161
- else if (character === '\\' && quote !== "'" && index + 1 < command.length) {
162
- token += command[index + 1];
163
- index += 1;
164
- }
165
- else {
166
- token += character;
167
- }
168
- continue;
169
- }
170
- if (character === "'" || character === '"' || character === '`') {
171
- quote = character;
172
- tokenStarted = true;
173
- continue;
174
- }
175
- if (character === '\\' && index + 1 < command.length) {
176
- token += command[index + 1];
177
- tokenStarted = true;
178
- index += 1;
179
- continue;
180
- }
181
- if (character === '#' && !tokenStarted) {
182
- while (index + 1 < command.length && command[index + 1] !== '\n')
183
- index += 1;
184
- continue;
185
- }
186
- if (character === ';' || character === '&' || character === '|' || character === '\n') {
187
- finishSegment();
188
- if ((character === '&' || character === '|') && command[index + 1] === character)
189
- index += 1;
190
- continue;
191
- }
192
- if (/\s/.test(character)) {
193
- finishToken();
194
- continue;
195
- }
196
- token += character;
197
- tokenStarted = true;
198
- }
199
- finishSegment();
200
- return segments;
201
- }
202
- function isRecord(value) {
203
- return typeof value === 'object' && value !== null;
204
- }
205
59
  //# sourceMappingURL=state.js.map
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAkC3D,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAU,CAAC;AAEjE,MAAM,CAAC,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;AAEhF,MAAM,UAAU,mBAAmB,CAAC,WAA8B;IAChE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;QACd,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yEAAyE,EAAE,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAsC,EAAE;IACrE,OAAO;QACL,eAAe,EAAE,EAAE;QACnB,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO;QACL,GAAG,KAAK;QACR,eAAe,EAAE,EAAE;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAsB,EAAE,IAAqB;IAC1E,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1D,OAAO;QACL,GAAG,KAAK;QACR,eAAe,EAAE,CAAC,GAAG,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAsB,EACtB,OAAqC,EACrC,UAA2C,EAAE;IAE7C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9G,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY;WACnC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAE/E,IAAI,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC;IAC7F,IAAI,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAChD,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,IACE,CAAC,aAAa;WACX,OAAO,CAAC,iBAAiB,KAAK,KAAK;WACnC,OAAO,CAAC,MAAM,KAAK,CAAC;WACpB,iBAAiB;WACjB,iBAAiB,GAAG,2BAA2B,EAClD,CAAC;QACD,cAAc,GAAG,IAAI,CAAC;QACtB,iBAAiB,IAAI,CAAC,CAAC;QACvB,iBAAiB,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,KAAK,EAAE;YACL,eAAe,EAAE,EAAE;YACnB,iBAAiB;YACjB,iBAAiB;YACjB,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC;QACD,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@felan-ai/ext-prewalk",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Same-session planner-to-implementation model handoff for Felan",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -24,11 +24,15 @@
24
24
  "import": "./dist/index.js"
25
25
  }
26
26
  },
27
+ "dependencies": {
28
+ "typebox": "1.1.38"
29
+ },
27
30
  "peerDependencies": {
28
- "@felan-ai/agent-core": "^0.4.0"
31
+ "@felan-ai/agent-core": "^0.4.3",
32
+ "@felan-ai/ext-tasks": "^0.1.0"
29
33
  },
30
34
  "devDependencies": {
31
- "@felan-ai/agent-core": "0.4.0"
35
+ "@felan-ai/agent-core": "0.4.9"
32
36
  },
33
37
  "publishConfig": {
34
38
  "access": "public",