@metaobjectsdev/sdk 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,106 @@
1
+ # Java port — audit reference
2
+
3
+ The Java port targets Spring Boot consumers on Maven. Codegen runs as a build-time
4
+ Maven plugin goal (`mvn metaobjects:generate`). Schema migration and live-DB drift
5
+ are **Node-`meta`-only** (ADR-0015) — the Maven plugin has no migrate goal.
6
+ The runtime persistence tier is **OMDB** (`metaobjects-omdb`,
7
+ `com.metaobjects.manager.db.ObjectManagerDB`).
8
+
9
+ ---
10
+
11
+ ## Finding generated files
12
+
13
+ Generated sources land under:
14
+
15
+ ```
16
+ target/generated-sources/java/
17
+ ```
18
+
19
+ Each generated file carries an `@generated` guard comment (Java `/** @generated */`
20
+ or a line comment). The Maven `generate-sources` lifecycle phase runs codegen before
21
+ `compile` — these files are never committed; confirm the plugin is wired and the
22
+ goal bound to `generate-sources` in `pom.xml`.
23
+
24
+ ---
25
+
26
+ ## Run codegen + verify
27
+
28
+ ```bash
29
+ mvn metaobjects:generate # codegen goal directly
30
+ mvn compile # also runs it (bound to generate-sources)
31
+ mvn metaobjects:verify -Dmeta.verify.mode=codegen # regen to temp, diff vs committed output
32
+ mvn metaobjects:verify -Dmeta.verify.mode=templates # {{field}} refs vs payload VO
33
+ ```
34
+
35
+ Schema migration + live-DB drift run through the **Node `meta` CLI** regardless of
36
+ server language — see the migration reference. `mvn metaobjects:verify -Dmeta.verify.mode=db`
37
+ is rejected (exit 2).
38
+
39
+ The generator list and the `<sourceDir>` are both declared in `pom.xml` under the
40
+ plugin `<configuration>` — that is the source of truth for which generators run.
41
+
42
+ ---
43
+
44
+ ## Drift signatures (what to grep for)
45
+
46
+ | Signature | What it means |
47
+ |---|---|
48
+ | Hand-written `record` with same fields as a modeled entity | `SpringDtoGenerator` should own this (`<Entity>Dto.java`) |
49
+ | Hand-written `@RestController` on a CRUD entity | `SpringControllerGenerator` should own this; trust the `pom.xml` `<generators>` configuration, not stale docs |
50
+ | `interface <Entity>Repository` with no `@generated` comment | `SpringRepositoryGenerator` emits the stub; compare field by field |
51
+ | `// keep in sync with` / `// mirrors the` | second-source-of-truth comment — always a finding |
52
+ | `ObjectMapper.readValue(` outside a `*Parser.java` file | check if a `template.output` node exists — output-parser codegen ships in Java |
53
+ | `LIMIT ?` / `OFFSET ?` assembled by hand | generated CRUD routes handle pagination; OMDB `getObjects` accepts `QueryOptions` |
54
+
55
+ ---
56
+
57
+ ## Owned generators
58
+
59
+ Java does not scaffold-and-own generators — they are provided by
60
+ `metaobjects-codegen-spring` and wired by FQ class name in `pom.xml`. There is no
61
+ analog to the TS `codegen/generators/*.ts` pattern here.
62
+
63
+ To re-scaffold the agent-context into a Java project, use the Node `meta` CLI (the
64
+ single agent-docs assembler per ADR-0033):
65
+
66
+ ```bash
67
+ npx meta agent-docs --server java [--out <dir>]
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Version-skew check
73
+
74
+ The resolved Maven artifact versions are what actually ran — check the effective POM
75
+ or the resolved dependency tree, not the declared `${metaobjects.version}` property:
76
+
77
+ ```bash
78
+ mvn dependency:list -Dincludes="com.metaobjects:*"
79
+ ```
80
+
81
+ All `com.metaobjects:*` artifacts publish in lockstep on the Java `7.x` Maven
82
+ line. A mixed resolved version across `metaobjects-metadata`, `metaobjects-omdb`,
83
+ `metaobjects-codegen-spring`, and `metaobjects-maven-plugin` is an intra-port skew
84
+ finding. The Java `7.x` line vs TS/C#/Python `0.x` is intentional cross-port
85
+ versioning — **do not flag it** (only intra-port skew matters).
86
+
87
+ ---
88
+
89
+ ## Calibration gaps (do NOT flag these)
90
+
91
+ - **Hand-written output parser is expected.** The `SpringOutputParserGenerator` emits
92
+ a typed `<Name>Parser` class, but the Jackson `readValue` one-liner inside it is
93
+ hand-written by the generator — it is NOT a defect to see Jackson deserialization in
94
+ generated `*Parser.java` files. **Do not flag Jackson `readValue` calls in
95
+ `*Parser.java` files.** Only flag hand-rolled parsers in *non*-generated files where
96
+ a `template.output` node exists.
97
+ - **Filter-operator route codegen deferred.** The generated `<Entity>Controller.java`
98
+ supports `?sort`, `?limit`/`?offset`, and `?withCount=1` envelope but defers
99
+ filter-operator validation (`?filter[field][op]=value`). Do NOT flag hand-added
100
+ Java filter handling as an adopter defect.
101
+ - **Repository interface is a hand-implemented stub.** `SpringRepositoryGenerator`
102
+ emits `<Entity>Repository.java` as a stub `interface`; the consumer hand-writes the
103
+ implementation against OMDB (or any persistence layer). Hand-written repository
104
+ implementations that match the generated interface exactly are expected.
105
+ - **No Java migrate goal.** Schema migration is Node-`meta`-owned for every port
106
+ (ADR-0015). The Maven plugin has no migrate goal; `meta migrate` is correct.
@@ -0,0 +1,107 @@
1
+ # Kotlin port — audit reference
2
+
3
+ The Kotlin port is a **codegen tier built on top of the Java port** — the loader,
4
+ render engine, and Maven plugin are all Java; `metaobjects-codegen-kotlin` emits
5
+ idiomatic Kotlin (KotlinPoet: `@Serializable data class`, Exposed `Table` objects,
6
+ Spring `@RestController`). Codegen runs as the same Maven plugin goal the Java port
7
+ uses (`mvn metaobjects:generate`). Schema migration and live-DB drift are
8
+ **Node-`meta`-only** (ADR-0015). The runtime persistence tier is **JetBrains Exposed**
9
+ (hand-written transaction bodies around the generated table objects), or optionally
10
+ **OMDB** (the Java `ObjectManagerDB`, callable from Kotlin).
11
+
12
+ ---
13
+
14
+ ## Finding generated files
15
+
16
+ Generated sources land under:
17
+
18
+ ```
19
+ target/generated-sources/kotlin/
20
+ ```
21
+
22
+ Each generated file carries an `@generated` guard comment. These files are not
23
+ committed — confirm the plugin is wired and the goal bound to `generate-sources` in
24
+ `pom.xml`. Per-generator output: `<Entity>.kt` (data class), `<Entity>Table.kt`
25
+ (Exposed Table), `<Entity>Controller.kt` (Spring controller).
26
+
27
+ ---
28
+
29
+ ## Run codegen + verify
30
+
31
+ ```bash
32
+ mvn metaobjects:generate # codegen goal directly
33
+ mvn compile # also runs it (bound to generate-sources)
34
+ mvn metaobjects:verify -Dmeta.verify.mode=codegen # regen to temp, diff vs committed output
35
+ mvn metaobjects:verify -Dmeta.verify.mode=templates # {{field}} refs vs payload VO
36
+ ```
37
+
38
+ Kotlin generators run through the **same Maven plugin goal** as Java generators —
39
+ both are SPI-discovered by the `metaobjects-maven-plugin`. Schema migration + live-DB
40
+ drift run through the **Node `meta` CLI** regardless of server language — see the
41
+ migration reference.
42
+
43
+ The active generator list is declared in `pom.xml` under the plugin `<configuration>`
44
+ `<generators>` block — that is the source of truth for which generators run.
45
+
46
+ ---
47
+
48
+ ## Drift signatures (what to grep for)
49
+
50
+ | Signature | What it means |
51
+ |---|---|
52
+ | Hand-written `data class` with same fields as a modeled entity | `KotlinEntityGenerator` should own this (`<Entity>.kt`) |
53
+ | Hand-written `object ... : Table(` | `KotlinExposedTableGenerator` should own this (`<Entity>Table.kt`) |
54
+ | Hand-written `@RestController` on a CRUD entity | `KotlinSpringControllerGenerator` should own this |
55
+ | `@Serializable` on a payload class not in generated sources | `KotlinPayloadGenerator` should own this; check `pom.xml` generator list |
56
+ | `// keep in sync with` / `// mirrors the` | second-source-of-truth comment — always a finding |
57
+ | `transaction(db) {` bodies that duplicate every CRUD operation | hand-written Exposed transactions are expected (see Calibration), but if they duplicate generated-CRUD logic exactly, audit further |
58
+
59
+ ---
60
+
61
+ ## Owned generators
62
+
63
+ Kotlin does not scaffold-and-own generators — they are provided by
64
+ `metaobjects-codegen-kotlin` and wired by FQ class name in `pom.xml`. There is no
65
+ analog to the TS `codegen/generators/*.ts` pattern here.
66
+
67
+ To re-scaffold the agent-context into a Kotlin project, use the Node `meta` CLI (the
68
+ single agent-docs assembler per ADR-0033):
69
+
70
+ ```bash
71
+ npx meta agent-docs --server kotlin [--out <dir>]
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Version-skew check
77
+
78
+ The resolved Maven artifact versions are what actually ran — check the effective POM
79
+ or the resolved dependency tree:
80
+
81
+ ```bash
82
+ mvn dependency:list -Dincludes="com.metaobjects:*"
83
+ ```
84
+
85
+ All `com.metaobjects:*` artifacts publish in lockstep on the `7.x` Maven line. A
86
+ mixed resolved version across `metaobjects-metadata`, `metaobjects-metadata-ktx`,
87
+ `metaobjects-codegen-kotlin`, and `metaobjects-maven-plugin` is an intra-port skew
88
+ finding. The Java/Kotlin `7.x` line vs TS/C#/Python `0.x` is intentional
89
+ cross-port versioning — **do not flag it** (only intra-port skew matters).
90
+
91
+ ---
92
+
93
+ ## Calibration gaps (do NOT flag these)
94
+
95
+ - **Exposed transaction bodies are hand-written — expected.** `KotlinExposedTableGenerator`
96
+ emits the `Table` column definitions; the consumer hand-writes the (typically trivial)
97
+ `transaction(db) { ... }` bodies that query and mutate those tables. This is the expected
98
+ Kotlin runtime pattern — do NOT flag hand-written Exposed transactions as a defect.
99
+ - **Hand-written output parser is expected.** `KotlinOutputParserGenerator` emits a typed
100
+ parser class, but the deserialization body inside it uses a hand-written kotlinx.serialization
101
+ call — do NOT flag this. Only flag hand-rolled parsers in non-generated files where a
102
+ `template.output` node exists.
103
+ - **Filter-operator route codegen deferred.** The generated `<Entity>Controller.kt` supports
104
+ `?sort`, `?limit`/`?offset`, and `?withCount=1` envelope but defers filter-operator
105
+ validation. Do NOT flag hand-added Kotlin filter handling as an adopter defect.
106
+ - **No JVM migrate goal.** Schema migration is Node-`meta`-owned for every port
107
+ (ADR-0015). The Maven plugin has no migrate goal; `meta migrate` is correct.
@@ -0,0 +1,109 @@
1
+ # Python port — audit reference
2
+
3
+ The Python port targets FastAPI consumers. Codegen runs through the **`metaobjects`
4
+ console-script** (`pip install metaobjects`). Schema migration and live-DB drift
5
+ are **Node-`meta`-only** (ADR-0015) — the `metaobjects` console-script has no
6
+ `migrate` subcommand and `metaobjects verify --db` is rejected with exit 2. The
7
+ runtime persistence tier is the `ObjectManager` (metadata-driven CRUD over
8
+ SQLAlchemy Core or asyncpg), or a hand-written repository implementation.
9
+
10
+ ---
11
+
12
+ ## Finding generated files
13
+
14
+ Generated files land under the `--out` directory passed to `metaobjects gen` and
15
+ carry an `@generated` guard comment:
16
+
17
+ ```python
18
+ # @generated by metaobjects
19
+ ```
20
+
21
+ The runner overwrites only files bearing this header. Common layout: one Pydantic
22
+ model file per entity (e.g. `generated/author.py`) and one FastAPI `APIRouter` file
23
+ per writable entity (e.g. `generated/author_router.py`). There is no enforced
24
+ directory structure beyond `--out`.
25
+
26
+ ---
27
+
28
+ ## Run codegen + verify
29
+
30
+ ```bash
31
+ metaobjects gen ./metaobjects --out ./generated
32
+ metaobjects gen ./metaobjects --out ./generated --generators entity,routes,filter-allowlist
33
+ metaobjects verify --codegen # regenerate to temp, diff vs committed --out tree (bare default)
34
+ metaobjects verify --templates # {{field}} refs vs payload VO
35
+ ```
36
+
37
+ `--generators` accepts stable generator names: `entity`, `routes`, `filter-allowlist`,
38
+ `payload`, `output-parser`, `extractor`, `output-prompt`, `render-helper`, `trace-helper`,
39
+ `template`. Schema migration + live-DB drift run through the **Node `meta` CLI**
40
+ regardless of server language — see the migration reference.
41
+
42
+ ---
43
+
44
+ ## Drift signatures (what to grep for)
45
+
46
+ | Signature | What it means |
47
+ |---|---|
48
+ | Hand-written Pydantic `BaseModel` with same fields as a modeled entity | `entity` generator should own this |
49
+ | `class Config:` / `model_config` in a hand-written model | compare field-by-field to the generated Pydantic model |
50
+ | `model_dump()` / `model_validate()` in a service outside generated code | audit whether the consumer model and the generated model are in sync |
51
+ | Hand-written `APIRouter()` for a CRUD entity | `routes` generator should own this; check if it matches the cross-port REST contract |
52
+ | `def get_all_` / `def create_` / `def update_` / `def delete_` in non-generated files | hand-rolled CRUD — compare to the generated router |
53
+ | `# keep in sync with` / `# mirrors the` | second-source-of-truth comment — always a finding |
54
+ | `try: ... except KeyError` / `?? ''` around format strings in prompt code | silent-degradation hack around a prompt payload — flag it |
55
+
56
+ ---
57
+
58
+ ## Owned generators
59
+
60
+ Python does not scaffold-and-own generators — they are provided by the `metaobjects`
61
+ package and selected by stable name via `--generators`. There is no analog to the
62
+ TS `codegen/generators/*.ts` pattern here.
63
+
64
+ To re-scaffold the agent-context into a Python project, use the Node `meta` CLI (the
65
+ single agent-docs assembler per ADR-0033):
66
+
67
+ ```bash
68
+ npx meta agent-docs --server python [--out <dir>]
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Version-skew check
74
+
75
+ The installed package version is what actually ran codegen — check the resolved
76
+ installed version, not the declared requirement:
77
+
78
+ ```bash
79
+ pip show metaobjects
80
+ ```
81
+
82
+ For virtual-environment projects, ensure `pip show` reflects the environment the
83
+ project uses (activate it first, or use `python -m pip show metaobjects`). A
84
+ `metaobjects` version out of step with a sibling project's TS/C#/Java dependency
85
+ versions is expected (cross-port versions differ by design); only intra-Python skew
86
+ (e.g. `metaobjects` in `requirements.txt` at one version but `pip show` reports
87
+ another) matters.
88
+
89
+ ---
90
+
91
+ ## Calibration gaps (do NOT flag these)
92
+
93
+ - **Hand-wired FastAPI router + repository implementation are expected.** The `routes`
94
+ generator emits a FastAPI `APIRouter` and a repository `Protocol`, but the consumer
95
+ must hand-write: (1) the repository implementation (SQLAlchemy / asyncpg); (2) the
96
+ app entrypoint that mounts the router. These are intentional seams, not defects.
97
+ - **`dto: dict[str, Any]` in generated router is expected.** Request bodies in the
98
+ generated router are typed `dict[str, Any]` and responses return `Any`. Tightening
99
+ to the typed Pydantic model is a hand-edit the adopter may choose — do NOT flag
100
+ the `Any` as an adopter fault.
101
+ - **Filter-operator route codegen deferred.** The generated `APIRouter` supports
102
+ `?sort`, `?limit`/`?offset`, and `?withCount=1` envelope but defers filter-operator
103
+ validation (`?filter[field][op]=value`). Do NOT flag hand-added Python filter
104
+ handling as an adopter defect.
105
+ - **Partial relationship + flattened-object codegen.** Relationship navigation,
106
+ non-`table` source kinds, and `field.object @storage: flattened` codegen are
107
+ partially implemented in the Python port. Do NOT flag these gaps as adopter defects.
108
+ - **No Python migrate subcommand.** Schema migration is Node-`meta`-owned for every
109
+ port (ADR-0015). `metaobjects` has no migrate subcommand; `meta migrate` is correct.
@@ -0,0 +1,110 @@
1
+ # TypeScript port — audit reference
2
+
3
+ TypeScript is the **reference implementation**. Codegen, schema migration, docs,
4
+ and live-DB drift all run through the Node `meta` CLI (`@metaobjectsdev/cli`,
5
+ binary `meta`). The full feature set ships here; other ports are measured against it.
6
+
7
+ ---
8
+
9
+ ## Finding generated files
10
+
11
+ Generated files carry the header:
12
+
13
+ ```
14
+ // @generated by @metaobjectsdev/codegen-ts
15
+ ```
16
+
17
+ The runner **only overwrites files bearing this header** — hand-edited sibling
18
+ files (`<Entity>.extra.ts`) are never touched. Locate generated output at the
19
+ `outDir` (and per-target `outDir` values) declared in `metaobjects.config.ts`. With
20
+ the default single-target config, generated files land at the one configured
21
+ `outDir` (e.g. `src/generated/`).
22
+
23
+ ---
24
+
25
+ ## Run codegen + verify
26
+
27
+ ```bash
28
+ meta gen # render → 3-way merge → write (overwrites @generated files only)
29
+ meta gen --dry-run # preview without writing
30
+ meta gen Author Post # scope to named entities
31
+ meta verify --codegen # regenerate to temp, diff vs committed output
32
+ meta verify --templates # check {{field}} refs vs payload VO (bare `meta verify` default)
33
+ meta verify --db # schema drift — live DB vs metadata (requires DB connection)
34
+ meta verify --codegen --templates --db # all three drift checks in one pass
35
+ ```
36
+
37
+ `meta gen` and a real `meta verify` run also emit an **advisory anti-pattern pass**
38
+ (never fails the build) flagging hand-rolled aggregates, money-as-float, and CHECK
39
+ value-sets against the constructs that replace them.
40
+
41
+ ---
42
+
43
+ ## Drift signatures (what to grep for)
44
+
45
+ | Signature | What it means |
46
+ |---|---|
47
+ | `pgTable(` / `sqliteTable(` outside `src/generated/` | hand-authored Drizzle table — candidate to generate |
48
+ | `z.object({` / `z.string()` in service/route files | hand-built Zod schema — compare to generated `InsertSchema`/`UpdateSchema` |
49
+ | `FilterAllowlist` defined by hand | should be the generated `<Entity>FilterAllowlist` |
50
+ | `// keep in sync with` / `// mirrors the` | second-source-of-truth comment — always a finding |
51
+ | camelCase↔snake_case mapping tables | generated views handle this; diff field by field |
52
+ | `@generated` file with hand edits | three-way merge preserves them; review at codegen; never delete |
53
+
54
+ ---
55
+
56
+ ## Owned generators — scaffold-and-own (ADR-0034)
57
+
58
+ `meta init` copies the reference generator templates into the project at
59
+ `codegen/generators/*.ts`. The scaffolded `metaobjects.config.ts` imports the
60
+ **owned** local copies:
61
+
62
+ ```ts
63
+ import { entityFile } from "./codegen/generators/entity";
64
+ import { queriesFile } from "./codegen/generators/queries";
65
+ ```
66
+
67
+ **Deprecated import path** (still works, removal planned):
68
+
69
+ ```ts
70
+ import { entityFile, queriesFile, routesFile, barrel } from "@metaobjectsdev/codegen-ts/generators";
71
+ ```
72
+
73
+ **Finding this in a project:** grep for the deprecated path:
74
+
75
+ ```bash
76
+ grep -r '@metaobjectsdev/codegen-ts/generators' .
77
+ ```
78
+
79
+ A hit means the project has not adopted scaffold-and-own — recommend `meta init`
80
+ to scaffold the owned copies. The owned generator files themselves (`codegen/generators/*.ts`)
81
+ are the second thing to audit: are they stale relative to the reference templates,
82
+ or intentionally customized?
83
+
84
+ ---
85
+
86
+ ## Version-skew check
87
+
88
+ The resolved CLI version is what actually ran codegen — check `node_modules`, not
89
+ `package.json` declared ranges:
90
+
91
+ ```bash
92
+ npm list @metaobjectsdev/cli @metaobjectsdev/codegen-ts @metaobjectsdev/metadata
93
+ ```
94
+
95
+ All `@metaobjectsdev/*` packages publish in lockstep. A mixed resolved version
96
+ (e.g. `codegen-ts@0.12.0` alongside `metadata@0.11.9`) is an intra-port skew
97
+ finding. A runtime package (`@metaobjectsdev/runtime-ts`) in `devDependencies`
98
+ rather than `dependencies` is also a finding — it ships to the deployed app.
99
+
100
+ ---
101
+
102
+ ## Calibration gaps (do NOT flag these)
103
+
104
+ TypeScript is the reference implementation — it ships the full feature set:
105
+
106
+ - Filter-operator codegen: **complete** (`<Entity>FilterAllowlist`, 8 operators, all four CRUD routes validate against it).
107
+ - Output-parser codegen: **complete** (`outputParser()` generator; `parse*`/`safeParse*`/`extract*` per `template.output`).
108
+ - ObjectManager: **complete** (`@metaobjectsdev/runtime-ts`; `kyselyDriver` / `inMemoryDriver`).
109
+ - Schema migrate / `meta verify --db`: **complete** (TS owns the shared migrate engine — ADR-0015).
110
+ - D1 dialect: **TS-only by design** — `dialect: "d1"` in `metaobjects.config.ts` targets Cloudflare D1 via the Wrangler CLI layout. Do NOT recommend porting D1 support to other languages.
@@ -121,7 +121,6 @@ for edge/worker consumers that don't mount server routes. Per-entity opt-out:
121
121
  ```bash
122
122
  npx meta gen # load metadata → render → 3-way merge → write
123
123
  npx meta gen --dry-run # preview without writing
124
- npx meta gen --watch # re-run on metadata file change
125
124
  npx meta gen Author Post # scope to named entities
126
125
  ```
127
126
 
@@ -18,9 +18,9 @@ spine; generated code is the disposable artifact. Regenerate with `{{codegenComm
18
18
  - Package paths use `::` (`acme::common::id`).
19
19
 
20
20
  ## Going deeper (Claude Code)
21
- For authoring, codegen, runtime/UI, prompts, or verify work, use the matching
22
- `metaobjects-*` skill — its body links the `references/<lang>.md` fragment installed
23
- for this project's stack.
21
+ For authoring, codegen, runtime/UI, prompts, verify, or adoption-audit work, use the
22
+ matching `metaobjects-*` skill — its body links the `references/<lang>.md` fragment
23
+ installed for this project's stack.
24
24
 
25
25
  These `metaobjects-*` skills are plain, inspectable Markdown reference docs (no tools
26
26
  or hooks) generated by MetaObjects for this project's stack — safe to read and edit;
@@ -4,7 +4,7 @@ export declare const CLIENT_FRAMEWORKS: readonly ["react", "tanstack", "angular"
4
4
  export type ClientFramework = (typeof CLIENT_FRAMEWORKS)[number];
5
5
  /** Always-present token: schema migrations are TS-owned for every port (ADR-0015). */
6
6
  export declare const MIGRATION_TOKEN = "migration";
7
- export declare const SKILL_NAMES: readonly ["metaobjects-authoring", "metaobjects-codegen", "metaobjects-runtime-ui", "metaobjects-prompts", "metaobjects-verify"];
7
+ export declare const SKILL_NAMES: readonly ["metaobjects-authoring", "metaobjects-codegen", "metaobjects-runtime-ui", "metaobjects-prompts", "metaobjects-verify", "metaobjects-audit"];
8
8
  export type SkillName = (typeof SKILL_NAMES)[number];
9
9
  /** The resolved tech-stack of a consumer project. */
10
10
  export interface Stack {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-context/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,+DAAgE,CAAC;AAC1F,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,iBAAiB,2CAA4C,CAAC;AAC3E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,sFAAsF;AACtF,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,eAAO,MAAM,WAAW,kIAMd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,qDAAqD;AACrD,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,6FAA6F;IAC7F,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-context/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,+DAAgE,CAAC;AAC1F,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,iBAAiB,2CAA4C,CAAC;AAC3E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,sFAAsF;AACtF,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,eAAO,MAAM,WAAW,uJAOd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,qDAAqD;AACrD,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,6FAA6F;IAC7F,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -8,5 +8,6 @@ export const SKILL_NAMES = [
8
8
  "metaobjects-runtime-ui",
9
9
  "metaobjects-prompts",
10
10
  "metaobjects-verify",
11
+ "metaobjects-audit",
11
12
  ];
12
13
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-context/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAG1F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAG3E,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,qBAAqB;IACrB,oBAAoB;CACZ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-context/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAG1F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAG3E,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,qBAAqB;IACrB,oBAAoB;IACpB,mBAAmB;CACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"forge-types.d.ts","sourceRoot":"","sources":["../src/forge-types.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,eAAO,MAAM,WAAW,yEAMd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAMrD,eAAO,MAAM,uBAAuB,uCAAwC,CAAC;AAC7E,eAAO,MAAM,wBAAwB,2CAA4C,CAAC;AAClF,eAAO,MAAM,yBAAyB,mBAAoB,CAAC;AAC3D,eAAO,MAAM,uBAAuB,mBAAoB,CAAC;AACzD,eAAO,MAAM,sBAAsB,mBAAoB,CAAC;AAOxD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,gCAAgC,6BAA6B,CAAC;AAG3E,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAGzD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAG7C,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAGzD,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAGtD,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAGlD,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAC7D,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D,eAAO,MAAM,WAAW,ubAuBd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAMrD,OAAO,EAEL,KAAK,oBAAoB,EAGzB,YAAY,EAIb,MAAM,0BAA0B,CAAC;AA4BlC;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,oBAuBhC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE/D"}
1
+ {"version":3,"file":"forge-types.d.ts","sourceRoot":"","sources":["../src/forge-types.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,eAAO,MAAM,WAAW,yEAMd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAMrD,eAAO,MAAM,uBAAuB,uCAAwC,CAAC;AAC7E,eAAO,MAAM,wBAAwB,2CAA4C,CAAC;AAClF,eAAO,MAAM,yBAAyB,mBAAoB,CAAC;AAC3D,eAAO,MAAM,uBAAuB,mBAAoB,CAAC;AACzD,eAAO,MAAM,sBAAsB,mBAAoB,CAAC;AAOxD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,gCAAgC,6BAA6B,CAAC;AAG3E,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAGzD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAG7C,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAGzD,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAGtD,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAGlD,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAC7D,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D,eAAO,MAAM,WAAW,ubAuBd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAMrD,OAAO,EAGL,KAAK,oBAAoB,EAGzB,YAAY,EAMb,MAAM,0BAA0B,CAAC;AA0ClC;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,oBAoChC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE/D"}
@@ -84,7 +84,7 @@ export const FORGE_ATTRS = [
84
84
  // ---------------------------------------------------------------------------
85
85
  // registerForgeTypes
86
86
  // ---------------------------------------------------------------------------
87
- import { TypeId, TypeRegistry, MetaData, TYPE_ATTR, CHILD_RULE_WILDCARD, } from "@metaobjectsdev/metadata";
87
+ import { TypeId, TypeRegistry, MetaData, TYPE_ATTR, TYPE_METADATA, SUBTYPE_ROOT, CHILD_RULE_WILDCARD, } from "@metaobjectsdev/metadata";
88
88
  /** Minimal concrete MetaData subclass used for all forge descriptive nodes. */
89
89
  class ForgeNode extends MetaData {
90
90
  }
@@ -95,6 +95,19 @@ function wildcardOf(childType) {
95
95
  childName: CHILD_RULE_WILDCARD,
96
96
  };
97
97
  }
98
+ // Every @forge* attr, declared (untyped, optional) as a COMMON attr — admissible
99
+ // on ANY node, exactly like the documentation provenance attrs (@description /
100
+ // @notes / @deprecated). Forge records are DESCRIPTIVE memory, not the
101
+ // prescriptive metamodel: the @forge* provenance attrs annotate both forge nodes
102
+ // AND real entities (e.g. @forgePrimaryLocation on an object.entity). Declaring
103
+ // the NAMES — without value-type coercion — is what makes a forge-annotated node
104
+ // strict-clean (ADR-0023 Check 0 keys off the attr NAME), so `meta verify`
105
+ // (strict-by-default, #96) admits them instead of ERR_UNKNOWN_ATTR.
106
+ const FORGE_ATTR_SCHEMAS = FORGE_ATTRS.map((name) => ({
107
+ name,
108
+ required: false,
109
+ description: `Meta Forge provenance attr @${name} (descriptive memory).`,
110
+ }));
98
111
  function def(type, subType, description, childRules) {
99
112
  return {
100
113
  typeId: new TypeId(type, subType),
@@ -134,6 +147,17 @@ export const forgeTypesProvider = {
134
147
  for (const subType of FORGE_FAILURE_SUBTYPES) {
135
148
  registry.register(def(FORGE_TYPE_FAILURE, subType, `Forge failure record (${subType})`, forgeChildRules));
136
149
  }
150
+ // #96 — the @forge* provenance attrs are common (admissible on any node).
151
+ registry.registerCommonAttrs([...FORGE_ATTR_SCHEMAS]);
152
+ // FR-033 / #96 — admit the forge descriptive types as top-level children of
153
+ // metadata.root. Core (fail-closed) admits only object/field/validator/
154
+ // template there, so under strict load a real decision/principle/… record
155
+ // would otherwise be ERR_CHILD_NOT_ALLOWED. `loadMemory` bundles these types
156
+ // precisely so mixed prescriptive+descriptive content loads; wiring the
157
+ // childRule makes that hold under strict (`meta verify` strict-by-default) too.
158
+ registry.extend(TYPE_METADATA, SUBTYPE_ROOT, {
159
+ childRules: FORGE_TYPES.map((t) => wildcardOf(t)),
160
+ });
137
161
  },
138
162
  };
139
163
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"forge-types.js","sourceRoot":"","sources":["../src/forge-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge-types.js","sourceRoot":"","sources":["../src/forge-types.ts"],"names":[],"mappings":"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"}
package/dist/memory.d.ts CHANGED
@@ -29,6 +29,13 @@ export interface LoadMemoryOptions {
29
29
  * Throws if `providers` is absent or empty.
30
30
  */
31
31
  replaceDefaults?: boolean;
32
+ /**
33
+ * ADR-0023 strict-attr load. When `true`, an authored own `@-attr` matching
34
+ * no registered per-type schema and no commonAttr is `ERR_UNKNOWN_ATTR`.
35
+ * Defaults `false` (legacy open-attr policy) so a downstream app loads lax;
36
+ * the `meta verify` command opts in to `true` (strict-by-default, #96).
37
+ */
38
+ strict?: boolean;
32
39
  }
33
40
  /** Default provider bundle threaded by {@link loadMemory} when no options
34
41
  * override is supplied. Exposed for tests/inspection; callers shouldn't need
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAKlC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC5C;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;sEAGsE;AACtE,eAAO,MAAM,0BAA0B,EAAE,SAAS,oBAAoB,EAGrE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,QAAQ,CAAC,CA+BnB"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAKlC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC5C;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;sEAGsE;AACtE,eAAO,MAAM,0BAA0B,EAAE,SAAS,oBAAoB,EAGrE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,QAAQ,CAAC,CAgCnB"}
package/dist/memory.js CHANGED
@@ -62,6 +62,7 @@ export async function loadMemory(repoRoot, options) {
62
62
  const paths = await collectMetadataPaths(repoRoot);
63
63
  const loader = new MetaDataLoader({
64
64
  registry,
65
+ ...(options?.strict === true ? { strict: true } : {}),
65
66
  });
66
67
  const result = await loader.load(paths.map((p) => new FileSource(p)));
67
68
  if (result.errors.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/sdk",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "Workspace helpers and agent-docs utilities for MetaObjects projects.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -56,7 +56,7 @@
56
56
  "access": "public"
57
57
  },
58
58
  "dependencies": {
59
- "@metaobjectsdev/metadata": "0.13.1",
59
+ "@metaobjectsdev/metadata": "0.14.0",
60
60
  "zod": "^3.23.0"
61
61
  },
62
62
  "devDependencies": {
@@ -13,6 +13,7 @@ export const SKILL_NAMES = [
13
13
  "metaobjects-runtime-ui",
14
14
  "metaobjects-prompts",
15
15
  "metaobjects-verify",
16
+ "metaobjects-audit",
16
17
  ] as const;
17
18
  export type SkillName = (typeof SKILL_NAMES)[number];
18
19