@agent-teams/engineering-foundation 0.17.0-rc.7 → 0.17.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 (147) hide show
  1. package/README.md +33 -47
  2. package/dist/capabilities/quality-gate-runner/adapters/inbound/cli/report-renderer.d.ts +3 -0
  3. package/dist/capabilities/quality-gate-runner/adapters/inbound/cli/report-renderer.d.ts.map +1 -0
  4. package/dist/capabilities/quality-gate-runner/adapters/inbound/cli/report-renderer.js +17 -0
  5. package/dist/capabilities/quality-gate-runner/adapters/inbound/cli/report-renderer.js.map +1 -0
  6. package/dist/capabilities/quality-gate-runner/adapters/outbound/filesystem/filesystem-package-script-catalog-reader.d.ts +7 -0
  7. package/dist/capabilities/quality-gate-runner/adapters/outbound/filesystem/filesystem-package-script-catalog-reader.d.ts.map +1 -0
  8. package/dist/capabilities/quality-gate-runner/adapters/outbound/filesystem/filesystem-package-script-catalog-reader.js +51 -0
  9. package/dist/capabilities/quality-gate-runner/adapters/outbound/filesystem/filesystem-package-script-catalog-reader.js.map +1 -0
  10. package/dist/capabilities/quality-gate-runner/adapters/outbound/pnpm/pnpm-package-script-executor.d.ts +22 -0
  11. package/dist/capabilities/quality-gate-runner/adapters/outbound/pnpm/pnpm-package-script-executor.d.ts.map +1 -0
  12. package/dist/capabilities/quality-gate-runner/adapters/outbound/pnpm/pnpm-package-script-executor.js +90 -0
  13. package/dist/capabilities/quality-gate-runner/adapters/outbound/pnpm/pnpm-package-script-executor.js.map +1 -0
  14. package/dist/capabilities/quality-gate-runner/adapters/outbound/time/performance-monotonic-clock.d.ts +3 -0
  15. package/dist/capabilities/quality-gate-runner/adapters/outbound/time/performance-monotonic-clock.d.ts.map +1 -0
  16. package/dist/capabilities/quality-gate-runner/adapters/outbound/time/performance-monotonic-clock.js +5 -0
  17. package/dist/capabilities/quality-gate-runner/adapters/outbound/time/performance-monotonic-clock.js.map +1 -0
  18. package/dist/capabilities/quality-gate-runner/application/model/quality-gate-report.d.ts +18 -0
  19. package/dist/capabilities/quality-gate-runner/application/model/quality-gate-report.d.ts.map +1 -0
  20. package/dist/capabilities/quality-gate-runner/application/model/quality-gate-report.js +2 -0
  21. package/dist/capabilities/quality-gate-runner/application/model/quality-gate-report.js.map +1 -0
  22. package/dist/capabilities/quality-gate-runner/application/model/quality-gate.d.ts +19 -0
  23. package/dist/capabilities/quality-gate-runner/application/model/quality-gate.d.ts.map +1 -0
  24. package/dist/capabilities/quality-gate-runner/application/model/quality-gate.js +2 -0
  25. package/dist/capabilities/quality-gate-runner/application/model/quality-gate.js.map +1 -0
  26. package/dist/capabilities/quality-gate-runner/application/policies/evaluate-quality-gate-scripts.d.ts +4 -0
  27. package/dist/capabilities/quality-gate-runner/application/policies/evaluate-quality-gate-scripts.d.ts.map +1 -0
  28. package/dist/capabilities/quality-gate-runner/application/policies/evaluate-quality-gate-scripts.js +64 -0
  29. package/dist/capabilities/quality-gate-runner/application/policies/evaluate-quality-gate-scripts.js.map +1 -0
  30. package/dist/capabilities/quality-gate-runner/application/policies/validate-quality-gate-graph.d.ts +6 -0
  31. package/dist/capabilities/quality-gate-runner/application/policies/validate-quality-gate-graph.d.ts.map +1 -0
  32. package/dist/capabilities/quality-gate-runner/application/policies/validate-quality-gate-graph.js +75 -0
  33. package/dist/capabilities/quality-gate-runner/application/policies/validate-quality-gate-graph.js.map +1 -0
  34. package/dist/capabilities/quality-gate-runner/application/ports/monotonic-clock.d.ts +4 -0
  35. package/dist/capabilities/quality-gate-runner/application/ports/monotonic-clock.d.ts.map +1 -0
  36. package/dist/capabilities/quality-gate-runner/application/ports/monotonic-clock.js +2 -0
  37. package/dist/capabilities/quality-gate-runner/application/ports/monotonic-clock.js.map +1 -0
  38. package/dist/capabilities/quality-gate-runner/application/ports/package-script-catalog-reader.d.ts +5 -0
  39. package/dist/capabilities/quality-gate-runner/application/ports/package-script-catalog-reader.d.ts.map +1 -0
  40. package/dist/capabilities/quality-gate-runner/application/ports/package-script-catalog-reader.js +2 -0
  41. package/dist/capabilities/quality-gate-runner/application/ports/package-script-catalog-reader.js.map +1 -0
  42. package/dist/capabilities/quality-gate-runner/application/ports/package-script-executor.d.ts +20 -0
  43. package/dist/capabilities/quality-gate-runner/application/ports/package-script-executor.d.ts.map +1 -0
  44. package/dist/capabilities/quality-gate-runner/application/ports/package-script-executor.js +9 -0
  45. package/dist/capabilities/quality-gate-runner/application/ports/package-script-executor.js.map +1 -0
  46. package/dist/capabilities/quality-gate-runner/application/rules.d.ts +12 -0
  47. package/dist/capabilities/quality-gate-runner/application/rules.d.ts.map +1 -0
  48. package/dist/capabilities/quality-gate-runner/application/rules.js +18 -0
  49. package/dist/capabilities/quality-gate-runner/application/rules.js.map +1 -0
  50. package/dist/capabilities/quality-gate-runner/application/use-cases/analyze-quality-gate-runner.d.ts +9 -0
  51. package/dist/capabilities/quality-gate-runner/application/use-cases/analyze-quality-gate-runner.d.ts.map +1 -0
  52. package/dist/capabilities/quality-gate-runner/application/use-cases/analyze-quality-gate-runner.js +5 -0
  53. package/dist/capabilities/quality-gate-runner/application/use-cases/analyze-quality-gate-runner.js.map +1 -0
  54. package/dist/capabilities/quality-gate-runner/application/use-cases/run-quality-gate-profile.d.ts +10 -0
  55. package/dist/capabilities/quality-gate-runner/application/use-cases/run-quality-gate-profile.d.ts.map +1 -0
  56. package/dist/capabilities/quality-gate-runner/application/use-cases/run-quality-gate-profile.js +138 -0
  57. package/dist/capabilities/quality-gate-runner/application/use-cases/run-quality-gate-profile.js.map +1 -0
  58. package/dist/capabilities/quality-gate-runner/contract/config.d.ts +5 -0
  59. package/dist/capabilities/quality-gate-runner/contract/config.d.ts.map +1 -0
  60. package/dist/capabilities/quality-gate-runner/contract/config.js +89 -0
  61. package/dist/capabilities/quality-gate-runner/contract/config.js.map +1 -0
  62. package/dist/capabilities/quality-gate-runner/gate-command.d.ts +10 -0
  63. package/dist/capabilities/quality-gate-runner/gate-command.d.ts.map +1 -0
  64. package/dist/capabilities/quality-gate-runner/gate-command.js +82 -0
  65. package/dist/capabilities/quality-gate-runner/gate-command.js.map +1 -0
  66. package/dist/capabilities/quality-gate-runner/module.d.ts +5 -0
  67. package/dist/capabilities/quality-gate-runner/module.d.ts.map +1 -0
  68. package/dist/capabilities/quality-gate-runner/module.js +49 -0
  69. package/dist/capabilities/quality-gate-runner/module.js.map +1 -0
  70. package/dist/capabilities/repository-agent-workflow/adapters/inbound/cli/report-renderer.d.ts +2 -0
  71. package/dist/capabilities/repository-agent-workflow/adapters/inbound/cli/report-renderer.d.ts.map +1 -1
  72. package/dist/capabilities/repository-agent-workflow/adapters/inbound/cli/report-renderer.js +32 -0
  73. package/dist/capabilities/repository-agent-workflow/adapters/inbound/cli/report-renderer.js.map +1 -1
  74. package/dist/capabilities/repository-agent-workflow/adapters/outbound/filesystem/filesystem-effective-instructions-reader.d.ts +16 -0
  75. package/dist/capabilities/repository-agent-workflow/adapters/outbound/filesystem/filesystem-effective-instructions-reader.d.ts.map +1 -0
  76. package/dist/capabilities/repository-agent-workflow/adapters/outbound/filesystem/filesystem-effective-instructions-reader.js +213 -0
  77. package/dist/capabilities/repository-agent-workflow/adapters/outbound/filesystem/filesystem-effective-instructions-reader.js.map +1 -0
  78. package/dist/capabilities/repository-agent-workflow/adapters/outbound/git/git-repository-changes-reader.d.ts +9 -0
  79. package/dist/capabilities/repository-agent-workflow/adapters/outbound/git/git-repository-changes-reader.d.ts.map +1 -1
  80. package/dist/capabilities/repository-agent-workflow/adapters/outbound/git/git-repository-changes-reader.js +232 -62
  81. package/dist/capabilities/repository-agent-workflow/adapters/outbound/git/git-repository-changes-reader.js.map +1 -1
  82. package/dist/capabilities/repository-agent-workflow/adapters/outbound/process/process-execution.d.ts +1 -0
  83. package/dist/capabilities/repository-agent-workflow/adapters/outbound/process/process-execution.d.ts.map +1 -1
  84. package/dist/capabilities/repository-agent-workflow/adapters/outbound/process/process-execution.js +2 -1
  85. package/dist/capabilities/repository-agent-workflow/adapters/outbound/process/process-execution.js.map +1 -1
  86. package/dist/capabilities/repository-agent-workflow/application/model/changed-workflow.d.ts +26 -0
  87. package/dist/capabilities/repository-agent-workflow/application/model/changed-workflow.d.ts.map +1 -1
  88. package/dist/capabilities/repository-agent-workflow/application/model/effective-instructions.d.ts +61 -0
  89. package/dist/capabilities/repository-agent-workflow/application/model/effective-instructions.d.ts.map +1 -0
  90. package/dist/capabilities/repository-agent-workflow/application/model/effective-instructions.js +7 -0
  91. package/dist/capabilities/repository-agent-workflow/application/model/effective-instructions.js.map +1 -0
  92. package/dist/capabilities/repository-agent-workflow/application/ports/effective-instructions-reader.d.ts +15 -0
  93. package/dist/capabilities/repository-agent-workflow/application/ports/effective-instructions-reader.d.ts.map +1 -0
  94. package/dist/capabilities/repository-agent-workflow/application/ports/effective-instructions-reader.js +2 -0
  95. package/dist/capabilities/repository-agent-workflow/application/ports/effective-instructions-reader.js.map +1 -0
  96. package/dist/capabilities/repository-agent-workflow/application/use-cases/resolve-effective-instructions.d.ts +8 -0
  97. package/dist/capabilities/repository-agent-workflow/application/use-cases/resolve-effective-instructions.d.ts.map +1 -0
  98. package/dist/capabilities/repository-agent-workflow/application/use-cases/resolve-effective-instructions.js +128 -0
  99. package/dist/capabilities/repository-agent-workflow/application/use-cases/resolve-effective-instructions.js.map +1 -0
  100. package/dist/capabilities/repository-agent-workflow/application/use-cases/run-changed-agent-workflow.d.ts.map +1 -1
  101. package/dist/capabilities/repository-agent-workflow/application/use-cases/run-changed-agent-workflow.js +8 -0
  102. package/dist/capabilities/repository-agent-workflow/application/use-cases/run-changed-agent-workflow.js.map +1 -1
  103. package/dist/capabilities/repository-agent-workflow/instructions-command.d.ts +6 -0
  104. package/dist/capabilities/repository-agent-workflow/instructions-command.d.ts.map +1 -0
  105. package/dist/capabilities/repository-agent-workflow/instructions-command.js +26 -0
  106. package/dist/capabilities/repository-agent-workflow/instructions-command.js.map +1 -0
  107. package/dist/cli-arguments.d.ts.map +1 -1
  108. package/dist/cli-arguments.js +15 -8
  109. package/dist/cli-arguments.js.map +1 -1
  110. package/dist/cli.js +31 -8
  111. package/dist/cli.js.map +1 -1
  112. package/dist/composition/capability-modules.d.ts +13 -0
  113. package/dist/composition/capability-modules.d.ts.map +1 -0
  114. package/dist/composition/capability-modules.js +30 -0
  115. package/dist/composition/capability-modules.js.map +1 -0
  116. package/dist/composition/capability-registry.d.ts +2 -0
  117. package/dist/composition/capability-registry.d.ts.map +1 -1
  118. package/dist/composition/capability-registry.js +5 -25
  119. package/dist/composition/capability-registry.js.map +1 -1
  120. package/dist/composition/rule-registry.d.ts +4 -7
  121. package/dist/composition/rule-registry.d.ts.map +1 -1
  122. package/dist/composition/rule-registry.js +17 -25
  123. package/dist/composition/rule-registry.js.map +1 -1
  124. package/dist/filesystem-path-safety.d.ts +6 -0
  125. package/dist/filesystem-path-safety.d.ts.map +1 -1
  126. package/dist/filesystem-path-safety.js +76 -21
  127. package/dist/filesystem-path-safety.js.map +1 -1
  128. package/dist/legacy-docs-cli-deprecation.d.ts +10 -0
  129. package/dist/legacy-docs-cli-deprecation.d.ts.map +1 -0
  130. package/dist/legacy-docs-cli-deprecation.js +36 -0
  131. package/dist/legacy-docs-cli-deprecation.js.map +1 -0
  132. package/dist/process-execution/node-process-runner.d.ts +6 -1
  133. package/dist/process-execution/node-process-runner.d.ts.map +1 -1
  134. package/dist/process-execution/node-process-runner.js +29 -6
  135. package/dist/process-execution/node-process-runner.js.map +1 -1
  136. package/dist/quality-gate-cli-command.d.ts +3 -0
  137. package/dist/quality-gate-cli-command.d.ts.map +1 -0
  138. package/dist/quality-gate-cli-command.js +37 -0
  139. package/dist/quality-gate-cli-command.js.map +1 -0
  140. package/dist/schema-ids.d.ts +1 -1
  141. package/dist/schema-ids.d.ts.map +1 -1
  142. package/dist/schema-ids.js +2 -0
  143. package/dist/schema-ids.js.map +1 -1
  144. package/package.json +3 -1
  145. package/schemas/foundation-config/v1.schema.json +10 -0
  146. package/schemas/quality-gate-run-report/v1.schema.json +47 -0
  147. package/schemas/quality-gate-runner/v1.schema.json +74 -0
@@ -2,14 +2,42 @@ import { lstat, realpath } from "node:fs/promises";
2
2
  import { isAbsolute, relative, resolve, sep } from "node:path";
3
3
  import { FoundationError } from "../../../../../errors.js";
4
4
  import { execute } from "../process/process-execution.js";
5
- const AUTO_BASE_REFS = ["origin/main", "origin/master", "main", "master"];
5
+ const AUTO_BASE_REFS = [
6
+ { display: "origin/main", ref: "refs/remotes/origin/main" },
7
+ { display: "origin/master", ref: "refs/remotes/origin/master" },
8
+ { display: "main", ref: "refs/heads/main" },
9
+ { display: "master", ref: "refs/heads/master" }
10
+ ];
11
+ const FULL_COMMIT = /^[0-9a-f]{40}(?:[0-9a-f]{24})?$/iu;
12
+ const GIT_HARDENING = [
13
+ "--no-pager",
14
+ "--no-optional-locks",
15
+ "--no-replace-objects",
16
+ "-c",
17
+ "core.fsmonitor=false",
18
+ "-c",
19
+ "diff.external=",
20
+ "-c",
21
+ "diff.renames=false"
22
+ ];
6
23
  function invalid(message) {
7
24
  throw new FoundationError("CONSUMER_INVALID", message);
8
25
  }
9
- function parseNullDelimited(value) {
10
- return value
11
- .split("\0")
12
- .filter((path) => path.length > 0);
26
+ function parseNullDelimited(value, context) {
27
+ if (value.length === 0) {
28
+ return [];
29
+ }
30
+ if (!value.endsWith("\0")) {
31
+ invalid(`Git returned malformed NUL-delimited ${context} evidence.`);
32
+ }
33
+ const paths = value.slice(0, -1).split("\0");
34
+ if (paths.some((path) => path.length === 0)) {
35
+ invalid(`Git returned an empty path in ${context} evidence.`);
36
+ }
37
+ return paths;
38
+ }
39
+ function comparePaths(left, right) {
40
+ return left < right ? -1 : left > right ? 1 : 0;
13
41
  }
14
42
  function hasControlCharacter(value) {
15
43
  for (let index = 0; index < value.length; index += 1) {
@@ -31,32 +59,147 @@ function assertSafeRepositoryPath(path) {
31
59
  invalid(`Git reported an unsafe repository path: ${JSON.stringify(path)}.`);
32
60
  }
33
61
  }
34
- async function git(cwd, args, signal) {
35
- return execute("git", args, { cwd, ...(signal === undefined ? {} : { signal }) });
62
+ async function git(root, args, signal) {
63
+ try {
64
+ return await execute("git", [...GIT_HARDENING, ...args], {
65
+ cwd: root,
66
+ strictUtf8: true,
67
+ ...(signal === undefined ? {} : { signal })
68
+ });
69
+ }
70
+ catch (error) {
71
+ if (error instanceof Error && /not valid UTF-8/u.test(error.message)) {
72
+ invalid("Git returned repository evidence that is not valid UTF-8.");
73
+ }
74
+ throw error;
75
+ }
76
+ }
77
+ function exactCommit(value, context) {
78
+ const commit = value.replace(/\r?\n$/u, "");
79
+ if (!FULL_COMMIT.test(commit)) {
80
+ invalid(`Git did not return an immutable ${context} commit identifier.`);
81
+ }
82
+ return commit.toLowerCase();
83
+ }
84
+ async function resolveCommit(root, ref, signal) {
85
+ const resolved = await git(root, ["rev-parse", "--verify", "--quiet", "--end-of-options", `${ref}^{commit}`], signal);
86
+ if (resolved.exitCode === 0) {
87
+ return exactCommit(resolved.stdout, "resolved");
88
+ }
89
+ if (resolved.exitCode === 1) {
90
+ return null;
91
+ }
92
+ invalid(`Git could not resolve an immutable commit: ${resolved.stderr.trim() || "git rev-parse failed"}.`);
93
+ }
94
+ async function assertExactRef(root, ref, signal) {
95
+ const result = await git(root, ["check-ref-format", ref], signal);
96
+ if (result.exitCode === 0) {
97
+ return;
98
+ }
99
+ if (result.exitCode === 1) {
100
+ invalid(`The explicit base ref ${JSON.stringify(ref)} is not an exact Git ref name.`);
101
+ }
102
+ invalid(`Git could not validate the explicit base ref: ${result.stderr.trim() || "git check-ref-format failed"}.`);
103
+ }
104
+ async function resolveRequestedRef(root, requested, signal) {
105
+ if (requested === "HEAD" || FULL_COMMIT.test(requested)) {
106
+ const commit = await resolveCommit(root, requested, signal);
107
+ return commit === null ? null : { ref: requested, commit };
108
+ }
109
+ if (requested.startsWith("refs/")) {
110
+ await assertExactRef(root, requested, signal);
111
+ const commit = await resolveCommit(root, requested, signal);
112
+ return commit === null ? null : { ref: requested, commit };
113
+ }
114
+ const candidates = [
115
+ `refs/heads/${requested}`,
116
+ `refs/remotes/${requested}`,
117
+ `refs/tags/${requested}`
118
+ ];
119
+ await assertExactRef(root, `refs/heads/${requested}`, signal);
120
+ const matches = (await Promise.all(candidates.map(async (ref) => ({ ref, commit: await resolveCommit(root, ref, signal) })))).filter((match) => match.commit !== null);
121
+ if (matches.length > 1) {
122
+ invalid(`The explicit base ref ${JSON.stringify(requested)} is ambiguous: ${matches.map(({ ref }) => ref).join(", ")}.`);
123
+ }
124
+ return matches[0] ?? null;
125
+ }
126
+ async function uniqueMergeBase(root, headCommit, baseCommit, signal) {
127
+ const result = await git(root, ["merge-base", "--all", "--", headCommit, baseCommit], signal);
128
+ if (result.exitCode === 1) {
129
+ return null;
130
+ }
131
+ if (result.exitCode !== 0) {
132
+ invalid(`Git could not inspect merge bases: ${result.stderr.trim() || "git merge-base failed"}.`);
133
+ }
134
+ const lines = result.stdout.split(/\r?\n/u);
135
+ if (lines.at(-1) === "") {
136
+ lines.pop();
137
+ }
138
+ if (lines.length === 0) {
139
+ invalid("Git did not return a merge-base commit identifier.");
140
+ }
141
+ const commits = lines.map((value) => exactCommit(value, "merge-base"));
142
+ if (commits.length !== 1) {
143
+ invalid(`Git reported ${String(commits.length)} merge bases; changed scope requires one unique merge base.`);
144
+ }
145
+ return commits[0] ?? null;
36
146
  }
37
147
  async function resolveBaseline(root, requested, signal) {
38
- const head = await git(root, ["rev-parse", "--verify", "HEAD^{commit}"], signal);
39
- if (head.exitCode !== 0) {
148
+ const headCommit = await resolveCommit(root, "HEAD", signal);
149
+ if (headCommit === null) {
40
150
  if (requested !== undefined) {
41
151
  invalid("An explicit base cannot be resolved before the repository has an initial commit.");
42
152
  }
43
- return { ref: "unborn-head", commit: null };
153
+ return {
154
+ requestedRef: null,
155
+ resolvedRef: "unborn-head",
156
+ baseCommit: null,
157
+ headCommit: null,
158
+ mergeBaseCommit: null,
159
+ baselineRef: "unborn-head",
160
+ baselineCommit: null
161
+ };
44
162
  }
45
- const candidates = requested === undefined ? AUTO_BASE_REFS : [requested];
163
+ const candidates = requested === undefined
164
+ ? AUTO_BASE_REFS
165
+ : [{ display: requested, ref: requested }];
166
+ let resolvedCandidateCount = 0;
46
167
  for (const candidate of candidates) {
47
- const resolved = await git(root, ["rev-parse", "--verify", `${candidate}^{commit}`], signal);
48
- if (resolved.exitCode !== 0) {
168
+ const resolved = requested === undefined
169
+ ? await resolveCommit(root, candidate.ref, signal).then((commit) => commit === null ? null : { ref: candidate.ref, commit })
170
+ : await resolveRequestedRef(root, candidate.ref, signal);
171
+ if (resolved === null) {
49
172
  continue;
50
173
  }
51
- const mergeBase = await git(root, ["merge-base", "HEAD", resolved.stdout.trim()], signal);
52
- if (mergeBase.exitCode === 0 && mergeBase.stdout.trim().length > 0) {
53
- return { ref: candidate, commit: mergeBase.stdout.trim() };
174
+ resolvedCandidateCount += 1;
175
+ const mergeBaseCommit = await uniqueMergeBase(root, headCommit, resolved.commit, signal);
176
+ if (mergeBaseCommit !== null) {
177
+ return {
178
+ requestedRef: requested ?? null,
179
+ resolvedRef: resolved.ref,
180
+ baseCommit: resolved.commit,
181
+ headCommit,
182
+ mergeBaseCommit,
183
+ baselineRef: candidate.display,
184
+ baselineCommit: mergeBaseCommit
185
+ };
54
186
  }
55
187
  }
56
188
  if (requested !== undefined) {
57
- invalid(`Unable to resolve an exact merge base for ${requested}.`);
189
+ invalid(`Unable to resolve one exact merge base for ${JSON.stringify(requested)}.`);
190
+ }
191
+ if (resolvedCandidateCount > 0) {
192
+ invalid("Unable to establish a merge base from the discovered refs; the history may be shallow or unrelated. Fetch the required history or pass an explicit base.");
58
193
  }
59
- return { ref: "HEAD", commit: head.stdout.trim() };
194
+ return {
195
+ requestedRef: null,
196
+ resolvedRef: "HEAD",
197
+ baseCommit: headCommit,
198
+ headCommit,
199
+ mergeBaseCommit: headCommit,
200
+ baselineRef: "HEAD",
201
+ baselineCommit: headCommit
202
+ };
60
203
  }
61
204
  async function existingFiles(root, paths) {
62
205
  const result = [];
@@ -77,50 +220,59 @@ async function existingFiles(root, paths) {
77
220
  }
78
221
  return Object.freeze(result);
79
222
  }
80
- async function changedPathGroups(root, baselineCommit, signal) {
81
- const common = [
82
- "--no-renames",
83
- "--name-only",
84
- "-z"
85
- ];
86
- const trackedCommands = [
87
- ...(baselineCommit === null
88
- ? []
89
- : [["diff", ...common, `${baselineCommit}..HEAD`]]),
90
- ["diff", ...common],
91
- ["diff", "--cached", ...common]
92
- ];
93
- const commands = [
94
- ...trackedCommands.map((args) => ({
95
- kind: "changed",
96
- args: [...args.slice(0, 2), "--diff-filter=ACMRDTUXB", ...args.slice(2)]
97
- })),
98
- ...trackedCommands.map((args) => ({
99
- kind: "deleted",
100
- args: [...args.slice(0, 2), "--diff-filter=D", ...args.slice(2)]
101
- })),
102
- {
103
- kind: "changed",
104
- args: ["ls-files", "--others", "--exclude-standard", "-z"]
105
- }
106
- ];
107
- const results = await Promise.all(commands.map(async ({ kind, args }) => ({
108
- kind,
109
- result: await git(root, args, signal)
110
- })));
111
- for (const { result } of results) {
223
+ const DIFF_PATH_OPTIONS = [
224
+ "--no-ext-diff",
225
+ "--no-textconv",
226
+ "--no-renames",
227
+ "--name-only",
228
+ "-z"
229
+ ];
230
+ async function diffGroup(root, prefix, signal) {
231
+ const [all, deleted] = await Promise.all([
232
+ git(root, ["diff", ...prefix, ...DIFF_PATH_OPTIONS, "--end-of-options", "--"], signal),
233
+ git(root, ["diff", ...prefix, "--diff-filter=D", ...DIFF_PATH_OPTIONS, "--end-of-options", "--"], signal)
234
+ ]);
235
+ for (const result of [all, deleted]) {
112
236
  if (result.exitCode !== 0) {
113
- invalid(`Unable to inspect repository changes: ${result.stderr.trim() || "git failed"}.`);
237
+ invalid(`Unable to inspect repository changes: ${result.stderr.trim() || "git diff failed"}.`);
114
238
  }
115
239
  }
116
240
  return Object.freeze({
117
- changed: Object.freeze(results
118
- .filter(({ kind }) => kind === "changed")
119
- .map(({ result }) => parseNullDelimited(result.stdout))),
120
- deleted: Object.freeze(results
121
- .filter(({ kind }) => kind === "deleted")
122
- .map(({ result }) => parseNullDelimited(result.stdout)))
241
+ paths: Object.freeze([...new Set(parseNullDelimited(all.stdout, "changed-path"))].toSorted(comparePaths)),
242
+ deletedPaths: Object.freeze([...new Set(parseNullDelimited(deleted.stdout, "deleted-path"))].toSorted(comparePaths))
243
+ });
244
+ }
245
+ async function changedPathGroups(root, baseline, signal) {
246
+ const committed = baseline.baselineCommit === null || baseline.headCommit === null
247
+ ? Object.freeze({ paths: Object.freeze([]), deletedPaths: Object.freeze([]) })
248
+ : await diffGroup(root, [`${baseline.baselineCommit}..${baseline.headCommit}`], signal);
249
+ const [staged, unstaged, untrackedResult] = await Promise.all([
250
+ diffGroup(root, ["--cached"], signal),
251
+ diffGroup(root, [], signal),
252
+ git(root, ["ls-files", "--others", "--exclude-standard", "-z", "--"], signal)
253
+ ]);
254
+ if (untrackedResult.exitCode !== 0) {
255
+ invalid(`Unable to inspect repository changes: ${untrackedResult.stderr.trim() || "git ls-files failed"}.`);
256
+ }
257
+ const untracked = Object.freeze({
258
+ paths: Object.freeze([...new Set(parseNullDelimited(untrackedResult.stdout, "untracked-path"))].toSorted(comparePaths)),
259
+ deletedPaths: Object.freeze([])
260
+ });
261
+ return Object.freeze({ committed, staged, unstaged, untracked });
262
+ }
263
+ async function scopeDigest(baseline, groups) {
264
+ const payload = JSON.stringify({
265
+ protocol: "agent-teams-foundation.changed-scope-evidence.v1",
266
+ requestedBaseRef: baseline.requestedRef,
267
+ resolvedBaseRef: baseline.resolvedRef,
268
+ baseCommit: baseline.baseCommit,
269
+ headRef: "HEAD",
270
+ headCommit: baseline.headCommit,
271
+ mergeBaseCommit: baseline.mergeBaseCommit,
272
+ changeGroups: groups
123
273
  });
274
+ const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(payload));
275
+ return `sha256:${Buffer.from(digest).toString("hex")}`;
124
276
  }
125
277
  export class GitRepositoryChangesReader {
126
278
  async collect(input) {
@@ -137,13 +289,31 @@ export class GitRepositoryChangesReader {
137
289
  invalid("The consumer root must be the Git repository root.");
138
290
  }
139
291
  const baseline = await resolveBaseline(root, input.baseRef, input.signal);
140
- const groups = await changedPathGroups(root, baseline.commit, input.signal);
141
- const changedPaths = [...new Set(groups.changed.flat())].toSorted();
142
- const deletedPaths = [...new Set(groups.deleted.flat())].toSorted();
292
+ const changeGroups = await changedPathGroups(root, baseline, input.signal);
293
+ const groups = [
294
+ changeGroups.committed,
295
+ changeGroups.staged,
296
+ changeGroups.unstaged,
297
+ changeGroups.untracked
298
+ ];
299
+ const changedPaths = [
300
+ ...new Set(groups.flatMap(({ paths }) => paths))
301
+ ].toSorted(comparePaths);
302
+ const deletedPaths = [
303
+ ...new Set(groups.flatMap(({ deletedPaths: paths }) => paths))
304
+ ].toSorted(comparePaths);
143
305
  [...changedPaths, ...deletedPaths].forEach(assertSafeRepositoryPath);
144
306
  return Object.freeze({
145
- baselineRef: baseline.ref,
146
- baselineCommit: baseline.commit,
307
+ baselineRef: baseline.baselineRef,
308
+ baselineCommit: baseline.baselineCommit,
309
+ requestedBaseRef: baseline.requestedRef,
310
+ resolvedBaseRef: baseline.resolvedRef,
311
+ baseCommit: baseline.baseCommit,
312
+ headRef: "HEAD",
313
+ headCommit: baseline.headCommit,
314
+ mergeBaseCommit: baseline.mergeBaseCommit,
315
+ changeGroups,
316
+ scopeDigest: await scopeDigest(baseline, changeGroups),
147
317
  changedPaths: Object.freeze(changedPaths),
148
318
  deletedPaths: Object.freeze(deletedPaths),
149
319
  existingPaths: await existingFiles(root, changedPaths)
@@ -1 +1 @@
1
- {"version":3,"file":"git-repository-changes-reader.js","sourceRoot":"","sources":["../../../../../../src/capabilities/repository-agent-workflow/adapters/outbound/git/git-repository-changes-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-repository-changes-reader.js","sourceRoot":"","sources":["../../../../../../src/capabilities/repository-agent-workflow/adapters/outbound/git/git-repository-changes-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAM3D,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE1D,MAAM,cAAc,GAAG;IACrB,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,0BAA0B,EAAE;IAC3D,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,4BAA4B,EAAE;IAC/D,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE;IAC3C,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE;CACvC,CAAC;AACX,MAAM,WAAW,GAAG,mCAAmC,CAAC;AACxD,MAAM,aAAa,GAAG;IACpB,YAAY;IACZ,qBAAqB;IACrB,sBAAsB;IACtB,IAAI;IACJ,sBAAsB;IACtB,IAAI;IACJ,gBAAgB;IAChB,IAAI;IACJ,oBAAoB;CACZ,CAAC;AAEX,SAAS,OAAO,CAAC,OAAe;IAC9B,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,OAAe;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,wCAAwC,OAAO,YAAY,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,iCAAiC,OAAO,YAAY,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,IACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,mBAAmB,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC;QAChB,IAAI,KAAK,IAAI;QACb,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EACrB,CAAC;QACD,OAAO,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,IAAY,EAAE,IAAuB,EAAE,MAAoB;IAC5E,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC,EAAE;YACvD,GAAG,EAAE,IAAI;YACT,UAAU,EAAE,IAAI;YAChB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,2DAA2D,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,OAAe;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,mCAAmC,OAAO,qBAAqB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAY,EACZ,GAAW,EACX,MAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,GAAG,CACxB,IAAI,EACJ,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,GAAG,WAAW,CAAC,EAC3E,MAAM,CACP,CAAC;IACF,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,8CAA8C,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,sBAAsB,GAAG,CAClG,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,GAAW,EACX,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,yBAAyB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gCAAgC,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,CACL,iDAAiD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,6BAA6B,GAAG,CAC1G,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAY,EACZ,SAAiB,EACjB,MAAoB;IAEpB,IAAI,SAAS,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5D,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5D,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7D,CAAC;IACD,MAAM,UAAU,GAAG;QACjB,cAAc,SAAS,EAAE;QACzB,gBAAgB,SAAS,EAAE;QAC3B,aAAa,SAAS,EAAE;KACzB,CAAC;IACF,MAAM,cAAc,CAAC,IAAI,EAAE,cAAc,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,CACd,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CACzF,CACF,CAAC,MAAM,CAAC,CAAC,KAAK,EAA8D,EAAE,CAC7E,KAAK,CAAC,MAAM,KAAK,IAAI,CACtB,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CACL,yBAAyB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChH,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAAY,EACZ,UAAkB,EAClB,UAAkB,EAClB,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,GAAG,CACtB,IAAI,EACJ,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EACrD,MAAM,CACP,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,uBAAuB,GAAG,CACzF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,EAAE,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,oDAAoD,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CACL,gBAAgB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,6DAA6D,CACpG,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAYD,KAAK,UAAU,eAAe,CAC5B,IAAY,EACZ,SAA6B,EAC7B,MAAoB;IAEpB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,kFAAkF,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,aAAa;YAC1B,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,KAAK,SAAS;QACxC,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS;YACtC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/D,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CACxD;YACH,CAAC,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QACD,sBAAsB,IAAI,CAAC,CAAC;QAC5B,MAAM,eAAe,GAAG,MAAM,eAAe,CAC3C,IAAI,EACJ,UAAU,EACV,QAAQ,CAAC,MAAM,EACf,MAAM,CACP,CAAC;QACF,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO;gBACL,YAAY,EAAE,SAAS,IAAI,IAAI;gBAC/B,WAAW,EAAE,QAAQ,CAAC,GAAG;gBACzB,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,UAAU;gBACV,eAAe;gBACf,WAAW,EAAE,SAAS,CAAC,OAAO;gBAC9B,cAAc,EAAE,eAAe;aAChC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,sBAAsB,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CACL,0JAA0J,CAC3J,CAAC;IACJ,CAAC;IACD,OAAO;QACL,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,UAAU;QACtB,UAAU;QACV,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE,MAAM;QACnB,cAAc,EAAE,UAAU;KAC3B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAY,EACZ,KAAwB;IAExB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO,CAAC,wCAAwC,IAAI,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,uCAAuC,IAAI,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,iBAAiB,GAAG;IACxB,eAAe;IACf,eAAe;IACf,cAAc;IACd,aAAa;IACb,IAAI;CACI,CAAC;AAEX,KAAK,UAAU,SAAS,CACtB,IAAY,EACZ,MAAyB,EACzB,MAAoB;IAEpB,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QACtF,GAAG,CACD,IAAI,EACJ,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,CAAC,EACtF,MAAM,CACP;KACF,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,yCAAyC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,iBAAiB,GAAG,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CACnE,YAAY,CACb,CACF;QACD,YAAY,EAAE,MAAM,CAAC,MAAM,CACzB,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CACvE,YAAY,CACb,CACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAY,EACZ,QAA4B,EAC5B,MAAoB;IAEpB,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI;QAChF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9E,CAAC,CAAC,MAAM,SAAS,CACb,IAAI,EACJ,CAAC,GAAG,QAAQ,CAAC,cAAc,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,EACtD,MAAM,CACP,CAAC;IACN,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5D,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QACrC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC;QAC3B,GAAG,CACD,IAAI,EACJ,CAAC,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,EAC1D,MAAM,CACP;KACF,CAAC,CAAC;IACH,IAAI,eAAe,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CACL,yCAAyC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,qBAAqB,GAAG,CACnG,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CACjF,YAAY,CACb,CACF;QACD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KAChC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,QAA4B,EAC5B,MAA8B;IAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,QAAQ,EAAE,kDAAkD;QAC5D,gBAAgB,EAAE,QAAQ,CAAC,YAAY;QACvC,eAAe,EAAE,QAAQ,CAAC,WAAW;QACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACvC,SAAS,EACT,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAClC,CAAC;IACF,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,OAAO,0BAA0B;IACrC,KAAK,CAAC,OAAO,CAAC,KAIb;QACC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,wCAAwC,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CACzD,OAAO,CAAC,mCAAmC,CAAC,CAC7C,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,GAAG,CACxB,IAAI,EACJ,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAChC,KAAK,CAAC,MAAM,CACb,CAAC;QACF,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,6CAA6C,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,oDAAoD,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAqC;YAC/C,YAAY,CAAC,SAAS;YACtB,YAAY,CAAC,MAAM;YACnB,YAAY,CAAC,QAAQ;YACrB,YAAY,CAAC,SAAS;SACvB,CAAC;QACF,MAAM,YAAY,GAAG;YACnB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;SACjD,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,MAAM,YAAY,GAAG;YACnB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;SAC/D,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,gBAAgB,EAAE,QAAQ,CAAC,YAAY;YACvC,eAAe,EAAE,QAAQ,CAAC,WAAW;YACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,MAAe;YACxB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,YAAY;YACZ,WAAW,EAAE,MAAM,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC;YACtD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;YACzC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;YACzC,aAAa,EAAE,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -6,5 +6,6 @@ export interface ProcessExecution {
6
6
  export declare function execute(command: string, args: readonly string[], options: {
7
7
  readonly cwd: string;
8
8
  readonly signal?: AbortSignal;
9
+ readonly strictUtf8?: boolean;
9
10
  }): Promise<ProcessExecution>;
10
11
  //# sourceMappingURL=process-execution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-execution.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/repository-agent-workflow/adapters/outbound/process/process-execution.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,GACA,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
1
+ {"version":3,"file":"process-execution.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/repository-agent-workflow/adapters/outbound/process/process-execution.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B,GACA,OAAO,CAAC,gBAAgB,CAAC,CAa3B"}
@@ -4,7 +4,8 @@ export async function execute(command, args, options) {
4
4
  args,
5
5
  command,
6
6
  cwd: options.cwd,
7
- ...(options.signal === undefined ? {} : { signal: options.signal })
7
+ ...(options.signal === undefined ? {} : { signal: options.signal }),
8
+ ...(options.strictUtf8 === undefined ? {} : { strictUtf8: options.strictUtf8 })
8
9
  });
9
10
  return {
10
11
  exitCode: result.exitCode,
@@ -1 +1 @@
1
- {"version":3,"file":"process-execution.js","sourceRoot":"","sources":["../../../../../../src/capabilities/repository-agent-workflow/adapters/outbound/process/process-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAQhG,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,IAAuB,EACvB,OAGC;IAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;QACzC,IAAI;QACJ,OAAO;QACP,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"process-execution.js","sourceRoot":"","sources":["../../../../../../src/capabilities/repository-agent-workflow/adapters/outbound/process/process-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAQhG,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,IAAuB,EACvB,OAIC;IAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;QACzC,IAAI;QACJ,OAAO;QACP,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;KAChF,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC"}
@@ -2,10 +2,28 @@ import type { RepositoryAgentWorkflowPolicy } from "./repository-agent-workflow.
2
2
  export interface RepositoryChanges {
3
3
  readonly baselineRef: string;
4
4
  readonly baselineCommit: string | null;
5
+ readonly requestedBaseRef: string | null;
6
+ readonly resolvedBaseRef: string;
7
+ readonly baseCommit: string | null;
8
+ readonly headRef: "HEAD";
9
+ readonly headCommit: string | null;
10
+ readonly mergeBaseCommit: string | null;
11
+ readonly changeGroups: RepositoryChangeGroups;
12
+ readonly scopeDigest: string;
5
13
  readonly changedPaths: readonly string[];
6
14
  readonly deletedPaths: readonly string[];
7
15
  readonly existingPaths: readonly string[];
8
16
  }
17
+ export interface RepositoryChangeGroup {
18
+ readonly paths: readonly string[];
19
+ readonly deletedPaths: readonly string[];
20
+ }
21
+ export interface RepositoryChangeGroups {
22
+ readonly committed: RepositoryChangeGroup;
23
+ readonly staged: RepositoryChangeGroup;
24
+ readonly unstaged: RepositoryChangeGroup;
25
+ readonly untracked: RepositoryChangeGroup;
26
+ }
9
27
  export interface ScriptExecutionResult {
10
28
  readonly exitCode: number;
11
29
  readonly stdout: string;
@@ -24,6 +42,14 @@ export interface AgentWorkflowChangedReport {
24
42
  readonly coverage: "changed" | "fast-full";
25
43
  readonly baselineRef: string;
26
44
  readonly baselineCommit: string | null;
45
+ readonly requestedBaseRef: string | null;
46
+ readonly resolvedBaseRef: string;
47
+ readonly baseCommit: string | null;
48
+ readonly headRef: "HEAD";
49
+ readonly headCommit: string | null;
50
+ readonly mergeBaseCommit: string | null;
51
+ readonly changeGroups: RepositoryChangeGroups;
52
+ readonly scopeDigest: string;
27
53
  readonly changedPaths: readonly string[];
28
54
  readonly steps: readonly AgentWorkflowStepReport[];
29
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"changed-workflow.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/repository-agent-workflow/application/model/changed-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,WAAW,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B"}
1
+ {"version":3,"file":"changed-workflow.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/repository-agent-workflow/application/model/changed-workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ export declare const DEFAULT_EFFECTIVE_INSTRUCTION_BUDGET_BYTES: number;
2
+ export declare const EFFECTIVE_INSTRUCTION_SEMANTICS: "foundation-safe-codex-default-project-instructions-v1";
3
+ export declare const EFFECTIVE_INSTRUCTION_CANDIDATE_NAMES: readonly ["AGENTS.override.md", "AGENTS.md"];
4
+ export type EffectiveInstructionCandidateObservation = {
5
+ readonly kind: "file";
6
+ readonly path: string;
7
+ readonly sourceBytes: number;
8
+ readonly bytes: Uint8Array | null;
9
+ } | {
10
+ readonly kind: "missing" | "not-file" | "symlink";
11
+ readonly path: string;
12
+ };
13
+ export interface EffectiveInstructionDirectoryObservation {
14
+ readonly directory: string;
15
+ readonly candidates: readonly EffectiveInstructionCandidateObservation[];
16
+ }
17
+ export interface EffectiveInstructionDiscovery {
18
+ readonly targetPath: string;
19
+ readonly targetDirectory: string;
20
+ readonly directories: readonly string[];
21
+ }
22
+ type EffectiveInstructionLayerStatus = "applied" | "budget-exhausted" | "ignored-empty" | "truncated";
23
+ interface EffectiveInstructionShadowedCandidate {
24
+ readonly path: string;
25
+ readonly reason: "higher-priority-candidate-selected";
26
+ }
27
+ export interface EffectiveInstructionLayerReport {
28
+ readonly order: number;
29
+ readonly directory: string;
30
+ readonly scope: string;
31
+ readonly selectedPath: string;
32
+ readonly selectionReason: "first-regular-candidate";
33
+ readonly applicabilityReason: "instruction-directory-contains-target";
34
+ readonly status: EffectiveInstructionLayerStatus;
35
+ readonly sourceBytes: number;
36
+ readonly loadedBytes: number;
37
+ readonly sourceDigest: `sha256:${string}` | null;
38
+ readonly loadedDigest: `sha256:${string}`;
39
+ readonly shadowed: readonly EffectiveInstructionShadowedCandidate[];
40
+ readonly canOverrideEarlier: readonly string[];
41
+ }
42
+ export interface EffectiveInstructionsReport {
43
+ readonly reportSchemaVersion: 1;
44
+ readonly outcome: "resolved";
45
+ readonly semantics: typeof EFFECTIVE_INSTRUCTION_SEMANTICS;
46
+ readonly target: {
47
+ readonly path: string;
48
+ readonly directory: string;
49
+ readonly reason: "repository-relative-file-selected-by-caller";
50
+ };
51
+ readonly budget: {
52
+ readonly maximumBytes: number;
53
+ readonly loadedBytes: number;
54
+ readonly exhausted: boolean;
55
+ readonly truncated: boolean;
56
+ };
57
+ readonly resolutionDigest: `sha256:${string}`;
58
+ readonly layers: readonly EffectiveInstructionLayerReport[];
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=effective-instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-instructions.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/repository-agent-workflow/application/model/effective-instructions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0CAA0C,QAAY,CAAC;AAEpE,eAAO,MAAM,+BAA+B,EAC1C,uDAAgE,CAAC;AAEnE,eAAO,MAAM,qCAAqC,8CAGvC,CAAC;AAEZ,MAAM,MAAM,wCAAwC,GAChD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,wCAAwC,EAAE,CAAC;CAC1E;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,KAAK,+BAA+B,GAChC,SAAS,GACT,kBAAkB,GAClB,eAAe,GACf,WAAW,CAAC;AAEhB,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC;CACvD;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,yBAAyB,CAAC;IACpD,QAAQ,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,+BAA+B,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,UAAU,MAAM,EAAE,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,UAAU,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,qCAAqC,EAAE,CAAC;IACpE,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,+BAA+B,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,MAAM,EAAE,6CAA6C,CAAC;KAChE,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,gBAAgB,EAAE,UAAU,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,+BAA+B,EAAE,CAAC;CAC7D"}
@@ -0,0 +1,7 @@
1
+ export const DEFAULT_EFFECTIVE_INSTRUCTION_BUDGET_BYTES = 32 * 1024;
2
+ export const EFFECTIVE_INSTRUCTION_SEMANTICS = "foundation-safe-codex-default-project-instructions-v1";
3
+ export const EFFECTIVE_INSTRUCTION_CANDIDATE_NAMES = Object.freeze([
4
+ "AGENTS.override.md",
5
+ "AGENTS.md"
6
+ ]);
7
+ //# sourceMappingURL=effective-instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-instructions.js","sourceRoot":"","sources":["../../../../../src/capabilities/repository-agent-workflow/application/model/effective-instructions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0CAA0C,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpE,MAAM,CAAC,MAAM,+BAA+B,GAC1C,uDAAgE,CAAC;AAEnE,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,MAAM,CAAC;IACjE,oBAAoB;IACpB,WAAW;CACH,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { EffectiveInstructionDirectoryObservation, EffectiveInstructionDiscovery } from "../model/effective-instructions.js";
2
+ export interface EffectiveInstructionsReader {
3
+ discover(input: {
4
+ readonly consumerRoot: string;
5
+ readonly targetPath: string;
6
+ readonly signal?: AbortSignal;
7
+ }): Promise<EffectiveInstructionDiscovery>;
8
+ readDirectory(input: {
9
+ readonly consumerRoot: string;
10
+ readonly directory: string;
11
+ readonly readSelectedBytes: boolean;
12
+ readonly signal?: AbortSignal;
13
+ }): Promise<EffectiveInstructionDirectoryObservation>;
14
+ }
15
+ //# sourceMappingURL=effective-instructions-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-instructions-reader.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/repository-agent-workflow/application/ports/effective-instructions-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wCAAwC,EACxC,6BAA6B,EAC9B,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAE3C,aAAa,CAAC,KAAK,EAAE;QACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;CACvD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=effective-instructions-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-instructions-reader.js","sourceRoot":"","sources":["../../../../../src/capabilities/repository-agent-workflow/application/ports/effective-instructions-reader.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { EffectiveInstructionsReport } from "../model/effective-instructions.js";
2
+ import type { EffectiveInstructionsReader } from "../ports/effective-instructions-reader.js";
3
+ export declare function resolveEffectiveInstructions(input: {
4
+ readonly consumerRoot: string;
5
+ readonly targetPath: string;
6
+ readonly signal?: AbortSignal;
7
+ }, reader: EffectiveInstructionsReader): Promise<EffectiveInstructionsReport>;
8
+ //# sourceMappingURL=resolve-effective-instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-effective-instructions.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/repository-agent-workflow/application/use-cases/resolve-effective-instructions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,2BAA2B,EAC5B,MAAM,oCAAoC,CAAC;AAK5C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAiC7F,wBAAsB,4BAA4B,CAChD,KAAK,EAAE;IACL,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,EACD,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,2BAA2B,CAAC,CAkHtC"}