@pentoshi/clai 3.9.2 → 3.9.3
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/agent/compaction-attempt.d.ts +22 -0
- package/dist/agent/compaction-attempt.js +69 -0
- package/dist/agent/compaction-attempt.js.map +1 -0
- package/dist/agent/compaction-summary.d.ts +27 -0
- package/dist/agent/compaction-summary.js +62 -0
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/context-breakdown.d.ts +2 -0
- package/dist/agent/context-breakdown.js +37 -0
- package/dist/agent/context-breakdown.js.map +1 -1
- package/dist/agent/context-manager.d.ts +7 -1
- package/dist/agent/context-manager.js +64 -15
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/continue-orient.d.ts +8 -0
- package/dist/agent/continue-orient.js +26 -3
- package/dist/agent/continue-orient.js.map +1 -1
- package/dist/agent/durable-envelope.d.ts +39 -0
- package/dist/agent/durable-envelope.js +195 -0
- package/dist/agent/durable-envelope.js.map +1 -0
- package/dist/agent/events.d.ts +21 -0
- package/dist/agent/loop-guard.d.ts +13 -5
- package/dist/agent/loop-guard.js +114 -1
- package/dist/agent/loop-guard.js.map +1 -1
- package/dist/agent/outcomes.d.ts +29 -0
- package/dist/agent/outcomes.js +118 -3
- package/dist/agent/outcomes.js.map +1 -1
- package/dist/agent/plan-decision.js +8 -3
- package/dist/agent/plan-decision.js.map +1 -1
- package/dist/agent/plan-tool.d.ts +5 -0
- package/dist/agent/plan-tool.js +166 -6
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/reliability-policy.d.ts +11 -6
- package/dist/agent/reliability-policy.js +19 -13
- package/dist/agent/reliability-policy.js.map +1 -1
- package/dist/agent/request-budget.d.ts +24 -0
- package/dist/agent/request-budget.js +59 -0
- package/dist/agent/request-budget.js.map +1 -0
- package/dist/agent/responder-context.js +2 -2
- package/dist/agent/responder-context.js.map +1 -1
- package/dist/agent/responder-parent.d.ts +30 -0
- package/dist/agent/responder-parent.js +82 -0
- package/dist/agent/responder-parent.js.map +1 -0
- package/dist/agent/runner.d.ts +14 -1
- package/dist/agent/runner.js +759 -211
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/scope-context.d.ts +5 -0
- package/dist/agent/scope-context.js +7 -1
- package/dist/agent/scope-context.js.map +1 -1
- package/dist/agent/session-policy.js +1 -0
- package/dist/agent/session-policy.js.map +1 -1
- package/dist/agent/stop-summary.js +13 -7
- package/dist/agent/stop-summary.js.map +1 -1
- package/dist/agent/task-analyzer.js +7 -3
- package/dist/agent/task-analyzer.js.map +1 -1
- package/dist/agent/task-evidence.js +2 -0
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/task-sync.d.ts +11 -0
- package/dist/agent/task-sync.js +31 -0
- package/dist/agent/task-sync.js.map +1 -1
- package/dist/agent/tool-call-parser.d.ts +6 -13
- package/dist/agent/tool-call-parser.js +186 -82
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/agent/tool-history.d.ts +8 -2
- package/dist/agent/tool-history.js +8 -1
- package/dist/agent/tool-history.js.map +1 -1
- package/dist/agent/turn-outcome.d.ts +4 -1
- package/dist/agent/turn-outcome.js +16 -2
- package/dist/agent/turn-outcome.js.map +1 -1
- package/dist/app/adapters/agent-event-adapter.js +27 -0
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.js +1 -0
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/adapters/current-jobs-adapter.js +4 -3
- package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
- package/dist/app/adapters/current-store-adapter.js +4 -3
- package/dist/app/adapters/current-store-adapter.js.map +1 -1
- package/dist/app/adapters/current-updates-adapter.d.ts +1 -1
- package/dist/app/adapters/current-updates-adapter.js +34 -5
- package/dist/app/adapters/current-updates-adapter.js.map +1 -1
- package/dist/app/adapters/quiet-meta-tools.js +2 -1
- package/dist/app/adapters/quiet-meta-tools.js.map +1 -1
- package/dist/app/controllers/job-controller.d.ts +4 -3
- package/dist/app/controllers/job-controller.js +9 -6
- package/dist/app/controllers/job-controller.js.map +1 -1
- package/dist/app/controllers/plan-controller.js +14 -0
- package/dist/app/controllers/plan-controller.js.map +1 -1
- package/dist/app/controllers/responder-settlement.js +2 -2
- package/dist/app/controllers/responder-settlement.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.d.ts +23 -1
- package/dist/app/controllers/session-compact-helper.js +117 -7
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/controllers/session-context-usage.d.ts +24 -0
- package/dist/app/controllers/session-context-usage.js +89 -0
- package/dist/app/controllers/session-context-usage.js.map +1 -0
- package/dist/app/controllers/session-controller.d.ts +17 -17
- package/dist/app/controllers/session-controller.js +122 -124
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-prompt-queue.d.ts +3 -0
- package/dist/app/controllers/session-prompt-queue.js +20 -1
- package/dist/app/controllers/session-prompt-queue.js.map +1 -1
- package/dist/app/controllers/session-responder.js +16 -6
- package/dist/app/controllers/session-responder.js.map +1 -1
- package/dist/app/controllers/session-turn-request.d.ts +18 -0
- package/dist/app/controllers/session-turn-request.js +31 -0
- package/dist/app/controllers/session-turn-request.js.map +1 -0
- package/dist/app/controllers/turn-continuation.d.ts +14 -0
- package/dist/app/controllers/turn-continuation.js +46 -0
- package/dist/app/controllers/turn-continuation.js.map +1 -0
- package/dist/app/events/app-event.d.ts +21 -0
- package/dist/app/events/app-event.js +1 -0
- package/dist/app/events/app-event.js.map +1 -1
- package/dist/app/ports/agent-port.d.ts +7 -0
- package/dist/app/ports/jobs-port.d.ts +4 -3
- package/dist/app/ports/persistence-port.d.ts +11 -0
- package/dist/app/ports/updates-port.d.ts +8 -0
- package/dist/attachments/service.js +13 -2
- package/dist/attachments/service.js.map +1 -1
- package/dist/commands/providers.js +13 -10
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/update.d.ts +4 -0
- package/dist/commands/update.js +14 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/llm/adapters/anthropic-tools.d.ts +14 -1
- package/dist/llm/adapters/anthropic-tools.js +36 -5
- package/dist/llm/adapters/anthropic-tools.js.map +1 -1
- package/dist/llm/adapters/gemini-tools.d.ts +3 -1
- package/dist/llm/adapters/gemini-tools.js +5 -2
- package/dist/llm/adapters/gemini-tools.js.map +1 -1
- package/dist/llm/adapters/ollama-tools.js +8 -3
- package/dist/llm/adapters/ollama-tools.js.map +1 -1
- package/dist/llm/adapters/openai-tools.js +8 -1
- package/dist/llm/adapters/openai-tools.js.map +1 -1
- package/dist/llm/agentrouter.js +2 -0
- package/dist/llm/agentrouter.js.map +1 -1
- package/dist/llm/anthropic.d.ts +8 -0
- package/dist/llm/anthropic.js +68 -9
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +60 -12
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/bynara.js +2 -0
- package/dist/llm/bynara.js.map +1 -1
- package/dist/llm/capabilities.d.ts +7 -0
- package/dist/llm/capabilities.js +22 -0
- package/dist/llm/capabilities.js.map +1 -1
- package/dist/llm/gemini.d.ts +3 -0
- package/dist/llm/gemini.js +71 -11
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/groq.d.ts +20 -1
- package/dist/llm/groq.js +32 -4
- package/dist/llm/groq.js.map +1 -1
- package/dist/llm/http.d.ts +29 -0
- package/dist/llm/http.js +122 -29
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/kimchi.js +2 -0
- package/dist/llm/kimchi.js.map +1 -1
- package/dist/llm/nvidia.js +2 -0
- package/dist/llm/nvidia.js.map +1 -1
- package/dist/llm/ollama.d.ts +5 -0
- package/dist/llm/ollama.js +53 -6
- package/dist/llm/ollama.js.map +1 -1
- package/dist/llm/openai.js +2 -0
- package/dist/llm/openai.js.map +1 -1
- package/dist/llm/openrouter.js +2 -0
- package/dist/llm/openrouter.js.map +1 -1
- package/dist/llm/qwen-cloud.js +2 -0
- package/dist/llm/qwen-cloud.js.map +1 -1
- package/dist/llm/router.d.ts +16 -0
- package/dist/llm/router.js +79 -23
- package/dist/llm/router.js.map +1 -1
- package/dist/llm/sampling.d.ts +32 -0
- package/dist/llm/sampling.js +48 -0
- package/dist/llm/sampling.js.map +1 -0
- package/dist/llm/stream-progress.d.ts +4 -0
- package/dist/llm/stream-progress.js +43 -0
- package/dist/llm/stream-progress.js.map +1 -0
- package/dist/llm/system-messages.d.ts +29 -0
- package/dist/llm/system-messages.js +51 -0
- package/dist/llm/system-messages.js.map +1 -0
- package/dist/llm/token-usage.d.ts +4 -1
- package/dist/llm/token-usage.js +56 -4
- package/dist/llm/token-usage.js.map +1 -1
- package/dist/llm/tool-protocol.js +30 -0
- package/dist/llm/tool-protocol.js.map +1 -1
- package/dist/os/process-tree.d.ts +15 -0
- package/dist/os/process-tree.js +77 -0
- package/dist/os/process-tree.js.map +1 -0
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/system.agent.md +13 -12
- package/dist/repl/prompt-line.d.ts +5 -0
- package/dist/repl/prompt-line.js +7 -1
- package/dist/repl/prompt-line.js.map +1 -1
- package/dist/repl.js +61 -41
- package/dist/repl.js.map +1 -1
- package/dist/safety/classifier.js +98 -44
- package/dist/safety/classifier.js.map +1 -1
- package/dist/safety/engagement-policy.d.ts +8 -0
- package/dist/safety/engagement-policy.js +52 -7
- package/dist/safety/engagement-policy.js.map +1 -1
- package/dist/safety/patterns.d.ts +44 -0
- package/dist/safety/patterns.js +168 -37
- package/dist/safety/patterns.js.map +1 -1
- package/dist/store/config.d.ts +9 -1
- package/dist/store/config.js +51 -1
- package/dist/store/config.js.map +1 -1
- package/dist/store/history-index.d.ts +12 -0
- package/dist/store/history-index.js +47 -18
- package/dist/store/history-index.js.map +1 -1
- package/dist/store/history.d.ts +5 -2
- package/dist/store/history.js +153 -62
- package/dist/store/history.js.map +1 -1
- package/dist/store/plan.d.ts +81 -5
- package/dist/store/plan.js +406 -46
- package/dist/store/plan.js.map +1 -1
- package/dist/store/redaction-cache.d.ts +12 -0
- package/dist/store/redaction-cache.js +51 -0
- package/dist/store/redaction-cache.js.map +1 -0
- package/dist/store/responder-settlement.d.ts +5 -1
- package/dist/store/responder-settlement.js +42 -30
- package/dist/store/responder-settlement.js.map +1 -1
- package/dist/store/scope.js +36 -27
- package/dist/store/scope.js.map +1 -1
- package/dist/store/task-transitions.d.ts +19 -0
- package/dist/store/task-transitions.js +46 -0
- package/dist/store/task-transitions.js.map +1 -0
- package/dist/tools/capabilities.js +33 -18
- package/dist/tools/capabilities.js.map +1 -1
- package/dist/tools/command-intent.d.ts +24 -0
- package/dist/tools/command-intent.js +158 -4
- package/dist/tools/command-intent.js.map +1 -1
- package/dist/tools/definitions.d.ts +5 -1
- package/dist/tools/definitions.js +162 -21
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/fs.d.ts +16 -0
- package/dist/tools/fs.js +122 -46
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/image.js +1 -1
- package/dist/tools/image.js.map +1 -1
- package/dist/tools/jobs.d.ts +78 -4
- package/dist/tools/jobs.js +542 -115
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/net-ping-sweep.d.ts +3 -1
- package/dist/tools/net-ping-sweep.js +64 -26
- package/dist/tools/net-ping-sweep.js.map +1 -1
- package/dist/tools/nmap-runner.js +5 -2
- package/dist/tools/nmap-runner.js.map +1 -1
- package/dist/tools/pdf.js +50 -7
- package/dist/tools/pdf.js.map +1 -1
- package/dist/tools/registry.js +154 -96
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.d.ts +24 -2
- package/dist/tools/shell.js +113 -28
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/tool-types.d.ts +2 -0
- package/dist/tools/validate.d.ts +8 -5
- package/dist/tools/validate.js +177 -7
- package/dist/tools/validate.js.map +1 -1
- package/dist/tools/wordlists.js +69 -17
- package/dist/tools/wordlists.js.map +1 -1
- package/dist/tui/state.d.ts +4 -0
- package/dist/tui/state.js +88 -2
- package/dist/tui/state.js.map +1 -1
- package/dist/tui-v2/actions/keymap.js +3 -8
- package/dist/tui-v2/actions/keymap.js.map +1 -1
- package/dist/tui-v2/app/App.js +52 -4
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/commands/config-commands.js +5 -2
- package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/picker-commands.js +3 -0
- package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
- package/dist/tui-v2/app/plan-lifecycle.d.ts +1 -1
- package/dist/tui-v2/app/plan-lifecycle.js +2 -1
- package/dist/tui-v2/app/plan-lifecycle.js.map +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.d.ts +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.js +12 -3
- package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
- package/dist/tui-v2/components/jobs/jobs-panel.js +19 -6
- package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
- package/dist/tui-v2/components/plan/plan-view.js +9 -6
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.d.ts +15 -0
- package/dist/tui-v2/components/status/status-line.js +33 -25
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.js +17 -9
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +49 -22
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/intro-card.js +3 -0
- package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-block.js +2 -1
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +27 -2
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/components/transcript/use-transcript-selection.js +57 -6
- package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +12 -6
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/rendering/incremental-strip.d.ts +11 -0
- package/dist/tui-v2/rendering/incremental-strip.js +89 -0
- package/dist/tui-v2/rendering/incremental-strip.js.map +1 -0
- package/dist/tui-v2/rendering/plan-view.d.ts +12 -0
- package/dist/tui-v2/rendering/plan-view.js +71 -2
- package/dist/tui-v2/rendering/plan-view.js.map +1 -1
- package/dist/tui-v2/rendering/streaming-markdown.d.ts +25 -0
- package/dist/tui-v2/rendering/streaming-markdown.js +108 -0
- package/dist/tui-v2/rendering/streaming-markdown.js.map +1 -0
- package/dist/tui-v2/rendering/thinking-tail.d.ts +5 -0
- package/dist/tui-v2/rendering/thinking-tail.js +26 -0
- package/dist/tui-v2/rendering/thinking-tail.js.map +1 -0
- package/dist/tui-v2/state/transcript-hydrate.js +6 -2
- package/dist/tui-v2/state/transcript-hydrate.js.map +1 -1
- package/dist/tui-v2/state/transcript-reducer.js +146 -25
- package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
- package/dist/tui-v2/state/transcript-types.d.ts +6 -0
- package/dist/tui-v2/state/transcript-types.js +17 -0
- package/dist/tui-v2/state/transcript-types.js.map +1 -1
- package/dist/types.d.ts +29 -0
- package/dist/types.js.map +1 -1
- package/dist/ui/intro-header.d.ts +1 -0
- package/dist/ui/intro-header.js +10 -13
- package/dist/ui/intro-header.js.map +1 -1
- package/dist/ui/markdown.js +9 -2
- package/dist/ui/markdown.js.map +1 -1
- package/dist/ui/mentions.d.ts +5 -0
- package/dist/ui/mentions.js +66 -7
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui/thinking.d.ts +5 -1
- package/dist/ui/thinking.js +3 -2
- package/dist/ui/thinking.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +2 -1
package/dist/agent/outcomes.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
2
|
import { mkdir, readFile, rename, unlink, writeFile } from "node:fs/promises";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { getDataDir } from "../store/paths.js";
|
|
5
|
+
import { redactSecrets } from "../llm/provider.js";
|
|
5
6
|
const fileFor = (sessionId) => join(getDataDir(), "outcomes", `${encodeURIComponent(sessionId)}.json`);
|
|
6
7
|
/**
|
|
7
8
|
* Serialize snapshots for one session without serializing tool execution.
|
|
@@ -28,6 +29,10 @@ function mergeOutcomeEnvelopes(existing, incoming) {
|
|
|
28
29
|
item,
|
|
29
30
|
])).values(),
|
|
30
31
|
];
|
|
32
|
+
const completedOperations = [
|
|
33
|
+
...new Map([...(existing.completedOperations ?? []), ...(incoming.completedOperations ?? [])]
|
|
34
|
+
.map((operation) => [operation.signature, operation])).values(),
|
|
35
|
+
].slice(-40);
|
|
31
36
|
const criteria = [
|
|
32
37
|
...new Map([...existing.outcome.criteria, ...incoming.outcome.criteria].map((criterion) => [
|
|
33
38
|
criterion.id,
|
|
@@ -67,7 +72,13 @@ function mergeOutcomeEnvelopes(existing, incoming) {
|
|
|
67
72
|
: incoming.outcome.updatedAt,
|
|
68
73
|
};
|
|
69
74
|
outcome.status = deriveOutcomeStatus(outcome, evidence);
|
|
70
|
-
return {
|
|
75
|
+
return {
|
|
76
|
+
schemaVersion: 1,
|
|
77
|
+
outcome,
|
|
78
|
+
evidence,
|
|
79
|
+
failedHypotheses,
|
|
80
|
+
completedOperations,
|
|
81
|
+
};
|
|
71
82
|
}
|
|
72
83
|
export function createOutcome(input) {
|
|
73
84
|
const now = new Date().toISOString();
|
|
@@ -209,7 +220,13 @@ export async function loadOutcomeState(sessionId) {
|
|
|
209
220
|
const outcome = { ...parsed.outcome };
|
|
210
221
|
if (outcome.status === "succeeded" && deriveOutcomeStatus(outcome, parsed.evidence) !== "succeeded")
|
|
211
222
|
outcome.status = "partial";
|
|
212
|
-
return {
|
|
223
|
+
return {
|
|
224
|
+
schemaVersion: 1,
|
|
225
|
+
outcome,
|
|
226
|
+
evidence: parsed.evidence,
|
|
227
|
+
failedHypotheses: parsed.failedHypotheses ?? [],
|
|
228
|
+
completedOperations: parsed.completedOperations ?? [],
|
|
229
|
+
};
|
|
213
230
|
}
|
|
214
231
|
catch {
|
|
215
232
|
return undefined;
|
|
@@ -272,6 +289,7 @@ export async function openOutcomeState(input) {
|
|
|
272
289
|
}),
|
|
273
290
|
evidence: [],
|
|
274
291
|
failedHypotheses: existing?.failedHypotheses ?? [],
|
|
292
|
+
completedOperations: existing?.completedOperations ?? [],
|
|
275
293
|
};
|
|
276
294
|
}
|
|
277
295
|
export function recordFailedHypothesis(envelope, input) {
|
|
@@ -280,10 +298,107 @@ export function recordFailedHypothesis(envelope, input) {
|
|
|
280
298
|
envelope.failedHypotheses.push({ ...input, observedAt: new Date().toISOString() });
|
|
281
299
|
}
|
|
282
300
|
}
|
|
301
|
+
function canonicalOperationValue(value, key = "") {
|
|
302
|
+
if (/^(?:_?retryReason)$/i.test(key))
|
|
303
|
+
return undefined;
|
|
304
|
+
if (/pass|secret|token|authorization|api.?key|cookie/i.test(key))
|
|
305
|
+
return "[redacted]";
|
|
306
|
+
if (typeof value === "string")
|
|
307
|
+
return redactSecrets(value);
|
|
308
|
+
if (Array.isArray(value))
|
|
309
|
+
return value.map((item) => canonicalOperationValue(item));
|
|
310
|
+
if (value && typeof value === "object") {
|
|
311
|
+
return Object.fromEntries(Object.entries(value)
|
|
312
|
+
.filter(([, item]) => item !== undefined)
|
|
313
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
314
|
+
.map(([name, item]) => [name, canonicalOperationValue(item, name)])
|
|
315
|
+
.filter(([, item]) => item !== undefined));
|
|
316
|
+
}
|
|
317
|
+
return value;
|
|
318
|
+
}
|
|
319
|
+
export function isCompletedReadOperation(tool, args = {}) {
|
|
320
|
+
if (/^(?:fs\.(?:read|list|search)|web\.(?:search|fetch)|shell\.(?:tail|jobs)|tool\.check|net\.context|pentest\.scanStatus|dns\.|whois\.)/.test(tool))
|
|
321
|
+
return true;
|
|
322
|
+
if (tool === "http.fetch")
|
|
323
|
+
return /^(?:GET|HEAD|OPTIONS)$/i.test(String(args.method ?? "GET"));
|
|
324
|
+
if (tool !== "shell.exec")
|
|
325
|
+
return false;
|
|
326
|
+
const command = String(args.command ?? "");
|
|
327
|
+
return /^\s*curl\b/i.test(command) &&
|
|
328
|
+
!/(?:-X|--request)\s*(?:POST|PUT|PATCH|DELETE)\b|(?:^|\s)(?:-d|--data(?:-raw|-binary)?|-F|--form)(?:\s|=)/i.test(command);
|
|
329
|
+
}
|
|
330
|
+
export function completedOperationSignature(tool, args = {}) {
|
|
331
|
+
if (!isCompletedReadOperation(tool, args))
|
|
332
|
+
return undefined;
|
|
333
|
+
const canonicalArgs = JSON.stringify(canonicalOperationValue(args));
|
|
334
|
+
return createHash("sha256")
|
|
335
|
+
.update(`${tool}\0${canonicalArgs}`)
|
|
336
|
+
.digest("hex")
|
|
337
|
+
.slice(0, 20);
|
|
338
|
+
}
|
|
339
|
+
function stableOperationOutput(tool, output) {
|
|
340
|
+
let stable = redactSecrets(output).replace(/\r\n/g, "\n").trim();
|
|
341
|
+
if (tool === "shell.jobs") {
|
|
342
|
+
stable = stable.replace(/\b(elapsed|age)=?\s*<?\d+(?:\.\d+)?(?:ms|s|m|h)\b/gi, "$1=<elapsed>");
|
|
343
|
+
}
|
|
344
|
+
if (tool === "http.fetch" || tool === "web.fetch") {
|
|
345
|
+
stable = stable
|
|
346
|
+
.replace(/^(?:date|x-request-id|x-trace-id|traceparent|server-timing):.*$/gim, "")
|
|
347
|
+
.replace(/\b(elapsed|duration|latency)\s*[=:]\s*\d+(?:\.\d+)?\s*ms\b/gi, "$1=<elapsed>");
|
|
348
|
+
}
|
|
349
|
+
return stable.replace(/[ \t]+$/gm, "").replace(/\n{3,}/g, "\n\n");
|
|
350
|
+
}
|
|
351
|
+
export function completedOperationObservationDigest(tool, output) {
|
|
352
|
+
return createHash("sha256")
|
|
353
|
+
.update(stableOperationOutput(tool, output))
|
|
354
|
+
.digest("hex")
|
|
355
|
+
.slice(0, 24);
|
|
356
|
+
}
|
|
357
|
+
export function recordCompletedOperation(envelope, input) {
|
|
358
|
+
const args = input.args ?? {};
|
|
359
|
+
const signature = completedOperationSignature(input.tool, args);
|
|
360
|
+
if (!signature)
|
|
361
|
+
return undefined;
|
|
362
|
+
const canonicalArgs = JSON.stringify(canonicalOperationValue(args));
|
|
363
|
+
const digest = completedOperationObservationDigest(input.tool, input.output);
|
|
364
|
+
const operations = envelope.completedOperations ?? (envelope.completedOperations = []);
|
|
365
|
+
const existingIndex = operations.findIndex((item) => item.signature === signature);
|
|
366
|
+
const existing = existingIndex >= 0 ? operations[existingIndex] : undefined;
|
|
367
|
+
const unchanged = existing?.observationDigest === digest &&
|
|
368
|
+
existing.stateKey === input.stateKey;
|
|
369
|
+
const operation = {
|
|
370
|
+
signature,
|
|
371
|
+
tool: input.tool,
|
|
372
|
+
summary: `${input.tool} ${canonicalArgs}`.slice(0, 240),
|
|
373
|
+
observation: input.output.replace(/\s+/g, " ").trim().slice(0, 240),
|
|
374
|
+
ok: input.ok !== false,
|
|
375
|
+
...(input.exitCode !== undefined ? { exitCode: input.exitCode } : {}),
|
|
376
|
+
observationDigest: digest,
|
|
377
|
+
unchangedRepeats: unchanged ? (existing.unchangedRepeats ?? 0) + 1 : 0,
|
|
378
|
+
...(input.stateKey ? { stateKey: input.stateKey } : {}),
|
|
379
|
+
...(input.artifact ? { artifact: input.artifact } : {}),
|
|
380
|
+
observedAt: new Date().toISOString(),
|
|
381
|
+
};
|
|
382
|
+
if (existingIndex >= 0)
|
|
383
|
+
operations.splice(existingIndex, 1);
|
|
384
|
+
operations.push(operation);
|
|
385
|
+
if (operations.length > 40)
|
|
386
|
+
operations.splice(0, operations.length - 40);
|
|
387
|
+
return operation;
|
|
388
|
+
}
|
|
283
389
|
export function recordToolEvidence(envelope, input) {
|
|
284
390
|
const ids = new Set(envelope.outcome.criteria.map((criterion) => criterion.id));
|
|
285
391
|
const command = typeof input.args?.command === "string" ? input.args.command : "";
|
|
286
392
|
const url = typeof input.args?.url === "string" ? input.args.url : "";
|
|
393
|
+
recordCompletedOperation(envelope, {
|
|
394
|
+
tool: input.tool,
|
|
395
|
+
output: input.output,
|
|
396
|
+
ok: input.ok,
|
|
397
|
+
...(input.exitCode !== undefined ? { exitCode: input.exitCode } : {}),
|
|
398
|
+
...(input.args ? { args: input.args } : {}),
|
|
399
|
+
...(input.artifact ? { artifact: input.artifact } : {}),
|
|
400
|
+
...(input.stateKey ? { stateKey: input.stateKey } : {}),
|
|
401
|
+
});
|
|
287
402
|
const records = [];
|
|
288
403
|
const add = (criterionIds, kind, strength) => {
|
|
289
404
|
const linked = criterionIds.filter((id) => ids.has(id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outcomes.js","sourceRoot":"","sources":["../../src/agent/outcomes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"outcomes.js","sourceRoot":"","sources":["../../src/agent/outcomes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { input, select } from "@inquirer/prompts";
|
|
2
2
|
import chalk from "chalk";
|
|
3
|
-
import { deletePlan,
|
|
3
|
+
import { deletePlan, mutatePlan } from "../store/plan.js";
|
|
4
4
|
import { renderPlanDocument } from "../ui/plan-pane.js";
|
|
5
5
|
import { openPager } from "../ui/output-pane.js";
|
|
6
6
|
import { restoreInteractiveStdin } from "./confirm-port.js";
|
|
@@ -97,8 +97,13 @@ export async function handleDraftPlanDecision(opts) {
|
|
|
97
97
|
}
|
|
98
98
|
// accept
|
|
99
99
|
plan.status = "approved";
|
|
100
|
-
|
|
101
|
-
await
|
|
100
|
+
// Status-only transition on fresh state.
|
|
101
|
+
await mutatePlan(plan.sessionId, (draft) => {
|
|
102
|
+
if (draft.status === "approved")
|
|
103
|
+
return false;
|
|
104
|
+
draft.status = "approved";
|
|
105
|
+
return true;
|
|
106
|
+
}).catch(() => undefined);
|
|
102
107
|
opts.planApproved.value = true;
|
|
103
108
|
opts.setModeAgent();
|
|
104
109
|
console.log(chalk.cyan(" ✦ plan accepted — switching to agent mode to execute\n"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-decision.js","sourceRoot":"","sources":["../../src/agent/plan-decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"plan-decision.js","sourceRoot":"","sources":["../../src/agent/plan-decision.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,11 @@ export interface PlanToolResult {
|
|
|
51
51
|
toast?: string | undefined;
|
|
52
52
|
}
|
|
53
53
|
/** Build the system-context block describing the session's active plan. */
|
|
54
|
+
export declare const PLAN_CONTEXT_PREFIX = "ACTIVE PLAN";
|
|
55
|
+
export declare function upsertPlanContextMessage(messages: Array<{
|
|
56
|
+
role: string;
|
|
57
|
+
content: string;
|
|
58
|
+
}>, content: string): void;
|
|
54
59
|
export declare function planContextMessage(plan: SessionPlan, approved: boolean): string;
|
|
55
60
|
/**
|
|
56
61
|
* Handle plan.create / task.update inline. These are session-scoped and
|
package/dist/agent/plan-tool.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { createPlan, loadPlan, savePlan, markTask, isBareTaskIdTitle, isPlanTerminal, isPlanSuccessful, readyPlanTasks, appendPlanTask, applySessionPlanOperation, validateSessionPlan, normalizeTaskDependencies, } from "../store/plan.js";
|
|
2
|
+
import { createPlan, loadPlan, savePlan, mutatePlan, applyForegroundSnapshot, markTask, isBareTaskIdTitle, isPlanTerminal, isPlanSuccessful, readyPlanTasks, appendPlanTask, applySessionPlanOperation, validateSessionPlan, normalizeTaskDependencies, } from "../store/plan.js";
|
|
3
|
+
import { evaluateTaskTransition } from "../store/task-transitions.js";
|
|
3
4
|
import { renderPlanChecklist } from "../ui/plan-pane.js";
|
|
4
5
|
import { isLumpedSingleTask } from "./tool-call-parser.js";
|
|
5
6
|
import { buildDependencyReminder, dependencyToast } from "./task-sync.js";
|
|
@@ -307,6 +308,25 @@ export function renderPlanForTerminal(plan) {
|
|
|
307
308
|
return renderPlanChecklist(plan);
|
|
308
309
|
}
|
|
309
310
|
/** Build the system-context block describing the session's active plan. */
|
|
311
|
+
// Marker that identifies the single live plan message in a request.
|
|
312
|
+
export const PLAN_CONTEXT_PREFIX = "ACTIVE PLAN";
|
|
313
|
+
// Keep exactly one live ACTIVE PLAN copy in the request, as a suffix. The plan
|
|
314
|
+
// is mutable state: a snapshot frozen into the stable system prefix goes stale
|
|
315
|
+
// as tasks advance, and a second re-injected copy lets the model see two
|
|
316
|
+
// disagreeing plans. Every prior copy is dropped before the current one is
|
|
317
|
+
// appended. Call only at protocol-safe points (never between an assistant tool
|
|
318
|
+
// call and its results).
|
|
319
|
+
export function upsertPlanContextMessage(messages, content) {
|
|
320
|
+
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
321
|
+
const message = messages[index];
|
|
322
|
+
if (message.role === "system" &&
|
|
323
|
+
typeof message.content === "string" &&
|
|
324
|
+
message.content.startsWith(PLAN_CONTEXT_PREFIX)) {
|
|
325
|
+
messages.splice(index, 1);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
messages.push({ role: "system", content });
|
|
329
|
+
}
|
|
310
330
|
export function planContextMessage(plan, approved) {
|
|
311
331
|
const lines = [];
|
|
312
332
|
lines.push(`ACTIVE PLAN v${plan.version ?? 1} for this session (goal: ${plan.goal}, status: ${plan.status}):`);
|
|
@@ -332,7 +352,7 @@ export function planContextMessage(plan, approved) {
|
|
|
332
352
|
: "";
|
|
333
353
|
lines.push(` ${i + 1}. [${t.id}] (${t.state}) ${t.title}${hierarchyHint}${jobHint}${aliasHint}${dependencyHint}${resourceHint}${evidenceHint}`);
|
|
334
354
|
});
|
|
335
|
-
lines.push("task.update taskId MUST be t1, t2, … from this list (or a listed alias). Use task.add for newly discovered work; it is placed before unfinished report creation. Use task.move with position/beforeTaskId/afterTaskId to rearrange work without changing ids or evidence. Responder-owned job tasks advance automatically; never task.update them. After analyzing a delivered Responder result,
|
|
355
|
+
lines.push("task.update taskId MUST be t1, t2, … from this list (or a listed alias). Use task.add for newly discovered work; it is placed before unfinished report creation. Use task.move with position/beforeTaskId/afterTaskId to rearrange work without changing ids or evidence. Responder-owned job tasks advance automatically; never task.update them. After analyzing a delivered Responder result, job.read its job or notification before finalizing.");
|
|
336
356
|
if (plan.meta?.projectRoot) {
|
|
337
357
|
lines.push(`project_root: ${plan.meta.projectRoot}`);
|
|
338
358
|
}
|
|
@@ -453,6 +473,76 @@ export async function handlePlanTool(call, session, ctx) {
|
|
|
453
473
|
"the URL (http://localhost:<port>), port, and job id.",
|
|
454
474
|
};
|
|
455
475
|
}
|
|
476
|
+
const appendingToActivePlan = existingPlan &&
|
|
477
|
+
existingPlan.status !== "draft" &&
|
|
478
|
+
!isPlanTerminal(existingPlan) &&
|
|
479
|
+
(session.planApproved.value ||
|
|
480
|
+
existingPlan.status === "approved" ||
|
|
481
|
+
existingPlan.status === "in_progress");
|
|
482
|
+
if (appendingToActivePlan) {
|
|
483
|
+
const priorIds = new Set(existingPlan.tasks.map((task) => task.id));
|
|
484
|
+
let invalidDependency;
|
|
485
|
+
const appended = await mutatePlan(existingPlan.sessionId, (draft) => {
|
|
486
|
+
let changed = false;
|
|
487
|
+
let previousForegroundId = [...draft.tasks]
|
|
488
|
+
.reverse()
|
|
489
|
+
.find((task) => !task.responderOwned)?.id;
|
|
490
|
+
for (const entry of taskEntries) {
|
|
491
|
+
if (isBareTaskIdTitle(entry.title) ||
|
|
492
|
+
draft.tasks.some((task) => titlesMatchForPlan(task.title, entry.title))) {
|
|
493
|
+
continue;
|
|
494
|
+
}
|
|
495
|
+
const dependencies = entry.dependenciesSpecified
|
|
496
|
+
? entry.dependencies.map((reference) => {
|
|
497
|
+
const resolved = resolvePlanTaskId(draft, reference);
|
|
498
|
+
if (!resolved)
|
|
499
|
+
invalidDependency = reference;
|
|
500
|
+
return resolved;
|
|
501
|
+
})
|
|
502
|
+
: previousForegroundId
|
|
503
|
+
? [previousForegroundId]
|
|
504
|
+
: [];
|
|
505
|
+
if (invalidDependency)
|
|
506
|
+
return false;
|
|
507
|
+
const task = appendPlanTask(draft, {
|
|
508
|
+
title: entry.title,
|
|
509
|
+
state: "pending",
|
|
510
|
+
aliases: entry.aliases,
|
|
511
|
+
dependencies: dependencies.filter((dependency) => Boolean(dependency)),
|
|
512
|
+
resourceLocks: entry.resourceLocks,
|
|
513
|
+
});
|
|
514
|
+
previousForegroundId = task.id;
|
|
515
|
+
changed = true;
|
|
516
|
+
}
|
|
517
|
+
return changed;
|
|
518
|
+
}).catch(() => undefined);
|
|
519
|
+
if (!appended?.ok || !appended.plan) {
|
|
520
|
+
const reason = invalidDependency
|
|
521
|
+
? `unknown dependency "${invalidDependency}"`
|
|
522
|
+
: "every proposed task already exists in ACTIVE PLAN";
|
|
523
|
+
return {
|
|
524
|
+
handled: true,
|
|
525
|
+
ok: false,
|
|
526
|
+
display: chalk.yellow(` ⚠ plan.create kept the active plan — ${reason}\n`),
|
|
527
|
+
modelNote: `plan.create did not replace ACTIVE PLAN: ${reason}. ` +
|
|
528
|
+
"Continue its current in_progress task. Use task.add once per genuinely new task; never recreate or renumber active work.",
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
session.planApproved.value = true;
|
|
532
|
+
const addedTasks = appended.plan.tasks.filter((task) => !priorIds.has(task.id));
|
|
533
|
+
const checklist = renderPlanForTerminal(appended.plan);
|
|
534
|
+
return {
|
|
535
|
+
handled: true,
|
|
536
|
+
ok: true,
|
|
537
|
+
plan: appended.plan,
|
|
538
|
+
display: chalk.cyan(" ● active plan extended (append-only)\n") +
|
|
539
|
+
checklist +
|
|
540
|
+
"\n" +
|
|
541
|
+
chalk.dim(` ✦ preserved all existing ids/states; appended ${addedTasks.length} new task(s).\n`),
|
|
542
|
+
modelNote: `ACTIVE PLAN was preserved and ${addedTasks.length} genuinely new task(s) were appended as ${addedTasks.map((task) => task.id).join(", ")}. ` +
|
|
543
|
+
"Continue the existing in_progress task first. For later discoveries use task.add, not plan.create; never re-run completed work.",
|
|
544
|
+
};
|
|
545
|
+
}
|
|
456
546
|
// Preserve authored task count/order. Build, install, and verification
|
|
457
547
|
// evidence may span tasks; the runtime must not inject regex-derived
|
|
458
548
|
// checkpoints that change IDs or make progress diverge from the plan.
|
|
@@ -656,7 +746,20 @@ export async function handlePlanTool(call, session, ctx) {
|
|
|
656
746
|
else {
|
|
657
747
|
session.planApproved.value = false;
|
|
658
748
|
}
|
|
659
|
-
|
|
749
|
+
// A revision is a foreground snapshot; responder children keep
|
|
750
|
+
// their process-authoritative state. A brand-new plan has nothing stored
|
|
751
|
+
// yet, so fall back to a plain create.
|
|
752
|
+
const revised = await mutatePlan(plan.sessionId, (draft) => {
|
|
753
|
+
applyForegroundSnapshot(draft, plan);
|
|
754
|
+
return true;
|
|
755
|
+
}).catch(() => undefined);
|
|
756
|
+
if (!revised?.ok) {
|
|
757
|
+
await savePlan(plan).catch(() => undefined);
|
|
758
|
+
}
|
|
759
|
+
else if (revised.plan) {
|
|
760
|
+
plan.tasks = revised.plan.tasks;
|
|
761
|
+
plan.version = revised.plan.version;
|
|
762
|
+
}
|
|
660
763
|
const checklist = renderPlanForTerminal(plan);
|
|
661
764
|
const display = additiveOnly
|
|
662
765
|
? chalk.cyan(" ● plan updated (additive)\n") +
|
|
@@ -767,7 +870,10 @@ export async function handlePlanTool(call, session, ctx) {
|
|
|
767
870
|
stepId: taskId,
|
|
768
871
|
index,
|
|
769
872
|
});
|
|
770
|
-
await
|
|
873
|
+
await mutatePlan(plan.sessionId, (draft) => {
|
|
874
|
+
applyForegroundSnapshot(draft, updated);
|
|
875
|
+
return true;
|
|
876
|
+
}).catch(() => undefined);
|
|
771
877
|
return {
|
|
772
878
|
handled: true,
|
|
773
879
|
ok: true,
|
|
@@ -883,7 +989,12 @@ export async function handlePlanTool(call, session, ctx) {
|
|
|
883
989
|
modelNote: `task.add failed: ${validation.reason}.`,
|
|
884
990
|
};
|
|
885
991
|
}
|
|
886
|
-
|
|
992
|
+
// Apply the authored foreground layout onto fresh state so a
|
|
993
|
+
// concurrent responder settlement is preserved.
|
|
994
|
+
await mutatePlan(plan.sessionId, (draft) => {
|
|
995
|
+
applyForegroundSnapshot(draft, plan);
|
|
996
|
+
return true;
|
|
997
|
+
}).catch(() => undefined);
|
|
887
998
|
return {
|
|
888
999
|
handled: true,
|
|
889
1000
|
ok: true,
|
|
@@ -947,6 +1058,19 @@ export async function handlePlanTool(call, session, ctx) {
|
|
|
947
1058
|
};
|
|
948
1059
|
}
|
|
949
1060
|
if (target?.state !== "in_progress") {
|
|
1061
|
+
const otherActive = plan.tasks.find((task) => task.id !== taskId &&
|
|
1062
|
+
task.state === "in_progress" &&
|
|
1063
|
+
!task.responderOwned);
|
|
1064
|
+
if (otherActive) {
|
|
1065
|
+
return {
|
|
1066
|
+
handled: true,
|
|
1067
|
+
ok: false,
|
|
1068
|
+
display: chalk.red(` ✗ task.update: [${otherActive.id}] is still in progress — only one foreground task may be active\n`),
|
|
1069
|
+
modelNote: `task.update failed: [${otherActive.id}] "${otherActive.title}" is still in_progress. ` +
|
|
1070
|
+
`Close it first with task.update {taskId:"${otherActive.id}", state:"done"} (or "failed"/"skipped" with a reason), then open [${taskId}]. ` +
|
|
1071
|
+
`Exactly one foreground task may be active at a time; Responder-owned subtasks are exempt.`,
|
|
1072
|
+
};
|
|
1073
|
+
}
|
|
950
1074
|
const incompleteDependencies = (target?.dependencies ?? []).filter((dependency) => {
|
|
951
1075
|
const dependencyTask = plan.tasks.find((task) => task.id === dependency);
|
|
952
1076
|
return !dependencyTask || (dependencyTask.state !== "done" && dependencyTask.state !== "skipped");
|
|
@@ -1043,6 +1167,22 @@ export async function handlePlanTool(call, session, ctx) {
|
|
|
1043
1167
|
}
|
|
1044
1168
|
}
|
|
1045
1169
|
}
|
|
1170
|
+
const transitionTarget = plan.tasks.find((task) => task.id === taskId);
|
|
1171
|
+
if (transitionTarget) {
|
|
1172
|
+
const verdict = evaluateTaskTransition(transitionTarget.state, stateRaw);
|
|
1173
|
+
if (!verdict.allowed) {
|
|
1174
|
+
const nextReady = readyPlanTasks(plan)[0];
|
|
1175
|
+
return {
|
|
1176
|
+
handled: true,
|
|
1177
|
+
ok: false,
|
|
1178
|
+
display: chalk.red(` ✗ task.update: [${taskId}] ${transitionTarget.state} → ${stateRaw} is not a valid transition\n`),
|
|
1179
|
+
modelNote: `task.update failed: [${taskId}] ${verdict.reason}. ` +
|
|
1180
|
+
(nextReady
|
|
1181
|
+
? `Continue with ${nextReady.id} ("${nextReady.title}").`
|
|
1182
|
+
: "All ready work is finished — write the final summary if needed."),
|
|
1183
|
+
};
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1046
1186
|
const ok = markTask(plan, taskId, stateRaw, note);
|
|
1047
1187
|
if (!ok) {
|
|
1048
1188
|
const idMap = plan.tasks
|
|
@@ -1064,7 +1204,27 @@ export async function handlePlanTool(call, session, ctx) {
|
|
|
1064
1204
|
const successful = isPlanSuccessful(plan);
|
|
1065
1205
|
if (terminal)
|
|
1066
1206
|
plan.status = successful ? "completed" : "abandoned";
|
|
1067
|
-
|
|
1207
|
+
// Persist the transition (not the whole snapshot) so a concurrent
|
|
1208
|
+
// responder settlement or evidence patch survives.
|
|
1209
|
+
const committedStates = new Map(plan.tasks.map((task) => [
|
|
1210
|
+
task.id,
|
|
1211
|
+
{ state: task.state, note: task.note },
|
|
1212
|
+
]));
|
|
1213
|
+
await mutatePlan(plan.sessionId, (draft) => {
|
|
1214
|
+
for (const task of draft.tasks) {
|
|
1215
|
+
const desired = committedStates.get(task.id);
|
|
1216
|
+
if (!desired)
|
|
1217
|
+
continue;
|
|
1218
|
+
// Responder children are owned by process settlement, never by task.update.
|
|
1219
|
+
if (task.responderOwned)
|
|
1220
|
+
continue;
|
|
1221
|
+
task.state = desired.state;
|
|
1222
|
+
if (desired.note !== undefined)
|
|
1223
|
+
task.note = desired.note;
|
|
1224
|
+
}
|
|
1225
|
+
draft.status = plan.status;
|
|
1226
|
+
return true;
|
|
1227
|
+
}).catch(() => undefined);
|
|
1068
1228
|
const checklist = renderPlanForTerminal(plan);
|
|
1069
1229
|
const nextPending = readyPlanTasks(plan)[0];
|
|
1070
1230
|
let modelNote;
|