@stigmer/sdk 3.0.9-dev.20260615153829 → 3.1.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 (89) hide show
  1. package/execution/__tests__/approval-provenance.test.d.ts +2 -0
  2. package/execution/__tests__/approval-provenance.test.d.ts.map +1 -0
  3. package/execution/__tests__/approval-provenance.test.js +42 -0
  4. package/execution/__tests__/approval-provenance.test.js.map +1 -0
  5. package/execution/__tests__/file-review-fold.corpus.test.d.ts +2 -0
  6. package/execution/__tests__/file-review-fold.corpus.test.d.ts.map +1 -0
  7. package/execution/__tests__/file-review-fold.corpus.test.js +82 -0
  8. package/execution/__tests__/file-review-fold.corpus.test.js.map +1 -0
  9. package/execution/__tests__/file-review-fold.test.d.ts +2 -0
  10. package/execution/__tests__/file-review-fold.test.d.ts.map +1 -0
  11. package/execution/__tests__/file-review-fold.test.js +184 -0
  12. package/execution/__tests__/file-review-fold.test.js.map +1 -0
  13. package/execution/__tests__/to-display-file-change.test.d.ts +2 -0
  14. package/execution/__tests__/to-display-file-change.test.d.ts.map +1 -0
  15. package/execution/__tests__/to-display-file-change.test.js +69 -0
  16. package/execution/__tests__/to-display-file-change.test.js.map +1 -0
  17. package/execution/__tests__/tool-view.file-changes.test.d.ts +2 -0
  18. package/execution/__tests__/tool-view.file-changes.test.d.ts.map +1 -0
  19. package/execution/__tests__/tool-view.file-changes.test.js +86 -0
  20. package/execution/__tests__/tool-view.file-changes.test.js.map +1 -0
  21. package/execution/__tests__/tool-view.fixtures.test.js +3 -0
  22. package/execution/__tests__/tool-view.fixtures.test.js.map +1 -1
  23. package/execution/__tests__/tool-view.output-ref.test.d.ts +2 -0
  24. package/execution/__tests__/tool-view.output-ref.test.d.ts.map +1 -0
  25. package/execution/__tests__/tool-view.output-ref.test.js +64 -0
  26. package/execution/__tests__/tool-view.output-ref.test.js.map +1 -0
  27. package/execution/__tests__/tool-view.search.test.d.ts +2 -0
  28. package/execution/__tests__/tool-view.search.test.d.ts.map +1 -0
  29. package/execution/__tests__/tool-view.search.test.js +200 -0
  30. package/execution/__tests__/tool-view.search.test.js.map +1 -0
  31. package/execution/__tests__/tool-view.shell.test.d.ts +2 -0
  32. package/execution/__tests__/tool-view.shell.test.d.ts.map +1 -0
  33. package/execution/__tests__/tool-view.shell.test.js +104 -0
  34. package/execution/__tests__/tool-view.shell.test.js.map +1 -0
  35. package/execution/approval-provenance.d.ts +30 -0
  36. package/execution/approval-provenance.d.ts.map +1 -0
  37. package/execution/approval-provenance.js +73 -0
  38. package/execution/approval-provenance.js.map +1 -0
  39. package/execution/execution-phases.d.ts +7 -0
  40. package/execution/execution-phases.d.ts.map +1 -0
  41. package/execution/execution-phases.js +21 -0
  42. package/execution/execution-phases.js.map +1 -0
  43. package/execution/file-review-fold.d.ts +44 -0
  44. package/execution/file-review-fold.d.ts.map +1 -0
  45. package/execution/file-review-fold.js +182 -0
  46. package/execution/file-review-fold.js.map +1 -0
  47. package/execution/to-display-file-change.d.ts +14 -0
  48. package/execution/to-display-file-change.d.ts.map +1 -0
  49. package/execution/to-display-file-change.js +57 -0
  50. package/execution/to-display-file-change.js.map +1 -0
  51. package/execution/tool-view.d.ts +8 -2
  52. package/execution/tool-view.d.ts.map +1 -1
  53. package/execution/tool-view.js +205 -21
  54. package/execution/tool-view.js.map +1 -1
  55. package/gen/agentexecution.d.ts +2 -1
  56. package/gen/agentexecution.d.ts.map +1 -1
  57. package/gen/agentexecution.js +8 -0
  58. package/gen/agentexecution.js.map +1 -1
  59. package/gen/mcpserver.d.ts +1 -0
  60. package/gen/mcpserver.d.ts.map +1 -1
  61. package/gen/mcpserver.js +1 -0
  62. package/gen/mcpserver.js.map +1 -1
  63. package/gen/workflowexecution.d.ts +2 -1
  64. package/gen/workflowexecution.d.ts.map +1 -1
  65. package/gen/workflowexecution.js +8 -0
  66. package/gen/workflowexecution.js.map +1 -1
  67. package/index.d.ts +5 -1
  68. package/index.d.ts.map +1 -1
  69. package/index.js +5 -1
  70. package/index.js.map +1 -1
  71. package/package.json +2 -2
  72. package/src/execution/__tests__/approval-provenance.test.ts +60 -0
  73. package/src/execution/__tests__/file-review-fold.corpus.test.ts +127 -0
  74. package/src/execution/__tests__/file-review-fold.test.ts +281 -0
  75. package/src/execution/__tests__/to-display-file-change.test.ts +91 -0
  76. package/src/execution/__tests__/tool-view.file-changes.test.ts +100 -0
  77. package/src/execution/__tests__/tool-view.fixtures.test.ts +4 -0
  78. package/src/execution/__tests__/tool-view.output-ref.test.ts +76 -0
  79. package/src/execution/__tests__/tool-view.search.test.ts +264 -0
  80. package/src/execution/__tests__/tool-view.shell.test.ts +127 -0
  81. package/src/execution/approval-provenance.ts +80 -0
  82. package/src/execution/execution-phases.ts +23 -0
  83. package/src/execution/file-review-fold.ts +210 -0
  84. package/src/execution/to-display-file-change.ts +66 -0
  85. package/src/execution/tool-view.ts +261 -30
  86. package/src/gen/agentexecution.ts +7 -1
  87. package/src/gen/mcpserver.ts +2 -0
  88. package/src/gen/workflowexecution.ts +7 -1
  89. package/src/index.ts +12 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=approval-provenance.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-provenance.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/approval-provenance.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { ApprovalPolicySource, describeApprovalPolicySource, isInformativePolicySource, } from "../approval-provenance";
3
+ describe("describeApprovalPolicySource", () => {
4
+ it("maps each known source to a stable human phrase", () => {
5
+ expect(describeApprovalPolicySource(ApprovalPolicySource.CLASSIFIER_DEFAULT)).toBe("required by the tool's default policy");
6
+ expect(describeApprovalPolicySource(ApprovalPolicySource.BUILTIN_CATEGORY)).toBe("required by built-in tool policy");
7
+ expect(describeApprovalPolicySource(ApprovalPolicySource.AGENT_OVERRIDE)).toBe("required by agent override");
8
+ expect(describeApprovalPolicySource(ApprovalPolicySource.ANNOTATION_DESTRUCTIVE_TIGHTEN)).toBe("required: marked destructive by the server");
9
+ });
10
+ it("returns null for UNSPECIFIED (legacy / ungated)", () => {
11
+ expect(describeApprovalPolicySource(ApprovalPolicySource.UNSPECIFIED)).toBeNull();
12
+ });
13
+ });
14
+ describe("isInformativePolicySource", () => {
15
+ it("suppresses the everyday default gating reasons", () => {
16
+ // These add nothing beyond "this tool needs approval" — noise at the gate.
17
+ expect(isInformativePolicySource(ApprovalPolicySource.CLASSIFIER_DEFAULT)).toBe(false);
18
+ expect(isInformativePolicySource(ApprovalPolicySource.BUILTIN_CATEGORY)).toBe(false);
19
+ expect(isInformativePolicySource(ApprovalPolicySource.UNSPECIFIED)).toBe(false);
20
+ });
21
+ it("surfaces reasons that change the user's understanding of the gate", () => {
22
+ expect(isInformativePolicySource(ApprovalPolicySource.PINNED_OVERRIDE)).toBe(true);
23
+ expect(isInformativePolicySource(ApprovalPolicySource.AGENT_OVERRIDE)).toBe(true);
24
+ expect(isInformativePolicySource(ApprovalPolicySource.ANNOTATION_DESTRUCTIVE_TIGHTEN)).toBe(true);
25
+ expect(isInformativePolicySource(ApprovalPolicySource.AUTO_APPROVE_ALL)).toBe(true);
26
+ expect(isInformativePolicySource(ApprovalPolicySource.APPROVAL_LEASE)).toBe(true);
27
+ });
28
+ it("only surfaces a reason that also has a phrase to show", () => {
29
+ // The card renders `isInformative(source) && describe(source) != null`; the
30
+ // two must never disagree for a surfaced source.
31
+ for (const source of [
32
+ ApprovalPolicySource.PINNED_OVERRIDE,
33
+ ApprovalPolicySource.AGENT_OVERRIDE,
34
+ ApprovalPolicySource.ANNOTATION_DESTRUCTIVE_TIGHTEN,
35
+ ApprovalPolicySource.AUTO_APPROVE_ALL,
36
+ ApprovalPolicySource.APPROVAL_LEASE,
37
+ ]) {
38
+ expect(describeApprovalPolicySource(source)).not.toBeNull();
39
+ }
40
+ });
41
+ });
42
+ //# sourceMappingURL=approval-provenance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-provenance.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/approval-provenance.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAChF,uCAAuC,CACxC,CAAC;QACF,MAAM,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAC9E,kCAAkC,CACnC,CAAC;QACF,MAAM,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAC5E,4BAA4B,CAC7B,CAAC;QACF,MAAM,CACJ,4BAA4B,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAClF,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,2EAA2E;QAC3E,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrF,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,MAAM,CACJ,yBAAyB,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAC/E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,4EAA4E;QAC5E,iDAAiD;QACjD,KAAK,MAAM,MAAM,IAAI;YACnB,oBAAoB,CAAC,eAAe;YACpC,oBAAoB,CAAC,cAAc;YACnC,oBAAoB,CAAC,8BAA8B;YACnD,oBAAoB,CAAC,gBAAgB;YACrC,oBAAoB,CAAC,cAAc;SACpC,EAAE,CAAC;YACF,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-review-fold.corpus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-review-fold.corpus.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/file-review-fold.corpus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ // Cross-edition parity lock for the file-review projection.
2
+ //
3
+ // The Go (`FileChangeSetProjector` / project.go) and Java (`FileChangeSetProjector`)
4
+ // projectors replay the shared corpus at apis/testdata/hitl/file-review/*.json.
5
+ // This test replays the SAME corpus against the TypeScript fold, so a drift
6
+ // between the SDK and either backend fails here rather than shipping.
7
+ //
8
+ // The corpus `expected` is the server (actionable) projection, which is empty
9
+ // for a terminal execution. The SDK's display fold intentionally has no terminal
10
+ // gate, so to reproduce the server contract exactly this test applies the phase
11
+ // gate the accessor's callers apply: isTerminalPhase(phase) ? [] : fold(stream).
12
+ // That both proves parity for non-terminal vectors AND pins the terminal-empty
13
+ // vector — the one place the SDK deliberately differs is covered by the accessor
14
+ // test in file-review-fold.test.ts, not here.
15
+ import { readFileSync, readdirSync } from "node:fs";
16
+ import { fileURLToPath } from "node:url";
17
+ import { dirname, resolve } from "node:path";
18
+ import { describe, it, expect } from "vitest";
19
+ import { create, fromJson } from "@bufbuild/protobuf";
20
+ import { FileReviewEventSchema, FileReviewEventStreamSchema, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
21
+ import { ExecutionPhase, FileChangeSetStatus, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
22
+ import { foldFileReviewEventStream } from "../file-review-fold";
23
+ import { isTerminalPhase } from "../execution-phases";
24
+ const here = dirname(fileURLToPath(import.meta.url));
25
+ // sdk/typescript/src/execution/__tests__ -> repo root is five levels up.
26
+ const corpusDir = resolve(here, "../../../../../apis/testdata/hitl/file-review");
27
+ function statusFromName(name) {
28
+ const key = name.replace(/^FILE_CHANGE_SET_STATUS_/, "");
29
+ const value = FileChangeSetStatus[key];
30
+ if (typeof value !== "number") {
31
+ throw new Error(`unknown FileChangeSetStatus in corpus: ${name}`);
32
+ }
33
+ return value;
34
+ }
35
+ function phaseFromName(name) {
36
+ const value = ExecutionPhase[name];
37
+ if (typeof value !== "number") {
38
+ throw new Error(`unknown ExecutionPhase in corpus: ${name}`);
39
+ }
40
+ return value;
41
+ }
42
+ const vectorFiles = readdirSync(corpusDir).filter((f) => f.endsWith(".json") && f !== "schema.json");
43
+ describe("file-review fold — cross-edition corpus parity", () => {
44
+ it("finds the corpus vectors", () => {
45
+ expect(vectorFiles.length).toBeGreaterThan(0);
46
+ });
47
+ for (const file of vectorFiles) {
48
+ const vector = JSON.parse(readFileSync(resolve(corpusDir, file), "utf8"));
49
+ it(`${file}: ${vector.name}`, () => {
50
+ // Decode each event with the generated schema so a malformed fixture fails
51
+ // loudly (matching the backend corpus drivers), then build the stream.
52
+ const events = vector.events.map((ev) => fromJson(FileReviewEventSchema, ev));
53
+ const stream = create(FileReviewEventStreamSchema, {
54
+ executionId: vector.execution_id,
55
+ events,
56
+ });
57
+ const phase = phaseFromName(vector.phase);
58
+ // Reproduce the server's actionable projection: phase-gated fold.
59
+ const projected = isTerminalPhase(phase)
60
+ ? []
61
+ : foldFileReviewEventStream(stream);
62
+ const actual = projected.map((set) => ({
63
+ id: set.id,
64
+ status: set.status,
65
+ change_ids: set.changes.map((c) => c.id),
66
+ decision_count: set.decisions.length,
67
+ aggregate_digest: set.aggregateDigest,
68
+ has_approved_snapshot: set.approvedSnapshot !== undefined,
69
+ }));
70
+ const expected = vector.expected.map((e) => ({
71
+ id: e.id,
72
+ status: statusFromName(e.status),
73
+ change_ids: e.change_ids ?? [],
74
+ decision_count: e.decision_count ?? 0,
75
+ aggregate_digest: e.aggregate_digest ?? "",
76
+ has_approved_snapshot: e.has_approved_snapshot ?? false,
77
+ }));
78
+ expect(actual).toEqual(expected);
79
+ });
80
+ }
81
+ });
82
+ //# sourceMappingURL=file-review-fold.corpus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-review-fold.corpus.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/file-review-fold.corpus.test.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,qFAAqF;AACrF,gFAAgF;AAChF,4EAA4E;AAC5E,sEAAsE;AACtE,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,8CAA8C;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,oEAAoE,CAAC;AAC5E,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,yEAAyE;AACzE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;AAqBjF,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB,0BAA0B,EAC1B,EAAE,CACiC,CAAC;IACtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAmC,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,aAAa,CAClD,CAAC;AAEF,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CACrC,CAAC;QAEZ,EAAE,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;YACjC,2EAA2E;YAC3E,uEAAuE;YACvE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACtC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,CAAC,CACpC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,2BAA2B,EAAE;gBACjD,WAAW,EAAE,MAAM,CAAC,YAAY;gBAChC,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,kEAAkE;YAClE,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;gBACtC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACrC,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxC,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;gBACpC,gBAAgB,EAAE,GAAG,CAAC,eAAe;gBACrC,qBAAqB,EAAE,GAAG,CAAC,gBAAgB,KAAK,SAAS;aAC1D,CAAC,CAAC,CAAC;YAEJ,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;gBAChC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;gBAC9B,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC;gBACrC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,EAAE;gBAC1C,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,IAAI,KAAK;aACxD,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-review-fold.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-review-fold.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/file-review-fold.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,184 @@
1
+ // Unit tests for the file-review fold and its display read-seam. The
2
+ // cross-edition parity with the Go/Java projectors is locked separately by
3
+ // file-review-fold.corpus.test.ts; these cover the TS-specific edges and the
4
+ // deliberate terminal divergence of displayFileChangeSets.
5
+ import { describe, it, expect } from "vitest";
6
+ import { create } from "@bufbuild/protobuf";
7
+ import { FileChangeSetSchema, CapturedFileChangeSchema, FileDecisionSchema, FileReviewEventSchema, FileReviewEventStreamSchema, FileReviewBaselineCapturedSchema, FileReviewCandidateCapturedSchema, FileReviewReconciledSchema, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
8
+ import { AgentExecutionStatusSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
9
+ import { FileChangeKind, FileChangeSetStatus, FileDecisionAction, FileDecisionScope, FileReviewEventType, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
10
+ import { displayFileChangeSets, foldFileReviewEventStream, } from "../file-review-fold";
11
+ // ---------------------------------------------------------------------------
12
+ // Event builders (keep the tests readable)
13
+ // ---------------------------------------------------------------------------
14
+ function change(id, path = `src/${id}.ts`) {
15
+ return create(CapturedFileChangeSchema, {
16
+ id,
17
+ pathAfter: path,
18
+ kind: FileChangeKind.MODIFY,
19
+ diffComplete: true,
20
+ });
21
+ }
22
+ function baseline(changeSetId) {
23
+ return create(FileReviewEventSchema, {
24
+ changeSetId,
25
+ eventType: FileReviewEventType.BASELINE_CAPTURED,
26
+ payload: {
27
+ case: "baselineCaptured",
28
+ value: create(FileReviewBaselineCapturedSchema, {
29
+ changeSetId,
30
+ turnId: "t1",
31
+ harnessId: "deep-agent",
32
+ }),
33
+ },
34
+ });
35
+ }
36
+ function candidate(changeSetId, changes, agg = "agg") {
37
+ return create(FileReviewEventSchema, {
38
+ changeSetId,
39
+ eventType: FileReviewEventType.CANDIDATE_CAPTURED,
40
+ payload: {
41
+ case: "candidateCaptured",
42
+ value: create(FileReviewCandidateCapturedSchema, {
43
+ changeSetId,
44
+ changes,
45
+ aggregateDigest: agg,
46
+ }),
47
+ },
48
+ });
49
+ }
50
+ function fileDecision(changeSetId, fileChangeId, action = FileDecisionAction.APPROVE) {
51
+ return create(FileReviewEventSchema, {
52
+ changeSetId,
53
+ eventType: FileReviewEventType.FILE_DECIDED,
54
+ payload: {
55
+ case: "fileDecided",
56
+ value: create(FileDecisionSchema, {
57
+ changeSetId,
58
+ fileChangeId,
59
+ scope: FileDecisionScope.FILE,
60
+ action,
61
+ }),
62
+ },
63
+ });
64
+ }
65
+ function changeSetDecision(changeSetId) {
66
+ return create(FileReviewEventSchema, {
67
+ changeSetId,
68
+ eventType: FileReviewEventType.FILE_DECIDED,
69
+ payload: {
70
+ case: "fileDecided",
71
+ value: create(FileDecisionSchema, {
72
+ changeSetId,
73
+ scope: FileDecisionScope.CHANGE_SET,
74
+ action: FileDecisionAction.APPROVE,
75
+ }),
76
+ },
77
+ });
78
+ }
79
+ function reconciled(changeSetId) {
80
+ return create(FileReviewEventSchema, {
81
+ changeSetId,
82
+ eventType: FileReviewEventType.RECONCILED,
83
+ payload: {
84
+ case: "reconciled",
85
+ value: create(FileReviewReconciledSchema, { changeSetId }),
86
+ },
87
+ });
88
+ }
89
+ function failed(changeSetId) {
90
+ return create(FileReviewEventSchema, {
91
+ changeSetId,
92
+ eventType: FileReviewEventType.FAILED,
93
+ payload: { case: undefined },
94
+ });
95
+ }
96
+ function stream(...events) {
97
+ return create(FileReviewEventStreamSchema, { executionId: "aex_1", events });
98
+ }
99
+ // ---------------------------------------------------------------------------
100
+ // foldFileReviewEventStream
101
+ // ---------------------------------------------------------------------------
102
+ describe("foldFileReviewEventStream", () => {
103
+ it("returns [] for undefined / empty streams", () => {
104
+ expect(foldFileReviewEventStream(undefined)).toEqual([]);
105
+ expect(foldFileReviewEventStream(stream())).toEqual([]);
106
+ });
107
+ it("opens a set as CAPTURING on baseline, before any candidate", () => {
108
+ const [set] = foldFileReviewEventStream(stream(baseline("cs1")));
109
+ expect(set.status).toBe(FileChangeSetStatus.CAPTURING);
110
+ expect(set.turnId).toBe("t1");
111
+ expect(set.harnessId).toBe("deep-agent");
112
+ expect(set.changes).toHaveLength(0);
113
+ });
114
+ it("moves to AWAITING_REVIEW once a candidate carries changes", () => {
115
+ const [set] = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1")], "agg1")));
116
+ expect(set.status).toBe(FileChangeSetStatus.AWAITING_REVIEW);
117
+ expect(set.changes.map((c) => c.id)).toEqual(["fc1"]);
118
+ expect(set.aggregateDigest).toBe("agg1");
119
+ });
120
+ it("replaces the change list wholesale on a later candidate", () => {
121
+ const [set] = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1"), change("fc2")]), candidate("cs1", [change("fc3")])));
122
+ expect(set.changes.map((c) => c.id)).toEqual(["fc3"]);
123
+ });
124
+ it("marks DECIDED only when every file has a verdict", () => {
125
+ const partial = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1"), change("fc2")]), fileDecision("cs1", "fc1")))[0];
126
+ expect(partial.status).toBe(FileChangeSetStatus.AWAITING_REVIEW);
127
+ expect(partial.decisions).toHaveLength(1);
128
+ const full = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1"), change("fc2")]), fileDecision("cs1", "fc1"), fileDecision("cs1", "fc2")))[0];
129
+ expect(full.status).toBe(FileChangeSetStatus.DECIDED);
130
+ });
131
+ it("treats a CHANGE_SET decision as covering every file", () => {
132
+ const [set] = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1"), change("fc2")]), changeSetDecision("cs1")));
133
+ expect(set.status).toBe(FileChangeSetStatus.DECIDED);
134
+ });
135
+ it("keeps terminal RECONCILED/FAILED sticky against a later decision", () => {
136
+ const reconciledSet = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1")]), reconciled("cs1"), fileDecision("cs1", "fc1")))[0];
137
+ expect(reconciledSet.status).toBe(FileChangeSetStatus.RECONCILED);
138
+ const failedSet = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1")]), failed("cs1")))[0];
139
+ expect(failedSet.status).toBe(FileChangeSetStatus.FAILED);
140
+ });
141
+ it("groups multiple change sets in first-seen order", () => {
142
+ const sets = foldFileReviewEventStream(stream(baseline("cs2"), candidate("cs2", [change("fc-a")]), baseline("cs1"), candidate("cs1", [change("fc-b")])));
143
+ expect(sets.map((s) => s.id)).toEqual(["cs2", "cs1"]);
144
+ });
145
+ it("skips events with no change_set_id", () => {
146
+ const orphan = create(FileReviewEventSchema, {
147
+ changeSetId: "",
148
+ eventType: FileReviewEventType.BASELINE_CAPTURED,
149
+ });
150
+ expect(foldFileReviewEventStream(stream(orphan))).toEqual([]);
151
+ });
152
+ });
153
+ // ---------------------------------------------------------------------------
154
+ // displayFileChangeSets — projection-first, fold-on-terminal
155
+ // ---------------------------------------------------------------------------
156
+ describe("displayFileChangeSets", () => {
157
+ it("returns [] for undefined status", () => {
158
+ expect(displayFileChangeSets(undefined)).toEqual([]);
159
+ });
160
+ it("prefers the server projection when present (preserving its reference)", () => {
161
+ const projected = [create(FileChangeSetSchema, { id: "cs1" })];
162
+ const status = create(AgentExecutionStatusSchema, {
163
+ fileChangeSets: projected,
164
+ // A ledger is also present, but the projection wins for a live execution.
165
+ fileReviewEventStream: stream(baseline("cs1")),
166
+ });
167
+ const result = displayFileChangeSets(status);
168
+ expect(result).toBe(status.fileChangeSets); // same ref — no re-fold, memo-safe
169
+ });
170
+ it("folds the ledger when the projection is empty (terminal execution)", () => {
171
+ const status = create(AgentExecutionStatusSchema, {
172
+ fileChangeSets: [], // terminal: server projects nil
173
+ fileReviewEventStream: stream(baseline("cs1"), candidate("cs1", [change("fc1")]), changeSetDecision("cs1"), reconciled("cs1")),
174
+ });
175
+ const result = displayFileChangeSets(status);
176
+ expect(result.map((s) => s.id)).toEqual(["cs1"]);
177
+ expect(result[0].status).toBe(FileChangeSetStatus.RECONCILED);
178
+ });
179
+ it("returns [] when neither projection nor ledger has content", () => {
180
+ const status = create(AgentExecutionStatusSchema, {});
181
+ expect(displayFileChangeSets(status)).toEqual([]);
182
+ });
183
+ });
184
+ //# sourceMappingURL=file-review-fold.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-review-fold.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/file-review-fold.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=to-display-file-change.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-display-file-change.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/to-display-file-change.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ // Unit tests for the CapturedFileChange -> FileChange display projection.
2
+ import { describe, it, expect } from "vitest";
3
+ import { create } from "@bufbuild/protobuf";
4
+ import { CapturedFileChangeSchema, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
5
+ import { FileContentSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
6
+ import { FileChangeCaptureLevel, FileChangeKind, FileChangeType, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
7
+ import { toDisplayFileChange } from "../to-display-file-change";
8
+ function inline(text) {
9
+ return create(FileContentSchema, { body: { case: "inline", value: text } });
10
+ }
11
+ describe("toDisplayFileChange", () => {
12
+ it("maps a MODIFY with both sides to a WHOLE_FILE before/after change", () => {
13
+ const fc = toDisplayFileChange(create(CapturedFileChangeSchema, {
14
+ id: "fc1",
15
+ pathBefore: "src/a.ts",
16
+ pathAfter: "src/a.ts",
17
+ kind: FileChangeKind.MODIFY,
18
+ before: inline("old"),
19
+ after: inline("new"),
20
+ }));
21
+ expect(fc.path).toBe("src/a.ts");
22
+ expect(fc.changeType).toBe(FileChangeType.MODIFY);
23
+ expect(fc.captureLevel).toBe(FileChangeCaptureLevel.WHOLE_FILE);
24
+ expect(fc.before?.body.case).toBe("inline");
25
+ expect(fc.after?.body.case).toBe("inline");
26
+ expect(fc.renameFrom).toBe("");
27
+ });
28
+ it("maps ADD -> CREATE and uses pathAfter", () => {
29
+ const fc = toDisplayFileChange(create(CapturedFileChangeSchema, {
30
+ id: "fc1",
31
+ pathAfter: "src/new.ts",
32
+ kind: FileChangeKind.ADD,
33
+ after: inline("hello"),
34
+ }));
35
+ expect(fc.changeType).toBe(FileChangeType.CREATE);
36
+ expect(fc.path).toBe("src/new.ts");
37
+ });
38
+ it("maps DELETE -> DELETE and uses pathBefore when pathAfter is empty", () => {
39
+ const fc = toDisplayFileChange(create(CapturedFileChangeSchema, {
40
+ id: "fc1",
41
+ pathBefore: "src/gone.ts",
42
+ kind: FileChangeKind.DELETE,
43
+ before: inline("bye"),
44
+ }));
45
+ expect(fc.changeType).toBe(FileChangeType.DELETE);
46
+ expect(fc.path).toBe("src/gone.ts");
47
+ });
48
+ it("maps RENAME -> RENAME and carries renameFrom = pathBefore", () => {
49
+ const fc = toDisplayFileChange(create(CapturedFileChangeSchema, {
50
+ id: "fc1",
51
+ pathBefore: "src/old-name.ts",
52
+ pathAfter: "src/new-name.ts",
53
+ kind: FileChangeKind.RENAME,
54
+ }));
55
+ expect(fc.changeType).toBe(FileChangeType.RENAME);
56
+ expect(fc.path).toBe("src/new-name.ts");
57
+ expect(fc.renameFrom).toBe("src/old-name.ts");
58
+ });
59
+ it("carries a binary side through so the renderer can detect it", () => {
60
+ const fc = toDisplayFileChange(create(CapturedFileChangeSchema, {
61
+ id: "fc1",
62
+ pathAfter: "img.png",
63
+ kind: FileChangeKind.ADD,
64
+ after: create(FileContentSchema, { isBinary: true }),
65
+ }));
66
+ expect(fc.after?.isBinary).toBe(true);
67
+ });
68
+ });
69
+ //# sourceMappingURL=to-display-file-change.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-display-file-change.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/to-display-file-change.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool-view.file-changes.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-view.file-changes.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/tool-view.file-changes.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ // Covers normalizeToolResult's file-edit / file-write views, reconstructed from
2
+ // the tool args (and the Cursor result envelope). Phase 5 Slice 4 removed the
3
+ // ToolCall.file_changes capture (message.proto field 22), so the args are the
4
+ // single source for the inline transcript diff; captured file review renders via
5
+ // FileReviewCard / the FileChangeSet ledger, tested separately.
6
+ import { describe, it, expect } from "vitest";
7
+ import { create } from "@bufbuild/protobuf";
8
+ import { ToolCallSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
9
+ import { ToolCallStatus, ToolKind, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
10
+ import { normalizeToolResult } from "../tool-view";
11
+ /** A completed FILE_EDIT tool call carrying the given args/result. */
12
+ function editToolCall(opts) {
13
+ return create(ToolCallSchema, {
14
+ id: "tc-1",
15
+ name: "edit_file",
16
+ toolKind: ToolKind.FILE_EDIT,
17
+ status: ToolCallStatus.TOOL_CALL_COMPLETED,
18
+ args: (opts.args ?? {}),
19
+ result: opts.result ?? "",
20
+ });
21
+ }
22
+ /** A completed FILE_WRITE tool call carrying the given args. */
23
+ function writeToolCall(opts) {
24
+ return create(ToolCallSchema, {
25
+ id: "tc-w",
26
+ name: "write_file",
27
+ toolKind: ToolKind.FILE_WRITE,
28
+ status: ToolCallStatus.TOOL_CALL_COMPLETED,
29
+ args: (opts.args ?? {}),
30
+ });
31
+ }
32
+ describe("normalizeEdit — from args", () => {
33
+ it("reconstructs a diff from old_string / new_string", () => {
34
+ const view = normalizeToolResult(editToolCall({
35
+ args: { path: "legacy.ts", old_string: "foo", new_string: "bar" },
36
+ result: "Successfully replaced 1 occurrence(s)",
37
+ }));
38
+ expect(view.type).toBe("diff");
39
+ if (view.type !== "diff")
40
+ return;
41
+ expect(view.oldText).toBe("foo");
42
+ expect(view.newText).toBe("bar");
43
+ expect(view.path).toBe("legacy.ts");
44
+ // The row carries no whole-file capture; captureLevel is left unset.
45
+ expect(view.captureLevel).toBeUndefined();
46
+ });
47
+ it("parses the Cursor result envelope stats when present", () => {
48
+ const view = normalizeToolResult(editToolCall({
49
+ args: { path: "x.ts" },
50
+ result: JSON.stringify({
51
+ value: { linesAdded: 3, linesRemoved: 2, diffString: "@@ patch @@" },
52
+ }),
53
+ }));
54
+ if (view.type !== "diff")
55
+ return;
56
+ expect(view.linesAdded).toBe(3);
57
+ expect(view.linesRemoved).toBe(2);
58
+ expect(view.unifiedDiff).toBe("@@ patch @@");
59
+ expect(view.captureLevel).toBeUndefined();
60
+ });
61
+ it("resolves the path from the args (path / file_path / file / filename)", () => {
62
+ expect((() => {
63
+ const v = normalizeToolResult(editToolCall({ args: { file_path: "src/app/main.ts", old_string: "a", new_string: "b" } }));
64
+ return v.type === "diff" ? v.path : "";
65
+ })()).toBe("src/app/main.ts");
66
+ });
67
+ });
68
+ describe("normalizeWrite — from args", () => {
69
+ it("renders the proposed whole-file content from the args (contents)", () => {
70
+ const CONTENT = "# Notes\n\n- first\n- second\n";
71
+ const view = normalizeToolResult(writeToolCall({ args: { path: "notes.md", contents: CONTENT } }));
72
+ expect(view.type).toBe("file");
73
+ if (view.type !== "file")
74
+ return;
75
+ expect(view.path).toBe("notes.md");
76
+ expect(view.content).toBe(CONTENT);
77
+ });
78
+ it("defaults to empty content when the args carry none", () => {
79
+ const view = normalizeToolResult(writeToolCall({ args: { path: "empty.ts" } }));
80
+ if (view.type !== "file")
81
+ return;
82
+ expect(view.content).toBe("");
83
+ expect(view.path).toBe("empty.ts");
84
+ });
85
+ });
86
+ //# sourceMappingURL=tool-view.file-changes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-view.file-changes.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/tool-view.file-changes.test.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,9 @@ describe("result-view fixtures", () => {
58
58
  if (c.expected.exitCode !== undefined && view.type === "terminal") {
59
59
  expect(view.exitCode).toBe(c.expected.exitCode);
60
60
  }
61
+ if (c.expected.command !== undefined && view.type === "terminal") {
62
+ expect(view.command).toBe(c.expected.command);
63
+ }
61
64
  if (c.expected.count !== undefined && view.type === "search") {
62
65
  expect(view.count).toBe(c.expected.count);
63
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-view.fixtures.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/tool-view.fixtures.test.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,oEAAoE;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAmB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEpF,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,yEAAyE;AACzE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,wCAAwC,CAAC,CAAC;AAE3E,SAAS,WAAW,CAAI,IAAY;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAM,CAAC;AAC1E,CAAC;AAED,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAE1B,qBAAqB,CAAC,CAAC;IAE1B,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAA0B,CAAC,CAAC;QAC1F,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;YAC3F,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAoBpC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAA0B,mBAAmB,CAAC,CAAC;IAE5E,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,kBAAkB;gBAC7B,CAAC,CAAC,cAAc,CAAC,gBAAgB;gBACjC,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC;YAEzC,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,EAAE;gBACtC,EAAE,EAAE,CAAC,CAAC,IAAI;gBACV,IAAI,EAAE,CAAC,CAAC,QAAQ;gBAChB,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;gBACpB,MAAM;gBACN,IAAI,EAAE,CAAC,CAAC,IAAkB;aAC3B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAExC,4DAA4D;YAC5D,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC5E,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,EAAE;YACtC,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,QAAQ,CAAC,KAAK;SACzB,CAAC,CAAC;QACH,2EAA2E;QAC3E,MAAM,IAAI,GAAG,mBAAmB,CAC9B,MAAM,CAAC,cAAc,EAAE;YACrB,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,QAAQ,CAAC,KAAK;YACxB,MAAM,EAAE,2BAA2B;YACnC,MAAM,EAAE,cAAc,CAAC,mBAAmB;SAC3C,CAAC,CACH,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,QAAQ,GAAG,mBAAmB,CAClC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAC3G,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,QAAQ,GAAG,mBAAmB,CAClC,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,mBAAmB,EAAE,CAAC,CACzG,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"tool-view.fixtures.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/tool-view.fixtures.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool-view.output-ref.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-view.output-ref.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/tool-view.output-ref.test.ts"],"names":[],"mappings":""}