poly-weaver 0.6.2 → 0.7.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 +0 -15
- package/dist/agents/implementors/adapter.d.ts +1 -3
- package/dist/agents/implementors/adapter.d.ts.map +1 -1
- package/dist/agents/implementors/adapter.js +4 -4
- package/dist/agents/implementors/adapter.js.map +1 -1
- package/dist/agents/implementors/handler.d.ts.map +1 -1
- package/dist/agents/implementors/handler.js +1 -4
- package/dist/agents/implementors/handler.js.map +1 -1
- package/dist/agents/implementors/prompts.d.ts +6 -14
- package/dist/agents/implementors/prompts.d.ts.map +1 -1
- package/dist/agents/implementors/prompts.js +20 -48
- package/dist/agents/implementors/prompts.js.map +1 -1
- package/dist/agents/implementors/types.d.ts +2 -3
- package/dist/agents/implementors/types.d.ts.map +1 -1
- package/dist/agents/planners/adapter.d.ts +0 -3
- package/dist/agents/planners/adapter.d.ts.map +1 -1
- package/dist/agents/planners/adapter.js +1 -4
- package/dist/agents/planners/adapter.js.map +1 -1
- package/dist/agents/planners/handler.d.ts.map +1 -1
- package/dist/agents/planners/handler.js +1 -4
- package/dist/agents/planners/handler.js.map +1 -1
- package/dist/agents/planners/prompts.d.ts +6 -22
- package/dist/agents/planners/prompts.d.ts.map +1 -1
- package/dist/agents/planners/prompts.js +26 -104
- package/dist/agents/planners/prompts.js.map +1 -1
- package/dist/agents/planners/types.d.ts +0 -3
- package/dist/agents/planners/types.d.ts.map +1 -1
- package/dist/agents/reviewers/adapter.d.ts.map +1 -1
- package/dist/agents/reviewers/adapter.js +2 -10
- package/dist/agents/reviewers/adapter.js.map +1 -1
- package/dist/agents/reviewers/handler.d.ts.map +1 -1
- package/dist/agents/reviewers/handler.js +0 -4
- package/dist/agents/reviewers/handler.js.map +1 -1
- package/dist/agents/reviewers/prompts.d.ts +6 -28
- package/dist/agents/reviewers/prompts.d.ts.map +1 -1
- package/dist/agents/reviewers/prompts.js +51 -161
- package/dist/agents/reviewers/prompts.js.map +1 -1
- package/dist/agents/reviewers/types.d.ts +0 -3
- package/dist/agents/reviewers/types.d.ts.map +1 -1
- package/dist/agents/reviewers/types.js.map +1 -1
- package/dist/agents/runner.d.ts +0 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +0 -3
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/simplifiers/prompts.js +4 -4
- package/dist/agents/simplifiers/prompts.js.map +1 -1
- package/dist/cli.js +2 -17
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +0 -9
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -12
- package/dist/config.js.map +1 -1
- package/dist/flow/executor.d.ts.map +1 -1
- package/dist/flow/executor.js +0 -17
- package/dist/flow/executor.js.map +1 -1
- package/dist/flow/types.d.ts +0 -21
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/flow/types.js +0 -18
- package/dist/flow/types.js.map +1 -1
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +52 -0
- package/dist/markdown.js.map +1 -1
- package/dist/orchestrator.d.ts +0 -2
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +92 -101
- package/dist/orchestrator.js.map +1 -1
- package/dist/preview-panel.d.ts +1 -1
- package/dist/preview-panel.js +1 -1
- package/dist/providers/codex/strategy.d.ts.map +1 -1
- package/dist/providers/codex/strategy.js +3 -8
- package/dist/providers/codex/strategy.js.map +1 -1
- package/dist/providers/copilot/strategy.d.ts.map +1 -1
- package/dist/providers/copilot/strategy.js +4 -9
- package/dist/providers/copilot/strategy.js.map +1 -1
- package/dist/providers/types.d.ts +3 -2
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/pty/spawn.d.ts +16 -0
- package/dist/pty/spawn.d.ts.map +1 -1
- package/dist/pty/spawn.js +106 -16
- package/dist/pty/spawn.js.map +1 -1
- package/dist/session/dir.d.ts +2 -7
- package/dist/session/dir.d.ts.map +1 -1
- package/dist/session/dir.js +2 -7
- package/dist/session/dir.js.map +1 -1
- package/dist/startup-tui.d.ts.map +1 -1
- package/dist/startup-tui.js +0 -16
- package/dist/startup-tui.js.map +1 -1
- package/package.json +2 -1
- package/dist/agents/whip-hint.d.ts +0 -23
- package/dist/agents/whip-hint.d.ts.map +0 -1
- package/dist/agents/whip-hint.js +0 -41
- package/dist/agents/whip-hint.js.map +0 -1
- package/dist/flow/neighbors.d.ts +0 -10
- package/dist/flow/neighbors.d.ts.map +0 -1
- package/dist/flow/neighbors.js +0 -48
- package/dist/flow/neighbors.js.map +0 -1
- package/dist/providers/prompt-file.d.ts +0 -8
- package/dist/providers/prompt-file.d.ts.map +0 -1
- package/dist/providers/prompt-file.js +0 -17
- package/dist/providers/prompt-file.js.map +0 -1
package/README.md
CHANGED
|
@@ -180,10 +180,8 @@ poly-weaver "Refactor the auth module" --opinionless
|
|
|
180
180
|
| `--workdir <path>` | Working directory for agent CLIs | current directory |
|
|
181
181
|
| `--opinionless` | Use minimal prompts; let agents decide how to plan/review/implement | `false` |
|
|
182
182
|
| `--no-yolo` | Run agents without auto-approving permissions | `false` (agents run with permission-skipping) |
|
|
183
|
-
| `--whip-mode` / `--no-whip-mode` | Enable/disable neighbor awareness hints between agents | `false` |
|
|
184
183
|
| `--workflow <name>` | Workflow template to use | `default` |
|
|
185
184
|
| `--config <path>` | Path to a JSON config file | _(none)_ |
|
|
186
|
-
| `--verbose` | Preserve session files for debugging | `false` |
|
|
187
185
|
|
|
188
186
|
Workflow is selected via `--workflow <name>` or **Shift+Tab** in the TUI. Built-in workflows: `default`, `why-so-serious`. Custom flows are also available (see below).
|
|
189
187
|
|
|
@@ -239,7 +237,6 @@ src/
|
|
|
239
237
|
│ ├── types.ts # FlowStep, ArtifactStore, FlowTemplate, FlowParam
|
|
240
238
|
│ ├── dsl.ts # DSL helpers: defineFlow, loop, predicates
|
|
241
239
|
│ ├── executor.ts # Walks a FlowDefinition, runs steps
|
|
242
|
-
│ ├── neighbors.ts # Data-flow consumer map computation
|
|
243
240
|
│ ├── artifacts.ts # MapArtifactStore implementation
|
|
244
241
|
│ ├── params.ts # Flow param resolution (CLI > file > user > default)
|
|
245
242
|
│ ├── diagram.ts # ASCII flow diagram renderer for TUI
|
|
@@ -262,7 +259,6 @@ src/
|
|
|
262
259
|
├── agents/
|
|
263
260
|
│ ├── registry.ts # Role registry: registerRole, createHandler
|
|
264
261
|
│ ├── runner.ts # AgentRunner — shared spawn→detect→exit lifecycle
|
|
265
|
-
│ ├── whip-hint.ts # Whip mode hint builder
|
|
266
262
|
│ ├── index.ts # Registers built-in providers, re-exports DSL helpers
|
|
267
263
|
│ ├── planners/
|
|
268
264
|
│ │ ├── prompts.ts # Planner prompt builders and prompt sets
|
|
@@ -284,7 +280,6 @@ src/
|
|
|
284
280
|
│ ├── registry.ts # Built-in provider registry (name → strategy)
|
|
285
281
|
│ ├── invoke.ts # Non-interactive provider invocation
|
|
286
282
|
│ ├── base-completion.ts # Shared completion detection logic
|
|
287
|
-
│ ├── prompt-file.ts # Prompt file writing utilities
|
|
288
283
|
│ ├── path-utils.ts # Path helpers
|
|
289
284
|
│ ├── index.ts # Re-exports all provider strategies
|
|
290
285
|
│ ├── claude/
|
|
@@ -320,16 +315,6 @@ With `--opinionless`, prompts are stripped to the structural minimum: file path
|
|
|
320
315
|
|
|
321
316
|
This is useful when the AI agent has its own strong conventions, or when you want to compare agent behavior with and without prescriptive guidance.
|
|
322
317
|
|
|
323
|
-
### Whip mode
|
|
324
|
-
|
|
325
|
-
With `--whip-mode`, each agent receives a hint describing who produced its input and who will consume its output. For example, a planner might see:
|
|
326
|
-
|
|
327
|
-
> The previous step was performed by Claude. Codex will review your plan.
|
|
328
|
-
|
|
329
|
-
Hints are suppressed when neighbors use the same provider — telling Claude that Claude produced the input is not actionable. This means whip mode only adds value in **mixed-provider workflows** where agents benefit from knowing their neighbors' capabilities and conventions.
|
|
330
|
-
|
|
331
|
-
Toggle it in the TUI or pass `--whip-mode` / `--no-whip-mode` on the command line.
|
|
332
|
-
|
|
333
318
|
### Troubleshooting dump
|
|
334
319
|
|
|
335
320
|
Press **Ctrl+]** at any time during an interactive session to capture a full snapshot of the current session state. The dump is written to:
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import type { ImplementorDriver, ImplementResult, ImplementorPromptSet } from "./types.js";
|
|
2
|
-
import type { StepMeta } from "../../flow/types.js";
|
|
3
2
|
import type { ProviderStrategy } from "../../providers/types.js";
|
|
4
3
|
import { BaseAdapter } from "../runner.js";
|
|
5
4
|
type ImplementorRunOptions = {
|
|
6
5
|
resumeSessionId?: string;
|
|
7
6
|
feedbackFile?: string;
|
|
8
|
-
|
|
9
|
-
consumers?: Record<string, StepMeta[]>;
|
|
7
|
+
changePlan?: boolean;
|
|
10
8
|
};
|
|
11
9
|
export declare function selectImplementorPrompt(planFile: string, opts: ImplementorRunOptions, prompts?: ImplementorPromptSet): string;
|
|
12
10
|
export declare class ImplementorAdapter extends BaseAdapter implements ImplementorDriver {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,KAAK,qBAAqB,GAAG;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,oBAAgD,GACxD,MAAM,CAWR;AAED,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,iBAAiB;IAI5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFzB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACE,OAAO,CAAC,EAAE,oBAAoB,YAAA,EAC/C,IAAI,CAAC,EAAE,OAAO;IAKV,GAAG,CACP,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,eAAe,CAAC;CAgB5B"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { BaseAdapter } from "../runner.js";
|
|
2
|
-
import { buildAgentWhipHint } from "../whip-hint.js";
|
|
3
2
|
import { defaultImplementorPrompts } from "./prompts.js";
|
|
4
3
|
export function selectImplementorPrompt(planFile, opts, prompts = defaultImplementorPrompts) {
|
|
4
|
+
if (opts.changePlan) {
|
|
5
|
+
return prompts.changePlan(planFile);
|
|
6
|
+
}
|
|
5
7
|
if (opts.feedbackFile) {
|
|
6
8
|
if (opts.resumeSessionId) {
|
|
7
9
|
return prompts.resumeRevision(opts.feedbackFile);
|
|
@@ -17,9 +19,7 @@ export class ImplementorAdapter extends BaseAdapter {
|
|
|
17
19
|
this.prompts = prompts;
|
|
18
20
|
}
|
|
19
21
|
async run(planFile, opts = {}) {
|
|
20
|
-
const
|
|
21
|
-
const hint = buildAgentWhipHint(this.strategy.name, opts, "implementation");
|
|
22
|
-
const prompt = this.applyWhipHint(hint, rawPrompt);
|
|
22
|
+
const prompt = selectImplementorPrompt(planFile, opts, this.prompts);
|
|
23
23
|
const result = await this.runAgent({
|
|
24
24
|
prompt,
|
|
25
25
|
workdir: this.workdir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/implementors/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/implementors/adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAQzD,MAAM,UAAU,uBAAuB,CACrC,QAAgB,EAChB,IAA2B,EAC3B,UAAgC,yBAAyB;IAEzD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAI9B;IAHnB,YACE,QAA0B,EAC1B,OAAe,EACE,OAA8B,EAC/C,IAAc;QAEd,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAHd,YAAO,GAAP,OAAO,CAAuB;IAIjD,CAAC;IAED,KAAK,CAAC,GAAG,CACP,QAAgB,EAChB,OAA8B,EAAE;QAEhC,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACjC,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,sBAAuB,YAAW,WAAW;IAI5C,OAAO,CAAC,MAAM;IAH1B,2EAA2E;IAC3E,OAAO,CAAC,cAAc,CAA+C;gBAEjD,MAAM,EAAE,iBAAiB;IAEvC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CAgEvB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { resolveWhipNeighbors, } from "../../flow/types.js";
|
|
2
1
|
import { bindSessionReporter, bindDriverRuntime } from "../runner.js";
|
|
3
2
|
export class ImplementorRoleHandler {
|
|
4
3
|
driver;
|
|
@@ -42,15 +41,13 @@ export class ImplementorRoleHandler {
|
|
|
42
41
|
? ctx.sessionIds.get(sessionKey)
|
|
43
42
|
: undefined;
|
|
44
43
|
}
|
|
45
|
-
const { producers, consumers } = resolveWhipNeighbors(step, ctx);
|
|
46
44
|
bindSessionReporter(this.driver, ctx.lastStepSessionFilePaths);
|
|
47
45
|
bindDriverRuntime(this.driver, { output: ctx.output, terminalHost: ctx.terminalHost });
|
|
48
46
|
const implResult = await retry("implementor", async (attempt) => {
|
|
49
47
|
return this.driver.run(planFile, {
|
|
50
48
|
resumeSessionId: attempt === 1 ? resumeSessionId : undefined,
|
|
51
49
|
feedbackFile: feedbackFile ?? undefined,
|
|
52
|
-
|
|
53
|
-
consumers,
|
|
50
|
+
changePlan: revisePlanFile ? true : undefined,
|
|
54
51
|
});
|
|
55
52
|
});
|
|
56
53
|
// Record session file for dump
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import type { ImplementorPromptSet } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Build the initial implementor prompt.
|
|
4
|
-
*/
|
|
5
|
-
export declare function buildImplementorPrompt(planFile: string): string;
|
|
6
|
-
/**
|
|
7
|
-
* Build the implementor revision prompt (when reviewer feedback was received).
|
|
8
|
-
*/
|
|
9
|
-
export declare function buildImplementorRevisionPrompt(planFile: string, feedbackFile: string): string;
|
|
10
|
-
/**
|
|
11
|
-
* Build a lighter implementor revision prompt for resumed sessions.
|
|
12
|
-
* The agent already has task and plan context in-session.
|
|
13
|
-
*/
|
|
14
|
-
export declare function buildImplementorResumeRevisionPrompt(feedbackFile: string): string;
|
|
15
2
|
export declare function buildMinimalImplementorPrompt(planFile: string): string;
|
|
16
3
|
export declare function buildMinimalImplementorRevisionPrompt(planFile: string, feedbackFile: string): string;
|
|
17
4
|
export declare function buildMinimalImplementorResumeRevisionPrompt(feedbackFile: string): string;
|
|
18
|
-
export declare
|
|
5
|
+
export declare function buildMinimalImplementorChangePlanPrompt(planFile: string): string;
|
|
6
|
+
export declare const buildImplementorPrompt: typeof buildMinimalImplementorPrompt;
|
|
7
|
+
export declare const buildImplementorRevisionPrompt: typeof buildMinimalImplementorRevisionPrompt;
|
|
8
|
+
export declare const buildImplementorResumeRevisionPrompt: typeof buildMinimalImplementorResumeRevisionPrompt;
|
|
9
|
+
export declare const buildImplementorChangePlanPrompt: typeof buildMinimalImplementorChangePlanPrompt;
|
|
19
10
|
export declare const minimalImplementorPrompts: ImplementorPromptSet;
|
|
11
|
+
export declare const defaultImplementorPrompts: ImplementorPromptSet;
|
|
20
12
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAOR;AAED,wBAAgB,2CAA2C,CACzD,YAAY,EAAE,MAAM,GACnB,MAAM,CAMR;AAED,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,MAAM,GACf,MAAM,CAMR;AAID,eAAO,MAAM,sBAAsB,sCAAgC,CAAC;AACpE,eAAO,MAAM,8BAA8B,8CAAwC,CAAC;AACpF,eAAO,MAAM,oCAAoC,oDAA8C,CAAC;AAChG,eAAO,MAAM,gCAAgC,gDAA0C,CAAC;AAIxF,eAAO,MAAM,yBAAyB,EAAE,oBAKvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,oBAAgD,CAAC"}
|
|
@@ -1,72 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build the initial implementor prompt.
|
|
3
|
-
*/
|
|
4
|
-
export function buildImplementorPrompt(planFile) {
|
|
5
|
-
return [
|
|
6
|
-
`Read the approved implementation plan from: ${planFile}`,
|
|
7
|
-
"",
|
|
8
|
-
"Implement the plan by making code changes in the working directory.",
|
|
9
|
-
"Follow the approved plan step by step.",
|
|
10
|
-
"Do implementation only. Do not rewrite the plan.",
|
|
11
|
-
].join("\n");
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Build the implementor revision prompt (when reviewer feedback was received).
|
|
15
|
-
*/
|
|
16
|
-
export function buildImplementorRevisionPrompt(planFile, feedbackFile) {
|
|
17
|
-
return [
|
|
18
|
-
`Read the approved implementation plan from: ${planFile}`,
|
|
19
|
-
`Read the review feedback from: ${feedbackFile}`,
|
|
20
|
-
"",
|
|
21
|
-
"Revise your implementation to address the review feedback.",
|
|
22
|
-
"Keep what works and only change what is needed.",
|
|
23
|
-
"Do implementation only. Do not rewrite the plan.",
|
|
24
|
-
].join("\n");
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Build a lighter implementor revision prompt for resumed sessions.
|
|
28
|
-
* The agent already has task and plan context in-session.
|
|
29
|
-
*/
|
|
30
|
-
export function buildImplementorResumeRevisionPrompt(feedbackFile) {
|
|
31
|
-
return [
|
|
32
|
-
`Read the review feedback from: ${feedbackFile}`,
|
|
33
|
-
"",
|
|
34
|
-
"Revise your implementation to address the review feedback.",
|
|
35
|
-
"Keep what works and only change what is needed.",
|
|
36
|
-
].join("\n");
|
|
37
|
-
}
|
|
38
1
|
// ── Minimal implementor prompts ──
|
|
39
2
|
export function buildMinimalImplementorPrompt(planFile) {
|
|
40
3
|
return [
|
|
41
|
-
`Read the approved implementation plan
|
|
4
|
+
`Read the approved implementation plan: ${planFile}`,
|
|
42
5
|
"",
|
|
43
6
|
"Implement the plan by making code changes in the working directory.",
|
|
44
7
|
].join("\n");
|
|
45
8
|
}
|
|
46
9
|
export function buildMinimalImplementorRevisionPrompt(planFile, feedbackFile) {
|
|
47
10
|
return [
|
|
48
|
-
`Read the approved implementation plan
|
|
49
|
-
`Read the review feedback
|
|
11
|
+
`Read the approved implementation plan: ${planFile}`,
|
|
12
|
+
`Read the review feedback: ${feedbackFile}`,
|
|
50
13
|
"",
|
|
51
|
-
"Revise your implementation to address the
|
|
14
|
+
"Revise your implementation to address the feedback.",
|
|
52
15
|
].join("\n");
|
|
53
16
|
}
|
|
54
17
|
export function buildMinimalImplementorResumeRevisionPrompt(feedbackFile) {
|
|
55
18
|
return [
|
|
56
|
-
`Read the review feedback
|
|
19
|
+
`Read the new review feedback: ${feedbackFile}`,
|
|
57
20
|
"",
|
|
58
|
-
"Revise your implementation
|
|
21
|
+
"Revise your implementation accordingly.",
|
|
59
22
|
].join("\n");
|
|
60
23
|
}
|
|
24
|
+
export function buildMinimalImplementorChangePlanPrompt(planFile) {
|
|
25
|
+
return [
|
|
26
|
+
`Read the change plan: ${planFile}`,
|
|
27
|
+
"",
|
|
28
|
+
"Apply the changes to the working directory.",
|
|
29
|
+
].join("\n");
|
|
30
|
+
}
|
|
31
|
+
// ─── Opinion-mode implementor prompts (aliased to minimal for now) ──────
|
|
32
|
+
export const buildImplementorPrompt = buildMinimalImplementorPrompt;
|
|
33
|
+
export const buildImplementorRevisionPrompt = buildMinimalImplementorRevisionPrompt;
|
|
34
|
+
export const buildImplementorResumeRevisionPrompt = buildMinimalImplementorResumeRevisionPrompt;
|
|
35
|
+
export const buildImplementorChangePlanPrompt = buildMinimalImplementorChangePlanPrompt;
|
|
61
36
|
// ─── Prompt set exports ──────────────────────────────────────────────────
|
|
62
|
-
export const defaultImplementorPrompts = {
|
|
63
|
-
initial: buildImplementorPrompt,
|
|
64
|
-
revision: buildImplementorRevisionPrompt,
|
|
65
|
-
resumeRevision: buildImplementorResumeRevisionPrompt,
|
|
66
|
-
};
|
|
67
37
|
export const minimalImplementorPrompts = {
|
|
68
38
|
initial: buildMinimalImplementorPrompt,
|
|
69
39
|
revision: buildMinimalImplementorRevisionPrompt,
|
|
70
40
|
resumeRevision: buildMinimalImplementorResumeRevisionPrompt,
|
|
41
|
+
changePlan: buildMinimalImplementorChangePlanPrompt,
|
|
71
42
|
};
|
|
43
|
+
export const defaultImplementorPrompts = minimalImplementorPrompts;
|
|
72
44
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/agents/implementors/prompts.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/agents/implementors/prompts.ts"],"names":[],"mappings":"AAEA,oCAAoC;AAEpC,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,OAAO;QACL,0CAA0C,QAAQ,EAAE;QACpD,EAAE;QACF,qEAAqE;KACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,QAAgB,EAChB,YAAoB;IAEpB,OAAO;QACL,0CAA0C,QAAQ,EAAE;QACpD,6BAA6B,YAAY,EAAE;QAC3C,EAAE;QACF,qDAAqD;KACtD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,YAAoB;IAEpB,OAAO;QACL,iCAAiC,YAAY,EAAE;QAC/C,EAAE;QACF,yCAAyC;KAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,QAAgB;IAEhB,OAAO;QACL,yBAAyB,QAAQ,EAAE;QACnC,EAAE;QACF,6CAA6C;KAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,2EAA2E;AAE3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AACpE,MAAM,CAAC,MAAM,8BAA8B,GAAG,qCAAqC,CAAC;AACpF,MAAM,CAAC,MAAM,oCAAoC,GAAG,2CAA2C,CAAC;AAChG,MAAM,CAAC,MAAM,gCAAgC,GAAG,uCAAuC,CAAC;AAExF,4EAA4E;AAE5E,MAAM,CAAC,MAAM,yBAAyB,GAAyB;IAC7D,OAAO,EAAE,6BAA6B;IACtC,QAAQ,EAAE,qCAAqC;IAC/C,cAAc,EAAE,2CAA2C;IAC3D,UAAU,EAAE,uCAAuC;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAyB,yBAAyB,CAAC"}
|
|
@@ -2,16 +2,15 @@ export type ImplementorPromptSet = {
|
|
|
2
2
|
initial: (planFile: string) => string;
|
|
3
3
|
revision: (planFile: string, feedbackFile: string) => string;
|
|
4
4
|
resumeRevision: (feedbackFile: string) => string;
|
|
5
|
+
changePlan: (planFile: string) => string;
|
|
5
6
|
};
|
|
6
|
-
import type { StepMeta } from "../../flow/types.js";
|
|
7
7
|
export interface ImplementorDriver {
|
|
8
8
|
readonly name: string;
|
|
9
9
|
/** Spawn a PTY process, run implementation, detect completion, send exit, return result. */
|
|
10
10
|
run(planFile: string, opts?: {
|
|
11
11
|
resumeSessionId?: string;
|
|
12
12
|
feedbackFile?: string;
|
|
13
|
-
|
|
14
|
-
consumers?: Record<string, StepMeta[]>;
|
|
13
|
+
changePlan?: boolean;
|
|
15
14
|
}): Promise<ImplementResult>;
|
|
16
15
|
/** Get the session ID for resume/correlation. */
|
|
17
16
|
getSessionId(): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4FAA4F;IAC5F,GAAG,CACD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GACA,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5B,iDAAiD;IACjD,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { PlannerDriver, PlanResult, PlannerPromptSet } from "./types.js";
|
|
2
|
-
import type { StepMeta } from "../../flow/types.js";
|
|
3
2
|
import type { ProviderStrategy } from "../../providers/types.js";
|
|
4
3
|
import { BaseAdapter } from "../runner.js";
|
|
5
4
|
type PlannerRunOptions = {
|
|
@@ -9,8 +8,6 @@ type PlannerRunOptions = {
|
|
|
9
8
|
feedbackFile?: string;
|
|
10
9
|
feedbackSource?: "reviewer" | "user";
|
|
11
10
|
implReplan?: boolean;
|
|
12
|
-
producers?: Record<string, StepMeta>;
|
|
13
|
-
consumers?: Record<string, StepMeta[]>;
|
|
14
11
|
};
|
|
15
12
|
export declare function selectPlannerPrompt(taskFile: string, opts: PlannerRunOptions, prompts?: PlannerPromptSet): string;
|
|
16
13
|
export declare class PlannerAdapter extends BaseAdapter implements PlannerDriver {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/planners/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/planners/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,KAAK,iBAAiB,GAAG;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,gBAAwC,GAChD,MAAM,CAmCR;AAED,qBAAa,cAAe,SAAQ,WAAY,YAAW,aAAa;IAIpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFzB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACE,OAAO,CAAC,EAAE,gBAAgB,YAAA,EAC3C,IAAI,CAAC,EAAE,OAAO;IAKV,GAAG,CACP,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,UAAU,CAAC;CAoDvB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BaseAdapter } from "../runner.js";
|
|
2
|
-
import { buildAgentWhipHint } from "../whip-hint.js";
|
|
3
2
|
import { defaultPlannerPrompts } from "./prompts.js";
|
|
4
3
|
export function selectPlannerPrompt(taskFile, opts, prompts = defaultPlannerPrompts) {
|
|
5
4
|
if (opts.feedbackFile) {
|
|
@@ -31,9 +30,7 @@ export class PlannerAdapter extends BaseAdapter {
|
|
|
31
30
|
? { ...opts, outputPlanFile: undefined }
|
|
32
31
|
: opts;
|
|
33
32
|
const rawPrompt = selectPlannerPrompt(taskFile, promptOpts, this.prompts);
|
|
34
|
-
const
|
|
35
|
-
const hintedPrompt = this.applyWhipHint(hint, rawPrompt);
|
|
36
|
-
const prompt = this.applyPlanModePrompt(hintedPrompt);
|
|
33
|
+
const prompt = this.applyPlanModePrompt(rawPrompt);
|
|
37
34
|
const result = await this.runAgent({
|
|
38
35
|
prompt,
|
|
39
36
|
workdir: this.workdir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/planners/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/planners/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/planners/handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,OAAO,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/planners/handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAQ7B,qBAAa,kBAAmB,YAAW,WAAW;IAGxC,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAK;gBAEJ,MAAM,EAAE,aAAa;IAEnC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CA0FvB"}
|
|
@@ -2,7 +2,7 @@ import { writeFile } from "node:fs/promises";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { appendClarifications } from "../../prompts.js";
|
|
4
4
|
import { readPlanFromContract, removeFileIfExists, } from "../../orchestrator.js";
|
|
5
|
-
import { TASK,
|
|
5
|
+
import { TASK, } from "../../flow/types.js";
|
|
6
6
|
import { bindSessionReporter, bindDriverRuntime } from "../runner.js";
|
|
7
7
|
/** Return the plan file path for a given version (1-based). */
|
|
8
8
|
function planFileForVersion(root, version) {
|
|
@@ -37,7 +37,6 @@ export class PlannerRoleHandler {
|
|
|
37
37
|
}
|
|
38
38
|
const resumeSessionId = ctx.sessionIds.get(sessionKey);
|
|
39
39
|
const implReplan = step.reads.task !== TASK;
|
|
40
|
-
const { producers, consumers } = resolveWhipNeighbors(step, ctx);
|
|
41
40
|
bindSessionReporter(this.driver, ctx.lastStepSessionFilePaths);
|
|
42
41
|
bindDriverRuntime(this.driver, { output: ctx.output, terminalHost: ctx.terminalHost });
|
|
43
42
|
const { planResult, planText, actualPlanFile } = await retry("planner", async (attempt) => {
|
|
@@ -50,8 +49,6 @@ export class PlannerRoleHandler {
|
|
|
50
49
|
feedbackFile: feedbackSource ? feedbackFile : undefined,
|
|
51
50
|
feedbackSource,
|
|
52
51
|
implReplan,
|
|
53
|
-
producers,
|
|
54
|
-
consumers,
|
|
55
52
|
});
|
|
56
53
|
const actualPlanFile = planResult.planFilePath ?? outputPlanFile;
|
|
57
54
|
const planText = await readPlanFromContract(actualPlanFile);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/planners/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,IAAI,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/planners/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,14 @@
|
|
|
1
1
|
import type { PlannerPromptSet } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Build the initial planner prompt.
|
|
4
|
-
* The planner reads the task from a file — this prompt tells it what to do.
|
|
5
|
-
*/
|
|
6
|
-
export declare function buildPlannerPrompt(taskFile: string, outputPlanFile: string | undefined): string;
|
|
7
|
-
/**
|
|
8
|
-
* Build the revision planner prompt (when feedback was received).
|
|
9
|
-
*/
|
|
10
|
-
export declare function buildRevisionPrompt(taskFile: string, planFile: string | undefined, feedbackFile: string, source: "reviewer" | "user" | undefined, outputPlanFile: string | undefined): string;
|
|
11
|
-
/**
|
|
12
|
-
* Build a lighter revision prompt for resumed sessions.
|
|
13
|
-
* The agent already has the task and previous plan in context,
|
|
14
|
-
* so we only reference the feedback file.
|
|
15
|
-
*/
|
|
16
|
-
export declare function buildResumeRevisionPrompt(feedbackFile: string, source: "reviewer" | "user" | undefined, outputPlanFile: string | undefined): string;
|
|
17
|
-
/**
|
|
18
|
-
* Prompt for the planner:impl step — plans fixes based on the approved plan
|
|
19
|
-
* and implementation review issues.
|
|
20
|
-
*/
|
|
21
|
-
export declare function buildImplRevisionPrompt(planFile: string, prevRevisePlanFile: string | undefined, feedbackFile: string, outputPlanFile: string | undefined): string;
|
|
22
|
-
export declare function buildImplResumeRevisionPrompt(feedbackFile: string, outputPlanFile: string | undefined): string;
|
|
23
2
|
export declare function buildMinimalPlannerPrompt(taskFile: string, outputPlanFile: string | undefined): string;
|
|
24
3
|
export declare function buildMinimalRevisionPrompt(taskFile: string, planFile: string | undefined, feedbackFile: string, source: "reviewer" | "user", outputPlanFile: string | undefined): string;
|
|
25
4
|
export declare function buildMinimalResumeRevisionPrompt(feedbackFile: string, source: "reviewer" | "user", outputPlanFile: string | undefined): string;
|
|
26
5
|
export declare function buildMinimalImplRevisionPrompt(planFile: string, prevRevisePlanFile: string | undefined, feedbackFile: string, outputPlanFile: string | undefined): string;
|
|
27
6
|
export declare function buildMinimalImplResumeRevisionPrompt(feedbackFile: string, outputPlanFile: string | undefined): string;
|
|
28
|
-
export declare const
|
|
7
|
+
export declare const buildPlannerPrompt: typeof buildMinimalPlannerPrompt;
|
|
8
|
+
export declare const buildRevisionPrompt: typeof buildMinimalRevisionPrompt;
|
|
9
|
+
export declare const buildResumeRevisionPrompt: typeof buildMinimalResumeRevisionPrompt;
|
|
10
|
+
export declare const buildImplRevisionPrompt: typeof buildMinimalImplRevisionPrompt;
|
|
11
|
+
export declare const buildImplResumeRevisionPrompt: typeof buildMinimalImplResumeRevisionPrompt;
|
|
29
12
|
export declare const minimalPlannerPrompts: PlannerPromptSet;
|
|
13
|
+
export declare const defaultPlannerPrompts: PlannerPromptSet;
|
|
30
14
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/agents/planners/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/agents/planners/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAcnD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,CAQR;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,UAAU,GAAG,MAAM,EAC3B,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,CAeR;AAED,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,UAAU,GAAG,MAAM,EAC3B,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,CASR;AAID,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,CAcR;AAED,wBAAgB,oCAAoC,CAClD,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,CAQR;AAID,eAAO,MAAM,kBAAkB,kCAA4B,CAAC;AAC5D,eAAO,MAAM,mBAAmB,mCAA6B,CAAC;AAC9D,eAAO,MAAM,yBAAyB,yCAAmC,CAAC;AAC1E,eAAO,MAAM,uBAAuB,uCAAiC,CAAC;AACtE,eAAO,MAAM,6BAA6B,6CAAuC,CAAC;AAIlF,eAAO,MAAM,qBAAqB,EAAE,gBAMnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,gBAAwC,CAAC"}
|