@stigmer/mcp-server 3.0.8-dev.20260612122433

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 (205) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +157 -0
  3. package/cli/mcp-server-stigmer.d.ts +3 -0
  4. package/cli/mcp-server-stigmer.d.ts.map +1 -0
  5. package/cli/mcp-server-stigmer.js +201 -0
  6. package/cli/mcp-server-stigmer.js.map +1 -0
  7. package/config.d.ts +44 -0
  8. package/config.d.ts.map +1 -0
  9. package/config.js +92 -0
  10. package/config.js.map +1 -0
  11. package/domains/agents/apply.d.ts +4 -0
  12. package/domains/agents/apply.d.ts.map +1 -0
  13. package/domains/agents/apply.js +25 -0
  14. package/domains/agents/apply.js.map +1 -0
  15. package/domains/agents/delete.d.ts +3 -0
  16. package/domains/agents/delete.d.ts.map +1 -0
  17. package/domains/agents/delete.js +35 -0
  18. package/domains/agents/delete.js.map +1 -0
  19. package/domains/agents/fetch.d.ts +6 -0
  20. package/domains/agents/fetch.d.ts.map +1 -0
  21. package/domains/agents/fetch.js +24 -0
  22. package/domains/agents/fetch.js.map +1 -0
  23. package/domains/agents/resources.d.ts +5 -0
  24. package/domains/agents/resources.d.ts.map +1 -0
  25. package/domains/agents/resources.js +16 -0
  26. package/domains/agents/resources.js.map +1 -0
  27. package/domains/agents/tools.d.ts +5 -0
  28. package/domains/agents/tools.d.ts.map +1 -0
  29. package/domains/agents/tools.js +41 -0
  30. package/domains/agents/tools.js.map +1 -0
  31. package/domains/client.d.ts +53 -0
  32. package/domains/client.d.ts.map +1 -0
  33. package/domains/client.js +62 -0
  34. package/domains/client.js.map +1 -0
  35. package/domains/marshal.d.ts +8 -0
  36. package/domains/marshal.d.ts.map +1 -0
  37. package/domains/marshal.js +17 -0
  38. package/domains/marshal.js.map +1 -0
  39. package/domains/mcpservers/apply.d.ts +4 -0
  40. package/domains/mcpservers/apply.d.ts.map +1 -0
  41. package/domains/mcpservers/apply.js +26 -0
  42. package/domains/mcpservers/apply.js.map +1 -0
  43. package/domains/mcpservers/delete.d.ts +6 -0
  44. package/domains/mcpservers/delete.d.ts.map +1 -0
  45. package/domains/mcpservers/delete.js +42 -0
  46. package/domains/mcpservers/delete.js.map +1 -0
  47. package/domains/mcpservers/fetch.d.ts +7 -0
  48. package/domains/mcpservers/fetch.d.ts.map +1 -0
  49. package/domains/mcpservers/fetch.js +26 -0
  50. package/domains/mcpservers/fetch.js.map +1 -0
  51. package/domains/mcpservers/resources.d.ts +5 -0
  52. package/domains/mcpservers/resources.d.ts.map +1 -0
  53. package/domains/mcpservers/resources.js +16 -0
  54. package/domains/mcpservers/resources.js.map +1 -0
  55. package/domains/mcpservers/tools.d.ts +5 -0
  56. package/domains/mcpservers/tools.d.ts.map +1 -0
  57. package/domains/mcpservers/tools.js +39 -0
  58. package/domains/mcpservers/tools.js.map +1 -0
  59. package/domains/resourcehandler.d.ts +27 -0
  60. package/domains/resourcehandler.d.ts.map +1 -0
  61. package/domains/resourcehandler.js +32 -0
  62. package/domains/resourcehandler.js.map +1 -0
  63. package/domains/resourceuri.d.ts +34 -0
  64. package/domains/resourceuri.d.ts.map +1 -0
  65. package/domains/resourceuri.js +100 -0
  66. package/domains/resourceuri.js.map +1 -0
  67. package/domains/rpcerr.d.ts +8 -0
  68. package/domains/rpcerr.d.ts.map +1 -0
  69. package/domains/rpcerr.js +42 -0
  70. package/domains/rpcerr.js.map +1 -0
  71. package/domains/search/tools.d.ts +5 -0
  72. package/domains/search/tools.d.ts.map +1 -0
  73. package/domains/search/tools.js +125 -0
  74. package/domains/search/tools.js.map +1 -0
  75. package/domains/skills/delete.d.ts +6 -0
  76. package/domains/skills/delete.d.ts.map +1 -0
  77. package/domains/skills/delete.js +38 -0
  78. package/domains/skills/delete.js.map +1 -0
  79. package/domains/skills/fetch.d.ts +6 -0
  80. package/domains/skills/fetch.d.ts.map +1 -0
  81. package/domains/skills/fetch.js +28 -0
  82. package/domains/skills/fetch.js.map +1 -0
  83. package/domains/skills/resources.d.ts +5 -0
  84. package/domains/skills/resources.d.ts.map +1 -0
  85. package/domains/skills/resources.js +25 -0
  86. package/domains/skills/resources.js.map +1 -0
  87. package/domains/skills/tools.d.ts +5 -0
  88. package/domains/skills/tools.d.ts.map +1 -0
  89. package/domains/skills/tools.js +39 -0
  90. package/domains/skills/tools.js.map +1 -0
  91. package/domains/toolresult.d.ts +12 -0
  92. package/domains/toolresult.d.ts.map +1 -0
  93. package/domains/toolresult.js +30 -0
  94. package/domains/toolresult.js.map +1 -0
  95. package/domains/workflowexecutions/tools.d.ts +5 -0
  96. package/domains/workflowexecutions/tools.d.ts.map +1 -0
  97. package/domains/workflowexecutions/tools.js +80 -0
  98. package/domains/workflowexecutions/tools.js.map +1 -0
  99. package/domains/workflows/apply.d.ts +4 -0
  100. package/domains/workflows/apply.d.ts.map +1 -0
  101. package/domains/workflows/apply.js +30 -0
  102. package/domains/workflows/apply.js.map +1 -0
  103. package/domains/workflows/delete.d.ts +3 -0
  104. package/domains/workflows/delete.d.ts.map +1 -0
  105. package/domains/workflows/delete.js +35 -0
  106. package/domains/workflows/delete.js.map +1 -0
  107. package/domains/workflows/fetch.d.ts +6 -0
  108. package/domains/workflows/fetch.d.ts.map +1 -0
  109. package/domains/workflows/fetch.js +25 -0
  110. package/domains/workflows/fetch.js.map +1 -0
  111. package/domains/workflows/resources.d.ts +5 -0
  112. package/domains/workflows/resources.d.ts.map +1 -0
  113. package/domains/workflows/resources.js +16 -0
  114. package/domains/workflows/resources.js.map +1 -0
  115. package/domains/workflows/taskkinds.d.ts +5 -0
  116. package/domains/workflows/taskkinds.d.ts.map +1 -0
  117. package/domains/workflows/taskkinds.js +66 -0
  118. package/domains/workflows/taskkinds.js.map +1 -0
  119. package/domains/workflows/tools.d.ts +5 -0
  120. package/domains/workflows/tools.d.ts.map +1 -0
  121. package/domains/workflows/tools.js +35 -0
  122. package/domains/workflows/tools.js.map +1 -0
  123. package/domains/workflows/validate.d.ts +5 -0
  124. package/domains/workflows/validate.d.ts.map +1 -0
  125. package/domains/workflows/validate.js +113 -0
  126. package/domains/workflows/validate.js.map +1 -0
  127. package/gen/agent.d.ts +385 -0
  128. package/gen/agent.d.ts.map +1 -0
  129. package/gen/agent.js +170 -0
  130. package/gen/agent.js.map +1 -0
  131. package/gen/apply-runtime.d.ts +18 -0
  132. package/gen/apply-runtime.d.ts.map +1 -0
  133. package/gen/apply-runtime.js +50 -0
  134. package/gen/apply-runtime.js.map +1 -0
  135. package/gen/mcpserver.d.ts +289 -0
  136. package/gen/mcpserver.d.ts.map +1 -0
  137. package/gen/mcpserver.js +166 -0
  138. package/gen/mcpserver.js.map +1 -0
  139. package/gen/workflow.d.ts +805 -0
  140. package/gen/workflow.d.ts.map +1 -0
  141. package/gen/workflow.js +842 -0
  142. package/gen/workflow.js.map +1 -0
  143. package/index.d.ts +20 -0
  144. package/index.d.ts.map +1 -0
  145. package/index.js +58 -0
  146. package/index.js.map +1 -0
  147. package/logger.d.ts +20 -0
  148. package/logger.d.ts.map +1 -0
  149. package/logger.js +41 -0
  150. package/logger.js.map +1 -0
  151. package/package.json +43 -0
  152. package/server.d.ts +60 -0
  153. package/server.d.ts.map +1 -0
  154. package/server.js +366 -0
  155. package/server.js.map +1 -0
  156. package/src/cli/mcp-server-stigmer.ts +42 -0
  157. package/src/config.test.ts +88 -0
  158. package/src/config.ts +151 -0
  159. package/src/domains/agents/apply.ts +30 -0
  160. package/src/domains/agents/delete.ts +41 -0
  161. package/src/domains/agents/fetch.ts +33 -0
  162. package/src/domains/agents/resources.ts +20 -0
  163. package/src/domains/agents/tools.ts +68 -0
  164. package/src/domains/apply.integration.test.ts +220 -0
  165. package/src/domains/client.ts +95 -0
  166. package/src/domains/deletes.integration.test.ts +124 -0
  167. package/src/domains/marshal.ts +21 -0
  168. package/src/domains/mcpservers/apply.ts +36 -0
  169. package/src/domains/mcpservers/delete.ts +51 -0
  170. package/src/domains/mcpservers/fetch.ts +35 -0
  171. package/src/domains/mcpservers/resources.ts +20 -0
  172. package/src/domains/mcpservers/tools.ts +74 -0
  173. package/src/domains/reads.integration.test.ts +134 -0
  174. package/src/domains/resourcehandler.ts +90 -0
  175. package/src/domains/resources.integration.test.ts +139 -0
  176. package/src/domains/resourceuri.test.ts +97 -0
  177. package/src/domains/resourceuri.ts +124 -0
  178. package/src/domains/rpcerr.test.ts +62 -0
  179. package/src/domains/rpcerr.ts +46 -0
  180. package/src/domains/search/search.integration.test.ts +127 -0
  181. package/src/domains/search/tools.ts +160 -0
  182. package/src/domains/skills/delete.ts +44 -0
  183. package/src/domains/skills/fetch.ts +38 -0
  184. package/src/domains/skills/resources.ts +33 -0
  185. package/src/domains/skills/tools.ts +67 -0
  186. package/src/domains/toolresult.ts +33 -0
  187. package/src/domains/workflowexecutions/tools.ts +133 -0
  188. package/src/domains/workflows/apply.ts +40 -0
  189. package/src/domains/workflows/delete.ts +44 -0
  190. package/src/domains/workflows/fetch.ts +34 -0
  191. package/src/domains/workflows/resources.ts +20 -0
  192. package/src/domains/workflows/taskkinds.ts +103 -0
  193. package/src/domains/workflows/tools.ts +68 -0
  194. package/src/domains/workflows/validate.integration.test.ts +117 -0
  195. package/src/domains/workflows/validate.ts +144 -0
  196. package/src/domains/workflows/workflow-tools.integration.test.ts +148 -0
  197. package/src/gen/agent.ts +173 -0
  198. package/src/gen/apply-runtime.ts +52 -0
  199. package/src/gen/mcpserver.ts +163 -0
  200. package/src/gen/workflow.ts +858 -0
  201. package/src/http.integration.test.ts +140 -0
  202. package/src/index.ts +66 -0
  203. package/src/logger.ts +49 -0
  204. package/src/server.integration.test.ts +82 -0
  205. package/src/server.ts +414 -0
@@ -0,0 +1,38 @@
1
+ // Skill delete path: resolve org/slug → id, then delete (removing the skill and
2
+ // all its versions), both over a single shared transport.
3
+ // Go parity: mcp-server/internal/domains/skills/delete.go.
4
+ import { createClient } from "@connectrpc/connect";
5
+ import { SkillSchema } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/api_pb";
6
+ import { SkillCommandController } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/command_pb";
7
+ import { SkillQueryController } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/query_pb";
8
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
9
+ import { withTransport } from "../client.js";
10
+ import { toProtoJson } from "../marshal.js";
11
+ import { rpcError } from "../rpcerr.js";
12
+ /**
13
+ * Delete a skill and all its versions by org and slug, returning the deleted
14
+ * skill as protojson.
15
+ */
16
+ export async function deleteSkill(serverAddress, token, org, slug) {
17
+ const desc = `skill "${slug}" in org "${org}"`;
18
+ return withTransport(serverAddress, token, async (transport, callOptions) => {
19
+ const query = createClient(SkillQueryController, transport);
20
+ let id;
21
+ try {
22
+ const skill = await query.getByReference({ org, kind: ApiResourceKind.skill, slug }, callOptions);
23
+ id = skill.metadata?.id ?? "";
24
+ }
25
+ catch (err) {
26
+ throw rpcError(err, desc);
27
+ }
28
+ const command = createClient(SkillCommandController, transport);
29
+ try {
30
+ const deleted = await command.delete({ value: id }, callOptions);
31
+ return toProtoJson(SkillSchema, deleted);
32
+ }
33
+ catch (err) {
34
+ throw rpcError(err, desc);
35
+ }
36
+ });
37
+ }
38
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/domains/skills/delete.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0DAA0D;AAC1D,2DAA2D;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,aAAqB,EACrB,KAAa,EACb,GAAW,EACX,IAAY;IAEZ,MAAM,IAAI,GAAG,UAAU,IAAI,aAAa,GAAG,GAAG,CAAC;IAC/C,OAAO,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;QAC1E,MAAM,KAAK,GAAG,YAAY,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,EAAU,CAAC;QACf,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;YAClG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YACjE,OAAO,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Retrieve a skill by org, slug, and optional version, returning its protojson
3
+ * representation. Pass an empty version string for the latest version.
4
+ */
5
+ export declare function fetchSkill(serverAddress: string, token: string, org: string, slug: string, version: string): Promise<string>;
6
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/domains/skills/fetch.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -0,0 +1,28 @@
1
+ // Skill read path: the single RPC the get_skill tool and both skill resource
2
+ // templates (latest + versioned) delegate to.
3
+ // Go parity: mcp-server/internal/domains/skills/fetch.go.
4
+ //
5
+ // Skills are versioned: an empty version string requests the latest version; a
6
+ // tag name or SHA-256 hash requests a specific one.
7
+ import { SkillSchema } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/api_pb";
8
+ import { SkillQueryController } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/query_pb";
9
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
10
+ import { withClient } from "../client.js";
11
+ import { toProtoJson } from "../marshal.js";
12
+ import { rpcError } from "../rpcerr.js";
13
+ /**
14
+ * Retrieve a skill by org, slug, and optional version, returning its protojson
15
+ * representation. Pass an empty version string for the latest version.
16
+ */
17
+ export async function fetchSkill(serverAddress, token, org, slug, version) {
18
+ return withClient(SkillQueryController, serverAddress, token, async (client, callOptions) => {
19
+ try {
20
+ const skill = await client.getByReference({ org, kind: ApiResourceKind.skill, slug, version }, callOptions);
21
+ return toProtoJson(SkillSchema, skill);
22
+ }
23
+ catch (err) {
24
+ throw rpcError(err, `skill "${slug}" in org "${org}"`);
25
+ }
26
+ });
27
+ }
28
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/domains/skills/fetch.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8CAA8C;AAC9C,0DAA0D;AAC1D,EAAE;AACF,+EAA+E;AAC/E,oDAAoD;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAAqB,EACrB,KAAa,EACb,GAAW,EACX,IAAY,EACZ,OAAe;IAEf,OAAO,UAAU,CAAC,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAC1F,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CACvC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EACnD,WAAW,CACZ,CAAC;YACF,OAAO,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,UAAU,IAAI,aAAa,GAAG,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { BackendTarget } from "../client.js";
3
+ /** Register both skill resource templates; returns the registered resource names. */
4
+ export declare function registerSkillResources(server: McpServer, target: BackendTarget): string[];
5
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/domains/skills/resources.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAqBzF"}
@@ -0,0 +1,25 @@
1
+ // Skill resource templates: latest (stigmer://skills/{org}/{slug}) and versioned
2
+ // (stigmer://skills/{org}/{slug}/{version}).
3
+ // Go parity: mcp-server/internal/domains/skills/resources.go.
4
+ import { registerResource, registerVersionedResource } from "../resourcehandler.js";
5
+ import { fetchSkill } from "./fetch.js";
6
+ /** Register both skill resource templates; returns the registered resource names. */
7
+ export function registerSkillResources(server, target) {
8
+ registerResource(server, target, {
9
+ name: "stigmer_skill",
10
+ title: "Stigmer Skill",
11
+ description: "Full definition of a Stigmer skill (latest version), identified by organization and slug.",
12
+ template: "stigmer://skills/{org}/{slug}",
13
+ // Two-segment URI → latest version (empty version string).
14
+ fetch: (serverAddress, token, org, slug) => fetchSkill(serverAddress, token, org, slug, ""),
15
+ });
16
+ registerVersionedResource(server, target, {
17
+ name: "stigmer_skill_version",
18
+ title: "Stigmer Skill (versioned)",
19
+ description: "Full definition of a Stigmer skill at a specific version, identified by organization, slug, and version (tag name or SHA-256 hash).",
20
+ template: "stigmer://skills/{org}/{slug}/{version}",
21
+ fetch: fetchSkill,
22
+ });
23
+ return ["stigmer_skill", "stigmer_skill_version"];
24
+ }
25
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/domains/skills/resources.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,6CAA6C;AAC7C,8DAA8D;AAK9D,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,qFAAqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAqB;IAC7E,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE;QAC/B,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,2FAA2F;QAC7F,QAAQ,EAAE,+BAA+B;QACzC,2DAA2D;QAC3D,KAAK,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;KAC5F,CAAC,CAAC;IAEH,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE;QACxC,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,qIAAqI;QACvI,QAAQ,EAAE,yCAAyC;QACnD,KAAK,EAAE,UAAU;KAClB,CAAC,CAAC;IAEH,OAAO,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type BackendTarget } from "../client.js";
3
+ /** Register every Skill-domain tool; returns the registered tool names. */
4
+ export declare function registerSkillTools(server: McpServer, target: BackendTarget): string[];
5
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/domains/skills/tools.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAKhE,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAkDrF"}
@@ -0,0 +1,39 @@
1
+ // MCP tools for the Skill domain.
2
+ // Go parity: mcp-server/internal/domains/skills/tools.go.
3
+ //
4
+ // Skills are read-only over MCP (search/get/delete); creation/update happens via
5
+ // `stigmer skill push` (content hashing, diffing, tag management). `version` is
6
+ // optional — omit it for the latest version.
7
+ import { z } from "zod";
8
+ import { resolveToken } from "../client.js";
9
+ import { textOrError } from "../toolresult.js";
10
+ import { deleteSkill } from "./delete.js";
11
+ import { fetchSkill } from "./fetch.js";
12
+ /** Register every Skill-domain tool; returns the registered tool names. */
13
+ export function registerSkillTools(server, target) {
14
+ server.registerTool("get_skill", {
15
+ description: "Get full details of a Stigmer skill by org and slug, optionally at a specific version. " +
16
+ "Omit 'version' for the latest.",
17
+ inputSchema: {
18
+ org: z.string().describe("Organization slug that owns the skill."),
19
+ slug: z.string().describe("Skill slug — unique identifier within the org."),
20
+ version: z
21
+ .string()
22
+ .optional()
23
+ .describe("Version to retrieve: tag name (e.g. stable) or SHA-256 hash. Omit for latest."),
24
+ },
25
+ }, (args, extra) => textOrError(() =>
26
+ // Empty string means "latest", matching the Go handler passing input.Version.
27
+ fetchSkill(target.serverAddress, resolveToken(extra, target.apiKey), args.org, args.slug, args.version ?? "")));
28
+ server.registerTool("delete_skill", {
29
+ description: "Delete a Stigmer skill and all its versions by org and slug. To create or update skills, use the 'stigmer skill push' CLI command. Returns the deleted skill.",
30
+ inputSchema: {
31
+ org: z.string().describe("Organization slug that owns the skill (e.g. stigmer)."),
32
+ slug: z
33
+ .string()
34
+ .describe("Skill slug — the unique identifier within the org (e.g. code-review-best-practices). Deletes the skill and all its versions."),
35
+ },
36
+ }, (args, extra) => textOrError(() => deleteSkill(target.serverAddress, resolveToken(extra, target.apiKey), args.org, args.slug)));
37
+ return ["get_skill", "delete_skill"];
38
+ }
39
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/domains/skills/tools.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,0DAA0D;AAC1D,EAAE;AACF,iFAAiF;AACjF,gFAAgF;AAChF,6CAA6C;AAG7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAsB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAqB;IACzE,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,yFAAyF;YACzF,gCAAgC;QAClC,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YAC3E,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+EAA+E,CAAC;SAC7F;KACF,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,WAAW,CAAC,GAAG,EAAE;IACf,8EAA8E;IAC9E,UAAU,CACR,MAAM,CAAC,aAAa,EACpB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAClC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,IAAI,EAAE,CACnB,CACF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,+JAA+J;QACjK,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACjF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CACP,8HAA8H,CAC/H;SACJ;KACF,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,WAAW,CAAC,GAAG,EAAE,CACf,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAC3F,CACJ,CAAC;IAEF,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ /** Wrap a plain text payload into the CallToolResult structure tools return. */
3
+ export declare function textResult(text: string): CallToolResult;
4
+ /** Wrap a failure into an `isError` CallToolResult carrying its message. */
5
+ export declare function errorResult(err: unknown): CallToolResult;
6
+ /**
7
+ * Run a string-producing tool body, returning its output as a text result or,
8
+ * if it throws, as an `isError` result. Domain handlers compose this so the
9
+ * try/catch lives in exactly one place.
10
+ */
11
+ export declare function textOrError(produce: () => Promise<string>): Promise<CallToolResult>;
12
+ //# sourceMappingURL=toolresult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolresult.d.ts","sourceRoot":"","sources":["../../src/domains/toolresult.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEvD;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAGxD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAMzF"}
@@ -0,0 +1,30 @@
1
+ // Helpers for shaping MCP tool return values.
2
+ //
3
+ // Mirrors Go internal/domains/toolresult.go: every tool returns its payload as
4
+ // a single text content block, and a failed call surfaces as an `isError`
5
+ // result carrying the user-facing message (the Go SDK does this when a handler
6
+ // returns an error; here we do it explicitly so behavior is identical and
7
+ // every domain handler stays a one-liner).
8
+ /** Wrap a plain text payload into the CallToolResult structure tools return. */
9
+ export function textResult(text) {
10
+ return { content: [{ type: "text", text }] };
11
+ }
12
+ /** Wrap a failure into an `isError` CallToolResult carrying its message. */
13
+ export function errorResult(err) {
14
+ const message = err instanceof Error ? err.message : String(err);
15
+ return { content: [{ type: "text", text: message }], isError: true };
16
+ }
17
+ /**
18
+ * Run a string-producing tool body, returning its output as a text result or,
19
+ * if it throws, as an `isError` result. Domain handlers compose this so the
20
+ * try/catch lives in exactly one place.
21
+ */
22
+ export async function textOrError(produce) {
23
+ try {
24
+ return textResult(await produce());
25
+ }
26
+ catch (err) {
27
+ return errorResult(err);
28
+ }
29
+ }
30
+ //# sourceMappingURL=toolresult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolresult.js","sourceRoot":"","sources":["../../src/domains/toolresult.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,0EAA0E;AAC1E,2CAA2C;AAI3C,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA8B;IAC9D,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type BackendTarget } from "../client.js";
3
+ /** Register the workflow-execution tools; returns the registered tool names. */
4
+ export declare function registerWorkflowExecutionTools(server: McpServer, target: BackendTarget): string[];
5
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/domains/workflowexecutions/tools.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAK5E,gFAAgF;AAChF,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAgDjG"}
@@ -0,0 +1,80 @@
1
+ // MCP tools for querying workflow execution status and event logs.
2
+ // Go parity: mcp-server/internal/domains/workflowexecutions/tools.go.
3
+ //
4
+ // Backed by WorkflowExecutionQueryController (get, getEventLog). These are
5
+ // diagnostic reads for running/failed executions.
6
+ import { WorkflowExecutionSchema } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/api_pb";
7
+ import { GetEventLogResponseSchema, } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
8
+ import { WorkflowExecutionQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/query_pb";
9
+ import { z } from "zod";
10
+ import { resolveToken, withClient } from "../client.js";
11
+ import { toProtoJson } from "../marshal.js";
12
+ import { rpcError } from "../rpcerr.js";
13
+ import { textOrError } from "../toolresult.js";
14
+ /** Register the workflow-execution tools; returns the registered tool names. */
15
+ export function registerWorkflowExecutionTools(server, target) {
16
+ server.registerTool("get_workflow_execution", {
17
+ description: "Get a workflow execution's full status including phase, tasks, errors, cost, and timing. Use for diagnosing failed or running executions.",
18
+ inputSchema: {
19
+ execution_id: z.string().describe("Workflow execution ID (wex_* format)."),
20
+ },
21
+ }, (args, extra) => textOrError(() => getWorkflowExecution(target.serverAddress, resolveToken(extra, target.apiKey), args.execution_id)));
22
+ server.registerTool("get_workflow_execution_events", {
23
+ description: "Get the event log for a workflow execution. " +
24
+ "Returns task transitions, errors, cost checkpoints, and approval events. " +
25
+ "Use for deep diagnosis of execution failures.",
26
+ inputSchema: {
27
+ execution_id: z.string().describe("Workflow execution ID (wex_* format)."),
28
+ task_name: z.string().optional().describe("Filter events by task name."),
29
+ page_size: z
30
+ .number()
31
+ .int()
32
+ .optional()
33
+ .describe("Number of events per page (default 100, max 500)."),
34
+ },
35
+ }, (args, extra) => textOrError(() => getWorkflowExecutionEvents(target.serverAddress, resolveToken(extra, target.apiKey), {
36
+ executionId: args.execution_id,
37
+ taskName: args.task_name,
38
+ pageSize: args.page_size,
39
+ })));
40
+ return ["get_workflow_execution", "get_workflow_execution_events"];
41
+ }
42
+ /** Fetch a single workflow execution by id. */
43
+ async function getWorkflowExecution(serverAddress, token, executionId) {
44
+ if (executionId === "") {
45
+ throw new Error("execution_id is required");
46
+ }
47
+ return withClient(WorkflowExecutionQueryController, serverAddress, token, async (client, callOptions) => {
48
+ try {
49
+ const execution = await client.get({ value: executionId }, callOptions);
50
+ return toProtoJson(WorkflowExecutionSchema, execution);
51
+ }
52
+ catch (err) {
53
+ throw rpcError(err, `workflow execution "${executionId}"`);
54
+ }
55
+ });
56
+ }
57
+ /** Fetch the event log for an execution, optionally filtered and paginated. */
58
+ async function getWorkflowExecutionEvents(serverAddress, token, args) {
59
+ if (args.executionId === "") {
60
+ throw new Error("execution_id is required");
61
+ }
62
+ return withClient(WorkflowExecutionQueryController, serverAddress, token, async (client, callOptions) => {
63
+ const req = {
64
+ executionId: args.executionId,
65
+ taskName: args.taskName ?? "",
66
+ };
67
+ // Forward page_size only when set, letting the server apply its default.
68
+ if ((args.pageSize ?? 0) > 0) {
69
+ req.pageSize = args.pageSize;
70
+ }
71
+ try {
72
+ const resp = await client.getEventLog(req, callOptions);
73
+ return toProtoJson(GetEventLogResponseSchema, resp);
74
+ }
75
+ catch (err) {
76
+ throw rpcError(err, `event log for execution "${args.executionId}"`);
77
+ }
78
+ });
79
+ }
80
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/domains/workflowexecutions/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type WorkflowInput } from "../../gen/workflow.js";
2
+ /** Create or update a workflow, returning the persisted workflow as protojson. */
3
+ export declare function applyWorkflow(serverAddress: string, token: string, input: WorkflowInput): Promise<string>;
4
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/domains/workflows/apply.ts"],"names":[],"mappings":"AAaA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKjF,kFAAkF;AAClF,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
@@ -0,0 +1,30 @@
1
+ // Workflow apply path: create-or-update via the WorkflowCommandController.apply
2
+ // RPC. The flat MCP input is projected into a fully-formed Workflow proto by the
3
+ // generated workflowInputToProto bridge (codegen, src/gen/workflow.ts), which
4
+ // expands each task's typed config into the task_config Struct.
5
+ //
6
+ // Go parity note: the Go MCP server keeps apply_workflow registered but its
7
+ // generated input cannot express recursive task nesting in Go's jsonschema
8
+ // reflection. protobuf-es + zod's z.lazy resolve that limitation, so the TS
9
+ // server exposes apply_workflow at full fidelity.
10
+ import { WorkflowSchema } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
11
+ import { WorkflowCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/command_pb";
12
+ import { workflowInputToProto } from "../../gen/workflow.js";
13
+ import { withClient } from "../client.js";
14
+ import { toProtoJson } from "../marshal.js";
15
+ import { rpcError } from "../rpcerr.js";
16
+ /** Create or update a workflow, returning the persisted workflow as protojson. */
17
+ export async function applyWorkflow(serverAddress, token, input) {
18
+ const workflow = workflowInputToProto(input);
19
+ const desc = `workflow "${workflow.metadata?.slug ?? ""}" in org "${workflow.metadata?.org ?? ""}"`;
20
+ return withClient(WorkflowCommandController, serverAddress, token, async (client, callOptions) => {
21
+ try {
22
+ const result = await client.apply(workflow, callOptions);
23
+ return toProtoJson(WorkflowSchema, result);
24
+ }
25
+ catch (err) {
26
+ throw rpcError(err, desc);
27
+ }
28
+ });
29
+ }
30
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/domains/workflows/apply.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,iFAAiF;AACjF,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,kDAAkD;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AAEtG,OAAO,EAAE,oBAAoB,EAAsB,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,aAAqB,EACrB,KAAa,EACb,KAAoB;IAEpB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,aAAa,QAAQ,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,aAAa,QAAQ,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC;IACpG,OAAO,UAAU,CACf,yBAAyB,EACzB,aAAa,EACb,KAAK,EACL,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACzD,OAAO,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Delete a workflow by org and slug, returning the deleted workflow as protojson. */
2
+ export declare function deleteWorkflow(serverAddress: string, token: string, org: string, slug: string): Promise<string>;
3
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/domains/workflows/delete.ts"],"names":[],"mappings":"AAcA,sFAAsF;AACtF,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
@@ -0,0 +1,35 @@
1
+ // Workflow delete path: resolve org/slug → id, then delete, both over a single
2
+ // shared transport.
3
+ // Go parity: mcp-server/internal/domains/workflows/delete.go.
4
+ import { createClient } from "@connectrpc/connect";
5
+ import { WorkflowSchema } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
6
+ import { WorkflowCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/command_pb";
7
+ import { WorkflowQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/query_pb";
8
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
9
+ import { withTransport } from "../client.js";
10
+ import { toProtoJson } from "../marshal.js";
11
+ import { rpcError } from "../rpcerr.js";
12
+ /** Delete a workflow by org and slug, returning the deleted workflow as protojson. */
13
+ export async function deleteWorkflow(serverAddress, token, org, slug) {
14
+ const desc = `workflow "${slug}" in org "${org}"`;
15
+ return withTransport(serverAddress, token, async (transport, callOptions) => {
16
+ const query = createClient(WorkflowQueryController, transport);
17
+ let id;
18
+ try {
19
+ const workflow = await query.getByReference({ org, kind: ApiResourceKind.workflow, slug }, callOptions);
20
+ id = workflow.metadata?.id ?? "";
21
+ }
22
+ catch (err) {
23
+ throw rpcError(err, desc);
24
+ }
25
+ const command = createClient(WorkflowCommandController, transport);
26
+ try {
27
+ const deleted = await command.delete({ value: id }, callOptions);
28
+ return toProtoJson(WorkflowSchema, deleted);
29
+ }
30
+ catch (err) {
31
+ throw rpcError(err, desc);
32
+ }
33
+ });
34
+ }
35
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/domains/workflows/delete.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,oBAAoB;AACpB,8DAA8D;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,KAAa,EACb,GAAW,EACX,IAAY;IAEZ,MAAM,IAAI,GAAG,aAAa,IAAI,aAAa,GAAG,GAAG,CAAC;IAClD,OAAO,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;QAC1E,MAAM,KAAK,GAAG,YAAY,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,EAAU,CAAC;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CACzC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,EAC7C,WAAW,CACZ,CAAC;YACF,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YACjE,OAAO,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Retrieve a workflow by org and slug, returning its protojson representation.
3
+ * Errors are classified into user-facing messages via {@link rpcError}.
4
+ */
5
+ export declare function fetchWorkflow(serverAddress: string, token: string, org: string, slug: string): Promise<string>;
6
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/domains/workflows/fetch.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -0,0 +1,25 @@
1
+ // Workflow read path: the single RPC both the get_workflow tool and the
2
+ // workflow resource template delegate to.
3
+ // Go parity: mcp-server/internal/domains/workflows/fetch.go.
4
+ import { WorkflowSchema } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
5
+ import { WorkflowQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/query_pb";
6
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
7
+ import { withClient } from "../client.js";
8
+ import { toProtoJson } from "../marshal.js";
9
+ import { rpcError } from "../rpcerr.js";
10
+ /**
11
+ * Retrieve a workflow by org and slug, returning its protojson representation.
12
+ * Errors are classified into user-facing messages via {@link rpcError}.
13
+ */
14
+ export async function fetchWorkflow(serverAddress, token, org, slug) {
15
+ return withClient(WorkflowQueryController, serverAddress, token, async (client, callOptions) => {
16
+ try {
17
+ const workflow = await client.getByReference({ org, kind: ApiResourceKind.workflow, slug }, callOptions);
18
+ return toProtoJson(WorkflowSchema, workflow);
19
+ }
20
+ catch (err) {
21
+ throw rpcError(err, `workflow "${slug}" in org "${org}"`);
22
+ }
23
+ });
24
+ }
25
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/domains/workflows/fetch.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0CAA0C;AAC1C,6DAA6D;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,aAAqB,EACrB,KAAa,EACb,GAAW,EACX,IAAY;IAEZ,OAAO,UAAU,CAAC,uBAAuB,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7F,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,CAC1C,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,EAC7C,WAAW,CACZ,CAAC;YACF,OAAO,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,aAAa,IAAI,aAAa,GAAG,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { BackendTarget } from "../client.js";
3
+ /** Register the workflow resource template; returns the registered resource names. */
4
+ export declare function registerWorkflowResources(server: McpServer, target: BackendTarget): string[];
5
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/domains/workflows/resources.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,sFAAsF;AACtF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAS5F"}
@@ -0,0 +1,16 @@
1
+ // Workflow resource template (stigmer://workflows/{org}/{slug}).
2
+ // Go parity: mcp-server/internal/domains/workflows/resources.go.
3
+ import { registerResource } from "../resourcehandler.js";
4
+ import { fetchWorkflow } from "./fetch.js";
5
+ /** Register the workflow resource template; returns the registered resource names. */
6
+ export function registerWorkflowResources(server, target) {
7
+ registerResource(server, target, {
8
+ name: "stigmer_workflow",
9
+ title: "Stigmer Workflow",
10
+ description: "Full definition of a Stigmer workflow, identified by organization and slug.",
11
+ template: "stigmer://workflows/{org}/{slug}",
12
+ fetch: fetchWorkflow,
13
+ });
14
+ return ["stigmer_workflow"];
15
+ }
16
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/domains/workflows/resources.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,iEAAiE;AAKjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,sFAAsF;AACtF,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAqB;IAChF,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE;QAC/B,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,6EAA6E;QAC1F,QAAQ,EAAE,kCAAkC;QAC5C,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;IACH,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type BackendTarget } from "../client.js";
3
+ /** Register the task-kind registry tools; returns the registered tool names. */
4
+ export declare function registerTaskKindTools(server: McpServer, target: BackendTarget): string[];
5
+ //# sourceMappingURL=taskkinds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskkinds.d.ts","sourceRoot":"","sources":["../../../src/domains/workflows/taskkinds.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAK5E,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAgCxF"}
@@ -0,0 +1,66 @@
1
+ // Task-kind registry tools (get_task_kind_registry, get_task_kind).
2
+ // Go parity: mcp-server/internal/domains/workflows/task_registry.go.
3
+ //
4
+ // Both tools read the same registry via TaskKindRegistryQueryController;
5
+ // get_task_kind fetches the full registry then selects one descriptor by name
6
+ // (case-insensitive), exactly as the Go server does — there is no single-kind
7
+ // RPC.
8
+ import { WorkflowTaskKind } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/enum_pb";
9
+ import { GetTaskKindRegistryResponseSchema, TaskKindDescriptorSchema, } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/task_kind_descriptor_pb";
10
+ import { TaskKindRegistryQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/task_kind_registry_query_pb";
11
+ import { z } from "zod";
12
+ import { resolveToken, withClient } from "../client.js";
13
+ import { toProtoJson } from "../marshal.js";
14
+ import { rpcError } from "../rpcerr.js";
15
+ import { textOrError } from "../toolresult.js";
16
+ /** Register the task-kind registry tools; returns the registered tool names. */
17
+ export function registerTaskKindTools(server, target) {
18
+ server.registerTool("get_task_kind_registry", {
19
+ description: "Get the complete workflow task kind registry with all 20 task kind descriptors, field schemas, JSON Schemas, categories, examples, and output shapes.",
20
+ inputSchema: {},
21
+ }, (_args, extra) => textOrError(() => getTaskKindRegistry(target.serverAddress, resolveToken(extra, target.apiKey))));
22
+ server.registerTool("get_task_kind", {
23
+ description: "Get a single workflow task kind descriptor by name with field schemas, JSON Schema, examples, and output shape.",
24
+ inputSchema: {
25
+ kind: z
26
+ .string()
27
+ .describe("Task kind name (one of: set_vars, http_call, grpc_call, activity_call, switch_case, for_each, fork, try_catch, listen, wait, raise_error, run_workflow, agent_call, llm_call, transform, human_input, validate, emit_event, notification, eval)."),
28
+ },
29
+ }, (args, extra) => textOrError(() => getTaskKind(target.serverAddress, resolveToken(extra, target.apiKey), args.kind)));
30
+ return ["get_task_kind_registry", "get_task_kind"];
31
+ }
32
+ /** Fetch and marshal the full task-kind registry. */
33
+ async function getTaskKindRegistry(serverAddress, token) {
34
+ return withClient(TaskKindRegistryQueryController, serverAddress, token, async (client, callOptions) => {
35
+ try {
36
+ const resp = await client.getTaskKindRegistry({}, callOptions);
37
+ return toProtoJson(GetTaskKindRegistryResponseSchema, resp);
38
+ }
39
+ catch (err) {
40
+ throw rpcError(err, "task kind registry");
41
+ }
42
+ });
43
+ }
44
+ /** Fetch the registry and return the single descriptor matching `kind`. */
45
+ async function getTaskKind(serverAddress, token, kind) {
46
+ if (kind === "") {
47
+ throw new Error("kind is required");
48
+ }
49
+ return withClient(TaskKindRegistryQueryController, serverAddress, token, async (client, callOptions) => {
50
+ let resp;
51
+ try {
52
+ resp = await client.getTaskKindRegistry({}, callOptions);
53
+ }
54
+ catch (err) {
55
+ throw rpcError(err, "task kind registry");
56
+ }
57
+ const normalized = kind.trim().toLowerCase();
58
+ for (const desc of resp.descriptors) {
59
+ if ((WorkflowTaskKind[desc.kind] ?? "").toLowerCase() === normalized) {
60
+ return toProtoJson(TaskKindDescriptorSchema, desc);
61
+ }
62
+ }
63
+ throw new Error(`task kind "${kind}" not found in registry; use get_task_kind_registry to see all available kinds`);
64
+ });
65
+ }
66
+ //# sourceMappingURL=taskkinds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskkinds.js","sourceRoot":"","sources":["../../../src/domains/workflows/taskkinds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type BackendTarget } from "../client.js";
3
+ /** Register the Workflow CRUD tools; returns the registered tool names. */
4
+ export declare function registerWorkflowTools(server: McpServer, target: BackendTarget): string[];
5
+ //# sourceMappingURL=tools.d.ts.map