@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continue-orient.js","sourceRoot":"","sources":["../../src/agent/continue-orient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAEpE,sEAAsE;AACtE,MAAM,UAAU,+BAA+B,CAAC,MAAc;IAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,wCAAwC;IACxC,IACE,0HAA0H,CAAC,IAAI,CAC7H,CAAC,CACF,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,gDAAgD;IAChD,IACE,uFAAuF,CAAC,IAAI,CAC1F,CAAC,CACF;QACD,CAAC,CAAC,MAAM,GAAG,GAAG,EACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,sKAAsK,CAAC,IAAI,CACzK,CAAC,CACF,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;
|
|
1
|
+
{"version":3,"file":"continue-orient.js","sourceRoot":"","sources":["../../src/agent/continue-orient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ToolCall } from "../types.js";
|
|
2
|
+
import type { OutcomeEnvelope } from "./outcomes.js";
|
|
3
|
+
import { type SessionPlan } from "../store/plan.js";
|
|
4
|
+
export declare const DURABLE_ENVELOPE_PREFIX = "DURABLE WORK ENVELOPE";
|
|
5
|
+
export type FileMutationKind = "created" | "modified" | "deleted";
|
|
6
|
+
export declare class WorkLedger {
|
|
7
|
+
private readonly files;
|
|
8
|
+
private readonly artifacts;
|
|
9
|
+
recordToolCall(call: ToolCall, ok: boolean, artifactPath?: string): void;
|
|
10
|
+
pathsByKind(kind: FileMutationKind): string[];
|
|
11
|
+
artifactPaths(): string[];
|
|
12
|
+
get size(): number;
|
|
13
|
+
}
|
|
14
|
+
export interface ResponderEnvelopeState {
|
|
15
|
+
readonly unread: readonly string[];
|
|
16
|
+
readonly consumed: readonly string[];
|
|
17
|
+
}
|
|
18
|
+
export interface EnvelopeJobState {
|
|
19
|
+
readonly id: string;
|
|
20
|
+
readonly status: string;
|
|
21
|
+
readonly command: string;
|
|
22
|
+
readonly taskId?: string | undefined;
|
|
23
|
+
readonly artifact?: string | undefined;
|
|
24
|
+
}
|
|
25
|
+
export interface DurableEnvelopeInput {
|
|
26
|
+
readonly plan?: SessionPlan | undefined;
|
|
27
|
+
readonly outcome?: OutcomeEnvelope | undefined;
|
|
28
|
+
readonly ledger?: WorkLedger | undefined;
|
|
29
|
+
readonly responder?: ResponderEnvelopeState | undefined;
|
|
30
|
+
/** Background work still running when compaction happened. */
|
|
31
|
+
readonly liveJobs?: readonly EnvelopeJobState[] | undefined;
|
|
32
|
+
/** Terminal jobs whose output has not been harvested yet. */
|
|
33
|
+
readonly finishedJobs?: readonly EnvelopeJobState[] | undefined;
|
|
34
|
+
readonly projectRoot?: string | undefined;
|
|
35
|
+
readonly packageManager?: string | undefined;
|
|
36
|
+
readonly scopeSummary?: string | undefined;
|
|
37
|
+
}
|
|
38
|
+
export declare function buildDurableEnvelope(input: DurableEnvelopeInput): string | undefined;
|
|
39
|
+
export declare function isDurableEnvelopeContent(content: string): boolean;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
// Deterministic durable work envelope for compaction.
|
|
2
|
+
//
|
|
3
|
+
// Narrative memory is model-written and therefore lossy. The envelope is built
|
|
4
|
+
// from canonical stores (plan, outcome contract, evidence, responder ledger,
|
|
5
|
+
// mutation ledger) so file changes, proven checks, unresolved criteria, failed
|
|
6
|
+
// approaches and the exact next step survive every compaction verbatim.
|
|
7
|
+
import { relative } from "node:path";
|
|
8
|
+
import { scratchWriteTargetPaths } from "./scratch-write.js";
|
|
9
|
+
import { foregroundActiveTask, foregroundRemaining, foregroundTasks, responderOpenTasks, } from "../store/plan.js";
|
|
10
|
+
export const DURABLE_ENVELOPE_PREFIX = "DURABLE WORK ENVELOPE";
|
|
11
|
+
// Max entries rendered per list before a bounded overflow marker.
|
|
12
|
+
const MAX_LIST_ENTRIES = 20;
|
|
13
|
+
// Max chars of a single rendered statement.
|
|
14
|
+
const MAX_STATEMENT_CHARS = 180;
|
|
15
|
+
const MUTATION_KIND_BY_TOOL = new Map([
|
|
16
|
+
["fs.write", "created"],
|
|
17
|
+
["fs.writeMany", "created"],
|
|
18
|
+
["fs.edit", "modified"],
|
|
19
|
+
["fs.replaceLines", "modified"],
|
|
20
|
+
["fs.append", "modified"],
|
|
21
|
+
["fs.delete", "deleted"],
|
|
22
|
+
]);
|
|
23
|
+
// Session-scoped record of successful filesystem mutations and durable
|
|
24
|
+
// artifacts. Insertion order is preserved so the envelope is stable between
|
|
25
|
+
// compactions of the same work.
|
|
26
|
+
export class WorkLedger {
|
|
27
|
+
files = new Map();
|
|
28
|
+
artifacts = new Set();
|
|
29
|
+
recordToolCall(call, ok, artifactPath) {
|
|
30
|
+
if (artifactPath)
|
|
31
|
+
this.artifacts.add(artifactPath);
|
|
32
|
+
if (!ok)
|
|
33
|
+
return;
|
|
34
|
+
const kind = MUTATION_KIND_BY_TOOL.get(call.name);
|
|
35
|
+
if (!kind)
|
|
36
|
+
return;
|
|
37
|
+
for (const path of scratchWriteTargetPaths(call)) {
|
|
38
|
+
const existing = this.files.get(path);
|
|
39
|
+
// A create followed by edits is still a create; a delete always wins.
|
|
40
|
+
if (kind === "deleted" || existing === undefined) {
|
|
41
|
+
this.files.set(path, kind);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
pathsByKind(kind) {
|
|
46
|
+
return [...this.files.entries()]
|
|
47
|
+
.filter(([, value]) => value === kind)
|
|
48
|
+
.map(([path]) => path);
|
|
49
|
+
}
|
|
50
|
+
artifactPaths() {
|
|
51
|
+
return [...this.artifacts];
|
|
52
|
+
}
|
|
53
|
+
get size() {
|
|
54
|
+
return this.files.size + this.artifacts.size;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function clip(text, max = MAX_STATEMENT_CHARS) {
|
|
58
|
+
const cleaned = text.replace(/\s+/g, " ").trim();
|
|
59
|
+
return cleaned.length <= max ? cleaned : `${cleaned.slice(0, max - 1)}…`;
|
|
60
|
+
}
|
|
61
|
+
function renderList(paths, root) {
|
|
62
|
+
const shown = paths.slice(0, MAX_LIST_ENTRIES).map((path) => {
|
|
63
|
+
if (!root)
|
|
64
|
+
return path;
|
|
65
|
+
const rel = relative(root, path);
|
|
66
|
+
return rel && !rel.startsWith("..") ? rel : path;
|
|
67
|
+
});
|
|
68
|
+
const overflow = paths.length - shown.length;
|
|
69
|
+
return overflow > 0
|
|
70
|
+
? `${shown.join(", ")} (+${overflow} more)`
|
|
71
|
+
: shown.join(", ");
|
|
72
|
+
}
|
|
73
|
+
function planLines(plan, lines) {
|
|
74
|
+
const foreground = foregroundTasks(plan);
|
|
75
|
+
const active = foregroundActiveTask(plan);
|
|
76
|
+
const remaining = foregroundRemaining(plan);
|
|
77
|
+
lines.push(`Plan ${plan.sessionId} (${plan.status}): ${clip(plan.goal || "(no goal)")} — ${foreground.length - remaining.length}/${foreground.length} foreground tasks done`);
|
|
78
|
+
if (active) {
|
|
79
|
+
lines.push(`Active foreground task: ${active.id} ${clip(active.title)}`);
|
|
80
|
+
}
|
|
81
|
+
const next = remaining.find((task) => task.id !== active?.id);
|
|
82
|
+
if (next)
|
|
83
|
+
lines.push(`Next foreground task: ${next.id} ${clip(next.title)}`);
|
|
84
|
+
const open = responderOpenTasks(plan);
|
|
85
|
+
if (open.length > 0) {
|
|
86
|
+
lines.push(`Open responder children: ${open.map((task) => task.id).slice(0, MAX_LIST_ENTRIES).join(", ")}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function outcomeLines(outcome, lines) {
|
|
90
|
+
const proven = outcome.outcome.criteria.filter((criterion) => criterion.status === "proven");
|
|
91
|
+
const unresolved = outcome.outcome.criteria.filter((criterion) => criterion.status === "unproven" ||
|
|
92
|
+
criterion.status === "supported" ||
|
|
93
|
+
criterion.status === "refuted");
|
|
94
|
+
lines.push(`Outcome ${outcome.outcome.kind}: ${outcome.outcome.status}`);
|
|
95
|
+
if (proven.length > 0) {
|
|
96
|
+
lines.push(`Proven criteria: ${proven.map((c) => `${c.id} ${clip(c.statement, 80)}`).slice(0, MAX_LIST_ENTRIES).join("; ")}`);
|
|
97
|
+
}
|
|
98
|
+
if (unresolved.length > 0) {
|
|
99
|
+
lines.push(`Unresolved criteria: ${unresolved
|
|
100
|
+
.map((c) => `${c.id} (${c.status}${c.required ? ", required" : ""}) ${clip(c.statement, 80)}`)
|
|
101
|
+
.slice(0, MAX_LIST_ENTRIES)
|
|
102
|
+
.join("; ")}`);
|
|
103
|
+
}
|
|
104
|
+
const passes = outcome.evidence.filter((record) => record.result === "pass");
|
|
105
|
+
if (passes.length > 0) {
|
|
106
|
+
const recent = passes.slice(-MAX_LIST_ENTRIES);
|
|
107
|
+
lines.push(`Verified checks: ${recent.map((record) => `${record.source.tool} ${clip(record.observation, 70)}`).join("; ")}`);
|
|
108
|
+
}
|
|
109
|
+
if (outcome.failedHypotheses.length > 0) {
|
|
110
|
+
const recent = outcome.failedHypotheses.slice(-MAX_LIST_ENTRIES);
|
|
111
|
+
lines.push(`Failed approaches (do not repeat): ${recent.map((entry) => `${entry.signature} — ${clip(entry.premise, 90)}`).join("; ")}`);
|
|
112
|
+
}
|
|
113
|
+
const completed = outcome.completedOperations ?? [];
|
|
114
|
+
if (completed.length > 0) {
|
|
115
|
+
lines.push(`Completed read-only operations (do not repeat identical calls): ${completed
|
|
116
|
+
.slice(-MAX_LIST_ENTRIES)
|
|
117
|
+
.map((entry) => `${entry.signature} ${clip(entry.summary, 90)} — ${clip(entry.observation, 80)}${entry.artifact ? ` artifact=${entry.artifact}` : ""}`)
|
|
118
|
+
.join("; ")}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function renderJob(job) {
|
|
122
|
+
const task = job.taskId ? ` task=${job.taskId}` : "";
|
|
123
|
+
const artifact = job.artifact ? ` artifact=${job.artifact}` : "";
|
|
124
|
+
return `[${job.id}] ${job.status}${task} — ${clip(job.command, 90)}${artifact}`;
|
|
125
|
+
}
|
|
126
|
+
// Background work is the state most often lost across compaction: without it
|
|
127
|
+
// the model relaunches scans/builds that are already running or finished.
|
|
128
|
+
function jobLines(input, lines) {
|
|
129
|
+
const live = input.liveJobs ?? [];
|
|
130
|
+
const finished = input.finishedJobs ?? [];
|
|
131
|
+
if (live.length > 0) {
|
|
132
|
+
lines.push(`Live background jobs (do not relaunch; use shell.tail): ${live
|
|
133
|
+
.slice(0, MAX_LIST_ENTRIES)
|
|
134
|
+
.map(renderJob)
|
|
135
|
+
.join("; ")}`);
|
|
136
|
+
}
|
|
137
|
+
if (finished.length > 0) {
|
|
138
|
+
lines.push(`Finished background jobs (harvest output before redoing the work): ${finished
|
|
139
|
+
.slice(0, MAX_LIST_ENTRIES)
|
|
140
|
+
.map(renderJob)
|
|
141
|
+
.join("; ")}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Render the envelope. Returns undefined when there is no canonical state worth
|
|
145
|
+
// preserving, so compaction does not inject an empty block.
|
|
146
|
+
export function buildDurableEnvelope(input) {
|
|
147
|
+
const lines = [];
|
|
148
|
+
if (input.projectRoot) {
|
|
149
|
+
lines.push(`Project root: ${input.projectRoot}${input.packageManager ? ` (package manager: ${input.packageManager})` : ""}`);
|
|
150
|
+
}
|
|
151
|
+
if (input.scopeSummary)
|
|
152
|
+
lines.push(`Engagement scope: ${clip(input.scopeSummary, 240)}`);
|
|
153
|
+
if (input.plan)
|
|
154
|
+
planLines(input.plan, lines);
|
|
155
|
+
if (input.outcome)
|
|
156
|
+
outcomeLines(input.outcome, lines);
|
|
157
|
+
if (input.responder) {
|
|
158
|
+
if (input.responder.unread.length > 0) {
|
|
159
|
+
lines.push(`Unread responder results: ${input.responder.unread.join(", ")}`);
|
|
160
|
+
}
|
|
161
|
+
if (input.responder.consumed.length > 0) {
|
|
162
|
+
lines.push(`Consumed responder results (never re-read): ${input.responder.consumed.join(", ")}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
jobLines(input, lines);
|
|
166
|
+
const ledger = input.ledger;
|
|
167
|
+
if (ledger && ledger.size > 0) {
|
|
168
|
+
const created = ledger.pathsByKind("created");
|
|
169
|
+
const modified = ledger.pathsByKind("modified");
|
|
170
|
+
const deleted = ledger.pathsByKind("deleted");
|
|
171
|
+
const artifacts = ledger.artifactPaths();
|
|
172
|
+
if (created.length > 0) {
|
|
173
|
+
lines.push(`Files created: ${renderList(created, input.projectRoot)}`);
|
|
174
|
+
}
|
|
175
|
+
if (modified.length > 0) {
|
|
176
|
+
lines.push(`Files modified: ${renderList(modified, input.projectRoot)}`);
|
|
177
|
+
}
|
|
178
|
+
if (deleted.length > 0) {
|
|
179
|
+
lines.push(`Files deleted: ${renderList(deleted, input.projectRoot)}`);
|
|
180
|
+
}
|
|
181
|
+
if (artifacts.length > 0) {
|
|
182
|
+
lines.push(`Artifacts on disk: ${renderList(artifacts)}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (lines.length === 0)
|
|
186
|
+
return undefined;
|
|
187
|
+
return [
|
|
188
|
+
`${DURABLE_ENVELOPE_PREFIX} (canonical; authoritative over summarized narrative)`,
|
|
189
|
+
...lines,
|
|
190
|
+
].join("\n");
|
|
191
|
+
}
|
|
192
|
+
export function isDurableEnvelopeContent(content) {
|
|
193
|
+
return content.startsWith(DURABLE_ENVELOPE_PREFIX);
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=durable-envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durable-envelope.js","sourceRoot":"","sources":["../../src/agent/durable-envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/events.d.ts
CHANGED
|
@@ -75,6 +75,27 @@ export type AgentEvent = {
|
|
|
75
75
|
type: "turn-error";
|
|
76
76
|
message: string;
|
|
77
77
|
} | {
|
|
78
|
+
type: "compaction-start";
|
|
79
|
+
id: string;
|
|
80
|
+
beforeTokens: number;
|
|
81
|
+
} | {
|
|
82
|
+
type: "compaction-delta";
|
|
83
|
+
id: string;
|
|
84
|
+
text: string;
|
|
85
|
+
} | {
|
|
86
|
+
type: "compaction-completed";
|
|
87
|
+
id: string;
|
|
88
|
+
summary: string;
|
|
89
|
+
beforeTokens: number;
|
|
90
|
+
afterTokens: number;
|
|
91
|
+
} | {
|
|
92
|
+
type: "compaction-failed";
|
|
93
|
+
id: string;
|
|
94
|
+
message: string;
|
|
95
|
+
retainedTokens: number;
|
|
96
|
+
}
|
|
97
|
+
/** Legacy one-shot compaction event retained for non-streaming integrations. */
|
|
98
|
+
| {
|
|
78
99
|
type: "compacted";
|
|
79
100
|
summary: string;
|
|
80
101
|
beforeTokens: number;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CompletedOperation } from "./outcomes.js";
|
|
1
2
|
export interface ToolAttempt {
|
|
2
3
|
step: number;
|
|
3
4
|
callName: string;
|
|
@@ -21,20 +22,30 @@ export interface RetryContext {
|
|
|
21
22
|
dependenciesChanged?: boolean;
|
|
22
23
|
/** The execution environment changed since the failed attempt. */
|
|
23
24
|
environmentChanged?: boolean;
|
|
25
|
+
/** Stable live state for status probes, excluding elapsed time. */
|
|
26
|
+
stateKey?: string | undefined;
|
|
24
27
|
/** Structured justification for retrying without an external change. */
|
|
25
28
|
retryReason?: {
|
|
26
29
|
code: string;
|
|
27
30
|
detail: string;
|
|
28
31
|
};
|
|
29
32
|
}
|
|
33
|
+
export interface LoopDecision {
|
|
34
|
+
block: boolean;
|
|
35
|
+
kind?: "failed-retry" | "unchanged-success" | undefined;
|
|
36
|
+
reason?: string | undefined;
|
|
37
|
+
}
|
|
30
38
|
export declare class LoopGuard {
|
|
31
39
|
private attempts;
|
|
32
40
|
private signatureCount;
|
|
33
41
|
private signatureSuccess;
|
|
34
42
|
/** Failed read-only signatures that already used their one free env-change retry. */
|
|
35
43
|
private failedReadRetryUsed;
|
|
44
|
+
private successfulProbes;
|
|
45
|
+
private failedProbes;
|
|
36
46
|
private lastSuccessfulNonMetaStep;
|
|
37
47
|
constructor(_options?: LoopGuardOptions);
|
|
48
|
+
restoreCompletedOperations(operations: readonly CompletedOperation[]): void;
|
|
38
49
|
/**
|
|
39
50
|
* Produce a canonical string for a (name, args) pair so that calls
|
|
40
51
|
* with identical semantics match even if arg order differs or
|
|
@@ -44,7 +55,7 @@ export declare class LoopGuard {
|
|
|
44
55
|
* verbatim — so writeMany scaffolds cannot pin multi-MB strings in Maps.
|
|
45
56
|
*/
|
|
46
57
|
canonicalize(name: string, args: Record<string, unknown>): string;
|
|
47
|
-
recordAttempt(step: number, name: string, args: Record<string, unknown>, ok: boolean, exitCode?: number | undefined,
|
|
58
|
+
recordAttempt(step: number, name: string, args: Record<string, unknown>, ok: boolean, exitCode?: number | undefined, output?: string | undefined, context?: RetryContext | undefined): void;
|
|
48
59
|
private isPathMutatingTool;
|
|
49
60
|
/** Drop list/read signatures that touch paths a successful tool may have created. */
|
|
50
61
|
private invalidateReadsAfterSuccess;
|
|
@@ -53,10 +64,7 @@ export declare class LoopGuard {
|
|
|
53
64
|
* Successful re-calls always pass through with no warning — no
|
|
54
65
|
* "already succeeded / use prior results" messaging.
|
|
55
66
|
*/
|
|
56
|
-
shouldBlock(name: string, args: Record<string, unknown>, retryContext?: RetryContext):
|
|
57
|
-
block: boolean;
|
|
58
|
-
reason?: string | undefined;
|
|
59
|
-
};
|
|
67
|
+
shouldBlock(name: string, args: Record<string, unknown>, retryContext?: RetryContext): LoopDecision;
|
|
60
68
|
getAttemptCount(name: string, args: Record<string, unknown>): number;
|
|
61
69
|
/**
|
|
62
70
|
* Check if recent calls show a pattern of repeated failures
|
package/dist/agent/loop-guard.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { slimToolArgs } from "./message-slim.js";
|
|
2
|
+
import { completedOperationObservationDigest, completedOperationSignature, } from "./outcomes.js";
|
|
2
3
|
/** Bound attempt history so long thrash turns cannot retain thousands of sigs. */
|
|
3
4
|
const MAX_ATTEMPT_HISTORY = 400;
|
|
4
5
|
/**
|
|
@@ -27,8 +28,28 @@ export class LoopGuard {
|
|
|
27
28
|
signatureSuccess = new Map();
|
|
28
29
|
/** Failed read-only signatures that already used their one free env-change retry. */
|
|
29
30
|
failedReadRetryUsed = new Set();
|
|
31
|
+
successfulProbes = new Map();
|
|
32
|
+
failedProbes = new Map();
|
|
30
33
|
lastSuccessfulNonMetaStep = -1;
|
|
31
34
|
constructor(_options = {}) { }
|
|
35
|
+
restoreCompletedOperations(operations) {
|
|
36
|
+
for (const operation of operations) {
|
|
37
|
+
if (operation.ok === false) {
|
|
38
|
+
this.failedProbes.set(operation.signature, {
|
|
39
|
+
...(operation.stateKey ? { stateKey: operation.stateKey } : {}),
|
|
40
|
+
});
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (!operation.observationDigest)
|
|
44
|
+
continue;
|
|
45
|
+
this.successfulProbes.set(operation.signature, {
|
|
46
|
+
digest: operation.observationDigest,
|
|
47
|
+
unchangedRepeats: operation.unchangedRepeats ?? 0,
|
|
48
|
+
...(operation.stateKey ? { stateKey: operation.stateKey } : {}),
|
|
49
|
+
compareAfterRestore: true,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
32
53
|
/**
|
|
33
54
|
* Produce a canonical string for a (name, args) pair so that calls
|
|
34
55
|
* with identical semantics match even if arg order differs or
|
|
@@ -46,7 +67,7 @@ export class LoopGuard {
|
|
|
46
67
|
}
|
|
47
68
|
return `${name}::${JSON.stringify(slimmed)}`;
|
|
48
69
|
}
|
|
49
|
-
recordAttempt(step, name, args, ok, exitCode,
|
|
70
|
+
recordAttempt(step, name, args, ok, exitCode, output, context) {
|
|
50
71
|
const sig = this.canonicalize(name, args);
|
|
51
72
|
this.attempts.push({
|
|
52
73
|
step,
|
|
@@ -69,7 +90,35 @@ export class LoopGuard {
|
|
|
69
90
|
if (!this.signatureSuccess.has(sig))
|
|
70
91
|
this.signatureSuccess.set(sig, false);
|
|
71
92
|
}
|
|
93
|
+
const probeSignature = completedOperationSignature(name, args);
|
|
94
|
+
if (ok && output !== undefined && probeSignature) {
|
|
95
|
+
const digest = completedOperationObservationDigest(name, output);
|
|
96
|
+
const prior = this.successfulProbes.get(probeSignature);
|
|
97
|
+
const unchanged = prior?.digest === digest && prior.stateKey === context?.stateKey;
|
|
98
|
+
this.successfulProbes.set(probeSignature, {
|
|
99
|
+
digest,
|
|
100
|
+
unchangedRepeats: unchanged ? (prior?.unchangedRepeats ?? 0) + 1 : 0,
|
|
101
|
+
...(context?.stateKey ? { stateKey: context.stateKey } : {}),
|
|
102
|
+
compareAfterRestore: false,
|
|
103
|
+
...(prior?.retryReason ? { retryReason: prior.retryReason } : {}),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (probeSignature) {
|
|
107
|
+
if (ok) {
|
|
108
|
+
this.failedProbes.delete(probeSignature);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
const priorFailure = this.failedProbes.get(probeSignature);
|
|
112
|
+
this.failedProbes.set(probeSignature, {
|
|
113
|
+
...(context?.stateKey ? { stateKey: context.stateKey } : {}),
|
|
114
|
+
...(priorFailure?.retryReason
|
|
115
|
+
? { retryReason: priorFailure.retryReason }
|
|
116
|
+
: {}),
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
72
120
|
if (ok && this.isPathMutatingTool(name)) {
|
|
121
|
+
this.successfulProbes.clear();
|
|
73
122
|
this.invalidateReadsAfterSuccess(name, args);
|
|
74
123
|
}
|
|
75
124
|
}
|
|
@@ -128,7 +177,70 @@ export class LoopGuard {
|
|
|
128
177
|
if (name === "task.update" || name === "plan.create") {
|
|
129
178
|
return { block: false };
|
|
130
179
|
}
|
|
180
|
+
const probeSignature = completedOperationSignature(name, args);
|
|
181
|
+
const probe = probeSignature
|
|
182
|
+
? this.successfulProbes.get(probeSignature)
|
|
183
|
+
: undefined;
|
|
184
|
+
if (probe) {
|
|
185
|
+
if (probe.compareAfterRestore) {
|
|
186
|
+
probe.compareAfterRestore = false;
|
|
187
|
+
return { block: false };
|
|
188
|
+
}
|
|
189
|
+
if (retryContext?.stateKey !== undefined &&
|
|
190
|
+
retryContext.stateKey !== probe.stateKey) {
|
|
191
|
+
return { block: false };
|
|
192
|
+
}
|
|
193
|
+
const retryReason = retryContext?.retryReason;
|
|
194
|
+
const reasonKey = retryReason?.code.trim() && retryReason.detail.trim()
|
|
195
|
+
? `${retryReason.code.trim()}\0${retryReason.detail.trim()}`
|
|
196
|
+
: undefined;
|
|
197
|
+
if (reasonKey && reasonKey !== probe.retryReason) {
|
|
198
|
+
probe.retryReason = reasonKey;
|
|
199
|
+
return { block: false };
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
block: true,
|
|
203
|
+
kind: "unchanged-success",
|
|
204
|
+
reason: `${name} already completed with identical arguments and no observed state change. ` +
|
|
205
|
+
"Reuse the prior observation; choose a different action unless the job state, arguments, or retry reason changes.",
|
|
206
|
+
};
|
|
207
|
+
}
|
|
131
208
|
const sig = this.canonicalize(name, args);
|
|
209
|
+
const restoredFailure = probeSignature
|
|
210
|
+
? this.failedProbes.get(probeSignature)
|
|
211
|
+
: undefined;
|
|
212
|
+
if (restoredFailure) {
|
|
213
|
+
if (retryContext?.dependenciesChanged === true ||
|
|
214
|
+
retryContext?.environmentChanged === true ||
|
|
215
|
+
(retryContext?.stateKey !== undefined &&
|
|
216
|
+
retryContext.stateKey !== restoredFailure.stateKey)) {
|
|
217
|
+
return { block: false };
|
|
218
|
+
}
|
|
219
|
+
if (READ_ONLY_TOOLS.has(name) && !this.failedReadRetryUsed.has(sig)) {
|
|
220
|
+
const lastFailStep = [...this.attempts]
|
|
221
|
+
.reverse()
|
|
222
|
+
.find((attempt) => attempt.canonicalSignature === sig && !attempt.ok)?.step;
|
|
223
|
+
if (lastFailStep !== undefined &&
|
|
224
|
+
this.lastSuccessfulNonMetaStep > lastFailStep) {
|
|
225
|
+
this.failedReadRetryUsed.add(sig);
|
|
226
|
+
return { block: false };
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
const retryReason = retryContext?.retryReason;
|
|
230
|
+
const reasonKey = retryReason?.code.trim() && retryReason.detail.trim()
|
|
231
|
+
? `${retryReason.code.trim()}\0${retryReason.detail.trim()}`
|
|
232
|
+
: undefined;
|
|
233
|
+
if (reasonKey && reasonKey !== restoredFailure.retryReason) {
|
|
234
|
+
restoredFailure.retryReason = reasonKey;
|
|
235
|
+
return { block: false };
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
block: true,
|
|
239
|
+
kind: "failed-retry",
|
|
240
|
+
reason: `${name} previously failed with identical arguments, including in an interrupted turn. ` +
|
|
241
|
+
"Change the command/args, fix the environment, or provide one new structured retry reason.",
|
|
242
|
+
};
|
|
243
|
+
}
|
|
132
244
|
const count = this.signatureCount.get(sig) ?? 0;
|
|
133
245
|
if (count === 0)
|
|
134
246
|
return { block: false };
|
|
@@ -159,6 +271,7 @@ export class LoopGuard {
|
|
|
159
271
|
}
|
|
160
272
|
return {
|
|
161
273
|
block: true,
|
|
274
|
+
kind: "failed-retry",
|
|
162
275
|
reason: `${name} previously failed with identical arguments. Change the command/args, fix the environment, or provide a structured retry reason.`,
|
|
163
276
|
};
|
|
164
277
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-guard.js","sourceRoot":"","sources":["../../src/agent/loop-guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop-guard.js","sourceRoot":"","sources":["../../src/agent/loop-guard.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/outcomes.d.ts
CHANGED
|
@@ -45,6 +45,20 @@ export interface EvidenceRecord {
|
|
|
45
45
|
environment?: Record<string, string> | undefined;
|
|
46
46
|
outcomeRevision: number;
|
|
47
47
|
}
|
|
48
|
+
export interface CompletedOperation {
|
|
49
|
+
signature: string;
|
|
50
|
+
tool: string;
|
|
51
|
+
summary: string;
|
|
52
|
+
observation: string;
|
|
53
|
+
/** Missing on legacy entries means a successful completed observation. */
|
|
54
|
+
ok?: boolean | undefined;
|
|
55
|
+
exitCode?: number | undefined;
|
|
56
|
+
observationDigest?: string | undefined;
|
|
57
|
+
unchangedRepeats?: number | undefined;
|
|
58
|
+
stateKey?: string | undefined;
|
|
59
|
+
artifact?: string | undefined;
|
|
60
|
+
observedAt: string;
|
|
61
|
+
}
|
|
48
62
|
export interface OutcomeEnvelope {
|
|
49
63
|
schemaVersion: 1;
|
|
50
64
|
outcome: OutcomeContract;
|
|
@@ -54,6 +68,7 @@ export interface OutcomeEnvelope {
|
|
|
54
68
|
premise: string;
|
|
55
69
|
observedAt: string;
|
|
56
70
|
}>;
|
|
71
|
+
completedOperations?: CompletedOperation[] | undefined;
|
|
57
72
|
}
|
|
58
73
|
export declare function createOutcome(input: {
|
|
59
74
|
sessionId: string;
|
|
@@ -89,13 +104,27 @@ export declare function recordFailedHypothesis(envelope: OutcomeEnvelope, input:
|
|
|
89
104
|
signature: string;
|
|
90
105
|
premise: string;
|
|
91
106
|
}): void;
|
|
107
|
+
export declare function isCompletedReadOperation(tool: string, args?: Record<string, unknown>): boolean;
|
|
108
|
+
export declare function completedOperationSignature(tool: string, args?: Record<string, unknown>): string | undefined;
|
|
109
|
+
export declare function completedOperationObservationDigest(tool: string, output: string): string;
|
|
110
|
+
export declare function recordCompletedOperation(envelope: OutcomeEnvelope, input: {
|
|
111
|
+
tool: string;
|
|
112
|
+
args?: Record<string, unknown>;
|
|
113
|
+
output: string;
|
|
114
|
+
ok?: boolean;
|
|
115
|
+
exitCode?: number;
|
|
116
|
+
artifact?: string;
|
|
117
|
+
stateKey?: string;
|
|
118
|
+
}): CompletedOperation | undefined;
|
|
92
119
|
export declare function recordToolEvidence(envelope: OutcomeEnvelope, input: {
|
|
93
120
|
tool: string;
|
|
94
121
|
callId: string;
|
|
95
122
|
ok: boolean;
|
|
123
|
+
exitCode?: number | undefined;
|
|
96
124
|
output: string;
|
|
97
125
|
artifact?: string | undefined;
|
|
98
126
|
taskId?: string | undefined;
|
|
99
127
|
args?: Record<string, unknown> | undefined;
|
|
128
|
+
stateKey?: string | undefined;
|
|
100
129
|
}): EvidenceRecord[];
|
|
101
130
|
export declare function recordAnswerEvidence(envelope: OutcomeEnvelope, answer: string): EvidenceRecord | undefined;
|