@lumibase/mcp-server 1.0.0-rc.2 → 1.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -234,6 +234,7 @@ var GOVERNED_TOOLS = {
234
234
  // `field_name` is this transport's name for the field; the skill reads `name`.
235
235
  // Renamed explicitly rather than dropped (see repro R17).
236
236
  delete_field: { skill: "deleteField", rename: { field_name: "name" } },
237
+ create_relation: { skill: "createRelation" },
237
238
  delete_relation: { skill: "deleteRelation" },
238
239
  // ── access ───────────────────────────────────────────────────────────────
239
240
  delete_role: { skill: "deleteRole" },
@@ -241,12 +242,16 @@ var GOVERNED_TOOLS = {
241
242
  // ── automation ───────────────────────────────────────────────────────────
242
243
  delete_flow: { skill: "deleteFlow" },
243
244
  run_flow: { skill: "runFlow" },
245
+ create_intent: { skill: "createIntent" },
244
246
  delete_intent: { skill: "deleteIntent" },
245
247
  // ── config ───────────────────────────────────────────────────────────────
246
248
  upsert_setting: { skill: "upsertSetting" },
247
249
  delete_setting: { skill: "deleteSetting" },
248
250
  create_translation: { skill: "createTranslation" },
251
+ update_translation: { skill: "updateTranslation" },
249
252
  delete_translation: { skill: "deleteTranslation" },
253
+ create_webhook: { skill: "createWebhook" },
254
+ update_webhook: { skill: "updateWebhook" },
250
255
  delete_webhook: { skill: "deleteWebhook" },
251
256
  // ── api keys / users / teams ──────────────────────────────────────────────
252
257
  create_api_key: { skill: "createApiKey" },
@@ -262,7 +267,17 @@ var GOVERNED_TOOLS = {
262
267
  add_team_member: { skill: "addTeamMember", rename: { id: "teamId" } },
263
268
  remove_team_member: { skill: "removeTeamMember", rename: { id: "teamId" } },
264
269
  // ── extensions ───────────────────────────────────────────────────────────
265
- uninstall_extension: { skill: "uninstallExtension" }
270
+ uninstall_extension: { skill: "uninstallExtension" },
271
+ // ── cdc ──────────────────────────────────────────────────────────────────
272
+ // The change-feed skills name the subscription `subscriptionId` (as
273
+ // `getCdcSubscriptionStatus`/`replayCdcSubscription` do); the CRUD-generated
274
+ // stdio tool takes it as `id`, like every other `delete_*` tool.
275
+ // Known divergence, not a skipped gate: the harness builds `SubscriptionService`
276
+ // without `cache`/`audit`, so REST's `cdc_subscription_deleted` audit-log row
277
+ // and feed-flag cache eviction do not happen on this path. The run, tool-call
278
+ // and approval rows record the deletion instead, and the flag cache expires on
279
+ // its own TTL.
280
+ delete_cdc_subscription: { skill: "deleteCdcSubscription", rename: { id: "subscriptionId" } }
266
281
  };
267
282
  var UNGOVERNED_MUTATIONS = {
268
283
  // Skill exists, but the canonical contract is narrower than what this tool
@@ -271,17 +286,14 @@ var UNGOVERNED_MUTATIONS = {
271
286
  create_policy: "contract-narrower-than-tool: enforceTfa/ipAllow/ipDeny/validFrom/validUntil",
272
287
  create_role: "contract-narrower-than-tool: systemKey",
273
288
  cdc_subscription_replay: "contract-narrower-than-tool: cursor has no canonical counterpart",
274
- // Skill exists but has no canonical input contract yet.
275
- create_cdc_subscription: "no-canonical-contract",
276
- delete_cdc_subscription: "no-canonical-contract",
277
- create_flow: "no-canonical-contract",
278
- create_intent: "no-canonical-contract",
279
- create_relation: "no-canonical-contract",
280
- create_webhook: "no-canonical-contract",
281
- update_webhook: "no-canonical-contract",
282
- update_translation: "no-canonical-contract",
283
- install_extension: "no-canonical-contract",
284
- update_extension: "no-canonical-contract",
289
+ create_cdc_subscription: "contract-narrower-than-tool: payload_mode \u2014 the createCdcSubscription handler never forwards it, so a snapshot subscription would be created as reference",
290
+ // Skill and canonical contract both exist and accept the advertised arguments,
291
+ // but the skill's handler skips checks the REST route applies. Routing would
292
+ // add HITL and remove those checks, so these stay on REST until the handler
293
+ // carries them.
294
+ create_flow: "skill-weaker-than-rest: createFlow skips the active-graph validation and schedule-cron check of POST /flows and never sets nextRunAt, so an active schedule flow would never fire",
295
+ install_extension: "skill-weaker-than-rest: installExtension skips the bundle signature check, the reserved lumibase-* namespace check and the per-action extensions:* permission probes of POST /extensions",
296
+ update_extension: "skill-weaker-than-rest: updateExtension skips the per-action extensions:* permission probes, the unverified-official enable refusal, sandbox cache eviction and CDC subscription sync of PATCH /extensions/:id",
285
297
  // No skill at all: nothing to route to. Listed so the set is closed.
286
298
  add_policy_permission: "no-skill",
287
299
  apply_access_import: "no-skill",
package/dist/index.js CHANGED
@@ -233,6 +233,7 @@ var GOVERNED_TOOLS = {
233
233
  // `field_name` is this transport's name for the field; the skill reads `name`.
234
234
  // Renamed explicitly rather than dropped (see repro R17).
235
235
  delete_field: { skill: "deleteField", rename: { field_name: "name" } },
236
+ create_relation: { skill: "createRelation" },
236
237
  delete_relation: { skill: "deleteRelation" },
237
238
  // ── access ───────────────────────────────────────────────────────────────
238
239
  delete_role: { skill: "deleteRole" },
@@ -240,12 +241,16 @@ var GOVERNED_TOOLS = {
240
241
  // ── automation ───────────────────────────────────────────────────────────
241
242
  delete_flow: { skill: "deleteFlow" },
242
243
  run_flow: { skill: "runFlow" },
244
+ create_intent: { skill: "createIntent" },
243
245
  delete_intent: { skill: "deleteIntent" },
244
246
  // ── config ───────────────────────────────────────────────────────────────
245
247
  upsert_setting: { skill: "upsertSetting" },
246
248
  delete_setting: { skill: "deleteSetting" },
247
249
  create_translation: { skill: "createTranslation" },
250
+ update_translation: { skill: "updateTranslation" },
248
251
  delete_translation: { skill: "deleteTranslation" },
252
+ create_webhook: { skill: "createWebhook" },
253
+ update_webhook: { skill: "updateWebhook" },
249
254
  delete_webhook: { skill: "deleteWebhook" },
250
255
  // ── api keys / users / teams ──────────────────────────────────────────────
251
256
  create_api_key: { skill: "createApiKey" },
@@ -261,7 +266,17 @@ var GOVERNED_TOOLS = {
261
266
  add_team_member: { skill: "addTeamMember", rename: { id: "teamId" } },
262
267
  remove_team_member: { skill: "removeTeamMember", rename: { id: "teamId" } },
263
268
  // ── extensions ───────────────────────────────────────────────────────────
264
- uninstall_extension: { skill: "uninstallExtension" }
269
+ uninstall_extension: { skill: "uninstallExtension" },
270
+ // ── cdc ──────────────────────────────────────────────────────────────────
271
+ // The change-feed skills name the subscription `subscriptionId` (as
272
+ // `getCdcSubscriptionStatus`/`replayCdcSubscription` do); the CRUD-generated
273
+ // stdio tool takes it as `id`, like every other `delete_*` tool.
274
+ // Known divergence, not a skipped gate: the harness builds `SubscriptionService`
275
+ // without `cache`/`audit`, so REST's `cdc_subscription_deleted` audit-log row
276
+ // and feed-flag cache eviction do not happen on this path. The run, tool-call
277
+ // and approval rows record the deletion instead, and the flag cache expires on
278
+ // its own TTL.
279
+ delete_cdc_subscription: { skill: "deleteCdcSubscription", rename: { id: "subscriptionId" } }
265
280
  };
266
281
  var UNGOVERNED_MUTATIONS = {
267
282
  // Skill exists, but the canonical contract is narrower than what this tool
@@ -270,17 +285,14 @@ var UNGOVERNED_MUTATIONS = {
270
285
  create_policy: "contract-narrower-than-tool: enforceTfa/ipAllow/ipDeny/validFrom/validUntil",
271
286
  create_role: "contract-narrower-than-tool: systemKey",
272
287
  cdc_subscription_replay: "contract-narrower-than-tool: cursor has no canonical counterpart",
273
- // Skill exists but has no canonical input contract yet.
274
- create_cdc_subscription: "no-canonical-contract",
275
- delete_cdc_subscription: "no-canonical-contract",
276
- create_flow: "no-canonical-contract",
277
- create_intent: "no-canonical-contract",
278
- create_relation: "no-canonical-contract",
279
- create_webhook: "no-canonical-contract",
280
- update_webhook: "no-canonical-contract",
281
- update_translation: "no-canonical-contract",
282
- install_extension: "no-canonical-contract",
283
- update_extension: "no-canonical-contract",
288
+ create_cdc_subscription: "contract-narrower-than-tool: payload_mode \u2014 the createCdcSubscription handler never forwards it, so a snapshot subscription would be created as reference",
289
+ // Skill and canonical contract both exist and accept the advertised arguments,
290
+ // but the skill's handler skips checks the REST route applies. Routing would
291
+ // add HITL and remove those checks, so these stay on REST until the handler
292
+ // carries them.
293
+ create_flow: "skill-weaker-than-rest: createFlow skips the active-graph validation and schedule-cron check of POST /flows and never sets nextRunAt, so an active schedule flow would never fire",
294
+ install_extension: "skill-weaker-than-rest: installExtension skips the bundle signature check, the reserved lumibase-* namespace check and the per-action extensions:* permission probes of POST /extensions",
295
+ update_extension: "skill-weaker-than-rest: updateExtension skips the per-action extensions:* permission probes, the unverified-official enable refusal, sandbox cache eviction and CDC subscription sync of PATCH /extensions/:id",
284
296
  // No skill at all: nothing to route to. Listed so the set is closed.
285
297
  add_policy_permission: "no-skill",
286
298
  apply_access_import: "no-skill",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumibase/mcp-server",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0-rc.3",
4
4
  "description": "LumiBase MCP server — lets AI assistants manage the full LumiBase Content OS: collections, fields, items, relations, RBAC (roles/policies/permissions/API keys), users & teams, intents, flows, webhooks, translations & translation memory, search, media & transform presets, read-only insights, presets, editorial workflow, content releases, share links, read-only deployments, extensions, and site administration.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -27,13 +27,13 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@modelcontextprotocol/sdk": "^1.30.0",
30
- "zod": "^4.5.4"
30
+ "zod": "^4.6.5"
31
31
  },
32
32
  "devDependencies": {
33
- "@types/node": "^26.4.1",
33
+ "@types/node": "^26.6.2",
34
34
  "tsup": "^8.5.1",
35
35
  "typescript": "^5.6.2",
36
- "vitest": "^5.0.0"
36
+ "vitest": "^5.0.1"
37
37
  },
38
38
  "files": [
39
39
  "dist"