agentfootprint 10.6.0 → 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/core/Agent.js +1 -1
- package/dist/core/Agent.js.map +1 -1
- 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/core/Agent.js +1 -1
- package/dist/esm/core/Agent.js.map +1 -1
- 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/recorders/observability/AgentThinkingTraceRecorder.d.ts +3 -1
- package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.js +46 -17
- package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.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/recorders/observability/AgentThinkingTraceRecorder.js +46 -17
- package/dist/recorders/observability/AgentThinkingTraceRecorder.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/recorders/observability/AgentThinkingTraceRecorder.d.ts +3 -1
- package/dist/types/recorders/observability/AgentThinkingTraceRecorder.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
|
@@ -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":"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"}
|
|
@@ -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":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOpE,MAAM,MAAM,GAAG,CAAC,KAAc,EAAoC,EAAE,CAClE,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,MAAM,SAAS,GAAG,CAAC,KAAc,EAAgD,EAAE,CACjF,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxC,8FAA8F;AAC9F,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACxE,MAAM,IAAI,GAAG,CAAC,KAAc,EAA+B,EAAE,CAC3D,KAAK,KAAK,IAAI;IACZ,CAAC,CAAC,MAAM;IACR,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,CAAC,CAAC,OAAO;QACT,CAAC,CAAE,OAAO,KAAqC,CAAC;AAEpD,SAAS,MAAM,CAAC,IAAa,EAAE,IAAY;IACzC,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,aAAa,EAAE,CAAC;QAChF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;YAAE,OAAO,iBAAiB,EAAE,CAAC;QAChF,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,GAAW;IAC5C,OAAO,GAAG,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,OAAO,CAAiC,KAAQ;IACvD,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,WAAW;QAAE,OAAO,iBAAiB,EAAE,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,qBAAqB,CACnC,IAAa,EACb,IAAkC,EAClC,IAAY,EACZ,OAA2C;IAE3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG;QACX,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;QACjB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAC;IACF,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAa,EAAE,CAAC;IACnF,IACE,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK;QACzB,SAAS,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,UAAU;QAC5C,SAAS,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,WAAW;QAE9C,OAAO,MAAM,CAAC;IAChB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,aAAa,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC;YACb,GAAG,IAAI;YACP,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC;YAC7B,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,0EAA0E;SACnF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,aAAa,EAAE,CAAC;IACtD,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAyB,EAAE,CAAC,CAAC;QAC5C,GAAG,IAAI;QACP,IAAI,EAAE,UAAU;QAChB,QAAQ;QACR,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,QAAQ,CAAC,MAAM;QACtB,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QACvD,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAC7C,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;YAC/C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;YACjB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;YACnF,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,iBAAiB,EAAE,CAAC;IAC9E,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/esm/core/Agent.js
CHANGED
|
@@ -4675,8 +4675,8 @@ export class Agent extends RunnerBase {
|
|
|
4675
4675
|
...(argumentSources && { argumentSources: true }),
|
|
4676
4676
|
...((this.answerValidationConfig !== undefined || governsOutput) && {
|
|
4677
4677
|
suppressDraftTokens: true,
|
|
4678
|
+
withholdDraftContent: true,
|
|
4678
4679
|
}),
|
|
4679
|
-
...(governsOutput && { withholdDraftContent: true }),
|
|
4680
4680
|
// Tool choice by classifier (9.105.0): the outcome row after the reply.
|
|
4681
4681
|
...(this.toolChoiceOptions !== undefined && { toolChoice: true }),
|
|
4682
4682
|
// The declared ontology (9.106.0): the piece served from the run
|