@bf-meishijian/aip 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +112 -1
- package/dist/agent-harness/index.d.ts +4 -0
- package/dist/agent-harness/index.d.ts.map +1 -0
- package/dist/agent-harness/index.js +4 -0
- package/dist/agent-harness/index.js.map +1 -0
- package/dist/agent-harness/pi-chat-model.d.ts +35 -0
- package/dist/agent-harness/pi-chat-model.d.ts.map +1 -0
- package/dist/agent-harness/pi-chat-model.js +285 -0
- package/dist/agent-harness/pi-chat-model.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +57 -23
- package/dist/cli.js.map +1 -1
- package/dist/coding-run-manager.d.ts +76 -16
- package/dist/coding-run-manager.d.ts.map +1 -1
- package/dist/coding-run-manager.js +550 -439
- package/dist/coding-run-manager.js.map +1 -1
- package/dist/coding-subagent-child.d.ts +1 -1
- package/dist/coding-subagent-child.d.ts.map +1 -1
- package/dist/coding-subagent-child.js +14 -21
- package/dist/coding-subagent-child.js.map +1 -1
- package/dist/coding-subagents.d.ts +2 -0
- package/dist/coding-subagents.d.ts.map +1 -1
- package/dist/coding-subagents.js +103 -119
- package/dist/coding-subagents.js.map +1 -1
- package/dist/daemon.d.ts +4 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +127 -42
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-files.d.ts +15 -12
- package/dist/delivery-files.d.ts.map +1 -1
- package/dist/delivery-files.js +124 -78
- package/dist/delivery-files.js.map +1 -1
- package/dist/delivery-tools.d.ts +28 -0
- package/dist/delivery-tools.d.ts.map +1 -0
- package/dist/delivery-tools.js +167 -0
- package/dist/delivery-tools.js.map +1 -0
- package/dist/diagnostics.d.ts +1 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +48 -14
- package/dist/diagnostics.js.map +1 -1
- package/dist/installer.d.ts +5 -8
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +155 -65
- package/dist/installer.js.map +1 -1
- package/dist/linux-service.d.ts +14 -0
- package/dist/linux-service.d.ts.map +1 -0
- package/dist/linux-service.js +63 -0
- package/dist/linux-service.js.map +1 -0
- package/dist/live-employee.d.ts +4 -3
- package/dist/live-employee.d.ts.map +1 -1
- package/dist/live-employee.js +222 -60
- package/dist/live-employee.js.map +1 -1
- package/dist/local-handoff-workspace.d.ts +20 -0
- package/dist/local-handoff-workspace.d.ts.map +1 -0
- package/dist/local-handoff-workspace.js +80 -0
- package/dist/local-handoff-workspace.js.map +1 -0
- package/dist/local-model-usage.d.ts +6 -0
- package/dist/local-model-usage.d.ts.map +1 -0
- package/dist/local-model-usage.js +40 -0
- package/dist/local-model-usage.js.map +1 -0
- package/dist/login-url.d.ts +3 -0
- package/dist/login-url.d.ts.map +1 -0
- package/dist/login-url.js +30 -0
- package/dist/login-url.js.map +1 -0
- package/dist/paths.d.ts +9 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +27 -3
- package/dist/paths.js.map +1 -1
- package/dist/pi-model-service.d.ts +11 -0
- package/dist/pi-model-service.d.ts.map +1 -1
- package/dist/pi-model-service.js +28 -11
- package/dist/pi-model-service.js.map +1 -1
- package/dist/platform-client.d.ts +214 -6
- package/dist/platform-client.d.ts.map +1 -1
- package/dist/platform-client.js +66 -0
- package/dist/platform-client.js.map +1 -1
- package/dist/profile.d.ts +9 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +43 -0
- package/dist/profile.js.map +1 -0
- package/dist/project-facts.d.ts +19 -0
- package/dist/project-facts.d.ts.map +1 -0
- package/dist/project-facts.js +91 -0
- package/dist/project-facts.js.map +1 -0
- package/dist/provider-auth-error.d.ts +3 -0
- package/dist/provider-auth-error.d.ts.map +1 -0
- package/dist/provider-auth-error.js +12 -0
- package/dist/provider-auth-error.js.map +1 -0
- package/dist/qa-contract.d.ts +2 -0
- package/dist/qa-contract.d.ts.map +1 -0
- package/dist/qa-contract.js +165 -0
- package/dist/qa-contract.js.map +1 -0
- package/dist/qa-http-validation.js +145 -0
- package/dist/qa-project-checkout.d.ts +12 -0
- package/dist/qa-project-checkout.d.ts.map +1 -0
- package/dist/qa-project-checkout.js +68 -0
- package/dist/qa-project-checkout.js.map +1 -0
- package/dist/qa-session-manager.d.ts +101 -0
- package/dist/qa-session-manager.d.ts.map +1 -0
- package/dist/qa-session-manager.js +581 -0
- package/dist/qa-session-manager.js.map +1 -0
- package/dist/review-report.d.ts +3 -4
- package/dist/review-report.d.ts.map +1 -1
- package/dist/review-report.js +14 -12
- package/dist/review-report.js.map +1 -1
- package/dist/secure-json.d.ts.map +1 -1
- package/dist/secure-json.js +64 -2
- package/dist/secure-json.js.map +1 -1
- package/dist/stage-delivery.js +42 -25
- package/dist/state.d.ts +2 -2
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +6 -4
- package/dist/state.js.map +1 -1
- package/dist/test-cli.d.ts +2 -0
- package/dist/test-cli.d.ts.map +1 -0
- package/dist/test-cli.js +50 -0
- package/dist/test-cli.js.map +1 -0
- package/dist/test-executor.d.ts +44 -0
- package/dist/test-executor.d.ts.map +1 -0
- package/dist/test-executor.js +474 -0
- package/dist/test-executor.js.map +1 -0
- package/dist/test-reports.d.ts +13 -0
- package/dist/test-reports.d.ts.map +1 -0
- package/dist/test-reports.js +129 -0
- package/dist/test-reports.js.map +1 -0
- package/dist/test-run-manager.d.ts +24 -0
- package/dist/test-run-manager.d.ts.map +1 -0
- package/dist/test-run-manager.js +121 -0
- package/dist/test-run-manager.js.map +1 -0
- package/dist/tool-dispatch.d.ts +14 -0
- package/dist/tool-dispatch.d.ts.map +1 -0
- package/dist/tool-dispatch.js +56 -0
- package/dist/tool-dispatch.js.map +1 -0
- package/dist/windows-runtime.d.ts +9 -0
- package/dist/windows-runtime.d.ts.map +1 -0
- package/dist/windows-runtime.js +64 -0
- package/dist/windows-runtime.js.map +1 -0
- package/dist/windows-service.d.ts +20 -0
- package/dist/windows-service.d.ts.map +1 -0
- package/dist/windows-service.js +96 -0
- package/dist/windows-service.js.map +1 -0
- package/package.json +17 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-client.d.ts","sourceRoot":"","sources":["../src/platform-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-client.d.ts","sourceRoot":"","sources":["../src/platform-client.ts"],"names":[],"mappings":"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"}
|
package/dist/platform-client.js
CHANGED
|
@@ -5,6 +5,72 @@ export class PlatformClient {
|
|
|
5
5
|
this.baseUrl = baseUrl;
|
|
6
6
|
this.deviceToken = deviceToken;
|
|
7
7
|
}
|
|
8
|
+
commandInput(id, input) {
|
|
9
|
+
return this.request(`/api/v1/local-coding-host/commands/${encodeURIComponent(id)}/input`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
10
|
+
}
|
|
11
|
+
commandMaterial(id, input) {
|
|
12
|
+
return this.request(`/api/v1/local-coding-host/commands/${encodeURIComponent(id)}/material`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
13
|
+
}
|
|
14
|
+
qaEmployeeConfig(id, input) {
|
|
15
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/employee-config`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
16
|
+
}
|
|
17
|
+
qaEmployeeTool(id, input) {
|
|
18
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/employee-tool`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
19
|
+
}
|
|
20
|
+
qaSessionEvents(id, input) {
|
|
21
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/events`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
22
|
+
}
|
|
23
|
+
qaReadTestPlan(id, input) {
|
|
24
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/plan/read`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
25
|
+
}
|
|
26
|
+
qaSubmitTestPlan(id, input) {
|
|
27
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/plan`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
28
|
+
}
|
|
29
|
+
qaReadResults(id, input) {
|
|
30
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/results`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
31
|
+
}
|
|
32
|
+
qaRequestExecution(id, input) {
|
|
33
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/executions`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
34
|
+
}
|
|
35
|
+
qaUploadSessionAttachment(id, input) {
|
|
36
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/attachments`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
37
|
+
}
|
|
38
|
+
qaSubmitVerification(id, input) {
|
|
39
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/verifications`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
40
|
+
}
|
|
41
|
+
qaSubmitConclusion(id, input) {
|
|
42
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/conclusions`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
43
|
+
}
|
|
44
|
+
qaReportDefects(id, input) {
|
|
45
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/defects`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
46
|
+
}
|
|
47
|
+
qaRequestRework(id, input) {
|
|
48
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/rework`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
49
|
+
}
|
|
50
|
+
qaCompleteReview(id, input) {
|
|
51
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/complete`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
52
|
+
}
|
|
53
|
+
qaReportAssetMerge(id, input) {
|
|
54
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/asset-merge`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
55
|
+
}
|
|
56
|
+
qaResolveDefect(id, defectId, input) {
|
|
57
|
+
return this.request(`/api/v1/qa/sessions/${encodeURIComponent(id)}/defects/${encodeURIComponent(defectId)}/resolve`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
58
|
+
}
|
|
59
|
+
qaExecutionStarted(id, input) {
|
|
60
|
+
return this.request(`/api/v1/qa/executions/${encodeURIComponent(id)}/started`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
61
|
+
}
|
|
62
|
+
qaReportCatalog(id, input) {
|
|
63
|
+
return this.request(`/api/v1/test-center/catalogs/${encodeURIComponent(id)}/result`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
64
|
+
}
|
|
65
|
+
qaReportResult(id, input) {
|
|
66
|
+
return this.request(`/api/v1/qa/executions/${encodeURIComponent(id)}/result`, { method: "PUT", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
67
|
+
}
|
|
68
|
+
qaUploadAttachment(id, input) {
|
|
69
|
+
return this.request(`/api/v1/qa/executions/${encodeURIComponent(id)}/attachments`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
70
|
+
}
|
|
71
|
+
qaTransferFailure(id, input) {
|
|
72
|
+
return this.request(`/api/v1/qa/executions/${encodeURIComponent(id)}/transfer-failure`, { method: "POST", body: JSON.stringify(input), signal: AbortSignal.timeout(30_000) });
|
|
73
|
+
}
|
|
8
74
|
evaluateContinuation(runId, input) {
|
|
9
75
|
return this.request(`/api/v1/coding-runs/${encodeURIComponent(runId)}/evaluate-continuation`, {
|
|
10
76
|
method: "POST",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-client.js","sourceRoot":"","sources":["../src/platform-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform-client.js","sourceRoot":"","sources":["../src/platform-client.ts"],"names":[],"mappings":"AAgCA,MAAM,OAAO,cAAc;IAEN;IACA;IAFnB,YACmB,OAAe,EACf,WAAoB;QADpB,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAS;IACpC,CAAC;IACJ,YAAY,CAAC,EAAU,EAAE,KAAyD;QAChF,OAAO,IAAI,CAAC,OAAO,CACjB,sCAAsC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EACpE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,EAAU,EAAE,KAA4D;QACtF,OAAO,IAAI,CAAC,OAAO,CACjB,sCAAsC,kBAAkB,CAAC,EAAE,CAAC,WAAW,EACvE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,gBAAgB,CAAC,EAAU,EAAE,KAA0C;QACrE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,kBAAkB,EAC/D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,EAAU,EAAE,KAAwC;QACjE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAC7D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,EAAU,EAAE,KAAyC;QACnE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EACtD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,EAAU,EAAE,KAAwC;QACjE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,YAAY,EACzD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,gBAAgB,CAAC,EAAU,EAAE,KAA0C;QACrE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EACpD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,aAAa,CAAC,EAAU,EAAE,KAAuC;QAC/D,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EACvD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,kBAAkB,CAAC,EAAU,EAAE,KAA4C;QACzE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAC1D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,yBAAyB,CAAC,EAAU,EAAE,KAAmD;QACvF,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAC3D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,oBAAoB,CAAC,EAAU,EAAE,KAA8C;QAC7E,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAC7D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,kBAAkB,CAAC,EAAU,EAAE,KAA4C;QACzE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAC3D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,EAAU,EAAE,KAAyC;QACnE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EACvD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,EAAU,EAAE,KAAyC;QACnE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EACtD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,gBAAgB,CAAC,EAAU,EAAE,KAA0C;QACrE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,WAAW,EACxD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,kBAAkB,CAAC,EAAU,EAAE,KAA4C;QACzE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAC3D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,EAAU,EAAE,QAAgB,EAAE,KAAyC;QACrF,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,YAAY,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAC/F,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,kBAAkB,CAAC,EAAU,EAAE,KAA4C;QACzE,OAAO,IAAI,CAAC,OAAO,CACjB,yBAAyB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EACzD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,EAAU,EAAE,KAAiD;QAC3E,OAAO,IAAI,CAAC,OAAO,CACjB,gCAAgC,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAC/D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,EAAU,EAAE,KAAwC;QACjE,OAAO,IAAI,CAAC,OAAO,CACjB,yBAAyB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EACxD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,kBAAkB,CAAC,EAAU,EAAE,KAA4C;QACzE,OAAO,IAAI,CAAC,OAAO,CACjB,yBAAyB,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAC7D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,iBAAiB,CAAC,EAAU,EAAE,KAA2C;QACvE,OAAO,IAAI,CAAC,OAAO,CACjB,yBAAyB,kBAAkB,CAAC,EAAE,CAAC,mBAAmB,EAClE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,oBAAoB,CAClB,KAAa,EACb,KAAgG;QAEhG,OAAO,IAAI,CAAC,OAAO,CAEjB,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,wBAAwB,EAAE;YAC1E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CACrB,KAAa,EACb,KAA2F;QAE3F,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,oBAAoB,EACpE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,OAAO,CAAI,IAAY,EAAE,OAAoB,EAAE;QAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjF,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CACnF,KAAK,EAAE,QAAQ,EAAE,EAAE;YACjB,IAAI,QAAQ,CAAC,EAAE;gBACb,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAE,SAAe,CAAC,CAAC,CAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAO,CAAC;YACrF,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAItD,CAAC;YACF,MAAM,IAAI,mBAAmB,CAC3B,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,IAAI,IAAI,gBAAgB,EAC/B,MAAM,CAAC,OAAO,IAAI,MAAM,EACxB,MAAM,CAAC,OAAO,CACf,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,KAAa,EACb,YAAoB,EACpB,KAA6D;QAE7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,UAAU,EAC7I;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;aAClD;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YACd,MAAM,IAAI,mBAAmB,CAC3B,QAAQ,CAAC,MAAM,EACf,8BAA8B,EAC9B,QAAQ,CACT,CAAC;QACJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,OAAgB;YACtB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAClE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,KAAa,EACb,KAA0F;QAE1F,OAAO,IAAI,CAAC,OAAO,CAEjB,uBAAuB,KAAK,kBAAkB,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CACV,KAAa,EACb,KAAwF;QAExF,OAAO,IAAI,CAAC,OAAO,CAEjB,uBAAuB,KAAK,iBAAiB,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,CAAC,KAAoB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAiB,wCAAwC,EAAE;YAC5E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,KAAqB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAkB,qCAAqC,EAAE;YAC1E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CACX,KAA+F,EAC/F,MAAmB;QAEnB,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,yCAAyC,EAAE;YACzF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;gBAC3B,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;aAClD;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3B,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,KAAyB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAqB,wCAAwC,EAAE;YAChF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CAAC,KAAkB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAe,kCAAkC,EAAE;YACpE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,eAAe,CAAC,EAA6B,EAAE,KAA2B;QACxE,OAAO,IAAI,CAAC,OAAO,CAAwB,sCAAsC,EAAE,SAAS,EAAE;YAC5F,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,CAAC,KAAa,EAAE,KAAwB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAqB,uBAAuB,KAAK,SAAS,EAAE;YAC7E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,CAChB,KAAa,EACb,KAA8F;QAE9F,OAAO,IAAI,CAAC,OAAO,CAAwB,uBAAuB,KAAK,gBAAgB,EAAE;YACvF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,oBAAoB,CAAC,KAAa,EAAE,KAA0B;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAuB,uBAAuB,KAAK,WAAW,EAAE;YACjF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEjC;IACA;IAEA;IAJX,YACW,MAAc,EACd,IAAY,EACrB,OAAe,EACN,OAAiB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QALN,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAEZ,YAAO,GAAP,OAAO,CAAU;IAG5B,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function selectProfile(args: string[]): string[];
|
|
2
|
+
export declare function normalizePlatformUrl(value: string): string;
|
|
3
|
+
export declare function readProfileBinding(): Promise<{
|
|
4
|
+
platformUrl: string;
|
|
5
|
+
} | null>;
|
|
6
|
+
export declare function checkPlatformBinding(platformUrl: string): Promise<string>;
|
|
7
|
+
export declare function bindPlatform(platformUrl: string): Promise<string>;
|
|
8
|
+
export declare function resolveLoginPlatform(explicit?: string): Promise<string>;
|
|
9
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAI3C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,UAKjD;AAED,wBAAgB,kBAAkB;iBACD,MAAM;UACtC;AAED,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,mBAU7D;AAED,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,mBAIrD;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,mBAS3D"}
|
package/dist/profile.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { activeProfile, aipCommand, paths } from "./paths.js";
|
|
2
|
+
import { readJson, writeSecureJson } from "./secure-json.js";
|
|
3
|
+
export function selectProfile(args) {
|
|
4
|
+
if (args.includes("--local"))
|
|
5
|
+
process.env.AIP_PROFILE = "local";
|
|
6
|
+
else
|
|
7
|
+
process.env.AIP_PROFILE = activeProfile();
|
|
8
|
+
return args.filter((arg) => arg !== "--local");
|
|
9
|
+
}
|
|
10
|
+
export function normalizePlatformUrl(value) {
|
|
11
|
+
const url = new URL(value);
|
|
12
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
13
|
+
throw new Error("平台地址必须使用 http 或 https");
|
|
14
|
+
return url.toString().replace(/\/+$/u, "");
|
|
15
|
+
}
|
|
16
|
+
export function readProfileBinding() {
|
|
17
|
+
return readJson(paths().profile);
|
|
18
|
+
}
|
|
19
|
+
export async function checkPlatformBinding(platformUrl) {
|
|
20
|
+
const normalized = normalizePlatformUrl(platformUrl);
|
|
21
|
+
const binding = await readProfileBinding();
|
|
22
|
+
if (binding && normalizePlatformUrl(binding.platformUrl) !== normalized) {
|
|
23
|
+
const otherCommand = activeProfile() === "default" ? "aip --local" : "aip";
|
|
24
|
+
throw new Error(`环境 ${activeProfile()} 已绑定 ${binding.platformUrl},不能覆盖为 ${normalized};请检查环境,另一环境入口为 ${otherCommand} login --platform URL`);
|
|
25
|
+
}
|
|
26
|
+
return normalized;
|
|
27
|
+
}
|
|
28
|
+
export async function bindPlatform(platformUrl) {
|
|
29
|
+
const normalized = await checkPlatformBinding(platformUrl);
|
|
30
|
+
await writeSecureJson(paths().profile, { platformUrl: normalized });
|
|
31
|
+
return normalized;
|
|
32
|
+
}
|
|
33
|
+
export async function resolveLoginPlatform(explicit) {
|
|
34
|
+
const binding = await readProfileBinding();
|
|
35
|
+
const value = explicit ??
|
|
36
|
+
process.env.AIP_PLATFORM_URL ??
|
|
37
|
+
binding?.platformUrl ??
|
|
38
|
+
(activeProfile() === "local" ? "http://127.0.0.1:3000" : undefined);
|
|
39
|
+
if (!value)
|
|
40
|
+
throw new Error(`请执行 ${aipCommand()} login --platform URL 指定云端平台地址`);
|
|
41
|
+
return checkPlatformBinding(value);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;;QAC3D,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,aAAa,EAAE,CAAC;IAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;QACvD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,QAAQ,CAA0B,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC3C,IAAI,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE,CAAC;QACxE,MAAM,YAAY,GAAG,aAAa,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,MAAM,aAAa,EAAE,QAAQ,OAAO,CAAC,WAAW,UAAU,UAAU,kBAAkB,YAAY,uBAAuB,CAC1H,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IACpE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,QAAiB;IAC1D,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC3C,MAAM,KAAK,GACT,QAAQ;QACR,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC5B,OAAO,EAAE,WAAW;QACpB,CAAC,aAAa,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,UAAU,EAAE,gCAAgC,CAAC,CAAC;IACjF,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface DeliveryProject {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
repositoryUrl: string;
|
|
5
|
+
baselineCommit: string;
|
|
6
|
+
baselineBranch: string;
|
|
7
|
+
devBranch: string;
|
|
8
|
+
testBranch: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function collectProjectFacts(runRoot: string, projects: DeliveryProject[], key?: string, primaryProjectId?: string): Promise<{
|
|
11
|
+
projectId: string;
|
|
12
|
+
projectName: string;
|
|
13
|
+
commitSha: string;
|
|
14
|
+
treeHash: string;
|
|
15
|
+
branch: string;
|
|
16
|
+
}[]>;
|
|
17
|
+
export declare function verifyReviewBranches(runRoot: string, projects: DeliveryProject[], projectFacts: Awaited<ReturnType<typeof collectProjectFacts>>): Promise<void>;
|
|
18
|
+
export declare function worktreeTreeHash(cwd: string, key?: string, committed?: boolean, ref?: string): Promise<string>;
|
|
19
|
+
//# sourceMappingURL=project-facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-facts.d.ts","sourceRoot":"","sources":["../src/project-facts.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,EAAE,EAC3B,GAAG,CAAC,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,MAAM;;;;;;KAqB1B;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,EAAE,EAC3B,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,iBA8B9D;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,UAAQ,EAAE,GAAG,SAAS,mBAwChG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { mkdtemp, rm } from "node:fs/promises";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { basename, join } from "node:path";
|
|
5
|
+
import { promisify } from "node:util";
|
|
6
|
+
const execFileAsync = promisify(execFile);
|
|
7
|
+
function safeName(value) {
|
|
8
|
+
return basename(value).replace(/[^a-zA-Z0-9._-]/gu, "-") || "project";
|
|
9
|
+
}
|
|
10
|
+
export async function collectProjectFacts(runRoot, projects, key, primaryProjectId) {
|
|
11
|
+
return Promise.all(projects.map(async (project) => {
|
|
12
|
+
const cwd = join(runRoot, safeName(project.name));
|
|
13
|
+
const excludeKey = project.id === primaryProjectId ? key : undefined;
|
|
14
|
+
const [{ stdout: head }, tree, { stdout: branch }] = await Promise.all([
|
|
15
|
+
execFileAsync("git", ["rev-parse", "HEAD"], { cwd }),
|
|
16
|
+
worktreeTreeHash(cwd, excludeKey),
|
|
17
|
+
execFileAsync("git", ["branch", "--show-current"], { cwd }),
|
|
18
|
+
]);
|
|
19
|
+
const commitSha = head.trim();
|
|
20
|
+
return {
|
|
21
|
+
projectId: project.id,
|
|
22
|
+
projectName: project.name,
|
|
23
|
+
commitSha,
|
|
24
|
+
treeHash: tree,
|
|
25
|
+
branch: branch.trim(),
|
|
26
|
+
};
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
export async function verifyReviewBranches(runRoot, projects, projectFacts) {
|
|
30
|
+
for (const project of projects) {
|
|
31
|
+
const fact = projectFacts.find((item) => item.projectId === project.id);
|
|
32
|
+
if (!fact || fact.branch !== project.devBranch)
|
|
33
|
+
throw new Error(`AIP_REVIEW_BRANCH_MISMATCH:${project.name}:请切换到已分配开发分支 ${project.devBranch} 后重新提交。`);
|
|
34
|
+
const ref = `refs/heads/${project.devBranch}`;
|
|
35
|
+
let remoteHead;
|
|
36
|
+
try {
|
|
37
|
+
const { stdout } = await execFileAsync("git", ["ls-remote", "--exit-code", "origin", ref], {
|
|
38
|
+
cwd: join(runRoot, safeName(project.name)),
|
|
39
|
+
});
|
|
40
|
+
remoteHead = stdout.trim().split(/\s+/u)[0];
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (!(error && typeof error === "object" && "code" in error && error.code === 2))
|
|
44
|
+
throw new Error(`AIP_REVIEW_REMOTE_CHECK_FAILED:${project.name}:无法核验远端,请检查网络或权限后重试。`);
|
|
45
|
+
}
|
|
46
|
+
if (!remoteHead)
|
|
47
|
+
throw new Error(`AIP_REVIEW_REMOTE_BRANCH_MISSING:${project.name}:请将当前 HEAD 推送到 origin 的 ${project.devBranch} 后重试。`);
|
|
48
|
+
if (remoteHead !== fact.commitSha)
|
|
49
|
+
throw new Error(`AIP_REVIEW_REMOTE_HEAD_MISMATCH:${project.name}:远端 ${project.devBranch} 与当前 HEAD 不一致,请推送当前 HEAD 后重试。`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export async function worktreeTreeHash(cwd, key, committed = false, ref = "HEAD") {
|
|
53
|
+
const temporary = await mkdtemp(join(tmpdir(), "aip-tested-tree-"));
|
|
54
|
+
const index = join(temporary, "index");
|
|
55
|
+
const options = { cwd, env: { ...process.env, GIT_INDEX_FILE: index } };
|
|
56
|
+
try {
|
|
57
|
+
await execFileAsync("git", ["read-tree", ref], options);
|
|
58
|
+
if (!committed)
|
|
59
|
+
await execFileAsync("git", ["add", "-A"], options);
|
|
60
|
+
if (key) {
|
|
61
|
+
const names = [
|
|
62
|
+
"summary.md",
|
|
63
|
+
"prd.md",
|
|
64
|
+
"design.md",
|
|
65
|
+
"plan.md",
|
|
66
|
+
"test_plan.md",
|
|
67
|
+
"report.md",
|
|
68
|
+
"deployment.md",
|
|
69
|
+
"code_review.md",
|
|
70
|
+
"system_review.md",
|
|
71
|
+
"reviews/round-*.md",
|
|
72
|
+
"release_checklist.md",
|
|
73
|
+
"prd.platform.md",
|
|
74
|
+
"design.platform.md",
|
|
75
|
+
];
|
|
76
|
+
await execFileAsync("git", [
|
|
77
|
+
"rm",
|
|
78
|
+
"--cached",
|
|
79
|
+
"--force", // This removes entries only from the dedicated temporary index.
|
|
80
|
+
"--ignore-unmatch",
|
|
81
|
+
"--",
|
|
82
|
+
...names.map((name) => `docs/aip/${key}/${name}`),
|
|
83
|
+
], options);
|
|
84
|
+
}
|
|
85
|
+
return (await execFileAsync("git", ["write-tree"], options)).stdout.trim();
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
await rm(temporary, { recursive: true, force: true });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=project-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-facts.js","sourceRoot":"","sources":["../src/project-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-auth-error.d.ts","sourceRoot":"","sources":["../src/provider-auth-error.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAW/D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Only explicit credential rejection requires login; transport failures remain unknown. */
|
|
2
|
+
export function isProviderLoginRequired(error) {
|
|
3
|
+
const messages = [];
|
|
4
|
+
const seen = new Set();
|
|
5
|
+
while (error && !seen.has(error)) {
|
|
6
|
+
seen.add(error);
|
|
7
|
+
messages.push(error instanceof Error ? error.message : String(error));
|
|
8
|
+
error = error instanceof Error ? error.cause : undefined;
|
|
9
|
+
}
|
|
10
|
+
return /refresh_token_reused|invalid_grant|invalid_refresh_token|(?:OAuth|token) refresh[^\n]*(?:\(401\)|status=401)/iu.test(messages.join("\n"));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=provider-auth-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-auth-error.js","sourceRoot":"","sources":["../src/provider-auth-error.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IACD,OAAO,gHAAgH,CAAC,IAAI,CAC1H,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qa-contract.d.ts","sourceRoot":"","sources":["../src/qa-contract.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { Ajv } from "ajv";
|
|
2
|
+
|
|
3
|
+
export const qaTestGroupsSchema = {
|
|
4
|
+
type: "array",
|
|
5
|
+
minItems: 1,
|
|
6
|
+
items: {
|
|
7
|
+
type: "object",
|
|
8
|
+
additionalProperties: false,
|
|
9
|
+
properties: {
|
|
10
|
+
id: { type: "string", minLength: 1 },
|
|
11
|
+
name: { type: "string", minLength: 1 },
|
|
12
|
+
environments: {
|
|
13
|
+
type: "array",
|
|
14
|
+
minItems: 1,
|
|
15
|
+
uniqueItems: true,
|
|
16
|
+
items: { type: "string", minLength: 1 },
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
required: ["id", "name", "environments"],
|
|
20
|
+
},
|
|
21
|
+
} ;
|
|
22
|
+
export const qaContractSchema = {
|
|
23
|
+
type: "object",
|
|
24
|
+
additionalProperties: false,
|
|
25
|
+
properties: {
|
|
26
|
+
contractVersion: { const: 1 },
|
|
27
|
+
language: { type: "string", minLength: 1 },
|
|
28
|
+
groups: qaTestGroupsSchema,
|
|
29
|
+
doctor: { type: "array", minItems: 1, items: { type: "string" } },
|
|
30
|
+
collect: { type: "array", minItems: 1, items: { type: "string" } },
|
|
31
|
+
check: { type: "array", minItems: 1, items: { type: "string" } },
|
|
32
|
+
run: { type: "array", minItems: 1, items: { type: "string" } },
|
|
33
|
+
reportDir: { type: "string", minLength: 1 },
|
|
34
|
+
},
|
|
35
|
+
required: [
|
|
36
|
+
"groups",
|
|
37
|
+
"contractVersion",
|
|
38
|
+
"language",
|
|
39
|
+
"doctor",
|
|
40
|
+
"collect",
|
|
41
|
+
"check",
|
|
42
|
+
"run",
|
|
43
|
+
"reportDir",
|
|
44
|
+
],
|
|
45
|
+
} ;
|
|
46
|
+
export const qaManifestSchema = {
|
|
47
|
+
type: "object",
|
|
48
|
+
additionalProperties: false,
|
|
49
|
+
properties: {
|
|
50
|
+
contractVersion: { const: 1 },
|
|
51
|
+
language: { type: "string", minLength: 1 },
|
|
52
|
+
cases: {
|
|
53
|
+
type: "array",
|
|
54
|
+
items: {
|
|
55
|
+
type: "object",
|
|
56
|
+
additionalProperties: false,
|
|
57
|
+
properties: {
|
|
58
|
+
caseId: {
|
|
59
|
+
type: "string",
|
|
60
|
+
pattern: "^[a-zA-Z][\\w-]*\\.[a-zA-Z][\\w-]*\\.[a-zA-Z][\\w.-]*$",
|
|
61
|
+
},
|
|
62
|
+
tags: { type: "array", items: { type: "string", minLength: 1 }, uniqueItems: true },
|
|
63
|
+
suites: { type: "array", items: { type: "string", minLength: 1 }, uniqueItems: true },
|
|
64
|
+
name: { type: "string", minLength: 1 },
|
|
65
|
+
kind: { enum: ["CASE", "FLOW"] },
|
|
66
|
+
domain: { type: "string", minLength: 1 },
|
|
67
|
+
file: { type: "string", minLength: 1 },
|
|
68
|
+
selector: { type: "string", minLength: 1 },
|
|
69
|
+
endpoint: { type: "string" },
|
|
70
|
+
stubs: { type: "array", items: { type: "string", minLength: 1 }, uniqueItems: true },
|
|
71
|
+
covers: { type: "array", items: { type: "string", minLength: 1 }, uniqueItems: true },
|
|
72
|
+
},
|
|
73
|
+
required: ["caseId", "kind", "domain", "file", "selector", "stubs"],
|
|
74
|
+
},
|
|
75
|
+
minItems: 1,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
required: ["contractVersion", "language", "cases"],
|
|
79
|
+
} ;
|
|
80
|
+
export const qaSelectionSchema = {
|
|
81
|
+
type: "object",
|
|
82
|
+
additionalProperties: false,
|
|
83
|
+
properties: {
|
|
84
|
+
runId: { type: "string", minLength: 1 },
|
|
85
|
+
caseIds: { type: "array", items: { type: "string", minLength: 1 }, uniqueItems: true },
|
|
86
|
+
domains: { type: "array", items: { type: "string", minLength: 1 }, uniqueItems: true },
|
|
87
|
+
},
|
|
88
|
+
required: ["runId", "caseIds", "domains"],
|
|
89
|
+
} ;
|
|
90
|
+
|
|
91
|
+
const ajv = new Ajv({ allErrors: true });
|
|
92
|
+
const contractValidator = ajv.compile(qaContractSchema);
|
|
93
|
+
const manifestValidator = ajv.compile(qaManifestSchema);
|
|
94
|
+
const selectionValidator = ajv.compile(qaSelectionSchema);
|
|
95
|
+
export function parseQaContract(value ) {
|
|
96
|
+
if (!contractValidator(value))
|
|
97
|
+
throw new Error(`QA_CONTRACT_INVALID: ${ajv.errorsText(contractValidator.errors)}`);
|
|
98
|
+
const result = value ;
|
|
99
|
+
if (new Set(result.groups.map((g) => g.id)).size !== result.groups.length)
|
|
100
|
+
throw new Error("QA_GROUP_ID_DUPLICATE");
|
|
101
|
+
for (const key of ["doctor", "collect", "check", "run"] ) {
|
|
102
|
+
if (
|
|
103
|
+
result[key].some((v) => /[\n\r\0]/u.test(v)) ||
|
|
104
|
+
/^(?:.*[\\/])?(?:sh|bash|zsh|cmd(?:\.exe)?|powershell(?:\.exe)?)$/iu.test(result[key][0] ) ||
|
|
105
|
+
result[key].some((v) => ["&&", "||", ";", "|", ">", "<"].includes(v))
|
|
106
|
+
)
|
|
107
|
+
throw new Error("QA_COMMAND_SHELL_FORBIDDEN");
|
|
108
|
+
}
|
|
109
|
+
if (
|
|
110
|
+
/^(?:[\\/]|[a-z]:)/iu.test(result.reportDir) ||
|
|
111
|
+
result.reportDir.split(/[\\/]/u).includes("..")
|
|
112
|
+
)
|
|
113
|
+
throw new Error("QA_REPORT_DIRECTORY_INVALID");
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
export function parseQaManifest(value ) {
|
|
117
|
+
if (!manifestValidator(value))
|
|
118
|
+
throw new Error(`QA_MANIFEST_INVALID: ${ajv.errorsText(manifestValidator.errors)}`);
|
|
119
|
+
const result = value ;
|
|
120
|
+
const ids = new Set(result.cases.map((c) => c.caseId));
|
|
121
|
+
if (ids.size !== result.cases.length) throw new Error("QA_CASE_ID_DUPLICATE");
|
|
122
|
+
for (const c of result.cases)
|
|
123
|
+
if (c.covers?.some((id) => !ids.has(id))) throw new Error("QA_COVERS_UNKNOWN");
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
export function parseQaSelection(value ) {
|
|
127
|
+
if (!selectionValidator(value))
|
|
128
|
+
throw new Error(`QA_SELECTION_INVALID: ${ajv.errorsText(selectionValidator.errors)}`);
|
|
129
|
+
return value ;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export function validateTestGroup(
|
|
133
|
+
groups ,
|
|
134
|
+
manifest ,
|
|
135
|
+
groupId ,
|
|
136
|
+
environment ,
|
|
137
|
+
caseIds ,
|
|
138
|
+
) {
|
|
139
|
+
const group = groups.find((g) => g.id === groupId);
|
|
140
|
+
if (!group) throw new Error("测试分组不存在,请刷新目录");
|
|
141
|
+
if (!group.environments.includes(environment)) throw new Error("所选环境不属于测试分组");
|
|
142
|
+
if (!caseIds.length) throw new Error("请选择用例后运行");
|
|
143
|
+
const invalid = caseIds.filter(
|
|
144
|
+
(id) => !manifest.cases.some((c) => c.caseId === id && c.domain === groupId),
|
|
145
|
+
);
|
|
146
|
+
if (invalid.length)
|
|
147
|
+
throw new Error(`用例不存在或不属于所选测试分组,请刷新目录:${invalid.join("、")}`);
|
|
148
|
+
}
|
|
149
|
+
export function validateTestCatalog(groups , manifest ) {
|
|
150
|
+
if (!new Ajv().validate(qaTestGroupsSchema, groups)) throw new Error("QA_GROUPS_INVALID");
|
|
151
|
+
if (new Set(groups.map((g) => g.id)).size !== groups.length)
|
|
152
|
+
throw new Error("QA_GROUP_ID_DUPLICATE");
|
|
153
|
+
const suites = new Map ();
|
|
154
|
+
for (const c of manifest.cases) {
|
|
155
|
+
if (!groups.some((g) => g.id === c.domain))
|
|
156
|
+
throw new Error(`用例 ${c.caseId} 的测试分组未声明`);
|
|
157
|
+
for (const suite of c.suites ?? []) {
|
|
158
|
+
if (suites.has(suite) && suites.get(suite) !== c.domain)
|
|
159
|
+
throw new Error(`套件 ${suite} 跨测试分组`);
|
|
160
|
+
suites.set(suite, c.domain);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export { parseQaHttpExchange, parseQaEvidenceReferences } from "./qa-http-validation.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qa-contract.js","sourceRoot":"","sources":["../src/qa-contract.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
|