@manifesto-ai/codegen 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +114 -10
  3. package/dist/index.js +543 -13
  4. package/dist/index.js.map +1 -1
  5. package/package.json +4 -4
  6. package/dist/header.d.ts +0 -13
  7. package/dist/header.d.ts.map +0 -1
  8. package/dist/header.js +0 -18
  9. package/dist/header.js.map +0 -1
  10. package/dist/index.d.ts.map +0 -1
  11. package/dist/path-safety.d.ts +0 -16
  12. package/dist/path-safety.d.ts.map +0 -1
  13. package/dist/path-safety.js +0 -47
  14. package/dist/path-safety.js.map +0 -1
  15. package/dist/plugins/index.d.ts +0 -5
  16. package/dist/plugins/index.d.ts.map +0 -1
  17. package/dist/plugins/index.js +0 -3
  18. package/dist/plugins/index.js.map +0 -1
  19. package/dist/plugins/ts-plugin.d.ts +0 -11
  20. package/dist/plugins/ts-plugin.d.ts.map +0 -1
  21. package/dist/plugins/ts-plugin.js +0 -202
  22. package/dist/plugins/ts-plugin.js.map +0 -1
  23. package/dist/plugins/zod-plugin.d.ts +0 -6
  24. package/dist/plugins/zod-plugin.d.ts.map +0 -1
  25. package/dist/plugins/zod-plugin.js +0 -138
  26. package/dist/plugins/zod-plugin.js.map +0 -1
  27. package/dist/runner.d.ts +0 -13
  28. package/dist/runner.d.ts.map +0 -1
  29. package/dist/runner.js +0 -126
  30. package/dist/runner.js.map +0 -1
  31. package/dist/stable-hash.d.ts +0 -7
  32. package/dist/stable-hash.d.ts.map +0 -1
  33. package/dist/stable-hash.js +0 -11
  34. package/dist/stable-hash.js.map +0 -1
  35. package/dist/types.d.ts +0 -50
  36. package/dist/types.d.ts.map +0 -1
  37. package/dist/types.js +0 -2
  38. package/dist/types.js.map +0 -1
  39. package/dist/virtual-fs.d.ts +0 -27
  40. package/dist/virtual-fs.d.ts.map +0 -1
  41. package/dist/virtual-fs.js +0 -74
  42. package/dist/virtual-fs.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"zod-plugin.js","sourceRoot":"","sources":["../../src/plugins/zod-plugin.ts"],"names":[],"mappings":"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"}
package/dist/runner.d.ts DELETED
@@ -1,13 +0,0 @@
1
- import type { GenerateOptions, GenerateResult } from "./types.js";
2
- /**
3
- * Generate typed artifacts from a DomainSchema using plugins.
4
- *
5
- * This is the sole entry point for codegen. It orchestrates:
6
- * - Plugin name uniqueness validation (GEN-2)
7
- * - Sequential plugin execution (GEN-3, GEN-7)
8
- * - FilePatch composition with collision detection
9
- * - Error gating (GEN-5, GEN-8)
10
- * - outDir clean + file flush (GEN-1)
11
- */
12
- export declare function generate(opts: GenerateOptions): Promise<GenerateResult>;
13
- //# sourceMappingURL=runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,eAAe,EACf,cAAc,EACf,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAqG7E"}
package/dist/runner.js DELETED
@@ -1,126 +0,0 @@
1
- import * as fs from "node:fs/promises";
2
- import * as nodePath from "node:path";
3
- import { VirtualFS } from "./virtual-fs.js";
4
- import { validatePath } from "./path-safety.js";
5
- import { stableHash } from "./stable-hash.js";
6
- import { generateHeader } from "./header.js";
7
- /**
8
- * Generate typed artifacts from a DomainSchema using plugins.
9
- *
10
- * This is the sole entry point for codegen. It orchestrates:
11
- * - Plugin name uniqueness validation (GEN-2)
12
- * - Sequential plugin execution (GEN-3, GEN-7)
13
- * - FilePatch composition with collision detection
14
- * - Error gating (GEN-5, GEN-8)
15
- * - outDir clean + file flush (GEN-1)
16
- */
17
- export async function generate(opts) {
18
- const diagnostics = [];
19
- const allArtifacts = {};
20
- const vfs = new VirtualFS();
21
- // GEN-2: Validate plugin name uniqueness
22
- const nameError = validatePluginNames(opts.plugins);
23
- if (nameError) {
24
- return {
25
- files: [],
26
- artifacts: {},
27
- diagnostics: [nameError],
28
- };
29
- }
30
- // GEN-3, GEN-7: Execute plugins sequentially in array order
31
- for (const plugin of opts.plugins) {
32
- const ctx = {
33
- schema: opts.schema,
34
- sourceId: opts.sourceId,
35
- outDir: opts.outDir,
36
- artifacts: Object.freeze({ ...allArtifacts }), // PLG-9: frozen snapshot
37
- helpers: { stableHash },
38
- };
39
- let output;
40
- try {
41
- output = await plugin.generate(ctx);
42
- }
43
- catch (err) {
44
- // Convert plugin exceptions to error diagnostics (errors as values)
45
- diagnostics.push({
46
- level: "error",
47
- plugin: plugin.name,
48
- message: `Plugin threw: ${err instanceof Error ? err.message : String(err)}`,
49
- });
50
- continue;
51
- }
52
- // GEN-4: Merge plugin diagnostics
53
- if (output.diagnostics) {
54
- diagnostics.push(...output.diagnostics);
55
- }
56
- // Validate and apply patches
57
- for (const patch of output.patches) {
58
- const validation = validatePath(patch.path);
59
- if (!validation.valid) {
60
- diagnostics.push({
61
- level: "error",
62
- plugin: plugin.name,
63
- message: `Invalid path "${patch.path}": ${validation.reason}`,
64
- });
65
- continue;
66
- }
67
- // Apply with normalized path
68
- const normalizedPatch = patch.op === "set"
69
- ? { op: "set", path: validation.normalized, content: patch.content }
70
- : { op: "delete", path: validation.normalized };
71
- const collision = vfs.applyPatch(normalizedPatch, plugin.name);
72
- if (collision) {
73
- diagnostics.push(collision);
74
- }
75
- }
76
- // PLG-8: Store artifacts at allArtifacts[plugin.name]
77
- if (output.artifacts) {
78
- allArtifacts[plugin.name] = output.artifacts;
79
- }
80
- }
81
- // Collect files from VFS
82
- const files = vfs.getFiles();
83
- // GEN-5, GEN-8: Error gate — no disk mutation on error
84
- const hasErrors = diagnostics.some((d) => d.level === "error");
85
- if (hasErrors) {
86
- return { files, artifacts: allArtifacts, diagnostics };
87
- }
88
- // GEN-1: Clean outDir before write
89
- await fs.rm(opts.outDir, { recursive: true, force: true });
90
- // Build header
91
- const header = generateHeader({
92
- sourceId: opts.sourceId,
93
- schemaHash: opts.schema.hash,
94
- stamp: opts.stamp,
95
- });
96
- // Flush files to disk (GEN-6: OS path conversion only at write time)
97
- for (const file of files) {
98
- const absPath = nodePath.join(opts.outDir, ...file.path.split("/"));
99
- const dir = nodePath.dirname(absPath);
100
- await fs.mkdir(dir, { recursive: true });
101
- await fs.writeFile(absPath, header + file.content, "utf-8");
102
- }
103
- return { files, artifacts: allArtifacts, diagnostics };
104
- }
105
- function validatePluginNames(plugins) {
106
- const seen = new Set();
107
- for (const plugin of plugins) {
108
- if (!plugin.name) {
109
- return {
110
- level: "error",
111
- plugin: "",
112
- message: "Plugin name must not be empty (PLG-1)",
113
- };
114
- }
115
- if (seen.has(plugin.name)) {
116
- return {
117
- level: "error",
118
- plugin: plugin.name,
119
- message: `Duplicate plugin name "${plugin.name}" (GEN-2)`,
120
- };
121
- }
122
- seen.add(plugin.name);
123
- }
124
- return undefined;
125
- }
126
- //# sourceMappingURL=runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Deterministic hash function (DET-1).
3
- * Same input always produces the same output.
4
- * Uses Core's canonical form (sorted keys, no undefined) + SHA-256.
5
- */
6
- export declare function stableHash(input: unknown): string;
7
- //# sourceMappingURL=stable-hash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stable-hash.d.ts","sourceRoot":"","sources":["../src/stable-hash.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGjD"}
@@ -1,11 +0,0 @@
1
- import { toCanonical, sha256Sync } from "@manifesto-ai/core";
2
- /**
3
- * Deterministic hash function (DET-1).
4
- * Same input always produces the same output.
5
- * Uses Core's canonical form (sorted keys, no undefined) + SHA-256.
6
- */
7
- export function stableHash(input) {
8
- const canonical = toCanonical(input);
9
- return sha256Sync(canonical);
10
- }
11
- //# sourceMappingURL=stable-hash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stable-hash.js","sourceRoot":"","sources":["../src/stable-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,50 +0,0 @@
1
- import type { DomainSchema } from "@manifesto-ai/core";
2
- export type { DomainSchema };
3
- export type Diagnostic = {
4
- readonly level: "warn" | "error";
5
- readonly plugin: string;
6
- readonly message: string;
7
- };
8
- export type FilePatch = {
9
- readonly op: "set";
10
- readonly path: string;
11
- readonly content: string;
12
- } | {
13
- readonly op: "delete";
14
- readonly path: string;
15
- };
16
- export interface CodegenHelpers {
17
- stableHash(input: unknown): string;
18
- }
19
- export interface CodegenContext {
20
- readonly schema: DomainSchema;
21
- readonly sourceId?: string;
22
- readonly outDir: string;
23
- readonly artifacts: Readonly<Record<string, unknown>>;
24
- readonly helpers: CodegenHelpers;
25
- }
26
- export interface CodegenOutput {
27
- readonly patches: readonly FilePatch[];
28
- readonly artifacts?: Readonly<Record<string, unknown>>;
29
- readonly diagnostics?: readonly Diagnostic[];
30
- }
31
- export interface CodegenPlugin {
32
- readonly name: string;
33
- generate(ctx: CodegenContext): CodegenOutput | Promise<CodegenOutput>;
34
- }
35
- export interface GenerateOptions {
36
- readonly schema: DomainSchema;
37
- readonly outDir: string;
38
- readonly plugins: readonly CodegenPlugin[];
39
- readonly sourceId?: string;
40
- readonly stamp?: boolean;
41
- }
42
- export interface GenerateResult {
43
- readonly files: ReadonlyArray<{
44
- readonly path: string;
45
- readonly content: string;
46
- }>;
47
- readonly artifacts: Readonly<Record<string, unknown>>;
48
- readonly diagnostics: readonly Diagnostic[];
49
- }
50
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C"}
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import type { Diagnostic, FilePatch } from "./types.js";
2
- /**
3
- * Virtual filesystem for composing FilePatch operations.
4
- *
5
- * Maintains an in-memory FS and detects collisions per FP-5, FP-6, FP-7.
6
- * Paths are assumed to be already validated/normalized.
7
- */
8
- export declare class VirtualFS {
9
- private readonly files;
10
- private readonly deleted;
11
- /**
12
- * Apply a FilePatch to the virtual FS.
13
- * Returns a Diagnostic if a collision/warning condition is detected.
14
- */
15
- applyPatch(patch: FilePatch, pluginName: string): Diagnostic | undefined;
16
- private applySet;
17
- private applyDelete;
18
- /**
19
- * Get all files in deterministic (lexicographic) order (DET-5).
20
- */
21
- getFiles(): Array<{
22
- path: string;
23
- content: string;
24
- }>;
25
- has(path: string): boolean;
26
- }
27
- //# sourceMappingURL=virtual-fs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"virtual-fs.d.ts","sourceRoot":"","sources":["../src/virtual-fs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOxD;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAOxE,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,WAAW;IA4BnB;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMpD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG3B"}
@@ -1,74 +0,0 @@
1
- /**
2
- * Virtual filesystem for composing FilePatch operations.
3
- *
4
- * Maintains an in-memory FS and detects collisions per FP-5, FP-6, FP-7.
5
- * Paths are assumed to be already validated/normalized.
6
- */
7
- export class VirtualFS {
8
- files = new Map();
9
- deleted = new Set();
10
- /**
11
- * Apply a FilePatch to the virtual FS.
12
- * Returns a Diagnostic if a collision/warning condition is detected.
13
- */
14
- applyPatch(patch, pluginName) {
15
- if (patch.op === "set") {
16
- return this.applySet(patch.path, patch.content, pluginName);
17
- }
18
- return this.applyDelete(patch.path, pluginName);
19
- }
20
- applySet(path, content, pluginName) {
21
- const existing = this.files.get(path);
22
- if (existing) {
23
- // FP-5: Duplicate set on same path -> error
24
- const samePlugin = existing.source === pluginName;
25
- return {
26
- level: "error",
27
- plugin: pluginName,
28
- message: samePlugin
29
- ? `Duplicate set on "${path}" within plugin "${pluginName}"`
30
- : `File "${path}" already set by plugin "${existing.source}", cannot be set again by "${pluginName}"`,
31
- };
32
- }
33
- // delete-then-set is allowed (intentional regeneration)
34
- this.deleted.delete(path);
35
- this.files.set(path, { content, source: pluginName });
36
- return undefined;
37
- }
38
- applyDelete(path, pluginName) {
39
- const existing = this.files.get(path);
40
- if (!existing && !this.deleted.has(path)) {
41
- // FP-7: Delete on nonexistent path -> warn
42
- return {
43
- level: "warn",
44
- plugin: pluginName,
45
- message: `Delete on nonexistent path "${path}"`,
46
- };
47
- }
48
- if (existing) {
49
- // FP-6: set-then-delete -> allowed with warning
50
- this.files.delete(path);
51
- this.deleted.add(path);
52
- return {
53
- level: "warn",
54
- plugin: pluginName,
55
- message: `File "${path}" set by plugin "${existing.source}" is being deleted by "${pluginName}". Prior work is voided.`,
56
- };
57
- }
58
- // Already deleted - just track it
59
- this.deleted.add(path);
60
- return undefined;
61
- }
62
- /**
63
- * Get all files in deterministic (lexicographic) order (DET-5).
64
- */
65
- getFiles() {
66
- const entries = Array.from(this.files.entries());
67
- entries.sort(([a], [b]) => a.localeCompare(b));
68
- return entries.map(([path, { content }]) => ({ path, content }));
69
- }
70
- has(path) {
71
- return this.files.has(path);
72
- }
73
- }
74
- //# sourceMappingURL=virtual-fs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"virtual-fs.js","sourceRoot":"","sources":["../src/virtual-fs.ts"],"names":[],"mappings":"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"}