@nodetool-ai/pack-manager 0.0.0-stage → 0.8.9-beta.1
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 -2
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/child-exit.d.ts +3 -0
- package/dist/child-exit.d.ts.map +1 -0
- package/dist/child-exit.js +17 -0
- package/dist/child-exit.js.map +1 -0
- package/dist/cli-feature.d.ts +30 -0
- package/dist/cli-feature.d.ts.map +1 -0
- package/dist/cli-feature.js +89 -0
- package/dist/cli-feature.js.map +1 -0
- package/dist/command-errors.d.ts +8 -0
- package/dist/command-errors.d.ts.map +1 -0
- package/dist/command-errors.js +49 -0
- package/dist/command-errors.js.map +1 -0
- package/dist/commands/authorized-pack-install.d.ts +7 -0
- package/dist/commands/authorized-pack-install.d.ts.map +1 -0
- package/dist/commands/authorized-pack-install.js +20 -0
- package/dist/commands/authorized-pack-install.js.map +1 -0
- package/dist/commands/output.d.ts +32 -0
- package/dist/commands/output.d.ts.map +1 -0
- package/dist/commands/output.js +150 -0
- package/dist/commands/output.js.map +1 -0
- package/dist/commands/pack-install-authorization.d.ts +40 -0
- package/dist/commands/pack-install-authorization.d.ts.map +1 -0
- package/dist/commands/pack-install-authorization.js +132 -0
- package/dist/commands/pack-install-authorization.js.map +1 -0
- package/dist/commands/pack-management.d.ts +26 -0
- package/dist/commands/pack-management.d.ts.map +1 -0
- package/dist/commands/pack-management.js +74 -0
- package/dist/commands/pack-management.js.map +1 -0
- package/dist/commands/packs.d.ts +5 -0
- package/dist/commands/packs.d.ts.map +1 -0
- package/dist/commands/packs.js +12 -0
- package/dist/commands/packs.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/install-lock.d.ts +12 -0
- package/dist/install-lock.d.ts.map +1 -0
- package/dist/install-lock.js +139 -0
- package/dist/install-lock.js.map +1 -0
- package/dist/npm-runner.d.ts +23 -0
- package/dist/npm-runner.d.ts.map +1 -0
- package/dist/npm-runner.js +160 -0
- package/dist/npm-runner.js.map +1 -0
- package/dist/packs/command-service.d.ts +16 -0
- package/dist/packs/command-service.d.ts.map +1 -0
- package/dist/packs/command-service.js +184 -0
- package/dist/packs/command-service.js.map +1 -0
- package/dist/packs/doctor-lock.d.ts +8 -0
- package/dist/packs/doctor-lock.d.ts.map +1 -0
- package/dist/packs/doctor-lock.js +50 -0
- package/dist/packs/doctor-lock.js.map +1 -0
- package/dist/packs/doctor.d.ts +25 -0
- package/dist/packs/doctor.d.ts.map +1 -0
- package/dist/packs/doctor.js +12 -0
- package/dist/packs/doctor.js.map +1 -0
- package/dist/packs/global-bootstrap.d.ts +11 -0
- package/dist/packs/global-bootstrap.d.ts.map +1 -0
- package/dist/packs/global-bootstrap.js +72 -0
- package/dist/packs/global-bootstrap.js.map +1 -0
- package/dist/packs/host.d.ts +12 -0
- package/dist/packs/host.d.ts.map +1 -0
- package/dist/packs/host.js +69 -0
- package/dist/packs/host.js.map +1 -0
- package/dist/packs/install-manifests.d.ts +2 -0
- package/dist/packs/install-manifests.d.ts.map +1 -0
- package/dist/packs/install-manifests.js +30 -0
- package/dist/packs/install-manifests.js.map +1 -0
- package/dist/packs/install-process.d.ts +4 -0
- package/dist/packs/install-process.d.ts.map +1 -0
- package/dist/packs/install-process.js +11 -0
- package/dist/packs/install-process.js.map +1 -0
- package/dist/packs/install-selection.d.ts +39 -0
- package/dist/packs/install-selection.d.ts.map +1 -0
- package/dist/packs/install-selection.js +67 -0
- package/dist/packs/install-selection.js.map +1 -0
- package/dist/packs/install-state.d.ts +25 -0
- package/dist/packs/install-state.d.ts.map +1 -0
- package/dist/packs/install-state.js +45 -0
- package/dist/packs/install-state.js.map +1 -0
- package/dist/packs/install-tree.d.ts +35 -0
- package/dist/packs/install-tree.d.ts.map +1 -0
- package/dist/packs/install-tree.js +253 -0
- package/dist/packs/install-tree.js.map +1 -0
- package/dist/packs/install-verification.d.ts +12 -0
- package/dist/packs/install-verification.d.ts.map +1 -0
- package/dist/packs/install-verification.js +75 -0
- package/dist/packs/install-verification.js.map +1 -0
- package/dist/packs/installed.d.ts +36 -0
- package/dist/packs/installed.d.ts.map +1 -0
- package/dist/packs/installed.js +87 -0
- package/dist/packs/installed.js.map +1 -0
- package/dist/packs/installer-load-check.d.ts +5 -0
- package/dist/packs/installer-load-check.d.ts.map +1 -0
- package/dist/packs/installer-load-check.js +98 -0
- package/dist/packs/installer-load-check.js.map +1 -0
- package/dist/packs/installer.d.ts +16 -0
- package/dist/packs/installer.d.ts.map +1 -0
- package/dist/packs/installer.js +149 -0
- package/dist/packs/installer.js.map +1 -0
- package/dist/packs/management.d.ts +51 -0
- package/dist/packs/management.d.ts.map +1 -0
- package/dist/packs/management.js +78 -0
- package/dist/packs/management.js.map +1 -0
- package/dist/packs/mode.d.ts +48 -0
- package/dist/packs/mode.d.ts.map +1 -0
- package/dist/packs/mode.js +251 -0
- package/dist/packs/mode.js.map +1 -0
- package/dist/packs/owned-replay-plan.d.ts +5 -0
- package/dist/packs/owned-replay-plan.d.ts.map +1 -0
- package/dist/packs/owned-replay-plan.js +65 -0
- package/dist/packs/owned-replay-plan.js.map +1 -0
- package/dist/packs/removal-selection.d.ts +12 -0
- package/dist/packs/removal-selection.d.ts.map +1 -0
- package/dist/packs/removal-selection.js +186 -0
- package/dist/packs/removal-selection.js.map +1 -0
- package/dist/packs/removal.d.ts +12 -0
- package/dist/packs/removal.d.ts.map +1 -0
- package/dist/packs/removal.js +144 -0
- package/dist/packs/removal.js.map +1 -0
- package/dist/packs/repair.d.ts +2 -0
- package/dist/packs/repair.d.ts.map +1 -0
- package/dist/packs/repair.js +2 -0
- package/dist/packs/repair.js.map +1 -0
- package/package.json +51 -4
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Pack manager
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Canonical authorized npm pack installation, removal, repair and CLI feature loading.
|
|
4
|
+
Catalog metadata lives in `@nodetool-ai/pack-core` so execution processes do not
|
|
5
|
+
depend on the installer.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2026-10-31T09:11:02.374Z
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child-exit.d.ts","sourceRoot":"","sources":["../src/child-exit.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,wBAAgB,aAAa,CAC3B,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,GACrE,MAAM,CAIR"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The exit code to pass on for a child run with `spawnSync`.
|
|
3
|
+
*
|
|
4
|
+
* `result.status` is null when the child was killed by a signal or never
|
|
5
|
+
* started (`result.error`), so `status ?? 0` reported a crashed or missing
|
|
6
|
+
* server as success. A signal maps to the shell's `128 + n`; anything else
|
|
7
|
+
* without a status is a failure.
|
|
8
|
+
*/
|
|
9
|
+
import { constants } from "node:os";
|
|
10
|
+
export function childExitCode(result) {
|
|
11
|
+
if (result.status !== null)
|
|
12
|
+
return result.status;
|
|
13
|
+
if (result.signal)
|
|
14
|
+
return 128 + (constants.signals[result.signal] ?? 0);
|
|
15
|
+
return 1;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=child-exit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child-exit.js","sourceRoot":"","sources":["../src/child-exit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,UAAU,aAAa,CAC3B,MAAsE;IAEtE,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { InstalledPackSnapshot } from "./packs/installed.js";
|
|
2
|
+
import type { CatalogPack, NodeCatalogIndex } from "@nodetool-ai/pack-core/types";
|
|
3
|
+
export interface CliFeatureRunner {
|
|
4
|
+
/** Arguments after the executable and script path, beginning with the selected command. */
|
|
5
|
+
readonly run: (argv: readonly string[]) => Promise<void>;
|
|
6
|
+
readonly resolveWorkflowPacks?: WorkflowPackResolver;
|
|
7
|
+
readonly initializeExecutionHost?: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export type WorkflowPackResolver = (target: string, snapshot: InstalledPackSnapshot, catalog: NodeCatalogIndex) => Promise<{
|
|
10
|
+
readonly packs: readonly string[];
|
|
11
|
+
readonly runtimeLibraries: readonly string[];
|
|
12
|
+
}>;
|
|
13
|
+
export declare class CliFeatureNotInstalledError extends Error {
|
|
14
|
+
readonly code = "FEATURE_NOT_INSTALLED";
|
|
15
|
+
readonly featureIds: readonly string[];
|
|
16
|
+
constructor(featureId: string);
|
|
17
|
+
}
|
|
18
|
+
/** Validate the exported feature against the administrator's catalog selection. */
|
|
19
|
+
export declare function verifyCliFeature(module: unknown, pack: CatalogPack): CliFeatureRunner;
|
|
20
|
+
/** Load one explicitly selected command feature through the admitted pack tree. */
|
|
21
|
+
export declare function loadInstalledCommandFeature(entryUrl: string, featureId: string, options?: {
|
|
22
|
+
readonly snapshot?: InstalledPackSnapshot;
|
|
23
|
+
readonly catalog?: NodeCatalogIndex;
|
|
24
|
+
}): Promise<CliFeatureRunner>;
|
|
25
|
+
/** Activate worker lifecycle integration only when its administrator-selected feature is installed. */
|
|
26
|
+
export declare function initializeInstalledExecutionHost(entryUrl: string, options?: {
|
|
27
|
+
readonly snapshot?: InstalledPackSnapshot;
|
|
28
|
+
readonly catalog?: NodeCatalogIndex;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
//# sourceMappingURL=cli-feature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-feature.d.ts","sourceRoot":"","sources":["../src/cli-feature.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IACrD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AACD,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACzH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACjF,CAAC,CAAC;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,YAAY,SAAS,EAAE,MAAM,EAG5B;CACF;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAoBrF;AAED,mFAAmF;AACnF,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;IAC9F,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3E,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuBjC;AAED,uGAAuG;AACvG,wBAAsB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3E,GAAG,OAAO,CAAC,IAAI,CAAC,CAarB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { readCatalogIndex } from "@nodetool-ai/pack-core/catalog-data";
|
|
3
|
+
import { resolveInstalledPack } from "@nodetool-ai/pack-core/installed-resolver";
|
|
4
|
+
import { configureCliPackHost, loadCliPackSnapshot, loaderContextForSnapshot } from "./packs/host.js";
|
|
5
|
+
export class CliFeatureNotInstalledError extends Error {
|
|
6
|
+
code = "FEATURE_NOT_INSTALLED";
|
|
7
|
+
featureIds;
|
|
8
|
+
constructor(featureId) {
|
|
9
|
+
super(`This command requires the ${featureId} feature. Run "nodetool packs add ${featureId}" and restart the command.`);
|
|
10
|
+
this.featureIds = [featureId];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** Validate the exported feature against the administrator's catalog selection. */
|
|
14
|
+
export function verifyCliFeature(module, pack) {
|
|
15
|
+
const descriptor = z.object({
|
|
16
|
+
id: z.literal(pack.id), apiVersion: z.literal(1),
|
|
17
|
+
requires: z.array(z.string()), capabilities: z.array(z.string())
|
|
18
|
+
});
|
|
19
|
+
const feature = z.object({
|
|
20
|
+
descriptor,
|
|
21
|
+
run: z.custom(value => typeof value === "function"),
|
|
22
|
+
resolveWorkflowPacks: z.custom(value => typeof value === "function").optional(),
|
|
23
|
+
initializeExecutionHost: z.custom(value => typeof value === "function").optional()
|
|
24
|
+
});
|
|
25
|
+
const parsed = z.object({ feature }).parse(module).feature;
|
|
26
|
+
if (new Set(parsed.descriptor.requires).size !== parsed.descriptor.requires.length ||
|
|
27
|
+
JSON.stringify([...parsed.descriptor.requires].sort()) !== JSON.stringify([...pack.requires].sort())) {
|
|
28
|
+
throw new Error(`CLI feature ${pack.id} prerequisites differ from its catalog`);
|
|
29
|
+
}
|
|
30
|
+
if (new Set(parsed.descriptor.capabilities).size !== parsed.descriptor.capabilities.length) {
|
|
31
|
+
throw new Error(`CLI feature ${pack.id} declares duplicate capabilities`);
|
|
32
|
+
}
|
|
33
|
+
return parsed;
|
|
34
|
+
}
|
|
35
|
+
/** Load one explicitly selected command feature through the admitted pack tree. */
|
|
36
|
+
export async function loadInstalledCommandFeature(entryUrl, featureId, options = {}) {
|
|
37
|
+
if (!options.snapshot) {
|
|
38
|
+
configureCliPackHost(entryUrl, { catalog: options.catalog });
|
|
39
|
+
}
|
|
40
|
+
const snapshot = options.snapshot ?? await loadCliPackSnapshot();
|
|
41
|
+
const catalog = options.catalog ?? readCatalogIndex();
|
|
42
|
+
if (catalog.coreVersion !== snapshot.mode.coreVersion) {
|
|
43
|
+
throw new Error("Command catalog and CLI versions differ");
|
|
44
|
+
}
|
|
45
|
+
const matches = catalog.packs.filter(candidate => candidate.id === featureId);
|
|
46
|
+
if (matches.length !== 1) {
|
|
47
|
+
throw new Error(`Command feature ${featureId} must have exactly one catalog entry`);
|
|
48
|
+
}
|
|
49
|
+
const pack = matches[0];
|
|
50
|
+
if (!pack || pack.kind !== "cli-feature") {
|
|
51
|
+
throw new Error(`Catalog entry ${featureId} is not a CLI command feature`);
|
|
52
|
+
}
|
|
53
|
+
if (!snapshot.packs.some(candidate => candidate.id === pack.id)) {
|
|
54
|
+
throw new CliFeatureNotInstalledError(featureId);
|
|
55
|
+
}
|
|
56
|
+
for (const required of pack.requires) {
|
|
57
|
+
if (!snapshot.packs.some(candidate => candidate.id === required)) {
|
|
58
|
+
throw new Error(`CLI feature ${pack.id} requires installed pack ${required}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
const module = await import(resolveInstalledPack(pack, pack.npm.name, loaderContextForSnapshot(snapshot)));
|
|
63
|
+
return verifyCliFeature(module, pack);
|
|
64
|
+
}
|
|
65
|
+
catch (cause) {
|
|
66
|
+
throw new Error(`Loading configured CLI feature ${pack.id} failed`, { cause });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Activate worker lifecycle integration only when its administrator-selected feature is installed. */
|
|
70
|
+
export async function initializeInstalledExecutionHost(entryUrl, options = {}) {
|
|
71
|
+
if (!options.snapshot) {
|
|
72
|
+
configureCliPackHost(entryUrl, { catalog: options.catalog });
|
|
73
|
+
}
|
|
74
|
+
const snapshot = options.snapshot ?? await loadCliPackSnapshot();
|
|
75
|
+
if (!snapshot.packs.some(candidate => candidate.id === "cli-admin")) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const feature = await loadInstalledCommandFeature(entryUrl, "cli-admin", { ...options, snapshot });
|
|
79
|
+
if (!feature.initializeExecutionHost) {
|
|
80
|
+
throw new Error("Configured CLI feature cli-admin does not provide its execution host initializer");
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
await feature.initializeExecutionHost();
|
|
84
|
+
}
|
|
85
|
+
catch (cause) {
|
|
86
|
+
throw new Error("Initializing configured CLI feature cli-admin execution host failed", { cause });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=cli-feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-feature.js","sourceRoot":"","sources":["../src/cli-feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAatG,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC3C,IAAI,GAAG,uBAAuB,CAAC;IAC/B,UAAU,CAAoB;IACvC,YAAY,SAAiB;QAC3B,KAAK,CAAC,6BAA6B,SAAS,qCAAqC,SAAS,4BAA4B,CAAC,CAAC;QACxH,IAAI,CAAC,UAAU,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,IAAiB;IACjE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;QAC1B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjE,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;QACvB,UAAU;QACV,GAAG,EAAE,CAAC,CAAC,MAAM,CAA0B,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC;QAC5E,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAuB,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,QAAQ,EAAE;QACrG,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAsB,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,QAAQ,EAAE;KACxG,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAC3D,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM;QAChF,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,EAAE,wCAAwC,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,QAAgB,EAAE,SAAiB,EAAE,OAAO,GAE1F,EAAE;IACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,mBAAmB,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;IACtD,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAAC,CAAC;IACtH,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,sCAAsC,CAAC,CAAC;IAAC,CAAC;IAClH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,SAAS,+BAA+B,CAAC,CAAC;IAAC,CAAC;IACzH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,EAAE,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpH,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,QAAgB,EAAE,OAAO,GAE5E,EAAE;IACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,mBAAmB,EAAE,CAAC;IACjE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAChF,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qEAAqE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACpG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type MissingRuntimeDetails } from "@nodetool-ai/protocol";
|
|
2
|
+
import { type MissingPackDetails } from "@nodetool-ai/protocol";
|
|
3
|
+
export declare function commandMissingPack(value: unknown): MissingPackDetails | null;
|
|
4
|
+
export declare function commandMissingRuntime(value: unknown): MissingRuntimeDetails | null;
|
|
5
|
+
/** Missing runtimes use the shared install-required exit code. */
|
|
6
|
+
export declare function commandFailureExitCode(error: unknown): 1 | 3;
|
|
7
|
+
export declare function printCommandError(err: unknown, json?: boolean): 1 | 3;
|
|
8
|
+
//# sourceMappingURL=command-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-errors.d.ts","sourceRoot":"","sources":["../src/command-errors.ts"],"names":[],"mappings":"AASA,OAAO,EAA4E,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC7I,OAAO,EAAmE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAWjI,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAK5E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAKlF;AAED,kEAAkE;AAClE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAE5D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAOrE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One failure shape for the harness commands.
|
|
3
|
+
*
|
|
4
|
+
* An agent that invoked a command with `--json` parses stdout. When the command
|
|
5
|
+
* crashes it used to get a stderr string and nothing to parse, so the failure
|
|
6
|
+
* was indistinguishable from a broken pipe. The human message still goes to
|
|
7
|
+
* stderr; `--json` additionally puts `{"error": …}` on stdout.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { missingRuntimeDetailsOf, missingRuntimeDetailsSchema, missingRuntimeText } from "@nodetool-ai/protocol";
|
|
11
|
+
import { missingPackDetailsOf, missingPackDetailsSchema, missingPackText } from "@nodetool-ai/protocol";
|
|
12
|
+
const commandFailureSchema = z.object({
|
|
13
|
+
missingPack: missingPackDetailsSchema.optional().catch(undefined),
|
|
14
|
+
missingRuntime: missingRuntimeDetailsSchema.optional().catch(undefined),
|
|
15
|
+
server: z.object({
|
|
16
|
+
missingPack: missingPackDetailsSchema.optional().catch(undefined),
|
|
17
|
+
missingRuntime: missingRuntimeDetailsSchema.optional().catch(undefined)
|
|
18
|
+
}).optional().catch(undefined)
|
|
19
|
+
});
|
|
20
|
+
export function commandMissingPack(value) {
|
|
21
|
+
const details = missingPackDetailsOf(value);
|
|
22
|
+
if (details) {
|
|
23
|
+
return details;
|
|
24
|
+
}
|
|
25
|
+
const parsed = commandFailureSchema.safeParse(value);
|
|
26
|
+
return parsed.success ? parsed.data.missingPack ?? parsed.data.server?.missingPack ?? null : null;
|
|
27
|
+
}
|
|
28
|
+
export function commandMissingRuntime(value) {
|
|
29
|
+
const details = missingRuntimeDetailsOf(value);
|
|
30
|
+
if (details) {
|
|
31
|
+
return details;
|
|
32
|
+
}
|
|
33
|
+
const parsed = commandFailureSchema.safeParse(value);
|
|
34
|
+
return parsed.success ? parsed.data.missingRuntime ?? parsed.data.server?.missingRuntime ?? null : null;
|
|
35
|
+
}
|
|
36
|
+
/** Missing runtimes use the shared install-required exit code. */
|
|
37
|
+
export function commandFailureExitCode(error) {
|
|
38
|
+
return commandMissingRuntime(error) || commandMissingPack(error) ? 3 : 1;
|
|
39
|
+
}
|
|
40
|
+
export function printCommandError(err, json) {
|
|
41
|
+
const missing = commandMissingRuntime(err);
|
|
42
|
+
const pack = commandMissingPack(err);
|
|
43
|
+
const message = missing ? missingRuntimeText(missing) : pack ? missingPackText(pack) : err instanceof Error ? err.message : String(err);
|
|
44
|
+
console.error(message);
|
|
45
|
+
if (json)
|
|
46
|
+
console.log(JSON.stringify(missing ? { error: "missing_runtime_package", ...missing } : pack ?? { error: message }, null, 2));
|
|
47
|
+
return commandFailureExitCode(err);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=command-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-errors.js","sourceRoot":"","sources":["../src/command-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type InstallAuthorization } from "./pack-install-authorization.js";
|
|
2
|
+
/** Renew a stale grant at most three times. Every renewal repeats command consent. */
|
|
3
|
+
export declare function installWithCommandAuthorization(options: {
|
|
4
|
+
readonly authorize: () => Promise<InstallAuthorization | null>;
|
|
5
|
+
readonly install: (authorization: InstallAuthorization) => Promise<unknown>;
|
|
6
|
+
}): Promise<boolean>;
|
|
7
|
+
//# sourceMappingURL=authorized-pack-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorized-pack-install.d.ts","sourceRoot":"","sources":["../../src/commands/authorized-pack-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5G,sFAAsF;AACtF,wBAAsB,+BAA+B,CAAC,OAAO,EAAE;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7E,GAAG,OAAO,CAAC,OAAO,CAAC,CAWnB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { StaleInstallAuthorizationError } from "./pack-install-authorization.js";
|
|
2
|
+
/** Renew a stale grant at most three times. Every renewal repeats command consent. */
|
|
3
|
+
export async function installWithCommandAuthorization(options) {
|
|
4
|
+
for (let renewal = 0;; renewal++) {
|
|
5
|
+
const authorization = await options.authorize();
|
|
6
|
+
if (!authorization) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
await options.install(authorization);
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
if (!(error instanceof StaleInstallAuthorizationError) || renewal >= 3) {
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=authorized-pack-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorized-pack-install.js","sourceRoot":"","sources":["../../src/commands/authorized-pack-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAA6B,MAAM,iCAAiC,CAAC;AAE5G,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,OAGrD;IACC,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAChD,IAAI,CAAC,aAAa,EAAE,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,8BAA8B,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBAAC,MAAM,KAAK,CAAC;YAAC,CAAC;QAC1F,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight CLI output + prompt helpers.
|
|
3
|
+
*
|
|
4
|
+
* These are pure (only `node:readline`), so command modules can format tables /
|
|
5
|
+
* JSON and prompt the user without pulling in the heavy deploy stack that
|
|
6
|
+
* `deploy-helpers.ts` imports at top level. `deploy-helpers.ts` re-exports
|
|
7
|
+
* everything here for backward compatibility.
|
|
8
|
+
*/
|
|
9
|
+
/** Print a table to stdout. Missing values render as empty. */
|
|
10
|
+
export declare function printTable<Row extends object>(rows: readonly Row[], columns?: string[]): void;
|
|
11
|
+
export declare function asJson(data: unknown): void;
|
|
12
|
+
export declare function printKv(rows: Record<string, unknown>): void;
|
|
13
|
+
/** Prompt for a line on stdin (echoes). TTY only — exits if non-TTY. */
|
|
14
|
+
export declare function promptLine(message: string, opts?: {
|
|
15
|
+
default?: string;
|
|
16
|
+
}): Promise<string>;
|
|
17
|
+
/** Prompt for hidden input (typed but not echoed). TTY only. */
|
|
18
|
+
export declare function promptHidden(message: string): Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Read a secret value: hidden input on a TTY, else the first line of stdin.
|
|
21
|
+
* Rejects when stdin ends before a line arrives, so `secrets store < /dev/null`
|
|
22
|
+
* fails instead of exiting 0 with nothing stored.
|
|
23
|
+
*/
|
|
24
|
+
export declare function readSecretValue(message: string, input?: NodeJS.ReadableStream & {
|
|
25
|
+
isTTY?: boolean;
|
|
26
|
+
}): Promise<string>;
|
|
27
|
+
/** Yes/no confirm. Non-TTY returns the `force` value (default: false). */
|
|
28
|
+
export declare function confirm(message: string, opts?: {
|
|
29
|
+
force?: boolean;
|
|
30
|
+
default?: boolean;
|
|
31
|
+
}): Promise<boolean>;
|
|
32
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/commands/output.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,GAAG,SAAS,MAAM,EAC3C,IAAI,EAAE,SAAS,GAAG,EAAE,EACpB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,IAAI,CA0CN;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE1C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAM3D;AAED,wEAAwE;AACxE,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,gEAAgE;AAChE,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuCnE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAM,CAAC,cAAc,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAkB,GACjE,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,0EAA0E;AAC1E,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C,OAAO,CAAC,OAAO,CAAC,CAclB"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight CLI output + prompt helpers.
|
|
3
|
+
*
|
|
4
|
+
* These are pure (only `node:readline`), so command modules can format tables /
|
|
5
|
+
* JSON and prompt the user without pulling in the heavy deploy stack that
|
|
6
|
+
* `deploy-helpers.ts` imports at top level. `deploy-helpers.ts` re-exports
|
|
7
|
+
* everything here for backward compatibility.
|
|
8
|
+
*/
|
|
9
|
+
import { createInterface } from "node:readline";
|
|
10
|
+
/** Print a table to stdout. Missing values render as empty. */
|
|
11
|
+
export function printTable(rows, columns) {
|
|
12
|
+
if (rows.length === 0) {
|
|
13
|
+
console.log("(no results)");
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
// Render every cell up front, keyed by column name. A table prints whatever
|
|
17
|
+
// column names the caller asked for off rows of any object shape, so the
|
|
18
|
+
// lookup is by name — not by a property the row type declares.
|
|
19
|
+
const cells = rows.map((row) => new Map(Object.entries(row).map(([column, value]) => [
|
|
20
|
+
column,
|
|
21
|
+
String(value ?? "")
|
|
22
|
+
])));
|
|
23
|
+
const cols = columns ?? Object.keys(rows[0]);
|
|
24
|
+
// Compute widths in a loop rather than Math.max(...spread): a large table
|
|
25
|
+
// would spread thousands of args into one call, risking a max-arguments
|
|
26
|
+
// RangeError and extra allocations.
|
|
27
|
+
const widths = cols.map((c) => {
|
|
28
|
+
let width = c.length;
|
|
29
|
+
for (const rendered of cells) {
|
|
30
|
+
const len = (rendered.get(c) ?? "").length;
|
|
31
|
+
if (len > width) {
|
|
32
|
+
width = len;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return width;
|
|
36
|
+
});
|
|
37
|
+
const sep = widths.map((w) => "─".repeat(w + 2)).join("┼");
|
|
38
|
+
const header = cols.map((c, i) => ` ${c.padEnd(widths[i])} `).join("│");
|
|
39
|
+
console.log(header);
|
|
40
|
+
console.log(sep);
|
|
41
|
+
for (const rendered of cells) {
|
|
42
|
+
console.log(cols
|
|
43
|
+
.map((c, i) => ` ${(rendered.get(c) ?? "").padEnd(widths[i])} `)
|
|
44
|
+
.join("│"));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export function asJson(data) {
|
|
48
|
+
console.log(JSON.stringify(data, null, 2));
|
|
49
|
+
}
|
|
50
|
+
export function printKv(rows) {
|
|
51
|
+
const list = Object.entries(rows).map(([key, value]) => ({
|
|
52
|
+
key,
|
|
53
|
+
value: String(value ?? "")
|
|
54
|
+
}));
|
|
55
|
+
printTable(list, ["key", "value"]);
|
|
56
|
+
}
|
|
57
|
+
/** Prompt for a line on stdin (echoes). TTY only — exits if non-TTY. */
|
|
58
|
+
export async function promptLine(message, opts) {
|
|
59
|
+
if (!process.stdin.isTTY) {
|
|
60
|
+
console.error(`Missing value for interactive prompt: ${message}`);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
const rl = createInterface({
|
|
64
|
+
input: process.stdin,
|
|
65
|
+
output: process.stderr
|
|
66
|
+
});
|
|
67
|
+
return new Promise((resolve) => {
|
|
68
|
+
const suffix = opts?.default ? ` [${opts.default}]` : "";
|
|
69
|
+
rl.question(`${message}${suffix}: `, (answer) => {
|
|
70
|
+
rl.close();
|
|
71
|
+
const trimmed = answer.trim();
|
|
72
|
+
resolve(trimmed || (opts?.default ?? ""));
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/** Prompt for hidden input (typed but not echoed). TTY only. */
|
|
77
|
+
export async function promptHidden(message) {
|
|
78
|
+
if (!process.stdin.isTTY) {
|
|
79
|
+
console.error(`Missing value for interactive prompt: ${message}`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
process.stderr.write(message);
|
|
83
|
+
return new Promise((resolve) => {
|
|
84
|
+
let value = "";
|
|
85
|
+
const stdin = process.stdin;
|
|
86
|
+
const wasRaw = stdin.isRaw;
|
|
87
|
+
stdin.setRawMode(true);
|
|
88
|
+
stdin.resume();
|
|
89
|
+
stdin.setEncoding("utf8");
|
|
90
|
+
const onData = (data) => {
|
|
91
|
+
for (const ch of data) {
|
|
92
|
+
if (ch === "\r" || ch === "\n") {
|
|
93
|
+
stdin.setRawMode(wasRaw ?? false);
|
|
94
|
+
stdin.pause();
|
|
95
|
+
stdin.removeListener("data", onData);
|
|
96
|
+
process.stderr.write("\n");
|
|
97
|
+
resolve(value);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (ch === "\x03") {
|
|
101
|
+
stdin.setRawMode(wasRaw ?? false);
|
|
102
|
+
stdin.pause();
|
|
103
|
+
process.exit(130);
|
|
104
|
+
}
|
|
105
|
+
// DEL (\x7f, most terminals) or BS (\b) erases the last character.
|
|
106
|
+
if (ch === "\x7f" || ch === "\b") {
|
|
107
|
+
value = value.slice(0, -1);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
value += ch;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
stdin.on("data", onData);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Read a secret value: hidden input on a TTY, else the first line of stdin.
|
|
118
|
+
* Rejects when stdin ends before a line arrives, so `secrets store < /dev/null`
|
|
119
|
+
* fails instead of exiting 0 with nothing stored.
|
|
120
|
+
*/
|
|
121
|
+
export async function readSecretValue(message, input = process.stdin) {
|
|
122
|
+
if (input.isTTY)
|
|
123
|
+
return promptHidden(message);
|
|
124
|
+
const rl = createInterface({ input, terminal: false });
|
|
125
|
+
try {
|
|
126
|
+
for await (const line of rl)
|
|
127
|
+
return line;
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
rl.close();
|
|
131
|
+
}
|
|
132
|
+
throw new Error("stdin ended before a value was read");
|
|
133
|
+
}
|
|
134
|
+
/** Yes/no confirm. Non-TTY returns the `force` value (default: false). */
|
|
135
|
+
export async function confirm(message, opts) {
|
|
136
|
+
if (opts?.force) {
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
if (!process.stdin.isTTY) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
const defaultYes = opts?.default ?? false;
|
|
143
|
+
const hint = defaultYes ? "[Y/n]" : "[y/N]";
|
|
144
|
+
const answer = await promptLine(`${message} ${hint}`);
|
|
145
|
+
if (!answer) {
|
|
146
|
+
return defaultYes;
|
|
147
|
+
}
|
|
148
|
+
return /^y(es)?$/i.test(answer);
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/commands/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type InstallSelection, type InstallPacksRequest } from "../packs/install-selection.js";
|
|
2
|
+
declare const AUTHORIZATION: unique symbol;
|
|
3
|
+
export interface InstallAuthorization {
|
|
4
|
+
readonly [AUTHORIZATION]: true;
|
|
5
|
+
}
|
|
6
|
+
export type InstallCommandContext = "packs-add" | "packs-restore" | "packs-remove" | "packs-repair" | "run" | "debug" | "node-run" | "workflows-run" | "serve" | "mcp-serve" | "headless-job" | "chat" | "agent-tool";
|
|
7
|
+
export type InstallAuthorizationSource = "explicit" | "flag" | "environment" | "prompt";
|
|
8
|
+
interface AuthorizedScope {
|
|
9
|
+
readonly requestedPacks: ReadonlySet<string>;
|
|
10
|
+
readonly requestedLibraries: ReadonlySet<string>;
|
|
11
|
+
readonly operation: "install" | "remove" | "repair";
|
|
12
|
+
readonly source: InstallAuthorizationSource;
|
|
13
|
+
readonly root: string;
|
|
14
|
+
readonly coreVersion: string;
|
|
15
|
+
readonly mode: InstallSelection["mode"];
|
|
16
|
+
readonly packs: ReadonlySet<string>;
|
|
17
|
+
readonly libraries: ReadonlySet<string>;
|
|
18
|
+
readonly scripts: ReadonlySet<string>;
|
|
19
|
+
readonly bootstrap: ReadonlySet<string>;
|
|
20
|
+
readonly mutationPaths: ReadonlySet<string>;
|
|
21
|
+
}
|
|
22
|
+
export declare function installPromptMessage(selection: InstallSelection): string;
|
|
23
|
+
/** Only this CLI command module constructs live authorizations. JSON cannot reproduce one. */
|
|
24
|
+
export declare function authorizePackInstallCommand(options: {
|
|
25
|
+
readonly request: InstallPacksRequest;
|
|
26
|
+
readonly command: InstallCommandContext;
|
|
27
|
+
readonly installMissing?: boolean;
|
|
28
|
+
readonly confirm?: boolean;
|
|
29
|
+
readonly prompt?: (options: {
|
|
30
|
+
message: string;
|
|
31
|
+
default: false;
|
|
32
|
+
}) => Promise<boolean>;
|
|
33
|
+
}): Promise<InstallAuthorization | null>;
|
|
34
|
+
export declare function assertLiveInstallAuthorization(value: InstallAuthorization): void;
|
|
35
|
+
export declare class StaleInstallAuthorizationError extends Error {
|
|
36
|
+
constructor();
|
|
37
|
+
}
|
|
38
|
+
export declare function assertInstallAuthorizationScope(value: InstallAuthorization, selection: InstallSelection, operation?: AuthorizedScope["operation"], request?: InstallPacksRequest): void;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=pack-install-authorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-install-authorization.d.ts","sourceRoot":"","sources":["../../src/commands/pack-install-authorization.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAKzH,QAAA,MAAM,aAAa,eAAsC,CAAC;AAC1D,MAAM,WAAW,oBAAoB;IAAG,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;CAAE;AACxE,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,eAAe,GAAG,cAAc,GAAG,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,eAAe,GAClJ,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,GAAG,YAAY,CAAC;AACjE,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;AACxF,UAAU,eAAe;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C;AAID,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAmBxE;AAED,8FAA8F;AAC9F,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtF,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA0BvC;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAGhF;AACD,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,cAAmK;CACpK;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,GAAE,eAAe,CAAC,WAAW,CAAa,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAmClM"}
|