agentfootprint 9.112.2 → 9.113.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/CHANGELOG.md +296 -0
- package/CLAUDE.md +1 -0
- package/dist/adapters/observability/audit.js +8 -0
- package/dist/adapters/observability/audit.js.map +1 -1
- package/dist/adapters/observability/otel.js +44 -2
- package/dist/adapters/observability/otel.js.map +1 -1
- package/dist/adapters/observability/xray.js +19 -0
- package/dist/adapters/observability/xray.js.map +1 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/core/Agent.js +11 -1
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/composeRequest.js +19 -11
- package/dist/core/agent/composeRequest.js.map +1 -1
- package/dist/core/agent/coverage/absent.js +163 -7
- package/dist/core/agent/coverage/absent.js.map +1 -1
- package/dist/core/agent/coverage/answer.js +3 -1
- package/dist/core/agent/coverage/answer.js.map +1 -1
- package/dist/core/agent/coverage/read.js +15 -11
- package/dist/core/agent/coverage/read.js.map +1 -1
- package/dist/core/agent/findings/ledger.js +27 -5
- package/dist/core/agent/findings/ledger.js.map +1 -1
- package/dist/core/agent/findings/offer.js +29 -9
- package/dist/core/agent/findings/offer.js.map +1 -1
- package/dist/core/agent/findings/serve.js +76 -7
- package/dist/core/agent/findings/serve.js.map +1 -1
- package/dist/core/agent/findings/types.js.map +1 -1
- package/dist/core/agent/findings/unsettled.js +276 -0
- package/dist/core/agent/findings/unsettled.js.map +1 -0
- package/dist/core/agent/stages/callLLM.js +30 -8
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/route.js +10 -2
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +247 -31
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/agent/stages/window.js +5 -2
- package/dist/core/agent/stages/window.js.map +1 -1
- package/dist/core/agent/toolResultCap.js +0 -0
- package/dist/core/agent/toolResultCap.js.map +1 -1
- package/dist/core/agent/window/ledgerFactPins.js +13 -2
- package/dist/core/agent/window/ledgerFactPins.js.map +1 -1
- package/dist/core/agent/window/toolNames.js +17 -2
- package/dist/core/agent/window/toolNames.js.map +1 -1
- package/dist/core/checkin.js +5 -1
- package/dist/core/checkin.js.map +1 -1
- package/dist/core/runCheckpoint.js +26 -2
- package/dist/core/runCheckpoint.js.map +1 -1
- package/dist/esm/adapters/observability/audit.d.ts +8 -0
- package/dist/esm/adapters/observability/audit.js +8 -0
- package/dist/esm/adapters/observability/audit.js.map +1 -1
- package/dist/esm/adapters/observability/otel.d.ts +17 -2
- package/dist/esm/adapters/observability/otel.js +44 -2
- package/dist/esm/adapters/observability/otel.js.map +1 -1
- package/dist/esm/adapters/observability/xray.d.ts +8 -0
- package/dist/esm/adapters/observability/xray.js +19 -0
- package/dist/esm/adapters/observability/xray.js.map +1 -1
- package/dist/esm/adapters/types.d.ts +49 -0
- package/dist/esm/adapters/types.js.map +1 -1
- package/dist/esm/core/Agent.js +11 -1
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/composeRequest.d.ts +10 -7
- package/dist/esm/core/agent/composeRequest.js +19 -11
- package/dist/esm/core/agent/composeRequest.js.map +1 -1
- package/dist/esm/core/agent/coverage/absent.d.ts +31 -4
- package/dist/esm/core/agent/coverage/absent.js +160 -6
- package/dist/esm/core/agent/coverage/absent.js.map +1 -1
- package/dist/esm/core/agent/coverage/answer.js +3 -1
- package/dist/esm/core/agent/coverage/answer.js.map +1 -1
- package/dist/esm/core/agent/coverage/index.d.ts +1 -1
- package/dist/esm/core/agent/coverage/read.d.ts +9 -1
- package/dist/esm/core/agent/coverage/read.js +16 -12
- package/dist/esm/core/agent/coverage/read.js.map +1 -1
- package/dist/esm/core/agent/coverage/types.d.ts +42 -0
- package/dist/esm/core/agent/findings/ledger.d.ts +23 -6
- package/dist/esm/core/agent/findings/ledger.js +27 -5
- package/dist/esm/core/agent/findings/ledger.js.map +1 -1
- package/dist/esm/core/agent/findings/offer.d.ts +23 -6
- package/dist/esm/core/agent/findings/offer.js +27 -8
- package/dist/esm/core/agent/findings/offer.js.map +1 -1
- package/dist/esm/core/agent/findings/serve.d.ts +19 -6
- package/dist/esm/core/agent/findings/serve.js +77 -8
- package/dist/esm/core/agent/findings/serve.js.map +1 -1
- package/dist/esm/core/agent/findings/types.d.ts +81 -1
- package/dist/esm/core/agent/findings/types.js.map +1 -1
- package/dist/esm/core/agent/findings/unsettled.d.ts +121 -0
- package/dist/esm/core/agent/findings/unsettled.js +271 -0
- package/dist/esm/core/agent/findings/unsettled.js.map +1 -0
- package/dist/esm/core/agent/stages/callLLM.js +30 -8
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/route.js +10 -2
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.d.ts +90 -2
- package/dist/esm/core/agent/stages/toolCalls.js +244 -31
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/stages/window.js +5 -2
- package/dist/esm/core/agent/stages/window.js.map +1 -1
- package/dist/esm/core/agent/toolResultCap.d.ts +4 -1
- package/dist/esm/core/agent/toolResultCap.js +0 -0
- package/dist/esm/core/agent/toolResultCap.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +5 -0
- package/dist/esm/core/agent/window/ledgerFactPins.d.ts +10 -1
- package/dist/esm/core/agent/window/ledgerFactPins.js +13 -2
- package/dist/esm/core/agent/window/ledgerFactPins.js.map +1 -1
- package/dist/esm/core/agent/window/strategy.d.ts +2 -1
- package/dist/esm/core/agent/window/toolNames.d.ts +16 -1
- package/dist/esm/core/agent/window/toolNames.js +17 -2
- package/dist/esm/core/agent/window/toolNames.js.map +1 -1
- package/dist/esm/core/checkin.js +5 -1
- package/dist/esm/core/checkin.js.map +1 -1
- package/dist/esm/core/runCheckpoint.js +26 -2
- package/dist/esm/core/runCheckpoint.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +76 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/bug-report/transcript.d.ts +5 -0
- package/dist/esm/lib/bug-report/transcript.js +1 -0
- package/dist/esm/lib/bug-report/transcript.js.map +1 -1
- package/dist/esm/lib/semantics/projection.js +1 -0
- package/dist/esm/lib/semantics/projection.js.map +1 -1
- package/dist/esm/lib/time-travel/receipt.d.ts +4 -3
- package/dist/esm/lib/time-travel/receipt.js +4 -3
- package/dist/esm/lib/time-travel/receipt.js.map +1 -1
- package/dist/esm/lib/time-travel/servedView.js +13 -9
- package/dist/esm/lib/time-travel/servedView.js.map +1 -1
- package/dist/esm/lib/trace-toolpack/traceToolpack.js +130 -17
- package/dist/esm/lib/trace-toolpack/traceToolpack.js.map +1 -1
- package/dist/esm/memory/causal/evidenceRecorder.d.ts +2 -0
- package/dist/esm/memory/causal/evidenceRecorder.js +13 -0
- package/dist/esm/memory/causal/evidenceRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.d.ts +2 -0
- package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.js +11 -0
- package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/BoundaryRecorder.d.ts +10 -1
- package/dist/esm/recorders/observability/BoundaryRecorder.js +9 -1
- package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/FlowchartRecorder.d.ts +4 -1
- package/dist/esm/recorders/observability/FlowchartRecorder.js +13 -1
- package/dist/esm/recorders/observability/FlowchartRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/LiveStateRecorder.d.ts +2 -0
- package/dist/esm/recorders/observability/LiveStateRecorder.js +9 -0
- package/dist/esm/recorders/observability/LiveStateRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/RouteRecorder.js +5 -0
- package/dist/esm/recorders/observability/RouteRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/StatusRecorder.js +7 -0
- package/dist/esm/recorders/observability/StatusRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/ToolChoiceRecorder.js +5 -0
- package/dist/esm/recorders/observability/ToolChoiceRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +18 -2
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
- package/dist/esm/recorders/observability/status/statusTemplates.js +5 -0
- package/dist/esm/recorders/observability/status/statusTemplates.js.map +1 -1
- package/dist/esm/security/extractSequence.d.ts +36 -5
- package/dist/esm/security/extractSequence.js +99 -26
- package/dist/esm/security/extractSequence.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/bug-report/transcript.js +1 -0
- package/dist/lib/bug-report/transcript.js.map +1 -1
- package/dist/lib/semantics/projection.js +1 -0
- package/dist/lib/semantics/projection.js.map +1 -1
- package/dist/lib/time-travel/receipt.js +4 -3
- package/dist/lib/time-travel/receipt.js.map +1 -1
- package/dist/lib/time-travel/servedView.js +13 -9
- package/dist/lib/time-travel/servedView.js.map +1 -1
- package/dist/lib/trace-toolpack/traceToolpack.js +130 -17
- package/dist/lib/trace-toolpack/traceToolpack.js.map +1 -1
- package/dist/memory/causal/evidenceRecorder.js +13 -0
- package/dist/memory/causal/evidenceRecorder.js.map +1 -1
- package/dist/recorders/observability/AgentThinkingTraceRecorder.js +11 -0
- package/dist/recorders/observability/AgentThinkingTraceRecorder.js.map +1 -1
- package/dist/recorders/observability/BoundaryRecorder.js +9 -1
- package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/recorders/observability/FlowchartRecorder.js +13 -1
- package/dist/recorders/observability/FlowchartRecorder.js.map +1 -1
- package/dist/recorders/observability/LiveStateRecorder.js +9 -0
- package/dist/recorders/observability/LiveStateRecorder.js.map +1 -1
- package/dist/recorders/observability/RouteRecorder.js +5 -0
- package/dist/recorders/observability/RouteRecorder.js.map +1 -1
- package/dist/recorders/observability/StatusRecorder.js +7 -0
- package/dist/recorders/observability/StatusRecorder.js.map +1 -1
- package/dist/recorders/observability/ToolChoiceRecorder.js +5 -0
- package/dist/recorders/observability/ToolChoiceRecorder.js.map +1 -1
- package/dist/recorders/observability/commentary/commentaryTemplates.js +18 -2
- package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
- package/dist/recorders/observability/status/statusTemplates.js +5 -0
- package/dist/recorders/observability/status/statusTemplates.js.map +1 -1
- package/dist/security/extractSequence.js +99 -26
- package/dist/security/extractSequence.js.map +1 -1
- package/dist/types/adapters/observability/audit.d.ts +8 -0
- package/dist/types/adapters/observability/audit.d.ts.map +1 -1
- package/dist/types/adapters/observability/otel.d.ts +17 -2
- package/dist/types/adapters/observability/otel.d.ts.map +1 -1
- package/dist/types/adapters/observability/xray.d.ts +8 -0
- package/dist/types/adapters/observability/xray.d.ts.map +1 -1
- package/dist/types/adapters/types.d.ts +49 -0
- package/dist/types/adapters/types.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/composeRequest.d.ts +10 -7
- package/dist/types/core/agent/composeRequest.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/absent.d.ts +31 -4
- package/dist/types/core/agent/coverage/absent.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/index.d.ts +1 -1
- package/dist/types/core/agent/coverage/index.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/read.d.ts +9 -1
- package/dist/types/core/agent/coverage/read.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/types.d.ts +42 -0
- package/dist/types/core/agent/coverage/types.d.ts.map +1 -1
- package/dist/types/core/agent/findings/ledger.d.ts +23 -6
- package/dist/types/core/agent/findings/ledger.d.ts.map +1 -1
- package/dist/types/core/agent/findings/offer.d.ts +23 -6
- package/dist/types/core/agent/findings/offer.d.ts.map +1 -1
- package/dist/types/core/agent/findings/serve.d.ts +19 -6
- package/dist/types/core/agent/findings/serve.d.ts.map +1 -1
- package/dist/types/core/agent/findings/types.d.ts +81 -1
- package/dist/types/core/agent/findings/types.d.ts.map +1 -1
- package/dist/types/core/agent/findings/unsettled.d.ts +122 -0
- package/dist/types/core/agent/findings/unsettled.d.ts.map +1 -0
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts +90 -2
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/stages/window.d.ts.map +1 -1
- package/dist/types/core/agent/toolResultCap.d.ts +4 -1
- package/dist/types/core/agent/toolResultCap.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +5 -0
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/agent/window/ledgerFactPins.d.ts +10 -1
- package/dist/types/core/agent/window/ledgerFactPins.d.ts.map +1 -1
- package/dist/types/core/agent/window/strategy.d.ts +2 -1
- package/dist/types/core/agent/window/strategy.d.ts.map +1 -1
- package/dist/types/core/agent/window/toolNames.d.ts +16 -1
- package/dist/types/core/agent/window/toolNames.d.ts.map +1 -1
- package/dist/types/core/checkin.d.ts.map +1 -1
- package/dist/types/core/runCheckpoint.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +76 -1
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/bug-report/transcript.d.ts +5 -0
- package/dist/types/lib/bug-report/transcript.d.ts.map +1 -1
- package/dist/types/lib/semantics/projection.d.ts.map +1 -1
- package/dist/types/lib/time-travel/receipt.d.ts +4 -3
- package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
- package/dist/types/lib/time-travel/servedView.d.ts.map +1 -1
- package/dist/types/lib/trace-toolpack/traceToolpack.d.ts.map +1 -1
- package/dist/types/memory/causal/evidenceRecorder.d.ts +2 -0
- package/dist/types/memory/causal/evidenceRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/AgentThinkingTraceRecorder.d.ts +2 -0
- package/dist/types/recorders/observability/AgentThinkingTraceRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts +10 -1
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/FlowchartRecorder.d.ts +4 -1
- package/dist/types/recorders/observability/FlowchartRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/LiveStateRecorder.d.ts +2 -0
- package/dist/types/recorders/observability/LiveStateRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/RouteRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/ToolChoiceRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
- package/dist/types/recorders/observability/status/statusTemplates.d.ts.map +1 -1
- package/dist/types/security/extractSequence.d.ts +36 -5
- package/dist/types/security/extractSequence.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -39,14 +39,29 @@
|
|
|
39
39
|
* The gate therefore withholds `looked_for`, and only `looked_for` (see
|
|
40
40
|
* `coverage/evidence.ts`): it is the one field whose job is to quote the
|
|
41
41
|
* request. Everything else the absence carries — the coverage lists, the
|
|
42
|
-
* author's `tryInstead`, any extra key the tool attached
|
|
43
|
-
* the TOOL speaking about the world and does ground,
|
|
44
|
-
* follows the absence's own advice must not be called
|
|
42
|
+
* author's `tryInstead` and `tryInsteadTool`, any extra key the tool attached
|
|
43
|
+
* to the envelope — is the TOOL speaking about the world and does ground,
|
|
44
|
+
* because an answer that follows the absence's own advice must not be called
|
|
45
|
+
* ungrounded for doing so.
|
|
45
46
|
* The note is kept free of interpolation for the same reason the exclusion
|
|
46
47
|
* exists: static library text has nothing of the caller's to leak.
|
|
48
|
+
*
|
|
49
|
+
* ## A suggestion to try another tool is typed, never parsed (9.113.0)
|
|
50
|
+
*
|
|
51
|
+
* `tryInstead` is ONE sentence, for the model; nothing in this library reads
|
|
52
|
+
* a tool name out of it. When the sentence points at another tool, the author
|
|
53
|
+
* names that tool beside it — `tryInsteadTool: { tool, why? }` — and the
|
|
54
|
+
* envelope carries it under its OWN key, `try_instead_tool`. Its own key, not
|
|
55
|
+
* `try_instead`: that field has been a string since it shipped and every
|
|
56
|
+
* reader typed against `ToolAbsence` reads it as one, so a second shape there
|
|
57
|
+
* would be dropped by each of them without a word. `tools.absent` carries
|
|
58
|
+
* both, as declared. ONE rule set decides what each is ({@link readSentence},
|
|
59
|
+
* {@link readToolSuggestion}): `absent()` refuses by it and the recognizer
|
|
60
|
+
* reads by it, so a mint and a read cannot disagree.
|
|
47
61
|
*/
|
|
48
62
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
exports.coverageOfAbsence = exports.readAbsence = exports.absent = exports.ABSENCE_NOTE = exports.ABSENCE_MARKER = void 0;
|
|
63
|
+
exports.tryInsteadToolOfAbsence = exports.tryInsteadOfAbsence = exports.coverageOfAbsence = exports.readAbsence = exports.absent = exports.ABSENCE_NOTE = exports.ABSENCE_MARKER = void 0;
|
|
64
|
+
const tools_js_1 = require("../../tools.js");
|
|
50
65
|
const items_js_1 = require("./items.js");
|
|
51
66
|
/**
|
|
52
67
|
* The reserved key that makes an absence recognizable. Exported because tests,
|
|
@@ -65,6 +80,115 @@ exports.ABSENCE_NOTE = 'The search ran and matched nothing. This is an ANSWER, n
|
|
|
65
80
|
'arguments returns this same result. `checked` is the ground this answer covers; anything ' +
|
|
66
81
|
'under `not_checked` or `cannot_cover` is ground it does NOT cover, and reaching that ' +
|
|
67
82
|
'needs a different question, not a retry.';
|
|
83
|
+
/**
|
|
84
|
+
* The typed tool's keys, tied to {@link TryInsteadTool} in BOTH directions: a
|
|
85
|
+
* key the interface gains, or one listed here that it does not have, fails to
|
|
86
|
+
* compile. Any other key on a value is refused, so a misspelt `why` cannot
|
|
87
|
+
* vanish without a word.
|
|
88
|
+
*/
|
|
89
|
+
const TOOL_SUGGESTION_KEYS = Object.keys({
|
|
90
|
+
tool: true,
|
|
91
|
+
why: true,
|
|
92
|
+
});
|
|
93
|
+
/**
|
|
94
|
+
* `undefined` and `null` both mean "not given" for the typed tool and its
|
|
95
|
+
* `why`. A JSON producer writes a missing optional value as `null`, and
|
|
96
|
+
* `tryInstead: null` read as no suggestion before 9.113.0 — refusing it would
|
|
97
|
+
* turn a nothing-found into a tool error, the direction of error this file
|
|
98
|
+
* exists to prevent.
|
|
99
|
+
*/
|
|
100
|
+
const notGiven = (raw) => raw === undefined || raw === null;
|
|
101
|
+
/** An object literal's shape — `{…}` or `Object.create(null)`; never an
|
|
102
|
+
* array, a Date, a boxed string or any other class instance. */
|
|
103
|
+
const isPlainObject = (raw) => {
|
|
104
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
|
|
105
|
+
return false;
|
|
106
|
+
const prototype = Object.getPrototypeOf(raw);
|
|
107
|
+
return prototype === Object.prototype || prototype === null;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* The rule for the SENTENCE (`tryInstead`, `try_instead` on the wire):
|
|
111
|
+
* trimmed, and one that trims to nothing is no suggestion, as it always was.
|
|
112
|
+
*
|
|
113
|
+
* ONE non-string is refused: a plain object. That is the typed form
|
|
114
|
+
* `{ tool, why? }` written into the sentence's slot, and the refusal points it
|
|
115
|
+
* at `tryInsteadTool` rather than drop the author's tool without a word. Any
|
|
116
|
+
* OTHER value that is not a string — `null`, `false` from
|
|
117
|
+
* `tryInstead: cond && '…'`, a number, a list, a Date — reads as no
|
|
118
|
+
* suggestion, exactly as it did before 9.113.0: `absent()` runs inside a
|
|
119
|
+
* tool's `execute`, so refusing it would turn a nothing-found the 9.112.2
|
|
120
|
+
* loop delivered as an absence into that call's error result.
|
|
121
|
+
*/
|
|
122
|
+
function readSentence(raw) {
|
|
123
|
+
if (typeof raw === 'string') {
|
|
124
|
+
const sentence = raw.trim();
|
|
125
|
+
return { value: sentence === '' ? undefined : sentence };
|
|
126
|
+
}
|
|
127
|
+
if (isPlainObject(raw)) {
|
|
128
|
+
return {
|
|
129
|
+
problem: '`tryInstead` is the sentence the model reads, and only that. To name the other ' +
|
|
130
|
+
'tool as data, give { tool, why? } as `tryInsteadTool`, beside the sentence.',
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return { value: undefined };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* The rule for the TYPED TOOL (`tryInsteadTool`, `try_instead_tool` on the
|
|
137
|
+
* wire): `{ tool, why? }`, where `tool` is a non-empty name and `why`, when
|
|
138
|
+
* given, says something. Both are trimmed; `why: null` reads as omitted. The
|
|
139
|
+
* name is recorded as declared: never looked up (a provider may serve it on a
|
|
140
|
+
* later iteration), and held to no charset here — which names a provider
|
|
141
|
+
* accepts is `core/tools.ts` · `assertValidToolName`'s question, and
|
|
142
|
+
* `absent` asks the dev-mode warning that owns it.
|
|
143
|
+
*
|
|
144
|
+
* Why ONE tool and not a list: every suggestion on record names at most one
|
|
145
|
+
* other tool, and where a sentence joins that tool to "or widen the window",
|
|
146
|
+
* the rest of the advice stays in the sentence. A list would be a second
|
|
147
|
+
* shape of this field for every reader to narrow — the cost this key exists
|
|
148
|
+
* to spare `try_instead`.
|
|
149
|
+
*/
|
|
150
|
+
function readToolSuggestion(raw) {
|
|
151
|
+
if (notGiven(raw))
|
|
152
|
+
return { value: undefined };
|
|
153
|
+
if (Array.isArray(raw)) {
|
|
154
|
+
return {
|
|
155
|
+
problem: '`tryInsteadTool` names ONE tool — { tool, why? }, never a list. Say the rest of the ' +
|
|
156
|
+
'advice in the `tryInstead` sentence.',
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (typeof raw !== 'object') {
|
|
160
|
+
return {
|
|
161
|
+
problem: `\`tryInsteadTool\` must be { tool, why? } — got ${typeof raw}. For a sentence, use ` +
|
|
162
|
+
'`tryInstead`; to suggest nothing, omit the field.',
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
const value = raw;
|
|
166
|
+
const unknownKey = Object.keys(value).find((key) => !TOOL_SUGGESTION_KEYS.includes(key));
|
|
167
|
+
if (unknownKey !== undefined) {
|
|
168
|
+
return {
|
|
169
|
+
problem: `\`tryInsteadTool\` has an unknown key '${unknownKey}' — the form is { tool, why? }, ` +
|
|
170
|
+
'and a misspelt `why` would otherwise vanish without a word.',
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
const { tool, why } = value;
|
|
174
|
+
if (typeof tool !== 'string' || tool.trim() === '') {
|
|
175
|
+
return {
|
|
176
|
+
problem: '`tryInsteadTool.tool` must name the tool to try — its registered name, e.g. ' +
|
|
177
|
+
"{ tool: 'cluster_inventory', why: 'it lists the collected names' }. The name is " +
|
|
178
|
+
'recorded as declared and never looked up (a provider may serve it).',
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
const name = tool.trim();
|
|
182
|
+
if (notGiven(why))
|
|
183
|
+
return { value: { tool: name } };
|
|
184
|
+
if (typeof why !== 'string' || why.trim() === '') {
|
|
185
|
+
return {
|
|
186
|
+
problem: `\`tryInsteadTool.why\` (for '${name}') must be a sentence — say why that tool, or ` +
|
|
187
|
+
'omit the field.',
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
return { value: { tool: name, why: why.trim() } };
|
|
191
|
+
}
|
|
68
192
|
/**
|
|
69
193
|
* Say "I looked, and there is nothing" in a way a model cannot read as a
|
|
70
194
|
* failure — and cannot productively retry.
|
|
@@ -100,7 +224,8 @@ exports.ABSENCE_NOTE = 'The search ran and matched nothing. This is an ANSWER, n
|
|
|
100
224
|
function absent(decl) {
|
|
101
225
|
const fn = 'absent';
|
|
102
226
|
if (typeof decl !== 'object' || decl === null) {
|
|
103
|
-
throw new Error(`${fn}: takes a declaration — { what, checked, notChecked?, cannotCover?, tryInstead
|
|
227
|
+
throw new Error(`${fn}: takes a declaration — { what, checked, notChecked?, cannotCover?, tryInstead?, ` +
|
|
228
|
+
`tryInsteadTool? }.`);
|
|
104
229
|
}
|
|
105
230
|
const what = typeof decl.what === 'string' ? decl.what.trim() : '';
|
|
106
231
|
if (what === '') {
|
|
@@ -118,7 +243,18 @@ function absent(decl) {
|
|
|
118
243
|
}
|
|
119
244
|
const notChecked = (0, items_js_1.normalizeCoverageList)(fn, 'notChecked', decl.notChecked, false);
|
|
120
245
|
const cannotCover = (0, items_js_1.normalizeCoverageList)(fn, 'cannotCover', decl.cannotCover, true);
|
|
121
|
-
const
|
|
246
|
+
const sentence = readSentence(decl.tryInstead);
|
|
247
|
+
if (sentence.problem !== undefined)
|
|
248
|
+
throw new Error(`${fn}: '${what}' — ${sentence.problem}`);
|
|
249
|
+
const tool = readToolSuggestion(decl.tryInsteadTool);
|
|
250
|
+
if (tool.problem !== undefined)
|
|
251
|
+
throw new Error(`${fn}: '${what}' — ${tool.problem}`);
|
|
252
|
+
const tryInstead = sentence.value;
|
|
253
|
+
const tryInsteadTool = tool.value;
|
|
254
|
+
// The name's charset is the tool registry's question: the owner warns in
|
|
255
|
+
// dev mode and never throws — the verdict a `defineTool` of it would get.
|
|
256
|
+
if (tryInsteadTool !== undefined)
|
|
257
|
+
(0, tools_js_1.warnIfInvalidToolName)(tryInsteadTool.tool);
|
|
122
258
|
return {
|
|
123
259
|
af_absent: true,
|
|
124
260
|
outcome: 'nothing_found',
|
|
@@ -127,7 +263,8 @@ function absent(decl) {
|
|
|
127
263
|
...(notChecked.length > 0 && { not_checked: notChecked }),
|
|
128
264
|
...(cannotCover.length > 0 && { cannot_cover: cannotCover }),
|
|
129
265
|
retry_returns_the_same: true,
|
|
130
|
-
...(tryInstead !== undefined &&
|
|
266
|
+
...(tryInstead !== undefined && { try_instead: tryInstead }),
|
|
267
|
+
...(tryInsteadTool !== undefined && { try_instead_tool: tryInsteadTool }),
|
|
131
268
|
note: exports.ABSENCE_NOTE,
|
|
132
269
|
};
|
|
133
270
|
}
|
|
@@ -163,4 +300,23 @@ function coverageOfAbsence(absence) {
|
|
|
163
300
|
};
|
|
164
301
|
}
|
|
165
302
|
exports.coverageOfAbsence = coverageOfAbsence;
|
|
303
|
+
/**
|
|
304
|
+
* The absence's sentence, read by the rules `absent()` mints by. `undefined`
|
|
305
|
+
* when it declared none, AND when it declared one those rules refuse: an
|
|
306
|
+
* envelope minted elsewhere (a non-JS tool, a hand-built value) is read,
|
|
307
|
+
* never repaired, and the absence itself is still an absence either way.
|
|
308
|
+
*/
|
|
309
|
+
function tryInsteadOfAbsence(absence) {
|
|
310
|
+
return readSentence(absence.try_instead).value;
|
|
311
|
+
}
|
|
312
|
+
exports.tryInsteadOfAbsence = tryInsteadOfAbsence;
|
|
313
|
+
/**
|
|
314
|
+
* The absence's typed tool, read by the same rules — a copy, never the
|
|
315
|
+
* object the envelope holds. `undefined` when it declared none, or one those
|
|
316
|
+
* rules refuse (see {@link tryInsteadOfAbsence}).
|
|
317
|
+
*/
|
|
318
|
+
function tryInsteadToolOfAbsence(absence) {
|
|
319
|
+
return readToolSuggestion(absence.try_instead_tool).value;
|
|
320
|
+
}
|
|
321
|
+
exports.tryInsteadToolOfAbsence = tryInsteadToolOfAbsence;
|
|
166
322
|
//# sourceMappingURL=absent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"absent.js","sourceRoot":"","sources":["../../../../src/core/agent/coverage/absent.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"absent.js","sourceRoot":"","sources":["../../../../src/core/agent/coverage/absent.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,9 @@ function renderSection(label, items) {
|
|
|
61
61
|
}
|
|
62
62
|
// LENS · injected-turn · persistent-history
|
|
63
63
|
// reads: scope.coverageDeclared ← read once by ../stages/prepareFinal.ts · captureTurnPayload — the ONE reader that COMPOSES from it,
|
|
64
|
-
// folded and capped. Not the only read of the key: ../stages/toolCalls.ts · declareCoverage reads it to append to it
|
|
64
|
+
// folded and capped. Not the only read of the key: ../stages/toolCalls.ts · declareCoverage reads it to append to it,
|
|
65
|
+
// and ../findings/unsettled.ts · withUnsettledRows (9.113.0) reads one call's rows for their `kind` — the witness
|
|
66
|
+
// that the tool returned an absence — and composes nothing from them (its row's words come from the served result).
|
|
65
67
|
// law: may omit, never deny; every clause anchored to the call it was composed on.
|
|
66
68
|
/**
|
|
67
69
|
* Fold the run's declarations into one block and append it to the answer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../../src/core/agent/coverage/answer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;AAEH,yCAAwC;AAGxC,wEAAwE;AAC3D,QAAA,sBAAsB,GAAG,yBAAyB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,MAAM,QAAQ,GAAG;IACf,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,aAAa,EAAE,cAAc,CAAC;CACvB,CAAC;AAEX,SAAS,aAAa,CAAC,KAAa,EAAE,KAA8B;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,2BAA2B,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,GAAG,KAAK,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,4CAA4C;AAC5C,sIAAsI;AACtI,6HAA6H;AAC7H,mFAAmF;AACnF;;;;;;GAMG;AACH,SAAgB,yBAAyB,CACvC,MAAc,EACd,QAAqC;IAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAA,qBAAU,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,+BAA+B;IAC/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,KAAK,GACT,GAAG,8BAAsB,8DAA8D;QACvF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC;AApBD,8DAoBC"}
|
|
1
|
+
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../../src/core/agent/coverage/answer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;AAEH,yCAAwC;AAGxC,wEAAwE;AAC3D,QAAA,sBAAsB,GAAG,yBAAyB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,MAAM,QAAQ,GAAG;IACf,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,aAAa,EAAE,cAAc,CAAC;CACvB,CAAC;AAEX,SAAS,aAAa,CAAC,KAAa,EAAE,KAA8B;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,2BAA2B,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,GAAG,KAAK,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,4CAA4C;AAC5C,sIAAsI;AACtI,6HAA6H;AAC7H,yHAAyH;AACzH,2HAA2H;AAC3H,mFAAmF;AACnF;;;;;;GAMG;AACH,SAAgB,yBAAyB,CACvC,MAAc,EACd,QAAqC;IAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAA,qBAAU,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,+BAA+B;IAC/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,KAAK,GACT,GAAG,8BAAsB,8DAA8D;QACvF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC;AApBD,8DAoBC"}
|
|
@@ -20,6 +20,19 @@ exports.readCoverageResult = void 0;
|
|
|
20
20
|
const envelope_js_1 = require("../../../lib/semantics/envelope.js");
|
|
21
21
|
const absent_js_1 = require("./absent.js");
|
|
22
22
|
const ledger_js_1 = require("./ledger.js");
|
|
23
|
+
/** The facts one absence declares — the same for a bare absence and for one
|
|
24
|
+
* a ledger bounds, so the two sites cannot drift. */
|
|
25
|
+
function absenceFacts(absence) {
|
|
26
|
+
const tryInstead = (0, absent_js_1.tryInsteadOfAbsence)(absence);
|
|
27
|
+
const tryInsteadTool = (0, absent_js_1.tryInsteadToolOfAbsence)(absence);
|
|
28
|
+
return {
|
|
29
|
+
kind: 'absence',
|
|
30
|
+
coverage: (0, absent_js_1.coverageOfAbsence)(absence),
|
|
31
|
+
lookedFor: absence.looked_for,
|
|
32
|
+
...(tryInstead !== undefined && { tryInstead }),
|
|
33
|
+
...(tryInsteadTool !== undefined && { tryInsteadTool }),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
23
36
|
const ABSENT_STATUS = 'absent';
|
|
24
37
|
/**
|
|
25
38
|
* Read one finalized tool result for coverage declarations.
|
|
@@ -32,12 +45,7 @@ const ABSENT_STATUS = 'absent';
|
|
|
32
45
|
function readCoverageResult(value) {
|
|
33
46
|
const absence = (0, absent_js_1.readAbsence)(value);
|
|
34
47
|
if (absence !== undefined) {
|
|
35
|
-
return {
|
|
36
|
-
status: ABSENT_STATUS,
|
|
37
|
-
declared: [
|
|
38
|
-
{ kind: 'absence', coverage: (0, absent_js_1.coverageOfAbsence)(absence), lookedFor: absence.looked_for },
|
|
39
|
-
],
|
|
40
|
-
};
|
|
48
|
+
return { status: ABSENT_STATUS, declared: [absenceFacts(absence)] };
|
|
41
49
|
}
|
|
42
50
|
// A semantic envelope's `coverage` field (9.53.0) is ABSORBED here — the
|
|
43
51
|
// one recognizer funnel — so the boundary a semantic tool declared flows
|
|
@@ -58,11 +66,7 @@ function readCoverageResult(value) {
|
|
|
58
66
|
const inner = (0, absent_js_1.readAbsence)(covered.result);
|
|
59
67
|
if (inner === undefined)
|
|
60
68
|
return { declared };
|
|
61
|
-
declared.push(
|
|
62
|
-
kind: 'absence',
|
|
63
|
-
coverage: (0, absent_js_1.coverageOfAbsence)(inner),
|
|
64
|
-
lookedFor: inner.looked_for,
|
|
65
|
-
});
|
|
69
|
+
declared.push(absenceFacts(inner));
|
|
66
70
|
return { status: ABSENT_STATUS, declared };
|
|
67
71
|
}
|
|
68
72
|
exports.readCoverageResult = readCoverageResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../src/core/agent/coverage/read.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAGH,oEAAwF;AACxF,
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../src/core/agent/coverage/read.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAGH,oEAAwF;AACxF,2CAKqB;AACrB,2CAAmE;AAoBnE;sDACsD;AACtD,SAAS,YAAY,CAAC,OAAoB;IACxC,MAAM,UAAU,GAAG,IAAA,+BAAmB,EAAC,OAAO,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;IACxD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAA,6BAAiB,EAAC,OAAO,CAAC;QACpC,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;QAC/C,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAmBD,MAAM,aAAa,GAAqB,QAAQ,CAAC;AAEjD;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,MAAM,OAAO,GAAG,IAAA,uBAAW,EAAC,KAAK,CAAC,CAAC;IACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,yEAAyE;IACzE,yEAAyE;IACzE,6EAA6E;IAC7E,uEAAuE;IACvE,sEAAsE;IACtE,oDAAoD;IACpD,MAAM,GAAG,GAAG,IAAA,2BAAa,EAAC,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACjD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAA,iCAAmB,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,8BAAkB,EAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,QAAQ,GAAoB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAA,4BAAgB,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAvBD,gDAuBC"}
|
|
@@ -20,9 +20,14 @@
|
|
|
20
20
|
* filed by the two moments `contingent.ts` serves: the route
|
|
21
21
|
* decider's answer and the dispatch loop's call) — identities,
|
|
22
22
|
* enums and numbers only. Assertion values, `settles`, `line`, the
|
|
23
|
-
* judged state
|
|
24
|
-
*
|
|
25
|
-
*
|
|
23
|
+
* judged state, the contingent VALUE and — on an
|
|
24
|
+
* `unsettled-by-absence` row — a TOOL's own words (its envelope's
|
|
25
|
+
* `notChecked`, `cannotCover` and `tryInstead`) live in the
|
|
26
|
+
* committed key under whatever redaction the run configured; an
|
|
27
|
+
* event stream fans out to sinks we do not control. That row
|
|
28
|
+
* (9.113.0, filed by the same two moments through
|
|
29
|
+
* `unsettled.ts · withUnsettledRows`) emits nothing of its own, as
|
|
30
|
+
* a conflict row emits nothing of its own.
|
|
26
31
|
*
|
|
27
32
|
* ## Append only, last wins, conflicts are a fold
|
|
28
33
|
*
|
|
@@ -58,23 +63,32 @@ const types_js_2 = require("./types.js");
|
|
|
58
63
|
function foldLedger(rows) {
|
|
59
64
|
const standingOf = new Map();
|
|
60
65
|
const judgments = new Map();
|
|
66
|
+
const lastUnsettled = new Map();
|
|
61
67
|
for (const row of rows) {
|
|
62
68
|
if (row.kind === 'standing')
|
|
63
69
|
standingOf.set(row.toolCallId, row);
|
|
64
70
|
else if (row.kind === 'judgment')
|
|
65
71
|
judgments.set(row.toolCallId, row);
|
|
72
|
+
else if (row.kind === 'unsettled-by-absence')
|
|
73
|
+
lastUnsettled.set(row.toolCallId, row);
|
|
66
74
|
}
|
|
67
75
|
const asserted = [];
|
|
68
76
|
for (const row of standingOf.values()) {
|
|
69
77
|
if (row.standing === 'fact')
|
|
70
78
|
asserted.push(...row.assertions);
|
|
71
79
|
}
|
|
80
|
+
const unsettled = new Map();
|
|
81
|
+
for (const [toolCallId, row] of lastUnsettled) {
|
|
82
|
+
if (standingOf.get(toolCallId)?.standing === 'ruled-out')
|
|
83
|
+
unsettled.set(toolCallId, row);
|
|
84
|
+
}
|
|
72
85
|
return {
|
|
73
86
|
standingOf,
|
|
74
87
|
judgments,
|
|
75
88
|
asserted,
|
|
76
89
|
conflicts: (0, conflicts_js_1.conflictsOf)(asserted),
|
|
77
90
|
hasStanding: standingOf.size > 0,
|
|
91
|
+
unsettled,
|
|
78
92
|
};
|
|
79
93
|
}
|
|
80
94
|
exports.foldLedger = foldLedger;
|
|
@@ -107,8 +121,10 @@ function witnessesOf(conflict, standingOf) {
|
|
|
107
121
|
* key that first disagreed at this write, and emit one event per basis or
|
|
108
122
|
* standing row. No-op on an empty list, so an armed agent whose model
|
|
109
123
|
* declared nothing never writes the key — its commit log is the one it
|
|
110
|
-
* always had. Callers pass basis and standing rows
|
|
111
|
-
*
|
|
124
|
+
* always had. Callers pass basis and standing rows — each standing followed
|
|
125
|
+
* by the `unsettled-by-absence` row the rule files beside it, when it files
|
|
126
|
+
* one (`unsettled.ts · withUnsettledRows`); conflict rows are this function's
|
|
127
|
+
* to write.
|
|
112
128
|
*/
|
|
113
129
|
function recordFindings(scope, rows) {
|
|
114
130
|
if (rows.length === 0)
|
|
@@ -200,6 +216,12 @@ function emitRow(scope, row, newConflicts, judgments) {
|
|
|
200
216
|
});
|
|
201
217
|
return;
|
|
202
218
|
}
|
|
219
|
+
// The row beside a ruled-out standing that rests on an absence (9.113.0)
|
|
220
|
+
// emits nothing of its own — the conflict row's precedent: it is on the
|
|
221
|
+
// committed key, the served piece is its reader, and no event field ships
|
|
222
|
+
// without a reader in the same release.
|
|
223
|
+
if (row.kind === 'unsettled-by-absence')
|
|
224
|
+
return;
|
|
203
225
|
if (row.kind !== 'standing')
|
|
204
226
|
return;
|
|
205
227
|
const conflictKeys = newConflicts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../../../src/core/agent/findings/ledger.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../../../src/core/agent/findings/ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,11 @@
|
|
|
19
19
|
* standingRowsFrom` resolves a named id against. The offer and the
|
|
20
20
|
* identity source read the SAME served history, so every id the
|
|
21
21
|
* offer lists resolves: the law "the offer is what the model may
|
|
22
|
-
* COPY" holds at the row, not only at the schema.
|
|
22
|
+
* COPY" holds at the row, not only at the schema. All of them ask
|
|
23
|
+
* ONE predicate, `isResultMessage`: a message the batch settlement
|
|
24
|
+
* wrote (9.113.0, `LLMMessage.notDispatched`) is served — the model
|
|
25
|
+
* reads its sentence — and is no result, so it is never offered,
|
|
26
|
+
* resolved or counted undeclared.
|
|
23
27
|
*
|
|
24
28
|
* WHY AN OFFER. On a hosted model the ask "by its tool_result id" produced
|
|
25
29
|
* standings named by ORDINAL ("0", "1"), recorded as `unknownId` and settling
|
|
@@ -53,7 +57,7 @@
|
|
|
53
57
|
* page.
|
|
54
58
|
*/
|
|
55
59
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
|
-
exports.knownResults = exports.offeredResultIds = exports.nameableIds = exports.undeclaredIds = exports.servedToolCallIds = exports.RETIRING_STANDINGS = void 0;
|
|
60
|
+
exports.knownResults = exports.offeredResultIds = exports.nameableIds = exports.undeclaredIds = exports.servedToolCallIds = exports.isResultMessage = exports.RETIRING_STANDINGS = void 0;
|
|
57
61
|
const ledger_js_1 = require("./ledger.js");
|
|
58
62
|
/**
|
|
59
63
|
* The standings after which a result leaves the offer: a ticket on the wire
|
|
@@ -63,16 +67,30 @@ const ledger_js_1 = require("./ledger.js");
|
|
|
63
67
|
*/
|
|
64
68
|
exports.RETIRING_STANDINGS = Object.freeze(['noise', 'ruled-out']);
|
|
65
69
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* the
|
|
70
|
+
* Is this message a tool's RESULT — the only thing a standing can be about?
|
|
71
|
+
* A `role: 'tool'` message the batch settlement wrote (9.113.0,
|
|
72
|
+
* `LLMMessage.notDispatched`) is not: the call never ran, so there is nothing
|
|
73
|
+
* to stand on. Read off the marker, never the sentence — which is why every
|
|
74
|
+
* caller hands these functions the COMMITTED conversation, not the wire,
|
|
75
|
+
* where `stripFrameworkFields` has already removed the marker (ids and order
|
|
76
|
+
* are the same either way).
|
|
77
|
+
*/
|
|
78
|
+
function isResultMessage(m) {
|
|
79
|
+
return m.role === 'tool' && m.notDispatched === undefined;
|
|
80
|
+
}
|
|
81
|
+
exports.isResultMessage = isResultMessage;
|
|
82
|
+
/**
|
|
83
|
+
* The `role: 'tool'` ids on a message list, in wire order, each once — a
|
|
84
|
+
* settled message excluded (`isResultMessage`). A message without an id, or
|
|
85
|
+
* with an empty one, contributes nothing. The collapse (`serve.ts ·
|
|
86
|
+
* collapseJudged`) never changes an id, so the list is the same before and
|
|
87
|
+
* after it.
|
|
70
88
|
*/
|
|
71
89
|
function servedToolCallIds(messages) {
|
|
72
90
|
const ids = [];
|
|
73
91
|
const seen = new Set();
|
|
74
92
|
for (const m of messages) {
|
|
75
|
-
if (m
|
|
93
|
+
if (!isResultMessage(m))
|
|
76
94
|
continue;
|
|
77
95
|
const id = m.toolCallId;
|
|
78
96
|
if (id === undefined || id.length === 0 || seen.has(id))
|
|
@@ -151,7 +169,9 @@ exports.offeredResultIds = offeredResultIds;
|
|
|
151
169
|
* order changes no row; it is the source the rows resolved against before
|
|
152
170
|
* the history joined). An id in neither is `unknownId`, as written. A tool
|
|
153
171
|
* message with no `toolName` yields a result with none: nothing is invented
|
|
154
|
-
* for it.
|
|
172
|
+
* for it. A settled message (`isResultMessage`) is no result, so a model that
|
|
173
|
+
* names its id anyway files `unknownId` — the batch never holds one: a
|
|
174
|
+
* settled call never joins `toolResults`.
|
|
155
175
|
*/
|
|
156
176
|
function knownResults(messages, previousBatch = []) {
|
|
157
177
|
const seen = new Set();
|
|
@@ -165,7 +185,7 @@ function knownResults(messages, previousBatch = []) {
|
|
|
165
185
|
for (const r of previousBatch)
|
|
166
186
|
add(r);
|
|
167
187
|
for (const m of messages) {
|
|
168
|
-
if (m
|
|
188
|
+
if (!isResultMessage(m) || m.toolCallId === undefined)
|
|
169
189
|
continue;
|
|
170
190
|
add({
|
|
171
191
|
toolCallId: m.toolCallId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offer.js","sourceRoot":"","sources":["../../../../src/core/agent/findings/offer.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"offer.js","sourceRoot":"","sources":["../../../../src/core/agent/findings/offer.ts"],"names":[],"mappings":"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"}
|