@aotter/mantle 0.2.0-alpha.4 → 0.2.0-alpha.6

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 (181) hide show
  1. package/README.md +2 -2
  2. package/dist/admin/createAdminSurface.d.ts +3 -0
  3. package/dist/admin/createAdminSurface.d.ts.map +1 -1
  4. package/dist/admin/createAdminSurface.js +51 -8
  5. package/dist/admin/createAdminSurface.js.map +1 -1
  6. package/dist/admin/extensions.d.ts +290 -0
  7. package/dist/admin/extensions.d.ts.map +1 -0
  8. package/dist/admin/extensions.js +532 -0
  9. package/dist/admin/extensions.js.map +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.d.ts.map +1 -1
  12. package/dist/admin/index.js +1 -0
  13. package/dist/admin/index.js.map +1 -1
  14. package/dist/auth/buildAuth.d.ts +3 -1
  15. package/dist/auth/buildAuth.d.ts.map +1 -1
  16. package/dist/auth/buildAuth.js +3 -2
  17. package/dist/auth/buildAuth.js.map +1 -1
  18. package/dist/auth/callerResolver.d.ts +4 -0
  19. package/dist/auth/callerResolver.d.ts.map +1 -1
  20. package/dist/auth/callerResolver.js +4 -1
  21. package/dist/auth/callerResolver.js.map +1 -1
  22. package/dist/auth/createMantleAuth.d.ts.map +1 -1
  23. package/dist/auth/createMantleAuth.js +3 -2
  24. package/dist/auth/createMantleAuth.js.map +1 -1
  25. package/dist/auth/db.d.ts +1 -0
  26. package/dist/auth/db.d.ts.map +1 -1
  27. package/dist/auth/db.js +6 -3
  28. package/dist/auth/db.js.map +1 -1
  29. package/dist/bun/index.d.ts +0 -44
  30. package/dist/bun/index.d.ts.map +1 -1
  31. package/dist/bun/index.js +0 -84
  32. package/dist/bun/index.js.map +1 -1
  33. package/dist/cli/generate.js +3 -3
  34. package/dist/cli/generate.js.map +1 -1
  35. package/dist/cli/preset.d.ts.map +1 -1
  36. package/dist/cli/preset.js +80 -28
  37. package/dist/cli/preset.js.map +1 -1
  38. package/dist/cloudflare/index.d.ts +4 -0
  39. package/dist/cloudflare/index.d.ts.map +1 -1
  40. package/dist/cloudflare/index.js +2 -0
  41. package/dist/cloudflare/index.js.map +1 -1
  42. package/dist/core/dialect.d.ts +13 -1
  43. package/dist/core/dialect.d.ts.map +1 -1
  44. package/dist/core/driver.d.ts +7 -0
  45. package/dist/core/driver.d.ts.map +1 -1
  46. package/dist/core/runtime/createRuntime.js +1 -1
  47. package/dist/core/runtime/createRuntime.js.map +1 -1
  48. package/dist/core/sessionUser.d.ts +14 -0
  49. package/dist/core/sessionUser.d.ts.map +1 -0
  50. package/dist/core/sessionUser.js +4 -0
  51. package/dist/core/sessionUser.js.map +1 -0
  52. package/dist/core/sql/allowlist.d.ts +2 -0
  53. package/dist/core/sql/allowlist.d.ts.map +1 -1
  54. package/dist/core/sql/allowlist.js +43 -11
  55. package/dist/core/sql/allowlist.js.map +1 -1
  56. package/dist/core/sql/ast.js +1 -1
  57. package/dist/core/sql/ast.js.map +1 -1
  58. package/dist/core/sql/compile.js +1 -1
  59. package/dist/core/sql/compile.js.map +1 -1
  60. package/dist/core/sql/policy.d.ts +2 -0
  61. package/dist/core/sql/policy.d.ts.map +1 -1
  62. package/dist/core/sql/policy.js +25 -6
  63. package/dist/core/sql/policy.js.map +1 -1
  64. package/dist/core/sql/run.d.ts +0 -8
  65. package/dist/core/sql/run.d.ts.map +1 -1
  66. package/dist/core/sql/run.js +152 -35
  67. package/dist/core/sql/run.js.map +1 -1
  68. package/dist/d1/executor.d.ts +2 -0
  69. package/dist/d1/executor.d.ts.map +1 -1
  70. package/dist/d1/executor.js +6 -1
  71. package/dist/d1/executor.js.map +1 -1
  72. package/dist/mcp/createMcpSurface.d.ts +5 -2
  73. package/dist/mcp/createMcpSurface.d.ts.map +1 -1
  74. package/dist/mcp/createMcpSurface.js +14 -3
  75. package/dist/mcp/createMcpSurface.js.map +1 -1
  76. package/dist/mcp/media.d.ts +9 -0
  77. package/dist/mcp/media.d.ts.map +1 -0
  78. package/dist/mcp/media.js +33 -0
  79. package/dist/mcp/media.js.map +1 -0
  80. package/dist/postgres/adapter.d.ts +5 -2
  81. package/dist/postgres/adapter.d.ts.map +1 -1
  82. package/dist/postgres/adapter.js +7 -1
  83. package/dist/postgres/adapter.js.map +1 -1
  84. package/dist/postgres/compile/index.d.ts +1 -1
  85. package/dist/postgres/compile/index.js +1 -1
  86. package/dist/postgres/driver.d.ts +38 -21
  87. package/dist/postgres/driver.d.ts.map +1 -1
  88. package/dist/postgres/driver.js +100 -24
  89. package/dist/postgres/driver.js.map +1 -1
  90. package/dist/postgres/executor.d.ts +8 -0
  91. package/dist/postgres/executor.d.ts.map +1 -1
  92. package/dist/postgres/executor.js +40 -13
  93. package/dist/postgres/executor.js.map +1 -1
  94. package/dist/postgres/index.d.ts +2 -1
  95. package/dist/postgres/index.d.ts.map +1 -1
  96. package/dist/postgres/index.js +1 -0
  97. package/dist/postgres/index.js.map +1 -1
  98. package/dist/postgres/lower.d.ts.map +1 -1
  99. package/dist/postgres/lower.js +3 -8
  100. package/dist/postgres/lower.js.map +1 -1
  101. package/dist/postgres/print.d.ts.map +1 -1
  102. package/dist/postgres/print.js +2 -15
  103. package/dist/postgres/print.js.map +1 -1
  104. package/dist/postgres/session.d.ts +9 -0
  105. package/dist/postgres/session.d.ts.map +1 -0
  106. package/dist/postgres/session.js +111 -0
  107. package/dist/postgres/session.js.map +1 -0
  108. package/dist/postgres/storage.d.ts +14 -1
  109. package/dist/postgres/storage.d.ts.map +1 -1
  110. package/dist/postgres/storage.js +136 -54
  111. package/dist/postgres/storage.js.map +1 -1
  112. package/dist/postgres/validator.d.ts +4 -3
  113. package/dist/postgres/validator.d.ts.map +1 -1
  114. package/dist/postgres/validator.js +13 -6
  115. package/dist/postgres/validator.js.map +1 -1
  116. package/dist/spec/domain/model/ManifestGrammar.d.ts +4 -0
  117. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +1 -1
  118. package/dist/spec/domain/model/ManifestGrammar.js +4 -0
  119. package/dist/spec/domain/model/ManifestGrammar.js.map +1 -1
  120. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +2 -0
  121. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +1 -1
  122. package/dist/spec/domain/service/SchemaAdminUiChecker.js +50 -6
  123. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +1 -1
  124. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +1 -1
  125. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +1 -1
  126. package/dist/spec/domain/service/ViewAdminUiChecker.js +7 -2
  127. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +1 -1
  128. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +1 -1
  129. package/dist/spec/infrastructure/sql/compilePlan.js +5 -0
  130. package/dist/spec/infrastructure/sql/compilePlan.js.map +1 -1
  131. package/dist/spec/kernel/diagnostic.d.ts +1 -1
  132. package/dist/spec/kernel/diagnostic.d.ts.map +1 -1
  133. package/dist/spec/kernel/diagnostic.js +5 -0
  134. package/dist/spec/kernel/diagnostic.js.map +1 -1
  135. package/dist/testing/cases/corpus.d.ts +2 -0
  136. package/dist/testing/cases/corpus.d.ts.map +1 -1
  137. package/dist/testing/cases/corpus.js +7 -5
  138. package/dist/testing/cases/corpus.js.map +1 -1
  139. package/dist/testing/cases/policy.d.ts +14 -1
  140. package/dist/testing/cases/policy.d.ts.map +1 -1
  141. package/dist/testing/cases/policy.js +3 -2
  142. package/dist/testing/cases/policy.js.map +1 -1
  143. package/dist/testing/cases/printer.d.ts.map +1 -1
  144. package/dist/testing/cases/printer.js +3 -1
  145. package/dist/testing/cases/printer.js.map +1 -1
  146. package/dist/testing/cases/report-view.d.ts.map +1 -1
  147. package/dist/testing/cases/report-view.js +18 -0
  148. package/dist/testing/cases/report-view.js.map +1 -1
  149. package/docs/adr/0031-host-cloud-core-contract.md +62 -1
  150. package/docs/adr/0032-store-centric-core-and-service-contract.md +17 -0
  151. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +2 -1
  152. package/docs/adr/0039-postgresql-is-native.md +130 -0
  153. package/docs/adr/README.md +2 -0
  154. package/docs/adr/adr-lite-1376-admin-extensions.md +330 -0
  155. package/docs/examples/commerce-inventory.md +18 -1
  156. package/docs/examples/reference-service/package.json +2 -2
  157. package/docs/handbook/cloudflare/authentication.md +3 -3
  158. package/docs/handbook/cloudflare/deploy-and-operate.md +4 -1
  159. package/docs/handbook/cloudflare/media-r2.md +59 -8
  160. package/docs/handbook/concepts/mcp-and-agents.md +12 -4
  161. package/docs/handbook/concepts/runtime-and-adapters.md +74 -33
  162. package/docs/handbook/concepts/views.md +1 -1
  163. package/docs/handbook/guides/admin-extensions.md +191 -0
  164. package/docs/handbook/guides/admin-ui.md +2 -1
  165. package/docs/handbook/navigation.json +2 -1
  166. package/docs/handbook/reference/diagnostics.md +1 -0
  167. package/docs/handbook/reference/procedure.md +2 -1
  168. package/docs/handbook/reference/schema.md +6 -3
  169. package/docs/handbook/reference/surface.md +6 -2
  170. package/docs/handbook/reference/view.md +7 -5
  171. package/docs/handbook/releases/index.md +78 -4
  172. package/docs/handbook/start/project-and-cli.md +20 -12
  173. package/docs/skills/develop/SKILL.md +8 -2
  174. package/docs/skills/provision/SKILL.md +4 -1
  175. package/docs/skills/update/SKILL.md +3 -0
  176. package/docs/upgrade-0.1-to-0.2.md +1 -1
  177. package/package.json +6 -5
  178. package/dist/postgres/textRows.d.ts +0 -10
  179. package/dist/postgres/textRows.d.ts.map +0 -1
  180. package/dist/postgres/textRows.js +0 -44
  181. package/dist/postgres/textRows.js.map +0 -1
@@ -9,6 +9,8 @@ type Step = {
9
9
  mode?: Mode;
10
10
  /** what the caller is entitled to see: the exact rows of every statement, as JSON */
11
11
  rows?: unknown[][];
12
+ /** the SQL a dialect with `nativeSql` runs instead (ADR-0039) */
13
+ native?: string;
12
14
  /** or: the statement must fail with a CONFLICT (an invisible row is a missing row) */
13
15
  conflict?: true;
14
16
  };
@@ -42,7 +44,18 @@ export declare const PROBES: {
42
44
  steps: Step[];
43
45
  };
44
46
  json_each: {
45
- steps: Step[];
47
+ steps: {
48
+ native: string;
49
+ kind: "view" | "procedure";
50
+ sql: string;
51
+ inputs?: Record<string, string>;
52
+ input?: Record<string, unknown>;
53
+ mode?: Mode;
54
+ /** what the caller is entitled to see: the exact rows of every statement, as JSON */
55
+ rows?: unknown[][];
56
+ /** or: the statement must fail with a CONFLICT (an invisible row is a missing row) */
57
+ conflict?: true;
58
+ }[];
46
59
  };
47
60
  window: {
48
61
  steps: Step[];
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/policy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrD,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,qFAAqF;IACrF,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;IACnB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AAOtC,iFAAiF;AACjF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CwB,CAAC;AAS5C,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAiElD"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/policy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrD,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,qFAAqF;IACrF,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;IACnB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AAOtC,iFAAiF;AACjF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBApBX,MAAM,GAAG,WAAW;iBACrB,MAAM;qBACF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;oBACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACxB,IAAI;YACX,qFAAqF;mBAC9E,OAAO,EAAE,EAAE;YAGlB,sFAAsF;uBAC3E,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0D0B,CAAC;AAS5C,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAiElD"}
@@ -28,7 +28,8 @@ export const PROBES = {
28
28
  v("SELECT id FROM requisitions WHERE EXISTS (SELECT 1 FROM items WHERE name = 'apple') ORDER BY id", ids('r1', 'r2')),
29
29
  v("SELECT (SELECT count(*) FROM items) AS n, (SELECT max(stock) FROM items) AS mx FROM requisitions WHERE id = 'r1'", [{ n: 4, mx: 9 }]),
30
30
  ] },
31
- json_each: { steps: [v('SELECT j.value AS v FROM items i, json_each(i.tags) j ORDER BY i.id, j.id', [{ v: 'red' }, { v: 'big' }, { v: 'blue' }, { v: 'red' }, { v: 'red' }])] },
31
+ json_each: { steps: [{ ...v('SELECT j.value AS v FROM items i, json_each(i.tags) j ORDER BY i.id, j.id', [{ v: 'red' }, { v: 'big' }, { v: 'blue' }, { v: 'red' }, { v: 'red' }]),
32
+ native: 'SELECT j.value AS v FROM items i, jsonb_array_elements_text(i.tags) WITH ORDINALITY AS j(value, n) ORDER BY i.id, j.n' }] },
32
33
  window: { steps: [v('SELECT x.id, x.rn FROM (SELECT id, row_number() OVER (ORDER BY id) AS rn FROM items) x ORDER BY x.id', [{ id: 'a', rn: 1 }, { id: 'b', rn: 2 }, { id: 'c', rn: 3 }, { id: 'd', rn: 4 }])] },
33
34
  'insert-target': { steps: [
34
35
  // o2 has a setting 'lang'; the caller's own insert of the same key does not collide (unique includes the scope) and is owned by the caller
@@ -76,7 +77,7 @@ export async function run(r, engine) {
76
77
  const before = JSON.stringify(await protectedRows(b.d1));
77
78
  let p;
78
79
  try {
79
- p = await program(step.kind, step.sql, step.inputs ?? {});
80
+ p = await program(step.kind, b.dialect.nativeSql && step.native ? step.native : step.sql, step.inputs ?? {});
80
81
  }
81
82
  catch (e) {
82
83
  if (!/needs the PostgreSQL dialect/.test(String(e)))
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/testing/cases/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/testing/cases/policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/printer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAsBlD"}
1
+ {"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/printer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAwBlD"}
@@ -6,7 +6,9 @@ export async function run(r, engine) {
6
6
  const s = site(b);
7
7
  const bad = [];
8
8
  const refused = [];
9
- for (const item of corpus) {
9
+ for (const base of corpus) {
10
+ // a dialect with its own SQL (ADR-0039) runs its spelling of an item that uses SQLite's
11
+ const item = b.dialect.nativeSql && base.native ? { ...base, ...base.native } : base;
10
12
  const rt = { ...caller(item.input), role: 'staff' };
11
13
  // a construct the dialect's compile side refuses as unsupported passes by that refusal (ADR-0035 decision 8); any other
12
14
  // refusal (syntax, a column, a relation) is the corpus item failing
@@ -1 +1 @@
1
- {"version":3,"file":"printer.js","sourceRoot":"","sources":["../../../src/testing/cases/printer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"printer.js","sourceRoot":"","sources":["../../../src/testing/cases/printer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"report-view.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/report-view.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,eAAO,MAAM,IAAI,+NAKN,CAAC;AAEZ,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBA2BlD"}
1
+ {"version":3,"file":"report-view.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/report-view.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,eAAO,MAAM,IAAI,+NAKN,CAAC;AAEZ,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBA6ClD"}
@@ -29,5 +29,23 @@ export async function run(r, engine) {
29
29
  const forged = await runView(s, p, caller({ min: 0 }), { cursor: [0, 'LEAK-zeta', 'LEAK-zeta'], pageSize: 5 });
30
30
  const inTie = await runView(s, p, caller({ min: 0 }), { cursor: [0, 'berry', 'berry'], pageSize: 5 });
31
31
  r.check("a forged cursor value only filters the caller's own rows; a cursor inside a run of equal totals continues after the given name", !JSON.stringify(forged.rows).includes('LEAK') && JSON.stringify(inTie.rows.map((x) => x.name)) === '["cherry","date"]', [forged.rows, inTie.rows]);
32
+ // NULL order is the dialect's own (ADR-0039): SQLite puts NULL first ascending and last descending with an ascending id tiebreak;
33
+ // a native-order dialect (PostgreSQL) puts it last ascending and first descending, and the tiebreak follows the last key. A cursor pages across the NULLs either way.
34
+ const nativeOrder = !!b.dialect.nativeOrder;
35
+ const paged = async (sql) => {
36
+ const q = await program('view', sql);
37
+ const ids = [];
38
+ let after;
39
+ for (let i = 0; i < 6; i++) {
40
+ const page = await runView(s, q, caller(), { cursor: after, pageSize: 1 });
41
+ ids.push(...page.rows.map((x) => x.id));
42
+ if (!page.next)
43
+ break;
44
+ after = page.next;
45
+ }
46
+ return ids;
47
+ };
48
+ r.equal(`NULL order, ascending, paged one row at a time (${nativeOrder ? 'native: NULL last' : 'SQLite: NULL first'})`, await paged('SELECT id, note FROM items ORDER BY note'), nativeOrder ? ['c', 'd', 'a', 'b'] : ['a', 'b', 'c', 'd']);
49
+ r.equal(`NULL order, descending, paged one row at a time (${nativeOrder ? 'native: NULL first, id descending' : 'SQLite: NULL last, id ascending'})`, await paged('SELECT id, note FROM items ORDER BY note DESC'), nativeOrder ? ['b', 'a', 'd', 'c'] : ['d', 'c', 'a', 'b']);
32
50
  }
33
51
  //# sourceMappingURL=report-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"report-view.js","sourceRoot":"","sources":["../../../src/testing/cases/report-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-view.js","sourceRoot":"","sources":["../../../src/testing/cases/report-view.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  # ADR 0031: Cloud supplies the host Core pin
2
2
 
3
- Status: Accepted for mantle-host protocols 2 and 4.
3
+ Status: Accepted for mantle-host protocols 2, 4, 5 and 6.
4
4
 
5
5
  The backend artifact includes `sdkVersion` and `sdkRevision` in its hashed
6
6
  bytes. The old host bundled a fixed Core revision. Cloud can run the previous
@@ -39,3 +39,64 @@ cleanup and deployment policy belong to the Cloud service. Core vendors its exac
39
39
  helper artifact/checksum and documents the MCP workflow; it gains no provider
40
40
  adapter, SQL compiler, runtime wiring or new Manifest grammar. Client-built
41
41
  handlers/static files are not represented as server build attestation.
42
+
43
+ ## Agent orchestration and offline packing (#1368)
44
+
45
+ Cloud MCP remains protocol 4 and owns lifecycle state and permissions. The plugin
46
+ helper no longer mirrors candidate/deploy state or polls Cloud. Its public bundle
47
+ contains safe Git source transport and offline backend/frontend/source packing.
48
+ The agent discovers MCP schemas, records non-secret operation IDs for identical
49
+ retries, and observes server state before publication. Packaging still uses the
50
+ installed Core compiler; this is not a Core runtime/provider adapter change.
51
+
52
+ `pack backend --contract -` validates the project and Cloud pin. `pack frontend`
53
+ requires the backend commit and ready kit candidate, and emits immutable hashes.
54
+ The agent checks these against reservations and uses native HTTP grant transport.
55
+ Cloud admission and plan/archive verification remain unchanged; handler/static
56
+ bundles remain client-built. The source transport also rejects secret-named files
57
+ in reachable history, without claiming to scan source content for credentials.
58
+
59
+ ## Protocol 5: mandatory structural website acceptance
60
+
61
+ A shared artifact validator runs in offline frontend packing and host admission,
62
+ and the host repeats it before new publication. The uploader cannot disable it
63
+ with an artifact flag or a self-reported checklist. A permanent canonical origin
64
+ is bound to the immutable static upload receipt and checked against the selected
65
+ site at reservation. Current rule/version and frontend hash bind the report;
66
+ changing a candidate or bytes requires fresh evidence. Existing stored releases
67
+ remain readable and rollback preserves their historical bytes.
68
+
69
+ The plugin packer requires `--origin` and emits structured missing-check
70
+ diagnostics. The upload MCP contract requires `canonicalOrigin`. This changes
71
+ validation meaning and therefore increments the host protocol, not the Manifest
72
+ grammar or Core runtime. The validator checks built HTML AST structure and
73
+ metadata, deterministic sitemap/robots and SPA routing configuration without
74
+ executing untrusted code or launching a browser. The host provides Admin, OTP
75
+ and media wiring; artifact validation does not certify delivery, uploads,
76
+ arbitrary authorization, visual behavior, content truth or dynamic HTML refresh.
77
+ A REST-only host must report dynamic-content SEO unsupported.
78
+
79
+ ## Local preparation and additive continuation (#1381)
80
+
81
+ The existing offline helper may run explicit application check/build argv arrays, pack a clean fixed commit and ordinarily push it in a single `prepare` entry. It returns source-admission arguments and deterministic artifact metadata; no Cloud lifecycle state, HTTP upload, polling or publication is added. Commands cannot silently commit source changes; dirty tracked output fails the existing clean-commit checks. Credentials stay in session memory/stdin. Native host responses may add continuation facts derived from their authoritative resource/lease rows; read-only backend status remains read-only. These additions do not change artifact bytes, admission rules or protocol 5 validation meaning.
82
+
83
+ ## Protocol 6: durable publication and read-only handoff (#1385)
84
+
85
+ Publication changes the native MCP sequence: one accepted publication operation
86
+ continues durably in Cloud, including recoverable provider waits, without an
87
+ agent repeatedly advancing deployment steps. The agent observes authoritative
88
+ deployment status until terminal; status reads never start or advance work.
89
+ Interrupted acceptance is recovered through the same immutable operation and
90
+ arguments, not a replacement candidate. Permission revocation and deterministic
91
+ refusals remain terminal until their stated correction; background work does not
92
+ retain a credential or turn a previous authorization into permanent authority.
93
+
94
+ This sequence change requires protocol 6. A client must validate that contract
95
+ before relying on autonomous publication; it cannot merely poll a protocol 5
96
+ host and expect progression. Historical source/release artifacts keep their
97
+ identity and rollback rules. The new sequence does not change Manifest grammar
98
+ or claim server build attestation. Local preparation and builds stay in the
99
+ agent environment; the helper gains no deployment scheduler or build container.
100
+ An accepted operation, ready preview or expired preview is not evidence of a
101
+ serving release or completed cleanup. Terminal state, access policy and literal
102
+ publication URL come from Cloud's authoritative status.
@@ -365,3 +365,20 @@ The three contracts #1188 made ADR gates are accepted only with these cases, run
365
365
  ## Implementation status
366
366
 
367
367
  Proposed. Nothing in decisions 1–13 is implemented beyond the ADR-0030 slices already on `develop`.
368
+
369
+ ## 2026-10-08 amendment — optional staff media MCP
370
+
371
+ Issue #1384 restores the pre-consolidation media lifecycle without adding
372
+ Schema CRUD or a new Runtime path. `createMcpSurface` may receive `media:
373
+ MediaStorage`; only a staff surface with `runtime.site` advertises the native
374
+ media policy/create/commit/list/get/update/delete tools. They delegate to the
375
+ same `runtime.site.media(media)` library as Admin and use its editor/owner
376
+ permission, purpose/type/size validation, expiry and object verification.
377
+ The surface retains its shared credential scope floor and invocation
378
+ observations; a collision with a manifest Procedure/View fails at assembly.
379
+ Media bytes remain direct PUT capabilities. The deliberately removed base64
380
+ variant-upload tool is not restored. No grammar, portable Runtime execution,
381
+ storage schema or provider ownership changes. Application-owned/generated
382
+ service files pass their chosen adapter to both Admin and staff MCP; the
383
+ preset cannot invent object-storage credentials. Admin WebMCP continues to
384
+ list manifest tools; its native media operations remain REST-backed.
@@ -74,7 +74,8 @@ amendment.
74
74
  ### 4. A narrowing hook
75
75
 
76
76
  - `postgresStorage` and `sqliteStorage` take `restrict?: (plan, context) => readonly SqlDiagnostic[]`. Core runs it on every
77
- program's IR after the dialect's own check, at runtime (ADR-0035: the runtime never trusts an IR). It can only refuse.
77
+ program's IR after the dialect's own check, at runtime (ADR-0035: the runtime never trusts an IR). Since the SQL compile
78
+ cache, an accepted verdict is cached with the compiled program, so `restrict` runs again only for a program Core compiles anew. It can only refuse.
78
79
  - It is for an operator that runs other people's plans. A self-hosted service does not set it.
79
80
 
80
81
  ### 5. Every PostgreSQL transaction has a statement timeout
@@ -0,0 +1,130 @@
1
+ # ADR-0039: PostgreSQL is native, and node-postgres is its only driver
2
+
3
+ **Status:** Accepted (2026-10-08).
4
+
5
+ **Date:** 2026-10-08.
6
+
7
+ **Supersedes:**
8
+ - ADR-0035: the cross-dialect parity clauses (one shared subset, identical results on every dialect).
9
+ - ADR-0037: "moving from D1 to PostgreSQL still needs no rewrite", and the SQLite emulation it implies.
10
+ - ADR-0038: the Bun.SQL PostgreSQL host and its temporary-table result description. Bun's SQLite preset is unchanged.
11
+
12
+ ## Context
13
+
14
+ Mantle has run PostgreSQL as an emulation of D1/SQLite, so that one manifest returns identical results on both engines.
15
+
16
+ ### What the emulation costs
17
+
18
+ The PostgreSQL audit on the procurement fixture (S, M and L tiers, Bun and Workers hosts) measured three costs.
19
+
20
+ **1. No declared index can serve a paged sort.**
21
+ - Paging forces SQLite's NULL order: `ASC NULLS FIRST`, `DESC NULLS LAST` (`core/sql/run.ts:257,297`). The tiebreak is `id COLLATE "C"`.
22
+ - PostgreSQL btree indexes have the opposite default order (`postgres/storage.ts:88-93`).
23
+ - As a result, every Admin list and every View with an ORDER BY does a full scan plus a sort, even with an index:
24
+
25
+ | Measurement | Today | With an order-matching index |
26
+ |---|---|---|
27
+ | Admin list, L tier, c=8 | 3 rps | 139 rps |
28
+ | procurement report | 47 ms | 0.26 ms |
29
+
30
+ - Matching the indexes to the emulated order would mean a `NULLS FIRST` index migration, permanently.
31
+
32
+ **2. Translation shims in SQL that authors never see.**
33
+ - `_mantle_jget` reproduces SQLite's `->>` and `$` paths.
34
+ - `_mantle_bool` reproduces SQLite's integer truthiness.
35
+ - `_mantle_json_each` reproduces SQLite's json_each columns.
36
+ - `||` is cast to text, and pinned `DateStyle`/`IntervalStyle`/`extra_float_digits` settings exist only so that text decodes the way D1's does.
37
+
38
+ **3. A second driver on Bun that exists only to recover type metadata.**
39
+ - Bun.SQL exposes no column OIDs or typmods: verified on Bun 1.4.2, and its docs list column type transforms as unfinished.
40
+ - Mantle therefore describes every result through `CREATE TEMP TABLE … WITH NO DATA` plus `pg_attribute`.
41
+ - A View read costs 12 statements and 10 round trips on Bun.SQL, against 4 and 4 on node-postgres.
42
+ - Every Bun role also needs `TEMPORARY`.
43
+
44
+ ### Who actually needs D1/PostgreSQL parity
45
+
46
+ No caller needs one manifest to switch engines without changes:
47
+ - **Cloud tenants** are moving to PostgreSQL.
48
+ - **On-premises single-organization deployments** run PostgreSQL on Bun.
49
+ - **D1 services** stay on D1.
50
+
51
+ What callers do need is that one PostgreSQL plan behaves the same on Bun and on Workers. The same app runs in Cloud and on-premises, and handler code and output schemas see the values directly.
52
+
53
+ ## Decision
54
+
55
+ ### 1. Each dialect is its own target
56
+
57
+ - A manifest targets one dialect.
58
+ - Mantle does not promise that a PostgreSQL manifest compiles for D1, or that a D1 manifest compiles for PostgreSQL.
59
+ - Mantle does not promise that the two dialects return equal values.
60
+ - The compliance suite checks each dialect against its own semantics, not against the other dialect.
61
+ - The closed allowlist stays: base for D1, reference for PostgreSQL (ADR-0037 decision 1).
62
+
63
+ ### 2. PostgreSQL semantics are PostgreSQL's
64
+
65
+ **Ordering.** Paging uses PostgreSQL's own NULL order (`ASC NULLS LAST`, `DESC NULLS FIRST`), and the cursor follows it. The tiebreak uses the column's own collation, so declared indexes serve ORDER BY … LIMIT. An index matches a sort only when every key in it runs in the same direction; that remains an authoring rule for indexes.
66
+
67
+ **The SQLite shims go.** `_mantle_jget`, `_mantle_bool`, `_mantle_json_each`, the `||` text cast and the `$`-path lowering are removed. PostgreSQL manifests use PostgreSQL's jsonb operators, booleans and `jsonb_array_elements`. A manifest that relied on a SQLite-ism fails validation with a position and the PostgreSQL spelling.
68
+
69
+ **What stays.** Mantle's own functions that are not emulation stay:
70
+ - `_mantle_expect` (#1379);
71
+ - the policy rewrite;
72
+ - convergence;
73
+ - the boot-time settings check, reduced to what the remaining decoding needs.
74
+
75
+ ### 3. node-postgres is the only PostgreSQL driver
76
+
77
+ - **Every host uses node-postgres (`pg` 8.23 or later):** the Bun preset (a `pg.Pool`), the Workers/Hyperdrive preset (a client per request), and any host composed by hand.
78
+ - **Request scoping and pipelining are the same everywhere:** `requestScoped` and the pipelined write path from #1379 run identically on every host.
79
+ - **The Bun.SQL host is removed**, along with its result description and the `TEMPORARY` grant.
80
+ - **Values come out of one decoder** (`decodeField` over RowDescription OIDs and typmods). Bun and Workers therefore return the same values for the same plan, with no separate value contract to maintain.
81
+
82
+ ## Consequences
83
+
84
+ - **Indexes work on PostgreSQL**, with no `NULLS FIRST` migration. The keyset cursor (row comparison, #1391 follow-up) becomes the next step for deep pages.
85
+ - **There is one PostgreSQL code path** to test, profile and secure, and no `TEMPORARY` privilege.
86
+ - **This is breaking for existing PostgreSQL services:**
87
+ - NULL position in sorted results changes.
88
+ - Manifests that use SQLite JSON paths or integer truthiness on PostgreSQL must be rewritten.
89
+ - The Bun PostgreSQL preset's entry changes.
90
+ - Release notes give the rewrites.
91
+ - **D1 → PostgreSQL is a migration, not a switch:**
92
+ - Export, rewrite the manifest's SQL, import.
93
+ - aotter/mantle#1298 (portable dump) is re-scoped to data only.
94
+ - aotter/mantle-home#251 (tenant upgrade from D1) becomes an explicit migration.
95
+ - **Bun gives up Bun.SQL's native client.** The audit measured no gain from it where Mantle's wrapper was absent: the session check ran 390 rps on Bun.SQL and 388 rps on node-postgres. If Bun later exposes column metadata and a measured gain appears, a Bun.SQL driver can return as a second implementation of the same contract.
96
+
97
+ ## Alternatives
98
+
99
+ - **Keep parity and build `NULLS FIRST` indexes.** Rejected. It keeps every shim, needs an index migration on every existing database, and buys a guarantee no caller uses.
100
+ - **Keep Bun.SQL with a cached result description.** Rejected. It makes the wrapper cheaper but keeps it, keeps the `TEMPORARY` grant, and keeps two drivers to maintain.
101
+ - **Keep Bun.SQL, with a value contract both drivers normalise to.** Rejected. Two drivers plus a normalisation layer cost more than one driver, and the contract would need maintaining.
102
+
103
+ ## How to apply
104
+
105
+ Each step is its own PR. Each is breaking where noted.
106
+
107
+ 1. **Bun preset on node-postgres.**
108
+ - `cli/preset.ts`/`generate.ts` write a `pg.Pool` entry with `requestScoped`.
109
+ - Remove `bunPgConnect`, `bunPostgresStorage` and the result-description path from `src/bun`, and the `TEMPORARY` note from the handbook.
110
+ - `test/bun/native.ts` runs the PostgreSQL conformance on node-postgres under Bun.
111
+ 2. **Native ordering.**
112
+ - `run.ts` stops emitting NULLS clauses on PostgreSQL. The dialect supplies its default NULL order, and the cursor predicate follows it.
113
+ - The tiebreak drops `COLLATE "C"` on PostgreSQL.
114
+ - Add EXPLAIN-based tests showing a declared index serves each paged sort.
115
+ 3. **Remove the SQLite shims** from `postgres/lower.ts`, `print.ts` and `storage.ts` `FUNCTIONS`.
116
+ - Add validation diagnostics that name the PostgreSQL spelling.
117
+ - Rewrite the PostgreSQL compliance fixtures and the reference suite in PostgreSQL's own semantics.
118
+ 4. **Docs and skills.**
119
+ - The handbook's dialect pages and the consumer skills say that each dialect is its own target.
120
+ - Add release notes with the rewrites.
121
+ 5. **Follow-ups from the audit** (#1391 and the audit report), in this order:
122
+ - keyset cursor;
123
+ - auth: drop the discarded JWT header, plain reads;
124
+ - SQL compile cache;
125
+ - boot trim;
126
+ - convergence safety (CHECK diffing, re-reading the fingerprint under the lock).
127
+
128
+ ## Implementation status
129
+
130
+ Accepted. Implementation follows in the stacked PRs listed under How to apply.
@@ -39,6 +39,7 @@ Records of *why* mantle ended up shaped this way. The numbering preserves POC AD
39
39
  | [0036](0036-host-and-dialect.md) | A project picks a host (`cloudflare`, `none`) and a dialect (`sqlite`, `postgres`, a package) once; `mantle generate` writes the pair's preset; the host never enters the plan. | Accepted for 0.2.0; reserved Bun host amended by 0038 |
40
40
  | [0037](0037-postgresql-is-the-reference-dialect.md) | PostgreSQL is the reference dialect: one closed allowlist in Core (base and reference profiles), D1 runs the base subset; a View reads an internal View; `restrict` narrows at runtime; a statement timeout on PostgreSQL; Cloud's PostgreSQL connection stays with the platform. | Accepted for 0.2.0 |
41
41
  | [0038](0038-bun-native-host.md) | Bun is a native host: `@aotter/mantle/bun` owns the native SQLite and PostgreSQL drivers and Admin files; `host: bun` defaults to `dialect: postgres`; the CLI writes a `Bun.serve` entry once. | Accepted for 0.2.0 |
42
+ | [0039](0039-postgresql-is-native.md) | PostgreSQL is native, not a D1 emulation: each dialect is its own target, PostgreSQL ordering and SQL are PostgreSQL's, and node-postgres is the only PostgreSQL driver on every host. | Accepted; supersedes parts of 0035, 0037 and 0038 |
42
43
 
43
44
  ## Reading order
44
45
 
@@ -94,3 +95,4 @@ These retain their issue-based filenames and original decision status.
94
95
  | [#845 Frontend client](adr-lite-845-frontend-client.md) | Accepted |
95
96
  | [#861 Admin WebMCP](adr-lite-861-admin-webmcp.md) | Accepted |
96
97
  | [909 Admin UI kit](adr-lite-909-admin-ui-kit.md) | Accepted; amended by 0029 |
98
+ | [#1376 Admin extensions](adr-lite-1376-admin-extensions.md) | Accepted |