poly-weaver 0.4.4 → 0.5.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/dist/agents/implementors/handler.d.ts.map +1 -1
- package/dist/agents/implementors/handler.js +7 -2
- package/dist/agents/implementors/handler.js.map +1 -1
- package/dist/agents/planners/adapter.d.ts.map +1 -1
- package/dist/agents/planners/adapter.js +1 -0
- 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 +7 -2
- package/dist/agents/planners/handler.js.map +1 -1
- package/dist/agents/planners/types.d.ts +1 -0
- package/dist/agents/planners/types.d.ts.map +1 -1
- package/dist/agents/reviewers/adapter.d.ts +3 -2
- package/dist/agents/reviewers/adapter.d.ts.map +1 -1
- package/dist/agents/reviewers/adapter.js +14 -2
- package/dist/agents/reviewers/adapter.js.map +1 -1
- package/dist/agents/reviewers/dsl.d.ts +11 -1
- package/dist/agents/reviewers/dsl.d.ts.map +1 -1
- package/dist/agents/reviewers/dsl.js.map +1 -1
- package/dist/agents/reviewers/handler.d.ts.map +1 -1
- package/dist/agents/reviewers/handler.js +51 -2
- package/dist/agents/reviewers/handler.js.map +1 -1
- package/dist/agents/reviewers/index.d.ts +3 -3
- package/dist/agents/reviewers/index.d.ts.map +1 -1
- package/dist/agents/reviewers/index.js +9 -5
- package/dist/agents/reviewers/index.js.map +1 -1
- package/dist/agents/reviewers/prompts.d.ts +14 -2
- package/dist/agents/reviewers/prompts.d.ts.map +1 -1
- package/dist/agents/reviewers/prompts.js +106 -2
- package/dist/agents/reviewers/prompts.js.map +1 -1
- package/dist/agents/reviewers/types.d.ts +19 -1
- 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 +9 -0
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +2 -1
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/simplifiers/adapter.d.ts.map +1 -1
- package/dist/agents/simplifiers/adapter.js +1 -0
- package/dist/agents/simplifiers/adapter.js.map +1 -1
- package/dist/agents/simplifiers/handler.d.ts.map +1 -1
- package/dist/agents/simplifiers/handler.js +7 -2
- package/dist/agents/simplifiers/handler.js.map +1 -1
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/flow/built-in/default.d.ts +1 -0
- package/dist/flow/built-in/default.d.ts.map +1 -1
- package/dist/flow/built-in/default.js +37 -0
- package/dist/flow/built-in/default.js.map +1 -1
- package/dist/flow/built-in/default.ts +43 -0
- package/dist/flow/built-in/why-so-serious.d.ts +1 -0
- package/dist/flow/built-in/why-so-serious.d.ts.map +1 -1
- package/dist/flow/built-in/why-so-serious.js +37 -0
- package/dist/flow/built-in/why-so-serious.js.map +1 -1
- package/dist/flow/diagram.d.ts.map +1 -1
- package/dist/flow/diagram.js +26 -11
- package/dist/flow/diagram.js.map +1 -1
- package/dist/flow/dsl.d.ts +7 -0
- package/dist/flow/dsl.d.ts.map +1 -1
- package/dist/flow/dsl.js +35 -0
- package/dist/flow/dsl.js.map +1 -1
- package/dist/flow/executor.d.ts.map +1 -1
- package/dist/flow/executor.js +17 -0
- package/dist/flow/executor.js.map +1 -1
- package/dist/flow/types.d.ts +17 -0
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/flow/types.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +14 -0
- package/dist/orchestrator.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +8 -1
- package/dist/prompts.js.map +1 -1
- package/dist/providers/claude/completion-plan-mode.d.ts +30 -0
- package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -0
- package/dist/providers/claude/completion-plan-mode.js +151 -0
- package/dist/providers/claude/completion-plan-mode.js.map +1 -0
- package/dist/providers/claude/completion.d.ts +9 -68
- package/dist/providers/claude/completion.d.ts.map +1 -1
- package/dist/providers/claude/completion.js +21 -322
- package/dist/providers/claude/completion.js.map +1 -1
- package/dist/providers/claude/session.d.ts +24 -4
- package/dist/providers/claude/session.d.ts.map +1 -1
- package/dist/providers/claude/session.js +90 -15
- package/dist/providers/claude/session.js.map +1 -1
- package/dist/providers/claude/strategy.d.ts +4 -3
- package/dist/providers/claude/strategy.d.ts.map +1 -1
- package/dist/providers/claude/strategy.js +8 -10
- package/dist/providers/claude/strategy.js.map +1 -1
- package/dist/providers/claude/tool-tracking.d.ts +28 -0
- package/dist/providers/claude/tool-tracking.d.ts.map +1 -0
- package/dist/providers/claude/tool-tracking.js +149 -0
- package/dist/providers/claude/tool-tracking.js.map +1 -0
- package/dist/providers/codex/strategy.d.ts +3 -1
- package/dist/providers/codex/strategy.d.ts.map +1 -1
- package/dist/providers/codex/strategy.js +1 -1
- package/dist/providers/codex/strategy.js.map +1 -1
- package/dist/providers/copilot/strategy.d.ts +3 -1
- package/dist/providers/copilot/strategy.d.ts.map +1 -1
- package/dist/providers/copilot/strategy.js +1 -1
- package/dist/providers/copilot/strategy.js.map +1 -1
- package/dist/providers/invoke.js +1 -1
- package/dist/providers/invoke.js.map +1 -1
- package/dist/providers/types.d.ts +3 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/user/curate-handler.d.ts +32 -0
- package/dist/user/curate-handler.d.ts.map +1 -0
- package/dist/user/curate-handler.js +156 -0
- package/dist/user/curate-handler.js.map +1 -0
- package/dist/user/curate-prompt.d.ts +41 -0
- package/dist/user/curate-prompt.d.ts.map +1 -0
- package/dist/user/curate-prompt.js +473 -0
- package/dist/user/curate-prompt.js.map +1 -0
- package/dist/user/dsl.d.ts +1 -0
- package/dist/user/dsl.d.ts.map +1 -1
- package/dist/user/dsl.js +1 -0
- package/dist/user/dsl.js.map +1 -1
- package/dist/user/index.d.ts +3 -0
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user/index.js +2 -0
- package/dist/user/index.js.map +1 -1
- package/dist/user/prompt.d.ts +11 -0
- package/dist/user/prompt.d.ts.map +1 -1
- package/dist/user/prompt.js +40 -7
- package/dist/user/prompt.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { flagIf } from "../types.js";
|
|
2
2
|
import { versionGte } from "../version.js";
|
|
3
|
-
import {
|
|
3
|
+
import { ClaudePrimaryDetector } from "./completion.js";
|
|
4
|
+
import { ClaudePlanModeDetector } from "./completion-plan-mode.js";
|
|
4
5
|
import { ClaudeSessionHandler } from "./session.js";
|
|
5
6
|
export class ClaudeStrategy {
|
|
6
7
|
name = "claude";
|
|
@@ -31,15 +32,12 @@ export class ClaudeStrategy {
|
|
|
31
32
|
args.push(prompt);
|
|
32
33
|
return args;
|
|
33
34
|
}
|
|
34
|
-
createDetector() {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
// ClaudeCompletionStrategy.isStaleFallbackReady and the doc comment on
|
|
41
|
-
// the strategy class for the full reasoning.
|
|
42
|
-
return new ClaudeCompletionStrategy(200, 500, this.planMode.exitToolName, 15_000);
|
|
35
|
+
createDetector(opts) {
|
|
36
|
+
const useNativePlanMode = opts?.planMode === true && this.planMode.nativePlanFile === true;
|
|
37
|
+
if (useNativePlanMode) {
|
|
38
|
+
return new ClaudePlanModeDetector(200, 500, this.planMode.exitToolName, 30_000);
|
|
39
|
+
}
|
|
40
|
+
return new ClaudePrimaryDetector(200, 500);
|
|
43
41
|
}
|
|
44
42
|
}
|
|
45
43
|
//# sourceMappingURL=strategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/claude/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/claude/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,aAAa,CAAC;IAC5B,OAAO,GAAG,QAAQ,CAAC;IACnB,UAAU,GAAG,SAAS,CAAC;IACvB,OAAO,GAAmB,IAAI,oBAAoB,EAAE,CAAC;IAC9D,OAAO,GAAuB,SAAS,CAAC;IAExC,IAAI,QAAQ;QACV,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB;YAC3D,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,MAAM;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAmB;QACjD,MAAM,IAAI,GAAa;YACrB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,gCAAgC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;SAChC,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,IAA6B;QAC1C,MAAM,iBAAiB,GACrB,IAAI,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAC;QACnE,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,IAAI,sBAAsB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,YAAY,EAC1B,MAAM,CACP,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SessionLine } from "../../session/reader.js";
|
|
2
|
+
export interface ToolUseInfo {
|
|
3
|
+
name: string | undefined;
|
|
4
|
+
filePath: string | undefined;
|
|
5
|
+
query: string | undefined;
|
|
6
|
+
useIdx: number;
|
|
7
|
+
resolvedResultIdx: number;
|
|
8
|
+
}
|
|
9
|
+
export interface TrackingResult {
|
|
10
|
+
pendingToolUses: Set<string>;
|
|
11
|
+
pendingAsyncToolUses: Set<string>;
|
|
12
|
+
pendingNonAsyncToolUses: Set<string>;
|
|
13
|
+
resolvedIds: Set<string>;
|
|
14
|
+
perToolUseInfo: Map<string, ToolUseInfo>;
|
|
15
|
+
lastToolActivityIdx: number;
|
|
16
|
+
lastToolResultIdx: number;
|
|
17
|
+
lastAssistantLineIdx: number;
|
|
18
|
+
lastAssistantTextIdx: number;
|
|
19
|
+
lastAssistantStopReason: string | null | undefined;
|
|
20
|
+
awaitingPromisedToolUse: boolean;
|
|
21
|
+
hasTextOutput: boolean;
|
|
22
|
+
sawResolvedToolSearchExitPlanModePrefetch: boolean;
|
|
23
|
+
sawResolvedToolSearchAskUserQuestionPrefetch: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function trackPendingToolUses(currentLines: SessionLine[], opts?: {
|
|
26
|
+
ignoredToolNames?: ReadonlySet<string>;
|
|
27
|
+
}): TrackingResult;
|
|
28
|
+
//# sourceMappingURL=tool-tracking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-tracking.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/tool-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAY3D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnD,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,yCAAyC,EAAE,OAAO,CAAC;IACnD,4CAA4C,EAAE,OAAO,CAAC;CACvD;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,WAAW,EAAE,EAC3B,IAAI,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,GAChD,cAAc,CAmKhB"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolution signal for any Claude Code tool launched asynchronously
|
|
3
|
+
* (Agent fork/subagent, Bash with run_in_background, Monitor, etc.).
|
|
4
|
+
* The launch-ack `tool_result` for these arrives with
|
|
5
|
+
* `toolUseResult.isAsync === true`; the actual completion lands later as a
|
|
6
|
+
* string user message containing the original `tool_use_id`.
|
|
7
|
+
*/
|
|
8
|
+
const TASK_NOTIFICATION_REGEX = /^<task-notification>[\s\S]*?<tool-use-id>([^<]+)<\/tool-use-id>/;
|
|
9
|
+
export function trackPendingToolUses(currentLines, opts) {
|
|
10
|
+
const pendingToolUses = new Set();
|
|
11
|
+
const asyncAcknowledgedIds = new Set();
|
|
12
|
+
const resolvedIds = new Set();
|
|
13
|
+
const resolvedResultIdxByToolUseId = new Map();
|
|
14
|
+
const perToolUseInfo = new Map();
|
|
15
|
+
const ignoredToolNames = opts?.ignoredToolNames;
|
|
16
|
+
let lastToolActivityIdx = -1;
|
|
17
|
+
let lastToolResultIdx = -1;
|
|
18
|
+
let lastAssistantLineIdx = -1;
|
|
19
|
+
let lastAssistantTextIdx = -1;
|
|
20
|
+
let lastAssistantStopReason;
|
|
21
|
+
let hasTextOutput = false;
|
|
22
|
+
const stopReasonToolUseMessages = new Set();
|
|
23
|
+
const messagesWithToolUseBlock = new Set();
|
|
24
|
+
for (let idx = 0; idx < currentLines.length; idx++) {
|
|
25
|
+
const line = currentLines[idx];
|
|
26
|
+
if (line.type === "assistant") {
|
|
27
|
+
const message = line.message;
|
|
28
|
+
if (!message?.content)
|
|
29
|
+
continue;
|
|
30
|
+
lastAssistantLineIdx = idx;
|
|
31
|
+
lastAssistantStopReason = message.stop_reason;
|
|
32
|
+
const messageId = message.id;
|
|
33
|
+
if (messageId && message.stop_reason === "tool_use") {
|
|
34
|
+
stopReasonToolUseMessages.add(messageId);
|
|
35
|
+
}
|
|
36
|
+
for (const block of message.content) {
|
|
37
|
+
if (block.type === "tool_use" && block.id) {
|
|
38
|
+
if (messageId)
|
|
39
|
+
messagesWithToolUseBlock.add(messageId);
|
|
40
|
+
if (ignoredToolNames?.has(block.name ?? "")) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
pendingToolUses.add(block.id);
|
|
44
|
+
lastToolActivityIdx = idx;
|
|
45
|
+
perToolUseInfo.set(block.id, {
|
|
46
|
+
name: block.name,
|
|
47
|
+
filePath: typeof block.input?.file_path === "string"
|
|
48
|
+
? block.input.file_path
|
|
49
|
+
: undefined,
|
|
50
|
+
query: typeof block.input?.query === "string"
|
|
51
|
+
? block.input.query
|
|
52
|
+
: undefined,
|
|
53
|
+
useIdx: idx,
|
|
54
|
+
resolvedResultIdx: -1,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (block.type === "text" && block.text) {
|
|
58
|
+
hasTextOutput = true;
|
|
59
|
+
lastAssistantTextIdx = idx;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (line.type === "user") {
|
|
64
|
+
const message = line.message;
|
|
65
|
+
if (!message?.content)
|
|
66
|
+
continue;
|
|
67
|
+
if (typeof message.content === "string") {
|
|
68
|
+
const m = TASK_NOTIFICATION_REGEX.exec(message.content);
|
|
69
|
+
if (m) {
|
|
70
|
+
const id = m[1];
|
|
71
|
+
pendingToolUses.delete(id);
|
|
72
|
+
resolvedIds.add(id);
|
|
73
|
+
resolvedResultIdxByToolUseId.set(id, idx);
|
|
74
|
+
lastToolActivityIdx = idx;
|
|
75
|
+
lastToolResultIdx = idx;
|
|
76
|
+
}
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const tur = line
|
|
80
|
+
.toolUseResult;
|
|
81
|
+
const isAsyncLaunch = !!tur && tur.isAsync === true;
|
|
82
|
+
for (const block of message.content) {
|
|
83
|
+
if (block.type === "tool_result" && block.tool_use_id) {
|
|
84
|
+
lastToolResultIdx = idx;
|
|
85
|
+
if (isAsyncLaunch) {
|
|
86
|
+
asyncAcknowledgedIds.add(block.tool_use_id);
|
|
87
|
+
lastToolActivityIdx = idx;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
pendingToolUses.delete(block.tool_use_id);
|
|
91
|
+
resolvedIds.add(block.tool_use_id);
|
|
92
|
+
resolvedResultIdxByToolUseId.set(block.tool_use_id, idx);
|
|
93
|
+
lastToolActivityIdx = idx;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
for (const [id, info] of perToolUseInfo) {
|
|
99
|
+
if (resolvedIds.has(id))
|
|
100
|
+
pendingToolUses.delete(id);
|
|
101
|
+
info.resolvedResultIdx = resolvedResultIdxByToolUseId.get(id) ?? -1;
|
|
102
|
+
}
|
|
103
|
+
const pendingAsyncToolUses = new Set();
|
|
104
|
+
const pendingNonAsyncToolUses = new Set();
|
|
105
|
+
for (const id of pendingToolUses) {
|
|
106
|
+
if (asyncAcknowledgedIds.has(id)) {
|
|
107
|
+
pendingAsyncToolUses.add(id);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
pendingNonAsyncToolUses.add(id);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
let awaitingPromisedToolUse = false;
|
|
114
|
+
for (const id of stopReasonToolUseMessages) {
|
|
115
|
+
if (!messagesWithToolUseBlock.has(id)) {
|
|
116
|
+
awaitingPromisedToolUse = true;
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
let sawResolvedToolSearchExitPlanModePrefetch = false;
|
|
121
|
+
let sawResolvedToolSearchAskUserQuestionPrefetch = false;
|
|
122
|
+
for (const info of perToolUseInfo.values()) {
|
|
123
|
+
if (info.name !== "ToolSearch" || info.resolvedResultIdx < 0)
|
|
124
|
+
continue;
|
|
125
|
+
if (info.query?.includes("ExitPlanMode")) {
|
|
126
|
+
sawResolvedToolSearchExitPlanModePrefetch = true;
|
|
127
|
+
}
|
|
128
|
+
if (info.query?.includes("AskUserQuestion")) {
|
|
129
|
+
sawResolvedToolSearchAskUserQuestionPrefetch = true;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
pendingToolUses,
|
|
134
|
+
pendingAsyncToolUses,
|
|
135
|
+
pendingNonAsyncToolUses,
|
|
136
|
+
resolvedIds,
|
|
137
|
+
perToolUseInfo,
|
|
138
|
+
lastToolActivityIdx,
|
|
139
|
+
lastToolResultIdx,
|
|
140
|
+
lastAssistantLineIdx,
|
|
141
|
+
lastAssistantTextIdx,
|
|
142
|
+
lastAssistantStopReason,
|
|
143
|
+
awaitingPromisedToolUse,
|
|
144
|
+
hasTextOutput,
|
|
145
|
+
sawResolvedToolSearchExitPlanModePrefetch,
|
|
146
|
+
sawResolvedToolSearchAskUserQuestionPrefetch,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=tool-tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-tracking.js","sourceRoot":"","sources":["../../../src/providers/claude/tool-tracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ export declare class CodexStrategy implements ProviderStrategy {
|
|
|
9
9
|
version: string | undefined;
|
|
10
10
|
readonly planMode: PlanModeConfig;
|
|
11
11
|
buildArgs(prompt: string, opts: BuildArgsOpts): Promise<string[]>;
|
|
12
|
-
createDetector(
|
|
12
|
+
createDetector(_opts?: {
|
|
13
|
+
planMode?: boolean;
|
|
14
|
+
}): CodexCompletionStrategy;
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,UAAU,YAAU;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAA6B;IAC7D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAG/B;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBvE,cAAc,
|
|
1
|
+
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,qBAAa,aAAc,YAAW,gBAAgB;IACpD,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,UAAU,YAAU;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAA6B;IAC7D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAG/B;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBvE,cAAc,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,uBAAuB;CAGxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/codex/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,OAAO,CAAC;IACf,WAAW,GAAG,WAAW,CAAC;IAC1B,OAAO,GAAG,OAAO,CAAC;IAClB,UAAU,GAAG,MAAM,CAAC;IACpB,OAAO,GAAmB,IAAI,mBAAmB,EAAE,CAAC;IAC7D,OAAO,GAAuB,SAAS,CAAC;IAC/B,QAAQ,GAAmB;QAClC,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,cAAc;KAC7B,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAmB;QACjD,kEAAkE;QAClE,uEAAuE;QACvE,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,+DAA+D;YAC/D,OAAO;gBACL,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,4CAA4C,CAAC;gBAClE,QAAQ;gBACR,IAAI,CAAC,eAAe;gBACpB,SAAS;aACV,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,4CAA4C,CAAC;YAClE,GAAG,MAAM,GAAG,SAAS,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,cAAc;
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/codex/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,OAAO,CAAC;IACf,WAAW,GAAG,WAAW,CAAC;IAC1B,OAAO,GAAG,OAAO,CAAC;IAClB,UAAU,GAAG,MAAM,CAAC;IACpB,OAAO,GAAmB,IAAI,mBAAmB,EAAE,CAAC;IAC7D,OAAO,GAAuB,SAAS,CAAC;IAC/B,QAAQ,GAAmB;QAClC,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,cAAc;KAC7B,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAmB;QACjD,kEAAkE;QAClE,uEAAuE;QACvE,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,+DAA+D;YAC/D,OAAO;gBACL,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,4CAA4C,CAAC;gBAClE,QAAQ;gBACR,IAAI,CAAC,eAAe;gBACpB,SAAS;aACV,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,4CAA4C,CAAC;YAClE,GAAG,MAAM,GAAG,SAAS,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,KAA8B;QAC3C,OAAO,IAAI,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -9,6 +9,8 @@ export declare class CopilotStrategy implements ProviderStrategy {
|
|
|
9
9
|
version: string | undefined;
|
|
10
10
|
readonly planMode: PlanModeConfig;
|
|
11
11
|
buildArgs(prompt: string, opts: BuildArgsOpts): Promise<string[]>;
|
|
12
|
-
createDetector(
|
|
12
|
+
createDetector(_opts?: {
|
|
13
|
+
planMode?: boolean;
|
|
14
|
+
}): CopilotCompletionDetector;
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=strategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/providers/copilot/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,OAAO,aAAa;IAC7B,QAAQ,CAAC,UAAU,YAAU;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAA+B;IAC/D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAI/B;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BvE,cAAc,
|
|
1
|
+
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/providers/copilot/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,OAAO,aAAa;IAC7B,QAAQ,CAAC,UAAU,YAAU;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAA+B;IAC/D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAI/B;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BvE,cAAc,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,yBAAyB;CAG1E"}
|
|
@@ -41,7 +41,7 @@ export class CopilotStrategy {
|
|
|
41
41
|
const prefix = opts.promptPrefix ?? "";
|
|
42
42
|
return ["-i", `${prefix}${promptRef}`, ...flagIf(opts.yolo, "--allow-all")];
|
|
43
43
|
}
|
|
44
|
-
createDetector() {
|
|
44
|
+
createDetector(_opts) {
|
|
45
45
|
return new CopilotCompletionDetector(100, 200, this.planMode.exitToolName);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/copilot/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,oBAAoB,CAAC;IACnC,OAAO,GAAG,SAAS,CAAC;IACpB,UAAU,GAAG,MAAM,CAAC;IACpB,OAAO,GAAmB,IAAI,qBAAqB,EAAE,CAAC;IAC/D,OAAO,GAAuB,SAAS,CAAC;IAC/B,QAAQ,GAAmB;QAClC,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,gBAAgB;QAC9B,cAAc,EAAE,IAAI;KACrB,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAmB;QACjD,wEAAwE;QACxE,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO;gBACL,UAAU;gBACV,IAAI,CAAC,eAAe;gBACpB,IAAI;gBACJ,SAAS;gBACT,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;aACpC,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YACvC,OAAO;gBACL,YAAY,IAAI,CAAC,SAAS,EAAE;gBAC5B,IAAI;gBACJ,GAAG,MAAM,GAAG,SAAS,EAAE;gBACvB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;aACpC,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,uEAAuE;QACvE,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,cAAc;
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/copilot/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,oBAAoB,CAAC;IACnC,OAAO,GAAG,SAAS,CAAC;IACpB,UAAU,GAAG,MAAM,CAAC;IACpB,OAAO,GAAmB,IAAI,qBAAqB,EAAE,CAAC;IAC/D,OAAO,GAAuB,SAAS,CAAC;IAC/B,QAAQ,GAAmB;QAClC,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,gBAAgB;QAC9B,cAAc,EAAE,IAAI;KACrB,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAmB;QACjD,wEAAwE;QACxE,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO;gBACL,UAAU;gBACV,IAAI,CAAC,eAAe;gBACpB,IAAI;gBACJ,SAAS;gBACT,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;aACpC,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YACvC,OAAO;gBACL,YAAY,IAAI,CAAC,SAAS,EAAE;gBAC5B,IAAI;gBACJ,GAAG,MAAM,GAAG,SAAS,EAAE;gBACvB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;aACpC,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,uEAAuE;QACvE,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,cAAc,CAAC,KAA8B;QAC3C,OAAO,IAAI,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC7E,CAAC;CACF"}
|
package/dist/providers/invoke.js
CHANGED
|
@@ -35,7 +35,7 @@ export async function invoke(provider, prompt, workdir) {
|
|
|
35
35
|
cwd: workdir,
|
|
36
36
|
interactive: false,
|
|
37
37
|
});
|
|
38
|
-
const detector = strategy.createDetector();
|
|
38
|
+
const detector = strategy.createDetector({ planMode: false });
|
|
39
39
|
handle.onData((data) => detector.onPtyData(data));
|
|
40
40
|
try {
|
|
41
41
|
const sessionFile = predictedFile
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/providers/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,QAAmC,EACnC,MAAc,EACd,OAAe;IAEf,MAAM,QAAQ,GACZ,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEtE,uCAAuC;IACvC,IAAI,oBAAwC,CAAC;IAC7C,IAAI,aAAiC,CAAC;IACtC,IAAI,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACxC,oBAAoB,GAAG,UAAU,EAAE,CAAC;QACpC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;QAC/D,aAAa;YACX,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC;YAC7C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC;QACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI;QACJ,GAAG,EAAE,OAAO;QACZ,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/providers/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,QAAmC,EACnC,MAAc,EACd,OAAe;IAEf,MAAM,QAAQ,GACZ,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEtE,uCAAuC;IACvC,IAAI,oBAAwC,CAAC;IAC7C,IAAI,aAAiC,CAAC;IACtC,IAAI,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACxC,oBAAoB,GAAG,UAAU,EAAE,CAAC;QACpC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;QAC/D,aAAa;YACX,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC;YAC7C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC;QACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI;QACJ,GAAG,EAAE,OAAO;QACZ,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,aAAa;YAC/B,CAAC,CAAC,MAAM,WAAW,CAAC,aAAa,CAAC;YAClC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEvD,MAAM,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEnB,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -118,7 +118,9 @@ export interface ProviderStrategy {
|
|
|
118
118
|
*/
|
|
119
119
|
buildArgs(prompt: string, opts: BuildArgsOpts): Promise<string[]>;
|
|
120
120
|
/** Create a new CompletionDetector for this provider. */
|
|
121
|
-
createDetector(
|
|
121
|
+
createDetector(opts?: {
|
|
122
|
+
planMode?: boolean;
|
|
123
|
+
}): CompletionDetector;
|
|
122
124
|
}
|
|
123
125
|
/**
|
|
124
126
|
* Watches a session file and PTY output to detect when an agent turn is complete.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAExD,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,mEAAmE;AACnE,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7E;AAED;;;;;;;;;GASG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAEpD,4DAA4D;IAC5D,eAAe,CACb,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,iEAAiE;IACjE,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3D;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhE;;;;;;OAMG;IACH,qBAAqB,CAAC,CACpB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEhC;;;;;;OAMG;IACH,mBAAmB,CAAC,CAClB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAElE,yDAAyD;IACzD,cAAc,IAAI,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { BaseStep, StepContext, StepSignal, RetryFn, RoleHandler } from "../flow/types.js";
|
|
2
|
+
import type { ReviewVerdict } from "../agents/reviewers/types.js";
|
|
3
|
+
import type { CuratePromptHandler, CurateDecisionRecord } from "./curate-prompt.js";
|
|
4
|
+
export interface UserDecisionsSidecar {
|
|
5
|
+
decisions: Array<{
|
|
6
|
+
index: number;
|
|
7
|
+
decision: "keep" | "drop" | "revise";
|
|
8
|
+
comment?: string;
|
|
9
|
+
issue: {
|
|
10
|
+
description: string;
|
|
11
|
+
category?: string;
|
|
12
|
+
severity?: string;
|
|
13
|
+
};
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* RoleHandler for the `user:curate-verdict` step.
|
|
18
|
+
*
|
|
19
|
+
* Reads the current verdict, presents it to the user as a checklist, and
|
|
20
|
+
* produces:
|
|
21
|
+
* - an *overwritten* verdict artifact with curated issues, and
|
|
22
|
+
* - a `userDecisions` sidecar artifact embedding the per-issue decisions
|
|
23
|
+
* (with full issue snapshots so downstream reviewers can match by content
|
|
24
|
+
* when array indices have drifted across cycles).
|
|
25
|
+
*/
|
|
26
|
+
export declare class CurateVerdictRoleHandler implements RoleHandler {
|
|
27
|
+
private prompt;
|
|
28
|
+
constructor(prompt: CuratePromptHandler);
|
|
29
|
+
execute(step: BaseStep, ctx: StepContext, _retry: RetryFn): Promise<StepSignal>;
|
|
30
|
+
}
|
|
31
|
+
export declare function buildCuratedVerdict(verdict: ReviewVerdict, decisions: CurateDecisionRecord[]): ReviewVerdict;
|
|
32
|
+
//# sourceMappingURL=curate-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curate-handler.d.ts","sourceRoot":"","sources":["../../src/user/curate-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,OAAO,EACP,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACtE,CAAC,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAyB,YAAW,WAAW;IAC9C,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAEzC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC;CAkHvB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,oBAAoB,EAAE,GAChC,aAAa,CAyBf"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { writeFile } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { appendClarifications } from "../prompts.js";
|
|
4
|
+
import { TASK } from "../flow/types.js";
|
|
5
|
+
/**
|
|
6
|
+
* RoleHandler for the `user:curate-verdict` step.
|
|
7
|
+
*
|
|
8
|
+
* Reads the current verdict, presents it to the user as a checklist, and
|
|
9
|
+
* produces:
|
|
10
|
+
* - an *overwritten* verdict artifact with curated issues, and
|
|
11
|
+
* - a `userDecisions` sidecar artifact embedding the per-issue decisions
|
|
12
|
+
* (with full issue snapshots so downstream reviewers can match by content
|
|
13
|
+
* when array indices have drifted across cycles).
|
|
14
|
+
*/
|
|
15
|
+
export class CurateVerdictRoleHandler {
|
|
16
|
+
prompt;
|
|
17
|
+
constructor(prompt) {
|
|
18
|
+
this.prompt = prompt;
|
|
19
|
+
}
|
|
20
|
+
async execute(step, ctx, _retry) {
|
|
21
|
+
const verdictKey = step.reads.verdict;
|
|
22
|
+
if (!verdictKey)
|
|
23
|
+
throw new Error("CurateVerdictRoleHandler: verdict read missing");
|
|
24
|
+
const verdict = ctx.artifacts.getData(verdictKey);
|
|
25
|
+
if (!verdict || (verdict.issues?.length ?? 0) === 0) {
|
|
26
|
+
return { kind: "continue" };
|
|
27
|
+
}
|
|
28
|
+
// Non-TTY guard: treat every issue as keep, write sidecar, leave verdict unchanged.
|
|
29
|
+
let result;
|
|
30
|
+
if (!process.stdin.isTTY) {
|
|
31
|
+
result = {
|
|
32
|
+
decisions: verdict.issues.map((_, index) => ({ index, decision: "keep" })),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
result = await this.prompt.prompt(verdict);
|
|
37
|
+
}
|
|
38
|
+
// Defensive: a `revise` without a non-empty comment cannot drive the
|
|
39
|
+
// sub-loop forward (the sub-loop's `until` predicate gates exit on the
|
|
40
|
+
// presence of revise comments). Downgrade any such record to "keep" so
|
|
41
|
+
// the sidecar never contains an actionless revise.
|
|
42
|
+
result = {
|
|
43
|
+
decisions: result.decisions.map((d) => {
|
|
44
|
+
if (d.decision === "revise" && !d.comment?.trim()) {
|
|
45
|
+
return { index: d.index, decision: "keep" };
|
|
46
|
+
}
|
|
47
|
+
return d;
|
|
48
|
+
}),
|
|
49
|
+
};
|
|
50
|
+
const taskClarifications = result.decisions.flatMap((d) => {
|
|
51
|
+
if (d.decision === "keep")
|
|
52
|
+
return [];
|
|
53
|
+
const issue = verdict.issues[d.index];
|
|
54
|
+
if (!issue)
|
|
55
|
+
return [];
|
|
56
|
+
if (d.decision === "revise") {
|
|
57
|
+
return [{
|
|
58
|
+
type: "comment",
|
|
59
|
+
text: `Regarding the reviewer concern "${issue.description}": ${d.comment?.trim()}.`,
|
|
60
|
+
}];
|
|
61
|
+
}
|
|
62
|
+
return [{
|
|
63
|
+
type: "comment",
|
|
64
|
+
text: `The reviewer concern "${issue.description}" has been waived; do not raise it again in any form.`,
|
|
65
|
+
}];
|
|
66
|
+
});
|
|
67
|
+
if (taskClarifications.length > 0) {
|
|
68
|
+
const taskArtifact = ctx.artifacts.get(TASK);
|
|
69
|
+
const taskContent = taskArtifact?.text ?? "";
|
|
70
|
+
const appended = appendClarifications(taskContent, taskClarifications, ctx.nextClarificationNumber);
|
|
71
|
+
ctx.nextClarificationNumber = appended.nextNumber;
|
|
72
|
+
ctx.artifacts.set(TASK, {
|
|
73
|
+
...(taskArtifact ?? {}),
|
|
74
|
+
text: appended.content,
|
|
75
|
+
file: taskArtifact?.file,
|
|
76
|
+
});
|
|
77
|
+
if (taskArtifact?.file) {
|
|
78
|
+
await writeFile(taskArtifact.file, appended.content, "utf-8");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const curated = buildCuratedVerdict(verdict, result.decisions);
|
|
82
|
+
const verdictWriteKey = step.writes.verdict ?? verdictKey;
|
|
83
|
+
const verdictFile = join(ctx.sessionDir, "verdict.json");
|
|
84
|
+
const curatedJson = JSON.stringify(curated, null, 2);
|
|
85
|
+
await writeFile(verdictFile, curatedJson, "utf-8");
|
|
86
|
+
ctx.artifacts.set(verdictWriteKey, {
|
|
87
|
+
file: verdictFile,
|
|
88
|
+
data: curated,
|
|
89
|
+
text: curatedJson,
|
|
90
|
+
meta: { source: "reviewer" },
|
|
91
|
+
});
|
|
92
|
+
const decisionsKey = step.writes.userDecisions;
|
|
93
|
+
if (decisionsKey) {
|
|
94
|
+
const sidecar = {
|
|
95
|
+
decisions: result.decisions.map((d) => {
|
|
96
|
+
const issue = verdict.issues[d.index];
|
|
97
|
+
const issueSnapshot = {
|
|
98
|
+
description: issue.description,
|
|
99
|
+
};
|
|
100
|
+
if (issue.category != null)
|
|
101
|
+
issueSnapshot.category = issue.category;
|
|
102
|
+
if (issue.severity != null)
|
|
103
|
+
issueSnapshot.severity = issue.severity;
|
|
104
|
+
const rec = {
|
|
105
|
+
index: d.index,
|
|
106
|
+
decision: d.decision,
|
|
107
|
+
issue: issueSnapshot,
|
|
108
|
+
};
|
|
109
|
+
if (d.decision === "revise" && d.comment) {
|
|
110
|
+
rec.comment = d.comment;
|
|
111
|
+
}
|
|
112
|
+
return rec;
|
|
113
|
+
}),
|
|
114
|
+
};
|
|
115
|
+
const decisionsFile = join(ctx.sessionDir, "user-decisions.json");
|
|
116
|
+
const decisionsJson = JSON.stringify(sidecar, null, 2);
|
|
117
|
+
await writeFile(decisionsFile, decisionsJson, "utf-8");
|
|
118
|
+
ctx.artifacts.set(decisionsKey, {
|
|
119
|
+
file: decisionsFile,
|
|
120
|
+
data: sidecar,
|
|
121
|
+
text: decisionsJson,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return { kind: "continue" };
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
export function buildCuratedVerdict(verdict, decisions) {
|
|
128
|
+
const curatedIssues = [];
|
|
129
|
+
for (const d of decisions) {
|
|
130
|
+
const original = verdict.issues[d.index];
|
|
131
|
+
if (!original)
|
|
132
|
+
continue;
|
|
133
|
+
if (d.decision === "drop")
|
|
134
|
+
continue;
|
|
135
|
+
if (d.decision === "keep") {
|
|
136
|
+
if (d.comment) {
|
|
137
|
+
curatedIssues.push({
|
|
138
|
+
...original,
|
|
139
|
+
description: `${original.description}\n\n[user comment] ${d.comment}`,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
curatedIssues.push({ ...original });
|
|
144
|
+
}
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
// revise: keep as-is in the curated verdict (the comment goes through the sidecar)
|
|
148
|
+
curatedIssues.push({ ...original });
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
approved: curatedIssues.length === 0,
|
|
152
|
+
issues: curatedIssues,
|
|
153
|
+
summary: verdict.summary,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=curate-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curate-handler.js","sourceRoot":"","sources":["../../src/user/curate-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ReviewVerdict } from "../agents/reviewers/types.js";
|
|
2
|
+
export type CurateDecision = "keep" | "drop" | "revise";
|
|
3
|
+
export interface CurateDecisionRecord {
|
|
4
|
+
index: number;
|
|
5
|
+
decision: CurateDecision;
|
|
6
|
+
comment?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CurateResult {
|
|
9
|
+
/** One record per input issue, same length, same order. */
|
|
10
|
+
decisions: CurateDecisionRecord[];
|
|
11
|
+
}
|
|
12
|
+
export interface CuratePromptHandler {
|
|
13
|
+
prompt(verdict: ReviewVerdict): Promise<CurateResult>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Wrap `text` to fit within `width` visible columns per output line.
|
|
17
|
+
*
|
|
18
|
+
* Splits on `\n` first (paragraph breaks), then word-wraps each paragraph,
|
|
19
|
+
* then hard-breaks any single token that exceeds `width`. Empty input
|
|
20
|
+
* returns `[""]` so callers always emit at least one row. Width measurement
|
|
21
|
+
* uses `visibleLength` so wide emoji and ANSI styling are accounted for.
|
|
22
|
+
*
|
|
23
|
+
* Contract: every returned string satisfies `visibleLength(line) <= width`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function wrapToWidth(text: string, width: number): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Clip a single (possibly ANSI-styled) line so its visible width does not
|
|
28
|
+
* exceed `width`. ANSI escape sequences pass through with zero width. If the
|
|
29
|
+
* input contained any ANSI styling and we had to truncate, append `reset`
|
|
30
|
+
* so styling does not bleed past the clipped boundary.
|
|
31
|
+
*
|
|
32
|
+
* Contract: returned string satisfies `visibleLength(line) <= width`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function clipToWidth(line: string, width: number): string;
|
|
35
|
+
export declare class CurateVerdictPrompt implements CuratePromptHandler {
|
|
36
|
+
readonly onDumpRequested?: (() => void) | undefined;
|
|
37
|
+
constructor(onDumpRequested?: (() => void) | undefined);
|
|
38
|
+
prompt(verdict: ReviewVerdict): Promise<CurateResult>;
|
|
39
|
+
private runChecklist;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=curate-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curate-prompt.d.ts","sourceRoot":"","sources":["../../src/user/curate-prompt.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACvD;AA0BD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAwDjE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA4B/D;AAED,qBAAa,mBAAoB,YAAW,mBAAmB;IACjD,QAAQ,CAAC,eAAe,CAAC,GAAE,MAAM,IAAI;gBAA5B,eAAe,CAAC,GAAE,MAAM,IAAI,aAAA;IAE3C,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAS3D,OAAO,CAAC,YAAY;CA2VrB"}
|