agent-merge-broker 0.9.0 → 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.
- package/README.md +24 -8
- package/dist/bootstrap.d.ts +17 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +267 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/broker.d.ts +8 -0
- package/dist/broker.d.ts.map +1 -1
- package/dist/broker.js +76 -9
- package/dist/broker.js.map +1 -1
- package/dist/cli.js +22 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/process.d.ts +11 -0
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +24 -3
- package/dist/process.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts +4 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +65 -44
- package/dist/validation.js.map +1 -1
- package/docs/GETTING_STARTED.md +24 -6
- package/docs/RELEASING.md +1 -1
- package/examples/two-agents/run.sh +1 -1
- package/package.json +1 -1
- package/schemas/config.schema.json +5 -1
package/README.md
CHANGED
|
@@ -46,10 +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.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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.
|
|
53
53
|
|
|
54
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.
|
|
55
55
|
|
|
@@ -79,10 +79,19 @@ npm run build
|
|
|
79
79
|
npm link
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
`init` writes
|
|
82
|
+
`init` writes three portable files into the application:
|
|
83
83
|
|
|
84
84
|
- `.merge-broker/config.json` — repository policy and commands
|
|
85
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.
|
|
86
95
|
|
|
87
96
|
It also creates an Ed25519 provenance private key, mode `0600`, under Git's common runtime directory.
|
|
88
97
|
Only its public key is written to the committed configuration. Runtime state, receipt records,
|
|
@@ -94,11 +103,11 @@ worktree sees the same broker authority.
|
|
|
94
103
|
For a guided rollout—including validator, publication, service, recovery, and protected-branch
|
|
95
104
|
recipes—start with [Getting started](docs/GETTING_STARTED.md).
|
|
96
105
|
|
|
97
|
-
Initialize an existing Git repository and
|
|
106
|
+
Initialize an existing Git repository, review the detected policy, and commit the installation:
|
|
98
107
|
|
|
99
108
|
```bash
|
|
100
109
|
merge-broker init --base main --base-ref origin/main --remote origin
|
|
101
|
-
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'
|
|
102
111
|
merge-broker doctor
|
|
103
112
|
```
|
|
104
113
|
|
|
@@ -215,7 +224,7 @@ installing dependencies:
|
|
|
215
224
|
with:
|
|
216
225
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
217
226
|
fetch-depth: 0
|
|
218
|
-
- uses: WeSpitfire/agent-merge-broker/verify@v0.
|
|
227
|
+
- uses: WeSpitfire/agent-merge-broker/verify@v0.10.0
|
|
219
228
|
```
|
|
220
229
|
|
|
221
230
|
The check verifies the Ed25519 signature, branch and batch identity, real base history, one-file
|
|
@@ -444,6 +453,7 @@ Validators receive these environment variables:
|
|
|
444
453
|
- `MERGE_BROKER_BASE_SHA`
|
|
445
454
|
- `MERGE_BROKER_HEAD_SHA`
|
|
446
455
|
- `MERGE_BROKER_BATCH_ID`
|
|
456
|
+
- `MERGE_BROKER_CACHE_DIR`, an isolated cache shared by validators in one integration transaction
|
|
447
457
|
|
|
448
458
|
Commands may also use the shell-safe placeholders `{taskId}` and `{files}`. Validator output is
|
|
449
459
|
captured with a fixed memory bound and retained in state with that cap. A timeout terminates the
|
|
@@ -454,6 +464,12 @@ can get the local integration answer before submitting rather than a weaker appr
|
|
|
454
464
|
`MERGE_BROKER_BATCH_ID=local`, which a validator can branch on if it needs to behave differently
|
|
455
465
|
outside a batch.
|
|
456
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
|
+
|
|
457
473
|
The JSON schemas in [`schemas/`](schemas/) can be used by editors, adapters, and independent receipt producers.
|
|
458
474
|
|
|
459
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":"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"}
|
package/dist/broker.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
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";
|
|
3
4
|
import { type ForgePublisher } from "./publisher.js";
|
|
4
5
|
import { type HookInstallation } from "./hooks.js";
|
|
@@ -35,10 +36,17 @@ export declare class MergeBroker {
|
|
|
35
36
|
baseRef?: string;
|
|
36
37
|
remote?: string;
|
|
37
38
|
force?: boolean;
|
|
39
|
+
detect?: boolean;
|
|
40
|
+
agentContract?: boolean;
|
|
38
41
|
}): Promise<{
|
|
39
42
|
repoRoot: string;
|
|
40
43
|
configPath: string;
|
|
41
44
|
created: boolean;
|
|
45
|
+
updated: boolean;
|
|
46
|
+
operational: boolean;
|
|
47
|
+
signingConfigured: boolean;
|
|
48
|
+
bootstrap?: BootstrapPlan;
|
|
49
|
+
agentContract?: AgentContractResult;
|
|
42
50
|
}>;
|
|
43
51
|
/**
|
|
44
52
|
* Enables authenticated provenance for an existing repository or rotates/imports its identity.
|
package/dist/broker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"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"}
|