@contentrain/mcp 3.11.17 → 3.11.18

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.
@@ -120,7 +120,7 @@ const TOOL_ANNOTATIONS = {
120
120
  contentrain_merge: {
121
121
  title: "Merge Branch",
122
122
  readOnlyHint: false,
123
- destructiveHint: false,
123
+ destructiveHint: true,
124
124
  idempotentHint: false,
125
125
  openWorldHint: false
126
126
  },
@@ -213,4 +213,4 @@ const TOOL_NAMES = Object.freeze(Object.keys(TOOL_ANNOTATIONS));
213
213
  //#endregion
214
214
  export { TOOL_NAMES as n, TOOL_ANNOTATIONS as t };
215
215
 
216
- //# sourceMappingURL=annotations-BYkjoj2d.mjs.map
216
+ //# sourceMappingURL=annotations-Bb5sDzHw.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations-Bb5sDzHw.mjs","names":[],"sources":["../src/tools/annotations.ts"],"sourcesContent":["import type { ToolAnnotations } from '@modelcontextprotocol/sdk/types.js'\n\n/**\n * Centralized tool annotations registry.\n * MCP clients use these hints to distinguish read-only vs. write vs. destructive tools.\n * `openWorldHint` is `false` everywhere except `contentrain_media_ingest`,\n * which fetches a caller-supplied external URL server-side; every other\n * tool operates on the configured content repository only.\n *\n * Also serves as the **single source of truth for the tool name list**. Consumers\n * that need to enumerate every registered tool (e.g. parity tests in\n * `@contentrain/rules` / `@contentrain/skills`) should import `TOOL_NAMES` below\n * rather than hardcoding the list.\n */\nexport const TOOL_ANNOTATIONS: Record<string, ToolAnnotations> = {\n // ─── Context (read-only) ───\n contentrain_status: {\n title: 'Project Status',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_describe: {\n title: 'Describe Model',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_describe_format: {\n title: 'Describe Format',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_doctor: {\n title: 'Project Health Report',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n\n // ─── Setup (write + git) ───\n contentrain_init: {\n title: 'Initialize Project',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: false,\n },\n contentrain_scaffold: {\n title: 'Scaffold Template',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: false,\n },\n\n // ─── Model (write + git) ───\n contentrain_model_save: {\n title: 'Save Model',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_model_delete: {\n title: 'Delete Model',\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n },\n\n // ─── Vocabulary (mixed) ───\n contentrain_vocabulary_save: {\n title: 'Save Vocabulary Terms',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_vocabulary_delete: {\n title: 'Delete Vocabulary Terms',\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n },\n\n // ─── Content (mixed) ───\n contentrain_content_save: {\n title: 'Save Content',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_content_delete: {\n title: 'Delete Content',\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n },\n contentrain_content_list: {\n title: 'List Content',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n\n // ─── Workflow (mixed) ───\n contentrain_validate: {\n title: 'Validate Project',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_submit: {\n title: 'Submit Branches',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_merge: {\n title: 'Merge Branch',\n readOnlyHint: false,\n // Destructive: after the merge it deletes the merged branch, locally and\n // on the remote when one is configured (mergeBranch → branch -D / push --delete).\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n },\n contentrain_reconcile: {\n title: 'Reconcile Diverged Branches',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_branch_list: {\n title: 'List Branches',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_branch_delete: {\n title: 'Delete Branch',\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n },\n\n // ─── Normalize (mixed) ───\n contentrain_scan: {\n title: 'Scan Source Code',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_apply: {\n title: 'Apply Normalize',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: false,\n },\n\n // ─── Bulk (write + git) ───\n contentrain_bulk: {\n title: 'Bulk Operations',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: false,\n },\n\n // ─── Media (provider media facet — registered only when RepoProvider.media is present) ───\n contentrain_media_list: {\n title: 'List Media Assets',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_media_get: {\n title: 'Get Media Asset',\n readOnlyHint: true,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_media_ingest: {\n title: 'Ingest Media From URL',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n contentrain_media_update: {\n title: 'Update Media Metadata',\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n contentrain_media_delete: {\n title: 'Delete Media Asset',\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n },\n}\n\n/**\n * Canonical list of every registered MCP tool name, derived from the\n * single source of truth above. Re-exported here with a stable name so\n * parity tests in sibling packages (`@contentrain/rules`,\n * `@contentrain/skills`) can assert against it without depending on\n * `TOOL_ANNOTATIONS` internals.\n */\nexport const TOOL_NAMES: readonly string[] = Object.freeze(Object.keys(TOOL_ANNOTATIONS))\n"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -15,8 +15,8 @@ import "./id-jrHWdtqn.mjs";
15
15
  import "./transaction-DCDf0y0T.mjs";
16
16
  import "./local-CCVjLKy2.mjs";
17
17
  import "./detect-B1QHYA0u.mjs";
18
- import "./annotations-BYkjoj2d.mjs";
19
- import { n as createServer } from "./server-CmHUHmlT.mjs";
18
+ import "./annotations-Bb5sDzHw.mjs";
19
+ import { n as createServer } from "./server-zOj_Gk7C.mjs";
20
20
  import "./errors-Cp6_Hlws.mjs";
21
21
  import "./reconcile-B7w5gow1.mjs";
22
22
  import "./scan-config-S5fkzNhL.mjs";
@@ -14,8 +14,8 @@ import "../../id-jrHWdtqn.mjs";
14
14
  import "../../transaction-DCDf0y0T.mjs";
15
15
  import "../../local-CCVjLKy2.mjs";
16
16
  import "../../detect-B1QHYA0u.mjs";
17
- import "../../annotations-BYkjoj2d.mjs";
18
- import { n as createServer } from "../../server-CmHUHmlT.mjs";
17
+ import "../../annotations-Bb5sDzHw.mjs";
18
+ import { n as createServer } from "../../server-zOj_Gk7C.mjs";
19
19
  import "../../errors-Cp6_Hlws.mjs";
20
20
  import "../../reconcile-B7w5gow1.mjs";
21
21
  import "../../scan-config-S5fkzNhL.mjs";
@@ -13,7 +13,7 @@ import { i as ensureContentBranch, l as commitOptions, n as buildBranchName, o a
13
13
  import { n as withReadScope, r as isMerged, t as LocalProvider } from "./local-CCVjLKy2.mjs";
14
14
  import { n as isToolAvailable, t as TOOL_REQUIREMENTS } from "./availability-CO8Xfx3w.mjs";
15
15
  import { t as detectStack } from "./detect-B1QHYA0u.mjs";
16
- import { t as TOOL_ANNOTATIONS } from "./annotations-BYkjoj2d.mjs";
16
+ import { t as TOOL_ANNOTATIONS } from "./annotations-Bb5sDzHw.mjs";
17
17
  import { n as listTemplates, t as getTemplate } from "./templates-Dn-iZyzp.mjs";
18
18
  import { t as normalizeOperationError } from "./errors-Cp6_Hlws.mjs";
19
19
  import { t as reconcileBranches } from "./reconcile-B7w5gow1.mjs";
@@ -3095,7 +3095,7 @@ function registerMediaTools(server, provider, _projectRoot) {
3095
3095
  }
3096
3096
  //#endregion
3097
3097
  //#region package.json
3098
- var version = "3.11.17";
3098
+ var version = "3.11.18";
3099
3099
  //#endregion
3100
3100
  //#region src/server.ts
3101
3101
  /**
@@ -3183,4 +3183,4 @@ function resolveServerContext(input) {
3183
3183
  //#endregion
3184
3184
  export { createServer as n, defaultInstructions as r, DEFAULT_INSTRUCTIONS as t };
3185
3185
 
3186
- //# sourceMappingURL=server-CmHUHmlT.mjs.map
3186
+ //# sourceMappingURL=server-zOj_Gk7C.mjs.map