agent-merge-broker 0.8.1 → 0.10.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 (50) hide show
  1. package/README.md +35 -8
  2. package/dist/bootstrap.d.ts +17 -0
  3. package/dist/bootstrap.d.ts.map +1 -0
  4. package/dist/bootstrap.js +267 -0
  5. package/dist/bootstrap.js.map +1 -0
  6. package/dist/broker.d.ts +14 -1
  7. package/dist/broker.d.ts.map +1 -1
  8. package/dist/broker.js +438 -90
  9. package/dist/broker.js.map +1 -1
  10. package/dist/cli.js +50 -10
  11. package/dist/cli.js.map +1 -1
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +14 -2
  14. package/dist/config.js.map +1 -1
  15. package/dist/git.d.ts +1 -0
  16. package/dist/git.d.ts.map +1 -1
  17. package/dist/git.js +3 -0
  18. package/dist/git.js.map +1 -1
  19. package/dist/index.d.ts +2 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/process.d.ts +15 -0
  24. package/dist/process.d.ts.map +1 -1
  25. package/dist/process.js +100 -12
  26. package/dist/process.js.map +1 -1
  27. package/dist/publisher.d.ts +15 -0
  28. package/dist/publisher.d.ts.map +1 -1
  29. package/dist/publisher.js +8 -0
  30. package/dist/publisher.js.map +1 -1
  31. package/dist/service.d.ts.map +1 -1
  32. package/dist/service.js +39 -3
  33. package/dist/service.js.map +1 -1
  34. package/dist/store.d.ts.map +1 -1
  35. package/dist/store.js +32 -16
  36. package/dist/store.js.map +1 -1
  37. package/dist/types.d.ts +27 -0
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/validation.d.ts +4 -0
  40. package/dist/validation.d.ts.map +1 -1
  41. package/dist/validation.js +64 -48
  42. package/dist/validation.js.map +1 -1
  43. package/docs/ARCHITECTURE.md +12 -0
  44. package/docs/GETTING_STARTED.md +268 -0
  45. package/docs/RELEASING.md +1 -1
  46. package/docs/SECURITY.md +10 -2
  47. package/examples/two-agents/README.md +39 -0
  48. package/examples/two-agents/run.sh +143 -0
  49. package/package.json +3 -1
  50. package/schemas/config.schema.json +22 -5
package/README.md CHANGED
@@ -46,9 +46,10 @@ It is deliberately **not** an agent framework and **not** a replacement for prot
46
46
 
47
47
  `0.3.0` was the first public release: the local broker core, the GitHub CLI publishing adapter with auto-merge, and the remote provenance verifier.
48
48
 
49
- `0.8.1` is current. Repositories can require SHA/base/policy-bound evidence and an explicit approval
50
- before auto-merge is enabled. Candidate revision stays on the same pull request and invalidates all
51
- earlier evidence. The gate is opt-in so existing repositories keep their current behavior.
49
+ `0.10.0` is current. Installation now detects declared repository validation, installs the agent
50
+ contract, provisions authenticated provenance, and remains idempotent on repeat runs. Native
51
+ architecture execution and isolated transaction caches prevent cross-architecture Swift build
52
+ contamination without rerunning the same complete gate.
52
53
 
53
54
  The on-disk state, receipt, and provenance formats are versioned, but compatibility is not guaranteed until `1.0.0`. Expect format migrations before then.
54
55
 
@@ -78,10 +79,19 @@ npm run build
78
79
  npm link
79
80
  ```
80
81
 
81
- `init` writes two portable files into the application:
82
+ `init` writes three portable files into the application:
82
83
 
83
84
  - `.merge-broker/config.json` — repository policy and commands
84
85
  - `.merge-broker/agent-instructions.md` — a reusable worker contract
86
+ - `AGENTS.md` — a managed pointer that makes repository agents use that contract
87
+
88
+ Initialization deterministically selects existing `verify`, `ci`, `check`, `lint`, `typecheck`,
89
+ `test`, and `build` scripts from JavaScript package manifests, plus SwiftPM tests. It never creates
90
+ commands, Xcode schemes, destinations, or project policy that the repository did not declare.
91
+ Anything it cannot prove is printed as an explicit configuration item. Re-running `init` repairs
92
+ missing generated integration files and old unsigned defaults, but preserves configured validators
93
+ and owner-written `AGENTS.md` content. Use `--no-detect` or `--no-agent-contract` only when an
94
+ installer or repository template owns those concerns itself.
85
95
 
86
96
  It also creates an Ed25519 provenance private key, mode `0600`, under Git's common runtime directory.
87
97
  Only its public key is written to the committed configuration. Runtime state, receipt records,
@@ -90,11 +100,14 @@ worktree sees the same broker authority.
90
100
 
91
101
  ## Quick start
92
102
 
93
- Initialize an existing Git repository and edit its generated configuration:
103
+ For a guided rollout—including validator, publication, service, recovery, and protected-branch
104
+ recipes—start with [Getting started](docs/GETTING_STARTED.md).
105
+
106
+ Initialize an existing Git repository, review the detected policy, and commit the installation:
94
107
 
95
108
  ```bash
96
109
  merge-broker init --base main --base-ref origin/main --remote origin
97
- git add .merge-broker && git commit -m 'Configure authenticated merge brokerage'
110
+ git add .merge-broker AGENTS.md && git commit -m 'Configure authenticated merge brokerage'
98
111
  merge-broker doctor
99
112
  ```
100
113
 
@@ -211,7 +224,7 @@ installing dependencies:
211
224
  with:
212
225
  ref: ${{ github.event.pull_request.head.sha }}
213
226
  fetch-depth: 0
214
- - uses: WeSpitfire/agent-merge-broker/verify@v0.8.1
227
+ - uses: WeSpitfire/agent-merge-broker/verify@v0.10.0
215
228
  ```
216
229
 
217
230
  The check verifies the Ed25519 signature, branch and batch identity, real base history, one-file
@@ -336,6 +349,11 @@ branch, and return its tasks to `submitted` without spending their attempt budge
336
349
  recover` performs that reconciliation explicitly. `unlock --force` remains only for an owner that
337
350
  cannot be proven gone and must follow confirming no integration is active.
338
351
 
352
+ Candidate revisions also carry a durable intent before the broker moves their branch. If a process
353
+ stops after the branch update but before state finalization, `recover` compares the real PR/local
354
+ head with the old and new candidate SHAs and safely finishes or rolls back the transition. An
355
+ unexpected third SHA is never guessed at and remains visible in `doctor`.
356
+
339
357
  ## Housekeeping
340
358
 
341
359
  `state.json` is rewritten in full on every transaction, including heartbeats, so completed work should not accumulate in it forever:
@@ -435,14 +453,23 @@ Validators receive these environment variables:
435
453
  - `MERGE_BROKER_BASE_SHA`
436
454
  - `MERGE_BROKER_HEAD_SHA`
437
455
  - `MERGE_BROKER_BATCH_ID`
456
+ - `MERGE_BROKER_CACHE_DIR`, an isolated cache shared by validators in one integration transaction
438
457
 
439
- Commands may also use the shell-safe placeholders `{taskId}` and `{files}`. Validator output retained in state is capped to prevent unbounded growth.
458
+ Commands may also use the shell-safe placeholders `{taskId}` and `{files}`. Validator output is
459
+ captured with a fixed memory bound and retained in state with that cap. A timeout terminates the
460
+ validator process group on POSIX rather than leaving shell descendants behind.
440
461
 
441
462
  `merge-broker validate` runs these same broker-side validators against a working tree, so a worker
442
463
  can get the local integration answer before submitting rather than a weaker approximation of it. It reports
443
464
  `MERGE_BROKER_BATCH_ID=local`, which a validator can branch on if it needs to behave differently
444
465
  outside a batch.
445
466
 
467
+ A validator may set `"executionArchitecture": "native"` to run under the hardware architecture on
468
+ macOS when Node itself is translated by Rosetta. Detected SwiftPM validators use this mode and put
469
+ their scratch build under `MERGE_BROKER_CACHE_DIR`, preventing Intel and Apple Silicon artifacts
470
+ from contaminating each other without rebuilding between the focused and authoritative stages of
471
+ the same integration transaction.
472
+
446
473
  The JSON schemas in [`schemas/`](schemas/) can be used by editors, adapters, and independent receipt producers.
447
474
 
448
475
  ### One authoritative CI pass
@@ -0,0 +1,17 @@
1
+ import type { BrokerConfig, ValidatorConfig } from "./types.js";
2
+ export interface BootstrapPlan {
3
+ ecosystems: string[];
4
+ focused: ValidatorConfig[];
5
+ authoritative: ValidatorConfig[];
6
+ serializedPatterns: string[];
7
+ unresolved: string[];
8
+ }
9
+ export interface AgentContractResult {
10
+ path: string;
11
+ changed: boolean;
12
+ }
13
+ export declare function detectBootstrapPlan(root: string): Promise<BootstrapPlan>;
14
+ export declare function applyBootstrapPlan(config: BrokerConfig, plan: BootstrapPlan): boolean;
15
+ export declare function installAgentContract(root: string): Promise<AgentContractResult>;
16
+ export declare function hasAgentContract(root: string): Promise<boolean>;
17
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyBhE,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAoLD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA2B9E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAkBrF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoBrF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKrE"}
@@ -0,0 +1,267 @@
1
+ import path from "node:path";
2
+ import { createHash } from "node:crypto";
3
+ import { access, readFile, readdir, writeFile } from "node:fs/promises";
4
+ import { constants } from "node:fs";
5
+ import { BrokerError } from "./errors.js";
6
+ const AGENT_BLOCK_START = "<!-- agent-merge-broker:start -->";
7
+ const AGENT_BLOCK_END = "<!-- agent-merge-broker:end -->";
8
+ const AGENT_BLOCK = `${AGENT_BLOCK_START}
9
+ ## Agent Merge Broker
10
+
11
+ This repository uses Agent Merge Broker as its implementation-integration authority. Before editing,
12
+ read \`.merge-broker/agent-instructions.md\` and follow its claim, lease, candidate, and revision
13
+ protocol. Workers do not push implementation branches, open pull requests, or merge their own work.
14
+ ${AGENT_BLOCK_END}`;
15
+ const IGNORED_DIRECTORIES = new Set([
16
+ ".git",
17
+ ".build",
18
+ ".next",
19
+ ".swiftpm",
20
+ "DerivedData",
21
+ "dist",
22
+ "build",
23
+ "node_modules",
24
+ "vendor",
25
+ ]);
26
+ async function exists(target) {
27
+ try {
28
+ await access(target, constants.F_OK);
29
+ return true;
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ function posix(relativePath) {
36
+ return relativePath.split(path.sep).join("/");
37
+ }
38
+ function shellQuote(value) {
39
+ return `'${value.replaceAll("'", `'"'"'`)}'`;
40
+ }
41
+ async function discoverFiles(root, maxDepth = 4) {
42
+ const files = [];
43
+ async function visit(directory, depth) {
44
+ if (depth > maxDepth)
45
+ return;
46
+ const entries = await readdir(directory, { withFileTypes: true });
47
+ for (const entry of entries.sort((left, right) => left.name.localeCompare(right.name))) {
48
+ if (entry.isSymbolicLink())
49
+ continue;
50
+ const absolute = path.join(directory, entry.name);
51
+ const relative = posix(path.relative(root, absolute));
52
+ if (entry.isDirectory()) {
53
+ if (!IGNORED_DIRECTORIES.has(entry.name))
54
+ await visit(absolute, depth + 1);
55
+ }
56
+ else if (entry.isFile()) {
57
+ files.push(relative);
58
+ }
59
+ }
60
+ }
61
+ await visit(root, 0);
62
+ return files.sort();
63
+ }
64
+ const PACKAGE_LOCKS = ["pnpm-lock.yaml", "yarn.lock", "bun.lock", "bun.lockb", "package-lock.json"];
65
+ function packageManager(files, packageJson, directory) {
66
+ const declared = typeof packageJson.packageManager === "string"
67
+ ? packageJson.packageManager.split("@")[0]
68
+ : undefined;
69
+ if (declared && new Set(["npm", "pnpm", "yarn", "bun"]).has(declared))
70
+ return declared;
71
+ let candidate = directory;
72
+ while (true) {
73
+ const at = (name) => files.has(candidate === "." ? name : `${candidate}/${name}`);
74
+ if (at("pnpm-lock.yaml"))
75
+ return "pnpm";
76
+ if (at("yarn.lock"))
77
+ return "yarn";
78
+ if (at("bun.lock") || at("bun.lockb"))
79
+ return "bun";
80
+ if (at("package-lock.json"))
81
+ return "npm";
82
+ if (candidate === ".")
83
+ break;
84
+ candidate = posix(path.dirname(candidate));
85
+ }
86
+ return "npm";
87
+ }
88
+ function runScript(manager, script, directory) {
89
+ const prefix = directory === "." ? "" : ` --dir ${shellQuote(directory)}`;
90
+ if (manager === "pnpm")
91
+ return `pnpm${prefix} run ${shellQuote(script)}`;
92
+ if (manager === "yarn") {
93
+ return directory === "."
94
+ ? `yarn run ${shellQuote(script)}`
95
+ : `yarn --cwd ${shellQuote(directory)} run ${shellQuote(script)}`;
96
+ }
97
+ if (manager === "bun") {
98
+ return directory === "."
99
+ ? `bun run ${shellQuote(script)}`
100
+ : `bun --cwd ${shellQuote(directory)} run ${shellQuote(script)}`;
101
+ }
102
+ return directory === "."
103
+ ? `npm run ${shellQuote(script)}`
104
+ : `npm --prefix ${shellQuote(directory)} run ${shellQuote(script)}`;
105
+ }
106
+ function packagePaths(directory) {
107
+ return directory === "." ? ["**/*"] : [`${directory}/**`];
108
+ }
109
+ async function packageValidators(root, packageFiles, files) {
110
+ const focused = [];
111
+ const authoritative = [];
112
+ const ecosystems = [];
113
+ const unresolved = [];
114
+ let rootComplete = false;
115
+ for (const packageFile of packageFiles) {
116
+ let manifest;
117
+ try {
118
+ manifest = JSON.parse(await readFile(path.join(root, packageFile), "utf8"));
119
+ }
120
+ catch {
121
+ unresolved.push(`${packageFile} is not valid JSON; JavaScript validation was not configured.`);
122
+ continue;
123
+ }
124
+ const directory = posix(path.dirname(packageFile));
125
+ const label = directory === "." ? "workspace" : directory;
126
+ const scripts = manifest.scripts && typeof manifest.scripts === "object"
127
+ ? manifest.scripts
128
+ : {};
129
+ const manager = packageManager(files, manifest, directory);
130
+ ecosystems.push(`${manager}:${label}`);
131
+ const exact = (name) => typeof scripts[name] === "string";
132
+ const selected = ["lint", "typecheck", "type-check", "test", "build"].filter(exact);
133
+ for (const script of selected) {
134
+ const validator = {
135
+ name: `${label} ${script}`,
136
+ command: runScript(manager, script, directory),
137
+ timeoutSeconds: script === "build" ? 1_200 : 900,
138
+ };
139
+ if (script === "lint" || script === "typecheck" || script === "type-check") {
140
+ focused.push({ ...validator, paths: packagePaths(directory), timeoutSeconds: 600 });
141
+ }
142
+ }
143
+ const completeScript = ["verify", "ci", "check"].find(exact);
144
+ if (completeScript) {
145
+ if (directory === "." || !rootComplete) {
146
+ authoritative.push({
147
+ name: `${label} ${completeScript}`,
148
+ command: runScript(manager, completeScript, directory),
149
+ timeoutSeconds: 1_200,
150
+ });
151
+ }
152
+ if (directory === ".")
153
+ rootComplete = true;
154
+ }
155
+ else if (!rootComplete) {
156
+ authoritative.push(...selected.map((script) => ({
157
+ name: `${label} ${script}`,
158
+ command: runScript(manager, script, directory),
159
+ timeoutSeconds: script === "build" ? 1_200 : 900,
160
+ })));
161
+ }
162
+ if (!rootComplete && !completeScript && selected.length === 0) {
163
+ unresolved.push(`${packageFile} declares no recognized verify, ci, check, lint, typecheck, test, or build script.`);
164
+ }
165
+ }
166
+ return { ecosystems, focused, authoritative, unresolved, rootComplete };
167
+ }
168
+ function swiftValidators(packageFiles) {
169
+ return packageFiles.map((packageFile) => {
170
+ const directory = posix(path.dirname(packageFile));
171
+ const label = directory === "." ? "Swift workspace" : `Swift ${directory}`;
172
+ const packageArgument = directory === "." ? "" : ` --package-path ${shellQuote(directory)}`;
173
+ const cacheKey = createHash("sha256").update(directory).digest("hex").slice(0, 12);
174
+ return {
175
+ name: `${label} tests`,
176
+ command: `swift test${packageArgument} --scratch-path "$MERGE_BROKER_CACHE_DIR/swift-${cacheKey}"`,
177
+ paths: directory === "."
178
+ ? ["**/*.swift", "Package.swift", "Package.resolved"]
179
+ : [`${directory}/**/*.swift`, `${directory}/Package.swift`, `${directory}/Package.resolved`],
180
+ timeoutSeconds: 1_200,
181
+ executionArchitecture: "native",
182
+ };
183
+ });
184
+ }
185
+ function deduplicateValidators(validators) {
186
+ const seen = new Set();
187
+ return validators.filter((validator) => {
188
+ const key = `${validator.command}\0${JSON.stringify(validator.paths ?? [])}`;
189
+ if (seen.has(key))
190
+ return false;
191
+ seen.add(key);
192
+ return true;
193
+ });
194
+ }
195
+ export async function detectBootstrapPlan(root) {
196
+ const discovered = await discoverFiles(root);
197
+ const files = new Set(discovered);
198
+ const packageFiles = discovered
199
+ .filter((file) => file === "package.json" || file.endsWith("/package.json"))
200
+ .sort((left, right) => left === "package.json" ? -1 : right === "package.json" ? 1 : left.localeCompare(right));
201
+ const packages = await packageValidators(root, packageFiles, files);
202
+ const swiftPackages = discovered.filter((file) => file === "Package.swift" || file.endsWith("/Package.swift"));
203
+ const swift = swiftValidators(swiftPackages);
204
+ const ecosystems = [...packages.ecosystems, ...swiftPackages.map((file) => `swift:${posix(path.dirname(file))}`)].sort();
205
+ const focused = deduplicateValidators([...packages.focused, ...swift]);
206
+ const authoritative = deduplicateValidators([
207
+ ...packages.authoritative,
208
+ ...(packages.rootComplete ? [] : swift.map(({ paths: _paths, ...item }) => item)),
209
+ ]);
210
+ const serializedPatterns = [
211
+ ...discovered.filter((file) => PACKAGE_LOCKS.includes(path.posix.basename(file))),
212
+ ...swiftPackages.map((file) => posix(path.join(path.dirname(file), "Package.resolved"))),
213
+ ].sort();
214
+ const unresolved = [...packages.unresolved];
215
+ if (discovered.some((file) => file.endsWith(".xcodeproj/project.pbxproj") || file.endsWith(".xcworkspace/contents.xcworkspacedata"))) {
216
+ unresolved.push("Xcode project detected, but no destination or scheme was inferred. Add an explicit xcodebuild validator.");
217
+ }
218
+ if (focused.length === 0 && authoritative.length === 0) {
219
+ unresolved.push("No supported validation entry point was detected; configure validation before integrating work.");
220
+ }
221
+ return { ecosystems, focused, authoritative, serializedPatterns, unresolved };
222
+ }
223
+ export function applyBootstrapPlan(config, plan) {
224
+ let changed = false;
225
+ if (config.validation.authority === "broker" &&
226
+ config.validation.focused.length === 0 &&
227
+ config.validation.authoritative.length === 0 &&
228
+ plan.authoritative.length > 0) {
229
+ config.validation.focused = plan.focused;
230
+ config.validation.authoritative = plan.authoritative;
231
+ changed = true;
232
+ }
233
+ const serialized = [...new Set([...config.leases.serializedPatterns, ...plan.serializedPatterns])].sort();
234
+ if (JSON.stringify(serialized) !== JSON.stringify(config.leases.serializedPatterns)) {
235
+ config.leases.serializedPatterns = serialized;
236
+ changed = true;
237
+ }
238
+ return changed;
239
+ }
240
+ export async function installAgentContract(root) {
241
+ const target = path.join(root, "AGENTS.md");
242
+ const current = (await exists(target)) ? await readFile(target, "utf8") : "";
243
+ const start = current.indexOf(AGENT_BLOCK_START);
244
+ const end = current.indexOf(AGENT_BLOCK_END);
245
+ if ((start >= 0) !== (end >= 0) || (start >= 0 && end < start)) {
246
+ throw new BrokerError("INVALID_AGENT_CONTRACT", `The managed Merge Broker block in ${target} is incomplete; restore both marker lines before re-running init.`);
247
+ }
248
+ let next;
249
+ if (start >= 0 && end >= start) {
250
+ next = `${current.slice(0, start)}${AGENT_BLOCK}${current.slice(end + AGENT_BLOCK_END.length)}`;
251
+ }
252
+ else {
253
+ next = `${current.trimEnd()}${current.trim() ? "\n\n" : ""}${AGENT_BLOCK}\n`;
254
+ }
255
+ if (next === current)
256
+ return { path: target, changed: false };
257
+ await writeFile(target, next, "utf8");
258
+ return { path: target, changed: true };
259
+ }
260
+ export async function hasAgentContract(root) {
261
+ const target = path.join(root, "AGENTS.md");
262
+ if (!(await exists(target)))
263
+ return false;
264
+ const contents = await readFile(target, "utf8");
265
+ return contents.includes(AGENT_BLOCK_START) && contents.includes(AGENT_BLOCK_END);
266
+ }
267
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,iBAAiB,GAAG,mCAAmC,CAAC;AAC9D,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAC1D,MAAM,WAAW,GAAG,GAAG,iBAAiB;;;;;;EAMtC,eAAe,EAAE,CAAC;AAEpB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;IACV,aAAa;IACb,MAAM;IACN,OAAO;IACP,cAAc;IACd,QAAQ;CACT,CAAC,CAAC;AAeH,KAAK,UAAU,MAAM,CAAC,MAAc;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,QAAQ,GAAG,CAAC;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,UAAU,KAAK,CAAC,SAAiB,EAAE,KAAa;QACnD,IAAI,KAAK,GAAG,QAAQ;YAAE,OAAO;QAC7B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACvF,IAAI,KAAK,CAAC,cAAc,EAAE;gBAAE,SAAS;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,MAAM,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;AAEpG,SAAS,cAAc,CACrB,KAAkB,EAClB,WAAoC,EACpC,SAAiB;IAEjB,MAAM,QAAQ,GAAG,OAAO,WAAW,CAAC,cAAc,KAAK,QAAQ;QAC7D,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvF,IAAI,SAAS,GAAG,SAAS,CAAC;IAC1B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1F,IAAI,EAAE,CAAC,gBAAgB,CAAC;YAAE,OAAO,MAAM,CAAC;QACxC,IAAI,EAAE,CAAC,WAAW,CAAC;YAAE,OAAO,MAAM,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QACpD,IAAI,EAAE,CAAC,mBAAmB,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM;QAC7B,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,MAAc,EAAE,SAAiB;IACnE,MAAM,MAAM,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,OAAO,MAAM,QAAQ,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IACzE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,SAAS,KAAK,GAAG;YACtB,CAAC,CAAC,YAAY,UAAU,CAAC,MAAM,CAAC,EAAE;YAClC,CAAC,CAAC,cAAc,UAAU,CAAC,SAAS,CAAC,QAAQ,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,SAAS,KAAK,GAAG;YACtB,CAAC,CAAC,WAAW,UAAU,CAAC,MAAM,CAAC,EAAE;YACjC,CAAC,CAAC,aAAa,UAAU,CAAC,SAAS,CAAC,QAAQ,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,KAAK,GAAG;QACtB,CAAC,CAAC,WAAW,UAAU,CAAC,MAAM,CAAC,EAAE;QACjC,CAAC,CAAC,gBAAgB,UAAU,CAAC,SAAS,CAAC,QAAQ,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB;IACrC,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAY,EACZ,YAAsB,EACtB,KAAkB;IAQlB,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,aAAa,GAAsB,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,QAAiC,CAAC;QACtC,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAA4B,CAAC;QACzG,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,+DAA+D,CAAC,CAAC;YAC/F,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;YACtE,CAAC,CAAC,QAAQ,CAAC,OAAkC;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC3D,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC;QAClE,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAoB;gBACjC,IAAI,EAAE,GAAG,KAAK,IAAI,MAAM,EAAE;gBAC1B,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;gBAC9C,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;aACjD,CAAC;YACF,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC3E,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvC,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,GAAG,KAAK,IAAI,cAAc,EAAE;oBAClC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC;oBACtD,cAAc,EAAE,KAAK;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,SAAS,KAAK,GAAG;gBAAE,YAAY,GAAG,IAAI,CAAC;QAC7C,CAAC;aAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9C,IAAI,EAAE,GAAG,KAAK,IAAI,MAAM,EAAE;gBAC1B,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;gBAC9C,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;aACjD,CAAC,CAAC,CAAC,CAAC;QACP,CAAC;QACD,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,oFAAoF,CAAC,CAAC;QACtH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CAAC,YAAsB;IAC7C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC;QAC3E,MAAM,eAAe,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5F,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO;YACL,IAAI,EAAE,GAAG,KAAK,QAAQ;YACtB,OAAO,EAAE,aAAa,eAAe,kDAAkD,QAAQ,GAAG;YAClG,KAAK,EAAE,SAAS,KAAK,GAAG;gBACtB,CAAC,CAAC,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAC;gBACrD,CAAC,CAAC,CAAC,GAAG,SAAS,aAAa,EAAE,GAAG,SAAS,gBAAgB,EAAE,GAAG,SAAS,mBAAmB,CAAC;YAC9F,cAAc,EAAE,KAAK;YACrB,qBAAqB,EAAE,QAAQ;SAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,UAA6B;IAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7E,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IACpD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,UAAU;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;SAC3E,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAClH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC/G,MAAM,KAAK,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzH,MAAM,OAAO,GAAG,qBAAqB,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,qBAAqB,CAAC;QAC1C,GAAG,QAAQ,CAAC,aAAa;QACzB,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KAClF,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG;QACzB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACjF,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;KACzF,CAAC,IAAI,EAAE,CAAC;IACT,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC,EAAE,CAAC;QACrI,UAAU,CAAC,IAAI,CAAC,0GAA0G,CAAC,CAAC;IAC9H,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,UAAU,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;IACrH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAoB,EAAE,IAAmB;IAC1E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IACE,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ;QACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACtC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAC7B,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACzC,MAAM,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACrD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1G,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,kBAAkB,GAAG,UAAU,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,WAAW,CACnB,wBAAwB,EACxB,qCAAqC,MAAM,mEAAmE,CAC/G,CAAC;IACJ,CAAC;IACD,IAAI,IAAY,CAAC;IACjB,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IAClG,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,IAAI,CAAC;IAC/E,CAAC;IACD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9D,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACpF,CAAC"}
package/dist/broker.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { GitRepository } from "./git.js";
2
+ import { type AgentContractResult, type BootstrapPlan } from "./bootstrap.js";
2
3
  import { StateStore, type LockStatus } from "./store.js";
4
+ import { type ForgePublisher } from "./publisher.js";
3
5
  import { type HookInstallation } from "./hooks.js";
4
6
  import { type ServiceInstallation } from "./service.js";
5
7
  import type { BatchRecord, BrokerConfig, BrokerState, IntegrationOptions, IntegrationResult, LocalValidationResult, RefreshResult, RevisionResult, RecoveryResult, PruneOptions, PruneResult, SchedulePlan, TaskRecord } from "./types.js";
@@ -24,17 +26,27 @@ export declare class MergeBroker {
24
26
  readonly repo: GitRepository;
25
27
  readonly config: BrokerConfig;
26
28
  readonly store: StateStore;
29
+ readonly publisher: ForgePublisher;
27
30
  private constructor();
28
- static open(cwd?: string): Promise<MergeBroker>;
31
+ static open(cwd?: string, options?: {
32
+ publisher?: ForgePublisher;
33
+ }): Promise<MergeBroker>;
29
34
  static initialize(cwd?: string, options?: {
30
35
  baseBranch?: string;
31
36
  baseRef?: string;
32
37
  remote?: string;
33
38
  force?: boolean;
39
+ detect?: boolean;
40
+ agentContract?: boolean;
34
41
  }): Promise<{
35
42
  repoRoot: string;
36
43
  configPath: string;
37
44
  created: boolean;
45
+ updated: boolean;
46
+ operational: boolean;
47
+ signingConfigured: boolean;
48
+ bootstrap?: BootstrapPlan;
49
+ agentContract?: AgentContractResult;
38
50
  }>;
39
51
  /**
40
52
  * Enables authenticated provenance for an existing repository or rotates/imports its identity.
@@ -96,6 +108,7 @@ export declare class MergeBroker {
96
108
  cwd?: string;
97
109
  }): Promise<LocalValidationResult>;
98
110
  integrate(options?: IntegrationOptions): Promise<IntegrationResult>;
111
+ private writeRevisionArtifacts;
99
112
  private recoverAbandonedIntegrationsLocked;
100
113
  /**
101
114
  * Recovers durable `running` state left by a killed integration process. Acquiring the integration
@@ -1 +1 @@
1
- {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"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"}