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.
Files changed (261) hide show
  1. package/CHANGELOG.md +296 -0
  2. package/CLAUDE.md +1 -0
  3. package/dist/adapters/observability/audit.js +8 -0
  4. package/dist/adapters/observability/audit.js.map +1 -1
  5. package/dist/adapters/observability/otel.js +44 -2
  6. package/dist/adapters/observability/otel.js.map +1 -1
  7. package/dist/adapters/observability/xray.js +19 -0
  8. package/dist/adapters/observability/xray.js.map +1 -1
  9. package/dist/adapters/types.js.map +1 -1
  10. package/dist/core/Agent.js +11 -1
  11. package/dist/core/Agent.js.map +1 -1
  12. package/dist/core/agent/composeRequest.js +19 -11
  13. package/dist/core/agent/composeRequest.js.map +1 -1
  14. package/dist/core/agent/coverage/absent.js +163 -7
  15. package/dist/core/agent/coverage/absent.js.map +1 -1
  16. package/dist/core/agent/coverage/answer.js +3 -1
  17. package/dist/core/agent/coverage/answer.js.map +1 -1
  18. package/dist/core/agent/coverage/read.js +15 -11
  19. package/dist/core/agent/coverage/read.js.map +1 -1
  20. package/dist/core/agent/findings/ledger.js +27 -5
  21. package/dist/core/agent/findings/ledger.js.map +1 -1
  22. package/dist/core/agent/findings/offer.js +29 -9
  23. package/dist/core/agent/findings/offer.js.map +1 -1
  24. package/dist/core/agent/findings/serve.js +76 -7
  25. package/dist/core/agent/findings/serve.js.map +1 -1
  26. package/dist/core/agent/findings/types.js.map +1 -1
  27. package/dist/core/agent/findings/unsettled.js +276 -0
  28. package/dist/core/agent/findings/unsettled.js.map +1 -0
  29. package/dist/core/agent/stages/callLLM.js +30 -8
  30. package/dist/core/agent/stages/callLLM.js.map +1 -1
  31. package/dist/core/agent/stages/route.js +10 -2
  32. package/dist/core/agent/stages/route.js.map +1 -1
  33. package/dist/core/agent/stages/toolCalls.js +247 -31
  34. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  35. package/dist/core/agent/stages/window.js +5 -2
  36. package/dist/core/agent/stages/window.js.map +1 -1
  37. package/dist/core/agent/toolResultCap.js +0 -0
  38. package/dist/core/agent/toolResultCap.js.map +1 -1
  39. package/dist/core/agent/window/ledgerFactPins.js +13 -2
  40. package/dist/core/agent/window/ledgerFactPins.js.map +1 -1
  41. package/dist/core/agent/window/toolNames.js +17 -2
  42. package/dist/core/agent/window/toolNames.js.map +1 -1
  43. package/dist/core/checkin.js +5 -1
  44. package/dist/core/checkin.js.map +1 -1
  45. package/dist/core/runCheckpoint.js +26 -2
  46. package/dist/core/runCheckpoint.js.map +1 -1
  47. package/dist/esm/adapters/observability/audit.d.ts +8 -0
  48. package/dist/esm/adapters/observability/audit.js +8 -0
  49. package/dist/esm/adapters/observability/audit.js.map +1 -1
  50. package/dist/esm/adapters/observability/otel.d.ts +17 -2
  51. package/dist/esm/adapters/observability/otel.js +44 -2
  52. package/dist/esm/adapters/observability/otel.js.map +1 -1
  53. package/dist/esm/adapters/observability/xray.d.ts +8 -0
  54. package/dist/esm/adapters/observability/xray.js +19 -0
  55. package/dist/esm/adapters/observability/xray.js.map +1 -1
  56. package/dist/esm/adapters/types.d.ts +49 -0
  57. package/dist/esm/adapters/types.js.map +1 -1
  58. package/dist/esm/core/Agent.js +11 -1
  59. package/dist/esm/core/Agent.js.map +1 -1
  60. package/dist/esm/core/agent/composeRequest.d.ts +10 -7
  61. package/dist/esm/core/agent/composeRequest.js +19 -11
  62. package/dist/esm/core/agent/composeRequest.js.map +1 -1
  63. package/dist/esm/core/agent/coverage/absent.d.ts +31 -4
  64. package/dist/esm/core/agent/coverage/absent.js +160 -6
  65. package/dist/esm/core/agent/coverage/absent.js.map +1 -1
  66. package/dist/esm/core/agent/coverage/answer.js +3 -1
  67. package/dist/esm/core/agent/coverage/answer.js.map +1 -1
  68. package/dist/esm/core/agent/coverage/index.d.ts +1 -1
  69. package/dist/esm/core/agent/coverage/read.d.ts +9 -1
  70. package/dist/esm/core/agent/coverage/read.js +16 -12
  71. package/dist/esm/core/agent/coverage/read.js.map +1 -1
  72. package/dist/esm/core/agent/coverage/types.d.ts +42 -0
  73. package/dist/esm/core/agent/findings/ledger.d.ts +23 -6
  74. package/dist/esm/core/agent/findings/ledger.js +27 -5
  75. package/dist/esm/core/agent/findings/ledger.js.map +1 -1
  76. package/dist/esm/core/agent/findings/offer.d.ts +23 -6
  77. package/dist/esm/core/agent/findings/offer.js +27 -8
  78. package/dist/esm/core/agent/findings/offer.js.map +1 -1
  79. package/dist/esm/core/agent/findings/serve.d.ts +19 -6
  80. package/dist/esm/core/agent/findings/serve.js +77 -8
  81. package/dist/esm/core/agent/findings/serve.js.map +1 -1
  82. package/dist/esm/core/agent/findings/types.d.ts +81 -1
  83. package/dist/esm/core/agent/findings/types.js.map +1 -1
  84. package/dist/esm/core/agent/findings/unsettled.d.ts +121 -0
  85. package/dist/esm/core/agent/findings/unsettled.js +271 -0
  86. package/dist/esm/core/agent/findings/unsettled.js.map +1 -0
  87. package/dist/esm/core/agent/stages/callLLM.js +30 -8
  88. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  89. package/dist/esm/core/agent/stages/route.js +10 -2
  90. package/dist/esm/core/agent/stages/route.js.map +1 -1
  91. package/dist/esm/core/agent/stages/toolCalls.d.ts +90 -2
  92. package/dist/esm/core/agent/stages/toolCalls.js +244 -31
  93. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  94. package/dist/esm/core/agent/stages/window.js +5 -2
  95. package/dist/esm/core/agent/stages/window.js.map +1 -1
  96. package/dist/esm/core/agent/toolResultCap.d.ts +4 -1
  97. package/dist/esm/core/agent/toolResultCap.js +0 -0
  98. package/dist/esm/core/agent/toolResultCap.js.map +1 -1
  99. package/dist/esm/core/agent/types.d.ts +5 -0
  100. package/dist/esm/core/agent/window/ledgerFactPins.d.ts +10 -1
  101. package/dist/esm/core/agent/window/ledgerFactPins.js +13 -2
  102. package/dist/esm/core/agent/window/ledgerFactPins.js.map +1 -1
  103. package/dist/esm/core/agent/window/strategy.d.ts +2 -1
  104. package/dist/esm/core/agent/window/toolNames.d.ts +16 -1
  105. package/dist/esm/core/agent/window/toolNames.js +17 -2
  106. package/dist/esm/core/agent/window/toolNames.js.map +1 -1
  107. package/dist/esm/core/checkin.js +5 -1
  108. package/dist/esm/core/checkin.js.map +1 -1
  109. package/dist/esm/core/runCheckpoint.js +26 -2
  110. package/dist/esm/core/runCheckpoint.js.map +1 -1
  111. package/dist/esm/events/payloads.d.ts +76 -1
  112. package/dist/esm/index.d.ts +2 -2
  113. package/dist/esm/index.js.map +1 -1
  114. package/dist/esm/lib/bug-report/transcript.d.ts +5 -0
  115. package/dist/esm/lib/bug-report/transcript.js +1 -0
  116. package/dist/esm/lib/bug-report/transcript.js.map +1 -1
  117. package/dist/esm/lib/semantics/projection.js +1 -0
  118. package/dist/esm/lib/semantics/projection.js.map +1 -1
  119. package/dist/esm/lib/time-travel/receipt.d.ts +4 -3
  120. package/dist/esm/lib/time-travel/receipt.js +4 -3
  121. package/dist/esm/lib/time-travel/receipt.js.map +1 -1
  122. package/dist/esm/lib/time-travel/servedView.js +13 -9
  123. package/dist/esm/lib/time-travel/servedView.js.map +1 -1
  124. package/dist/esm/lib/trace-toolpack/traceToolpack.js +130 -17
  125. package/dist/esm/lib/trace-toolpack/traceToolpack.js.map +1 -1
  126. package/dist/esm/memory/causal/evidenceRecorder.d.ts +2 -0
  127. package/dist/esm/memory/causal/evidenceRecorder.js +13 -0
  128. package/dist/esm/memory/causal/evidenceRecorder.js.map +1 -1
  129. package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.d.ts +2 -0
  130. package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.js +11 -0
  131. package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.js.map +1 -1
  132. package/dist/esm/recorders/observability/BoundaryRecorder.d.ts +10 -1
  133. package/dist/esm/recorders/observability/BoundaryRecorder.js +9 -1
  134. package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
  135. package/dist/esm/recorders/observability/FlowchartRecorder.d.ts +4 -1
  136. package/dist/esm/recorders/observability/FlowchartRecorder.js +13 -1
  137. package/dist/esm/recorders/observability/FlowchartRecorder.js.map +1 -1
  138. package/dist/esm/recorders/observability/LiveStateRecorder.d.ts +2 -0
  139. package/dist/esm/recorders/observability/LiveStateRecorder.js +9 -0
  140. package/dist/esm/recorders/observability/LiveStateRecorder.js.map +1 -1
  141. package/dist/esm/recorders/observability/RouteRecorder.js +5 -0
  142. package/dist/esm/recorders/observability/RouteRecorder.js.map +1 -1
  143. package/dist/esm/recorders/observability/StatusRecorder.js +7 -0
  144. package/dist/esm/recorders/observability/StatusRecorder.js.map +1 -1
  145. package/dist/esm/recorders/observability/ToolChoiceRecorder.js +5 -0
  146. package/dist/esm/recorders/observability/ToolChoiceRecorder.js.map +1 -1
  147. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +18 -2
  148. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  149. package/dist/esm/recorders/observability/status/statusTemplates.js +5 -0
  150. package/dist/esm/recorders/observability/status/statusTemplates.js.map +1 -1
  151. package/dist/esm/security/extractSequence.d.ts +36 -5
  152. package/dist/esm/security/extractSequence.js +99 -26
  153. package/dist/esm/security/extractSequence.js.map +1 -1
  154. package/dist/index.js.map +1 -1
  155. package/dist/lib/bug-report/transcript.js +1 -0
  156. package/dist/lib/bug-report/transcript.js.map +1 -1
  157. package/dist/lib/semantics/projection.js +1 -0
  158. package/dist/lib/semantics/projection.js.map +1 -1
  159. package/dist/lib/time-travel/receipt.js +4 -3
  160. package/dist/lib/time-travel/receipt.js.map +1 -1
  161. package/dist/lib/time-travel/servedView.js +13 -9
  162. package/dist/lib/time-travel/servedView.js.map +1 -1
  163. package/dist/lib/trace-toolpack/traceToolpack.js +130 -17
  164. package/dist/lib/trace-toolpack/traceToolpack.js.map +1 -1
  165. package/dist/memory/causal/evidenceRecorder.js +13 -0
  166. package/dist/memory/causal/evidenceRecorder.js.map +1 -1
  167. package/dist/recorders/observability/AgentThinkingTraceRecorder.js +11 -0
  168. package/dist/recorders/observability/AgentThinkingTraceRecorder.js.map +1 -1
  169. package/dist/recorders/observability/BoundaryRecorder.js +9 -1
  170. package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
  171. package/dist/recorders/observability/FlowchartRecorder.js +13 -1
  172. package/dist/recorders/observability/FlowchartRecorder.js.map +1 -1
  173. package/dist/recorders/observability/LiveStateRecorder.js +9 -0
  174. package/dist/recorders/observability/LiveStateRecorder.js.map +1 -1
  175. package/dist/recorders/observability/RouteRecorder.js +5 -0
  176. package/dist/recorders/observability/RouteRecorder.js.map +1 -1
  177. package/dist/recorders/observability/StatusRecorder.js +7 -0
  178. package/dist/recorders/observability/StatusRecorder.js.map +1 -1
  179. package/dist/recorders/observability/ToolChoiceRecorder.js +5 -0
  180. package/dist/recorders/observability/ToolChoiceRecorder.js.map +1 -1
  181. package/dist/recorders/observability/commentary/commentaryTemplates.js +18 -2
  182. package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  183. package/dist/recorders/observability/status/statusTemplates.js +5 -0
  184. package/dist/recorders/observability/status/statusTemplates.js.map +1 -1
  185. package/dist/security/extractSequence.js +99 -26
  186. package/dist/security/extractSequence.js.map +1 -1
  187. package/dist/types/adapters/observability/audit.d.ts +8 -0
  188. package/dist/types/adapters/observability/audit.d.ts.map +1 -1
  189. package/dist/types/adapters/observability/otel.d.ts +17 -2
  190. package/dist/types/adapters/observability/otel.d.ts.map +1 -1
  191. package/dist/types/adapters/observability/xray.d.ts +8 -0
  192. package/dist/types/adapters/observability/xray.d.ts.map +1 -1
  193. package/dist/types/adapters/types.d.ts +49 -0
  194. package/dist/types/adapters/types.d.ts.map +1 -1
  195. package/dist/types/core/Agent.d.ts.map +1 -1
  196. package/dist/types/core/agent/composeRequest.d.ts +10 -7
  197. package/dist/types/core/agent/composeRequest.d.ts.map +1 -1
  198. package/dist/types/core/agent/coverage/absent.d.ts +31 -4
  199. package/dist/types/core/agent/coverage/absent.d.ts.map +1 -1
  200. package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
  201. package/dist/types/core/agent/coverage/index.d.ts +1 -1
  202. package/dist/types/core/agent/coverage/index.d.ts.map +1 -1
  203. package/dist/types/core/agent/coverage/read.d.ts +9 -1
  204. package/dist/types/core/agent/coverage/read.d.ts.map +1 -1
  205. package/dist/types/core/agent/coverage/types.d.ts +42 -0
  206. package/dist/types/core/agent/coverage/types.d.ts.map +1 -1
  207. package/dist/types/core/agent/findings/ledger.d.ts +23 -6
  208. package/dist/types/core/agent/findings/ledger.d.ts.map +1 -1
  209. package/dist/types/core/agent/findings/offer.d.ts +23 -6
  210. package/dist/types/core/agent/findings/offer.d.ts.map +1 -1
  211. package/dist/types/core/agent/findings/serve.d.ts +19 -6
  212. package/dist/types/core/agent/findings/serve.d.ts.map +1 -1
  213. package/dist/types/core/agent/findings/types.d.ts +81 -1
  214. package/dist/types/core/agent/findings/types.d.ts.map +1 -1
  215. package/dist/types/core/agent/findings/unsettled.d.ts +122 -0
  216. package/dist/types/core/agent/findings/unsettled.d.ts.map +1 -0
  217. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  218. package/dist/types/core/agent/stages/route.d.ts.map +1 -1
  219. package/dist/types/core/agent/stages/toolCalls.d.ts +90 -2
  220. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  221. package/dist/types/core/agent/stages/window.d.ts.map +1 -1
  222. package/dist/types/core/agent/toolResultCap.d.ts +4 -1
  223. package/dist/types/core/agent/toolResultCap.d.ts.map +1 -1
  224. package/dist/types/core/agent/types.d.ts +5 -0
  225. package/dist/types/core/agent/types.d.ts.map +1 -1
  226. package/dist/types/core/agent/window/ledgerFactPins.d.ts +10 -1
  227. package/dist/types/core/agent/window/ledgerFactPins.d.ts.map +1 -1
  228. package/dist/types/core/agent/window/strategy.d.ts +2 -1
  229. package/dist/types/core/agent/window/strategy.d.ts.map +1 -1
  230. package/dist/types/core/agent/window/toolNames.d.ts +16 -1
  231. package/dist/types/core/agent/window/toolNames.d.ts.map +1 -1
  232. package/dist/types/core/checkin.d.ts.map +1 -1
  233. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  234. package/dist/types/events/payloads.d.ts +76 -1
  235. package/dist/types/events/payloads.d.ts.map +1 -1
  236. package/dist/types/index.d.ts +2 -2
  237. package/dist/types/index.d.ts.map +1 -1
  238. package/dist/types/lib/bug-report/transcript.d.ts +5 -0
  239. package/dist/types/lib/bug-report/transcript.d.ts.map +1 -1
  240. package/dist/types/lib/semantics/projection.d.ts.map +1 -1
  241. package/dist/types/lib/time-travel/receipt.d.ts +4 -3
  242. package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
  243. package/dist/types/lib/time-travel/servedView.d.ts.map +1 -1
  244. package/dist/types/lib/trace-toolpack/traceToolpack.d.ts.map +1 -1
  245. package/dist/types/memory/causal/evidenceRecorder.d.ts +2 -0
  246. package/dist/types/memory/causal/evidenceRecorder.d.ts.map +1 -1
  247. package/dist/types/recorders/observability/AgentThinkingTraceRecorder.d.ts +2 -0
  248. package/dist/types/recorders/observability/AgentThinkingTraceRecorder.d.ts.map +1 -1
  249. package/dist/types/recorders/observability/BoundaryRecorder.d.ts +10 -1
  250. package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
  251. package/dist/types/recorders/observability/FlowchartRecorder.d.ts +4 -1
  252. package/dist/types/recorders/observability/FlowchartRecorder.d.ts.map +1 -1
  253. package/dist/types/recorders/observability/LiveStateRecorder.d.ts +2 -0
  254. package/dist/types/recorders/observability/LiveStateRecorder.d.ts.map +1 -1
  255. package/dist/types/recorders/observability/RouteRecorder.d.ts.map +1 -1
  256. package/dist/types/recorders/observability/ToolChoiceRecorder.d.ts.map +1 -1
  257. package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
  258. package/dist/types/recorders/observability/status/statusTemplates.d.ts.map +1 -1
  259. package/dist/types/security/extractSequence.d.ts +36 -5
  260. package/dist/types/security/extractSequence.d.ts.map +1 -1
  261. package/package.json +1 -1
@@ -18,7 +18,11 @@
18
18
  * standingRowsFrom` resolves a named id against. The offer and the
19
19
  * identity source read the SAME served history, so every id the
20
20
  * offer lists resolves: the law "the offer is what the model may
21
- * COPY" holds at the row, not only at the schema.
21
+ * COPY" holds at the row, not only at the schema. All of them ask
22
+ * ONE predicate, `isResultMessage`: a message the batch settlement
23
+ * wrote (9.113.0, `LLMMessage.notDispatched`) is served — the model
24
+ * reads its sentence — and is no result, so it is never offered,
25
+ * resolved or counted undeclared.
22
26
  *
23
27
  * WHY AN OFFER. On a hosted model the ask "by its tool_result id" produced
24
28
  * standings named by ORDINAL ("0", "1"), recorded as `unknownId` and settling
@@ -60,16 +64,29 @@ import { foldLedger } from './ledger.js';
60
64
  */
61
65
  export const RETIRING_STANDINGS = Object.freeze(['noise', 'ruled-out']);
62
66
  /**
63
- * The `role: 'tool'` ids on a message list, in wire order, each once. A
64
- * message without an id, or with an empty one, contributes nothing. The
65
- * collapse (`serve.ts · collapseJudged`) never changes an id, so the list is
66
- * the same before and after it.
67
+ * Is this message a tool's RESULT — the only thing a standing can be about?
68
+ * A `role: 'tool'` message the batch settlement wrote (9.113.0,
69
+ * `LLMMessage.notDispatched`) is not: the call never ran, so there is nothing
70
+ * to stand on. Read off the marker, never the sentence — which is why every
71
+ * caller hands these functions the COMMITTED conversation, not the wire,
72
+ * where `stripFrameworkFields` has already removed the marker (ids and order
73
+ * are the same either way).
74
+ */
75
+ export function isResultMessage(m) {
76
+ return m.role === 'tool' && m.notDispatched === undefined;
77
+ }
78
+ /**
79
+ * The `role: 'tool'` ids on a message list, in wire order, each once — a
80
+ * settled message excluded (`isResultMessage`). A message without an id, or
81
+ * with an empty one, contributes nothing. The collapse (`serve.ts ·
82
+ * collapseJudged`) never changes an id, so the list is the same before and
83
+ * after it.
67
84
  */
68
85
  export function servedToolCallIds(messages) {
69
86
  const ids = [];
70
87
  const seen = new Set();
71
88
  for (const m of messages) {
72
- if (m.role !== 'tool')
89
+ if (!isResultMessage(m))
73
90
  continue;
74
91
  const id = m.toolCallId;
75
92
  if (id === undefined || id.length === 0 || seen.has(id))
@@ -144,7 +161,9 @@ export function offeredResultIds(messages, rows) {
144
161
  * order changes no row; it is the source the rows resolved against before
145
162
  * the history joined). An id in neither is `unknownId`, as written. A tool
146
163
  * message with no `toolName` yields a result with none: nothing is invented
147
- * for it.
164
+ * for it. A settled message (`isResultMessage`) is no result, so a model that
165
+ * names its id anyway files `unknownId` — the batch never holds one: a
166
+ * settled call never joins `toolResults`.
148
167
  */
149
168
  export function knownResults(messages, previousBatch = []) {
150
169
  const seen = new Set();
@@ -158,7 +177,7 @@ export function knownResults(messages, previousBatch = []) {
158
177
  for (const r of previousBatch)
159
178
  add(r);
160
179
  for (const m of messages) {
161
- if (m.role !== 'tool' || m.toolCallId === undefined)
180
+ if (!isResultMessage(m) || m.toolCallId === undefined)
162
181
  continue;
163
182
  add({
164
183
  toolCallId: m.toolCallId,
@@ -1 +1 @@
1
- {"version":3,"file":"offer.js","sourceRoot":"","sources":["../../../../../src/core/agent/findings/offer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offer.js","sourceRoot":"","sources":["../../../../../src/core/agent/findings/offer.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,13 @@
26
26
  * on the record — one line per `ContingentRow`, the value the model used
27
27
  * and every result that carried it with the standing the model gave that
28
28
  * result (`contingent.ts` is the rule; this only quotes the rows; the
29
- * heading says the lines are the library's join, not a declaration). Every
29
+ * heading says the lines are the library's join, not a declaration). After
30
+ * it, `unsettled by absence (read off the record):` (9.113.0) quotes the
31
+ * rows the fold keeps beside a ruled-out standing whose only witness was an
32
+ * absence — what the envelope, as the model was served it, said it did not
33
+ * check and its `try_instead`, in its own field names (`unsettled.ts` is
34
+ * the rule, and quotes nothing the model was not served; the model's own
35
+ * ruled-out line stays in `limitations`, exactly as declared). Every
30
36
  * bucket is bounded
31
37
  * (`FINDINGS_PIECE_LIMITS`) and every overflow is STATED; an empty bucket is
32
38
  * omitted rather than rendered as "no facts". A basis-only ledger
@@ -133,14 +139,15 @@ export declare function isCollapsedToolResult(value: unknown): value is Collapse
133
139
  * section: the piece's sections are separated by a blank line, and an id
134
140
  * carrying `\n\nfacts (declared by the model):\n…` would otherwise render as
135
141
  * a second, forged, library-authored bucket. `pieceChars` is the ceiling the
136
- * other three imply for the whole piece (header + the four buckets and the
137
- * contingent section at their cap + two count lines at theirs + the ask):
142
+ * other three imply for the whole piece (header + the four buckets, the
143
+ * contingent section and the unsettled section at their cap + two count
144
+ * lines at theirs + the ask):
138
145
  * stated, not enforced by a cut, and pinned by `serve.test.ts` ("the whole
139
146
  * piece stays under pieceChars"), which measures a ledger at every cap at
140
147
  * once against it.
141
148
  */
142
149
  export declare const FINDINGS_PIECE_LIMITS: Readonly<{
143
- /** Lines per text bucket (facts, limitations, evidenceRefs, nextSteps, contingent) before `+K more`. */
150
+ /** Lines per text bucket (facts, limitations, evidenceRefs, nextSteps, contingent, unsettled) before `+K more`. */
144
151
  readonly bucketLines: 64;
145
152
  /** Ids per count line (noise, undeclared) before `+K more`. */
146
153
  readonly listedIds: 32;
@@ -148,8 +155,8 @@ export declare const FINDINGS_PIECE_LIMITS: Readonly<{
148
155
  readonly lineChars: 240;
149
156
  /** Chars per id on a count line before `…[clipped N chars]` — an id is an identifier. */
150
157
  readonly idChars: 64;
151
- /** The whole piece's ceiling in chars, implied by the three bounds above (raised for the fifth capped section, 9.110.0). */
152
- readonly pieceChars: 98304;
158
+ /** The whole piece's ceiling in chars, implied by the three bounds above (raised for the fifth capped section, 9.110.0, and the sixth, 9.113.0). */
159
+ readonly pieceChars: 114688;
153
160
  }>;
154
161
  /**
155
162
  * Compose the findings piece for one request, or `undefined` when no result
@@ -168,5 +175,11 @@ export declare function findingsLedgerPiece(rows: FindingsLedger | undefined, se
168
175
  * ticket. The SAME array instance when nothing collapses; otherwise a new
169
176
  * array of the same length and order in which only the collapsed entries
170
177
  * are new objects.
178
+ *
179
+ * Hand it the COMMITTED conversation and strip afterwards (9.113.0): a
180
+ * message the batch settlement wrote is recognised by its marker
181
+ * (`offer.ts` · `isResultMessage`), which `stripFrameworkFields` removes. A
182
+ * collapsed entry keeps every other field, so stripping after is the same
183
+ * wire as stripping before.
171
184
  */
172
185
  export declare function collapseJudged(messages: readonly LLMMessage[], rows: FindingsLedger | undefined, mode: FindingsServeMode): readonly LLMMessage[];
@@ -26,7 +26,13 @@
26
26
  * on the record — one line per `ContingentRow`, the value the model used
27
27
  * and every result that carried it with the standing the model gave that
28
28
  * result (`contingent.ts` is the rule; this only quotes the rows; the
29
- * heading says the lines are the library's join, not a declaration). Every
29
+ * heading says the lines are the library's join, not a declaration). After
30
+ * it, `unsettled by absence (read off the record):` (9.113.0) quotes the
31
+ * rows the fold keeps beside a ruled-out standing whose only witness was an
32
+ * absence — what the envelope, as the model was served it, said it did not
33
+ * check and its `try_instead`, in its own field names (`unsettled.ts` is
34
+ * the rule, and quotes nothing the model was not served; the model's own
35
+ * ruled-out line stays in `limitations`, exactly as declared). Every
30
36
  * bucket is bounded
31
37
  * (`FINDINGS_PIECE_LIMITS`) and every overflow is STATED; an empty bucket is
32
38
  * omitted rather than rendered as "no facts". A basis-only ledger
@@ -97,7 +103,7 @@
97
103
  import { CONTEXT_FIELD_MEANINGS } from '../../../lib/context-contract/index.js';
98
104
  import { assertionKey } from '../../../integrity/assertion/types.js';
99
105
  import { foldLedger } from './ledger.js';
100
- import { servedToolCallIds, undeclaredIds } from './offer.js';
106
+ import { isResultMessage, servedToolCallIds, undeclaredIds } from './offer.js';
101
107
  import { FINDINGS_ANSWER_ASK } from './reserved.js';
102
108
  // The wire's tool ids live in `offer.ts` since the offer (9.102.0) — the
103
109
  // decoration site and the piece read one set — and stay exported from here
@@ -121,14 +127,15 @@ export function isCollapsedToolResult(value) {
121
127
  * section: the piece's sections are separated by a blank line, and an id
122
128
  * carrying `\n\nfacts (declared by the model):\n…` would otherwise render as
123
129
  * a second, forged, library-authored bucket. `pieceChars` is the ceiling the
124
- * other three imply for the whole piece (header + the four buckets and the
125
- * contingent section at their cap + two count lines at theirs + the ask):
130
+ * other three imply for the whole piece (header + the four buckets, the
131
+ * contingent section and the unsettled section at their cap + two count
132
+ * lines at theirs + the ask):
126
133
  * stated, not enforced by a cut, and pinned by `serve.test.ts` ("the whole
127
134
  * piece stays under pieceChars"), which measures a ledger at every cap at
128
135
  * once against it.
129
136
  */
130
137
  export const FINDINGS_PIECE_LIMITS = Object.freeze({
131
- /** Lines per text bucket (facts, limitations, evidenceRefs, nextSteps, contingent) before `+K more`. */
138
+ /** Lines per text bucket (facts, limitations, evidenceRefs, nextSteps, contingent, unsettled) before `+K more`. */
132
139
  bucketLines: 64,
133
140
  /** Ids per count line (noise, undeclared) before `+K more`. */
134
141
  listedIds: 32,
@@ -136,8 +143,8 @@ export const FINDINGS_PIECE_LIMITS = Object.freeze({
136
143
  lineChars: 240,
137
144
  /** Chars per id on a count line before `…[clipped N chars]` — an id is an identifier. */
138
145
  idChars: 64,
139
- /** The whole piece's ceiling in chars, implied by the three bounds above (raised for the fifth capped section, 9.110.0). */
140
- pieceChars: 98_304,
146
+ /** The whole piece's ceiling in chars, implied by the three bounds above (raised for the fifth capped section, 9.110.0, and the sixth, 9.113.0). */
147
+ pieceChars: 114_688,
141
148
  });
142
149
  /** The four contract fields the piece serves, in the order they appear. */
143
150
  const FIELDS = ['facts', 'limitations', 'evidenceRefs', 'nextSteps'];
@@ -169,6 +176,7 @@ export function findingsLedgerPiece(rows, served = [], answerAsk = 'none') {
169
176
  bucket('evidenceRefs', openLines(current, tested)),
170
177
  bucket('nextSteps', nextStepLines(current)),
171
178
  contingentSection(rows),
179
+ unsettledSection(fold),
172
180
  countLine(`noise (${DECLARED})`, idsWith(current, 'noise'), ''),
173
181
  countLine('undeclared', undeclaredIds(served, fold.standingOf), ', served in full below'),
174
182
  ...(answerAsk === 'quote-facts' ? [FINDINGS_ANSWER_ASK] : []),
@@ -362,6 +370,58 @@ function contingentSection(rows) {
362
370
  const over = lines.length - shown.length;
363
371
  return [CONTINGENT_HEADING, ...shown, ...(over > 0 ? [`+${over} more (cap ${max})`] : [])].join('\n');
364
372
  }
373
+ /**
374
+ * The heading of the section that quotes the rows beside a ruled-out
375
+ * standing whose only witness is an absence (9.113.0). It says where the
376
+ * lines come from for the reason `CONTINGENT_HEADING` does: the piece's
377
+ * header says everything below it is what the model itself declared, and
378
+ * these lines are the library's reading of the result the model ruled out
379
+ * on — its envelope's own words, quoted.
380
+ */
381
+ const UNSETTLED_HEADING = 'unsettled by absence (read off the record):';
382
+ /**
383
+ * The ruled-out standings that rest on an absence (9.113.0) — for each row
384
+ * the fold keeps (`ledger.ts · foldLedger`'s `unsettled`: the last row per
385
+ * result while its current standing is still `ruled-out`), in fold order:
386
+ * one head line in the ruled-out line's own identity form, `ruled out
387
+ * (<toolName>, tool:<id>) on an absence`, then one line per part of the
388
+ * envelope, each anchored to its call by id and keyed by the envelope's own
389
+ * field name — `tool:<id> not_checked: <what>[ — <why>]`, `tool:<id>
390
+ * cannot_cover: …`, `tool:<id> try_instead: <the string as printed>`. One
391
+ * line per part, so no part is cut by another's length (the line cap clips
392
+ * each on its own); capped like a bucket, by lines, with the overflow
393
+ * stated; omitted when the fold keeps none. The model's own ruled-out line
394
+ * stays in `limitations`, as declared.
395
+ */
396
+ function unsettledSection(fold) {
397
+ const lines = [];
398
+ for (const row of fold.unsettled.values()) {
399
+ // Always present: the fold keeps a row only beside a current ruled-out standing.
400
+ const standing = fold.standingOf.get(row.toolCallId);
401
+ if (standing === undefined)
402
+ continue;
403
+ lines.push(clipLine(`ruled out (${whereOf(standing)}) on an absence`));
404
+ const id = `tool:${row.toolCallId}`;
405
+ for (const item of row.notChecked ?? []) {
406
+ lines.push(clipLine(`${id} not_checked: ${itemText(item)}`));
407
+ }
408
+ for (const item of row.cannotCover ?? []) {
409
+ lines.push(clipLine(`${id} cannot_cover: ${itemText(item)}`));
410
+ }
411
+ if (row.tryInstead !== undefined)
412
+ lines.push(clipLine(`${id} try_instead: ${row.tryInstead}`));
413
+ }
414
+ if (lines.length === 0)
415
+ return undefined;
416
+ const max = FINDINGS_PIECE_LIMITS.bucketLines;
417
+ const shown = lines.slice(0, max);
418
+ const over = lines.length - shown.length;
419
+ return [UNSETTLED_HEADING, ...shown, ...(over > 0 ? [`+${over} more (cap ${max})`] : [])].join('\n');
420
+ }
421
+ /** `<what>[ — <why>]` — one coverage item as the answer's coverage block renders it. */
422
+ function itemText(item) {
423
+ return `${item.what}${item.why === undefined ? '' : ` — ${item.why}`}`;
424
+ }
365
425
  // ─── Rendering ─────────────────────────────────────────────────────────
366
426
  /** `tool:<id>[ | artifact:<ref>][ (unknown id)]` — the row's own identities. */
367
427
  function provenanceOf(row) {
@@ -412,6 +472,12 @@ function clip(text, max) {
412
472
  * ticket. The SAME array instance when nothing collapses; otherwise a new
413
473
  * array of the same length and order in which only the collapsed entries
414
474
  * are new objects.
475
+ *
476
+ * Hand it the COMMITTED conversation and strip afterwards (9.113.0): a
477
+ * message the batch settlement wrote is recognised by its marker
478
+ * (`offer.ts` · `isResultMessage`), which `stripFrameworkFields` removes. A
479
+ * collapsed entry keeps every other field, so stripping after is the same
480
+ * wire as stripping before.
415
481
  */
416
482
  export function collapseJudged(messages, rows, mode) {
417
483
  if (rows === undefined)
@@ -430,7 +496,10 @@ export function collapseJudged(messages, rows, mode) {
430
496
  return out ?? messages;
431
497
  }
432
498
  function ticketFor(m, standingOf, mode) {
433
- if (m.role !== 'tool' || m.toolCallId === undefined)
499
+ // A settled message is no result (`offer.ts` · `isResultMessage`): a
500
+ // standing that names its id (filed `unknownId`, as written) never turns the
501
+ // library's sentence about a call that never ran into a ticket.
502
+ if (!isResultMessage(m) || m.toolCallId === undefined)
434
503
  return undefined;
435
504
  const row = standingOf.get(m.toolCallId);
436
505
  if (row === undefined || !collapses(row.standing, mode))
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../../../src/core/agent/findings/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAkB,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,yEAAyE;AACzE,2EAA2E;AAC3E,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,CAAC;AA6B7B,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAiC,CAAC,SAAS,KAAK,IAAI;QACrD,OAAQ,KAAgC,CAAC,QAAQ,KAAK,QAAQ;QAC9D,OAAQ,KAAkC,CAAC,UAAU,KAAK,QAAQ,CACnE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,wGAAwG;IACxG,WAAW,EAAE,EAAE;IACf,+DAA+D;IAC/D,SAAS,EAAE,EAAE;IACb,4EAA4E;IAC5E,SAAS,EAAE,GAAG;IACd,yFAAyF;IACzF,OAAO,EAAE,EAAE;IACX,4HAA4H;IAC5H,UAAU,EAAE,MAAM;CACV,CAAC,CAAC;AAEZ,2EAA2E;AAC3E,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,CAAU,CAAC;AAG9E,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAEzC,0EAA0E;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAgC,EAChC,SAA4B,EAAE,EAC9B,YAA+B,MAAM;IAErC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACxC,wEAAwE;IACxE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG;QACf,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,iBAAiB,CAAC,IAAI,CAAC;QACvB,SAAS,CAAC,UAAU,QAAQ,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;QAC/D,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,wBAAwB,CAAC;QACzF,GAAG,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC9C,OAAO;QACL,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,UAAU;KACnB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,MAAM,GAAG;IACb,yFAAyF;QACvF,uFAAuF;QACvF,2FAA2F;QAC3F,yFAAyF;QACzF,+BAA+B;IACjC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;IACtE,gEAAgE;CACjE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,kGAAkG;AAClG,SAAS,MAAM,CAAC,KAAY,EAAE,KAAwB;IACpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,GAAG,GAAG,qBAAqB,CAAC,WAAW,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACzC,OAAO;QACL,GAAG,KAAK,KAAK,QAAQ,IAAI;QACzB,GAAG,KAAK;QACR,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,KAAa,EAAE,GAAsB,EAAE,IAAY;IACpE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,GAAG,GAAG,qBAAqB,CAAC,SAAS,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,OAAO,GAAG,KAAK,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;AAC5D,CAAC;AAED,SAAS,OAAO,CAAC,OAA+B,EAAE,QAAkB;IAClE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACzF,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAoB;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uFAAuF;AACvF,SAAS,YAAY,CAAC,GAAgB,EAAE,MAAmC;IACzE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,WAAW,EAAE,CAAC;AACtE,CAAC;AAED,0EAA0E;AAE1E,4GAA4G;AAC5G,SAAS,SAAS,CAAC,OAA+B;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM;YAAE,SAAS;QACtC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,uCAAuC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjF,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAgB;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,OAA2B,CAAC;QAChC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM;gBAAE,SAAS;YACtC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAC/B,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,GAAG;oBAAE,SAAS;gBAC/C,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS;QACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CACpB,OAA+B,EAC/B,MAAmC;IAEnC,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC;SAC7C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,QAAQ,CACN,cAAc,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;QAC3E,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAC5B,CACF,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,OAA+B,EAAE,MAAmC;IACrF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM;YAAE,SAAS;QACtC,MAAM,IAAI,GACR,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9F,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CACR,QAAQ,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,sFAAsF;AACtF,SAAS,aAAa,CAAC,OAA+B;IACpD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC;SACrE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,oBAAoB,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AAE/D;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CAAC,IAAoB;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;YAAE,SAAS;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3F,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,GAAG,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,GAAG,GAAG,qBAAqB,CAAC,WAAW,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACzC,OAAO,CAAC,kBAAkB,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC7F,IAAI,CACL,CAAC;AACJ,CAAC;AAED,0EAA0E;AAE1E,gFAAgF;AAChF,SAAS,YAAY,CAAC,GAAgB;IACpC,OAAO,CACL,QAAQ,GAAG,CAAC,UAAU,EAAE;QACxB,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,GAAG,EAAE,CAAC;QACvD,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,SAAS,OAAO,CAAC,GAAgB;IAC/B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,SAAS,CAAC,CAAY;IAC7B,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;AAC9D,CAAC;AAED,mGAAmG;AACnG,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,gFAAgF;AAChF,SAAS,MAAM,CAAC,EAAU;IACxB,OAAO,IAAI,CAAC,EAAE,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,8FAA8F;AAC9F,SAAS,IAAI,CAAC,IAAY,EAAE,GAAW;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,IAAI,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC;AACvE,CAAC;AAED,0EAA0E;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA+B,EAC/B,IAAgC,EAChC,IAAuB;IAEvB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACxC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC;IAClC,IAAI,GAA6B,CAAC;IAClC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,CAAC,CAAC,OAAO;YAAE,SAAS;QAC3D,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,IAAI,QAAQ,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAChB,CAAa,EACb,UAA4C,EAC5C,IAAuB;IAEvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1E,MAAM,MAAM,GAAwB;QAClC,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;KAC/C,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,qFAAqF;AACrF,SAAS,SAAS,CAAC,QAAkB,EAAE,IAAuB;IAC5D,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,IAAI,KAAK,aAAa,IAAI,QAAQ,KAAK,MAAM,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../../../src/core/agent/findings/serve.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@
29
29
  * trace row carrying the write already names the writer.
30
30
  */
31
31
  import type { Assertion } from '../../../integrity/assertion/types.js';
32
+ import type { CoverageItem } from '../coverage/types.js';
32
33
  /** The reserved optional property every SERVED tool schema carries when armed. */
33
34
  export declare const RESERVED_ARGUMENT: "_findings";
34
35
  /** The reserved top-level key a JSON answer may carry its standings under. */
@@ -285,6 +286,85 @@ export interface ContingentRow {
285
286
  readonly carriers: readonly ContingentCarrier[];
286
287
  readonly iteration: number;
287
288
  }
288
- export type FindingsRow = BasisRow | StandingRow | ConflictRow | JudgmentRow | JudgmentErrorRow | ContingentRow;
289
+ /**
290
+ * A `ruled-out` standing whose ONLY witness is an absence (9.113.0) — the
291
+ * library's row BESIDE the model's, never a rewrite of it. "Nothing was
292
+ * found" is not "ruled out": a lookup that matched nothing witnesses no
293
+ * negative, so a ruling-out that rests on it alone is not settled by its
294
+ * witness — and the envelope already says why (what it did not check) and
295
+ * where the settling would be (its `try_instead`). `findings/unsettled.ts`
296
+ * is the one rule; `ledger.ts · recordFindings` files the row immediately
297
+ * after the standing it is beside, keyed to that standing's `toolCallId`.
298
+ * The model's `StandingRow` is untouched and served exactly as declared.
299
+ *
300
+ * TWO WITNESSES, BOTH REQUIRED. A row is filed only when the dispatch door
301
+ * recorded the standing's result as an absence (`stages/toolCalls.ts ·
302
+ * declareCoverage` — the delivered status `'absent'`, the `tools.absent`
303
+ * event, a `kind: 'absence'` row on `AgentState.coverageDeclared`; the rule
304
+ * never re-reads a return to decide that, so the record holds one answer to
305
+ * "did the tool return an absence?") AND the model was SERVED one. The door
306
+ * records the return before the after-tool chain, the tool's own ceiling
307
+ * and placement act, and the model rules out on what it READ: a result an
308
+ * after-tool rule denied, a refusal, a placement ticket or a summary was no
309
+ * absence to the model, so nothing is filed beside a ruling-out on it.
310
+ *
311
+ * A RECORD OF A CHECK, NOT A FOLD. Written once, at the moment the standing
312
+ * was filed, and never recomputed, never updated. The record needs it
313
+ * STORED because what it is read from does not last as long as the
314
+ * standing: `coverageDeclared` is per run (a continued conversation or a
315
+ * `resumeOnError` starts without it — it is not on the `AgentRunCheckpoint`),
316
+ * and the served result leaves `history` when the window evicts it
317
+ * (`stages/window.ts`). The model needs
318
+ * it SERVED for a different reason: from the next call on, a ruled-out
319
+ * result is a ticket on the wire (`serve.ts · collapseJudged`), so the
320
+ * piece's section is where the envelope's boundary still reaches it. Which
321
+ * rows are CURRENT — the last per result, while that result's standing is
322
+ * still `ruled-out` — is the ledger's one fold (`ledger.ts · foldLedger`,
323
+ * its `unsettled` map), never this row's.
324
+ *
325
+ * Every field is in its author's words AS THE MODEL WAS SERVED THEM, never
326
+ * inferred and never more than the model read: `notChecked` / `cannotCover`
327
+ * are the served envelope's `not_checked` / `cannot_cover`, `tryInstead` its
328
+ * `try_instead` STRING — so a scrub an after-tool rule applied is honored,
329
+ * and a word governance withheld never reaches the row (the door's own
330
+ * copies are its witness, never quoted). These are tool-authored words in
331
+ * the committed key, under whatever redaction the run configured (the
332
+ * `ledger.ts` payload law).
333
+ *
334
+ * THE NAME. The ledger's own verb negated — `settles` is what an `open`
335
+ * standing says would settle it — and the cause in the coverage vocabulary
336
+ * (`absent()`, the delivered status `'absent'`). It reuses no standing value
337
+ * (round 1 re-filed the standing as `open`, a second writer of the model's
338
+ * word) and no disposition word (the checker's). THE FIELD: the design
339
+ * (decisions memo § 2.1, page § 5.6) names the carried sentence `settles`;
340
+ * it ships as `tryInstead`, the envelope's own field name, because `settles`
341
+ * is the MODEL's word on an `open` standing and calling the tool's sentence
342
+ * "what settles it" would be an inference — a reader of this row looks for
343
+ * `tryInstead`, never `settles`.
344
+ */
345
+ export interface UnsettledByAbsenceRow {
346
+ readonly kind: 'unsettled-by-absence';
347
+ /** The ruled-out RESULT — the key of the standing this row is beside. */
348
+ readonly toolCallId: string;
349
+ /**
350
+ * The SERVED envelope's `not_checked` (the served result's leading JSON
351
+ * object — a framework note joined after it is not part of it) — a
352
+ * bounding ledger's first, then the absence's, repeats dropped (the one
353
+ * recognizer's order, which the door files in too). An item that names no
354
+ * ground is left out. Present only when non-empty.
355
+ */
356
+ readonly notChecked?: readonly CoverageItem[];
357
+ /** The served envelope's `cannot_cover`, by the same rule. Present only when non-empty. */
358
+ readonly cannotCover?: readonly CoverageItem[];
359
+ /**
360
+ * The served absence's `try_instead`, the STRING byte for byte — never
361
+ * parsed, never trimmed, never read for a tool name. Present only when
362
+ * that string is non-blank.
363
+ */
364
+ readonly tryInstead?: string;
365
+ /** The standing's iteration — the moment the check ran. */
366
+ readonly iteration: number;
367
+ }
368
+ export type FindingsRow = BasisRow | StandingRow | ConflictRow | JudgmentRow | JudgmentErrorRow | ContingentRow | UnsettledByAbsenceRow;
289
369
  /** The committed key: flat, append-only, a fresh array on every write. */
290
370
  export type FindingsLedger = readonly FindingsRow[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/agent/findings/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAoB,CAAC;AACtD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAoB,CAAC;AASxD,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAqB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,aAAa,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,MAAM,CAAC,MAAM,eAAe,GAAwB,MAAM,CAAC,MAAM,CAAC;IAChE,MAAM;IACN,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AA4HrC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AA4DvC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/agent/findings/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAoB,CAAC;AACtD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAoB,CAAC;AASxD,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAqB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,aAAa,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,MAAM,CAAC,MAAM,eAAe,GAAwB,MAAM,CAAC,MAAM,CAAC;IAChE,MAAM;IACN,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AA4HrC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AA4DvC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * findings/unsettled — "nothing was found" is not "ruled out".
3
+ *
4
+ * Pattern: one pure rule over (a standing the model just declared, the
5
+ * result the model was served for it, the coverage the dispatch
6
+ * door recorded); the sibling of `contingent.ts`. That one asks
7
+ * "did the model build on a result it had set aside?"; this one
8
+ * asks "did the model set something aside on a result that held
9
+ * nothing?".
10
+ * Role: core/ layer leaf. The two moments that file standings —
11
+ * `stages/toolCalls.ts` (a call's `_findings.previous`) and
12
+ * `stages/route.ts` (the answer's) — pass their standing rows
13
+ * through `withUnsettledRows` on the way to `ledger.ts ·
14
+ * recordFindings`, the one writer, so a derived row lands in the
15
+ * same write, immediately after the standing it is beside.
16
+ * Emits: N/A — and the writer emits nothing for the row either (the
17
+ * conflict row's precedent; see `ledger.ts · recordFindings`).
18
+ *
19
+ * ## The owner's ask, and the rule that answers it
20
+ *
21
+ * A model rules out an HBA path because an HBA lookup keyed on a storage
22
+ * cluster's name found nothing — and the lookup's own envelope said it never
23
+ * checked whether that name is a host at all. The model's `ruled-out` is its
24
+ * word and stays its word: the library never writes a standing (round 1 of
25
+ * the design re-filed it as `open`, which made the library a second writer
26
+ * of the model's word — docs/design/2026-09-honest-answer-ledger.md § 14,
27
+ * R12). What the library adds is a row BESIDE it:
28
+ *
29
+ * a `ruled-out` standing whose ONLY witness is an absence gets an
30
+ * `unsettled-by-absence` row, keyed to the standing's `toolCallId`,
31
+ * carrying what the envelope says was not checked and its `try_instead`
32
+ * as printed.
33
+ *
34
+ * The fences, because they are the rule's honesty:
35
+ * - TWO FACTS, TWO OWNERS, BOTH REQUIRED. "Did the tool return an absence?"
36
+ * has one owner: the dispatch door (`stages/toolCalls.ts ·
37
+ * declareCoverage`), which reads the value the tool RETURNED through the
38
+ * one recognizer (`coverage/read.ts · readCoverageResult`), delivers the
39
+ * status `'absent'`, emits `tools.absent` and files the call's rows on
40
+ * `AgentState.coverageDeclared`. This rule never re-reads a result to
41
+ * decide that: an envelope a tool returned as TEXT (an MCP server in its
42
+ * default text mode) was no absence at the door (no status, no event, no
43
+ * row), so it is none here either, and the record holds one answer, not
44
+ * two. "Was the model SERVED an absence?" has another owner: the result as
45
+ * the model was served it (`offer.ts · knownResults`, the identity source
46
+ * the standing itself resolved against). The door records the return
47
+ * BEFORE the after-tool chain, the tool's own ceiling and placement act,
48
+ * so an after-tool `deny` ("the model does not get to read this"), a
49
+ * ceiling's refusal, a placement ticket, a summary or an agent cap's cut
50
+ * leave the door's rows saying absence while the model read something
51
+ * else. A ruling-out rests on what the model READ: the row is filed only
52
+ * when both hold, and it never quotes a word the model was not served.
53
+ * - THE ROW'S WORDS ARE WHAT THE MODEL WAS SERVED. The served string's
54
+ * LEADING JSON object — the dispatch loop serves the value's
55
+ * serialization and joins any framework note AFTER it (a step
56
+ * boundary's, a refused effect's, the repeated-call note) — read by the
57
+ * one recognizer, bare or bounded by `coverage()`. `notChecked` /
58
+ * `cannotCover` are that object's lists merged in the recognizer's order
59
+ * (a bounding ledger first, then the absence; repeats dropped), so a
60
+ * scrub the chain applied is honored; `tryInstead` is its absence's
61
+ * `try_instead`, carried byte for byte when it is a non-blank string —
62
+ * never parsed and never read for a tool name (a tool name found inside
63
+ * prose is an inference). Every item is read, never trusted: copied as
64
+ * `{ what, why? }`, and one that names no ground left out — a row the
65
+ * checkpoint door would refuse is never filed. The door's own copies are
66
+ * the witness that the tool returned an absence, and nothing more: they
67
+ * are never quoted.
68
+ * - RULED-OUT ONLY. `open` is already unsettled in the model's own word, and
69
+ * `noise` says the result held nothing worth reading — which an absence
70
+ * is. Only a ruling-out claims more than its witness can hold.
71
+ * - A RECORD OF A CHECK. The row is written once, at the standing's moment,
72
+ * and never recomputed (`types.ts · UnsettledByAbsenceRow`); which rows are
73
+ * CURRENT is the ledger's one fold (`ledger.ts · foldLedger`).
74
+ * - TOTAL. Every reader here takes what other code wrote and refuses a shape
75
+ * it cannot read by filing nothing, never by throwing: a derived row must
76
+ * never fail the run.
77
+ *
78
+ * Not read, and named in the README so nobody reads it as covered: a zero-row
79
+ * array (no door records a zero-row reading of the value a tool returned, and
80
+ * counting the SERVED string would count a text `'[]'` that
81
+ * `integrity/empty-lookup/check.ts · readLookupResult` declines — a second
82
+ * answer), a result whose door rows are not on this run's state — an
83
+ * earlier turn of a continued conversation, or a run before `resumeOnError`
84
+ * (`coverageDeclared` is per run and not on the `AgentRunCheckpoint`) — and
85
+ * the envelope's TYPED suggestion, `try_instead_tool`: the row carries the
86
+ * `try_instead` string alone, because nothing in this release reads a typed
87
+ * tool off the row (the join that would, `source-not-consulted`, is not
88
+ * built).
89
+ *
90
+ * `.findings()` must be armed for any of this to run — both call sites sit
91
+ * inside the ledger's gate — and the door's key is read only for a
92
+ * `ruled-out` standing whose result was SERVED as an absence, so a run whose
93
+ * model rules out no such result records the bytes it always did.
94
+ */
95
+ import type { DeclaredCoverage } from '../coverage/types.js';
96
+ import type { PreviousResult } from './ledger.js';
97
+ import type { FindingsRow, StandingRow, UnsettledByAbsenceRow } from './types.js';
98
+ /**
99
+ * The rule for ONE standing: the derived row beside it, or nothing. Only a
100
+ * `ruled-out` standing on a result the run identified (the same `known` list
101
+ * `ledger.ts · standingRowsFrom` resolved it against) whose served string
102
+ * reads as an absence AND whose call the door recorded as one (`declared` is
103
+ * `AgentState.coverageDeclared`).
104
+ */
105
+ export declare function unsettledRowOf(standing: StandingRow, known: readonly PreviousResult[], declared: readonly DeclaredCoverage[]): UnsettledByAbsenceRow | undefined;
106
+ /**
107
+ * The standings in declaration order, each followed immediately by its
108
+ * derived row when the rule files one — what both moments hand to
109
+ * `recordFindings`. The standing rows are the caller's objects, pushed
110
+ * as they are: a batch the rule files nothing beside comes back row for row.
111
+ *
112
+ * `readDeclared` hands over `AgentState.coverageDeclared` and is called at
113
+ * most once, and only for a standing the rule reads (a `ruled-out` on an
114
+ * identified result) whose served result reads as an absence — a pure
115
+ * reading of strings the moment already holds, taken first. A tracked read
116
+ * is visible to every recorder (a narrative line, a `readKeys` entry under
117
+ * `writeProvenance`), so an armed run whose model rules out only results
118
+ * that held something reads nothing it did not read before (the
119
+ * `contingent.ts · hasSetAsideStanding` gate's precedent).
120
+ */
121
+ export declare function withUnsettledRows(standings: readonly StandingRow[], known: readonly PreviousResult[], readDeclared: () => readonly DeclaredCoverage[]): FindingsRow[];