@metaobjectsdev/sdk 0.13.0 → 0.14.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 +1 -1
- package/agent-context/README.md +1 -1
- package/agent-context/skills/metaobjects-audit/SKILL.md +262 -0
- package/agent-context/skills/metaobjects-audit/references/capability-checklist.md +189 -0
- package/agent-context/skills/metaobjects-audit/references/csharp.md +104 -0
- package/agent-context/skills/metaobjects-audit/references/java.md +106 -0
- package/agent-context/skills/metaobjects-audit/references/kotlin.md +107 -0
- package/agent-context/skills/metaobjects-audit/references/python.md +109 -0
- package/agent-context/skills/metaobjects-audit/references/typescript.md +110 -0
- package/agent-context/skills/metaobjects-codegen/references/typescript.md +0 -1
- package/agent-context/templates/always-on.md.mustache +3 -3
- package/dist/agent-context/types.d.ts +1 -1
- package/dist/agent-context/types.d.ts.map +1 -1
- package/dist/agent-context/types.js +1 -0
- package/dist/agent-context/types.js.map +1 -1
- package/dist/forge-types.d.ts.map +1 -1
- package/dist/forge-types.js +25 -1
- package/dist/forge-types.js.map +1 -1
- package/dist/memory.d.ts +7 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +1 -0
- package/dist/memory.js.map +1 -1
- package/package.json +2 -2
- package/src/agent-context/types.ts +1 -0
- package/src/forge-types.ts +30 -0
- package/src/memory.ts +8 -0
|
@@ -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
|
|
22
|
-
`metaobjects-*` skill — its body links the `references/<lang>.md` fragment
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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,
|
|
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"}
|
package/dist/forge-types.js
CHANGED
|
@@ -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
|
/**
|
package/dist/forge-types.js.map
CHANGED
|
@@ -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
|
package/dist/memory.d.ts.map
CHANGED
|
@@ -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;
|
|
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) {
|
package/dist/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC;
|
|
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.
|
|
3
|
+
"version": "0.14.0-rc.1",
|
|
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.
|
|
59
|
+
"@metaobjectsdev/metadata": "0.14.0-rc.1",
|
|
60
60
|
"zod": "^3.23.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|