@izagood/avcs 0.3.0 → 0.5.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 CHANGED
@@ -250,6 +250,15 @@ AVCS_REPO=$(pwd) npm run mcp # = node --experimental-strip-types src/mcp/se
250
250
 
251
251
  This is an early-stage research prototype and the design is still moving. Issues and discussion are welcome — if you're proposing a change, the design docs above are the best starting point for the rationale behind the current model. Please run `npm test` and `npm run typecheck` before opening a pull request.
252
252
 
253
+ ### Filing an issue
254
+
255
+ Hit something you'd like changed while using AVCS? Please open an issue rather than sending free-form feedback — structured reports are far easier to act on. Two templates are provided under [`.github/ISSUE_TEMPLATE`](.github/ISSUE_TEMPLATE):
256
+
257
+ - **🔧 Change request** — propose a change to existing behavior, the CLI/MCP interface, defaults, or docs.
258
+ - **🐞 Bug report** — something behaves incorrectly, crashes, or produces a non-deterministic result.
259
+
260
+ > 🌐 **Any language is welcome.** File your issue in whatever language you're most comfortable with — English, 한국어, 日本語, etc. Maintainers will translate as needed; don't let language be a barrier to reporting.
261
+
253
262
  Every push and pull request to `main` runs CI ([`.github/workflows/ci.yml`](.github/workflows/ci.yml)): `npm ci` → `npm run typecheck` → `npm test` on Node 22.x and 24.x. PRs are merged only when CI is green.
254
263
 
255
264
  ## License
@@ -51,6 +51,16 @@ export declare class Repo {
51
51
  privateKey: string;
52
52
  publicKey: string;
53
53
  }>;
54
+ /** Persist an actor's PRIVATE key locally (owner machine only), perms 0600. */
55
+ saveLocalKey(actorId: string, privateKey: string): Promise<void>;
56
+ /** Load a locally-held private key for `actorId`, or null if none is stored. */
57
+ loadLocalKey(actorId: string): Promise<string | null>;
58
+ /**
59
+ * Provision an owner key: mint a keypair, register the public half as trusted, and
60
+ * store the private half in the LOCAL keystore so the MCP server can sign the
61
+ * owner's elicitation-confirmed decisions (issue #15). Returns the keyId.
62
+ */
63
+ provisionOwnerKey(actor: Actor, keyId?: string): Promise<string>;
54
64
  readIntent(oid: string): Promise<Intent>;
55
65
  listIntents(): Promise<Intent[]>;
56
66
  createIntent(args: {
@@ -100,7 +110,7 @@ export declare class Repo {
100
110
  intentOid: string;
101
111
  actor: Actor;
102
112
  path: string;
103
- content: string;
113
+ content: string | Uint8Array;
104
114
  declaredPurpose: string;
105
115
  causalDeps?: string[];
106
116
  effects?: Operation["effects"];
@@ -392,20 +402,22 @@ export declare class Repo {
392
402
  /**
393
403
  * Persist the provenance handoff for the git-hook trio (pre-commit writes it; the
394
404
  * prepare-commit-msg and post-commit hooks consume it). Local working state, git-ignored.
405
+ * `workDir` is the working tree being committed (the git worktree dir), defaulting to
406
+ * the store dir for a plain repo.
395
407
  */
396
408
  writeGitPending(info: {
397
409
  checkpoint: string;
398
410
  treeHash: string;
399
411
  intent?: string;
400
- }): Promise<void>;
401
- /** Read the pending provenance handoff, or null if none is staged. */
402
- readGitPending(): Promise<{
412
+ }, workDir?: string): Promise<void>;
413
+ /** Read the pending provenance handoff for `workDir`, or null if none is staged. */
414
+ readGitPending(workDir?: string): Promise<{
403
415
  checkpoint: string;
404
416
  treeHash: string;
405
417
  intent?: string;
406
418
  } | null>;
407
- /** Clear the pending provenance handoff (post-commit, after recording the back-link). */
408
- clearGitPending(): Promise<void>;
419
+ /** Clear the pending provenance handoff for `workDir` (post-commit, after recording the back-link). */
420
+ clearGitPending(workDir?: string): Promise<void>;
409
421
  /**
410
422
  * Rebuild every rebuildable cache from the object store: the entity index AND the
411
423
  * op-log/obj-log. This is the recovery path after objects arrive OUTSIDE the normal
@@ -435,6 +447,7 @@ export declare class Repo {
435
447
  message: string;
436
448
  actor: Actor;
437
449
  line?: string;
450
+ workDir?: string;
438
451
  }): Promise<{
439
452
  mode: GitMode;
440
453
  captured: {
@@ -555,7 +568,12 @@ export declare class Repo {
555
568
  */
556
569
  writeWorkspace(result: ReductionResult, targetDir: string): Promise<void>;
557
570
  createCheckpoint(viewName: string, summary: string): Promise<string>;
558
- /** Resolve the materialized tree into {path, content} entries. */
571
+ /** Resolve the materialized tree into {path, bytes} entries (byte-preserving). */
572
+ materializedBytes(result: ReductionResult): Promise<{
573
+ path: string;
574
+ bytes: Buffer;
575
+ }[]>;
576
+ /** Resolve the materialized tree into {path, content} entries (utf8 text view). */
559
577
  materializedFiles(result: ReductionResult): Promise<{
560
578
  path: string;
561
579
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/api/repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/api/repo.ts"],"names":[],"mappings":"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"}
package/dist/api/repo.js CHANGED
@@ -38,9 +38,10 @@ const GITIGNORE_COMMITTED = `# AVCS — committed mode.
38
38
  /snapshot/
39
39
  /locks/
40
40
  /packs/
41
+ /private/
41
42
  /oplog
42
43
  /objlog
43
- /.git-pending
44
+ /pending/
44
45
  *.lock
45
46
  *.tmp*
46
47
  `;
@@ -127,7 +128,7 @@ export class Repo {
127
128
  async reliability() {
128
129
  const ops = await this.store.collect("operation");
129
130
  const evidence = this.#verifiedEvidence(await this.store.collect("evidence"));
130
- const decisions = await this.store.collect("decision");
131
+ const decisions = this.#verifiedDecisions(await this.store.collect("decision"));
131
132
  return computeReliability(ops, evidence, decisions);
132
133
  }
133
134
  // ── identity / keyring (Phase 3) ──────────────────────────────────────────
@@ -161,6 +162,43 @@ export class Repo {
161
162
  await this.registerPublicKey({ keyId, publicKey, actorId: actor.id, actorKind: actor.kind });
162
163
  return { keyId, privateKey, publicKey };
163
164
  }
165
+ // ── local private keystore (issue #15 Layer 2 / B2) ────────────────────────
166
+ // Public keys live in `keys/` (trusted, shared). PRIVATE keys live ONLY here,
167
+ // locally on the owner's machine — never shared, never committed. The MCP server
168
+ // loads them to sign a decision on the owner's behalf AFTER an elicitation
169
+ // confirmation, so an agent (which never sees the key) cannot forge a human
170
+ // decision. gitignored in both modes: sidecar ignores all of .avcs/, committed
171
+ // lists /private/ explicitly.
172
+ #privateKeysDir() {
173
+ return join(this.store.root, "private");
174
+ }
175
+ /** Persist an actor's PRIVATE key locally (owner machine only), perms 0600. */
176
+ async saveLocalKey(actorId, privateKey) {
177
+ await mkdir(this.#privateKeysDir(), { recursive: true });
178
+ await writeFile(join(this.#privateKeysDir(), `${actorId}.json`), JSON.stringify({ actorId, privateKey }), { encoding: "utf8", mode: 0o600 });
179
+ }
180
+ /** Load a locally-held private key for `actorId`, or null if none is stored. */
181
+ async loadLocalKey(actorId) {
182
+ const p = join(this.#privateKeysDir(), `${actorId}.json`);
183
+ if (!existsSync(p))
184
+ return null;
185
+ try {
186
+ return JSON.parse(await readFile(p, "utf8")).privateKey;
187
+ }
188
+ catch {
189
+ return null;
190
+ }
191
+ }
192
+ /**
193
+ * Provision an owner key: mint a keypair, register the public half as trusted, and
194
+ * store the private half in the LOCAL keystore so the MCP server can sign the
195
+ * owner's elicitation-confirmed decisions (issue #15). Returns the keyId.
196
+ */
197
+ async provisionOwnerKey(actor, keyId = actor.id) {
198
+ const { privateKey } = await this.generateActorKey(actor, keyId);
199
+ await this.saveLocalKey(actor.id, privateKey);
200
+ return keyId;
201
+ }
164
202
  #sign(type, payload, signWith) {
165
203
  if (!signWith)
166
204
  return undefined;
@@ -418,6 +456,21 @@ export class Repo {
418
456
  return this.keyring.verifyFor(e.producedBy.id, e.oid, e.sig);
419
457
  });
420
458
  }
459
+ /**
460
+ * Decisions carry the same trust requirement as evidence (issue #15): a human/owner
461
+ * decision only takes effect if it bears a valid signature from that actor's
462
+ * registered key. Unsigned or forged decisions simply disappear, so the conflict
463
+ * they claimed to resolve stays open — an agent cannot fabricate a human sign-off
464
+ * (the MCP `kind === "human"` check is self-declared and not, by itself, a guarantee).
465
+ * With no keyring configured, fall back to Phase-1 behavior (keep all). Unlike
466
+ * evidence there is no ai_agent passthrough: a decision is an authority act, so every
467
+ * decision must verify once a keyring exists. Mirrors #verifiedEvidence.
468
+ */
469
+ #verifiedDecisions(all) {
470
+ if (this.keyring.size === 0)
471
+ return all;
472
+ return all.filter((d) => this.keyring.verifyFor(d.decidedBy.id, d.oid, d.sig));
473
+ }
421
474
  // ── views & materialization ──────────────────────────────────────────────
422
475
  async getView(name) {
423
476
  const oid = await this.store.getRef(`view:${name}`);
@@ -1059,7 +1112,7 @@ export class Repo {
1059
1112
  }
1060
1113
  async #reduceOpSet(ops, includeStatuses, useInc = false) {
1061
1114
  const evidence = this.#verifiedEvidence(await this.store.collect("evidence"));
1062
- const decisions = await this.store.collect("decision");
1115
+ const decisions = this.#verifiedDecisions(await this.store.collect("decision"));
1063
1116
  // Redactions overwrite blob bytes while keeping the oid, so they don't change op
1064
1117
  // oids — include them in the signature so a redaction invalidates the cache.
1065
1118
  const redactions = await this.store.collect("redaction");
@@ -1096,7 +1149,7 @@ export class Repo {
1096
1149
  for (const op of ops) {
1097
1150
  for (const oid of [op.body.blobOid, op.body.baseBlobOid]) {
1098
1151
  if (oid && !blobContent.has(oid))
1099
- blobContent.set(oid, (await this.readBlob(oid)).toString("utf8"));
1152
+ blobContent.set(oid, await this.readBlob(oid));
1100
1153
  }
1101
1154
  }
1102
1155
  const policy = await this.policy();
@@ -1131,7 +1184,7 @@ export class Repo {
1131
1184
  return result;
1132
1185
  }
1133
1186
  // ── git-like working tree (checkout / commit) ─────────────────────────────
1134
- /** Read a working directory's files (relative paths → content), skipping .avcs/. */
1187
+ /** Read a working directory's files (relative paths → bytes), skipping .avcs/. */
1135
1188
  async #readWorkTree(workDir) {
1136
1189
  const out = new Map();
1137
1190
  if (!existsSync(workDir))
@@ -1142,7 +1195,7 @@ export class Repo {
1142
1195
  const rel = join(ent.parentPath ?? ent.path ?? workDir, ent.name).slice(workDir.length + 1);
1143
1196
  if (rel.startsWith(".avcs") || rel === ".avcs-workspace" || rel.startsWith(".git"))
1144
1197
  continue;
1145
- out.set(rel.split("\\").join("/"), await readFile(join(workDir, rel), "utf8"));
1198
+ out.set(rel.split("\\").join("/"), await readFile(join(workDir, rel)));
1146
1199
  }
1147
1200
  return out;
1148
1201
  }
@@ -1154,7 +1207,7 @@ export class Repo {
1154
1207
  const full = join(workDir, path);
1155
1208
  await mkdir(dirname(full), { recursive: true });
1156
1209
  const synth = res.synthBlobs.get(blobOid);
1157
- await writeFile(full, synth !== undefined ? Buffer.from(synth, "utf8") : await this.readBlob(blobOid));
1210
+ await writeFile(full, synth ?? await this.readBlob(blobOid));
1158
1211
  written.push(path);
1159
1212
  }
1160
1213
  return written.sort();
@@ -1167,7 +1220,7 @@ export class Repo {
1167
1220
  async commitWorkingTree(workDir, opts) {
1168
1221
  const view = opts.line ?? "main";
1169
1222
  const res = await this.materialize(view);
1170
- const current = new Map((await this.materializedFiles(res)).map((f) => [f.path, f.content]));
1223
+ const current = new Map((await this.materializedBytes(res)).map((f) => [f.path, f.bytes]));
1171
1224
  const disk = await this.#readWorkTree(workDir);
1172
1225
  const added = [];
1173
1226
  const modified = [];
@@ -1175,7 +1228,7 @@ export class Repo {
1175
1228
  for (const [path, content] of disk) {
1176
1229
  if (!current.has(path))
1177
1230
  added.push(path);
1178
- else if (current.get(path) !== content)
1231
+ else if (!current.get(path).equals(content))
1179
1232
  modified.push(path);
1180
1233
  }
1181
1234
  for (const path of current.keys())
@@ -1267,16 +1320,27 @@ export class Repo {
1267
1320
  await this.store.writeAux(".gitattributes", "objects/** -diff -merge\noplog -diff\nobjlog -diff\n");
1268
1321
  }
1269
1322
  }
1323
+ /**
1324
+ * Relative store path for a working tree's provenance handoff. Keyed by the working
1325
+ * directory so concurrent `git commit`s from different git worktrees (which all share
1326
+ * this single store) don't clobber each other's pending handoff. `workDir` defaults to
1327
+ * the store dir, so a plain (non-worktree) repo keeps a single, stable pending slot.
1328
+ */
1329
+ #pendingRel(workDir) {
1330
+ return join("pending", `${sha256hex(workDir).slice(0, 16)}.json`);
1331
+ }
1270
1332
  /**
1271
1333
  * Persist the provenance handoff for the git-hook trio (pre-commit writes it; the
1272
1334
  * prepare-commit-msg and post-commit hooks consume it). Local working state, git-ignored.
1335
+ * `workDir` is the working tree being committed (the git worktree dir), defaulting to
1336
+ * the store dir for a plain repo.
1273
1337
  */
1274
- async writeGitPending(info) {
1275
- await this.store.writeAux(".git-pending", JSON.stringify(info) + "\n");
1338
+ async writeGitPending(info, workDir = this.dir) {
1339
+ await this.store.writeAux(this.#pendingRel(workDir), JSON.stringify(info) + "\n");
1276
1340
  }
1277
- /** Read the pending provenance handoff, or null if none is staged. */
1278
- async readGitPending() {
1279
- const p = join(this.dir, ".avcs", ".git-pending");
1341
+ /** Read the pending provenance handoff for `workDir`, or null if none is staged. */
1342
+ async readGitPending(workDir = this.dir) {
1343
+ const p = join(this.dir, ".avcs", this.#pendingRel(workDir));
1280
1344
  if (!existsSync(p))
1281
1345
  return null;
1282
1346
  try {
@@ -1286,9 +1350,9 @@ export class Repo {
1286
1350
  return null;
1287
1351
  }
1288
1352
  }
1289
- /** Clear the pending provenance handoff (post-commit, after recording the back-link). */
1290
- async clearGitPending() {
1291
- await rm(join(this.dir, ".avcs", ".git-pending"), { force: true });
1353
+ /** Clear the pending provenance handoff for `workDir` (post-commit, after recording the back-link). */
1354
+ async clearGitPending(workDir = this.dir) {
1355
+ await rm(join(this.dir, ".avcs", this.#pendingRel(workDir)), { force: true });
1292
1356
  }
1293
1357
  /**
1294
1358
  * Rebuild every rebuildable cache from the object store: the entity index AND the
@@ -1330,10 +1394,13 @@ export class Repo {
1330
1394
  * git-agnostic; `.avcs/.gitignore` (ensured here) makes a plain `git add -A` mode-correct.
1331
1395
  */
1332
1396
  async gitSync(opts) {
1397
+ // The STORE is single (`this.dir`); the working tree projected/captured may be a
1398
+ // separate git worktree (`workDir`). They coincide for a plain, non-worktree repo.
1399
+ const workDir = opts.workDir ?? this.dir;
1333
1400
  const view = opts.line ?? "main";
1334
1401
  const lineOpt = opts.line ? { line: opts.line } : {};
1335
1402
  // 1. Capture direct working-tree edits as ops before anything else.
1336
- const cap = await this.commitWorkingTree(this.dir, { message: opts.message, actor: opts.actor, ...lineOpt });
1403
+ const cap = await this.commitWorkingTree(workDir, { message: opts.message, actor: opts.actor, ...lineOpt });
1337
1404
  const captured = { ops: cap.ops, added: cap.added, modified: cap.modified, removed: cap.removed, intent: cap.intent };
1338
1405
  // Ensure the gitignore reflects the current mode (pre-existing repos never wrote one).
1339
1406
  const mode = await this.getGitMode();
@@ -1344,7 +1411,7 @@ export class Repo {
1344
1411
  return { mode, captured, conflicts: res.conflicts };
1345
1412
  // 3. Checkpoint the verified state. 4. Re-project the working tree.
1346
1413
  const checkpoint = await this.createCheckpoint(view, opts.message);
1347
- const written = await this.checkoutInto(this.dir, view);
1414
+ const written = await this.checkoutInto(workDir, view);
1348
1415
  this.logger.info("git.sync", { view, mode, capturedOps: captured.ops.length, checkpoint, treeHash: res.treeHash });
1349
1416
  return { mode, captured, conflicts: [], checkpoint, treeHash: res.treeHash, reprojected: written.length };
1350
1417
  }
@@ -1639,7 +1706,7 @@ export class Repo {
1639
1706
  await mkdir(dirname(full), { recursive: true });
1640
1707
  // Symbol-merged files are synthesized content, not a stored blob.
1641
1708
  const synth = result.synthBlobs.get(blobOid);
1642
- await writeFile(full, synth !== undefined ? Buffer.from(synth, "utf8") : await this.readBlob(blobOid));
1709
+ await writeFile(full, synth ?? await this.readBlob(blobOid));
1643
1710
  }
1644
1711
  }
1645
1712
  async createCheckpoint(viewName, summary) {
@@ -1674,15 +1741,19 @@ export class Repo {
1674
1741
  await this.store.setRef(`checkpoint:${viewName}:latest`, oid);
1675
1742
  return oid;
1676
1743
  }
1677
- /** Resolve the materialized tree into {path, content} entries. */
1678
- async materializedFiles(result) {
1744
+ /** Resolve the materialized tree into {path, bytes} entries (byte-preserving). */
1745
+ async materializedBytes(result) {
1679
1746
  const out = [];
1680
1747
  for (const [path, blobOid] of result.tree) {
1681
1748
  const synth = result.synthBlobs.get(blobOid);
1682
- out.push({ path, content: synth ?? (await this.readBlob(blobOid)).toString("utf8") });
1749
+ out.push({ path, bytes: synth ?? (await this.readBlob(blobOid)) });
1683
1750
  }
1684
1751
  return out;
1685
1752
  }
1753
+ /** Resolve the materialized tree into {path, content} entries (utf8 text view). */
1754
+ async materializedFiles(result) {
1755
+ return (await this.materializedBytes(result)).map(({ path, bytes }) => ({ path, content: bytes.toString("utf8") }));
1756
+ }
1686
1757
  /**
1687
1758
  * Phase 6: cut a Release — a verified checkpoint + its evidence + an SBOM of what
1688
1759
  * shipped + signed-off artifacts. Refuses unless the view is conflict-free (no open
@@ -1699,7 +1770,7 @@ export class Repo {
1699
1770
  const checkpointOid = await this.createCheckpoint(viewName, opts.summary ?? `release of ${viewName}`);
1700
1771
  const checkpoint = await this.store.get(checkpointOid);
1701
1772
  const { generateSbom } = await import("../release/sbom.js");
1702
- const sbom = generateSbom(await this.materializedFiles(result));
1773
+ const sbom = generateSbom(await this.materializedBytes(result));
1703
1774
  const release = {
1704
1775
  type: "release",
1705
1776
  checkpointOid,