@aotter/mantle 0.1.3 → 0.1.5-alpha.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.
Files changed (105) hide show
  1. package/README.md +20 -20
  2. package/dist/cli/generate-cloudflare.d.ts +7 -0
  3. package/dist/cli/generate-cloudflare.d.ts.map +1 -0
  4. package/dist/cli/generate-cloudflare.js +123 -0
  5. package/dist/cli/generate-cloudflare.js.map +1 -0
  6. package/dist/cli/generate-project.d.ts +25 -0
  7. package/dist/cli/generate-project.d.ts.map +1 -0
  8. package/dist/cli/generate-project.js +282 -0
  9. package/dist/cli/generate-project.js.map +1 -0
  10. package/dist/cli/generate-sites.d.ts +8 -0
  11. package/dist/cli/generate-sites.d.ts.map +1 -0
  12. package/dist/cli/generate-sites.js +273 -0
  13. package/dist/cli/generate-sites.js.map +1 -0
  14. package/dist/cli/generate.d.ts.map +1 -1
  15. package/dist/cli/generate.js +121 -10
  16. package/dist/cli/generate.js.map +1 -1
  17. package/dist/cli/main.d.ts +1 -1
  18. package/dist/cli/main.d.ts.map +1 -1
  19. package/dist/cli/main.js +11 -11
  20. package/dist/cli/skills.js +1 -1
  21. package/dist/cli/skills.js.map +1 -1
  22. package/docs/adr/0001-four-atom-manifest-model.md +3 -2
  23. package/docs/adr/0013-agent-provisioned-consumer-projects.md +4 -4
  24. package/docs/adr/0016-site-semantic-layer.md +5 -4
  25. package/docs/adr/0018-core-starters-repository-boundary.md +1 -1
  26. package/docs/adr/0021-retire-starter-scaffolding.md +1 -1
  27. package/docs/adr/0026-progressive-generate.md +36 -0
  28. package/docs/adr/0027-scheduled-procedure-triggers.md +31 -0
  29. package/docs/adr/0028-schema-ttl-expiry.md +33 -0
  30. package/docs/adr/README.md +7 -4
  31. package/docs/agent-prompts.md +41 -78
  32. package/docs/assets/mantle-admin-developer.png +0 -0
  33. package/docs/examples/README.md +1 -1
  34. package/docs/examples/host-chatgpt-sites/README.md +29 -12
  35. package/docs/examples/host-chatgpt-sites/drizzle/0003_store_instance_id.sql +1 -0
  36. package/docs/examples/host-chatgpt-sites/drizzle/0004_mantle.sql +10 -0
  37. package/docs/examples/host-chatgpt-sites/drizzle/0005_mantle.sql +24 -0
  38. package/docs/examples/host-chatgpt-sites/drizzle/meta/_journal.json +1 -1
  39. package/docs/examples/host-chatgpt-sites/drizzle/meta/mantle-state.json +60 -0
  40. package/docs/examples/host-chatgpt-sites/package.json +1 -1
  41. package/docs/examples/host-chatgpt-sites/public/site.css +1 -1
  42. package/docs/examples/host-chatgpt-sites/scripts/build.mjs +2 -1
  43. package/docs/examples/host-chatgpt-sites/scripts/check.mjs +2 -0
  44. package/docs/examples/host-chatgpt-sites/scripts/migration.mjs +42 -8
  45. package/docs/examples/host-chatgpt-sites/src/chatgpt-auth.ts +9 -6
  46. package/docs/examples/host-chatgpt-sites/src/index.ts +1 -1
  47. package/docs/examples/host-chatgpt-sites/src/web.ts +1 -1
  48. package/docs/examples/host-local-admin-otp/package.json +2 -2
  49. package/docs/examples/host-minimal-worker/README.md +5 -5
  50. package/docs/examples/host-minimal-worker/package.json +2 -2
  51. package/docs/handbook/{sites → chatgpt-sites}/equipment-checkout.md +1 -1
  52. package/docs/handbook/chatgpt-sites/generated-app.md +84 -0
  53. package/docs/handbook/{sites → chatgpt-sites}/index.md +35 -13
  54. package/docs/handbook/cloudflare/authentication.md +19 -2
  55. package/docs/handbook/cloudflare/bindings.md +4 -11
  56. package/docs/handbook/cloudflare/chatgpt-sites.md +6 -6
  57. package/docs/handbook/cloudflare/conventional-worker.md +7 -3
  58. package/docs/handbook/cloudflare/deploy-and-operate.md +4 -3
  59. package/docs/handbook/cloudflare/media-r2.md +2 -2
  60. package/docs/handbook/concepts/four-atoms.md +1 -1
  61. package/docs/handbook/concepts/lifecycle-and-locales.md +1 -1
  62. package/docs/handbook/concepts/mcp-and-agents.md +24 -4
  63. package/docs/handbook/concepts/procedures-and-triggers.md +1 -1
  64. package/docs/handbook/concepts/runtime-and-adapters.md +8 -1
  65. package/docs/handbook/concepts/views.md +1 -1
  66. package/docs/handbook/guides/agent-setup.md +8 -7
  67. package/docs/handbook/navigation.json +7 -6
  68. package/docs/handbook/reference/diagnostics.md +5 -0
  69. package/docs/handbook/reference/procedure.md +52 -1
  70. package/docs/handbook/reference/schema.md +27 -1
  71. package/docs/handbook/reference/surface.md +3 -3
  72. package/docs/handbook/reference/trigger.md +21 -1
  73. package/docs/handbook/releases/index.md +81 -1
  74. package/docs/handbook/start/overview.md +6 -3
  75. package/docs/handbook/start/project-and-cli.md +103 -119
  76. package/docs/handbook/start/quickstart-admin.md +6 -4
  77. package/docs/handbook/start/quickstart-worker.md +17 -11
  78. package/docs/release-process.md +3 -2
  79. package/docs/sealed-pipeline-ownership.md +1 -1
  80. package/docs/skills/develop/SKILL.md +258 -0
  81. package/docs/skills/integrate/SKILL.md +60 -0
  82. package/docs/skills/media-gc/SKILL.md +85 -0
  83. package/docs/skills/plugin/SKILL.md +132 -0
  84. package/docs/skills/provision/SKILL.md +194 -0
  85. package/docs/skills/theme/SKILL.md +77 -0
  86. package/docs/skills/update/SKILL.md +51 -0
  87. package/docs/spec-only-host-adoption.md +1 -1
  88. package/package.json +19 -18
  89. package/skills/README.md +28 -21
  90. package/skills/develop/SKILL.md +16 -8
  91. package/skills/install/SKILL.md +103 -128
  92. package/skills/integrate/SKILL.md +60 -0
  93. package/skills/media-gc/SKILL.md +2 -2
  94. package/skills/plugin/SKILL.md +2 -2
  95. package/skills/provision/SKILL.md +3 -3
  96. package/skills/theme/SKILL.md +2 -2
  97. package/skills/update/SKILL.md +2 -2
  98. package/templates/chatgpt-sites/auth.ts +66 -0
  99. package/templates/chatgpt-sites/build.mjs +14 -0
  100. package/templates/chatgpt-sites/env.ts +1 -0
  101. package/templates/chatgpt-sites/mcp.ts +48 -0
  102. package/templates/chatgpt-sites/public-mcp.ts +29 -0
  103. package/templates/chatgpt-sites/smoke-local.mjs +20 -0
  104. package/skills/.keep +0 -0
  105. /package/docs/handbook/{sites → chatgpt-sites}/host-reference.md +0 -0
@@ -0,0 +1,273 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { access, readFile, readdir, mkdir, writeFile, appendFile } from "node:fs/promises";
3
+ import { basename, dirname, join, relative, resolve, sep } from "node:path";
4
+ import { buildSqliteMigrationArtifact, fieldColumn, quoteIdent, renderSqliteManagedMigration } from "@aotter/mantle-runtime";
5
+ import { assertInsideProject } from "./generate-project.js";
6
+ export async function prepareSites(root, output, selection, schemas, check, reviewUniqueIndexes = false) {
7
+ const has = (feature) => selection.features.includes(feature);
8
+ const name = basename(root).toLowerCase().replace(/[^a-z0-9-]/g, "-").replace(/^-+|-+$/g, "").slice(0, 63).replace(/-+$/, "") || "mantle-site";
9
+ const worker = resolve(root, output, "worker.ts");
10
+ const indexImport = importPath(join(root, "src/index.ts"), worker);
11
+ const files = [
12
+ { path: worker, content: workerSource(root, worker, selection), owned: true },
13
+ { path: "src/index.ts", content: `export { default } from "${indexImport}";\n` },
14
+ { path: "src/handlers.ts", content: 'import type { AnyHandler } from "@aotter/mantle/runtime";\n\nexport const handlers: Record<string, AnyHandler> = {};\n' },
15
+ { path: "scripts/build.mjs", content: await template("build.mjs") },
16
+ { path: "tsconfig.json", content: `${JSON.stringify({ compilerOptions: {
17
+ target: "ES2022", module: "ESNext", moduleResolution: "Bundler", strict: true, skipLibCheck: true,
18
+ noEmit: true, types: ["@cloudflare/workers-types"], lib: ["ES2022", "DOM"],
19
+ }, include: ["src/**/*.ts", `${relative(root, resolve(root, output)).split(sep).join("/") || "."}/**/*.ts`] }, null, 2)}\n` },
20
+ { path: ".dev.vars.example", content: "# Local simulation only. Configure the real owner and origin through Sites before publishing.\nOWNER_EMAIL=you@example.com\nPUBLIC_ORIGIN=http://127.0.0.1:4174\n" },
21
+ ];
22
+ if (has("web"))
23
+ files.push({ path: "src/home.ts", content: 'export function home(): Response {\n return new Response(`<!doctype html><html lang="en"><meta charset="utf-8"><title>Mantle</title><body><main></main></body></html>`, { headers: { "content-type": "text/html; charset=utf-8" } });\n}\n' });
24
+ if (has("admin")) {
25
+ files.push({ path: "src/sites-auth.ts", content: await template("auth.ts") });
26
+ files.push({ path: "src/sites-mcp.ts", content: await template("mcp.ts") });
27
+ files.push({ path: "scripts/smoke-local.mjs", content: await template("smoke-local.mjs") });
28
+ }
29
+ else if (has("mcp")) {
30
+ files.push({ path: "src/sites-env.ts", content: await template("env.ts") });
31
+ files.push({ path: "src/sites-mcp.ts", content: await template("public-mcp.ts") });
32
+ }
33
+ const wrangler = await Promise.all(["wrangler.jsonc", "wrangler.json", "wrangler.toml"].map(async (path) => ({ path, content: await optional(join(root, path)) })));
34
+ const existingWrangler = wrangler.filter(file => file.content !== null);
35
+ if (existingWrangler.length > 1)
36
+ throw new Error(`Multiple Wrangler configs found: ${existingWrangler.map(file => file.path).join(", ")}.`);
37
+ let dbName = name;
38
+ if (existingWrangler.length) {
39
+ const config = existingWrangler[0];
40
+ await assertInsideProject(root, join(root, config.path));
41
+ const configuredName = config.content.match(/\bdatabase_name["']?\s*[:=]\s*["']([^"']+)["']/)?.[1];
42
+ if (!configuredName || !/\bmigrations_dir["']?\s*[:=]\s*["']drizzle["']/.test(config.content)) {
43
+ throw new Error(`Existing ${config.path} must name its D1 database and use migrations_dir=drizzle.`);
44
+ }
45
+ if (has("admin") && (!/(?:^|[{,])\s*["']?workers_dev["']?\s*[:=]\s*false\b/m.test(config.content) ||
46
+ /(?:^|[{,])\s*["']?routes?["']?\s*[:=]|^\s*\[\[?routes?\]\]?/m.test(config.content))) {
47
+ throw new Error(`Existing ${config.path} must set workers_dev=false and have no direct Worker route before Sites identity can be trusted.`);
48
+ }
49
+ dbName = configuredName;
50
+ }
51
+ else {
52
+ files.push({ path: "wrangler.jsonc", content: `${JSON.stringify({
53
+ name, main: "dist/server/index.js", compatibility_date: "2026-09-08", workers_dev: false,
54
+ compatibility_flags: ["nodejs_compat", "global_fetch_strictly_public"],
55
+ ...(has("admin") ? { assets: { directory: "dist/client", binding: "ASSETS", run_worker_first: true } } : {}),
56
+ d1_databases: [{ binding: "DB", database_name: name, database_id: "local", migrations_dir: "drizzle" }],
57
+ }, null, 2)}\n` });
58
+ }
59
+ const hosting = await optional(join(root, ".openai/hosting.json"));
60
+ await assertInsideProject(root, join(root, ".openai/hosting.json"));
61
+ if (hosting !== null) {
62
+ if (JSON.parse(hosting).d1 !== "DB")
63
+ throw new Error("Existing Sites hosting.json must bind D1 as DB; project metadata is preserved.");
64
+ }
65
+ else
66
+ files.push({ path: ".openai/hosting.json", content: '{"d1":"DB"}\n' });
67
+ const writes = [];
68
+ for (const file of files) {
69
+ const path = resolve(root, file.path);
70
+ await assertInsideProject(root, path);
71
+ const current = await optional(path);
72
+ if (current !== null && file.owned && !current.startsWith("// Generated by `mantle generate`")) {
73
+ throw new Error(`Generated output would replace a user-owned file: ${path}`);
74
+ }
75
+ if (current === null || (file.owned && current !== file.content))
76
+ writes.push(file);
77
+ }
78
+ const migration = await prepareMigration(root, dbName, schemas, has("admin"), check, reviewUniqueIndexes);
79
+ const ignorePath = join(root, ".gitignore");
80
+ const ignored = await optional(ignorePath);
81
+ const ignoreMissing = !ignored?.split(/\r?\n/).includes(".dev.vars");
82
+ return {
83
+ stale: writes.length > 0 || migration.stale || ignoreMissing,
84
+ report: migration.report,
85
+ commit: async () => {
86
+ for (const file of writes) {
87
+ const path = resolve(root, file.path);
88
+ await mkdir(dirname(path), { recursive: true });
89
+ await writeFile(path, file.content, { flag: file.owned ? "w" : "wx" });
90
+ }
91
+ if (ignoreMissing) {
92
+ await assertInsideProject(root, ignorePath);
93
+ if (ignored === null)
94
+ await writeFile(ignorePath, "node_modules/\ndist/\n.wrangler/\n.dev.vars\n", { flag: "wx" });
95
+ else
96
+ await appendFile(ignorePath, `${ignored.endsWith("\n") ? "" : "\n"}.dev.vars\n`);
97
+ }
98
+ await migration.commit();
99
+ },
100
+ };
101
+ }
102
+ async function prepareMigration(root, dbName, schemas, admin, check, reviewUniqueIndexes) {
103
+ const statePath = join(root, "drizzle/meta/mantle-state.json");
104
+ const fingerprintPath = join(root, "src/storage-fingerprint.json");
105
+ const journalPath = join(root, "drizzle/meta/_journal.json");
106
+ for (const path of [statePath, fingerprintPath, journalPath])
107
+ await assertInsideProject(root, path);
108
+ const current = await optional(statePath);
109
+ const state = current ? JSON.parse(current) : null;
110
+ const artifact = await buildSqliteMigrationArtifact(state?.schemas ?? [], schemas, {
111
+ appliedMigrationIds: state?.appliedMigrationIds, reviewUniqueIndexes,
112
+ });
113
+ if (state && artifact.sourceFingerprint !== state.fingerprint)
114
+ throw new Error("Saved migration source fingerprint is invalid.");
115
+ if (artifact.destructive)
116
+ throw new Error("Destructive Schema change requires a reviewed migration; only unique-index tuple replacement supports --review-unique-indexes. No file was written.");
117
+ const fingerprint = await optional(fingerprintPath);
118
+ const fingerprintDrift = Boolean(state && fingerprint !== `${JSON.stringify(state.fingerprint)}\n`);
119
+ const changed = !state || artifact.migrations.length > 0 || artifact.sourceFingerprint !== artifact.targetFingerprint;
120
+ if (!changed)
121
+ return { stale: fingerprintDrift, report: undefined, commit: async () => {
122
+ if (fingerprintDrift && !check)
123
+ await writeFile(fingerprintPath, `${JSON.stringify(state.fingerprint)}\n`);
124
+ } };
125
+ if (fingerprintDrift)
126
+ throw new Error("Generated fingerprint and migration source disagree; finish or restore the pending migration first.");
127
+ const index = (state?.lastIndex ?? -1) + 1;
128
+ const tag = `${String(index).padStart(4, "0")}_mantle`;
129
+ const sqlPath = join(root, "drizzle", `${tag}.sql`);
130
+ const reviewPath = join(root, "drizzle/meta", `${tag}.review.json`);
131
+ const journalText = await optional(journalPath);
132
+ const journal = journalText ? JSON.parse(journalText) : null;
133
+ for (const path of [statePath, fingerprintPath, sqlPath, journalPath, reviewPath])
134
+ await assertInsideProject(root, path);
135
+ const sql = `${!state && admin ? `CREATE TABLE sites_users (id TEXT PRIMARY KEY NOT NULL, email TEXT NOT NULL UNIQUE, name TEXT NOT NULL, role TEXT CHECK (role IN ('owner','editor','contributor') OR role IS NULL), signed_in INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')));\n--> statement-breakpoint\n` : ""}${renderSqliteManagedMigration(artifact, state ? { canonicalVersion: state.canonicalVersion } : undefined)}`;
136
+ const existingSql = await optional(sqlPath);
137
+ if (existingSql !== null && existingSql !== sql)
138
+ throw new Error(`Migration file already exists with different SQL: ${sqlPath}`);
139
+ const reviewContent = artifact.reviewedUniqueIndexes?.length ? `${JSON.stringify({
140
+ sourceFingerprint: artifact.sourceFingerprint, targetFingerprint: artifact.targetFingerprint,
141
+ checksum: artifact.checksum, changes: artifact.reviewedUniqueIndexes,
142
+ steps: artifact.migrations.map(({ id, description, sql }) => ({ id, description, sql })),
143
+ rollback: "Old Worker activation is unsupported after this uniqueness change.",
144
+ }, null, 2)}\n` : null;
145
+ const existingReview = await optional(reviewPath);
146
+ if (existingReview !== null && existingReview !== reviewContent)
147
+ throw new Error(`Reviewed migration report already exists with different content: ${reviewPath}`);
148
+ const last = journal?.entries?.at(-1);
149
+ const journalAhead = last?.idx === index && last.tag === tag && existingSql === sql;
150
+ if (state && !journalAhead && last?.idx !== state.lastIndex)
151
+ throw new Error("Sites migration journal does not match saved state.");
152
+ if (!state && journalText !== null && !journalAhead)
153
+ throw new Error("Existing D1 migration journal conflicts with initial Mantle migration state.");
154
+ const migrationFiles = await readdir(join(root, "drizzle")).catch((error) => {
155
+ if (error.code === "ENOENT")
156
+ return [];
157
+ throw error;
158
+ });
159
+ if (!state && migrationFiles.some(file => file.endsWith(".sql") && file !== `${tag}.sql`))
160
+ throw new Error("Existing D1 migrations conflict with initial Mantle migration state.");
161
+ if (artifact.reviewedUniqueIndexes?.length) {
162
+ if (!state)
163
+ throw new Error("Reviewed unique-index replacement requires an existing managed Schema.");
164
+ await verifyLocalD1(root, dbName, state, existingSql === sql ? {
165
+ ...state, fingerprint: artifact.targetFingerprint, canonicalVersion: artifact.targetCanonicalVersion,
166
+ } : undefined);
167
+ for (const change of artifact.reviewedUniqueIndexes) {
168
+ const schema = schemas.find(item => item.metadata.name === change.schema);
169
+ for (const fields of change.added) {
170
+ const columns = fields.map(field => quoteIdent(fieldColumn(schema, field)));
171
+ const group = `SELECT ${columns.join(", ")}, COUNT(*) AS copies FROM ${quoteIdent(change.schema)} WHERE ${columns.map(column => `${column} IS NOT NULL`).join(" AND ")} GROUP BY ${columns.join(", ")} HAVING COUNT(*) > 1`;
172
+ const conflicts = queryLocalD1(root, dbName, `SELECT COUNT(*) AS groups FROM (${group})`)[0];
173
+ if (conflicts?.groups) {
174
+ const sample = queryLocalD1(root, dbName, `${group} LIMIT 3`);
175
+ throw new Error(`UNIQUE_INDEX_CONFLICT: ${change.schema} (${fields.join(", ")}) has ${conflicts.groups} duplicate group(s); sample ${JSON.stringify(sample)}. No migration was written.`);
176
+ }
177
+ }
178
+ }
179
+ }
180
+ const nextState = { fingerprint: artifact.targetFingerprint, canonicalVersion: artifact.targetCanonicalVersion, schemas,
181
+ appliedMigrationIds: [...new Set([...(state?.appliedMigrationIds ?? []), ...artifact.migrations.map(({ id }) => id)])], lastIndex: index };
182
+ const nextJournal = { version: "7", dialect: "sqlite", entries: [...(journal?.entries ?? []), {
183
+ idx: index, version: "6", when: Date.now(), tag, breakpoints: true,
184
+ }] };
185
+ return {
186
+ stale: true,
187
+ report: artifact.reviewedUniqueIndexes?.length ? `Reviewed unique-index plan: ${JSON.stringify({ source: artifact.sourceFingerprint, target: artifact.targetFingerprint, checksum: artifact.checksum, changes: artifact.reviewedUniqueIndexes, sql: relative(root, sqlPath), rollback: "Old Worker activation is unsupported after this uniqueness change." })}` : undefined,
188
+ commit: async () => {
189
+ if (check)
190
+ return;
191
+ if (state)
192
+ await verifyLocalD1(root, dbName, state, existingSql === sql ? nextState : undefined);
193
+ await mkdir(dirname(sqlPath), { recursive: true });
194
+ await mkdir(dirname(journalPath), { recursive: true });
195
+ await mkdir(dirname(fingerprintPath), { recursive: true });
196
+ if (existingSql === null)
197
+ await writeFile(sqlPath, sql, { flag: "wx" });
198
+ if (reviewContent !== null && existingReview === null)
199
+ await writeFile(reviewPath, reviewContent, { flag: "wx" });
200
+ if (!journalAhead)
201
+ await writeFile(journalPath, `${JSON.stringify(nextJournal)}\n`, { flag: journalText === null ? "wx" : "w" });
202
+ await writeFile(statePath, `${JSON.stringify(nextState, null, 2)}\n`);
203
+ await writeFile(fingerprintPath, `${JSON.stringify(artifact.targetFingerprint)}\n`);
204
+ },
205
+ };
206
+ }
207
+ async function verifyLocalD1(root, dbName, state, appliedNext) {
208
+ const wrangler = join(root, "node_modules/wrangler/bin/wrangler.js");
209
+ await access(wrangler).catch(() => { throw new Error("Install the generated project dependencies before verifying local D1 migrations."); });
210
+ const query = (sql) => queryLocalD1(root, dbName, sql);
211
+ const active = query("SELECT fingerprint FROM _mantle_storage_state WHERE id=1")[0];
212
+ const expected = active?.fingerprint === state.fingerprint ? state :
213
+ active?.fingerprint === appliedNext?.fingerprint ? appliedNext : null;
214
+ if (!expected)
215
+ throw new Error("Local D1 has a pending migration. Apply it before generating another migration.");
216
+ const table = query("SELECT name FROM sqlite_schema WHERE type='table' AND name='_mantle_managed_runtime_state'")[0];
217
+ const version = table ? query("SELECT canonical_version FROM _mantle_managed_runtime_state WHERE id=1")[0]?.canonical_version : undefined;
218
+ if (version !== expected.canonicalVersion)
219
+ throw new Error("Local D1 runtime version does not match the applied migration state.");
220
+ }
221
+ function queryLocalD1(root, dbName, sql) {
222
+ const output = execFileSync(process.execPath, [join(root, "node_modules/wrangler/bin/wrangler.js"), "d1", "execute", dbName, "--local", "--command", sql, "--json"], { cwd: root, encoding: "utf8" });
223
+ return JSON.parse(output)[0]?.results ?? [];
224
+ }
225
+ async function optional(path) {
226
+ return readFile(path, "utf8").catch((error) => {
227
+ if (error.code === "ENOENT")
228
+ return null;
229
+ throw error;
230
+ });
231
+ }
232
+ async function template(name) {
233
+ return readFile(new URL(`../../templates/chatgpt-sites/${name}`, import.meta.url), "utf8");
234
+ }
235
+ function importPath(from, to) {
236
+ const path = relative(dirname(from), to).split(sep).join("/").replace(/\.ts$/, ".js");
237
+ return path.startsWith(".") ? path : `./${path}`;
238
+ }
239
+ function workerSource(root, worker, selection) {
240
+ const has = (feature) => selection.features.includes(feature);
241
+ const from = (path) => importPath(worker, join(root, path));
242
+ const admin = has("admin");
243
+ const mcp = has("mcp");
244
+ return `// Generated by \`mantle generate\`. Edit src/home.ts and src/handlers.ts instead.\n` +
245
+ `import { Hono } from "hono";\n` +
246
+ `import { bootMantleRuntime, SqliteMantleStorageAdapter${has("api") ? ", createMantleRequestHandler" : ""}, type MantleRuntime } from "@aotter/mantle/runtime";\n` +
247
+ `import { D1DatabaseDriver${admin ? ", AssetsAssetServer" : ""} } from "@aotter/mantle/cloudflare";\n` +
248
+ (admin ? `import { mountMantleAdmin, type MantleAdminRuntime } from "@aotter/mantle/admin";\n` : "") +
249
+ `import { plan } from "./mantle.js";\n` +
250
+ `import { handlers } from "${from("src/handlers.ts")}";\n` +
251
+ `import fingerprint from "${from("src/storage-fingerprint.json")}";\n` +
252
+ (has("web") ? `import { home } from "${from("src/home.ts")}";\n` : "") +
253
+ (admin ? `import { createChatGPTAuth, type Env } from "${from("src/sites-auth.ts")}";\n` :
254
+ mcp ? `import type { Env } from "${from("src/sites-env.ts")}";\n` : `interface Env { DB: D1Database; PUBLIC_ORIGIN: string; ASSETS?: Fetcher }\n`) +
255
+ (mcp ? `import { ${admin ? "mountMcp" : "mountPublicMcp"} } from "${from("src/sites-mcp.ts")}";\n` : "") +
256
+ `\nfunction assemble(env: Env) {\n` +
257
+ ` if (!env.PUBLIC_ORIGIN) throw new Error("Set PUBLIC_ORIGIN to the exact Sites origin.");\n` +
258
+ (admin ? ` if (!env.ASSETS) throw new Error("Sites Admin requires the ASSETS binding.");\n const auth = createChatGPTAuth(env);\n` : "") +
259
+ ` let runtime: Promise<${admin ? "MantleAdminRuntime" : "MantleRuntime"}> | undefined;\n` +
260
+ ` const get = () => runtime ??= bootMantleRuntime({\n plan, handlers,\n storage: new SqliteMantleStorageAdapter(new D1DatabaseDriver(env.DB), { brand: "Mantle", title: "Mantle", origin: env.PUBLIC_ORIGIN }, { managedStorageFingerprint: fingerprint }),\n })` +
261
+ (admin ? `.then(value => {\n if (!value.siteConfig || !value.updateSiteSettings) throw new Error("Admin storage unavailable.");\n return value as MantleAdminRuntime;\n })` : "") +
262
+ `.catch(error => { runtime = undefined; throw error; });\n` +
263
+ ` const app = new Hono<{ Bindings: Env }>();\n` +
264
+ ` app.use("*", async (c, next) => { await next(); if (!c.res.headers.has("Cache-Control")) c.header("Cache-Control", "private, no-store"); c.header("X-Content-Type-Options", "nosniff"); });\n` +
265
+ (has("web") ? ` app.get("/", () => home());\n` : "") +
266
+ ` app.get("/health", async () => { await get(); return Response.json({ ok: true, storage: "D1", auth: "ChatGPT Sites" }); });\n` +
267
+ (mcp ? ` ${admin ? "mountMcp(app, get, auth, plan)" : "mountPublicMcp(app, get, plan)"};\n` : "") +
268
+ (admin ? ` app.get("/admin/sign-in", async c => {\n if (c.req.header("cookie")?.split(";").some(value => value.trim() === "mantle-sites-signout=1")) {\n c.header("Set-Cookie", "mantle-sites-signout=; Path=/admin/sign-in; HttpOnly; SameSite=Strict; Max-Age=0" + (env.PUBLIC_ORIGIN.startsWith("https:") ? "; Secure" : ""));\n return c.redirect("/signout-with-chatgpt?return_to=%2F");\n }\n return c.redirect(await auth.getSession(c.req.raw) ? "/admin" : "/signin-with-chatgpt?return_to=%2Fadmin");\n });\n app.use("/admin/*", async (c, next) => {\n if (!c.req.path.startsWith("/admin/api/") && !await auth.getSession(c.req.raw)) return c.redirect("/signin-with-chatgpt?return_to=%2Fadmin");\n await next();\n });\n mountMantleAdmin(app, { plan, auth, get, assets: new AssetsAssetServer(env.ASSETS), mcpEndpoints: { public: "/api/mcp", staff: "/api/mcp/staff" }, requestContext: c => ({ env: c.env, waitUntil: promise => c.executionCtx.waitUntil(promise) }) });\n app.get("/_mantle/*", c => env.ASSETS!.fetch(c.req.raw));\n` : "") +
269
+ (has("api") ? ` const api = createMantleRequestHandler({ plan, getRuntime: get });\n app.use("*", async (c, next) => {\n const response = await api(c.req.raw, { user: null, staff: null, env: c.env, waitUntil: promise => c.executionCtx.waitUntil(promise) });\n if (response) return response;\n await next();\n });\n` : "") +
270
+ ` app.onError(error => { console.error("Mantle request failed", error); return Response.json({ error: "internal_error" }, { status: 500, headers: { "Cache-Control": "private, no-store" } }); });\n` +
271
+ ` return app;\n}\n\nlet app: ReturnType<typeof assemble> | undefined;\nexport default { fetch(request: Request, env: Env, ctx: ExecutionContext) { return (app ??= assemble(env)).fetch(request, env, ctx); } };\n`;
272
+ }
273
+ //# sourceMappingURL=generate-sites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-sites.js","sourceRoot":"","sources":["../../src/cli/generate-sites.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"AAiBA,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAOvD;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,MAAM,CAAC,CAiDjB;AA6CD,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK;2CAGvB,CAAC;mEAKe,CAAA;CARmC,GAAG,IAAI,CAmBzG;AAiBD,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK;2CAlCb,CAAC;mEAKe,CAAA;CA6ByB,GAAG,IAAI,CAa/F"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"AAwBA,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAOvD;AASD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,MAAM,CAAC,CA8HjB;AAwDD,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK;2CA3GZ,CAAC;mEAM+D,CAAC;CAqGzB,GAAG,IAAI,CAmBzG;AAiBD,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK;2CAhJF,CAAC;mEAM+D,CAAC;CA0InC,GAAG,IAAI,CAa/F"}
@@ -1,12 +1,15 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
2
  import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
3
3
  import { dirname, join, resolve } from "node:path";
4
+ import { createRequire } from "node:module";
4
5
  import { cwd, stderr, stdout } from "node:process";
5
6
  import { fileURLToPath } from "node:url";
6
7
  import { parseArgs } from "node:util";
7
- import { ValidateManifestsUseCase } from "@aotter/mantle-spec";
8
+ import { parseManifestSources, ValidateManifestsUseCase } from "@aotter/mantle-spec";
8
9
  import { loadManifestsFromRoot } from "@aotter/mantle-spec/cli";
9
10
  import { assertMantleNamespace, emitMantleModule } from "../codegen/emitMantleModule.js";
11
+ import { prepareProject } from "./generate-project.js";
12
+ import { prepareSites } from "./generate-sites.js";
10
13
  /**
11
14
  * Locate the optional Admin SPA. A Core-only install does not have
12
15
  * `@aotter/mantle-admin-ui`, so resolution failure is not an error.
@@ -20,6 +23,15 @@ export function resolveAdminUiIndexHtml() {
20
23
  return null;
21
24
  }
22
25
  }
26
+ function resolveProjectAdminUiIndexHtml(root) {
27
+ try {
28
+ const path = createRequire(join(root, "package.json")).resolve("@aotter/mantle-admin-ui/index.html");
29
+ return existsSync(path) ? path : null;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
23
35
  export async function runGenerate(rawArgs, deps = {}) {
24
36
  let options;
25
37
  try {
@@ -34,7 +46,42 @@ export async function runGenerate(rawArgs, deps = {}) {
34
46
  stderr.write(`${message(error)}\n`);
35
47
  return 2;
36
48
  }
37
- const loaded = await loadManifestsFromRoot(options.manifests);
49
+ const root = cwd();
50
+ let loaded = await loadManifestsFromRoot(options.manifests);
51
+ if (loaded.parseErrors.some((diagnostic) => diagnostic.code !== "MANIFEST_ROOT_NOT_FOUND") ||
52
+ (options.manifestsExplicit && loaded.parseErrors.length > 0)) {
53
+ printDiagnostics(loaded.parseErrors);
54
+ return 1;
55
+ }
56
+ let project;
57
+ try {
58
+ project = await prepareProject({
59
+ root, host: options.host, features: options.features, check: options.check, output: options.output,
60
+ });
61
+ }
62
+ catch (error) {
63
+ stderr.write(`${message(error)}\n`);
64
+ return 2;
65
+ }
66
+ if (project.mode === "project" && !options.manifestsExplicit && loaded.parseErrors.length === 1 &&
67
+ loaded.parseErrors[0]?.code === "MANIFEST_ROOT_NOT_FOUND") {
68
+ let names;
69
+ try {
70
+ names = await readdir(resolve(root, options.manifests));
71
+ }
72
+ catch (error) {
73
+ if (error.code !== "ENOENT") {
74
+ printDiagnostics(loaded.parseErrors);
75
+ return 1;
76
+ }
77
+ names = [];
78
+ }
79
+ if (!names.some((name) => /\.ya?ml$/i.test(name))) {
80
+ const empty = parseManifestSources({ sources: [] });
81
+ if (empty.ok)
82
+ loaded = { parsed: empty.value, parseErrors: [], root: loaded.root };
83
+ }
84
+ }
38
85
  const validation = loaded.parsed
39
86
  ? ValidateManifestsUseCase.run({ parsed: loaded.parsed })
40
87
  : { diagnostics: [], errorCount: 0, warningCount: 0 };
@@ -44,6 +91,13 @@ export async function runGenerate(rawArgs, deps = {}) {
44
91
  printDiagnostics(validationErrors);
45
92
  return 1;
46
93
  }
94
+ if (project.mode === "project" && project.selection?.host !== "cf") {
95
+ const schedule = loaded.parsed.entries.find((entry) => entry.manifest.kind === "Trigger" && entry.manifest.spec.source.kind === "schedule");
96
+ if (schedule) {
97
+ stderr.write(`RESOURCE_UNAVAILABLE: Trigger '${schedule.manifest.metadata.name}' requires host 'cf'; '${project.selection?.host ?? "none"}' does not register Cron Triggers.\n`);
98
+ return 1;
99
+ }
100
+ }
47
101
  const emitted = emitMantleModule({
48
102
  linked: validation.linked,
49
103
  namespace: options.namespace,
@@ -52,9 +106,46 @@ export async function runGenerate(rawArgs, deps = {}) {
52
106
  printDiagnostics(emitted.diagnostics);
53
107
  return 1;
54
108
  }
55
- const output = resolve(cwd(), options.output);
56
- let stale = !(await syncText(join(output, "mantle.ts"), emitted.source, options.check));
57
- const adminIndex = (deps.resolveAdminUiIndexHtml ?? resolveAdminUiIndexHtml)();
109
+ let sites = null;
110
+ if (options.reviewUniqueIndexes && project.selection?.host !== "chatgpt-sites") {
111
+ stderr.write("--review-unique-indexes requires a managed ChatGPT Sites project.\n");
112
+ return 2;
113
+ }
114
+ if (project.mode === "project" && project.selection?.host === "chatgpt-sites") {
115
+ try {
116
+ sites = await prepareSites(root, project.selection.output ?? options.output, project.selection, loaded.parsed.entries.filter((entry) => entry.manifest.kind === "Schema").map((entry) => entry.manifest), options.check, options.reviewUniqueIndexes);
117
+ if (sites.report)
118
+ stdout.write(`${sites.report}\n`);
119
+ }
120
+ catch (error) {
121
+ stderr.write(`${message(error)}\n`);
122
+ return 2;
123
+ }
124
+ }
125
+ const adminIndex = project.mode === "legacy" || project.selection?.features.includes("admin")
126
+ ? (deps.resolveAdminUiIndexHtml ?? (project.mode === "legacy" ? resolveAdminUiIndexHtml : () => resolveProjectAdminUiIndexHtml(root)))()
127
+ : null;
128
+ const adminUnavailable = project.selection?.features.includes("admin") && adminIndex === null;
129
+ if (adminUnavailable) {
130
+ stderr.write("Selected Admin UI is not installed or its assets are missing. Install declared packages and rerun mantle generate.\n");
131
+ if (!options.check && !project.incomplete)
132
+ return 1;
133
+ }
134
+ if (!options.check && project.commit) {
135
+ try {
136
+ await project.commit();
137
+ await sites?.commit();
138
+ }
139
+ catch (error) {
140
+ stderr.write(`${message(error)}\n`);
141
+ return 2;
142
+ }
143
+ }
144
+ if (project.incomplete && !options.check)
145
+ return 1;
146
+ const output = resolve(cwd(), project.selection?.output ?? options.output);
147
+ const generatedCurrent = await syncText(join(output, "mantle.ts"), emitted.source, options.check);
148
+ let stale = project.incomplete || adminUnavailable || !generatedCurrent || Boolean(sites?.stale);
58
149
  if (adminIndex !== null) {
59
150
  const adminSource = dirname(adminIndex);
60
151
  const adminTarget = resolve(cwd(), "public/_mantle/admin");
@@ -66,6 +157,15 @@ export async function runGenerate(rawArgs, deps = {}) {
66
157
  stderr.write("Mantle generated files are stale; run `mantle generate`.\n");
67
158
  return 1;
68
159
  }
160
+ if (project.mode === "project") {
161
+ if (!options.check)
162
+ stdout.write(project.selection?.host === "cf"
163
+ ? "Generated Cloudflare Worker composition and typed bindings.\n"
164
+ : project.selection?.host === "chatgpt-sites"
165
+ ? "Generated ChatGPT Sites composition and typed bindings. Apply reviewed local D1 migrations before serving.\n"
166
+ : "Generated host-free Spec bindings.\n");
167
+ return 0;
168
+ }
69
169
  if (!options.check)
70
170
  printGenerateNextSteps(adminIndex !== null);
71
171
  return 0;
@@ -77,6 +177,9 @@ function parseGenerateArgs(rawArgs) {
77
177
  manifests: { type: "string" },
78
178
  output: { type: "string", short: "o" },
79
179
  namespace: { type: "string" },
180
+ host: { type: "string" },
181
+ features: { type: "string" },
182
+ "review-unique-indexes": { type: "boolean" },
80
183
  check: { type: "boolean" },
81
184
  help: { type: "boolean", short: "h" },
82
185
  },
@@ -90,22 +193,30 @@ function parseGenerateArgs(rawArgs) {
90
193
  output: values.output ?? ".mantle/generated",
91
194
  namespace,
92
195
  check: values.check === true,
196
+ host: values.host,
197
+ features: values.features,
198
+ reviewUniqueIndexes: values["review-unique-indexes"] === true,
199
+ manifestsExplicit: values.manifests !== undefined,
93
200
  };
94
201
  }
95
202
  function printHelp() {
96
- stdout.write(`mantle generate — compile manifests into a typed runtime binding
203
+ stdout.write(`mantle generate — compile manifests and assemble selected application features
97
204
 
98
205
  Usage: mantle generate [options]
99
206
 
100
- This is the Minimal compile path (Spec + generate). It writes .mantle/generated/mantle.ts.
101
- Admin is opt-in: when @aotter/mantle-admin-ui is installed, generate also syncs
102
- the prebuilt Admin SPA. See \`mantle --help\` for optional surfaces.
207
+ For a new application, the default selects Spec, Runtime, API, MCP, Admin and Web.
208
+ Select a host with --host cf or --host chatgpt-sites. --features replaces the
209
+ default with a positive list; required feature dependencies are added.
210
+ Existing authored applications retain their direct-authoring compile mode.
103
211
 
104
212
  Options:
105
213
  --manifests <dir> Manifest directory (default: ./manifests)
106
214
  -o, --output <dir> Generated root (default: .mantle/generated)
107
215
  --namespace <name> Generated type namespace (default: Mantle)
108
- --check Fail without writing when generated code or Admin assets are stale
216
+ --host <name> cf or chatgpt-sites (required for host-dependent features)
217
+ --features <list> Comma-separated: spec,runtime,api,mcp,admin,web
218
+ --review-unique-indexes Plan a reviewed Sites unique-index tuple replacement
219
+ --check Check selection, dependencies and output without writing
109
220
  -h, --help This help
110
221
 
111
222
  Documentation:
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export declare const MANTLE_OVERVIEW = "mantle \u2014 compile manifests into a RuntimePlan and typed binding\n\nOverview\n Optional surfaces \u2014 take only what you need. Admin is opt-in. You can ship a\n complete service with no Dev UI, no visitor frontend, and no extra packages.\n\n Minimal \u2014 Spec + generate\n validate + generate compile manifests into a sealed plan and typed binding.\n Embed that binding in an existing host. No Admin, no visitor UI.\n\n Runtime / adapter\n Bind Runtime through an adapter (Cloudflare Worker, Bun, Vercel, or yours).\n HTTP Views, MCP, and Auth work without Admin.\n See docs/examples/host-minimal-worker or\n node_modules/@aotter/mantle/docs/examples/host-minimal-worker.\n\n Opt-in \u2014 Admin / Dev UI\n Add @aotter/mantle-admin and @aotter/mantle-admin-ui only when humans need\n a console. Then re-run generate, bind wrangler ASSETS, and open\n /admin/sign-in (local email OTP via ConsoleEmailSender).\n See docs/examples/host-local-admin-otp or\n node_modules/@aotter/mantle/docs/examples/host-local-admin-otp.\n\n Further (ask the subcommand for details)\n skills project version-matched agent instructions\n emit-openapi OpenAPI 3.1 from HTTP Triggers and Views\n mantle-harness measure indexes and live HTTP (separate binary)\n\nUsage: mantle <subcommand> [options]\n\nSubcommands:\n generate Compile manifests into a typed runtime binding\n validate Static manifest and handler-source validation\n skills Project version-matched Core skills\n emit-openapi Emit OpenAPI 3.1 from Triggers and Views\n\nDocumentation:\n Start: node_modules/@aotter/mantle/docs/handbook/start/overview.md\n Features: node_modules/@aotter/mantle/docs/handbook/reference/features.md\n Admin UI: node_modules/@aotter/mantle/docs/handbook/guides/admin-ui.md\n Online: https://mantle.tools/\n Install skill: npx skills add aotter/mantle --skill install\n";
2
+ export declare const MANTLE_OVERVIEW = "mantle \u2014 compile manifests and assemble selected application features\n\nOverview\n New applications default to Spec, Runtime, API, MCP, Admin, and a blank Web\n home. Pass --host cf or --host chatgpt-sites, or use --features for a smaller\n positive selection. Existing authored applications keep compile-only mode.\n\n Host-free \u2014 Spec only\n mantle generate --features spec compiles a sealed plan and typed binding\n without Runtime, Admin, visitor UI, or a host.\n\n Runtime / adapter\n Bind Runtime through an adapter (Cloudflare Worker, Bun, Vercel, or yours).\n HTTP Views, MCP, and Auth work without Admin.\n See docs/examples/host-minimal-worker or\n node_modules/@aotter/mantle/docs/examples/host-minimal-worker.\n\n Selected Admin / Dev UI\n New full applications include the prebuilt UI. Reduced applications can\n omit it; selected packages must be installed before generation completes.\n See docs/examples/host-local-admin-otp or\n node_modules/@aotter/mantle/docs/examples/host-local-admin-otp.\n\n Further (ask the subcommand for details)\n skills project version-matched agent instructions\n emit-openapi OpenAPI 3.1 from HTTP Triggers and Views\n mantle-harness measure indexes and live HTTP (separate binary)\n\nUsage: mantle <subcommand> [options]\n\nSubcommands:\n generate Compile manifests into a typed runtime binding\n validate Static manifest and handler-source validation\n skills Project version-matched Core skills\n emit-openapi Emit OpenAPI 3.1 from Triggers and Views\n\nDocumentation:\n Start: node_modules/@aotter/mantle/docs/handbook/start/overview.md\n Features: node_modules/@aotter/mantle/docs/handbook/reference/features.md\n Admin UI: node_modules/@aotter/mantle/docs/handbook/guides/admin-ui.md\n Online: https://mantle.tools/\n Install skill: npx skills add aotter/mantle\n";
3
3
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AAgCA,eAAO,MAAM,eAAe,g7DA0C3B,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AAgCA,eAAO,MAAM,eAAe,05DA0C3B,CAAC"}