@cyanheads/workflows-mcp-server 0.1.1 → 0.1.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.
Files changed (26) hide show
  1. package/CLAUDE.md +2 -3
  2. package/README.md +4 -4
  3. package/changelog/0.1.x/0.1.2.md +29 -0
  4. package/changelog/0.1.x/0.1.3.md +29 -0
  5. package/changelog/template.md +1 -1
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/mcp-server/tools/definitions/index.d.ts +18 -8
  9. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  10. package/dist/mcp-server/tools/definitions/workflow-create-temp.tool.d.ts +8 -3
  11. package/dist/mcp-server/tools/definitions/workflow-create-temp.tool.d.ts.map +1 -1
  12. package/dist/mcp-server/tools/definitions/workflow-create-temp.tool.js +15 -5
  13. package/dist/mcp-server/tools/definitions/workflow-create-temp.tool.js.map +1 -1
  14. package/dist/mcp-server/tools/definitions/workflow-create.tool.d.ts +8 -3
  15. package/dist/mcp-server/tools/definitions/workflow-create.tool.d.ts.map +1 -1
  16. package/dist/mcp-server/tools/definitions/workflow-create.tool.js +20 -9
  17. package/dist/mcp-server/tools/definitions/workflow-create.tool.js.map +1 -1
  18. package/dist/mcp-server/tools/definitions/workflow-get.tool.d.ts +1 -1
  19. package/dist/mcp-server/tools/definitions/workflow-get.tool.d.ts.map +1 -1
  20. package/dist/mcp-server/tools/definitions/workflow-list.tool.d.ts +1 -1
  21. package/dist/mcp-server/tools/definitions/workflow-list.tool.d.ts.map +1 -1
  22. package/dist/services/workflow-index/workflow-index-service.d.ts.map +1 -1
  23. package/dist/services/workflow-index/workflow-index-service.js +27 -62
  24. package/dist/services/workflow-index/workflow-index-service.js.map +1 -1
  25. package/package.json +10 -9
  26. package/server.json +3 -3
package/CLAUDE.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Agent Protocol
2
2
 
3
3
  **Server:** @cyanheads/workflows-mcp-server
4
- **Version:** 0.1.1
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.11`
4
+ **Version:** 0.1.3
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.10`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
8
8
  **Zod:** ^4.4.3
@@ -234,7 +234,6 @@ Available skills:
234
234
  | `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
235
235
  | `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
236
236
  | `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
237
- | `migrate-mcp-ts-template` | One-time migration of an existing project to the current framework template |
238
237
  | `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
239
238
  | `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
240
239
  | `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.1.1-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/workflows-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/workflows-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/workflows-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.1.3-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/workflows-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/workflows-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/workflows-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
@@ -114,7 +114,7 @@ Add the following to your MCP client configuration file:
114
114
  ```json
115
115
  {
116
116
  "mcpServers": {
117
- "workflows": {
117
+ "workflows-mcp-server": {
118
118
  "type": "stdio",
119
119
  "command": "bunx",
120
120
  "args": ["@cyanheads/workflows-mcp-server@latest"],
@@ -132,7 +132,7 @@ Or with npx (no Bun required):
132
132
  ```json
133
133
  {
134
134
  "mcpServers": {
135
- "workflows": {
135
+ "workflows-mcp-server": {
136
136
  "type": "stdio",
137
137
  "command": "npx",
138
138
  "args": ["-y", "@cyanheads/workflows-mcp-server@latest"],
@@ -150,7 +150,7 @@ Or with Docker:
150
150
  ```json
151
151
  {
152
152
  "mcpServers": {
153
- "workflows": {
153
+ "workflows-mcp-server": {
154
154
  "type": "stdio",
155
155
  "command": "docker",
156
156
  "args": [
@@ -0,0 +1,29 @@
1
+ ---
2
+ summary: "Maintenance: @cyanheads/mcp-ts-core ^0.9.11 → ^0.10.6; bad-input write paths recode to ValidationError; server name/title identity; post-pack bundle cleaner; .mcpbignore dev-dir re-anchor."
3
+ breaking: false
4
+ ---
5
+
6
+ # 0.1.2 — 2026-06-11
7
+
8
+ Framework upgrade to `@cyanheads/mcp-ts-core ^0.10.6` plus the maintenance adoptions it brings, and a DX recode of the workflow-write error contracts.
9
+
10
+ ## Added
11
+
12
+ - **`scripts/clean-mcpb.ts`** — post-pack `.mcpb` cleaner wired into `bundle`: runs `mcpb clean` (dev-dependency prune + manifest validation) then strips dependency-shipped agent docs (`skills/`, `.claude/`, `.agents/`, stray `SKILL.md`) nested under `node_modules/` that root-anchored `.mcpbignore` patterns cannot reach.
13
+ - **`format:unsafe`** script — `biome check --write --unsafe .`; `format` now runs the safe `biome check --write .`.
14
+
15
+ ## Changed
16
+
17
+ - **`workflow_create` / `workflow_create_temp`** — blank/whitespace-only category and name-slug validation failures (`name_too_long`, `invalid_name`) now throw the new `invalid_input` contract (`ValidationError`) instead of `write_failed` (`InternalError`); these are bad input, not server faults. `write_failed` is narrowed to genuine filesystem errors (permissions, disk full).
18
+ - **Server identity** — `createApp()` now sets `name` and `title` to `workflows-mcp-server` explicitly, so the display name no longer falls back to the npm scope.
19
+ - **`.mcpbignore`** — dev-directory patterns root-anchored (`/skills/`, `/.agents/`, `/.claude/`, `/Dockerfile`, `/bun.lock`, …) so they match only at the bundle root.
20
+ - **`bundle`** script chains `clean-mcpb.ts` after `mcpb pack`.
21
+ - **Client config display name** — README install snippets and the plugin manifests use the package name (`@cyanheads/workflows-mcp-server` in npm args; `workflows-mcp-server` as the MCP server key).
22
+
23
+ ## Dependencies
24
+
25
+ - `@cyanheads/mcp-ts-core` ^0.9.11 → ^0.10.6
26
+ - `semver` ^7.8.1 → ^7.8.4
27
+ - `@types/node` ^25.9.1 → ^25.9.3
28
+ - `@vitest/coverage-istanbul` ^4.1.7 → ^4.1.8
29
+ - `vitest` ^4.1.7 → ^4.1.8
@@ -0,0 +1,29 @@
1
+ ---
2
+ summary: "Security patch: clears 9 transitive bun audit advisories via the mcp-ts-core 0.10.10 bump, plus four workflow_create hardening fixes — cross-category duplicate guard, full semver validation, empty-slug category reject, and yaml.stringify serialization so created workflows round-trip through the index."
3
+ breaking: false
4
+ security: true
5
+ ---
6
+
7
+ # 0.1.3 — 2026-06-30
8
+
9
+ Security patch clearing every outstanding `bun audit` advisory, alongside four create-path hardening fixes so a successful `workflow_create` always round-trips through the same parser and indexer used at startup.
10
+
11
+ ## Fixed
12
+
13
+ - **`workflow_create` cross-category duplicates** — a second permanent workflow with the same `name@version` under a different category is now rejected with `already_exists` before writing. `writePermanent()` checks the category-independent index key first; previously the duplicate wrote a second file that collapsed to one last-write-wins index entry. ([#7](https://github.com/cyanheads/workflows-mcp-server/issues/7))
14
+ - **YAML serialization** — `workflow_create` and `workflow_create_temp` serialize workflows with `yaml.stringify` (the hand-rolled `buildYaml`/`quote`/`yamlValue` helpers are removed), so coercion-prone scalars like `"true"`/`"123"` and special mapping keys such as `"bad: key"` round-trip as strings and valid mappings instead of parsing back as booleans/numbers and dropping out of the index. ([#8](https://github.com/cyanheads/workflows-mcp-server/issues/8))
15
+ - **Semver validation** — the version field uses full `semver.valid()` validation via `.refine()` in place of the start-anchored `^\d+\.\d+\.\d+` regex, at both the create inputs and `WorkflowSchema.version`. A suffix like `1.0.0junk` is rejected at create and skipped at index build, so latest-version lookup (`semver.rcompare`) can no longer crash on indexed data. ([#9](https://github.com/cyanheads/workflows-mcp-server/issues/9))
16
+ - **`workflow_create` empty-slug categories** — a category that slugifies to an empty string (e.g. `!!!`) is rejected as `invalid_input` instead of writing into the `categories/` root with no subdirectory; mirrors the existing name-slug guard. The default `uncategorized` path (category omitted) is unaffected. ([#10](https://github.com/cyanheads/workflows-mcp-server/issues/10))
17
+
18
+ ## Changed
19
+
20
+ - `@cyanheads/mcp-ts-core` ^0.10.6 → ^0.10.10
21
+ - `semver` ^7.8.4 → ^7.8.5
22
+ - `@biomejs/biome` ^2.4.16 → ^2.5.1
23
+ - `vitest` ^4.1.8 → ^4.1.9
24
+ - `@vitest/coverage-istanbul` ^4.1.8 → ^4.1.9
25
+ - **Framework sync** — skills, devcheck scripts, and `devcheck.config.json` re-synced to `@cyanheads/mcp-ts-core` 0.10.10; adds `scripts/check-dependency-specifiers.ts` and packaging plugin-manifest linting.
26
+
27
+ ## Security
28
+
29
+ - **Transitive advisories cleared (9 → 0)** — the `@cyanheads/mcp-ts-core` 0.10.10 bump and lockfile re-resolve clear every outstanding `bun audit` advisory, all in transitive dependencies: `js-yaml` (moderate, DoS), `hono` (1 high CORS, 4 moderate), `vite` (1 high, 1 moderate), and `esbuild` (low).
@@ -43,7 +43,7 @@ security: false
43
43
  name the symbol, state what changed, stop. Use a second sentence only when
44
44
  it carries weight. If a bullet feels long, it is.
45
45
 
46
- Cut: mechanism walkthroughs (those belong in JSDoc, AGENTS.md, or the
46
+ Cut: mechanism walkthroughs (those belong in JSDoc, CLAUDE.md/AGENTS.md, or the
47
47
  relevant skill), ceremonial framings ("This release introduces…",
48
48
  backwards-compat paragraphs), file-by-file test enumerations, internal
49
49
  implementation notes. Prefer code/symbol names over English re-explanations.
package/dist/index.js CHANGED
@@ -9,6 +9,8 @@ import { getServerConfig } from './config/server-config.js';
9
9
  import { allToolDefinitions } from './mcp-server/tools/definitions/index.js';
10
10
  import { initWorkflowIndexService } from './services/workflow-index/workflow-index-service.js';
11
11
  await createApp({
12
+ name: 'workflows-mcp-server',
13
+ title: 'workflows-mcp-server',
12
14
  tools: allToolDefinitions,
13
15
  resources: [],
14
16
  prompts: [],
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,MAAM,SAAS,CAAC;IACd,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,YAAY,EACV,qFAAqF;QACrF,gFAAgF;QAChF,yGAAyG;IAE3G,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAE9B,kDAAkD;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAEnE,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,sBAAsB,GAAG,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE;YAC9D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,sBAAsB,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;QAEtD,wBAAwB,CACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,YAAY,EACZ,sBAAsB,EACtB,GAAG,CAAC,iBAAiB,CACtB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,sBAAsB;IAC7B,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,YAAY,EACV,qFAAqF;QACrF,gFAAgF;QAChF,yGAAyG;IAE3G,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAE9B,kDAAkD;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAEnE,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,sBAAsB,GAAG,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE;YAC9D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,sBAAsB,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;QAEtD,wBAAwB,CACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,YAAY,EACZ,sBAAsB,EACtB,GAAG,CAAC,iBAAiB,CACtB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -29,6 +29,11 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
29
29
  created_date: import("zod").ZodString;
30
30
  last_updated_date: import("zod").ZodString;
31
31
  }, import("zod/v4/core").$strip>, readonly [{
32
+ readonly reason: "invalid_input";
33
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
34
+ readonly when: "A field passed schema validation but is semantically invalid: a blank/whitespace-only category, a category that slugifies to empty, or a name that slugifies to empty or exceeds the filename length limit.";
35
+ readonly recovery: "Provide a category and workflow name that each contain alphanumeric characters, and keep the name under 200 characters after slugification.";
36
+ }, {
32
37
  readonly reason: "already_exists";
33
38
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Conflict;
34
39
  readonly when: "A permanent workflow with this name@version already exists in the index.";
@@ -36,9 +41,9 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
36
41
  }, {
37
42
  readonly reason: "write_failed";
38
43
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InternalError;
39
- readonly when: "Filesystem write error (permissions, disk full, or name too long).";
40
- readonly recovery: "Check that the workflows directory is writable, has sufficient disk space, and that the workflow name is not excessively long.";
41
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
44
+ readonly when: "Filesystem write error such as insufficient permissions or a full disk.";
45
+ readonly recovery: "Check that the workflows directory is writable and has sufficient disk space, then retry.";
46
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
42
47
  name: import("zod").ZodString;
43
48
  version: import("zod").ZodString;
44
49
  description: import("zod").ZodString;
@@ -60,11 +65,16 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
60
65
  created_date: import("zod").ZodString;
61
66
  last_updated_date: import("zod").ZodString;
62
67
  }, import("zod/v4/core").$strip>, readonly [{
68
+ readonly reason: "invalid_input";
69
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
70
+ readonly when: "The workflow name passed schema validation but slugifies to empty or exceeds the filename length limit.";
71
+ readonly recovery: "Provide a workflow name that contains alphanumeric characters and stays under 200 characters after slugification.";
72
+ }, {
63
73
  readonly reason: "write_failed";
64
74
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InternalError;
65
- readonly when: "Filesystem write error (permissions, disk full, or name too long).";
66
- readonly recovery: "Check that the workflows directory is writable, has sufficient disk space, and that the workflow name is not excessively long.";
67
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
75
+ readonly when: "Filesystem write error such as insufficient permissions or a full disk.";
76
+ readonly recovery: "Check that the workflows directory is writable and has sufficient disk space, then retry.";
77
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
68
78
  name: import("zod").ZodString;
69
79
  version: import("zod").ZodOptional<import("zod").ZodString>;
70
80
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -108,7 +118,7 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
108
118
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
109
119
  readonly when: "The workflow index has not finished building yet.";
110
120
  readonly recovery: "Retry after the server has finished initializing its workflow index.";
111
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
121
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
112
122
  category: import("zod").ZodOptional<import("zod").ZodString>;
113
123
  tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
114
124
  includeTools: import("zod").ZodOptional<import("zod").ZodBoolean>;
@@ -128,5 +138,5 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
128
138
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
129
139
  readonly when: "The workflow index has not finished building yet.";
130
140
  readonly recovery: "Retry after the server has finished initializing its workflow index.";
131
- }]>)[];
141
+ }], undefined>)[];
132
142
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAOvD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAkE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAOvD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAkE,CAAC"}
@@ -26,9 +26,14 @@ export declare const workflowCreateTemp: import("@cyanheads/mcp-ts-core").ToolDe
26
26
  created_date: z.ZodString;
27
27
  last_updated_date: z.ZodString;
28
28
  }, z.core.$strip>, readonly [{
29
+ readonly reason: "invalid_input";
30
+ readonly code: JsonRpcErrorCode.ValidationError;
31
+ readonly when: "The workflow name passed schema validation but slugifies to empty or exceeds the filename length limit.";
32
+ readonly recovery: "Provide a workflow name that contains alphanumeric characters and stays under 200 characters after slugification.";
33
+ }, {
29
34
  readonly reason: "write_failed";
30
35
  readonly code: JsonRpcErrorCode.InternalError;
31
- readonly when: "Filesystem write error (permissions, disk full, or name too long).";
32
- readonly recovery: "Check that the workflows directory is writable, has sufficient disk space, and that the workflow name is not excessively long.";
33
- }]>;
36
+ readonly when: "Filesystem write error such as insufficient permissions or a full disk.";
37
+ readonly recovery: "Check that the workflows directory is writable and has sufficient disk space, then retry.";
38
+ }], undefined>;
34
39
  //# sourceMappingURL=workflow-create-temp.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-create-temp.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-create-temp.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwBjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;GAwH7B,CAAC"}
1
+ {"version":3,"file":"workflow-create-temp.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-create-temp.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAyBjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkI7B,CAAC"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
7
+ import * as semver from 'semver';
7
8
  import { getWorkflowIndexService } from '../../../services/workflow-index/workflow-index-service.js';
8
9
  const StepInputSchema = z
9
10
  .object({
@@ -33,8 +34,10 @@ export const workflowCreateTemp = tool('workflow_create_temp', {
33
34
  name: z.string().min(1).describe('Workflow name (human-readable).'),
34
35
  version: z
35
36
  .string()
36
- .regex(/^\d+\.\d+\.\d+/)
37
- .describe('Semver version string (e.g. "1.0.0").'),
37
+ .refine((v) => semver.valid(v) !== null, {
38
+ message: 'Version must be a valid semantic version (e.g. "1.0.0").',
39
+ })
40
+ .describe('Semver version string (e.g. "1.0.0"). Must be valid semver.'),
38
41
  description: z.string().min(1).describe('One-line description of what the workflow does.'),
39
42
  author: z.string().min(1).describe('Author name or team.'),
40
43
  tags: z.array(z.string()).optional().describe('Free-form tags.'),
@@ -53,11 +56,17 @@ export const workflowCreateTemp = tool('workflow_create_temp', {
53
56
  last_updated_date: z.string().describe('Date the workflow was last updated (YYYY-MM-DD).'),
54
57
  }),
55
58
  errors: [
59
+ {
60
+ reason: 'invalid_input',
61
+ code: JsonRpcErrorCode.ValidationError,
62
+ when: 'The workflow name passed schema validation but slugifies to empty or exceeds the filename length limit.',
63
+ recovery: 'Provide a workflow name that contains alphanumeric characters and stays under 200 characters after slugification.',
64
+ },
56
65
  {
57
66
  reason: 'write_failed',
58
67
  code: JsonRpcErrorCode.InternalError,
59
- when: 'Filesystem write error (permissions, disk full, or name too long).',
60
- recovery: 'Check that the workflows directory is writable, has sufficient disk space, and that the workflow name is not excessively long.',
68
+ when: 'Filesystem write error such as insufficient permissions or a full disk.',
69
+ recovery: 'Check that the workflows directory is writable and has sufficient disk space, then retry.',
61
70
  },
62
71
  ],
63
72
  async handler(input, ctx) {
@@ -89,7 +98,8 @@ export const workflowCreateTemp = tool('workflow_create_temp', {
89
98
  catch (err) {
90
99
  const reason = err._reason;
91
100
  if (err instanceof Error && (reason === 'name_too_long' || reason === 'invalid_name')) {
92
- throw ctx.fail('write_failed', err.message, { ...ctx.recoveryFor('write_failed') });
101
+ // Name-slug validation failures are bad input, not server faults.
102
+ throw ctx.fail('invalid_input', err.message, { ...ctx.recoveryFor('invalid_input') });
93
103
  }
94
104
  ctx.log.error('Failed to write temp workflow', err instanceof Error ? err : new Error(String(err)));
95
105
  const safeMsg = err instanceof Error
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-create-temp.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-create-temp.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-create-temp.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-create-temp.tool.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,11 @@ export declare const workflowCreate: import("@cyanheads/mcp-ts-core").ToolDefini
27
27
  created_date: z.ZodString;
28
28
  last_updated_date: z.ZodString;
29
29
  }, z.core.$strip>, readonly [{
30
+ readonly reason: "invalid_input";
31
+ readonly code: JsonRpcErrorCode.ValidationError;
32
+ readonly when: "A field passed schema validation but is semantically invalid: a blank/whitespace-only category, a category that slugifies to empty, or a name that slugifies to empty or exceeds the filename length limit.";
33
+ readonly recovery: "Provide a category and workflow name that each contain alphanumeric characters, and keep the name under 200 characters after slugification.";
34
+ }, {
30
35
  readonly reason: "already_exists";
31
36
  readonly code: JsonRpcErrorCode.Conflict;
32
37
  readonly when: "A permanent workflow with this name@version already exists in the index.";
@@ -34,7 +39,7 @@ export declare const workflowCreate: import("@cyanheads/mcp-ts-core").ToolDefini
34
39
  }, {
35
40
  readonly reason: "write_failed";
36
41
  readonly code: JsonRpcErrorCode.InternalError;
37
- readonly when: "Filesystem write error (permissions, disk full, or name too long).";
38
- readonly recovery: "Check that the workflows directory is writable, has sufficient disk space, and that the workflow name is not excessively long.";
39
- }]>;
42
+ readonly when: "Filesystem write error such as insufficient permissions or a full disk.";
43
+ readonly recovery: "Check that the workflows directory is writable and has sufficient disk space, then retry.";
44
+ }], undefined>;
40
45
  //# sourceMappingURL=workflow-create.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-create.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-create.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwBjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoJzB,CAAC"}
1
+ {"version":3,"file":"workflow-create.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-create.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAyBjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiKzB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
7
+ import * as semver from 'semver';
7
8
  import { getWorkflowIndexService } from '../../../services/workflow-index/workflow-index-service.js';
8
9
  const StepInputSchema = z
9
10
  .object({
@@ -36,8 +37,10 @@ export const workflowCreate = tool('workflow_create', {
36
37
  .describe('Workflow name (human-readable, e.g. "Standard Git Wrap-up").'),
37
38
  version: z
38
39
  .string()
39
- .regex(/^\d+\.\d+\.\d+/)
40
- .describe('Semver version string (e.g. "1.0.0").'),
40
+ .refine((v) => semver.valid(v) !== null, {
41
+ message: 'Version must be a valid semantic version (e.g. "1.0.0").',
42
+ })
43
+ .describe('Semver version string (e.g. "1.0.0"). Must be valid semver.'),
41
44
  description: z.string().min(1).describe('One-line description of what the workflow does.'),
42
45
  author: z.string().min(1).describe('Author name or team.'),
43
46
  category: z
@@ -58,6 +61,12 @@ export const workflowCreate = tool('workflow_create', {
58
61
  last_updated_date: z.string().describe('Date the workflow was last updated (YYYY-MM-DD).'),
59
62
  }),
60
63
  errors: [
64
+ {
65
+ reason: 'invalid_input',
66
+ code: JsonRpcErrorCode.ValidationError,
67
+ when: 'A field passed schema validation but is semantically invalid: a blank/whitespace-only category, a category that slugifies to empty, or a name that slugifies to empty or exceeds the filename length limit.',
68
+ recovery: 'Provide a category and workflow name that each contain alphanumeric characters, and keep the name under 200 characters after slugification.',
69
+ },
61
70
  {
62
71
  reason: 'already_exists',
63
72
  code: JsonRpcErrorCode.Conflict,
@@ -67,16 +76,16 @@ export const workflowCreate = tool('workflow_create', {
67
76
  {
68
77
  reason: 'write_failed',
69
78
  code: JsonRpcErrorCode.InternalError,
70
- when: 'Filesystem write error (permissions, disk full, or name too long).',
71
- recovery: 'Check that the workflows directory is writable, has sufficient disk space, and that the workflow name is not excessively long.',
79
+ when: 'Filesystem write error such as insufficient permissions or a full disk.',
80
+ recovery: 'Check that the workflows directory is writable and has sufficient disk space, then retry.',
72
81
  },
73
82
  ],
74
83
  async handler(input, ctx) {
75
84
  const svc = getWorkflowIndexService();
76
85
  // Reject whitespace-only category at the tool boundary (Zod min(1) passes " ").
77
86
  if (input.category.trim().length === 0) {
78
- throw ctx.fail('write_failed', 'Category must not be blank or whitespace-only.', {
79
- ...ctx.recoveryFor('write_failed'),
87
+ throw ctx.fail('invalid_input', 'Category must not be blank or whitespace-only.', {
88
+ ...ctx.recoveryFor('invalid_input'),
80
89
  });
81
90
  }
82
91
  const today = new Date().toISOString().slice(0, 10);
@@ -108,9 +117,11 @@ export const workflowCreate = tool('workflow_create', {
108
117
  if (err instanceof Error && reason === 'already_exists') {
109
118
  throw ctx.fail('already_exists', `Workflow "${workflow.name}@${workflow.version}" already exists`, { ...ctx.recoveryFor('already_exists') });
110
119
  }
111
- if (err instanceof Error && (reason === 'name_too_long' || reason === 'invalid_name')) {
112
- // Surface name validation issues as write_failed with the service's message (no path leak).
113
- throw ctx.fail('write_failed', err.message, { ...ctx.recoveryFor('write_failed') });
120
+ if (err instanceof Error &&
121
+ (reason === 'name_too_long' || reason === 'invalid_name' || reason === 'invalid_category')) {
122
+ // Slug validation failures (name or category) are bad input, not server faults —
123
+ // surface as ValidationError with the service's message (no path leak).
124
+ throw ctx.fail('invalid_input', err.message, { ...ctx.recoveryFor('invalid_input') });
114
125
  }
115
126
  ctx.log.error('Failed to write workflow', err instanceof Error ? err : new Error(String(err)));
116
127
  // Strip filesystem paths from the user-visible message.
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-create.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-create.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-create.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-create.tool.ts"],"names":[],"mappings":"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"}
@@ -48,5 +48,5 @@ export declare const workflowGet: import("@cyanheads/mcp-ts-core").ToolDefinitio
48
48
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
49
49
  readonly when: "The workflow index has not finished building yet.";
50
50
  readonly recovery: "Retry after the server has finished initializing its workflow index.";
51
- }]>;
51
+ }], undefined>;
52
52
  //# sourceMappingURL=workflow-get.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-get.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-get.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAuCjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2ItB,CAAC"}
1
+ {"version":3,"file":"workflow-get.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-get.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAuCjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2ItB,CAAC"}
@@ -24,5 +24,5 @@ export declare const workflowList: import("@cyanheads/mcp-ts-core").ToolDefiniti
24
24
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
25
25
  readonly when: "The workflow index has not finished building yet.";
26
26
  readonly recovery: "Retry after the server has finished initializing its workflow index.";
27
- }]>;
27
+ }], undefined>;
28
28
  //# sourceMappingURL=workflow-list.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-list.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-list.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;GAyKvB,CAAC"}
1
+ {"version":3,"file":"workflow-list.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/workflow-list.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;cAyKvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-index-service.d.ts","sourceRoot":"","sources":["../../../src/services/workflow-index/workflow-index-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EAAiB,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA2C9F,qEAAqE;AACrE,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7C;AA0CD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAE/B,YAAY,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAQ3F,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,mCAAmC;IACnC,IAAI,KAAK,IAAI,aAAa,CAEzB;IAED,oEAAoE;IAC9D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,6BAA6B;IAC7B,QAAQ,IAAI,IAAI;IAOhB,8DAA8D;IAC9D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE;IAQzC,oFAAoF;IACpF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAUvE,yEAAyE;IACnE,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUtD,6DAA6D;IACvD,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC/D,6DAA6D;IACvD,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YAmB5C,OAAO;YAuBP,aAAa;YAwBb,QAAQ;YAwCR,aAAa;IAsB3B,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,gBAAgB;CAKzB;AA6DD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,EACpB,sBAAsB,EAAE,MAAM,EAC9B,iBAAiB,EAAE,MAAM,GACxB,IAAI,CAKN;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CAO9D"}
1
+ {"version":3,"file":"workflow-index-service.d.ts","sourceRoot":"","sources":["../../../src/services/workflow-index/workflow-index-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EAAiB,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA+C9F,qEAAqE;AACrE,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7C;AA0CD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAE/B,YAAY,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAQ3F,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,mCAAmC;IACnC,IAAI,KAAK,IAAI,aAAa,CAEzB;IAED,oEAAoE;IAC9D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,6BAA6B;IAC7B,QAAQ,IAAI,IAAI;IAOhB,8DAA8D;IAC9D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE;IAQzC,oFAAoF;IACpF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAUvE,yEAAyE;IACnE,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUtD,6DAA6D;IACvD,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAuD/D,6DAA6D;IACvD,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YAmB5C,OAAO;YAuBP,aAAa;YAwBb,QAAQ;YAwCR,aAAa;IAsB3B,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,gBAAgB;CAKzB;AAQD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,EACpB,sBAAsB,EAAE,MAAM,EAC9B,iBAAiB,EAAE,MAAM,GACxB,IAAI,CAKN;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CAO9D"}
@@ -9,7 +9,7 @@ import * as path from 'node:path';
9
9
  import { z } from '@cyanheads/mcp-ts-core';
10
10
  import { logger } from '@cyanheads/mcp-ts-core/utils';
11
11
  import * as semver from 'semver';
12
- import { parse as parseYaml } from 'yaml';
12
+ import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
13
13
  // ---------------------------------------------------------------------------
14
14
  // Validation schemas
15
15
  // ---------------------------------------------------------------------------
@@ -24,7 +24,11 @@ const StepSchema = z.object({
24
24
  });
25
25
  const WorkflowSchema = z.object({
26
26
  name: z.string().min(1),
27
- version: z.string().regex(/^\d+\.\d+\.\d+/),
27
+ // Full semver validation, not a start-anchored regex — a suffix like "1.0.0junk" must
28
+ // fail here so it is skipped at index build and never reaches semver.rcompare.
29
+ version: z.string().refine((v) => semver.valid(v) !== null, {
30
+ message: 'version must be a valid semantic version',
31
+ }),
28
32
  description: z.string().min(1),
29
33
  author: z.string().min(1),
30
34
  category: z.string().min(1).optional(),
@@ -148,17 +152,36 @@ export class WorkflowIndexService {
148
152
  /** Write a permanent workflow YAML and rebuild the index. */
149
153
  async writePermanent(workflow) {
150
154
  const key = `${workflow.name}@${workflow.version}`;
155
+ // Reject cross-category duplicates. The index key is category-independent, so a second
156
+ // file with the same name@version under a different category would collapse to one key
157
+ // at rebuild (last-write-wins). The `wx` flag below only guards same-path collisions.
158
+ // A temp entry with this key does not block a permanent create.
159
+ const existing = this._index.get(key);
160
+ if (existing && !existing.isTemp) {
161
+ throw Object.assign(new Error(`Workflow "${key}" already exists`), {
162
+ _reason: 'already_exists',
163
+ });
164
+ }
151
165
  const categorySlug = slugify(workflow.category ?? 'uncategorized');
152
166
  const nameSlug = slugify(workflow.name);
153
167
  const versionSlug = slugify(workflow.version);
154
168
  assertValidNameSlug(workflow.name, nameSlug);
169
+ // A provided category that slugifies empty (e.g. "!!!") would drop the file into the
170
+ // categories/ root with no subdirectory — reject it as invalid input, mirroring the
171
+ // name-slug guard. The default 'uncategorized' fallback (category omitted) stays safe.
172
+ if (workflow.category !== undefined && !categorySlug) {
173
+ throw Object.assign(new Error(`Workflow category "${workflow.category}" produces an empty slug`), { _reason: 'invalid_category' });
174
+ }
155
175
  const categoryDir = path.join(this.workflowsDir, 'categories', categorySlug);
156
176
  // Include version in filename so multiple versions coexist on disk.
157
177
  const filePath = path.join(categoryDir, `${nameSlug}-${versionSlug}-workflow.yaml`);
158
178
  await fs.mkdir(categoryDir, { recursive: true });
159
179
  try {
160
180
  // `wx` flag fails atomically if the file already exists, preventing TOCTOU races.
161
- await fs.writeFile(filePath, buildYaml(workflow), { encoding: 'utf-8', flag: 'wx' });
181
+ await fs.writeFile(filePath, stringifyYaml(workflow, { lineWidth: 0 }), {
182
+ encoding: 'utf-8',
183
+ flag: 'wx',
184
+ });
162
185
  }
163
186
  catch (err) {
164
187
  if (err instanceof Error && err.code === 'EEXIST') {
@@ -182,7 +205,7 @@ export class WorkflowIndexService {
182
205
  await fs.mkdir(tempDir, { recursive: true });
183
206
  // Include version in filename so different versions are distinct files.
184
207
  const filePath = path.join(tempDir, `${nameSlug}-${versionSlug}-workflow.yaml`);
185
- await fs.writeFile(filePath, buildYaml(workflow), 'utf-8');
208
+ await fs.writeFile(filePath, stringifyYaml(workflow, { lineWidth: 0 }), 'utf-8');
186
209
  await this.rebuild();
187
210
  return filePath;
188
211
  }
@@ -319,64 +342,6 @@ export class WorkflowIndexService {
319
342
  }
320
343
  }
321
344
  // ---------------------------------------------------------------------------
322
- // YAML serialisation helper
323
- // ---------------------------------------------------------------------------
324
- function buildYaml(workflow) {
325
- const lines = [];
326
- lines.push(`name: ${quote(workflow.name)}`);
327
- lines.push(`version: "${workflow.version}"`);
328
- lines.push(`description: ${quote(workflow.description)}`);
329
- lines.push(`author: ${quote(workflow.author)}`);
330
- if (workflow.category)
331
- lines.push(`category: ${quote(workflow.category)}`);
332
- if (workflow.tags && workflow.tags.length > 0) {
333
- lines.push('tags:');
334
- for (const tag of workflow.tags)
335
- lines.push(` - ${quote(tag)}`);
336
- }
337
- if (workflow.created_date)
338
- lines.push(`created_date: "${workflow.created_date}"`);
339
- if (workflow.last_updated_date)
340
- lines.push(`last_updated_date: "${workflow.last_updated_date}"`);
341
- if (workflow.temporary)
342
- lines.push('temporary: true');
343
- lines.push('steps:');
344
- for (const step of workflow.steps) {
345
- lines.push(` - server: ${quote(step.server)}`);
346
- lines.push(` tool: ${quote(step.tool)}`);
347
- if (step.action)
348
- lines.push(` action: ${quote(step.action)}`);
349
- if (step.description)
350
- lines.push(` description: ${quote(step.description)}`);
351
- if (step.name)
352
- lines.push(` name: ${quote(step.name)}`);
353
- if (step.forEach)
354
- lines.push(` forEach: ${quote(step.forEach)}`);
355
- if (step.params && Object.keys(step.params).length > 0) {
356
- lines.push(' params:');
357
- for (const [k, v] of Object.entries(step.params)) {
358
- lines.push(` ${k}: ${yamlValue(v)}`);
359
- }
360
- }
361
- }
362
- return `${lines.join('\n')}\n`;
363
- }
364
- function quote(s) {
365
- if (/[:#[\]{},&*?|<>=!%@`\\]|^[-?]/.test(s) || s.includes('\n')) {
366
- return `"${s.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
367
- }
368
- return s;
369
- }
370
- function yamlValue(v) {
371
- if (typeof v === 'string')
372
- return quote(v);
373
- if (typeof v === 'boolean' || typeof v === 'number')
374
- return String(v);
375
- if (v === null)
376
- return 'null';
377
- return JSON.stringify(v);
378
- }
379
- // ---------------------------------------------------------------------------
380
345
  // Init/accessor pattern
381
346
  // ---------------------------------------------------------------------------
382
347
  let _service;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-index-service.js","sourceRoot":"","sources":["../../../src/services/workflow-index/workflow-index-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-index-service.js","sourceRoot":"","sources":["../../../src/services/workflow-index/workflow-index-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/workflows-mcp-server",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "mcpName": "io.github.cyanheads/workflows-mcp-server",
5
5
  "description": "Store, query, and create YAML workflow playbooks for LLM agents via MCP. STDIO or Streamable HTTP.",
6
6
  "type": "module",
@@ -27,10 +27,11 @@
27
27
  "audit:refresh": "rm -f bun.lock && bun install && bun audit",
28
28
  "tree": "bun run scripts/tree.ts",
29
29
  "list-skills": "bun run scripts/list-skills.ts",
30
- "format": "biome check --write --unsafe",
30
+ "format": "biome check --write .",
31
+ "format:unsafe": "biome check --write --unsafe .",
31
32
  "lint:mcp": "bun run scripts/lint-mcp.ts",
32
33
  "lint:packaging": "bun run scripts/lint-packaging.ts",
33
- "bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/workflows-mcp-server.mcpb",
34
+ "bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/workflows-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/workflows-mcp-server.mcpb",
34
35
  "changelog:build": "bun run scripts/build-changelog.ts",
35
36
  "changelog:check": "bun run scripts/build-changelog.ts --check",
36
37
  "publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish",
@@ -82,22 +83,22 @@
82
83
  "access": "public"
83
84
  },
84
85
  "dependencies": {
85
- "@cyanheads/mcp-ts-core": "^0.9.11",
86
+ "@cyanheads/mcp-ts-core": "^0.10.10",
86
87
  "pino-pretty": "^13.1.3",
87
- "semver": "^7.8.1",
88
+ "semver": "^7.8.5",
88
89
  "yaml": "^2.9.0",
89
90
  "zod": "^4.4.3"
90
91
  },
91
92
  "devDependencies": {
92
- "@biomejs/biome": "^2.4.16",
93
- "@types/node": "^25.9.1",
93
+ "@biomejs/biome": "^2.5.1",
94
+ "@types/node": "^25.9.3",
94
95
  "@types/semver": "^7.7.1",
95
- "@vitest/coverage-istanbul": "^4.1.7",
96
+ "@vitest/coverage-istanbul": "^4.1.9",
96
97
  "depcheck": "^1.4.7",
97
98
  "fast-check": "^4.8.0",
98
99
  "ignore": "^7.0.5",
99
100
  "tsc-alias": "^1.8.17",
100
101
  "typescript": "^6.0.3",
101
- "vitest": "^4.1.7"
102
+ "vitest": "^4.1.9"
102
103
  }
103
104
  }
package/server.json CHANGED
@@ -6,14 +6,14 @@
6
6
  "url": "https://github.com/cyanheads/workflows-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.1.1",
9
+ "version": "0.1.3",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "registryBaseUrl": "https://registry.npmjs.org",
14
14
  "identifier": "@cyanheads/workflows-mcp-server",
15
15
  "runtimeHint": "bun",
16
- "version": "0.1.1",
16
+ "version": "0.1.3",
17
17
  "packageArguments": [
18
18
  { "type": "positional", "value": "run" },
19
19
  { "type": "positional", "value": "start:stdio" }
@@ -57,7 +57,7 @@
57
57
  "registryBaseUrl": "https://registry.npmjs.org",
58
58
  "identifier": "@cyanheads/workflows-mcp-server",
59
59
  "runtimeHint": "bun",
60
- "version": "0.1.1",
60
+ "version": "0.1.3",
61
61
  "packageArguments": [
62
62
  { "type": "positional", "value": "run" },
63
63
  { "type": "positional", "value": "start:http" }