pi-fabric 0.54.1 → 0.55.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 (67) hide show
  1. package/dist/audit/details.d.ts.map +1 -1
  2. package/dist/audit/trace.d.ts +7 -2
  3. package/dist/audit/trace.d.ts.map +1 -1
  4. package/dist/chunks/{chunk-EGNEZYFZ.js → chunk-4MLY2Z7C.js} +4 -4
  5. package/dist/chunks/{chunk-V4J3TRB2.js → chunk-64LZJ3EJ.js} +4 -4
  6. package/dist/chunks/{chunk-7PTKOZBU.js → chunk-6HIZWKOP.js} +2 -2
  7. package/dist/chunks/{chunk-LEBSKMW7.js → chunk-C3GCKJ2M.js} +3 -3
  8. package/dist/chunks/{chunk-3ILAI7MG.js → chunk-HED3CMLD.js} +2 -2
  9. package/dist/chunks/{chunk-2AJ64IDF.js → chunk-HFYEEIXR.js} +9 -5
  10. package/dist/chunks/chunk-HFYEEIXR.js.map +7 -0
  11. package/dist/chunks/{chunk-5A7D37T5.js → chunk-MPS3TDUG.js} +16 -2
  12. package/dist/chunks/{chunk-5A7D37T5.js.map → chunk-MPS3TDUG.js.map} +2 -2
  13. package/dist/chunks/{chunk-7XUNDMVQ.js → chunk-PNTJXMP7.js} +101 -7
  14. package/dist/chunks/chunk-PNTJXMP7.js.map +7 -0
  15. package/dist/chunks/{chunk-6EU7IVFO.js → chunk-RQIQA7CW.js} +2 -2
  16. package/dist/chunks/{chunk-NPTSAKZW.js → chunk-SDE4YZSA.js} +2 -2
  17. package/dist/chunks/{chunk-UFD5C2SC.js → chunk-UWMY7KQW.js} +30 -17
  18. package/dist/chunks/chunk-UWMY7KQW.js.map +7 -0
  19. package/dist/chunks/{chunk-3RQ6FLPB.js → chunk-VK3MWAOL.js} +2 -2
  20. package/dist/chunks/{chunk-MAC56HUK.js → chunk-XRADSGKL.js} +2 -2
  21. package/dist/chunks/{chunk-ZW446OQR.js → chunk-ZBV4KN3K.js} +6 -4
  22. package/dist/chunks/{chunk-ZW446OQR.js.map → chunk-ZBV4KN3K.js.map} +2 -2
  23. package/dist/chunks/{dashboard-VVTQ574M.js → dashboard-XPHTT2ID.js} +2 -2
  24. package/dist/chunks/{fabric-runtime-state-T53E4MKP.js → fabric-runtime-state-W3ME2M4E.js} +16 -15
  25. package/dist/chunks/fabric-runtime-state-W3ME2M4E.js.map +7 -0
  26. package/dist/chunks/{node-process-runtime-W2Y7L6QJ.js → node-process-runtime-O7BIVTEM.js} +17 -7
  27. package/dist/chunks/node-process-runtime-O7BIVTEM.js.map +7 -0
  28. package/dist/chunks/{quickjs-runtime-MMEAIAOC.js → quickjs-runtime-DGJOVTNF.js} +3 -3
  29. package/dist/chunks/type-checker-NTAWUHJL.js +13 -0
  30. package/dist/compaction/hook.js +3 -3
  31. package/dist/core/action-registry.d.ts.map +1 -1
  32. package/dist/core/action-registry.js +2 -2
  33. package/dist/execution-service.d.ts.map +1 -1
  34. package/dist/index.js +11 -10
  35. package/dist/index.js.map +2 -2
  36. package/dist/memory/discovery.js +4 -4
  37. package/dist/memory/normalize.js +3 -3
  38. package/dist/memory/search.js +4 -4
  39. package/dist/providers/memory-provider.js +6 -6
  40. package/dist/residency/host.js +5 -5
  41. package/dist/runtime/guest-stack-map.d.ts +11 -0
  42. package/dist/runtime/guest-stack-map.d.ts.map +1 -0
  43. package/dist/runtime/node-process-runtime.d.ts.map +1 -1
  44. package/dist/runtime/quickjs-runtime.d.ts +1 -0
  45. package/dist/runtime/quickjs-runtime.d.ts.map +1 -1
  46. package/dist/runtime/type-checker.d.ts +8 -1
  47. package/dist/runtime/type-checker.d.ts.map +1 -1
  48. package/dist/ui/fabric-render.d.ts.map +1 -1
  49. package/package.json +1 -1
  50. package/dist/chunks/chunk-2AJ64IDF.js.map +0 -7
  51. package/dist/chunks/chunk-7XUNDMVQ.js.map +0 -7
  52. package/dist/chunks/chunk-UFD5C2SC.js.map +0 -7
  53. package/dist/chunks/fabric-runtime-state-T53E4MKP.js.map +0 -7
  54. package/dist/chunks/node-process-runtime-W2Y7L6QJ.js.map +0 -7
  55. package/dist/chunks/type-checker-W3FSQG6A.js +0 -11
  56. /package/dist/chunks/{chunk-EGNEZYFZ.js.map → chunk-4MLY2Z7C.js.map} +0 -0
  57. /package/dist/chunks/{chunk-V4J3TRB2.js.map → chunk-64LZJ3EJ.js.map} +0 -0
  58. /package/dist/chunks/{chunk-7PTKOZBU.js.map → chunk-6HIZWKOP.js.map} +0 -0
  59. /package/dist/chunks/{chunk-LEBSKMW7.js.map → chunk-C3GCKJ2M.js.map} +0 -0
  60. /package/dist/chunks/{chunk-3ILAI7MG.js.map → chunk-HED3CMLD.js.map} +0 -0
  61. /package/dist/chunks/{chunk-6EU7IVFO.js.map → chunk-RQIQA7CW.js.map} +0 -0
  62. /package/dist/chunks/{chunk-NPTSAKZW.js.map → chunk-SDE4YZSA.js.map} +0 -0
  63. /package/dist/chunks/{chunk-3RQ6FLPB.js.map → chunk-VK3MWAOL.js.map} +0 -0
  64. /package/dist/chunks/{chunk-MAC56HUK.js.map → chunk-XRADSGKL.js.map} +0 -0
  65. /package/dist/chunks/{dashboard-VVTQ574M.js.map → dashboard-XPHTT2ID.js.map} +0 -0
  66. /package/dist/chunks/{quickjs-runtime-MMEAIAOC.js.map → quickjs-runtime-DGJOVTNF.js.map} +0 -0
  67. /package/dist/chunks/{type-checker-W3FSQG6A.js.map → type-checker-NTAWUHJL.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../src/audit/details.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,kCAAkC,QAAa,CAAC;AAE7D,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,uBAAuB,EAAE,CAAC;CACnC;AAQD;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,GAAI,OAAO;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,KAAG,iCA+BH,CAAC;AAoCF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,GAC3C,OAAO,OAAO,KACb,4BAqCF,CAAC"}
1
+ {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../src/audit/details.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,kCAAkC,QAAa,CAAC;AAE7D,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,uBAAuB,EAAE,CAAC;CACnC;AAQD;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,GAAI,OAAO;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,KAAG,iCA+BH,CAAC;AAqCF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,GAC3C,OAAO,OAAO,KACb,4BAqCF,CAAC"}
@@ -20,6 +20,7 @@ export interface FabricExecutionTraceOperationV1 {
20
20
  failureStage?: FabricExecutionFailureStageV1;
21
21
  error?: string;
22
22
  result?: FabricTraceJsonValue;
23
+ resultTruncated?: boolean;
23
24
  }
24
25
  export interface FabricExecutionTraceCountsV1 {
25
26
  droppedValues: number;
@@ -41,6 +42,9 @@ interface MutableCounts {
41
42
  truncatedValues: number;
42
43
  redactedValues: number;
43
44
  }
45
+ interface TraceResultMeta {
46
+ resultTruncated?: boolean;
47
+ }
44
48
  interface Sanitized<T extends FabricTraceJsonValue> {
45
49
  value: T;
46
50
  counts: MutableCounts;
@@ -60,6 +64,7 @@ interface MutableOperation {
60
64
  failureStage?: FabricExecutionFailureStageV1;
61
65
  error?: Sanitized<string>;
62
66
  result?: Sanitized<FabricTraceJsonValue>;
67
+ resultTruncated?: boolean;
63
68
  droppedResultValues: number;
64
69
  }
65
70
  export declare class FabricTraceSafeError extends Error {
@@ -72,8 +77,8 @@ export declare class FabricExecutionTraceOperationHandle {
72
77
  constructor(recorder: FabricExecutionTraceRecorder, operation: MutableOperation | undefined);
73
78
  resolved(provider: string, action: string): void;
74
79
  prepared(args: Record<string, unknown>): void;
75
- succeed(result: unknown): void;
76
- fail(stage: FabricExecutionFailureStageV1, error: unknown, outcome?: FabricExecutionOutcomeV1, result?: unknown): void;
80
+ succeed(result: unknown, meta?: TraceResultMeta): void;
81
+ fail(stage: FabricExecutionFailureStageV1, error: unknown, outcome?: FabricExecutionOutcomeV1, result?: unknown, meta?: TraceResultMeta): void;
77
82
  }
78
83
  export declare class FabricExecutionTraceRecorder {
79
84
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/audit/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/audit/trace.ts"],"names":[],"mappings":"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"}
@@ -9,21 +9,21 @@ import {
9
9
  buildThinkingDigest,
10
10
  snapshotHandoffSession,
11
11
  thinkingTransferPolicy
12
- } from "./chunk-3ILAI7MG.js";
12
+ } from "./chunk-HED3CMLD.js";
13
13
  import {
14
14
  isFabricThinking
15
15
  } from "./chunk-7B55UIZL.js";
16
16
  import {
17
17
  NESTED_TOOL_CALL_ID_PREFIX,
18
18
  stableJsonHash
19
- } from "./chunk-ZW446OQR.js";
19
+ } from "./chunk-ZBV4KN3K.js";
20
20
  import {
21
21
  runAbortable,
22
22
  throwIfAborted
23
23
  } from "./chunk-7TB7NXSL.js";
24
24
  import {
25
25
  FabricTraceSafeError
26
- } from "./chunk-2AJ64IDF.js";
26
+ } from "./chunk-HFYEEIXR.js";
27
27
 
28
28
  // src/capture/catalog.ts
29
29
  import {
@@ -2349,4 +2349,4 @@ export {
2349
2349
  resolveFabricIdentity,
2350
2350
  MainAgentController
2351
2351
  };
2352
- //# sourceMappingURL=chunk-EGNEZYFZ.js.map
2352
+ //# sourceMappingURL=chunk-4MLY2Z7C.js.map
@@ -3,7 +3,7 @@ import {
3
3
  enumerateAllSessions,
4
4
  resolveScope,
5
5
  resolveSessionTarget
6
- } from "./chunk-6EU7IVFO.js";
6
+ } from "./chunk-RQIQA7CW.js";
7
7
  import {
8
8
  DEFAULT_HOT_SESSIONS,
9
9
  DEFAULT_REGEX_MAX_HAYSTACK_BYTES,
@@ -15,11 +15,11 @@ import {
15
15
  loadTieredIndex,
16
16
  reconstructSessionLineage,
17
17
  searchMemoryIndex
18
- } from "./chunk-7PTKOZBU.js";
18
+ } from "./chunk-6HIZWKOP.js";
19
19
  import {
20
20
  expandSessionEntriesChecked,
21
21
  normalizeSession
22
- } from "./chunk-MAC56HUK.js";
22
+ } from "./chunk-XRADSGKL.js";
23
23
 
24
24
  // src/providers/memory-provider.ts
25
25
  import path from "node:path";
@@ -851,4 +851,4 @@ export {
851
851
  normalizeMemoryArgs,
852
852
  MemoryProvider
853
853
  };
854
- //# sourceMappingURL=chunk-V4J3TRB2.js.map
854
+ //# sourceMappingURL=chunk-64LZJ3EJ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_MEMORY_INDEX_PRIVACY,
3
3
  normalizeSession
4
- } from "./chunk-MAC56HUK.js";
4
+ } from "./chunk-XRADSGKL.js";
5
5
  import {
6
6
  compareLexical,
7
7
  foldSessionDigest,
@@ -1233,4 +1233,4 @@ export {
1233
1233
  searchShards,
1234
1234
  formatSearchResult
1235
1235
  };
1236
- //# sourceMappingURL=chunk-7PTKOZBU.js.map
1236
+ //# sourceMappingURL=chunk-6HIZWKOP.js.map
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-VPPIJRNZ.js";
18
18
  import {
19
19
  writeHandoffSession
20
- } from "./chunk-3ILAI7MG.js";
20
+ } from "./chunk-HED3CMLD.js";
21
21
  import {
22
22
  FABRIC_ACTOR_HOST_EVENTS,
23
23
  readJsonlPage
@@ -2635,7 +2635,7 @@ var MAX_PREDICATE_SOURCE_CHARS = 16e3;
2635
2635
  var PREDICATE_TIMEOUT_MS = 100;
2636
2636
  var PREDICATE_MEMORY_BYTES = 16 * 1024 * 1024;
2637
2637
  var runtimeInstance;
2638
- var runtime = async () => runtimeInstance ??= new (await import("./quickjs-runtime-MMEAIAOC.js")).QuickJsRuntime();
2638
+ var runtime = async () => runtimeInstance ??= new (await import("./quickjs-runtime-DGJOVTNF.js")).QuickJsRuntime();
2639
2639
  var predicateProgram = (source, invoke) => [
2640
2640
  `const predicate = (${source});`,
2641
2641
  'if (typeof predicate !== "function") throw new TypeError("validWhile must be a function");',
@@ -5574,4 +5574,4 @@ export {
5574
5574
  residentRoot,
5575
5575
  residentDeliveryPrefix
5576
5576
  };
5577
- //# sourceMappingURL=chunk-LEBSKMW7.js.map
5577
+ //# sourceMappingURL=chunk-C3GCKJ2M.js.map
@@ -3,7 +3,7 @@ import {
3
3
  compileFabricSummary,
4
4
  encodeCompactionRequest,
5
5
  rawContextTokens
6
- } from "./chunk-NPTSAKZW.js";
6
+ } from "./chunk-SDE4YZSA.js";
7
7
 
8
8
  // src/agents/thinking-transfer.ts
9
9
  var REASONING_CONTENT_SIGNATURE = "reasoning_content";
@@ -337,4 +337,4 @@ export {
337
337
  snapshotHandoffSession,
338
338
  writeHandoffSession
339
339
  };
340
- //# sourceMappingURL=chunk-3ILAI7MG.js.map
340
+ //# sourceMappingURL=chunk-HED3CMLD.js.map
@@ -515,7 +515,7 @@ var FabricExecutionTraceOperationHandle = class {
515
515
  if (!this.operation || this.recorder.sealed) return;
516
516
  this.operation.args = projectedArgs(this.operation.projectionRef, args);
517
517
  }
518
- succeed(result) {
518
+ succeed(result, meta) {
519
519
  if (!this.operation || this.recorder.sealed) return;
520
520
  const projected2 = projectFabricAuditResult(this.operation.projectionRef, result);
521
521
  if (projected2 !== void 0) {
@@ -525,8 +525,9 @@ var FabricExecutionTraceOperationHandle = class {
525
525
  this.operation.droppedResultValues++;
526
526
  }
527
527
  this.operation.outcome = "succeeded";
528
+ if (meta?.resultTruncated === true) this.operation.resultTruncated = true;
528
529
  }
529
- fail(stage, error, outcome = "failed", result) {
530
+ fail(stage, error, outcome = "failed", result, meta) {
530
531
  if (!this.operation || this.recorder.sealed) return;
531
532
  this.operation.failureStage = stage;
532
533
  if (error instanceof FabricTraceSafeError) this.operation.causeSafe = true;
@@ -536,6 +537,7 @@ var FabricExecutionTraceOperationHandle = class {
536
537
  MAX_ERROR_BYTES
537
538
  );
538
539
  this.operation.outcome = outcome;
540
+ if (meta?.resultTruncated === true) this.operation.resultTruncated = true;
539
541
  const projected2 = projectFabricAuditResult(this.operation.projectionRef, result);
540
542
  if (projected2 !== void 0) {
541
543
  this.operation.result = sanitize(projected2.value, MAX_RESULT_BYTES);
@@ -620,7 +622,8 @@ var FabricExecutionTraceRecorder = class {
620
622
  outcome: operation.outcome,
621
623
  ...operation.failureStage ? { failureStage: operation.failureStage } : {},
622
624
  ...operation.error ? { error: operation.error.value } : {},
623
- ...operation.result ? { result: operation.result.value } : {}
625
+ ...operation.result ? { result: operation.result.value } : {},
626
+ ...operation.resultTruncated === true ? { resultTruncated: true } : {}
624
627
  };
625
628
  });
626
629
  const boundedPhases = phases.slice(0, MAX_PHASES).map((phase) => {
@@ -713,7 +716,7 @@ var isJsonValue = (value, ancestors = /* @__PURE__ */ new Set(), depth = 0) => {
713
716
  };
714
717
  var isFabricExecutionTraceOperationV1Unchecked = (value) => {
715
718
  if (!isRecord(value)) return false;
716
- if (!hasOnlyKeys(value, ["type", "sequence", "ref", "provider", "action", "args", "outcome", "failureStage", "error", "result"])) return false;
719
+ if (!hasOnlyKeys(value, ["type", "sequence", "ref", "provider", "action", "args", "outcome", "failureStage", "error", "result", "resultTruncated"])) return false;
717
720
  if (value.type !== "call" || !Number.isSafeInteger(value.sequence) || value.sequence < 0) return false;
718
721
  if (typeof value.ref !== "string" || !isRecord(value.args) || !isJsonValue(value.args)) return false;
719
722
  if (!outcomes.has(value.outcome)) return false;
@@ -721,6 +724,7 @@ var isFabricExecutionTraceOperationV1Unchecked = (value) => {
721
724
  if (value.action !== void 0 && typeof value.action !== "string") return false;
722
725
  if (value.failureStage !== void 0 && !stages.has(value.failureStage)) return false;
723
726
  if (value.error !== void 0 && typeof value.error !== "string") return false;
727
+ if (value.resultTruncated !== void 0 && typeof value.resultTruncated !== "boolean") return false;
724
728
  return value.result === void 0 || isJsonValue(value.result);
725
729
  };
726
730
  var isFabricExecutionTraceOperationV1 = (value) => {
@@ -770,4 +774,4 @@ export {
770
774
  isFabricExecutionTraceV1,
771
775
  readFabricExecutionTraceV1
772
776
  };
773
- //# sourceMappingURL=chunk-2AJ64IDF.js.map
777
+ //# sourceMappingURL=chunk-HFYEEIXR.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/audit/projection.ts", "../../src/audit/trace.ts"],
4
+ "sourcesContent": ["import type { FabricTraceJsonValue } from \"./trace.js\";\n\nexport interface FabricAuditProjection {\n value: { [key: string]: FabricTraceJsonValue };\n droppedValues: number;\n}\n\nconst emptyProjection = (args: Record<string, unknown>): FabricAuditProjection => ({\n value: {},\n droppedValues: topLevelKeyCount(args),\n});\n\nconst topLevelKeyCount = (value: Record<string, unknown>): number => {\n try {\n return Object.keys(value).length;\n } catch {\n return 1;\n }\n};\n\nconst finiteNumber = (value: unknown): number | undefined =>\n typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n\nconst stringValue = (value: unknown): string | undefined =>\n typeof value === \"string\" ? value : undefined;\n\nconst isWindowsDrivePath = (value: string): boolean => {\n if (value.length < 3 || value[1] !== \":\" || (value[2] !== \"\\\\\" && value[2] !== \"/\")) {\n return false;\n }\n const drive = value.charCodeAt(0);\n return (drive >= 65 && drive <= 90) || (drive >= 97 && drive <= 122);\n};\n\nconst localPath = (value: unknown): string | undefined => {\n if (typeof value !== \"string\" || value.includes(\"\\0\")) return undefined;\n if (!isWindowsDrivePath(value)) {\n try {\n // Absolute and network-path URLs are not local file addresses. In\n // particular, never retain URL userinfo or query credentials as a path.\n const absolute = new URL(value);\n if (absolute.protocol) return undefined;\n } catch {\n // Plain relative and absolute filesystem paths are expected to fail URL\n // construction without a base.\n }\n try {\n const based = new URL(value, \"https://fabric.invalid/\");\n if (based.hostname !== \"fabric.invalid\") return undefined;\n } catch {\n return undefined;\n }\n }\n const query = value.indexOf(\"?\");\n const fragment = value.indexOf(\"#\");\n const end = Math.min(\n query < 0 ? value.length : query,\n fragment < 0 ? value.length : fragment,\n );\n return value.slice(0, end) || undefined;\n};\n\nconst copyString = (\n output: Record<string, FabricTraceJsonValue>,\n args: Record<string, unknown>,\n key: string,\n): void => {\n const value = stringValue(args[key]);\n if (value !== undefined) output[key] = value;\n};\n\nconst copyNumber = (\n output: Record<string, FabricTraceJsonValue>,\n args: Record<string, unknown>,\n key: string,\n): void => {\n const value = finiteNumber(args[key]);\n if (value !== undefined) output[key] = value;\n};\n\nconst structuralIdentifier = (value: unknown): string | undefined => {\n if (typeof value !== \"string\" || value.length === 0) return undefined;\n for (let index = 0; index < value.length; index++) {\n const code = value.charCodeAt(index);\n const alphanumeric =\n (code >= 48 && code <= 57) ||\n (code >= 65 && code <= 90) ||\n (code >= 97 && code <= 122);\n if (alphanumeric) continue;\n if (index > 0 && (code === 45 || code === 46 || code === 47 || code === 58 || code === 95)) {\n continue;\n }\n return undefined;\n }\n return value;\n};\n\nconst copyIdentifier = (\n output: Record<string, FabricTraceJsonValue>,\n args: Record<string, unknown>,\n key: string,\n): void => {\n const value = structuralIdentifier(args[key]);\n if (value !== undefined) output[key] = value;\n};\n\nconst copyPath = (\n output: Record<string, FabricTraceJsonValue>,\n args: Record<string, unknown>,\n): void => {\n const value = localPath(args.path);\n if (value !== undefined) output.path = value;\n};\n\nconst projected = (\n args: Record<string, unknown>,\n build: (output: Record<string, FabricTraceJsonValue>) => void,\n): FabricAuditProjection => {\n const value: Record<string, FabricTraceJsonValue> = {};\n try {\n build(value);\n } catch {\n return emptyProjection(args);\n }\n return {\n value,\n droppedValues: Math.max(0, topLevelKeyCount(args) - Object.keys(value).length),\n };\n};\n\nconst idOnlyAgentActions = new Set([\n \"agents.wait\",\n \"agents.status\",\n \"agents.stop\",\n \"agents.cleanup\",\n \"agents.ask\",\n \"agents.tell\",\n \"agents.steer\",\n \"agents.followUp\",\n \"agents.setSteeringMode\",\n \"agents.setFollowUpMode\",\n \"agents.compact\",\n \"agents.actorStatus\",\n \"agents.setModel\",\n \"agents.setThinking\",\n \"agents.setTools\",\n \"agents.setEvents\",\n \"agents.setDeliveryPolicy\",\n \"agents.clearMessages\",\n \"agents.setInstructions\",\n \"agents.messages\",\n \"agents.remove\",\n \"agents.import\",\n \"agents.export\",\n \"agents.log\",\n]);\n\n/**\n * Projects invocation arguments by exact built-in reference. Unknown,\n * extension, MCP, schema, state, compact, and generic provider calls retain no\n * arguments. This allowlist, rather than secret-looking string matching, is\n * the durable trace's primary confidentiality boundary.\n */\nexport const projectFabricAuditArgs = (\n ref: string,\n args: Record<string, unknown>,\n): FabricAuditProjection => {\n switch (ref) {\n case \"fabric.discovery.providers\":\n case \"fabric.discovery.models\":\n case \"fabric.workflow.progress\":\n return emptyProjection(args);\n case \"fabric.approval.auto\":\n return projected(args, (output) => {\n copyIdentifier(output, args, \"action\");\n copyIdentifier(output, args, \"risk\");\n });\n case \"fabric.discovery.catalog\":\n return projected(args, (output) => {\n copyIdentifier(output, args, \"provider\");\n copyNumber(output, args, \"limit\");\n });\n case \"fabric.discovery.list\":\n return projected(args, (output) => {\n copyIdentifier(output, args, \"provider\");\n copyIdentifier(output, args, \"namespace\");\n copyNumber(output, args, \"limit\");\n });\n case \"fabric.discovery.search\":\n return projected(args, (output) => copyNumber(output, args, \"limit\"));\n case \"fabric.discovery.describe\":\n return projected(args, (output) => copyIdentifier(output, args, \"ref\"));\n case \"fabric.workflow.configure\":\n return projected(args, (output) => copyString(output, args, \"name\"));\n case \"fabric.workflow.phase\":\n return projected(args, (output) => {\n copyString(output, args, \"name\");\n copyIdentifier(output, args, \"id\");\n copyNumber(output, args, \"total\");\n });\n case \"fabric.workflow.item\":\n return projected(args, (output) => {\n copyIdentifier(output, args, \"id\");\n copyIdentifier(output, args, \"status\");\n copyIdentifier(output, args, \"phase\");\n copyIdentifier(output, args, \"kind\");\n copyNumber(output, args, \"total\");\n copyNumber(output, args, \"completed\");\n });\n case \"fabric.workflow.event\":\n return projected(args, (output) => copyIdentifier(output, args, \"level\"));\n case \"fabric.workflow.parallel\":\n case \"fabric.workflow.pipeline\":\n return projected(args, (output) => {\n copyIdentifier(output, args, \"kind\");\n copyNumber(output, args, \"itemCount\");\n copyNumber(output, args, \"stageCount\");\n copyNumber(output, args, \"concurrency\");\n });\n case \"pi.read\":\n return projected(args, (output) => {\n copyPath(output, args);\n copyNumber(output, args, \"offset\");\n copyNumber(output, args, \"limit\");\n });\n case \"pi.grep\":\n return projected(args, (output) => {\n copyPath(output, args);\n copyNumber(output, args, \"context\");\n copyNumber(output, args, \"limit\");\n });\n case \"pi.find\":\n case \"pi.ls\":\n return projected(args, (output) => {\n copyPath(output, args);\n copyNumber(output, args, \"limit\");\n });\n case \"pi.edit\":\n case \"pi.write\":\n return projected(args, (output) => copyPath(output, args));\n case \"pi.bash\":\n return projected(args, (output) => copyString(output, args, \"command\"));\n case \"mesh.publish\":\n return projected(args, (output) => {\n copyString(output, args, \"topic\");\n copyString(output, args, \"to\");\n });\n case \"mesh.read\":\n return projected(args, (output) => {\n copyString(output, args, \"topic\");\n copyString(output, args, \"to\");\n copyNumber(output, args, \"after\");\n copyNumber(output, args, \"limit\");\n });\n case \"mesh.get\":\n case \"mesh.put\":\n case \"mesh.delete\":\n return projected(args, (output) => copyString(output, args, \"key\"));\n case \"mesh.list\":\n return projected(args, (output) => {\n copyString(output, args, \"prefix\");\n copyNumber(output, args, \"limit\");\n });\n default:\n if (idOnlyAgentActions.has(ref)) {\n return projected(args, (output) => copyString(output, args, \"id\"));\n }\n return emptyProjection(args);\n }\n};\n\n/**\n * Results are omitted except for the exact boolean creation outcome emitted by\n * pi.write. No provider details or output text accompany that flag.\n */\nexport const projectFabricAuditResult = (\n ref: string,\n result: unknown,\n): FabricAuditProjection | undefined => {\n if (typeof result !== \"object\" || result === null || Array.isArray(result)) {\n return undefined;\n }\n const record = result as Record<string, unknown>;\n if (ref === \"fabric.approval.auto\") {\n return projected(record, (output) => {\n copyIdentifier(output, record, \"action\");\n copyIdentifier(output, record, \"risk\");\n copyIdentifier(output, record, \"decision\");\n copyIdentifier(output, record, \"model\");\n copyNumber(output, record, \"at\");\n });\n }\n if (ref !== \"pi.write\") return undefined;\n const details =\n typeof record.details === \"object\" && record.details !== null && !Array.isArray(record.details)\n ? (record.details as Record<string, unknown>)\n : undefined;\n if (record.created !== true && details?.created !== true) return undefined;\n return {\n value: { created: true },\n droppedValues: Math.max(0, topLevelKeyCount(record) - 1),\n };\n};\n", "import { projectFabricAuditArgs, projectFabricAuditResult } from \"./projection.js\";\n\nexport const FABRIC_EXECUTION_TRACE_KIND = \"pi-fabric.execution\" as const;\nexport const FABRIC_EXECUTION_TRACE_VERSION = 1 as const;\nexport const FABRIC_EXECUTION_TRACE_MAX_BYTES = 512 * 1024;\n\nconst MAX_IDENTIFIER_BYTES = 1_024;\nconst MAX_PHASE_BYTES = 1_024;\nconst MAX_STRING_BYTES = 16 * 1024;\nconst MAX_ERROR_BYTES = 8 * 1024;\nconst MAX_ARGS_BYTES = 64 * 1024;\nconst MAX_RESULT_BYTES = 64 * 1024;\nconst MAX_DEPTH = 12;\nconst MAX_KEYS = 128;\nconst MAX_ARRAY_ITEMS = 128;\nconst MAX_NODES = 8_192;\nconst MAX_RECORDED_OPERATIONS = 2_048;\nconst MAX_PHASES = 512;\nexport type FabricTraceJsonPrimitive = string | number | boolean | null;\nexport type FabricTraceJsonValue =\n | FabricTraceJsonPrimitive\n | FabricTraceJsonValue[]\n | { [key: string]: FabricTraceJsonValue };\n\nexport type FabricExecutionOutcomeV1 = \"succeeded\" | \"failed\" | \"aborted\" | \"timed_out\";\nexport type FabricExecutionFailureStageV1 =\n | \"resolve\"\n | \"prepare\"\n | \"validate\"\n | \"approve\"\n | \"invoke\"\n | \"guard\";\n\nexport interface FabricExecutionTraceOperationV1 {\n type: \"call\";\n sequence: number;\n ref: string;\n provider?: string;\n action?: string;\n args: { [key: string]: FabricTraceJsonValue };\n outcome: FabricExecutionOutcomeV1;\n failureStage?: FabricExecutionFailureStageV1;\n error?: string;\n result?: FabricTraceJsonValue;\n resultTruncated?: boolean;\n}\n\nexport interface FabricExecutionTraceCountsV1 {\n droppedValues: number;\n truncatedValues: number;\n redactedValues: number;\n droppedOperations: number;\n}\n\nexport interface FabricExecutionTraceV1 {\n kind: typeof FABRIC_EXECUTION_TRACE_KIND;\n version: typeof FABRIC_EXECUTION_TRACE_VERSION;\n outcome: FabricExecutionOutcomeV1;\n phases: string[];\n operations: FabricExecutionTraceOperationV1[];\n counts: FabricExecutionTraceCountsV1;\n error?: string;\n}\n\ninterface MutableCounts {\n droppedValues: number;\n truncatedValues: number;\n redactedValues: number;\n}\n\ninterface TraceResultMeta {\n resultTruncated?: boolean;\n}\n\ninterface Sanitized<T extends FabricTraceJsonValue> {\n value: T;\n counts: MutableCounts;\n}\n\ninterface MutableOperation {\n type: \"call\";\n sequence: number;\n ref: string;\n projectionRef: string;\n provider?: string;\n action?: string;\n causeSafe?: boolean;\n args: Sanitized<{ [key: string]: FabricTraceJsonValue }>;\n outcome?: FabricExecutionOutcomeV1;\n failureStage?: FabricExecutionFailureStageV1;\n error?: Sanitized<string>;\n result?: Sanitized<FabricTraceJsonValue>;\n resultTruncated?: boolean;\n droppedResultValues: number;\n}\n\nconst DROP = Symbol(\"drop\");\ntype SanitizedNode = FabricTraceJsonValue | typeof DROP;\n\nconst emptyCounts = (): MutableCounts => ({\n droppedValues: 0,\n truncatedValues: 0,\n redactedValues: 0,\n});\n\nconst byteLength = (value: string): number => Buffer.byteLength(value, \"utf8\");\nconst serializedBytes = (value: unknown): number => byteLength(JSON.stringify(value));\n\nconst truncateUtf8 = (value: string, maxBytes: number): string => {\n if (byteLength(value) <= maxBytes) return value;\n const suffix = \"\u2026[truncated]\";\n const available = Math.max(0, maxBytes - byteLength(suffix));\n let low = 0;\n let high = value.length;\n while (low < high) {\n const middle = Math.ceil((low + high) / 2);\n if (byteLength(value.slice(0, middle)) <= available) low = middle;\n else high = middle - 1;\n }\n return `${value.slice(0, low)}${suffix}`;\n};\n\nconst truncateUtf8Middle = (value: string, maxBytes: number): string => {\n if (byteLength(value) <= maxBytes) return value;\n const marker = \"\\n\u2026[truncated]\\n\";\n const available = Math.max(0, maxBytes - byteLength(marker));\n const headBytes = Math.floor(available / 2);\n const tailBytes = available - headBytes;\n const head = truncateUtf8(value, headBytes + byteLength(\"\u2026[truncated]\"))\n .replace(/\u2026\\[truncated\\]$/, \"\");\n let tailStart = value.length;\n while (tailStart > 0 && byteLength(value.slice(tailStart - 1)) <= tailBytes) tailStart--;\n return `${head}${marker}${value.slice(tailStart)}`;\n};\n\nconst boundedIdentifier = (value: string, maxBytes = MAX_IDENTIFIER_BYTES): string =>\n truncateUtf8(value, maxBytes);\n\nconst normalizedKey = (key: string): string => key.toLowerCase().replaceAll(/[^a-z0-9]/g, \"\");\n\nconst isSensitiveKey = (key: string): boolean => {\n const normalized = normalizedKey(key);\n return [\n \"password\",\n \"passwd\",\n \"secret\",\n \"token\",\n \"accesstoken\",\n \"refreshtoken\",\n \"authorization\",\n \"cookie\",\n \"credential\",\n \"credentials\",\n \"apikey\",\n \"privatekey\",\n \"clientsecret\",\n ].some((sensitive) => normalized === sensitive || normalized.endsWith(sensitive));\n};\n\nconst isMediaKey = (key: string): boolean =>\n [\"media\", \"image\", \"images\", \"audio\", \"video\", \"base64\"].includes(normalizedKey(key));\n\nconst isMediaObject = (value: Record<string, unknown>): boolean => {\n if (value.type === \"image\" || value.type === \"audio\" || value.type === \"video\") return true;\n const mimeType = value.mimeType ?? value.mime_type;\n return (\n typeof mimeType === \"string\" &&\n (mimeType.startsWith(\"image/\") || mimeType.startsWith(\"audio/\") || mimeType.startsWith(\"video/\"))\n );\n};\n\nconst looksLikeBase64 = (value: string): boolean => {\n if (value.startsWith(\"data:\") && value.includes(\";base64,\")) return true;\n if (value.length < 1_024 || value.length % 4 !== 0) return false;\n for (let index = 0; index < value.length; index++) {\n const code = value.charCodeAt(index);\n const valid =\n (code >= 65 && code <= 90) ||\n (code >= 97 && code <= 122) ||\n (code >= 48 && code <= 57) ||\n code === 43 ||\n code === 47 ||\n code === 61 ||\n code === 10 ||\n code === 13;\n if (!valid) return false;\n }\n return true;\n};\n\nconst sanitize = (input: unknown, maxBytes: number): Sanitized<FabricTraceJsonValue> => {\n const counts = emptyCounts();\n const ancestors = new Set<object>();\n let nodes = 0;\n\n const visit = (value: unknown, depth: number, key?: string): SanitizedNode => {\n nodes++;\n if (nodes > MAX_NODES) {\n counts.droppedValues++;\n return DROP;\n }\n if (key !== undefined && isSensitiveKey(key)) {\n counts.redactedValues++;\n return \"[REDACTED]\";\n }\n if (key !== undefined && isMediaKey(key)) {\n counts.droppedValues++;\n return DROP;\n }\n if (value === null || typeof value === \"boolean\") return value;\n if (typeof value === \"number\") {\n if (Number.isFinite(value)) return value;\n counts.truncatedValues++;\n return `[non-finite:${String(value)}]`;\n }\n if (typeof value === \"string\") {\n if (looksLikeBase64(value)) {\n counts.droppedValues++;\n return \"[OMITTED_BASE64]\";\n }\n const bounded = truncateUtf8(value, MAX_STRING_BYTES);\n if (bounded !== value) counts.truncatedValues++;\n return bounded;\n }\n if (typeof value === \"bigint\") {\n counts.truncatedValues++;\n return `${String(value)}n`;\n }\n if (typeof value === \"undefined\" || typeof value === \"function\" || typeof value === \"symbol\") {\n counts.droppedValues++;\n return DROP;\n }\n if (typeof value !== \"object\") {\n counts.droppedValues++;\n return DROP;\n }\n if (depth >= MAX_DEPTH) {\n counts.truncatedValues++;\n return \"[MAX_DEPTH]\";\n }\n if (ancestors.has(value)) {\n counts.droppedValues++;\n return \"[CIRCULAR]\";\n }\n const record = value as Record<string, unknown>;\n if (!Array.isArray(value) && isMediaObject(record)) {\n counts.droppedValues++;\n return \"[OMITTED_MEDIA]\";\n }\n ancestors.add(value);\n if (Array.isArray(value)) {\n const output: FabricTraceJsonValue[] = [];\n const limit = Math.min(value.length, MAX_ARRAY_ITEMS);\n for (let index = 0; index < limit; index++) {\n const item = visit(value[index], depth + 1);\n output.push(item === DROP ? \"[DROPPED]\" : item);\n }\n if (value.length > limit) {\n counts.droppedValues += value.length - limit;\n counts.truncatedValues++;\n }\n ancestors.delete(value);\n return output;\n }\n const output: { [key: string]: FabricTraceJsonValue } = {};\n const keys = Object.keys(record).sort();\n const limit = Math.min(keys.length, MAX_KEYS);\n for (let index = 0; index < limit; index++) {\n const childKey = keys[index]!;\n const child = visit(record[childKey], depth + 1, childKey);\n if (child !== DROP) output[childKey] = child;\n }\n if (keys.length > limit) {\n counts.droppedValues += keys.length - limit;\n counts.truncatedValues++;\n }\n ancestors.delete(value);\n return output;\n };\n\n let value = visit(input, 0);\n if (value === DROP) value = \"[DROPPED]\";\n const originalBytes = serializedBytes(value);\n if (originalBytes > maxBytes) {\n counts.truncatedValues++;\n if (Array.isArray(value)) {\n const output: FabricTraceJsonValue[] = [];\n for (const item of value) {\n const next = [...output, item];\n if (serializedBytes(next) > maxBytes - 128) break;\n output.push(item);\n }\n counts.droppedValues += value.length - output.length;\n value = output;\n } else if (typeof value === \"object\" && value !== null) {\n const output: { [key: string]: FabricTraceJsonValue } = {};\n const entries = Object.entries(value);\n let included = 0;\n for (const [childKey, child] of entries) {\n const next = { ...output, [childKey]: child };\n if (serializedBytes(next) > maxBytes - 128) break;\n output[childKey] = child;\n included++;\n }\n counts.droppedValues += entries.length - included;\n value = output;\n }\n }\n return { value, counts };\n};\n\nconst sanitizeObject = (\n value: Record<string, unknown>,\n droppedValues = 0,\n): Sanitized<{ [key: string]: FabricTraceJsonValue }> => {\n const sanitized = sanitize(value, MAX_ARGS_BYTES);\n sanitized.counts.droppedValues += droppedValues;\n if (typeof sanitized.value === \"object\" && sanitized.value !== null && !Array.isArray(sanitized.value)) {\n return sanitized as Sanitized<{ [key: string]: FabricTraceJsonValue }>;\n }\n sanitized.counts.droppedValues++;\n return { value: {}, counts: sanitized.counts };\n};\n\nconst projectedArgs = (\n ref: string,\n args: Record<string, unknown>,\n): Sanitized<{ [key: string]: FabricTraceJsonValue }> => {\n const projection = projectFabricAuditArgs(ref, args);\n return sanitizeObject(projection.value, projection.droppedValues);\n};\n\nconst sanitizeString = (value: string, maxBytes: number): Sanitized<string> => {\n const bounded = truncateUtf8(value, maxBytes);\n return {\n value: bounded,\n counts: {\n ...emptyCounts(),\n truncatedValues: bounded === value ? 0 : 1,\n },\n };\n};\n\nconst addCounts = (target: FabricExecutionTraceCountsV1, source: MutableCounts): void => {\n target.droppedValues += source.droppedValues;\n target.truncatedValues += source.truncatedValues;\n target.redactedValues += source.redactedValues;\n};\n\nconst lexicalIdentity = (ref: string): { provider?: string; action?: string } => {\n const separator = ref.indexOf(\".\");\n if (separator <= 0 || separator === ref.length - 1) return {};\n return {\n provider: ref.slice(0, separator),\n action: ref.slice(separator + 1),\n };\n};\n\n// Errors whose messages contain no tool output, argument payloads, or\n// user/source text and are safe to quote verbatim in durable traces: registry\n// resolution failures, policy denials, and Fabric-generated guard messages.\nexport class FabricTraceSafeError extends Error {}\n\n// Thrown by the registry when a provider or action cannot be resolved.\nexport class FabricResolutionError extends FabricTraceSafeError {}\n\nconst errorCause = (error: unknown): string | undefined => {\n const message = error instanceof Error ? error.message : typeof error === \"string\" ? error : undefined;\n const trimmed = message?.trim();\n return trimmed ? truncateUtf8Middle(trimmed, MAX_ERROR_BYTES - 256) : undefined;\n};\n\nconst failureMessage = (\n stage: FabricExecutionFailureStageV1,\n outcome: FabricExecutionOutcomeV1,\n cause?: string,\n): string => {\n if (outcome === \"timed_out\") return \"Call timed out\";\n if (outcome === \"aborted\") return \"Call aborted\";\n const summary = `Call failed during ${stage}`;\n return cause ? `${summary}: ${cause}` : summary;\n};\n\nconst executionErrorMessage = (outcome: FabricExecutionOutcomeV1): string | undefined => {\n if (outcome === \"succeeded\") return undefined;\n if (outcome === \"timed_out\") return \"Execution timed out\";\n if (outcome === \"aborted\") return \"Execution aborted\";\n return \"Execution failed\";\n};\n\nexport class FabricExecutionTraceOperationHandle {\n constructor(\n private readonly recorder: FabricExecutionTraceRecorder,\n private readonly operation: MutableOperation | undefined,\n ) {}\n\n resolved(provider: string, action: string): void {\n if (!this.operation || this.recorder.sealed) return;\n const boundedProvider = boundedIdentifier(provider);\n const boundedAction = boundedIdentifier(action);\n if (this.operation.provider !== boundedProvider) {\n this.operation.provider = this.recorder.snapshotIdentifier(provider);\n }\n if (this.operation.action !== boundedAction) {\n this.operation.action = this.recorder.snapshotIdentifier(action);\n }\n }\n\n prepared(args: Record<string, unknown>): void {\n if (!this.operation || this.recorder.sealed) return;\n this.operation.args = projectedArgs(this.operation.projectionRef, args);\n }\n\n succeed(result: unknown, meta?: TraceResultMeta): void {\n if (!this.operation || this.recorder.sealed) return;\n const projected = projectFabricAuditResult(this.operation.projectionRef, result);\n if (projected !== undefined) {\n this.operation.result = sanitize(projected.value, MAX_RESULT_BYTES);\n this.operation.result.counts.droppedValues += projected.droppedValues;\n } else if (result !== undefined) {\n this.operation.droppedResultValues++;\n }\n this.operation.outcome = \"succeeded\";\n if (meta?.resultTruncated === true) this.operation.resultTruncated = true;\n }\n\n fail(\n stage: FabricExecutionFailureStageV1,\n error: unknown,\n outcome: FabricExecutionOutcomeV1 = \"failed\",\n result?: unknown,\n meta?: TraceResultMeta,\n ): void {\n if (!this.operation || this.recorder.sealed) return;\n this.operation.failureStage = stage;\n if (error instanceof FabricTraceSafeError) this.operation.causeSafe = true;\n const cause =\n outcome === \"failed\" &&\n (this.operation.causeSafe === true ||\n (this.operation.projectionRef === \"pi.bash\" && stage === \"invoke\"))\n ? errorCause(error)\n : undefined;\n this.operation.error = sanitizeString(\n failureMessage(stage, outcome, cause),\n MAX_ERROR_BYTES,\n );\n this.operation.outcome = outcome;\n if (meta?.resultTruncated === true) this.operation.resultTruncated = true;\n const projected = projectFabricAuditResult(this.operation.projectionRef, result);\n if (projected !== undefined) {\n this.operation.result = sanitize(projected.value, MAX_RESULT_BYTES);\n this.operation.result.counts.droppedValues += projected.droppedValues;\n } else if (result !== undefined) {\n this.operation.droppedResultValues++;\n }\n }\n}\n\nexport class FabricExecutionTraceRecorder {\n readonly #operations: MutableOperation[] = [];\n #nextSequence = 0;\n #droppedOperations = 0;\n #truncatedIdentifiers = 0;\n sealed = false;\n\n snapshotIdentifier(value: string, maxBytes = MAX_IDENTIFIER_BYTES): string {\n const bounded = boundedIdentifier(value, maxBytes);\n if (bounded !== value) this.#truncatedIdentifiers++;\n return bounded;\n }\n\n issueCall(ref: string, args: Record<string, unknown>): FabricExecutionTraceOperationHandle {\n const sequence = this.#nextSequence++;\n if (this.sealed || this.#operations.length >= MAX_RECORDED_OPERATIONS) {\n this.#droppedOperations++;\n return new FabricExecutionTraceOperationHandle(this, undefined);\n }\n const identity = lexicalIdentity(ref);\n const operation: MutableOperation = {\n type: \"call\",\n sequence,\n ref: this.snapshotIdentifier(ref),\n projectionRef: ref,\n ...(identity.provider ? { provider: this.snapshotIdentifier(identity.provider) } : {}),\n ...(identity.action ? { action: this.snapshotIdentifier(identity.action) } : {}),\n args: projectedArgs(ref, args),\n droppedResultValues: 0,\n };\n this.#operations.push(operation);\n return new FabricExecutionTraceOperationHandle(this, operation);\n }\n\n // safeError must contain no guest source text, tool output, or argument\n // payloads \u2014 callers pass it only for Fabric-generated failure summaries\n // (for example the type-check stage). Guest and provider error text is\n // deliberately not persisted here.\n seal(\n outcome: FabricExecutionOutcomeV1,\n phases: readonly string[],\n safeError?: string,\n ): FabricExecutionTraceV1 {\n this.sealed = true;\n for (const operation of this.#operations) {\n if (!operation.outcome) {\n operation.outcome = outcome === \"timed_out\" ? \"timed_out\" : outcome === \"aborted\" ? \"aborted\" : \"failed\";\n operation.failureStage ??= \"invoke\";\n } else if (operation.outcome === \"aborted\" && outcome === \"timed_out\") {\n // Host calls observe an aborted bridge signal for both cancellation and\n // deadline expiry. The runtime's typed final termination is\n // authoritative when sealing the durable operation.\n operation.outcome = \"timed_out\";\n }\n if (operation.outcome !== \"succeeded\") {\n const preserveCause =\n operation.error !== undefined &&\n (operation.causeSafe === true ||\n (operation.projectionRef === \"pi.bash\" && operation.outcome === \"failed\"));\n if (!preserveCause) {\n operation.error = sanitizeString(\n failureMessage(operation.failureStage ?? \"invoke\", operation.outcome),\n MAX_ERROR_BYTES,\n );\n }\n }\n }\n\n const counts: FabricExecutionTraceCountsV1 = {\n droppedValues: 0,\n truncatedValues: this.#truncatedIdentifiers,\n redactedValues: 0,\n droppedOperations: this.#droppedOperations,\n };\n const operations = this.#operations.map((operation): FabricExecutionTraceOperationV1 => {\n addCounts(counts, operation.args.counts);\n counts.droppedValues += operation.droppedResultValues;\n if (operation.error) addCounts(counts, operation.error.counts);\n if (operation.result) addCounts(counts, operation.result.counts);\n return {\n type: \"call\",\n sequence: operation.sequence,\n ref: operation.ref,\n ...(operation.provider ? { provider: operation.provider } : {}),\n ...(operation.action ? { action: operation.action } : {}),\n args: operation.args.value,\n outcome: operation.outcome!,\n ...(operation.failureStage ? { failureStage: operation.failureStage } : {}),\n ...(operation.error ? { error: operation.error.value } : {}),\n ...(operation.result ? { result: operation.result.value } : {}),\n ...(operation.resultTruncated === true ? { resultTruncated: true as const } : {}),\n };\n });\n const boundedPhases = phases.slice(0, MAX_PHASES).map((phase) => {\n const bounded = boundedIdentifier(phase, MAX_PHASE_BYTES);\n if (bounded !== phase) counts.truncatedValues++;\n return bounded;\n });\n if (phases.length > boundedPhases.length) {\n counts.droppedValues += phases.length - boundedPhases.length;\n counts.truncatedValues++;\n }\n const safeRunError = safeError?.trim() || executionErrorMessage(outcome);\n const runError = safeRunError ? sanitizeString(safeRunError, MAX_ERROR_BYTES) : undefined;\n if (runError) addCounts(counts, runError.counts);\n const trace: FabricExecutionTraceV1 = {\n kind: FABRIC_EXECUTION_TRACE_KIND,\n version: FABRIC_EXECUTION_TRACE_VERSION,\n outcome,\n phases: boundedPhases,\n operations,\n counts,\n ...(runError ? { error: runError.value } : {}),\n };\n\n let traceBytes = serializedBytes(trace);\n const adjustMutation = (\n beforeValueBytes: number,\n afterValueBytes: number,\n beforeCountsBytes: number,\n ): void => {\n traceBytes +=\n afterValueBytes -\n beforeValueBytes +\n serializedBytes(trace.counts) -\n beforeCountsBytes;\n };\n for (\n let index = trace.operations.length - 1;\n traceBytes > FABRIC_EXECUTION_TRACE_MAX_BYTES && index >= 0;\n index--\n ) {\n const operation = trace.operations[index]!;\n if (operation.result === undefined) continue;\n const beforeOperationBytes = serializedBytes(operation);\n const beforeCountsBytes = serializedBytes(trace.counts);\n delete operation.result;\n trace.counts.droppedValues++;\n adjustMutation(\n beforeOperationBytes,\n serializedBytes(operation),\n beforeCountsBytes,\n );\n }\n for (\n let index = trace.operations.length - 1;\n traceBytes > FABRIC_EXECUTION_TRACE_MAX_BYTES && index >= 0;\n index--\n ) {\n const operation = trace.operations[index]!;\n if (Object.keys(operation.args).length === 0) continue;\n const beforeOperationBytes = serializedBytes(operation);\n const beforeCountsBytes = serializedBytes(trace.counts);\n operation.args = {};\n trace.counts.droppedValues++;\n trace.counts.truncatedValues++;\n adjustMutation(\n beforeOperationBytes,\n serializedBytes(operation),\n beforeCountsBytes,\n );\n }\n while (traceBytes > FABRIC_EXECUTION_TRACE_MAX_BYTES && trace.operations.length > 0) {\n const beforeCountsBytes = serializedBytes(trace.counts);\n const operation = trace.operations.pop()!;\n traceBytes -= serializedBytes(operation);\n if (trace.operations.length > 0) traceBytes--;\n trace.counts.droppedOperations++;\n traceBytes += serializedBytes(trace.counts) - beforeCountsBytes;\n }\n while (traceBytes > FABRIC_EXECUTION_TRACE_MAX_BYTES && trace.phases.length > 0) {\n const beforeCountsBytes = serializedBytes(trace.counts);\n const phase = trace.phases.pop()!;\n traceBytes -= serializedBytes(phase);\n if (trace.phases.length > 0) traceBytes--;\n trace.counts.droppedValues++;\n traceBytes += serializedBytes(trace.counts) - beforeCountsBytes;\n }\n return trace;\n }\n}\n\nexport const executionOutcomeFromError = (\n error: unknown,\n signal?: AbortSignal,\n): FabricExecutionOutcomeV1 => {\n if (signal?.aborted) return \"aborted\";\n return error === undefined ? \"succeeded\" : \"failed\";\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst hasOnlyKeys = (value: Record<string, unknown>, keys: readonly string[]): boolean =>\n Object.keys(value).every((key) => keys.includes(key));\n\nconst outcomes = new Set<FabricExecutionOutcomeV1>([\"succeeded\", \"failed\", \"aborted\", \"timed_out\"]);\nconst stages = new Set<FabricExecutionFailureStageV1>([\"resolve\", \"prepare\", \"validate\", \"approve\", \"invoke\", \"guard\"]);\n\nconst isJsonValue = (value: unknown, ancestors = new Set<object>(), depth = 0): value is FabricTraceJsonValue => {\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\") return true;\n if (typeof value === \"number\") return Number.isFinite(value);\n if (typeof value !== \"object\" || depth > MAX_DEPTH + 2 || ancestors.has(value)) return false;\n ancestors.add(value);\n const valid = Array.isArray(value)\n ? value.every((item) => isJsonValue(item, ancestors, depth + 1))\n : Object.values(value as Record<string, unknown>).every((item) => isJsonValue(item, ancestors, depth + 1));\n ancestors.delete(value);\n return valid;\n};\n\nconst isFabricExecutionTraceOperationV1Unchecked = (\n value: unknown,\n): value is FabricExecutionTraceOperationV1 => {\n if (!isRecord(value)) return false;\n if (!hasOnlyKeys(value, [\"type\", \"sequence\", \"ref\", \"provider\", \"action\", \"args\", \"outcome\", \"failureStage\", \"error\", \"result\", \"resultTruncated\"])) return false;\n if (value.type !== \"call\" || !Number.isSafeInteger(value.sequence) || (value.sequence as number) < 0) return false;\n if (typeof value.ref !== \"string\" || !isRecord(value.args) || !isJsonValue(value.args)) return false;\n if (!outcomes.has(value.outcome as FabricExecutionOutcomeV1)) return false;\n if (value.provider !== undefined && typeof value.provider !== \"string\") return false;\n if (value.action !== undefined && typeof value.action !== \"string\") return false;\n if (value.failureStage !== undefined && !stages.has(value.failureStage as FabricExecutionFailureStageV1)) return false;\n if (value.error !== undefined && typeof value.error !== \"string\") return false;\n if (value.resultTruncated !== undefined && typeof value.resultTruncated !== \"boolean\") return false;\n return value.result === undefined || isJsonValue(value.result);\n};\n\nexport const isFabricExecutionTraceOperationV1 = (\n value: unknown,\n): value is FabricExecutionTraceOperationV1 => {\n try {\n return isFabricExecutionTraceOperationV1Unchecked(value);\n } catch {\n return false;\n }\n};\n\nconst isFabricExecutionTraceV1Unchecked = (value: unknown): value is FabricExecutionTraceV1 => {\n if (!isRecord(value)) return false;\n if (!hasOnlyKeys(value, [\"kind\", \"version\", \"outcome\", \"phases\", \"operations\", \"counts\", \"error\"])) return false;\n if (value.kind !== FABRIC_EXECUTION_TRACE_KIND || value.version !== FABRIC_EXECUTION_TRACE_VERSION) return false;\n if (!outcomes.has(value.outcome as FabricExecutionOutcomeV1)) return false;\n if (!Array.isArray(value.phases) || !value.phases.every((phase) => typeof phase === \"string\")) return false;\n if (!Array.isArray(value.operations) || !value.operations.every(isFabricExecutionTraceOperationV1)) return false;\n if (!isRecord(value.counts) || !hasOnlyKeys(value.counts, [\"droppedValues\", \"truncatedValues\", \"redactedValues\", \"droppedOperations\"])) return false;\n const counts = value.counts;\n if (![\"droppedValues\", \"truncatedValues\", \"redactedValues\", \"droppedOperations\"].every((key) => Number.isSafeInteger(counts[key]) && (counts[key] as number) >= 0)) return false;\n if (value.error !== undefined && typeof value.error !== \"string\") return false;\n for (let index = 1; index < value.operations.length; index++) {\n if (value.operations[index]!.sequence <= value.operations[index - 1]!.sequence) return false;\n }\n return serializedBytes(value) <= FABRIC_EXECUTION_TRACE_MAX_BYTES;\n};\n\nexport const isFabricExecutionTraceV1 = (value: unknown): value is FabricExecutionTraceV1 => {\n try {\n return isFabricExecutionTraceV1Unchecked(value);\n } catch {\n return false;\n }\n};\n\nexport const readFabricExecutionTraceV1 = (value: unknown): FabricExecutionTraceV1 | undefined =>\n isFabricExecutionTraceV1(value) ? value : undefined;\n"],
5
+ "mappings": "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",
6
+ "names": ["value", "output", "limit", "projected"]
7
+ }
@@ -4533,7 +4533,21 @@ var callHeadlinePreview = (audit) => {
4533
4533
  const args = audit.args ?? {};
4534
4534
  return providerCallDetail(provider, tool, args, audit.result, audit.preview) || headlineArg(args) || structuralCallDetail(provider, tool, args, audit.result);
4535
4535
  };
4536
+ var nestedResultTruncated = (audit) => {
4537
+ if (audit.resultTruncated === true) return true;
4538
+ const result = audit.result;
4539
+ if (typeof result !== "object" || result === null) return false;
4540
+ const details = result.details;
4541
+ if (typeof details !== "object" || details === null) return false;
4542
+ const truncation = details.truncation;
4543
+ if (typeof truncation !== "object" || truncation === null) return false;
4544
+ return truncation.truncated === true;
4545
+ };
4536
4546
  function nestedCallTitle(audit, theme, invalidate, core) {
4547
+ const title = nestedCallTitleText(audit, theme, invalidate, core);
4548
+ return nestedResultTruncated(audit) ? `${title} ${theme.fg("warning", "\xB7 truncated")}` : title;
4549
+ }
4550
+ var nestedCallTitleText = (audit, theme, invalidate, core) => {
4537
4551
  const coreTitle = core ? coreToolTitle(audit, theme, { ...core, ...invalidate ? { invalidate } : {} }) : null;
4538
4552
  if (coreTitle) return coreTitle;
4539
4553
  const ref = audit.ref;
@@ -4568,7 +4582,7 @@ function nestedCallTitle(audit, theme, invalidate, core) {
4568
4582
  detail = headlineArg(args) || structuralCallDetail(provider, tool, args, audit.result) || audit.previewHeadline || "";
4569
4583
  }
4570
4584
  return detail ? `${title} ${theme.fg("accent", detail)}` : title;
4571
- }
4585
+ };
4572
4586
  var transcriptToolAudit = (entry) => {
4573
4587
  const rawName = entry.toolName ?? entry.label;
4574
4588
  const normalized = rawName.toLowerCase();
@@ -5083,4 +5097,4 @@ export {
5083
5097
  isActiveStatus,
5084
5098
  orderAgentsByCreation
5085
5099
  };
5086
- //# sourceMappingURL=chunk-5A7D37T5.js.map
5100
+ //# sourceMappingURL=chunk-MPS3TDUG.js.map