hoomanjs 1.39.2 → 1.40.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/acp/approvals.js +41 -17
- package/dist/acp/approvals.js.map +1 -1
- package/dist/chat/app.js +1 -1
- package/dist/chat/app.js.map +1 -1
- package/dist/chat/approvals.d.ts +3 -3
- package/dist/chat/approvals.js +12 -3
- package/dist/chat/approvals.js.map +1 -1
- package/dist/chat/components/ApprovalPrompt.d.ts +4 -3
- package/dist/chat/components/ApprovalPrompt.js +38 -1
- package/dist/chat/components/ApprovalPrompt.js.map +1 -1
- package/dist/chat/components/BottomChrome.d.ts +4 -3
- package/dist/chat/components/BottomChrome.js +2 -2
- package/dist/chat/components/BottomChrome.js.map +1 -1
- package/dist/chat/components/ChromePicker.d.ts +4 -3
- package/dist/chat/components/ChromePicker.js +2 -2
- package/dist/chat/components/ChromePicker.js.map +1 -1
- package/dist/chat/types.d.ts +5 -0
- package/dist/core/approvals/intervention.d.ts +6 -0
- package/dist/core/approvals/intervention.js +26 -2
- package/dist/core/approvals/intervention.js.map +1 -1
- package/dist/core/prompts/modes/plan.md +2 -1
- package/dist/core/prompts/static/planning.md +4 -4
- package/dist/core/state/plan.d.ts +9 -0
- package/dist/core/state/plan.js +16 -0
- package/dist/core/state/plan.js.map +1 -1
- package/dist/core/state/tool-approvals.js +3 -2
- package/dist/core/state/tool-approvals.js.map +1 -1
- package/dist/core/tools/plan.d.ts +1 -0
- package/dist/core/tools/plan.js +36 -4
- package/dist/core/tools/plan.js.map +1 -1
- package/package.json +1 -1
package/dist/acp/approvals.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { methods, RequestError, } from "@agentclientprotocol/sdk";
|
|
2
2
|
import { HoomanToolApprovalIntervention } from "../core/approvals/intervention.js";
|
|
3
|
+
import { EXIT_PLAN_MODE_TOOL } from "../core/state/tool-approvals.js";
|
|
3
4
|
import { inferToolKind, toolDisplayTitle } from "./utils/tool-kind.js";
|
|
4
5
|
import { toolCallLocationsFromInput } from "./utils/tool-locations.js";
|
|
5
6
|
/** JSON-RPC "Request Cancelled" (-32800), sent when a request is cancelled. */
|
|
@@ -59,6 +60,39 @@ streamPrimedToolCallIds) {
|
|
|
59
60
|
// cascades a `$/cancel_request` to the client instead of hanging.
|
|
60
61
|
const cancellationSignal = event.agent.cancelSignal;
|
|
61
62
|
const cancelledReason = `Tool "${request.toolName}" permission request was cancelled.`;
|
|
63
|
+
// `exit_plan_mode` is a proposal to leave planning: framed as start/keep
|
|
64
|
+
// and declining leaves the session in plan mode to keep refining.
|
|
65
|
+
const isPlanExit = request.toolName === EXIT_PLAN_MODE_TOOL;
|
|
66
|
+
const options = isPlanExit
|
|
67
|
+
? [
|
|
68
|
+
{
|
|
69
|
+
kind: "allow_once",
|
|
70
|
+
name: "Start implementing",
|
|
71
|
+
optionId: "allow_once",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
kind: "reject_once",
|
|
75
|
+
name: "Keep planning",
|
|
76
|
+
optionId: "reject_once",
|
|
77
|
+
},
|
|
78
|
+
]
|
|
79
|
+
: [
|
|
80
|
+
{
|
|
81
|
+
kind: "allow_once",
|
|
82
|
+
name: "Allow once",
|
|
83
|
+
optionId: "allow_once",
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
kind: "allow_always",
|
|
87
|
+
name: "Always allow",
|
|
88
|
+
optionId: "allow_always",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
kind: "reject_once",
|
|
92
|
+
name: "Reject",
|
|
93
|
+
optionId: "reject_once",
|
|
94
|
+
},
|
|
95
|
+
];
|
|
62
96
|
let response;
|
|
63
97
|
try {
|
|
64
98
|
response = await client.request(methods.client.session.requestPermission, {
|
|
@@ -71,23 +105,7 @@ streamPrimedToolCallIds) {
|
|
|
71
105
|
rawInput: request.input,
|
|
72
106
|
...(locations ? { locations } : {}),
|
|
73
107
|
},
|
|
74
|
-
options
|
|
75
|
-
{
|
|
76
|
-
kind: "allow_once",
|
|
77
|
-
name: "Allow once",
|
|
78
|
-
optionId: "allow_once",
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
kind: "allow_always",
|
|
82
|
-
name: "Always allow",
|
|
83
|
-
optionId: "allow_always",
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
kind: "reject_once",
|
|
87
|
-
name: "Reject",
|
|
88
|
-
optionId: "reject_once",
|
|
89
|
-
},
|
|
90
|
-
],
|
|
108
|
+
options,
|
|
91
109
|
}, { cancellationSignal });
|
|
92
110
|
}
|
|
93
111
|
catch (error) {
|
|
@@ -105,6 +123,12 @@ streamPrimedToolCallIds) {
|
|
|
105
123
|
if (response.outcome.optionId === "allow_always") {
|
|
106
124
|
return "always";
|
|
107
125
|
}
|
|
126
|
+
if (isPlanExit) {
|
|
127
|
+
return {
|
|
128
|
+
decision: "reject",
|
|
129
|
+
reason: "User chose to keep refining the plan. Stay in plan mode and update the plan file based on their feedback.",
|
|
130
|
+
};
|
|
131
|
+
}
|
|
108
132
|
return "reject";
|
|
109
133
|
},
|
|
110
134
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/acp/approvals.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/acp/approvals.ts"],"names":[],"mappings":"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"}
|
package/dist/chat/app.js
CHANGED
|
@@ -1362,7 +1362,7 @@ export function ChatApp({ agent, config, sessionId, manager, registry, approvals
|
|
|
1362
1362
|
// composer pinned to the bottom). Once any line exists the region collapses to
|
|
1363
1363
|
// its natural height and finished lines flow into the terminal scrollback.
|
|
1364
1364
|
const isEmpty = lines.length === 0;
|
|
1365
|
-
return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(Static, { items: committedLines, children: (line) => (_jsx(Box, { paddingX: 1, children: _jsx(TranscriptLine, { line: line, assistantName: config.name, reasoningDisplay: config.reasoning }) }, line.id)) }), _jsxs(Box, { flexDirection: "column", width: "100%", paddingX: 1, ...(isEmpty ? { height: Math.max(1, windowSize.rows - 1) } : {}), children: [isEmpty ? (_jsx(Box, { flexDirection: "column", flexGrow: 1, justifyContent: "center", children: _jsx(EmptyChatBanner, {}) })) : null, _jsx(LiveTranscript, { lines: liveLines, assistantName: config.name, reasoningDisplay: config.reasoning }), _jsx(BottomChrome, { config: config, running: running, status: status, currentModel: currentModelLabel(config), reasoningEffort: currentReasoningEffort(config), yoloOn: isYoloEnabled(agent), sessionMode: getModeState(agent).mode, elapsedLabel: elapsedLabel, turnCount: turnCount, totalTools: totalTools, skillsFound: skillsFound, manager: manager, mcpNeedsAttention: mcpNeedsAttention, usage: usage, todoState: todoState, queuedPrompts: queuedPrompts, pendingApproval: Boolean(pendingApproval), picker: picker, sessionItems: sessionItems, slashCommands: slashCommands, slashHighlightIndex: slashHighlightIndex, input: input, inputHint: inputHint, slashMenu: slashMenu, onApprovalDecision: (decision) => approvals.decide(decision), onModelSelect: (name) => {
|
|
1365
|
+
return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(Static, { items: committedLines, children: (line) => (_jsx(Box, { paddingX: 1, children: _jsx(TranscriptLine, { line: line, assistantName: config.name, reasoningDisplay: config.reasoning }) }, line.id)) }), _jsxs(Box, { flexDirection: "column", width: "100%", paddingX: 1, ...(isEmpty ? { height: Math.max(1, windowSize.rows - 1) } : {}), children: [isEmpty ? (_jsx(Box, { flexDirection: "column", flexGrow: 1, justifyContent: "center", children: _jsx(EmptyChatBanner, {}) })) : null, _jsx(LiveTranscript, { lines: liveLines, assistantName: config.name, reasoningDisplay: config.reasoning }), _jsx(BottomChrome, { config: config, running: running, status: status, currentModel: currentModelLabel(config), reasoningEffort: currentReasoningEffort(config), yoloOn: isYoloEnabled(agent), sessionMode: getModeState(agent).mode, elapsedLabel: elapsedLabel, turnCount: turnCount, totalTools: totalTools, skillsFound: skillsFound, manager: manager, mcpNeedsAttention: mcpNeedsAttention, usage: usage, todoState: todoState, queuedPrompts: queuedPrompts, pendingApproval: Boolean(pendingApproval), approvalRequest: pendingApproval, picker: picker, sessionItems: sessionItems, slashCommands: slashCommands, slashHighlightIndex: slashHighlightIndex, input: input, inputHint: inputHint, slashMenu: slashMenu, onApprovalDecision: (decision, reason) => approvals.decide(decision, reason), onModelSelect: (name) => {
|
|
1366
1366
|
setPicker(null);
|
|
1367
1367
|
void handleModelCommand(name);
|
|
1368
1368
|
}, onEffortSelect: (value) => {
|
package/dist/chat/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/chat/app.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/chat/app.tsx"],"names":[],"mappings":"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"}
|
package/dist/chat/approvals.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApprovalDecision, ApprovalRequest } from "./types.js";
|
|
1
|
+
import type { ApprovalDecision, ApprovalRequest, ApprovalResolution } from "./types.js";
|
|
2
2
|
import { HoomanToolApprovalIntervention } from "../core/approvals/intervention.js";
|
|
3
3
|
import type { ToolApprovalRequest } from "../core/approvals/intervention.js";
|
|
4
4
|
export declare class ChatApprovalController {
|
|
@@ -7,8 +7,8 @@ export declare class ChatApprovalController {
|
|
|
7
7
|
private nextId;
|
|
8
8
|
subscribe(listener: () => void): () => void;
|
|
9
9
|
get pending(): ApprovalRequest | null;
|
|
10
|
-
request(request: ToolApprovalRequest): Promise<
|
|
11
|
-
decide(decision: ApprovalDecision): void;
|
|
10
|
+
request(request: ToolApprovalRequest): Promise<ApprovalResolution>;
|
|
11
|
+
decide(decision: ApprovalDecision, reason?: string): void;
|
|
12
12
|
private emit;
|
|
13
13
|
}
|
|
14
14
|
export declare function createChatApprovalIntervention(controller: ChatApprovalController): HoomanToolApprovalIntervention;
|
package/dist/chat/approvals.js
CHANGED
|
@@ -18,18 +18,19 @@ export class ChatApprovalController {
|
|
|
18
18
|
toolName: request.toolName,
|
|
19
19
|
description: request.description,
|
|
20
20
|
inputPreview: request.inputPreview,
|
|
21
|
+
...(request.preview ? { preview: request.preview } : {}),
|
|
21
22
|
};
|
|
22
23
|
return new Promise((resolve) => {
|
|
23
24
|
this.queue.push({ request: queued, resolve });
|
|
24
25
|
this.emit();
|
|
25
26
|
});
|
|
26
27
|
}
|
|
27
|
-
decide(decision) {
|
|
28
|
+
decide(decision, reason) {
|
|
28
29
|
const item = this.queue.shift();
|
|
29
30
|
if (!item) {
|
|
30
31
|
return;
|
|
31
32
|
}
|
|
32
|
-
item.resolve(decision);
|
|
33
|
+
item.resolve(reason?.trim() ? { decision, reason: reason.trim() } : { decision });
|
|
33
34
|
this.emit();
|
|
34
35
|
}
|
|
35
36
|
emit() {
|
|
@@ -40,7 +41,15 @@ export class ChatApprovalController {
|
|
|
40
41
|
}
|
|
41
42
|
export function createChatApprovalIntervention(controller) {
|
|
42
43
|
return new HoomanToolApprovalIntervention({
|
|
43
|
-
ask: async (request) =>
|
|
44
|
+
ask: async (request) => {
|
|
45
|
+
const resolution = await controller.request(request);
|
|
46
|
+
if (resolution.decision === "reject") {
|
|
47
|
+
return resolution.reason
|
|
48
|
+
? { decision: "reject", reason: resolution.reason }
|
|
49
|
+
: "reject";
|
|
50
|
+
}
|
|
51
|
+
return resolution.decision;
|
|
52
|
+
},
|
|
44
53
|
});
|
|
45
54
|
}
|
|
46
55
|
//# sourceMappingURL=approvals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/chat/approvals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/chat/approvals.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAWnF,MAAM,OAAO,sBAAsB;IAChB,KAAK,GAAgB,EAAE,CAAC;IACxB,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAC3C,MAAM,GAAG,CAAC,CAAC;IAEZ,SAAS,CAAC,QAAoB;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;IACxC,CAAC;IAEM,OAAO,CAAC,OAA4B;QACzC,MAAM,MAAM,GAAoB;YAC9B,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC;QACF,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,EAAE;YACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,QAA0B,EAAE,MAAe;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CACV,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CACpE,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,8BAA8B,CAC5C,UAAkC;IAElC,OAAO,IAAI,8BAA8B,CAAC;QACxC,GAAG,EAAE,KAAK,EAAE,OAAO,EAA+B,EAAE;YAClD,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,UAAU,CAAC,MAAM;oBACtB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE;oBACnD,CAAC,CAAC,QAAQ,CAAC;YACf,CAAC;YACD,OAAO,UAAU,CAAC,QAAQ,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { ApprovalDecision } from "../types.js";
|
|
1
|
+
import type { ApprovalDecision, ApprovalRequest } from "../types.js";
|
|
2
2
|
type ApprovalPromptProps = {
|
|
3
|
-
|
|
3
|
+
request: ApprovalRequest | null;
|
|
4
|
+
onDecision: (decision: ApprovalDecision, reason?: string) => void;
|
|
4
5
|
};
|
|
5
|
-
export declare function ApprovalPrompt({ onDecision }: ApprovalPromptProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare function ApprovalPrompt({ request, onDecision }: ApprovalPromptProps): import("react/jsx-runtime").JSX.Element;
|
|
6
7
|
export {};
|
|
@@ -1,7 +1,44 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
2
3
|
import { Box, Text } from "ink";
|
|
3
4
|
import SelectInput from "ink-select-input";
|
|
4
|
-
|
|
5
|
+
import TextInput from "ink-text-input";
|
|
6
|
+
import { EXIT_PLAN_MODE_TOOL } from "../../core/state/tool-approvals.js";
|
|
7
|
+
const PLAN_PREVIEW_LINES = 12;
|
|
8
|
+
function PlanPreview({ preview }) {
|
|
9
|
+
const lines = preview.split("\n");
|
|
10
|
+
const shown = lines.slice(0, PLAN_PREVIEW_LINES);
|
|
11
|
+
const hidden = lines.length - shown.length;
|
|
12
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "gray", paddingX: 1, marginBottom: 1, children: [shown.map((line, index) => (_jsx(Text, { color: "gray", wrap: "truncate-end", children: line.length > 0 ? line : " " }, index))), hidden > 0 ? (_jsxs(Text, { color: "gray", dimColor: true, children: ["\u2026 ", hidden, " more line", hidden === 1 ? "" : "s"] })) : null] }));
|
|
13
|
+
}
|
|
14
|
+
function ExitPlanApprovalPrompt({ request, onDecision, }) {
|
|
15
|
+
const [noteMode, setNoteMode] = useState(false);
|
|
16
|
+
const [note, setNote] = useState("");
|
|
17
|
+
if (noteMode) {
|
|
18
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "yellow", children: "Keep planning \u2014 tell the agent what to refine:" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "gray", children: "> " }), _jsx(TextInput, { value: note, onChange: setNote, onSubmit: (value) => onDecision("reject", value.trim()
|
|
19
|
+
? value.trim()
|
|
20
|
+
: "User chose to keep refining the plan."), placeholder: "e.g. add a rollback step and cover the daemon path" })] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "enter submit" }) })] }));
|
|
21
|
+
}
|
|
22
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "yellow", children: "The agent proposes leaving plan mode to start implementing." }), request.preview ? _jsx(PlanPreview, { preview: request.preview }) : null, _jsx(SelectInput, { items: [
|
|
23
|
+
{ label: "Start implementing", value: "allow" },
|
|
24
|
+
{ label: "Keep planning", value: "reject" },
|
|
25
|
+
{ label: "Keep planning with a note…", value: "reject_note" },
|
|
26
|
+
], onSelect: (item) => {
|
|
27
|
+
if (item.value === "reject_note") {
|
|
28
|
+
setNoteMode(true);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (item.value === "reject") {
|
|
32
|
+
onDecision("reject", "User chose to keep refining the plan.");
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
onDecision("allow");
|
|
36
|
+
} }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "up/down - choose - enter select" }) })] }));
|
|
37
|
+
}
|
|
38
|
+
export function ApprovalPrompt({ request, onDecision }) {
|
|
39
|
+
if (request?.toolName === EXIT_PLAN_MODE_TOOL) {
|
|
40
|
+
return _jsx(ExitPlanApprovalPrompt, { request: request, onDecision: onDecision });
|
|
41
|
+
}
|
|
5
42
|
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SelectInput, { items: [
|
|
6
43
|
{ label: "Allow", value: "allow" },
|
|
7
44
|
{ label: "Always", value: "always" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalPrompt.js","sourceRoot":"","sources":["../../../src/chat/components/ApprovalPrompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,WAAW,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ApprovalPrompt.js","sourceRoot":"","sources":["../../../src/chat/components/ApprovalPrompt.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { TodoViewState } from "../../core/state/todos.js";
|
|
|
3
3
|
import type { Config } from "../../core/config.js";
|
|
4
4
|
import type { SessionMode } from "../../core/state/session-mode.js";
|
|
5
5
|
import { type ChatPicker } from "./ChromePicker.js";
|
|
6
|
-
import type { ApprovalDecision } from "../types.js";
|
|
6
|
+
import type { ApprovalDecision, ApprovalRequest } from "../types.js";
|
|
7
7
|
import type { PromptSubmission } from "./prompt-input/hooks/usePromptInputController.js";
|
|
8
8
|
import type { SlashCommandMenuProps } from "./prompt-input/hooks/usePromptInputController.js";
|
|
9
9
|
type QueuedPrompt = {
|
|
@@ -35,6 +35,7 @@ type BottomChromeProps = {
|
|
|
35
35
|
todoState: TodoViewState;
|
|
36
36
|
queuedPrompts: readonly QueuedPrompt[];
|
|
37
37
|
pendingApproval: boolean;
|
|
38
|
+
approvalRequest: ApprovalRequest | null;
|
|
38
39
|
picker: ChatPicker;
|
|
39
40
|
slashCommands: readonly {
|
|
40
41
|
name: string;
|
|
@@ -44,7 +45,7 @@ type BottomChromeProps = {
|
|
|
44
45
|
input: string;
|
|
45
46
|
inputHint: string;
|
|
46
47
|
slashMenu?: SlashCommandMenuProps;
|
|
47
|
-
onApprovalDecision: (decision: ApprovalDecision) => void;
|
|
48
|
+
onApprovalDecision: (decision: ApprovalDecision, reason?: string) => void;
|
|
48
49
|
sessionItems: Array<{
|
|
49
50
|
label: string;
|
|
50
51
|
value: string;
|
|
@@ -57,5 +58,5 @@ type BottomChromeProps = {
|
|
|
57
58
|
onInputChange: (value: string) => void;
|
|
58
59
|
onSubmit: (value: PromptSubmission) => void;
|
|
59
60
|
};
|
|
60
|
-
export declare function BottomChrome({ config, running, status, currentModel, reasoningEffort, yoloOn, sessionMode, elapsedLabel, turnCount, totalTools, skillsFound, manager, mcpNeedsAttention, usage, todoState, queuedPrompts, pendingApproval, picker, sessionItems, slashCommands, slashHighlightIndex, input, inputHint, slashMenu, onApprovalDecision, onModelSelect, onEffortSelect, onYoloSelect, onModeSelect, onSessionSelect, onInputChange, onSubmit, }: BottomChromeProps): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
export declare function BottomChrome({ config, running, status, currentModel, reasoningEffort, yoloOn, sessionMode, elapsedLabel, turnCount, totalTools, skillsFound, manager, mcpNeedsAttention, usage, todoState, queuedPrompts, pendingApproval, approvalRequest, picker, sessionItems, slashCommands, slashHighlightIndex, input, inputHint, slashMenu, onApprovalDecision, onModelSelect, onEffortSelect, onYoloSelect, onModeSelect, onSessionSelect, onInputChange, onSubmit, }: BottomChromeProps): import("react/jsx-runtime").JSX.Element;
|
|
61
62
|
export {};
|
|
@@ -6,7 +6,7 @@ import { QueuedPrompts } from "./QueuedPrompts.js";
|
|
|
6
6
|
import { SlashCommands } from "./SlashCommands.js";
|
|
7
7
|
import { StatusBar } from "./StatusBar.js";
|
|
8
8
|
import { TodoPanel } from "./TodoPanel.js";
|
|
9
|
-
export function BottomChrome({ config, running, status, currentModel, reasoningEffort, yoloOn, sessionMode, elapsedLabel, turnCount, totalTools, skillsFound, manager, mcpNeedsAttention, usage, todoState, queuedPrompts, pendingApproval, picker, sessionItems, slashCommands, slashHighlightIndex, input, inputHint, slashMenu, onApprovalDecision, onModelSelect, onEffortSelect, onYoloSelect, onModeSelect, onSessionSelect, onInputChange, onSubmit, }) {
|
|
10
|
-
return (_jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [running && todoState.visible && todoState.todos.length > 0 ? (_jsx(TodoPanel, { todos: todoState.todos })) : null, _jsx(QueuedPrompts, { prompts: queuedPrompts }), _jsx(ChromePicker, { config: config, pendingApproval: pendingApproval, picker: picker, yoloOn: yoloOn, sessionMode: sessionMode, onApprovalDecision: onApprovalDecision, sessionItems: sessionItems, onModelSelect: onModelSelect, onEffortSelect: onEffortSelect, onYoloSelect: onYoloSelect, onModeSelect: onModeSelect, onSessionSelect: onSessionSelect }), !pendingApproval && !picker ? (_jsx(SlashCommands, { items: slashCommands, highlightIndex: slashHighlightIndex })) : null, !pendingApproval && !picker ? (_jsx(Composer, { input: input, running: running, disabled: pendingApproval, hint: inputHint, onChange: onInputChange, onSubmit: onSubmit, slashMenu: slashMenu })) : null, _jsx(StatusBar, { running: running, status: status, currentModel: currentModel, reasoningEffort: reasoningEffort, yoloOn: yoloOn, sessionMode: sessionMode, elapsedLabel: elapsedLabel, turnCount: turnCount, totalTools: totalTools, skillsFound: skillsFound, manager: manager, mcpNeedsAttention: mcpNeedsAttention, usage: usage })] }));
|
|
9
|
+
export function BottomChrome({ config, running, status, currentModel, reasoningEffort, yoloOn, sessionMode, elapsedLabel, turnCount, totalTools, skillsFound, manager, mcpNeedsAttention, usage, todoState, queuedPrompts, pendingApproval, approvalRequest, picker, sessionItems, slashCommands, slashHighlightIndex, input, inputHint, slashMenu, onApprovalDecision, onModelSelect, onEffortSelect, onYoloSelect, onModeSelect, onSessionSelect, onInputChange, onSubmit, }) {
|
|
10
|
+
return (_jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [running && todoState.visible && todoState.todos.length > 0 ? (_jsx(TodoPanel, { todos: todoState.todos })) : null, _jsx(QueuedPrompts, { prompts: queuedPrompts }), _jsx(ChromePicker, { config: config, pendingApproval: pendingApproval, approvalRequest: approvalRequest, picker: picker, yoloOn: yoloOn, sessionMode: sessionMode, onApprovalDecision: onApprovalDecision, sessionItems: sessionItems, onModelSelect: onModelSelect, onEffortSelect: onEffortSelect, onYoloSelect: onYoloSelect, onModeSelect: onModeSelect, onSessionSelect: onSessionSelect }), !pendingApproval && !picker ? (_jsx(SlashCommands, { items: slashCommands, highlightIndex: slashHighlightIndex })) : null, !pendingApproval && !picker ? (_jsx(Composer, { input: input, running: running, disabled: pendingApproval, hint: inputHint, onChange: onInputChange, onSubmit: onSubmit, slashMenu: slashMenu })) : null, _jsx(StatusBar, { running: running, status: status, currentModel: currentModel, reasoningEffort: reasoningEffort, yoloOn: yoloOn, sessionMode: sessionMode, elapsedLabel: elapsedLabel, turnCount: turnCount, totalTools: totalTools, skillsFound: skillsFound, manager: manager, mcpNeedsAttention: mcpNeedsAttention, usage: usage })] }));
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=BottomChrome.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomChrome.js","sourceRoot":"","sources":["../../../src/chat/components/BottomChrome.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAK1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomChrome.js","sourceRoot":"","sources":["../../../src/chat/components/BottomChrome.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAK1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqD3C,MAAM,UAAU,YAAY,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,eAAe,EACf,MAAM,EACN,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,MAAM,EACN,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,QAAQ,GACU;IAClB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACtC,OAAO,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5D,KAAC,SAAS,IAAC,KAAK,EAAE,SAAS,CAAC,KAAK,GAAI,CACtC,CAAC,CAAC,CAAC,IAAI,EAER,KAAC,aAAa,IAAC,OAAO,EAAE,aAAa,GAAI,EAEzC,KAAC,YAAY,IACX,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,GAChC,EAED,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAC7B,KAAC,aAAa,IACZ,KAAK,EAAE,aAAa,EACpB,cAAc,EAAE,mBAAmB,GACnC,CACH,CAAC,CAAC,CAAC,IAAI,EAEP,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAC7B,KAAC,QAAQ,IACP,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,GACpB,CACH,CAAC,CAAC,CAAC,IAAI,EAER,KAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,KAAK,GACZ,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { Config } from "../../core/config.js";
|
|
2
2
|
import { type SessionMode } from "../../core/modes/index.js";
|
|
3
|
-
import type { ApprovalDecision } from "../types.js";
|
|
3
|
+
import type { ApprovalDecision, ApprovalRequest } from "../types.js";
|
|
4
4
|
export type ChatPicker = null | "model" | "effort" | "yolo" | "mode" | "sessions";
|
|
5
5
|
type ChromePickerProps = {
|
|
6
6
|
config: Config;
|
|
7
7
|
pendingApproval: boolean;
|
|
8
|
+
approvalRequest: ApprovalRequest | null;
|
|
8
9
|
picker: ChatPicker;
|
|
9
10
|
yoloOn: boolean;
|
|
10
11
|
sessionMode: SessionMode;
|
|
11
|
-
onApprovalDecision: (decision: ApprovalDecision) => void;
|
|
12
|
+
onApprovalDecision: (decision: ApprovalDecision, reason?: string) => void;
|
|
12
13
|
sessionItems: Array<{
|
|
13
14
|
label: string;
|
|
14
15
|
value: string;
|
|
@@ -19,5 +20,5 @@ type ChromePickerProps = {
|
|
|
19
20
|
onModeSelect: (value: string) => void;
|
|
20
21
|
onSessionSelect: (value: string) => void;
|
|
21
22
|
};
|
|
22
|
-
export declare function ChromePicker({ config, pendingApproval, picker, yoloOn, sessionMode, onApprovalDecision, sessionItems, onModelSelect, onEffortSelect, onYoloSelect, onModeSelect, onSessionSelect, }: ChromePickerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
23
|
+
export declare function ChromePicker({ config, pendingApproval, approvalRequest, picker, yoloOn, sessionMode, onApprovalDecision, sessionItems, onModelSelect, onEffortSelect, onYoloSelect, onModeSelect, onSessionSelect, }: ChromePickerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
23
24
|
export {};
|
|
@@ -4,9 +4,9 @@ import { MODE_DEFINITIONS } from "../../core/modes/index.js";
|
|
|
4
4
|
import { currentReasoningEffort, REASONING_EFFORT_LEVELS, REASONING_EFFORT_OFF, } from "../../core/models/reasoning-effort.js";
|
|
5
5
|
import { ApprovalPrompt } from "./ApprovalPrompt.js";
|
|
6
6
|
import { SelectPicker } from "./SelectPicker.js";
|
|
7
|
-
export function ChromePicker({ config, pendingApproval, picker, yoloOn, sessionMode, onApprovalDecision, sessionItems, onModelSelect, onEffortSelect, onYoloSelect, onModeSelect, onSessionSelect, }) {
|
|
7
|
+
export function ChromePicker({ config, pendingApproval, approvalRequest, picker, yoloOn, sessionMode, onApprovalDecision, sessionItems, onModelSelect, onEffortSelect, onYoloSelect, onModeSelect, onSessionSelect, }) {
|
|
8
8
|
if (pendingApproval) {
|
|
9
|
-
return _jsx(ApprovalPrompt, { onDecision: onApprovalDecision });
|
|
9
|
+
return (_jsx(ApprovalPrompt, { request: approvalRequest, onDecision: onApprovalDecision }));
|
|
10
10
|
}
|
|
11
11
|
if (picker === "model") {
|
|
12
12
|
return (_jsx(SelectPicker, { title: "Choose model", items: config.llms.map((entry) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromePicker.js","sourceRoot":"","sources":["../../../src/chat/components/ChromePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAoB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChromePicker.js","sourceRoot":"","sources":["../../../src/chat/components/ChromePicker.tsx"],"names":[],"mappings":"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"}
|
package/dist/chat/types.d.ts
CHANGED
|
@@ -16,9 +16,14 @@ export interface ChatLine {
|
|
|
16
16
|
estimatedTokens?: number;
|
|
17
17
|
}
|
|
18
18
|
export type ApprovalDecision = "allow" | "reject" | "always";
|
|
19
|
+
export interface ApprovalResolution {
|
|
20
|
+
decision: ApprovalDecision;
|
|
21
|
+
reason?: string;
|
|
22
|
+
}
|
|
19
23
|
export interface ApprovalRequest {
|
|
20
24
|
id: string;
|
|
21
25
|
toolName: string;
|
|
22
26
|
description?: string;
|
|
23
27
|
inputPreview: string;
|
|
28
|
+
preview?: string;
|
|
24
29
|
}
|
|
@@ -10,6 +10,12 @@ export type ToolApprovalRequest = {
|
|
|
10
10
|
input: unknown;
|
|
11
11
|
inputPreview: string;
|
|
12
12
|
prompt: string;
|
|
13
|
+
/**
|
|
14
|
+
* Human-facing preview of the artifact being acted on (e.g. the drafted plan
|
|
15
|
+
* for {@link EXIT_PLAN_MODE_TOOL}). Frontends may render this above the
|
|
16
|
+
* approve/decline choices.
|
|
17
|
+
*/
|
|
18
|
+
preview?: string;
|
|
13
19
|
};
|
|
14
20
|
type ToolApprovalCallbacks = {
|
|
15
21
|
onPromptStart?: (request: ToolApprovalRequest, event: BeforeToolCallEvent) => Promise<void> | void;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { InterventionHandler, InterventionActions, } from "@strands-agents/sdk";
|
|
2
|
-
import
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import { getPlanState } from "../state/plan.js";
|
|
4
|
+
import { EXIT_PLAN_MODE_TOOL, INTERNAL_ALWAYS_ALLOWED, isImplicitlyAllowed, planModeWriteEditRejectionMessage, } from "../state/tool-approvals.js";
|
|
3
5
|
import { isYoloEnabled } from "../state/yolo.js";
|
|
4
6
|
import { getAllowlist } from "./allowlist.js";
|
|
5
7
|
const INPUT_PREVIEW_LIMIT = 1_024;
|
|
8
|
+
const PLAN_PREVIEW_MAX_BYTES = 8 * 1024;
|
|
6
9
|
function previewInput(input) {
|
|
7
10
|
try {
|
|
8
11
|
const text = JSON.stringify(input, null, 2) ?? "null";
|
|
@@ -14,6 +17,21 @@ function previewInput(input) {
|
|
|
14
17
|
return String(input);
|
|
15
18
|
}
|
|
16
19
|
}
|
|
20
|
+
async function readPlanPreview(agent) {
|
|
21
|
+
const { planFile } = getPlanState(agent);
|
|
22
|
+
if (!planFile) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const buf = await fs.readFile(planFile);
|
|
27
|
+
const slice = buf.subarray(0, Math.min(PLAN_PREVIEW_MAX_BYTES, buf.length));
|
|
28
|
+
const text = slice.toString("utf8").trim();
|
|
29
|
+
return text.length > 0 ? text : null;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
17
35
|
function toRejectReason(toolName, result) {
|
|
18
36
|
if (typeof result === "object" && result !== null && result.reason?.trim()) {
|
|
19
37
|
return result.reason.trim();
|
|
@@ -35,7 +53,7 @@ export class HoomanToolApprovalIntervention extends InterventionHandler {
|
|
|
35
53
|
}
|
|
36
54
|
async beforeToolCall(event) {
|
|
37
55
|
const toolName = event.toolUse.name;
|
|
38
|
-
|
|
56
|
+
let request = this.buildRequest(event);
|
|
39
57
|
const planReject = planModeWriteEditRejectionMessage(event.agent, toolName, event.toolUse.input);
|
|
40
58
|
if (planReject) {
|
|
41
59
|
await this.onRejected?.(request, event, planReject);
|
|
@@ -48,6 +66,12 @@ export class HoomanToolApprovalIntervention extends InterventionHandler {
|
|
|
48
66
|
await this.onApproved?.(request, event, "auto");
|
|
49
67
|
return InterventionActions.proceed();
|
|
50
68
|
}
|
|
69
|
+
if (toolName === EXIT_PLAN_MODE_TOOL) {
|
|
70
|
+
const preview = await readPlanPreview(event.agent);
|
|
71
|
+
if (preview) {
|
|
72
|
+
request = { ...request, preview };
|
|
73
|
+
}
|
|
74
|
+
}
|
|
51
75
|
await this.onPromptStart?.(request, event);
|
|
52
76
|
const result = await this.ask(request, event);
|
|
53
77
|
if (result === "allow") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intervention.js","sourceRoot":"","sources":["../../../src/core/approvals/intervention.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,iCAAiC,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,mBAAmB,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"intervention.js","sourceRoot":"","sources":["../../../src/core/approvals/intervention.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## Planning mode
|
|
2
2
|
|
|
3
|
-
You are in planning mode. **
|
|
3
|
+
You are in planning mode. **Do not implement here.** Implementation begins only once the user approves your `exit_plan_mode` proposal; approving it is their go-ahead.
|
|
4
4
|
|
|
5
5
|
**Plan file:** {{#if (lookup state 'hooman.planFile')}}{{lookup state 'hooman.planFile'}}{{else}}—{{/if}}
|
|
6
6
|
|
|
@@ -11,6 +11,7 @@ You are in planning mode. **Implementation still requires an explicit go-ahead f
|
|
|
11
11
|
3. Prefer updating the plan file over writing long plan summaries in chat.
|
|
12
12
|
4. Do not create, edit, move, or delete files other than the plan file shown above. Delegated subagent work (`subagent_research`, `subagent_review`, `subagent_test_investigator`) must stay read-only.
|
|
13
13
|
5. Do not ship the final deliverable or execute substantive implementation here.
|
|
14
|
+
6. `exit_plan_mode` is a proposal, not a mode switch you control. The user may **decline** it to keep planning. If a call comes back rejected, you are still in plan mode with the same plan file—incorporate their feedback, update the plan, and only propose exiting again once they are satisfied. Re-entering plan mode later reopens this same file, so keep refining it rather than starting over.
|
|
14
15
|
|
|
15
16
|
### Target shape
|
|
16
17
|
|
|
@@ -5,7 +5,7 @@ Use **plan mode** for multi-step, ambiguous, or high-risk work when you should e
|
|
|
5
5
|
- Call **`enter_plan_mode`** before that planning work.
|
|
6
6
|
- In plan mode, use the **plan file** as the source of truth and keep it updated as the plan changes.
|
|
7
7
|
- Use only the tools exposed in that phase; prefer read-only exploration and planning helpers over implementation.
|
|
8
|
-
- Call **`exit_plan_mode`** only after the plan is concrete enough to review.
|
|
9
|
-
- **
|
|
10
|
-
- After exit, briefly
|
|
11
|
-
-
|
|
8
|
+
- Call **`exit_plan_mode`** only after the plan is concrete enough to review. This is a proposal: the user is asked to approve it, and **approving it is their go-ahead to implement the plan**.
|
|
9
|
+
- If the user **declines** the exit, you stay in plan mode with the same plan file. Incorporate their feedback, update the plan, and propose exiting again once they are satisfied. Do not implement.
|
|
10
|
+
- After a **successful** exit, briefly confirm the approved approach and begin implementing it. Do not re-ask for permission you were just granted.
|
|
11
|
+
- Never begin substantive implementation while still in plan mode or after a declined exit.
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export declare const PLAN_FILE_STATE_KEY = "hooman.planFile";
|
|
2
2
|
export declare const PLAN_ENTER_REASON_STATE_KEY = "hooman.enterReason";
|
|
3
3
|
export declare const PLAN_ENTERED_AT_STATE_KEY = "hooman.enteredAt";
|
|
4
|
+
/**
|
|
5
|
+
* Last plan file used in this session. Survives {@link clearPlanState} so a
|
|
6
|
+
* later `enter_plan_mode` can reopen the same document instead of minting a new
|
|
7
|
+
* one. Only cleared when a fresh plan is explicitly requested.
|
|
8
|
+
*/
|
|
9
|
+
export declare const PLAN_LAST_FILE_STATE_KEY = "hooman.lastPlanFile";
|
|
4
10
|
type AppStateLike = {
|
|
5
11
|
get<T = unknown>(key: string): T;
|
|
6
12
|
set(key: string, value: unknown): void;
|
|
@@ -20,4 +26,7 @@ export declare function setPlanState(agent: AgentLike, snapshot: {
|
|
|
20
26
|
enteredAt: string;
|
|
21
27
|
}): void;
|
|
22
28
|
export declare function clearPlanState(agent: AgentLike): void;
|
|
29
|
+
export declare function getLastPlanFile(agent: AgentLike): string | null;
|
|
30
|
+
export declare function setLastPlanFile(agent: AgentLike, planFile: string): void;
|
|
31
|
+
export declare function clearLastPlanFile(agent: AgentLike): void;
|
|
23
32
|
export {};
|
package/dist/core/state/plan.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export const PLAN_FILE_STATE_KEY = "hooman.planFile";
|
|
2
2
|
export const PLAN_ENTER_REASON_STATE_KEY = "hooman.enterReason";
|
|
3
3
|
export const PLAN_ENTERED_AT_STATE_KEY = "hooman.enteredAt";
|
|
4
|
+
/**
|
|
5
|
+
* Last plan file used in this session. Survives {@link clearPlanState} so a
|
|
6
|
+
* later `enter_plan_mode` can reopen the same document instead of minting a new
|
|
7
|
+
* one. Only cleared when a fresh plan is explicitly requested.
|
|
8
|
+
*/
|
|
9
|
+
export const PLAN_LAST_FILE_STATE_KEY = "hooman.lastPlanFile";
|
|
4
10
|
export function getPlanState(agent) {
|
|
5
11
|
const rawPlanFile = agent.appState.get(PLAN_FILE_STATE_KEY);
|
|
6
12
|
const planFile = typeof rawPlanFile === "string" && rawPlanFile.trim()
|
|
@@ -31,4 +37,14 @@ export function clearPlanState(agent) {
|
|
|
31
37
|
agent.appState.set(PLAN_ENTER_REASON_STATE_KEY, null);
|
|
32
38
|
agent.appState.set(PLAN_ENTERED_AT_STATE_KEY, null);
|
|
33
39
|
}
|
|
40
|
+
export function getLastPlanFile(agent) {
|
|
41
|
+
const raw = agent.appState.get(PLAN_LAST_FILE_STATE_KEY);
|
|
42
|
+
return typeof raw === "string" && raw.trim() ? raw.trim() : null;
|
|
43
|
+
}
|
|
44
|
+
export function setLastPlanFile(agent, planFile) {
|
|
45
|
+
agent.appState.set(PLAN_LAST_FILE_STATE_KEY, planFile);
|
|
46
|
+
}
|
|
47
|
+
export function clearLastPlanFile(agent) {
|
|
48
|
+
agent.appState.set(PLAN_LAST_FILE_STATE_KEY, null);
|
|
49
|
+
}
|
|
34
50
|
//# sourceMappingURL=plan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/core/state/plan.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/core/state/plan.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAC5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAiB9D,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GACZ,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE;QACnD,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;QACpB,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACvE,MAAM,WAAW,GACf,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,EAAE;QACzD,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;QACvB,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACnE,MAAM,SAAS,GACb,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE;QACrD,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE;QACrB,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAgB,EAChB,QAIC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QACjC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAChB,2BAA2B,EAC3B,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAC5B,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC7C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC9C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;IACtD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACzD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,QAAgB;IAChE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -34,9 +34,10 @@ export const INTERNAL_ALWAYS_ALLOWED = new Set([
|
|
|
34
34
|
"get_file_info",
|
|
35
35
|
"list_directory",
|
|
36
36
|
"grep",
|
|
37
|
-
// Planning session
|
|
37
|
+
// Planning session: entering is safe and auto-allowed. Exiting is a proposal
|
|
38
|
+
// to leave planning and move toward implementation, so it flows through the
|
|
39
|
+
// approval prompt where the user can approve or decline (and keep refining).
|
|
38
40
|
ENTER_PLAN_MODE_TOOL,
|
|
39
|
-
EXIT_PLAN_MODE_TOOL,
|
|
40
41
|
]);
|
|
41
42
|
function isPlainObjectRecord(value) {
|
|
42
43
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-approvals.js","sourceRoot":"","sources":["../../../src/core/state/tool-approvals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAW/D,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AACvD,MAAM,eAAe,GAAG,YAAY,CAAC;AACrC,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AACtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAEpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IAC7C,oBAAoB;IACpB,QAAQ;IACR,4BAA4B;IAC5B,eAAe;IACf,2BAA2B;IAC3B,QAAQ;IACR,cAAc;IACd,WAAW;IACX,OAAO;IACP,wBAAwB;IACxB,mBAAmB;IACnB,iBAAiB;IACjB,4BAA4B;IAC5B,QAAQ;IACR,OAAO;IACP,oBAAoB;IACpB,KAAK;IACL,OAAO;IACP,cAAc;IACd,kBAAkB;IAClB,wCAAwC;IACxC,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,MAAM;IACN,
|
|
1
|
+
{"version":3,"file":"tool-approvals.js","sourceRoot":"","sources":["../../../src/core/state/tool-approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { JSONValue } from "@strands-agents/sdk";
|
|
2
2
|
export declare function createPlanTools(): (import("@strands-agents/sdk").InvokableTool<{
|
|
3
3
|
reason?: string | undefined;
|
|
4
|
+
fresh?: boolean | undefined;
|
|
4
5
|
}, JSONValue> | import("@strands-agents/sdk").InvokableTool<Record<string, never>, JSONValue>)[];
|
package/dist/core/tools/plan.js
CHANGED
|
@@ -4,7 +4,7 @@ import path from "node:path";
|
|
|
4
4
|
import { tool } from "@strands-agents/sdk";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { applySessionMode } from "../agent/sync-tool-registry-mode.js";
|
|
7
|
-
import { clearPlanState, getPlanState, setPlanState } from "../state/plan.js";
|
|
7
|
+
import { clearPlanState, getLastPlanFile, getPlanState, setLastPlanFile, setPlanState, } from "../state/plan.js";
|
|
8
8
|
import { clearModeToDefault, getModeState, setSessionMode, } from "../state/session-mode.js";
|
|
9
9
|
import { ENTER_PLAN_MODE_TOOL, EXIT_PLAN_MODE_TOOL, } from "../state/tool-approvals.js";
|
|
10
10
|
import { isResolvedPathInsideDir } from "../utils/normalize-user-path.js";
|
|
@@ -13,7 +13,20 @@ const PLAN_PREVIEW_MAX_BYTES = 8 * 1024;
|
|
|
13
13
|
const ENTER_STUB_MD = "# Plan\n\n";
|
|
14
14
|
const EnterPlanModeInputSchema = z.object({
|
|
15
15
|
reason: z.string().trim().optional(),
|
|
16
|
+
fresh: z
|
|
17
|
+
.boolean()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("Start a brand-new plan document instead of reopening this session's most recent plan file."),
|
|
16
20
|
});
|
|
21
|
+
async function fileExists(target) {
|
|
22
|
+
try {
|
|
23
|
+
const stat = await fs.stat(target);
|
|
24
|
+
return stat.isFile();
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
17
30
|
const ExitPlanModeInputSchema = z.object({});
|
|
18
31
|
function toJsonValue(value) {
|
|
19
32
|
return JSON.parse(JSON.stringify(value));
|
|
@@ -24,7 +37,8 @@ export function createPlanTools() {
|
|
|
24
37
|
name: ENTER_PLAN_MODE_TOOL,
|
|
25
38
|
description: `Use when you should explore and nail down an approach before making substantive edits.
|
|
26
39
|
You enter a planning phase and receive one markdown plan document to fill in with your findings, trade-offs, and intended steps.
|
|
27
|
-
If you are already in that phase, calling again keeps working with the same document instead of starting over
|
|
40
|
+
If you are already in that phase, calling again keeps working with the same document instead of starting over.
|
|
41
|
+
Re-entering after leaving reopens this session's most recent plan file so you can keep refining it; pass fresh: true to start over.`,
|
|
28
42
|
inputSchema: EnterPlanModeInputSchema,
|
|
29
43
|
callback: async (input, context) => {
|
|
30
44
|
if (!context) {
|
|
@@ -47,8 +61,22 @@ If you are already in that phase, calling again keeps working with the same docu
|
|
|
47
61
|
}
|
|
48
62
|
const dir = plansPath();
|
|
49
63
|
await fs.mkdir(dir, { recursive: true });
|
|
50
|
-
const
|
|
51
|
-
|
|
64
|
+
const lastPlanFile = getLastPlanFile(agent);
|
|
65
|
+
const reusable = !input.fresh &&
|
|
66
|
+
lastPlanFile &&
|
|
67
|
+
isResolvedPathInsideDir(lastPlanFile, dir) &&
|
|
68
|
+
(await fileExists(lastPlanFile));
|
|
69
|
+
let planFile;
|
|
70
|
+
let reused;
|
|
71
|
+
if (reusable && lastPlanFile) {
|
|
72
|
+
planFile = lastPlanFile;
|
|
73
|
+
reused = true;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
planFile = path.join(dir, `${randomUUID()}.md`);
|
|
77
|
+
await fs.writeFile(planFile, ENTER_STUB_MD, "utf8");
|
|
78
|
+
reused = false;
|
|
79
|
+
}
|
|
52
80
|
if (!isResolvedPathInsideDir(planFile, dir)) {
|
|
53
81
|
throw new Error("Generated plan path is outside the plans directory.");
|
|
54
82
|
}
|
|
@@ -59,11 +87,13 @@ If you are already in that phase, calling again keeps working with the same docu
|
|
|
59
87
|
enteredAt,
|
|
60
88
|
enterReason: input.reason,
|
|
61
89
|
});
|
|
90
|
+
setLastPlanFile(agent, planFile);
|
|
62
91
|
applySessionMode(agent);
|
|
63
92
|
return toJsonValue({
|
|
64
93
|
mode: "plan",
|
|
65
94
|
plan_file: planFile,
|
|
66
95
|
already_active: false,
|
|
96
|
+
reused,
|
|
67
97
|
enter_reason: input.reason?.trim() || null,
|
|
68
98
|
entered_at: enteredAt,
|
|
69
99
|
});
|
|
@@ -72,6 +102,7 @@ If you are already in that phase, calling again keeps working with the same docu
|
|
|
72
102
|
tool({
|
|
73
103
|
name: EXIT_PLAN_MODE_TOOL,
|
|
74
104
|
description: `Use when your written plan is ready and you want to leave the planning phase and move toward implementation.
|
|
105
|
+
This is a proposal: the user is asked to approve it. If they decline, you stay in planning mode with the same plan file and should keep refining it based on their feedback.
|
|
75
106
|
Returns a short excerpt of what you drafted so you can confirm or summarize next actions.
|
|
76
107
|
Only call this after you have started planning with enter_plan_mode.`,
|
|
77
108
|
inputSchema: ExitPlanModeInputSchema,
|
|
@@ -97,6 +128,7 @@ Only call this after you have started planning with enter_plan_mode.`,
|
|
|
97
128
|
catch (error) {
|
|
98
129
|
throw new Error(`Could not read plan file: ${error instanceof Error ? error.message : String(error)}`);
|
|
99
130
|
}
|
|
131
|
+
setLastPlanFile(agent, planPath);
|
|
100
132
|
clearModeToDefault(agent);
|
|
101
133
|
clearPlanState(agent);
|
|
102
134
|
applySessionMode(agent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/core/tools/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/core/tools/plan.ts"],"names":[],"mappings":"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"}
|