agentfootprint 9.76.1 → 9.78.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 (105) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/CLAUDE.md +2 -0
  3. package/dist/core/Agent.js +86 -0
  4. package/dist/core/Agent.js.map +1 -1
  5. package/dist/core/agent/integrityFindings.js +47 -0
  6. package/dist/core/agent/integrityFindings.js.map +1 -0
  7. package/dist/core/agent/stages/callLLM.js +28 -29
  8. package/dist/core/agent/stages/callLLM.js.map +1 -1
  9. package/dist/core/agent/stages/toolCalls.js +184 -0
  10. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  11. package/dist/core/tools.js +9 -1
  12. package/dist/core/tools.js.map +1 -1
  13. package/dist/esm/core/Agent.d.ts +10 -0
  14. package/dist/esm/core/Agent.js +86 -0
  15. package/dist/esm/core/Agent.js.map +1 -1
  16. package/dist/esm/core/agent/integrityFindings.d.ts +27 -0
  17. package/dist/esm/core/agent/integrityFindings.js +43 -0
  18. package/dist/esm/core/agent/integrityFindings.js.map +1 -0
  19. package/dist/esm/core/agent/stages/callLLM.d.ts +25 -0
  20. package/dist/esm/core/agent/stages/callLLM.js +25 -26
  21. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  22. package/dist/esm/core/agent/stages/toolCalls.d.ts +43 -0
  23. package/dist/esm/core/agent/stages/toolCalls.js +185 -1
  24. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  25. package/dist/esm/core/agent/types.d.ts +112 -0
  26. package/dist/esm/core/tools.d.ts +63 -0
  27. package/dist/esm/core/tools.js +17 -0
  28. package/dist/esm/core/tools.js.map +1 -1
  29. package/dist/esm/index.d.ts +3 -0
  30. package/dist/esm/index.js +18 -0
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/integrity/argumentLeaves.d.ts +33 -0
  33. package/dist/esm/integrity/argumentLeaves.js +49 -0
  34. package/dist/esm/integrity/argumentLeaves.js.map +1 -0
  35. package/dist/esm/integrity/column-types/check.d.ts +156 -0
  36. package/dist/esm/integrity/column-types/check.js +363 -0
  37. package/dist/esm/integrity/column-types/check.js.map +1 -0
  38. package/dist/esm/integrity/column-types/types.d.ts +121 -0
  39. package/dist/esm/integrity/column-types/types.js +107 -0
  40. package/dist/esm/integrity/column-types/types.js.map +1 -0
  41. package/dist/esm/integrity/disposition/lifecycle.d.ts +31 -1
  42. package/dist/esm/integrity/disposition/lifecycle.js +54 -1
  43. package/dist/esm/integrity/disposition/lifecycle.js.map +1 -1
  44. package/dist/esm/integrity/empty-lookup/check.d.ts +140 -0
  45. package/dist/esm/integrity/empty-lookup/check.js +212 -0
  46. package/dist/esm/integrity/empty-lookup/check.js.map +1 -0
  47. package/dist/esm/integrity/finding/types.d.ts +23 -2
  48. package/dist/esm/integrity/finding/types.js.map +1 -1
  49. package/dist/esm/integrity/unsupported-argument/check.js +11 -27
  50. package/dist/esm/integrity/unsupported-argument/check.js.map +1 -1
  51. package/dist/esm/lib/mcp/toolExtras.d.ts +17 -2
  52. package/dist/esm/lib/mcp/toolExtras.js +5 -2
  53. package/dist/esm/lib/mcp/toolExtras.js.map +1 -1
  54. package/dist/esm/lib/trace-toolpack/traceToolpack.js +8 -4
  55. package/dist/esm/lib/trace-toolpack/traceToolpack.js.map +1 -1
  56. package/dist/index.js +26 -3
  57. package/dist/index.js.map +1 -1
  58. package/dist/integrity/argumentLeaves.js +54 -0
  59. package/dist/integrity/argumentLeaves.js.map +1 -0
  60. package/dist/integrity/column-types/check.js +368 -0
  61. package/dist/integrity/column-types/check.js.map +1 -0
  62. package/dist/integrity/column-types/types.js +112 -0
  63. package/dist/integrity/column-types/types.js.map +1 -0
  64. package/dist/integrity/disposition/lifecycle.js +54 -1
  65. package/dist/integrity/disposition/lifecycle.js.map +1 -1
  66. package/dist/integrity/empty-lookup/check.js +217 -0
  67. package/dist/integrity/empty-lookup/check.js.map +1 -0
  68. package/dist/integrity/finding/types.js.map +1 -1
  69. package/dist/integrity/unsupported-argument/check.js +13 -29
  70. package/dist/integrity/unsupported-argument/check.js.map +1 -1
  71. package/dist/lib/mcp/toolExtras.js +4 -1
  72. package/dist/lib/mcp/toolExtras.js.map +1 -1
  73. package/dist/lib/trace-toolpack/traceToolpack.js +8 -4
  74. package/dist/lib/trace-toolpack/traceToolpack.js.map +1 -1
  75. package/dist/types/core/Agent.d.ts +10 -0
  76. package/dist/types/core/Agent.d.ts.map +1 -1
  77. package/dist/types/core/agent/integrityFindings.d.ts +28 -0
  78. package/dist/types/core/agent/integrityFindings.d.ts.map +1 -0
  79. package/dist/types/core/agent/stages/callLLM.d.ts +25 -0
  80. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  81. package/dist/types/core/agent/stages/toolCalls.d.ts +43 -0
  82. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  83. package/dist/types/core/agent/types.d.ts +112 -0
  84. package/dist/types/core/agent/types.d.ts.map +1 -1
  85. package/dist/types/core/tools.d.ts +63 -0
  86. package/dist/types/core/tools.d.ts.map +1 -1
  87. package/dist/types/index.d.ts +3 -0
  88. package/dist/types/index.d.ts.map +1 -1
  89. package/dist/types/integrity/argumentLeaves.d.ts +34 -0
  90. package/dist/types/integrity/argumentLeaves.d.ts.map +1 -0
  91. package/dist/types/integrity/column-types/check.d.ts +157 -0
  92. package/dist/types/integrity/column-types/check.d.ts.map +1 -0
  93. package/dist/types/integrity/column-types/types.d.ts +122 -0
  94. package/dist/types/integrity/column-types/types.d.ts.map +1 -0
  95. package/dist/types/integrity/disposition/lifecycle.d.ts +31 -1
  96. package/dist/types/integrity/disposition/lifecycle.d.ts.map +1 -1
  97. package/dist/types/integrity/empty-lookup/check.d.ts +141 -0
  98. package/dist/types/integrity/empty-lookup/check.d.ts.map +1 -0
  99. package/dist/types/integrity/finding/types.d.ts +23 -2
  100. package/dist/types/integrity/finding/types.d.ts.map +1 -1
  101. package/dist/types/integrity/unsupported-argument/check.d.ts.map +1 -1
  102. package/dist/types/lib/mcp/toolExtras.d.ts +17 -2
  103. package/dist/types/lib/mcp/toolExtras.d.ts.map +1 -1
  104. package/dist/types/lib/trace-toolpack/traceToolpack.d.ts.map +1 -1
  105. package/package.json +1 -1
@@ -13,6 +13,7 @@ import { type ToolWants } from '../artifacts/wants.js';
13
13
  import type { Credential, CredentialNeed, CredentialProvider } from '../identity/types.js';
14
14
  import type { MemoryIdentity } from '../memory/identity/types.js';
15
15
  import { type ToolResultClass } from '../lib/semantics/types.js';
16
+ import { assertResultColumns, COLUMN_TYPES, type ColumnDeclaration, type ColumnType, type ToolResultColumns } from '../integrity/column-types/types.js';
16
17
  import { type AskComponent } from './askComponent.js';
17
18
  import type { CheckInDemand } from './checkin.js';
18
19
  import type { TeardownOptions, TeardownScope } from './toolSessions.js';
@@ -184,6 +185,53 @@ export interface Tool<TArgs = Record<string, unknown>, TResult = unknown> {
184
185
  * // elsewhere: defineTool({ name: 'chart', wants: { dataset: 'dataset/rows' }, … })
185
186
  */
186
187
  readonly resultKind?: string;
188
+ /**
189
+ * WHAT THIS TOOL'S ROWS CONTAIN (9.78.0) — column name to type, the
190
+ * sibling of {@link Tool.resultKind}. `resultKind` says what the result IS;
191
+ * this says what it CONTAINS.
192
+ *
193
+ * THE MEASURED FAILURES, all three the same shape — a number became
194
+ * something else, and nothing noticed at the seam:
195
+ *
196
+ * 1. `str(m.get("logical_unit_number") or "")` — LUN 0 is falsy, so LUN 0
197
+ * was stored as an EMPTY STRING on 2,094 mappings, and a host group
198
+ * missing the LUN an initiator probes first became indistinguishable
199
+ * from one that had it.
200
+ * 2. `round(mib / 1024, 1)` rendered an 8 MiB disk as `0.0 GB`, which
201
+ * reads as NO DISK during a live incident.
202
+ * 3. A family of tools returned their numbers as quoted strings
203
+ * (`"1240"`), which silently blanked every chart, because nothing
204
+ * downstream could tell a measure from a label.
205
+ *
206
+ * Declaring the columns gives the library something to check the rows
207
+ * against. It catches 1 and 3. It cannot catch 2, and says so: the check
208
+ * judges TYPE, never MEANING (see `COLUMN_TYPE_CEILING`, quoted verbatim
209
+ * into every finding).
210
+ *
211
+ * A promise about what it NAMES, never a closed schema — an unlisted column
212
+ * is allowed and never judged. Two spellings: a bare type, or the object
213
+ * form when a column may legitimately hold nothing.
214
+ *
215
+ * ARMED BY TWO HALVES, like every write-seam check: this declaration AND
216
+ * the operator's `checkColumnTypes` dial (default `'off'`). Omitted, or
217
+ * with the dial off → exactly today's bytes; nothing is measured, no
218
+ * finding is filed, and the model reads the rows the tool returned.
219
+ *
220
+ * @example the LUN report that lost its zeroes
221
+ * defineTool({
222
+ * name: 'host_group_mappings',
223
+ * description: 'The LUN mappings of a host group',
224
+ * resultKind: 'dataset/rows',
225
+ * resultColumns: {
226
+ * logical_unit_number: 'number',
227
+ * host_group: 'string',
228
+ * comment: { type: 'string', nullable: true },
229
+ * },
230
+ * inputSchema: { … },
231
+ * execute: async () => [{ logical_unit_number: 0, host_group: 'vdi-a' }],
232
+ * });
233
+ */
234
+ readonly resultColumns?: ToolResultColumns;
187
235
  /**
188
236
  * WHO OWNS THIS TOOL (9.60.0) — the identity edge, stamped at the one
189
237
  * moment the code demonstrably knows both ends: registration. Before
@@ -344,6 +392,17 @@ export declare function assertResultCeiling(toolName: string, ceiling: ToolResul
344
392
  * assembling `Tool` objects by hand.
345
393
  */
346
394
  export declare function assertResultClass(toolName: string, resultClass: ToolResultClass | undefined): void;
395
+ /**
396
+ * The COLUMN-TYPE CONTRACT's rule and vocabulary, re-exported HERE.
397
+ *
398
+ * They are DEFINED in `src/integrity/column-types/types.ts`, because
399
+ * `src/integrity/` is a strict leaf that imports nothing outside itself and
400
+ * the check has to be able to read the words. They are re-exported here
401
+ * because `defineTool` and the MCP ingest both reach for their rules through
402
+ * `core/tools.ts` — one door for every declaration's rule, and no second copy
403
+ * of any of them anywhere.
404
+ */
405
+ export { assertResultColumns, COLUMN_TYPES, type ColumnDeclaration, type ColumnType, type ToolResultColumns, };
347
406
  /**
348
407
  * Refuse a `resultKind` that could never be redeemed, at definition time —
349
408
  * naming the tool and the fix (the `assertResultCeiling` / `assertResultClass`
@@ -676,6 +735,10 @@ export interface DefineToolOptions<TArgs, TResult> {
676
735
  * vocabulary (see {@link Tool.resultKind}). Omitted →
677
736
  * `tool-result/<name>`, byte-identical. */
678
737
  readonly resultKind?: string;
738
+ /** What this tool's ROWS contain — column name to type (see
739
+ * {@link Tool.resultColumns}). Needs the `checkColumnTypes` dial too.
740
+ * Omitted → nothing measured, byte-identical. */
741
+ readonly resultColumns?: ToolResultColumns;
679
742
  /** The stamped identity edge — see {@link Tool.owner}. */
680
743
  readonly owner?: ToolOwner;
681
744
  /** The declared argument grounds — see {@link Tool.argumentsFrom}. */
@@ -9,6 +9,7 @@
9
9
  import { isDevMode } from 'footprintjs';
10
10
  import { assertToolWants } from '../artifacts/wants.js';
11
11
  import { RESULT_CLASSES } from '../lib/semantics/types.js';
12
+ import { assertResultColumns, COLUMN_TYPES, } from '../integrity/column-types/types.js';
12
13
  import { assertAskComponent } from './askComponent.js';
13
14
  /**
14
15
  * Refuse a `resultCeiling` this library cannot honor, at definition time —
@@ -60,6 +61,17 @@ export function assertResultClass(toolName, resultClass) {
60
61
  `still apply to any result carrying the af_semantics marker).`);
61
62
  }
62
63
  }
64
+ /**
65
+ * The COLUMN-TYPE CONTRACT's rule and vocabulary, re-exported HERE.
66
+ *
67
+ * They are DEFINED in `src/integrity/column-types/types.ts`, because
68
+ * `src/integrity/` is a strict leaf that imports nothing outside itself and
69
+ * the check has to be able to read the words. They are re-exported here
70
+ * because `defineTool` and the MCP ingest both reach for their rules through
71
+ * `core/tools.ts` — one door for every declaration's rule, and no second copy
72
+ * of any of them anywhere.
73
+ */
74
+ export { assertResultColumns, COLUMN_TYPES, };
63
75
  /**
64
76
  * Refuse a `resultKind` that could never be redeemed, at definition time —
65
77
  * naming the tool and the fix (the `assertResultCeiling` / `assertResultClass`
@@ -270,6 +282,10 @@ export function defineTool(options) {
270
282
  // A placed-result kind nothing could want fails HERE too — not at the first
271
283
  // oversized result of the first run with placement configured.
272
284
  assertResultKind(options.name, options.resultKind);
285
+ // A column type this library has no rule for fails HERE too — not at the
286
+ // first rowset of the first armed run, where the symptom would be a check
287
+ // that quietly judges nothing.
288
+ assertResultColumns(options.name, options.resultColumns);
273
289
  // A decision component for a gate that never fires is configuration that
274
290
  // lies — configured-and-inert looks exactly like configured-and-working
275
291
  // (the `.checkIn({ scorer })`-with-minimal-evidence precedent). And a
@@ -319,6 +335,7 @@ export function defineTool(options) {
319
335
  ...(options.resultCeiling !== undefined && { resultCeiling: options.resultCeiling }),
320
336
  ...(options.resultClass !== undefined && { resultClass: options.resultClass }),
321
337
  ...(options.resultKind !== undefined && { resultKind: options.resultKind }),
338
+ ...(options.resultColumns !== undefined && { resultColumns: options.resultColumns }),
322
339
  ...(options.owner !== undefined && { owner: options.owner }),
323
340
  ...(options.argumentsFrom !== undefined && { argumentsFrom: options.argumentsFrom }),
324
341
  ...(options.composedOf !== undefined && { composedOf: options.composedOf }),
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/core/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/core/tools.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,9 @@ export type { ReadSummaryMarker, ReadTrackingMode } from 'footprintjs';
42
42
  export type { WriteProvenanceMode } from './core/agent/types.js';
43
43
  export type { ExternalGroundsProvider } from './core/agent/types.js';
44
44
  export type { ExternalGround, ExternalGrounding } from './integrity/unsupported-argument/check.js';
45
+ export { EMPTY_LOOKUP_CEILING, type LookupResultReading } from './integrity/empty-lookup/check.js';
46
+ export { COLUMN_TYPE_CEILING, readRowset, type ColumnCheckMode, type ColumnViolation, type RowsetReading, } from './integrity/column-types/check.js';
47
+ export { COLUMN_TYPES, assertResultColumns, type ColumnDeclaration, type ColumnType, type ToolResultColumns, } from './integrity/column-types/types.js';
45
48
  export { OutputSchemaError, applyOutputSchema, type OutputSchemaParser, type OutputSchemaOptions, type OutputSchemaStrategy, } from './core/outputSchema.js';
46
49
  export { InvalidRunInputError } from './core/runInput.js';
47
50
  export { SCHEMA_CHECK_FRAME_PREFIX, SCHEMA_TOOL_NAME, isSchemaCheckMessage, type OutputAttempt, } from './core/agent/outputEnforcement.js';
package/dist/esm/index.js CHANGED
@@ -153,6 +153,24 @@ export { CompactionUnmeasurableError, COMPACTED_FRAME_PREFIX, DROP_NOTICE_PREFIX
153
153
  // `role: 'tool'` message, so the shape AND the guard are public; the measuring
154
154
  // helper stays internal to dispatch.
155
155
  export { isTruncatedToolResult } from './core/agent/toolResultCap.js';
156
+ // The write-seam advisory (9.77.0) — `AgentOptions.noticeEmptyLookups`. The
157
+ // CEILING is exported as a string because it is quoted verbatim into every
158
+ // finding this check files: a consumer rendering findings can recognize the
159
+ // bound instead of re-wording it, and the docs, the code and the tests all
160
+ // read one owner. `LookupResultReading` is what the library could see of a
161
+ // result — the vocabulary behind a `not-applicable` row.
162
+ export { EMPTY_LOOKUP_CEILING } from './integrity/empty-lookup/check.js';
163
+ // The COLUMN-TYPE CONTRACT (9.78.0) — `Tool.resultColumns` +
164
+ // `AgentOptions.checkColumnTypes`. The CEILING is exported for the same
165
+ // reason `EMPTY_LOOKUP_CEILING` is: it is quoted verbatim into every finding,
166
+ // so a consumer rendering findings recognizes the bound instead of re-wording
167
+ // it, and the docs, the code and the tests read one owner. `RowsetReading` is
168
+ // what the library could see of a result — the vocabulary behind a
169
+ // `not-applicable` row.
170
+ export { COLUMN_TYPE_CEILING, readRowset, } from './integrity/column-types/check.js';
171
+ // The declaration's own vocabulary, so an app assembling `Tool` objects by
172
+ // hand (or typing a config) can name the words the library judges by.
173
+ export { COLUMN_TYPES, assertResultColumns, } from './integrity/column-types/types.js';
156
174
  export { OutputSchemaError, applyOutputSchema, } from './core/outputSchema.js';
157
175
  // 8.18.0 — the input boundary every runner's `run()` goes through. A bare
158
176
  // string IS the message (`run('go')` ≡ `run({ message: 'go' })`); anything
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * argumentLeaves — what "a string argument" MEANS, in one place.
3
+ *
4
+ * Pattern: a pure generator leaf, zero imports.
5
+ * Role: two checks now read the arguments of a tool call — the choice
6
+ * seam's `unsupported-argument` (did the value come from what the run
7
+ * served?) and the write seam's `empty-lookup` (the run produced this
8
+ * value, and the lookup for it came back empty). They must agree,
9
+ * exactly, about which leaves of an arguments object are candidates
10
+ * and what their dot-paths are: the second check's whole job is to
11
+ * notice something about a value the first one already excused, and
12
+ * two spellings of "every string leaf" would eventually disagree
13
+ * about which value that was.
14
+ *
15
+ * The dot-path is the finding's `predicate` on both sides (`machine`,
16
+ * `filter.hosts.0`), so it is identity-bearing and not a convenience.
17
+ */
18
+ /** Every string leaf of an arguments object, with its dot-path. */
19
+ export declare function stringLeaves(node: unknown, path: string): Generator<{
20
+ path: string;
21
+ value: string;
22
+ }>;
23
+ /**
24
+ * Below this, substring matching says nothing. Shared for the same reason the
25
+ * walk is: 'up' and 'a1' land inside unrelated words in any corpus, and a
26
+ * fence that moved on one check and not the other would leave a value one
27
+ * check judges and the other silently skips.
28
+ */
29
+ export declare const MIN_CHECKED_LENGTH = 4;
30
+ /** Longest a single value is quoted at inside a finding's message. */
31
+ export declare const MAX_QUOTED_CHARS = 80;
32
+ /** One value, clipped to quoting length. */
33
+ export declare function clipValue(value: string): string;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * argumentLeaves — what "a string argument" MEANS, in one place.
3
+ *
4
+ * Pattern: a pure generator leaf, zero imports.
5
+ * Role: two checks now read the arguments of a tool call — the choice
6
+ * seam's `unsupported-argument` (did the value come from what the run
7
+ * served?) and the write seam's `empty-lookup` (the run produced this
8
+ * value, and the lookup for it came back empty). They must agree,
9
+ * exactly, about which leaves of an arguments object are candidates
10
+ * and what their dot-paths are: the second check's whole job is to
11
+ * notice something about a value the first one already excused, and
12
+ * two spellings of "every string leaf" would eventually disagree
13
+ * about which value that was.
14
+ *
15
+ * The dot-path is the finding's `predicate` on both sides (`machine`,
16
+ * `filter.hosts.0`), so it is identity-bearing and not a convenience.
17
+ */
18
+ /** Every string leaf of an arguments object, with its dot-path. */
19
+ export function* stringLeaves(node, path) {
20
+ if (typeof node === 'string') {
21
+ yield { path, value: node };
22
+ return;
23
+ }
24
+ if (Array.isArray(node)) {
25
+ for (let i = 0; i < node.length; i++) {
26
+ yield* stringLeaves(node[i], path === '' ? String(i) : `${path}.${String(i)}`);
27
+ }
28
+ return;
29
+ }
30
+ if (node !== null && typeof node === 'object') {
31
+ for (const [key, value] of Object.entries(node)) {
32
+ yield* stringLeaves(value, path === '' ? key : `${path}.${key}`);
33
+ }
34
+ }
35
+ }
36
+ /**
37
+ * Below this, substring matching says nothing. Shared for the same reason the
38
+ * walk is: 'up' and 'a1' land inside unrelated words in any corpus, and a
39
+ * fence that moved on one check and not the other would leave a value one
40
+ * check judges and the other silently skips.
41
+ */
42
+ export const MIN_CHECKED_LENGTH = 4;
43
+ /** Longest a single value is quoted at inside a finding's message. */
44
+ export const MAX_QUOTED_CHARS = 80;
45
+ /** One value, clipped to quoting length. */
46
+ export function clipValue(value) {
47
+ return value.length <= MAX_QUOTED_CHARS ? value : `${value.slice(0, MAX_QUOTED_CHARS - 1)}…`;
48
+ }
49
+ //# sourceMappingURL=argumentLeaves.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argumentLeaves.js","sourceRoot":"","sources":["../../../src/integrity/argumentLeaves.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,mEAAmE;AACnE,MAAM,SAAS,CAAC,CAAC,YAAY,CAC3B,IAAa,EACb,IAAY;IAEZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,EAAE,CAAC;YAC3E,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,4CAA4C;AAC5C,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC;AAC/F,CAAC"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * column-types — the tool declared what its rows contain, and the rows say
3
+ * otherwise. Filed at the WRITE seam, at the moment the tool answers.
4
+ *
5
+ * Pattern: pure function over (one declaration, one finished rowset); the
6
+ * SHAPE check, one storey below `empty-lookup` — that one asks
7
+ * whether the answer had any rows, this one asks what is in them.
8
+ * Role: the decidable fragment of "is this rowset the rowset it claims to
9
+ * be?".
10
+ *
11
+ * ── THE MEASURED FAILURES. Three, and they are one shape ────────────────
12
+ *
13
+ * 1. A mapping report wrote `str(m.get("logical_unit_number") or "")`. LUN 0
14
+ * is falsy, so on 2,094 mappings LUN 0 was stored as an EMPTY STRING —
15
+ * and a host group missing the LUN an initiator probes first became
16
+ * indistinguishable from one that had it. The column was numeric; the
17
+ * value was `''`; nothing anywhere disagreed.
18
+ * 2. A capacity view rendered `round(mib / 1024, 1)`, so an 8 MiB disk came
19
+ * out as `0.0 GB` — which reads as NO DISK, i.e. a provisioning failure,
20
+ * during a live desktop-fleet incident.
21
+ * 3. Earlier in the same application, a whole family of tools returned their
22
+ * numbers as quoted strings (`"1240"`). Every chart silently went blank,
23
+ * because nothing downstream could tell a measure from a label.
24
+ *
25
+ * All three are "a number became something else, and nothing noticed at the
26
+ * seam". The library already lets a tool declare what its result IS
27
+ * (`resultKind`, 9.70.0). It did not let a tool declare what its result
28
+ * CONTAINS, so there was nothing for a rowset to be wrong against.
29
+ *
30
+ * ── THE CEILING, and case 2 is the whole argument for stating it ────────
31
+ * This judges TYPE, never MEANING. It can see that a column declared
32
+ * `number` holds a string. It can NEVER see that the string should have been
33
+ * `0`, or that `0.0` should have been `0.0078`. Case 2 above passes this
34
+ * check cleanly — `0.0` is a perfectly good number — and the check says so
35
+ * out loud rather than letting a green row imply otherwise. The ceiling ships
36
+ * as {@link COLUMN_TYPE_CEILING} and is quoted verbatim into every finding,
37
+ * the `EMPTY_LOOKUP_CEILING` law: one owner for the bound, so it cannot drift
38
+ * out of a message and leave a reader believing the library knows more than
39
+ * it does.
40
+ *
41
+ * ── TWO FINDINGS, because the field bug turned on the difference ────────
42
+ * • `column-type-mismatch` — the column is THERE and holds the wrong thing.
43
+ * Cases 1 and 3.
44
+ * • `missing-column` — the column the author declared is in NO row of the
45
+ * result. Nothing to type-check; the promise was broken one level up.
46
+ * Collapsing them would recreate the exact ambiguity the LUN report died of:
47
+ * "the value is not what it should be" and "the value is not there" send a
48
+ * person to two different files, and a checker that says only "something is
49
+ * off with logical_unit_number" has helped with neither.
50
+ *
51
+ * ── DECLARED, NEVER INFERRED ────────────────────────────────────────────
52
+ * A tool is this check's subject only because its author wrote
53
+ * `resultColumns`. Nothing here sniffs a type off the data — sniffing is
54
+ * precisely what the consumers do today, and precisely what produced the
55
+ * failures above: one stray `''` demotes a numeric column to text, and the
56
+ * demotion is silent.
57
+ *
58
+ * ── WHAT IS NOT JUDGED ──────────────────────────────────────────────────
59
+ * See {@link readRowset}. A result is read only when it is an array of plain
60
+ * objects with at least one row. Everything else — prose, a `null`, a bespoke
61
+ * `{ rows: [...] }` wrapper, a claim ticket, AND the zero-row result — is
62
+ * `not-applicable`, filed as a ROW. The zero-row case belongs to the
63
+ * neighbour (`empty-lookup`) and is deliberately not stolen: an empty result
64
+ * has no columns to be wrong about, and filing `missing-column` for every
65
+ * declared column of an empty answer would turn one honest emptiness into a
66
+ * pile of false accusations.
67
+ */
68
+ import type { Disposition } from '../disposition/types.js';
69
+ import type { ContextError } from '../finding/types.js';
70
+ import { type ColumnType, type ToolResultColumns } from './types.js';
71
+ /**
72
+ * THE CEILING, as one string with one owner.
73
+ *
74
+ * Quoted verbatim into every finding's message, into this folder's README and
75
+ * into the docs page, so the bound cannot drift out of one of them.
76
+ */
77
+ export declare const COLUMN_TYPE_CEILING: string;
78
+ /** How the boundary was told to act on what this finds. */
79
+ export type ColumnCheckMode = 'warn' | 'enforce';
80
+ /**
81
+ * What the library could read about a finished result: the rows, or nothing.
82
+ *
83
+ * Deliberately thin. The check needs the rows and nothing else, and a reading
84
+ * that carried a verdict would be this file judging in two places.
85
+ */
86
+ export interface RowsetReading {
87
+ readonly rows: readonly Readonly<Record<string, unknown>>[];
88
+ }
89
+ /**
90
+ * READ a finished result as a rowset, or decline to.
91
+ *
92
+ * The one readable shape, and why only this one: an ARRAY OF PLAIN OBJECTS
93
+ * with at least one row. That is what a rowset is on this wire, it is what
94
+ * every consumer named in the docs page already expects, and it is the same
95
+ * `Array.isArray` law the neighbouring check reads by — the two must never
96
+ * disagree about what a rowset is.
97
+ *
98
+ * `undefined` (⇒ `not-applicable`, a ROW) for everything else:
99
+ * • a non-array — prose, a `null`, a `{ rows: [...] }` wrapper, a ticket;
100
+ * • an array holding anything that is not a plain object — a list of
101
+ * strings has no columns, and inventing some is how a checker starts
102
+ * lying;
103
+ * • an array of ZERO rows — an empty answer has no columns to be wrong
104
+ * about, and it is the neighbour's subject, not this one's.
105
+ */
106
+ export declare function readRowset(value: unknown): RowsetReading | undefined;
107
+ /** One finished call to a tool whose author declared its result's columns. */
108
+ export interface ColumnTypesCall {
109
+ readonly toolName: string;
110
+ /** The provider's id for this call — what the witness points a reader at. */
111
+ readonly toolCallId: string;
112
+ /** `Tool.resultColumns`, exactly as the author wrote it. */
113
+ readonly columns: ToolResultColumns;
114
+ /** What the library could read of the result — `undefined` = not a rowset. */
115
+ readonly reading: RowsetReading | undefined;
116
+ /** What the boundary will do with a finding — carried so the message can
117
+ * say what actually happened rather than guess. */
118
+ readonly mode: ColumnCheckMode;
119
+ }
120
+ /** One declared column the rows disagreed with. */
121
+ export interface ColumnViolation {
122
+ readonly column: string;
123
+ readonly declared: ColumnType;
124
+ /** How many rows hold something that is not the declared type. */
125
+ readonly rows: number;
126
+ /** Total rows read, so a reader can see 3-of-4 rather than a bare 3. */
127
+ readonly ofRows: number;
128
+ /** The first offending value, rendered and clipped — what a person recognizes. */
129
+ readonly sample: string;
130
+ /** What that first offending value actually is (`string`, `null`, `missing`, …). */
131
+ readonly got: string;
132
+ }
133
+ /** One encounter's outcome: the findings, the ledger row, and — under
134
+ * `enforce` — the sentence that replaces the payload. */
135
+ export interface ColumnTypesEncounter {
136
+ readonly findings: readonly ContextError[];
137
+ /** Computed HERE, beside the rules that decide it, so "the library refused
138
+ * to judge this shape" is provable without a live agent. */
139
+ readonly disposition: Disposition;
140
+ /**
141
+ * The teaching refusal, present ONLY under `mode: 'enforce'` with at least
142
+ * one finding. The `applyResultCeiling` idiom, for the same reason: the
143
+ * model reads a sentence that says what was wrong and how to fix it, never
144
+ * a stack trace and never a truncated result that reads as complete.
145
+ */
146
+ readonly refusal?: string;
147
+ }
148
+ /**
149
+ * Judge one finished call to a tool that declared its result's columns.
150
+ *
151
+ * @param call the call, the declaration, and what the library could read of
152
+ * the result. The caller has already established the tool declared
153
+ * `resultColumns` and that the dial is on; nothing here re-decides arming.
154
+ * @param epoch the run iteration, stamped on every witness.
155
+ */
156
+ export declare function columnTypesOf(call: ColumnTypesCall, epoch: number): ColumnTypesEncounter;