@jeger-ai/opengantry 1.1.0 → 1.1.2
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 +4 -3
- package/dist/cli/commands/arch.js +7 -7
- package/dist/cli/commands/arch.js.map +1 -1
- package/dist/cli/commands/doctor.js +2 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.js +4 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/legislate.d.ts +1 -20
- package/dist/cli/commands/legislate.d.ts.map +1 -1
- package/dist/cli/commands/legislate.js +1 -142
- package/dist/cli/commands/legislate.js.map +1 -1
- package/dist/cli/commands/metrics.js +2 -2
- package/dist/cli/commands/metrics.js.map +1 -1
- package/dist/cli/commands/onboarding.d.ts.map +1 -1
- package/dist/cli/commands/onboarding.js +5 -3
- package/dist/cli/commands/onboarding.js.map +1 -1
- package/dist/cli/commands/runtime.js +3 -3
- package/dist/cli/commands/runtime.js.map +1 -1
- package/dist/cli/commands/upgrade.js +3 -3
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +27 -71
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/lib/architecture-pointer-doctor.d.ts.map +1 -1
- package/dist/cli/lib/architecture-pointer-doctor.js +4 -3
- package/dist/cli/lib/architecture-pointer-doctor.js.map +1 -1
- package/dist/cli/lib/architecture-pointer-schema.d.ts.map +1 -1
- package/dist/cli/lib/architecture-pointer-schema.js +2 -1
- package/dist/cli/lib/architecture-pointer-schema.js.map +1 -1
- package/dist/cli/lib/audience-output.d.ts +1 -0
- package/dist/cli/lib/audience-output.d.ts.map +1 -1
- package/dist/cli/lib/audience-output.js +13 -0
- package/dist/cli/lib/audience-output.js.map +1 -1
- package/dist/cli/lib/break-glass-flow.d.ts +18 -0
- package/dist/cli/lib/break-glass-flow.d.ts.map +1 -0
- package/dist/cli/lib/break-glass-flow.js +29 -0
- package/dist/cli/lib/break-glass-flow.js.map +1 -0
- package/dist/cli/lib/cli-io.d.ts +8 -1
- package/dist/cli/lib/cli-io.d.ts.map +1 -1
- package/dist/cli/lib/cli-io.js +17 -2
- package/dist/cli/lib/cli-io.js.map +1 -1
- package/dist/cli/lib/command-reporter.d.ts +31 -0
- package/dist/cli/lib/command-reporter.d.ts.map +1 -0
- package/dist/cli/lib/command-reporter.js +100 -0
- package/dist/cli/lib/command-reporter.js.map +1 -0
- package/dist/cli/lib/doctor-integration-checks.d.ts.map +1 -1
- package/dist/cli/lib/doctor-integration-checks.js +2 -1
- package/dist/cli/lib/doctor-integration-checks.js.map +1 -1
- package/dist/cli/lib/draft-token.d.ts.map +1 -1
- package/dist/cli/lib/draft-token.js +3 -2
- package/dist/cli/lib/draft-token.js.map +1 -1
- package/dist/cli/lib/fix-hints.d.ts +0 -24
- package/dist/cli/lib/fix-hints.d.ts.map +1 -1
- package/dist/cli/lib/fix-hints.js +1 -74
- package/dist/cli/lib/fix-hints.js.map +1 -1
- package/dist/cli/lib/forbidden-scan.d.ts.map +1 -1
- package/dist/cli/lib/forbidden-scan.js +2 -2
- package/dist/cli/lib/forbidden-scan.js.map +1 -1
- package/dist/cli/lib/git-proof.d.ts.map +1 -1
- package/dist/cli/lib/git-proof.js +3 -2
- package/dist/cli/lib/git-proof.js.map +1 -1
- package/dist/cli/lib/git-repo.d.ts +9 -2
- package/dist/cli/lib/git-repo.d.ts.map +1 -1
- package/dist/cli/lib/git-repo.js +5 -4
- package/dist/cli/lib/git-repo.js.map +1 -1
- package/dist/cli/lib/gxt-error-codes.d.ts +1 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +2 -0
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/init-tutorial.d.ts.map +1 -1
- package/dist/cli/lib/init-tutorial.js +10 -15
- package/dist/cli/lib/init-tutorial.js.map +1 -1
- package/dist/cli/lib/legislate-core.d.ts +21 -0
- package/dist/cli/lib/legislate-core.d.ts.map +1 -0
- package/dist/cli/lib/legislate-core.js +144 -0
- package/dist/cli/lib/legislate-core.js.map +1 -0
- package/dist/cli/lib/mcp-legislation-draft.d.ts +6 -0
- package/dist/cli/lib/mcp-legislation-draft.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation-draft.js +62 -0
- package/dist/cli/lib/mcp-legislation-draft.js.map +1 -0
- package/dist/cli/lib/mcp-legislation-execute.d.ts +6 -0
- package/dist/cli/lib/mcp-legislation-execute.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation-execute.js +43 -0
- package/dist/cli/lib/mcp-legislation-execute.js.map +1 -0
- package/dist/cli/lib/mcp-legislation-mission.d.ts +12 -0
- package/dist/cli/lib/mcp-legislation-mission.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation-mission.js +82 -0
- package/dist/cli/lib/mcp-legislation-mission.js.map +1 -0
- package/dist/cli/lib/mcp-legislation-types.d.ts +68 -0
- package/dist/cli/lib/mcp-legislation-types.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation-types.js +4 -0
- package/dist/cli/lib/mcp-legislation-types.js.map +1 -0
- package/dist/cli/lib/mcp-legislation.d.ts +4 -81
- package/dist/cli/lib/mcp-legislation.d.ts.map +1 -1
- package/dist/cli/lib/mcp-legislation.js +3 -180
- package/dist/cli/lib/mcp-legislation.js.map +1 -1
- package/dist/cli/lib/mcp-runtime.d.ts +3 -3
- package/dist/cli/lib/mcp-runtime.d.ts.map +1 -1
- package/dist/cli/lib/mcp-runtime.js +3 -2
- package/dist/cli/lib/mcp-runtime.js.map +1 -1
- package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
- package/dist/cli/lib/mcp-upgrade.js +2 -1
- package/dist/cli/lib/mcp-upgrade.js.map +1 -1
- package/dist/cli/lib/mission-legislative-stub.d.ts.map +1 -1
- package/dist/cli/lib/mission-legislative-stub.js +3 -2
- package/dist/cli/lib/mission-legislative-stub.js.map +1 -1
- package/dist/cli/lib/mission-markdown.d.ts.map +1 -1
- package/dist/cli/lib/mission-markdown.js +2 -1
- package/dist/cli/lib/mission-markdown.js.map +1 -1
- package/dist/cli/lib/mission-yaml.d.ts +6 -0
- package/dist/cli/lib/mission-yaml.d.ts.map +1 -1
- package/dist/cli/lib/mission-yaml.js +6 -1
- package/dist/cli/lib/mission-yaml.js.map +1 -1
- package/dist/cli/lib/prompts-loader.d.ts +3 -0
- package/dist/cli/lib/prompts-loader.d.ts.map +1 -0
- package/dist/cli/lib/prompts-loader.js +5 -0
- package/dist/cli/lib/prompts-loader.js.map +1 -0
- package/dist/cli/lib/runtime-env.d.ts.map +1 -1
- package/dist/cli/lib/runtime-env.js +3 -2
- package/dist/cli/lib/runtime-env.js.map +1 -1
- package/dist/cli/lib/runtime-exec-orchestrator.d.ts.map +1 -1
- package/dist/cli/lib/runtime-exec-orchestrator.js +2 -1
- package/dist/cli/lib/runtime-exec-orchestrator.js.map +1 -1
- package/dist/cli/lib/start-orchestration.js +1 -1
- package/dist/cli/lib/start-orchestration.js.map +1 -1
- package/dist/cli/lib/substrate-version.d.ts.map +1 -1
- package/dist/cli/lib/substrate-version.js +4 -3
- package/dist/cli/lib/substrate-version.js.map +1 -1
- package/dist/cli/lib/teacher-identity.d.ts.map +1 -1
- package/dist/cli/lib/teacher-identity.js +4 -3
- package/dist/cli/lib/teacher-identity.js.map +1 -1
- package/dist/cli/lib/trace-evidence.d.ts +2 -11
- package/dist/cli/lib/trace-evidence.d.ts.map +1 -1
- package/dist/cli/lib/trace-evidence.js +19 -49
- package/dist/cli/lib/trace-evidence.js.map +1 -1
- package/dist/cli/lib/trace-status.d.ts +7 -0
- package/dist/cli/lib/trace-status.d.ts.map +1 -0
- package/dist/cli/lib/trace-status.js +20 -0
- package/dist/cli/lib/trace-status.js.map +1 -0
- package/dist/cli/lib/trace.d.ts +9 -0
- package/dist/cli/lib/trace.d.ts.map +1 -1
- package/dist/cli/lib/trace.js +47 -4
- package/dist/cli/lib/trace.js.map +1 -1
- package/dist/cli/lib/types.d.ts +2 -1
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-apply.js +11 -11
- package/dist/cli/lib/upgrade-apply.js.map +1 -1
- package/dist/cli/lib/upgrade-plan.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-plan.js +12 -10
- package/dist/cli/lib/upgrade-plan.js.map +1 -1
- package/dist/cli/lib/user-error.js +2 -2
- package/dist/cli/lib/user-error.js.map +1 -1
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +61 -50
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-failure-presentation.d.ts +3 -4
- package/dist/cli/lib/verify-failure-presentation.d.ts.map +1 -1
- package/dist/cli/lib/verify-failure-presentation.js +8 -45
- package/dist/cli/lib/verify-failure-presentation.js.map +1 -1
- package/dist/cli/lib/verify-present.d.ts +20 -0
- package/dist/cli/lib/verify-present.d.ts.map +1 -0
- package/dist/cli/lib/verify-present.js +123 -0
- package/dist/cli/lib/verify-present.js.map +1 -0
- package/dist/cli/lib/verify-remediation.d.ts +30 -0
- package/dist/cli/lib/verify-remediation.d.ts.map +1 -0
- package/dist/cli/lib/verify-remediation.js +122 -0
- package/dist/cli/lib/verify-remediation.js.map +1 -0
- package/dist/cli/lib/verify-result-payload.d.ts +5 -2
- package/dist/cli/lib/verify-result-payload.d.ts.map +1 -1
- package/dist/cli/lib/verify-result-payload.js +29 -7
- package/dist/cli/lib/verify-result-payload.js.map +1 -1
- package/dist/cli/lib/verify-run.d.ts +10 -0
- package/dist/cli/lib/verify-run.d.ts.map +1 -0
- package/dist/cli/lib/verify-run.js +52 -0
- package/dist/cli/lib/verify-run.js.map +1 -0
- package/dist/cli/lib/version.gen.d.ts +1 -1
- package/dist/cli/lib/version.gen.js +1 -1
- package/dist/cli/program-arch.js +2 -2
- package/dist/cli/program-arch.js.map +1 -1
- package/dist/cli/program-workflow.js +2 -2
- package/dist/cli/program-workflow.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/lib/verify-flow.d.ts +0 -23
- package/dist/cli/lib/verify-flow.d.ts.map +0 -1
- package/dist/cli/lib/verify-flow.js +0 -113
- package/dist/cli/lib/verify-flow.js.map +0 -1
- package/dist/cli/lib/verify-repair.d.ts +0 -4
- package/dist/cli/lib/verify-repair.d.ts.map +0 -1
- package/dist/cli/lib/verify-repair.js +0 -63
- package/dist/cli/lib/verify-repair.js.map +0 -1
|
@@ -1,90 +1,46 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { emitVerifyJson
|
|
5
|
-
import { runVerifyWithFix } from "../lib/verify-repair.js";
|
|
6
|
-
import { buildVerifyResultPayload, buildVerifyResultPayloadFromOptions, initFailurePayload, } from "../lib/verify-result-payload.js";
|
|
1
|
+
import { setExitCode } from "../lib/cli-io.js";
|
|
2
|
+
import { parseMissionFile } from "../lib/mission-parser.js";
|
|
3
|
+
import { initFailurePayload } from "../lib/verify-result-payload.js";
|
|
4
|
+
import { emitVerifyJson } from "../lib/verify-present.js";
|
|
7
5
|
import { evaluateVerifyPhases } from "../lib/verify-engine.js";
|
|
8
6
|
import { loadWorkspace } from "../lib/workspace.js";
|
|
9
|
-
import { reportUserFacingError } from "../lib/user-error.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const missionRel = path.relative(root, path.resolve(mission.rawPath)).split(path.sep).join("/");
|
|
15
|
-
const commitSha = runBreakGlassAudit(root, {
|
|
16
|
-
reason,
|
|
17
|
-
msnId: mission.msnId,
|
|
18
|
-
missionFile: missionRel,
|
|
19
|
-
commit: options.breakGlassCommit,
|
|
20
|
-
auditCommit: options.auditCommit === true,
|
|
21
|
-
});
|
|
22
|
-
const payload = {
|
|
23
|
-
status: "passed",
|
|
24
|
-
phase: "break_glass",
|
|
25
|
-
exit_code: 0,
|
|
26
|
-
msn_id: mission.msnId ?? undefined,
|
|
27
|
-
mission_file_path: missionRel,
|
|
28
|
-
message: reason,
|
|
29
|
-
audit_commit: commitSha,
|
|
30
|
-
};
|
|
31
|
-
emitVerifyJson(payload);
|
|
32
|
-
}
|
|
33
|
-
catch (e) {
|
|
34
|
-
emitVerifyJson(initFailurePayload(e));
|
|
7
|
+
import { GapmanUserError, reportUserFacingError } from "../lib/user-error.js";
|
|
8
|
+
import { runVerifyCore } from "../lib/verify-run.js";
|
|
9
|
+
function assertVerifyOptionsCompatible(options) {
|
|
10
|
+
if (options.json === true && options.fix === true) {
|
|
11
|
+
throw new GapmanUserError("INVALID_ARGUMENT", "The --fix flag cannot be used with --json. Automated repair is not supported in structured output mode.", undefined, 2);
|
|
35
12
|
}
|
|
36
13
|
}
|
|
37
14
|
export async function runVerify(options) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
emitVerifyJson(initFailurePayload(e));
|
|
47
|
-
}
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
const fixOptions = options.fix === true ? { ...options, fixNonInteractive: true } : options;
|
|
51
|
-
if (fixOptions.fix === true) {
|
|
52
|
-
await runVerifyWithFixJson(fixOptions);
|
|
15
|
+
try {
|
|
16
|
+
assertVerifyOptionsCompatible(options);
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
if (options.json) {
|
|
20
|
+
const payload = initFailurePayload(e);
|
|
21
|
+
emitVerifyJson(payload, options);
|
|
22
|
+
setExitCode(payload.exit_code);
|
|
53
23
|
return;
|
|
54
24
|
}
|
|
55
|
-
|
|
25
|
+
reportUserFacingError(e);
|
|
56
26
|
return;
|
|
57
27
|
}
|
|
58
28
|
try {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (options.breakGlass === true) {
|
|
63
|
-
runVerifyBreakGlass(root, mission, options);
|
|
64
|
-
return;
|
|
29
|
+
const result = await runVerifyCore(options);
|
|
30
|
+
if (!result.ok) {
|
|
31
|
+
setExitCode(result.exitCode);
|
|
65
32
|
}
|
|
66
|
-
assertMissionGatePresent(mission);
|
|
67
|
-
if (options.fix === true) {
|
|
68
|
-
await runVerifyWithFix(root, mission, missionArg, options);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
runVerifyPhasesFromEngine(root, mission, missionArg, options);
|
|
72
33
|
}
|
|
73
34
|
catch (e) {
|
|
35
|
+
if (options.json) {
|
|
36
|
+
const payload = initFailurePayload(e);
|
|
37
|
+
emitVerifyJson(payload, options);
|
|
38
|
+
setExitCode(payload.exit_code);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
74
41
|
reportUserFacingError(e);
|
|
75
42
|
}
|
|
76
43
|
}
|
|
77
|
-
async function runVerifyWithFixJson(options) {
|
|
78
|
-
try {
|
|
79
|
-
const { root, manifest } = loadWorkspace();
|
|
80
|
-
const mission = parseMissionFile(root, options.mission);
|
|
81
|
-
assertMissionGatePresent(mission);
|
|
82
|
-
emitVerifyJson(buildVerifyResultPayload(root, manifest, mission, options.mission, options));
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
emitVerifyJson(initFailurePayload(e));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
44
|
/** Exposed for tests that need silent phase evaluation without fix wrapper. */
|
|
89
45
|
export function evaluateVerifyForMission(options) {
|
|
90
46
|
const { root, manifest } = loadWorkspace();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,SAAS,6BAA6B,CAAC,OAAsB;IAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,yGAAyG,EACzG,SAAS,EACT,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,IAAI,CAAC;QACH,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACtC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACtC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,wBAAwB,CAAC,OAAsB;IAC7D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-pointer-doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer-doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"architecture-pointer-doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer-doctor.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAuErD,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA6CjF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { errorMessage, fromPosix } from "./cli-io.js";
|
|
3
4
|
import { REL_ARCHITECTURE_POINTER } from "./constants.js";
|
|
4
5
|
import { loadArchitectureCredential, } from "./architecture-credential.js";
|
|
5
6
|
import { architecturePointerPath, loadArchitecturePointer, } from "./architecture-pointer-schema.js";
|
|
@@ -9,7 +10,7 @@ function doctorCheckArchitectureAccess(repoRoot, pointer) {
|
|
|
9
10
|
if (!pointer.access?.required)
|
|
10
11
|
return lines;
|
|
11
12
|
const skillRel = resolveArchitectureAccessSkill(pointer);
|
|
12
|
-
const skillAbs = path.join(repoRoot, skillRel
|
|
13
|
+
const skillAbs = path.join(repoRoot, fromPosix(skillRel));
|
|
13
14
|
if (!fs.existsSync(skillAbs)) {
|
|
14
15
|
lines.push({ level: "warn", message: `architecture access skill missing: ${skillRel}` });
|
|
15
16
|
}
|
|
@@ -45,7 +46,7 @@ function doctorCheckArchitectureTarget(repoRoot, pointer) {
|
|
|
45
46
|
}
|
|
46
47
|
return lines;
|
|
47
48
|
}
|
|
48
|
-
const targetAbs = path.resolve(repoRoot, pointer.location
|
|
49
|
+
const targetAbs = path.resolve(repoRoot, fromPosix(pointer.location));
|
|
49
50
|
const rootResolved = path.resolve(repoRoot);
|
|
50
51
|
if (targetAbs !== rootResolved && !targetAbs.startsWith(`${rootResolved}${path.sep}`)) {
|
|
51
52
|
lines.push({ level: "fail", message: "architecture pointer location escapes repo root" });
|
|
@@ -86,7 +87,7 @@ export function runArchitecturePointerDoctorChecks(repoRoot) {
|
|
|
86
87
|
catch (e) {
|
|
87
88
|
lines.push({
|
|
88
89
|
level: "fail",
|
|
89
|
-
message:
|
|
90
|
+
message: errorMessage(e),
|
|
90
91
|
});
|
|
91
92
|
return lines;
|
|
92
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-pointer-doctor.js","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,qCAAqC,CAAC;AAI7C,SAAS,6BAA6B,CAAC,QAAgB,EAAE,OAA4B;IACnF,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,QAAQ,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"architecture-pointer-doctor.js","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer-doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-pointer-schema.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer-schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"architecture-pointer-schema.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer-schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAIzC,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AA4ED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAwC7E;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAY7E"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { fromPosix } from "./cli-io.js";
|
|
3
4
|
import { REL_ARCHITECTURE_POINTER } from "./constants.js";
|
|
4
5
|
import { ARCHITECTURE_POINTER_SCHEMA_VERSION, } from "./architecture-pointer-types.js";
|
|
5
6
|
const VALID_KINDS = new Set(["file", "directory", "external", "unset"]);
|
|
6
7
|
export function architecturePointerPath(repoRoot) {
|
|
7
|
-
return path.join(repoRoot, REL_ARCHITECTURE_POINTER
|
|
8
|
+
return path.join(repoRoot, fromPosix(REL_ARCHITECTURE_POINTER));
|
|
8
9
|
}
|
|
9
10
|
function validateDiscovery(raw) {
|
|
10
11
|
if (raw == null || typeof raw !== "object") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-pointer-schema.js","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,mCAAmC,GAKpC,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7F,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"architecture-pointer-schema.js","sourceRoot":"","sources":["../../../src/cli/lib/architecture-pointer-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export interface AudienceNextStep {
|
|
|
13
13
|
audience: OutputAudience;
|
|
14
14
|
step: string;
|
|
15
15
|
}
|
|
16
|
+
export declare function filterTaggedStepsForAudience(audience: OutputAudience | undefined, tagged: AudienceNextStep[]): string[];
|
|
16
17
|
export declare function filterNextStepsForAudience(audience: OutputAudience | undefined, steps: string[]): string[];
|
|
17
18
|
export declare function audienceSectionTitle(audience: OutputAudience | undefined): string | null;
|
|
18
19
|
//# sourceMappingURL=audience-output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience-output.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/audience-output.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAS5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAOjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,CAQlB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CASjG;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"audience-output.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/audience-output.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAS5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAOjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,CAQlB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CASjG;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AA4BD,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,MAAM,EAAE,gBAAgB,EAAE,GACzB,MAAM,EAAE,CAMV;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,EAAE,CAQV;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CASxF"}
|
|
@@ -53,8 +53,21 @@ function stepMatchesAudience(step, audience) {
|
|
|
53
53
|
return /gapman verify/i.test(step);
|
|
54
54
|
case "platform":
|
|
55
55
|
return /hooksPath|gapman doctor|gapman init/i.test(step);
|
|
56
|
+
default: {
|
|
57
|
+
const _exhaustive = audience;
|
|
58
|
+
return _exhaustive;
|
|
59
|
+
}
|
|
56
60
|
}
|
|
57
61
|
}
|
|
62
|
+
export function filterTaggedStepsForAudience(audience, tagged) {
|
|
63
|
+
if (!audience)
|
|
64
|
+
return tagged.map((t) => t.step);
|
|
65
|
+
const filtered = [...new Set(tagged.filter((t) => t.audience === audience).map((t) => t.step))];
|
|
66
|
+
if (filtered.length > 0)
|
|
67
|
+
return filtered;
|
|
68
|
+
const roleDefaults = DEFAULT_NEXT_STEPS.filter((s) => s.audience === audience).map((s) => s.step);
|
|
69
|
+
return roleDefaults.length > 0 ? roleDefaults : tagged.map((t) => t.step);
|
|
70
|
+
}
|
|
58
71
|
export function filterNextStepsForAudience(audience, steps) {
|
|
59
72
|
if (!audience)
|
|
60
73
|
return steps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience-output.js","sourceRoot":"","sources":["../../../src/cli/lib/audience-output.ts"],"names":[],"mappings":"AAGA,MAAM,eAAe,GAA8B;IACjD,QAAQ;IACR,SAAS;IACT,UAAU;IACV,UAAU;CACX,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,GAAuB;IACnD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAmB,CAAC,EAAE,CAAC;QAClD,OAAO,CAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAC7B,MAAe,EACf,MAAe;IAEf,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3B,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,QAAoC;IACvF,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,MAAM,kBAAkB,GAAuB;IAC7C,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,8DAA8D,EAAE;IAC7F,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,0EAA0E,EAAE;IACzG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,yEAAyE,EAAE;IACvG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,uCAAuC,EAAE;IACrE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,wDAAwD,EAAE;IACxF,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,sDAAsD,EAAE;CACvF,CAAC;AAEF,SAAS,mBAAmB,CAAC,IAAY,EAAE,QAAwB;IACjE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,KAAK,QAAQ;YACX,OAAO,+EAA+E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpG,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,UAAU;YACb,OAAO,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"audience-output.js","sourceRoot":"","sources":["../../../src/cli/lib/audience-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ParsedMission } from "./types.js";
|
|
2
|
+
import type { VerifyOptions } from "./verify-types.js";
|
|
3
|
+
export interface BreakGlassAuditOk {
|
|
4
|
+
kind: "ok";
|
|
5
|
+
missionRel: string;
|
|
6
|
+
commitSha: string;
|
|
7
|
+
reason: string;
|
|
8
|
+
msnId?: string;
|
|
9
|
+
auditCommit: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface BreakGlassAuditFail {
|
|
12
|
+
kind: "fail";
|
|
13
|
+
error: unknown;
|
|
14
|
+
}
|
|
15
|
+
export type BreakGlassAuditOutcome = BreakGlassAuditOk | BreakGlassAuditFail;
|
|
16
|
+
/** Single break-glass audit path shared by human and JSON presenters. */
|
|
17
|
+
export declare function runBreakGlassAuditFlow(root: string, mission: ParsedMission, options: VerifyOptions): BreakGlassAuditOutcome;
|
|
18
|
+
//# sourceMappingURL=break-glass-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"break-glass-flow.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/break-glass-flow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAE7E,yEAAyE;AACzE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,GACrB,sBAAsB,CAuBxB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { assertBypassSecretAuthorized, runBreakGlassAudit, validateBreakGlassReason, } from "./break-glass.js";
|
|
2
|
+
import { toPosixRel } from "./cli-io.js";
|
|
3
|
+
/** Single break-glass audit path shared by human and JSON presenters. */
|
|
4
|
+
export function runBreakGlassAuditFlow(root, mission, options) {
|
|
5
|
+
try {
|
|
6
|
+
const reason = validateBreakGlassReason(options.breakGlassReason);
|
|
7
|
+
assertBypassSecretAuthorized(root);
|
|
8
|
+
const missionRel = toPosixRel(root, mission.rawPath);
|
|
9
|
+
const commitSha = runBreakGlassAudit(root, {
|
|
10
|
+
reason,
|
|
11
|
+
msnId: mission.msnId,
|
|
12
|
+
missionFile: missionRel,
|
|
13
|
+
commit: options.breakGlassCommit,
|
|
14
|
+
auditCommit: options.auditCommit === true,
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
kind: "ok",
|
|
18
|
+
missionRel,
|
|
19
|
+
commitSha,
|
|
20
|
+
reason,
|
|
21
|
+
msnId: mission.msnId ?? undefined,
|
|
22
|
+
auditCommit: options.auditCommit === true,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return { kind: "fail", error };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=break-glass-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"break-glass-flow.js","sourceRoot":"","sources":["../../../src/cli/lib/break-glass-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoBzC,yEAAyE;AACzE,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,OAAsB,EACtB,OAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE;YACzC,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,OAAO,CAAC,gBAAgB;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;SAC1C,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,IAAI;YACV,UAAU;YACV,SAAS;YACT,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACjC,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;SAC1C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
package/dist/cli/lib/cli-io.d.ts
CHANGED
|
@@ -3,7 +3,14 @@ export declare function logWarn(message: string): void;
|
|
|
3
3
|
export declare function logError(message: string): void;
|
|
4
4
|
/** Red stderr for existing managed-asset conflicts (respects NO_COLOR). */
|
|
5
5
|
export declare function logManagedAssetConflicts(conflicts: string[]): void;
|
|
6
|
-
/**
|
|
6
|
+
/** POSIX repo-relative path (stable across platforms). */
|
|
7
|
+
export declare function toPosixRel(repoRoot: string, absolutePath: string): string;
|
|
8
|
+
/** Convert a POSIX repo-relative path to native separators. */
|
|
9
|
+
export declare function fromPosix(posixPath: string): string;
|
|
10
|
+
/** Relative path for user-facing messages (POSIX-normalized). */
|
|
7
11
|
export declare function formatRepoRelative(repoRoot: string, absolutePath: string): string;
|
|
12
|
+
export declare function errorMessage(e: unknown): string;
|
|
13
|
+
/** Absolute path under repo root from a POSIX repo-relative segment. */
|
|
14
|
+
export declare function repoAbsPath(repoRoot: string, posixRel: string): string;
|
|
8
15
|
export declare function setExitCode(code: number): void;
|
|
9
16
|
//# sourceMappingURL=cli-io.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-io.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/cli-io.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAWlE;AAED,
|
|
1
|
+
{"version":3,"file":"cli-io.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/cli-io.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAWlE;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE/C;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C"}
|
package/dist/cli/lib/cli-io.js
CHANGED
|
@@ -28,9 +28,24 @@ export function logManagedAssetConflicts(conflicts) {
|
|
|
28
28
|
console.error(`${red} - ${rel}${reset}`);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
/**
|
|
31
|
+
/** POSIX repo-relative path (stable across platforms). */
|
|
32
|
+
export function toPosixRel(repoRoot, absolutePath) {
|
|
33
|
+
return path.relative(repoRoot, absolutePath).split(path.sep).join("/");
|
|
34
|
+
}
|
|
35
|
+
/** Convert a POSIX repo-relative path to native separators. */
|
|
36
|
+
export function fromPosix(posixPath) {
|
|
37
|
+
return posixPath.split("/").join(path.sep);
|
|
38
|
+
}
|
|
39
|
+
/** Relative path for user-facing messages (POSIX-normalized). */
|
|
32
40
|
export function formatRepoRelative(repoRoot, absolutePath) {
|
|
33
|
-
return
|
|
41
|
+
return toPosixRel(repoRoot, absolutePath);
|
|
42
|
+
}
|
|
43
|
+
export function errorMessage(e) {
|
|
44
|
+
return e instanceof Error ? e.message : String(e);
|
|
45
|
+
}
|
|
46
|
+
/** Absolute path under repo root from a POSIX repo-relative segment. */
|
|
47
|
+
export function repoAbsPath(repoRoot, posixRel) {
|
|
48
|
+
return path.join(repoRoot, fromPosix(posixRel));
|
|
34
49
|
}
|
|
35
50
|
export function setExitCode(code) {
|
|
36
51
|
process.exitCode = code;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-io.js","sourceRoot":"","sources":["../../../src/cli/lib/cli-io.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,cAAc,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QAAE,OAAO;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,wBAAwB,CAAC,SAAmB;IAC1D,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;IACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,CAAC,KAAK,CACX,GAAG,GAAG,GAAG,QAAQ,oEAAoE,KAAK,EAAE,CAC7F,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"cli-io.js","sourceRoot":"","sources":["../../../src/cli/lib/cli-io.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,cAAc,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QAAE,OAAO;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,wBAAwB,CAAC,SAAmB;IAC1D,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;IACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,CAAC,KAAK,CACX,GAAG,GAAG,GAAG,QAAQ,oEAAoE,KAAK,EAAE,CAC7F,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,YAAoB;IAC/D,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzE,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,YAAoB;IACvE,OAAO,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,QAAgB;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type OutputAudience } from "./audience-output.js";
|
|
2
|
+
import type { VerifyPhaseSuccess } from "./verify-engine.js";
|
|
3
|
+
import type { VerifyFailurePresentation } from "./verify-failure-presentation.js";
|
|
4
|
+
import type { VerifyResultPayload } from "./verify-result-payload.js";
|
|
5
|
+
import type { AudienceTaggedStep } from "./verify-remediation.js";
|
|
6
|
+
export type CommandReporterChannel = "human" | "json" | "silent";
|
|
7
|
+
export interface CommandReporterOptions {
|
|
8
|
+
channel?: CommandReporterChannel;
|
|
9
|
+
audience?: OutputAudience;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Unified output reporter for json / silent / audience channels.
|
|
13
|
+
* Verify sinks are the first consumer; other commands can adopt over time.
|
|
14
|
+
*/
|
|
15
|
+
export declare class CommandReporter {
|
|
16
|
+
readonly channel: CommandReporterChannel;
|
|
17
|
+
readonly audience: OutputAudience | undefined;
|
|
18
|
+
constructor(options?: CommandReporterOptions);
|
|
19
|
+
static forVerify(options: {
|
|
20
|
+
json?: boolean;
|
|
21
|
+
audience?: OutputAudience;
|
|
22
|
+
}): CommandReporter;
|
|
23
|
+
emitInfo(message: string): void;
|
|
24
|
+
emitError(message: string): void;
|
|
25
|
+
emitFixHint(hint: string): void;
|
|
26
|
+
emitJsonPayload(payload: VerifyResultPayload): void;
|
|
27
|
+
emitVerifySuccess(result: VerifyPhaseSuccess, _missionArg: string): void;
|
|
28
|
+
emitFailurePresentation(presentation: VerifyFailurePresentation): void;
|
|
29
|
+
emitNextSteps(steps: string[], tagged?: AudienceTaggedStep[]): void;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=command-reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-reporter.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/command-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC;gBAElC,OAAO,GAAE,sBAA2B;IAKhD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;KAAE,GAAG,eAAe;IAUzF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK/B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKhC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAKnD,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAwBxE,uBAAuB,CAAC,YAAY,EAAE,yBAAyB,GAAG,IAAI;IAatE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,kBAAkB,EAAE,GAAG,IAAI;CAiBpE"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { logError, logInfo } from "./cli-io.js";
|
|
2
|
+
import { audienceSectionTitle, filterTaggedStepsForAudience, formatAudienceNextStep, } from "./audience-output.js";
|
|
3
|
+
import { getOutputAudience } from "./output-context.js";
|
|
4
|
+
import { CLI_NAME } from "./constants.js";
|
|
5
|
+
import { logFixHint } from "./fix-hints.js";
|
|
6
|
+
/**
|
|
7
|
+
* Unified output reporter for json / silent / audience channels.
|
|
8
|
+
* Verify sinks are the first consumer; other commands can adopt over time.
|
|
9
|
+
*/
|
|
10
|
+
export class CommandReporter {
|
|
11
|
+
channel;
|
|
12
|
+
audience;
|
|
13
|
+
constructor(options = {}) {
|
|
14
|
+
this.channel = options.channel ?? "human";
|
|
15
|
+
this.audience = options.audience;
|
|
16
|
+
}
|
|
17
|
+
static forVerify(options) {
|
|
18
|
+
if (options.json) {
|
|
19
|
+
return new CommandReporter({ channel: "json", audience: options.audience });
|
|
20
|
+
}
|
|
21
|
+
return new CommandReporter({
|
|
22
|
+
channel: "human",
|
|
23
|
+
audience: options.audience ?? getOutputAudience(),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
emitInfo(message) {
|
|
27
|
+
if (this.channel === "silent" || this.channel === "json")
|
|
28
|
+
return;
|
|
29
|
+
logInfo(message);
|
|
30
|
+
}
|
|
31
|
+
emitError(message) {
|
|
32
|
+
if (this.channel === "silent" || this.channel === "json")
|
|
33
|
+
return;
|
|
34
|
+
logError(message);
|
|
35
|
+
}
|
|
36
|
+
emitFixHint(hint) {
|
|
37
|
+
if (this.channel === "silent" || this.channel === "json")
|
|
38
|
+
return;
|
|
39
|
+
logFixHint(hint);
|
|
40
|
+
}
|
|
41
|
+
emitJsonPayload(payload) {
|
|
42
|
+
if (this.channel === "silent")
|
|
43
|
+
return;
|
|
44
|
+
logInfo(JSON.stringify(payload, null, 2));
|
|
45
|
+
}
|
|
46
|
+
emitVerifySuccess(result, _missionArg) {
|
|
47
|
+
if (this.channel === "silent" || this.channel === "json")
|
|
48
|
+
return;
|
|
49
|
+
this.emitInfo(`${CLI_NAME} verify: git-proof OK (Teacher legislation for ${result.proofMsnId})`);
|
|
50
|
+
if (result.outcome === "pre_push_stub") {
|
|
51
|
+
this.emitInfo(`${CLI_NAME} verify: legislative stub OK (remote handoff; git-proof passed — run full verify after execution)`);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.emitInfo(`${CLI_NAME} verify: gate passed`);
|
|
55
|
+
for (const warning of result.traceWarnings) {
|
|
56
|
+
const tag = warning.autoResolved ? "auto-resolved" : "drift";
|
|
57
|
+
this.emitInfo(` trace: line ${tag} DoD ${warning.row.dodId} — declared ${String(warning.declaredLine)}, found ${String(warning.foundLine)}`);
|
|
58
|
+
}
|
|
59
|
+
if (result.traceEvidenceSkippedUncommitted !== undefined) {
|
|
60
|
+
this.emitInfo(` trace evidence: ${String(result.traceEvidenceSkippedUncommitted)} uncommitted WORKER_LOG line(s) skipped stale check`);
|
|
61
|
+
}
|
|
62
|
+
this.emitInfo(`${CLI_NAME} verify: trace mapping OK (${result.workerLogPath})`);
|
|
63
|
+
}
|
|
64
|
+
emitFailurePresentation(presentation) {
|
|
65
|
+
if (this.channel === "silent" || this.channel === "json")
|
|
66
|
+
return;
|
|
67
|
+
this.emitError(`[${presentation.error_code}] ${presentation.headline}`);
|
|
68
|
+
for (const line of presentation.detail_lines) {
|
|
69
|
+
if (line.startsWith("---"))
|
|
70
|
+
this.emitError(line);
|
|
71
|
+
else
|
|
72
|
+
this.emitError(` ${line}`);
|
|
73
|
+
}
|
|
74
|
+
for (const hint of presentation.fix_hints) {
|
|
75
|
+
this.emitFixHint(hint);
|
|
76
|
+
}
|
|
77
|
+
this.emitNextSteps(presentation.next_actions, presentation.tagged_steps);
|
|
78
|
+
}
|
|
79
|
+
emitNextSteps(steps, tagged) {
|
|
80
|
+
if (this.channel === "silent" || this.channel === "json")
|
|
81
|
+
return;
|
|
82
|
+
const audience = this.audience;
|
|
83
|
+
const filtered = tagged && tagged.length > 0
|
|
84
|
+
? filterTaggedStepsForAudience(audience, tagged)
|
|
85
|
+
: steps;
|
|
86
|
+
const formatted = filtered.map((step) => formatAudienceNextStep(step, audience));
|
|
87
|
+
const section = audienceSectionTitle(audience);
|
|
88
|
+
if (section && formatted.length > 0) {
|
|
89
|
+
logInfo(`${section}:`);
|
|
90
|
+
for (const step of formatted)
|
|
91
|
+
logInfo(` ${step}`);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
logInfo("next actions:");
|
|
95
|
+
for (const action of formatted)
|
|
96
|
+
logInfo(` ${action}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=command-reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-reporter.js","sourceRoot":"","sources":["../../../src/cli/lib/command-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-integration-checks.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/doctor-integration-checks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor-integration-checks.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/doctor-integration-checks.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiCrD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,UAAU,EAAE,CAsDd;AAED,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { errorMessage } from "./cli-io.js";
|
|
3
4
|
import { spawnSync } from "node:child_process";
|
|
4
5
|
import { INTEGRATION_IDE_KEYS, loadIntegrationCompat, integrationWizardLabel, } from "./integration-compat.js";
|
|
5
6
|
function pathExists(repoRoot, rel) {
|
|
@@ -41,7 +42,7 @@ export function runIntegrationDoctorChecks(repoRoot, templatesRoot) {
|
|
|
41
42
|
catch (e) {
|
|
42
43
|
lines.push({
|
|
43
44
|
level: "warn",
|
|
44
|
-
message: `integration compat manifest unavailable: ${
|
|
45
|
+
message: `integration compat manifest unavailable: ${errorMessage(e)}`,
|
|
45
46
|
});
|
|
46
47
|
return lines;
|
|
47
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-integration-checks.js","sourceRoot":"","sources":["../../../src/cli/lib/doctor-integration-checks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,yBAAyB,CAAC;AAGjC,SAAS,UAAU,CAAC,QAAgB,EAAE,GAAW;IAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9D,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC;QACzE,OAAO,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,IAAc;IAClD,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACxD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB,EAAE,GAAW,EAAE,KAAqF;IACpJ,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACxB,qFAAqF;QACrF,OAAO,UAAU,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,aAAqB;IAErB,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,MAAiC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,4CAA4C,
|
|
1
|
+
{"version":3,"file":"doctor-integration-checks.js","sourceRoot":"","sources":["../../../src/cli/lib/doctor-integration-checks.ts"],"names":[],"mappings":"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"}
|