@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.
Files changed (55) hide show
  1. package/README.md +364 -153
  2. package/dist/commands/cicd/metadata/list.d.ts +6 -0
  3. package/dist/commands/cicd/metadata/list.js +12 -0
  4. package/dist/commands/cicd/metadata/list.js.map +1 -1
  5. package/dist/commands/cicd/work/deployment-step/create.d.ts +34 -0
  6. package/dist/commands/cicd/work/deployment-step/create.js +158 -0
  7. package/dist/commands/cicd/work/deployment-step/create.js.map +1 -0
  8. package/dist/commands/cicd/work/deployment-step/delete.d.ts +15 -0
  9. package/dist/commands/cicd/work/deployment-step/delete.js +41 -0
  10. package/dist/commands/cicd/work/deployment-step/delete.js.map +1 -0
  11. package/dist/commands/cicd/work/deployment-step/list.d.ts +10 -0
  12. package/dist/commands/cicd/work/deployment-step/list.js +44 -0
  13. package/dist/commands/cicd/work/deployment-step/list.js.map +1 -0
  14. package/dist/commands/cicd/work/deployment-step/reorder.d.ts +12 -0
  15. package/dist/commands/cicd/work/deployment-step/reorder.js +80 -0
  16. package/dist/commands/cicd/work/deployment-step/reorder.js.map +1 -0
  17. package/dist/commands/cicd/work/deployment-step/types.d.ts +7 -0
  18. package/dist/commands/cicd/work/deployment-step/types.js +27 -0
  19. package/dist/commands/cicd/work/deployment-step/types.js.map +1 -0
  20. package/dist/commands/cicd/work/deployment-step/update.d.ts +20 -0
  21. package/dist/commands/cicd/work/deployment-step/update.js +83 -0
  22. package/dist/commands/cicd/work/deployment-step/update.js.map +1 -0
  23. package/dist/lib/agentia-command.js +1 -1
  24. package/dist/lib/agentia-command.js.map +1 -1
  25. package/dist/lib/ai-gateway.js +2 -1
  26. package/dist/lib/ai-gateway.js.map +1 -1
  27. package/dist/lib/cicd-gateway.d.ts +7 -1
  28. package/dist/lib/cicd-gateway.js +16 -2
  29. package/dist/lib/cicd-gateway.js.map +1 -1
  30. package/dist/lib/deployment-step-config.d.ts +27 -0
  31. package/dist/lib/deployment-step-config.js +110 -0
  32. package/dist/lib/deployment-step-config.js.map +1 -0
  33. package/dist/lib/deployment-step-types.d.ts +92 -0
  34. package/dist/lib/deployment-step-types.js +194 -0
  35. package/dist/lib/deployment-step-types.js.map +1 -0
  36. package/dist/lib/deployment-step-wizard.d.ts +28 -0
  37. package/dist/lib/deployment-step-wizard.js +155 -0
  38. package/dist/lib/deployment-step-wizard.js.map +1 -0
  39. package/dist/lib/mcp/deployment-step-tools.d.ts +78 -0
  40. package/dist/lib/mcp/deployment-step-tools.js +205 -0
  41. package/dist/lib/mcp/deployment-step-tools.js.map +1 -0
  42. package/dist/lib/mcp/result.d.ts +2 -0
  43. package/dist/lib/mcp/result.js +10 -0
  44. package/dist/lib/mcp/result.js.map +1 -1
  45. package/dist/lib/mcp/server.js +6 -0
  46. package/dist/lib/mcp/server.js.map +1 -1
  47. package/dist/lib/mcp/tools.d.ts +65 -0
  48. package/dist/lib/mcp/tools.js +23 -9
  49. package/dist/lib/mcp/tools.js.map +1 -1
  50. package/dist/lib/testing-gateway.js +2 -1
  51. package/dist/lib/testing-gateway.js.map +1 -1
  52. package/dist/lib/testing-operations.js +2 -0
  53. package/dist/lib/testing-operations.js.map +1 -1
  54. package/oclif.manifest.json +3270 -2692
  55. package/package.json +4 -1
@@ -0,0 +1,194 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { cellValue, table } from './format.js';
3
+ export const DEPLOYMENT_STEP_TYPES_ENDPOINT = '/plan/deployment-step-types';
4
+ export const DEPLOYMENT_STEP_STANDARD_TYPES = [
5
+ 'Manual Task',
6
+ 'Salesforce Flow',
7
+ 'Function',
8
+ 'Apex',
9
+ 'Data Set - Salesforce',
10
+ 'Data Template - Salesforce',
11
+ 'Robotic Test',
12
+ ];
13
+ function isObject(value) {
14
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
15
+ }
16
+ function normalizeArray(response, keys) {
17
+ if (Array.isArray(response))
18
+ return response;
19
+ if (!isObject(response))
20
+ return [];
21
+ for (const key of keys) {
22
+ if (Array.isArray(response[key]))
23
+ return response[key];
24
+ }
25
+ return [];
26
+ }
27
+ function validateOptionalNonEmpty(value, flag) {
28
+ if (value !== undefined && value.trim().length === 0) {
29
+ throw new Error(`${flag} cannot be empty.`);
30
+ }
31
+ }
32
+ export function deploymentStepTypesEndpoint() {
33
+ return DEPLOYMENT_STEP_TYPES_ENDPOINT;
34
+ }
35
+ export function userStoryDeploymentStepsEndpoint(userStoryId) {
36
+ return `/plan/user-stories/${encodeURIComponent(userStoryId)}/deployment-steps`;
37
+ }
38
+ export function userStoryDeploymentStepEndpoint(userStoryId, stepId) {
39
+ return `${userStoryDeploymentStepsEndpoint(userStoryId)}/${encodeURIComponent(stepId)}`;
40
+ }
41
+ export function userStoryDeploymentStepOrderEndpoint(userStoryId) {
42
+ return `${userStoryDeploymentStepsEndpoint(userStoryId)}/order`;
43
+ }
44
+ export function normalizeDeploymentStepTypes(response) {
45
+ return normalizeArray(response, ['deploymentStepTypes', 'stepTypes', 'types', 'items', 'records', 'data']);
46
+ }
47
+ export function normalizeDeploymentSteps(response) {
48
+ const normalized = normalizeArray(response, ['deploymentSteps', 'steps', 'items', 'records', 'data']);
49
+ if (normalized.length > 0 || !isObject(response))
50
+ return normalized;
51
+ const before = Array.isArray(response.before) ? response.before : [];
52
+ const after = Array.isArray(response.after) ? response.after : [];
53
+ return [...before, ...after];
54
+ }
55
+ export function parseConfigJson(options) {
56
+ const source = options.configFile === undefined ? options.configJson : readFileSync(options.configFile, 'utf8');
57
+ if (source === undefined) {
58
+ if (options.required)
59
+ throw new Error('Provide --config-json or --config-file.');
60
+ return undefined;
61
+ }
62
+ let parsed;
63
+ try {
64
+ parsed = JSON.parse(source);
65
+ }
66
+ catch {
67
+ throw new Error('Deployment step config must be valid JSON.');
68
+ }
69
+ if (!isObject(parsed))
70
+ throw new Error('Deployment step config must be a JSON object.');
71
+ return parsed;
72
+ }
73
+ export function validateDeploymentStepName(name) {
74
+ if (name === undefined || name.trim().length === 0)
75
+ throw new Error('--name cannot be empty.');
76
+ if (name.length > 80)
77
+ throw new Error('--name cannot exceed 80 characters.');
78
+ }
79
+ export function buildDeploymentStepCreatePayload(flags) {
80
+ validateDeploymentStepName(flags.name);
81
+ const selectors = [flags.type, flags['custom-step-api-name']].filter((value) => value !== undefined);
82
+ if (selectors.length !== 1)
83
+ throw new Error('Provide exactly one of --type or --custom-step-api-name.');
84
+ validateOptionalNonEmpty(flags.type, '--type');
85
+ validateOptionalNonEmpty(flags['custom-step-api-name'], '--custom-step-api-name');
86
+ validateOptionalNonEmpty(flags['skip-condition'], '--skip-condition');
87
+ validateOptionalNonEmpty(flags['queue-name'], '--queue-name');
88
+ if (flags.sequence !== undefined && flags.sequence !== 'before' && flags.sequence !== 'after') {
89
+ throw new Error('--sequence must be before or after.');
90
+ }
91
+ const configJson = parseConfigJson({
92
+ configFile: flags['config-file'],
93
+ configJson: flags['config-json'],
94
+ required: true,
95
+ });
96
+ return {
97
+ configJson,
98
+ ...(flags['custom-step-api-name'] === undefined ? {} : { customStepApiName: flags['custom-step-api-name'] }),
99
+ name: flags.name.trim(),
100
+ ...(flags['queue-name'] === undefined ? {} : { queueName: flags['queue-name'] }),
101
+ ...(flags['run-on-validation'] === undefined ? {} : { runOnValidation: flags['run-on-validation'] }),
102
+ ...(flags.sequence === undefined ? {} : { sequence: flags.sequence }),
103
+ ...(flags['skip-back-promotion'] === undefined ? {} : { skipBackPromotion: flags['skip-back-promotion'] }),
104
+ ...(flags['skip-condition'] === undefined ? {} : { skipCondition: flags['skip-condition'] }),
105
+ ...(flags.type === undefined ? {} : { type: flags.type }),
106
+ };
107
+ }
108
+ export function buildDeploymentStepUpdatePayload(flags) {
109
+ if (flags.name !== undefined)
110
+ validateDeploymentStepName(flags.name);
111
+ if (flags['skip-condition'] !== undefined && flags['clear-skip-condition']) {
112
+ throw new Error('Use only one of --skip-condition or --clear-skip-condition.');
113
+ }
114
+ if (flags['queue-name'] !== undefined && flags['clear-queue-name']) {
115
+ throw new Error('Use only one of --queue-name or --clear-queue-name.');
116
+ }
117
+ validateOptionalNonEmpty(flags['skip-condition'], '--skip-condition');
118
+ validateOptionalNonEmpty(flags['queue-name'], '--queue-name');
119
+ const configJson = parseConfigJson({ configFile: flags['config-file'], configJson: flags['config-json'] });
120
+ const payload = {
121
+ ...(configJson === undefined ? {} : { configJson }),
122
+ ...(flags.name === undefined ? {} : { name: flags.name.trim() }),
123
+ ...(flags['queue-name'] === undefined ? {} : { queueName: flags['queue-name'] }),
124
+ ...(flags['run-on-validation'] === undefined ? {} : { runOnValidation: flags['run-on-validation'] }),
125
+ ...(flags['skip-back-promotion'] === undefined ? {} : { skipBackPromotion: flags['skip-back-promotion'] }),
126
+ ...(flags['skip-condition'] === undefined ? {} : { skipCondition: flags['skip-condition'] }),
127
+ };
128
+ if (flags['clear-queue-name'])
129
+ payload.queueName = null;
130
+ if (flags['clear-skip-condition'])
131
+ payload.skipCondition = null;
132
+ if (Object.keys(payload).length === 0)
133
+ throw new Error('Provide at least one mutable field to update.');
134
+ return payload;
135
+ }
136
+ export function parseDeploymentStepOrder(value) {
137
+ if (!isObject(value) || !Array.isArray(value.before) || !Array.isArray(value.after)) {
138
+ throw new Error('Reorder input must be an object with before and after arrays.');
139
+ }
140
+ if (![...value.before, ...value.after].every((id) => typeof id === 'string' && id.trim().length > 0)) {
141
+ throw new Error('Reorder before and after values must be nonempty step IDs.');
142
+ }
143
+ return { after: value.after, before: value.before };
144
+ }
145
+ export function validateCompleteDeploymentStepOrder(order, current) {
146
+ const expected = current.map((step) => step.id);
147
+ const supplied = [...order.before, ...order.after];
148
+ const duplicates = supplied.filter((id, index) => supplied.indexOf(id) !== index);
149
+ const missing = expected.filter((id) => !supplied.includes(id));
150
+ const unknown = supplied.filter((id) => !expected.includes(id));
151
+ if (duplicates.length > 0 || missing.length > 0 || unknown.length > 0 || supplied.length !== expected.length) {
152
+ throw new Error(`Reorder input must contain every current deployment step exactly once.${missing.length > 0 ? ` Missing: ${missing.join(', ')}.` : ''}${unknown.length > 0 ? ` Unknown: ${unknown.join(', ')}.` : ''}${duplicates.length > 0 ? ` Duplicates: ${[...new Set(duplicates)].join(', ')}.` : ''}`);
153
+ }
154
+ }
155
+ export function formatDeploymentStepTypesTable(types) {
156
+ return table([
157
+ { alias: 'ID', value: 'id' },
158
+ { alias: 'LABEL', value: 'label' },
159
+ { alias: 'SOURCE', value: 'source' },
160
+ { alias: 'UNDERLYING TYPE', value: 'underlyingType' },
161
+ { alias: 'SEQUENCE', value: 'defaultSequence' },
162
+ { alias: 'DEVELOPER NAME', value: 'developerName' },
163
+ ], types.map((type) => ({
164
+ defaultSequence: cellValue(type.defaultSequence),
165
+ developerName: cellValue(type.developerName),
166
+ id: cellValue(type.id),
167
+ label: cellValue(type.label),
168
+ source: cellValue(type.source),
169
+ underlyingType: cellValue(type.underlyingType),
170
+ })));
171
+ }
172
+ export function formatDeploymentStepsTable(steps) {
173
+ return table([
174
+ { alias: 'ID', value: 'id' },
175
+ { alias: 'NAME', value: 'name' },
176
+ { alias: 'TYPE', value: 'type' },
177
+ { alias: 'SEQUENCE', value: 'sequence' },
178
+ { alias: 'ORDER', value: 'order' },
179
+ { alias: 'VALIDATION', value: 'runOnValidation' },
180
+ { alias: 'SKIP BACK PROMOTION', value: 'skipBackPromotion' },
181
+ ], steps.map((step) => ({
182
+ id: cellValue(step.id),
183
+ name: cellValue(step.name),
184
+ order: cellValue(step.order),
185
+ runOnValidation: cellValue(step.runOnValidation),
186
+ sequence: cellValue(step.sequence),
187
+ skipBackPromotion: cellValue(step.skipBackPromotion),
188
+ type: cellValue(step.type ?? step.customStepApiName),
189
+ })));
190
+ }
191
+ export function formatDeploymentStepDetail(step) {
192
+ return formatDeploymentStepsTable([step]);
193
+ }
194
+ //# sourceMappingURL=deployment-step-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-step-types.js","sourceRoot":"","sources":["../../src/lib/deployment-step-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type DeploymentStepCreateInput, type DeploymentStepType } from './deployment-step-types.js';
2
+ type Choice<T> = {
3
+ name: string;
4
+ value: T;
5
+ };
6
+ export type DeploymentStepPrompts = {
7
+ confirm: (options: {
8
+ default?: boolean;
9
+ message: string;
10
+ }) => Promise<boolean>;
11
+ editor: (options: {
12
+ message: string;
13
+ }) => Promise<string>;
14
+ input: (options: {
15
+ default?: string;
16
+ message: string;
17
+ validate?: (value: string) => boolean | string;
18
+ }) => Promise<string>;
19
+ select: <T>(options: {
20
+ choices: Array<Choice<T>>;
21
+ default?: T;
22
+ message: string;
23
+ }) => Promise<T>;
24
+ };
25
+ export declare function setDeploymentStepPromptsForTests(prompts?: DeploymentStepPrompts): void;
26
+ export declare function collectDeploymentStepCreateInput(catalog: DeploymentStepType[]): Promise<DeploymentStepCreateInput>;
27
+ export declare function confirmDeploymentStepCreate(body: DeploymentStepCreateInput): Promise<boolean>;
28
+ export {};
@@ -0,0 +1,155 @@
1
+ import { confirm, editor, input, select } from '@inquirer/prompts';
2
+ import { buildFriendlyDeploymentStepConfig, } from './deployment-step-config.js';
3
+ import { DEPLOYMENT_STEP_STANDARD_TYPES, validateDeploymentStepName, } from './deployment-step-types.js';
4
+ const defaultPrompts = {
5
+ confirm: (options) => confirm(options),
6
+ editor: (options) => editor(options),
7
+ input: (options) => input(options),
8
+ select: (options) => select(options),
9
+ };
10
+ let activePrompts = defaultPrompts;
11
+ export function setDeploymentStepPromptsForTests(prompts) {
12
+ activePrompts = prompts ?? defaultPrompts;
13
+ }
14
+ function requiredInput(message, defaultValue) {
15
+ return activePrompts.input({
16
+ ...(defaultValue === undefined ? {} : { default: defaultValue }),
17
+ message,
18
+ validate: (value) => value.trim().length > 0 || 'A value is required.',
19
+ });
20
+ }
21
+ function stepNameInput(defaultValue) {
22
+ return activePrompts.input({
23
+ default: defaultValue,
24
+ message: 'Step name',
25
+ validate(value) {
26
+ try {
27
+ validateDeploymentStepName(value);
28
+ return true;
29
+ }
30
+ catch (error) {
31
+ return error instanceof Error ? error.message.replace('--name', 'Step name') : String(error);
32
+ }
33
+ },
34
+ });
35
+ }
36
+ async function collectParameters(parameters = []) {
37
+ const addParameter = await activePrompts.confirm({ default: false, message: 'Add a parameter?' });
38
+ if (!addParameter)
39
+ return parameters;
40
+ const name = await requiredInput('Parameter name');
41
+ const value = await activePrompts.input({ message: `Value for ${name}` });
42
+ return collectParameters([...parameters, `${name}=${value}`]);
43
+ }
44
+ async function collectFriendlyFlags(type) {
45
+ switch (type) {
46
+ case 'Apex': {
47
+ return { 'apex-script': await activePrompts.editor({ message: 'Enter the Apex script' }) };
48
+ }
49
+ case 'Data Set - Salesforce': {
50
+ return { 'data-set-id': await requiredInput('Data Set Salesforce ID') };
51
+ }
52
+ case 'Data Template - Salesforce': {
53
+ return { 'data-template-id': await requiredInput('Data Template Salesforce ID') };
54
+ }
55
+ case 'Function': {
56
+ return {
57
+ 'function-name': await requiredInput('Function name'),
58
+ parameter: await collectParameters(),
59
+ };
60
+ }
61
+ case 'Manual Task': {
62
+ const instructions = await requiredInput('Task instructions');
63
+ const environment = await activePrompts.select({
64
+ choices: [
65
+ { name: 'Destination', value: 'destination' },
66
+ { name: 'Source', value: 'source' },
67
+ { name: 'Both source and destination', value: 'both' },
68
+ ],
69
+ default: 'destination',
70
+ message: 'Where should the task be performed?',
71
+ });
72
+ const assign = await activePrompts.confirm({ default: false, message: 'Assign the task to a specific user?' });
73
+ if (!assign)
74
+ return { environment, instructions };
75
+ return {
76
+ 'assignee-id': await requiredInput('Assignee Salesforce user ID'),
77
+ 'assignee-name': await requiredInput('Assignee display name'),
78
+ environment,
79
+ instructions,
80
+ };
81
+ }
82
+ case 'Robotic Test': {
83
+ return {
84
+ 'crt-run-on': await activePrompts.select({
85
+ choices: [
86
+ { name: 'Destination', value: 'destination' },
87
+ { name: 'Source', value: 'source' },
88
+ ],
89
+ default: 'destination',
90
+ message: 'Where should the Robotic Test run?',
91
+ }),
92
+ 'crt-test-id': await requiredInput('Robotic Test Salesforce ID'),
93
+ };
94
+ }
95
+ case 'Salesforce Flow': {
96
+ return {
97
+ 'flow-name': await requiredInput('Flow API name'),
98
+ parameter: await collectParameters(),
99
+ };
100
+ }
101
+ }
102
+ }
103
+ function isStandardType(value) {
104
+ return DEPLOYMENT_STEP_STANDARD_TYPES.includes(value);
105
+ }
106
+ export async function collectDeploymentStepCreateInput(catalog) {
107
+ const available = catalog.filter((definition) => definition.source === 'standard' && isStandardType(definition.standardType));
108
+ if (available.length === 0) {
109
+ throw new Error('The gateway did not return any supported standard deployment step types.');
110
+ }
111
+ const selected = await activePrompts.select({
112
+ choices: available.map((definition) => ({ name: definition.label, value: definition })),
113
+ message: 'Deployment step type',
114
+ });
115
+ const type = selected.standardType;
116
+ const name = await stepNameInput(selected.label);
117
+ const sequence = await activePrompts.select({
118
+ choices: [
119
+ { name: 'Before deployment', value: 'before' },
120
+ { name: 'After deployment', value: 'after' },
121
+ ],
122
+ default: selected.defaultSequence,
123
+ message: 'Execution sequence',
124
+ });
125
+ const configJson = buildFriendlyDeploymentStepConfig(type, await collectFriendlyFlags(type));
126
+ const runOnValidation = type === 'Apex'
127
+ ? false
128
+ : await activePrompts.confirm({
129
+ default: selected.runsOnValidation,
130
+ message: 'Run during validation deployments?',
131
+ });
132
+ const skipBackPromotion = await activePrompts.confirm({
133
+ default: false,
134
+ message: 'Skip during back promotion?',
135
+ });
136
+ const skipCondition = (await activePrompts.input({ message: 'Skip condition (optional)' })).trim();
137
+ const queueName = (await activePrompts.input({ message: 'Queue name (optional)' })).trim();
138
+ return {
139
+ configJson,
140
+ name: name.trim(),
141
+ ...(queueName.length === 0 ? {} : { queueName }),
142
+ runOnValidation,
143
+ sequence,
144
+ skipBackPromotion,
145
+ ...(skipCondition.length === 0 ? {} : { skipCondition }),
146
+ type,
147
+ };
148
+ }
149
+ export function confirmDeploymentStepCreate(body) {
150
+ return activePrompts.confirm({
151
+ default: true,
152
+ message: `Create this deployment step?\n${JSON.stringify(body, null, 2)}`,
153
+ });
154
+ }
155
+ //# sourceMappingURL=deployment-step-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-step-wizard.js","sourceRoot":"","sources":["../../src/lib/deployment-step-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { type CrtRunOn, type DeploymentStepEnvironment, type DeploymentStepParameter } from '../deployment-step-config.js';
3
+ import { type DeploymentStep, type DeploymentStepOrder, type DeploymentStepSequence, type DeploymentStepStandardType } from '../deployment-step-types.js';
4
+ type DeploymentStepCreateArgs = {
5
+ apexScript?: string;
6
+ assigneeId?: string;
7
+ assigneeName?: string;
8
+ configJson?: Record<string, unknown>;
9
+ crtRunOn?: CrtRunOn;
10
+ crtTestId?: string;
11
+ customStepApiName?: string;
12
+ dataSetId?: string;
13
+ dataTemplateId?: string;
14
+ environment?: DeploymentStepEnvironment;
15
+ flowName?: string;
16
+ functionName?: string;
17
+ instructions?: string;
18
+ name: string;
19
+ parameters?: DeploymentStepParameter[];
20
+ queueName?: string;
21
+ runOnValidation?: boolean;
22
+ sequence?: DeploymentStepSequence;
23
+ skipBackPromotion?: boolean;
24
+ skipCondition?: string;
25
+ type?: DeploymentStepStandardType;
26
+ userStoryId?: string;
27
+ };
28
+ type DeploymentStepUpdateArgs = {
29
+ configJson?: Record<string, unknown>;
30
+ name?: string;
31
+ queueName?: null | string;
32
+ runOnValidation?: boolean;
33
+ skipBackPromotion?: boolean;
34
+ skipCondition?: null | string;
35
+ stepId: string;
36
+ userStoryId?: string;
37
+ };
38
+ declare function deploymentStepTypes(): Promise<{
39
+ deploymentStepTypes: import("../deployment-step-types.js").DeploymentStepType[];
40
+ }>;
41
+ declare function deploymentStepList(args?: {
42
+ userStoryId?: string;
43
+ }): Promise<{
44
+ deploymentSteps: DeploymentStep[];
45
+ userStoryId: string;
46
+ }>;
47
+ declare function deploymentStepCreate(args: DeploymentStepCreateArgs): Promise<{
48
+ deploymentStep: DeploymentStep;
49
+ userStoryId: string;
50
+ }>;
51
+ declare function deploymentStepUpdate(args: DeploymentStepUpdateArgs): Promise<{
52
+ deploymentStep: DeploymentStep;
53
+ userStoryId: string;
54
+ }>;
55
+ declare function deploymentStepReorder(args: DeploymentStepOrder & {
56
+ userStoryId?: string;
57
+ }): Promise<{
58
+ deploymentSteps: DeploymentStep[];
59
+ userStoryId: string;
60
+ }>;
61
+ declare function deploymentStepDelete(args: {
62
+ stepId: string;
63
+ userStoryId?: string;
64
+ }): Promise<{
65
+ deleted: boolean;
66
+ stepId: string;
67
+ userStoryId: string;
68
+ }>;
69
+ export declare const agentiaMcpDeploymentStepToolHandlers: {
70
+ deploymentStepCreate: typeof deploymentStepCreate;
71
+ deploymentStepDelete: typeof deploymentStepDelete;
72
+ deploymentStepList: typeof deploymentStepList;
73
+ deploymentStepReorder: typeof deploymentStepReorder;
74
+ deploymentStepTypes: typeof deploymentStepTypes;
75
+ deploymentStepUpdate: typeof deploymentStepUpdate;
76
+ };
77
+ export declare function registerAgentiaMcpDeploymentStepTools(server: McpServer): void;
78
+ export {};