@stigmer/mcp-server 3.3.0 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -13
- package/cli/mcp-server-stigmer.js +5 -1
- package/domains/agentexecutions/approve.d.ts +9 -0
- package/domains/agentexecutions/approve.d.ts.map +1 -0
- package/domains/agentexecutions/approve.js +46 -0
- package/domains/agentexecutions/approve.js.map +1 -0
- package/domains/agentexecutions/fetch.d.ts +28 -0
- package/domains/agentexecutions/fetch.d.ts.map +1 -0
- package/domains/agentexecutions/fetch.js +82 -0
- package/domains/agentexecutions/fetch.js.map +1 -0
- package/domains/agentexecutions/run.d.ts +27 -0
- package/domains/agentexecutions/run.d.ts.map +1 -0
- package/domains/agentexecutions/run.js +87 -0
- package/domains/agentexecutions/run.js.map +1 -0
- package/domains/agentexecutions/tools.d.ts +5 -0
- package/domains/agentexecutions/tools.d.ts.map +1 -0
- package/domains/agentexecutions/tools.js +97 -0
- package/domains/agentexecutions/tools.js.map +1 -0
- package/domains/client.d.ts +8 -0
- package/domains/client.d.ts.map +1 -1
- package/domains/client.js +9 -0
- package/domains/client.js.map +1 -1
- package/domains/datastores/apply.d.ts +4 -0
- package/domains/datastores/apply.d.ts.map +1 -0
- package/domains/datastores/apply.js +28 -0
- package/domains/datastores/apply.js.map +1 -0
- package/domains/datastores/delete.d.ts +3 -0
- package/domains/datastores/delete.d.ts.map +1 -0
- package/domains/datastores/delete.js +38 -0
- package/domains/datastores/delete.js.map +1 -0
- package/domains/datastores/fetch.d.ts +3 -0
- package/domains/datastores/fetch.d.ts.map +1 -0
- package/domains/datastores/fetch.js +23 -0
- package/domains/datastores/fetch.js.map +1 -0
- package/domains/datastores/resources.d.ts +5 -0
- package/domains/datastores/resources.d.ts.map +1 -0
- package/domains/datastores/resources.js +16 -0
- package/domains/datastores/resources.js.map +1 -0
- package/domains/datastores/tools.d.ts +5 -0
- package/domains/datastores/tools.d.ts.map +1 -0
- package/domains/datastores/tools.js +46 -0
- package/domains/datastores/tools.js.map +1 -0
- package/domains/environments/apply.d.ts +4 -0
- package/domains/environments/apply.d.ts.map +1 -0
- package/domains/environments/apply.js +30 -0
- package/domains/environments/apply.js.map +1 -0
- package/domains/environments/delete.d.ts +3 -0
- package/domains/environments/delete.d.ts.map +1 -0
- package/domains/environments/delete.js +36 -0
- package/domains/environments/delete.js.map +1 -0
- package/domains/environments/fetch.d.ts +6 -0
- package/domains/environments/fetch.d.ts.map +1 -0
- package/domains/environments/fetch.js +30 -0
- package/domains/environments/fetch.js.map +1 -0
- package/domains/environments/resources.d.ts +5 -0
- package/domains/environments/resources.d.ts.map +1 -0
- package/domains/environments/resources.js +16 -0
- package/domains/environments/resources.js.map +1 -0
- package/domains/environments/tools.d.ts +5 -0
- package/domains/environments/tools.d.ts.map +1 -0
- package/domains/environments/tools.js +51 -0
- package/domains/environments/tools.js.map +1 -0
- package/domains/executions/cancel.d.ts +9 -0
- package/domains/executions/cancel.d.ts.map +1 -0
- package/domains/executions/cancel.js +114 -0
- package/domains/executions/cancel.js.map +1 -0
- package/domains/executions/tools.d.ts +5 -0
- package/domains/executions/tools.d.ts.map +1 -0
- package/domains/executions/tools.js +28 -0
- package/domains/executions/tools.js.map +1 -0
- package/domains/records/tools.d.ts.map +1 -1
- package/domains/records/tools.js +7 -3
- package/domains/records/tools.js.map +1 -1
- package/domains/resourceuri.d.ts.map +1 -1
- package/domains/resourceuri.js +2 -0
- package/domains/resourceuri.js.map +1 -1
- package/domains/search/tools.d.ts.map +1 -1
- package/domains/search/tools.js +10 -7
- package/domains/search/tools.js.map +1 -1
- package/domains/skills/tools.d.ts.map +1 -1
- package/domains/skills/tools.js +25 -1
- package/domains/skills/tools.js.map +1 -1
- package/domains/skills/versions.d.ts +9 -0
- package/domains/skills/versions.d.ts.map +1 -0
- package/domains/skills/versions.js +31 -0
- package/domains/skills/versions.js.map +1 -0
- package/domains/workflowexecutions/approvals.d.ts +17 -0
- package/domains/workflowexecutions/approvals.d.ts.map +1 -0
- package/domains/workflowexecutions/approvals.js +61 -0
- package/domains/workflowexecutions/approvals.js.map +1 -0
- package/domains/workflowexecutions/run.d.ts +12 -0
- package/domains/workflowexecutions/run.d.ts.map +1 -0
- package/domains/workflowexecutions/run.js +69 -0
- package/domains/workflowexecutions/run.js.map +1 -0
- package/domains/workflowexecutions/tools.d.ts.map +1 -1
- package/domains/workflowexecutions/tools.js +89 -6
- package/domains/workflowexecutions/tools.js.map +1 -1
- package/domains/workflows/tools.d.ts.map +1 -1
- package/domains/workflows/tools.js +69 -5
- package/domains/workflows/tools.js.map +1 -1
- package/domains/workflows/versions.d.ts +29 -0
- package/domains/workflows/versions.d.ts.map +1 -0
- package/domains/workflows/versions.js +99 -0
- package/domains/workflows/versions.js.map +1 -0
- package/gen/datastore.d.ts +861 -0
- package/gen/datastore.d.ts.map +1 -0
- package/gen/datastore.js +267 -0
- package/gen/datastore.js.map +1 -0
- package/gen/environment.d.ts +77 -0
- package/gen/environment.d.ts.map +1 -0
- package/gen/environment.js +62 -0
- package/gen/environment.js.map +1 -0
- package/package.json +3 -3
- package/server.d.ts.map +1 -1
- package/server.js +12 -0
- package/server.js.map +1 -1
- package/src/domains/agentexecutions/approve.ts +67 -0
- package/src/domains/agentexecutions/fetch.ts +112 -0
- package/src/domains/agentexecutions/run.ts +112 -0
- package/src/domains/agentexecutions/tools.ts +139 -0
- package/src/domains/apply.integration.test.ts +82 -6
- package/src/domains/client.ts +9 -0
- package/src/domains/datastores/apply.ts +33 -0
- package/src/domains/datastores/delete.ts +47 -0
- package/src/domains/datastores/fetch.ts +32 -0
- package/src/domains/datastores/resources.ts +21 -0
- package/src/domains/datastores/tools.ts +76 -0
- package/src/domains/deletes.integration.test.ts +49 -2
- package/src/domains/environments/apply.ts +40 -0
- package/src/domains/environments/delete.ts +45 -0
- package/src/domains/environments/fetch.ts +39 -0
- package/src/domains/environments/resources.ts +21 -0
- package/src/domains/environments/tools.ts +81 -0
- package/src/domains/executions/cancel.ts +148 -0
- package/src/domains/executions/tools.ts +45 -0
- package/src/domains/executions.integration.test.ts +376 -0
- package/src/domains/reads.integration.test.ts +51 -5
- package/src/domains/records/tools.ts +7 -3
- package/src/domains/resources.integration.test.ts +38 -2
- package/src/domains/resourceuri.test.ts +11 -2
- package/src/domains/resourceuri.ts +2 -0
- package/src/domains/search/search.integration.test.ts +18 -2
- package/src/domains/search/tools.ts +12 -7
- package/src/domains/skills/tools.ts +34 -1
- package/src/domains/skills/versions.ts +47 -0
- package/src/domains/versions.integration.test.ts +212 -0
- package/src/domains/workflowexecutions/approvals.ts +102 -0
- package/src/domains/workflowexecutions/run.ts +87 -0
- package/src/domains/workflowexecutions/tools.ts +120 -6
- package/src/domains/workflows/tools.ts +90 -7
- package/src/domains/workflows/versions.ts +147 -0
- package/src/gen/datastore.ts +264 -0
- package/src/gen/environment.ts +66 -0
- package/src/server.ts +12 -0
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
// MCP tools for the Workflow domain (CRUD: get, apply, delete)
|
|
2
|
-
//
|
|
1
|
+
// MCP tools for the Workflow domain (CRUD: get, apply, delete) plus the
|
|
2
|
+
// versioning surface (version param on get, list_workflow_versions,
|
|
3
|
+
// tag_workflow_version). The CRUD names/descriptions are part of the original
|
|
4
|
+
// Go-parity contract (mcp-server/internal/domains/workflows/tools.go).
|
|
3
5
|
//
|
|
4
6
|
// The workflow-specific tools (validate_workflow_yaml, task-kind registry) live
|
|
5
7
|
// in sibling files.
|
|
@@ -10,15 +12,28 @@ import { textOrError } from "../toolresult.js";
|
|
|
10
12
|
import { applyWorkflow } from "./apply.js";
|
|
11
13
|
import { deleteWorkflow } from "./delete.js";
|
|
12
14
|
import { fetchWorkflow } from "./fetch.js";
|
|
15
|
+
import { fetchWorkflowVersion, listWorkflowVersions, tagWorkflowVersion } from "./versions.js";
|
|
13
16
|
/** Register the Workflow CRUD tools; returns the registered tool names. */
|
|
14
17
|
export function registerWorkflowTools(server, target) {
|
|
15
18
|
server.registerTool("get_workflow", {
|
|
16
|
-
description: "Get full details of a Stigmer workflow by its org and slug."
|
|
19
|
+
description: "Get full details of a Stigmer workflow by its org and slug. Pass 'version' (a full " +
|
|
20
|
+
"SHA-256 version hash from list_workflow_versions) to fetch a historical version instead — " +
|
|
21
|
+
"that returns the version entry with its validated YAML rather than the live workflow. " +
|
|
22
|
+
"Tags are not accepted here; resolve a tag to its hash via list_workflow_versions first.",
|
|
17
23
|
inputSchema: {
|
|
18
24
|
org: z.string().describe("Organization slug that owns the workflow."),
|
|
19
25
|
slug: z.string().describe("Workflow slug — unique identifier within the org."),
|
|
26
|
+
version: z
|
|
27
|
+
.string()
|
|
28
|
+
.optional()
|
|
29
|
+
.describe("Full 64-character SHA-256 version hash of a historical version. Omit for the live workflow."),
|
|
20
30
|
},
|
|
21
|
-
}, (args, extra) => textOrError(() =>
|
|
31
|
+
}, (args, extra) => textOrError(() => {
|
|
32
|
+
const token = resolveToken(extra, target.apiKey);
|
|
33
|
+
return args.version !== undefined && args.version !== ""
|
|
34
|
+
? fetchWorkflowVersion(target.serverAddress, token, args.org, args.slug, args.version)
|
|
35
|
+
: fetchWorkflow(target.serverAddress, token, args.org, args.slug);
|
|
36
|
+
}));
|
|
22
37
|
server.registerTool("apply_workflow", {
|
|
23
38
|
description: "Create or update a Stigmer workflow (idempotent). Provide identity fields (name, org) and workflow configuration (document, tasks, env, etc.).",
|
|
24
39
|
inputSchema: WorkflowInputShape,
|
|
@@ -30,6 +45,55 @@ export function registerWorkflowTools(server, target) {
|
|
|
30
45
|
slug: z.string().describe("Workflow slug — unique identifier within the org."),
|
|
31
46
|
},
|
|
32
47
|
}, (args, extra) => textOrError(() => deleteWorkflow(target.serverAddress, resolveToken(extra, target.apiKey), args.org, args.slug)));
|
|
33
|
-
|
|
48
|
+
server.registerTool("list_workflow_versions", {
|
|
49
|
+
description: "List a workflow's version history (newest first): version hash, tag, who applied it and " +
|
|
50
|
+
"when, and which version is current. Every apply that changes the workflow creates a new " +
|
|
51
|
+
"immutable version identified by its content hash. Entries omit the version YAML — fetch " +
|
|
52
|
+
"one version's full content with get_workflow and its hash.",
|
|
53
|
+
inputSchema: {
|
|
54
|
+
org: z.string().describe("Organization slug that owns the workflow."),
|
|
55
|
+
slug: z.string().describe("Workflow slug — unique identifier within the org."),
|
|
56
|
+
page_size: z
|
|
57
|
+
.number()
|
|
58
|
+
.int()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Maximum versions per page (default 50, max 100)."),
|
|
61
|
+
page_token: z
|
|
62
|
+
.string()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe("Pagination token from a previous response's next_page_token."),
|
|
65
|
+
},
|
|
66
|
+
}, (args, extra) => textOrError(() => listWorkflowVersions(target.serverAddress, resolveToken(extra, target.apiKey), {
|
|
67
|
+
org: args.org,
|
|
68
|
+
slug: args.slug,
|
|
69
|
+
pageSize: args.page_size,
|
|
70
|
+
pageToken: args.page_token,
|
|
71
|
+
})));
|
|
72
|
+
server.registerTool("tag_workflow_version", {
|
|
73
|
+
description: "Assign a tag (e.g. stable, production) to a specific workflow version. Tags are mutable " +
|
|
74
|
+
"pointers: re-tagging with an existing name moves it from its previous version, and a " +
|
|
75
|
+
"version holds at most one tag. Get version hashes from list_workflow_versions. Returns " +
|
|
76
|
+
"the updated workflow.",
|
|
77
|
+
inputSchema: {
|
|
78
|
+
org: z.string().describe("Organization slug that owns the workflow."),
|
|
79
|
+
slug: z.string().describe("Workflow slug — unique identifier within the org."),
|
|
80
|
+
version: z.string().describe("Full 64-character SHA-256 hash of the version to tag."),
|
|
81
|
+
tag: z
|
|
82
|
+
.string()
|
|
83
|
+
.describe("Tag to assign: alphanumeric with dots, hyphens, or underscores (e.g. stable, v1.0)."),
|
|
84
|
+
},
|
|
85
|
+
}, (args, extra) => textOrError(() => tagWorkflowVersion(target.serverAddress, resolveToken(extra, target.apiKey), {
|
|
86
|
+
org: args.org,
|
|
87
|
+
slug: args.slug,
|
|
88
|
+
versionHash: args.version,
|
|
89
|
+
tag: args.tag,
|
|
90
|
+
})));
|
|
91
|
+
return [
|
|
92
|
+
"get_workflow",
|
|
93
|
+
"apply_workflow",
|
|
94
|
+
"delete_workflow",
|
|
95
|
+
"list_workflow_versions",
|
|
96
|
+
"tag_workflow_version",
|
|
97
|
+
];
|
|
34
98
|
}
|
|
35
99
|
//# sourceMappingURL=tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/domains/workflows/tools.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/domains/workflows/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface ListWorkflowVersionsArgs {
|
|
2
|
+
readonly org: string;
|
|
3
|
+
readonly slug: string;
|
|
4
|
+
readonly pageSize?: number;
|
|
5
|
+
readonly pageToken?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* List a workflow's version history (newest first), with validated_yaml
|
|
9
|
+
* stripped from every entry (see file header).
|
|
10
|
+
*/
|
|
11
|
+
export declare function listWorkflowVersions(serverAddress: string, token: string, args: ListWorkflowVersionsArgs): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Fetch one historical version of a workflow: resolve org/slug → ID, then
|
|
14
|
+
* getVersion by full hash. Returns the WorkflowVersionEntry (hash, tag,
|
|
15
|
+
* provenance, and the version's validated YAML) as protojson.
|
|
16
|
+
*/
|
|
17
|
+
export declare function fetchWorkflowVersion(serverAddress: string, token: string, org: string, slug: string, versionHash: string): Promise<string>;
|
|
18
|
+
export interface TagWorkflowVersionArgs {
|
|
19
|
+
readonly org: string;
|
|
20
|
+
readonly slug: string;
|
|
21
|
+
readonly versionHash: string;
|
|
22
|
+
readonly tag: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Assign (or move) a tag onto a workflow version: resolve org/slug → ID, then
|
|
26
|
+
* tagVersion. Returns the updated workflow as protojson.
|
|
27
|
+
*/
|
|
28
|
+
export declare function tagWorkflowVersion(serverAddress: string, token: string, args: TagWorkflowVersionArgs): Promise<string>;
|
|
29
|
+
//# sourceMappingURL=versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../../src/domains/workflows/versions.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Workflow versioning paths: the version timeline (listVersions), a pinned
|
|
2
|
+
// historical version (getVersion, surfaced through get_workflow's optional
|
|
3
|
+
// version argument), and tag assignment (tagVersion).
|
|
4
|
+
//
|
|
5
|
+
// Version identity is the SHA-256 content hash of the validated CNCF YAML;
|
|
6
|
+
// tags are mutable pointers onto hashes. getVersion and tagVersion address by
|
|
7
|
+
// workflow ID + full hash — no tag or slug resolution server-side — so the
|
|
8
|
+
// tools here do the org/slug → ID two-step, and tag → hash mapping goes
|
|
9
|
+
// through the timeline (the tool descriptions teach the model that sequence).
|
|
10
|
+
//
|
|
11
|
+
// The timeline projection strips validated_yaml from every entry: the backend
|
|
12
|
+
// embeds each version's full workflow YAML, which would multiply a 50-entry
|
|
13
|
+
// page into 50 documents. The timeline answers "what versions exist"; the
|
|
14
|
+
// YAML of one version comes from get_workflow with that version's hash.
|
|
15
|
+
import { createClient } from "@connectrpc/connect";
|
|
16
|
+
import { ListWorkflowVersionsResponseSchema, WorkflowVersionEntrySchema, } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/version_pb";
|
|
17
|
+
import { WorkflowSchema } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
|
|
18
|
+
import { WorkflowCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/command_pb";
|
|
19
|
+
import { WorkflowQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/query_pb";
|
|
20
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
21
|
+
import { withClient, withTransport } from "../client.js";
|
|
22
|
+
import { toProtoJson } from "../marshal.js";
|
|
23
|
+
import { rpcError } from "../rpcerr.js";
|
|
24
|
+
/**
|
|
25
|
+
* List a workflow's version history (newest first), with validated_yaml
|
|
26
|
+
* stripped from every entry (see file header).
|
|
27
|
+
*/
|
|
28
|
+
export async function listWorkflowVersions(serverAddress, token, args) {
|
|
29
|
+
return withClient(WorkflowQueryController, serverAddress, token, async (client, callOptions) => {
|
|
30
|
+
const req = {
|
|
31
|
+
org: args.org,
|
|
32
|
+
slug: args.slug,
|
|
33
|
+
pageToken: args.pageToken ?? "",
|
|
34
|
+
};
|
|
35
|
+
// Forward page_size only when set, letting the server apply its default.
|
|
36
|
+
if ((args.pageSize ?? 0) > 0) {
|
|
37
|
+
req.pageSize = args.pageSize;
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const resp = await client.listVersions(req, callOptions);
|
|
41
|
+
const data = JSON.parse(toProtoJson(ListWorkflowVersionsResponseSchema, resp));
|
|
42
|
+
if (Array.isArray(data.versions)) {
|
|
43
|
+
for (const entry of data.versions) {
|
|
44
|
+
delete entry.validated_yaml;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return JSON.stringify(data, null, 2);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
throw rpcError(err, `versions of workflow "${args.slug}" in org "${args.org}"`);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Fetch one historical version of a workflow: resolve org/slug → ID, then
|
|
56
|
+
* getVersion by full hash. Returns the WorkflowVersionEntry (hash, tag,
|
|
57
|
+
* provenance, and the version's validated YAML) as protojson.
|
|
58
|
+
*/
|
|
59
|
+
export async function fetchWorkflowVersion(serverAddress, token, org, slug, versionHash) {
|
|
60
|
+
const desc = `version "${versionHash}" of workflow "${slug}" in org "${org}"`;
|
|
61
|
+
return withTransport(serverAddress, token, async (transport, callOptions) => {
|
|
62
|
+
const query = createClient(WorkflowQueryController, transport);
|
|
63
|
+
try {
|
|
64
|
+
const workflow = await query.getByReference({ org, kind: ApiResourceKind.workflow, slug }, callOptions);
|
|
65
|
+
const entry = await query.getVersion({ workflowId: workflow.metadata?.id ?? "", versionHash }, callOptions);
|
|
66
|
+
return toProtoJson(WorkflowVersionEntrySchema, entry);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
throw rpcError(err, desc);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Assign (or move) a tag onto a workflow version: resolve org/slug → ID, then
|
|
75
|
+
* tagVersion. Returns the updated workflow as protojson.
|
|
76
|
+
*/
|
|
77
|
+
export async function tagWorkflowVersion(serverAddress, token, args) {
|
|
78
|
+
const desc = `tag "${args.tag}" on workflow "${args.slug}" in org "${args.org}"`;
|
|
79
|
+
return withTransport(serverAddress, token, async (transport, callOptions) => {
|
|
80
|
+
const query = createClient(WorkflowQueryController, transport);
|
|
81
|
+
let id;
|
|
82
|
+
try {
|
|
83
|
+
const workflow = await query.getByReference({ org: args.org, kind: ApiResourceKind.workflow, slug: args.slug }, callOptions);
|
|
84
|
+
id = workflow.metadata?.id ?? "";
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
throw rpcError(err, desc);
|
|
88
|
+
}
|
|
89
|
+
const command = createClient(WorkflowCommandController, transport);
|
|
90
|
+
try {
|
|
91
|
+
const workflow = await command.tagVersion({ workflowId: id, versionHash: args.versionHash, tag: args.tag }, callOptions);
|
|
92
|
+
return toProtoJson(WorkflowSchema, workflow);
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
throw rpcError(err, desc);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/domains/workflows/versions.ts"],"names":[],"mappings":"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"}
|