@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 +36 -26
- package/dist/classification.d.ts +2 -2
- package/dist/classification.d.ts.map +1 -1
- package/dist/classification.js +1 -5
- package/dist/classification.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +170 -68
- package/dist/index.js.map +1 -1
- package/dist/planner-profile.d.ts +8 -0
- package/dist/planner-profile.d.ts.map +1 -0
- package/dist/planner-profile.js +30 -0
- package/dist/planner-profile.js.map +1 -0
- package/package.json +5 -5
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:
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
82
|
-
|
|
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
|
|
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
|
|
103
|
-
|
|
104
|
-
|
|
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.
|
|
120
|
-
|
|
121
|
-
receives a fresh completion check.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
`
|
|
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
|
-
|
|
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
|
|
145
|
-
|
|
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
|
|
package/dist/classification.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/classification.js
CHANGED
|
@@ -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":"AAAA,OAAO,EACL,qBAAqB,EACrB,WAAW,EAOX,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"classification.js","sourceRoot":"","sources":["../src/classification.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,WAAW,EAOX,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAwB9B,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC,MAAM,CAAC,MAAM,eAAe,GAAuD;IACjF,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,uNAAuN;QACrO,QAAQ,EAAE;YACR,OAAO,EAAE,sOAAsO;YAC/O,OAAO,EAAE,kMAAkM;SAC5M;KACF;CACF,CAAC;AAEF,MAAM,eAAe,GAAuD;IAC1E,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,2IAA2I;QACzJ,QAAQ,EAAE;YACR,UAAU,EAAE,mIAAmI;YAC/I,QAAQ,EAAE,+HAA+H;YACzI,IAAI,EAAE,gIAAgI;SACvI;KACF;CACF,CAAC;AAEF,MAAM,wBAAwB,GAAuD;IACnF,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,0JAA0J;QACxK,QAAQ,EAAE;YACR,GAAG,EAAE,6EAA6E;YAClF,MAAM,EAAE,yEAAyE;YACjF,IAAI,EAAE,qIAAqI;SAC5I;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,4GAA4G;QAC1H,QAAQ,EAAE;YACR,GAAG,EAAE,8DAA8D;YACnE,MAAM,EAAE,qDAAqD;YAC7D,IAAI,EAAE,iEAAiE;SACxE;KACF;CACF,CAAC;AAEF,MAAM,oBAAoB,GAAuD;IAC/E,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,uQAAuQ;QACrR,QAAQ,EAAE;YACR,IAAI,EAAE,mKAAmK;YACzK,GAAG,EAAE,+IAA+I;YACpJ,MAAM,EAAE,mGAAmG;SAC5G;KACF;CACF,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,EAAqB;IAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;IAC1C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAE9E,KAAK,UAAU,GAAG,CAChB,QAAgB,EAChB,KAAc,EACd,SAA6D,EAC7D,GAAqB,EACrB,MAAoB;QAEpB,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAO,UAAyB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACnF,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAClC,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;oBACtE,MAAM,IAAI,KAAK,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;YACvB,CAAC;YACD,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,6BAA6B,CAAC,CAAC;YAC/H,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO,SAAS,CAAC;YACtC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;YACpI,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG;YAC7B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;YACzF,OAAO,OAAO,EAAE,KAAqC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG;YAClC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC9G,OAAO,OAAO,KAAK,SAAS;gBAC1B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAA0B,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAkC,EAAE,CAAC;QACzG,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG;YACrC,MAAM,KAAK,GAAG;gBACZ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;gBAC5B,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC;gBAC7B,aAAa,EAAE,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;aACzD,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,OAAO,EAAE,OAAwC,CAAC;YAClE,IAAI,OAAO,KAAK,MAAM;gBAAE,OAAO,OAAO,CAAC;YACvC,OAAO,KAAK,CAAC,OAAO,CAAC,gCAAgC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB;gBACzF,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,QAAQ,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAqB,EAAE,MAA0B;IAC5E,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAA8B,EAAE,MAA8B;IAC7F,OAAO,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;AACjH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAqB;IAClD,OAAO,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,aAAa,KAAK,SAAS,CAAC;AACrE,CAAC;AAED,SAAS,QAAQ,CAAC,GAAe,EAAE,GAAqB,EAAE,cAAc,GAAG,IAAI;IAC7E,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;QAC9E,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AASD,SAAS,eAAe,CAAC,GAAqB;IAC5C,MAAM,QAAQ,GAAG,gCAAgC,CAAC,GAAG,CAAC,cAAc,EAAE;QACpE,oBAAoB,EAAE,sBAAsB;QAC5C,iBAAiB,EAAE,KAAK;QACxB,YAAY,EAAE,qBAAqB;QACnC,iBAAiB,EAAE,cAAc;QACjC,aAAa,EAAE,GAAG,GAAG,KAAK;KAC3B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC;IACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACtD,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,KAAK,IAAI,CACnE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAChF,IAAI,KAAK,MAAM,IAAI,0DAA0D,CAAC,IAAI,CAAC,KAAK,CAAC,CAC1F,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7F,OAAO;QACL,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;QACxC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;QACjD,gCAAgC,EAAE,YAAY,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC;QACzG,mBAAmB,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC;KAC5F,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;IAC3C,OAAO,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3H,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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 {
|
|
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
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
if (
|
|
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
|
-
|
|
273
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
//
|
|
885
|
-
// same level
|
|
886
|
-
|
|
887
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
33
|
-
"@felan-ai/ext-tasks": "^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.
|
|
36
|
+
"@felan-ai/agent-core": "0.11.0"
|
|
37
37
|
},
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public",
|