@metaobjectsdev/cli 0.12.5 → 0.13.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,7 +56,7 @@ Run schema ops from the compiled binary:
56
56
  ## Quick start
57
57
 
58
58
  ```bash
59
- # 1. Scaffold metaobjects/ + .metaobjects/ + metaobjects.config.ts
59
+ # 1. Scaffold metaobjects/ + .metaobjects/ + codegen/generators/ + metaobjects.config.ts
60
60
  meta init
61
61
 
62
62
  # 2. Author entity metadata
@@ -86,7 +86,9 @@ Running `meta` with no arguments prints a concise status line (whether a `metaob
86
86
 
87
87
  ### `meta init`
88
88
 
89
- Scaffolds `metaobjects/` (visible entity declarations, with a placeholder `meta.common.json`), `.metaobjects/` (hidden tool state: `config.json`, `package.meta.json`, `AGENTS.md`, `CLAUDE.md`, `.gitignore`, `.gen-state/`), and `metaobjects.config.ts` at the repo root.
89
+ Scaffolds `metaobjects/` (visible entity declarations, with a placeholder `meta.common.json`), `.metaobjects/` (hidden tool state: `config.json`, `package.meta.json`, `AGENTS.md`, `CLAUDE.md`, `.gitignore`, `.gen-state/`), the **owned codegen generators** at `codegen/generators/{entity,queries,routes,barrel}.ts`, and `metaobjects.config.ts` at the repo root.
90
+
91
+ The generators are copied from the codegen reference templates and are **yours to edit** (ADR-0034 scaffold-and-own); the scaffolded `metaobjects.config.ts` imports them locally, and `meta gen` runs from those local copies — not from the package. Each generator file is written only if absent, so re-running with `--force` never clobbers a hand-edited generator.
90
92
 
91
93
  Flags:
92
94
  - `--force` — overwrite scaffold files (memory records preserved)
@@ -159,11 +161,14 @@ Flags:
159
161
 
160
162
  Two config files, by design:
161
163
 
162
- **`metaobjects.config.ts`** (at repo root) — generator wiring and codegen knobs, type-checked TS:
164
+ **`metaobjects.config.ts`** (at repo root) — generator wiring and codegen knobs, type-checked TS. The generators are imported from the **owned local copies** that `meta init` scaffolded into `codegen/generators/` (ADR-0034 scaffold-and-own), not from the package:
163
165
 
164
166
  ```ts
165
167
  import { defineConfig } from "@metaobjectsdev/cli";
166
- import { entityFile, queriesFile, routesFile, barrel } from "@metaobjectsdev/codegen-ts/generators";
168
+ import { entityFile } from "./codegen/generators/entity";
169
+ import { queriesFile } from "./codegen/generators/queries";
170
+ import { routesFile } from "./codegen/generators/routes";
171
+ import { barrel } from "./codegen/generators/barrel";
167
172
 
168
173
  export default defineConfig({
169
174
  outDir: "packages/database/src/generated",
@@ -175,6 +180,10 @@ export default defineConfig({
175
180
  });
176
181
  ```
177
182
 
183
+ > Importing these generator factories from `@metaobjectsdev/codegen-ts/generators`
184
+ > still works but is **deprecated** (ADR-0034) — own a local copy instead. The
185
+ > package export will be removed in a future major.
186
+
178
187
  ### Multiple output targets
179
188
 
180
189
  By default every generator writes to `outDir`. To route each generator's output
@@ -183,7 +192,11 @@ concern — declare named **targets** and point generators at them with `target`
183
192
 
184
193
  ```ts
185
194
  import { defineConfig } from "@metaobjectsdev/cli";
186
- import { entityFile, queriesFile, routesFile, barrel } from "@metaobjectsdev/codegen-ts/generators";
195
+ // Owned generators scaffolded by `meta init` (ADR-0034 scaffold-and-own).
196
+ import { entityFile } from "./codegen/generators/entity";
197
+ import { queriesFile } from "./codegen/generators/queries";
198
+ import { routesFile } from "./codegen/generators/routes";
199
+ import { barrel } from "./codegen/generators/barrel";
187
200
  import { formFile } from "@metaobjectsdev/codegen-ts-react";
188
201
  import { tanstackQuery, tanstackGrid } from "@metaobjectsdev/codegen-ts-tanstack";
189
202
 
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAuEA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4KAA4K;IAC5K,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsED,wBAAsB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAkIjE;AAoBD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAoBD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C9E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AA+FA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4KAA4K;IAC5K,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAgID,wBAAsB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAuIjE;AAoBD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAoBD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C9E"}
@@ -9,23 +9,45 @@ import { parseInitArgs } from "../lib/args.js";
9
9
  import { log } from "../lib/log.js";
10
10
  import { cliVersion } from "../lib/version.js";
11
11
  import { findWranglerConfig, parseWranglerConfig } from "@metaobjectsdev/migrate-ts";
12
+ import { readReferenceTemplate, REFERENCE_GENERATOR_NAMES } from "@metaobjectsdev/codegen-ts";
13
+ // ADR-0034 scaffold-and-own — `meta init` copies the codegen reference templates into
14
+ // the consumer's repo so they OWN them; metaobjects.config.ts imports them locally.
15
+ const OWNED_GENERATORS_DIR = "codegen/generators";
12
16
  const META_COMMON_JSON = JSON.stringify({
13
17
  metadata: {
14
18
  package: "",
15
19
  children: [],
16
20
  },
17
21
  }, null, 2) + "\n";
22
+ // Issue #75 — a multi-target codegen config can route a target's outDir under
23
+ // `.metaobjects/<targetName>/src/generated/`. That output is the regenerable
24
+ // shadow (the canonical output lives at the configured outDir; re-running
25
+ // `meta gen` recreates the shadow), so it must NOT be committed by default. We
26
+ // ignore the per-target generated shadow with a narrow `*/src/generated/`
27
+ // pattern, then explicitly re-include `migrations/` and `config.json` so the
28
+ // tracked artifacts are never swept up even if a future broad pattern were added.
18
29
  const METAOBJECTS_GITIGNORE_BODY = `.gen-state/
30
+
31
+ # Per-target codegen output routed under .metaobjects/<target>/ is regenerable
32
+ # (re-run \`meta gen\`); never commit it. The canonical output is your configured
33
+ # outDir, not this shadow.
34
+ */src/generated/
35
+
36
+ # These ARE meant to be tracked — keep them even if a broad pattern matches.
37
+ !migrations/
38
+ !config.json
39
+ !package.meta.json
19
40
  `;
20
41
  function buildMetaobjectsConfigBody(dialect = "sqlite") {
21
42
  return `import { defineConfig } from "@metaobjectsdev/cli";
22
- import {
23
- entityFile,
24
- queriesFile,
25
- routesFile,
26
- // formFile, // opt-in: emit React form components
27
- barrel,
28
- } from "@metaobjectsdev/codegen-ts/generators";
43
+ // Owned codegen generators (ADR-0034 scaffold-and-own). \`meta init\` copied these
44
+ // reference templates into ./codegen/generators/ — they are YOURS to edit, and
45
+ // \`meta gen\` runs from these local copies, not from the package. Read each file's
46
+ // header doc-block for what it emits and how to customize it.
47
+ import { entityFile } from "./codegen/generators/entity";
48
+ import { queriesFile } from "./codegen/generators/queries";
49
+ import { routesFile } from "./codegen/generators/routes";
50
+ import { barrel } from "./codegen/generators/barrel";
29
51
 
30
52
  export default defineConfig({
31
53
  outDir: "src/generated",
@@ -49,6 +71,7 @@ export default defineConfig({
49
71
  }
50
72
  const NEXT_STEPS = `
51
73
  Initialized metaobjects/ + .metaobjects/ + metaobjects.config.ts
74
+ Codegen generators copied to codegen/generators/ — they're YOURS to edit (ADR-0034 scaffold-and-own).
52
75
 
53
76
  Next steps (when later sub-projects ship):
54
77
  meta ingest # propose entities from your existing TS code
@@ -68,7 +91,44 @@ async function readManifest(cwd) {
68
91
  return undefined;
69
92
  }
70
93
  }
94
+ /**
95
+ * Walk up from `start` looking for a `.git` directory; return the repo root, or
96
+ * undefined when `start` is not inside a git working tree. (`.git` can be a file
97
+ * in worktrees/submodules — accept either a dir or a file.)
98
+ */
99
+ function findGitRoot(start) {
100
+ let dir = start;
101
+ // eslint-disable-next-line no-constant-condition
102
+ while (true) {
103
+ if (existsSyncWrap(join(dir, ".git")))
104
+ return dir;
105
+ const parent = dirname(dir);
106
+ if (parent === dir)
107
+ return undefined; // reached filesystem root
108
+ dir = parent;
109
+ }
110
+ }
111
+ /**
112
+ * Issue #77 — Claude Code discovers `.claude/skills/` only from cwd + ANCESTOR
113
+ * dirs + the user level; it never walks DOWN into subdirs. So scaffolding the
114
+ * agent-context into a monorepo subdir means a root-launched session won't load
115
+ * the skills (the common case). When the init dir is inside a git repo whose
116
+ * root is an ANCESTOR (i.e. a subdir init), warn and point the user at the repo
117
+ * root. The metadata/config/migrations correctly stay in the subdir regardless.
118
+ */
119
+ function warnIfMonorepoSubdir(opts, result) {
120
+ if (opts.noSkills)
121
+ return; // no skills written → nothing to warn about
122
+ const gitRoot = findGitRoot(opts.cwd);
123
+ if (gitRoot === undefined || gitRoot === opts.cwd)
124
+ return; // repo root or non-git → fine
125
+ const lang = opts.servers && opts.servers.length > 0 ? opts.servers[0] : "<lang>";
126
+ result.warnings.push("agent-context skills scaffolded into a monorepo subdir won't be discovered from a " +
127
+ "root-launched session (Claude Code only walks cwd + ancestors). Scaffold the context " +
128
+ `at the repo root instead: cd <repo-root> && meta init --docs-only --server ${lang}`);
129
+ }
71
130
  async function writeAgentContext(opts, result) {
131
+ warnIfMonorepoSubdir(opts, result);
72
132
  const stack = resolveStack(opts.cwd, { servers: opts.servers ?? [], clients: opts.clients ?? [] });
73
133
  let assembled = assemble({ contentRoot: resolveAgentContextRoot(), stack });
74
134
  if (opts.noSkills)
@@ -127,6 +187,26 @@ async function wireRootMemory(cwd, result) {
127
187
  result.warnings.push(`wired ${ROOT_IMPORT_LINE} into ${path.endsWith("AGENTS.md") ? "AGENTS.md" : "CLAUDE.md"} so the MetaObjects context loads`);
128
188
  }
129
189
  }
190
+ /**
191
+ * ADR-0034 — copy the codegen reference templates into the consumer's repo at
192
+ * `codegen/generators/<name>.ts` so they own them. Each file is written only if absent,
193
+ * so a re-run with --force never clobbers a hand-edited generator. The scaffolded
194
+ * metaobjects.config.ts imports these local copies (not the package `/generators` export).
195
+ */
196
+ async function writeOwnedGenerators(opts, result) {
197
+ const dir = join(opts.cwd, OWNED_GENERATORS_DIR);
198
+ await mkdir(dir, { recursive: true });
199
+ for (const name of REFERENCE_GENERATOR_NAMES) {
200
+ const rel = `${OWNED_GENERATORS_DIR}/${name}.ts`;
201
+ const abs = join(dir, `${name}.ts`);
202
+ if (await fileExists(abs)) {
203
+ result.preserved.push(rel);
204
+ continue;
205
+ }
206
+ await writeFile(abs, readReferenceTemplate(name), "utf8");
207
+ result.created.push(rel);
208
+ }
209
+ }
130
210
  export async function init(opts) {
131
211
  const result = { created: [], preserved: [], warnings: [] };
132
212
  const agentDir = join(opts.cwd, DEFAULT_METAOBJECTS_DIR);
@@ -157,6 +237,8 @@ export async function init(opts) {
157
237
  result.created.push(d);
158
238
  result.created.push("metaobjects/meta.common.json", ".metaobjects/config.json", ".metaobjects/.gitignore", `.metaobjects/${PACKAGE_MANIFEST_FILE}`);
159
239
  result.created.push(".metaobjects/AGENTS.md", ".metaobjects/CLAUDE.md", ".claude/skills/metaobjects-*", AGENT_CONTEXT_MANIFEST_PATH);
240
+ for (const name of REFERENCE_GENERATOR_NAMES)
241
+ result.created.push(`${OWNED_GENERATORS_DIR}/${name}.ts`);
160
242
  result.created.push("metaobjects.config.ts");
161
243
  return result;
162
244
  }
@@ -227,6 +309,9 @@ export async function init(opts) {
227
309
  result.preserved.push(`.metaobjects/${PACKAGE_MANIFEST_FILE}`);
228
310
  }
229
311
  await writeAgentContext(opts, result);
312
+ // ADR-0034 — scaffold the OWNED codegen generators that metaobjects.config.ts imports
313
+ // locally. Done before the config so the import targets exist on first `meta gen`.
314
+ await writeOwnedGenerators(opts, result);
230
315
  // Scaffold metaobjects.config.ts at the project root. Never overwrite if it exists.
231
316
  const forgeConfigPath = join(opts.cwd, "metaobjects.config.ts");
232
317
  if (!(await fileExists(forgeConfigPath))) {
@@ -312,6 +397,10 @@ export async function initCommand(args, cwd) {
312
397
  }
313
398
  else {
314
399
  log.info(nextStepsBlock());
400
+ // Surface any scaffold warnings (e.g. the #77 monorepo-subdir agent-context
401
+ // discovery warning) — these are otherwise dropped on the normal init path.
402
+ for (const w of result.warnings)
403
+ log.warn(w);
315
404
  }
316
405
  }
317
406
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACrJ,OAAO,EACL,QAAQ,EAAE,uBAAuB,EAAE,YAAY,EAC/C,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAErF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CACrC;IACE,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAe;KAC1B;CACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CAAC;AAET,MAAM,0BAA0B,GAAG;CAClC,CAAC;AAEF,SAAS,0BAA0B,CAAC,UAAwC,QAAQ;IAClF,OAAO;;;;;;;;;;;;;gBAaO,OAAO;;;;;;;;;;;;;;CActB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,GAAG;;;;;;;;;CASlB,CAAC;AAuBF,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAa,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AAC/F,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAiB,EAAE,MAAkB;IACpE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;IACnG,IAAI,SAAS,GAAG,QAAQ,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,IAAI,IAAI,CAAC,QAAQ;QAAE,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE9F,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC5B,KAAK,EAAE,SAAS,EAAE,KAAK;QACvB,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,CAAC;QACD,WAAW,EAAE,UAAU,EAAE;KAC1B,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,sDAAsD,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IAChE,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAExF,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,8DAA8D,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ;QAAE,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACnD,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,MAAkB;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAElD,kGAAkG;IAClG,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,MAAM,SAAS,CAAC,UAAU,EAAE,uBAAuB,gBAAgB,IAAI,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,kFAAkF;IAClF,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAAU,EAAE,CAAC;QAC/F,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,SAAS;QAC9C,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,gBAAgB,IAAI,EAAE,MAAM,CAAC,CAAC;QACtF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,gBAAgB,SAAS,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,mCAAmC,CAAC,CAAC;IACpJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAiB;IAC1C,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,cAAc,IAAI,iBAAiB,CAAC;IAEnD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,qGAAqG;QACrG,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9C,8EAA8E;QAC9E,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,qKAAqK,CACtK,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG;QACX,oBAAoB;QACpB,uBAAuB;QACvB,GAAG,uBAAuB,aAAa;KACxC,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,IAAI,CACjB,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,qBAAqB,EAAE,CACxC,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,2BAA2B,CAAC,CAAC;QACrI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,6DAA6D;IAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAChE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,SAAS,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACxD,CAAC;IAED,2BAA2B;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;QACzB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnF,CAAC,CAAC,cAAc,CAAC;IACnB,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACjD,IAAI,YAAgC,CAAC;QACrC,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YACpE,oFAAoF;YACpF,oFAAoF;YACpF,kFAAkF;YAClF,gFAAgF;YAChF,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;gBACnG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,SAAS,CACb,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAC3C,MAAM,CACP,CAAC;YACF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,CACb,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAC3C,MAAM,CACP,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAClD,CAAC;IAED,0BAA0B;IAC1B,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAClF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAE/C,4EAA4E;IAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,EAAc;SACxB,CAAC;QACF,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;QACpF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,qBAAqB,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,qBAAqB,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEtC,oFAAoF;IACpF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAChE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,CAAC,eAAe,EAAE,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAChG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,KAAK,GAA4B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC;YACxD,CAAC;YACD,0EAA0E;YAC1E,uEAAuE;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,CAAS;IAChC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc,EAAE,GAAW;IAC3D,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;YACxB,GAAG;YACH,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,GAAG,CAAC,IAAI,CAAC,6CAA6C,MAAM,CAAC,OAAO,CAAC,MAAM,iEAAiE,CAAC,CAAC;gBAC9I,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;oBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;YAC9G,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/cli",
3
- "version": "0.12.5",
3
+ "version": "0.13.0-rc.1",
4
4
  "description": "CLI for MetaObjects: scaffold, codegen, migrate, and drift-detection commands.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -49,14 +49,14 @@
49
49
  ],
50
50
  "dependencies": {
51
51
  "@libsql/kysely-libsql": "^0.4.0",
52
- "@metaobjectsdev/codegen-ts": "0.12.5",
53
- "@metaobjectsdev/codegen-ts-react": "0.12.5",
54
- "@metaobjectsdev/codegen-ts-tanstack": "0.12.5",
55
- "@metaobjectsdev/metadata": "0.12.5",
56
- "@metaobjectsdev/migrate-ts": "0.12.5",
57
- "@metaobjectsdev/render": "0.12.5",
58
- "@metaobjectsdev/runtime-ts": "0.12.5",
59
- "@metaobjectsdev/sdk": "0.12.5",
52
+ "@metaobjectsdev/codegen-ts": "0.13.0-rc.1",
53
+ "@metaobjectsdev/codegen-ts-react": "0.13.0-rc.1",
54
+ "@metaobjectsdev/codegen-ts-tanstack": "0.13.0-rc.1",
55
+ "@metaobjectsdev/metadata": "0.13.0-rc.1",
56
+ "@metaobjectsdev/migrate-ts": "0.13.0-rc.1",
57
+ "@metaobjectsdev/render": "0.13.0-rc.1",
58
+ "@metaobjectsdev/runtime-ts": "0.13.0-rc.1",
59
+ "@metaobjectsdev/sdk": "0.13.0-rc.1",
60
60
  "@toon-format/toon": "^2.3.0",
61
61
  "jiti": "^2.4.0"
62
62
  },
@@ -12,6 +12,11 @@ import { parseInitArgs } from "../lib/args.js";
12
12
  import { log } from "../lib/log.js";
13
13
  import { cliVersion } from "../lib/version.js";
14
14
  import { findWranglerConfig, parseWranglerConfig } from "@metaobjectsdev/migrate-ts";
15
+ import { readReferenceTemplate, REFERENCE_GENERATOR_NAMES } from "@metaobjectsdev/codegen-ts";
16
+
17
+ // ADR-0034 scaffold-and-own — `meta init` copies the codegen reference templates into
18
+ // the consumer's repo so they OWN them; metaobjects.config.ts imports them locally.
19
+ const OWNED_GENERATORS_DIR = "codegen/generators";
15
20
 
16
21
  const META_COMMON_JSON = JSON.stringify(
17
22
  {
@@ -24,18 +29,36 @@ const META_COMMON_JSON = JSON.stringify(
24
29
  2,
25
30
  ) + "\n";
26
31
 
32
+ // Issue #75 — a multi-target codegen config can route a target's outDir under
33
+ // `.metaobjects/<targetName>/src/generated/`. That output is the regenerable
34
+ // shadow (the canonical output lives at the configured outDir; re-running
35
+ // `meta gen` recreates the shadow), so it must NOT be committed by default. We
36
+ // ignore the per-target generated shadow with a narrow `*/src/generated/`
37
+ // pattern, then explicitly re-include `migrations/` and `config.json` so the
38
+ // tracked artifacts are never swept up even if a future broad pattern were added.
27
39
  const METAOBJECTS_GITIGNORE_BODY = `.gen-state/
40
+
41
+ # Per-target codegen output routed under .metaobjects/<target>/ is regenerable
42
+ # (re-run \`meta gen\`); never commit it. The canonical output is your configured
43
+ # outDir, not this shadow.
44
+ */src/generated/
45
+
46
+ # These ARE meant to be tracked — keep them even if a broad pattern matches.
47
+ !migrations/
48
+ !config.json
49
+ !package.meta.json
28
50
  `;
29
51
 
30
52
  function buildMetaobjectsConfigBody(dialect: "sqlite" | "postgres" | "d1" = "sqlite"): string {
31
53
  return `import { defineConfig } from "@metaobjectsdev/cli";
32
- import {
33
- entityFile,
34
- queriesFile,
35
- routesFile,
36
- // formFile, // opt-in: emit React form components
37
- barrel,
38
- } from "@metaobjectsdev/codegen-ts/generators";
54
+ // Owned codegen generators (ADR-0034 scaffold-and-own). \`meta init\` copied these
55
+ // reference templates into ./codegen/generators/ — they are YOURS to edit, and
56
+ // \`meta gen\` runs from these local copies, not from the package. Read each file's
57
+ // header doc-block for what it emits and how to customize it.
58
+ import { entityFile } from "./codegen/generators/entity";
59
+ import { queriesFile } from "./codegen/generators/queries";
60
+ import { routesFile } from "./codegen/generators/routes";
61
+ import { barrel } from "./codegen/generators/barrel";
39
62
 
40
63
  export default defineConfig({
41
64
  outDir: "src/generated",
@@ -60,6 +83,7 @@ export default defineConfig({
60
83
 
61
84
  const NEXT_STEPS = `
62
85
  Initialized metaobjects/ + .metaobjects/ + metaobjects.config.ts
86
+ Codegen generators copied to codegen/generators/ — they're YOURS to edit (ADR-0034 scaffold-and-own).
63
87
 
64
88
  Next steps (when later sub-projects ship):
65
89
  meta ingest # propose entities from your existing TS code
@@ -96,7 +120,44 @@ async function readManifest(cwd: string): Promise<Manifest | undefined> {
96
120
  try { return JSON.parse(await readFile(p, "utf8")) as Manifest; } catch { return undefined; }
97
121
  }
98
122
 
123
+ /**
124
+ * Walk up from `start` looking for a `.git` directory; return the repo root, or
125
+ * undefined when `start` is not inside a git working tree. (`.git` can be a file
126
+ * in worktrees/submodules — accept either a dir or a file.)
127
+ */
128
+ function findGitRoot(start: string): string | undefined {
129
+ let dir = start;
130
+ // eslint-disable-next-line no-constant-condition
131
+ while (true) {
132
+ if (existsSyncWrap(join(dir, ".git"))) return dir;
133
+ const parent = dirname(dir);
134
+ if (parent === dir) return undefined; // reached filesystem root
135
+ dir = parent;
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Issue #77 — Claude Code discovers `.claude/skills/` only from cwd + ANCESTOR
141
+ * dirs + the user level; it never walks DOWN into subdirs. So scaffolding the
142
+ * agent-context into a monorepo subdir means a root-launched session won't load
143
+ * the skills (the common case). When the init dir is inside a git repo whose
144
+ * root is an ANCESTOR (i.e. a subdir init), warn and point the user at the repo
145
+ * root. The metadata/config/migrations correctly stay in the subdir regardless.
146
+ */
147
+ function warnIfMonorepoSubdir(opts: InitOptions, result: InitResult): void {
148
+ if (opts.noSkills) return; // no skills written → nothing to warn about
149
+ const gitRoot = findGitRoot(opts.cwd);
150
+ if (gitRoot === undefined || gitRoot === opts.cwd) return; // repo root or non-git → fine
151
+ const lang = opts.servers && opts.servers.length > 0 ? opts.servers[0]! : "<lang>";
152
+ result.warnings.push(
153
+ "agent-context skills scaffolded into a monorepo subdir won't be discovered from a " +
154
+ "root-launched session (Claude Code only walks cwd + ancestors). Scaffold the context " +
155
+ `at the repo root instead: cd <repo-root> && meta init --docs-only --server ${lang}`,
156
+ );
157
+ }
158
+
99
159
  async function writeAgentContext(opts: InitOptions, result: InitResult): Promise<void> {
160
+ warnIfMonorepoSubdir(opts, result);
100
161
  const stack = resolveStack(opts.cwd, { servers: opts.servers ?? [], clients: opts.clients ?? [] });
101
162
  let assembled = assemble({ contentRoot: resolveAgentContextRoot(), stack });
102
163
  if (opts.noSkills) assembled = assembled.filter((f) => !f.path.startsWith(".claude/skills/"));
@@ -158,6 +219,27 @@ async function wireRootMemory(cwd: string, result: InitResult): Promise<void> {
158
219
  }
159
220
  }
160
221
 
222
+ /**
223
+ * ADR-0034 — copy the codegen reference templates into the consumer's repo at
224
+ * `codegen/generators/<name>.ts` so they own them. Each file is written only if absent,
225
+ * so a re-run with --force never clobbers a hand-edited generator. The scaffolded
226
+ * metaobjects.config.ts imports these local copies (not the package `/generators` export).
227
+ */
228
+ async function writeOwnedGenerators(opts: InitOptions, result: InitResult): Promise<void> {
229
+ const dir = join(opts.cwd, OWNED_GENERATORS_DIR);
230
+ await mkdir(dir, { recursive: true });
231
+ for (const name of REFERENCE_GENERATOR_NAMES) {
232
+ const rel = `${OWNED_GENERATORS_DIR}/${name}.ts`;
233
+ const abs = join(dir, `${name}.ts`);
234
+ if (await fileExists(abs)) {
235
+ result.preserved.push(rel);
236
+ continue;
237
+ }
238
+ await writeFile(abs, readReferenceTemplate(name), "utf8");
239
+ result.created.push(rel);
240
+ }
241
+ }
242
+
161
243
  export async function init(opts: InitOptions): Promise<InitResult> {
162
244
  const result: InitResult = { created: [], preserved: [], warnings: [] };
163
245
  const agentDir = join(opts.cwd, DEFAULT_METAOBJECTS_DIR);
@@ -200,6 +282,7 @@ export async function init(opts: InitOptions): Promise<InitResult> {
200
282
  `.metaobjects/${PACKAGE_MANIFEST_FILE}`,
201
283
  );
202
284
  result.created.push(".metaobjects/AGENTS.md", ".metaobjects/CLAUDE.md", ".claude/skills/metaobjects-*", AGENT_CONTEXT_MANIFEST_PATH);
285
+ for (const name of REFERENCE_GENERATOR_NAMES) result.created.push(`${OWNED_GENERATORS_DIR}/${name}.ts`);
203
286
  result.created.push("metaobjects.config.ts");
204
287
  return result;
205
288
  }
@@ -280,6 +363,10 @@ export async function init(opts: InitOptions): Promise<InitResult> {
280
363
 
281
364
  await writeAgentContext(opts, result);
282
365
 
366
+ // ADR-0034 — scaffold the OWNED codegen generators that metaobjects.config.ts imports
367
+ // locally. Done before the config so the import targets exist on first `meta gen`.
368
+ await writeOwnedGenerators(opts, result);
369
+
283
370
  // Scaffold metaobjects.config.ts at the project root. Never overwrite if it exists.
284
371
  const forgeConfigPath = join(opts.cwd, "metaobjects.config.ts");
285
372
  if (!(await fileExists(forgeConfigPath))) {
@@ -367,6 +454,9 @@ export async function initCommand(args: string[], cwd: string): Promise<number>
367
454
  log.info("Re-run --docs-only --refresh-docs to update; --no-wire-root to skip the root CLAUDE.md @import.");
368
455
  } else {
369
456
  log.info(nextStepsBlock());
457
+ // Surface any scaffold warnings (e.g. the #77 monorepo-subdir agent-context
458
+ // discovery warning) — these are otherwise dropped on the normal init path.
459
+ for (const w of result.warnings) log.warn(w);
370
460
  }
371
461
  }
372
462
  return 0;