agentfootprint 10.6.1 → 10.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CAPABILITIES.md +2 -0
- package/dist/artifacts/detailError.js +27 -0
- package/dist/artifacts/detailError.js.map +1 -0
- package/dist/artifacts/detailRequest.js +63 -0
- package/dist/artifacts/detailRequest.js.map +1 -0
- package/dist/artifacts/detailTypes.js +3 -0
- package/dist/artifacts/detailTypes.js.map +1 -0
- package/dist/artifacts/detailView.js +98 -0
- package/dist/artifacts/detailView.js.map +1 -0
- package/dist/debug.js.map +1 -1
- package/dist/esm/artifacts/detailError.d.ts +9 -0
- package/dist/esm/artifacts/detailError.js +21 -0
- package/dist/esm/artifacts/detailError.js.map +1 -0
- package/dist/esm/artifacts/detailRequest.d.ts +15 -0
- package/dist/esm/artifacts/detailRequest.js +58 -0
- package/dist/esm/artifacts/detailRequest.js.map +1 -0
- package/dist/esm/artifacts/detailTypes.d.ts +49 -0
- package/dist/esm/artifacts/detailTypes.js +2 -0
- package/dist/esm/artifacts/detailTypes.js.map +1 -0
- package/dist/esm/artifacts/detailView.d.ts +3 -0
- package/dist/esm/artifacts/detailView.js +94 -0
- package/dist/esm/artifacts/detailView.js.map +1 -0
- package/dist/esm/debug.d.ts +1 -1
- package/dist/esm/debug.js.map +1 -1
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/traceToolNames.d.ts +1 -1
- package/dist/esm/lib/traceToolNames.js +3 -0
- package/dist/esm/lib/traceToolNames.js.map +1 -1
- package/dist/esm/tools/artifactDetailTool.d.ts +26 -0
- package/dist/esm/tools/artifactDetailTool.js +91 -0
- package/dist/esm/tools/artifactDetailTool.js.map +1 -0
- package/dist/esm/trace-toolpack/causeLimits.d.ts +28 -0
- package/dist/esm/trace-toolpack/causeLimits.js +70 -0
- package/dist/esm/trace-toolpack/causeLimits.js.map +1 -0
- package/dist/esm/trace-toolpack/causeLoad.d.ts +6 -0
- package/dist/esm/trace-toolpack/causeLoad.js +23 -0
- package/dist/esm/trace-toolpack/causeLoad.js.map +1 -0
- package/dist/esm/trace-toolpack/causeReader.d.ts +6 -0
- package/dist/esm/trace-toolpack/causeReader.js +55 -0
- package/dist/esm/trace-toolpack/causeReader.js.map +1 -0
- package/dist/esm/trace-toolpack/causeResponse.d.ts +6 -0
- package/dist/esm/trace-toolpack/causeResponse.js +25 -0
- package/dist/esm/trace-toolpack/causeResponse.js.map +1 -0
- package/dist/esm/trace-toolpack/causeSnapshot.d.ts +5 -0
- package/dist/esm/trace-toolpack/causeSnapshot.js +55 -0
- package/dist/esm/trace-toolpack/causeSnapshot.js.map +1 -0
- package/dist/esm/trace-toolpack/causeTools.d.ts +6 -0
- package/dist/esm/trace-toolpack/causeTools.js +69 -0
- package/dist/esm/trace-toolpack/causeTools.js.map +1 -0
- package/dist/esm/trace-toolpack/causeTypes.d.ts +23 -0
- package/dist/esm/trace-toolpack/causeTypes.js +2 -0
- package/dist/esm/trace-toolpack/causeTypes.js.map +1 -0
- package/dist/esm/trace-toolpack/debugPrompt.d.ts +5 -1
- package/dist/esm/trace-toolpack/debugPrompt.js +6 -1
- package/dist/esm/trace-toolpack/debugPrompt.js.map +1 -1
- package/dist/esm/trace-toolpack/index.d.ts +1 -0
- package/dist/esm/trace-toolpack/index.js.map +1 -1
- package/dist/esm/trace-toolpack/innerDescent.d.ts +5 -3
- package/dist/esm/trace-toolpack/innerDescent.js +10 -8
- package/dist/esm/trace-toolpack/innerDescent.js.map +1 -1
- package/dist/esm/trace-toolpack/lazyToolpack.js +7 -3
- package/dist/esm/trace-toolpack/lazyToolpack.js.map +1 -1
- package/dist/esm/trace-toolpack/selfExplain.js +6 -1
- package/dist/esm/trace-toolpack/selfExplain.js.map +1 -1
- package/dist/esm/trace-toolpack/subflowRecords.js +22 -0
- package/dist/esm/trace-toolpack/subflowRecords.js.map +1 -1
- package/dist/esm/trace-toolpack/traceDebugAgent.d.ts +2 -0
- package/dist/esm/trace-toolpack/traceDebugAgent.js +9 -2
- package/dist/esm/trace-toolpack/traceDebugAgent.js.map +1 -1
- package/dist/esm/trace-toolpack/traceToolpack.d.ts +2 -2
- package/dist/esm/trace-toolpack/traceToolpack.js +28 -8
- package/dist/esm/trace-toolpack/traceToolpack.js.map +1 -1
- package/dist/esm/trace-toolpack/types.d.ts +6 -0
- package/dist/esm/trace-toolpack/types.js.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/traceToolNames.js +3 -0
- package/dist/lib/traceToolNames.js.map +1 -1
- package/dist/tools/artifactDetailTool.js +95 -0
- package/dist/tools/artifactDetailTool.js.map +1 -0
- package/dist/trace-toolpack/causeLimits.js +74 -0
- package/dist/trace-toolpack/causeLimits.js.map +1 -0
- package/dist/trace-toolpack/causeLoad.js +50 -0
- package/dist/trace-toolpack/causeLoad.js.map +1 -0
- package/dist/trace-toolpack/causeReader.js +59 -0
- package/dist/trace-toolpack/causeReader.js.map +1 -0
- package/dist/trace-toolpack/causeResponse.js +30 -0
- package/dist/trace-toolpack/causeResponse.js.map +1 -0
- package/dist/trace-toolpack/causeSnapshot.js +59 -0
- package/dist/trace-toolpack/causeSnapshot.js.map +1 -0
- package/dist/trace-toolpack/causeTools.js +73 -0
- package/dist/trace-toolpack/causeTools.js.map +1 -0
- package/dist/trace-toolpack/causeTypes.js +3 -0
- package/dist/trace-toolpack/causeTypes.js.map +1 -0
- package/dist/trace-toolpack/debugPrompt.js +7 -2
- package/dist/trace-toolpack/debugPrompt.js.map +1 -1
- package/dist/trace-toolpack/index.js.map +1 -1
- package/dist/trace-toolpack/innerDescent.js +10 -8
- package/dist/trace-toolpack/innerDescent.js.map +1 -1
- package/dist/trace-toolpack/lazyToolpack.js +7 -3
- package/dist/trace-toolpack/lazyToolpack.js.map +1 -1
- package/dist/trace-toolpack/selfExplain.js +6 -1
- package/dist/trace-toolpack/selfExplain.js.map +1 -1
- package/dist/trace-toolpack/subflowRecords.js +22 -0
- package/dist/trace-toolpack/subflowRecords.js.map +1 -1
- package/dist/trace-toolpack/traceDebugAgent.js +8 -1
- package/dist/trace-toolpack/traceDebugAgent.js.map +1 -1
- package/dist/trace-toolpack/traceToolpack.js +28 -8
- package/dist/trace-toolpack/traceToolpack.js.map +1 -1
- package/dist/trace-toolpack/types.js.map +1 -1
- package/dist/types/artifacts/detailError.d.ts +10 -0
- package/dist/types/artifacts/detailError.d.ts.map +1 -0
- package/dist/types/artifacts/detailRequest.d.ts +16 -0
- package/dist/types/artifacts/detailRequest.d.ts.map +1 -0
- package/dist/types/artifacts/detailTypes.d.ts +50 -0
- package/dist/types/artifacts/detailTypes.d.ts.map +1 -0
- package/dist/types/artifacts/detailView.d.ts +4 -0
- package/dist/types/artifacts/detailView.d.ts.map +1 -0
- package/dist/types/debug.d.ts +1 -1
- package/dist/types/debug.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/traceToolNames.d.ts +1 -1
- package/dist/types/lib/traceToolNames.d.ts.map +1 -1
- package/dist/types/tools/artifactDetailTool.d.ts +27 -0
- package/dist/types/tools/artifactDetailTool.d.ts.map +1 -0
- package/dist/types/trace-toolpack/causeLimits.d.ts +29 -0
- package/dist/types/trace-toolpack/causeLimits.d.ts.map +1 -0
- package/dist/types/trace-toolpack/causeLoad.d.ts +7 -0
- package/dist/types/trace-toolpack/causeLoad.d.ts.map +1 -0
- package/dist/types/trace-toolpack/causeReader.d.ts +7 -0
- package/dist/types/trace-toolpack/causeReader.d.ts.map +1 -0
- package/dist/types/trace-toolpack/causeResponse.d.ts +7 -0
- package/dist/types/trace-toolpack/causeResponse.d.ts.map +1 -0
- package/dist/types/trace-toolpack/causeSnapshot.d.ts +6 -0
- package/dist/types/trace-toolpack/causeSnapshot.d.ts.map +1 -0
- package/dist/types/trace-toolpack/causeTools.d.ts +7 -0
- package/dist/types/trace-toolpack/causeTools.d.ts.map +1 -0
- package/dist/types/trace-toolpack/causeTypes.d.ts +24 -0
- package/dist/types/trace-toolpack/causeTypes.d.ts.map +1 -0
- package/dist/types/trace-toolpack/debugPrompt.d.ts +5 -1
- package/dist/types/trace-toolpack/debugPrompt.d.ts.map +1 -1
- package/dist/types/trace-toolpack/index.d.ts +1 -0
- package/dist/types/trace-toolpack/index.d.ts.map +1 -1
- package/dist/types/trace-toolpack/innerDescent.d.ts +5 -3
- package/dist/types/trace-toolpack/innerDescent.d.ts.map +1 -1
- package/dist/types/trace-toolpack/lazyToolpack.d.ts.map +1 -1
- package/dist/types/trace-toolpack/selfExplain.d.ts.map +1 -1
- package/dist/types/trace-toolpack/subflowRecords.d.ts.map +1 -1
- package/dist/types/trace-toolpack/traceDebugAgent.d.ts +2 -0
- package/dist/types/trace-toolpack/traceDebugAgent.d.ts.map +1 -1
- package/dist/types/trace-toolpack/traceToolpack.d.ts +2 -2
- package/dist/types/trace-toolpack/traceToolpack.d.ts.map +1 -1
- package/dist/types/trace-toolpack/types.d.ts +6 -0
- package/dist/types/trace-toolpack/types.d.ts.map +1 -1
- package/package.json +2 -2
package/CAPABILITIES.md
CHANGED
|
@@ -71,6 +71,7 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
|
|
|
71
71
|
| declaring an agent's whole setup as one named, versioned thing — a preset, a template, a blueprint, "the support agent we all use" | `defineAgentRecipe` + `AgentBuilder.recipe()` | `src/recipes/` | 9.48.0 |
|
|
72
72
|
| naming your own branches and nodes — which prefix is reserved, and telling framework plumbing from consumer structure in a trace | `RESERVED_SUBFLOW_PREFIX` + `isReservedSubflowSegment` | `src/lib/conventions.ts` | 9.49.0 |
|
|
73
73
|
| keeping a large tool result out of the model's context | `artifacts` (bare store, or `{ store, placement: { maxInlineChars }, recordings }` — `placement` omitted ⇒ never placed; `recordings: true` / `{ label }`, default off) + `wants` + `placement` | `src/artifacts/` | 9.21.0 |
|
|
74
|
+
| opening selected JSON from a host-admitted artifact without loading its whole payload into model context | `artifactDetailTool` + `ArtifactDetailError` — fresh host admission per call, small values, paginated child actions, whole-scalar omission and bounded context; no automatic store access, source read or claim authorization | `src/tools/artifactDetailTool.ts` | 10.7.0 |
|
|
74
75
|
| the ticket placement just minted being REFUSED by your own `wants` argument as a kind mismatch — because the mint says `tool-result/<toolName>` and your consumer says `dataset/rows` | `Tool.resultKind` + `placedResultKind(toolName, declared?)` (the mint speaks the consumer's vocabulary; the exact-match matcher is untouched) | `src/artifacts/placement.ts` | 9.70.0 |
|
|
75
76
|
| a viewer guessing which column of a dataset is time (epoch seconds under `ts`, wall-clock strings, a `bucket` column) and opening a series as a table | `timeAxis` on `PutArtifactInput` / `ArtifactMeta` (column · `'iso'`/`'epoch-s'`/`'epoch-ms'` · zone · interval · aggregate) + `readTimeAxis` + `describeTimeAxis` + `timeAxisIssues` (judged at mint, never repaired) | `src/time/axis.ts` | 9.128.0 |
|
|
76
77
|
| a chart or check comparing a dataset's time values as spellings — epoch seconds beside ISO strings, `+02:00` beside `Z`, a wall-clock string with no offset silently read as UTC, two `01:30` rows in the hour the clocks go back; a READ-SIDE view (the stored rows are never rewritten): UTC instants at one precision, sorted, each with its row; an offset-less value under a zone-less axis is counted (`status: 'naive-values'`) or refused (`naive: 'refuse'`), never read as UTC; a fall-back wall time placed by row order and noted, else counted `dstAmbiguous`; a skipped one `dstGap` (the axis is re-exported from `src/artifacts/`) | `normaliseInstants` + `NormalisedAxis` | `src/time/axis.ts` | 9.129.0 |
|
|
@@ -89,6 +90,7 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
|
|
|
89
90
|
| a skill wrongly activated by a keyword staying loaded for the whole turn — suspending/parking a map's prompt + tools when its contribution goes unused, WITHOUT touching its cursor, and re-engaging it on evidence | `.maps({ renewalGrace })` (default 3) + `MountedMap.nonParkable` + `advanceEngagement` + `agentfootprint.map.engaged/parked` + skip reason `'parked'` | `src/maps/` | 9.58.0 |
|
|
90
91
|
| a value that must say how it knows itself — an unknown count that can never render as zero | `Claim<T>` (`known`/`unknown`/`notApplicable`) | `src/lib/claim/claim.ts` | 9.58.0 |
|
|
91
92
|
| asking a debugging model "what did this run contradict itself about, and why?" — the Context Integrity findings, joined to the step that filed them | `find_context_errors` | `src/trace-toolpack/traceToolpack.ts` | 9.61.0 |
|
|
93
|
+
| reading abnormal nodes, recorded dependency roots and downstream impact with bounded public Foottrace queries, scoped proof IDs and explicit unknown coverage; optional host-authorized storage graph, including inner tool and subflow questions | `attention_list` / `root_cause` / `impact` + `TraceToolpackArtifacts.cause` + `TraceToolpackOptions.cause` | `src/trace-toolpack/causeTools.ts` | 10.7.0 |
|
|
92
94
|
| the model inventing an id or a reading that no tool ever returned — a deterministic fabrication detector on the final answer, with a posture for how hard it pushes back | `.namesAndNumbersFromEvidence()` + `posture` (`'assist'` record+flag, the default / `'guard'` one revision then ship flagged / `'rails'` refuse instead) + `shapes` + `exempt` + `minDigits` (default 4) + `nudge` (default off) | `src/core/agent/evidence/` | 9.35.0 |
|
|
93
95
|
| counting a HUMAN-VERIFIED value as ground for the choice-seam check — the person clicked a row, the app verified the cells against the artifact, and the id the model takes from that selection is not fabricated; the source label travels onto the record | `externalGrounds` + `ExternalGround` + `external_ground_used` | `src/integrity/unsupported-argument/check.ts` | 9.72.0 |
|
|
94
96
|
| a lookup tool that answers "nothing found" for EVERY id because a filter broke, and an agent reporting that absence as fact — the run itself produced the id, the lookup came back empty, and that PAIR is worth a look | `noticeEmptyLookups` + `readLookupResult` + `EMPTY_LOOKUP_CEILING` (dial default OFF and needs a tool declaring `argumentsFrom` too — two halves; kind `empty-lookup` at seam `write`, always `advisory: true`; empty = a zero-length ARRAY or an `absent()` envelope, every other shape files `not-applicable` and no finding; the ceiling is quoted verbatim into every message) | `src/integrity/empty-lookup/` | 9.77.0 |
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unavailableDetail = exports.invalidDetail = exports.ArtifactDetailError = void 0;
|
|
4
|
+
const messages = {
|
|
5
|
+
ERR_ARTIFACT_DETAIL_INVALID: 'Invalid artifact detail request.',
|
|
6
|
+
ERR_ARTIFACT_DETAIL_UNAVAILABLE: 'Artifact detail is unavailable.',
|
|
7
|
+
ERR_ARTIFACT_DETAIL_CANCELLED: 'Artifact detail request was cancelled.',
|
|
8
|
+
};
|
|
9
|
+
/** A bounded detail request was malformed, could not be admitted, or was cancelled. */
|
|
10
|
+
class ArtifactDetailError extends Error {
|
|
11
|
+
code;
|
|
12
|
+
constructor(code) {
|
|
13
|
+
super(messages[code]);
|
|
14
|
+
this.code = code;
|
|
15
|
+
this.name = 'ArtifactDetailError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ArtifactDetailError = ArtifactDetailError;
|
|
19
|
+
function invalidDetail() {
|
|
20
|
+
throw new ArtifactDetailError('ERR_ARTIFACT_DETAIL_INVALID');
|
|
21
|
+
}
|
|
22
|
+
exports.invalidDetail = invalidDetail;
|
|
23
|
+
function unavailableDetail() {
|
|
24
|
+
throw new ArtifactDetailError('ERR_ARTIFACT_DETAIL_UNAVAILABLE');
|
|
25
|
+
}
|
|
26
|
+
exports.unavailableDetail = unavailableDetail;
|
|
27
|
+
//# sourceMappingURL=detailError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailError.js","sourceRoot":"","sources":["../../src/artifacts/detailError.ts"],"names":[],"mappings":";;;AAMA,MAAM,QAAQ,GAAG;IACf,2BAA2B,EAAE,kCAAkC;IAC/D,+BAA+B,EAAE,iCAAiC;IAClE,6BAA6B,EAAE,wCAAwC;CAC/D,CAAC;AAEX,uFAAuF;AACvF,MAAa,mBAAoB,SAAQ,KAAK;IACvB;IAArB,YAAqB,IAA6B;QAChD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QADH,SAAI,GAAJ,IAAI,CAAyB;QAEhD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED,SAAgB,aAAa;IAC3B,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;AAC/D,CAAC;AAFD,sCAEC;AAED,SAAgB,iBAAiB;IAC/B,MAAM,IAAI,mBAAmB,CAAC,iCAAiC,CAAC,CAAC;AACnE,CAAC;AAFD,8CAEC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readDetailArgs = exports.detailTokens = exports.DETAIL_LIMITS = void 0;
|
|
4
|
+
const boundedJson_js_1 = require("../lib/boundedJson.js");
|
|
5
|
+
const naming_js_1 = require("./naming.js");
|
|
6
|
+
const detailError_js_1 = require("./detailError.js");
|
|
7
|
+
exports.DETAIL_LIMITS = Object.freeze({
|
|
8
|
+
inputBytes: 1024 * 1024,
|
|
9
|
+
contextBytes: 4096,
|
|
10
|
+
path: 2048,
|
|
11
|
+
depth: 16,
|
|
12
|
+
page: 20,
|
|
13
|
+
offset: 1_000_000,
|
|
14
|
+
valueBytes: 8192,
|
|
15
|
+
outputBytes: 12 * 1024,
|
|
16
|
+
reserveBytes: 512,
|
|
17
|
+
});
|
|
18
|
+
const forbidden = new Set(['__proto__', 'prototype', 'constructor']);
|
|
19
|
+
/** Strict pointer tokens, shared by request admission and child actions. */
|
|
20
|
+
function detailTokens(path) {
|
|
21
|
+
if (path === '')
|
|
22
|
+
return [];
|
|
23
|
+
if (!path.startsWith('/') || path.length > exports.DETAIL_LIMITS.path)
|
|
24
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
25
|
+
const parts = path.slice(1).split('/');
|
|
26
|
+
if (parts.length > exports.DETAIL_LIMITS.depth)
|
|
27
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
28
|
+
return parts.map((part) => {
|
|
29
|
+
// eslint-disable-next-line no-control-regex -- A pointer must not carry C0 or DEL controls.
|
|
30
|
+
if (/~(?![01])/.test(part) || /[\u0000-\u001f\u007f]/.test(part))
|
|
31
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
32
|
+
const key = part.replace(/~1/g, '/').replace(/~0/g, '~');
|
|
33
|
+
if (forbidden.has(key))
|
|
34
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
35
|
+
return key;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
exports.detailTokens = detailTokens;
|
|
39
|
+
function readDetailArgs(value) {
|
|
40
|
+
try {
|
|
41
|
+
const fields = (0, boundedJson_js_1.ownData)(value, ['ref', 'path', 'offset', 'limit']);
|
|
42
|
+
if (typeof fields.ref !== 'string' ||
|
|
43
|
+
!(0, naming_js_1.isArtifactRef)(fields.ref) ||
|
|
44
|
+
typeof fields.path !== 'string')
|
|
45
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
46
|
+
detailTokens(fields.path);
|
|
47
|
+
const offset = fields.offset === undefined ? 0 : fields.offset;
|
|
48
|
+
const limit = fields.limit === undefined ? exports.DETAIL_LIMITS.page : fields.limit;
|
|
49
|
+
if (!Number.isSafeInteger(offset) ||
|
|
50
|
+
Number(offset) < 0 ||
|
|
51
|
+
Number(offset) > exports.DETAIL_LIMITS.offset ||
|
|
52
|
+
!Number.isSafeInteger(limit) ||
|
|
53
|
+
Number(limit) < 1 ||
|
|
54
|
+
Number(limit) > exports.DETAIL_LIMITS.page)
|
|
55
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
56
|
+
return { ref: fields.ref, path: fields.path, offset: Number(offset), limit: Number(limit) };
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.readDetailArgs = readDetailArgs;
|
|
63
|
+
//# sourceMappingURL=detailRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailRequest.js","sourceRoot":"","sources":["../../src/artifacts/detailRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailTypes.js","sourceRoot":"","sources":["../../src/artifacts/detailTypes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.projectArtifactDetail = void 0;
|
|
4
|
+
const payload_js_1 = require("./payload.js");
|
|
5
|
+
const detailRequest_js_1 = require("./detailRequest.js");
|
|
6
|
+
const detailError_js_1 = require("./detailError.js");
|
|
7
|
+
const object = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
8
|
+
const container = (value) => object(value) || Array.isArray(value);
|
|
9
|
+
// The payload owner counts bare strings as text; a one-element JSON array also counts quotes.
|
|
10
|
+
const jsonBytes = (value) => (0, payload_js_1.measureArtifactBytes)([value]) - 2;
|
|
11
|
+
const kind = (value) => value === null
|
|
12
|
+
? 'null'
|
|
13
|
+
: Array.isArray(value)
|
|
14
|
+
? 'array'
|
|
15
|
+
: typeof value;
|
|
16
|
+
function select(root, path) {
|
|
17
|
+
let value = root;
|
|
18
|
+
for (const key of (0, detailRequest_js_1.detailTokens)(path)) {
|
|
19
|
+
if (Array.isArray(value) && !/^(0|[1-9]\d*)$/.test(key))
|
|
20
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
21
|
+
if (!container(value) || !Object.hasOwn(value, key))
|
|
22
|
+
return (0, detailError_js_1.unavailableDetail)();
|
|
23
|
+
value = Array.isArray(value) ? value[Number(key)] : value[key];
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
function childPath(parent, key) {
|
|
28
|
+
return `${parent}/${key.replace(/~/g, '~0').replace(/\//g, '~1')}`;
|
|
29
|
+
}
|
|
30
|
+
function bounded(value) {
|
|
31
|
+
if (jsonBytes(value) > detailRequest_js_1.DETAIL_LIMITS.outputBytes)
|
|
32
|
+
return (0, detailError_js_1.unavailableDetail)();
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
/** Navigate only detached ordinary JSON; this function reads no store and authorizes no claim. */
|
|
36
|
+
function projectArtifactDetail(root, args, tool, context) {
|
|
37
|
+
const value = select(root, args.path);
|
|
38
|
+
const base = {
|
|
39
|
+
ref: args.ref,
|
|
40
|
+
path: args.path,
|
|
41
|
+
kind: kind(value),
|
|
42
|
+
...(context === undefined ? {} : { context }),
|
|
43
|
+
};
|
|
44
|
+
const keys = container(value) ? Object.keys(value) : [];
|
|
45
|
+
const inline = { ...base, mode: 'value', value, complete: true };
|
|
46
|
+
if (args.offset === 0 &&
|
|
47
|
+
keys.length <= args.limit &&
|
|
48
|
+
jsonBytes(value) <= detailRequest_js_1.DETAIL_LIMITS.valueBytes &&
|
|
49
|
+
jsonBytes(inline) <= detailRequest_js_1.DETAIL_LIMITS.outputBytes)
|
|
50
|
+
return inline;
|
|
51
|
+
if (!container(value)) {
|
|
52
|
+
if (args.offset !== 0)
|
|
53
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
54
|
+
return bounded({
|
|
55
|
+
...base,
|
|
56
|
+
mode: 'scalar-omitted',
|
|
57
|
+
omitted: true,
|
|
58
|
+
scalarBytes: jsonBytes(value),
|
|
59
|
+
complete: false,
|
|
60
|
+
reason: 'Selected scalar exceeds the bounded view; no partial value was returned.',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (args.offset > keys.length)
|
|
64
|
+
return (0, detailError_js_1.invalidDetail)();
|
|
65
|
+
const children = [];
|
|
66
|
+
const response = () => ({
|
|
67
|
+
...base,
|
|
68
|
+
mode: 'children',
|
|
69
|
+
children,
|
|
70
|
+
offset: args.offset,
|
|
71
|
+
shown: children.length,
|
|
72
|
+
total: keys.length,
|
|
73
|
+
complete: args.offset + children.length === keys.length,
|
|
74
|
+
...(args.offset + children.length < keys.length
|
|
75
|
+
? { nextOffset: args.offset + children.length }
|
|
76
|
+
: {}),
|
|
77
|
+
});
|
|
78
|
+
for (const key of keys.slice(args.offset, args.offset + args.limit)) {
|
|
79
|
+
const path = childPath(args.path, key);
|
|
80
|
+
(0, detailRequest_js_1.detailTokens)(path);
|
|
81
|
+
const child = Array.isArray(value) ? value[Number(key)] : value[key];
|
|
82
|
+
children.push({
|
|
83
|
+
path,
|
|
84
|
+
type: kind(child),
|
|
85
|
+
...(container(child) ? { count: Object.keys(child).length } : {}),
|
|
86
|
+
action: { tool, args: { ref: args.ref, path } },
|
|
87
|
+
});
|
|
88
|
+
if (jsonBytes(response()) > detailRequest_js_1.DETAIL_LIMITS.outputBytes - detailRequest_js_1.DETAIL_LIMITS.reserveBytes) {
|
|
89
|
+
children.pop();
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!children.length && args.offset < keys.length)
|
|
94
|
+
return (0, detailError_js_1.unavailableDetail)();
|
|
95
|
+
return bounded(response());
|
|
96
|
+
}
|
|
97
|
+
exports.projectArtifactDetail = projectArtifactDetail;
|
|
98
|
+
//# sourceMappingURL=detailView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailView.js","sourceRoot":"","sources":["../../src/artifacts/detailView.ts"],"names":[],"mappings":"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"}
|
package/dist/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;AAEH,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,4BAA4B;AAC5B,sDA8DmC;AA7DjC,wGAAA,YAAY,OAAA;AACZ,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA;AACd,uGAAA,WAAW,OAAA;AACX,uHAAA,2BAA2B,OAAA;AAC3B,sHAAA,0BAA0B,OAAA;AAC1B,qHAAA,yBAAyB,OAAA;AACzB,oHAAA,wBAAwB,OAAA;AACxB,yHAAA,6BAA6B,OAAA;AAC7B,kHAAA,sBAAsB,OAAA;AACtB,0GAAA,cAAc,OAAA;AACd,0GAAA,cAAc,OAAA;AACd,iHAAA,qBAAqB,OAAA;AACrB,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AACb,kHAAA,sBAAsB,OAAA;AACtB,mHAAA,uBAAuB,OAAA;AACvB,0GAAA,cAAc,OAAA;AACd,8GAAA,kBAAkB,OAAA;AAClB,uGAAA,WAAW,OAAA;AACX,6GAAA,iBAAiB,OAAA;AACjB,yGAAA,aAAa,OAAA;AACb,qHAAA,yBAAyB,OAAA;AACzB,0GAAA,cAAc,OAAA;AACd,iHAAA,qBAAqB,OAAA;AACrB,uGAAA,WAAW,OAAA;AACX,qHAAA,yBAAyB,OAAA;AACzB,wGAAA,YAAY,OAAA;AACZ,+GAAA,mBAAmB,OAAA;AAkCrB,uEAAuE;AACvE,2EAA2E;AAC3E,mEAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Fixed refusal codes: no reference, callback failure, payload or signal reason is echoed. */
|
|
2
|
+
export type ArtifactDetailErrorCode = 'ERR_ARTIFACT_DETAIL_INVALID' | 'ERR_ARTIFACT_DETAIL_UNAVAILABLE' | 'ERR_ARTIFACT_DETAIL_CANCELLED';
|
|
3
|
+
/** A bounded detail request was malformed, could not be admitted, or was cancelled. */
|
|
4
|
+
export declare class ArtifactDetailError extends Error {
|
|
5
|
+
readonly code: ArtifactDetailErrorCode;
|
|
6
|
+
constructor(code: ArtifactDetailErrorCode);
|
|
7
|
+
}
|
|
8
|
+
export declare function invalidDetail(): never;
|
|
9
|
+
export declare function unavailableDetail(): never;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const messages = {
|
|
2
|
+
ERR_ARTIFACT_DETAIL_INVALID: 'Invalid artifact detail request.',
|
|
3
|
+
ERR_ARTIFACT_DETAIL_UNAVAILABLE: 'Artifact detail is unavailable.',
|
|
4
|
+
ERR_ARTIFACT_DETAIL_CANCELLED: 'Artifact detail request was cancelled.',
|
|
5
|
+
};
|
|
6
|
+
/** A bounded detail request was malformed, could not be admitted, or was cancelled. */
|
|
7
|
+
export class ArtifactDetailError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
constructor(code) {
|
|
10
|
+
super(messages[code]);
|
|
11
|
+
this.code = code;
|
|
12
|
+
this.name = 'ArtifactDetailError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function invalidDetail() {
|
|
16
|
+
throw new ArtifactDetailError('ERR_ARTIFACT_DETAIL_INVALID');
|
|
17
|
+
}
|
|
18
|
+
export function unavailableDetail() {
|
|
19
|
+
throw new ArtifactDetailError('ERR_ARTIFACT_DETAIL_UNAVAILABLE');
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=detailError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailError.js","sourceRoot":"","sources":["../../../src/artifacts/detailError.ts"],"names":[],"mappings":"AAMA,MAAM,QAAQ,GAAG;IACf,2BAA2B,EAAE,kCAAkC;IAC/D,+BAA+B,EAAE,iCAAiC;IAClE,6BAA6B,EAAE,wCAAwC;CAC/D,CAAC;AAEX,uFAAuF;AACvF,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACvB;IAArB,YAAqB,IAA6B;QAChD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QADH,SAAI,GAAJ,IAAI,CAAyB;QAEhD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,mBAAmB,CAAC,iCAAiC,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ArtifactDetailArgs } from './detailTypes.js';
|
|
2
|
+
export declare const DETAIL_LIMITS: Readonly<{
|
|
3
|
+
inputBytes: number;
|
|
4
|
+
contextBytes: 4096;
|
|
5
|
+
path: 2048;
|
|
6
|
+
depth: 16;
|
|
7
|
+
page: 20;
|
|
8
|
+
offset: 1000000;
|
|
9
|
+
valueBytes: 8192;
|
|
10
|
+
outputBytes: number;
|
|
11
|
+
reserveBytes: 512;
|
|
12
|
+
}>;
|
|
13
|
+
/** Strict pointer tokens, shared by request admission and child actions. */
|
|
14
|
+
export declare function detailTokens(path: string): string[];
|
|
15
|
+
export declare function readDetailArgs(value: unknown): Required<ArtifactDetailArgs>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ownData } from '../lib/boundedJson.js';
|
|
2
|
+
import { isArtifactRef } from './naming.js';
|
|
3
|
+
import { invalidDetail } from './detailError.js';
|
|
4
|
+
export const DETAIL_LIMITS = Object.freeze({
|
|
5
|
+
inputBytes: 1024 * 1024,
|
|
6
|
+
contextBytes: 4096,
|
|
7
|
+
path: 2048,
|
|
8
|
+
depth: 16,
|
|
9
|
+
page: 20,
|
|
10
|
+
offset: 1_000_000,
|
|
11
|
+
valueBytes: 8192,
|
|
12
|
+
outputBytes: 12 * 1024,
|
|
13
|
+
reserveBytes: 512,
|
|
14
|
+
});
|
|
15
|
+
const forbidden = new Set(['__proto__', 'prototype', 'constructor']);
|
|
16
|
+
/** Strict pointer tokens, shared by request admission and child actions. */
|
|
17
|
+
export function detailTokens(path) {
|
|
18
|
+
if (path === '')
|
|
19
|
+
return [];
|
|
20
|
+
if (!path.startsWith('/') || path.length > DETAIL_LIMITS.path)
|
|
21
|
+
return invalidDetail();
|
|
22
|
+
const parts = path.slice(1).split('/');
|
|
23
|
+
if (parts.length > DETAIL_LIMITS.depth)
|
|
24
|
+
return invalidDetail();
|
|
25
|
+
return parts.map((part) => {
|
|
26
|
+
// eslint-disable-next-line no-control-regex -- A pointer must not carry C0 or DEL controls.
|
|
27
|
+
if (/~(?![01])/.test(part) || /[\u0000-\u001f\u007f]/.test(part))
|
|
28
|
+
return invalidDetail();
|
|
29
|
+
const key = part.replace(/~1/g, '/').replace(/~0/g, '~');
|
|
30
|
+
if (forbidden.has(key))
|
|
31
|
+
return invalidDetail();
|
|
32
|
+
return key;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
export function readDetailArgs(value) {
|
|
36
|
+
try {
|
|
37
|
+
const fields = ownData(value, ['ref', 'path', 'offset', 'limit']);
|
|
38
|
+
if (typeof fields.ref !== 'string' ||
|
|
39
|
+
!isArtifactRef(fields.ref) ||
|
|
40
|
+
typeof fields.path !== 'string')
|
|
41
|
+
return invalidDetail();
|
|
42
|
+
detailTokens(fields.path);
|
|
43
|
+
const offset = fields.offset === undefined ? 0 : fields.offset;
|
|
44
|
+
const limit = fields.limit === undefined ? DETAIL_LIMITS.page : fields.limit;
|
|
45
|
+
if (!Number.isSafeInteger(offset) ||
|
|
46
|
+
Number(offset) < 0 ||
|
|
47
|
+
Number(offset) > DETAIL_LIMITS.offset ||
|
|
48
|
+
!Number.isSafeInteger(limit) ||
|
|
49
|
+
Number(limit) < 1 ||
|
|
50
|
+
Number(limit) > DETAIL_LIMITS.page)
|
|
51
|
+
return invalidDetail();
|
|
52
|
+
return { ref: fields.ref, path: fields.path, offset: Number(offset), limit: Number(limit) };
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return invalidDetail();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=detailRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailRequest.js","sourceRoot":"","sources":["../../../src/artifacts/detailRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,IAAI,GAAG,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,EAAE,GAAG,IAAI;IACtB,YAAY,EAAE,GAAG;CAClB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAErE,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,IAAI;QAAE,OAAO,aAAa,EAAE,CAAC;IACtF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK;QAAE,OAAO,aAAa,EAAE,CAAC;IAC/D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,4FAA4F;QAC5F,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,aAAa,EAAE,CAAC;QACzF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,aAAa,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,IACE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;YAC9B,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;YAC1B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAE/B,OAAO,aAAa,EAAE,CAAC;QACzB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7E,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM;YACrC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI;YAElC,OAAO,aAAa,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { ArtifactRef } from './types.js';
|
|
2
|
+
/** A reference and a bounded direct-child page, never a storage location. */
|
|
3
|
+
export interface ArtifactDetailArgs {
|
|
4
|
+
readonly ref: ArtifactRef;
|
|
5
|
+
/** JSON pointer; the empty string opens the admitted root. */
|
|
6
|
+
readonly path: string;
|
|
7
|
+
readonly offset?: number;
|
|
8
|
+
readonly limit?: number;
|
|
9
|
+
}
|
|
10
|
+
/** An action the same mounted detail tool can execute. */
|
|
11
|
+
export interface ArtifactDetailAction {
|
|
12
|
+
readonly tool: string;
|
|
13
|
+
readonly args: ArtifactDetailArgs;
|
|
14
|
+
}
|
|
15
|
+
/** One direct child; its value is available through its action, not implied by its name. */
|
|
16
|
+
export interface ArtifactDetailChild {
|
|
17
|
+
readonly path: string;
|
|
18
|
+
readonly type: 'null' | 'boolean' | 'number' | 'string' | 'array' | 'object';
|
|
19
|
+
readonly count?: number;
|
|
20
|
+
readonly action: ArtifactDetailAction;
|
|
21
|
+
}
|
|
22
|
+
interface DetailBase {
|
|
23
|
+
readonly ref: ArtifactRef;
|
|
24
|
+
readonly path: string;
|
|
25
|
+
readonly kind: ArtifactDetailChild['type'];
|
|
26
|
+
/** Host presentation data, isolated from navigation fields and counted in the response limit. */
|
|
27
|
+
readonly context?: Readonly<Record<string, unknown>>;
|
|
28
|
+
}
|
|
29
|
+
/** A whole small value, an exact child page, or an explicitly withheld scalar. */
|
|
30
|
+
export type ArtifactDetailResult = (DetailBase & {
|
|
31
|
+
readonly mode: 'value';
|
|
32
|
+
readonly value: unknown;
|
|
33
|
+
readonly complete: true;
|
|
34
|
+
}) | (DetailBase & {
|
|
35
|
+
readonly mode: 'children';
|
|
36
|
+
readonly children: readonly ArtifactDetailChild[];
|
|
37
|
+
readonly offset: number;
|
|
38
|
+
readonly shown: number;
|
|
39
|
+
readonly total: number;
|
|
40
|
+
readonly complete: boolean;
|
|
41
|
+
readonly nextOffset?: number;
|
|
42
|
+
}) | (DetailBase & {
|
|
43
|
+
readonly mode: 'scalar-omitted';
|
|
44
|
+
readonly omitted: true;
|
|
45
|
+
readonly scalarBytes: number;
|
|
46
|
+
readonly complete: false;
|
|
47
|
+
readonly reason: string;
|
|
48
|
+
});
|
|
49
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailTypes.js","sourceRoot":"","sources":["../../../src/artifacts/detailTypes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ArtifactDetailArgs, ArtifactDetailResult } from './detailTypes.js';
|
|
2
|
+
/** Navigate only detached ordinary JSON; this function reads no store and authorizes no claim. */
|
|
3
|
+
export declare function projectArtifactDetail(root: unknown, args: Required<ArtifactDetailArgs>, tool: string, context?: Readonly<Record<string, unknown>>): ArtifactDetailResult;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { measureArtifactBytes } from './payload.js';
|
|
2
|
+
import { DETAIL_LIMITS, detailTokens } from './detailRequest.js';
|
|
3
|
+
import { invalidDetail, unavailableDetail } from './detailError.js';
|
|
4
|
+
const object = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
5
|
+
const container = (value) => object(value) || Array.isArray(value);
|
|
6
|
+
// The payload owner counts bare strings as text; a one-element JSON array also counts quotes.
|
|
7
|
+
const jsonBytes = (value) => measureArtifactBytes([value]) - 2;
|
|
8
|
+
const kind = (value) => value === null
|
|
9
|
+
? 'null'
|
|
10
|
+
: Array.isArray(value)
|
|
11
|
+
? 'array'
|
|
12
|
+
: typeof value;
|
|
13
|
+
function select(root, path) {
|
|
14
|
+
let value = root;
|
|
15
|
+
for (const key of detailTokens(path)) {
|
|
16
|
+
if (Array.isArray(value) && !/^(0|[1-9]\d*)$/.test(key))
|
|
17
|
+
return invalidDetail();
|
|
18
|
+
if (!container(value) || !Object.hasOwn(value, key))
|
|
19
|
+
return unavailableDetail();
|
|
20
|
+
value = Array.isArray(value) ? value[Number(key)] : value[key];
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
function childPath(parent, key) {
|
|
25
|
+
return `${parent}/${key.replace(/~/g, '~0').replace(/\//g, '~1')}`;
|
|
26
|
+
}
|
|
27
|
+
function bounded(value) {
|
|
28
|
+
if (jsonBytes(value) > DETAIL_LIMITS.outputBytes)
|
|
29
|
+
return unavailableDetail();
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
/** Navigate only detached ordinary JSON; this function reads no store and authorizes no claim. */
|
|
33
|
+
export function projectArtifactDetail(root, args, tool, context) {
|
|
34
|
+
const value = select(root, args.path);
|
|
35
|
+
const base = {
|
|
36
|
+
ref: args.ref,
|
|
37
|
+
path: args.path,
|
|
38
|
+
kind: kind(value),
|
|
39
|
+
...(context === undefined ? {} : { context }),
|
|
40
|
+
};
|
|
41
|
+
const keys = container(value) ? Object.keys(value) : [];
|
|
42
|
+
const inline = { ...base, mode: 'value', value, complete: true };
|
|
43
|
+
if (args.offset === 0 &&
|
|
44
|
+
keys.length <= args.limit &&
|
|
45
|
+
jsonBytes(value) <= DETAIL_LIMITS.valueBytes &&
|
|
46
|
+
jsonBytes(inline) <= DETAIL_LIMITS.outputBytes)
|
|
47
|
+
return inline;
|
|
48
|
+
if (!container(value)) {
|
|
49
|
+
if (args.offset !== 0)
|
|
50
|
+
return invalidDetail();
|
|
51
|
+
return bounded({
|
|
52
|
+
...base,
|
|
53
|
+
mode: 'scalar-omitted',
|
|
54
|
+
omitted: true,
|
|
55
|
+
scalarBytes: jsonBytes(value),
|
|
56
|
+
complete: false,
|
|
57
|
+
reason: 'Selected scalar exceeds the bounded view; no partial value was returned.',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (args.offset > keys.length)
|
|
61
|
+
return invalidDetail();
|
|
62
|
+
const children = [];
|
|
63
|
+
const response = () => ({
|
|
64
|
+
...base,
|
|
65
|
+
mode: 'children',
|
|
66
|
+
children,
|
|
67
|
+
offset: args.offset,
|
|
68
|
+
shown: children.length,
|
|
69
|
+
total: keys.length,
|
|
70
|
+
complete: args.offset + children.length === keys.length,
|
|
71
|
+
...(args.offset + children.length < keys.length
|
|
72
|
+
? { nextOffset: args.offset + children.length }
|
|
73
|
+
: {}),
|
|
74
|
+
});
|
|
75
|
+
for (const key of keys.slice(args.offset, args.offset + args.limit)) {
|
|
76
|
+
const path = childPath(args.path, key);
|
|
77
|
+
detailTokens(path);
|
|
78
|
+
const child = Array.isArray(value) ? value[Number(key)] : value[key];
|
|
79
|
+
children.push({
|
|
80
|
+
path,
|
|
81
|
+
type: kind(child),
|
|
82
|
+
...(container(child) ? { count: Object.keys(child).length } : {}),
|
|
83
|
+
action: { tool, args: { ref: args.ref, path } },
|
|
84
|
+
});
|
|
85
|
+
if (jsonBytes(response()) > DETAIL_LIMITS.outputBytes - DETAIL_LIMITS.reserveBytes) {
|
|
86
|
+
children.pop();
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (!children.length && args.offset < keys.length)
|
|
91
|
+
return unavailableDetail();
|
|
92
|
+
return bounded(response());
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=detailView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailView.js","sourceRoot":"","sources":["../../../src/artifacts/detailView.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/debug.d.ts
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* symbols, one door. Import from the door.
|
|
23
23
|
*/
|
|
24
24
|
export { adaptWeights, averageRelevancy, compositeScore, contentHash, DEFAULT_CLEAR_WINNER_MARGIN, DEFAULT_CLEAR_WINNER_RATIO, DEFAULT_INFLUENCE_WEIGHTS, DEFAULT_MARGIN_THRESHOLD, DEFAULT_PERSISTENCE_THRESHOLD, DEFAULT_SHORTLIST_BAND, EmbeddingCache, embeddingCache, finalAnswerSimilarity, attributeChoice, explainChoice, lexicalOverlapStrategy, listInfluenceStrategies, marginStrategy, pairwiseSimilarity, persistence, rankingConfidence, ratioStrategy, scoreContrastiveInfluence, scoreInfluence, scoreLexicalInfluence, scoreMargin, semanticAlignmentStrategy, snippetUnits, structuralProximity, type AttributeChoiceArgs, type AttributionUnit, type CandidateScore, type ChannelVerdict, type ChoiceAttribution, type ChoiceExplanation, type ConfidenceStrategy, type Embedder, type EmbeddingCacheOptions, type EmbeddingCacheStats, type EvidenceInput, type ExplainChoiceArgs, type InfluenceScore, type InfluenceScorer, type InfluenceStrategy, type InfluenceStrategyRequirement, type InfluenceWeights, type MarginCandidate, type MarginResult, type PairwiseSimilarityArgs, type PairwiseSimilarityResult, type RankingConfidence, type RankingConfidenceOptions, type ScoreContrastiveInfluenceArgs, type ScoreInfluenceArgs, type ScoreLexicalInfluenceArgs, type ScoreMarginArgs, type SignalScores, type SimilarityItem, type SimilarityPair, type SnippetUnitsOptions, type UnitScore, } from './influence-core/index.js';
|
|
25
|
-
export { callTraceTool, lazyTraceToolpack, NO_COMPLETED_RUN_MESSAGE, TOOLPACK_HARD_CAPS, TRACE_TOOL_NAMES, traceToolpack, type TraceToolpackArtifacts, type TraceToolpackOptions, } from './trace-toolpack/index.js';
|
|
25
|
+
export { callTraceTool, lazyTraceToolpack, NO_COMPLETED_RUN_MESSAGE, TOOLPACK_HARD_CAPS, TRACE_TOOL_NAMES, traceToolpack, type TraceToolpackArtifacts, type TraceToolpackOptions, type TraceCauseArtifacts, type TraceCauseOptions, type TraceCauseOperation, } from './trace-toolpack/index.js';
|
|
26
26
|
export { openRecording, type OpenableRecording } from './trace-toolpack/index.js';
|
|
27
27
|
export { DEFAULT_INNER_RUN_LIMIT, INNER_RUN_RECORDS, innerRunStore, innerRunsOf, mergeInnerRuns, type InnerRunLookup, type InnerRunOutcome, type InnerRunRecord, type InnerRunStore, type InnerRunSummary, type KeepsInnerRuns, } from './trace-toolpack/index.js';
|
|
28
28
|
export { buildSelfExplainSkill, buildSelfExplainToolProvider, SELF_EXPLAIN_MAX_EVENTS, SelfExplainBinding, traceDebugAgent, type SelfExplainInclude, type SelfExplainOptions, type SelfExplainServing, type SelfExplainSource, type TraceDebugAgentOptions, } from './trace-toolpack/index.js';
|
package/dist/esm/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,4BAA4B;AAC5B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,GAiCpB,MAAM,2BAA2B,CAAC;AACnC,uEAAuE;AACvE,2EAA2E;AAC3E,mEAAmE;AACnE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,4BAA4B;AAC5B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,GAiCpB,MAAM,2BAA2B,CAAC;AACnC,uEAAuE;AACvE,2EAA2E;AAC3E,mEAAmE;AACnE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GAMd,MAAM,2BAA2B,CAAC;AACnC,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,0EAA0E;AAC1E,OAAO,EAAE,aAAa,EAA0B,MAAM,2BAA2B,CAAC;AAClF,0EAA0E;AAC1E,sEAAsE;AACtE,wEAAwE;AACxE,uEAAuE;AACvE,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,cAAc,GAOf,MAAM,2BAA2B,CAAC;AACnC,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,kEAAkE;AAClE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,GAMhB,MAAM,2BAA2B,CAAC;AACnC,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,+DAA+D;AAC/D,oEAAoE;AACpE,mEAAmE;AACnE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,UAAU,GAoEX,MAAM,2BAA2B,CAAC;AACnC,qEAAqE;AACrE,6EAA6E;AAC7E,yEAAyE;AACzE,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,aAAa,GAgBd,MAAM,2BAA2B,CAAC;AACnC,sEAAsE;AACtE,uEAAuE;AACvE,mEAAmE;AACnE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,GASzB,MAAM,2BAA2B,CAAC;AACnC,wEAAwE;AACxE,8EAA8E;AAC9E,qEAAqE;AACrE,wEAAwE;AACxE,uEAAuE;AACvE,gEAAgE;AAChE,uEAAuE;AACvE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GAepB,MAAM,sBAAsB,CAAC;AAC9B,6EAA6E;AAC7E,0EAA0E;AAC1E,uEAAuE;AACvE,sEAAsE;AACtE,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GAMrB,MAAM,sBAAsB,CAAC;AAC9B,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,2EAA2E;AAC3E,8EAA8E;AAC9E,yCAAyC;AACzC,OAAO,EACL,YAAY,GAYb,MAAM,0BAA0B,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -60,6 +60,9 @@ export { MemberIdentityError, ParentRunRefusedError, ResumeRequestConflictError,
|
|
|
60
60
|
export { flowchartAsTool, type FlowchartAsToolOptions, type FlowchartResultMapper, type FlowchartToolSnapshot, } from './core/flowchartAsTool.js';
|
|
61
61
|
export { absenceSignalOf, DECLINED_VERDICT, DEFAULT_MAX_ROWS, DEFAULT_RECORDING_MAX_BYTES, DEFAULT_WALK_CAP, PANEL_RENDER_NOTE, probeDispatch, projectWalk, recordingDispatch, renderVerdictTable, runbookAsTool, RunbookAbsenceSignal, VERDICT_RENDER_NOTE, verdictRowsOf, type InnerCallRecord, type ProjectedWalk, type RecordedDispatch, type RunbookAsToolOptions, type RunbookEnvelope, type RunbookPresentation, type RunbookProcedure, type RunbookRecordingOptions, type RunbookRules, type RunbookVerdictsOptions, type RunbookWalkOptions, type VerdictRow, type WalkDescriptor, type WalkRow, } from './core/runbook/index.js';
|
|
62
62
|
export type { Tool, ToolExecutionContext, ToolRegistryEntry, DefineToolOptions, ToolDispatch, ToolDispatchCallOptions, ToolResultCeiling, } from './tools/tools.js';
|
|
63
|
+
export { artifactDetailTool, type ArtifactDetailOptions } from './tools/artifactDetailTool.js';
|
|
64
|
+
export { ArtifactDetailError, type ArtifactDetailErrorCode } from './artifacts/detailError.js';
|
|
65
|
+
export type { ArtifactDetailAction, ArtifactDetailArgs, ArtifactDetailChild, ArtifactDetailResult, } from './artifacts/detailTypes.js';
|
|
63
66
|
export type { AskOrAssume, ToolPeriod } from './tools/declare.js';
|
|
64
67
|
export { defineTool, assertResultCeiling, assertResultClass, assertResultKind, assertComposedOf, assertGates, } from './tools/tools.js';
|
|
65
68
|
export { hostFilled, fromCredential, fromIdentity, HostFilledArgumentError, HostFilledValueMissingError, HOST_FILLED_PLACEHOLDER, type HostFill, type HostFillFromCredential, type HostFillFromIdentity, type HostFilledIdentityField, } from './tools/hostFilled.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -285,6 +285,8 @@ export { absenceSignalOf, DECLINED_VERDICT, DEFAULT_MAX_ROWS,
|
|
|
285
285
|
// and a bundle over this many bytes is REFUSED (never truncated) with the
|
|
286
286
|
// reason stated on `walk.recording_note`.
|
|
287
287
|
DEFAULT_RECORDING_MAX_BYTES, DEFAULT_WALK_CAP, PANEL_RENDER_NOTE, probeDispatch, projectWalk, recordingDispatch, renderVerdictTable, runbookAsTool, RunbookAbsenceSignal, VERDICT_RENDER_NOTE, verdictRowsOf, } from './core/runbook/index.js';
|
|
288
|
+
export { artifactDetailTool } from './tools/artifactDetailTool.js';
|
|
289
|
+
export { ArtifactDetailError } from './artifacts/detailError.js';
|
|
288
290
|
export { defineTool, assertResultCeiling, assertResultClass,
|
|
289
291
|
// The placed-result kind (9.70.0) — `Tool.resultKind` lets a tool declare
|
|
290
292
|
// the artifact kind its PLACED result is minted under, so the ticket speaks
|