@metaobjectsdev/sdk 0.9.0 → 0.10.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.
- package/README.md +9 -0
- package/agent-context/README.md +14 -0
- package/agent-context/servers/csharp.meta.json +5 -0
- package/agent-context/servers/java.meta.json +5 -0
- package/agent-context/servers/kotlin.meta.json +5 -0
- package/agent-context/servers/python.meta.json +5 -0
- package/agent-context/servers/typescript.meta.json +5 -0
- package/agent-context/skills/metaobjects-authoring/SKILL.md +308 -0
- package/agent-context/skills/metaobjects-codegen/SKILL.md +99 -0
- package/agent-context/skills/metaobjects-codegen/references/csharp.md +87 -0
- package/agent-context/skills/metaobjects-codegen/references/java.md +94 -0
- package/agent-context/skills/metaobjects-codegen/references/kotlin.md +110 -0
- package/agent-context/skills/metaobjects-codegen/references/typescript.md +135 -0
- package/agent-context/skills/metaobjects-prompts/SKILL.md +148 -0
- package/agent-context/skills/metaobjects-prompts/references/csharp.md +110 -0
- package/agent-context/skills/metaobjects-prompts/references/java.md +108 -0
- package/agent-context/skills/metaobjects-prompts/references/kotlin.md +130 -0
- package/agent-context/skills/metaobjects-prompts/references/python.md +116 -0
- package/agent-context/skills/metaobjects-prompts/references/typescript.md +150 -0
- package/agent-context/skills/metaobjects-runtime-ui/SKILL.md +130 -0
- package/agent-context/skills/metaobjects-runtime-ui/references/java.md +96 -0
- package/agent-context/skills/metaobjects-runtime-ui/references/kotlin.md +99 -0
- package/agent-context/skills/metaobjects-runtime-ui/references/react.md +86 -0
- package/agent-context/skills/metaobjects-runtime-ui/references/tanstack.md +119 -0
- package/agent-context/skills/metaobjects-runtime-ui/references/typescript.md +92 -0
- package/agent-context/skills/metaobjects-verify/SKILL.md +107 -0
- package/agent-context/skills/metaobjects-verify/references/migration.md +72 -0
- package/agent-context/templates/always-on.md.mustache +27 -0
- package/dist/agent-context/assemble.d.ts +7 -0
- package/dist/agent-context/assemble.d.ts.map +1 -0
- package/dist/agent-context/assemble.js +61 -0
- package/dist/agent-context/assemble.js.map +1 -0
- package/dist/agent-context/content-root.d.ts +8 -0
- package/dist/agent-context/content-root.d.ts.map +1 -0
- package/dist/agent-context/content-root.js +35 -0
- package/dist/agent-context/content-root.js.map +1 -0
- package/dist/agent-context/index.d.ts +6 -0
- package/dist/agent-context/index.d.ts.map +1 -0
- package/dist/agent-context/index.js +6 -0
- package/dist/agent-context/index.js.map +1 -0
- package/dist/agent-context/resolve.d.ts +13 -0
- package/dist/agent-context/resolve.d.ts.map +1 -0
- package/dist/agent-context/resolve.js +30 -0
- package/dist/agent-context/resolve.js.map +1 -0
- package/dist/agent-context/scaffold.d.ts +60 -0
- package/dist/agent-context/scaffold.d.ts.map +1 -0
- package/dist/agent-context/scaffold.js +61 -0
- package/dist/agent-context/scaffold.js.map +1 -0
- package/dist/agent-context/types.d.ts +21 -0
- package/dist/agent-context/types.d.ts.map +1 -0
- package/dist/agent-context/types.js +12 -0
- package/dist/agent-context/types.js.map +1 -0
- package/dist/agent-docs/body.d.ts +5 -1
- package/dist/agent-docs/body.d.ts.map +1 -1
- package/dist/agent-docs/body.js +7 -3
- package/dist/agent-docs/body.js.map +1 -1
- package/dist/forge-types.js +2 -2
- package/dist/forge-types.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +3 -1
- package/dist/memory.js.map +1 -1
- package/dist/storage/errors.d.ts +3 -3
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +6 -6
- package/dist/storage/errors.js.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/lifecycle.js +4 -4
- package/dist/storage/lifecycle.js.map +1 -1
- package/dist/storage/read.js +4 -4
- package/dist/storage/read.js.map +1 -1
- package/dist/storage/write.js +2 -2
- package/dist/storage/write.js.map +1 -1
- package/package.json +40 -22
- package/scripts/bundle-agent-context.mjs +19 -0
- package/src/agent-context/assemble.ts +68 -0
- package/src/agent-context/content-root.ts +35 -0
- package/src/agent-context/index.ts +5 -0
- package/src/agent-context/resolve.ts +33 -0
- package/src/agent-context/scaffold.ts +103 -0
- package/src/agent-context/types.ts +31 -0
- package/src/agent-docs/body.ts +7 -3
- package/src/forge-types.ts +2 -2
- package/src/index.ts +6 -3
- package/src/memory.ts +3 -1
- package/src/storage/errors.ts +6 -6
- package/src/storage/index.ts +3 -3
- package/src/storage/lifecycle.ts +4 -4
- package/src/storage/read.ts +4 -4
- package/src/storage/write.ts +2 -2
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/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { PrincipleRecord } from "./records/principle.js";
|
|
|
5
5
|
export { GlossaryRecord } from "./records/glossary.js";
|
|
6
6
|
export { FailureRecord } from "./records/failure.js";
|
|
7
7
|
export { AnyRecord } from "./records/any.js";
|
|
8
|
-
export { readRecord, recordExists, writeRecord, removeRecord, listRecords, promoteRecord, supersede,
|
|
8
|
+
export { readRecord, recordExists, writeRecord, removeRecord, listRecords, promoteRecord, supersede, ForgeRecordNotFoundError, ForgeAlreadyPromotedError, ForgeRecordParseError, } from "./storage/index.js";
|
|
9
9
|
export type { ListOptions } from "./storage/index.js";
|
|
10
10
|
export { recordPath, resolveMetaRoot } from "./paths.js";
|
|
11
11
|
export { ConfigSchema, DEFAULT_CONFIG, loadConfig, saveConfig } from "./config.js";
|
|
@@ -18,4 +18,5 @@ export { discoverWorkspace, resolveExtendsOrder, packageLabel } from "./workspac
|
|
|
18
18
|
export type { Workspace, WorkspacePackage } from "./workspace.js";
|
|
19
19
|
export { PackageManifestSchema, readPackageManifest, resolveMetaobjectsPackage, PACKAGE_MANIFEST_FILE, } from "./package.js";
|
|
20
20
|
export type { PackageManifest } from "./package.js";
|
|
21
|
+
export * from "./agent-context/index.js";
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,OAAO,EAEL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EAEX,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EAEtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gCAAgC,EAChC,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,8BAA8B,EAC9B,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,WAAW,EAEX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7D,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtF,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOlE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,cAAc,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ export { GlossaryRecord } from "./records/glossary.js";
|
|
|
7
7
|
export { FailureRecord } from "./records/failure.js";
|
|
8
8
|
export { AnyRecord } from "./records/any.js";
|
|
9
9
|
// Storage
|
|
10
|
-
export { readRecord, recordExists, writeRecord, removeRecord, listRecords, promoteRecord, supersede,
|
|
10
|
+
export { readRecord, recordExists, writeRecord, removeRecord, listRecords, promoteRecord, supersede, ForgeRecordNotFoundError, ForgeAlreadyPromotedError, ForgeRecordParseError, } from "./storage/index.js";
|
|
11
11
|
// Paths
|
|
12
12
|
export { recordPath, resolveMetaRoot } from "./paths.js";
|
|
13
13
|
// Config
|
|
@@ -36,4 +36,6 @@ export { discoverWorkspace, resolveExtendsOrder, packageLabel } from "./workspac
|
|
|
36
36
|
// there is no exports field. See docs/strategy/2026-05-12-v0.3-ai-first-
|
|
37
37
|
// metadata-loading.md.
|
|
38
38
|
export { PackageManifestSchema, readPackageManifest, resolveMetaobjectsPackage, PACKAGE_MANIFEST_FILE, } from "./package.js";
|
|
39
|
+
// Agent context — stack resolver, file assembler, and vocabulary types
|
|
40
|
+
export * from "./agent-context/index.js";
|
|
39
41
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,UAAU;AACV,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,UAAU;AACV,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,QAAQ;AACR,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzD,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGnF,0EAA0E;AAC1E,0EAA0E;AAC1E,gCAAgC;AAChC,OAAO;AACL,aAAa;AACb,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW;AACX,WAAW;AACX,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB;AACtB,kBAAkB;AAClB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gCAAgC,EAChC,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,8BAA8B,EAC9B,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,WAAW;AACX,iCAAiC;AACjC,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,yDAAyD;AACzD,mEAAmE;AACnE,6CAA6C;AAC7C,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,mEAAmE;AACnE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGtF,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,yEAAyE;AACzE,uBAAuB;AACvB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,uEAAuE;AACvE,cAAc,0BAA0B,CAAC"}
|
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;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,
|
|
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"}
|
package/dist/memory.js
CHANGED
|
@@ -60,7 +60,9 @@ export async function loadMemory(repoRoot, options) {
|
|
|
60
60
|
// deferred-resolution pass (it parses in array order, then resolves supers
|
|
61
61
|
// against the merged tree afterwards) — dep packages first, current last.
|
|
62
62
|
const paths = await collectMetadataPaths(repoRoot);
|
|
63
|
-
const loader = new MetaDataLoader({
|
|
63
|
+
const loader = new MetaDataLoader({
|
|
64
|
+
registry,
|
|
65
|
+
});
|
|
64
66
|
const result = await loader.load(paths.map((p) => new FileSource(p)));
|
|
65
67
|
if (result.errors.length > 0) {
|
|
66
68
|
const first = result.errors[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;AAuBtD;;;sEAGsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAoC;IACzE,GAAG,aAAa;IAChB,kBAAkB;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,OAA2B;IAE3B,MAAM,KAAK,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;IACvC,IAAI,SAA0C,CAAC;IAC/C,IAAI,OAAO,EAAE,eAAe,KAAK,IAAI,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;QACD,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,CAAC,GAAG,0BAA0B,EAAE,GAAG,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAE5C,0EAA0E;IAC1E,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/errors.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class ForgeRecordNotFoundError extends Error {
|
|
2
2
|
readonly path: string;
|
|
3
3
|
constructor(path: string);
|
|
4
4
|
}
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class ForgeAlreadyPromotedError extends Error {
|
|
6
6
|
readonly path: string;
|
|
7
7
|
constructor(path: string);
|
|
8
8
|
}
|
|
9
|
-
export declare class
|
|
9
|
+
export declare class ForgeRecordParseError extends Error {
|
|
10
10
|
readonly path: string;
|
|
11
11
|
readonly cause: unknown;
|
|
12
12
|
constructor(path: string, cause: unknown);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/storage/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/storage/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,wBAAyB,SAAQ,KAAK;aACrB,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAIzC;AAED,qBAAa,yBAA0B,SAAQ,KAAK;aACtB,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAIzC;AAED,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,IAAI,EAAE,MAAM;aACH,KAAK,EAAE,OAAO;gBADvB,IAAI,EAAE,MAAM,EACH,KAAK,EAAE,OAAO;CAK1C"}
|
package/dist/storage/errors.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
export class
|
|
1
|
+
export class ForgeRecordNotFoundError extends Error {
|
|
2
2
|
path;
|
|
3
3
|
constructor(path) {
|
|
4
4
|
super(`Record not found: ${path}`);
|
|
5
5
|
this.path = path;
|
|
6
|
-
this.name = "
|
|
6
|
+
this.name = "ForgeRecordNotFoundError";
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
export class
|
|
9
|
+
export class ForgeAlreadyPromotedError extends Error {
|
|
10
10
|
path;
|
|
11
11
|
constructor(path) {
|
|
12
12
|
super(`A canonical record already exists at: ${path}`);
|
|
13
13
|
this.path = path;
|
|
14
|
-
this.name = "
|
|
14
|
+
this.name = "ForgeAlreadyPromotedError";
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
export class
|
|
17
|
+
export class ForgeRecordParseError extends Error {
|
|
18
18
|
path;
|
|
19
19
|
cause;
|
|
20
20
|
constructor(path, cause) {
|
|
21
21
|
super(`Failed to parse record at ${path}: ${cause instanceof Error ? cause.message : String(cause)}`);
|
|
22
22
|
this.path = path;
|
|
23
23
|
this.cause = cause;
|
|
24
|
-
this.name = "
|
|
24
|
+
this.name = "ForgeRecordParseError";
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/storage/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/storage/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACrB;IAA5B,YAA4B,IAAY;QACtC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QADT,SAAI,GAAJ,IAAI,CAAQ;QAEtC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACtB;IAA5B,YAA4B,IAAY;QACtC,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;QAD7B,SAAI,GAAJ,IAAI,CAAQ;QAEtC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAE5B;IACS;IAF3B,YACkB,IAAY,EACH,KAAc;QAEvC,KAAK,CAAC,6BAA6B,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAHtF,SAAI,GAAJ,IAAI,CAAQ;QACH,UAAK,GAAL,KAAK,CAAS;QAGvC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export { writeRecord, removeRecord } from "./write.js";
|
|
|
3
3
|
export { listRecords } from "./list.js";
|
|
4
4
|
export type { ListOptions } from "./list.js";
|
|
5
5
|
export { promoteRecord, supersede } from "./lifecycle.js";
|
|
6
|
-
export {
|
|
6
|
+
export { ForgeRecordNotFoundError, ForgeAlreadyPromotedError, ForgeRecordParseError, } from "./errors.js";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
package/dist/storage/index.js
CHANGED
|
@@ -2,5 +2,5 @@ export { readRecord, recordExists } from "./read.js";
|
|
|
2
2
|
export { writeRecord, removeRecord } from "./write.js";
|
|
3
3
|
export { listRecords } from "./list.js";
|
|
4
4
|
export { promoteRecord, supersede } from "./lifecycle.js";
|
|
5
|
-
export {
|
|
5
|
+
export { ForgeRecordNotFoundError, ForgeAlreadyPromotedError, ForgeRecordParseError, } from "./errors.js";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { readRecord, recordExists } from "./read.js";
|
|
2
2
|
import { writeRecord, removeRecord } from "./write.js";
|
|
3
|
-
import {
|
|
3
|
+
import { ForgeAlreadyPromotedError, ForgeRecordNotFoundError } from "./errors.js";
|
|
4
4
|
import { recordPath } from "../paths.js";
|
|
5
5
|
export async function promoteRecord(metaRoot, type, id) {
|
|
6
6
|
if (!(await recordExists(metaRoot, type, id, { pending: true }))) {
|
|
7
|
-
throw new
|
|
7
|
+
throw new ForgeRecordNotFoundError(recordPath(metaRoot, type, id, { pending: true }));
|
|
8
8
|
}
|
|
9
9
|
if (await recordExists(metaRoot, type, id)) {
|
|
10
|
-
throw new
|
|
10
|
+
throw new ForgeAlreadyPromotedError(recordPath(metaRoot, type, id));
|
|
11
11
|
}
|
|
12
12
|
const record = await readRecord(metaRoot, type, id, { pending: true });
|
|
13
13
|
await writeRecord(metaRoot, record);
|
|
@@ -15,7 +15,7 @@ export async function promoteRecord(metaRoot, type, id) {
|
|
|
15
15
|
}
|
|
16
16
|
export async function supersede(metaRoot, oldId, newRecord) {
|
|
17
17
|
if (!(await recordExists(metaRoot, newRecord.type, oldId))) {
|
|
18
|
-
throw new
|
|
18
|
+
throw new ForgeRecordNotFoundError(recordPath(metaRoot, newRecord.type, oldId));
|
|
19
19
|
}
|
|
20
20
|
// Write the new record first, so a failure leaves the old record intact.
|
|
21
21
|
await writeRecord(metaRoot, newRecord);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/storage/lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/storage/lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,IAAgB,EAChB,EAAU;IAEV,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,wBAAwB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,yBAAyB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,KAAa,EACb,SAAoB;IAEpB,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,wBAAwB,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,yEAAyE;IACzE,MAAM,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvC,oDAAoD;IACpD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;IACxD,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/storage/read.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFile, stat } from "node:fs/promises";
|
|
2
2
|
import { AnyRecord as AnyRecordSchema } from "../records/any.js";
|
|
3
3
|
import { recordPath } from "../paths.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ForgeRecordNotFoundError, ForgeRecordParseError } from "./errors.js";
|
|
5
5
|
export async function readRecord(metaRoot, type, id, opts = {}) {
|
|
6
6
|
const path = recordPath(metaRoot, type, id, opts);
|
|
7
7
|
let raw;
|
|
@@ -10,7 +10,7 @@ export async function readRecord(metaRoot, type, id, opts = {}) {
|
|
|
10
10
|
}
|
|
11
11
|
catch (err) {
|
|
12
12
|
if (isNoEntError(err))
|
|
13
|
-
throw new
|
|
13
|
+
throw new ForgeRecordNotFoundError(path);
|
|
14
14
|
throw err;
|
|
15
15
|
}
|
|
16
16
|
let parsedJson;
|
|
@@ -18,11 +18,11 @@ export async function readRecord(metaRoot, type, id, opts = {}) {
|
|
|
18
18
|
parsedJson = JSON.parse(raw);
|
|
19
19
|
}
|
|
20
20
|
catch (err) {
|
|
21
|
-
throw new
|
|
21
|
+
throw new ForgeRecordParseError(path, err);
|
|
22
22
|
}
|
|
23
23
|
const result = AnyRecordSchema.safeParse(parsedJson);
|
|
24
24
|
if (!result.success)
|
|
25
|
-
throw new
|
|
25
|
+
throw new ForgeRecordParseError(path, result.error);
|
|
26
26
|
return result.data;
|
|
27
27
|
}
|
|
28
28
|
export async function recordExists(metaRoot, type, id, opts = {}) {
|
package/dist/storage/read.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/storage/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/storage/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,IAAgB,EAChB,EAAU,EACV,OAA8B,EAAE;IAEhC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,YAAY,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,IAAgB,EAChB,EAAU,EACV,OAA8B,EAAE;IAEhC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACZ,GAAyB,CAAC,IAAI,KAAK,QAAQ,CAC7C,CAAC;AACJ,CAAC"}
|
package/dist/storage/write.js
CHANGED
|
@@ -2,7 +2,7 @@ import { mkdir, writeFile, unlink } from "node:fs/promises";
|
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
3
|
import { AnyRecord as AnyRecordSchema } from "../records/any.js";
|
|
4
4
|
import { recordPath } from "../paths.js";
|
|
5
|
-
import {
|
|
5
|
+
import { ForgeRecordNotFoundError } from "./errors.js";
|
|
6
6
|
import { recordExists } from "./read.js";
|
|
7
7
|
export async function writeRecord(metaRoot, record, opts = {}) {
|
|
8
8
|
// Validate before any IO
|
|
@@ -13,7 +13,7 @@ export async function writeRecord(metaRoot, record, opts = {}) {
|
|
|
13
13
|
}
|
|
14
14
|
export async function removeRecord(metaRoot, type, id, opts = {}) {
|
|
15
15
|
if (!(await recordExists(metaRoot, type, id, opts))) {
|
|
16
|
-
throw new
|
|
16
|
+
throw new ForgeRecordNotFoundError(recordPath(metaRoot, type, id, opts));
|
|
17
17
|
}
|
|
18
18
|
await unlink(recordPath(metaRoot, type, id, opts));
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/storage/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/storage/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,MAAiB,EACjB,OAA8B,EAAE;IAEhC,yBAAyB;IACzB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,IAAuB,EACvB,EAAU,EACV,OAA8B,EAAE;IAEhC,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,wBAAwB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Workspace helpers and agent-docs utilities for MetaObjects projects.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -15,34 +15,52 @@
|
|
|
15
15
|
"bun": "./src/agent-docs/index.ts",
|
|
16
16
|
"types": "./dist/agent-docs/index.d.ts",
|
|
17
17
|
"default": "./dist/agent-docs/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./agent-context": {
|
|
20
|
+
"bun": "./src/agent-context/index.ts",
|
|
21
|
+
"types": "./dist/agent-context/index.d.ts",
|
|
22
|
+
"default": "./dist/agent-context/index.js"
|
|
18
23
|
}
|
|
19
24
|
},
|
|
20
|
-
"files": [
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"src",
|
|
28
|
+
"README.md",
|
|
29
|
+
"LICENSE",
|
|
30
|
+
"agent-context",
|
|
31
|
+
"scripts"
|
|
32
|
+
],
|
|
21
33
|
"scripts": {
|
|
22
|
-
"
|
|
34
|
+
"bundle-agent-context": "node scripts/bundle-agent-context.mjs",
|
|
35
|
+
"build": "node scripts/bundle-agent-context.mjs && tsc -p .",
|
|
23
36
|
"typecheck": "tsc -p tsconfig.typecheck.json"
|
|
24
37
|
},
|
|
25
38
|
"license": "Apache-2.0",
|
|
26
39
|
"author": "Doug Mealing <doug@dougmealing.com>",
|
|
27
40
|
"homepage": "https://metaobjects.dev",
|
|
28
41
|
"bugs": {
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
"repository": {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
},
|
|
36
|
-
"keywords": [
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
"url": "https://github.com/metaobjectsdev/metaobjects/issues"
|
|
43
|
+
},
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "https://github.com/metaobjectsdev/metaobjects.git",
|
|
47
|
+
"directory": "server/typescript/packages/sdk"
|
|
48
|
+
},
|
|
49
|
+
"keywords": [
|
|
50
|
+
"metaobjects",
|
|
51
|
+
"sdk",
|
|
52
|
+
"agent-docs",
|
|
53
|
+
"workspace"
|
|
54
|
+
],
|
|
55
|
+
"publishConfig": {
|
|
56
|
+
"access": "public"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"@metaobjectsdev/metadata": "0.10.0",
|
|
60
|
+
"zod": "^3.23.0"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"bun-types": "latest",
|
|
64
|
+
"typescript": "^5.6.0"
|
|
65
|
+
}
|
|
48
66
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { cpSync, rmSync, existsSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
|
|
5
|
+
// scripts/ → package root → walk up to the monorepo agent-context/
|
|
6
|
+
const pkgDir = join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
7
|
+
let dir = pkgDir, src = "";
|
|
8
|
+
for (let i = 0; i < 8; i++) {
|
|
9
|
+
const cand = join(dir, "agent-context", "skills", "metaobjects-authoring", "SKILL.md");
|
|
10
|
+
if (existsSync(cand) && dir !== pkgDir) { src = join(dir, "agent-context"); break; }
|
|
11
|
+
const parent = dirname(dir);
|
|
12
|
+
if (parent === dir) break;
|
|
13
|
+
dir = parent;
|
|
14
|
+
}
|
|
15
|
+
if (!src) { console.error("monorepo agent-context/ not found to bundle"); process.exit(1); }
|
|
16
|
+
const dest = join(pkgDir, "agent-context");
|
|
17
|
+
rmSync(dest, { recursive: true, force: true });
|
|
18
|
+
cpSync(src, dest, { recursive: true });
|
|
19
|
+
console.log("bundled agent-context →", dest);
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { readFileSync, readdirSync, existsSync, statSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { SKILL_NAMES, type AssembledFile, type Stack } from "./types.js";
|
|
4
|
+
|
|
5
|
+
interface ServerMeta { displayName: string; install: string; codegenCommand: string; }
|
|
6
|
+
|
|
7
|
+
function readServerMeta(contentRoot: string, server: string): ServerMeta | undefined {
|
|
8
|
+
const p = join(contentRoot, "servers", `${server}.meta.json`);
|
|
9
|
+
if (!existsSync(p)) return undefined;
|
|
10
|
+
return JSON.parse(readFileSync(p, "utf8")) as ServerMeta;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function stackLine(contentRoot: string, stack: Stack): { line: string; codegenCommand: string } {
|
|
14
|
+
const primary = stack.servers[0];
|
|
15
|
+
const meta = primary ? readServerMeta(contentRoot, primary) : undefined;
|
|
16
|
+
const serverPart = stack.servers.length ? stack.servers.join(", ") + " server" : "no server";
|
|
17
|
+
const clientPart = stack.clients.length ? stack.clients.join(", ") + " client" : "no client";
|
|
18
|
+
return {
|
|
19
|
+
line: `Stack: ${serverPart}, ${clientPart}; migrations are TS.`,
|
|
20
|
+
codegenCommand: meta ? meta.codegenCommand : "meta gen",
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function applyTemplate(tpl: string, vars: Record<string, string>): string {
|
|
25
|
+
return tpl.replace(/\{\{(\w+)\}\}/g, (_m, k: string) => {
|
|
26
|
+
if (!(k in vars)) throw new Error(`agent-context: unknown template variable {{${k}}}`);
|
|
27
|
+
return vars[k]!;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Assemble the consumer files for a resolved stack. Pure given the content tree. */
|
|
32
|
+
export function assemble(opts: { contentRoot: string; stack: Stack }): AssembledFile[] {
|
|
33
|
+
const { contentRoot, stack } = opts;
|
|
34
|
+
const out: AssembledFile[] = [];
|
|
35
|
+
|
|
36
|
+
// 1. Always-on (AGENTS.md + CLAUDE.md, identical contents).
|
|
37
|
+
const tpl = readFileSync(join(contentRoot, "templates", "always-on.md.mustache"), "utf8");
|
|
38
|
+
const { line, codegenCommand } = stackLine(contentRoot, stack);
|
|
39
|
+
const alwaysOn = applyTemplate(tpl, { stackLine: line, codegenCommand });
|
|
40
|
+
out.push({ path: ".metaobjects/AGENTS.md", contents: alwaysOn });
|
|
41
|
+
out.push({ path: ".metaobjects/CLAUDE.md", contents: alwaysOn });
|
|
42
|
+
|
|
43
|
+
// 2. Skills: body + only the references whose token is in the stack.
|
|
44
|
+
for (const skill of SKILL_NAMES) {
|
|
45
|
+
const skillDir = join(contentRoot, "skills", skill);
|
|
46
|
+
const body = readFileSync(join(skillDir, "SKILL.md"), "utf8");
|
|
47
|
+
out.push({ path: `.claude/skills/${skill}/SKILL.md`, contents: body });
|
|
48
|
+
|
|
49
|
+
const refDir = join(skillDir, "references");
|
|
50
|
+
if (existsSync(refDir) && statSync(refDir).isDirectory()) {
|
|
51
|
+
const refs = readdirSync(refDir)
|
|
52
|
+
.filter((f) => f.endsWith(".md"))
|
|
53
|
+
.map((f) => f.replace(/\.md$/, ""))
|
|
54
|
+
.filter((token) => stack.tokens.has(token))
|
|
55
|
+
.sort();
|
|
56
|
+
for (const token of refs) {
|
|
57
|
+
out.push({
|
|
58
|
+
path: `.claude/skills/${skill}/references/${token}.md`,
|
|
59
|
+
contents: readFileSync(join(refDir, `${token}.md`), "utf8"),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Stable order: by path.
|
|
66
|
+
out.sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
|
|
5
|
+
/** A directory is a valid content root iff it holds the authoring skill body. */
|
|
6
|
+
function isContentRoot(dir: string): boolean {
|
|
7
|
+
return existsSync(join(dir, "skills", "metaobjects-authoring", "SKILL.md"));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the `agent-context/` content tree the assembler reads.
|
|
12
|
+
* - If `override` is given, it must be a valid content root (else throw).
|
|
13
|
+
* - Otherwise: check a bundled copy beside this module (`<pkg>/agent-context`,
|
|
14
|
+
* the published path), then walk up looking for a monorepo `agent-context/` (dev).
|
|
15
|
+
*/
|
|
16
|
+
export function resolveAgentContextRoot(override?: string): string {
|
|
17
|
+
if (override !== undefined) {
|
|
18
|
+
if (isContentRoot(override)) return override;
|
|
19
|
+
throw new Error(`agent-context content not found at override: ${override}`);
|
|
20
|
+
}
|
|
21
|
+
let dir = dirname(fileURLToPath(import.meta.url));
|
|
22
|
+
for (let i = 0; i < 8; i++) {
|
|
23
|
+
// Matches both a bundled copy shipped inside the package (published) and the
|
|
24
|
+
// monorepo content tree (dev), since both live at `<dir>/agent-context`.
|
|
25
|
+
const candidate = join(dir, "agent-context");
|
|
26
|
+
if (isContentRoot(candidate)) return candidate;
|
|
27
|
+
const parent = dirname(dir);
|
|
28
|
+
if (parent === dir) break;
|
|
29
|
+
dir = parent;
|
|
30
|
+
}
|
|
31
|
+
throw new Error(
|
|
32
|
+
"agent-context content not found — looked for a bundled `agent-context/` beside the package " +
|
|
33
|
+
"and a monorepo `agent-context/` walking up from the sdk module.",
|
|
34
|
+
);
|
|
35
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SERVER_LANGS, CLIENT_FRAMEWORKS, MIGRATION_TOKEN,
|
|
3
|
+
type ServerLang, type ClientFramework, type Stack,
|
|
4
|
+
} from "./types.js";
|
|
5
|
+
|
|
6
|
+
export interface ProjectProbe {
|
|
7
|
+
hasDep(name: string): boolean;
|
|
8
|
+
hasFileMatching(pattern: RegExp): boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function makeStack(servers: ServerLang[], clients: ClientFramework[]): Stack {
|
|
12
|
+
const s = SERVER_LANGS.filter((x) => servers.includes(x));
|
|
13
|
+
const c = CLIENT_FRAMEWORKS.filter((x) => clients.includes(x));
|
|
14
|
+
return { servers: s, clients: c, tokens: new Set<string>([...s, ...c, MIGRATION_TOKEN]) };
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Best-effort detection from a project probe. Always overridable; a wrong guess
|
|
18
|
+
* writes an extra fragment, never a wrong one (callers confirm before scaffolding). */
|
|
19
|
+
export function detectStack(probe: ProjectProbe): { servers: ServerLang[]; clients: ClientFramework[] } {
|
|
20
|
+
const servers: ServerLang[] = [];
|
|
21
|
+
if (probe.hasDep("@metaobjectsdev/cli") || probe.hasDep("@metaobjectsdev/codegen-ts")) servers.push("typescript");
|
|
22
|
+
if (probe.hasFileMatching(/(^|\/)build\.gradle(\.kts)?$/)) servers.push("kotlin");
|
|
23
|
+
if (probe.hasFileMatching(/(^|\/)pom\.xml$/)) servers.push("java");
|
|
24
|
+
if (probe.hasFileMatching(/\.csproj$/)) servers.push("csharp");
|
|
25
|
+
if (probe.hasFileMatching(/(^|\/)(pyproject\.toml|setup\.py)$/)) servers.push("python");
|
|
26
|
+
|
|
27
|
+
const clients: ClientFramework[] = [];
|
|
28
|
+
if (probe.hasDep("@metaobjectsdev/react")) clients.push("react");
|
|
29
|
+
if (probe.hasDep("@metaobjectsdev/tanstack")) clients.push("tanstack");
|
|
30
|
+
if (probe.hasDep("@metaobjectsdev/angular")) clients.push("angular");
|
|
31
|
+
|
|
32
|
+
return { servers, clients };
|
|
33
|
+
}
|