@arizeai/phoenix-cli 1.8.1 → 1.9.0
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 +34 -0
- package/build/cli.d.ts.map +1 -1
- package/build/cli.js +2 -1
- package/build/cli.js.map +1 -1
- package/build/client.d.ts +5 -1
- package/build/client.d.ts.map +1 -1
- package/build/client.js +2 -1
- package/build/client.js.map +1 -1
- package/build/commands/annotationConfig.d.ts.map +1 -1
- package/build/commands/annotationConfig.js.map +1 -1
- package/build/commands/{annotationMutationUtils.d.ts → annotationMutations.d.ts} +1 -1
- package/build/commands/annotationMutations.d.ts.map +1 -0
- package/build/commands/{annotationMutationUtils.js → annotationMutations.js} +1 -1
- package/build/commands/annotationMutations.js.map +1 -0
- package/build/commands/api.d.ts.map +1 -1
- package/build/commands/api.js.map +1 -1
- package/build/commands/auth.d.ts +1 -1
- package/build/commands/auth.d.ts.map +1 -1
- package/build/commands/auth.js +6 -12
- package/build/commands/auth.js.map +1 -1
- package/build/commands/dataset.d.ts.map +1 -1
- package/build/commands/dataset.js.map +1 -1
- package/build/commands/docs.d.ts +51 -0
- package/build/commands/docs.d.ts.map +1 -1
- package/build/commands/docs.js +86 -37
- package/build/commands/docs.js.map +1 -1
- package/build/commands/experiment.d.ts.map +1 -1
- package/build/commands/experiment.js.map +1 -1
- package/build/commands/fetchSpanAnnotations.d.ts +14 -0
- package/build/commands/fetchSpanAnnotations.d.ts.map +1 -0
- package/build/commands/fetchSpanAnnotations.js +57 -0
- package/build/commands/fetchSpanAnnotations.js.map +1 -0
- package/build/commands/fetchTraceAnnotations.d.ts +14 -0
- package/build/commands/fetchTraceAnnotations.d.ts.map +1 -0
- package/build/commands/fetchTraceAnnotations.js +57 -0
- package/build/commands/fetchTraceAnnotations.js.map +1 -0
- package/build/commands/formatAnnotationMutation.d.ts +1 -1
- package/build/commands/formatAnnotationMutation.d.ts.map +1 -1
- package/build/commands/formatNoteMutation.d.ts +1 -1
- package/build/commands/formatNoteMutation.d.ts.map +1 -1
- package/build/commands/formatSetup.d.ts +50 -0
- package/build/commands/formatSetup.d.ts.map +1 -0
- package/build/commands/formatSetup.js +64 -0
- package/build/commands/formatSetup.js.map +1 -0
- package/build/commands/index.d.ts +4 -3
- package/build/commands/index.d.ts.map +1 -1
- package/build/commands/index.js +4 -3
- package/build/commands/index.js.map +1 -1
- package/build/commands/{noteMutationUtils.d.ts → noteMutations.d.ts} +1 -1
- package/build/commands/noteMutations.d.ts.map +1 -0
- package/build/commands/{noteMutationUtils.js → noteMutations.js} +1 -1
- package/build/commands/noteMutations.js.map +1 -0
- package/build/commands/options.d.ts +248 -0
- package/build/commands/options.d.ts.map +1 -0
- package/build/commands/options.js +16 -0
- package/build/commands/options.js.map +1 -0
- package/build/commands/profile.d.ts.map +1 -1
- package/build/commands/profile.js +3 -11
- package/build/commands/profile.js.map +1 -1
- package/build/commands/project.d.ts.map +1 -1
- package/build/commands/project.js +0 -1
- package/build/commands/project.js.map +1 -1
- package/build/commands/prompt.d.ts.map +1 -1
- package/build/commands/prompt.js.map +1 -1
- package/build/commands/self.d.ts.map +1 -1
- package/build/commands/self.js.map +1 -1
- package/build/commands/session.d.ts.map +1 -1
- package/build/commands/session.js +4 -4
- package/build/commands/session.js.map +1 -1
- package/build/commands/{sessionAnnotationsCommand.d.ts → sessionAnnotations.d.ts} +1 -1
- package/build/commands/sessionAnnotations.d.ts.map +1 -0
- package/build/commands/{sessionAnnotationsCommand.js → sessionAnnotations.js} +1 -1
- package/build/commands/sessionAnnotations.js.map +1 -0
- package/build/commands/setup.d.ts +19 -0
- package/build/commands/setup.d.ts.map +1 -0
- package/build/commands/setup.js +245 -0
- package/build/commands/setup.js.map +1 -0
- package/build/commands/span.d.ts.map +1 -1
- package/build/commands/span.js +5 -5
- package/build/commands/span.js.map +1 -1
- package/build/commands/spanAnnotations.d.ts +6 -13
- package/build/commands/spanAnnotations.d.ts.map +1 -1
- package/build/commands/spanAnnotations.js +154 -47
- package/build/commands/spanAnnotations.js.map +1 -1
- package/build/commands/trace.d.ts.map +1 -1
- package/build/commands/trace.js +6 -6
- package/build/commands/trace.js.map +1 -1
- package/build/commands/traceAnnotations.d.ts +6 -13
- package/build/commands/traceAnnotations.d.ts.map +1 -1
- package/build/commands/traceAnnotations.js +157 -47
- package/build/commands/traceAnnotations.js.map +1 -1
- package/build/curl.d.ts +17 -0
- package/build/curl.d.ts.map +1 -1
- package/build/curl.js.map +1 -1
- package/build/optionParsers.d.ts +12 -0
- package/build/optionParsers.d.ts.map +1 -1
- package/build/optionParsers.js +15 -0
- package/build/optionParsers.js.map +1 -1
- package/build/pxi/App.d.ts.map +1 -1
- package/build/pxi/App.js +4 -0
- package/build/pxi/App.js.map +1 -1
- package/build/pxi/options.d.ts +98 -0
- package/build/pxi/options.d.ts.map +1 -1
- package/build/pxi/options.js.map +1 -1
- package/build/settings.d.ts.map +1 -1
- package/build/settings.js +4 -0
- package/build/settings.js.map +1 -1
- package/build/setup/agents/registry.d.ts +78 -0
- package/build/setup/agents/registry.d.ts.map +1 -0
- package/build/setup/agents/registry.js +129 -0
- package/build/setup/agents/registry.js.map +1 -0
- package/build/setup/copy.d.ts +167 -0
- package/build/setup/copy.d.ts.map +1 -0
- package/build/setup/copy.js +290 -0
- package/build/setup/copy.js.map +1 -0
- package/build/setup/deps/buildDefaultDeps.d.ts +13 -0
- package/build/setup/deps/buildDefaultDeps.d.ts.map +1 -0
- package/build/setup/deps/buildDefaultDeps.js +29 -0
- package/build/setup/deps/buildDefaultDeps.js.map +1 -0
- package/build/setup/deps/clipboard.d.ts +12 -0
- package/build/setup/deps/clipboard.d.ts.map +1 -0
- package/build/setup/deps/clipboard.js +30 -0
- package/build/setup/deps/clipboard.js.map +1 -0
- package/build/setup/deps/clock.d.ts +10 -0
- package/build/setup/deps/clock.d.ts.map +1 -0
- package/build/setup/deps/clock.js +11 -0
- package/build/setup/deps/clock.js.map +1 -0
- package/build/setup/deps/context.d.ts +28 -0
- package/build/setup/deps/context.d.ts.map +1 -0
- package/build/setup/deps/context.js +24 -0
- package/build/setup/deps/context.js.map +1 -0
- package/build/setup/deps/docs.d.ts +41 -0
- package/build/setup/deps/docs.d.ts.map +1 -0
- package/build/setup/deps/docs.js +33 -0
- package/build/setup/deps/docs.js.map +1 -0
- package/build/setup/deps/index.d.ts +42 -0
- package/build/setup/deps/index.d.ts.map +1 -0
- package/build/setup/deps/index.js +16 -0
- package/build/setup/deps/index.js.map +1 -0
- package/build/setup/deps/phoenixClient.d.ts +22 -0
- package/build/setup/deps/phoenixClient.d.ts.map +1 -0
- package/build/setup/deps/phoenixClient.js +17 -0
- package/build/setup/deps/phoenixClient.js.map +1 -0
- package/build/setup/deps/processes.d.ts +28 -0
- package/build/setup/deps/processes.d.ts.map +1 -0
- package/build/setup/deps/processes.js +58 -0
- package/build/setup/deps/processes.js.map +1 -0
- package/build/setup/deps/prompter.d.ts +42 -0
- package/build/setup/deps/prompter.d.ts.map +1 -0
- package/build/setup/deps/prompter.js +10 -0
- package/build/setup/deps/prompter.js.map +1 -0
- package/build/setup/errors.d.ts +27 -0
- package/build/setup/errors.d.ts.map +1 -0
- package/build/setup/errors.js +36 -0
- package/build/setup/errors.js.map +1 -0
- package/build/setup/options.d.ts +113 -0
- package/build/setup/options.d.ts.map +1 -0
- package/build/setup/options.js +63 -0
- package/build/setup/options.js.map +1 -0
- package/build/setup/prompts/instrumentationPrompt.d.ts +42 -0
- package/build/setup/prompts/instrumentationPrompt.d.ts.map +1 -0
- package/build/setup/prompts/instrumentationPrompt.js +64 -0
- package/build/setup/prompts/instrumentationPrompt.js.map +1 -0
- package/build/setup/runSetup.d.ts +45 -0
- package/build/setup/runSetup.d.ts.map +1 -0
- package/build/setup/runSetup.js +212 -0
- package/build/setup/runSetup.js.map +1 -0
- package/build/setup/steps/chooseEndpoint.d.ts +36 -0
- package/build/setup/steps/chooseEndpoint.d.ts.map +1 -0
- package/build/setup/steps/chooseEndpoint.js +125 -0
- package/build/setup/steps/chooseEndpoint.js.map +1 -0
- package/build/setup/steps/confirmGitSafety.d.ts +17 -0
- package/build/setup/steps/confirmGitSafety.d.ts.map +1 -0
- package/build/setup/steps/confirmGitSafety.js +73 -0
- package/build/setup/steps/confirmGitSafety.js.map +1 -0
- package/build/setup/steps/establishConnection.d.ts +29 -0
- package/build/setup/steps/establishConnection.d.ts.map +1 -0
- package/build/setup/steps/establishConnection.js +143 -0
- package/build/setup/steps/establishConnection.js.map +1 -0
- package/build/setup/steps/installTooling.d.ts +28 -0
- package/build/setup/steps/installTooling.d.ts.map +1 -0
- package/build/setup/steps/installTooling.js +79 -0
- package/build/setup/steps/installTooling.js.map +1 -0
- package/build/setup/steps/instrumentApp.d.ts +41 -0
- package/build/setup/steps/instrumentApp.d.ts.map +1 -0
- package/build/setup/steps/instrumentApp.js +131 -0
- package/build/setup/steps/instrumentApp.js.map +1 -0
- package/build/setup/steps/offerPxProfile.d.ts +20 -0
- package/build/setup/steps/offerPxProfile.d.ts.map +1 -0
- package/build/setup/steps/offerPxProfile.js +95 -0
- package/build/setup/steps/offerPxProfile.js.map +1 -0
- package/build/setup/steps/prefetchDocs.d.ts +24 -0
- package/build/setup/steps/prefetchDocs.d.ts.map +1 -0
- package/build/setup/steps/prefetchDocs.js +49 -0
- package/build/setup/steps/prefetchDocs.js.map +1 -0
- package/build/setup/steps/verifyTraces.d.ts +44 -0
- package/build/setup/steps/verifyTraces.d.ts.map +1 -0
- package/build/setup/steps/verifyTraces.js +119 -0
- package/build/setup/steps/verifyTraces.js.map +1 -0
- package/build/setup/steps/writeEnvFile.d.ts +19 -0
- package/build/setup/steps/writeEnvFile.d.ts.map +1 -0
- package/build/setup/steps/writeEnvFile.js +50 -0
- package/build/setup/steps/writeEnvFile.js.map +1 -0
- package/build/setup/ui/clackPrompter.d.ts +11 -0
- package/build/setup/ui/clackPrompter.d.ts.map +1 -0
- package/build/setup/ui/clackPrompter.js +107 -0
- package/build/setup/ui/clackPrompter.js.map +1 -0
- package/build/setup/ui/selectBoolean.d.ts +18 -0
- package/build/setup/ui/selectBoolean.d.ts.map +1 -0
- package/build/setup/ui/selectBoolean.js +14 -0
- package/build/setup/ui/selectBoolean.js.map +1 -0
- package/build/setup/util/gitignoreCoverage.d.ts +24 -0
- package/build/setup/util/gitignoreCoverage.d.ts.map +1 -0
- package/build/setup/util/gitignoreCoverage.js +43 -0
- package/build/setup/util/gitignoreCoverage.js.map +1 -0
- package/build/setup/util/paths.d.ts +6 -0
- package/build/setup/util/paths.d.ts.map +1 -0
- package/build/setup/util/paths.js +23 -0
- package/build/setup/util/paths.js.map +1 -0
- package/build/setup/util/redact.d.ts +12 -0
- package/build/setup/util/redact.d.ts.map +1 -0
- package/build/setup/util/redact.js +31 -0
- package/build/setup/util/redact.js.map +1 -0
- package/build/validation/endpoint.d.ts +19 -0
- package/build/validation/endpoint.d.ts.map +1 -0
- package/build/validation/endpoint.js +39 -0
- package/build/validation/endpoint.js.map +1 -0
- package/package.json +15 -12
- package/build/commands/annotationMutationUtils.d.ts.map +0 -1
- package/build/commands/annotationMutationUtils.js.map +0 -1
- package/build/commands/noteMutationUtils.d.ts.map +0 -1
- package/build/commands/noteMutationUtils.js.map +0 -1
- package/build/commands/sessionAnnotationsCommand.d.ts.map +0 -1
- package/build/commands/sessionAnnotationsCommand.js.map +0 -1
- package/build/commands/spanAnnotationsCommand.d.ts +0 -7
- package/build/commands/spanAnnotationsCommand.d.ts.map +0 -1
- package/build/commands/spanAnnotationsCommand.js +0 -164
- package/build/commands/spanAnnotationsCommand.js.map +0 -1
- package/build/commands/traceAnnotationsCommand.d.ts +0 -7
- package/build/commands/traceAnnotationsCommand.d.ts.map +0 -1
- package/build/commands/traceAnnotationsCommand.js +0 -167
- package/build/commands/traceAnnotationsCommand.js.map +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The composition root: the one place the capability contracts meet their
|
|
3
|
+
* real, system-backed implementations. Kept separate from the contract
|
|
4
|
+
* barrel (`index.ts`) so modules the wiring depends on — like the clack
|
|
5
|
+
* prompter — can themselves import contracts from `../deps` without forming
|
|
6
|
+
* a cycle.
|
|
7
|
+
*/
|
|
8
|
+
import { createClackPrompter } from "../ui/clackPrompter.js";
|
|
9
|
+
import { createSystemClipboardWriter } from "./clipboard.js";
|
|
10
|
+
import { createSystemClock } from "./clock.js";
|
|
11
|
+
import { captureRunContext } from "./context.js";
|
|
12
|
+
import { fetchDocs } from "./docs.js";
|
|
13
|
+
import { createPhoenixClientFactory } from "./phoenixClient.js";
|
|
14
|
+
import { createSystemProcessRunner } from "./processes.js";
|
|
15
|
+
export function buildDefaultDeps({ apiUrl, } = {}) {
|
|
16
|
+
const processes = createSystemProcessRunner();
|
|
17
|
+
return {
|
|
18
|
+
context: captureRunContext(),
|
|
19
|
+
prompter: createClackPrompter(),
|
|
20
|
+
processes,
|
|
21
|
+
clock: createSystemClock(),
|
|
22
|
+
// The clipboard is itself composed from the process runner: pbcopy & co
|
|
23
|
+
// are subprocesses.
|
|
24
|
+
writeClipboard: createSystemClipboardWriter(processes.exec),
|
|
25
|
+
createClient: createPhoenixClientFactory({ apiUrl }),
|
|
26
|
+
fetchDocs,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=buildDefaultDeps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildDefaultDeps.js","sourceRoot":"","sources":["../../../src/setup/deps/buildDefaultDeps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,GACP,GAGG,EAAE;IACJ,MAAM,SAAS,GAAG,yBAAyB,EAAE,CAAC;IAC9C,OAAO;QACL,OAAO,EAAE,iBAAiB,EAAE;QAC5B,QAAQ,EAAE,mBAAmB,EAAE;QAC/B,SAAS;QACT,KAAK,EAAE,iBAAiB,EAAE;QAC1B,wEAAwE;QACxE,oBAAoB;QACpB,cAAc,EAAE,2BAA2B,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3D,YAAY,EAAE,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;QACpD,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The clipboard capability. The system implementation is composed from the
|
|
3
|
+
* process runner — pbcopy & co are subprocesses, not a second effect channel.
|
|
4
|
+
*/
|
|
5
|
+
import type { ProcessRunner } from "./processes.js";
|
|
6
|
+
/**
|
|
7
|
+
* Write text to the system clipboard. Resolves false on failure — callers
|
|
8
|
+
* fall back to printing the text.
|
|
9
|
+
*/
|
|
10
|
+
export type ClipboardWriter = (text: string) => Promise<boolean>;
|
|
11
|
+
export declare function createSystemClipboardWriter(exec: ProcessRunner["exec"]): ClipboardWriter;
|
|
12
|
+
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../src/setup/deps/clipboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjE,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAC1B,eAAe,CAwBjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The clipboard capability. The system implementation is composed from the
|
|
3
|
+
* process runner — pbcopy & co are subprocesses, not a second effect channel.
|
|
4
|
+
*/
|
|
5
|
+
import * as process from "node:process";
|
|
6
|
+
export function createSystemClipboardWriter(exec) {
|
|
7
|
+
return async (text) => {
|
|
8
|
+
const platform = process.platform;
|
|
9
|
+
const candidates = platform === "darwin"
|
|
10
|
+
? [{ command: "pbcopy", args: [], stdin: text }]
|
|
11
|
+
: platform === "win32"
|
|
12
|
+
? [{ command: "clip", args: [], stdin: text }]
|
|
13
|
+
: [
|
|
14
|
+
{ command: "wl-copy", args: [], stdin: text },
|
|
15
|
+
{
|
|
16
|
+
command: "xclip",
|
|
17
|
+
args: ["-selection", "clipboard"],
|
|
18
|
+
stdin: text,
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
for (const candidate of candidates) {
|
|
22
|
+
const result = await exec(candidate);
|
|
23
|
+
if (result.exitCode === 0) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../src/setup/deps/clipboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAUxC,MAAM,UAAU,2BAA2B,CACzC,IAA2B;IAE3B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,MAAM,UAAU,GACd,QAAQ,KAAK,QAAQ;YACnB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAChD,CAAC,CAAC,QAAQ,KAAK,OAAO;gBACpB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC9C,CAAC,CAAC;oBACE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;oBAC7C;wBACE,OAAO,EAAE,OAAO;wBAChB,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;wBACjC,KAAK,EAAE,IAAI;qBACZ;iBACF,CAAC;QACV,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The time capability: reading the clock and waiting on it. Injectable so
|
|
3
|
+
* trace-verification polling tests run instantly against a scripted clock.
|
|
4
|
+
*/
|
|
5
|
+
export interface Clock {
|
|
6
|
+
now(): number;
|
|
7
|
+
sleep(ms: number): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare function createSystemClock(): Clock;
|
|
10
|
+
//# sourceMappingURL=clock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../../src/setup/deps/clock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,KAAK;IACpB,GAAG,IAAI,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,wBAAgB,iBAAiB,IAAI,KAAK,CAKzC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The time capability: reading the clock and waiting on it. Injectable so
|
|
3
|
+
* trace-verification polling tests run instantly against a scripted clock.
|
|
4
|
+
*/
|
|
5
|
+
export function createSystemClock() {
|
|
6
|
+
return {
|
|
7
|
+
now: () => Date.now(),
|
|
8
|
+
sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=clock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.js","sourceRoot":"","sources":["../../../src/setup/deps/clock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACrB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;KACjE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ambient facts of a run, captured once at startup.
|
|
3
|
+
*
|
|
4
|
+
* Plain data, not behavior: steps read these values, they never call through
|
|
5
|
+
* them. Keeping the snapshot in one place is what stops `process.env` and
|
|
6
|
+
* `process.cwd()` reads from leaking into steps.
|
|
7
|
+
*/
|
|
8
|
+
export interface RunContext {
|
|
9
|
+
cwd: string;
|
|
10
|
+
env: Record<string, string | undefined>;
|
|
11
|
+
/**
|
|
12
|
+
* How PATH is spelled in {@link env}. `process.env` resolves names
|
|
13
|
+
* case-insensitively on Windows, where the variable is conventionally
|
|
14
|
+
* "Path"; the plain copy below is an ordinary object and does not, so the
|
|
15
|
+
* spelling is resolved once here rather than by each reader. Read PATH as
|
|
16
|
+
* `env[pathKey]`, and when overriding it for a child process use this key —
|
|
17
|
+
* spawning with "PATH" while the inherited environment carries "Path" hands
|
|
18
|
+
* the child two of them.
|
|
19
|
+
*/
|
|
20
|
+
pathKey: string;
|
|
21
|
+
stdinIsTTY: boolean;
|
|
22
|
+
/** Override the px settings file location (tests only). */
|
|
23
|
+
settingsPath?: string;
|
|
24
|
+
}
|
|
25
|
+
/** The key PATH is spelled under, or "PATH" when the env carries none. */
|
|
26
|
+
export declare function resolvePathKey(env: Record<string, string | undefined>): string;
|
|
27
|
+
export declare function captureRunContext(): RunContext;
|
|
28
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/setup/deps/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,MAAM,CAER;AAED,wBAAgB,iBAAiB,IAAI,UAAU,CAU9C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ambient facts of a run, captured once at startup.
|
|
3
|
+
*
|
|
4
|
+
* Plain data, not behavior: steps read these values, they never call through
|
|
5
|
+
* them. Keeping the snapshot in one place is what stops `process.env` and
|
|
6
|
+
* `process.cwd()` reads from leaking into steps.
|
|
7
|
+
*/
|
|
8
|
+
import * as process from "node:process";
|
|
9
|
+
/** The key PATH is spelled under, or "PATH" when the env carries none. */
|
|
10
|
+
export function resolvePathKey(env) {
|
|
11
|
+
return Object.keys(env).find((key) => key.toUpperCase() === "PATH") ?? "PATH";
|
|
12
|
+
}
|
|
13
|
+
export function captureRunContext() {
|
|
14
|
+
// Copied, not aliased — a mid-run mutation of process.env (a spawned
|
|
15
|
+
// tool, a late dotenv load) must not change what this run resolved.
|
|
16
|
+
const env = { ...process.env };
|
|
17
|
+
return {
|
|
18
|
+
cwd: process.cwd(),
|
|
19
|
+
env,
|
|
20
|
+
pathKey: resolvePathKey(env),
|
|
21
|
+
stdinIsTTY: Boolean(process.stdin.isTTY),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/setup/deps/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAoBxC,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAC5B,GAAuC;IAEvC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG;QACH,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC;QAC5B,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The docs-prefetch capability: the network+fs seam for the docs step.
|
|
3
|
+
*/
|
|
4
|
+
export { unknownWorkflowWarning } from "../../commands/docs.js";
|
|
5
|
+
export interface DocsPrefetchOptions {
|
|
6
|
+
/** --no-docs turns the prefetch off; it is on by default. */
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
/** --workflow: repeatable workflow filter; defaults to the docs defaults. */
|
|
9
|
+
workflows?: string[];
|
|
10
|
+
/** --refresh-docs: clear the output directory before downloading. */
|
|
11
|
+
refresh?: boolean;
|
|
12
|
+
/** --workers: concurrent downloads. */
|
|
13
|
+
workers?: number;
|
|
14
|
+
}
|
|
15
|
+
/** What the docs prefetch actually wrote — reported in the setup summary. */
|
|
16
|
+
export interface DocsPrefetchResult {
|
|
17
|
+
outputDir: string;
|
|
18
|
+
workflows: string[];
|
|
19
|
+
written: number;
|
|
20
|
+
/** Pages the docs site did not serve; the agent falls back to the web for these. */
|
|
21
|
+
failed: number;
|
|
22
|
+
/** Paths the step appended to a .gitignore, folded into the setup report. */
|
|
23
|
+
gitignoreAppended?: string[];
|
|
24
|
+
/** `--workflow` names that aren't recognized — surfaced as a warning. */
|
|
25
|
+
unknownWorkflows?: string[];
|
|
26
|
+
/**
|
|
27
|
+
* Whether the docs directory holds pages the agent can read — which is not
|
|
28
|
+
* the same as `written > 0`. A re-run whose downloads all fail still leaves
|
|
29
|
+
* the previous run's tree in place, and the agent should be pointed at that
|
|
30
|
+
* rather than back at a docs site that has just failed us.
|
|
31
|
+
*/
|
|
32
|
+
hasPagesOnDisk: boolean;
|
|
33
|
+
}
|
|
34
|
+
export type DocsFetcher = (options: DocsPrefetchOptions) => Promise<DocsPrefetchResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Download the docs the same way `px docs fetch` does, into the same
|
|
37
|
+
* `.px/docs` directory, so a user who later runs the command by hand refreshes
|
|
38
|
+
* the tree setup already laid down.
|
|
39
|
+
*/
|
|
40
|
+
export declare function fetchDocs(options: DocsPrefetchOptions): Promise<DocsPrefetchResult>;
|
|
41
|
+
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/setup/deps/docs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAiB7B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The docs-prefetch capability: the network+fs seam for the docs step.
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
5
|
+
import { DEFAULT_OUTPUT_DIR, DEFAULT_WORKERS, downloadDocs, fetchDocsIndex, filterByWorkflows, resolveWorkflows, } from "../../commands/docs.js";
|
|
6
|
+
// This module is setup's only door onto the docs command, so the warning the
|
|
7
|
+
// prefetch step prints for a bad `--workflow` comes through here rather than
|
|
8
|
+
// the step reaching into `commands/` for it.
|
|
9
|
+
export { unknownWorkflowWarning } from "../../commands/docs.js";
|
|
10
|
+
/**
|
|
11
|
+
* Download the docs the same way `px docs fetch` does, into the same
|
|
12
|
+
* `.px/docs` directory, so a user who later runs the command by hand refreshes
|
|
13
|
+
* the tree setup already laid down.
|
|
14
|
+
*/
|
|
15
|
+
export async function fetchDocs(options) {
|
|
16
|
+
const { workflows, unknown } = resolveWorkflows(options.workflows);
|
|
17
|
+
const entries = filterByWorkflows(await fetchDocsIndex(), workflows);
|
|
18
|
+
const outputDir = DEFAULT_OUTPUT_DIR;
|
|
19
|
+
const { succeeded, failed } = await downloadDocs(entries, {
|
|
20
|
+
outputDir,
|
|
21
|
+
workers: options.workers ?? DEFAULT_WORKERS,
|
|
22
|
+
refresh: options.refresh,
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
outputDir,
|
|
26
|
+
workflows,
|
|
27
|
+
written: succeeded.length,
|
|
28
|
+
failed: failed.length,
|
|
29
|
+
unknownWorkflows: unknown,
|
|
30
|
+
hasPagesOnDisk: existsSync(outputDir) && readdirSync(outputDir).length > 0,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/setup/deps/docs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,6EAA6E;AAC7E,6EAA6E;AAC7E,6CAA6C;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAqC7D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAA4B;IAE5B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,cAAc,EAAE,EAAE,SAAS,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,kBAAkB,CAAC;IACrC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE;QACxD,SAAS;QACT,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,OAAO;QACL,SAAS;QACT,SAAS;QACT,OAAO,EAAE,SAAS,CAAC,MAAM;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,OAAO;QACzB,cAAc,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;KAC3E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency seam for setup.
|
|
3
|
+
*
|
|
4
|
+
* Every side effect setup performs — env access, network, subprocesses,
|
|
5
|
+
* clipboard, time — goes through `SetupDeps`. No other module under `setup/`
|
|
6
|
+
* may touch `process.env`, `fetch`, `child_process`, or the clipboard
|
|
7
|
+
* directly. This is what makes setup unit-testable with fakes.
|
|
8
|
+
*
|
|
9
|
+
* Each capability's contract (and, where it is a few lines of system glue,
|
|
10
|
+
* its real implementation) lives in its own module in this directory. This
|
|
11
|
+
* barrel re-exports the contracts so consumers address the seam as one
|
|
12
|
+
* module; it exports types only, so importing it can never form a runtime
|
|
13
|
+
* cycle. The wiring lives in `buildDefaultDeps.ts`.
|
|
14
|
+
*/
|
|
15
|
+
import type { ClipboardWriter } from "./clipboard.js";
|
|
16
|
+
import type { Clock } from "./clock.js";
|
|
17
|
+
import type { RunContext } from "./context.js";
|
|
18
|
+
import type { DocsFetcher } from "./docs.js";
|
|
19
|
+
import type { PhoenixClientFactory } from "./phoenixClient.js";
|
|
20
|
+
import type { ProcessRunner } from "./processes.js";
|
|
21
|
+
import type { Prompter } from "./prompter.js";
|
|
22
|
+
export interface SetupDeps {
|
|
23
|
+
/** Ambient facts of the run — data steps read, never call. */
|
|
24
|
+
context: RunContext;
|
|
25
|
+
/** Real: clack-backed ui/clackPrompter.ts; tests: scripted answers. */
|
|
26
|
+
prompter: Prompter;
|
|
27
|
+
processes: ProcessRunner;
|
|
28
|
+
clock: Clock;
|
|
29
|
+
writeClipboard: ClipboardWriter;
|
|
30
|
+
/** Typed Phoenix client; tests inject a fake transport beneath it. */
|
|
31
|
+
createClient: PhoenixClientFactory;
|
|
32
|
+
fetchDocs: DocsFetcher;
|
|
33
|
+
}
|
|
34
|
+
export type { ClipboardWriter } from "./clipboard.js";
|
|
35
|
+
export type { Clock } from "./clock.js";
|
|
36
|
+
export type { RunContext } from "./context.js";
|
|
37
|
+
export { unknownWorkflowWarning } from "./docs.js";
|
|
38
|
+
export type { DocsFetcher, DocsPrefetchOptions, DocsPrefetchResult, } from "./docs.js";
|
|
39
|
+
export type { PhoenixClientArgs, PhoenixClientFactory } from "./phoenixClient.js";
|
|
40
|
+
export type { CommandSpec, ExecResult, ProcessRunner } from "./processes.js";
|
|
41
|
+
export type { Prompter, SelectOption } from "./prompter.js";
|
|
42
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/setup/deps/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,8DAA8D;IAC9D,OAAO,EAAE,UAAU,CAAC;IACpB,uEAAuE;IACvE,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,eAAe,CAAC;IAChC,sEAAsE;IACtE,YAAY,EAAE,oBAAoB,CAAC;IACnC,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAChD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,QAAQ,CAAC;AAChB,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1E,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency seam for setup.
|
|
3
|
+
*
|
|
4
|
+
* Every side effect setup performs — env access, network, subprocesses,
|
|
5
|
+
* clipboard, time — goes through `SetupDeps`. No other module under `setup/`
|
|
6
|
+
* may touch `process.env`, `fetch`, `child_process`, or the clipboard
|
|
7
|
+
* directly. This is what makes setup unit-testable with fakes.
|
|
8
|
+
*
|
|
9
|
+
* Each capability's contract (and, where it is a few lines of system glue,
|
|
10
|
+
* its real implementation) lives in its own module in this directory. This
|
|
11
|
+
* barrel re-exports the contracts so consumers address the seam as one
|
|
12
|
+
* module; it exports types only, so importing it can never form a runtime
|
|
13
|
+
* cycle. The wiring lives in `buildDefaultDeps.ts`.
|
|
14
|
+
*/
|
|
15
|
+
export { unknownWorkflowWarning } from "./docs.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/setup/deps/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA0BH,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Phoenix API capability: a factory for typed clients, so steps never
|
|
3
|
+
* construct one from ambient config. Tests inject a fake transport beneath
|
|
4
|
+
* the same real client.
|
|
5
|
+
*/
|
|
6
|
+
import type { PhoenixClient } from "@arizeai/phoenix-client";
|
|
7
|
+
export interface PhoenixClientArgs {
|
|
8
|
+
/** Normalized origin, no trailing slash. */
|
|
9
|
+
endpoint: string;
|
|
10
|
+
/** Omitted for the unauthenticated auth probe. */
|
|
11
|
+
apiKey?: string;
|
|
12
|
+
}
|
|
13
|
+
export type PhoenixClientFactory = (args: PhoenixClientArgs) => PhoenixClient;
|
|
14
|
+
/**
|
|
15
|
+
* `apiUrl` is the hidden `--api-url` dev override: it reroutes setup's own
|
|
16
|
+
* API traffic while user-facing values — hand-off files, px profile, traces
|
|
17
|
+
* URLs — keep the endpoint the user chose.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createPhoenixClientFactory({ apiUrl, }?: {
|
|
20
|
+
apiUrl?: string;
|
|
21
|
+
}): PhoenixClientFactory;
|
|
22
|
+
//# sourceMappingURL=phoenixClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phoenixClient.d.ts","sourceRoot":"","sources":["../../../src/setup/deps/phoenixClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,iBAAiB,KAAK,aAAa,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,MAAM,GACP,GAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GAAG,oBAAoB,CAK5B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Phoenix API capability: a factory for typed clients, so steps never
|
|
3
|
+
* construct one from ambient config. Tests inject a fake transport beneath
|
|
4
|
+
* the same real client.
|
|
5
|
+
*/
|
|
6
|
+
import { createPhoenixClient } from "../../client.js";
|
|
7
|
+
/**
|
|
8
|
+
* `apiUrl` is the hidden `--api-url` dev override: it reroutes setup's own
|
|
9
|
+
* API traffic while user-facing values — hand-off files, px profile, traces
|
|
10
|
+
* URLs — keep the endpoint the user chose.
|
|
11
|
+
*/
|
|
12
|
+
export function createPhoenixClientFactory({ apiUrl, } = {}) {
|
|
13
|
+
return ({ endpoint, apiKey }) => createPhoenixClient({
|
|
14
|
+
config: { endpoint: apiUrl ?? endpoint, apiKey },
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=phoenixClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phoenixClient.js","sourceRoot":"","sources":["../../../src/setup/deps/phoenixClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAWnD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,EACzC,MAAM,GACP,GAEG,EAAE;IACJ,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAC9B,mBAAmB,CAAC;QAClB,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,EAAE;KACjD,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The subprocess capability: one-shot probes (git checks, agent detection)
|
|
3
|
+
* and the interactive agent hand-off share these contracts and this runner.
|
|
4
|
+
*/
|
|
5
|
+
export interface CommandSpec {
|
|
6
|
+
command: string;
|
|
7
|
+
args: string[];
|
|
8
|
+
stdin?: string;
|
|
9
|
+
env?: Record<string, string>;
|
|
10
|
+
cwd?: string;
|
|
11
|
+
/** Kill the child and resolve non-zero once this many ms elapse. */
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ExecResult {
|
|
15
|
+
exitCode: number;
|
|
16
|
+
stdout: string;
|
|
17
|
+
stderr: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ProcessRunner {
|
|
20
|
+
/** One-shot subprocess (git, probes). Never throws on non-zero exit. */
|
|
21
|
+
exec(spec: CommandSpec): Promise<ExecResult>;
|
|
22
|
+
/** Interactive subprocess with inherited stdio (agent hand-off). */
|
|
23
|
+
spawnInteractive(spec: CommandSpec): Promise<{
|
|
24
|
+
exitCode: number;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
export declare function createSystemProcessRunner(): ProcessRunner;
|
|
28
|
+
//# sourceMappingURL=processes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../../src/setup/deps/processes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,oEAAoE;IACpE,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpE;AAiDD,wBAAgB,yBAAyB,IAAI,aAAa,CAKzD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The subprocess capability: one-shot probes (git checks, agent detection)
|
|
3
|
+
* and the interactive agent hand-off share these contracts and this runner.
|
|
4
|
+
*/
|
|
5
|
+
import * as process from "node:process";
|
|
6
|
+
// cross-spawn resolves .cmd/.bat shims on Windows (npm, npx, agent CLIs),
|
|
7
|
+
// where node's bare spawn fails with ENOENT unless given a shell.
|
|
8
|
+
import spawn from "cross-spawn";
|
|
9
|
+
function execOnce(spec) {
|
|
10
|
+
return new Promise((resolve) => {
|
|
11
|
+
const child = spawn(spec.command, spec.args, {
|
|
12
|
+
cwd: spec.cwd,
|
|
13
|
+
env: spec.env ? { ...process.env, ...spec.env } : process.env,
|
|
14
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
15
|
+
// Kills the child on expiry — a hung probe must not leave an orphaned
|
|
16
|
+
// subprocess behind. Surfaces as a non-zero exit via `close`.
|
|
17
|
+
timeout: spec.timeoutMs,
|
|
18
|
+
});
|
|
19
|
+
let stdout = "";
|
|
20
|
+
let stderr = "";
|
|
21
|
+
child.stdout?.on("data", (chunk) => {
|
|
22
|
+
stdout += chunk.toString("utf-8");
|
|
23
|
+
});
|
|
24
|
+
child.stderr?.on("data", (chunk) => {
|
|
25
|
+
stderr += chunk.toString("utf-8");
|
|
26
|
+
});
|
|
27
|
+
child.on("error", (error) => {
|
|
28
|
+
// Command not found and similar spawn failures surface as a non-zero
|
|
29
|
+
// exit with the message on stderr rather than a throw.
|
|
30
|
+
resolve({ exitCode: 127, stdout, stderr: String(error) });
|
|
31
|
+
});
|
|
32
|
+
child.on("close", (code) => {
|
|
33
|
+
resolve({ exitCode: code ?? 1, stdout, stderr });
|
|
34
|
+
});
|
|
35
|
+
if (spec.stdin !== undefined) {
|
|
36
|
+
child.stdin?.write(spec.stdin);
|
|
37
|
+
}
|
|
38
|
+
child.stdin?.end();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function spawnInteractiveChild(spec) {
|
|
42
|
+
return new Promise((resolve) => {
|
|
43
|
+
const child = spawn(spec.command, spec.args, {
|
|
44
|
+
cwd: spec.cwd,
|
|
45
|
+
env: spec.env ? { ...process.env, ...spec.env } : process.env,
|
|
46
|
+
stdio: "inherit",
|
|
47
|
+
});
|
|
48
|
+
child.on("error", () => resolve({ exitCode: 127 }));
|
|
49
|
+
child.on("close", (code) => resolve({ exitCode: code ?? 1 }));
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
export function createSystemProcessRunner() {
|
|
53
|
+
return {
|
|
54
|
+
exec: execOnce,
|
|
55
|
+
spawnInteractive: spawnInteractiveChild,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=processes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processes.js","sourceRoot":"","sources":["../../../src/setup/deps/processes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The prompting capability: every question setup asks — selects, text,
|
|
3
|
+
* masked secrets — and every line it narrates between them.
|
|
4
|
+
*
|
|
5
|
+
* Contract only. The real terminal implementation is `ui/clackPrompter.ts`
|
|
6
|
+
* (kept with the rest of the UI, since rendering rules live there); tests
|
|
7
|
+
* script answers through `scriptedPrompter`.
|
|
8
|
+
*/
|
|
9
|
+
export interface SelectOption<T> {
|
|
10
|
+
value: T;
|
|
11
|
+
label: string;
|
|
12
|
+
hint?: string;
|
|
13
|
+
/** Rendered unselectable with the reason appended to the label. */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface Prompter {
|
|
17
|
+
/** Throws SetupCancelledError on Ctrl-C / Escape. */
|
|
18
|
+
select<T>(args: {
|
|
19
|
+
message: string;
|
|
20
|
+
options: Array<SelectOption<T>>;
|
|
21
|
+
}): Promise<T>;
|
|
22
|
+
/** Throws SetupCancelledError on Ctrl-C / Escape. */
|
|
23
|
+
textInput(args: {
|
|
24
|
+
message: string;
|
|
25
|
+
defaultValue?: string;
|
|
26
|
+
validate?: (value: string) => string | undefined;
|
|
27
|
+
}): Promise<string>;
|
|
28
|
+
/** Masked input for secrets. Throws SetupCancelledError on Ctrl-C / Escape. */
|
|
29
|
+
passwordInput(args: {
|
|
30
|
+
message: string;
|
|
31
|
+
validate?: (value: string) => string | undefined;
|
|
32
|
+
}): Promise<string>;
|
|
33
|
+
/** Non-interactive display of a block of text between prompts. */
|
|
34
|
+
note(message: string, title?: string): void;
|
|
35
|
+
/** One-line status/warning between prompts (stderr). */
|
|
36
|
+
line(message: string): void;
|
|
37
|
+
/** Open the setup session frame. */
|
|
38
|
+
intro(message: string): void;
|
|
39
|
+
/** Close the setup session frame. */
|
|
40
|
+
outro(message: string): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=prompter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompter.d.ts","sourceRoot":"","sources":["../../../src/setup/deps/prompter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,qDAAqD;IACrD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;KACjC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACf,qDAAqD;IACrD,SAAS,CAAC,IAAI,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;KAClD,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,+EAA+E;IAC/E,aAAa,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;KAClD,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,kEAAkE;IAClE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,wDAAwD;IACxD,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qCAAqC;IACrC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The prompting capability: every question setup asks — selects, text,
|
|
3
|
+
* masked secrets — and every line it narrates between them.
|
|
4
|
+
*
|
|
5
|
+
* Contract only. The real terminal implementation is `ui/clackPrompter.ts`
|
|
6
|
+
* (kept with the rest of the UI, since rendering rules live there); tests
|
|
7
|
+
* script answers through `scriptedPrompter`.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=prompter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompter.js","sourceRoot":"","sources":["../../../src/setup/deps/prompter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed errors for setup.
|
|
3
|
+
*
|
|
4
|
+
* `SetupCancelledError` is thrown by the prompter whenever the user cancels
|
|
5
|
+
* (Ctrl-C / Escape on any prompt) and unwinds the whole of setup to a single
|
|
6
|
+
* catch site in the command handler, which prints the support outro and
|
|
7
|
+
* exits with `ExitCode.CANCELLED`.
|
|
8
|
+
*/
|
|
9
|
+
export declare class SetupCancelledError extends Error {
|
|
10
|
+
constructor();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Thrown when input supplied via flags or environment variables is missing
|
|
14
|
+
* (headless mode) or invalid (any mode). Carries the exact remediation text
|
|
15
|
+
* so the command handler can print it and exit `INVALID_ARGUMENT`.
|
|
16
|
+
*/
|
|
17
|
+
export declare class HeadlessInputError extends Error {
|
|
18
|
+
constructor(message: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Thrown when a step fails in a way setup cannot recover from
|
|
22
|
+
* (e.g. headless dirty git tree). Exits `FAILURE`.
|
|
23
|
+
*/
|
|
24
|
+
export declare class SetupFatalError extends Error {
|
|
25
|
+
constructor(message: string);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/setup/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,cAGC;CACF;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed errors for setup.
|
|
3
|
+
*
|
|
4
|
+
* `SetupCancelledError` is thrown by the prompter whenever the user cancels
|
|
5
|
+
* (Ctrl-C / Escape on any prompt) and unwinds the whole of setup to a single
|
|
6
|
+
* catch site in the command handler, which prints the support outro and
|
|
7
|
+
* exits with `ExitCode.CANCELLED`.
|
|
8
|
+
*/
|
|
9
|
+
export class SetupCancelledError extends Error {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("Setup cancelled by user");
|
|
12
|
+
this.name = "SetupCancelledError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Thrown when input supplied via flags or environment variables is missing
|
|
17
|
+
* (headless mode) or invalid (any mode). Carries the exact remediation text
|
|
18
|
+
* so the command handler can print it and exit `INVALID_ARGUMENT`.
|
|
19
|
+
*/
|
|
20
|
+
export class HeadlessInputError extends Error {
|
|
21
|
+
constructor(message) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = "HeadlessInputError";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Thrown when a step fails in a way setup cannot recover from
|
|
28
|
+
* (e.g. headless dirty git tree). Exits `FAILURE`.
|
|
29
|
+
*/
|
|
30
|
+
export class SetupFatalError extends Error {
|
|
31
|
+
constructor(message) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = "SetupFatalError";
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/setup/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
|