@metaobjectsdev/cli 1.0.0-rc.4 → 1.0.0-rc.5

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 (56) hide show
  1. package/dist/src/commands/gen.d.ts +3 -0
  2. package/dist/src/commands/gen.d.ts.map +1 -1
  3. package/dist/src/commands/gen.js +5 -3
  4. package/dist/src/commands/gen.js.map +1 -1
  5. package/dist/src/commands/init.d.ts.map +1 -1
  6. package/dist/src/commands/init.js +155 -33
  7. package/dist/src/commands/init.js.map +1 -1
  8. package/dist/src/commands/migrate.d.ts +1 -0
  9. package/dist/src/commands/migrate.d.ts.map +1 -1
  10. package/dist/src/commands/migrate.js +1 -1
  11. package/dist/src/commands/migrate.js.map +1 -1
  12. package/dist/src/commands/verify.d.ts.map +1 -1
  13. package/dist/src/commands/verify.js +39 -9
  14. package/dist/src/commands/verify.js.map +1 -1
  15. package/dist/src/index.d.ts +2 -0
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +30 -2
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/lib/args.d.ts +228 -0
  20. package/dist/src/lib/args.d.ts.map +1 -1
  21. package/dist/src/lib/args.js +88 -72
  22. package/dist/src/lib/args.js.map +1 -1
  23. package/dist/src/lib/docs-drift.d.ts +12 -1
  24. package/dist/src/lib/docs-drift.d.ts.map +1 -1
  25. package/dist/src/lib/docs-drift.js +71 -11
  26. package/dist/src/lib/docs-drift.js.map +1 -1
  27. package/dist/src/lib/git-ignore.d.ts +40 -0
  28. package/dist/src/lib/git-ignore.d.ts.map +1 -0
  29. package/dist/src/lib/git-ignore.js +77 -0
  30. package/dist/src/lib/git-ignore.js.map +1 -0
  31. package/dist/src/lib/load-metaobjects-config.d.ts.map +1 -1
  32. package/dist/src/lib/load-metaobjects-config.js +65 -1
  33. package/dist/src/lib/load-metaobjects-config.js.map +1 -1
  34. package/dist/src/lib/manifest-ignored-check.d.ts.map +1 -1
  35. package/dist/src/lib/manifest-ignored-check.js +5 -31
  36. package/dist/src/lib/manifest-ignored-check.js.map +1 -1
  37. package/dist/src/lib/output.d.ts +10 -1
  38. package/dist/src/lib/output.d.ts.map +1 -1
  39. package/dist/src/lib/output.js +15 -6
  40. package/dist/src/lib/output.js.map +1 -1
  41. package/dist/src/lib/requirement-lint.d.ts.map +1 -1
  42. package/dist/src/lib/requirement-lint.js +25 -5
  43. package/dist/src/lib/requirement-lint.js.map +1 -1
  44. package/package.json +10 -10
  45. package/src/commands/gen.ts +5 -3
  46. package/src/commands/init.ts +162 -37
  47. package/src/commands/migrate.ts +1 -1
  48. package/src/commands/verify.ts +46 -9
  49. package/src/index.ts +30 -2
  50. package/src/lib/args.ts +96 -72
  51. package/src/lib/docs-drift.ts +92 -12
  52. package/src/lib/git-ignore.ts +115 -0
  53. package/src/lib/load-metaobjects-config.ts +58 -1
  54. package/src/lib/manifest-ignored-check.ts +5 -28
  55. package/src/lib/output.ts +30 -5
  56. package/src/lib/requirement-lint.ts +26 -5
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/lib/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/lib/output.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"requirement-lint.d.ts","sourceRoot":"","sources":["../../../src/lib/requirement-lint.ts"],"names":[],"mappings":"AAoCA,OAAO,EAcL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EACyB,KAAK,oBAAoB,EAAE,KAAK,UAAU,EACzE,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,qCAAqC,0CAA0C,CAAC;AAC7F,eAAO,MAAM,oCAAoC,yCAAyC,CAAC;AAC3F,eAAO,MAAM,wCAAwC,6CAA6C,CAAC;AACnG,eAAO,MAAM,iCAAiC,sCAAsC,CAAC;AACrF,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,+BAA+B,oCAAoC,CAAC;AACjF,eAAO,MAAM,+BAA+B,oCAAoC,CAAC;AA2JjF;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ;AACd;;;2DAG2D;AAC3D,SAAS,GAAE,SAAS,oBAAoB,EAAuC,GAC9E,UAAU,EAAE,CAiHd"}
1
+ {"version":3,"file":"requirement-lint.d.ts","sourceRoot":"","sources":["../../../src/lib/requirement-lint.ts"],"names":[],"mappings":"AAoCA,OAAO,EAcL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EACyB,KAAK,oBAAoB,EAAE,KAAK,UAAU,EACzE,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,qCAAqC,0CAA0C,CAAC;AAC7F,eAAO,MAAM,oCAAoC,yCAAyC,CAAC;AAC3F,eAAO,MAAM,wCAAwC,6CAA6C,CAAC;AACnG,eAAO,MAAM,iCAAiC,sCAAsC,CAAC;AACrF,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,+BAA+B,oCAAoC,CAAC;AACjF,eAAO,MAAM,+BAA+B,oCAAoC,CAAC;AA+KjF;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ;AACd;;;2DAG2D;AAC3D,SAAS,GAAE,SAAS,oBAAoB,EAAuC,GAC9E,UAAU,EAAE,CAkHd"}
@@ -138,6 +138,25 @@ const INERT_SLOTS = [DOC_ATTR_SUMMARY];
138
138
  * split rather than move.
139
139
  */
140
140
  const TITLE_IS_AN_ID = /^[A-Z]{2,}[- ]?\d+/;
141
+ /**
142
+ * What is LEFT of a title once a leading catalogue id and its separator are removed.
143
+ *
144
+ * The rule fires only when that remainder is empty — when the label IS the id and
145
+ * nothing else. A title that carries an id AND a noun phrase is not "an id"; it is a
146
+ * label with a citation prefix, which is a house style, and the warning's own name is
147
+ * false for it.
148
+ *
149
+ * Measured on a 323-node adopter ledger that uses `@title` deliberately as its bridge
150
+ * to a spec catalogue: the un-narrowed rule fired **203 times**, on every run, telling
151
+ * that author their entire convention was wrong and offering a 203-entry edit. That is
152
+ * the "355 findings, all false" shape the 0.24.2 narrowing exists to avoid, reproduced
153
+ * by the check that narrowing shipped alongside. A lint people argue with is a lint
154
+ * people mute, and muting takes the six useful checks with it.
155
+ *
156
+ * `@title: "REQ-1234"` — a slot holding only a citation, with no label anywhere — is
157
+ * still caught, and that is the case the rule was written for.
158
+ */
159
+ const TITLE_ID_ONLY = /^[A-Z]{2,}[- ]?\d+[\s\-–—:.]*$/;
141
160
  /** Lowercase, drop everything that is not alphanumeric, collapse the gaps.
142
161
  * Two slots "say the same thing" only if they survive this identically — no
143
162
  * similarity score, no threshold. A fuzzy match on prose produces findings the
@@ -306,11 +325,12 @@ addressed = collectAddressedRequirements(root)) {
306
325
  }
307
326
  // -- an id is not a label -------------------------------------------------
308
327
  const title = readOwnSlot(node, DOC_ATTR_TITLE);
309
- if (title !== undefined && TITLE_IS_AN_ID.test(title.trim())) {
310
- out.push(warn(path, WARN_REQUIREMENT_TITLE_IS_AN_ID, `@title opens with a catalogue or ticket id: ${excerpt(title)}. A title is a NOUN PHRASE and ` +
311
- `an id is not a name, so this is two things in one slot. SPLIT them — put the id in ` +
312
- `@${REQUIREMENT_ATTR_TRACKED_BY}, which is the free-form reference slot and IS read, and leave ` +
313
- `the phrase as the title. Moving the whole string would throw the label away.`));
328
+ if (title !== undefined && TITLE_ID_ONLY.test(title.trim())) {
329
+ out.push(warn(path, WARN_REQUIREMENT_TITLE_IS_AN_ID, `@title holds only a catalogue or ticket id: ${excerpt(title)}. A title is the entry's ` +
330
+ `LABEL and an id is not a name, so this slot says nothing a reader can use. Put the id in ` +
331
+ `@${REQUIREMENT_ATTR_TRACKED_BY}, which is the free-form reference slot and IS read, and ` +
332
+ `give @${DOC_ATTR_TITLE} a noun phrase. A title that carries an id AND a phrase ` +
333
+ `("FR-448 — prompt construction as typed payloads") is a house style and is NOT flagged.`));
314
334
  }
315
335
  }
316
336
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"requirement-lint.js","sourceRoot":"","sources":["../../../src/lib/requirement-lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requirement-lint.js","sourceRoot":"","sources":["../../../src/lib/requirement-lint.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/cli",
3
- "version": "1.0.0-rc.4",
3
+ "version": "1.0.0-rc.5",
4
4
  "description": "CLI for MetaObjects: scaffold, codegen, migrate, and drift-detection commands.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -51,15 +51,15 @@
51
51
  "@biomejs/js-api": "^0.7.0",
52
52
  "@biomejs/wasm-nodejs": "^1.9.4",
53
53
  "@libsql/kysely-libsql": "^0.4.0",
54
- "@metaobjectsdev/codegen-ts": "1.0.0-rc.4",
55
- "@metaobjectsdev/codegen-ts-react": "1.0.0-rc.4",
56
- "@metaobjectsdev/codegen-ts-tanstack": "1.0.0-rc.4",
57
- "@metaobjectsdev/docs-site": "1.0.0-rc.4",
58
- "@metaobjectsdev/metadata": "1.0.0-rc.4",
59
- "@metaobjectsdev/migrate-ts": "1.0.0-rc.4",
60
- "@metaobjectsdev/render": "1.0.0-rc.4",
61
- "@metaobjectsdev/runtime-ts": "1.0.0-rc.4",
62
- "@metaobjectsdev/sdk": "1.0.0-rc.4",
54
+ "@metaobjectsdev/codegen-ts": "1.0.0-rc.5",
55
+ "@metaobjectsdev/codegen-ts-react": "1.0.0-rc.5",
56
+ "@metaobjectsdev/codegen-ts-tanstack": "1.0.0-rc.5",
57
+ "@metaobjectsdev/docs-site": "1.0.0-rc.5",
58
+ "@metaobjectsdev/metadata": "1.0.0-rc.5",
59
+ "@metaobjectsdev/migrate-ts": "1.0.0-rc.5",
60
+ "@metaobjectsdev/render": "1.0.0-rc.5",
61
+ "@metaobjectsdev/runtime-ts": "1.0.0-rc.5",
62
+ "@metaobjectsdev/sdk": "1.0.0-rc.5",
63
63
  "@toon-format/toon": "^2.3.0",
64
64
  "jiti": "^2.4.0"
65
65
  },
@@ -17,10 +17,12 @@ import { loadMemory, resolveCollection } from "@metaobjectsdev/sdk";
17
17
  import { runGen, listGenerators } from "@metaobjectsdev/codegen-ts";
18
18
  import type { WriteStatus } from "@metaobjectsdev/codegen-ts";
19
19
 
20
- function mapStatus(s: WriteStatus): GenFileStatus {
20
+ export function mapStatus(s: WriteStatus): GenFileStatus {
21
21
  switch (s) {
22
- case "new":
23
- case "overwrite": return "new";
22
+ case "new": return "new";
23
+ // NOT folded into "new": an existing artifact being rewritten is a different
24
+ // fact from an entity appearing, and the engine has always distinguished them.
25
+ case "overwrite": return "overwrite";
24
26
  case "merged": return "merged";
25
27
  case "conflict": return "conflict";
26
28
  case "unchanged":
@@ -138,9 +138,15 @@ export default defineConfig({
138
138
  barrel(),
139
139
  ],
140
140
  docs: {
141
- outDir: "./docs", // model + api surfaces both land here (run: meta docs)
141
+ outDir: "./docs", // every surface lands here (run: meta docs)
142
142
  layout: "flat", // or "package" for multi-package models
143
- surfaces: ["model", "api"],
143
+ // surfaces defaults to ["model", "api", "requirements", "agent"] — all four.
144
+ // Deliberately NOT narrowed here: the requirements and agent surfaces emit ZERO
145
+ // files for a project that has nothing for them to describe, and the always-on
146
+ // agent context points at the agent/ pages by name. Scaffolding a narrower list
147
+ // turned that pointer into a pointer at nothing. Narrow it yourself if you want
148
+ // fewer docs — but note it says what your docs ARE, not which of them you commit
149
+ // (a page you do not commit is exempt from verify --docs once it is git-ignored).
144
150
  },
145
151
  });
146
152
  `;
@@ -474,6 +480,57 @@ async function writeOwnedGenerators(opts: InitOptions, result: InitResult): Prom
474
480
  await writeFile(abs, readReferenceTemplate(name), "utf8");
475
481
  result.created.push(rel);
476
482
  }
483
+ await writeCodegenTsconfig(opts, result);
484
+ }
485
+
486
+ /** The owned codegen tier's own tsconfig — see writeCodegenTsconfig. */
487
+ const CODEGEN_TSCONFIG_REL = "tsconfig.codegen.json";
488
+
489
+ const CODEGEN_TSCONFIG_BODY = `{
490
+ // The owned codegen tier typechecks itself.
491
+ //
492
+ // \`meta gen\` loads metaobjects.config.ts and ./codegen/** through jiti, which
493
+ // TRANSPILES WITHOUT TYPECHECKING. So a generator here can import a symbol the
494
+ // engine no longer exports, or call a method that does not exist, and every gate
495
+ // stays green until the import is evaluated — which for a generator you have not
496
+ // wired into \`generators: [...]\` may be never.
497
+ //
498
+ // A project's app tsconfig usually covers src/ and tests/ and NOT this tier, so
499
+ // without this file nothing compiles the code your build depends on. Run it with:
500
+ // npx tsc -p tsconfig.codegen.json --noEmit
501
+ "compilerOptions": {
502
+ "target": "ES2022",
503
+ "module": "nodenext",
504
+ "moduleResolution": "nodenext",
505
+ "strict": true,
506
+ "noEmit": true,
507
+ "skipLibCheck": true
508
+ },
509
+ "include": ["metaobjects.config.ts", "codegen/**/*.ts"]
510
+ }
511
+ `;
512
+
513
+ /**
514
+ * Scaffold a tsconfig that covers the tier `meta init` just handed the adopter.
515
+ *
516
+ * Reported from an estate that found TWO real defects the moment one existed: a
517
+ * generator importing `CODEGEN_ATTR_EMIT_ROUTES` (retired with the `@emit*` family,
518
+ * and invisible because that generator was not in `generators: [...]`), and a wired
519
+ * generator carrying five type errors including `ownFields()` on a node that has no
520
+ * such method. Both found on the first run.
521
+ *
522
+ * Written only when absent, like every other scaffolded file — an adopter who has
523
+ * their own arrangement keeps it, and it is reported as preserved rather than
524
+ * silently skipped.
525
+ */
526
+ async function writeCodegenTsconfig(opts: InitOptions, result: InitResult): Promise<void> {
527
+ const abs = join(opts.cwd, CODEGEN_TSCONFIG_REL);
528
+ if (await fileExists(abs)) {
529
+ result.preserved.push(CODEGEN_TSCONFIG_REL);
530
+ return;
531
+ }
532
+ await writeFile(abs, CODEGEN_TSCONFIG_BODY, "utf8");
533
+ result.created.push(CODEGEN_TSCONFIG_REL);
477
534
  }
478
535
 
479
536
  /**
@@ -607,6 +664,7 @@ export async function init(opts: InitOptions): Promise<InitResult> {
607
664
  );
608
665
  result.created.push(".metaobjects/AGENTS.md", ".metaobjects/CLAUDE.md", ".claude/skills/metaobjects-*", AGENT_CONTEXT_MANIFEST_PATH);
609
666
  for (const name of SCAFFOLDED_GENERATOR_NAMES) result.created.push(`${OWNED_GENERATORS_DIR}/${name}.ts`);
667
+ result.created.push(CODEGEN_TSCONFIG_REL);
610
668
  result.created.push("metaobjects.config.ts", DB_STUB_REL_PATH, ".gitignore");
611
669
  return result;
612
670
  }
@@ -713,7 +771,7 @@ export async function init(opts: InitOptions): Promise<InitResult> {
713
771
  result.preserved.push(".gitignore");
714
772
  }
715
773
 
716
- await ensureEsmPackageType(opts.cwd, result);
774
+ await prepareManifestForScaffold(opts.cwd, result);
717
775
 
718
776
  return result;
719
777
  }
@@ -734,8 +792,13 @@ export async function init(opts: InitOptions): Promise<InitResult> {
734
792
  * So set it — but never silently take a real CommonJS project with it. A project
735
793
  * that has actual CJS sources gets a loud, specific warning instead of an edit,
736
794
  * because changing a module system out from under working code is not ours to do.
795
+ *
796
+ * IT ALSO DECLARES WHAT THE SCAFFOLD AND THE GENERATED OUTPUT IMPORT, and the name it used
797
+ * to carry (`ensureEsmPackageType`) is why that went wrong: a function named for one job
798
+ * accreted a second, and the second silently inherited the first's early returns. The
799
+ * declarations are unconditional on a readable manifest — see the comment at that point.
737
800
  */
738
- async function ensureEsmPackageType(cwd: string, result: InitResult): Promise<void> {
801
+ async function prepareManifestForScaffold(cwd: string, result: InitResult): Promise<void> {
739
802
  const pkgPath = join(cwd, "package.json");
740
803
  if (!(await fileExists(pkgPath))) {
741
804
  // No package.json at all: say what is needed rather than inventing a manifest
@@ -760,39 +823,59 @@ async function ensureEsmPackageType(cwd: string, result: InitResult): Promise<vo
760
823
  return;
761
824
  }
762
825
 
763
- if (pkg.type === "module") return; // already correct — nothing to do, nothing to say
764
-
765
- if (await hasCommonJsSources(cwd)) {
766
- result.warnings.push(
767
- 'this project has CommonJS sources, so `"type": "module"` was NOT set for you — ' +
768
- "but the scaffolded generators and all generated code are ESM and will not " +
769
- "compile without it. Either migrate the project to ESM, or keep the generated " +
770
- "code in a sub-directory with its own package.json declaring `\"type\": \"module\"`.",
771
- );
772
- return;
826
+ // TWO INDEPENDENT JOBS FROM HERE, and they must not share an exit.
827
+ //
828
+ // The module system is one; declaring what the scaffold and the generated output import
829
+ // is the other, and it is true of every project with a readable manifest — including the
830
+ // one that already had `"type": "module"` and needs no module-system edit at all. Those
831
+ // two were folded together, below this function's early returns, and the consequence was
832
+ // that the adopter who had set their project up CORRECTLY got no declarations and no
833
+ // warning: `meta gen` worked (the CLI aliases those specifiers for itself) while `tsc`
834
+ // reported TS2307 on all five files `meta init` had just written. Under a strict
835
+ // installer that is every one of them; npm's hoisting hid roughly half.
836
+ //
837
+ // `moduleSystemNote` is computed first and applied last so the two jobs share ONE write
838
+ // of the manifest, rather than one job's early return deciding the other's fate.
839
+ let moduleSystemNote: string | undefined;
840
+
841
+ if (pkg.type !== "module") {
842
+ if (await hasCommonJsSources(cwd)) {
843
+ // `"type": "module"` is NOT set — changing a module system out from under working
844
+ // CJS code is not ours to do. The dependency declarations below still apply: they
845
+ // are about what the generated code imports, not about how it is loaded.
846
+ result.warnings.push(
847
+ 'this project has CommonJS sources, so `"type": "module"` was NOT set for you — ' +
848
+ "but the scaffolded generators and all generated code are ESM and will not " +
849
+ "compile without it. Either migrate the project to ESM, or keep the generated " +
850
+ "code in a sub-directory with its own package.json declaring `\"type\": \"module\"`.",
851
+ );
852
+ } else {
853
+ const declaredType = pkg.type; // read BEFORE the mutation below overwrites it
854
+ pkg.type = "module";
855
+ // Past tense, deliberately: this reports an edit already made. The imperative
856
+ // ("set `\"type\": \"module\"`") read as a TODO on the one line a newcomer sees
857
+ // last, so a scaffold that had just done the right thing looked like it had failed.
858
+ //
859
+ // And it must not claim the manifest was SILENT on the point: `npm init -y` writes
860
+ // `"type": "commonjs"` explicitly (npm 11.x), which is the dominant first-touch path,
861
+ // so "declared no module system" was false exactly where it is read most. Report what
862
+ // was actually there.
863
+ const previous = typeof declaredType === "string" ? declaredType : undefined;
864
+ moduleSystemNote =
865
+ `package.json ${previous === undefined ? "declared no module system" : `declared "type": "${previous}"`} — ` +
866
+ 'set `"type": "module"` for you, because MetaObjects scaffolds and generates ESM, ' +
867
+ "which a CommonJS project cannot compile.";
868
+ }
773
869
  }
774
870
 
775
- const declaredType = pkg.type; // read BEFORE the mutation below overwrites it
776
- pkg.type = "module";
777
871
  const added = addScaffoldDevDependencies(pkg);
778
872
  const addedRuntime = addScaffoldRuntimeDependencies(pkg);
779
- // Preserve the file's existing indentation rather than reformatting someone's manifest.
780
- const indent = /\n(\s+)"/.exec(raw)?.[1] ?? " ";
781
- await writeFile(pkgPath, `${JSON.stringify(pkg, null, indent)}\n`, "utf8");
782
- // Past tense, deliberately: this reports an edit already made. The imperative
783
- // ("set `\"type\": \"module\"`") read as a TODO on the one line a newcomer sees
784
- // last, so a scaffold that had just done the right thing looked like it had failed.
785
- //
786
- // And it must not claim the manifest was SILENT on the point: `npm init -y` writes
787
- // `"type": "commonjs"` explicitly (npm 11.x), which is the dominant first-touch path,
788
- // so "declared no module system" was false exactly where it is read most. Report what
789
- // was actually there.
790
- const previous = typeof declaredType === "string" ? declaredType : undefined;
791
- result.warnings.push(
792
- `package.json ${previous === undefined ? "declared no module system" : `declared "type": "${previous}"`} — ` +
793
- 'set `"type": "module"` for you, because MetaObjects scaffolds and generates ESM, ' +
794
- "which a CommonJS project cannot compile.",
795
- );
873
+ if (moduleSystemNote !== undefined || added.length > 0 || addedRuntime.length > 0) {
874
+ // Preserve the file's existing indentation rather than reformatting someone's manifest.
875
+ const indent = /\n(\s+)"/.exec(raw)?.[1] ?? " ";
876
+ await writeFile(pkgPath, `${JSON.stringify(pkg, null, indent)}\n`, "utf8");
877
+ }
878
+ if (moduleSystemNote !== undefined) result.warnings.push(moduleSystemNote);
796
879
  if (added.length > 0) {
797
880
  result.warnings.push(
798
881
  `added ${added.join(" + ")} to devDependencies — the scaffolded ` +
@@ -807,6 +890,22 @@ async function ensureEsmPackageType(cwd: string, result: InitResult): Promise<vo
807
890
  "installed. Run your package manager's install before `meta gen`.",
808
891
  );
809
892
  }
893
+ // Never degrade in silence. The first version of this returned `{}` on any failure to
894
+ // read runtime-ts's peer ranges and skipped the three packages that come from them —
895
+ // which is exactly what happened against the published package, and the run looked
896
+ // successful while leaving the project with the six TS2307s this code exists to
897
+ // prevent. A fallback that cannot be observed is indistinguishable from a bug.
898
+ const undeclarable = SCAFFOLD_OUTPUT_PEERS.filter(
899
+ (name) => !declaredDependencyNames(pkg as PackageManifest).has(name),
900
+ );
901
+ if (undeclarable.length > 0) {
902
+ result.warnings.push(
903
+ `could NOT declare ${undeclarable.join(" + ")} — the version ranges are read from ` +
904
+ "@metaobjectsdev/runtime-ts's own peerDependencies and that manifest could not be " +
905
+ "read. Generated code imports them, so add them to dependencies by hand or " +
906
+ "`npx tsc` will report TS2307 on files `meta gen` writes.",
907
+ );
908
+ }
810
909
  }
811
910
 
812
911
  /**
@@ -904,13 +1003,39 @@ function scaffoldRuntimeDependencies(): Record<string, string> {
904
1003
  return wanted;
905
1004
  }
906
1005
 
907
- /** `@metaobjectsdev/runtime-ts`'s declared peer ranges, or `{}` if it cannot be read. */
1006
+ /**
1007
+ * `@metaobjectsdev/runtime-ts`'s declared peer ranges, or `{}` if they cannot be read.
1008
+ *
1009
+ * Resolves the package's ENTRY and walks up to the nearest package.json, rather than
1010
+ * asking for `"@metaobjectsdev/runtime-ts/package.json"` directly. That direct form is
1011
+ * the obvious one and it is WRONG: a package's `exports` map gates every subpath, and
1012
+ * runtime-ts's exports are `.` / `./drivers` / `./fastify` / `./drizzle-fastify` /
1013
+ * `./hono` — no `./package.json`. Under real Node it throws
1014
+ * ERR_PACKAGE_PATH_NOT_EXPORTED. It appeared to work here only because the workspace
1015
+ * runs this under bun against a symlinked source tree; against the published package it
1016
+ * failed on the first try, silently, and `meta init` declared one package instead of
1017
+ * four. Resolving the entry is never gated — `.` is the one subpath every package
1018
+ * exports — so this form works under npm, pnpm, bun and a linked checkout alike.
1019
+ */
908
1020
  function runtimeTsPeerRanges(): Record<string, string> {
909
1021
  try {
910
1022
  const req = createRequire(import.meta.url);
911
- const manifestPath = req.resolve("@metaobjectsdev/runtime-ts/package.json");
912
- const manifest = JSON.parse(readFileSyncWrap(manifestPath, "utf8")) as PackageManifest;
913
- return (manifest.peerDependencies ?? {}) as Record<string, string>;
1023
+ let dir = dirname(req.resolve("@metaobjectsdev/runtime-ts"));
1024
+ // The entry sits under dist/; the manifest is at the package root above it.
1025
+ for (let hops = 0; hops < 8; hops++) {
1026
+ const candidate = join(dir, "package.json");
1027
+ if (existsSyncWrap(candidate)) {
1028
+ const manifest = JSON.parse(readFileSyncWrap(candidate, "utf8")) as PackageManifest & { name?: string };
1029
+ // Guard against stopping at a nested manifest that is not the package itself.
1030
+ if (manifest.name === "@metaobjectsdev/runtime-ts") {
1031
+ return (manifest.peerDependencies ?? {}) as Record<string, string>;
1032
+ }
1033
+ }
1034
+ const up = dirname(dir);
1035
+ if (up === dir) break;
1036
+ dir = up;
1037
+ }
1038
+ return {};
914
1039
  } catch {
915
1040
  return {};
916
1041
  }
@@ -59,7 +59,7 @@ import {
59
59
  import { buildProjectionViews } from "@metaobjectsdev/codegen-ts";
60
60
  import { tokensToAllowOptions, describeChange } from "../lib/allow.js";
61
61
 
62
- const MIGRATE_HELP_TEXT = `meta migrate — diff metadata vs live DB; emit migration SQL files
62
+ export const MIGRATE_HELP_TEXT = `meta migrate — diff metadata vs live DB; emit migration SQL files
63
63
 
64
64
  USAGE:
65
65
  meta migrate [baseline|apply-pending] [flags]
@@ -404,12 +404,23 @@ export async function verifyCommand(
404
404
  return 2;
405
405
  }
406
406
 
407
- // --dialect wins; else migrate's resolved dialect; else refuse. There is no --db
408
- // to infer from, so guessing would replay a postgres chain through sqlite.
409
- const dialect: Dialect | undefined = flags.dialect ?? migrateConfig.dialect;
407
+ // --dialect wins; else migrate's resolved dialect; else the project's DECLARED
408
+ // dialect from metaobjects.config.ts; else refuse. There is no --db to infer
409
+ // from, so guessing would replay a postgres chain through sqlite.
410
+ //
411
+ // The last fallback was missing, and its absence made one fact need two
412
+ // spellings: a TypeScript project declares `dialect: "postgres"` in
413
+ // metaobjects.config.ts, `meta gen`, `meta verify --codegen` and `meta migrate`
414
+ // all honour it, and `--replay` alone refused and demanded `migrate.dialect` in
415
+ // .metaobjects/config.json — the spelling a TypeScript project is least likely
416
+ // to have. migrate's own resolution still WINS where it has an answer, because
417
+ // it is the more specific statement about the chain being replayed.
418
+ const dialect: Dialect | undefined =
419
+ flags.dialect ?? migrateConfig.dialect ?? forgeConfig?.dialect;
410
420
  if (dialect === undefined) {
411
421
  log.error(
412
- `meta verify --replay: no dialect — pass --dialect <postgres|sqlite>, or set migrate.dialect in .metaobjects/config.json`,
422
+ `meta verify --replay: no dialect — pass --dialect <postgres|sqlite>, ` +
423
+ `set 'dialect' in metaobjects.config.ts, or set migrate.dialect in .metaobjects/config.json`,
413
424
  );
414
425
  return 2;
415
426
  }
@@ -1226,9 +1237,12 @@ export async function verifyCommand(
1226
1237
 
1227
1238
  // -- docs drift -------------------------------------------------------------
1228
1239
  // Gated on --docs. Runs `meta docs` into a temp dir and diffs the committed docs
1229
- // tree. See lib/docs-drift.ts for the two deliberate differences from --codegen
1230
- // (a byte difference IS drift here, and a committed file a regen would not emit is
1231
- // never reported — `docs.outDir` is full of files MetaObjects did not write).
1240
+ // tree. See lib/docs-drift.ts for the deliberate differences from --codegen: a byte
1241
+ // difference IS drift here; a committed file a regen would not emit is reported ONLY
1242
+ // under `agent/` and only when it opens with the @generated marker (`docs.outDir` is
1243
+ // otherwise full of files MetaObjects did not write); and a page the project
1244
+ // GIT-IGNORES is exempt, because `docs.outDir` is a directory rather than a namespace
1245
+ // MetaObjects owns.
1232
1246
  //
1233
1247
  // It needs a config for the same reason `--codegen` does: `docs.outDir` says which
1234
1248
  // tree to compare against, and the `agent` surface will not even materialise
@@ -1264,21 +1278,44 @@ export async function verifyCommand(
1264
1278
  return 2;
1265
1279
  }
1266
1280
 
1281
+ // What the gate did NOT check, on BOTH the passing and the failing line. A gate
1282
+ // that quietly compared two of 589 pages and reported "no drift" would be
1283
+ // indistinguishable from one that compared everything.
1284
+ const notChecked =
1285
+ result.ignoreReason !== undefined
1286
+ ? `; .gitignore not consulted — ${result.ignoreReason} — so every page a fresh run emits was expected to be committed`
1287
+ : result.ignored > 0
1288
+ ? `; ${result.ignored} git-ignored page(s) not checked`
1289
+ : "";
1290
+
1267
1291
  if (result.clean) {
1268
1292
  // The denominator is what was actually COMPARED, so the passing line and the
1269
1293
  // failing line below count the same set. A gate whose two halves divide by
1270
1294
  // different numbers is how `verify --templates` came to report seven templates
1271
1295
  // vanishing between a red run and a green one.
1272
- say(`meta verify — ${result.checked} docs page(s) match a fresh 'meta docs' (no docs drift).`);
1296
+ say(
1297
+ `meta verify — ${result.checked} docs page(s) match a fresh 'meta docs' ` +
1298
+ `(no docs drift${notChecked}).`,
1299
+ );
1273
1300
  return 0;
1274
1301
  }
1275
1302
 
1276
1303
  log.error(
1277
1304
  `meta verify — docs drift (${result.driftedFiles.length} of ${result.checked} page(s) ` +
1278
- `differ from a fresh 'meta docs'):`,
1305
+ `differ from a fresh 'meta docs'${notChecked}):`,
1279
1306
  );
1280
1307
  for (const line of result.lines) log.error(` ${line}`);
1281
1308
  log.error("Run 'meta docs' to regenerate, then commit the result.");
1309
+ // The one-command path to green, named at the point of conviction — a page reported
1310
+ // as uncommitted is the one case where regenerating is NOT the answer.
1311
+ if (result.lines.some((l) => l.startsWith("+ "))) {
1312
+ log.error(
1313
+ result.ignoreReason === undefined
1314
+ ? "A page you deliberately do not commit is exempt once it is git-ignored."
1315
+ : `.gitignore was not consulted (${result.ignoreReason}), so a page you ` +
1316
+ `deliberately do not commit is reported above.`,
1317
+ );
1318
+ }
1282
1319
  return 1;
1283
1320
  }
1284
1321
  }
package/src/index.ts CHANGED
@@ -55,6 +55,12 @@ GLOBAL OPTIONS:
55
55
 
56
56
  GEN FLAGS:
57
57
  --dry-run Compute and print, don't write
58
+ --list Print the generator registry (name, tier, options) and exit —
59
+ no config or metadata required
60
+ --baseline <default|fresh>
61
+ First-time-on-existing-file behavior. Default: write-if-different,
62
+ adopting existing content as the canonical baseline. "fresh"
63
+ overwrites and re-baselines.
58
64
  --no-antipatterns Suppress the advisory "hand-rolled what MetaObjects can model" pass
59
65
  --limit <n|all> How many advisory lines TEXT output prints before it truncates
60
66
  (default 20). Never applies to --format toon/json, which
@@ -127,7 +133,7 @@ ship in later sub-projects. See https://metaobjects.com for docs.
127
133
  `;
128
134
 
129
135
  /** Focused per-subcommand usage slices shown by `<cmd> --help`. */
130
- const COMMAND_HELP: Record<string, string> = {
136
+ export const COMMAND_HELP: Record<string, string> = {
131
137
  gen: `meta gen — codegen TS targets from your declared metadata
132
138
 
133
139
  USAGE:
@@ -135,6 +141,12 @@ USAGE:
135
141
 
136
142
  FLAGS:
137
143
  --dry-run Compute and print, don't write
144
+ --list Print the generator registry (name, tier, options) and exit —
145
+ no config or metadata required
146
+ --baseline <default|fresh>
147
+ First-time-on-existing-file behavior. Default: write-if-different,
148
+ adopting existing content as the canonical baseline. "fresh"
149
+ overwrites and re-baselines.
138
150
  --no-antipatterns Suppress the advisory "hand-rolled what MetaObjects can model" pass
139
151
  --limit <n|all> Advisory lines TEXT output prints before truncating (default 20)
140
152
  --format <toon|json|text> Output format (global flag; default toon off-TTY)
@@ -182,7 +194,11 @@ FLAGS:
182
194
  --codegen Codegen drift — regenerate to temp dir and diff committed output
183
195
  Needs metaobjects.config.ts; exit 2 if absent.
184
196
  --docs Docs drift — run 'meta docs' to a temp dir and diff docs.outDir
185
- Needs metaobjects.config.ts; exit 2 if absent.
197
+ Needs metaobjects.config.ts; exit 2 if absent. A page the
198
+ project GIT-IGNORES is exempt (docs.outDir is a directory, not
199
+ a namespace MetaObjects owns); the count of exempt pages is
200
+ reported either way, and a run where every page is ignored is
201
+ refused rather than reported clean.
186
202
  --db <url> Schema drift — live DB URL enables the schema-drift gate.
187
203
  Supports: file:, libsql:, postgres:, postgresql:
188
204
  D1 has no URL — use --dialect d1 / --d1 <binding> instead.
@@ -204,6 +220,10 @@ FLAGS:
204
220
  --d1 <binding> D1 binding name from wrangler.toml (only with --dialect d1)
205
221
  --remote Target remote D1 instead of local (only with --dialect d1) —
206
222
  the ONLY way to verify the actual deployed D1 database
223
+ --lax Load with the legacy OPEN attribute set instead of strict
224
+ (ADR-0023). Strict is the default: an undeclared or typo'd own
225
+ @attr fails verify with ERR_UNKNOWN_ATTR. Use only while
226
+ migrating a model onto a registered provider.
207
227
  --no-antipatterns Suppress the advisory "hand-rolled what MetaObjects can model" pass
208
228
  --no-requirement-lint Suppress the advisory requirement AUTHORING lint (not the gate)
209
229
  --limit <n|all> Advisory lines TEXT output prints PER SECTION before truncating
@@ -274,6 +294,14 @@ USAGE:
274
294
 
275
295
  FLAGS:
276
296
  --refresh-docs Refresh .metaobjects/AGENTS.md + CLAUDE.md after CLI upgrades
297
+ --docs-only Write only the agent-context files — no metadata sources, no
298
+ codegen scaffold, no config. Pair with --refresh-docs to update
299
+ an existing project after upgrading.
300
+ --server <lang> Declare a server language for the agent context (repeatable;
301
+ e.g. csharp, kotlin, python, node)
302
+ --client <fw> Declare a client framework for the agent context (repeatable;
303
+ e.g. react, vue)
304
+ --no-skills Skip the .claude/skills/ scaffold
277
305
  --force Overwrite existing files
278
306
  --quiet Suppress output
279
307
  --print-only Print what would be written, don't write