@copado/agentia-cli 0.62.0-alpha.0 → 0.64.0-alpha.0
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 +364 -153
- package/dist/commands/cicd/metadata/list.d.ts +6 -0
- package/dist/commands/cicd/metadata/list.js +12 -0
- package/dist/commands/cicd/metadata/list.js.map +1 -1
- package/dist/commands/cicd/work/deployment-step/create.d.ts +34 -0
- package/dist/commands/cicd/work/deployment-step/create.js +158 -0
- package/dist/commands/cicd/work/deployment-step/create.js.map +1 -0
- package/dist/commands/cicd/work/deployment-step/delete.d.ts +15 -0
- package/dist/commands/cicd/work/deployment-step/delete.js +41 -0
- package/dist/commands/cicd/work/deployment-step/delete.js.map +1 -0
- package/dist/commands/cicd/work/deployment-step/list.d.ts +10 -0
- package/dist/commands/cicd/work/deployment-step/list.js +44 -0
- package/dist/commands/cicd/work/deployment-step/list.js.map +1 -0
- package/dist/commands/cicd/work/deployment-step/reorder.d.ts +12 -0
- package/dist/commands/cicd/work/deployment-step/reorder.js +80 -0
- package/dist/commands/cicd/work/deployment-step/reorder.js.map +1 -0
- package/dist/commands/cicd/work/deployment-step/types.d.ts +7 -0
- package/dist/commands/cicd/work/deployment-step/types.js +27 -0
- package/dist/commands/cicd/work/deployment-step/types.js.map +1 -0
- package/dist/commands/cicd/work/deployment-step/update.d.ts +20 -0
- package/dist/commands/cicd/work/deployment-step/update.js +83 -0
- package/dist/commands/cicd/work/deployment-step/update.js.map +1 -0
- package/dist/lib/agentia-command.js +1 -1
- package/dist/lib/agentia-command.js.map +1 -1
- package/dist/lib/ai-gateway.js +2 -1
- package/dist/lib/ai-gateway.js.map +1 -1
- package/dist/lib/cicd-gateway.d.ts +7 -1
- package/dist/lib/cicd-gateway.js +16 -2
- package/dist/lib/cicd-gateway.js.map +1 -1
- package/dist/lib/deployment-step-config.d.ts +27 -0
- package/dist/lib/deployment-step-config.js +110 -0
- package/dist/lib/deployment-step-config.js.map +1 -0
- package/dist/lib/deployment-step-types.d.ts +92 -0
- package/dist/lib/deployment-step-types.js +194 -0
- package/dist/lib/deployment-step-types.js.map +1 -0
- package/dist/lib/deployment-step-wizard.d.ts +28 -0
- package/dist/lib/deployment-step-wizard.js +155 -0
- package/dist/lib/deployment-step-wizard.js.map +1 -0
- package/dist/lib/mcp/deployment-step-tools.d.ts +78 -0
- package/dist/lib/mcp/deployment-step-tools.js +205 -0
- package/dist/lib/mcp/deployment-step-tools.js.map +1 -0
- package/dist/lib/mcp/result.d.ts +2 -0
- package/dist/lib/mcp/result.js +10 -0
- package/dist/lib/mcp/result.js.map +1 -1
- package/dist/lib/mcp/server.js +6 -0
- package/dist/lib/mcp/server.js.map +1 -1
- package/dist/lib/mcp/tools.d.ts +65 -0
- package/dist/lib/mcp/tools.js +23 -9
- package/dist/lib/mcp/tools.js.map +1 -1
- package/dist/lib/testing-gateway.js +2 -1
- package/dist/lib/testing-gateway.js.map +1 -1
- package/dist/lib/testing-operations.js +2 -0
- package/dist/lib/testing-operations.js.map +1 -1
- package/oclif.manifest.json +3270 -2692
- package/package.json +4 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CicdGateway } from '../cicd-gateway.js';
|
|
3
|
+
import { buildFriendlyDeploymentStepConfig, hasFriendlyDeploymentStepConfig, } from '../deployment-step-config.js';
|
|
4
|
+
import { buildDeploymentStepCreatePayload, buildDeploymentStepUpdatePayload, DEPLOYMENT_STEP_STANDARD_TYPES, deploymentStepTypesEndpoint, normalizeDeploymentSteps, normalizeDeploymentStepTypes, userStoryDeploymentStepEndpoint, userStoryDeploymentStepOrderEndpoint, userStoryDeploymentStepsEndpoint, validateCompleteDeploymentStepOrder, } from '../deployment-step-types.js';
|
|
5
|
+
import { resolveWorkItemId } from '../work-active.js';
|
|
6
|
+
import { safelyHandleTool } from './result.js';
|
|
7
|
+
async function deploymentStepTypes() {
|
|
8
|
+
const response = await CicdGateway.call({
|
|
9
|
+
endpoint: deploymentStepTypesEndpoint(),
|
|
10
|
+
method: 'GET',
|
|
11
|
+
});
|
|
12
|
+
return { deploymentStepTypes: normalizeDeploymentStepTypes(response) };
|
|
13
|
+
}
|
|
14
|
+
async function deploymentStepList(args = {}) {
|
|
15
|
+
const userStoryId = await resolveWorkItemId(args.userStoryId);
|
|
16
|
+
const response = await CicdGateway.call({
|
|
17
|
+
endpoint: userStoryDeploymentStepsEndpoint(userStoryId),
|
|
18
|
+
method: 'GET',
|
|
19
|
+
});
|
|
20
|
+
return { deploymentSteps: normalizeDeploymentSteps(response), userStoryId };
|
|
21
|
+
}
|
|
22
|
+
async function deploymentStepCreate(args) {
|
|
23
|
+
const userStoryId = await resolveWorkItemId(args.userStoryId);
|
|
24
|
+
const friendlyFlags = {
|
|
25
|
+
'apex-script': args.apexScript,
|
|
26
|
+
'assignee-id': args.assigneeId,
|
|
27
|
+
'assignee-name': args.assigneeName,
|
|
28
|
+
'crt-run-on': args.crtRunOn,
|
|
29
|
+
'crt-test-id': args.crtTestId,
|
|
30
|
+
'data-set-id': args.dataSetId,
|
|
31
|
+
'data-template-id': args.dataTemplateId,
|
|
32
|
+
environment: args.environment,
|
|
33
|
+
'flow-name': args.flowName,
|
|
34
|
+
'function-name': args.functionName,
|
|
35
|
+
instructions: args.instructions,
|
|
36
|
+
parameter: args.parameters?.map(({ name, value }) => `${name}=${value}`),
|
|
37
|
+
};
|
|
38
|
+
const friendly = hasFriendlyDeploymentStepConfig(friendlyFlags);
|
|
39
|
+
if (friendly && args.configJson !== undefined) {
|
|
40
|
+
throw new Error('Type-specific configuration fields cannot be combined with configJson.');
|
|
41
|
+
}
|
|
42
|
+
if (friendly && args.type === undefined) {
|
|
43
|
+
throw new Error('Type-specific configuration fields require type.');
|
|
44
|
+
}
|
|
45
|
+
const configJson = friendly && args.type !== undefined
|
|
46
|
+
? buildFriendlyDeploymentStepConfig(args.type, friendlyFlags)
|
|
47
|
+
: args.configJson;
|
|
48
|
+
if (configJson === undefined) {
|
|
49
|
+
throw new Error('Provide configJson or the type-specific configuration fields.');
|
|
50
|
+
}
|
|
51
|
+
const body = buildDeploymentStepCreatePayload({
|
|
52
|
+
...(args.customStepApiName === undefined ? {} : { 'custom-step-api-name': args.customStepApiName }),
|
|
53
|
+
'config-json': JSON.stringify(configJson),
|
|
54
|
+
name: args.name,
|
|
55
|
+
...(args.queueName === undefined ? {} : { 'queue-name': args.queueName }),
|
|
56
|
+
...(args.runOnValidation === undefined ? {} : { 'run-on-validation': args.runOnValidation }),
|
|
57
|
+
...(args.sequence === undefined ? {} : { sequence: args.sequence }),
|
|
58
|
+
...(args.skipBackPromotion === undefined ? {} : { 'skip-back-promotion': args.skipBackPromotion }),
|
|
59
|
+
...(args.skipCondition === undefined ? {} : { 'skip-condition': args.skipCondition }),
|
|
60
|
+
...(args.type === undefined ? {} : { type: args.type }),
|
|
61
|
+
});
|
|
62
|
+
const deploymentStep = await CicdGateway.call({
|
|
63
|
+
body,
|
|
64
|
+
endpoint: userStoryDeploymentStepsEndpoint(userStoryId),
|
|
65
|
+
headers: { 'Content-Type': 'application/json' },
|
|
66
|
+
method: 'POST',
|
|
67
|
+
});
|
|
68
|
+
return { deploymentStep, userStoryId };
|
|
69
|
+
}
|
|
70
|
+
async function deploymentStepUpdate(args) {
|
|
71
|
+
const userStoryId = await resolveWorkItemId(args.userStoryId);
|
|
72
|
+
const body = buildDeploymentStepUpdatePayload({
|
|
73
|
+
...(args.configJson === undefined ? {} : { 'config-json': JSON.stringify(args.configJson) }),
|
|
74
|
+
...(args.name === undefined ? {} : { name: args.name }),
|
|
75
|
+
...(args.queueName === null
|
|
76
|
+
? { 'clear-queue-name': true }
|
|
77
|
+
: args.queueName === undefined
|
|
78
|
+
? {}
|
|
79
|
+
: { 'queue-name': args.queueName }),
|
|
80
|
+
...(args.runOnValidation === undefined ? {} : { 'run-on-validation': args.runOnValidation }),
|
|
81
|
+
...(args.skipBackPromotion === undefined ? {} : { 'skip-back-promotion': args.skipBackPromotion }),
|
|
82
|
+
...(args.skipCondition === null
|
|
83
|
+
? { 'clear-skip-condition': true }
|
|
84
|
+
: args.skipCondition === undefined
|
|
85
|
+
? {}
|
|
86
|
+
: { 'skip-condition': args.skipCondition }),
|
|
87
|
+
});
|
|
88
|
+
const deploymentStep = await CicdGateway.call({
|
|
89
|
+
body,
|
|
90
|
+
endpoint: userStoryDeploymentStepEndpoint(userStoryId, args.stepId),
|
|
91
|
+
headers: { 'Content-Type': 'application/json' },
|
|
92
|
+
method: 'PATCH',
|
|
93
|
+
});
|
|
94
|
+
return { deploymentStep, userStoryId };
|
|
95
|
+
}
|
|
96
|
+
async function deploymentStepReorder(args) {
|
|
97
|
+
const userStoryId = await resolveWorkItemId(args.userStoryId);
|
|
98
|
+
const currentResponse = await CicdGateway.call({
|
|
99
|
+
endpoint: userStoryDeploymentStepsEndpoint(userStoryId),
|
|
100
|
+
method: 'GET',
|
|
101
|
+
});
|
|
102
|
+
const current = normalizeDeploymentSteps(currentResponse);
|
|
103
|
+
const order = { after: args.after, before: args.before };
|
|
104
|
+
validateCompleteDeploymentStepOrder(order, current);
|
|
105
|
+
const response = await CicdGateway.call({
|
|
106
|
+
body: order,
|
|
107
|
+
endpoint: userStoryDeploymentStepOrderEndpoint(userStoryId),
|
|
108
|
+
headers: { 'Content-Type': 'application/json' },
|
|
109
|
+
method: 'PUT',
|
|
110
|
+
});
|
|
111
|
+
return { deploymentSteps: normalizeDeploymentSteps(response), userStoryId };
|
|
112
|
+
}
|
|
113
|
+
async function deploymentStepDelete(args) {
|
|
114
|
+
const userStoryId = await resolveWorkItemId(args.userStoryId);
|
|
115
|
+
await CicdGateway.call({
|
|
116
|
+
endpoint: userStoryDeploymentStepEndpoint(userStoryId, args.stepId),
|
|
117
|
+
method: 'DELETE',
|
|
118
|
+
});
|
|
119
|
+
return { deleted: true, stepId: args.stepId, userStoryId };
|
|
120
|
+
}
|
|
121
|
+
export const agentiaMcpDeploymentStepToolHandlers = {
|
|
122
|
+
deploymentStepCreate,
|
|
123
|
+
deploymentStepDelete,
|
|
124
|
+
deploymentStepList,
|
|
125
|
+
deploymentStepReorder,
|
|
126
|
+
deploymentStepTypes,
|
|
127
|
+
deploymentStepUpdate,
|
|
128
|
+
};
|
|
129
|
+
const userStoryIdSchema = z.string().optional().describe('User story ID. Defaults to the active work item.');
|
|
130
|
+
const configJsonSchema = z.record(z.string(), z.unknown()).describe('Resolved inner ConfigJson object.');
|
|
131
|
+
export function registerAgentiaMcpDeploymentStepTools(server) {
|
|
132
|
+
server.registerTool('agentia_work_deployment_step_types', {
|
|
133
|
+
description: 'List standard and custom metadata-backed deployment-step types.',
|
|
134
|
+
inputSchema: {},
|
|
135
|
+
title: 'Agentia Work Deployment Step Types',
|
|
136
|
+
}, () => safelyHandleTool(() => deploymentStepTypes()));
|
|
137
|
+
server.registerTool('agentia_work_deployment_step_list', {
|
|
138
|
+
description: 'List persisted deployment steps for an explicit or active user story.',
|
|
139
|
+
inputSchema: { userStoryId: userStoryIdSchema },
|
|
140
|
+
title: 'Agentia Work Deployment Step List',
|
|
141
|
+
}, (args) => safelyHandleTool(() => deploymentStepList(args || {})));
|
|
142
|
+
server.registerTool('agentia_work_deployment_step_create', {
|
|
143
|
+
description: 'Create a standard or custom metadata-backed deployment step on a user story.',
|
|
144
|
+
inputSchema: {
|
|
145
|
+
apexScript: z.string().optional().describe('Apex script for an Apex step.'),
|
|
146
|
+
assigneeId: z.string().optional().describe('Manual Task assignee Salesforce user ID.'),
|
|
147
|
+
assigneeName: z.string().optional().describe('Manual Task assignee display name.'),
|
|
148
|
+
configJson: configJsonSchema.optional().describe('Resolved expert ConfigJson object.'),
|
|
149
|
+
crtRunOn: z.enum(['source', 'destination']).optional().describe('Environment where the Robotic Test runs.'),
|
|
150
|
+
crtTestId: z.string().optional().describe('Robotic Test Salesforce ID.'),
|
|
151
|
+
customStepApiName: z.string().optional().describe('Custom metadata developerName. Mutually exclusive with type.'),
|
|
152
|
+
dataSetId: z.string().optional().describe('Salesforce Data Set ID.'),
|
|
153
|
+
dataTemplateId: z.string().optional().describe('Salesforce Data Template ID.'),
|
|
154
|
+
environment: z.enum(['source', 'destination', 'both']).optional().describe('Manual Task environment.'),
|
|
155
|
+
flowName: z.string().optional().describe('Salesforce Flow API name.'),
|
|
156
|
+
functionName: z.string().optional().describe('Function name.'),
|
|
157
|
+
instructions: z.string().optional().describe('Manual Task instructions.'),
|
|
158
|
+
name: z.string().describe('Step name, up to 80 characters.'),
|
|
159
|
+
parameters: z
|
|
160
|
+
.array(z.object({ name: z.string(), value: z.string() }))
|
|
161
|
+
.optional()
|
|
162
|
+
.describe('Flow or Function parameters.'),
|
|
163
|
+
queueName: z.string().optional(),
|
|
164
|
+
runOnValidation: z.boolean().optional(),
|
|
165
|
+
sequence: z.enum(['before', 'after']).optional(),
|
|
166
|
+
skipBackPromotion: z.boolean().optional(),
|
|
167
|
+
skipCondition: z.string().optional(),
|
|
168
|
+
type: z.enum(DEPLOYMENT_STEP_STANDARD_TYPES).optional().describe('Standard deployment-step type.'),
|
|
169
|
+
userStoryId: userStoryIdSchema,
|
|
170
|
+
},
|
|
171
|
+
title: 'Agentia Work Deployment Step Create',
|
|
172
|
+
}, (args) => safelyHandleTool(() => deploymentStepCreate(args)));
|
|
173
|
+
server.registerTool('agentia_work_deployment_step_update', {
|
|
174
|
+
description: 'Partially update a persisted deployment step. Null clears queueName or skipCondition.',
|
|
175
|
+
inputSchema: {
|
|
176
|
+
configJson: configJsonSchema.optional(),
|
|
177
|
+
name: z.string().optional(),
|
|
178
|
+
queueName: z.string().nullable().optional(),
|
|
179
|
+
runOnValidation: z.boolean().optional(),
|
|
180
|
+
skipBackPromotion: z.boolean().optional(),
|
|
181
|
+
skipCondition: z.string().nullable().optional(),
|
|
182
|
+
stepId: z.string().describe('Deployment-step ID.'),
|
|
183
|
+
userStoryId: userStoryIdSchema,
|
|
184
|
+
},
|
|
185
|
+
title: 'Agentia Work Deployment Step Update',
|
|
186
|
+
}, (args) => safelyHandleTool(() => deploymentStepUpdate(args)));
|
|
187
|
+
server.registerTool('agentia_work_deployment_step_reorder', {
|
|
188
|
+
description: 'Replace the complete before/after deployment-step order for a user story.',
|
|
189
|
+
inputSchema: {
|
|
190
|
+
after: z.array(z.string()).describe('Complete ordered after-step IDs.'),
|
|
191
|
+
before: z.array(z.string()).describe('Complete ordered before-step IDs.'),
|
|
192
|
+
userStoryId: userStoryIdSchema,
|
|
193
|
+
},
|
|
194
|
+
title: 'Agentia Work Deployment Step Reorder',
|
|
195
|
+
}, (args) => safelyHandleTool(() => deploymentStepReorder(args)));
|
|
196
|
+
server.registerTool('agentia_work_deployment_step_delete', {
|
|
197
|
+
description: 'Delete a persisted deployment step owned by a user story.',
|
|
198
|
+
inputSchema: {
|
|
199
|
+
stepId: z.string().describe('Deployment-step ID.'),
|
|
200
|
+
userStoryId: userStoryIdSchema,
|
|
201
|
+
},
|
|
202
|
+
title: 'Agentia Work Deployment Step Delete',
|
|
203
|
+
}, (args) => safelyHandleTool(() => deploymentStepDelete(args)));
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=deployment-step-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-step-tools.js","sourceRoot":"","sources":["../../../src/lib/mcp/deployment-step-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/mcp/result.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export declare function mcpToolNameFromHandler(handlerName: string): string;
|
|
2
|
+
export declare function wrapMcpToolHandlers<T extends Record<string, (...args: never[]) => Promise<unknown>>>(handlers: T): T;
|
|
1
3
|
export declare function toolResult(data: Record<string, unknown>): {
|
|
2
4
|
content: {
|
|
3
5
|
text: string;
|
package/dist/lib/mcp/result.js
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
+
import { createTransactionId, runWithGatewayTransactionContext } from '../cicd-gateway.js';
|
|
1
2
|
import { redactErrorMessage, redactSecrets } from './redaction.js';
|
|
3
|
+
export function mcpToolNameFromHandler(handlerName) {
|
|
4
|
+
return `agentia_${handlerName.replaceAll(/[A-Z]/gu, (letter) => `_${letter.toLowerCase()}`)}`;
|
|
5
|
+
}
|
|
6
|
+
export function wrapMcpToolHandlers(handlers) {
|
|
7
|
+
return Object.fromEntries(Object.entries(handlers).map(([name, handler]) => [
|
|
8
|
+
name,
|
|
9
|
+
(...args) => runWithGatewayTransactionContext({ referer: mcpToolNameFromHandler(name), transactionId: createTransactionId() }, () => handler(...args)),
|
|
10
|
+
]));
|
|
11
|
+
}
|
|
2
12
|
export function toolResult(data) {
|
|
3
13
|
const redacted = redactSecrets(data);
|
|
4
14
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/lib/mcp/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAEhE,MAAM,UAAU,UAAU,CAAC,IAA6B;IACtD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAEpC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,MAAe;aACtB;SACF;QACD,iBAAiB,EAAE,QAAQ;KAC5B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,MAAM,UAAU,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/F,MAAM,OAAO,GAAG;QACd,KAAK,EAAE;YACL,GAAG,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAC,CAAC;YACnF,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC;YAClC,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAC,CAAC;SACxE;KACF,CAAA;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAEvC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,MAAe;aACtB;SACF;QACD,OAAO,EAAE,IAAI;QACb,iBAAiB,EAAE,QAAQ;KAC5B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA+C;IACpF,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,MAAM,OAAO,EAAE,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/lib/mcp/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAE,gCAAgC,EAAC,MAAM,oBAAoB,CAAA;AACxF,OAAO,EAAC,kBAAkB,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAEhE,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,OAAO,WAAW,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAA;AAC/F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAmE,QAAW;IAC/G,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;QAChD,IAAI;QACJ,CAAC,GAAG,IAAa,EAAE,EAAE,CACnB,gCAAgC,CAC9B,EAAC,OAAO,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAC,EAC7E,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CACvB;KACJ,CAAC,CACE,CAAA;AACR,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAA6B;IACtD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAEpC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,MAAe;aACtB;SACF;QACD,iBAAiB,EAAE,QAAQ;KAC5B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,MAAM,UAAU,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/F,MAAM,OAAO,GAAG;QACd,KAAK,EAAE;YACL,GAAG,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAC,CAAC;YACnF,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC;YAClC,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAC,CAAC;SACxE;KACF,CAAA;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAEvC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,MAAe;aACtB;SACF;QACD,OAAO,EAAE,IAAI;QACb,iBAAiB,EAAE,QAAQ;KAC5B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA+C;IACpF,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,MAAM,OAAO,EAAE,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;AACH,CAAC"}
|
package/dist/lib/mcp/server.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { createRequire } from 'node:module';
|
|
4
|
+
import { createTransactionId, runWithGatewayTransactionContext } from '../cicd-gateway.js';
|
|
4
5
|
import { registerAgentiaMcpTools } from './tools.js';
|
|
5
6
|
const require = createRequire(import.meta.url);
|
|
6
7
|
const packageJson = require('../../../package.json');
|
|
@@ -9,9 +10,14 @@ export function createAgentiaMcpServer() {
|
|
|
9
10
|
name: packageJson.name ?? 'agentia-cli',
|
|
10
11
|
version: packageJson.version,
|
|
11
12
|
});
|
|
13
|
+
wrapMcpToolRegistration(server);
|
|
12
14
|
registerAgentiaMcpTools(server);
|
|
13
15
|
return server;
|
|
14
16
|
}
|
|
17
|
+
function wrapMcpToolRegistration(server) {
|
|
18
|
+
const registerTool = server.registerTool.bind(server);
|
|
19
|
+
server.registerTool = ((name, config, handler) => registerTool(name, config, (...args) => runWithGatewayTransactionContext({ referer: name, transactionId: createTransactionId() }, async () => handler(...args))));
|
|
20
|
+
}
|
|
15
21
|
export async function startAgentiaMcpServer(transport = new StdioServerTransport()) {
|
|
16
22
|
const server = createAgentiaMcpServer();
|
|
17
23
|
await server.connect(transport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/lib/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAA;AACjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAA;AAC9E,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAElD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAqC,CAAA;AAExF,MAAM,UAAU,sBAAsB;IACpC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,aAAa;QACvC,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,CAAC,CAAA;IAEF,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,SAAS,GAAG,IAAI,oBAAoB,EAAE;IAChF,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAA;IACvC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,KAAK,GAAI,MAAkE,CAAC,gBAAgB,CAAA;IAClG,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/lib/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAA;AACjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAA;AAC9E,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAC,mBAAmB,EAAE,gCAAgC,EAAC,MAAM,oBAAoB,CAAA;AACxF,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAElD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAqC,CAAA;AAExF,MAAM,UAAU,sBAAsB;IACpC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,aAAa;QACvC,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,CAAC,CAAA;IAEF,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAC/B,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAiB;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAIxC,CAAA;IAEZ,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,IAAY,EAAE,MAAe,EAAE,OAAsC,EAAE,EAAE,CAC/F,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAa,EAAE,EAAE,CAC9C,gCAAgC,CAC9B,EAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAC,EACrD,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAC7B,CACF,CAA+B,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,SAAS,GAAG,IAAI,oBAAoB,EAAE;IAChF,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAA;IACvC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,KAAK,GAAI,MAAkE,CAAC,gBAAgB,CAAA;IAClG,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACxC,CAAC"}
|
package/dist/lib/mcp/tools.d.ts
CHANGED
|
@@ -113,6 +113,8 @@ type RepositoryUpdateArgs = RepositoryMutationArgs & {
|
|
|
113
113
|
};
|
|
114
114
|
type MetadataListArgs = {
|
|
115
115
|
avoidSourceTracking?: boolean;
|
|
116
|
+
changeDateFrom?: string;
|
|
117
|
+
changeDateTo?: string;
|
|
116
118
|
filterType?: string;
|
|
117
119
|
findManagedPackages?: boolean;
|
|
118
120
|
limit?: number;
|
|
@@ -1107,6 +1109,69 @@ export declare const agentiaMcpToolHandlers: {
|
|
|
1107
1109
|
repositoryValidate: typeof repositoryValidate;
|
|
1108
1110
|
userGet: typeof userGet;
|
|
1109
1111
|
workStatus: typeof workStatus;
|
|
1112
|
+
deploymentStepCreate: (args: {
|
|
1113
|
+
apexScript?: string;
|
|
1114
|
+
assigneeId?: string;
|
|
1115
|
+
assigneeName?: string;
|
|
1116
|
+
configJson?: Record<string, unknown>;
|
|
1117
|
+
crtRunOn?: import("../deployment-step-config.js").CrtRunOn;
|
|
1118
|
+
crtTestId?: string;
|
|
1119
|
+
customStepApiName?: string;
|
|
1120
|
+
dataSetId?: string;
|
|
1121
|
+
dataTemplateId?: string;
|
|
1122
|
+
environment?: import("../deployment-step-config.js").DeploymentStepEnvironment;
|
|
1123
|
+
flowName?: string;
|
|
1124
|
+
functionName?: string;
|
|
1125
|
+
instructions?: string;
|
|
1126
|
+
name: string;
|
|
1127
|
+
parameters?: import("../deployment-step-config.js").DeploymentStepParameter[];
|
|
1128
|
+
queueName?: string;
|
|
1129
|
+
runOnValidation?: boolean;
|
|
1130
|
+
sequence?: import("../deployment-step-types.js").DeploymentStepSequence;
|
|
1131
|
+
skipBackPromotion?: boolean;
|
|
1132
|
+
skipCondition?: string;
|
|
1133
|
+
type?: import("../deployment-step-types.js").DeploymentStepStandardType;
|
|
1134
|
+
userStoryId?: string;
|
|
1135
|
+
}) => Promise<{
|
|
1136
|
+
deploymentStep: import("../deployment-step-types.js").DeploymentStep;
|
|
1137
|
+
userStoryId: string;
|
|
1138
|
+
}>;
|
|
1139
|
+
deploymentStepDelete: (args: {
|
|
1140
|
+
stepId: string;
|
|
1141
|
+
userStoryId?: string;
|
|
1142
|
+
}) => Promise<{
|
|
1143
|
+
deleted: boolean;
|
|
1144
|
+
stepId: string;
|
|
1145
|
+
userStoryId: string;
|
|
1146
|
+
}>;
|
|
1147
|
+
deploymentStepList: (args?: {
|
|
1148
|
+
userStoryId?: string;
|
|
1149
|
+
}) => Promise<{
|
|
1150
|
+
deploymentSteps: import("../deployment-step-types.js").DeploymentStep[];
|
|
1151
|
+
userStoryId: string;
|
|
1152
|
+
}>;
|
|
1153
|
+
deploymentStepReorder: (args: import("../deployment-step-types.js").DeploymentStepOrder & {
|
|
1154
|
+
userStoryId?: string;
|
|
1155
|
+
}) => Promise<{
|
|
1156
|
+
deploymentSteps: import("../deployment-step-types.js").DeploymentStep[];
|
|
1157
|
+
userStoryId: string;
|
|
1158
|
+
}>;
|
|
1159
|
+
deploymentStepTypes: () => Promise<{
|
|
1160
|
+
deploymentStepTypes: import("../deployment-step-types.js").DeploymentStepType[];
|
|
1161
|
+
}>;
|
|
1162
|
+
deploymentStepUpdate: (args: {
|
|
1163
|
+
configJson?: Record<string, unknown>;
|
|
1164
|
+
name?: string;
|
|
1165
|
+
queueName?: null | string;
|
|
1166
|
+
runOnValidation?: boolean;
|
|
1167
|
+
skipBackPromotion?: boolean;
|
|
1168
|
+
skipCondition?: null | string;
|
|
1169
|
+
stepId: string;
|
|
1170
|
+
userStoryId?: string;
|
|
1171
|
+
}) => Promise<{
|
|
1172
|
+
deploymentStep: import("../deployment-step-types.js").DeploymentStep;
|
|
1173
|
+
userStoryId: string;
|
|
1174
|
+
}>;
|
|
1110
1175
|
dataCommitCreate: (args: import("../data-types.js").DataCommitApiRequest) => Promise<{
|
|
1111
1176
|
result: import("../data-types.js").DataCommitResponse;
|
|
1112
1177
|
}>;
|
package/dist/lib/mcp/tools.js
CHANGED
|
@@ -12,7 +12,7 @@ import { CICD_REGIONS } from '../cicd-region.js';
|
|
|
12
12
|
import { ALL_CREDENTIAL_TYPES, credentialLabel, getCicdBaseUrl, getCredential, maskSecret, } from '../credential-store.js';
|
|
13
13
|
import { readDefaults, readLastWorkItem, resolveDefaults, unsetDefaults, writeDefaults } from '../defaults-store.js';
|
|
14
14
|
import { runEnvironmentAuthStatus } from '../environment-auth-status.js';
|
|
15
|
-
import { collectCredentialUpdateFlagKeys, validateCredentialName
|
|
15
|
+
import { collectCredentialUpdateFlagKeys, validateCredentialName } from '../environment-credential-flags.js';
|
|
16
16
|
import { createEnvironmentCredential, resolveEnvironmentOrgType, updateEnvironmentCredential, } from '../environment-credential-operations.js';
|
|
17
17
|
import { buildCreatePayload, buildMutationPayload, ENVIRONMENT_STRING_VALIDATION_KEYS, validateNonEmptyStringFields, } from '../environment-flags.js';
|
|
18
18
|
import { DEFAULT_ENVIRONMENT_PLATFORM, DEFAULT_ENVIRONMENT_TYPE, ENVIRONMENT_TYPES, environmentEndpoint, environmentsListEndpoint, } from '../environment-types.js';
|
|
@@ -38,7 +38,8 @@ import { DEFAULT_USER_ID, resolveUserId, userEndpoint } from '../user-types.js';
|
|
|
38
38
|
import { workStatusEndpoint } from '../work-types.js';
|
|
39
39
|
import { agentiaMcpAiToolHandlers, registerAgentiaMcpAiTools } from './ai-tools.js';
|
|
40
40
|
import { agentiaMcpDataToolHandlers, registerAgentiaMcpDataTools } from './data-tools.js';
|
|
41
|
-
import {
|
|
41
|
+
import { agentiaMcpDeploymentStepToolHandlers, registerAgentiaMcpDeploymentStepTools } from './deployment-step-tools.js';
|
|
42
|
+
import { safelyHandleTool, wrapMcpToolHandlers } from './result.js';
|
|
42
43
|
import { agentiaMcpTestingToolHandlers, registerAgentiaMcpTestingTools } from './testing-tools.js';
|
|
43
44
|
import { agentiaMcpWorkToolHandlers, registerAgentiaMcpWorkTools } from './work-tools.js';
|
|
44
45
|
const MAX_LIMIT = 2000;
|
|
@@ -486,9 +487,7 @@ async function functionResultLogGet(args) {
|
|
|
486
487
|
};
|
|
487
488
|
}
|
|
488
489
|
async function functionRunLocal(args) {
|
|
489
|
-
const parameter = args.parameters === undefined
|
|
490
|
-
? undefined
|
|
491
|
-
: Object.entries(args.parameters).map(([key, value]) => `${key}=${value}`);
|
|
490
|
+
const parameter = args.parameters === undefined ? undefined : Object.entries(args.parameters).map(([key, value]) => `${key}=${value}`);
|
|
492
491
|
return executeLocalFunctionRun({
|
|
493
492
|
cwd: args.cwd,
|
|
494
493
|
image: args.image,
|
|
@@ -587,6 +586,8 @@ async function metadataList(args) {
|
|
|
587
586
|
const platformExperience = args.platformExperience ?? 'salesforce';
|
|
588
587
|
const body = buildMetadataIndexRequest({
|
|
589
588
|
'avoid-source-tracking': Boolean(args.avoidSourceTracking),
|
|
589
|
+
'change-date-from': args.changeDateFrom,
|
|
590
|
+
'change-date-to': args.changeDateTo,
|
|
590
591
|
'filter-type': args.filterType,
|
|
591
592
|
'find-managed-packages': Boolean(args.findManagedPackages),
|
|
592
593
|
limit: args.limit,
|
|
@@ -883,9 +884,10 @@ async function navigationResolve(args) {
|
|
|
883
884
|
resourceType: args.resourceType,
|
|
884
885
|
});
|
|
885
886
|
}
|
|
886
|
-
export const agentiaMcpToolHandlers = {
|
|
887
|
+
export const agentiaMcpToolHandlers = wrapMcpToolHandlers({
|
|
887
888
|
...agentiaMcpAiToolHandlers,
|
|
888
889
|
...agentiaMcpDataToolHandlers,
|
|
890
|
+
...agentiaMcpDeploymentStepToolHandlers,
|
|
889
891
|
authGet,
|
|
890
892
|
authSet,
|
|
891
893
|
credentialCreate,
|
|
@@ -946,7 +948,7 @@ export const agentiaMcpToolHandlers = {
|
|
|
946
948
|
workStatus,
|
|
947
949
|
...agentiaMcpTestingToolHandlers,
|
|
948
950
|
...agentiaMcpWorkToolHandlers,
|
|
949
|
-
};
|
|
951
|
+
});
|
|
950
952
|
const environmentMutationSchema = {
|
|
951
953
|
apexTestLevel: z.string().optional().describe('Apex test level.'),
|
|
952
954
|
enableRollback: z.boolean().optional().describe('Enable rollback.'),
|
|
@@ -1005,6 +1007,7 @@ const promotionListSchema = {
|
|
|
1005
1007
|
export function registerAgentiaMcpTools(server) {
|
|
1006
1008
|
registerAgentiaMcpAiTools(server);
|
|
1007
1009
|
registerAgentiaMcpDataTools(server);
|
|
1010
|
+
registerAgentiaMcpDeploymentStepTools(server);
|
|
1008
1011
|
registerAgentiaMcpTestingTools(server);
|
|
1009
1012
|
server.registerTool('agentia_environment_list', {
|
|
1010
1013
|
description: 'List Copado environments via the CICD gateway.',
|
|
@@ -1083,14 +1086,20 @@ export function registerAgentiaMcpTools(server) {
|
|
|
1083
1086
|
.array(z.string())
|
|
1084
1087
|
.optional()
|
|
1085
1088
|
.describe('Ordered deployment-step Salesforce IDs. The gateway order is used when omitted.'),
|
|
1086
|
-
ignoredMetadata: z
|
|
1089
|
+
ignoredMetadata: z
|
|
1090
|
+
.array(z.unknown())
|
|
1091
|
+
.optional()
|
|
1092
|
+
.describe('Ignored metadata persisted before starting the run.'),
|
|
1087
1093
|
operation: z
|
|
1088
1094
|
.enum(PROMOTION_OPERATIONS)
|
|
1089
1095
|
.optional()
|
|
1090
1096
|
.describe('Promotion operation. Required unless resumeJobExecutionId is supplied.'),
|
|
1091
1097
|
promotionId: z.string().describe('18-character Salesforce Promotion ID.'),
|
|
1092
1098
|
recreatePromotionBranch: z.boolean().optional().describe('Recreate the promotion branch before execution.'),
|
|
1093
|
-
resumeJobExecutionId: z
|
|
1099
|
+
resumeJobExecutionId: z
|
|
1100
|
+
.string()
|
|
1101
|
+
.optional()
|
|
1102
|
+
.describe('Resume this existing promotion execution instead of /run.'),
|
|
1094
1103
|
wait: z.boolean().optional().describe('Poll all created executions to terminal status. Defaults to true.'),
|
|
1095
1104
|
waitTimeout: z
|
|
1096
1105
|
.number()
|
|
@@ -1229,6 +1238,11 @@ export function registerAgentiaMcpTools(server) {
|
|
|
1229
1238
|
.boolean()
|
|
1230
1239
|
.optional()
|
|
1231
1240
|
.describe('Pass avoidSourceTracking=true to the gateway index route.'),
|
|
1241
|
+
changeDateFrom: z
|
|
1242
|
+
.string()
|
|
1243
|
+
.optional()
|
|
1244
|
+
.describe('Optional change-date-from filter (ISO datetime).'),
|
|
1245
|
+
changeDateTo: z.string().optional().describe('Optional change-date-to filter (ISO datetime).'),
|
|
1232
1246
|
filterType: z.string().optional().describe('Optional metadata type name filter, for example ApexClass.'),
|
|
1233
1247
|
findManagedPackages: z.boolean().optional().describe('Include managed package metadata in the search.'),
|
|
1234
1248
|
limit: z.number().int().min(1).max(MAX_LIMIT).optional().describe('Maximum number of records to return.'),
|