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

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 (106) hide show
  1. package/dist/src/commands/docs.d.ts.map +1 -1
  2. package/dist/src/commands/docs.js +41 -9
  3. package/dist/src/commands/docs.js.map +1 -1
  4. package/dist/src/commands/gen.d.ts +5 -0
  5. package/dist/src/commands/gen.d.ts.map +1 -1
  6. package/dist/src/commands/gen.js +12 -1
  7. package/dist/src/commands/gen.js.map +1 -1
  8. package/dist/src/commands/init.d.ts.map +1 -1
  9. package/dist/src/commands/init.js +27 -3
  10. package/dist/src/commands/init.js.map +1 -1
  11. package/dist/src/commands/migrate.d.ts +5 -0
  12. package/dist/src/commands/migrate.d.ts.map +1 -1
  13. package/dist/src/commands/migrate.js +10 -4
  14. package/dist/src/commands/migrate.js.map +1 -1
  15. package/dist/src/commands/prompt-snapshot.d.ts.map +1 -1
  16. package/dist/src/commands/prompt-snapshot.js +2 -1
  17. package/dist/src/commands/prompt-snapshot.js.map +1 -1
  18. package/dist/src/commands/types.d.ts.map +1 -1
  19. package/dist/src/commands/types.js +12 -3
  20. package/dist/src/commands/types.js.map +1 -1
  21. package/dist/src/commands/upgrade.d.ts.map +1 -1
  22. package/dist/src/commands/upgrade.js +38 -4
  23. package/dist/src/commands/upgrade.js.map +1 -1
  24. package/dist/src/commands/verify.d.ts.map +1 -1
  25. package/dist/src/commands/verify.js +69 -21
  26. package/dist/src/commands/verify.js.map +1 -1
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/index.js +37 -18
  29. package/dist/src/index.js.map +1 -1
  30. package/dist/src/lib/advisory.d.ts +6 -0
  31. package/dist/src/lib/advisory.d.ts.map +1 -1
  32. package/dist/src/lib/advisory.js +13 -0
  33. package/dist/src/lib/advisory.js.map +1 -1
  34. package/dist/src/lib/anti-patterns.d.ts.map +1 -1
  35. package/dist/src/lib/anti-patterns.js +2 -4
  36. package/dist/src/lib/anti-patterns.js.map +1 -1
  37. package/dist/src/lib/args.d.ts +23 -12
  38. package/dist/src/lib/args.d.ts.map +1 -1
  39. package/dist/src/lib/args.js +33 -22
  40. package/dist/src/lib/args.js.map +1 -1
  41. package/dist/src/lib/base-url-advisory.d.ts +37 -0
  42. package/dist/src/lib/base-url-advisory.d.ts.map +1 -0
  43. package/dist/src/lib/base-url-advisory.js +162 -0
  44. package/dist/src/lib/base-url-advisory.js.map +1 -0
  45. package/dist/src/lib/codegen-drift.d.ts +8 -0
  46. package/dist/src/lib/codegen-drift.d.ts.map +1 -1
  47. package/dist/src/lib/codegen-drift.js +43 -10
  48. package/dist/src/lib/codegen-drift.js.map +1 -1
  49. package/dist/src/lib/detect-stack.d.ts +17 -0
  50. package/dist/src/lib/detect-stack.d.ts.map +1 -1
  51. package/dist/src/lib/detect-stack.js +64 -2
  52. package/dist/src/lib/detect-stack.js.map +1 -1
  53. package/dist/src/lib/docs-drift.d.ts.map +1 -1
  54. package/dist/src/lib/docs-drift.js +16 -7
  55. package/dist/src/lib/docs-drift.js.map +1 -1
  56. package/dist/src/lib/git-ignore.d.ts +19 -0
  57. package/dist/src/lib/git-ignore.d.ts.map +1 -1
  58. package/dist/src/lib/git-ignore.js +46 -3
  59. package/dist/src/lib/git-ignore.js.map +1 -1
  60. package/dist/src/lib/ignored-scaffold-check.d.ts +12 -0
  61. package/dist/src/lib/ignored-scaffold-check.d.ts.map +1 -0
  62. package/dist/src/lib/ignored-scaffold-check.js +75 -0
  63. package/dist/src/lib/ignored-scaffold-check.js.map +1 -0
  64. package/dist/src/lib/load-error.d.ts +46 -0
  65. package/dist/src/lib/load-error.d.ts.map +1 -0
  66. package/dist/src/lib/load-error.js +51 -0
  67. package/dist/src/lib/load-error.js.map +1 -0
  68. package/dist/src/lib/manifest-ignored-check.d.ts.map +1 -1
  69. package/dist/src/lib/manifest-ignored-check.js +19 -6
  70. package/dist/src/lib/manifest-ignored-check.js.map +1 -1
  71. package/dist/src/lib/output.d.ts +13 -1
  72. package/dist/src/lib/output.d.ts.map +1 -1
  73. package/dist/src/lib/output.js +26 -8
  74. package/dist/src/lib/output.js.map +1 -1
  75. package/dist/src/lib/rel-posix.d.ts +5 -0
  76. package/dist/src/lib/rel-posix.d.ts.map +1 -0
  77. package/dist/src/lib/rel-posix.js +23 -0
  78. package/dist/src/lib/rel-posix.js.map +1 -0
  79. package/dist/src/lib/replay-remedy.d.ts +2 -0
  80. package/dist/src/lib/replay-remedy.d.ts.map +1 -0
  81. package/dist/src/lib/replay-remedy.js +69 -0
  82. package/dist/src/lib/replay-remedy.js.map +1 -0
  83. package/package.json +10 -10
  84. package/src/commands/docs.ts +51 -12
  85. package/src/commands/gen.ts +14 -1
  86. package/src/commands/init.ts +27 -3
  87. package/src/commands/migrate.ts +12 -4
  88. package/src/commands/prompt-snapshot.ts +2 -1
  89. package/src/commands/types.ts +12 -3
  90. package/src/commands/upgrade.ts +44 -4
  91. package/src/commands/verify.ts +74 -23
  92. package/src/index.ts +37 -18
  93. package/src/lib/advisory.ts +15 -0
  94. package/src/lib/anti-patterns.ts +2 -5
  95. package/src/lib/args.ts +60 -39
  96. package/src/lib/base-url-advisory.ts +173 -0
  97. package/src/lib/codegen-drift.ts +52 -9
  98. package/src/lib/detect-stack.ts +73 -2
  99. package/src/lib/docs-drift.ts +17 -7
  100. package/src/lib/git-ignore.ts +47 -3
  101. package/src/lib/ignored-scaffold-check.ts +78 -0
  102. package/src/lib/load-error.ts +89 -0
  103. package/src/lib/manifest-ignored-check.ts +21 -6
  104. package/src/lib/output.ts +36 -8
  105. package/src/lib/rel-posix.ts +25 -0
  106. package/src/lib/replay-remedy.ts +78 -0
@@ -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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"}
@@ -0,0 +1,5 @@
1
+ /** A path with the platform separator replaced by "/" — a no-op on POSIX. */
2
+ export declare function toPosix(p: string): string;
3
+ /** `abs` relative to `root`, forward-slashed. */
4
+ export declare function relPosix(root: string, abs: string): string;
5
+ //# sourceMappingURL=rel-posix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rel-posix.d.ts","sourceRoot":"","sources":["../../../src/lib/rel-posix.ts"],"names":[],"mappings":"AAgBA,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,iDAAiD;AACjD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,23 @@
1
+ // One spelling of "a path, with forward slashes".
2
+ //
3
+ // Six modules under lib/ carried this rule inline — `git-ignore`, `docs-drift` (twice),
4
+ // `anti-patterns`, `base-url-advisory` and `ignored-scaffold-check` — and one of the six
5
+ // was spelled differently: `.split("\\").join("/")` rather than `.split(sep).join("/")`.
6
+ // On Windows those agree, because `sep` IS a backslash. On POSIX they do not: `sep` is
7
+ // already "/" so the correct form is a no-op, while splitting on a literal backslash
8
+ // rewrites a filename that legitimately CONTAINS one. That is the drift six copies of a
9
+ // one-line rule invite, and it had already happened.
10
+ //
11
+ // Comparisons against git's output are the reason the rule exists at all: `git check-ignore`
12
+ // and `git ls-files` speak forward slashes on every platform, so a Windows path has to be
13
+ // normalized before it can be looked up in a set built from git's answer.
14
+ import { relative, sep } from "node:path";
15
+ /** A path with the platform separator replaced by "/" — a no-op on POSIX. */
16
+ export function toPosix(p) {
17
+ return p.split(sep).join("/");
18
+ }
19
+ /** `abs` relative to `root`, forward-slashed. */
20
+ export function relPosix(root, abs) {
21
+ return toPosix(relative(root, abs));
22
+ }
23
+ //# sourceMappingURL=rel-posix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rel-posix.js","sourceRoot":"","sources":["../../../src/lib/rel-posix.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,wFAAwF;AACxF,yFAAyF;AACzF,yFAAyF;AACzF,uFAAuF;AACvF,qFAAqF;AACrF,wFAAwF;AACxF,qDAAqD;AACrD,EAAE;AACF,6FAA6F;AAC7F,0FAA0F;AAC1F,0EAA0E;AAE1E,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE1C,6EAA6E;AAC7E,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAW;IAChD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function replayRemedy(err: unknown): string[];
2
+ //# sourceMappingURL=replay-remedy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-remedy.d.ts","sourceRoot":"","sources":["../../../src/lib/replay-remedy.ts"],"names":[],"mappings":"AAgDA,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CA6BnD"}
@@ -0,0 +1,69 @@
1
+ import { MigrationApplyError } from "@metaobjectsdev/migrate-ts";
2
+ /**
3
+ * What to tell someone whose committed chain will not apply to an empty database.
4
+ *
5
+ * The message this replaces prescribed ONE fix — *"fix this with a NEW migration that
6
+ * creates the missing object"* — and it cannot work, in any case. Migrations apply in
7
+ * timestamp order, so anything authored now sorts AFTER the migration that failed; the
8
+ * object is still missing when that file runs. Two estates found it from opposite
9
+ * directions and it is the same defect both times:
10
+ *
11
+ * - a chain whose FIRST migration needs a schema an out-of-band script creates (the third
12
+ * migration emits `CREATE SCHEMA IF NOT EXISTS`, the first predates it). A new migration
13
+ * sorts last, after the one that needs the schema.
14
+ * - a project where **another tool owns schema creation** — drizzle-kit's chain builds the
15
+ * tables, `.metaobjects/migrations/` holds later incremental patches. Following the
16
+ * printed remedy literally means hand-authoring every `CREATE TABLE` into the MetaObjects
17
+ * chain, i.e. duplicating a schema this project does not own, which is the opposite of
18
+ * what the agent context teaches two paragraphs into its own Principles.
19
+ *
20
+ * The old message assumed MetaObjects is the only schema authority and offered no third
21
+ * possibility. These name the fixes that exist, and the head-of-chain case gets the extra
22
+ * sentence that is only true there: nothing in this chain could have created what the
23
+ * first migration needs, so the base schema comes from outside it.
24
+ *
25
+ * "Applied migrations are immutable" is kept, because it is true and it is the reason the
26
+ * obvious fix is not offered first — but it is stated as the CONDITION it actually is
27
+ * (a checksum guard on databases that already ran the file), not as a blanket ban, because
28
+ * a migration no database has applied yet is edited in place every day.
29
+ */
30
+ /**
31
+ * Is this the migrate engine's own apply failure?
32
+ *
33
+ * By NAME, not `instanceof`. Two physical copies of `@metaobjectsdev/migrate-ts` in one
34
+ * process — a globally-installed or linked `meta` alongside a project-local dependency —
35
+ * give the class object and the instance different identities, so `instanceof` returns
36
+ * false for a real error and the remedy silently degrades to its un-positioned form. That
37
+ * is the same class-identity defect that split ts-poet's `Code` in 0.21.6 and drove the
38
+ * exported node guards in `metadata`. Unreachable through today's single import; costs one
39
+ * line to make unreachable by construction.
40
+ */
41
+ function isApplyError(err) {
42
+ return err instanceof MigrationApplyError
43
+ || (err instanceof Error && err.name === "MigrationApplyError"
44
+ && typeof err.migration === "string"
45
+ && typeof err.index === "number");
46
+ }
47
+ export function replayRemedy(err) {
48
+ const applyErr = isApplyError(err) ? err : undefined;
49
+ const head = applyErr !== undefined && applyErr.index === 0;
50
+ const which = applyErr === undefined
51
+ ? "the committed chain does not apply to an empty database."
52
+ : `'${applyErr.migration}' (migration ${applyErr.index + 1} of ${applyErr.pendingCount}) ` +
53
+ `does not apply to an empty database.`;
54
+ const out = [which];
55
+ if (head) {
56
+ out.push("It is the FIRST migration in the chain, so nothing here could have created what it " +
57
+ "needs — this chain has never built a database from empty, and its base schema comes " +
58
+ "from outside it.");
59
+ }
60
+ out.push("A NEW migration cannot fix this: migrations apply in timestamp order, so anything you " +
61
+ "author now sorts after the file that failed.");
62
+ out.push("The fixes that do work: if another tool or an out-of-band script owns schema creation " +
63
+ "for this project, --replay asserts a property this chain does not have — don't wire " +
64
+ "it. Otherwise correct the migration in place if no database has applied it yet " +
65
+ "(the ledger's checksum guard is what stops you once one has), or re-baseline from a " +
66
+ "live database with `meta migrate baseline --from-db --db <url>`.");
67
+ return out;
68
+ }
69
+ //# sourceMappingURL=replay-remedy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-remedy.js","sourceRoot":"","sources":["../../../src/lib/replay-remedy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,mBAAmB;WACpC,CAAC,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB;eACvD,OAAQ,GAA2B,CAAC,SAAS,KAAK,QAAQ;eAC1D,OAAQ,GAA2B,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC;IAC5D,MAAM,KAAK,GACT,QAAQ,KAAK,SAAS;QACpB,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,gBAAgB,QAAQ,CAAC,KAAK,GAAG,CAAC,OAAO,QAAQ,CAAC,YAAY,IAAI;YACxF,sCAAsC,CAAC;IAE7C,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CACN,qFAAqF;YACnF,sFAAsF;YACtF,kBAAkB,CACrB,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,IAAI,CACN,wFAAwF;QACtF,8CAA8C,CACjD,CAAC;IACF,GAAG,CAAC,IAAI,CACN,wFAAwF;QACtF,sFAAsF;QACtF,iFAAiF;QACjF,sFAAsF;QACtF,kEAAkE,CACrE,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/cli",
3
- "version": "1.0.0-rc.5",
3
+ "version": "1.0.0-rc.6",
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.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",
54
+ "@metaobjectsdev/codegen-ts": "1.0.0-rc.6",
55
+ "@metaobjectsdev/codegen-ts-react": "1.0.0-rc.6",
56
+ "@metaobjectsdev/codegen-ts-tanstack": "1.0.0-rc.6",
57
+ "@metaobjectsdev/docs-site": "1.0.0-rc.6",
58
+ "@metaobjectsdev/metadata": "1.0.0-rc.6",
59
+ "@metaobjectsdev/migrate-ts": "1.0.0-rc.6",
60
+ "@metaobjectsdev/render": "1.0.0-rc.6",
61
+ "@metaobjectsdev/runtime-ts": "1.0.0-rc.6",
62
+ "@metaobjectsdev/sdk": "1.0.0-rc.6",
63
63
  "@toon-format/toon": "^2.3.0",
64
64
  "jiti": "^2.4.0"
65
65
  },
@@ -29,6 +29,7 @@ import {
29
29
  import type {
30
30
  GenContext,
31
31
  EmittedFile,
32
+ Generator,
32
33
  ResolvedDocsConfig,
33
34
  DocsSurface,
34
35
  Dialect,
@@ -41,7 +42,7 @@ import {
41
42
  DEFAULT_COLUMN_NAMING_STRATEGY,
42
43
  renderCoreMetamodelDocs,
43
44
  } from "@metaobjectsdev/metadata";
44
- import { dbEmittingObjects, DEFAULT_DIALECT, missingDialectMessage } from "@metaobjectsdev/codegen-ts";
45
+ import { dbEmittingObjects, DEFAULT_DIALECT, DEFAULT_DOCS_DIR, missingDialectMessage, resolveGenerators, runEmitsHonoRoutes, runEmitsUiTier } from "@metaobjectsdev/codegen-ts";
45
46
  import type { MetaDataTypeProvider, MetaRoot } from "@metaobjectsdev/metadata";
46
47
  import { generateSite, SITE_TEMPLATE_NAMES, SITE_ASSET_NAMES, readSiteFile } from "@metaobjectsdev/docs-site";
47
48
  // The `agent` schema surface takes the physical schema as an ARGUMENT with its resolvers
@@ -53,6 +54,14 @@ import {
53
54
  qualifiedDbName,
54
55
  } from "@metaobjectsdev/migrate-ts";
55
56
  import type { AgentSchemaInput, SchemaColumnLike } from "@metaobjectsdev/codegen-ts";
57
+ import { reportLoadError } from "../lib/load-error.js";
58
+
59
+ /**
60
+ * Print a load failure with everything the loader's ADR-0009 envelope carried — the stable
61
+ * code, the file, the json path, and the loader's own next steps — instead of the bare
62
+ * `err.message` five commands used to print. See `lib/load-error.ts`.
63
+ */
64
+
56
65
 
57
66
  type DocsLayout = "flat" | "package";
58
67
 
@@ -202,9 +211,14 @@ function parseDocsArgs(argv: string[], cwd: string): DocsFlags {
202
211
  // cwd (mirrors how migrate/gen treat the working directory as the root).
203
212
  projectRoot: projectRoot ?? cwd,
204
213
  projectRootProvided: projectRoot !== undefined,
205
- // Default out dir, resolved against the project root below. In --metamodel
206
- // mode the renderer writes under <out>/metamodel/, default ./docs/metamodel.
207
- out: out ?? (wantMetamodel ? "./docs/metamodel" : "./docs"),
214
+ // Default out dir, resolved against the project root below. ONE spelling of the
215
+ // default, shared with resolveDocsConfig — two spellings is how a flag default and
216
+ // a config default come to disagree about where the pages are.
217
+ //
218
+ // --metamodel keeps its own sub-path: the renderer writes under <out>/metamodel/,
219
+ // and it is a different artifact (the metamodel reference, not this project's
220
+ // pages), so it is not swept into the generated-docs directory.
221
+ out: out ?? (wantMetamodel ? "./docs/metamodel" : DEFAULT_DOCS_DIR),
208
222
  // Default flat preserves today's single-package output (+ existing goldens).
209
223
  layout: layout ?? "flat",
210
224
  metamodel: wantMetamodel,
@@ -464,7 +478,7 @@ export async function docsCommand(
464
478
 
465
479
  // Merge the config `docs:` block with CLI overrides over documented defaults.
466
480
  // CLI --out/--layout only override when explicitly passed; surfaces/baseUrl
467
- // override whenever present. The resolver supplies defaults (outDir ./docs,
481
+ // override whenever present. The resolver supplies defaults (outDir ./docs/generated,
468
482
  // layout = fallback, surfaces = both) so config-less + flag-less runs are
469
483
  // unchanged.
470
484
  const cliOverrides: Partial<ResolvedDocsConfig> = {
@@ -505,7 +519,7 @@ export async function docsCommand(
505
519
  ...configLoadOptions,
506
520
  });
507
521
  } catch (err) {
508
- log.error(`docs: failed to load metadata: ${(err as Error).message}`);
522
+ reportLoadError(log, "docs: failed to load metadata", err);
509
523
  return 2;
510
524
  }
511
525
 
@@ -527,6 +541,29 @@ export async function docsCommand(
527
541
  pkMap: buildPkMap(root),
528
542
  relationMap: buildRelationMap(root),
529
543
  });
544
+ // The generator suite, with stable-name STRINGS resolved to the generators they name
545
+ // (ADR-0021 #1 allows `generators: ["routes-hono"]`). Both aggregations below read a
546
+ // generator MARKER, and a string carries none — so reading the raw array answered
547
+ // "no Hono routes / no UI tier" for a project that wires them by name, which is the
548
+ // same two-doors-one-question defect these flags exist to close. `meta gen` resolves
549
+ // the identical array through `normalizeConfig`.
550
+ //
551
+ // An unknown name throws (the message names it and lists the valid ones). `meta gen`
552
+ // fails on it; `meta docs` has never had to load the suite at all, so it degrades to
553
+ // the already-typed entries rather than becoming a new failure — and SAYS it did,
554
+ // because a page quietly losing a section is exactly what this whole fix is about.
555
+ let suite: Generator[];
556
+ try {
557
+ suite = resolveGenerators(loadedConfig?.generators ?? []);
558
+ } catch (err) {
559
+ log.warn(
560
+ `docs: could not resolve the generator suite (${(err as Error).message}) — the agent ` +
561
+ `pages fall back to the generators declared as values, so a tier wired by name may ` +
562
+ `be missing from them.`,
563
+ );
564
+ suite = (loadedConfig?.generators ?? []).filter((g): g is Generator => typeof g !== "string");
565
+ }
566
+
530
567
  const ctx: GenContext = {
531
568
  entities: root.objects(),
532
569
  loadedRoot: root,
@@ -541,12 +578,14 @@ export async function docsCommand(
541
578
  // surface. Aggregate it from the generator set exactly as the gen runner
542
579
  // does (a generator opts in via emitsHonoRoutes), so `meta docs` auto-detects
543
580
  // routesFileHono() rather than relying on a field users don't normally set.
544
- includeHonoRoutes:
545
- loadedConfig?.includeHonoRoutes ??
546
- (loadedConfig?.generators?.some(
547
- (g) => typeof g !== "string" && g.emitsHonoRoutes === true,
548
- ) ??
549
- false),
581
+ includeHonoRoutes: loadedConfig?.includeHonoRoutes ?? runEmitsHonoRoutes(suite),
582
+ // `agent/ui.md` describes forms, grids and the endpoints their hooks call. Whether
583
+ // any of that is emitted is a GENERATOR fact — the page's own predicate is
584
+ // metadata-only and answered "could a UI be generated?", so a project with
585
+ // `generators: []` got a confident page naming endpoints nothing serves. Aggregate
586
+ // it through the same helper the gen runner uses, so `meta docs` and `meta gen` —
587
+ // the two doors onto this page — cannot answer it differently.
588
+ includeUiTier: loadedConfig?.includeUiTier ?? runEmitsUiTier(suite),
550
589
  } as never,
551
590
  renderContext,
552
591
  projectRoot,
@@ -16,6 +16,14 @@ import {
16
16
  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
+ import { reportLoadError } from "../lib/load-error.js";
20
+
21
+ /**
22
+ * Print a load failure with everything the loader's ADR-0009 envelope carried — the stable
23
+ * code, the file, the json path, and the loader's own next steps — instead of the bare
24
+ * `err.message` five commands used to print. See `lib/load-error.ts`.
25
+ */
26
+
19
27
 
20
28
  export function mapStatus(s: WriteStatus): GenFileStatus {
21
29
  switch (s) {
@@ -28,6 +36,10 @@ export function mapStatus(s: WriteStatus): GenFileStatus {
28
36
  case "unchanged":
29
37
  case "skipped": return "unchanged";
30
38
  case "refused": return "refused";
39
+ // --baseline=adopt — recorded as the merge base, nothing written. Its own word,
40
+ // for the same reason "overwrite" is not "new": the adopter has to know a manifest
41
+ // now exists to commit.
42
+ case "adopted": return "adopted";
31
43
  // FR-038 §8 — a generated file deleted because it is no longer generated.
32
44
  // Shown as its own outcome, not folded into "unchanged": a run summary that
33
45
  // lists writes but hides deletions is how a silent deletion happens.
@@ -114,7 +126,7 @@ export async function genCommand(args: string[], cwd: string, fmt: OutputFormat
114
126
  ...loadMemoryOptionsFrom(forgeConfig),
115
127
  });
116
128
  } catch (err) {
117
- log.error(`failed to load metadata: ${(err as Error).message}`);
129
+ reportLoadError(log, "failed to load metadata", err);
118
130
  return 2;
119
131
  }
120
132
 
@@ -172,6 +184,7 @@ export async function genCommand(args: string[], cwd: string, fmt: OutputFormat
172
184
  dryRun: cliConfig.dryRun,
173
185
  warnings: [],
174
186
  antiPatterns,
187
+ generatorCount: forgeConfig.generators?.length ?? 0,
175
188
  };
176
189
  const output =
177
190
  fmt === "toon" ? formatGenResultToon(genResult)
@@ -8,13 +8,14 @@ import {
8
8
  assemble, resolveAgentContextRoot, planScaffold,
9
9
  AGENT_CONTEXT_MANIFEST_PATH, type Manifest, type Stack,
10
10
  } from "@metaobjectsdev/sdk/agent-context";
11
- import { resolveStack } from "../lib/detect-stack.js";
11
+ import { assertKnownStackValues, resolveStack } from "../lib/detect-stack.js";
12
+ import { reportIgnoredScaffold } from "../lib/ignored-scaffold-check.js";
12
13
  import { parseInitArgs } from "../lib/args.js";
13
14
  import { log } from "../lib/log.js";
14
15
  import { cliVersion } from "../lib/version.js";
15
16
  import { declaredDependencyNames, type PackageManifest } from "../lib/package-manifest.js";
16
17
  import { findWranglerConfig, parseWranglerConfig } from "@metaobjectsdev/migrate-ts";
17
- import { readReferenceTemplate, type ReferenceGeneratorName } from "@metaobjectsdev/codegen-ts";
18
+ import { DEFAULT_DOCS_DIR, readReferenceTemplate, type ReferenceGeneratorName } from "@metaobjectsdev/codegen-ts";
18
19
 
19
20
  // ADR-0034 scaffold-and-own — `meta init` copies the codegen reference templates into
20
21
  // the consumer's repo so they OWN them; metaobjects.config.ts imports them locally.
@@ -138,7 +139,9 @@ export default defineConfig({
138
139
  barrel(),
139
140
  ],
140
141
  docs: {
141
- outDir: "./docs", // every surface lands here (run: meta docs)
142
+ outDir: "${DEFAULT_DOCS_DIR}", // every surface lands here (run: meta docs).
143
+ // A SUB-directory on purpose: these pages are regenerated
144
+ // and overwritten, and docs/ itself is usually yours.
142
145
  layout: "flat", // or "package" for multi-package models
143
146
  // surfaces defaults to ["model", "api", "requirements", "agent"] — all four.
144
147
  // Deliberately NOT narrowed here: the requirements and agent surfaces emit ZERO
@@ -600,6 +603,16 @@ async function writeConfigFile(opts: InitOptions, result: InitResult, agentDir:
600
603
  }
601
604
 
602
605
  export async function init(opts: InitOptions): Promise<InitResult> {
606
+ // Refused HERE, in the shared function, before anything is written — NOT at one CLI
607
+ // entry point. It was at `initCommand`'s arg parse only, and `meta agent-docs` calls
608
+ // this directly: `meta init --docs-only --server klingon` exited 2 with the message
609
+ // while `meta agent-docs --server klingon` exited 0, reported "11 files", and recorded
610
+ // `"servers": []`. That is the worse of the two doors to miss — `agent-docs` is the
611
+ // canonical redirect target for every language port, so the ports used the unguarded
612
+ // one. A non-empty override array suppresses both the prior manifest's stack AND
613
+ // detection, so a dropped value does not degrade, it inverts three statements in the
614
+ // generated context.
615
+ assertKnownStackValues({ servers: opts.servers ?? [], clients: opts.clients ?? [] });
603
616
  const result: InitResult = { created: [], preserved: [], removed: [], warnings: [] };
604
617
  const agentDir = join(opts.cwd, DEFAULT_METAOBJECTS_DIR);
605
618
  const metaobjectsDir = join(opts.cwd, DEFAULT_METADATA_DIR);
@@ -1135,6 +1148,9 @@ export async function initCommand(args: string[], cwd: string): Promise<number>
1135
1148
  let flags;
1136
1149
  try {
1137
1150
  flags = parseInitArgs(args);
1151
+ // Also here, so a bad value is a USAGE error (exit 2) rather than the exit 1 an
1152
+ // init failure gets. `init()` refuses it too, which is what covers every other door.
1153
+ assertKnownStackValues({ servers: flags.servers ?? [], clients: flags.clients ?? [] });
1138
1154
  } catch (err) {
1139
1155
  log.error((err as Error).message);
1140
1156
  return 2;
@@ -1163,6 +1179,14 @@ export async function initCommand(args: string[], cwd: string): Promise<number>
1163
1179
  }
1164
1180
 
1165
1181
  if (!flags.quiet) {
1182
+ // A count is not a guarantee that the files reached the repository. Many projects
1183
+ // git-ignore `.claude/` under a comment about credentials — a common and defensible
1184
+ // convention — and eight of the eleven files land there. Ignored, they exist only on
1185
+ // the machine that ran this: not committed, absent from CI and from a fresh clone,
1186
+ // invisible to a teammate, while `.agent-context.json` (which IS committed) tracks
1187
+ // them. That silently voids the whole downstream agent-context design, and the answer
1188
+ // was available from the outputs this command had just written.
1189
+ reportIgnoredScaffold(cwd, result.created);
1166
1190
  if (flags.docsOnly) {
1167
1191
  log.info(`Scaffolded the MetaObjects agent context (${result.created.length} files): .metaobjects/AGENTS.md + .claude/skills/metaobjects-*.`);
1168
1192
  for (const w of result.warnings) log.info(` ${w}`);
@@ -58,6 +58,14 @@ import {
58
58
  } from "../lib/wrangler.js";
59
59
  import { buildProjectionViews } from "@metaobjectsdev/codegen-ts";
60
60
  import { tokensToAllowOptions, describeChange } from "../lib/allow.js";
61
+ import { reportLoadError } from "../lib/load-error.js";
62
+
63
+ /**
64
+ * Print a load failure with everything the loader's ADR-0009 envelope carried — the stable
65
+ * code, the file, the json path, and the loader's own next steps — instead of the bare
66
+ * `err.message` five commands used to print. See `lib/load-error.ts`.
67
+ */
68
+
61
69
 
62
70
  export const MIGRATE_HELP_TEXT = `meta migrate — diff metadata vs live DB; emit migration SQL files
63
71
 
@@ -628,7 +636,7 @@ export async function migrateCommand(
628
636
  ...postgresLoadOptions,
629
637
  });
630
638
  } catch (err) {
631
- log.error(`failed to load metadata: ${(err as Error).message}`);
639
+ reportLoadError(log, "failed to load metadata", err);
632
640
  return 2;
633
641
  }
634
642
 
@@ -1056,7 +1064,7 @@ export async function runBaseline(
1056
1064
  ...baselineLoadOptions,
1057
1065
  });
1058
1066
  } catch (err) {
1059
- log.error(`migrate baseline: failed to load metadata: ${(err as Error).message}`);
1067
+ reportLoadError(log, "migrate baseline: failed to load metadata", err);
1060
1068
  return 2;
1061
1069
  }
1062
1070
  const baselineViews = buildProjectionViews(metadata, { dialect: config.dialect, columnNamingStrategy: baselineStrategy });
@@ -1195,7 +1203,7 @@ export async function runOfflineGenerate(
1195
1203
  ...offlineLoadOptions,
1196
1204
  });
1197
1205
  } catch (err) {
1198
- log.error(`migrate: failed to load metadata: ${(err as Error).message}`);
1206
+ reportLoadError(log, "migrate: failed to load metadata", err);
1199
1207
  return 2;
1200
1208
  }
1201
1209
 
@@ -1460,7 +1468,7 @@ async function runD1Migrate(
1460
1468
  ...d1LoadOptions,
1461
1469
  });
1462
1470
  } catch (err) {
1463
- log.error(`migrate: failed to load metadata: ${(err as Error).message}`);
1471
+ reportLoadError(log, "migrate: failed to load metadata", err);
1464
1472
  return 2;
1465
1473
  }
1466
1474
 
@@ -14,6 +14,7 @@ import { parsePromptSnapshotArgs } from "../lib/args.js";
14
14
  import { log } from "../lib/log.js";
15
15
  import { FileProvider } from "../lib/file-provider.js";
16
16
  import { snapshotPaths, unifiedDiff } from "../lib/snapshot.js";
17
+ import { reportLoadError } from "../lib/load-error.js";
17
18
  import { loadMemoryOptionsFrom, loadMetaobjectsConfig, resolveGenConfigDir } from "../lib/load-metaobjects-config.js";
18
19
  import { loadMemory, resolveCollection } from "@metaobjectsdev/sdk";
19
20
  import { TYPE_TEMPLATE, TEMPLATE_ATTR_TEXT_REF, TEMPLATE_ATTR_FORMAT } from "@metaobjectsdev/metadata";
@@ -78,7 +79,7 @@ export async function promptSnapshotCommand(args: string[], cwd: string): Promis
78
79
  ...configLoadOptions,
79
80
  });
80
81
  } catch (err) {
81
- log.error(`failed to load metadata: ${(err as Error).message}`);
82
+ reportLoadError(log, "failed to load metadata", err);
82
83
  return 1;
83
84
  }
84
85
 
@@ -20,8 +20,8 @@
20
20
  // The `--json` flag this once advertised in its own --help, twice, is not coming back: the
21
21
  // CLI rejects a bare `--json` before a command ever sees its args (index.ts, `formatAlias`),
22
22
  // on purpose — one global spelling for all three formats.
23
- import { composeRegistry, coreProviders, buildVocabularyCatalog } from "@metaobjectsdev/metadata";
24
- import { forgeTypesProvider } from "@metaobjectsdev/sdk";
23
+ import { composeRegistry, buildVocabularyCatalog } from "@metaobjectsdev/metadata";
24
+ import { defaultLoadMemoryProviders } from "@metaobjectsdev/sdk";
25
25
  import { log } from "../lib/log.js";
26
26
  import { emitStructured, type OutputFormat } from "../lib/format.js";
27
27
 
@@ -226,7 +226,16 @@ export async function typesCommand(args: string[], fmt: OutputFormat = "text"):
226
226
  // @sortable, @dbColumnType), `view.textarea` with none (no @rows), and the eight
227
227
  // documentation commonAttrs — @title among them — were absent entirely. This is the same
228
228
  // provider set the loader composes, so what this prints is what the loader accepts.
229
- const registry = composeRegistry([...coreProviders, forgeTypesProvider], { validate: true });
229
+ // `defaultLoadMemoryProviders` — THE composition, not a second spelling of it. This read
230
+ // `[...coreProviders]`, which is what that constant happens to equal today, so the claim
231
+ // above ("the same provider set the loader composes") was true by coincidence and the gate
232
+ // that pins the default composition against the canonical manifest had no jurisdiction
233
+ // here: add or drop a provider in the default set and `meta types` would silently print a
234
+ // vocabulary the loader does not accept, with nothing failing. `forgeTypesProvider` was
235
+ // once in this list, and printing it as registered vocabulary was part of how a TS-only
236
+ // registration read as cross-port: `meta types forge --all` listed 20 attrs no other port
237
+ // has. One composition, one door.
238
+ const registry = composeRegistry([...defaultLoadMemoryProviders], { validate: true });
230
239
  const catalog = buildVocabularyCatalog(registry);
231
240
 
232
241
  // Flatten the catalog into searchable entries.
@@ -21,7 +21,13 @@
21
21
  import { readFile, writeFile } from "node:fs/promises";
22
22
  import { extname, relative } from "node:path";
23
23
  import { resolveCollection } from "@metaobjectsdev/sdk";
24
- import { rewriteDocument } from "@metaobjectsdev/metadata";
24
+ import {
25
+ rewriteDocument,
26
+ composeRegistry,
27
+ coreProviders,
28
+ SUBTYPE_BASE,
29
+ retirementSuggestions,
30
+ } from "@metaobjectsdev/metadata";
25
31
  import { log } from "../lib/log.js";
26
32
 
27
33
  /** YAML authoring (ADR-0006). Rewritten by the `yaml`-backed arm, loaded on demand below. */
@@ -96,7 +102,29 @@ export async function upgradeCommand(args: string[], cwd: string): Promise<numbe
96
102
  ? (await import("@metaobjectsdev/metadata/vocabulary-rewrite-yaml")).rewriteYamlDocument
97
103
  : undefined;
98
104
 
99
- const opts = flags.maxVersion !== undefined ? { maxVersion: flags.maxVersion } : {};
105
+ // Which types have an ABSTRACT ANCHOR at `<type>.base`, derived from the core registry
106
+ // rather than listed here: `base` is an anchor exactly when the type registers some OTHER
107
+ // subtype for it to anchor. The rewriter is registry-free on purpose, so the caller — this
108
+ // command, which can build a registry — supplies the fact.
109
+ //
110
+ // Without it, `meta upgrade` answered "nothing to rewrite" on an estate whose
111
+ // `{"object.base": …}` the loader refuses (ERR_ABSTRACT_SUBTYPE_AUTHORED) — the change
112
+ // §10A of the 1.0 guide LEADS WITH. The one command whose job is "what does the new
113
+ // version need me to change?" said "nothing", and the adopter then hit the load failure.
114
+ const registry = composeRegistry(coreProviders);
115
+ // `allTypes()` yields one TypeId per registered type.subType pair, so take the distinct
116
+ // TYPE names off it.
117
+ const abstractAnchorTypes = [...new Set(registry.allTypes().map((id) => id.type))]
118
+ .filter((t) => {
119
+ const subs = registry.allSubTypesOf(t);
120
+ return subs.includes(SUBTYPE_BASE) && subs.some((sub) => sub !== SUBTYPE_BASE);
121
+ })
122
+ .sort();
123
+
124
+ const opts = {
125
+ abstractAnchorTypes,
126
+ ...(flags.maxVersion !== undefined ? { maxVersion: flags.maxVersion } : {}),
127
+ };
100
128
 
101
129
  for (const file of files) {
102
130
  const rel = relative(projectRoot, file);
@@ -120,10 +148,22 @@ export async function upgradeCommand(args: string[], cwd: string): Promise<numbe
120
148
  log.info(`\n${rel}`);
121
149
  for (const c of r.changes) log.info(` ${c.line}: @${c.from} → ${c.to}`);
122
150
  for (const f of r.refusals) {
151
+ // The WHY and the replacement both print, and the guide is not an alternative to
152
+ // them. This used to read `Retired in <since>. See <guide>` — dropping `why`
153
+ // whenever a guide existed, which is almost always, and dropping `replacedBy`
154
+ // unconditionally. For the `@forge*` entries that removed the only actionable
155
+ // sentence there is ("opt the provider in explicitly"), and for an authored
156
+ // `<type>.base` it announced a retirement of something that was never authorable —
157
+ // telling the reader they used to have a working feature. Hence "no longer accepted
158
+ // as of", which is true of both, with the carefully-written `why` beside it.
123
159
  log.warn(
124
- ` ${f.line}: ${f.subject}${f.value !== undefined ? `: ${f.value}` : ""} — needs a decision. ` +
125
- `Retired in ${f.since}. ${f.migration !== undefined ? `See ${f.migration}` : f.why}`,
160
+ ` ${f.line}: ${f.subject}${f.value !== undefined ? `: ${f.value}` : ""} — needs a decision ` +
161
+ `(no longer accepted as of ${f.since}).`,
126
162
  );
163
+ log.warn(` ${f.why}`);
164
+ // The same suggestion list every OTHER door prints for a retirement, rather than a
165
+ // second rendering of the same note that can drift from it.
166
+ for (const line of retirementSuggestions(f)) log.warn(` ${line}`);
127
167
  }
128
168
 
129
169
  totalChanges += r.changes.length;