@aotter/mantle-runtime 0.1.0-alpha.9 → 0.1.2-alpha.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 (155) hide show
  1. package/README.md +74 -4
  2. package/dist/MantleRuntime.js +14 -6
  3. package/dist/MantleRuntime.js.map +1 -1
  4. package/dist/domain/model/EntryRow.d.ts +16 -16
  5. package/dist/domain/model/EntryRow.d.ts.map +1 -1
  6. package/dist/domain/model/EntryRow.js +34 -0
  7. package/dist/domain/model/EntryRow.js.map +1 -1
  8. package/dist/domain/port/DatabaseDriver.d.ts +2 -2
  9. package/dist/domain/port/DatabaseDriver.d.ts.map +1 -1
  10. package/dist/domain/port/EntryReader.d.ts +38 -3
  11. package/dist/domain/port/EntryReader.d.ts.map +1 -1
  12. package/dist/domain/port/EntryRepository.d.ts +13 -6
  13. package/dist/domain/port/EntryRepository.d.ts.map +1 -1
  14. package/dist/domain/port/index.d.ts +2 -2
  15. package/dist/domain/port/index.d.ts.map +1 -1
  16. package/dist/domain/port/index.js.map +1 -1
  17. package/dist/domain/service/CallableCapabilityProjector.d.ts +28 -0
  18. package/dist/domain/service/CallableCapabilityProjector.d.ts.map +1 -0
  19. package/dist/domain/service/CallableCapabilityProjector.js +67 -0
  20. package/dist/domain/service/CallableCapabilityProjector.js.map +1 -0
  21. package/dist/domain/service/EntryMutationDiagnostics.d.ts.map +1 -1
  22. package/dist/domain/service/EntryMutationDiagnostics.js +11 -1
  23. package/dist/domain/service/EntryMutationDiagnostics.js.map +1 -1
  24. package/dist/domain/service/PathMatcher.d.ts +7 -0
  25. package/dist/domain/service/PathMatcher.d.ts.map +1 -1
  26. package/dist/domain/service/PathMatcher.js +56 -0
  27. package/dist/domain/service/PathMatcher.js.map +1 -1
  28. package/dist/domain/service/RuntimePlanCompiler.d.ts +7 -2
  29. package/dist/domain/service/RuntimePlanCompiler.d.ts.map +1 -1
  30. package/dist/domain/service/RuntimePlanCompiler.js +1 -0
  31. package/dist/domain/service/RuntimePlanCompiler.js.map +1 -1
  32. package/dist/domain/service/index.d.ts +1 -0
  33. package/dist/domain/service/index.d.ts.map +1 -1
  34. package/dist/domain/service/index.js +1 -0
  35. package/dist/domain/service/index.js.map +1 -1
  36. package/dist/domain/service/io/JoinedEntryReader.d.ts.map +1 -1
  37. package/dist/domain/service/io/JoinedEntryReader.js +2 -3
  38. package/dist/domain/service/io/JoinedEntryReader.js.map +1 -1
  39. package/dist/index.d.ts +12 -4
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +10 -2
  42. package/dist/index.js.map +1 -1
  43. package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts +1 -0
  44. package/dist/infrastructure/boot/SqliteMigrationRunner.d.ts.map +1 -1
  45. package/dist/infrastructure/boot/SqliteMigrationRunner.js +71 -12
  46. package/dist/infrastructure/boot/SqliteMigrationRunner.js.map +1 -1
  47. package/dist/infrastructure/boot/bootState.d.ts +2 -0
  48. package/dist/infrastructure/boot/bootState.d.ts.map +1 -1
  49. package/dist/infrastructure/boot/bootState.js +3 -1
  50. package/dist/infrastructure/boot/bootState.js.map +1 -1
  51. package/dist/infrastructure/boot/canonicalMigrations.d.ts +4 -15
  52. package/dist/infrastructure/boot/canonicalMigrations.d.ts.map +1 -1
  53. package/dist/infrastructure/boot/canonicalMigrations.js +14 -200
  54. package/dist/infrastructure/boot/canonicalMigrations.js.map +1 -1
  55. package/dist/infrastructure/boot/index.d.ts +2 -2
  56. package/dist/infrastructure/boot/index.d.ts.map +1 -1
  57. package/dist/infrastructure/boot/index.js +2 -2
  58. package/dist/infrastructure/boot/index.js.map +1 -1
  59. package/dist/infrastructure/http/createMantleRequestHandler.d.ts +3 -0
  60. package/dist/infrastructure/http/createMantleRequestHandler.d.ts.map +1 -1
  61. package/dist/infrastructure/http/createMantleRequestHandler.js +36 -15
  62. package/dist/infrastructure/http/createMantleRequestHandler.js.map +1 -1
  63. package/dist/infrastructure/http/readJsonBody.d.ts +8 -0
  64. package/dist/infrastructure/http/readJsonBody.d.ts.map +1 -0
  65. package/dist/infrastructure/http/readJsonBody.js +36 -0
  66. package/dist/infrastructure/http/readJsonBody.js.map +1 -0
  67. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts +22 -17
  68. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.d.ts.map +1 -1
  69. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js +89 -86
  70. package/dist/infrastructure/mcp/McpJsonRpcDispatcher.js.map +1 -1
  71. package/dist/infrastructure/mcp/McpToolCatalog.d.ts +11 -9
  72. package/dist/infrastructure/mcp/McpToolCatalog.d.ts.map +1 -1
  73. package/dist/infrastructure/mcp/McpToolCatalog.js +70 -80
  74. package/dist/infrastructure/mcp/McpToolCatalog.js.map +1 -1
  75. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts +15 -20
  76. package/dist/infrastructure/persistence/DatabaseEntryRepository.d.ts.map +1 -1
  77. package/dist/infrastructure/persistence/DatabaseEntryRepository.js +291 -331
  78. package/dist/infrastructure/persistence/DatabaseEntryRepository.js.map +1 -1
  79. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts +2 -0
  80. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.d.ts.map +1 -1
  81. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js +5 -1
  82. package/dist/infrastructure/persistence/DatabaseSiteConfigRepository.js.map +1 -1
  83. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts +2 -2
  84. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.d.ts.map +1 -1
  85. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js +5 -5
  86. package/dist/infrastructure/persistence/LifecycleHookingEntryRepository.js.map +1 -1
  87. package/dist/infrastructure/persistence/Pagination.d.ts +6 -0
  88. package/dist/infrastructure/persistence/Pagination.d.ts.map +1 -1
  89. package/dist/infrastructure/persistence/Pagination.js +25 -0
  90. package/dist/infrastructure/persistence/Pagination.js.map +1 -1
  91. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts +15 -1
  92. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.d.ts.map +1 -1
  93. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js +64 -9
  94. package/dist/infrastructure/storage/SqliteMantleStorageAdapter.js.map +1 -1
  95. package/dist/infrastructure/storage/SqliteMigrationArtifact.d.ts +19 -0
  96. package/dist/infrastructure/storage/SqliteMigrationArtifact.d.ts.map +1 -0
  97. package/dist/infrastructure/storage/SqliteMigrationArtifact.js +41 -0
  98. package/dist/infrastructure/storage/SqliteMigrationArtifact.js.map +1 -0
  99. package/dist/infrastructure/storage/SqliteSchemaTables.d.ts +23 -0
  100. package/dist/infrastructure/storage/SqliteSchemaTables.d.ts.map +1 -0
  101. package/dist/infrastructure/storage/SqliteSchemaTables.js +244 -0
  102. package/dist/infrastructure/storage/SqliteSchemaTables.js.map +1 -0
  103. package/dist/infrastructure/storage/SqliteViewCompiler.d.ts +3 -5
  104. package/dist/infrastructure/storage/SqliteViewCompiler.d.ts.map +1 -1
  105. package/dist/infrastructure/storage/SqliteViewCompiler.js +20 -51
  106. package/dist/infrastructure/storage/SqliteViewCompiler.js.map +1 -1
  107. package/dist/infrastructure/testing/HttpBenchmarkHarness.d.ts +26 -1
  108. package/dist/infrastructure/testing/HttpBenchmarkHarness.d.ts.map +1 -1
  109. package/dist/infrastructure/testing/HttpBenchmarkHarness.js +27 -12
  110. package/dist/infrastructure/testing/HttpBenchmarkHarness.js.map +1 -1
  111. package/dist/infrastructure/testing/IndexCoverageHarness.d.ts.map +1 -1
  112. package/dist/infrastructure/testing/IndexCoverageHarness.js +19 -31
  113. package/dist/infrastructure/testing/IndexCoverageHarness.js.map +1 -1
  114. package/dist/infrastructure/testing/StorageConformance.d.ts +32 -0
  115. package/dist/infrastructure/testing/StorageConformance.d.ts.map +1 -0
  116. package/dist/infrastructure/testing/StorageConformance.js +306 -0
  117. package/dist/infrastructure/testing/StorageConformance.js.map +1 -0
  118. package/dist/testing-storage.d.ts +3 -0
  119. package/dist/testing-storage.d.ts.map +1 -0
  120. package/dist/testing-storage.js +3 -0
  121. package/dist/testing-storage.js.map +1 -0
  122. package/dist/usecase/content/ArchiveUseCase.js +4 -4
  123. package/dist/usecase/content/ArchiveUseCase.js.map +1 -1
  124. package/dist/usecase/content/DeleteEntryUseCase.js +4 -4
  125. package/dist/usecase/content/DeleteEntryUseCase.js.map +1 -1
  126. package/dist/usecase/content/GetEntryUseCase.d.ts +1 -2
  127. package/dist/usecase/content/GetEntryUseCase.d.ts.map +1 -1
  128. package/dist/usecase/content/GetEntryUseCase.js +2 -6
  129. package/dist/usecase/content/GetEntryUseCase.js.map +1 -1
  130. package/dist/usecase/content/ListEntriesUseCase.d.ts +1 -1
  131. package/dist/usecase/content/ListEntriesUseCase.d.ts.map +1 -1
  132. package/dist/usecase/content/ListEntriesUseCase.js +18 -2
  133. package/dist/usecase/content/ListEntriesUseCase.js.map +1 -1
  134. package/dist/usecase/content/RequestPublishUseCase.js +4 -4
  135. package/dist/usecase/content/RequestPublishUseCase.js.map +1 -1
  136. package/dist/usecase/content/UnpublishUseCase.js +4 -4
  137. package/dist/usecase/content/UnpublishUseCase.js.map +1 -1
  138. package/dist/usecase/content/UpdateDraftUseCase.js +4 -4
  139. package/dist/usecase/content/UpdateDraftUseCase.js.map +1 -1
  140. package/dist/usecase/dto/content/index.d.ts +8 -5
  141. package/dist/usecase/dto/content/index.d.ts.map +1 -1
  142. package/dist/usecase/media/DeleteMediaAssetUseCase.d.ts +3 -3
  143. package/dist/usecase/media/DeleteMediaAssetUseCase.d.ts.map +1 -1
  144. package/dist/usecase/media/DeleteMediaAssetUseCase.js +35 -19
  145. package/dist/usecase/media/DeleteMediaAssetUseCase.js.map +1 -1
  146. package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts +8 -2
  147. package/dist/usecase/procedure/InvokeBuiltinUseCase.d.ts.map +1 -1
  148. package/dist/usecase/procedure/InvokeBuiltinUseCase.js +98 -16
  149. package/dist/usecase/procedure/InvokeBuiltinUseCase.js.map +1 -1
  150. package/dist/usecase/procedure/InvokeProcedureUseCase.js +2 -2
  151. package/dist/usecase/procedure/InvokeProcedureUseCase.js.map +1 -1
  152. package/dist/usecase/site/UpdateSiteSettingsUseCase.d.ts.map +1 -1
  153. package/dist/usecase/site/UpdateSiteSettingsUseCase.js +8 -1
  154. package/dist/usecase/site/UpdateSiteSettingsUseCase.js.map +1 -1
  155. package/package.json +9 -5
@@ -1,8 +1,8 @@
1
- import { DiagnosticError, redactForWire, runtimeDiagnostic, } from "@aotter/mantle-spec";
2
- import { mcpToolNameSegment } from "@aotter/mantle-spec";
3
- import { CREATE_DRAFT_PREFIX, CREATE_RECORD_PREFIX, QUERY_VIEW_PREFIX, UPDATE_DRAFT_PREFIX, UPDATE_RECORD_PREFIX, buildMcpToolCatalog, extractCollectionSegment, } from "./McpToolCatalog.js";
1
+ import { DiagnosticError, meetsRole, mcpToolNameSegment, redactForWire, runtimeDiagnostic, resolveLifecycle, } from "@aotter/mantle-spec";
2
+ import { CREATE_DRAFT_PREFIX, CONTENT_LIFECYCLE_TOOLS, CREATE_RECORD_PREFIX, UPDATE_DRAFT_PREFIX, UPDATE_RECORD_PREFIX, buildMcpToolCatalog, extractCollectionSegment, } from "./McpToolCatalog.js";
4
3
  import { jsonRpcError, jsonRpcOk, jsonRpcOkRaw, } from "./McpResponses.js";
5
4
  import packageJson from "../../../package.json" with { type: "json" };
5
+ import { JsonBodyTooLargeError, readJsonBody } from "../http/readJsonBody.js";
6
6
  export const MCP_PROTOCOL_VERSION = "2025-11-25";
7
7
  export class McpJsonRpcDispatcher {
8
8
  useCases;
@@ -17,9 +17,7 @@ export class McpJsonRpcDispatcher {
17
17
  * collection name. */
18
18
  schemaBySegment;
19
19
  readOnlyCollections;
20
- viewBySegment;
21
- /** tool-name → Procedure manifest, for MCP triggers (#281). */
22
- procedureByToolName;
20
+ capabilityByToolName;
23
21
  constructor(useCases, schemas, options = {}) {
24
22
  this.useCases = useCases;
25
23
  this.schemas = schemas;
@@ -28,8 +26,7 @@ export class McpJsonRpcDispatcher {
28
26
  surface: options.surface ?? "staff",
29
27
  mediaEnabled: useCases.media !== undefined,
30
28
  mediaPurposes: useCases.media?.purposes,
31
- views: options.views,
32
- procedures: options.procedures,
29
+ capabilities: options.capabilities,
33
30
  });
34
31
  this.catalogWireJson = `{"tools":${JSON.stringify(this.catalog)}}`;
35
32
  this.catalogToolNames = new Set(this.catalog.map((tool) => tool.name));
@@ -38,15 +35,9 @@ export class McpJsonRpcDispatcher {
38
35
  for (const s of schemas)
39
36
  map.set(mcpToolNameSegment(s.metadata.name), s.metadata.name);
40
37
  this.schemaBySegment = map;
41
- const views = new Map();
42
- for (const v of options.views ?? [])
43
- views.set(mcpToolNameSegment(v.metadata.name), v);
44
- this.viewBySegment = views;
45
- const procs = new Map();
46
- for (const p of options.procedures ?? []) {
47
- procs.set(mcpToolNameSegment(p.metadata.name), p);
48
- }
49
- this.procedureByToolName = procs;
38
+ this.capabilityByToolName = new Map((options.capabilities ?? [])
39
+ .filter((item) => item.surface === (options.surface ?? "staff"))
40
+ .map((item) => [item.name, item]));
50
41
  }
51
42
  async dispatch(req, ctx) {
52
43
  if (req.method !== "POST") {
@@ -54,9 +45,12 @@ export class McpJsonRpcDispatcher {
54
45
  }
55
46
  let body;
56
47
  try {
57
- body = (await req.json());
48
+ body = (await readJsonBody(req));
58
49
  }
59
- catch {
50
+ catch (error) {
51
+ if (error instanceof JsonBodyTooLargeError) {
52
+ return new Response(error.message, { status: 413 });
53
+ }
60
54
  return jsonRpcError(null, -32700, "parse error");
61
55
  }
62
56
  if (!body
@@ -123,17 +117,12 @@ export class McpJsonRpcDispatcher {
123
117
  }
124
118
  }
125
119
  async dispatchToolByName(name, args, ctx) {
126
- // Procedure-derived MCP tools (#281). Check first on every
127
- // surface — a Procedure's tool name lives in the same namespace
128
- // as the per-collection / per-view tools, and the catalog
129
- // collision check runs at boot so we don't have to disambiguate
130
- // here.
131
- const procedure = this.procedureByToolName.get(name);
132
- if (procedure) {
133
- if (!this.useCases.invokeProcedure)
120
+ const capability = this.capabilityByToolName.get(name);
121
+ if (capability?.kind === "procedure") {
122
+ if (!this.useCases.invokeTrigger)
134
123
  return UNKNOWN_TOOL;
135
- const result = await this.useCases.invokeProcedure.execute({
136
- procedure,
124
+ const result = await this.useCases.invokeTrigger.execute({
125
+ trigger: capability.trigger,
137
126
  input: args,
138
127
  ctx,
139
128
  pathPrefix: `MCP ${name}`,
@@ -142,20 +131,15 @@ export class McpJsonRpcDispatcher {
142
131
  throw new DiagnosticError(result.diagnostic);
143
132
  return result.data;
144
133
  }
145
- // Views exist on both public and staff MCP surfaces. The adapter
146
- // passes a pre-filtered slice, so a guessed public call cannot
147
- // resolve a staff View while staff MCP can list and invoke it.
148
- const viewSegment = extractCollectionSegment(name, QUERY_VIEW_PREFIX);
149
- if (viewSegment) {
150
- const view = this.viewBySegment.get(viewSegment);
151
- if (!view || !this.useCases.executeView)
134
+ if (capability?.kind === "view") {
135
+ if (!this.useCases.executeView)
152
136
  return UNKNOWN_TOOL;
153
137
  // Use the adapter-normalized caller so the executeView use case can
154
138
  // evaluate `requires.auth.all`. Without
155
139
  // this, every auth-gated public-surface View returned
156
140
  // UNAUTHENTICATED for every caller including authenticated staff.
157
141
  const result = await this.useCases.executeView.execute({
158
- view,
142
+ view: capability.manifest,
159
143
  options: {
160
144
  params: stripViewReservedArgs(args),
161
145
  page: typeof args["page"] === "number" ? args["page"] : undefined,
@@ -171,77 +155,56 @@ export class McpJsonRpcDispatcher {
171
155
  if ((this.options.surface ?? "staff") === "public") {
172
156
  return UNKNOWN_TOOL;
173
157
  }
158
+ const minimumRole = genericStaffToolMinimumRole(name);
159
+ if (minimumRole)
160
+ this.assertStaffRole(name, ctx, minimumRole);
174
161
  switch (name) {
175
- case "list_entries": {
176
- const collection = args["collection"];
177
- if (typeof collection !== "string")
178
- return MISSING_ARG;
179
- // MCP exposes the cursored shape so agents can walk pages
180
- // through `nextCursor`. App code reaches for `execute()`
181
- // instead and gets a flat array.
182
- return this.useCases.listEntries.executePage({
183
- collection,
184
- status: args["status"],
185
- search: typeof args["search"] === "string" ? args["search"] : undefined,
186
- sort: typeof args["sort"] === "string"
187
- ? {
188
- field: args["sort"],
189
- direction: args["direction"] === "asc" ? "asc" : "desc",
190
- }
191
- : undefined,
192
- limit: typeof args["limit"] === "number" ? args["limit"] : undefined,
193
- cursor: typeof args["cursor"] === "string" ? args["cursor"] : undefined,
194
- cursorDirection: args["cursorDirection"] === "backward" ? "backward" : "forward",
195
- });
196
- }
197
- case "get_entry": {
198
- const id = args["id"];
199
- if (typeof id !== "string")
200
- return MISSING_ARG;
201
- return this.useCases.getEntry.execute({ id });
202
- }
203
162
  case "request_publish": {
204
163
  const id = args["id"];
205
- if (typeof id !== "string")
164
+ const collection = args["collection"];
165
+ if (typeof id !== "string" || typeof collection !== "string")
206
166
  return MISSING_ARG;
207
- await this.assertEntryMutable(id, name);
167
+ await this.assertEntryMutable(id, name, collection);
208
168
  return this.useCases.requestPublish.execute({
209
- id,
169
+ id, collection,
210
170
  ctx,
211
- originalInput: args,
171
+ originalInput: { id },
212
172
  });
213
173
  }
214
174
  case "unpublish_entry": {
215
175
  const id = args["id"];
216
- if (typeof id !== "string")
176
+ const collection = args["collection"];
177
+ if (typeof id !== "string" || typeof collection !== "string")
217
178
  return MISSING_ARG;
218
- await this.assertEntryMutable(id, name);
179
+ await this.assertEntryMutable(id, name, collection);
219
180
  return this.useCases.unpublish.execute({
220
- id,
181
+ id, collection,
221
182
  ctx,
222
- originalInput: args,
183
+ originalInput: { id },
223
184
  });
224
185
  }
225
186
  case "archive_entry": {
226
187
  const id = args["id"];
227
- if (typeof id !== "string")
188
+ const collection = args["collection"];
189
+ if (typeof id !== "string" || typeof collection !== "string")
228
190
  return MISSING_ARG;
229
- await this.assertEntryMutable(id, name);
191
+ await this.assertEntryMutable(id, name, collection);
230
192
  return this.useCases.archive.execute({
231
- id,
193
+ id, collection,
232
194
  ctx,
233
- originalInput: args,
195
+ originalInput: { id },
234
196
  });
235
197
  }
236
198
  case "delete_entry": {
237
199
  const id = args["id"];
238
- if (typeof id !== "string")
200
+ const collection = args["collection"];
201
+ if (typeof id !== "string" || typeof collection !== "string")
239
202
  return MISSING_ARG;
240
- await this.assertEntryMutable(id, name);
203
+ await this.assertEntryMutable(id, name, collection);
241
204
  return this.useCases.deleteEntry.execute({
242
- id,
205
+ id, collection,
243
206
  ctx,
244
- originalInput: args,
207
+ originalInput: { id },
245
208
  });
246
209
  }
247
210
  case "create_media_upload": {
@@ -321,12 +284,11 @@ export class McpJsonRpcDispatcher {
321
284
  const expected = args["expected_version"];
322
285
  if (typeof id !== "string" || typeof expected !== "number")
323
286
  return MISSING_ARG;
324
- // Caller may also call get_entry separately; we don't need
325
- // the collection on the chokepoint args because UpdateDraft
326
- // looks it up from the existing row.
287
+ await this.assertEntryMutable(id, name, collection);
327
288
  const data = stripReservedArgs(args);
328
289
  return this.useCases.updateDraft.execute({
329
290
  id,
291
+ collection,
330
292
  expectedVersion: expected,
331
293
  data,
332
294
  ctx,
@@ -337,8 +299,28 @@ export class McpJsonRpcDispatcher {
337
299
  }
338
300
  }
339
301
  }
340
- async assertEntryMutable(id, toolName) {
341
- const entry = await this.useCases.getEntry.execute({ id });
302
+ assertStaffRole(toolName, ctx, minimumRole) {
303
+ const role = ctx.staff?.role;
304
+ if (role && meetsRole(role, minimumRole))
305
+ return;
306
+ throw new DiagnosticError(runtimeDiagnostic({
307
+ code: "AUTH_DENIED",
308
+ severity: "error",
309
+ path: `MCP ${toolName}`,
310
+ expected: `${minimumRole} role or higher for the signed-in staff user`,
311
+ message: `Tool '${toolName}' requires the ${minimumRole} role.`,
312
+ }));
313
+ }
314
+ async assertEntryMutable(id, toolName, collection) {
315
+ const entry = await this.useCases.getEntry.execute({ id, collection });
316
+ const schema = this.schemas.find((s) => s.metadata.name === entry.collection);
317
+ if (CONTENT_LIFECYCLE_TOOLS.has(toolName) && (!schema || resolveLifecycle(schema) === "operational")) {
318
+ throw new DiagnosticError(runtimeDiagnostic({
319
+ code: "CONFLICT", severity: "error", path: `MCP ${toolName}`,
320
+ value: entry.collection, expected: "a content lifecycle",
321
+ message: `Tool '${toolName}' requires a content lifecycle; '${entry.collection}' does not support publishing transitions. Use its declared Procedures.`,
322
+ }));
323
+ }
342
324
  if (!this.readOnlyCollections.has(entry.collection))
343
325
  return;
344
326
  throw new DiagnosticError(runtimeDiagnostic({
@@ -353,6 +335,27 @@ export class McpJsonRpcDispatcher {
353
335
  }
354
336
  const UNKNOWN_TOOL = Symbol("unknown-tool");
355
337
  const MISSING_ARG = Symbol("missing-arg");
338
+ const EDITOR_GENERIC_TOOLS = new Set([
339
+ "request_publish",
340
+ "unpublish_entry",
341
+ "archive_entry",
342
+ "delete_entry",
343
+ "create_media_upload",
344
+ "commit_media_upload",
345
+ ]);
346
+ function genericStaffToolMinimumRole(name) {
347
+ if (EDITOR_GENERIC_TOOLS.has(name))
348
+ return "editor";
349
+ if (extractCollectionSegment(name, CREATE_RECORD_PREFIX) ||
350
+ extractCollectionSegment(name, UPDATE_RECORD_PREFIX)) {
351
+ return "editor";
352
+ }
353
+ if (extractCollectionSegment(name, CREATE_DRAFT_PREFIX) ||
354
+ extractCollectionSegment(name, UPDATE_DRAFT_PREFIX)) {
355
+ return "contributor";
356
+ }
357
+ return null;
358
+ }
356
359
  /**
357
360
  * Strip the `id` + `expected_version` envelope keys before passing
358
361
  * the rest to the chokepoint as `data`. Per-collection update tools
@@ -1 +1 @@
1
- {"version":3,"file":"McpJsonRpcDispatcher.js","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpJsonRpcDispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpJsonRpcDispatcher.js","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpJsonRpcDispatcher.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { type MediaPurposePolicy, type ProcedureManifest, type SchemaManifest, type ViewManifest } from "@aotter/mantle-spec";
1
+ import { type MediaPurposePolicy, type SchemaManifest } from "@aotter/mantle-spec";
2
+ import type { RuntimeCallableCapability } from "../../domain/service/CallableCapabilityProjector.js";
2
3
  /**
3
- * MCP tool catalog. Mix of generic tools (read paths, status flips
4
- * that take only an `id`) plus per-collection emitted authoring
4
+ * MCP tool catalog. Mix of generic lifecycle tools plus per-collection emitted authoring
5
5
  * tools (`create_draft_*` / `update_draft_*` for authored content,
6
6
  * `create_record_*` / `update_record_*` for operational records)
7
7
  * with the Schema's properties inlined into the tool's `inputSchema`
@@ -29,8 +29,12 @@ import { type MediaPurposePolicy, type ProcedureManifest, type SchemaManifest, t
29
29
  */
30
30
  export interface McpToolDefinition {
31
31
  readonly name: string;
32
+ readonly title?: string;
32
33
  readonly description: string;
33
34
  readonly inputSchema: Record<string, unknown>;
35
+ readonly annotations?: {
36
+ readonly readOnlyHint?: boolean;
37
+ };
34
38
  }
35
39
  export declare const COMMIT_MEDIA_UPLOAD_TOOL: McpToolDefinition;
36
40
  export declare const GENERIC_TOOLS: readonly McpToolDefinition[];
@@ -60,14 +64,12 @@ export interface BuildMcpToolCatalogOpts {
60
64
  /** Staff surface exposes authoring / lifecycle tools. Public
61
65
  * surface exposes only read-only View queries for v0.1. */
62
66
  readonly surface?: McpToolSurface;
63
- readonly views?: ReadonlyArray<ViewManifest>;
64
- /** Procedures exposed on this MCP surface via `Trigger.source.kind: "mcp"`
65
- * (#281). The adapter pre-filters Triggers by surface and passes the
66
- * matching Procedures here. The catalog factory does NOT re-filter
67
- * by surface — caller is authoritative. */
68
- readonly procedures?: ReadonlyArray<ProcedureManifest>;
67
+ /** Sealed-plan callable projection. The same descriptors drive
68
+ * discovery and tools/call routing. */
69
+ readonly capabilities?: readonly RuntimeCallableCapability[];
69
70
  }
70
71
  export declare function buildMcpToolCatalog(schemas: ReadonlyArray<SchemaManifest>, opts?: BuildMcpToolCatalogOpts): readonly McpToolDefinition[];
72
+ export declare const CONTENT_LIFECYCLE_TOOLS: ReadonlySet<string>;
71
73
  /** Re-export the naming util from `domain/service/` so existing
72
74
  * consumers of `McpToolCatalog` (the dispatcher) keep their import
73
75
  * surface stable. */
@@ -1 +1 @@
1
- {"version":3,"file":"McpToolCatalog.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpToolCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,wBAAwB,EAAE,iBAiBtC,CAAC;AAqGF,eAAO,MAAM,aAAa,EAAE,SAAS,iBAAiB,EAgErD,CAAC;AAEF,eAAO,MAAM,mBAAmB,kBAA0B,CAAC;AAC3D,eAAO,MAAM,mBAAmB,kBAA0B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,mBAA2B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,mBAA2B,CAAC;AAC7D,eAAO,MAAM,iBAAiB,gBAAwB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC;;uCAEmC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;sDAKkD;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvD;gEAC4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC7C;;;gDAG4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACxD;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,EACtC,IAAI,GAAE,uBAA4B,GACjC,SAAS,iBAAiB,EAAE,CAmB9B;AAiED;;sBAEsB;AACtB;oEACoE;AACpE,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAIf"}
1
+ {"version":3,"file":"McpToolCatalog.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/mcp/McpToolCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAEV,yBAAyB,EAE1B,MAAM,qDAAqD,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;CACH;AAED,eAAO,MAAM,wBAAwB,EAAE,iBAiBtC,CAAC;AAqGF,eAAO,MAAM,aAAa,EAAE,SAAS,iBAAiB,EAqCrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,kBAA0B,CAAC;AAC3D,eAAO,MAAM,mBAAmB,kBAA0B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,mBAA2B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,mBAA2B,CAAC;AAC7D,eAAO,MAAM,iBAAiB,gBAAwB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC;;uCAEmC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;sDAKkD;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvD;gEAC4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC;4CACwC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC9D;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,EACtC,IAAI,GAAE,uBAA4B,GACjC,SAAS,iBAAiB,EAAE,CA2B9B;AAED,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAEtD,CAAC;AAqFH;;sBAEsB;AACtB;oEACoE;AACpE,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAIf"}