@osolmaz/pi-workflows 0.16.2 → 0.16.4
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 +41 -41
- package/dist/builtins/monitor.workflow.d.ts +1 -1
- package/dist/builtins/monitor.workflow.js +8 -8
- package/dist/builtins/pi-agent-group.js +3 -3
- package/dist/builtins/pi-agent-group.js.map +1 -1
- package/dist/channels/adapter-entry.js +14 -14
- package/dist/channels/adapter-entry.js.map +1 -1
- package/dist/client/client.d.ts +6 -6
- package/dist/client/client.js +27 -27
- package/dist/client/client.js.map +1 -1
- package/dist/client/protocol.d.ts +4 -1
- package/dist/client/protocol.js +17 -11
- package/dist/client/protocol.js.map +1 -1
- package/dist/client/resolver.d.ts +4 -4
- package/dist/client/view.d.ts +1 -1
- package/dist/extension/index.d.ts +1 -1
- package/dist/extension/index.js +32 -32
- package/dist/extension/index.js.map +1 -1
- package/dist/extension/recorder.d.ts +1 -1
- package/dist/extension/recorder.js +1 -1
- package/dist/extension/recorder.js.map +1 -1
- package/dist/extension/remote-recorder-store.d.ts +1 -1
- package/dist/extension/remote-recorder-store.js +2 -2
- package/dist/extension/remote-recorder-store.js.map +1 -1
- package/dist/extension/{controller-command.d.ts → resource-manager-command.d.ts} +6 -6
- package/dist/extension/{controller-command.js → resource-manager-command.js} +7 -7
- package/dist/extension/resource-manager-command.js.map +1 -0
- package/dist/extension/session-delivery.d.ts +1 -1
- package/dist/extension/session-delivery.js +2 -2
- package/dist/extension/session-delivery.js.map +1 -1
- package/dist/extension/session-view.d.ts +1 -1
- package/dist/extension/session-view.js +1 -1
- package/dist/extension/session-view.js.map +1 -1
- package/dist/extension/workflow-message-coordinator.d.ts +1 -1
- package/dist/extension/workflow-message-coordinator.js +6 -6
- package/dist/extension/workflow-message-coordinator.js.map +1 -1
- package/dist/resource-managers/conditions.d.ts +6 -0
- package/dist/{controllers → resource-managers}/conditions.js +3 -3
- package/dist/resource-managers/conditions.js.map +1 -0
- package/dist/resource-managers/definition.d.ts +6 -0
- package/dist/resource-managers/definition.js +45 -0
- package/dist/resource-managers/definition.js.map +1 -0
- package/dist/resource-managers/effects.d.ts +15 -0
- package/dist/{controllers → resource-managers}/effects.js +2 -2
- package/dist/resource-managers/effects.js.map +1 -0
- package/dist/resource-managers/errors.d.ts +12 -0
- package/dist/resource-managers/errors.js +25 -0
- package/dist/resource-managers/errors.js.map +1 -0
- package/dist/resource-managers/index.d.ts +12 -0
- package/dist/resource-managers/index.js +12 -0
- package/dist/resource-managers/index.js.map +1 -0
- package/dist/resource-managers/json.js.map +1 -0
- package/dist/resource-managers/loader.d.ts +23 -0
- package/dist/resource-managers/loader.js +75 -0
- package/dist/resource-managers/loader.js.map +1 -0
- package/dist/resource-managers/results.d.ts +5 -0
- package/dist/resource-managers/results.js.map +1 -0
- package/dist/resource-managers/runtime.d.ts +59 -0
- package/dist/{controllers/manager.js → resource-managers/runtime.js} +57 -57
- package/dist/resource-managers/runtime.js.map +1 -0
- package/dist/{controllers → resource-managers}/sqlite.d.ts +44 -44
- package/dist/{controllers → resource-managers}/sqlite.js +139 -130
- package/dist/resource-managers/sqlite.js.map +1 -0
- package/dist/{controllers → resource-managers}/store.d.ts +33 -33
- package/dist/{controllers → resource-managers}/store.js.map +1 -1
- package/dist/{controllers → resource-managers}/types.d.ts +41 -41
- package/dist/{controllers → resource-managers}/types.js.map +1 -1
- package/dist/resource-managers/workflows.d.ts +34 -0
- package/dist/{controllers → resource-managers}/workflows.js +15 -15
- package/dist/resource-managers/workflows.js.map +1 -0
- package/dist/server/channel-effects.js.map +1 -0
- package/dist/{host → server}/channel-supervisor.d.ts +6 -6
- package/dist/{host → server}/channel-supervisor.js +3 -3
- package/dist/server/channel-supervisor.js.map +1 -0
- package/dist/{host/child-worker-supervisor.d.ts → server/child-runner-supervisor.d.ts} +15 -13
- package/dist/{host/child-worker-supervisor.js → server/child-runner-supervisor.js} +6 -5
- package/dist/server/child-runner-supervisor.js.map +1 -0
- package/dist/{host → server}/processes.d.ts +3 -3
- package/dist/{host → server}/processes.js +3 -3
- package/dist/server/processes.js.map +1 -0
- package/dist/{host → server}/resolver-entry.d.ts +6 -6
- package/dist/{host → server}/resolver-entry.js +14 -14
- package/dist/server/resolver-entry.js.map +1 -0
- package/dist/server/resource-runner-entry.d.ts +2 -0
- package/dist/{host/controller-worker-entry.js → server/resource-runner-entry.js} +33 -33
- package/dist/server/resource-runner-entry.js.map +1 -0
- package/dist/server/resource-runner-protocol.d.ts +36 -0
- package/dist/server/resource-runner-protocol.js +49 -0
- package/dist/server/resource-runner-protocol.js.map +1 -0
- package/dist/server/resource-runner-supervisor.d.ts +21 -0
- package/dist/{host/worker-supervisor.js → server/resource-runner-supervisor.js} +17 -17
- package/dist/server/resource-runner-supervisor.js.map +1 -0
- package/dist/{host → server}/rpc-bridge.d.ts +3 -3
- package/dist/{host → server}/rpc-bridge.js +3 -3
- package/dist/server/rpc-bridge.js.map +1 -0
- package/dist/{host → server}/rpc-executor.d.ts +1 -1
- package/dist/{host → server}/rpc-executor.js +3 -3
- package/dist/server/rpc-executor.js.map +1 -0
- package/dist/{host/host-entry.js → server/server-entry.js} +6 -6
- package/dist/server/server-entry.js.map +1 -0
- package/dist/{host/runner.d.ts → server/server.d.ts} +39 -38
- package/dist/{host/runner.js → server/server.js} +408 -374
- package/dist/server/server.js.map +1 -0
- package/dist/{host → server}/state.d.ts +25 -25
- package/dist/{host → server}/state.js +49 -49
- package/dist/server/state.js.map +1 -0
- package/dist/{host → server}/view.d.ts +7 -7
- package/dist/{host → server}/view.js +13 -13
- package/dist/server/view.js.map +1 -0
- package/dist/server/workflow-runner-content.d.ts +6 -0
- package/dist/server/workflow-runner-content.js +96 -0
- package/dist/server/workflow-runner-content.js.map +1 -0
- package/dist/{host/worker-entry.d.ts → server/workflow-runner-entry.d.ts} +3 -3
- package/dist/{host/worker-entry.js → server/workflow-runner-entry.js} +68 -35
- package/dist/server/workflow-runner-entry.js.map +1 -0
- package/dist/server/workflow-runner-protocol.d.ts +69 -0
- package/dist/server/workflow-runner-protocol.js +176 -0
- package/dist/server/workflow-runner-protocol.js.map +1 -0
- package/dist/{host/worker-store.d.ts → server/workflow-runner-store.d.ts} +11 -11
- package/dist/{host/worker-store.js → server/workflow-runner-store.js} +8 -8
- package/dist/server/workflow-runner-store.js.map +1 -0
- package/dist/server/workflow-runner-supervisor.d.ts +22 -0
- package/dist/server/workflow-runner-supervisor.js +56 -0
- package/dist/server/workflow-runner-supervisor.js.map +1 -0
- package/dist/state/prune.d.ts +1 -1
- package/dist/state/prune.js +17 -10
- package/dist/state/prune.js.map +1 -1
- package/dist/state/schema.js +2 -2
- package/dist/state/workflow-messages.d.ts +1 -1
- package/dist/state/workflow-messages.js +1 -1
- package/dist/state/workflow-messages.js.map +1 -1
- package/dist/viewer/backup.js +1 -1
- package/dist/viewer/backup.js.map +1 -1
- package/dist/viewer/cli.d.ts +2 -2
- package/dist/viewer/cli.js +46 -32
- package/dist/viewer/cli.js.map +1 -1
- package/dist/viewer/tui.d.ts +1 -1
- package/dist/viewer/tui.js +1 -1
- package/dist/viewer/tui.js.map +1 -1
- package/dist/workflows/command-batch.js +2 -2
- package/dist/workflows/engine.js +14 -15
- package/dist/workflows/engine.js.map +1 -1
- package/dist/workflows/store.d.ts +12 -11
- package/dist/workflows/store.js +24 -18
- package/dist/workflows/store.js.map +1 -1
- package/dist/workflows/types.d.ts +2 -2
- package/docs/2026-08-20-durable-workflow-launch-plan.md +12 -12
- package/docs/2026-08-25-workflow-follow-ups.md +7 -7
- package/docs/2026-08-25-workflow-settings.md +3 -3
- package/docs/2026-08-30-out-of-process-workflow-host-plan.md +3 -3
- package/docs/2026-09-01-restore-session-delivery-controls-plan.md +5 -5
- package/docs/2026-09-01-unified-workflow-client-plan.md +6 -6
- package/docs/2026-09-02-installed-live-e2e-plan.md +3 -3
- package/docs/2026-09-02-unify-workflow-messages-plan.md +8 -8
- package/docs/2026-09-04-workflow-run-state-plan.md +6 -6
- package/docs/DEFERRED_TURNS.md +7 -7
- package/docs/DESIGN_PHILOSOPHY.md +1 -1
- package/docs/HUMAN_DECISIONS.md +11 -11
- package/docs/HUMAN_DECISION_PRESENTATIONS.md +4 -4
- package/docs/MONITOR.md +1 -1
- package/docs/RESOURCE_MANAGERS.md +221 -0
- package/docs/SQLITE_STATE.md +35 -33
- package/docs/WORKFLOW_COMPOSITION.md +1 -1
- package/docs/{WORKFLOW_HOST.md → WORKFLOW_SERVER.md} +125 -119
- package/docs/WORKFLOW_STEP_MESSAGES.md +18 -18
- package/docs/WORKFLOW_UPDATES.md +16 -16
- package/docs/development.md +15 -14
- package/docs/live-replay-protocol.md +20 -20
- package/docs/plans/2026-08-04-controller-runtime-plan.md +25 -25
- package/docs/plans/2026-08-05-always-on-workflows-plan.md +8 -8
- package/docs/plans/2026-08-10-agent-managed-monitor-workflows-plan.md +2 -2
- package/docs/plans/2026-08-13-session-addressed-workflow-notifications-plan.md +1 -1
- package/docs/plans/2026-08-16-workflow-updates-plan.md +5 -5
- package/docs/plans/2026-08-19-human-decision-gates-plan.md +1 -1
- package/docs/plans/2026-08-20-bounded-command-batches-plan.md +1 -1
- package/docs/plans/2026-08-21-deferred-turn-intents-plan.md +3 -3
- package/docs/plans/2026-08-21-sanity-check-plan.md +2 -2
- package/docs/plans/2026-08-23-assistant-agent-completion-plan.md +5 -5
- package/docs/plans/2026-08-23-sqlite-state-plan.md +25 -25
- package/docs/plans/2026-08-25-live-workflow-settings-plan.md +4 -4
- package/docs/plans/2026-08-27-workflow-terminal-restart-plan.md +3 -3
- package/docs/plans/2026-09-04-workflow-runner-resume-state-plan.md +318 -0
- package/docs/plans/piw-viewer-experience-implementation-plan.md +1 -1
- package/docs/tui-viewer.md +9 -9
- package/docs/workflows.md +72 -66
- package/examples/{controllers/pull-request.controller.ts → resource-managers/pull-request.resource-manager.ts} +12 -12
- package/herdr-plugin.toml +1 -1
- package/package.json +12 -11
- package/protocol/client.v1.schema.json +7 -7
- package/protocol/fixtures/client-v1.json +1 -1
- package/src/builtins/monitor.workflow.ts +9 -9
- package/src/builtins/pi-agent-group.ts +3 -3
- package/src/channels/adapter-entry.ts +14 -14
- package/src/client/client.ts +33 -32
- package/src/client/protocol.ts +16 -11
- package/src/client/resolver.ts +4 -4
- package/src/client/view.ts +1 -1
- package/src/extension/index.ts +44 -34
- package/src/extension/recorder.ts +1 -1
- package/src/extension/remote-recorder-store.ts +2 -2
- package/src/extension/resource-manager-command.ts +45 -0
- package/src/extension/session-delivery.ts +2 -2
- package/src/extension/session-view.ts +1 -1
- package/src/extension/workflow-message-coordinator.ts +6 -6
- package/src/{controllers → resource-managers}/conditions.ts +23 -23
- package/src/resource-managers/definition.ts +71 -0
- package/src/{controllers → resource-managers}/effects.ts +9 -9
- package/src/resource-managers/errors.ts +27 -0
- package/src/resource-managers/index.ts +88 -0
- package/src/resource-managers/loader.ts +111 -0
- package/src/{controllers → resource-managers}/results.ts +4 -4
- package/src/{controllers/manager.ts → resource-managers/runtime.ts} +95 -92
- package/src/{controllers → resource-managers}/sqlite.ts +198 -186
- package/src/{controllers → resource-managers}/store.ts +46 -38
- package/src/{controllers → resource-managers}/types.ts +50 -41
- package/src/{controllers → resource-managers}/workflows.ts +43 -41
- package/src/{host → server}/channel-supervisor.ts +8 -8
- package/src/{host/child-worker-supervisor.ts → server/child-runner-supervisor.ts} +22 -18
- package/src/{host → server}/processes.ts +3 -3
- package/src/{host → server}/resolver-entry.ts +28 -25
- package/src/{host/controller-worker-entry.ts → server/resource-runner-entry.ts} +67 -65
- package/src/server/resource-runner-protocol.ts +103 -0
- package/src/server/resource-runner-supervisor.ts +76 -0
- package/src/{host → server}/rpc-bridge.ts +3 -3
- package/src/{host → server}/rpc-executor.ts +4 -4
- package/src/{host/host-entry.ts → server/server-entry.ts} +5 -5
- package/src/{host/runner.ts → server/server.ts} +526 -461
- package/src/{host → server}/state.ts +78 -67
- package/src/{host → server}/view.ts +15 -15
- package/src/server/workflow-runner-content.ts +119 -0
- package/src/{host/worker-entry.ts → server/workflow-runner-entry.ts} +98 -57
- package/src/server/workflow-runner-protocol.ts +241 -0
- package/src/{host/worker-store.ts → server/workflow-runner-store.ts} +18 -20
- package/src/server/workflow-runner-supervisor.ts +79 -0
- package/src/state/prune.ts +27 -9
- package/src/state/schema.ts +2 -2
- package/src/state/workflow-messages.ts +1 -1
- package/src/viewer/backup.ts +1 -1
- package/src/viewer/cli.ts +50 -36
- package/src/viewer/tui.ts +1 -1
- package/src/workflows/command-batch.ts +2 -2
- package/src/workflows/engine.ts +14 -15
- package/src/workflows/store.ts +31 -28
- package/src/workflows/types.ts +2 -2
- package/dist/controllers/conditions.d.ts +0 -6
- package/dist/controllers/conditions.js.map +0 -1
- package/dist/controllers/definition.d.ts +0 -6
- package/dist/controllers/definition.js +0 -45
- package/dist/controllers/definition.js.map +0 -1
- package/dist/controllers/effects.d.ts +0 -15
- package/dist/controllers/effects.js.map +0 -1
- package/dist/controllers/errors.d.ts +0 -12
- package/dist/controllers/errors.js +0 -25
- package/dist/controllers/errors.js.map +0 -1
- package/dist/controllers/index.d.ts +0 -12
- package/dist/controllers/index.js +0 -12
- package/dist/controllers/index.js.map +0 -1
- package/dist/controllers/json.js.map +0 -1
- package/dist/controllers/loader.d.ts +0 -23
- package/dist/controllers/loader.js +0 -74
- package/dist/controllers/loader.js.map +0 -1
- package/dist/controllers/manager.d.ts +0 -59
- package/dist/controllers/manager.js.map +0 -1
- package/dist/controllers/results.d.ts +0 -5
- package/dist/controllers/results.js.map +0 -1
- package/dist/controllers/sqlite.js.map +0 -1
- package/dist/controllers/workflows.d.ts +0 -34
- package/dist/controllers/workflows.js.map +0 -1
- package/dist/extension/controller-command.js.map +0 -1
- package/dist/host/channel-effects.js.map +0 -1
- package/dist/host/channel-supervisor.js.map +0 -1
- package/dist/host/child-worker-supervisor.js.map +0 -1
- package/dist/host/controller-worker-entry.d.ts +0 -2
- package/dist/host/controller-worker-entry.js.map +0 -1
- package/dist/host/controller-worker-protocol.d.ts +0 -36
- package/dist/host/controller-worker-protocol.js +0 -49
- package/dist/host/controller-worker-protocol.js.map +0 -1
- package/dist/host/controller-worker-supervisor.d.ts +0 -21
- package/dist/host/controller-worker-supervisor.js +0 -54
- package/dist/host/controller-worker-supervisor.js.map +0 -1
- package/dist/host/host-entry.js.map +0 -1
- package/dist/host/processes.js.map +0 -1
- package/dist/host/resolver-entry.js.map +0 -1
- package/dist/host/rpc-bridge.js.map +0 -1
- package/dist/host/rpc-executor.js.map +0 -1
- package/dist/host/runner.js.map +0 -1
- package/dist/host/state.js.map +0 -1
- package/dist/host/view.js.map +0 -1
- package/dist/host/worker-entry.js.map +0 -1
- package/dist/host/worker-protocol.d.ts +0 -46
- package/dist/host/worker-protocol.js +0 -122
- package/dist/host/worker-protocol.js.map +0 -1
- package/dist/host/worker-store.js.map +0 -1
- package/dist/host/worker-supervisor.d.ts +0 -22
- package/dist/host/worker-supervisor.js.map +0 -1
- package/docs/CONTROLLERS.md +0 -217
- package/src/controllers/definition.ts +0 -65
- package/src/controllers/errors.ts +0 -27
- package/src/controllers/index.ts +0 -88
- package/src/controllers/loader.ts +0 -104
- package/src/extension/controller-command.ts +0 -45
- package/src/host/controller-worker-protocol.ts +0 -104
- package/src/host/controller-worker-supervisor.ts +0 -79
- package/src/host/worker-protocol.ts +0 -176
- package/src/host/worker-supervisor.ts +0 -74
- /package/dist/{controllers → resource-managers}/json.d.ts +0 -0
- /package/dist/{controllers → resource-managers}/json.js +0 -0
- /package/dist/{controllers → resource-managers}/results.js +0 -0
- /package/dist/{controllers → resource-managers}/store.js +0 -0
- /package/dist/{controllers → resource-managers}/types.js +0 -0
- /package/dist/{host → server}/channel-effects.d.ts +0 -0
- /package/dist/{host → server}/channel-effects.js +0 -0
- /package/dist/{host/host-entry.d.ts → server/server-entry.d.ts} +0 -0
- /package/src/{controllers → resource-managers}/json.ts +0 -0
- /package/src/{host → server}/channel-effects.ts +0 -0
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { once } from "node:events";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import { jsonFingerprint } from "../
|
|
6
|
-
import {
|
|
7
|
-
import { createResultHelpers } from "../
|
|
5
|
+
import { jsonFingerprint } from "../resource-managers/json.js";
|
|
6
|
+
import { loadResourceManagerFile } from "../resource-managers/loader.js";
|
|
7
|
+
import { createResultHelpers } from "../resource-managers/results.js";
|
|
8
8
|
import { parseJson } from "../state/json.js";
|
|
9
9
|
import { errorMessage } from "../workflows/errors.js";
|
|
10
|
-
import {
|
|
11
|
-
const STARTUP_ENV = "
|
|
10
|
+
import { RESOURCE_RUNNER_LAUNCH_SCHEMA, encodeResourceRunnerLine, parseResourceRunnerResponse, } from "./resource-runner-protocol.js";
|
|
11
|
+
const STARTUP_ENV = "PI_WORKFLOWS_RESOURCE_RUNNER_LAUNCH";
|
|
12
12
|
const MAX_FRAME_BYTES = 1024 * 1024;
|
|
13
|
-
class
|
|
13
|
+
class ResourceRunnerTransport {
|
|
14
14
|
launch;
|
|
15
15
|
pending = new Map();
|
|
16
16
|
buffered = Buffer.alloc(0);
|
|
@@ -25,14 +25,14 @@ class ControllerWorkerTransport {
|
|
|
25
25
|
schema: "pi-workflows.controller-worker-message.v1",
|
|
26
26
|
launchSchema: this.launch.schema,
|
|
27
27
|
messageId: randomUUID(),
|
|
28
|
-
|
|
28
|
+
runnerEpoch: this.launch.runnerEpoch,
|
|
29
29
|
generation: this.launch.generation,
|
|
30
30
|
operation,
|
|
31
31
|
payload,
|
|
32
32
|
};
|
|
33
33
|
const response = await this.send(message);
|
|
34
34
|
if (response.outcome !== "accepted") {
|
|
35
|
-
throw new Error(response.error ?? `
|
|
35
|
+
throw new Error(response.error ?? `Resource runner ${response.outcome}`);
|
|
36
36
|
}
|
|
37
37
|
return response.result;
|
|
38
38
|
}
|
|
@@ -40,13 +40,13 @@ class ControllerWorkerTransport {
|
|
|
40
40
|
process.stdin.pause();
|
|
41
41
|
process.stdin.removeAllListeners("data");
|
|
42
42
|
process.stdin.removeAllListeners("error");
|
|
43
|
-
this.failAll(new Error("
|
|
43
|
+
this.failAll(new Error("Resource runner transport closed"));
|
|
44
44
|
}
|
|
45
45
|
async send(message) {
|
|
46
46
|
const response = new Promise((resolve, reject) => {
|
|
47
47
|
this.pending.set(message.messageId, { resolve, reject });
|
|
48
48
|
});
|
|
49
|
-
if (!process.stdout.write(
|
|
49
|
+
if (!process.stdout.write(encodeResourceRunnerLine(message))) {
|
|
50
50
|
await once(process.stdout, "drain");
|
|
51
51
|
}
|
|
52
52
|
return await response;
|
|
@@ -54,7 +54,7 @@ class ControllerWorkerTransport {
|
|
|
54
54
|
onData(chunk) {
|
|
55
55
|
this.buffered = Buffer.concat([this.buffered, chunk]);
|
|
56
56
|
if (this.buffered.byteLength > MAX_FRAME_BYTES && !this.buffered.includes(0x0a)) {
|
|
57
|
-
this.failAll(new Error("
|
|
57
|
+
this.failAll(new Error("Resource runner response exceeds 1 MiB"));
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
for (;;) {
|
|
@@ -66,10 +66,10 @@ class ControllerWorkerTransport {
|
|
|
66
66
|
if (frame.byteLength === 0)
|
|
67
67
|
continue;
|
|
68
68
|
try {
|
|
69
|
-
const response =
|
|
69
|
+
const response = parseResourceRunnerResponse(frame);
|
|
70
70
|
const pending = this.pending.get(response.messageId);
|
|
71
71
|
if (pending === undefined)
|
|
72
|
-
throw new Error("
|
|
72
|
+
throw new Error("Resource runner response is unexpected");
|
|
73
73
|
this.pending.delete(response.messageId);
|
|
74
74
|
pending.resolve(response);
|
|
75
75
|
}
|
|
@@ -84,7 +84,7 @@ class ControllerWorkerTransport {
|
|
|
84
84
|
this.pending.clear();
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
class
|
|
87
|
+
class ServerBackedResourceManagerEffects {
|
|
88
88
|
transport;
|
|
89
89
|
signal;
|
|
90
90
|
used = false;
|
|
@@ -138,7 +138,7 @@ class HostedControllerEffects {
|
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
class
|
|
141
|
+
class ServerBackedResourceManagerWorkflows {
|
|
142
142
|
transport;
|
|
143
143
|
constructor(transport) {
|
|
144
144
|
this.transport = transport;
|
|
@@ -156,31 +156,31 @@ class HostedControllerWorkflows {
|
|
|
156
156
|
return await this.transport.request("workflow.removeFollowUp", request);
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
export async function
|
|
159
|
+
export async function runResourceRunner() {
|
|
160
160
|
const launch = readLaunchEnvelope();
|
|
161
|
-
const transport = new
|
|
161
|
+
const transport = new ResourceRunnerTransport(launch);
|
|
162
162
|
try {
|
|
163
|
-
const definition = await
|
|
164
|
-
if (definition.name !== launch.
|
|
165
|
-
throw new Error(`
|
|
163
|
+
const definition = await loadResourceManagerFile(launch.definitionPath);
|
|
164
|
+
if (definition.name !== launch.resourceManagerName) {
|
|
165
|
+
throw new Error(`ResourceManager source name changed: expected ${launch.resourceManagerName}, got ${definition.name}`);
|
|
166
166
|
}
|
|
167
|
-
await transport.request("
|
|
167
|
+
await transport.request("runner.ready", {});
|
|
168
168
|
const abort = new AbortController();
|
|
169
169
|
const timeoutMs = definition.timeoutMs ?? launch.timeoutMs;
|
|
170
170
|
const timer = setTimeout(() => abort.abort(new Error(`Reconciliation timed out after ${timeoutMs}ms`)), timeoutMs);
|
|
171
171
|
try {
|
|
172
172
|
const context = {
|
|
173
173
|
signal: abort.signal,
|
|
174
|
-
effects: new
|
|
175
|
-
workflows: new
|
|
174
|
+
effects: new ServerBackedResourceManagerEffects(transport, abort.signal),
|
|
175
|
+
workflows: new ServerBackedResourceManagerWorkflows(transport),
|
|
176
176
|
...createResultHelpers(),
|
|
177
177
|
};
|
|
178
178
|
const result = await raceWithAbort(Promise.resolve(definition.reconcile(context, launch.resource)), abort.signal);
|
|
179
179
|
validateResult(result);
|
|
180
|
-
await transport.request("
|
|
180
|
+
await transport.request("runner.finished", result);
|
|
181
181
|
}
|
|
182
182
|
catch (error) {
|
|
183
|
-
await transport.request("
|
|
183
|
+
await transport.request("runner.failed", { error: boundedError(error) });
|
|
184
184
|
}
|
|
185
185
|
finally {
|
|
186
186
|
clearTimeout(timer);
|
|
@@ -194,27 +194,27 @@ export async function runControllerWorker() {
|
|
|
194
194
|
function readLaunchEnvelope() {
|
|
195
195
|
const encoded = process.env[STARTUP_ENV];
|
|
196
196
|
if (encoded === undefined)
|
|
197
|
-
throw new Error("
|
|
197
|
+
throw new Error("Resource runner launch envelope is missing");
|
|
198
198
|
const value = parseJson(Buffer.from(encoded, "base64url").toString("utf8"));
|
|
199
199
|
if (typeof value !== "object" ||
|
|
200
200
|
value === null ||
|
|
201
201
|
Array.isArray(value) ||
|
|
202
|
-
value.schema !==
|
|
203
|
-
throw new Error("
|
|
202
|
+
value.schema !== RESOURCE_RUNNER_LAUNCH_SCHEMA) {
|
|
203
|
+
throw new Error("Resource runner launch envelope is invalid");
|
|
204
204
|
}
|
|
205
205
|
return value;
|
|
206
206
|
}
|
|
207
207
|
function validateResult(value) {
|
|
208
208
|
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
209
|
-
throw new Error("
|
|
209
|
+
throw new Error("ResourceManager reconcile result must be an object");
|
|
210
210
|
}
|
|
211
211
|
const result = value;
|
|
212
212
|
if (result.kind !== "settled" && result.kind !== "requeue") {
|
|
213
|
-
throw new Error("
|
|
213
|
+
throw new Error("ResourceManager reconcile result kind is invalid");
|
|
214
214
|
}
|
|
215
215
|
if (result.afterMs !== undefined &&
|
|
216
216
|
(!Number.isSafeInteger(result.afterMs) || result.afterMs < 0)) {
|
|
217
|
-
throw new Error("
|
|
217
|
+
throw new Error("ResourceManager reconcile afterMs must be a non-negative safe integer");
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
220
|
function raceWithAbort(operation, signal) {
|
|
@@ -232,7 +232,7 @@ function boundedError(error) {
|
|
|
232
232
|
}
|
|
233
233
|
async function main() {
|
|
234
234
|
try {
|
|
235
|
-
process.exitCode = await
|
|
235
|
+
process.exitCode = await runResourceRunner();
|
|
236
236
|
}
|
|
237
237
|
catch (error) {
|
|
238
238
|
process.stderr.write(`${errorMessage(error)}\n`);
|
|
@@ -241,4 +241,4 @@ async function main() {
|
|
|
241
241
|
}
|
|
242
242
|
if (process.argv[1] === fileURLToPath(import.meta.url))
|
|
243
243
|
void main();
|
|
244
|
-
//# sourceMappingURL=
|
|
244
|
+
//# sourceMappingURL=resource-runner-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-runner-entry.js","sourceRoot":"","sources":["../../src/server/resource-runner-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ManagedResource } from "../resource-managers/types.js";
|
|
2
|
+
import { type JsonValue } from "../state/json.js";
|
|
3
|
+
export declare const RESOURCE_RUNNER_LAUNCH_SCHEMA: "pi-workflows.controller-worker-launch.v1";
|
|
4
|
+
export declare const RESOURCE_RUNNER_MESSAGE_SCHEMA: "pi-workflows.controller-worker-message.v1";
|
|
5
|
+
export declare const RESOURCE_RUNNER_RESPONSE_SCHEMA: "pi-workflows.controller-worker-response.v1";
|
|
6
|
+
export type ResourceRunnerLaunchEnvelope = {
|
|
7
|
+
schema: typeof RESOURCE_RUNNER_LAUNCH_SCHEMA;
|
|
8
|
+
runnerEpoch: string;
|
|
9
|
+
serverEpoch: number;
|
|
10
|
+
generation: number;
|
|
11
|
+
projectPath: string;
|
|
12
|
+
definitionPath: string;
|
|
13
|
+
resourceManagerName: string;
|
|
14
|
+
resource: ManagedResource;
|
|
15
|
+
timeoutMs: number;
|
|
16
|
+
};
|
|
17
|
+
export type ResourceRunnerOperation = "runner.ready" | "effect.reserve" | "effect.settle" | "workflow.ensure" | "workflow.changeSettings" | "workflow.queueFollowUp" | "workflow.removeFollowUp" | "runner.finished" | "runner.failed";
|
|
18
|
+
export type ResourceRunnerMessage = {
|
|
19
|
+
schema: typeof RESOURCE_RUNNER_MESSAGE_SCHEMA;
|
|
20
|
+
launchSchema: typeof RESOURCE_RUNNER_LAUNCH_SCHEMA;
|
|
21
|
+
messageId: string;
|
|
22
|
+
runnerEpoch: string;
|
|
23
|
+
generation: number;
|
|
24
|
+
operation: ResourceRunnerOperation;
|
|
25
|
+
payload: JsonValue;
|
|
26
|
+
};
|
|
27
|
+
export type ResourceRunnerResponse = {
|
|
28
|
+
schema: typeof RESOURCE_RUNNER_RESPONSE_SCHEMA;
|
|
29
|
+
messageId: string;
|
|
30
|
+
outcome: "accepted" | "rejected" | "claimLost";
|
|
31
|
+
result?: JsonValue;
|
|
32
|
+
error?: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function encodeResourceRunnerLine(value: ResourceRunnerMessage | ResourceRunnerResponse): Buffer;
|
|
35
|
+
export declare function parseResourceRunnerMessage(frame: Buffer): ResourceRunnerMessage;
|
|
36
|
+
export declare function parseResourceRunnerResponse(frame: Buffer): ResourceRunnerResponse;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { canonicalJson, parseJson } from "../state/json.js";
|
|
2
|
+
export const RESOURCE_RUNNER_LAUNCH_SCHEMA = "pi-workflows.controller-worker-launch.v1";
|
|
3
|
+
export const RESOURCE_RUNNER_MESSAGE_SCHEMA = "pi-workflows.controller-worker-message.v1";
|
|
4
|
+
export const RESOURCE_RUNNER_RESPONSE_SCHEMA = "pi-workflows.controller-worker-response.v1";
|
|
5
|
+
export function encodeResourceRunnerLine(value) {
|
|
6
|
+
return Buffer.from(`${canonicalJson(value)}\n`, "utf8");
|
|
7
|
+
}
|
|
8
|
+
export function parseResourceRunnerMessage(frame) {
|
|
9
|
+
const value = parseJson(frame.toString("utf8"));
|
|
10
|
+
if (!isRecord(value) || value.schema !== RESOURCE_RUNNER_MESSAGE_SCHEMA) {
|
|
11
|
+
throw new Error("Invalid resource runner message schema");
|
|
12
|
+
}
|
|
13
|
+
if (value.launchSchema !== RESOURCE_RUNNER_LAUNCH_SCHEMA ||
|
|
14
|
+
typeof value.messageId !== "string" ||
|
|
15
|
+
typeof value.runnerEpoch !== "string" ||
|
|
16
|
+
!Number.isSafeInteger(value.generation) ||
|
|
17
|
+
typeof value.operation !== "string" ||
|
|
18
|
+
!OPERATIONS.has(value.operation) ||
|
|
19
|
+
!Object.hasOwn(value, "payload")) {
|
|
20
|
+
throw new Error("Invalid resource runner message");
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
export function parseResourceRunnerResponse(frame) {
|
|
25
|
+
const value = parseJson(frame.toString("utf8"));
|
|
26
|
+
if (!isRecord(value) || value.schema !== RESOURCE_RUNNER_RESPONSE_SCHEMA) {
|
|
27
|
+
throw new Error("Invalid resource runner response schema");
|
|
28
|
+
}
|
|
29
|
+
if (typeof value.messageId !== "string" ||
|
|
30
|
+
!["accepted", "rejected", "claimLost"].includes(String(value.outcome))) {
|
|
31
|
+
throw new Error("Invalid resource runner response");
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
const OPERATIONS = new Set([
|
|
36
|
+
"runner.ready",
|
|
37
|
+
"effect.reserve",
|
|
38
|
+
"effect.settle",
|
|
39
|
+
"workflow.ensure",
|
|
40
|
+
"workflow.changeSettings",
|
|
41
|
+
"workflow.queueFollowUp",
|
|
42
|
+
"workflow.removeFollowUp",
|
|
43
|
+
"runner.finished",
|
|
44
|
+
"runner.failed",
|
|
45
|
+
]);
|
|
46
|
+
function isRecord(value) {
|
|
47
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=resource-runner-protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-runner-protocol.js","sourceRoot":"","sources":["../../src/server/resource-runner-protocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAE5E,MAAM,CAAC,MAAM,6BAA6B,GAAG,0CAAmD,CAAC;AACjG,MAAM,CAAC,MAAM,8BAA8B,GAAG,2CAAoD,CAAC;AACnG,MAAM,CAAC,MAAM,+BAA+B,GAC1C,4CAAqD,CAAC;AA2CxD,MAAM,UAAU,wBAAwB,CACtC,KAAqD;IAErD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,8BAA8B,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,IACE,KAAK,CAAC,YAAY,KAAK,6BAA6B;QACpD,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QACvC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAoC,CAAC;QAC3D,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAChC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAA8B,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,+BAA+B,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,IACE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EACtE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAA+B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAA0B;IAClD,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,yBAAyB;IACzB,wBAAwB;IACxB,yBAAyB;IACzB,iBAAiB;IACjB,eAAe;CAChB,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type SupervisedRunnerResult } from "./child-runner-supervisor.js";
|
|
2
|
+
import { ServerProcessRegistry, type ProcessIdentity } from "./processes.js";
|
|
3
|
+
import { type ResourceRunnerLaunchEnvelope, type ResourceRunnerMessage, type ResourceRunnerResponse } from "./resource-runner-protocol.js";
|
|
4
|
+
import type { RunnerOutcome } from "./state.js";
|
|
5
|
+
export declare class ResourceRunnerSupervisor {
|
|
6
|
+
readonly envelope: ResourceRunnerLaunchEnvelope;
|
|
7
|
+
private readonly options;
|
|
8
|
+
private readonly supervisor;
|
|
9
|
+
constructor(envelope: ResourceRunnerLaunchEnvelope, options: {
|
|
10
|
+
registry: ServerProcessRegistry;
|
|
11
|
+
onMessage: (message: ResourceRunnerMessage) => Promise<ResourceRunnerResponse>;
|
|
12
|
+
env?: Record<string, string>;
|
|
13
|
+
startupTimeoutMs?: number;
|
|
14
|
+
runnerEntryPath?: string;
|
|
15
|
+
onSpawn?: (identity: ProcessIdentity) => void;
|
|
16
|
+
onDiagnostic?: (message: string) => void;
|
|
17
|
+
});
|
|
18
|
+
start(): Promise<void>;
|
|
19
|
+
wait(): Promise<SupervisedRunnerResult>;
|
|
20
|
+
stop(outcome?: RunnerOutcome): Promise<void>;
|
|
21
|
+
}
|
|
@@ -2,24 +2,24 @@ import fs from "node:fs";
|
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { canonicalJson } from "../state/json.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
export class
|
|
5
|
+
import { ChildRunnerSupervisor } from "./child-runner-supervisor.js";
|
|
6
|
+
import { ServerProcessRegistry } from "./processes.js";
|
|
7
|
+
import { encodeResourceRunnerLine, parseResourceRunnerMessage, } from "./resource-runner-protocol.js";
|
|
8
|
+
export class ResourceRunnerSupervisor {
|
|
9
9
|
envelope;
|
|
10
10
|
options;
|
|
11
11
|
supervisor;
|
|
12
12
|
constructor(envelope, options) {
|
|
13
13
|
this.envelope = envelope;
|
|
14
14
|
this.options = options;
|
|
15
|
-
this.supervisor = new
|
|
16
|
-
label: "
|
|
15
|
+
this.supervisor = new ChildRunnerSupervisor({
|
|
16
|
+
label: "Resource runner",
|
|
17
17
|
registry: options.registry,
|
|
18
18
|
onMessage: options.onMessage,
|
|
19
|
-
parseMessage:
|
|
20
|
-
encodeResponse:
|
|
21
|
-
isReady: (message) => message.
|
|
22
|
-
isTerminal: (message) => message.
|
|
19
|
+
parseMessage: parseResourceRunnerMessage,
|
|
20
|
+
encodeResponse: encodeResourceRunnerLine,
|
|
21
|
+
isReady: (message) => message.operation === "runner.ready",
|
|
22
|
+
isTerminal: (message) => message.operation === "runner.finished" || message.operation === "runner.failed",
|
|
23
23
|
...(options.startupTimeoutMs === undefined
|
|
24
24
|
? {}
|
|
25
25
|
: { startupTimeoutMs: options.startupTimeoutMs }),
|
|
@@ -28,19 +28,19 @@ export class WorkflowWorkerSupervisor {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
async start() {
|
|
31
|
-
const builtEntry = fileURLToPath(new URL("./
|
|
32
|
-
const sourceEntry = fileURLToPath(new URL("./
|
|
33
|
-
const
|
|
34
|
-
const args = this.options.
|
|
31
|
+
const builtEntry = fileURLToPath(new URL("./resource-runner-entry.js", import.meta.url));
|
|
32
|
+
const sourceEntry = fileURLToPath(new URL("./resource-runner-entry.ts", import.meta.url));
|
|
33
|
+
const runnerEntry = this.options.runnerEntryPath ?? builtEntry;
|
|
34
|
+
const args = this.options.runnerEntryPath === undefined && !fs.existsSync(builtEntry)
|
|
35
35
|
? ["--import", createRequire(import.meta.url).resolve("tsx"), sourceEntry]
|
|
36
|
-
: [
|
|
36
|
+
: [runnerEntry];
|
|
37
37
|
await this.supervisor.start({
|
|
38
38
|
args,
|
|
39
39
|
cwd: this.envelope.projectPath,
|
|
40
40
|
env: {
|
|
41
41
|
...process.env,
|
|
42
42
|
...this.options.env,
|
|
43
|
-
|
|
43
|
+
PI_WORKFLOWS_RESOURCE_RUNNER_LAUNCH: Buffer.from(canonicalJson(this.envelope)).toString("base64url"),
|
|
44
44
|
},
|
|
45
45
|
});
|
|
46
46
|
}
|
|
@@ -51,4 +51,4 @@ export class WorkflowWorkerSupervisor {
|
|
|
51
51
|
await this.supervisor.stop(outcome);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=
|
|
54
|
+
//# sourceMappingURL=resource-runner-supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-runner-supervisor.js","sourceRoot":"","sources":["../../src/server/resource-runner-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAA+B,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAwB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAI3B,MAAM,+BAA+B,CAAC;AAGvC,MAAM,OAAO,wBAAwB;IAIxB,QAAQ;IACA,OAAO;IAJT,UAAU,CAAuE;IAElG,YACW,QAAsC,EAC9B,OAQhB;wBATQ,QAAQ;uBACA,OAAO;QAUxB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC;YAC1C,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,0BAA0B;YACxC,cAAc,EAAE,wBAAwB;YACxC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,cAAc;YAC1D,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CACtB,OAAO,CAAC,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAAC,SAAS,KAAK,eAAe;YAClF,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACnD,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;SACtF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,4BAA4B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,4BAA4B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,UAAU,CAAC;QAC/D,MAAM,IAAI,GACR,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YACtE,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;YAC1E,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACpB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAC1B,IAAI;YACJ,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;YAC9B,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG;gBACnB,mCAAmC,EAAE,MAAM,CAAC,IAAI,CAC9C,aAAa,CAAC,IAAI,CAAC,QAAgC,CAAC,CACrD,CAAC,QAAQ,CAAC,WAAW,CAAC;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAO,GAAkB,WAAW;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -2,8 +2,8 @@ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
|
2
2
|
export declare const RPC_SUBMISSION_PREFIX = "PI_WORKFLOWS_STEP_SUBMISSION ";
|
|
3
3
|
/**
|
|
4
4
|
* Loaded into headless `pi --mode rpc` children spawned by the standalone
|
|
5
|
-
*
|
|
6
|
-
* `workflow` tool and reports every submission to the
|
|
7
|
-
*
|
|
5
|
+
* server. The child has no workflow engine, so this bridge only registers the
|
|
6
|
+
* `workflow` tool and reports every submission to the server over stderr; the
|
|
7
|
+
* server validates against the engine and re-prompts on rejection.
|
|
8
8
|
*/
|
|
9
9
|
export default function piWorkflowsRpcBridge(pi: ExtensionAPI): void;
|
|
@@ -2,9 +2,9 @@ import { parseWorkflowSubmissionInput, WorkflowSubmissionToolParameters, } from
|
|
|
2
2
|
export const RPC_SUBMISSION_PREFIX = "PI_WORKFLOWS_STEP_SUBMISSION ";
|
|
3
3
|
/**
|
|
4
4
|
* Loaded into headless `pi --mode rpc` children spawned by the standalone
|
|
5
|
-
*
|
|
6
|
-
* `workflow` tool and reports every submission to the
|
|
7
|
-
*
|
|
5
|
+
* server. The child has no workflow engine, so this bridge only registers the
|
|
6
|
+
* `workflow` tool and reports every submission to the server over stderr; the
|
|
7
|
+
* server validates against the engine and re-prompts on rejection.
|
|
8
8
|
*/
|
|
9
9
|
export default function piWorkflowsRpcBridge(pi) {
|
|
10
10
|
pi.registerTool({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-bridge.js","sourceRoot":"","sources":["../../src/server/rpc-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,qBAAqB,GAAG,+BAA+B,CAAC;AAErE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAgB;IAC3D,EAAE,CAAC,YAAY,CAAC;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE;YACX,uEAAuE;YACvE,oFAAoF;YACpF,wDAAwD;SACzD,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,UAAU,EAAE,gCAAgC;QAC5C,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS;YACjC,MAAM,MAAM,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,IAAI,CACzF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EACF,MAAM,CAAC,MAAM,KAAK,QAAQ;4BACxB,CAAC,CAAC,sDAAsD;4BACxD,CAAC,CAAC,2EAA2E;qBAClF;iBACF;gBACD,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -12,7 +12,7 @@ export type RpcStepExecutorOptions = {
|
|
|
12
12
|
abortGraceMs?: number;
|
|
13
13
|
/** Absolute path to the pi binary; defaults to the installed `pi`. */
|
|
14
14
|
piBin?: string;
|
|
15
|
-
/** Extra environment for the child; the
|
|
15
|
+
/** Extra environment for the child; the server's environment is inherited. */
|
|
16
16
|
env?: Record<string, string>;
|
|
17
17
|
/** Extra pi arguments, for example a model override. */
|
|
18
18
|
piArgs?: string[];
|
|
@@ -108,7 +108,7 @@ export class RpcStepExecutor {
|
|
|
108
108
|
"--no-session",
|
|
109
109
|
// Isolation is required: an installed pi-workflows extension would
|
|
110
110
|
// otherwise load beside the bridge, register a competing workflow
|
|
111
|
-
// tool, and start its own resume and
|
|
111
|
+
// tool, and start its own resume and resource runners.
|
|
112
112
|
"--no-extensions",
|
|
113
113
|
"-e",
|
|
114
114
|
BRIDGE_PATH,
|
|
@@ -125,7 +125,7 @@ export class RpcStepExecutor {
|
|
|
125
125
|
this.wakeSubmissionWaiters();
|
|
126
126
|
});
|
|
127
127
|
// A failed spawn (missing binary, EACCES) emits error instead of exit;
|
|
128
|
-
// without a listener it would crash the
|
|
128
|
+
// without a listener it would crash the server as an uncaught exception.
|
|
129
129
|
child.on("error", (error) => {
|
|
130
130
|
this.childExited = { code: null, signal: error.message };
|
|
131
131
|
this.wakeSubmissionWaiters();
|
|
@@ -197,7 +197,7 @@ export class RpcStepExecutor {
|
|
|
197
197
|
return found;
|
|
198
198
|
if (found?.action === "update") {
|
|
199
199
|
if (request.publishUpdate === undefined) {
|
|
200
|
-
throw new Error("This workflow
|
|
200
|
+
throw new Error("This workflow server does not support step updates");
|
|
201
201
|
}
|
|
202
202
|
try {
|
|
203
203
|
await request.publishUpdate(found.update, found.idempotencyKey);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-executor.js","sourceRoot":"","sources":["../../src/server/rpc-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { errorMessage } from "../workflows/errors.js";
|
|
3
|
-
import {
|
|
3
|
+
import { WorkflowServer } from "./server.js";
|
|
4
4
|
async function main() {
|
|
5
5
|
const databaseIndex = process.argv.indexOf("--database");
|
|
6
6
|
const databasePath = databaseIndex < 0 ? undefined : process.argv[databaseIndex + 1];
|
|
7
|
-
const
|
|
7
|
+
const server = new WorkflowServer({
|
|
8
8
|
...(databasePath === undefined ? {} : { databasePath }),
|
|
9
|
-
onLog: (message) => process.stderr.write(`[pi-workflows
|
|
9
|
+
onLog: (message) => process.stderr.write(`[pi-workflows server] ${message}\n`),
|
|
10
10
|
});
|
|
11
|
-
const shutdown = () => void
|
|
11
|
+
const shutdown = () => void server.stop();
|
|
12
12
|
process.once("SIGINT", shutdown);
|
|
13
13
|
process.once("SIGTERM", shutdown);
|
|
14
14
|
try {
|
|
15
|
-
await
|
|
15
|
+
await server.start();
|
|
16
16
|
}
|
|
17
17
|
catch (error) {
|
|
18
18
|
process.stderr.write(`${errorMessage(error)}\n`);
|
|
@@ -20,4 +20,4 @@ async function main() {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
void main();
|
|
23
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=server-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-entry.js","sourceRoot":"","sources":["../../src/server/server-entry.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,KAAK,UAAU,IAAI;IACjB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;QAChC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACvD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,OAAO,IAAI,CAAC;KAC/E,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
|