@felan-ai/ext-prewalk 0.8.1 → 0.8.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.
package/README.md CHANGED
@@ -56,15 +56,15 @@ In modes without interactive input, `exit_plan_mode` auto-approves an `ask` revi
56
56
 
57
57
  ## Lifecycle
58
58
 
59
- 1. The planner explores the relevant repository surface and determines the complete implementation scope.
59
+ 1. The planner builds on findings already in the conversation, inspects what is still missing, and determines the complete implementation scope.
60
60
  2. When the task tools are available, 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`.
61
61
  3. When plan review is active, the planner passes a concise numbered plan to `exit_plan_mode`. The tool displays it and either records approval, returns feedback for another planning iteration, or cancels Prewalk.
62
62
  4. When both task tools are active, successful `TaskCreate` and `TaskUpdate`
63
63
  calls claiming `in_progress` work open the task gate. The planner then
64
64
  performs one focused successful `edit`, `write`, or `apply_patch`.
65
65
  5. At that turn boundary, Felan resolves a same-provider model in the configured target tier, or an exact target model. If the planner provider has no target-tier model, it keeps the planner model and applies the configured thinking level.
66
- 6. The target model completes the existing session task graph and runs the relevant verification.
67
- 7. Once the agent run has fully settled, Felan restores the planner model and thinking level.
66
+ 6. The target model completes the existing session task graph and runs the relevant verification. Without a classifier it launches one high-tier `reviewer` child and ends with a pending-review status; the review completion notice resumes the session. With a classifier, the completion check below decides whether more work or a review is needed. Prewalk does not check whether `Agent` is active; a host without it must enable the tool to satisfy reviewer requests.
67
+ 7. Once the work is verified and any required reviewer has returned, Felan restores the planner model and thinking level after the agent run settles. An unchecked or aborted implementation, or an outstanding review, keeps Prewalk active until the work resumes or the user exits it.
68
68
 
69
69
  When both task tools are active, successful `TaskCreate` and `TaskUpdate` calls claiming `in_progress` work are required before a successful mutation qualifies the turn for handoff. Failed or unrelated task calls do not open that gate. If the task tools are unavailable, a successful explicit mutation qualifies directly. Failed mutation calls never qualify. If the planner stops after prose or partial tool progress, Prewalk can append a compact hidden continuation that directs the next tool action without repeating the full planning instructions. It sends at most one continuation per no-progress stretch and three per run.
70
70
 
@@ -76,6 +76,51 @@ The extension also registers concise static `prewalk` capability guidance
76
76
  during initialization. Phase-specific planning and implementation instructions
77
77
  remain transient, stable-position context messages.
78
78
 
79
+ ## Classifier guidance
80
+
81
+ When the host runtime provides a classifier, root-session Prewalk runs make four
82
+ choice decisions. Each uses bounded state: the request, up to 24 recent
83
+ conversation items, up to 40 recent tool calls with short inputs and error
84
+ flags, the submitted plan, and recorded `TaskCreate` titles and acceptance
85
+ criteria.
86
+
87
+ - **Entry:** Classification starts on Pi's `input` event for idle turns when
88
+ `enter_prewalk` and a mutation tool are active and `entryApproval` is not
89
+ `deny`. If the request should use Prewalk, a hidden conversation message
90
+ tells the model to call `enter_prewalk` before exploring. It does not change
91
+ the system prompt; the message is removed from subsequent model context.
92
+ The tool stays available and entry approval is unchanged.
93
+ - **Exploration depth:** When a run starts from `enter_prewalk` or `/prewalk`,
94
+ the classifier judges how much the session already covers. The result appends
95
+ one sentence to the planning guidance: `sufficient` (plan from existing
96
+ findings), `targeted` (inspect specific missing files), or `deep` (delegate
97
+ discovery to `explore` children and wait for their summaries).
98
+ - **Implementation profile:** For tier targets, the classifier may raise the
99
+ configured tier and thinking level based on the plan and tasks. It never
100
+ lowers them. Exact model targets are unchanged.
101
+ - **Completion:** Implementation guidance asks for a concise summary with the
102
+ verification results instead of a mandatory review. Once the agent run is
103
+ ready to settle, the classifier judges its final assistant response and
104
+ verification evidence, not an intermediate text-only turn. `done` lets the run
105
+ settle. `gap` queues a hidden `prewalk-completion-check` follow-up that asks
106
+ the implementer to finish and verify missing work. `unsure` queues one
107
+ follow-up requesting a single high-tier reviewer and stops further checks.
108
+ A second `gap` also requests that review instead of silently accepting
109
+ unfinished work. At most two checks run per Prewalk run. A failed completion
110
+ check also requests review rather than treating an unverified implementation
111
+ as done. A `done` decision is accepted only when session activity shows a
112
+ successful verification after the last successful mutation; the classifier
113
+ receives bounded tool outcome metadata, not raw command output. Prewalk
114
+ waits for the requested reviewer completion before restoring the planner.
115
+ If the classifier requests more work, the hidden message continues the same
116
+ run before settlement and is removed from model context after the next
117
+ assistant turn.
118
+
119
+ A missing classifier leaves model judgment and the configured defaults in
120
+ place; a failed entry, depth, or profile decision likewise adds no guidance or
121
+ escalation. Decisions are logged under the
122
+ `prewalk-classifier` component without request text.
123
+
79
124
  ## Thinking levels
80
125
 
81
126
  The planner keeps its current thinking level while exploring. The implementation
@@ -0,0 +1,25 @@
1
+ import { type ExtensionContext, type FelanExtensionAPI, type FelanThinkingLevel, type ModelTier } from '@felan-ai/agent-core';
2
+ export type ExplorationDepth = 'sufficient' | 'targeted' | 'deep';
3
+ export type CompletionVerdict = 'done' | 'gap' | 'unsure';
4
+ export type ImplementationTier = Extract<ModelTier, 'low' | 'medium' | 'high'>;
5
+ export type ImplementationThinking = Extract<FelanThinkingLevel, 'low' | 'medium' | 'high'>;
6
+ export interface ImplementationProfile {
7
+ tier: ImplementationTier;
8
+ thinking: ImplementationThinking;
9
+ }
10
+ export interface RunContext {
11
+ request: string;
12
+ plan?: string;
13
+ tasks: readonly string[];
14
+ }
15
+ export interface PrewalkClassifier {
16
+ needsPrewalk(request: string, ctx: ExtensionContext, signal?: AbortSignal): Promise<boolean>;
17
+ explorationDepth(run: RunContext, ctx: ExtensionContext): Promise<ExplorationDepth | undefined>;
18
+ implementationProfile(run: RunContext, ctx: ExtensionContext): Promise<ImplementationProfile | undefined>;
19
+ completion(run: RunContext, finalMessage: string, ctx: ExtensionContext): Promise<CompletionVerdict | undefined>;
20
+ }
21
+ export declare function createPrewalkClassifier(pi: FelanExtensionAPI): PrewalkClassifier | undefined;
22
+ export declare function strongerTier(configured: ModelTier, chosen: ImplementationTier): ModelTier;
23
+ export declare function strongerThinking(configured: FelanThinkingLevel, chosen: ImplementationThinking): FelanThinkingLevel;
24
+ export declare function isChildSession(ctx: ExtensionContext): boolean;
25
+ //# sourceMappingURL=classification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classification.d.ts","sourceRoot":"","sources":["../src/classification.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC1D,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;AAC/E,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;AAE5F,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7F,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAChG,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IAC1G,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;CAClH;AAiED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CA6D5F;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAEzF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,sBAAsB,GAAG,kBAAkB,CAEnH;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAE7D"}
@@ -0,0 +1,236 @@
1
+ import { FELAN_THINKING_LEVELS, MODEL_TIERS, } from '@felan-ai/agent-core';
2
+ const MAX_CONVERSATION_ITEMS = 24;
3
+ const MAX_CONVERSATION_TEXT = 1_200;
4
+ const MAX_TOOL_ACTIVITY = 40;
5
+ const MAX_TOOL_INPUT = 160;
6
+ const MAX_PLAN_TEXT = 6_000;
7
+ const MAX_FINAL_MESSAGE = 3_000;
8
+ const ENTRY_QUESTIONS = {
9
+ route: {
10
+ type: 'choice',
11
+ instructions: 'Given `request` and `session`, should this request run through Prewalk, a plan-then-implement workflow in which a stronger model explores and records a task graph before a cheaper model implements and verifies it?',
12
+ criteria: {
13
+ prewalk: 'The request asks for repository changes that span several files or layers, need dependency-aware planning, carry meaningful regression risk, or need broad verification, and `session` has not already planned or started that work.',
14
+ regular: 'The request is read-only, conversational, a small localized edit or routine one-file fix, a continuation of work already in progress, or otherwise gains nothing from a separate planning phase.',
15
+ },
16
+ },
17
+ };
18
+ const DEPTH_QUESTIONS = {
19
+ depth: {
20
+ type: 'choice',
21
+ instructions: 'Given `request` and `session` (prior conversation and tool activity), how much repository exploration does planning `request` still need?',
22
+ criteria: {
23
+ sufficient: '`session` already contains the findings needed to plan: the relevant files, symbols, and constraints were inspected or explained.',
24
+ targeted: 'Some findings exist or the relevant locations are known or named, and only a few specific files or symbols remain to inspect.',
25
+ deep: 'The relevant surface is broad and largely unexplored in `session`; many unknown files or areas must be read to plan correctly.',
26
+ },
27
+ },
28
+ };
29
+ const IMPLEMENTATION_QUESTIONS = {
30
+ tier: {
31
+ type: 'choice',
32
+ instructions: 'Given `request`, the approved `plan`, and `tasks`, which model tier does implementing and verifying this plan need? The plan already fixes the approach.',
33
+ criteria: {
34
+ low: 'Mechanical or well-specified changes that follow existing patterns closely.',
35
+ medium: 'Ordinary implementation with some judgment across a few files or tests.',
36
+ high: 'Subtle logic, concurrency, security, migrations, cross-cutting or risky changes, or difficult debugging even with the plan in hand.',
37
+ },
38
+ },
39
+ thinking: {
40
+ type: 'choice',
41
+ instructions: 'Given `request`, the approved `plan`, and `tasks`, how much reasoning effort does the implementation need?',
42
+ criteria: {
43
+ low: 'Straightforward edits where the plan spells out each change.',
44
+ medium: 'Normal implementation requiring moderate reasoning.',
45
+ high: 'Intricate reasoning about correctness, edge cases, or failures.',
46
+ },
47
+ },
48
+ };
49
+ const COMPLETION_QUESTIONS = {
50
+ verdict: {
51
+ type: 'choice',
52
+ instructions: 'Given `request`, the approved `plan`, `tasks`, `session` tool activity, and the implementer\'s `final_message`, is the requested work complete and verified? Judge from evidence in the activity (edits, commands, errors), not from claims in `final_message` alone.',
53
+ criteria: {
54
+ done: 'Every requested change and task is addressed, relevant verification ran after the last edit, and nothing indicates failures, skipped scope, or unresolved errors.',
55
+ gap: 'Evidence shows missing scope, skipped tasks, failing or missing verification, unresolved errors, or the final message admits unfinished work.',
56
+ unsure: 'The evidence is insufficient to confirm completion and an independent review is needed to decide.',
57
+ },
58
+ },
59
+ };
60
+ export function createPrewalkClassifier(pi) {
61
+ const classifier = pi.runtime?.classifier;
62
+ if (classifier === undefined)
63
+ return undefined;
64
+ const logger = pi.runtime?.logger?.child({ component: 'prewalk-classifier' });
65
+ async function ask(decision, state, questions, ctx, signal) {
66
+ const sessionId = ctx.sessionManager.getSessionId();
67
+ try {
68
+ const result = await classifier.evaluate(state, questions, signal);
69
+ const choices = {};
70
+ for (const [id, question] of Object.entries(questions)) {
71
+ const choice = result.answers[id]?.choice;
72
+ if (choice === undefined || !Object.hasOwn(question.criteria, choice)) {
73
+ throw new Error(`Classifier returned no valid ${id} choice`);
74
+ }
75
+ choices[id] = choice;
76
+ }
77
+ logger?.debug({ event: 'decision', decision, sessionId, choices, classifier: result.metadata }, 'prewalk classifier decision');
78
+ return choices;
79
+ }
80
+ catch (error) {
81
+ if (signal?.aborted)
82
+ return undefined;
83
+ logger?.warn({ event: 'decision', decision, sessionId, outcome: 'failed', error: errorFields(error) }, 'prewalk classifier failed');
84
+ return undefined;
85
+ }
86
+ }
87
+ return {
88
+ async needsPrewalk(request, ctx, signal) {
89
+ const choices = await ask('entry', { request, session: snapshotSession(ctx) }, ENTRY_QUESTIONS, ctx, signal);
90
+ return choices?.route === 'prewalk';
91
+ },
92
+ async explorationDepth(run, ctx) {
93
+ const choices = await ask('exploration-depth', runState(run, ctx), DEPTH_QUESTIONS, ctx);
94
+ return choices?.depth;
95
+ },
96
+ async implementationProfile(run, ctx) {
97
+ const choices = await ask('implementation-profile', runState(run, ctx, false), IMPLEMENTATION_QUESTIONS, ctx);
98
+ return choices === undefined
99
+ ? undefined
100
+ : { tier: choices.tier, thinking: choices.thinking };
101
+ },
102
+ async completion(run, finalMessage, ctx) {
103
+ const state = {
104
+ ...runState(run, ctx, false),
105
+ session: snapshotSession(ctx),
106
+ final_message: truncate(finalMessage, MAX_FINAL_MESSAGE),
107
+ };
108
+ const choices = await ask('completion', state, COMPLETION_QUESTIONS, ctx);
109
+ const verdict = choices?.verdict;
110
+ if (verdict !== 'done')
111
+ return verdict;
112
+ return state.session.verification_after_last_mutation && !state.session.failed_verification
113
+ ? verdict
114
+ : 'unsure';
115
+ },
116
+ };
117
+ }
118
+ export function strongerTier(configured, chosen) {
119
+ return MODEL_TIERS.indexOf(chosen) < MODEL_TIERS.indexOf(configured) ? chosen : configured;
120
+ }
121
+ export function strongerThinking(configured, chosen) {
122
+ return FELAN_THINKING_LEVELS.indexOf(chosen) > FELAN_THINKING_LEVELS.indexOf(configured) ? chosen : configured;
123
+ }
124
+ export function isChildSession(ctx) {
125
+ return ctx.sessionManager.getHeader()?.parentSession !== undefined;
126
+ }
127
+ function runState(run, ctx, includeSession = true) {
128
+ return {
129
+ request: run.request,
130
+ ...(run.plan === undefined ? {} : { plan: truncate(run.plan, MAX_PLAN_TEXT) }),
131
+ tasks: run.tasks,
132
+ ...(includeSession ? { session: snapshotSession(ctx) } : {}),
133
+ };
134
+ }
135
+ function snapshotSession(ctx) {
136
+ const conversation = [];
137
+ const activity = [];
138
+ const activityByCallId = new Map();
139
+ for (const message of sessionMessages(ctx)) {
140
+ if (!isRecord(message))
141
+ continue;
142
+ if (message.role === 'summary') {
143
+ conversation.push({ role: 'summary', text: truncate(String(message.text), MAX_CONVERSATION_TEXT) });
144
+ continue;
145
+ }
146
+ if (message.role === 'toolResult' && typeof message.toolCallId === 'string') {
147
+ const entry = activityByCallId.get(message.toolCallId);
148
+ if (entry) {
149
+ const exitCode = exitCodeFromResult(message);
150
+ entry.result = message.isError === true || (exitCode !== undefined && exitCode !== 0) ? 'failed' : 'ok';
151
+ if (exitCode !== undefined)
152
+ entry.exit_code = exitCode;
153
+ const details = message.details;
154
+ if (isRecord(details) && isRecord(details.task) && typeof details.task.status === 'string') {
155
+ entry.task_status = details.task.status;
156
+ }
157
+ }
158
+ continue;
159
+ }
160
+ if (message.role !== 'user' && message.role !== 'assistant')
161
+ continue;
162
+ const text = contentText(message.content);
163
+ if (text.trim())
164
+ conversation.push({ role: message.role, text: truncate(text, MAX_CONVERSATION_TEXT) });
165
+ if (message.role !== 'assistant' || !Array.isArray(message.content))
166
+ continue;
167
+ for (const part of message.content) {
168
+ if (!isRecord(part) || part.type !== 'toolCall' || typeof part.name !== 'string')
169
+ continue;
170
+ const entry = { tool: part.name, input: summarizeInput(part.arguments) };
171
+ activity.push(entry);
172
+ if (typeof part.id === 'string')
173
+ activityByCallId.set(part.id, entry);
174
+ }
175
+ }
176
+ const lastMutation = activity.map(({ tool, result }) => (['edit', 'write', 'apply_patch'].includes(tool) && result === 'ok')).lastIndexOf(true);
177
+ const verification = activity.slice(lastMutation + 1).filter(({ tool, input }) => (tool === 'bash' && /\b(build|test|type-check|typecheck|verify|lint|check)\b/i.test(input)));
178
+ const latestVerification = new Map(verification.map(({ input, result }) => [input, result]));
179
+ return {
180
+ conversation: conversation.slice(-MAX_CONVERSATION_ITEMS),
181
+ tool_activity: activity.slice(-MAX_TOOL_ACTIVITY),
182
+ verification_after_last_mutation: lastMutation >= 0 && verification.some(({ result }) => result === 'ok'),
183
+ failed_verification: [...latestVerification.values()].some((result) => result === 'failed'),
184
+ };
185
+ }
186
+ function exitCodeFromResult(message) {
187
+ const details = message.details;
188
+ if (isRecord(details) && typeof details.exitCode === 'number')
189
+ return details.exitCode;
190
+ const text = contentText(message.content);
191
+ const match = /(?:Exit(?: code)?):\s*(\d+)/i.exec(text);
192
+ return match ? Number(match[1]) : undefined;
193
+ }
194
+ function sessionMessages(ctx) {
195
+ const manager = ctx.sessionManager;
196
+ if (typeof manager.buildSessionProjection === 'function') {
197
+ return manager.buildSessionProjection().entries.flatMap(({ sourceEntry, messages }) => (sourceEntry.type === 'compaction' || sourceEntry.type === 'branch_summary'
198
+ ? [{ role: 'summary', text: sourceEntry.summary }]
199
+ : messages));
200
+ }
201
+ return manager.buildContextEntries().flatMap((entry) => {
202
+ if (entry.type === 'compaction' || entry.type === 'branch_summary')
203
+ return [{ role: 'summary', text: entry.summary }];
204
+ return entry.type === 'message' ? [entry.message] : [];
205
+ });
206
+ }
207
+ function summarizeInput(input) {
208
+ if (!isRecord(input))
209
+ return '';
210
+ for (const key of ['path', 'file_path', 'command', 'pattern', 'query', 'description', 'title']) {
211
+ const value = input[key];
212
+ if (typeof value === 'string')
213
+ return truncate(value, MAX_TOOL_INPUT);
214
+ }
215
+ return truncate(JSON.stringify(input), MAX_TOOL_INPUT);
216
+ }
217
+ function contentText(content) {
218
+ if (typeof content === 'string')
219
+ return content;
220
+ if (!Array.isArray(content))
221
+ return '';
222
+ return content
223
+ .filter((part) => (isRecord(part) && part.type === 'text' && typeof part.text === 'string'))
224
+ .map((part) => part.text)
225
+ .join('\n');
226
+ }
227
+ function truncate(text, limit) {
228
+ return text.length <= limit ? text : `${text.slice(0, limit)}…`;
229
+ }
230
+ function errorFields(error) {
231
+ return error instanceof Error ? { name: error.name, message: error.message } : { name: 'Error', message: String(error) };
232
+ }
233
+ function isRecord(value) {
234
+ return typeof value === 'object' && value !== null;
235
+ }
236
+ //# sourceMappingURL=classification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classification.js","sourceRoot":"","sources":["../src/classification.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export type PrewalkEntryApprovalPolicy = 'ask' | 'allow' | 'deny';
3
3
  export type PrewalkPlanReviewPolicy = 'inherit' | 'ask' | 'skip';
4
4
  export declare const PREWALK_CONFIG: import("@felan-ai/agent-core").ExtensionConfigDefinition<{
5
5
  readonly targetModel: import("@felan-ai/agent-core").ExtensionConfigField<string>;
6
- readonly targetThinking: import("@felan-ai/agent-core").ExtensionConfigField<"off" | "low" | "medium" | "high" | "xhigh" | "max">;
6
+ readonly targetThinking: import("@felan-ai/agent-core").ExtensionConfigField<"xhigh" | "high" | "medium" | "low" | "off" | "max">;
7
7
  readonly restorePlanner: import("@felan-ai/agent-core").ExtensionConfigField<boolean>;
8
8
  readonly entryApproval: import("@felan-ai/agent-core").ExtensionConfigField<"ask" | "allow" | "deny">;
9
9
  readonly planReview: import("@felan-ai/agent-core").ExtensionConfigField<"ask" | "inherit" | "skip">;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAeL,KAAK,cAAc,EAKpB,MAAM,sBAAsB,CAAC;AA2C9B,MAAM,MAAM,0BAA0B,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AACjE,eAAO,MAAM,cAAc;;;;;;EAoBzB,CAAC;AAi6BH,eAAO,MAAM,sBAAsB,QAAO,cAAiC,CAAC;AA2N5E,QAAA,MAAM,gBAAgB,gBAA2B,CAAC;AAIlD,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAeL,KAAK,cAAc,EAKpB,MAAM,sBAAsB,CAAC;AAyD9B,MAAM,MAAM,0BAA0B,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AACjE,eAAO,MAAM,cAAc;;;;;;EAoBzB,CAAC;AAmoCH,eAAO,MAAM,sBAAsB,QAAO,cAAiC,CAAC;AA2P5E,QAAA,MAAM,gBAAgB,gBAA2B,CAAC;AAIlD,eAAe,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { associateExtensionConfig, configField, defineExtensionConfig, clampThinkingLevel, isFelanThinkingLevel, formatModelReference, isModelTier, parseModelReference, selectModelForTier, } from '@felan-ai/agent-core';
2
2
  import { Type } from 'typebox';
3
- import { CONTINUATION_INSTRUCTION, CONTINUATION_MESSAGE_TYPE, CONTROL_MESSAGE_PREFIX, IMPLEMENTATION_MESSAGE_TYPE, PLAN_APPROVED_INSTRUCTION, PLAN_APPROVED_MESSAGE_TYPE, PLAN_REVIEW_MESSAGE_TYPE, PLAN_REVIEW_PLANNING_INSTRUCTION, PLANNING_INSTRUCTION, PLANNING_MESSAGE_TYPE, VERIFICATION_INSTRUCTION, } from './prompts.js';
3
+ import { isChildSession, createPrewalkClassifier, strongerThinking, strongerTier, } from './classification.js';
4
+ import { COMPLETION_GAP_INSTRUCTION, COMPLETION_MESSAGE_TYPE, COMPLETION_REVIEW_INSTRUCTION, CONTINUATION_INSTRUCTION, CONTINUATION_MESSAGE_TYPE, CONTROL_MESSAGE_PREFIX, ENTRY_GUIDANCE, ENTRY_MESSAGE_TYPE, EXPLORATION_DEPTH_GUIDANCE, GATED_VERIFICATION_INSTRUCTION, IMPLEMENTATION_MESSAGE_TYPE, PLAN_APPROVED_INSTRUCTION, PLAN_APPROVED_MESSAGE_TYPE, PLAN_REVIEW_MESSAGE_TYPE, PLAN_REVIEW_PLANNING_INSTRUCTION, PLANNING_INSTRUCTION, PLANNING_MESSAGE_TYPE, VERIFICATION_INSTRUCTION, } from './prompts.js';
4
5
  import { beginTurn, createRunState, recordToolCall, reduceTurn, validateArmingTools, } from './state.js';
5
6
  import { APPROVE_PLAN_OPTION, CANCEL_PREWALK_OPTION, FEEDBACK_PLAN_OPTION, presentPlanReview, } from './plan-review.js';
6
7
  export const PREWALK_CONFIG = defineExtensionConfig({
@@ -28,6 +29,8 @@ const HEADLESS_TASK_MESSAGE_TYPE = 'pi-prewalk-task';
28
29
  const ENTER_PREWALK_TOOL = 'enter_prewalk';
29
30
  const EXIT_PLAN_MODE_TOOL = 'exit_plan_mode';
30
31
  const MAX_PLAN_LENGTH = 32_000;
32
+ const MAX_RECORDED_TASKS = 20;
33
+ const MAX_COMPLETION_CHECKS = 2;
31
34
  const IMPLEMENTATION_BASELINE_RATIO = 2 / 3;
32
35
  const EnterPrewalkParams = Type.Object({}, { additionalProperties: false });
33
36
  const ExitPlanModeParams = Type.Object({
@@ -53,6 +56,11 @@ function registerPrewalk(pi) {
53
56
  let phaseContextAnchor;
54
57
  let implementationSavingsModels;
55
58
  let internalThinkingChange = false;
59
+ const classifier = createPrewalkClassifier(pi);
60
+ let pendingEntry;
61
+ let entryGuidanceActive = false;
62
+ let lastPrompt = '';
63
+ let runDetails;
56
64
  function refreshConfig() {
57
65
  config = pi.config;
58
66
  targetModel = parseTargetModel(config.targetModel);
@@ -89,9 +97,86 @@ function registerPrewalk(pi) {
89
97
  plannerSnapshot = undefined;
90
98
  phaseContextAnchor = undefined;
91
99
  implementationSavingsModels = undefined;
100
+ runDetails = undefined;
101
+ entryGuidanceActive = false;
92
102
  exitRequested = false;
93
103
  updateStatus(ctx);
94
104
  }
105
+ function entryClassificationEligible(ctx) {
106
+ if (classifier === undefined || state.phase !== 'idle')
107
+ return false;
108
+ refreshConfig();
109
+ const activeTools = pi.getActiveTools();
110
+ return config.entryApproval !== 'deny'
111
+ && activeTools.includes(ENTER_PREWALK_TOOL)
112
+ && validateArmingTools(activeTools).ok
113
+ && !isChildSession(ctx);
114
+ }
115
+ function startEntryClassification(prompt, ctx) {
116
+ pendingEntry?.controller.abort('superseded');
117
+ const controller = new AbortController();
118
+ const classification = {
119
+ prompt,
120
+ controller,
121
+ decision: classifier.needsPrewalk(prompt, ctx, controller.signal),
122
+ };
123
+ pendingEntry = classification;
124
+ return classification;
125
+ }
126
+ async function applyEntryGuidance(prompt, ctx) {
127
+ entryGuidanceActive = false;
128
+ if (!entryClassificationEligible(ctx)) {
129
+ pendingEntry?.controller.abort('ineligible');
130
+ pendingEntry = undefined;
131
+ return;
132
+ }
133
+ const classification = pendingEntry?.prompt === prompt
134
+ ? pendingEntry
135
+ : startEntryClassification(prompt, ctx);
136
+ const needed = await classification.decision;
137
+ if (pendingEntry === classification)
138
+ pendingEntry = undefined;
139
+ if (classification.controller.signal.aborted || !needed || state.phase !== 'idle')
140
+ return;
141
+ entryGuidanceActive = true;
142
+ return { message: { customType: ENTRY_MESSAGE_TYPE, content: ENTRY_GUIDANCE, display: false } };
143
+ }
144
+ async function classifyExplorationDepth(ctx) {
145
+ const details = runDetails;
146
+ if (classifier === undefined || details === undefined || !details.classified)
147
+ return;
148
+ const depth = await classifier.explorationDepth(details, ctx);
149
+ if (runDetails !== details || depth === undefined)
150
+ return;
151
+ details.depth = depth;
152
+ }
153
+ async function checkCompletion(message, ctx) {
154
+ const details = runDetails;
155
+ if (classifier === undefined
156
+ || details === undefined
157
+ || !details.completionGate
158
+ || details.completionAccepted
159
+ || exitRequested
160
+ || details.completionChecks >= MAX_COMPLETION_CHECKS
161
+ || !isTextOnlyCompletion(message))
162
+ return;
163
+ details.completionChecks += 1;
164
+ const verdict = await classifier.completion(details, assistantText(message), ctx);
165
+ if (state.phase !== 'implementing' || runDetails !== details || exitRequested)
166
+ return;
167
+ details.completionAccepted = verdict === 'done';
168
+ const reviewNeeded = verdict !== 'done' && (verdict !== 'gap' || details.completionChecks >= MAX_COMPLETION_CHECKS);
169
+ if (reviewNeeded) {
170
+ details.completionChecks = MAX_COMPLETION_CHECKS;
171
+ details.reviewRequested = true;
172
+ }
173
+ const content = verdict === 'gap' && !reviewNeeded
174
+ ? COMPLETION_GAP_INSTRUCTION
175
+ : reviewNeeded
176
+ ? COMPLETION_REVIEW_INSTRUCTION
177
+ : undefined;
178
+ return content;
179
+ }
95
180
  function failAutomation(ctx, message) {
96
181
  clearAutomation(ctx);
97
182
  notify(ctx, message, 'error');
@@ -130,8 +215,21 @@ function registerPrewalk(pi) {
130
215
  thinkingLevel: pi.getThinkingLevel(),
131
216
  };
132
217
  phaseContextAnchor = undefined;
218
+ entryGuidanceActive = false;
133
219
  exitRequested = false;
134
220
  const activeTools = pi.getActiveTools();
221
+ runDetails = {
222
+ request: lastPrompt,
223
+ tasks: [],
224
+ classified: classifier !== undefined && !isChildSession(ctx),
225
+ completionGate: classifier !== undefined && !isChildSession(ctx),
226
+ completionChecks: 0,
227
+ completionAccepted: false,
228
+ completionMessagePending: false,
229
+ reviewRequested: false,
230
+ reviewerCallIds: new Set(),
231
+ reviewerCompleted: false,
232
+ };
135
233
  state = {
136
234
  phase: 'planning',
137
235
  run: createRunState({
@@ -157,13 +255,25 @@ function registerPrewalk(pi) {
157
255
  phaseContextAnchor = undefined;
158
256
  updateStatus(ctx);
159
257
  let target;
258
+ let targetThinking = config.targetThinking;
160
259
  if (targetModel.kind === 'tier') {
260
+ let tier = targetModel.tier;
261
+ const details = runDetails;
262
+ if (classifier !== undefined && details?.classified) {
263
+ const profile = await classifier.implementationProfile(details, ctx);
264
+ if (state.phase !== 'handoff' || plannerSnapshot !== snapshot)
265
+ return;
266
+ if (profile) {
267
+ tier = strongerTier(tier, profile.tier);
268
+ targetThinking = strongerThinking(targetThinking, profile.thinking);
269
+ }
270
+ }
161
271
  const availableModels = ctx.scopedModels.length > 0
162
272
  ? ctx.scopedModels.map(({ model }) => model)
163
273
  : ctx.modelRegistry.getAvailable();
164
274
  const plannerProvider = snapshot.model.provider.toLowerCase();
165
275
  const providerModels = availableModels.filter((model) => (model.provider.toLowerCase() === plannerProvider));
166
- const selected = selectModelForTier(targetModel.tier, providerModels, {
276
+ const selected = selectModelForTier(tier, providerModels, {
167
277
  preferredModel: snapshot.model,
168
278
  });
169
279
  target = selected?.model ?? snapshot.model;
@@ -187,7 +297,7 @@ function registerPrewalk(pi) {
187
297
  }
188
298
  }
189
299
  const targetKey = formatModelReference(target);
190
- const targetThinkingLevel = effectiveThinkingLevel(target, config.targetThinking);
300
+ const targetThinkingLevel = effectiveThinkingLevel(target, targetThinking);
191
301
  const modelAlreadyActive = sameModel(ctx.model, target);
192
302
  const plannerThinkingLevel = pi.getThinkingLevel();
193
303
  try {
@@ -453,6 +563,7 @@ function registerPrewalk(pi) {
453
563
  if (!approval.approved)
454
564
  return prewalkToolError(approval.reason);
455
565
  startRun(ctx, false);
566
+ await classifyExplorationDepth(ctx);
456
567
  const reviewText = effectivePlanReview(config) === 'ask'
457
568
  ? ` submit the plan through ${EXIT_PLAN_MODE_TOOL} for user review,`
458
569
  : '';
@@ -495,6 +606,8 @@ function registerPrewalk(pi) {
495
606
  if (state.run.taskGateRequired && !state.run.taskGraphReady) {
496
607
  return prewalkToolError('Complete the required TaskCreate and in-progress TaskUpdate calls before presenting the Prewalk plan.');
497
608
  }
609
+ if (runDetails)
610
+ runDetails.plan = params.plan;
498
611
  const reviewRun = beginPlanReview(ctx);
499
612
  if (!reviewRun) {
500
613
  return prewalkToolError('Prewalk could not enter plan review from the current state.');
@@ -581,9 +694,11 @@ function registerPrewalk(pi) {
581
694
  if (!command)
582
695
  return;
583
696
  if (!ctx.hasUI) {
697
+ lastPrompt = command;
584
698
  beginRun(ctx);
585
699
  if (state.phase !== 'planning')
586
700
  return;
701
+ await classifyExplorationDepth(ctx);
587
702
  pi.sendMessage({
588
703
  customType: HEADLESS_TASK_MESSAGE_TYPE,
589
704
  content: command,
@@ -601,11 +716,29 @@ function registerPrewalk(pi) {
601
716
  publishConfigWarning(ctx);
602
717
  updateStatus(ctx);
603
718
  });
604
- pi.on('before_agent_start', (_event, ctx) => {
605
- beginRun(ctx);
719
+ // Pi awaits before_agent_start handlers sequentially, so the entry decision
720
+ // starts at input to overlap with other extensions' pre-start classifier calls.
721
+ pi.on('input', (event, ctx) => {
722
+ if (event.streamingBehavior !== undefined || !entryClassificationEligible(ctx))
723
+ return;
724
+ startEntryClassification(event.text, ctx);
725
+ });
726
+ pi.on('before_agent_start', async (event, ctx) => {
727
+ lastPrompt = event.prompt;
728
+ if (state.phase === 'armed') {
729
+ if (startRun(ctx))
730
+ await classifyExplorationDepth(ctx);
731
+ return;
732
+ }
733
+ return applyEntryGuidance(event.prompt, ctx);
606
734
  });
607
735
  pi.on('context', (event) => {
608
- const result = buildContextMessages(event.messages, state, phaseContextAnchor);
736
+ const result = buildContextMessages(event.messages, state, phaseContextAnchor, {
737
+ ...(runDetails?.depth === undefined ? {} : { explorationDepth: runDetails.depth }),
738
+ completionGate: runDetails?.completionGate === true,
739
+ entryActive: entryGuidanceActive,
740
+ completionMessagePending: runDetails?.completionMessagePending === true,
741
+ });
609
742
  phaseContextAnchor = result.anchor;
610
743
  return { messages: result.messages };
611
744
  });
@@ -615,8 +748,17 @@ function registerPrewalk(pi) {
615
748
  state = { phase: 'planning', run: beginTurn(state.run) };
616
749
  });
617
750
  pi.on('tool_call', (event) => {
751
+ if (state.phase === 'implementing') {
752
+ if (event.toolName === 'Agent' && isRecord(event.input) && event.input.subagent_type === 'reviewer') {
753
+ runDetails?.reviewerCallIds.add(event.toolCallId);
754
+ }
755
+ return;
756
+ }
618
757
  if (state.phase !== 'planning' || !state.run)
619
758
  return;
759
+ if (event.toolName === 'TaskCreate' && runDetails && runDetails.tasks.length < MAX_RECORDED_TASKS) {
760
+ runDetails.tasks.push(describeTask(event.input));
761
+ }
620
762
  state = {
621
763
  phase: 'planning',
622
764
  run: recordToolCall(state.run, { toolCallId: event.toolCallId, toolName: event.toolName, input: event.input }),
@@ -624,7 +766,19 @@ function registerPrewalk(pi) {
624
766
  });
625
767
  pi.on('turn_end', async (event, ctx) => {
626
768
  if (state.phase === 'implementing') {
769
+ for (const result of event.toolResults) {
770
+ const details = runDetails;
771
+ if (details === undefined || !details.reviewerCallIds.delete(result.toolCallId) || result.isError)
772
+ continue;
773
+ if (!isRecord(result.details) || typeof result.details.agentId !== 'string')
774
+ continue;
775
+ details.reviewRequested = true;
776
+ details.reviewerAgentId = result.details.agentId;
777
+ details.reviewerCompleted = false;
778
+ }
627
779
  if (event.message.role === 'assistant') {
780
+ if (runDetails)
781
+ runDetails.completionMessagePending = false;
628
782
  await reportImplementationSavings(pi.savings, implementationSavingsModels, event.message);
629
783
  }
630
784
  return;
@@ -654,6 +808,41 @@ function registerPrewalk(pi) {
654
808
  }, { deliverAs: 'followUp' });
655
809
  }
656
810
  });
811
+ pi.on('agent_before_settle', async (event, ctx) => {
812
+ if (state.phase !== 'implementing' || event.outcome !== 'completed' || event.continue || event.context.pendingMessages.length > 0)
813
+ return;
814
+ const finalMessage = event.context.contextMessages.slice().reverse().find((message) => message.role === 'assistant');
815
+ if (finalMessage?.role !== 'assistant')
816
+ return;
817
+ const content = await checkCompletion(finalMessage, ctx);
818
+ if (content === undefined)
819
+ return;
820
+ if (runDetails)
821
+ runDetails.completionMessagePending = true;
822
+ return {
823
+ entries: [...event.entries, { type: 'custom_message', customType: COMPLETION_MESSAGE_TYPE, content, display: false }],
824
+ continue: true,
825
+ };
826
+ });
827
+ pi.on('message_end', (event) => {
828
+ const details = runDetails;
829
+ if (state.phase !== 'implementing' || details?.reviewerAgentId === undefined)
830
+ return;
831
+ const message = event.message;
832
+ if (message.role !== 'custom' || message.customType !== 'felan-subagent-completion')
833
+ return;
834
+ if (!isRecord(message.details))
835
+ return;
836
+ const notices = Array.isArray(message.details.notices)
837
+ ? message.details.notices
838
+ : [message.details.notice];
839
+ if (notices.some((notice) => isRecord(notice)
840
+ && notice.agentId === details.reviewerAgentId
841
+ && notice.type === 'reviewer'
842
+ && notice.status === 'completed')) {
843
+ details.reviewerCompleted = true;
844
+ }
845
+ });
657
846
  pi.on('model_select', (event, ctx) => {
658
847
  const selectedModelKey = modelKey(event.model);
659
848
  if (modelTransition?.expectedModelKey === selectedModelKey) {
@@ -699,7 +888,23 @@ function registerPrewalk(pi) {
699
888
  notify(ctx, `Prewalk cancelled after the thinking level changed to ${event.level}.`, 'warning');
700
889
  });
701
890
  pi.on('agent_settled', async (_event, ctx) => {
891
+ if (state.phase === 'idle') {
892
+ entryGuidanceActive = false;
893
+ return;
894
+ }
702
895
  if (state.phase === 'implementing' || state.phase === 'handoff') {
896
+ const details = runDetails;
897
+ if (state.phase === 'implementing' && details && !exitRequested) {
898
+ const reviewPending = details.reviewRequested && !details.reviewerCompleted;
899
+ const verificationPending = details.completionGate
900
+ ? !details.completionAccepted && !details.reviewerCompleted
901
+ : !details.reviewerCompleted;
902
+ if (reviewPending || verificationPending) {
903
+ updateStatus(ctx);
904
+ notify(ctx, reviewPending ? 'Prewalk is waiting for the reviewer completion.' : 'Prewalk verification is pending; continue the run or use /prewalk off.', 'warning');
905
+ return;
906
+ }
907
+ }
703
908
  if (config.restorePlanner && plannerSnapshot) {
704
909
  const snapshot = plannerSnapshot;
705
910
  const restored = await restorePlanner(ctx);
@@ -721,6 +926,7 @@ function registerPrewalk(pi) {
721
926
  }
722
927
  });
723
928
  pi.on('session_shutdown', async (_event, ctx) => {
929
+ pendingEntry?.controller.abort('session-shutdown');
724
930
  const targetIsActive = state.phase === 'handoff'
725
931
  || state.phase === 'implementing'
726
932
  || state.phase === 'restoring';
@@ -819,14 +1025,27 @@ function savingsModelReference(model) {
819
1025
  return { provider: model.provider, id: model.id };
820
1026
  }
821
1027
  export const createPrewalkExtension = () => registerPrewalk;
822
- function buildContextMessages(messages, state, currentAnchor) {
1028
+ function buildContextMessages(messages, state, currentAnchor, guidance) {
823
1029
  const { phase } = state;
824
1030
  const successfulControls = successfulControlCallIds(messages);
1031
+ const entryIndex = phase === 'idle' && guidance.entryActive
1032
+ ? messages.reduce((lastIndex, message, index) => (isRecord(message) && message.role === 'custom' && message.customType === ENTRY_MESSAGE_TYPE ? index : lastIndex), -1)
1033
+ : -1;
1034
+ const completionIndex = phase === 'implementing' && guidance.completionMessagePending
1035
+ ? messages.reduce((lastIndex, message, index) => (isRecord(message) && message.role === 'custom' && message.customType === COMPLETION_MESSAGE_TYPE ? index : lastIndex), -1)
1036
+ : -1;
825
1037
  const filtered = [];
826
- for (const message of structuredClone(messages)) {
1038
+ for (const [index, message] of structuredClone(messages).entries()) {
1039
+ if (isRecord(message) && message.role === 'custom' && message.customType === COMPLETION_MESSAGE_TYPE) {
1040
+ if (index === completionIndex)
1041
+ filtered.push(message);
1042
+ continue;
1043
+ }
827
1044
  if (isControlMessage(message)) {
828
1045
  if (phase === 'planning' && isCurrentContinuationMessage(message))
829
1046
  filtered.push(message);
1047
+ if (index === entryIndex)
1048
+ filtered.push(message);
830
1049
  continue;
831
1050
  }
832
1051
  if (isSuccessfulControlResult(message, successfulControls))
@@ -838,16 +1057,19 @@ function buildContextMessages(messages, state, currentAnchor) {
838
1057
  const guidedPhase = phase === 'planning' || phase === 'implementing'
839
1058
  ? phase
840
1059
  : undefined;
1060
+ const depthGuidance = guidance.explorationDepth === undefined
1061
+ ? ''
1062
+ : `\n\n${EXPLORATION_DEPTH_GUIDANCE[guidance.explorationDepth]}`;
841
1063
  const instruction = guidedPhase === 'planning'
842
1064
  ? state.run?.reviewRequired && !state.run.reviewApproved
843
- ? { customType: PLAN_REVIEW_MESSAGE_TYPE, content: PLAN_REVIEW_PLANNING_INSTRUCTION }
1065
+ ? { customType: PLAN_REVIEW_MESSAGE_TYPE, content: `${PLAN_REVIEW_PLANNING_INSTRUCTION}${depthGuidance}` }
844
1066
  : state.run?.reviewApproved
845
1067
  ? { customType: PLAN_APPROVED_MESSAGE_TYPE, content: PLAN_APPROVED_INSTRUCTION }
846
- : { customType: PLANNING_MESSAGE_TYPE, content: PLANNING_INSTRUCTION }
1068
+ : { customType: PLANNING_MESSAGE_TYPE, content: `${PLANNING_INSTRUCTION}${depthGuidance}` }
847
1069
  : guidedPhase === 'implementing'
848
1070
  ? {
849
1071
  customType: IMPLEMENTATION_MESSAGE_TYPE,
850
- content: VERIFICATION_INSTRUCTION,
1072
+ content: guidance.completionGate ? GATED_VERIFICATION_INSTRUCTION : VERIFICATION_INSTRUCTION,
851
1073
  }
852
1074
  : undefined;
853
1075
  if (guidedPhase === undefined || instruction === undefined)
@@ -906,6 +1128,18 @@ function isTextOnlyCompletion(message) {
906
1128
  && Array.isArray(message.content)
907
1129
  && !message.content.some((content) => isRecord(content) && content.type === 'toolCall');
908
1130
  }
1131
+ function assistantText(message) {
1132
+ return message.content
1133
+ .flatMap((part) => part.type === 'text' ? [part.text] : [])
1134
+ .join('\n');
1135
+ }
1136
+ function describeTask(input) {
1137
+ if (!isRecord(input))
1138
+ return '';
1139
+ const title = typeof input.title === 'string' ? input.title : '';
1140
+ const criteria = typeof input.acceptance_criteria === 'string' ? ` — ${input.acceptance_criteria}` : '';
1141
+ return `${title}${criteria}`.slice(0, 500);
1142
+ }
909
1143
  function isControlMessage(message) {
910
1144
  return isRecord(message)
911
1145
  && message.role === 'custom'
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
@@ -6,8 +6,19 @@ export declare const PLAN_APPROVED_MESSAGE_TYPE = "pi-prewalk:plan-approved";
6
6
  export declare const CONTINUATION_MESSAGE_TYPE = "pi-prewalk:continuation";
7
7
  export declare const MAX_AUTOMATIC_CONTINUATIONS = 3;
8
8
  export declare const CONTINUATION_INSTRUCTION = "Continue from the existing findings and task progress without repeating prior analysis. Take the next required tool action and follow the current phase guidance.";
9
- 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.";
10
- export declare const PLAN_REVIEW_PLANNING_INSTRUCTION = "Explore the repository thoroughly and determine the complete work required for the user's request without modifying the repository.\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. Call exit_plan_mode with the concise numbered plan as its plan argument. Call it as the only tool in the response and do not print the plan separately. The tool will present the plan and collect approval, feedback, or cancellation. Do not edit files or otherwise mutate the repository before approval.\n\nKeep the plan focused on the requested scope and revise the task graph when repository evidence changes the plan.";
9
+ export declare const PLANNING_INSTRUCTION = "Determine the complete work required for the user's request. Build on findings already in the conversation and inspect only what is still missing.\n\nFollow this order:\n1. Inspect the relevant source, tests, configuration, documentation, and constraints that the conversation does not already cover.\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.";
10
+ export declare const PLAN_REVIEW_PLANNING_INSTRUCTION = "Determine the complete work required for the user's request without modifying the repository. Build on findings already in the conversation and inspect only what is still missing.\n\nFollow this order:\n1. Inspect the relevant source, tests, configuration, documentation, and constraints that the conversation does not already cover.\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. Call exit_plan_mode with the concise numbered plan as its plan argument. Call it as the only tool in the response and do not print the plan separately. The tool will present the plan and collect approval, feedback, or cancellation. Do not edit files or otherwise mutate the repository before approval.\n\nKeep the plan focused on the requested scope and revise the task graph when repository evidence changes the plan.";
11
11
  export declare const PLAN_APPROVED_INSTRUCTION = "The user approved the plan supplied to exit_plan_mode. Continue from the claimed task and make one focused repository mutation that establishes the implementation direction. Keep the task graph current and proceed with the approved scope.";
12
- 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.";
12
+ 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.\n\nPrewalk requires an independent review of the implementation. After every task is complete and verification passes, launch one Agent with subagent_type reviewer at the high tier. Ask it to compare the complete change with the user's request, the approved plan, and the task acceptance criteria, and to report incorrect or unverified behavior, fabricated results, skipped scope, security issues, and regressions. Give it the changed files, the diff command, and the verification commands you ran. Do not claim the work is complete while the review is pending; end with a short status that names the pending review. The review completion notice resumes the session so its findings can be resolved.";
13
+ export declare const GATED_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.\n\nWhen every task is complete and verification passes, finish with a concise summary of the changes and the verification commands with their results. An automatic completion check then decides whether more work or an independent review is needed, so do not launch a reviewer unless the user asked for one.";
14
+ export declare const COMPLETION_MESSAGE_TYPE = "prewalk-completion-check";
15
+ export declare const COMPLETION_GAP_INSTRUCTION = "The automatic completion check found that the request is not fully satisfied. Compare the result with the user's request, the approved plan, and every task's acceptance criteria; complete any missing or unverified work, run the relevant verification after the last change, and finish with a concise summary of the changes and verification results.";
16
+ export declare const COMPLETION_REVIEW_INSTRUCTION = "The automatic completion check could not confirm that the work is complete. To decide, launch one Agent with subagent_type reviewer at the high tier. Ask it to compare the complete change with the user's request, the approved plan, and the task acceptance criteria, and to report incorrect or unverified behavior, fabricated results, skipped scope, security issues, and regressions. Give it the changed files, the diff command, and the verification commands you ran. Do not claim the work is complete while the review is pending; end with a short status that names the pending review. The review completion notice resumes the session so its findings can be resolved.";
17
+ export declare const ENTRY_MESSAGE_TYPE = "pi-prewalk:entry";
18
+ export declare const ENTRY_GUIDANCE = "This request is complex repository work that benefits from Prewalk. Call `enter_prewalk` as the only tool call in your next response, before exploring or changing files. If entry is declined, continue on the regular path.";
19
+ export declare const EXPLORATION_DEPTH_GUIDANCE: {
20
+ readonly sufficient: "Exploration depth: sufficient. The conversation already covers what this plan needs. Plan from those findings, do not re-explore, and inspect only the specific facts you will change.";
21
+ readonly targeted: "Exploration depth: targeted. Inspect the specific missing files and symbols yourself; do not launch discovery subagents.";
22
+ readonly deep: "Exploration depth: deep. The relevant surface is broad and largely unexplored. Delegate discovery to `explore` children with bounded, disjoint, read-only questions and a requested summary format. While they run, do not read the delegated scopes yourself; yield until their completion notices arrive. Then verify the facts you rely on and inspect the critical-path files yourself.";
23
+ };
13
24
  //# 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,wBAAwB,2BAAyC,CAAC;AAC/E,eAAO,MAAM,0BAA0B,6BAA2C,CAAC;AACnF,eAAO,MAAM,yBAAyB,4BAA0C,CAAC;AACjF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,eAAO,MAAM,wBAAwB,sKAAsK,CAAC;AAE5M,eAAO,MAAM,oBAAoB,+lCAS2F,CAAC;AAE7H,eAAO,MAAM,gCAAgC,wsCASqE,CAAC;AAEnH,eAAO,MAAM,yBAAyB,mPAAmP,CAAC;AAE1R,eAAO,MAAM,wBAAwB,iWAAiW,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,wBAAwB,2BAAyC,CAAC;AAC/E,eAAO,MAAM,0BAA0B,6BAA2C,CAAC;AACnF,eAAO,MAAM,yBAAyB,4BAA0C,CAAC;AACjF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,eAAO,MAAM,wBAAwB,sKAAsK,CAAC;AAE5M,eAAO,MAAM,oBAAoB,4rCAS2F,CAAC;AAE7H,eAAO,MAAM,gCAAgC,qyCASqE,CAAC;AAEnH,eAAO,MAAM,yBAAyB,mPAAmP,CAAC;AAM1R,eAAO,MAAM,wBAAwB,4hCAEmG,CAAC;AAEzI,eAAO,MAAM,8BAA8B,opBAEqQ,CAAC;AAEjT,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,eAAO,MAAM,0BAA0B,gWAAgW,CAAC;AAExY,eAAO,MAAM,6BAA6B,+pBAA+G,CAAC;AAE1J,eAAO,MAAM,kBAAkB,qBAAmC,CAAC;AAEnE,eAAO,MAAM,cAAc,kOAAoO,CAAC;AAEhQ,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC"}
package/dist/prompts.js CHANGED
@@ -6,20 +6,20 @@ export const PLAN_APPROVED_MESSAGE_TYPE = `${CONTROL_MESSAGE_PREFIX}plan-approve
6
6
  export const CONTINUATION_MESSAGE_TYPE = `${CONTROL_MESSAGE_PREFIX}continuation`;
7
7
  export const MAX_AUTOMATIC_CONTINUATIONS = 3;
8
8
  export const CONTINUATION_INSTRUCTION = `Continue from the existing findings and task progress without repeating prior analysis. Take the next required tool action and follow the current phase guidance.`;
9
- export const PLANNING_INSTRUCTION = `Explore the repository thoroughly and determine the complete work required for the user's request.
9
+ export const PLANNING_INSTRUCTION = `Determine the complete work required for the user's request. Build on findings already in the conversation and inspect only what is still missing.
10
10
 
11
11
  Follow this order:
12
- 1. Inspect the relevant source, tests, configuration, documentation, and constraints.
12
+ 1. Inspect the relevant source, tests, configuration, documentation, and constraints that the conversation does not already cover.
13
13
  2. Determine the full implementation scope, affected files and symbols, risks, and verification required.
14
14
  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.
15
15
  4. Use TaskUpdate to claim the first ready task by setting it in_progress.
16
16
  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.
17
17
 
18
18
  Keep the implementation focused on the requested scope and revise the task graph when repository evidence changes the plan.`;
19
- export const PLAN_REVIEW_PLANNING_INSTRUCTION = `Explore the repository thoroughly and determine the complete work required for the user's request without modifying the repository.
19
+ export const PLAN_REVIEW_PLANNING_INSTRUCTION = `Determine the complete work required for the user's request without modifying the repository. Build on findings already in the conversation and inspect only what is still missing.
20
20
 
21
21
  Follow this order:
22
- 1. Inspect the relevant source, tests, configuration, documentation, and constraints.
22
+ 1. Inspect the relevant source, tests, configuration, documentation, and constraints that the conversation does not already cover.
23
23
  2. Determine the full implementation scope, affected files and symbols, risks, and verification required.
24
24
  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.
25
25
  4. Use TaskUpdate to claim the first ready task by setting it in_progress.
@@ -27,5 +27,22 @@ Follow this order:
27
27
 
28
28
  Keep the plan focused on the requested scope and revise the task graph when repository evidence changes the plan.`;
29
29
  export const PLAN_APPROVED_INSTRUCTION = `The user approved the plan supplied to exit_plan_mode. Continue from the claimed task and make one focused repository mutation that establishes the implementation direction. Keep the task graph current and proceed with the approved scope.`;
30
- 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.`;
30
+ const IMPLEMENTATION_BASE = `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.`;
31
+ const REVIEWER_REQUEST = `launch one Agent with subagent_type reviewer at the high tier. Ask it to compare the complete change with the user's request, the approved plan, and the task acceptance criteria, and to report incorrect or unverified behavior, fabricated results, skipped scope, security issues, and regressions. Give it the changed files, the diff command, and the verification commands you ran. Do not claim the work is complete while the review is pending; end with a short status that names the pending review. The review completion notice resumes the session so its findings can be resolved.`;
32
+ export const VERIFICATION_INSTRUCTION = `${IMPLEMENTATION_BASE}
33
+
34
+ Prewalk requires an independent review of the implementation. After every task is complete and verification passes, ${REVIEWER_REQUEST}`;
35
+ export const GATED_VERIFICATION_INSTRUCTION = `${IMPLEMENTATION_BASE}
36
+
37
+ When every task is complete and verification passes, finish with a concise summary of the changes and the verification commands with their results. An automatic completion check then decides whether more work or an independent review is needed, so do not launch a reviewer unless the user asked for one.`;
38
+ export const COMPLETION_MESSAGE_TYPE = 'prewalk-completion-check';
39
+ export const COMPLETION_GAP_INSTRUCTION = `The automatic completion check found that the request is not fully satisfied. Compare the result with the user's request, the approved plan, and every task's acceptance criteria; complete any missing or unverified work, run the relevant verification after the last change, and finish with a concise summary of the changes and verification results.`;
40
+ export const COMPLETION_REVIEW_INSTRUCTION = `The automatic completion check could not confirm that the work is complete. To decide, ${REVIEWER_REQUEST}`;
41
+ export const ENTRY_MESSAGE_TYPE = `${CONTROL_MESSAGE_PREFIX}entry`;
42
+ export const ENTRY_GUIDANCE = `This request is complex repository work that benefits from Prewalk. Call \`enter_prewalk\` as the only tool call in your next response, before exploring or changing files. If entry is declined, continue on the regular path.`;
43
+ export const EXPLORATION_DEPTH_GUIDANCE = {
44
+ sufficient: `Exploration depth: sufficient. The conversation already covers what this plan needs. Plan from those findings, do not re-explore, and inspect only the specific facts you will change.`,
45
+ targeted: `Exploration depth: targeted. Inspect the specific missing files and symbols yourself; do not launch discovery subagents.`,
46
+ deep: `Exploration depth: deep. The relevant surface is broad and largely unexplored. Delegate discovery to \`explore\` children with bounded, disjoint, read-only questions and a requested summary format. While they run, do not read the delegated scopes yourself; yield until their completion notices arrive. Then verify the facts you rely on and inspect the critical-path files yourself.`,
47
+ };
31
48
  //# 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,wBAAwB,GAAG,GAAG,sBAAsB,aAAa,CAAC;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,sBAAsB,eAAe,CAAC;AACnF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,sBAAsB,cAAc,CAAC;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,mKAAmK,CAAC;AAE5M,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;4HASwF,CAAC;AAE7H,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;kHASkE,CAAC;AAEnH,MAAM,CAAC,MAAM,yBAAyB,GAAG,gPAAgP,CAAC;AAE1R,MAAM,CAAC,MAAM,wBAAwB,GAAG,8VAA8V,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,wBAAwB,GAAG,GAAG,sBAAsB,aAAa,CAAC;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,sBAAsB,eAAe,CAAC;AACnF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,sBAAsB,cAAc,CAAC;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,mKAAmK,CAAC;AAE5M,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;4HASwF,CAAC;AAE7H,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;kHASkE,CAAC;AAEnH,MAAM,CAAC,MAAM,yBAAyB,GAAG,gPAAgP,CAAC;AAE1R,MAAM,mBAAmB,GAAG,8VAA8V,CAAC;AAE3X,MAAM,gBAAgB,GAAG,qkBAAqkB,CAAC;AAE/lB,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,mBAAmB;;sHAEwD,gBAAgB,EAAE,CAAC;AAEzI,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,mBAAmB;;gTAE4O,CAAC;AAEjT,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,0BAA0B,GAAG,6VAA6V,CAAC;AAExY,MAAM,CAAC,MAAM,6BAA6B,GAAG,0FAA0F,gBAAgB,EAAE,CAAC;AAE1J,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,sBAAsB,OAAO,CAAC;AAEnE,MAAM,CAAC,MAAM,cAAc,GAAG,iOAAiO,CAAC;AAEhQ,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,UAAU,EAAE,wLAAwL;IACpM,QAAQ,EAAE,0HAA0H;IACpI,IAAI,EAAE,+XAA+X;CAC7X,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@felan-ai/ext-prewalk",
3
- "version": "0.8.1",
3
+ "version": "0.8.4",
4
4
  "description": "Same-session planner-to-implementation model handoff for Felan",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,7 +25,7 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@earendil-works/pi-tui": "0.87.0",
28
+ "@earendil-works/pi-tui": "0.87.1",
29
29
  "typebox": "1.1.38"
30
30
  },
31
31
  "peerDependencies": {
@@ -33,7 +33,7 @@
33
33
  "@felan-ai/ext-tasks": "^0.4.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@felan-ai/agent-core": "0.9.0"
36
+ "@felan-ai/agent-core": "0.9.2"
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public",