@testchimp/cli 0.1.33 → 0.1.35
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 +11 -0
- package/dist/chimphands/run.js +266 -0
- package/dist/cli/program.js +74 -0
- 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
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChimpHands GitHub Actions bridge: bootstrap → OpenCode → inbound SSE turns.
|
|
3
|
+
* Relies on TESTCHIMP_API_KEY (+ optional TESTCHIMP_BACKEND_URL; defaults to prod).
|
|
4
|
+
* Does not write mcp.json — CLI/skill use process env.
|
|
5
|
+
*/
|
|
6
|
+
type RunOptions = {
|
|
7
|
+
sessionId: string;
|
|
8
|
+
prompt?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function runChimphands(opts: RunOptions): Promise<void>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChimpHands GitHub Actions bridge: bootstrap → OpenCode → inbound SSE turns.
|
|
3
|
+
* Relies on TESTCHIMP_API_KEY (+ optional TESTCHIMP_BACKEND_URL; defaults to prod).
|
|
4
|
+
* Does not write mcp.json — CLI/skill use process env.
|
|
5
|
+
*/
|
|
6
|
+
import { spawn, execFileSync } from "node:child_process";
|
|
7
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
8
|
+
import http from "node:http";
|
|
9
|
+
import https from "node:https";
|
|
10
|
+
import { URL } from "node:url";
|
|
11
|
+
import { getBackendUrl, requireApiKey } from "../core/client.js";
|
|
12
|
+
const ROLE_ASSISTANT = "CHIMPHANDS_MESSAGE_ROLE_ASSISTANT";
|
|
13
|
+
const ROLE_TOOL = "CHIMPHANDS_MESSAGE_ROLE_TOOL";
|
|
14
|
+
const ROLE_STATUS = "CHIMPHANDS_MESSAGE_ROLE_STATUS";
|
|
15
|
+
const STATUS_RUNNING = "CHIMPHANDS_SESSION_STATUS_RUNNING";
|
|
16
|
+
const STATUS_WAITING_USER = "CHIMPHANDS_SESSION_STATUS_WAITING_USER";
|
|
17
|
+
const STATUS_IDLE = "CHIMPHANDS_SESSION_STATUS_IDLE";
|
|
18
|
+
const STATUS_FAILED = "CHIMPHANDS_SESSION_STATUS_FAILED";
|
|
19
|
+
function apiHeaders(apiKey) {
|
|
20
|
+
return {
|
|
21
|
+
"Content-Type": "application/json",
|
|
22
|
+
"TestChimp-Api-Key": apiKey,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async function postJson(backend, apiKey, path, body) {
|
|
26
|
+
const res = await fetch(`${backend}${path}`, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
headers: apiHeaders(apiKey),
|
|
29
|
+
body: JSON.stringify(body ?? {}),
|
|
30
|
+
});
|
|
31
|
+
const text = await res.text();
|
|
32
|
+
if (!res.ok) {
|
|
33
|
+
throw new Error(`ChimpHands API ${res.status} ${path}: ${text}`);
|
|
34
|
+
}
|
|
35
|
+
return text;
|
|
36
|
+
}
|
|
37
|
+
function postJsonFireAndForget(backend, apiKey, path, body) {
|
|
38
|
+
void postJson(backend, apiKey, path, body).catch(() => {
|
|
39
|
+
/* best-effort agent telemetry */
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function writeOpencodeConfig(backend, apiKey, boot) {
|
|
43
|
+
const llmBase = (boot.llm_base_url || `${backend}/v1`).replace(/\/$/, "");
|
|
44
|
+
const llmKey = apiKey || boot.llm_api_key || "";
|
|
45
|
+
const llmModel = boot.llm_model || "gpt-4o-mini";
|
|
46
|
+
writeFileSync("opencode.json", JSON.stringify({
|
|
47
|
+
model: llmModel,
|
|
48
|
+
provider: {
|
|
49
|
+
openai: {
|
|
50
|
+
apiKey: llmKey,
|
|
51
|
+
baseURL: llmBase,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
}, null, 2));
|
|
55
|
+
}
|
|
56
|
+
function runOpencode(prompt, childEnv, postEvent) {
|
|
57
|
+
const help = (() => {
|
|
58
|
+
try {
|
|
59
|
+
return execFileSync("opencode", ["run", "--help"], { encoding: "utf8", env: childEnv });
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return "";
|
|
63
|
+
}
|
|
64
|
+
})();
|
|
65
|
+
const useJson = help.includes("--format");
|
|
66
|
+
if (useJson) {
|
|
67
|
+
const child = spawn("opencode", ["run", prompt, "--format", "json"], {
|
|
68
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
69
|
+
env: childEnv,
|
|
70
|
+
});
|
|
71
|
+
let err = "";
|
|
72
|
+
child.stderr.on("data", (d) => {
|
|
73
|
+
err += d.toString();
|
|
74
|
+
});
|
|
75
|
+
return new Promise((resolve) => {
|
|
76
|
+
let buf = "";
|
|
77
|
+
child.stdout.on("data", (chunk) => {
|
|
78
|
+
buf += chunk.toString();
|
|
79
|
+
const lines = buf.split("\n");
|
|
80
|
+
buf = lines.pop() || "";
|
|
81
|
+
for (const line of lines) {
|
|
82
|
+
if (!line.trim())
|
|
83
|
+
continue;
|
|
84
|
+
let content = line;
|
|
85
|
+
let role = ROLE_ASSISTANT;
|
|
86
|
+
try {
|
|
87
|
+
const ev = JSON.parse(line);
|
|
88
|
+
content = ev.content || ev.message || ev.text || JSON.stringify(ev);
|
|
89
|
+
if (ev.type === "tool" || ev.role === "tool")
|
|
90
|
+
role = ROLE_TOOL;
|
|
91
|
+
if (ev.type === "status")
|
|
92
|
+
role = ROLE_STATUS;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
/* plain line */
|
|
96
|
+
}
|
|
97
|
+
postEvent(role, content);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
child.on("close", (code) => {
|
|
101
|
+
if (buf.trim())
|
|
102
|
+
postEvent(ROLE_ASSISTANT, buf.trim());
|
|
103
|
+
resolve({ code: code == null ? 1 : code, err });
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
const out = execFileSync("opencode", ["run", prompt], {
|
|
109
|
+
encoding: "utf8",
|
|
110
|
+
maxBuffer: 20 * 1024 * 1024,
|
|
111
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
112
|
+
env: childEnv,
|
|
113
|
+
});
|
|
114
|
+
if (out)
|
|
115
|
+
postEvent(ROLE_ASSISTANT, out);
|
|
116
|
+
return Promise.resolve({ code: 0, err: "" });
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
const errObj = e;
|
|
120
|
+
const err = (errObj.stderr && errObj.stderr.toString()) || errObj.message || "opencode failed";
|
|
121
|
+
return Promise.resolve({ code: errObj.status || 1, err });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function connectInbound(backend, apiKey, sessionId, onUserMessage, onIdle, onClosed) {
|
|
125
|
+
const url = new URL(`${backend}/api/chimphands/sessions/${encodeURIComponent(sessionId)}/inbound`);
|
|
126
|
+
const lib = url.protocol === "https:" ? https : http;
|
|
127
|
+
const req = lib.request({
|
|
128
|
+
hostname: url.hostname,
|
|
129
|
+
port: url.port || (url.protocol === "https:" ? 443 : 80),
|
|
130
|
+
path: url.pathname + url.search,
|
|
131
|
+
method: "GET",
|
|
132
|
+
headers: {
|
|
133
|
+
"TestChimp-Api-Key": apiKey,
|
|
134
|
+
Accept: "text/event-stream",
|
|
135
|
+
"Cache-Control": "no-cache",
|
|
136
|
+
},
|
|
137
|
+
}, (res) => {
|
|
138
|
+
let buf = "";
|
|
139
|
+
let eventName = "message";
|
|
140
|
+
res.on("data", (chunk) => {
|
|
141
|
+
buf += chunk.toString();
|
|
142
|
+
const parts = buf.split("\n");
|
|
143
|
+
buf = parts.pop() || "";
|
|
144
|
+
for (const line of parts) {
|
|
145
|
+
if (line.startsWith("event:")) {
|
|
146
|
+
eventName = line.slice(6).trim() || "message";
|
|
147
|
+
}
|
|
148
|
+
else if (line.startsWith("data:")) {
|
|
149
|
+
const data = line.slice(5).trim();
|
|
150
|
+
if (eventName === "idle") {
|
|
151
|
+
onIdle();
|
|
152
|
+
}
|
|
153
|
+
else if (eventName === "user_message" || eventName === "message") {
|
|
154
|
+
try {
|
|
155
|
+
const msg = JSON.parse(data);
|
|
156
|
+
const content = msg.content || "";
|
|
157
|
+
if (content)
|
|
158
|
+
onUserMessage(content);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
/* ignore */
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
eventName = "message";
|
|
165
|
+
}
|
|
166
|
+
else if (line === "") {
|
|
167
|
+
eventName = "message";
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
res.on("end", () => onClosed());
|
|
172
|
+
});
|
|
173
|
+
req.on("error", () => onClosed());
|
|
174
|
+
req.end();
|
|
175
|
+
}
|
|
176
|
+
export async function runChimphands(opts) {
|
|
177
|
+
const apiKey = requireApiKey();
|
|
178
|
+
const backend = getBackendUrl();
|
|
179
|
+
// Ensure child processes see the resolved backend (prod default when unset).
|
|
180
|
+
process.env.TESTCHIMP_BACKEND_URL = backend;
|
|
181
|
+
const sessionId = (opts.sessionId || process.env.SESSION_ID || "").trim();
|
|
182
|
+
if (!sessionId) {
|
|
183
|
+
throw new Error("session_id is required (pass --session-id or SESSION_ID)");
|
|
184
|
+
}
|
|
185
|
+
const promptInput = (opts.prompt ?? process.env.PROMPT ?? "").trim();
|
|
186
|
+
const bootText = await postJson(backend, apiKey, "/api/chimphands/bootstrap", {
|
|
187
|
+
session_id: sessionId,
|
|
188
|
+
});
|
|
189
|
+
const boot = JSON.parse(bootText);
|
|
190
|
+
const userId = boot.chimphands_service_account_user_id || "";
|
|
191
|
+
if (userId) {
|
|
192
|
+
process.env.TESTCHIMP_USER_ID = userId;
|
|
193
|
+
}
|
|
194
|
+
mkdirSync(".opencode", { recursive: true });
|
|
195
|
+
writeOpencodeConfig(backend, apiKey, boot);
|
|
196
|
+
const idleMs = (Number(boot.idle_timeout_seconds) || 600) * 1000;
|
|
197
|
+
const queue = [];
|
|
198
|
+
let idle = false;
|
|
199
|
+
let closed = false;
|
|
200
|
+
let lastUserActivity = Date.now();
|
|
201
|
+
const postEvent = (role, content, status) => {
|
|
202
|
+
const body = {
|
|
203
|
+
session_id: sessionId,
|
|
204
|
+
role,
|
|
205
|
+
content: String(content || "").slice(0, 20000),
|
|
206
|
+
};
|
|
207
|
+
if (status != null)
|
|
208
|
+
body.status = status;
|
|
209
|
+
postJsonFireAndForget(backend, apiKey, "/api/chimphands/post_agent_event", body);
|
|
210
|
+
};
|
|
211
|
+
const complete = (status, errorMessage) => {
|
|
212
|
+
const body = { session_id: sessionId, status };
|
|
213
|
+
if (errorMessage)
|
|
214
|
+
body.error_message = String(errorMessage).slice(0, 4000);
|
|
215
|
+
postJsonFireAndForget(backend, apiKey, "/api/chimphands/complete_session", body);
|
|
216
|
+
};
|
|
217
|
+
const childEnv = {
|
|
218
|
+
...process.env,
|
|
219
|
+
TESTCHIMP_API_KEY: apiKey,
|
|
220
|
+
TESTCHIMP_BACKEND_URL: backend,
|
|
221
|
+
};
|
|
222
|
+
if (userId)
|
|
223
|
+
childEnv.TESTCHIMP_USER_ID = userId;
|
|
224
|
+
connectInbound(backend, apiKey, sessionId, (content) => {
|
|
225
|
+
queue.push(content);
|
|
226
|
+
lastUserActivity = Date.now();
|
|
227
|
+
}, () => {
|
|
228
|
+
idle = true;
|
|
229
|
+
}, () => {
|
|
230
|
+
closed = true;
|
|
231
|
+
});
|
|
232
|
+
postEvent(ROLE_STATUS, "Agent ready", STATUS_RUNNING);
|
|
233
|
+
let prompt = promptInput || boot.initial_prompt || "";
|
|
234
|
+
if (boot.conversation_summary) {
|
|
235
|
+
prompt = `Conversation so far:\n${boot.conversation_summary}\n\nCurrent task:\n${prompt}`;
|
|
236
|
+
}
|
|
237
|
+
for (const m of boot.pending_user_messages || []) {
|
|
238
|
+
if (m?.content)
|
|
239
|
+
queue.push(m.content);
|
|
240
|
+
}
|
|
241
|
+
const waitForNextPrompt = () => new Promise((resolve) => {
|
|
242
|
+
const tick = () => {
|
|
243
|
+
if (queue.length) {
|
|
244
|
+
resolve(queue.shift());
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
if (idle || closed || Date.now() - lastUserActivity >= idleMs) {
|
|
248
|
+
resolve(null);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
setTimeout(tick, 500);
|
|
252
|
+
};
|
|
253
|
+
tick();
|
|
254
|
+
});
|
|
255
|
+
while (prompt) {
|
|
256
|
+
const result = await runOpencode(prompt, childEnv, postEvent);
|
|
257
|
+
if (result.code !== 0) {
|
|
258
|
+
complete(STATUS_FAILED, result.err || "opencode failed");
|
|
259
|
+
process.exitCode = result.code || 1;
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
postEvent(ROLE_STATUS, "Waiting for user input", STATUS_WAITING_USER);
|
|
263
|
+
prompt = (await waitForNextPrompt()) || "";
|
|
264
|
+
}
|
|
265
|
+
complete(STATUS_IDLE);
|
|
266
|
+
}
|
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)
|
|
@@ -1507,6 +1561,26 @@ export function buildCliProgram() {
|
|
|
1507
1561
|
body.limit = opts.limit;
|
|
1508
1562
|
console.log(await runTool("list-api-operation-interactions", mergeBodies(body, opts.jsonInput), { postMcp }));
|
|
1509
1563
|
});
|
|
1564
|
+
const chimphands = program.command("chimphands").description("ChimpHands GitHub Actions agent bridge");
|
|
1565
|
+
chimphands
|
|
1566
|
+
.command("run")
|
|
1567
|
+
.description("Bootstrap session, configure OpenCode, and run the interactive bridge")
|
|
1568
|
+
.option("--session-id <id>", "ChimpHands session id (or SESSION_ID env)")
|
|
1569
|
+
.option("--prompt <text>", "Initial prompt (or PROMPT env)")
|
|
1570
|
+
.action(async (opts) => {
|
|
1571
|
+
const { runChimphands } = await import("../chimphands/run.js");
|
|
1572
|
+
try {
|
|
1573
|
+
await runChimphands({
|
|
1574
|
+
sessionId: String(opts.sessionId || process.env.SESSION_ID || "").trim(),
|
|
1575
|
+
prompt: opts.prompt != null ? String(opts.prompt) : undefined,
|
|
1576
|
+
});
|
|
1577
|
+
}
|
|
1578
|
+
catch (e) {
|
|
1579
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
1580
|
+
console.error(`[testchimp chimphands] ${msg}`);
|
|
1581
|
+
process.exitCode = 1;
|
|
1582
|
+
}
|
|
1583
|
+
});
|
|
1510
1584
|
program.on("--help", () => {
|
|
1511
1585
|
/* default */
|
|
1512
1586
|
});
|
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