@orchestrator-claude/mcp-server 3.30.2 → 3.31.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/dist/PerplexityMcpServer.d.ts +1 -1
- package/dist/PerplexityMcpServer.d.ts.map +1 -1
- package/dist/PerplexityMcpServer.js +11 -7
- package/dist/PerplexityMcpServer.js.map +1 -1
- package/dist/client/OrchestratorApiClient.d.ts +2 -2
- package/dist/client/OrchestratorApiClient.d.ts.map +1 -1
- package/dist/client/OrchestratorApiClient.js +66 -50
- package/dist/client/OrchestratorApiClient.js.map +1 -1
- package/dist/client/types.d.ts +1 -1
- package/dist/client/types.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/errors/McpApiError.d.ts +2 -2
- package/dist/errors/McpApiError.d.ts.map +1 -1
- package/dist/errors/McpApiError.js +8 -2
- package/dist/errors/McpApiError.js.map +1 -1
- package/dist/external/PerplexityClient.d.ts.map +1 -1
- package/dist/external/PerplexityClient.js +8 -8
- package/dist/external/PerplexityClient.js.map +1 -1
- package/dist/external/PerplexityConfig.js +1 -1
- package/dist/external/PerplexityConfig.js.map +1 -1
- package/dist/handlers/agent-definitions-handlers.d.ts +16 -30
- package/dist/handlers/agent-definitions-handlers.d.ts.map +1 -1
- package/dist/handlers/agent-definitions-handlers.js.map +1 -1
- package/dist/handlers/artifact-content-handlers.d.ts +16 -30
- package/dist/handlers/artifact-content-handlers.d.ts.map +1 -1
- package/dist/handlers/artifact-content-handlers.js.map +1 -1
- package/dist/handlers/checkpoints-handlers.d.ts +13 -12
- package/dist/handlers/checkpoints-handlers.d.ts.map +1 -1
- package/dist/handlers/checkpoints-handlers.js.map +1 -1
- package/dist/handlers/freshness-handlers.d.ts +12 -6
- package/dist/handlers/freshness-handlers.d.ts.map +1 -1
- package/dist/handlers/freshness-handlers.js.map +1 -1
- package/dist/handlers/gate-handlers.d.ts +13 -24
- package/dist/handlers/gate-handlers.d.ts.map +1 -1
- package/dist/handlers/gate-handlers.js.map +1 -1
- package/dist/handlers/graphrag-handlers.d.ts +14 -18
- package/dist/handlers/graphrag-handlers.d.ts.map +1 -1
- package/dist/handlers/graphrag-handlers.js.map +1 -1
- package/dist/handlers/hooks-handlers.d.ts +17 -36
- package/dist/handlers/hooks-handlers.d.ts.map +1 -1
- package/dist/handlers/hooks-handlers.js.map +1 -1
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/index.js +142 -40
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/kb-documents-handlers.d.ts +14 -18
- package/dist/handlers/kb-documents-handlers.d.ts.map +1 -1
- package/dist/handlers/kb-documents-handlers.js.map +1 -1
- package/dist/handlers/kb-graph-handlers.d.ts +14 -18
- package/dist/handlers/kb-graph-handlers.d.ts.map +1 -1
- package/dist/handlers/kb-graph-handlers.js.map +1 -1
- package/dist/handlers/kb-handlers.d.ts +15 -24
- package/dist/handlers/kb-handlers.d.ts.map +1 -1
- package/dist/handlers/kb-handlers.js.map +1 -1
- package/dist/handlers/metrics-handlers.d.ts +15 -48
- package/dist/handlers/metrics-handlers.d.ts.map +1 -1
- package/dist/handlers/metrics-handlers.js.map +1 -1
- package/dist/handlers/patterns-handlers.d.ts +13 -12
- package/dist/handlers/patterns-handlers.d.ts.map +1 -1
- package/dist/handlers/patterns-handlers.js.map +1 -1
- package/dist/handlers/pending-action-handlers.d.ts +15 -48
- package/dist/handlers/pending-action-handlers.d.ts.map +1 -1
- package/dist/handlers/pending-action-handlers.js.map +1 -1
- package/dist/handlers/projects-handlers.d.ts +14 -18
- package/dist/handlers/projects-handlers.d.ts.map +1 -1
- package/dist/handlers/projects-handlers.js.map +1 -1
- package/dist/handlers/schemas-handlers.d.ts +16 -30
- package/dist/handlers/schemas-handlers.d.ts.map +1 -1
- package/dist/handlers/schemas-handlers.js.map +1 -1
- package/dist/handlers/skill-definitions-handlers.d.ts +16 -30
- package/dist/handlers/skill-definitions-handlers.d.ts.map +1 -1
- package/dist/handlers/skill-definitions-handlers.js.map +1 -1
- package/dist/handlers/stack-conventions-handlers.d.ts +12 -6
- package/dist/handlers/stack-conventions-handlers.d.ts.map +1 -1
- package/dist/handlers/stack-conventions-handlers.js.map +1 -1
- package/dist/handlers/templates-handlers.d.ts +16 -30
- package/dist/handlers/templates-handlers.d.ts.map +1 -1
- package/dist/handlers/templates-handlers.js.map +1 -1
- package/dist/handlers/workflow-definitions-handlers.d.ts +16 -30
- package/dist/handlers/workflow-definitions-handlers.d.ts.map +1 -1
- package/dist/handlers/workflow-definitions-handlers.js.map +1 -1
- package/dist/handlers/workflow-handlers.d.ts +23 -109
- package/dist/handlers/workflow-handlers.d.ts.map +1 -1
- package/dist/handlers/workflow-handlers.js +5 -1
- package/dist/handlers/workflow-handlers.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/last-completed-workflow-state.d.ts +43 -0
- package/dist/lib/last-completed-workflow-state.d.ts.map +1 -0
- package/dist/lib/last-completed-workflow-state.js +53 -0
- package/dist/lib/last-completed-workflow-state.js.map +1 -0
- package/dist/server.d.ts +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,23 +8,22 @@
|
|
|
8
8
|
* - getStatus
|
|
9
9
|
*/
|
|
10
10
|
import type { IOrchestratorApiClient } from '../client/types.js';
|
|
11
|
+
interface McpTextContent {
|
|
12
|
+
type: 'text';
|
|
13
|
+
text: string;
|
|
14
|
+
}
|
|
15
|
+
type McpResponse = {
|
|
16
|
+
content: McpTextContent[];
|
|
17
|
+
} | {
|
|
18
|
+
content: McpTextContent[];
|
|
19
|
+
isError: true;
|
|
20
|
+
};
|
|
11
21
|
/**
|
|
12
22
|
* Handler for detectWorkflow tool
|
|
13
23
|
*/
|
|
14
24
|
export declare function createDetectWorkflowHandler(client: IOrchestratorApiClient): (params: {
|
|
15
25
|
prompt: string;
|
|
16
|
-
}) => Promise<
|
|
17
|
-
content: {
|
|
18
|
-
type: "text";
|
|
19
|
-
text: string;
|
|
20
|
-
}[];
|
|
21
|
-
isError: boolean;
|
|
22
|
-
} | {
|
|
23
|
-
content: {
|
|
24
|
-
type: "text";
|
|
25
|
-
text: string;
|
|
26
|
-
}[];
|
|
27
|
-
}>;
|
|
26
|
+
}) => Promise<McpResponse>;
|
|
28
27
|
/**
|
|
29
28
|
* Handler for startWorkflow tool
|
|
30
29
|
*/
|
|
@@ -33,18 +32,9 @@ export declare function createStartWorkflowHandler(client: IOrchestratorApiClien
|
|
|
33
32
|
prompt: string;
|
|
34
33
|
title?: string;
|
|
35
34
|
executionMode?: string;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
text: string;
|
|
40
|
-
}[];
|
|
41
|
-
isError: boolean;
|
|
42
|
-
} | {
|
|
43
|
-
content: {
|
|
44
|
-
type: "text";
|
|
45
|
-
text: string;
|
|
46
|
-
}[];
|
|
47
|
-
}>;
|
|
35
|
+
variant?: string;
|
|
36
|
+
inputs?: Record<string, unknown>;
|
|
37
|
+
}) => Promise<McpResponse>;
|
|
48
38
|
/**
|
|
49
39
|
* Handler for createPhase tool (ADR-017 Phase 2: dynamic workflows)
|
|
50
40
|
*/
|
|
@@ -53,85 +43,30 @@ export declare function createCreatePhaseHandler(client: IOrchestratorApiClient)
|
|
|
53
43
|
name: string;
|
|
54
44
|
budgetUsd?: number;
|
|
55
45
|
metadata?: Record<string, unknown>;
|
|
56
|
-
}) => Promise<
|
|
57
|
-
content: {
|
|
58
|
-
type: "text";
|
|
59
|
-
text: string;
|
|
60
|
-
}[];
|
|
61
|
-
isError: boolean;
|
|
62
|
-
} | {
|
|
63
|
-
content: {
|
|
64
|
-
type: "text";
|
|
65
|
-
text: string;
|
|
66
|
-
}[];
|
|
67
|
-
}>;
|
|
46
|
+
}) => Promise<McpResponse>;
|
|
68
47
|
/**
|
|
69
48
|
* Handler for advancePhase tool
|
|
70
49
|
*/
|
|
71
50
|
export declare function createAdvancePhaseHandler(client: IOrchestratorApiClient): (params: {
|
|
72
51
|
workflowId: string;
|
|
73
52
|
targetPhase?: string;
|
|
74
|
-
}) => Promise<
|
|
75
|
-
content: {
|
|
76
|
-
type: "text";
|
|
77
|
-
text: string;
|
|
78
|
-
}[];
|
|
79
|
-
isError: boolean;
|
|
80
|
-
} | {
|
|
81
|
-
content: {
|
|
82
|
-
type: "text";
|
|
83
|
-
text: string;
|
|
84
|
-
}[];
|
|
85
|
-
}>;
|
|
53
|
+
}) => Promise<McpResponse>;
|
|
86
54
|
/**
|
|
87
55
|
* Handler for getStatus tool
|
|
88
56
|
*/
|
|
89
57
|
export declare function createGetStatusHandler(client: IOrchestratorApiClient): (params: {
|
|
90
58
|
workflowId?: string;
|
|
91
|
-
}) => Promise<
|
|
92
|
-
content: {
|
|
93
|
-
type: "text";
|
|
94
|
-
text: string;
|
|
95
|
-
}[];
|
|
96
|
-
isError: boolean;
|
|
97
|
-
} | {
|
|
98
|
-
content: {
|
|
99
|
-
type: "text";
|
|
100
|
-
text: string;
|
|
101
|
-
}[];
|
|
102
|
-
}>;
|
|
59
|
+
}) => Promise<McpResponse>;
|
|
103
60
|
/**
|
|
104
61
|
* Handler for getWorkflows tool
|
|
105
62
|
*/
|
|
106
|
-
export declare function createGetWorkflowsHandler(client: IOrchestratorApiClient): () => Promise<
|
|
107
|
-
content: {
|
|
108
|
-
type: "text";
|
|
109
|
-
text: string;
|
|
110
|
-
}[];
|
|
111
|
-
isError: boolean;
|
|
112
|
-
} | {
|
|
113
|
-
content: {
|
|
114
|
-
type: "text";
|
|
115
|
-
text: string;
|
|
116
|
-
}[];
|
|
117
|
-
}>;
|
|
63
|
+
export declare function createGetWorkflowsHandler(client: IOrchestratorApiClient): () => Promise<McpResponse>;
|
|
118
64
|
/**
|
|
119
65
|
* Handler for completeWorkflow tool
|
|
120
66
|
*/
|
|
121
67
|
export declare function createCompleteWorkflowHandler(client: IOrchestratorApiClient): (params: {
|
|
122
68
|
workflowId: string;
|
|
123
|
-
}) => Promise<
|
|
124
|
-
content: {
|
|
125
|
-
type: "text";
|
|
126
|
-
text: string;
|
|
127
|
-
}[];
|
|
128
|
-
isError: boolean;
|
|
129
|
-
} | {
|
|
130
|
-
content: {
|
|
131
|
-
type: "text";
|
|
132
|
-
text: string;
|
|
133
|
-
}[];
|
|
134
|
-
}>;
|
|
69
|
+
}) => Promise<McpResponse>;
|
|
135
70
|
/**
|
|
136
71
|
* Handler for startDirectExecution tool (ADR-017 Phase 3: always-on governance)
|
|
137
72
|
*
|
|
@@ -141,36 +76,15 @@ export declare function createCompleteWorkflowHandler(client: IOrchestratorApiCl
|
|
|
141
76
|
export declare function createStartDirectExecutionHandler(client: IOrchestratorApiClient): (params: {
|
|
142
77
|
title: string;
|
|
143
78
|
description?: string;
|
|
144
|
-
}) => Promise<
|
|
145
|
-
content: {
|
|
146
|
-
type: "text";
|
|
147
|
-
text: string;
|
|
148
|
-
}[];
|
|
149
|
-
isError: boolean;
|
|
150
|
-
} | {
|
|
151
|
-
content: {
|
|
152
|
-
type: "text";
|
|
153
|
-
text: string;
|
|
154
|
-
}[];
|
|
155
|
-
}>;
|
|
79
|
+
}) => Promise<McpResponse>;
|
|
156
80
|
/**
|
|
157
81
|
* Handler for completeDirectExecution tool (ADR-017 Phase 3: always-on governance)
|
|
158
82
|
*/
|
|
159
83
|
export declare function createCompleteDirectExecutionHandler(client: IOrchestratorApiClient): (params: {
|
|
160
84
|
workflowId: string;
|
|
161
|
-
outcome:
|
|
85
|
+
outcome: 'success' | 'failure' | 'partial';
|
|
162
86
|
filesChanged?: string[];
|
|
163
87
|
summary?: string;
|
|
164
|
-
}) => Promise<
|
|
165
|
-
|
|
166
|
-
type: "text";
|
|
167
|
-
text: string;
|
|
168
|
-
}[];
|
|
169
|
-
isError: boolean;
|
|
170
|
-
} | {
|
|
171
|
-
content: {
|
|
172
|
-
type: "text";
|
|
173
|
-
text: string;
|
|
174
|
-
}[];
|
|
175
|
-
}>;
|
|
88
|
+
}) => Promise<McpResponse>;
|
|
89
|
+
export {};
|
|
176
90
|
//# sourceMappingURL=workflow-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/workflow-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/workflow-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAIjE,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AACD,KAAK,WAAW,GAAG;IAAE,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAEhG;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,sBAAsB,GAC7B,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CActD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,sBAAsB,GAC7B,CAAC,MAAM,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,KAAK,OAAO,CAAC,WAAW,CAAC,CA4BzB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,sBAAsB,GAC7B,CAAC,MAAM,EAAE;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,KAAK,OAAO,CAAC,WAAW,CAAC,CAuBzB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,sBAAsB,GAC7B,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAchF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,sBAAsB,GAC7B,CAAC,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAc3D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,sBAAsB,GAC7B,MAAM,OAAO,CAAC,WAAW,CAAC,CAc5B;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,sBAAsB,GAC7B,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAiB1D;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,sBAAsB,GAC7B,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAiB3E;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,sBAAsB,GAC7B,CAAC,MAAM,EAAE;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAK,OAAO,CAAC,WAAW,CAAC,CAwBzB"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* - getStatus
|
|
9
9
|
*/
|
|
10
10
|
import { McpApiError } from '../errors/McpApiError.js';
|
|
11
|
+
import { writeLastCompletedWorkflowState } from '../lib/last-completed-workflow-state.js';
|
|
11
12
|
/**
|
|
12
13
|
* Handler for detectWorkflow tool
|
|
13
14
|
*/
|
|
@@ -33,7 +34,7 @@ export function createDetectWorkflowHandler(client) {
|
|
|
33
34
|
export function createStartWorkflowHandler(client) {
|
|
34
35
|
return async (params) => {
|
|
35
36
|
try {
|
|
36
|
-
const response = await client.startWorkflow(params.type, params.prompt, params.title, params.executionMode);
|
|
37
|
+
const response = await client.startWorkflow(params.type, params.prompt, params.title, params.executionMode, params.variant, params.inputs);
|
|
37
38
|
return {
|
|
38
39
|
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
39
40
|
};
|
|
@@ -133,6 +134,9 @@ export function createCompleteWorkflowHandler(client) {
|
|
|
133
134
|
return async (params) => {
|
|
134
135
|
try {
|
|
135
136
|
const response = await client.completeWorkflow(params.workflowId);
|
|
137
|
+
// B4 FinOps timing race fix: write state file so dangling-guard.ts can
|
|
138
|
+
// recover the workflowId for FinOps telemetry even after completion.
|
|
139
|
+
writeLastCompletedWorkflowState(params.workflowId);
|
|
136
140
|
return {
|
|
137
141
|
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
138
142
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-handlers.js","sourceRoot":"","sources":["../../src/handlers/workflow-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-handlers.js","sourceRoot":"","sources":["../../src/handlers/workflow-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAmEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -37,14 +37,14 @@ async function main() {
|
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
// Override MCP_TOOL_SET from --server arg if provided
|
|
40
|
-
if (serverArg) {
|
|
40
|
+
if (serverArg !== undefined) {
|
|
41
41
|
process.env.MCP_TOOL_SET = serverArg;
|
|
42
42
|
}
|
|
43
43
|
const config = loadConfig();
|
|
44
44
|
const server = new OrchestratorMcpServer(config);
|
|
45
45
|
console.error('Starting Orchestrator MCP Server...');
|
|
46
46
|
console.error(`API URL: ${config.apiUrl}`);
|
|
47
|
-
console.error(`API Key: ${config.apiKey ? 'configured' : 'not configured'}`);
|
|
47
|
+
console.error(`API Key: ${config.apiKey !== undefined && config.apiKey !== '' ? 'configured' : 'not configured'}`);
|
|
48
48
|
await server.start();
|
|
49
49
|
}
|
|
50
50
|
catch (error) {
|
|
@@ -56,10 +56,9 @@ async function main() {
|
|
|
56
56
|
// Use realpath to handle symlinks (npx creates symlinks)
|
|
57
57
|
const currentFile = fileURLToPath(import.meta.url);
|
|
58
58
|
const entryPoint = process.argv[1];
|
|
59
|
-
const isEntryPoint = currentFile === entryPoint ||
|
|
60
|
-
realpathSync(currentFile) === realpathSync(entryPoint);
|
|
59
|
+
const isEntryPoint = currentFile === entryPoint || realpathSync(currentFile) === realpathSync(entryPoint);
|
|
61
60
|
if (isEntryPoint) {
|
|
62
|
-
main();
|
|
61
|
+
void main();
|
|
63
62
|
}
|
|
64
63
|
// Re-export for library usage
|
|
65
64
|
export { OrchestratorMcpServer } from './server.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;QAEnC,wEAAwE;QACxE,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,IAAI,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;QAEnC,wEAAwE;QACxE,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CACX,YAAY,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,EAAE,CACpG,CAAC;QAEF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,yDAAyD;AACzD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,YAAY,GAChB,WAAW,KAAK,UAAU,IAAI,YAAY,CAAC,WAAW,CAAC,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC;AAEvF,IAAI,YAAY,EAAE,CAAC;IACjB,KAAK,IAAI,EAAE,CAAC;AACd,CAAC;AAED,8BAA8B;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* last-completed-workflow-state.ts — Shared utility for writing the
|
|
3
|
+
* last-completed-workflow state file.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from workflow-handlers.ts (H-002 deduplication fix, TD-140 review).
|
|
6
|
+
*
|
|
7
|
+
* ## Why this module exists
|
|
8
|
+
* The same write logic (`{ workflowId, completedAt }` → `.orchestrator/.state/
|
|
9
|
+
* last-completed-workflow.json`) previously appeared both here (MCP handler) and
|
|
10
|
+
* in `.claude/hooks/lib/api-client.ts` (hook layer). If the TTL, filename, or
|
|
11
|
+
* JSON schema changed in one place the other would silently diverge.
|
|
12
|
+
*
|
|
13
|
+
* ## Path Y rationale (ADR-style)
|
|
14
|
+
* Path X (project src/infrastructure/state/StateFileWriter.ts) was rejected
|
|
15
|
+
* because packages/mcp-server/tsconfig.json sets `rootDir: "./src"` — cross-
|
|
16
|
+
* package imports from the project root are outside the compiler root and
|
|
17
|
+
* would break the mcp-server build. Path Y keeps the module self-contained
|
|
18
|
+
* inside the mcp-server package and exposes constants + the write function so
|
|
19
|
+
* shape-parity tests can validate both sides write the same JSON keys.
|
|
20
|
+
*
|
|
21
|
+
* The hook copy (api-client.ts `writeLastCompletedWorkflow`) is intentionally
|
|
22
|
+
* NOT changed — hooks run as standalone Node scripts and cannot import from
|
|
23
|
+
* packages/. The shared contract is enforced by the test suite
|
|
24
|
+
* (last-completed-workflow-state.test.ts) which asserts identical JSON keys.
|
|
25
|
+
*/
|
|
26
|
+
/** Filename for the last-completed workflow state file. */
|
|
27
|
+
export declare const LAST_COMPLETED_FILENAME = "last-completed-workflow.json";
|
|
28
|
+
/**
|
|
29
|
+
* Writes last-completed-workflow.json to the given stateDir.
|
|
30
|
+
*
|
|
31
|
+
* JSON shape: `{ workflowId: string, completedAt: string (ISO 8601) }`
|
|
32
|
+
*
|
|
33
|
+
* This shape MUST stay in sync with the hook-side reader in
|
|
34
|
+
* `.claude/hooks/lib/api-client.ts` (`getLastCompletedWorkflow`).
|
|
35
|
+
* The test suite (last-completed-workflow-state.test.ts) validates the
|
|
36
|
+
* exact key set to catch any future divergence.
|
|
37
|
+
*
|
|
38
|
+
* @param workflowId The workflow that just completed.
|
|
39
|
+
* @param stateDir Directory to write into (default: .orchestrator/.state
|
|
40
|
+
* relative to cwd). Accepts override for testability.
|
|
41
|
+
*/
|
|
42
|
+
export declare function writeLastCompletedWorkflowState(workflowId: string, stateDir?: string): void;
|
|
43
|
+
//# sourceMappingURL=last-completed-workflow-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"last-completed-workflow-state.d.ts","sourceRoot":"","sources":["../../src/lib/last-completed-workflow-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAuD,GAChE,IAAI,CAWN"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* last-completed-workflow-state.ts — Shared utility for writing the
|
|
3
|
+
* last-completed-workflow state file.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from workflow-handlers.ts (H-002 deduplication fix, TD-140 review).
|
|
6
|
+
*
|
|
7
|
+
* ## Why this module exists
|
|
8
|
+
* The same write logic (`{ workflowId, completedAt }` → `.orchestrator/.state/
|
|
9
|
+
* last-completed-workflow.json`) previously appeared both here (MCP handler) and
|
|
10
|
+
* in `.claude/hooks/lib/api-client.ts` (hook layer). If the TTL, filename, or
|
|
11
|
+
* JSON schema changed in one place the other would silently diverge.
|
|
12
|
+
*
|
|
13
|
+
* ## Path Y rationale (ADR-style)
|
|
14
|
+
* Path X (project src/infrastructure/state/StateFileWriter.ts) was rejected
|
|
15
|
+
* because packages/mcp-server/tsconfig.json sets `rootDir: "./src"` — cross-
|
|
16
|
+
* package imports from the project root are outside the compiler root and
|
|
17
|
+
* would break the mcp-server build. Path Y keeps the module self-contained
|
|
18
|
+
* inside the mcp-server package and exposes constants + the write function so
|
|
19
|
+
* shape-parity tests can validate both sides write the same JSON keys.
|
|
20
|
+
*
|
|
21
|
+
* The hook copy (api-client.ts `writeLastCompletedWorkflow`) is intentionally
|
|
22
|
+
* NOT changed — hooks run as standalone Node scripts and cannot import from
|
|
23
|
+
* packages/. The shared contract is enforced by the test suite
|
|
24
|
+
* (last-completed-workflow-state.test.ts) which asserts identical JSON keys.
|
|
25
|
+
*/
|
|
26
|
+
import { writeFileSync, mkdirSync } from 'node:fs';
|
|
27
|
+
import { join } from 'node:path';
|
|
28
|
+
/** Filename for the last-completed workflow state file. */
|
|
29
|
+
export const LAST_COMPLETED_FILENAME = 'last-completed-workflow.json';
|
|
30
|
+
/**
|
|
31
|
+
* Writes last-completed-workflow.json to the given stateDir.
|
|
32
|
+
*
|
|
33
|
+
* JSON shape: `{ workflowId: string, completedAt: string (ISO 8601) }`
|
|
34
|
+
*
|
|
35
|
+
* This shape MUST stay in sync with the hook-side reader in
|
|
36
|
+
* `.claude/hooks/lib/api-client.ts` (`getLastCompletedWorkflow`).
|
|
37
|
+
* The test suite (last-completed-workflow-state.test.ts) validates the
|
|
38
|
+
* exact key set to catch any future divergence.
|
|
39
|
+
*
|
|
40
|
+
* @param workflowId The workflow that just completed.
|
|
41
|
+
* @param stateDir Directory to write into (default: .orchestrator/.state
|
|
42
|
+
* relative to cwd). Accepts override for testability.
|
|
43
|
+
*/
|
|
44
|
+
export function writeLastCompletedWorkflowState(workflowId, stateDir = join(process.cwd(), '.orchestrator', '.state')) {
|
|
45
|
+
try {
|
|
46
|
+
mkdirSync(stateDir, { recursive: true });
|
|
47
|
+
writeFileSync(join(stateDir, LAST_COMPLETED_FILENAME), JSON.stringify({ workflowId, completedAt: new Date().toISOString() }), 'utf-8');
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// fail silently — FinOps fallback is best-effort, must not break completion
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=last-completed-workflow-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"last-completed-workflow-state.js","sourceRoot":"","sources":["../../src/lib/last-completed-workflow-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,+BAA+B,CAC7C,UAAkB,EAClB,WAAmB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC;IAEjE,IAAI,CAAC;QACH,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,aAAa,CACX,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,EACrE,OAAO,CACR,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;AACH,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { Config } from './config.js';
|
|
11
11
|
export declare class OrchestratorMcpServer {
|
|
12
|
-
private server;
|
|
13
|
-
private client;
|
|
12
|
+
private readonly server;
|
|
13
|
+
private readonly client;
|
|
14
14
|
constructor(config: Config);
|
|
15
15
|
/**
|
|
16
16
|
* Start the MCP server with stdio transport
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ1C,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAY;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ1C,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,MAAM,EAAE,MAAM;IAqB1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
package/dist/server.js
CHANGED
|
@@ -41,6 +41,7 @@ export class OrchestratorMcpServer {
|
|
|
41
41
|
const transport = new StdioServerTransport();
|
|
42
42
|
await this.server.connect(transport);
|
|
43
43
|
// Setup graceful shutdown on SIGINT (Ctrl+C)
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
44
45
|
process.on('SIGINT', async () => {
|
|
45
46
|
await this.server.close();
|
|
46
47
|
process.exit(0);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,YAAY,GAAsC;IACtD,IAAI,EAAE,oBAAoB;IAC1B,QAAQ,EAAE,uBAAuB;IACjC,GAAG,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,OAAO,qBAAqB;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,YAAY,GAAsC;IACtD,IAAI,EAAE,oBAAoB;IAC1B,QAAQ,EAAE,uBAAuB;IACjC,GAAG,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,OAAO,qBAAqB;IACf,MAAM,CAAY;IAClB,MAAM,CAAwB;IAE/C,YAAY,MAAc;QACxB,wBAAwB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEhD,gDAAgD;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CACzB;YACE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,sCAAsC;QACtC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErC,6CAA6C;QAC7C,kEAAkE;QAClE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF"}
|