poly-weaver 0.11.0 → 0.11.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.
@@ -12,6 +12,7 @@ export interface AutoUpdateGateDeps {
12
12
  checkAllUpdates?: (detected: DetectAgentsResult, isPolyWeaverGlobal: boolean) => Promise<OutdatedTarget[]>;
13
13
  showAutoUpdateTui?: (outdated: OutdatedTarget[], cwd?: string) => Promise<AutoUpdateChoice | null>;
14
14
  installAgents?: (targets: readonly OutdatedTarget[]) => Promise<Map<string, number>>;
15
+ requestUpdates?: (targets: readonly OutdatedTarget[]) => boolean | Promise<boolean>;
15
16
  setProviderVersions?: (versions: Map<string, string>) => void;
16
17
  exit?: (code: number) => void;
17
18
  stderr?: Pick<NodeJS.WriteStream, "write" | "isTTY">;
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/auto-update/gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGhF,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjD,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC;IACnC,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,kBAAkB,EAC5B,kBAAkB,EAAE,OAAO,KACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,GAAG,CAAC,EAAE,MAAM,KACT,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrF,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;CACtD;AAED,wBAAsB,iBAAiB,CACrC,GAAG,SAAgB,EACnB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,UAAU,CAAC,CAkFrB"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/auto-update/gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAIhF,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjD,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC;IACnC,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,kBAAkB,EAC5B,kBAAkB,EAAE,OAAO,KACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,GAAG,CAAC,EAAE,MAAM,KACT,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;CACtD;AAED,wBAAsB,iBAAiB,CACrC,GAAG,SAAgB,EACnB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,UAAU,CAAC,CAwFrB"}
@@ -3,7 +3,8 @@ import { isGlobalNpmInstall } from "./install-method.js";
3
3
  import { showAutoUpdateTui } from "./tui.js";
4
4
  import { AGENT_INSTALL_HINT, AGENT_ORDER, AGENT_PRODUCT_NAME, detectAgents, } from "./detect-agents.js";
5
5
  import { checkAllUpdates } from "./check-agent-updates.js";
6
- import { installAgents } from "./install-agents.js";
6
+ import { firstNonZero, installAgents } from "./install-agents.js";
7
+ import { requestUpdates } from "./update-request.js";
7
8
  export async function runAutoUpdateGate(cwd = process.cwd(), deps = {}) {
8
9
  const runDetection = deps.detectAgents ?? (() => detectAgents());
9
10
  const exit = deps.exit ?? ((code) => { process.exit(code); });
@@ -71,6 +72,11 @@ export async function runAutoUpdateGate(cwd = process.cwd(), deps = {}) {
71
72
  return result;
72
73
  }
73
74
  const targets = choice.kind === "update-all" ? outdated : [choice.target];
75
+ const handoffUpdates = deps.requestUpdates ?? requestUpdates;
76
+ if (await handoffUpdates(targets)) {
77
+ exit(0);
78
+ return result;
79
+ }
74
80
  const runInstallers = deps.installAgents ?? installAgents;
75
81
  const exitCodes = await runInstallers(targets);
76
82
  exit(firstNonZero(exitCodes) ?? 0);
@@ -94,11 +100,4 @@ function polyWeaverUpdateInfo(outdated) {
94
100
  const target = outdated.find((item) => item.kind === "poly-weaver");
95
101
  return target ? { current: target.current, latest: target.latest } : null;
96
102
  }
97
- function firstNonZero(exitCodes) {
98
- for (const code of exitCodes.values()) {
99
- if (code !== 0)
100
- return code;
101
- }
102
- return undefined;
103
- }
104
103
  //# sourceMappingURL=gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/auto-update/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/auto-update/gate.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,5 @@ export interface InstallAgentsDeps {
9
9
  }
10
10
  export declare function installAgents(targets: readonly OutdatedTarget[], deps?: InstallAgentsDeps): Promise<Map<string, number>>;
11
11
  export declare function targetInstallName(target: OutdatedTarget): string;
12
+ export declare function firstNonZero(exitCodes: Map<string, number>): number | undefined;
12
13
  //# sourceMappingURL=install-agents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-agents.d.ts","sourceRoot":"","sources":["../../src/auto-update/install-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAM9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAK9B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAEhE"}
1
+ {"version":3,"file":"install-agents.d.ts","sourceRoot":"","sources":["../../src/auto-update/install-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAM9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAK9B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAEhE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAK/E"}
@@ -8,6 +8,13 @@ export async function installAgents(targets, deps = {}) {
8
8
  export function targetInstallName(target) {
9
9
  return target.kind === "poly-weaver" ? "poly-weaver" : target.name;
10
10
  }
11
+ export function firstNonZero(exitCodes) {
12
+ for (const code of exitCodes.values()) {
13
+ if (code !== 0)
14
+ return code;
15
+ }
16
+ return undefined;
17
+ }
11
18
  async function installTarget(target, deps) {
12
19
  const spawnFactory = deps.spawn ?? spawn;
13
20
  const command = commandForTarget(target);
@@ -32,16 +39,20 @@ function commandForTarget(target) {
32
39
  args: ["install", "-g", `${packageName}@latest`],
33
40
  };
34
41
  }
42
+ const args = [
43
+ "upgrade",
44
+ "--id",
45
+ AGENT_PACKAGE_WINGET[target.name],
46
+ "--exact",
47
+ "--accept-source-agreements",
48
+ "--accept-package-agreements",
49
+ ];
50
+ if (target.kind === "agent" && target.name === "copilot") {
51
+ args.push("--force");
52
+ }
35
53
  return {
36
54
  file: "winget",
37
- args: [
38
- "upgrade",
39
- "--id",
40
- AGENT_PACKAGE_WINGET[target.name],
41
- "--exact",
42
- "--accept-source-agreements",
43
- "--accept-package-agreements",
44
- ],
55
+ args,
45
56
  };
46
57
  }
47
58
  function formatShellCommand(file, args) {
@@ -1 +1 @@
1
- {"version":3,"file":"install-agents.js","sourceRoot":"","sources":["../../src/auto-update/install-agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-agents.js","sourceRoot":"","sources":["../../src/auto-update/install-agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { OutdatedTarget } from "./check-agent-updates.js";
2
+ export declare const UPDATE_REQUEST_ENV = "POLY_WEAVER_UPDATE_REQUEST";
3
+ export interface UpdateRequest {
4
+ targets: OutdatedTarget[];
5
+ }
6
+ export interface RequestUpdatesDeps {
7
+ env?: NodeJS.ProcessEnv;
8
+ writeFile?: (path: string, data: string) => Promise<void>;
9
+ rename?: (oldPath: string, newPath: string) => Promise<void>;
10
+ }
11
+ export interface ReadUpdateRequestDeps {
12
+ readFile?: (path: string, encoding: BufferEncoding) => Promise<string>;
13
+ }
14
+ export interface ClearUpdateRequestDeps {
15
+ rm?: (path: string, options: {
16
+ force: boolean;
17
+ }) => Promise<void>;
18
+ }
19
+ export declare function createUpdateRequestPath(): string;
20
+ export declare function requestUpdates(targets: readonly OutdatedTarget[], deps?: RequestUpdatesDeps): Promise<boolean>;
21
+ export declare function readUpdateRequest(path: string, deps?: ReadUpdateRequestDeps): Promise<UpdateRequest | null>;
22
+ export declare function clearUpdateRequest(path: string, deps?: ClearUpdateRequestDeps): Promise<void>;
23
+ //# sourceMappingURL=update-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-request.d.ts","sourceRoot":"","sources":["../../src/auto-update/update-request.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAU/B;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -0,0 +1,83 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { open, readFile, rename, rm } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ export const UPDATE_REQUEST_ENV = "POLY_WEAVER_UPDATE_REQUEST";
6
+ export function createUpdateRequestPath() {
7
+ return join(tmpdir(), `poly-weaver-update-${process.pid}-${randomUUID()}.json`);
8
+ }
9
+ export async function requestUpdates(targets, deps = {}) {
10
+ const requestPath = (deps.env ?? process.env)[UPDATE_REQUEST_ENV];
11
+ if (!requestPath)
12
+ return false;
13
+ // requestPath is already unique per launcher (pid + uuid), so a fixed
14
+ // suffix suffices to stage the write before the atomic rename.
15
+ const tempPath = `${requestPath}.tmp`;
16
+ const payload = JSON.stringify({ targets }, null, 2);
17
+ const write = deps.writeFile ?? writeFileDurably;
18
+ const renameFile = deps.rename ?? rename;
19
+ try {
20
+ await write(tempPath, payload);
21
+ await renameFile(tempPath, requestPath);
22
+ return true;
23
+ }
24
+ catch {
25
+ await clearUpdateRequest(tempPath);
26
+ return false;
27
+ }
28
+ }
29
+ export async function readUpdateRequest(path, deps = {}) {
30
+ const read = deps.readFile ?? readFile;
31
+ try {
32
+ const content = await read(path, "utf8");
33
+ const parsed = JSON.parse(content);
34
+ return isUpdateRequest(parsed) ? parsed : null;
35
+ }
36
+ catch {
37
+ return null;
38
+ }
39
+ }
40
+ export async function clearUpdateRequest(path, deps = {}) {
41
+ const remove = deps.rm ?? rm;
42
+ try {
43
+ await remove(path, { force: true });
44
+ }
45
+ catch {
46
+ // Best-effort cleanup only; failed cleanup must not affect update results.
47
+ }
48
+ }
49
+ async function writeFileDurably(path, data) {
50
+ const file = await open(path, "w", 0o600);
51
+ try {
52
+ await file.writeFile(data, "utf8");
53
+ await file.sync();
54
+ }
55
+ finally {
56
+ await file.close();
57
+ }
58
+ }
59
+ function isUpdateRequest(value) {
60
+ if (!value || typeof value !== "object")
61
+ return false;
62
+ const targets = value.targets;
63
+ return Array.isArray(targets) && targets.every(isOutdatedTarget);
64
+ }
65
+ function isOutdatedTarget(value) {
66
+ if (!value || typeof value !== "object")
67
+ return false;
68
+ const target = value;
69
+ if (target.kind === "poly-weaver") {
70
+ return typeof target.current === "string"
71
+ && typeof target.latest === "string"
72
+ && target.installMethod === "npm";
73
+ }
74
+ if (target.kind !== "agent")
75
+ return false;
76
+ return typeof target.name === "string"
77
+ && typeof target.productName === "string"
78
+ && typeof target.current === "string"
79
+ && typeof target.latest === "string"
80
+ && (target.installMethod === "npm" || target.installMethod === "winget")
81
+ && (target.unsupported === undefined || typeof target.unsupported === "boolean");
82
+ }
83
+ //# sourceMappingURL=update-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-request.js","sourceRoot":"","sources":["../../src/auto-update/update-request.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
File without changes
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from "node:child_process";
3
+ import { type UpdateRequest } from "./auto-update/update-request.js";
4
+ import type { OutdatedTarget } from "./auto-update/check-agent-updates.js";
5
+ type SpawnFactory = typeof spawn;
6
+ type SignalHandler = (signal: NodeJS.Signals) => void;
7
+ export interface LauncherDeps {
8
+ spawn?: SpawnFactory;
9
+ execPath?: string;
10
+ appPath?: string;
11
+ argv?: readonly string[];
12
+ env?: NodeJS.ProcessEnv;
13
+ tmpPath?: string;
14
+ readRequest?: (path: string) => Promise<UpdateRequest | null>;
15
+ clearRequest?: (path: string) => Promise<void>;
16
+ installAgents?: (targets: readonly OutdatedTarget[]) => Promise<Map<string, number>>;
17
+ exit?: (code: number) => void;
18
+ onSignal?: (signal: NodeJS.Signals, handler: SignalHandler) => void;
19
+ offSignal?: (signal: NodeJS.Signals, handler: SignalHandler) => void;
20
+ }
21
+ export declare function runLauncher(deps?: LauncherDeps): Promise<void>;
22
+ export {};
23
+ //# sourceMappingURL=launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,KAAK,YAAY,GAAG,OAAO,KAAK,CAAC;AACjC,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACpE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CACtE;AAED,wBAAsB,WAAW,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCxE"}
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from "node:child_process";
3
+ import { fileURLToPath } from "node:url";
4
+ import { clearUpdateRequest, createUpdateRequestPath, readUpdateRequest, UPDATE_REQUEST_ENV, } from "./auto-update/update-request.js";
5
+ import { firstNonZero, installAgents as installAgentsDefault, } from "./auto-update/install-agents.js";
6
+ export async function runLauncher(deps = {}) {
7
+ const spawnFactory = deps.spawn ?? spawn;
8
+ const execPath = deps.execPath ?? process.execPath;
9
+ const appPath = deps.appPath ?? fileURLToPath(new URL("./cli.js", import.meta.url));
10
+ const argv = deps.argv ?? process.argv.slice(2);
11
+ const env = deps.env ?? process.env;
12
+ const requestPath = deps.tmpPath ?? createUpdateRequestPath();
13
+ const readRequest = deps.readRequest ?? readUpdateRequest;
14
+ const clearRequest = deps.clearRequest ?? clearUpdateRequest;
15
+ const installAgents = deps.installAgents ?? installAgentsDefault;
16
+ const exit = deps.exit ?? ((code) => { process.exit(code); });
17
+ const cleanupSignals = installSignalGuards(deps);
18
+ let finalCode = 1;
19
+ try {
20
+ const child = spawnFactory(execPath, [appPath, ...argv], {
21
+ stdio: "inherit",
22
+ env: {
23
+ ...env,
24
+ [UPDATE_REQUEST_ENV]: requestPath,
25
+ },
26
+ });
27
+ const childExitCode = await waitForClose(child);
28
+ const request = await readRequest(requestPath);
29
+ if (request) {
30
+ const exitCodes = await installAgents(request.targets);
31
+ finalCode = firstNonZero(exitCodes) ?? 0;
32
+ }
33
+ else {
34
+ finalCode = childExitCode;
35
+ }
36
+ }
37
+ finally {
38
+ try {
39
+ await clearRequest(requestPath);
40
+ }
41
+ catch {
42
+ // Cleanup is best-effort; the child or installer exit code remains authoritative.
43
+ }
44
+ cleanupSignals();
45
+ }
46
+ exit(finalCode);
47
+ }
48
+ function installSignalGuards(deps) {
49
+ const onSignal = deps.onSignal ?? process.on.bind(process);
50
+ const offSignal = deps.offSignal ?? process.off.bind(process);
51
+ // Ctrl+C reaches the child directly (it owns the terminal); the launcher must
52
+ // ignore the signal so it survives the child's exit and can still run the
53
+ // post-exit installers. The handler is intentionally a no-op.
54
+ const handler = () => { };
55
+ onSignal("SIGINT", handler);
56
+ onSignal("SIGTERM", handler);
57
+ return () => {
58
+ offSignal("SIGINT", handler);
59
+ offSignal("SIGTERM", handler);
60
+ };
61
+ }
62
+ function waitForClose(child) {
63
+ return new Promise((resolve) => {
64
+ let settled = false;
65
+ const finish = (code) => {
66
+ if (settled)
67
+ return;
68
+ settled = true;
69
+ resolve(code);
70
+ };
71
+ child.once("error", () => finish(1));
72
+ child.once("close", (code, signal) => finish(closeCode(code, signal)));
73
+ });
74
+ }
75
+ function closeCode(code, signal) {
76
+ if (typeof code === "number")
77
+ return code;
78
+ if (signal === "SIGINT")
79
+ return 130;
80
+ if (signal === "SIGTERM")
81
+ return 143;
82
+ return 1;
83
+ }
84
+ if (process.argv[1] === fileURLToPath(import.meta.url)) {
85
+ runLauncher().catch((err) => {
86
+ console.error(err);
87
+ process.exit(1);
88
+ });
89
+ }
90
+ //# sourceMappingURL=launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poly-weaver",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "Orchestrates pluggable AI coding agents in an iterative plan-review loop",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -14,7 +14,7 @@
14
14
  "./dsl": "./dist/dsl.js"
15
15
  },
16
16
  "bin": {
17
- "poly-weaver": "dist/cli.js"
17
+ "poly-weaver": "dist/launcher.js"
18
18
  },
19
19
  "engines": {
20
20
  "node": ">=22.17"