@testchimp/cli 0.1.34 → 0.1.36
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/chimphands/run.d.ts +1 -1
- package/dist/chimphands/run.js +125 -27
- package/dist/cli/program.js +55 -1
- package/dist/core/schemas.d.ts +334 -0
- package/dist/core/schemas.js +41 -0
- package/dist/core/tools.js +40 -0
- package/package.json +1 -1
package/dist/chimphands/run.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ChimpHands GitHub Actions bridge: bootstrap → OpenCode → inbound SSE turns.
|
|
3
3
|
* Relies on TESTCHIMP_API_KEY (+ optional TESTCHIMP_BACKEND_URL; defaults to prod).
|
|
4
|
-
* Does not write mcp.json —
|
|
4
|
+
* Does not write mcp.json — TestChimp MCP is wired via opencode.json for OpenCode.
|
|
5
5
|
*/
|
|
6
6
|
type RunOptions = {
|
|
7
7
|
sessionId: string;
|
package/dist/chimphands/run.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ChimpHands GitHub Actions bridge: bootstrap → OpenCode → inbound SSE turns.
|
|
3
3
|
* Relies on TESTCHIMP_API_KEY (+ optional TESTCHIMP_BACKEND_URL; defaults to prod).
|
|
4
|
-
* Does not write mcp.json —
|
|
4
|
+
* Does not write mcp.json — TestChimp MCP is wired via opencode.json for OpenCode.
|
|
5
5
|
*/
|
|
6
6
|
import { spawn, execFileSync } from "node:child_process";
|
|
7
7
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
@@ -16,6 +16,13 @@ const STATUS_RUNNING = "CHIMPHANDS_SESSION_STATUS_RUNNING";
|
|
|
16
16
|
const STATUS_WAITING_USER = "CHIMPHANDS_SESSION_STATUS_WAITING_USER";
|
|
17
17
|
const STATUS_IDLE = "CHIMPHANDS_SESSION_STATUS_IDLE";
|
|
18
18
|
const STATUS_FAILED = "CHIMPHANDS_SESSION_STATUS_FAILED";
|
|
19
|
+
function ensureTestchimpPrompt(content) {
|
|
20
|
+
const trimmed = content.trim();
|
|
21
|
+
if (!trimmed)
|
|
22
|
+
return trimmed;
|
|
23
|
+
const rest = trimmed.replace(/^\/testchimp\s*/i, "").trim();
|
|
24
|
+
return rest ? `/testchimp ${rest}` : "/testchimp";
|
|
25
|
+
}
|
|
19
26
|
function apiHeaders(apiKey) {
|
|
20
27
|
return {
|
|
21
28
|
"Content-Type": "application/json",
|
|
@@ -35,25 +42,72 @@ async function postJson(backend, apiKey, path, body) {
|
|
|
35
42
|
return text;
|
|
36
43
|
}
|
|
37
44
|
function postJsonFireAndForget(backend, apiKey, path, body) {
|
|
38
|
-
void postJson(backend, apiKey, path, body).catch(() => {
|
|
39
|
-
|
|
45
|
+
void postJson(backend, apiKey, path, body).catch((err) => {
|
|
46
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
47
|
+
console.error(`ChimpHands API telemetry failed ${path}: ${detail}`);
|
|
40
48
|
});
|
|
41
49
|
}
|
|
50
|
+
function resolveOpencodeModel(boot) {
|
|
51
|
+
const raw = (boot.llm_model || "gpt-4o-mini").trim();
|
|
52
|
+
return raw.includes("/") ? raw : `openai/${raw}`;
|
|
53
|
+
}
|
|
54
|
+
function extractOpencodeFatalError(raw) {
|
|
55
|
+
const line = raw.trim();
|
|
56
|
+
if (!line)
|
|
57
|
+
return null;
|
|
58
|
+
try {
|
|
59
|
+
const ev = JSON.parse(line);
|
|
60
|
+
if (ev.type === "error" || ev.name === "UnknownError") {
|
|
61
|
+
const msg = ev.data?.message || ev.message || line;
|
|
62
|
+
const ref = ev.data?.ref ? ` (ref ${ev.data.ref})` : "";
|
|
63
|
+
return `${msg}${ref}`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
/* plain text */
|
|
68
|
+
}
|
|
69
|
+
if (line.includes("Unexpected server error") && line.includes("UnknownError")) {
|
|
70
|
+
return line;
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
42
74
|
function writeOpencodeConfig(backend, apiKey, boot) {
|
|
43
75
|
const llmBase = (boot.llm_base_url || `${backend}/v1`).replace(/\/$/, "");
|
|
44
76
|
const llmKey = apiKey || boot.llm_api_key || "";
|
|
45
|
-
const
|
|
77
|
+
const model = resolveOpencodeModel(boot);
|
|
78
|
+
const mcpEnv = {
|
|
79
|
+
TESTCHIMP_API_KEY: apiKey,
|
|
80
|
+
TESTCHIMP_BACKEND_URL: backend,
|
|
81
|
+
};
|
|
82
|
+
const serviceUserId = boot.chimphands_service_account_user_id?.trim();
|
|
83
|
+
if (serviceUserId) {
|
|
84
|
+
mcpEnv.TESTCHIMP_USER_ID = serviceUserId;
|
|
85
|
+
}
|
|
46
86
|
writeFileSync("opencode.json", JSON.stringify({
|
|
47
|
-
|
|
87
|
+
$schema: "https://opencode.ai/config.json",
|
|
88
|
+
model,
|
|
89
|
+
autoupdate: false,
|
|
90
|
+
enabled_providers: ["openai"],
|
|
48
91
|
provider: {
|
|
49
92
|
openai: {
|
|
50
|
-
|
|
51
|
-
|
|
93
|
+
options: {
|
|
94
|
+
apiKey: llmKey,
|
|
95
|
+
baseURL: llmBase,
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
mcp: {
|
|
100
|
+
testchimp: {
|
|
101
|
+
type: "local",
|
|
102
|
+
enabled: true,
|
|
103
|
+
command: ["npx", "-y", "@testchimp/cli@latest", "mcp"],
|
|
104
|
+
environment: mcpEnv,
|
|
52
105
|
},
|
|
53
106
|
},
|
|
54
107
|
}, null, 2));
|
|
108
|
+
return model;
|
|
55
109
|
}
|
|
56
|
-
function runOpencode(prompt, childEnv, postEvent) {
|
|
110
|
+
function runOpencode(prompt, model, childEnv, postEvent) {
|
|
57
111
|
const help = (() => {
|
|
58
112
|
try {
|
|
59
113
|
return execFileSync("opencode", ["run", "--help"], { encoding: "utf8", env: childEnv });
|
|
@@ -63,8 +117,9 @@ function runOpencode(prompt, childEnv, postEvent) {
|
|
|
63
117
|
}
|
|
64
118
|
})();
|
|
65
119
|
const useJson = help.includes("--format");
|
|
120
|
+
const baseArgs = ["run", prompt, "--model", model];
|
|
66
121
|
if (useJson) {
|
|
67
|
-
const child = spawn("opencode", [
|
|
122
|
+
const child = spawn("opencode", [...baseArgs, "--format", "json"], {
|
|
68
123
|
stdio: ["ignore", "pipe", "pipe"],
|
|
69
124
|
env: childEnv,
|
|
70
125
|
});
|
|
@@ -74,6 +129,7 @@ function runOpencode(prompt, childEnv, postEvent) {
|
|
|
74
129
|
});
|
|
75
130
|
return new Promise((resolve) => {
|
|
76
131
|
let buf = "";
|
|
132
|
+
let fatalError = null;
|
|
77
133
|
child.stdout.on("data", (chunk) => {
|
|
78
134
|
buf += chunk.toString();
|
|
79
135
|
const lines = buf.split("\n");
|
|
@@ -81,6 +137,11 @@ function runOpencode(prompt, childEnv, postEvent) {
|
|
|
81
137
|
for (const line of lines) {
|
|
82
138
|
if (!line.trim())
|
|
83
139
|
continue;
|
|
140
|
+
const fatal = extractOpencodeFatalError(line);
|
|
141
|
+
if (fatal) {
|
|
142
|
+
fatalError = fatal;
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
84
145
|
let content = line;
|
|
85
146
|
let role = ROLE_ASSISTANT;
|
|
86
147
|
try {
|
|
@@ -98,27 +159,48 @@ function runOpencode(prompt, childEnv, postEvent) {
|
|
|
98
159
|
}
|
|
99
160
|
});
|
|
100
161
|
child.on("close", (code) => {
|
|
101
|
-
if (buf.trim())
|
|
102
|
-
|
|
162
|
+
if (buf.trim()) {
|
|
163
|
+
const fatal = extractOpencodeFatalError(buf);
|
|
164
|
+
if (fatal)
|
|
165
|
+
fatalError = fatal;
|
|
166
|
+
else if (!fatalError)
|
|
167
|
+
postEvent(ROLE_ASSISTANT, buf.trim());
|
|
168
|
+
}
|
|
169
|
+
const stderrFatal = extractOpencodeFatalError(err);
|
|
170
|
+
if (stderrFatal)
|
|
171
|
+
fatalError = stderrFatal;
|
|
172
|
+
if (fatalError) {
|
|
173
|
+
resolve({ code: 1, err: fatalError });
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
103
176
|
resolve({ code: code == null ? 1 : code, err });
|
|
104
177
|
});
|
|
105
178
|
});
|
|
106
179
|
}
|
|
107
180
|
try {
|
|
108
|
-
const out = execFileSync("opencode",
|
|
181
|
+
const out = execFileSync("opencode", baseArgs, {
|
|
109
182
|
encoding: "utf8",
|
|
110
183
|
maxBuffer: 20 * 1024 * 1024,
|
|
111
184
|
stdio: ["ignore", "pipe", "pipe"],
|
|
112
185
|
env: childEnv,
|
|
113
186
|
});
|
|
187
|
+
const fatal = extractOpencodeFatalError(out);
|
|
188
|
+
if (fatal)
|
|
189
|
+
return Promise.resolve({ code: 1, err: fatal });
|
|
114
190
|
if (out)
|
|
115
191
|
postEvent(ROLE_ASSISTANT, out);
|
|
116
192
|
return Promise.resolve({ code: 0, err: "" });
|
|
117
193
|
}
|
|
118
194
|
catch (e) {
|
|
119
195
|
const errObj = e;
|
|
120
|
-
const
|
|
121
|
-
|
|
196
|
+
const stderr = errObj.stderr?.toString() || "";
|
|
197
|
+
const stdout = errObj.stdout?.toString() || "";
|
|
198
|
+
const fatal = extractOpencodeFatalError(stderr) ||
|
|
199
|
+
extractOpencodeFatalError(stdout) ||
|
|
200
|
+
stderr ||
|
|
201
|
+
errObj.message ||
|
|
202
|
+
"opencode failed";
|
|
203
|
+
return Promise.resolve({ code: errObj.status || 1, err: fatal });
|
|
122
204
|
}
|
|
123
205
|
}
|
|
124
206
|
function connectInbound(backend, apiKey, sessionId, onUserMessage, onIdle, onClosed) {
|
|
@@ -184,15 +266,23 @@ export async function runChimphands(opts) {
|
|
|
184
266
|
}
|
|
185
267
|
const promptInput = (opts.prompt ?? process.env.PROMPT ?? "").trim();
|
|
186
268
|
const bootText = await postJson(backend, apiKey, "/api/chimphands/bootstrap", {
|
|
187
|
-
|
|
269
|
+
sessionId,
|
|
188
270
|
});
|
|
189
271
|
const boot = JSON.parse(bootText);
|
|
272
|
+
const githubRunId = (process.env.GITHUB_RUN_ID || "").trim();
|
|
273
|
+
if (githubRunId) {
|
|
274
|
+
postJsonFireAndForget(backend, apiKey, "/api/chimphands/post_agent_event", {
|
|
275
|
+
sessionId,
|
|
276
|
+
githubRunId,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
190
279
|
const userId = boot.chimphands_service_account_user_id || "";
|
|
191
280
|
if (userId) {
|
|
192
281
|
process.env.TESTCHIMP_USER_ID = userId;
|
|
193
282
|
}
|
|
194
283
|
mkdirSync(".opencode", { recursive: true });
|
|
195
|
-
writeOpencodeConfig(backend, apiKey, boot);
|
|
284
|
+
const opencodeModel = writeOpencodeConfig(backend, apiKey, boot);
|
|
285
|
+
console.error(`ChimpHands OpenCode model: ${opencodeModel}`);
|
|
196
286
|
const idleMs = (Number(boot.idle_timeout_seconds) || 600) * 1000;
|
|
197
287
|
const queue = [];
|
|
198
288
|
let idle = false;
|
|
@@ -200,7 +290,7 @@ export async function runChimphands(opts) {
|
|
|
200
290
|
let lastUserActivity = Date.now();
|
|
201
291
|
const postEvent = (role, content, status) => {
|
|
202
292
|
const body = {
|
|
203
|
-
|
|
293
|
+
sessionId,
|
|
204
294
|
role,
|
|
205
295
|
content: String(content || "").slice(0, 20000),
|
|
206
296
|
};
|
|
@@ -209,9 +299,11 @@ export async function runChimphands(opts) {
|
|
|
209
299
|
postJsonFireAndForget(backend, apiKey, "/api/chimphands/post_agent_event", body);
|
|
210
300
|
};
|
|
211
301
|
const complete = (status, errorMessage) => {
|
|
212
|
-
const body = {
|
|
302
|
+
const body = { sessionId, status };
|
|
213
303
|
if (errorMessage)
|
|
214
|
-
body.
|
|
304
|
+
body.errorMessage = String(errorMessage).slice(0, 4000);
|
|
305
|
+
if (githubRunId)
|
|
306
|
+
body.githubRunId = githubRunId;
|
|
215
307
|
postJsonFireAndForget(backend, apiKey, "/api/chimphands/complete_session", body);
|
|
216
308
|
};
|
|
217
309
|
const childEnv = {
|
|
@@ -222,7 +314,7 @@ export async function runChimphands(opts) {
|
|
|
222
314
|
if (userId)
|
|
223
315
|
childEnv.TESTCHIMP_USER_ID = userId;
|
|
224
316
|
connectInbound(backend, apiKey, sessionId, (content) => {
|
|
225
|
-
queue.push(content);
|
|
317
|
+
queue.push(ensureTestchimpPrompt(content));
|
|
226
318
|
lastUserActivity = Date.now();
|
|
227
319
|
}, () => {
|
|
228
320
|
idle = true;
|
|
@@ -230,18 +322,18 @@ export async function runChimphands(opts) {
|
|
|
230
322
|
closed = true;
|
|
231
323
|
});
|
|
232
324
|
postEvent(ROLE_STATUS, "Agent ready", STATUS_RUNNING);
|
|
233
|
-
let prompt = promptInput || boot.initial_prompt || "";
|
|
325
|
+
let prompt = ensureTestchimpPrompt(promptInput || boot.initial_prompt || "");
|
|
234
326
|
if (boot.conversation_summary) {
|
|
235
327
|
prompt = `Conversation so far:\n${boot.conversation_summary}\n\nCurrent task:\n${prompt}`;
|
|
236
328
|
}
|
|
237
329
|
for (const m of boot.pending_user_messages || []) {
|
|
238
330
|
if (m?.content)
|
|
239
|
-
queue.push(m.content);
|
|
331
|
+
queue.push(ensureTestchimpPrompt(m.content));
|
|
240
332
|
}
|
|
241
333
|
const waitForNextPrompt = () => new Promise((resolve) => {
|
|
242
334
|
const tick = () => {
|
|
243
335
|
if (queue.length) {
|
|
244
|
-
resolve(queue.shift());
|
|
336
|
+
resolve(ensureTestchimpPrompt(queue.shift()));
|
|
245
337
|
return;
|
|
246
338
|
}
|
|
247
339
|
if (idle || closed || Date.now() - lastUserActivity >= idleMs) {
|
|
@@ -253,14 +345,20 @@ export async function runChimphands(opts) {
|
|
|
253
345
|
tick();
|
|
254
346
|
});
|
|
255
347
|
while (prompt) {
|
|
256
|
-
const result = await runOpencode(prompt, childEnv, postEvent);
|
|
348
|
+
const result = await runOpencode(ensureTestchimpPrompt(prompt), opencodeModel, childEnv, postEvent);
|
|
257
349
|
if (result.code !== 0) {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
350
|
+
const errMsg = result.err || "opencode failed";
|
|
351
|
+
console.error(`ChimpHands OpenCode failed: ${errMsg}`);
|
|
352
|
+
postEvent(ROLE_STATUS, errMsg, STATUS_FAILED);
|
|
353
|
+
complete(STATUS_FAILED, errMsg);
|
|
354
|
+
process.exit(result.code || 1);
|
|
261
355
|
}
|
|
262
356
|
postEvent(ROLE_STATUS, "Waiting for user input", STATUS_WAITING_USER);
|
|
357
|
+
// Idle countdown starts when the agent finishes a turn, not at job bootstrap.
|
|
358
|
+
lastUserActivity = Date.now();
|
|
359
|
+
idle = false;
|
|
263
360
|
prompt = (await waitForNextPrompt()) || "";
|
|
264
361
|
}
|
|
362
|
+
console.error("ChimpHands session idle — no user input before timeout; completing.");
|
|
265
363
|
complete(STATUS_IDLE);
|
|
266
364
|
}
|
package/dist/cli/program.js
CHANGED
|
@@ -609,6 +609,60 @@ export function buildCliProgram() {
|
|
|
609
609
|
const out = await runTool("update-test-scenario", merged, { postMcp });
|
|
610
610
|
console.log(out);
|
|
611
611
|
});
|
|
612
|
+
program
|
|
613
|
+
.command("get-project-init-status")
|
|
614
|
+
.description(TOOL_DEFINITIONS.find((t) => t.kebab === "get-project-init-status").description)
|
|
615
|
+
.addOption(jsonInputOption())
|
|
616
|
+
.action(async (opts) => {
|
|
617
|
+
const merged = mergeBodies({}, opts.jsonInput);
|
|
618
|
+
const out = await runTool("get-project-init-status", merged, { postMcp });
|
|
619
|
+
console.log(out);
|
|
620
|
+
});
|
|
621
|
+
program
|
|
622
|
+
.command("update-project-init-status")
|
|
623
|
+
.description(TOOL_DEFINITIONS.find((t) => t.kebab === "update-project-init-status").description)
|
|
624
|
+
.addOption(jsonInputOption())
|
|
625
|
+
.option("--status-json <json>", "ProjectInitStatus JSON object")
|
|
626
|
+
.action(async (opts) => {
|
|
627
|
+
let status;
|
|
628
|
+
if (opts.statusJson) {
|
|
629
|
+
status = JSON.parse(String(opts.statusJson));
|
|
630
|
+
}
|
|
631
|
+
const body = {};
|
|
632
|
+
if (status != null)
|
|
633
|
+
body.status = status;
|
|
634
|
+
const merged = mergeBodies(body, opts.jsonInput);
|
|
635
|
+
const out = await runTool("update-project-init-status", merged, { postMcp });
|
|
636
|
+
console.log(out);
|
|
637
|
+
});
|
|
638
|
+
program
|
|
639
|
+
.command("get-git-folder-mapping")
|
|
640
|
+
.description(TOOL_DEFINITIONS.find((t) => t.kebab === "get-git-folder-mapping").description)
|
|
641
|
+
.addOption(jsonInputOption())
|
|
642
|
+
.action(async (opts) => {
|
|
643
|
+
const merged = mergeBodies({}, opts.jsonInput);
|
|
644
|
+
const out = await runTool("get-git-folder-mapping", merged, { postMcp });
|
|
645
|
+
console.log(out);
|
|
646
|
+
});
|
|
647
|
+
program
|
|
648
|
+
.command("update-git-folder-mapping")
|
|
649
|
+
.description(TOOL_DEFINITIONS.find((t) => t.kebab === "update-git-folder-mapping").description)
|
|
650
|
+
.addOption(jsonInputOption())
|
|
651
|
+
.option("--tests-folder-path <path>")
|
|
652
|
+
.option("--plans-folder-path <path>")
|
|
653
|
+
.option("--repository-full-name <name>")
|
|
654
|
+
.action(async (opts) => {
|
|
655
|
+
const body = {};
|
|
656
|
+
if (opts.testsFolderPath)
|
|
657
|
+
body.tests_folder_path = opts.testsFolderPath;
|
|
658
|
+
if (opts.plansFolderPath)
|
|
659
|
+
body.plans_folder_path = opts.plansFolderPath;
|
|
660
|
+
if (opts.repositoryFullName)
|
|
661
|
+
body.repository_full_name = opts.repositoryFullName;
|
|
662
|
+
const merged = mergeBodies(body, opts.jsonInput);
|
|
663
|
+
const out = await runTool("update-git-folder-mapping", merged, { postMcp });
|
|
664
|
+
console.log(out);
|
|
665
|
+
});
|
|
612
666
|
program
|
|
613
667
|
.command("get-eaas-config")
|
|
614
668
|
.description(TOOL_DEFINITIONS.find((t) => t.kebab === "get-eaas-config").description)
|
|
@@ -1524,7 +1578,7 @@ export function buildCliProgram() {
|
|
|
1524
1578
|
catch (e) {
|
|
1525
1579
|
const msg = e instanceof Error ? e.message : String(e);
|
|
1526
1580
|
console.error(`[testchimp chimphands] ${msg}`);
|
|
1527
|
-
process.
|
|
1581
|
+
process.exit(1);
|
|
1528
1582
|
}
|
|
1529
1583
|
});
|
|
1530
1584
|
program.on("--help", () => {
|
package/dist/core/schemas.d.ts
CHANGED
|
@@ -439,6 +439,340 @@ export declare const createIssueInput: z.ZodObject<{
|
|
|
439
439
|
}, z.core.$strict>>;
|
|
440
440
|
}, z.core.$strip>;
|
|
441
441
|
export declare const emptyInput: z.ZodObject<{}, z.core.$strip>;
|
|
442
|
+
export declare const projectInitStatusSchema: z.ZodObject<{
|
|
443
|
+
platformComms: z.ZodOptional<z.ZodEnum<{
|
|
444
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
445
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
446
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
447
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
448
|
+
INCOMPLETE: "INCOMPLETE";
|
|
449
|
+
DONE: "DONE";
|
|
450
|
+
SKIPPED: "SKIPPED";
|
|
451
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
452
|
+
}>>;
|
|
453
|
+
folderMapping: z.ZodOptional<z.ZodEnum<{
|
|
454
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
455
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
456
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
457
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
458
|
+
INCOMPLETE: "INCOMPLETE";
|
|
459
|
+
DONE: "DONE";
|
|
460
|
+
SKIPPED: "SKIPPED";
|
|
461
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
462
|
+
}>>;
|
|
463
|
+
connectToTestEnv: z.ZodOptional<z.ZodEnum<{
|
|
464
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
465
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
466
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
467
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
468
|
+
INCOMPLETE: "INCOMPLETE";
|
|
469
|
+
DONE: "DONE";
|
|
470
|
+
SKIPPED: "SKIPPED";
|
|
471
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
472
|
+
}>>;
|
|
473
|
+
ciWiring: z.ZodOptional<z.ZodEnum<{
|
|
474
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
475
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
476
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
477
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
478
|
+
INCOMPLETE: "INCOMPLETE";
|
|
479
|
+
DONE: "DONE";
|
|
480
|
+
SKIPPED: "SKIPPED";
|
|
481
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
482
|
+
}>>;
|
|
483
|
+
importPlans: z.ZodOptional<z.ZodEnum<{
|
|
484
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
485
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
486
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
487
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
488
|
+
INCOMPLETE: "INCOMPLETE";
|
|
489
|
+
DONE: "DONE";
|
|
490
|
+
SKIPPED: "SKIPPED";
|
|
491
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
492
|
+
}>>;
|
|
493
|
+
importTests: z.ZodOptional<z.ZodEnum<{
|
|
494
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
495
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
496
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
497
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
498
|
+
INCOMPLETE: "INCOMPLETE";
|
|
499
|
+
DONE: "DONE";
|
|
500
|
+
SKIPPED: "SKIPPED";
|
|
501
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
502
|
+
}>>;
|
|
503
|
+
smokeValidation: z.ZodOptional<z.ZodEnum<{
|
|
504
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
505
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
506
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
507
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
508
|
+
INCOMPLETE: "INCOMPLETE";
|
|
509
|
+
DONE: "DONE";
|
|
510
|
+
SKIPPED: "SKIPPED";
|
|
511
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
512
|
+
}>>;
|
|
513
|
+
overallComplete: z.ZodOptional<z.ZodEnum<{
|
|
514
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
515
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
516
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
517
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
518
|
+
INCOMPLETE: "INCOMPLETE";
|
|
519
|
+
DONE: "DONE";
|
|
520
|
+
SKIPPED: "SKIPPED";
|
|
521
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
522
|
+
}>>;
|
|
523
|
+
platform_comms: z.ZodOptional<z.ZodEnum<{
|
|
524
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
525
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
526
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
527
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
528
|
+
INCOMPLETE: "INCOMPLETE";
|
|
529
|
+
DONE: "DONE";
|
|
530
|
+
SKIPPED: "SKIPPED";
|
|
531
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
532
|
+
}>>;
|
|
533
|
+
folder_mapping: z.ZodOptional<z.ZodEnum<{
|
|
534
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
535
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
536
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
537
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
538
|
+
INCOMPLETE: "INCOMPLETE";
|
|
539
|
+
DONE: "DONE";
|
|
540
|
+
SKIPPED: "SKIPPED";
|
|
541
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
542
|
+
}>>;
|
|
543
|
+
connect_to_test_env: z.ZodOptional<z.ZodEnum<{
|
|
544
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
545
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
546
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
547
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
548
|
+
INCOMPLETE: "INCOMPLETE";
|
|
549
|
+
DONE: "DONE";
|
|
550
|
+
SKIPPED: "SKIPPED";
|
|
551
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
552
|
+
}>>;
|
|
553
|
+
ci_wiring: z.ZodOptional<z.ZodEnum<{
|
|
554
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
555
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
556
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
557
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
558
|
+
INCOMPLETE: "INCOMPLETE";
|
|
559
|
+
DONE: "DONE";
|
|
560
|
+
SKIPPED: "SKIPPED";
|
|
561
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
562
|
+
}>>;
|
|
563
|
+
import_plans: z.ZodOptional<z.ZodEnum<{
|
|
564
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
565
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
566
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
567
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
568
|
+
INCOMPLETE: "INCOMPLETE";
|
|
569
|
+
DONE: "DONE";
|
|
570
|
+
SKIPPED: "SKIPPED";
|
|
571
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
572
|
+
}>>;
|
|
573
|
+
import_tests: z.ZodOptional<z.ZodEnum<{
|
|
574
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
575
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
576
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
577
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
578
|
+
INCOMPLETE: "INCOMPLETE";
|
|
579
|
+
DONE: "DONE";
|
|
580
|
+
SKIPPED: "SKIPPED";
|
|
581
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
582
|
+
}>>;
|
|
583
|
+
smoke_validation: z.ZodOptional<z.ZodEnum<{
|
|
584
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
585
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
586
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
587
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
588
|
+
INCOMPLETE: "INCOMPLETE";
|
|
589
|
+
DONE: "DONE";
|
|
590
|
+
SKIPPED: "SKIPPED";
|
|
591
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
592
|
+
}>>;
|
|
593
|
+
overall_complete: z.ZodOptional<z.ZodEnum<{
|
|
594
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
595
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
596
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
597
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
598
|
+
INCOMPLETE: "INCOMPLETE";
|
|
599
|
+
DONE: "DONE";
|
|
600
|
+
SKIPPED: "SKIPPED";
|
|
601
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
602
|
+
}>>;
|
|
603
|
+
}, z.core.$loose>;
|
|
604
|
+
export declare const updateProjectInitStatusInput: z.ZodObject<{
|
|
605
|
+
status: z.ZodObject<{
|
|
606
|
+
platformComms: z.ZodOptional<z.ZodEnum<{
|
|
607
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
608
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
609
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
610
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
611
|
+
INCOMPLETE: "INCOMPLETE";
|
|
612
|
+
DONE: "DONE";
|
|
613
|
+
SKIPPED: "SKIPPED";
|
|
614
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
615
|
+
}>>;
|
|
616
|
+
folderMapping: z.ZodOptional<z.ZodEnum<{
|
|
617
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
618
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
619
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
620
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
621
|
+
INCOMPLETE: "INCOMPLETE";
|
|
622
|
+
DONE: "DONE";
|
|
623
|
+
SKIPPED: "SKIPPED";
|
|
624
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
625
|
+
}>>;
|
|
626
|
+
connectToTestEnv: z.ZodOptional<z.ZodEnum<{
|
|
627
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
628
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
629
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
630
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
631
|
+
INCOMPLETE: "INCOMPLETE";
|
|
632
|
+
DONE: "DONE";
|
|
633
|
+
SKIPPED: "SKIPPED";
|
|
634
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
635
|
+
}>>;
|
|
636
|
+
ciWiring: z.ZodOptional<z.ZodEnum<{
|
|
637
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
638
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
639
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
640
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
641
|
+
INCOMPLETE: "INCOMPLETE";
|
|
642
|
+
DONE: "DONE";
|
|
643
|
+
SKIPPED: "SKIPPED";
|
|
644
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
645
|
+
}>>;
|
|
646
|
+
importPlans: z.ZodOptional<z.ZodEnum<{
|
|
647
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
648
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
649
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
650
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
651
|
+
INCOMPLETE: "INCOMPLETE";
|
|
652
|
+
DONE: "DONE";
|
|
653
|
+
SKIPPED: "SKIPPED";
|
|
654
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
655
|
+
}>>;
|
|
656
|
+
importTests: z.ZodOptional<z.ZodEnum<{
|
|
657
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
658
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
659
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
660
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
661
|
+
INCOMPLETE: "INCOMPLETE";
|
|
662
|
+
DONE: "DONE";
|
|
663
|
+
SKIPPED: "SKIPPED";
|
|
664
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
665
|
+
}>>;
|
|
666
|
+
smokeValidation: z.ZodOptional<z.ZodEnum<{
|
|
667
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
668
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
669
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
670
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
671
|
+
INCOMPLETE: "INCOMPLETE";
|
|
672
|
+
DONE: "DONE";
|
|
673
|
+
SKIPPED: "SKIPPED";
|
|
674
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
675
|
+
}>>;
|
|
676
|
+
overallComplete: z.ZodOptional<z.ZodEnum<{
|
|
677
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
678
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
679
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
680
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
681
|
+
INCOMPLETE: "INCOMPLETE";
|
|
682
|
+
DONE: "DONE";
|
|
683
|
+
SKIPPED: "SKIPPED";
|
|
684
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
685
|
+
}>>;
|
|
686
|
+
platform_comms: z.ZodOptional<z.ZodEnum<{
|
|
687
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
688
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
689
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
690
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
691
|
+
INCOMPLETE: "INCOMPLETE";
|
|
692
|
+
DONE: "DONE";
|
|
693
|
+
SKIPPED: "SKIPPED";
|
|
694
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
695
|
+
}>>;
|
|
696
|
+
folder_mapping: z.ZodOptional<z.ZodEnum<{
|
|
697
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
698
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
699
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
700
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
701
|
+
INCOMPLETE: "INCOMPLETE";
|
|
702
|
+
DONE: "DONE";
|
|
703
|
+
SKIPPED: "SKIPPED";
|
|
704
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
705
|
+
}>>;
|
|
706
|
+
connect_to_test_env: z.ZodOptional<z.ZodEnum<{
|
|
707
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
708
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
709
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
710
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
711
|
+
INCOMPLETE: "INCOMPLETE";
|
|
712
|
+
DONE: "DONE";
|
|
713
|
+
SKIPPED: "SKIPPED";
|
|
714
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
715
|
+
}>>;
|
|
716
|
+
ci_wiring: z.ZodOptional<z.ZodEnum<{
|
|
717
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
718
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
719
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
720
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
721
|
+
INCOMPLETE: "INCOMPLETE";
|
|
722
|
+
DONE: "DONE";
|
|
723
|
+
SKIPPED: "SKIPPED";
|
|
724
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
725
|
+
}>>;
|
|
726
|
+
import_plans: z.ZodOptional<z.ZodEnum<{
|
|
727
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
728
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
729
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
730
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
731
|
+
INCOMPLETE: "INCOMPLETE";
|
|
732
|
+
DONE: "DONE";
|
|
733
|
+
SKIPPED: "SKIPPED";
|
|
734
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
735
|
+
}>>;
|
|
736
|
+
import_tests: z.ZodOptional<z.ZodEnum<{
|
|
737
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
738
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
739
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
740
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
741
|
+
INCOMPLETE: "INCOMPLETE";
|
|
742
|
+
DONE: "DONE";
|
|
743
|
+
SKIPPED: "SKIPPED";
|
|
744
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
745
|
+
}>>;
|
|
746
|
+
smoke_validation: z.ZodOptional<z.ZodEnum<{
|
|
747
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
748
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
749
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
750
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
751
|
+
INCOMPLETE: "INCOMPLETE";
|
|
752
|
+
DONE: "DONE";
|
|
753
|
+
SKIPPED: "SKIPPED";
|
|
754
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
755
|
+
}>>;
|
|
756
|
+
overall_complete: z.ZodOptional<z.ZodEnum<{
|
|
757
|
+
PROJECT_INIT_ITEM_STATUS_INCOMPLETE: "PROJECT_INIT_ITEM_STATUS_INCOMPLETE";
|
|
758
|
+
PROJECT_INIT_ITEM_STATUS_DONE: "PROJECT_INIT_ITEM_STATUS_DONE";
|
|
759
|
+
PROJECT_INIT_ITEM_STATUS_SKIPPED: "PROJECT_INIT_ITEM_STATUS_SKIPPED";
|
|
760
|
+
PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE: "PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE";
|
|
761
|
+
INCOMPLETE: "INCOMPLETE";
|
|
762
|
+
DONE: "DONE";
|
|
763
|
+
SKIPPED: "SKIPPED";
|
|
764
|
+
NOT_APPLICABLE: "NOT_APPLICABLE";
|
|
765
|
+
}>>;
|
|
766
|
+
}, z.core.$loose>;
|
|
767
|
+
}, z.core.$strip>;
|
|
768
|
+
export declare const updateGitFolderMappingInput: z.ZodObject<{
|
|
769
|
+
testsFolderPath: z.ZodOptional<z.ZodString>;
|
|
770
|
+
plansFolderPath: z.ZodOptional<z.ZodString>;
|
|
771
|
+
repositoryFullName: z.ZodOptional<z.ZodString>;
|
|
772
|
+
tests_folder_path: z.ZodOptional<z.ZodString>;
|
|
773
|
+
plans_folder_path: z.ZodOptional<z.ZodString>;
|
|
774
|
+
repository_full_name: z.ZodOptional<z.ZodString>;
|
|
775
|
+
}, z.core.$strip>;
|
|
442
776
|
export declare const getBranchSpecificEndpointConfigInput: z.ZodObject<{
|
|
443
777
|
branchName: z.ZodOptional<z.ZodString>;
|
|
444
778
|
}, z.core.$strip>;
|
package/dist/core/schemas.js
CHANGED
|
@@ -246,6 +246,47 @@ export const createIssueInput = z.object({
|
|
|
246
246
|
artifactReference: z.record(z.string(), z.unknown()).optional(),
|
|
247
247
|
}).merge(agentTraceabilityFieldsSchema);
|
|
248
248
|
export const emptyInput = z.object({});
|
|
249
|
+
const projectInitItemStatusSchema = z.enum([
|
|
250
|
+
"PROJECT_INIT_ITEM_STATUS_INCOMPLETE",
|
|
251
|
+
"PROJECT_INIT_ITEM_STATUS_DONE",
|
|
252
|
+
"PROJECT_INIT_ITEM_STATUS_SKIPPED",
|
|
253
|
+
"PROJECT_INIT_ITEM_STATUS_NOT_APPLICABLE",
|
|
254
|
+
"INCOMPLETE",
|
|
255
|
+
"DONE",
|
|
256
|
+
"SKIPPED",
|
|
257
|
+
"NOT_APPLICABLE",
|
|
258
|
+
]);
|
|
259
|
+
export const projectInitStatusSchema = z
|
|
260
|
+
.object({
|
|
261
|
+
platformComms: projectInitItemStatusSchema.optional(),
|
|
262
|
+
folderMapping: projectInitItemStatusSchema.optional(),
|
|
263
|
+
connectToTestEnv: projectInitItemStatusSchema.optional(),
|
|
264
|
+
ciWiring: projectInitItemStatusSchema.optional(),
|
|
265
|
+
importPlans: projectInitItemStatusSchema.optional(),
|
|
266
|
+
importTests: projectInitItemStatusSchema.optional(),
|
|
267
|
+
smokeValidation: projectInitItemStatusSchema.optional(),
|
|
268
|
+
overallComplete: projectInitItemStatusSchema.optional(),
|
|
269
|
+
platform_comms: projectInitItemStatusSchema.optional(),
|
|
270
|
+
folder_mapping: projectInitItemStatusSchema.optional(),
|
|
271
|
+
connect_to_test_env: projectInitItemStatusSchema.optional(),
|
|
272
|
+
ci_wiring: projectInitItemStatusSchema.optional(),
|
|
273
|
+
import_plans: projectInitItemStatusSchema.optional(),
|
|
274
|
+
import_tests: projectInitItemStatusSchema.optional(),
|
|
275
|
+
smoke_validation: projectInitItemStatusSchema.optional(),
|
|
276
|
+
overall_complete: projectInitItemStatusSchema.optional(),
|
|
277
|
+
})
|
|
278
|
+
.passthrough();
|
|
279
|
+
export const updateProjectInitStatusInput = z.object({
|
|
280
|
+
status: projectInitStatusSchema,
|
|
281
|
+
});
|
|
282
|
+
export const updateGitFolderMappingInput = z.object({
|
|
283
|
+
testsFolderPath: z.string().min(1).optional(),
|
|
284
|
+
plansFolderPath: z.string().min(1).optional(),
|
|
285
|
+
repositoryFullName: z.string().optional(),
|
|
286
|
+
tests_folder_path: z.string().min(1).optional(),
|
|
287
|
+
plans_folder_path: z.string().min(1).optional(),
|
|
288
|
+
repository_full_name: z.string().optional(),
|
|
289
|
+
});
|
|
249
290
|
export const getBranchSpecificEndpointConfigInput = z.object({
|
|
250
291
|
branchName: z.string().optional(),
|
|
251
292
|
});
|
package/dist/core/tools.js
CHANGED
|
@@ -1390,6 +1390,46 @@ export const TOOL_DEFINITIONS = [
|
|
|
1390
1390
|
return postMcp("/api/mcp/compare_perf_to_baseline", body);
|
|
1391
1391
|
},
|
|
1392
1392
|
},
|
|
1393
|
+
{
|
|
1394
|
+
kebab: "get-project-init-status",
|
|
1395
|
+
description: "Return project-init progress for the current project (platform comms, folder mapping, test env, CI, optional imports).",
|
|
1396
|
+
inputSchema: S.emptyInput,
|
|
1397
|
+
execute: async (_args, { postMcp }) => postMcp("/api/mcp/get_project_init_status", {}),
|
|
1398
|
+
},
|
|
1399
|
+
{
|
|
1400
|
+
kebab: "update-project-init-status",
|
|
1401
|
+
description: "Merge project-init progress fields for the current project. Server recomputes overall_complete when required items are DONE.",
|
|
1402
|
+
inputSchema: S.updateProjectInitStatusInput,
|
|
1403
|
+
execute: async (args, { postMcp }) => {
|
|
1404
|
+
const a = args;
|
|
1405
|
+
return postMcp("/api/mcp/update_project_init_status", { status: a.status });
|
|
1406
|
+
},
|
|
1407
|
+
},
|
|
1408
|
+
{
|
|
1409
|
+
kebab: "get-git-folder-mapping",
|
|
1410
|
+
description: "Return git provider, repository, and mapped plans/tests folder paths for the project.",
|
|
1411
|
+
inputSchema: S.emptyInput,
|
|
1412
|
+
execute: async (_args, { postMcp }) => postMcp("/api/mcp/get_git_folder_mapping", {}),
|
|
1413
|
+
},
|
|
1414
|
+
{
|
|
1415
|
+
kebab: "update-git-folder-mapping",
|
|
1416
|
+
description: "Update mapped plans/tests folder paths (and optional repository) on the platform. Agent scaffolds folders in a PR; this records platform mapping.",
|
|
1417
|
+
inputSchema: S.updateGitFolderMappingInput,
|
|
1418
|
+
execute: async (args, { postMcp }) => {
|
|
1419
|
+
const a = args;
|
|
1420
|
+
const body = {};
|
|
1421
|
+
const tests = a.testsFolderPath ?? a.tests_folder_path;
|
|
1422
|
+
const plans = a.plansFolderPath ?? a.plans_folder_path;
|
|
1423
|
+
const repo = a.repositoryFullName ?? a.repository_full_name;
|
|
1424
|
+
if (tests)
|
|
1425
|
+
body.tests_folder_path = tests;
|
|
1426
|
+
if (plans)
|
|
1427
|
+
body.plans_folder_path = plans;
|
|
1428
|
+
if (repo)
|
|
1429
|
+
body.repository_full_name = repo;
|
|
1430
|
+
return postMcp("/api/mcp/update_git_folder_mapping", body);
|
|
1431
|
+
},
|
|
1432
|
+
},
|
|
1393
1433
|
{
|
|
1394
1434
|
kebab: "list-related-perf-tests",
|
|
1395
1435
|
description: "Find JOURNEY and, by default, COMPOSITE performance tests related to scenario titles and/or TestChimp ids.",
|
package/package.json
CHANGED