@felan-ai/ext-prewalk 0.9.2 → 0.10.0

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,8 +1,8 @@
1
1
  # @felan-ai/ext-prewalk
2
2
 
3
- Same-session Prewalk for Felan's complex repository work: the current model explores and plans the work in the session task graph, optionally submits that plan for user review, then makes one focused mutation after approval. Felan switches the next model request to the `low` model tier at exact `medium` thinking by default, which finishes and verifies the task with the full conversation and tool history intact. Tier resolution stays on the planner's provider and prefers that provider's matching model family. If the planner provider has no model in the target tier, Prewalk keeps the planner model and only applies the configured implementation thinking level. An explicit `provider/model-id` target may still cross providers.
3
+ Same-session Prewalk for Felan's complex repository work: approved entry establishes a capable same-provider high-effort planner, which explores and plans the work in the session task graph, optionally submits that plan for user review, then makes one focused mutation after approval. Felan switches the next model request to the `low` model tier at exact `medium` thinking by default, which finishes and verifies the task with the full conversation and tool history intact. Tier resolution stays on the planner's provider and prefers that provider's matching model family. If the planner provider has no model in the target tier, Prewalk keeps the planner model and only applies the configured implementation thinking level. An explicit `provider/model-id` target may still cross providers.
4
4
 
5
- After the run settles, Prewalk restores the original planner model and thinking level by default. All of these automated changes are scoped to the active session and do not change the user's or project's default model or thinking preference.
5
+ After the run settles, Prewalk restores the original pre-entry model and thinking level by default. All of these automated changes are scoped to the active session and do not change the user's or project's default model or thinking preference.
6
6
 
7
7
  When a savings reporter is available, Prewalk reports each implementation turn as a `model-routing` saving. The observed target-model usage is the actual outcome; the estimated planner-model baseline uses two thirds of each observed input, output, and cache token class (rounded to whole tokens). The host prices both outcomes and records the dollar difference as estimated savings. Planning turns, same-model handoffs, and failed or aborted turns are not reported. Savings reporting is optional and never interrupts the Prewalk lifecycle.
8
8
 
@@ -10,7 +10,7 @@ For complex repository work that benefits from substantial exploration, coordina
10
10
 
11
11
  ## Requirements
12
12
 
13
- - An authenticated planner model. A same-provider model in the configured target tier is used when available; otherwise Prewalk keeps the planner model and reduces thinking. An explicit target requires that exact authenticated model
13
+ - An authenticated, scoped high/xhigh planner model on the current provider supporting high effort or above. A same-provider model in the configured target tier is used when available; otherwise Prewalk keeps the planner model and applies the configured implementation effort. An explicit target requires that exact authenticated model
14
14
  - At least one explicit mutation tool: Pi's `edit` or `write`, or the Codex extension's `apply_patch`
15
15
 
16
16
  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. When both `TaskCreate` and `TaskUpdate` are active, handoff also waits for successful task creation and an in-progress task claim; if those tools are unavailable, mutation-only handoff remains available. Prewalk does not inspect `TaskList`, `TaskGet`, todo, or Beads activity.
@@ -26,7 +26,7 @@ Prewalk refuses to arm when no explicit mutation tool is active. Shell tools suc
26
26
  /prewalk cancel Alias for exit
27
27
  ```
28
28
 
29
- `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.
29
+ `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 active inference defers original-selection restoration until the run settles; exiting while idle restores immediately. Exit does not trigger an implementation handoff, and 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.
30
30
 
31
31
  ## Model entry tool
32
32
 
@@ -56,7 +56,7 @@ In modes without interactive input, `exit_plan_mode` auto-approves an `ask` revi
56
56
 
57
57
  ## Lifecycle
58
58
 
59
- 1. The planner builds on findings already in the conversation, inspects what is still missing, and determines the complete implementation scope.
59
+ 1. Approved entry establishes a capable high-effort planner before planning inference. It 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`
@@ -64,7 +64,7 @@ In modes without interactive input, `exit_plan_mode` auto-approves an `ask` revi
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
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.
67
+ 7. Once the work is verified and any required reviewer has returned, Felan restores the original pre-entry 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
 
@@ -78,8 +78,8 @@ remain transient, stable-position context messages.
78
78
 
79
79
  ## Classifier guidance
80
80
 
81
- When the host runtime provides a classifier, root-session Prewalk runs make four
82
- choice decisions through its unified `classify` operation. Each uses bounded state: the request, up to 24 recent
81
+ When the host runtime provides a classifier, root-session Prewalk contributes entry and conditional planner-profile questions
82
+ to the shared root pass, with separate later workflow decisions. Each uses bounded state: the request, up to 24 recent
83
83
  conversation items, up to 40 recent tool calls with short inputs and error
84
84
  flags, the submitted plan, and recorded `TaskCreate` titles and acceptance
85
85
  criteria.
@@ -88,20 +88,25 @@ session evidence; Prewalk retains its own task and verification judgments.
88
88
 
89
89
  - **Entry:** Classification starts on Pi's `input` event for idle turns when
90
90
  `enter_prewalk` and a mutation tool are active and `entryApproval` is not
91
- `deny`. Agent Core's managed shared root-turn preflight may expire before the answer; in
91
+ `deny`. Agent Core's registered shared root-turn preflight may expire before the answer; in
92
92
  that case no entry guidance is added. If the request should use Prewalk, a
93
93
  hidden conversation message
94
94
  tells the model to call `enter_prewalk` before exploring. It does not change
95
95
  the system prompt; the message is removed from subsequent model context.
96
96
  The tool stays available and entry approval is unchanged.
97
+ - **Planner profile:** Conditional on entry, choose among authenticated, scoped
98
+ same-provider high/xhigh model profiles with supported high/xhigh/max effort.
99
+ Approved entry validates the selection again; absent an answer, it uses a
100
+ deterministic capable profile. Missing capabilities refuse entry explicitly.
97
101
  - **Exploration depth:** When a run starts from `enter_prewalk` or `/prewalk`,
98
102
  the classifier judges how much the session already covers. The result appends
99
103
  one sentence to the planning guidance: `sufficient` (plan from existing
100
104
  findings), `targeted` (inspect specific missing files), or `deep` (delegate
101
105
  discovery to `explore` children and wait for their summaries).
102
- - **Implementation profile:** For tier targets, the classifier may raise the
103
- configured tier and thinking level based on the plan and tasks. It never
104
- lowers them. Exact model targets are unchanged.
106
+ - **Implementation advice:** For tier targets, the classifier can recommend
107
+ requirements from the approved plan and tasks. A stronger recommendation is
108
+ reported, but targetModel/targetThinking remain authoritative. Exact model
109
+ targets retain their existing path.
105
110
  - **Completion:** Implementation guidance asks for a concise summary with the
106
111
  verification results instead of a mandatory review. Once the agent run is
107
112
  ready to settle, the classifier judges its final assistant response and
@@ -116,33 +121,38 @@ session evidence; Prewalk retains its own task and verification judgments.
116
121
  as done. A `done` decision is accepted only when session activity shows a
117
122
  successful verification after the last successful mutation; the classifier
118
123
  receives bounded tool outcome metadata, not raw command output. Prewalk
119
- waits only for actual pending reviewers. Completed, cancelled, and failed
120
- reviewers are terminal; after they finish, the next normal final response
121
- receives a fresh completion check. Cancellation or failure is not proof of
122
- verification and never automatically requests a replacement reviewer.
123
- Inconclusive reassessment leaves verification pending, not reviewer waiting;
124
- an explicit user continuation permits another check, or `/prewalk off` exits.
125
- Successful review alone does not bypass the classifier's verification check.
124
+ waits only for actual pending reviewers. A successful reviewer is terminal,
125
+ but review completion alone is not proof of verification: the next normal
126
+ final response receives a fresh completion check. If that post-review check
127
+ is inconclusive or fails, Prewalk exits at settlement with a warning that
128
+ automatic verification could not confirm completion; this is not a success
129
+ claim. A cancelled or failed review is not proof of verification and never
130
+ automatically requests a replacement reviewer; Prewalk remains available
131
+ for explicit verification or `/prewalk off`.
126
132
  If the classifier requests more work, the hidden message continues the same
127
133
  run before settlement and is removed from model context after the next
128
134
  assistant turn.
129
135
 
130
- A missing classifier leaves model judgment and the configured defaults in
131
- place; a failed entry, depth, or profile decision likewise adds no guidance or
132
- escalation. Decisions are logged under the
133
- `prewalk-classifier` component without request text.
136
+ A missing classifier leaves model judgment, capable static planning and the
137
+ configured implementation target in place. Failed entry/depth decisions add no
138
+ optional guidance; implementation advice never escalates the configured target.
139
+ Entry/profile answers are logged in the shared `turn-classification` record;
140
+ later decisions use `prewalk-classifier`, without request text.
134
141
 
135
142
  ## Thinking levels
136
143
 
137
- The planner keeps its current thinking level while exploring. The implementation
144
+ Planning uses a capable high-effort profile; static fallback preserves higher
145
+ current effort when supported. Temporary selection ownership prevents ordinary
146
+ dynamic thinking from competing with active planning or implementation. The implementation
138
147
  handoff requests exact `medium` thinking by default, rather than carrying a
139
148
  planner's potentially expensive `max` effort to the cheaper target. The request
140
149
  is clamped by Pi to the target model's supported levels, so a non-reasoning
141
150
  model receives `off`. Configure another target level when the task needs a
142
151
  different quality/cost balance. A same-model target with a different effective
143
152
  level is still a real effort handoff; only matching model and effective effort
144
- are a no-op. After the run settles, Prewalk restores the planner model before
145
- restoring its exact original thinking level.
153
+ are a no-op. After the run settles, Prewalk restores the original pre-entry model before its original thinking
154
+ level. Internal automated changes do not permanently pin dynamic thinking; manual
155
+ model/effort choices remain authoritative.
146
156
 
147
157
  ## Subagents
148
158
 
@@ -1,4 +1,4 @@
1
- import { type ExtensionContext, type FelanExtensionAPI, type FelanThinkingLevel, type ModelTier } from '@felan-ai/agent-core';
1
+ import { type ClassifierChoiceQuestion, type ExtensionContext, type FelanExtensionAPI, type FelanThinkingLevel, type ModelTier } from '@felan-ai/agent-core';
2
2
  export type ExplorationDepth = 'sufficient' | 'targeted' | 'deep';
3
3
  export type CompletionVerdict = 'done' | 'gap' | 'unsure';
4
4
  export type ImplementationTier = Extract<ModelTier, 'low' | 'medium' | 'high'>;
@@ -13,11 +13,11 @@ export interface RunContext {
13
13
  tasks: readonly string[];
14
14
  }
15
15
  export interface PrewalkClassifier {
16
- needsPrewalk(request: string, ctx: ExtensionContext, signal?: AbortSignal): Promise<boolean>;
17
16
  explorationDepth(run: RunContext, ctx: ExtensionContext): Promise<ExplorationDepth | undefined>;
18
17
  implementationProfile(run: RunContext, ctx: ExtensionContext): Promise<ImplementationProfile | undefined>;
19
18
  completion(run: RunContext, finalMessage: string, ctx: ExtensionContext): Promise<CompletionVerdict | undefined>;
20
19
  }
20
+ export declare const ENTRY_QUESTIONS: Readonly<Record<string, ClassifierChoiceQuestion>>;
21
21
  export declare function createPrewalkClassifier(pi: FelanExtensionAPI): PrewalkClassifier | undefined;
22
22
  export declare function strongerTier(configured: ModelTier, chosen: ImplementationTier): ModelTier;
23
23
  export declare function strongerThinking(configured: FelanThinkingLevel, chosen: ImplementationThinking): FelanThinkingLevel;
@@ -1 +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,EAEf,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,CA8D5F;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"}
1
+ {"version":3,"file":"classification.d.ts","sourceRoot":"","sources":["../src/classification.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAEf,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,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;AASD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAS9E,CAAC;AA+CF,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CA0D5F;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"}
@@ -5,7 +5,7 @@ const MAX_TOOL_ACTIVITY = 40;
5
5
  const MAX_TOOL_INPUT = 160;
6
6
  const MAX_PLAN_TEXT = 6_000;
7
7
  const MAX_FINAL_MESSAGE = 3_000;
8
- const ENTRY_QUESTIONS = {
8
+ export const ENTRY_QUESTIONS = {
9
9
  route: {
10
10
  type: 'choice',
11
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?',
@@ -86,10 +86,6 @@ export function createPrewalkClassifier(pi) {
86
86
  }
87
87
  }
88
88
  return {
89
- async needsPrewalk(request, ctx, signal) {
90
- const choices = await ask('entry', { request, session: snapshotSession(ctx) }, ENTRY_QUESTIONS, ctx, signal);
91
- return choices?.route === 'prewalk';
92
- },
93
89
  async explorationDepth(run, ctx) {
94
90
  const choices = await ask('exploration-depth', runState(run, ctx), DEPTH_QUESTIONS, ctx);
95
91
  return choices?.depth;
@@ -1 +1 @@
1
- {"version":3,"file":"classification.js","sourceRoot":"","sources":["../src/classification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classification.js","sourceRoot":"","sources":["../src/classification.ts"],"names":[],"mappings":"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"}
@@ -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;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;AAmpCH,eAAO,MAAM,sBAAsB,QAAO,cAAiC,CAAC;AA2P5E,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,EAgBL,KAAK,cAAc,EAKpB,MAAM,sBAAsB,CAAC;AA2D9B,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;AAmtCH,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 { isChildSession, createPrewalkClassifier, strongerThinking, strongerTier, } from './classification.js';
3
+ import { plannerProfiles } from './planner-profile.js';
4
+ import { isChildSession, ENTRY_QUESTIONS, createPrewalkClassifier, strongerThinking, strongerTier, } from './classification.js';
4
5
  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';
5
6
  import { beginTurn, createRunState, recordToolCall, reduceTurn, validateArmingTools, } from './state.js';
6
7
  import { APPROVE_PLAN_OPTION, CANCEL_PREWALK_OPTION, FEEDBACK_PLAN_OPTION, presentPlanReview, } from './plan-review.js';
@@ -52,15 +53,34 @@ function registerPrewalk(pi) {
52
53
  let exitRequested = false;
53
54
  let modelTransition;
54
55
  let handoffPromise;
56
+ let promotionPromise;
55
57
  let restorationPromise;
56
58
  let phaseContextAnchor;
57
59
  let implementationSavingsModels;
58
60
  let internalThinkingChange = false;
59
61
  const classifier = createPrewalkClassifier(pi);
60
- let pendingEntry;
62
+ let entryProfile;
63
+ let preparedProfiles = [];
64
+ let releaseSelection;
65
+ let activePlanner;
61
66
  let entryGuidanceActive = false;
62
67
  let lastPrompt = '';
63
68
  let runDetails;
69
+ let selectionContext;
70
+ pi.selectionAutomation?.onManualThinkingSelection(() => {
71
+ if (modelTransition) {
72
+ modelTransition.externalThinkingLevel = pi.getThinkingLevel();
73
+ return;
74
+ }
75
+ if (state.phase === 'idle') {
76
+ entryProfile = undefined;
77
+ return;
78
+ }
79
+ if (selectionContext) {
80
+ clearAutomation(selectionContext);
81
+ notify(selectionContext, `Prewalk cancelled after a manual thinking selection of ${pi.getThinkingLevel()}.`, 'warning');
82
+ }
83
+ });
64
84
  function refreshConfig() {
65
85
  config = pi.config;
66
86
  targetModel = parseTargetModel(config.targetModel);
@@ -93,6 +113,10 @@ function registerPrewalk(pi) {
93
113
  notify(ctx, `Prewalk: ${state.phase} | target ${targetModel.key} | target thinking ${config.targetThinking} | restore planner ${config.restorePlanner ? 'on' : 'off'} | model entry ${config.entryApproval} | plan review ${config.planReview} (${effectivePlanReview(config)})${planner}${exit}`);
94
114
  }
95
115
  function clearAutomation(ctx) {
116
+ releaseSelection?.();
117
+ releaseSelection = undefined;
118
+ activePlanner = undefined;
119
+ entryProfile = undefined;
96
120
  state = { phase: 'idle' };
97
121
  plannerSnapshot = undefined;
98
122
  phaseContextAnchor = undefined;
@@ -112,31 +136,42 @@ function registerPrewalk(pi) {
112
136
  && validateArmingTools(activeTools).ok
113
137
  && !isChildSession(ctx);
114
138
  }
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) {
139
+ pi.turnClassification?.register({
140
+ id: 'prewalk',
141
+ prepare(_input, ctx) {
142
+ entryProfile = undefined;
143
+ preparedProfiles = [];
144
+ if (isChildSession(ctx) || (state.phase !== 'armed' && !entryClassificationEligible(ctx)))
145
+ return undefined;
146
+ preparedProfiles = plannerProfiles(ctx, pi.getThinkingLevel());
147
+ const questions = state.phase === 'armed' ? {} : { ...ENTRY_QUESTIONS };
148
+ if (preparedProfiles.length > 1) {
149
+ questions.planner = {
150
+ type: 'choice',
151
+ instructions: 'Assuming `request` enters Prewalk, select the capable planning model/effort profile from `extensions.prewalk.profiles`. Use high effort for complex planning; stronger effort or models are for unusually difficult architecture, security or debugging. This is independent of the regular-path effort answer.',
152
+ criteria: Object.fromEntries(preparedProfiles.map((profile, index) => [`p${index}`,
153
+ `${profile.tier} model ${profile.model.provider}/${profile.model.id} at ${profile.thinking} thinking`])),
154
+ };
155
+ }
156
+ if (!Object.keys(questions).length)
157
+ return undefined;
158
+ return { questions, state: { profiles: preparedProfiles.map((profile, index) => ({
159
+ key: `p${index}`, model: formatModelReference(profile.model), tier: profile.tier, thinking: profile.thinking,
160
+ })) } };
161
+ },
162
+ });
163
+ async function applyEntryGuidance(prompt, imageCount, ctx) {
127
164
  entryGuidanceActive = false;
128
- if (!entryClassificationEligible(ctx)) {
129
- pendingEntry?.controller.abort('ineligible');
130
- pendingEntry = undefined;
165
+ if (state.phase !== 'armed' && !entryClassificationEligible(ctx))
131
166
  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')
167
+ const result = await pi.turnClassification?.result('prewalk', { prompt, imageCount }, ctx);
168
+ const profile = result?.answers.planner;
169
+ if (profile?.type === 'choice')
170
+ entryProfile = preparedProfiles[Number(profile.choice.slice(1))];
171
+ if (state.phase === 'armed')
172
+ return;
173
+ const route = result?.answers.route;
174
+ if (route?.type !== 'choice' || route.choice !== 'prewalk' || state.phase !== 'idle')
140
175
  return;
141
176
  entryGuidanceActive = true;
142
177
  return { message: { customType: ENTRY_MESSAGE_TYPE, content: ENTRY_GUIDANCE, display: false } };
@@ -169,8 +204,14 @@ function registerPrewalk(pi) {
169
204
  details.completionAccepted = verdict === 'done';
170
205
  const reviewNeeded = verdict !== 'done' && (verdict !== 'gap' || details.completionChecks >= MAX_COMPLETION_CHECKS);
171
206
  if (reviewNeeded) {
172
- if (details.reviewRequested)
207
+ if (details.reviewRequested) {
208
+ const reviewers = [...details.reviewers.values()];
209
+ if (reviewers.length > 0 && reviewers.every(status => status === 'completed')) {
210
+ exitRequested = true;
211
+ notify(ctx, 'Prewalk exited after the completed review; automatic verification could not confirm completion.', 'warning');
212
+ }
173
213
  return;
214
+ }
174
215
  details.completionChecks = MAX_COMPLETION_CHECKS;
175
216
  details.reviewRequested = true;
176
217
  }
@@ -208,11 +249,23 @@ function registerPrewalk(pi) {
208
249
  notify(ctx, `Prewalk armed. The next task will plan, ${planningSteps}, then hand off to ${targetModel.key} at ${config.targetThinking} thinking.`);
209
250
  return true;
210
251
  }
211
- function startRun(ctx, handoffArmed = true) {
252
+ async function startRun(ctx, handoffArmed = true) {
212
253
  if (!ctx.model) {
213
254
  failAutomation(ctx, 'Prewalk requires a selected planner model.');
214
255
  return false;
215
256
  }
257
+ const profiles = plannerProfiles(ctx, pi.getThinkingLevel());
258
+ const selected = profiles.find(profile => entryProfile && sameModel(profile.model, entryProfile.model)
259
+ && profile.thinking === entryProfile.thinking) ?? profiles[0];
260
+ if (!selected) {
261
+ failAutomation(ctx, 'Prewalk requires an authenticated, scoped high-capability model supporting high planning effort on the current provider. Continue without Prewalk.');
262
+ return false;
263
+ }
264
+ if (pi.selectionAutomation?.owner) {
265
+ failAutomation(ctx, 'Prewalk cannot enter while another workflow owns model selection.');
266
+ return false;
267
+ }
268
+ releaseSelection = pi.selectionAutomation?.acquire('@felan-ai/ext-prewalk');
216
269
  plannerSnapshot = {
217
270
  model: ctx.model,
218
271
  modelKey: modelKey(ctx.model),
@@ -243,14 +296,41 @@ function registerPrewalk(pi) {
243
296
  reviewRequired: effectivePlanReview(config) === 'ask',
244
297
  }),
245
298
  };
299
+ const snapshot = plannerSnapshot;
300
+ try {
301
+ if (!sameModel(ctx.model, selected.model)) {
302
+ const promotion = setModelPreservingExternalSelection(selected.model, ctx);
303
+ promotionPromise = promotion;
304
+ let transition;
305
+ try {
306
+ transition = await promotion;
307
+ }
308
+ finally {
309
+ if (promotionPromise === promotion)
310
+ promotionPromise = undefined;
311
+ }
312
+ if (plannerSnapshot !== snapshot || state.phase !== 'planning')
313
+ return false;
314
+ if (!transition.switched)
315
+ throw new Error('planning model selection failed');
316
+ if (transition.externalModel || transition.externalThinkingLevel !== undefined) {
317
+ clearAutomation(ctx);
318
+ return false;
319
+ }
320
+ }
321
+ if (pi.getThinkingLevel() !== selected.thinking)
322
+ setThinkingLevelInternally(selected.thinking);
323
+ activePlanner = selected.model;
324
+ }
325
+ catch (error) {
326
+ if (plannerSnapshot === snapshot)
327
+ await restorePlanner(ctx);
328
+ notify(ctx, `Prewalk planning promotion failed: ${errorMessage(error)}`, 'error');
329
+ return false;
330
+ }
246
331
  updateStatus(ctx);
247
332
  return true;
248
333
  }
249
- function beginRun(ctx) {
250
- if (state.phase !== 'armed')
251
- return;
252
- startRun(ctx);
253
- }
254
334
  async function switchToTarget(ctx) {
255
335
  if (state.phase !== 'planning' || !state.run || !plannerSnapshot)
256
336
  return;
@@ -269,19 +349,20 @@ function registerPrewalk(pi) {
269
349
  if (state.phase !== 'handoff' || plannerSnapshot !== snapshot)
270
350
  return;
271
351
  if (profile) {
272
- tier = strongerTier(tier, profile.tier);
273
- targetThinking = strongerThinking(targetThinking, profile.thinking);
352
+ if (strongerTier(tier, profile.tier) !== tier || strongerThinking(targetThinking, profile.thinking) !== targetThinking) {
353
+ notify(ctx, `Prewalk classifier recommends ${profile.tier}/${profile.thinking} implementation; keeping configured ${targetModel.key}/${config.targetThinking}.`, 'warning');
354
+ }
274
355
  }
275
356
  }
276
357
  const availableModels = ctx.scopedModels.length > 0
277
358
  ? ctx.scopedModels.map(({ model }) => model)
278
359
  : ctx.modelRegistry.getAvailable();
279
- const plannerProvider = snapshot.model.provider.toLowerCase();
360
+ const plannerProvider = (activePlanner ?? snapshot.model).provider.toLowerCase();
280
361
  const providerModels = availableModels.filter((model) => (model.provider.toLowerCase() === plannerProvider));
281
362
  const selected = selectModelForTier(tier, providerModels, {
282
- preferredModel: snapshot.model,
363
+ preferredModel: activePlanner ?? snapshot.model,
283
364
  });
284
- target = selected?.model ?? snapshot.model;
365
+ target = selected?.model ?? activePlanner ?? snapshot.model;
285
366
  }
286
367
  else {
287
368
  const exactReference = targetModel.model;
@@ -325,7 +406,8 @@ function registerPrewalk(pi) {
325
406
  }
326
407
  return;
327
408
  }
328
- if (modelAlreadyActive && targetThinkingLevel === plannerThinkingLevel) {
409
+ if (modelAlreadyActive && targetThinkingLevel === plannerThinkingLevel
410
+ && sameModel(ctx.model, snapshot.model) && plannerThinkingLevel === snapshot.thinkingLevel) {
329
411
  clearAutomation(ctx);
330
412
  notify(ctx, `Prewalk target ${targetKey} at ${targetThinkingLevel} thinking already matches the planner; continuing without a handoff.`);
331
413
  return;
@@ -335,7 +417,7 @@ function registerPrewalk(pi) {
335
417
  implementationSavingsModels = modelAlreadyActive
336
418
  ? undefined
337
419
  : {
338
- planner: savingsModelReference(snapshot.model),
420
+ planner: savingsModelReference(activePlanner ?? snapshot.model),
339
421
  target: savingsModelReference(target),
340
422
  };
341
423
  state = { phase: 'implementing', run };
@@ -362,6 +444,8 @@ function registerPrewalk(pi) {
362
444
  async function performPlannerRestoration(ctx) {
363
445
  if (handoffPromise)
364
446
  await handoffPromise;
447
+ if (promotionPromise)
448
+ await promotionPromise;
365
449
  const snapshot = plannerSnapshot;
366
450
  if (!snapshot) {
367
451
  clearAutomation(ctx);
@@ -461,10 +545,9 @@ function registerPrewalk(pi) {
461
545
  notify(ctx, 'Prewalk is off and the planner model has been restored.');
462
546
  return;
463
547
  }
464
- const targetIsActive = state.phase === 'handoff'
465
- || state.phase === 'implementing';
548
+ const targetIsActive = plannerSnapshot !== undefined;
466
549
  if (targetIsActive && config.restorePlanner && plannerSnapshot) {
467
- if (state.phase === 'handoff' || !ctx.isIdle()) {
550
+ if (promotionPromise || state.phase === 'handoff' || !ctx.isIdle()) {
468
551
  if (!exitRequested) {
469
552
  exitRequested = true;
470
553
  updateStatus(ctx);
@@ -480,7 +563,10 @@ function registerPrewalk(pi) {
480
563
  notify(ctx, 'Prewalk is off and the planner model has been restored.');
481
564
  return;
482
565
  }
483
- clearAutomation(ctx);
566
+ if (plannerSnapshot && config.restorePlanner)
567
+ await restorePlanner(ctx);
568
+ else
569
+ clearAutomation(ctx);
484
570
  notify(ctx, 'Prewalk is off.');
485
571
  }
486
572
  async function approveModelEntry(ctx) {
@@ -498,7 +584,7 @@ function registerPrewalk(pi) {
498
584
  reason: `Prewalk entry requires user approval, but interactive approval is unavailable in ${ctx.mode} mode. Continue the current task without Prewalk.`,
499
585
  };
500
586
  }
501
- const approved = await ctx.ui.confirm('Enter Prewalk?', `The model wants to enter Prewalk for this task. Prewalk will plan in the current session and may hand implementation to ${targetModel.key} at ${config.targetThinking} thinking.`);
587
+ const approved = await ctx.ui.confirm('Enter Prewalk?', `The model wants to enter Prewalk for this task. Prewalk will establish a capable same-provider planner at high effort or above, then use the configured ${targetModel.key} target at ${config.targetThinking} thinking for implementation.`);
502
588
  return approved
503
589
  ? { approved: true }
504
590
  : {
@@ -567,7 +653,8 @@ function registerPrewalk(pi) {
567
653
  const approval = await approveModelEntry(ctx);
568
654
  if (!approval.approved)
569
655
  return prewalkToolError(approval.reason);
570
- startRun(ctx, false);
656
+ if (!await startRun(ctx, false))
657
+ return prewalkToolError('Prewalk could not establish a capable planning profile. Continue without Prewalk.');
571
658
  await classifyExplorationDepth(ctx);
572
659
  const reviewText = effectivePlanReview(config) === 'ask'
573
660
  ? ` submit the plan through ${EXIT_PLAN_MODE_TOOL} for user review,`
@@ -700,8 +787,7 @@ function registerPrewalk(pi) {
700
787
  return;
701
788
  if (!ctx.hasUI) {
702
789
  lastPrompt = command;
703
- beginRun(ctx);
704
- if (state.phase !== 'planning')
790
+ if (!await startRun(ctx))
705
791
  return;
706
792
  await classifyExplorationDepth(ctx);
707
793
  pi.sendMessage({
@@ -716,30 +802,27 @@ function registerPrewalk(pi) {
716
802
  },
717
803
  });
718
804
  pi.on('session_start', (_event, ctx) => {
805
+ selectionContext = ctx;
719
806
  if (state.phase === 'idle')
720
807
  refreshConfig();
721
808
  publishConfigWarning(ctx);
722
809
  updateStatus(ctx);
723
810
  });
724
- // Pi awaits before_agent_start handlers sequentially, so the entry decision
725
- // starts at input to overlap with other extensions' pre-start classifier calls.
726
811
  pi.on('input', (event, ctx) => {
727
812
  if ((event.source === 'interactive' || event.source === 'rpc') && state.phase === 'implementing'
728
813
  && runDetails?.reviewRequested && !runDetails.completionAccepted) {
729
814
  runDetails.reviewReassessmentPending = true;
730
815
  }
731
- if (event.streamingBehavior !== undefined || !entryClassificationEligible(ctx))
732
- return;
733
- startEntryClassification(event.text, ctx);
734
816
  });
735
817
  pi.on('before_agent_start', async (event, ctx) => {
736
818
  lastPrompt = event.prompt;
819
+ const guidance = await applyEntryGuidance(event.prompt, event.images?.length ?? 0, ctx);
737
820
  if (state.phase === 'armed') {
738
- if (startRun(ctx))
821
+ if (await startRun(ctx))
739
822
  await classifyExplorationDepth(ctx);
740
823
  return;
741
824
  }
742
- return applyEntryGuidance(event.prompt, ctx);
825
+ return guidance;
743
826
  });
744
827
  pi.on('context', (event) => {
745
828
  const result = buildContextMessages(event.messages, state, phaseContextAnchor, {
@@ -794,6 +877,8 @@ function registerPrewalk(pi) {
794
877
  }
795
878
  if (state.phase !== 'planning' || !state.run)
796
879
  return;
880
+ if (exitRequested)
881
+ return;
797
882
  const textOnlyCompletion = isTextOnlyCompletion(event.message);
798
883
  const decision = reduceTurn(state.run, event.toolResults, {
799
884
  allowContinuation: textOnlyCompletion,
@@ -857,21 +942,26 @@ function registerPrewalk(pi) {
857
942
  });
858
943
  pi.on('model_select', (event, ctx) => {
859
944
  const selectedModelKey = modelKey(event.model);
860
- if (modelTransition?.expectedModelKey === selectedModelKey) {
945
+ if (modelTransition?.expectedModelKey === selectedModelKey
946
+ && (!pi.selectionAutomation || pi.selectionAutomation.isAutomated())) {
861
947
  modelTransition.modelSelectObserved = true;
862
948
  return;
863
949
  }
950
+ if (pi.selectionAutomation?.isAutomated())
951
+ return;
864
952
  if (modelTransition) {
865
953
  modelTransition.externalModel = event.model;
866
954
  modelTransition.externalThinkingLevel = pi.getThinkingLevel();
867
955
  }
868
- if (state.phase === 'idle')
956
+ if (state.phase === 'idle') {
957
+ entryProfile = undefined;
869
958
  return;
959
+ }
870
960
  clearAutomation(ctx);
871
961
  notify(ctx, `Prewalk cancelled after the model changed to ${selectedModelKey}.`, 'warning');
872
962
  });
873
963
  pi.on('thinking_level_select', (event, ctx) => {
874
- if (internalThinkingChange)
964
+ if (internalThinkingChange || pi.selectionAutomation?.isAutomated())
875
965
  return;
876
966
  if (modelTransition
877
967
  && modelKey(ctx.model) === modelTransition.expectedModelKey
@@ -881,10 +971,10 @@ function registerPrewalk(pi) {
881
971
  // The canonical clamp lets us recognize that event even when a manual
882
972
  // effort change wins the race and arrives before Pi's own clamp event.
883
973
  const internalClamp = clampPiThinkingLevel(ctx.model, transition.initialThinkingLevel);
884
- // Pi's event has no source field, so a manual selection of exactly the
885
- // same level as the automatic clamp is observationally indistinguishable
886
- // from that clamp; preserve the canonical internal interpretation.
887
- if (internalClamp === transition.initialThinkingLevel
974
+ // Without a selection scope, Pi cannot distinguish a manual selection
975
+ // of the same level from its internal model clamp.
976
+ if (pi.selectionAutomation !== undefined
977
+ || internalClamp === transition.initialThinkingLevel
888
978
  || event.level !== internalClamp) {
889
979
  transition.externalThinkingLevel = event.level;
890
980
  }
@@ -894,8 +984,10 @@ function registerPrewalk(pi) {
894
984
  modelTransition.externalThinkingLevel = event.level;
895
985
  return;
896
986
  }
897
- if (state.phase === 'idle')
987
+ if (state.phase === 'idle') {
988
+ entryProfile = undefined;
898
989
  return;
990
+ }
899
991
  clearAutomation(ctx);
900
992
  notify(ctx, `Prewalk cancelled after the thinking level changed to ${event.level}.`, 'warning');
901
993
  });
@@ -904,6 +996,16 @@ function registerPrewalk(pi) {
904
996
  entryGuidanceActive = false;
905
997
  return;
906
998
  }
999
+ if (exitRequested) {
1000
+ const snapshot = plannerSnapshot;
1001
+ if (config.restorePlanner && snapshot) {
1002
+ if (await restorePlanner(ctx))
1003
+ notify(ctx, `Prewalk restored ${snapshot.modelKey}.`);
1004
+ }
1005
+ else
1006
+ clearAutomation(ctx);
1007
+ return;
1008
+ }
907
1009
  if (state.phase === 'implementing' || state.phase === 'handoff') {
908
1010
  const details = runDetails;
909
1011
  if (state.phase === 'implementing' && details && !exitRequested) {
@@ -938,17 +1040,17 @@ function registerPrewalk(pi) {
938
1040
  if (state.phase === 'reviewing')
939
1041
  return;
940
1042
  if (state.phase === 'planning') {
941
- if (state.run?.reviewRequired && !state.run.reviewApproved)
1043
+ if (!exitRequested && state.run?.reviewRequired && !state.run.reviewApproved)
942
1044
  return;
943
- clearAutomation(ctx);
1045
+ if (plannerSnapshot && config.restorePlanner)
1046
+ await restorePlanner(ctx);
1047
+ else
1048
+ clearAutomation(ctx);
944
1049
  notify(ctx, 'Prewalk ended before a qualifying first mutation.', 'warning');
945
1050
  }
946
1051
  });
947
1052
  pi.on('session_shutdown', async (_event, ctx) => {
948
- pendingEntry?.controller.abort('session-shutdown');
949
- const targetIsActive = state.phase === 'handoff'
950
- || state.phase === 'implementing'
951
- || state.phase === 'restoring';
1053
+ const targetIsActive = plannerSnapshot !== undefined;
952
1054
  if (targetIsActive && config.restorePlanner && plannerSnapshot) {
953
1055
  await restorePlanner(ctx);
954
1056
  }
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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"}
@@ -0,0 +1,8 @@
1
+ import { type ExtensionContext, type FelanThinkingLevel } from '@felan-ai/agent-core';
2
+ export interface PlannerProfile {
3
+ readonly model: NonNullable<ExtensionContext['model']>;
4
+ readonly tier: 'high' | 'xhigh';
5
+ readonly thinking: Extract<FelanThinkingLevel, 'high' | 'xhigh' | 'max'>;
6
+ }
7
+ export declare function plannerProfiles(ctx: ExtensionContext, currentThinking: string): PlannerProfile[];
8
+ //# sourceMappingURL=planner-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner-profile.d.ts","sourceRoot":"","sources":["../src/planner-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAC/C,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;CAC1E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,GAAG,cAAc,EAAE,CAwBhG"}
@@ -0,0 +1,30 @@
1
+ import { clampThinkingLevel, getModelStrength, selectModelForTier, } from '@felan-ai/agent-core';
2
+ export function plannerProfiles(ctx, currentThinking) {
3
+ if (!ctx.model)
4
+ return [];
5
+ const models = (ctx.scopedModels.length ? ctx.scopedModels.map(({ model }) => model) : ctx.modelRegistry.getAvailable())
6
+ .filter(model => model.provider.toLowerCase() === ctx.model.provider.toLowerCase()
7
+ && ctx.modelRegistry.hasConfiguredAuth(model)
8
+ && ['high', 'xhigh', 'max'].some(level => clampThinkingLevel(model, level) === level));
9
+ const current = models.find(model => model.provider === ctx.model.provider && model.id === ctx.model.id);
10
+ const candidates = [
11
+ ...(current && ['high', 'xhigh'].includes(getModelStrength(current) ?? '') ? [current] : []),
12
+ selectModelForTier('high', models, { preferredModel: ctx.model })?.model,
13
+ selectModelForTier('xhigh', models, { preferredModel: ctx.model })?.model,
14
+ ].filter((model) => model !== undefined);
15
+ const profiles = [];
16
+ for (const model of candidates) {
17
+ const levels = ['high', 'xhigh', 'max'];
18
+ const preferred = levels.includes(currentThinking) ? currentThinking : 'high';
19
+ for (const thinking of [preferred, ...levels]) {
20
+ if (clampThinkingLevel(model, thinking) !== thinking)
21
+ continue;
22
+ if (!profiles.some(profile => profile.model.provider === model.provider && profile.model.id === model.id
23
+ && profile.thinking === thinking))
24
+ profiles.push({ model,
25
+ tier: getModelStrength(model), thinking });
26
+ }
27
+ }
28
+ return profiles;
29
+ }
30
+ //# sourceMappingURL=planner-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner-profile.js","sourceRoot":"","sources":["../src/planner-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,GAEzD,MAAM,sBAAsB,CAAC;AAQ9B,MAAM,UAAU,eAAe,CAAC,GAAqB,EAAE,eAAuB;IAC5E,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;SACrH,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,KAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;WAC9E,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC;WACzC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IACtG,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,KAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC;IAC3G,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK;QACxE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK;KAC1E,CAAC,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAwC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;QACvG,KAAK,MAAM,QAAQ,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAA4B,EAAE,CAAC;YACzE,IAAI,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,QAAQ;gBAAE,SAAS;YAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;mBACnG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK;oBACtD,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAqB,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@felan-ai/ext-prewalk",
3
- "version": "0.9.2",
3
+ "version": "0.10.0",
4
4
  "description": "Same-session planner-to-implementation model handoff for Felan",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,15 +25,15 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@earendil-works/pi-tui": "1.0.0",
28
+ "@earendil-works/pi-tui": "1.0.2",
29
29
  "typebox": "1.1.38"
30
30
  },
31
31
  "peerDependencies": {
32
- "@felan-ai/agent-core": "^0.10.0",
33
- "@felan-ai/ext-tasks": "^0.5.0"
32
+ "@felan-ai/agent-core": "^0.11.0",
33
+ "@felan-ai/ext-tasks": "^0.6.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@felan-ai/agent-core": "0.10.5"
36
+ "@felan-ai/agent-core": "0.11.0"
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public",