oh-my-second-brain 0.1.9 → 0.2.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 (96) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/adapters/claude-code/.claude-plugin/plugin.json +1 -1
  3. package/adapters/claude-code/skills/link/SKILL.md +87 -0
  4. package/adapters/codex/.codex-plugin/plugin.json +1 -1
  5. package/adapters/codex/skills/oms-link/SKILL.md +35 -0
  6. package/adapters/hermes/README.md +2 -0
  7. package/adapters/hermes/manifest.json +1 -1
  8. package/adapters/hermes/skills/link/SKILL.md +18 -0
  9. package/core/ontology/concepts/term.yaml +12 -0
  10. package/core/ontology/taxonomy.yaml +3 -0
  11. package/core/skills/link/SKILL.md +130 -0
  12. package/dist/capture/safe.d.ts +32 -2
  13. package/dist/capture/safe.js +223 -37
  14. package/dist/capture/safe.js.map +1 -1
  15. package/dist/cli/args.d.ts +2 -0
  16. package/dist/cli/args.js +6 -0
  17. package/dist/cli/args.js.map +1 -1
  18. package/dist/cli/global-writeback.d.ts +31 -0
  19. package/dist/cli/global-writeback.js +73 -0
  20. package/dist/cli/global-writeback.js.map +1 -0
  21. package/dist/cli/host-commands.d.ts +30 -0
  22. package/dist/cli/host-commands.js +89 -0
  23. package/dist/cli/host-commands.js.map +1 -0
  24. package/dist/cli/linkify.d.ts +23 -0
  25. package/dist/cli/linkify.js +118 -0
  26. package/dist/cli/linkify.js.map +1 -0
  27. package/dist/cli/oms.d.ts +1 -0
  28. package/dist/cli/oms.js +52 -66
  29. package/dist/cli/oms.js.map +1 -1
  30. package/dist/cli/usage.js +11 -1
  31. package/dist/cli/usage.js.map +1 -1
  32. package/dist/conventions/write-protocol.d.ts +39 -0
  33. package/dist/conventions/write-protocol.js +44 -0
  34. package/dist/conventions/write-protocol.js.map +1 -0
  35. package/dist/core/runtime/assets.d.ts +6 -0
  36. package/dist/core/runtime/assets.js +27 -0
  37. package/dist/core/runtime/assets.js.map +1 -1
  38. package/dist/engine/graph/resolver.d.ts +17 -0
  39. package/dist/engine/graph/resolver.js +46 -11
  40. package/dist/engine/graph/resolver.js.map +1 -1
  41. package/dist/engine/linkify/apply.d.ts +56 -0
  42. package/dist/engine/linkify/apply.js +65 -0
  43. package/dist/engine/linkify/apply.js.map +1 -0
  44. package/dist/engine/linkify/josa.d.ts +58 -0
  45. package/dist/engine/linkify/josa.js +133 -0
  46. package/dist/engine/linkify/josa.js.map +1 -0
  47. package/dist/engine/linkify/mask.d.ts +29 -0
  48. package/dist/engine/linkify/mask.js +173 -0
  49. package/dist/engine/linkify/mask.js.map +1 -0
  50. package/dist/engine/linkify/suggest.d.ts +52 -0
  51. package/dist/engine/linkify/suggest.js +181 -0
  52. package/dist/engine/linkify/suggest.js.map +1 -0
  53. package/dist/engine/linkify/types.d.ts +68 -0
  54. package/dist/engine/linkify/types.js +12 -0
  55. package/dist/engine/linkify/types.js.map +1 -0
  56. package/dist/harness/surface-registry.d.ts +1 -0
  57. package/dist/harness/surface-registry.js +27 -0
  58. package/dist/harness/surface-registry.js.map +1 -1
  59. package/dist/harness/validation.js +30 -1
  60. package/dist/harness/validation.js.map +1 -1
  61. package/dist/install/claude-marketplace.d.ts +44 -0
  62. package/dist/install/claude-marketplace.js +89 -0
  63. package/dist/install/claude-marketplace.js.map +1 -0
  64. package/dist/install/claude.js +14 -7
  65. package/dist/install/claude.js.map +1 -1
  66. package/dist/install/codex.d.ts +15 -0
  67. package/dist/install/codex.js +15 -0
  68. package/dist/install/codex.js.map +1 -1
  69. package/dist/install/common.d.ts +11 -2
  70. package/dist/install/common.js +19 -12
  71. package/dist/install/common.js.map +1 -1
  72. package/dist/install/hermes.js +15 -15
  73. package/dist/install/hermes.js.map +1 -1
  74. package/dist/install/hosts.js +31 -15
  75. package/dist/install/hosts.js.map +1 -1
  76. package/dist/link/global-config.d.ts +22 -0
  77. package/dist/link/global-config.js +69 -0
  78. package/dist/link/global-config.js.map +1 -0
  79. package/dist/link/link.d.ts +6 -3
  80. package/dist/link/link.js +12 -2
  81. package/dist/link/link.js.map +1 -1
  82. package/dist/mcp/link-tools.d.ts +81 -0
  83. package/dist/mcp/link-tools.js +157 -0
  84. package/dist/mcp/link-tools.js.map +1 -0
  85. package/dist/mcp/server.d.ts +7 -0
  86. package/dist/mcp/server.js +107 -8
  87. package/dist/mcp/server.js.map +1 -1
  88. package/dist/mcp/update-notice.d.ts +51 -0
  89. package/dist/mcp/update-notice.js +196 -0
  90. package/dist/mcp/update-notice.js.map +1 -0
  91. package/dist/update/update.d.ts +12 -0
  92. package/dist/update/update.js +2 -2
  93. package/dist/update/update.js.map +1 -1
  94. package/docs/install.md +38 -2
  95. package/docs/release.md +109 -17
  96. package/package.json +4 -2
@@ -1,8 +1,9 @@
1
- import { access, appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
1
+ import { access, appendFile, mkdir, readFile, stat, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { stringify as yamlStringify } from "yaml";
4
4
  import { parseNote } from "../conventions/frontmatter.js";
5
5
  import { evaluateWriteContract, routingLawStrictFolders, writeFieldDescriptors, } from "../conventions/write-contract.js";
6
+ import { rejection, } from "../conventions/write-protocol.js";
6
7
  import { resolveConcept } from "../core/ontology/resolver.js";
7
8
  function slugify(value) {
8
9
  const slug = value
@@ -55,7 +56,13 @@ function inboxResult(mode, ontology, filename, frontmatter, reason) {
55
56
  reason,
56
57
  });
57
58
  }
58
- function rejectedResult(mode, notePath, concept, frontmatter, violations, reason) {
59
+ function pathUnsafeRejection(reason) {
60
+ return rejection("admission", "path-unsafe", reason, "pass a vault-relative `notePath` ending in .md that stays inside the vault and avoids hidden or internal folders");
61
+ }
62
+ function conceptUnboundRejection() {
63
+ return rejection("admission", "concept-unbound", "Cannot commit capture: notePath does not resolve to a concept binding", "move the note into a folder bound to a concept in taxonomy.yaml, or target an existing bound note");
64
+ }
65
+ function rejectedResult(mode, notePath, concept, frontmatter, violations, reason, rejectionPayload) {
59
66
  return writeResult({
60
67
  status: "rejected",
61
68
  mode,
@@ -67,6 +74,7 @@ function rejectedResult(mode, notePath, concept, frontmatter, violations, reason
67
74
  missingFields: violations.map((violation) => violation.field),
68
75
  violations,
69
76
  reason,
77
+ ...(rejectionPayload ? { rejection: rejectionPayload } : {}),
70
78
  });
71
79
  }
72
80
  function askResult(mode, notePath, concept, frontmatter, violations) {
@@ -80,9 +88,12 @@ function askResult(mode, notePath, concept, frontmatter, violations) {
80
88
  frontmatter,
81
89
  missingFields: violations.map((violation) => violation.field),
82
90
  violations,
91
+ rejection: rejection("admission", "contract-violation", "Capture does not satisfy the concept contract yet", `provide or correct these fields, then retry: ${violations
92
+ .map((violation) => violation.field)
93
+ .join(", ")}`),
83
94
  });
84
95
  }
85
- function writtenResult(mode, notePath, concept, frontmatter) {
96
+ function writtenResult(mode, notePath, concept, frontmatter, receipt) {
86
97
  return writeResult({
87
98
  status: "written",
88
99
  mode,
@@ -93,6 +104,7 @@ function writtenResult(mode, notePath, concept, frontmatter) {
93
104
  frontmatter,
94
105
  missingFields: [],
95
106
  violations: [],
107
+ ...(receipt ? { receipt } : {}),
96
108
  });
97
109
  }
98
110
  export function safeVaultNotePath(vault, notePath) {
@@ -204,6 +216,17 @@ async function fileExists(fullPath) {
204
216
  throw error;
205
217
  }
206
218
  }
219
+ async function isDirectory(fullPath) {
220
+ try {
221
+ return (await stat(fullPath)).isDirectory();
222
+ }
223
+ catch (error) {
224
+ if (hasErrorCode(error, "ENOENT") || hasErrorCode(error, "ENOTDIR")) {
225
+ return false;
226
+ }
227
+ throw error;
228
+ }
229
+ }
207
230
  export function prepareCapture(input) {
208
231
  const frontmatter = input.frontmatter ?? {};
209
232
  const planned = planCreatePlacement(input.ontology, input.concept, input.folder, input.filename, frontmatter);
@@ -246,9 +269,123 @@ export function prepareCapture(input) {
246
269
  violations: contract.violations,
247
270
  };
248
271
  }
272
+ /**
273
+ * Admission Rules - target verification.
274
+ *
275
+ * Runs before ANY disk mutation. `cwd` resolution is unverified for the write
276
+ * surface (the process may have booted anywhere). A `global` registry pointer
277
+ * must still point at a real `.oms` ontology; every other source is trusted
278
+ * without an ontology presence check so the bundled-ontology fallback keeps
279
+ * working.
280
+ */
281
+ async function admitTarget(target) {
282
+ if (target.source === "cwd") {
283
+ return rejection("admission", "target-unverified", `Refusing to write: the target vault was inferred from the current directory (${target.vault}), which is not a verified Oh My Second Brain vault`, "run `oms setup` in your Obsidian vault (or set OMS_VAULT / register the vault in ~/.oms/config.yaml), then retry");
284
+ }
285
+ if (target.source === "global") {
286
+ const hasOntology = (await isDirectory(path.join(target.vault, ".oms", "concepts"))) ||
287
+ (await fileExists(path.join(target.vault, ".oms", "taxonomy.yaml")));
288
+ if (!hasOntology) {
289
+ return rejection("admission", "target-invalid", `Refusing to write: the registered global vault target has no .oms ontology: ${target.vault}`, "update ~/.oms/config.yaml to point at your vault, or run `oms setup` in that vault, then retry");
290
+ }
291
+ }
292
+ return undefined;
293
+ }
294
+ function targetRejectedResult(mode, input, frontmatter, rejectionPayload) {
295
+ return rejectedResult(mode, input.notePath ?? "", undefined, frontmatter, [], rejectionPayload.message, rejectionPayload);
296
+ }
297
+ /**
298
+ * Acceptance Criteria - staged evaluation (pre-persist).
299
+ *
300
+ * Parses the note content that is ABOUT to be written and re-runs the kernel
301
+ * write contract against the RENDERED frontmatter. This catches divergence
302
+ * between the caller-supplied frontmatter and what actually lands on disk
303
+ * (yaml round-trip artifacts such as `NaN` rendering as `.nan` and parsing
304
+ * back as `null`).
305
+ */
306
+ export function evaluateStagedNote(stagedContent, concept, notePath, strictZones) {
307
+ const parsed = parseNote(stagedContent);
308
+ const contract = evaluateWriteContract(parsed.frontmatter, concept, notePath, strictZones);
309
+ return {
310
+ ok: contract.valid,
311
+ violations: contract.violations,
312
+ frontmatter: parsed.frontmatter,
313
+ body: parsed.body,
314
+ };
315
+ }
316
+ function sameViolationSet(left, right) {
317
+ if (left.length !== right.length) {
318
+ return false;
319
+ }
320
+ const key = (violation) => `${violation.field}\u0000${violation.rule}\u0000${violation.message}`;
321
+ const leftKeys = left.map(key).sort();
322
+ const rightKeys = right.map(key).sort();
323
+ return leftKeys.every((entry, index) => entry === rightKeys[index]);
324
+ }
325
+ /**
326
+ * Acceptance rejection for a staged render that diverges from the (already
327
+ * passing) input evaluation. Callers only reach this when the input-level
328
+ * contract check passed, so the violation is a genuine render divergence.
329
+ */
330
+ function stagedRejectedResult(mode, notePath, concept, frontmatter, violations) {
331
+ const fields = violations.map((violation) => violation.field).join(", ");
332
+ return rejectedResult(mode, notePath, concept, frontmatter, violations, "Cannot write: the rendered note violates the concept contract", rejection("acceptance", "contract-violation", `Staged note render violates the concept contract (${fields})`, `these values do not survive the note render unchanged - correct them, then retry: ${fields}`));
333
+ }
334
+ function stagedBodyMissingResult(mode, notePath, concept, frontmatter) {
335
+ return rejectedResult(mode, notePath, concept, frontmatter, [], "create requires a body", rejection("acceptance", "body-missing", "Staged note render carries no body content", "pass a non-empty `body` for the note, then retry"));
336
+ }
337
+ function postconditionRejectedResult(mode, notePath, fullPath, concept, frontmatter, violations, detail) {
338
+ return rejectedResult(mode, notePath, concept, frontmatter, violations, `Postcondition failed after writing ${notePath}: ${detail}`, rejection("acceptance", "postcondition-failed", `Postcondition failed after writing ${notePath}: ${detail}`, `inspect the persisted file at ${fullPath} (it was NOT removed) and repair or delete it before retrying`));
339
+ }
340
+ function receiptFor(input, mode, notePath, concept) {
341
+ return {
342
+ resolvedVault: input.target.vault,
343
+ resolutionSource: input.target.source,
344
+ notePath,
345
+ mode,
346
+ concept: concept?.concept ?? null,
347
+ postconditionVerified: true,
348
+ };
349
+ }
350
+ function normalizeBody(body) {
351
+ return body.replace(/\s+$/, "");
352
+ }
353
+ /**
354
+ * Acceptance Criteria - postcondition (post-persist).
355
+ *
356
+ * Re-reads the persisted note through the `readBack` seam, re-runs the write
357
+ * contract on what is actually on disk, and asserts the intended body content
358
+ * landed. The persisted file is never auto-deleted on failure.
359
+ */
360
+ async function verifyPostcondition(input, fullPath, notePath, concept, strictZones, expectation) {
361
+ const read = input.readBack ?? ((target) => readFile(target, "utf-8"));
362
+ const persisted = await read(fullPath);
363
+ const parsed = parseNote(persisted);
364
+ const contract = evaluateWriteContract(parsed.frontmatter, concept, notePath, strictZones);
365
+ if (!contract.valid) {
366
+ return {
367
+ ok: false,
368
+ violations: contract.violations,
369
+ detail: `persisted frontmatter violates the concept contract (${contract.violations
370
+ .map((violation) => violation.field)
371
+ .join(", ")})`,
372
+ };
373
+ }
374
+ const bodyOk = expectation.kind === "full"
375
+ ? normalizeBody(parsed.body) === normalizeBody(expectation.body)
376
+ : normalizeBody(persisted).endsWith(expectation.body.trim());
377
+ if (!bodyOk) {
378
+ return { ok: false, violations: [], detail: "persisted body does not match the staged content" };
379
+ }
380
+ return { ok: true, violations: [], detail: "" };
381
+ }
249
382
  export async function writeNote(input) {
250
383
  const frontmatter = input.frontmatter ?? {};
251
384
  const strictZones = routingLawStrictFolders(input.ontology);
385
+ const targetRejection = await admitTarget(input.target);
386
+ if (targetRejection) {
387
+ return targetRejectedResult(input.mode, input, frontmatter, targetRejection);
388
+ }
252
389
  if (input.mode === "update") {
253
390
  return writeUpdate(input, frontmatter, strictZones);
254
391
  }
@@ -261,9 +398,9 @@ async function writeCreate(input, frontmatter, strictZones) {
261
398
  let notePath;
262
399
  let concept;
263
400
  if (input.notePath) {
264
- const safe = trySafeNotePath(input.vault, input.notePath);
401
+ const safe = trySafeNotePath(input.target.vault, input.notePath);
265
402
  if (!safe.ok) {
266
- return rejectedResult("create", input.notePath, undefined, frontmatter, [], safe.reason);
403
+ return rejectedResult("create", input.notePath, undefined, frontmatter, [], safe.reason, pathUnsafeRejection(safe.reason));
267
404
  }
268
405
  notePath = safe.normalized;
269
406
  concept = resolveConcept(input.ontology, notePath);
@@ -288,39 +425,57 @@ async function writeCreate(input, frontmatter, strictZones) {
288
425
  return askResult("create", notePath, concept, frontmatter, contract.violations);
289
426
  }
290
427
  if (input.body === undefined) {
291
- return rejectedResult("create", notePath, concept, frontmatter, [], "create requires a body");
428
+ return rejectedResult("create", notePath, concept, frontmatter, [], "create requires a body", rejection("admission", "body-missing", "create requires a body", "pass a non-empty `body` for the note, then retry"));
292
429
  }
293
- const safe = trySafeNotePath(input.vault, notePath);
430
+ const safe = trySafeNotePath(input.target.vault, notePath);
294
431
  if (!safe.ok) {
295
- return rejectedResult("create", notePath, concept, frontmatter, [], safe.reason);
432
+ return rejectedResult("create", notePath, concept, frontmatter, [], safe.reason, pathUnsafeRejection(safe.reason));
296
433
  }
297
434
  if (await fileExists(safe.fullPath)) {
298
- return rejectedResult("create", notePath, concept, frontmatter, [], "Cannot create capture: target note already exists");
299
- }
300
- if (!input.dryRun) {
301
- await mkdir(path.dirname(safe.fullPath), { recursive: true });
302
- await writeFile(safe.fullPath, formatNote(frontmatter, input.body), {
303
- encoding: "utf-8",
304
- flag: "wx",
305
- });
435
+ return rejectedResult("create", notePath, concept, frontmatter, [], "Cannot create capture: target note already exists", rejection("admission", "note-exists", "Cannot create capture: target note already exists", "use mode `append` or `update` for an existing note, or choose a different filename"));
436
+ }
437
+ // Write Attempt: build the staged note in memory.
438
+ const staged = formatNote(frontmatter, input.body);
439
+ // Evaluation (pre-persist): the staged render is a second gate that only
440
+ // fires on divergence from the input evaluation, which already passed above.
441
+ const stagedEvaluation = evaluateStagedNote(staged, concept, notePath, strictZones);
442
+ if (!stagedEvaluation.ok && !sameViolationSet(stagedEvaluation.violations, contract.violations)) {
443
+ return stagedRejectedResult("create", notePath, concept, frontmatter, stagedEvaluation.violations);
444
+ }
445
+ if (stagedEvaluation.body.trim() === "") {
446
+ return stagedBodyMissingResult("create", notePath, concept, frontmatter);
447
+ }
448
+ if (input.dryRun) {
449
+ return writtenResult("create", notePath, concept, frontmatter);
450
+ }
451
+ // Persist.
452
+ await mkdir(path.dirname(safe.fullPath), { recursive: true });
453
+ await writeFile(safe.fullPath, staged, {
454
+ encoding: "utf-8",
455
+ flag: "wx",
456
+ });
457
+ // Postcondition.
458
+ const postcondition = await verifyPostcondition(input, safe.fullPath, notePath, concept, strictZones, { kind: "full", body: stagedEvaluation.body });
459
+ if (!postcondition.ok) {
460
+ return postconditionRejectedResult("create", notePath, safe.fullPath, concept, frontmatter, postcondition.violations, postcondition.detail);
306
461
  }
307
- return writtenResult("create", notePath, concept, frontmatter);
462
+ return writtenResult("create", notePath, concept, frontmatter, receiptFor(input, "create", notePath, concept));
308
463
  }
309
464
  async function writeAppend(input, frontmatter, strictZones) {
310
465
  if (!input.notePath) {
311
- return rejectedResult("append", "", undefined, frontmatter, [], "append requires notePath");
466
+ return rejectedResult("append", "", undefined, frontmatter, [], "append requires notePath", rejection("admission", "args-invalid", "append requires notePath", "pass the vault-relative `notePath` of the note to append to, then retry"));
312
467
  }
313
468
  if (input.body === undefined) {
314
- return rejectedResult("append", input.notePath, undefined, frontmatter, [], "append requires a body");
469
+ return rejectedResult("append", input.notePath, undefined, frontmatter, [], "append requires a body", rejection("admission", "body-missing", "append requires a body", "pass a non-empty `body` to append, then retry"));
315
470
  }
316
- const safe = trySafeNotePath(input.vault, input.notePath);
471
+ const safe = trySafeNotePath(input.target.vault, input.notePath);
317
472
  if (!safe.ok) {
318
- return rejectedResult("append", input.notePath, undefined, frontmatter, [], safe.reason);
473
+ return rejectedResult("append", input.notePath, undefined, frontmatter, [], safe.reason, pathUnsafeRejection(safe.reason));
319
474
  }
320
475
  const exists = await fileExists(safe.fullPath);
321
476
  if (!exists) {
322
477
  const created = await writeCreate({
323
- vault: input.vault,
478
+ target: input.target,
324
479
  ontology: input.ontology,
325
480
  mode: "create",
326
481
  dryRun: input.dryRun,
@@ -334,36 +489,53 @@ async function writeAppend(input, frontmatter, strictZones) {
334
489
  return writeResult({
335
490
  ...created,
336
491
  mode: "append",
492
+ ...(created.receipt ? { receipt: { ...created.receipt, mode: "append" } } : {}),
337
493
  });
338
494
  }
339
495
  const raw = await readFile(safe.fullPath, "utf-8");
340
496
  const parsed = parseNote(raw);
341
497
  const concept = resolveConcept(input.ontology, safe.normalized);
342
498
  if (!concept) {
343
- return rejectedResult("append", safe.normalized, undefined, parsed.frontmatter, [], "Cannot commit capture: notePath does not resolve to a concept binding");
499
+ return rejectedResult("append", safe.normalized, undefined, parsed.frontmatter, [], "Cannot commit capture: notePath does not resolve to a concept binding", conceptUnboundRejection());
344
500
  }
345
501
  const contract = evaluateWriteContract(parsed.frontmatter, concept, safe.normalized, strictZones);
346
502
  if (!contract.valid) {
347
503
  return rejectedResult("append", safe.normalized, concept, parsed.frontmatter, contract.violations, "Cannot append: existing frontmatter violates the concept contract");
348
504
  }
349
- if (!input.dryRun) {
350
- await appendFile(safe.fullPath, `\n\n${input.body.trim()}\n`, "utf-8");
351
- }
352
- return writtenResult("append", safe.normalized, concept, parsed.frontmatter);
505
+ // Write Attempt: the staged note is exactly what the file will hold after the
506
+ // append (current content + the appended block).
507
+ const appended = `\n\n${input.body.trim()}\n`;
508
+ const staged = `${raw}${appended}`;
509
+ // Evaluation (pre-persist).
510
+ const stagedEvaluation = evaluateStagedNote(staged, concept, safe.normalized, strictZones);
511
+ if (!stagedEvaluation.ok && !sameViolationSet(stagedEvaluation.violations, contract.violations)) {
512
+ return stagedRejectedResult("append", safe.normalized, concept, parsed.frontmatter, stagedEvaluation.violations);
513
+ }
514
+ if (input.dryRun) {
515
+ return writtenResult("append", safe.normalized, concept, parsed.frontmatter);
516
+ }
517
+ // Persist.
518
+ await appendFile(safe.fullPath, appended, "utf-8");
519
+ // Postcondition.
520
+ const postcondition = await verifyPostcondition(input, safe.fullPath, safe.normalized, concept, strictZones, { kind: "suffix", body: input.body });
521
+ if (!postcondition.ok) {
522
+ return postconditionRejectedResult("append", safe.normalized, safe.fullPath, concept, parsed.frontmatter, postcondition.violations, postcondition.detail);
523
+ }
524
+ return writtenResult("append", safe.normalized, concept, parsed.frontmatter, receiptFor(input, "append", safe.normalized, concept));
353
525
  }
354
526
  async function writeUpdate(input, frontmatter, strictZones) {
355
527
  if (!input.notePath) {
356
- return rejectedResult("update", "", undefined, frontmatter, [], "update requires notePath");
528
+ return rejectedResult("update", "", undefined, frontmatter, [], "update requires notePath", rejection("admission", "args-invalid", "update requires notePath", "pass the vault-relative `notePath` of the note to update, then retry"));
357
529
  }
358
530
  if (input.frontmatter === undefined && input.body === undefined) {
359
- return rejectedResult("update", input.notePath, undefined, frontmatter, [], "update requires frontmatter or body");
531
+ return rejectedResult("update", input.notePath, undefined, frontmatter, [], "update requires frontmatter or body", rejection("admission", "args-invalid", "update requires frontmatter or body", "pass `frontmatter`, `body`, or both, then retry"));
360
532
  }
361
- const safe = trySafeNotePath(input.vault, input.notePath);
533
+ const safe = trySafeNotePath(input.target.vault, input.notePath);
362
534
  if (!safe.ok) {
363
- return rejectedResult("update", input.notePath, undefined, frontmatter, [], safe.reason);
535
+ return rejectedResult("update", input.notePath, undefined, frontmatter, [], safe.reason, pathUnsafeRejection(safe.reason));
364
536
  }
365
537
  if (!(await fileExists(safe.fullPath))) {
366
- return rejectedResult("update", safe.normalized, undefined, frontmatter, [], "Cannot update capture: target note does not exist");
538
+ return rejectedResult("update", safe.normalized, undefined, frontmatter, [], "Cannot update capture: target note does not exist", rejection("admission", "note-missing", "Cannot update capture: target note does not exist", "create the note first (mode `create`) or correct `notePath`, then retry"));
367
539
  }
368
540
  const raw = await readFile(safe.fullPath, "utf-8");
369
541
  const parsed = parseNote(raw);
@@ -371,20 +543,34 @@ async function writeUpdate(input, frontmatter, strictZones) {
371
543
  const body = input.body === undefined ? parsed.body : input.body;
372
544
  const concept = resolveConcept(input.ontology, safe.normalized);
373
545
  if (!concept) {
374
- return rejectedResult("update", safe.normalized, undefined, merged, [], "Cannot commit capture: notePath does not resolve to a concept binding");
546
+ return rejectedResult("update", safe.normalized, undefined, merged, [], "Cannot commit capture: notePath does not resolve to a concept binding", conceptUnboundRejection());
375
547
  }
376
548
  const contract = evaluateWriteContract(merged, concept, safe.normalized, strictZones);
377
549
  if (!contract.valid) {
378
550
  return rejectedResult("update", safe.normalized, concept, merged, contract.violations, "Cannot update capture: resulting frontmatter violates the concept contract");
379
551
  }
380
- if (!input.dryRun) {
381
- await writeFile(safe.fullPath, formatNote(merged, body), "utf-8");
552
+ // Write Attempt: build the staged note in memory.
553
+ const staged = formatNote(merged, body);
554
+ // Evaluation (pre-persist).
555
+ const stagedEvaluation = evaluateStagedNote(staged, concept, safe.normalized, strictZones);
556
+ if (!stagedEvaluation.ok && !sameViolationSet(stagedEvaluation.violations, contract.violations)) {
557
+ return stagedRejectedResult("update", safe.normalized, concept, merged, stagedEvaluation.violations);
558
+ }
559
+ if (input.dryRun) {
560
+ return writtenResult("update", safe.normalized, concept, merged);
561
+ }
562
+ // Persist.
563
+ await writeFile(safe.fullPath, staged, "utf-8");
564
+ // Postcondition.
565
+ const postcondition = await verifyPostcondition(input, safe.fullPath, safe.normalized, concept, strictZones, { kind: "full", body: stagedEvaluation.body });
566
+ if (!postcondition.ok) {
567
+ return postconditionRejectedResult("update", safe.normalized, safe.fullPath, concept, merged, postcondition.violations, postcondition.detail);
382
568
  }
383
- return writtenResult("update", safe.normalized, concept, merged);
569
+ return writtenResult("update", safe.normalized, concept, merged, receiptFor(input, "update", safe.normalized, concept));
384
570
  }
385
571
  export async function commitCapture(input) {
386
572
  const result = await writeNote({
387
- vault: input.vault,
573
+ target: { vault: input.vault, source: input.source },
388
574
  ontology: input.ontology,
389
575
  mode: input.mode,
390
576
  dryRun: false,
@@ -1 +1 @@
1
- {"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/capture/safe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/capture/safe.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface ParsedCliArgs {
7
7
  readonly vault: string;
8
8
  readonly vaultExplicit: boolean;
9
9
  readonly yes: boolean;
10
+ /** linkify: opt into rewriting notes in place (still requires `--yes`). */
11
+ readonly apply: boolean;
10
12
  readonly installClaude: boolean;
11
13
  readonly suggestFields: boolean;
12
14
  readonly runtime: RuntimeSelection | undefined;
package/dist/cli/args.js CHANGED
@@ -16,6 +16,7 @@ export function parseCliArgs(argv, cwd = process.cwd()) {
16
16
  let vault = cwd;
17
17
  let vaultExplicit = false;
18
18
  let yes = false;
19
+ let apply = false;
19
20
  let installClaude = false;
20
21
  let suggestFields = false;
21
22
  let runtime;
@@ -41,6 +42,9 @@ export function parseCliArgs(argv, cwd = process.cwd()) {
41
42
  else if (arg === "--yes") {
42
43
  yes = true;
43
44
  }
45
+ else if (arg === "--apply") {
46
+ apply = true;
47
+ }
44
48
  else if (arg === "--install-claude") {
45
49
  installClaude = true;
46
50
  }
@@ -107,6 +111,7 @@ export function parseCliArgs(argv, cwd = process.cwd()) {
107
111
  vault,
108
112
  vaultExplicit,
109
113
  yes,
114
+ apply,
110
115
  installClaude,
111
116
  suggestFields,
112
117
  runtime,
@@ -129,6 +134,7 @@ export function parseCliArgs(argv, cwd = process.cwd()) {
129
134
  vault,
130
135
  vaultExplicit,
131
136
  yes,
137
+ apply,
132
138
  installClaude,
133
139
  suggestFields,
134
140
  runtime,
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface RegisterGlobalVaultOptions {
2
+ readonly vault: string;
3
+ readonly homeDir?: string;
4
+ readonly overwrite: boolean;
5
+ }
6
+ export interface GlobalWritebackResult {
7
+ readonly wrote: boolean;
8
+ readonly reason?: string;
9
+ }
10
+ /**
11
+ * Register `vault` in the global config (`<homeDir>/.oms/config.yaml`).
12
+ * When `overwrite` is false, does nothing if a global config already exists
13
+ * (including when reading the existing config throws, e.g. a corrupt file -
14
+ * a corrupt-but-present config is treated as "config exists, do not touch").
15
+ */
16
+ export declare function registerGlobalVault(options: RegisterGlobalVaultOptions): Promise<GlobalWritebackResult>;
17
+ export interface BackfillGlobalVaultOptions {
18
+ readonly env: NodeJS.ProcessEnv;
19
+ readonly homeDir?: string;
20
+ }
21
+ /**
22
+ * Migration backfill: when no global config exists yet and `OMS_VAULT` points
23
+ * at an existing directory, register it. Never overwrites an existing config
24
+ * (including a corrupt-but-present one).
25
+ */
26
+ export declare function backfillGlobalVaultFromEnv(options: BackfillGlobalVaultOptions): Promise<GlobalWritebackResult>;
27
+ /**
28
+ * Run a global write-back action, swallowing any failure into a single
29
+ * `[oms] warning:` line on stderr. Never throws.
30
+ */
31
+ export declare function nonFatalGlobalWriteback(action: () => Promise<GlobalWritebackResult>): Promise<GlobalWritebackResult>;