@osolmaz/pi-workflows 0.15.3 → 0.16.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 +24 -8
- package/dist/channels/adapter-entry.d.ts +3 -0
- package/dist/channels/adapter-entry.js +203 -0
- package/dist/channels/adapter-entry.js.map +1 -0
- package/dist/channels/config.d.ts +43 -0
- package/dist/channels/config.js +234 -0
- package/dist/channels/config.js.map +1 -0
- package/dist/channels/protocol.d.ts +94 -0
- package/dist/channels/protocol.js +219 -0
- package/dist/channels/protocol.js.map +1 -0
- package/dist/channels/telegram.d.ts +46 -0
- package/dist/channels/telegram.js +285 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/client/activity.d.ts +2 -0
- package/dist/client/activity.js +6 -0
- package/dist/client/activity.js.map +1 -0
- package/dist/client/client.d.ts +102 -0
- package/dist/client/client.js +737 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/materialize.d.ts +7 -0
- package/dist/client/materialize.js +177 -0
- package/dist/client/materialize.js.map +1 -0
- package/dist/client/protocol.d.ts +60 -0
- package/dist/client/protocol.js +275 -0
- package/dist/client/protocol.js.map +1 -0
- package/dist/client/resolver.d.ts +23 -0
- package/dist/client/resolver.js +2 -0
- package/dist/client/resolver.js.map +1 -0
- package/dist/client/view.d.ts +144 -0
- package/dist/client/view.js +3 -0
- package/dist/client/view.js.map +1 -0
- package/dist/controllers/index.d.ts +1 -1
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/sqlite.d.ts +47 -157
- package/dist/controllers/sqlite.js +230 -406
- package/dist/controllers/sqlite.js.map +1 -1
- package/dist/extension/index.d.ts +23 -1
- package/dist/extension/index.js +734 -555
- package/dist/extension/index.js.map +1 -1
- package/dist/extension/recorder.d.ts +95 -0
- package/dist/extension/recorder.js +530 -0
- package/dist/extension/recorder.js.map +1 -0
- package/dist/extension/remote-recorder-store.d.ts +25 -0
- package/dist/extension/remote-recorder-store.js +81 -0
- package/dist/extension/remote-recorder-store.js.map +1 -0
- package/dist/extension/session-events.d.ts +134 -0
- package/dist/extension/session-events.js +60 -0
- package/dist/extension/session-events.js.map +1 -0
- package/dist/extension/session-view.d.ts +9 -2
- package/dist/extension/session-view.js +117 -51
- package/dist/extension/session-view.js.map +1 -1
- package/dist/extension/step-message.d.ts +6 -4
- package/dist/extension/step-message.js +12 -6
- package/dist/extension/step-message.js.map +1 -1
- package/dist/extension/widget.d.ts +3 -2
- package/dist/extension/widget.js +41 -24
- package/dist/extension/widget.js.map +1 -1
- package/dist/extension/workflow-message-coordinator.d.ts +27 -0
- package/dist/extension/workflow-message-coordinator.js +294 -0
- package/dist/extension/workflow-message-coordinator.js.map +1 -0
- package/dist/host/channel-effects.d.ts +72 -0
- package/dist/host/channel-effects.js +271 -0
- package/dist/host/channel-effects.js.map +1 -0
- package/dist/host/channel-supervisor.d.ts +21 -0
- package/dist/host/channel-supervisor.js +54 -0
- package/dist/host/channel-supervisor.js.map +1 -0
- package/dist/host/child-worker-supervisor.js +1 -1
- package/dist/host/child-worker-supervisor.js.map +1 -1
- package/dist/host/resolver-entry.d.ts +2 -23
- package/dist/host/resolver-entry.js +1 -1
- package/dist/host/resolver-entry.js.map +1 -1
- package/dist/host/runner.d.ts +54 -8
- package/dist/host/runner.js +1997 -305
- package/dist/host/runner.js.map +1 -1
- package/dist/host/state.d.ts +25 -19
- package/dist/host/state.js +303 -89
- package/dist/host/state.js.map +1 -1
- package/dist/host/view.d.ts +83 -0
- package/dist/host/view.js +975 -0
- package/dist/host/view.js.map +1 -0
- package/dist/host/worker-protocol.js +1 -1
- package/dist/host/worker-protocol.js.map +1 -1
- package/dist/state/database.d.ts +1 -0
- package/dist/state/database.js +15 -0
- package/dist/state/database.js.map +1 -1
- package/dist/state/prune.d.ts +3 -1
- package/dist/state/prune.js +9 -33
- package/dist/state/prune.js.map +1 -1
- package/dist/state/schema.js +88 -98
- package/dist/state/schema.js.map +1 -1
- package/dist/state/workflow-messages.d.ts +96 -0
- package/dist/state/workflow-messages.js +335 -0
- package/dist/state/workflow-messages.js.map +1 -0
- package/dist/viewer/backup.d.ts +2 -0
- package/dist/viewer/backup.js +28 -0
- package/dist/viewer/backup.js.map +1 -0
- package/dist/viewer/cli.d.ts +4 -0
- package/dist/viewer/cli.js +150 -170
- package/dist/viewer/cli.js.map +1 -1
- package/dist/viewer/render.js +1 -1
- package/dist/viewer/render.js.map +1 -1
- package/dist/viewer/tui.d.ts +5 -7
- package/dist/viewer/tui.js +245 -108
- package/dist/viewer/tui.js.map +1 -1
- package/dist/workflows/human-decision.d.ts +2 -0
- package/dist/workflows/human-decision.js +8 -2
- package/dist/workflows/human-decision.js.map +1 -1
- package/dist/workflows/index.d.ts +1 -1
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/settings.d.ts +1 -8
- package/dist/workflows/settings.js.map +1 -1
- package/dist/workflows/store.d.ts +67 -20
- package/dist/workflows/store.js +451 -378
- package/dist/workflows/store.js.map +1 -1
- package/dist/workflows/tool-input.d.ts +21 -0
- package/dist/workflows/tool-input.js +23 -1
- package/dist/workflows/tool-input.js.map +1 -1
- package/dist/workflows/types.d.ts +5 -5
- package/dist/workflows/workflow-message-content.d.ts +38 -0
- package/dist/workflows/workflow-message-content.js +157 -0
- package/dist/workflows/workflow-message-content.js.map +1 -0
- package/docs/2026-08-18-herdr-piw-plan.md +2 -1
- package/docs/2026-08-20-durable-workflow-launch-plan.md +1 -1
- package/docs/2026-08-25-workflow-follow-ups.md +26 -50
- 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 +4 -0
- package/docs/2026-09-01-unified-workflow-client-plan.md +385 -0
- package/docs/2026-09-02-installed-live-e2e-plan.md +239 -0
- package/docs/2026-09-02-unify-workflow-messages-plan.md +562 -0
- package/docs/DEFERRED_TURNS.md +66 -294
- package/docs/HUMAN_DECISIONS.md +29 -30
- package/docs/HUMAN_DECISION_PRESENTATIONS.md +4 -11
- package/docs/SQLITE_STATE.md +31 -25
- package/docs/WORKFLOW_HOST.md +155 -77
- package/docs/WORKFLOW_STEP_MESSAGES.md +166 -75
- package/docs/development.md +2 -1
- package/docs/live-replay-protocol.md +74 -132
- package/docs/tui-viewer.md +12 -14
- package/docs/workflows.md +78 -28
- package/herdr-plugin.toml +1 -1
- package/package.json +9 -3
- package/plugins/herdr/viewer.mjs +14 -5
- package/protocol/client.v1.schema.json +137 -0
- package/protocol/fixtures/client-v1.json +23 -0
- package/src/channels/adapter-entry.ts +220 -0
- package/src/channels/config.ts +296 -0
- package/src/channels/protocol.ts +333 -0
- package/src/channels/telegram.ts +335 -0
- package/src/client/activity.ts +6 -0
- package/src/client/client.ts +939 -0
- package/src/client/index.ts +25 -0
- package/src/client/materialize.ts +228 -0
- package/src/client/protocol.ts +333 -0
- package/src/client/resolver.ts +26 -0
- package/src/client/view.ts +163 -0
- package/src/controllers/index.ts +0 -1
- package/src/controllers/sqlite.ts +339 -808
- package/src/extension/index.ts +853 -665
- package/src/extension/recorder.ts +687 -0
- package/src/extension/remote-recorder-store.ts +126 -0
- package/src/extension/session-events.ts +119 -0
- package/src/extension/session-view.ts +157 -51
- package/src/extension/step-message.ts +19 -9
- package/src/extension/widget.ts +53 -25
- package/src/extension/workflow-message-coordinator.ts +334 -0
- package/src/host/channel-effects.ts +465 -0
- package/src/host/channel-supervisor.ts +73 -0
- package/src/host/child-worker-supervisor.ts +1 -1
- package/src/host/resolver-entry.ts +11 -26
- package/src/host/runner.ts +2639 -450
- package/src/host/state.ts +404 -137
- package/src/host/view.ts +1212 -0
- package/src/host/worker-protocol.ts +1 -1
- package/src/state/database.ts +13 -0
- package/src/state/prune.ts +14 -42
- package/src/state/schema.ts +88 -98
- package/src/state/workflow-messages.ts +548 -0
- package/src/viewer/backup.ts +29 -0
- package/src/viewer/cli.ts +171 -185
- package/src/viewer/render.ts +1 -5
- package/src/viewer/tui.ts +261 -124
- package/src/workflows/human-decision.ts +18 -2
- package/src/workflows/index.ts +0 -1
- package/src/workflows/settings.ts +1 -20
- package/src/workflows/store.ts +650 -511
- package/src/workflows/tool-input.ts +36 -1
- package/src/workflows/types.ts +5 -5
- package/src/workflows/workflow-message-content.ts +197 -0
- package/dist/extension/decision-channels.d.ts +0 -134
- package/dist/extension/decision-channels.js +0 -1307
- package/dist/extension/decision-channels.js.map +0 -1
- package/dist/host/client.d.ts +0 -48
- package/dist/host/client.js +0 -216
- package/dist/host/client.js.map +0 -1
- package/dist/host/protocol.d.ts +0 -38
- package/dist/host/protocol.js +0 -156
- package/dist/host/protocol.js.map +0 -1
- package/dist/viewer/watch.d.ts +0 -6
- package/dist/viewer/watch.js +0 -46
- package/dist/viewer/watch.js.map +0 -1
- package/src/extension/decision-channels.ts +0 -1826
- package/src/host/client.ts +0 -293
- package/src/host/protocol.ts +0 -196
- package/src/viewer/watch.ts +0 -51
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { StateDatabase } from "../state/database.js";
|
|
3
|
+
import { canonicalJson } from "../state/json.js";
|
|
4
|
+
import { StateMutationStore } from "../state/mutation.js";
|
|
5
|
+
export class ChannelEffectStore {
|
|
6
|
+
state;
|
|
7
|
+
mutations;
|
|
8
|
+
constructor(state) {
|
|
9
|
+
this.state = state;
|
|
10
|
+
this.mutations = new StateMutationStore(state);
|
|
11
|
+
}
|
|
12
|
+
ensureApplying(options) {
|
|
13
|
+
const effectId = channelEffectId(options.channelId, options.decisionId, options.request.requestDigest, options.purpose);
|
|
14
|
+
const existing = this.read(effectId);
|
|
15
|
+
if (existing !== undefined) {
|
|
16
|
+
if (existing.status === "rejected" && existing.attemptNumber < options.maxAutomaticAttempts) {
|
|
17
|
+
return this.beginAttempt(existing, options.ownerId, options.leaseGeneration, "automatic", options.ownerId);
|
|
18
|
+
}
|
|
19
|
+
return existing;
|
|
20
|
+
}
|
|
21
|
+
const payload = {
|
|
22
|
+
schema: "pi-workflows.channel-effect.v1",
|
|
23
|
+
channelId: options.channelId,
|
|
24
|
+
profile: options.profile,
|
|
25
|
+
decisionId: options.decisionId,
|
|
26
|
+
purpose: options.purpose,
|
|
27
|
+
request: options.request,
|
|
28
|
+
};
|
|
29
|
+
const now = Date.now();
|
|
30
|
+
const payloadHash = this.state.putJson(payload, now);
|
|
31
|
+
const sourceRevision = this.resourceRevision(options.channelResourceId);
|
|
32
|
+
const resourceId = this.mutations.ensureResource("effect", effectId, now);
|
|
33
|
+
this.mutations.mutate({
|
|
34
|
+
resourceId,
|
|
35
|
+
operation: "channel.effect.create",
|
|
36
|
+
actor: { type: "host", id: options.ownerId },
|
|
37
|
+
expectedRevision: 0,
|
|
38
|
+
}, "effect.applying", () => {
|
|
39
|
+
this.state.connection
|
|
40
|
+
.prepare(`INSERT INTO effects(
|
|
41
|
+
effect_id, resource_id, source_resource_id, source_revision,
|
|
42
|
+
effect_type, idempotency_key, payload_hash, owner_scope,
|
|
43
|
+
status, attempt_count, created_at, updated_at
|
|
44
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, 'channel', 'applying', 1, ?, ?)`)
|
|
45
|
+
.run(effectId, resourceId, options.channelResourceId, sourceRevision, `channel.${options.purpose}`, effectId, payloadHash, now, now);
|
|
46
|
+
this.insertAttempt(effectId, 1, options.ownerId, options.leaseGeneration, now);
|
|
47
|
+
}, { now, payload: { channelId: options.channelId, decisionId: options.decisionId } });
|
|
48
|
+
return this.require(effectId);
|
|
49
|
+
}
|
|
50
|
+
settle(options) {
|
|
51
|
+
const current = this.require(options.effectId);
|
|
52
|
+
if (current.status !== "applying" || current.attemptNumber !== options.attemptNumber) {
|
|
53
|
+
throw new Error("Channel effect attempt is stale");
|
|
54
|
+
}
|
|
55
|
+
const now = Date.now();
|
|
56
|
+
const resultHash = options.result === undefined ? null : this.state.putJson(options.result, now);
|
|
57
|
+
const errorHash = options.error === undefined ? null : this.state.putText(options.error, now);
|
|
58
|
+
this.mutations.mutate({
|
|
59
|
+
resourceId: current.resourceId,
|
|
60
|
+
operation: "channel.effect.settle",
|
|
61
|
+
actor: { type: options.actorType, id: options.actorId },
|
|
62
|
+
expectedRevision: this.resourceRevision(current.resourceId),
|
|
63
|
+
}, `effect.${options.outcome}`, () => {
|
|
64
|
+
const changed = this.state.connection
|
|
65
|
+
.prepare(`UPDATE effects
|
|
66
|
+
SET status = ?, result_hash = ?, error_hash = ?, updated_at = ?, settled_at = ?
|
|
67
|
+
WHERE effect_id = ? AND status = 'applying' AND attempt_count = ?`)
|
|
68
|
+
.run(options.outcome, resultHash, errorHash, now, now, options.effectId, options.attemptNumber);
|
|
69
|
+
if (changed.changes !== 1)
|
|
70
|
+
throw new Error("Channel effect attempt changed");
|
|
71
|
+
this.state.connection
|
|
72
|
+
.prepare(`UPDATE effect_attempts
|
|
73
|
+
SET finished_at = ?, outcome = ?, result_hash = ?, error_hash = ?
|
|
74
|
+
WHERE effect_id = ? AND attempt_number = ? AND finished_at IS NULL`)
|
|
75
|
+
.run(now, options.outcome, resultHash, errorHash, options.effectId, options.attemptNumber);
|
|
76
|
+
}, { now, payload: { attemptNumber: options.attemptNumber } });
|
|
77
|
+
return this.require(options.effectId);
|
|
78
|
+
}
|
|
79
|
+
markApplyingAmbiguous(options) {
|
|
80
|
+
const rows = this.state.connection
|
|
81
|
+
.prepare(`SELECT effect_id AS effectId
|
|
82
|
+
FROM effects
|
|
83
|
+
WHERE owner_scope = 'channel' AND status = 'applying'
|
|
84
|
+
AND (? IS NULL OR source_resource_id = ?)
|
|
85
|
+
ORDER BY created_at`)
|
|
86
|
+
.all(options.sourceResourceId ?? null, options.sourceResourceId ?? null);
|
|
87
|
+
const settled = [];
|
|
88
|
+
for (const row of rows) {
|
|
89
|
+
if (!isEffectIdRow(row))
|
|
90
|
+
continue;
|
|
91
|
+
const current = this.require(row.effectId);
|
|
92
|
+
if (options.stableMessageIds !== undefined &&
|
|
93
|
+
!options.stableMessageIds.includes(channelEffectAttemptId(current.effectId, current.attemptNumber))) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
settled.push(this.settle({
|
|
97
|
+
effectId: current.effectId,
|
|
98
|
+
attemptNumber: current.attemptNumber,
|
|
99
|
+
outcome: "ambiguous",
|
|
100
|
+
error: options.error,
|
|
101
|
+
actorType: "channel",
|
|
102
|
+
actorId: options.actorId,
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
return settled;
|
|
106
|
+
}
|
|
107
|
+
recover(options) {
|
|
108
|
+
const current = this.listAmbiguous().find((effect) => channelEffectAttemptId(effect.effectId, effect.attemptNumber) === options.stableMessageId);
|
|
109
|
+
if (current === undefined)
|
|
110
|
+
throw new Error("Ambiguous channel operation was not found");
|
|
111
|
+
if (options.action === "confirm") {
|
|
112
|
+
return this.confirmAmbiguous(current, options.actorId);
|
|
113
|
+
}
|
|
114
|
+
return this.beginAttempt(current, options.ownerId, options.leaseGeneration, "explicit", options.actorId);
|
|
115
|
+
}
|
|
116
|
+
read(effectId) {
|
|
117
|
+
const row = this.state.connection
|
|
118
|
+
.prepare(`SELECT e.effect_id AS effectId, e.resource_id AS resourceId,
|
|
119
|
+
e.source_resource_id AS sourceResourceId, e.status,
|
|
120
|
+
e.attempt_count AS attemptNumber, a.started_at AS attemptStartedAt,
|
|
121
|
+
e.settled_at AS settledAt, e.payload_hash AS payloadHash,
|
|
122
|
+
e.result_hash AS resultHash
|
|
123
|
+
FROM effects e JOIN effect_attempts a
|
|
124
|
+
ON a.effect_id = e.effect_id AND a.attempt_number = e.attempt_count
|
|
125
|
+
WHERE e.effect_id = ? AND e.owner_scope = 'channel'`)
|
|
126
|
+
.get(effectId);
|
|
127
|
+
return isEffectRow(row) ? this.materialize(row) : undefined;
|
|
128
|
+
}
|
|
129
|
+
listAmbiguous() {
|
|
130
|
+
return this.state.connection
|
|
131
|
+
.prepare(`SELECT e.effect_id AS effectId, e.resource_id AS resourceId,
|
|
132
|
+
e.source_resource_id AS sourceResourceId, e.status,
|
|
133
|
+
e.attempt_count AS attemptNumber, a.started_at AS attemptStartedAt,
|
|
134
|
+
e.settled_at AS settledAt, e.payload_hash AS payloadHash,
|
|
135
|
+
e.result_hash AS resultHash
|
|
136
|
+
FROM effects e JOIN effect_attempts a
|
|
137
|
+
ON a.effect_id = e.effect_id AND a.attempt_number = e.attempt_count
|
|
138
|
+
WHERE e.owner_scope = 'channel' AND e.status = 'ambiguous'
|
|
139
|
+
ORDER BY e.created_at`)
|
|
140
|
+
.all()
|
|
141
|
+
.filter(isEffectRow)
|
|
142
|
+
.map((row) => this.materialize(row));
|
|
143
|
+
}
|
|
144
|
+
confirmAmbiguous(current, actorId) {
|
|
145
|
+
const now = Date.now();
|
|
146
|
+
this.mutations.mutate({
|
|
147
|
+
resourceId: current.resourceId,
|
|
148
|
+
operation: "channel.effect.confirm",
|
|
149
|
+
actor: { type: "human", id: actorId },
|
|
150
|
+
expectedRevision: this.resourceRevision(current.resourceId),
|
|
151
|
+
}, "effect.recovered_confirmed", () => {
|
|
152
|
+
const changed = this.state.connection
|
|
153
|
+
.prepare(`UPDATE effects SET status = 'applied', updated_at = ?, settled_at = ?
|
|
154
|
+
WHERE effect_id = ? AND status = 'ambiguous' AND attempt_count = ?`)
|
|
155
|
+
.run(now, now, current.effectId, current.attemptNumber);
|
|
156
|
+
if (changed.changes !== 1)
|
|
157
|
+
throw new Error("Channel effect recovery is stale");
|
|
158
|
+
}, { now, payload: { attemptNumber: current.attemptNumber } });
|
|
159
|
+
return this.require(current.effectId);
|
|
160
|
+
}
|
|
161
|
+
beginAttempt(current, ownerId, leaseGeneration, reason, actorId) {
|
|
162
|
+
if (current.status !== "rejected" && current.status !== "ambiguous") {
|
|
163
|
+
throw new Error("Channel effect is not retryable");
|
|
164
|
+
}
|
|
165
|
+
const attemptNumber = current.attemptNumber + 1;
|
|
166
|
+
const now = Date.now();
|
|
167
|
+
this.mutations.mutate({
|
|
168
|
+
resourceId: current.resourceId,
|
|
169
|
+
operation: "channel.effect.retry",
|
|
170
|
+
actor: { type: reason === "explicit" ? "human" : "host", id: actorId },
|
|
171
|
+
expectedRevision: this.resourceRevision(current.resourceId),
|
|
172
|
+
}, "effect.applying", () => {
|
|
173
|
+
const changed = this.state.connection
|
|
174
|
+
.prepare(`UPDATE effects
|
|
175
|
+
SET status = 'applying', attempt_count = ?, result_hash = NULL,
|
|
176
|
+
error_hash = NULL, updated_at = ?, settled_at = NULL
|
|
177
|
+
WHERE effect_id = ? AND status = ? AND attempt_count = ?`)
|
|
178
|
+
.run(attemptNumber, now, current.effectId, current.status, current.attemptNumber);
|
|
179
|
+
if (changed.changes !== 1)
|
|
180
|
+
throw new Error("Channel effect retry is stale");
|
|
181
|
+
this.insertAttempt(current.effectId, attemptNumber, ownerId, leaseGeneration, now);
|
|
182
|
+
}, { now, payload: { attemptNumber, reason } });
|
|
183
|
+
return this.require(current.effectId);
|
|
184
|
+
}
|
|
185
|
+
insertAttempt(effectId, attemptNumber, ownerId, leaseGeneration, now) {
|
|
186
|
+
this.state.connection
|
|
187
|
+
.prepare(`INSERT INTO effect_attempts(
|
|
188
|
+
effect_id, attempt_number, owner_id, lease_generation, started_at
|
|
189
|
+
) VALUES (?, ?, ?, ?, ?)`)
|
|
190
|
+
.run(effectId, attemptNumber, ownerId, leaseGeneration, now);
|
|
191
|
+
}
|
|
192
|
+
require(effectId) {
|
|
193
|
+
const value = this.read(effectId);
|
|
194
|
+
if (value === undefined)
|
|
195
|
+
throw new Error(`Channel effect is missing: ${effectId}`);
|
|
196
|
+
return value;
|
|
197
|
+
}
|
|
198
|
+
materialize(row) {
|
|
199
|
+
const payload = this.state.readJson(row.payloadHash);
|
|
200
|
+
if (!isChannelEffectPayload(payload))
|
|
201
|
+
throw new Error("Channel effect payload is invalid");
|
|
202
|
+
return {
|
|
203
|
+
effectId: row.effectId,
|
|
204
|
+
resourceId: row.resourceId,
|
|
205
|
+
sourceResourceId: row.sourceResourceId,
|
|
206
|
+
status: row.status,
|
|
207
|
+
attemptNumber: row.attemptNumber,
|
|
208
|
+
attemptStartedAt: row.attemptStartedAt,
|
|
209
|
+
...(row.settledAt === null ? {} : { settledAt: row.settledAt }),
|
|
210
|
+
payload,
|
|
211
|
+
...(row.resultHash === null ? {} : { result: this.state.readJson(row.resultHash) }),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
resourceRevision(resourceId) {
|
|
215
|
+
const row = this.state.connection
|
|
216
|
+
.prepare("SELECT revision FROM resources WHERE resource_id = ?")
|
|
217
|
+
.get(resourceId);
|
|
218
|
+
if (!isRevisionRow(row))
|
|
219
|
+
throw new Error(`Resource is missing: ${resourceId}`);
|
|
220
|
+
return row.revision;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
export function channelEffectId(channelId, decisionId, requestDigest, purpose) {
|
|
224
|
+
return `effect-${createHash("sha256")
|
|
225
|
+
.update(canonicalJson({ channelId, decisionId, requestDigest, purpose }))
|
|
226
|
+
.digest("hex")
|
|
227
|
+
.slice(0, 40)}`;
|
|
228
|
+
}
|
|
229
|
+
export function channelEffectAttemptId(effectId, attemptNumber) {
|
|
230
|
+
return `channel-${createHash("sha256").update(`${effectId}\0${attemptNumber}`).digest("hex")}`;
|
|
231
|
+
}
|
|
232
|
+
function isChannelEffectPayload(value) {
|
|
233
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
234
|
+
return false;
|
|
235
|
+
const payload = value;
|
|
236
|
+
return (payload.schema === "pi-workflows.channel-effect.v1" &&
|
|
237
|
+
typeof payload.channelId === "string" &&
|
|
238
|
+
typeof payload.profile === "string" &&
|
|
239
|
+
typeof payload.decisionId === "string" &&
|
|
240
|
+
(payload.purpose === "delivery" || payload.purpose === "settlement") &&
|
|
241
|
+
payload.request !== null &&
|
|
242
|
+
typeof payload.request === "object");
|
|
243
|
+
}
|
|
244
|
+
function isEffectRow(value) {
|
|
245
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
246
|
+
return false;
|
|
247
|
+
const row = value;
|
|
248
|
+
return (typeof row.effectId === "string" &&
|
|
249
|
+
typeof row.resourceId === "string" &&
|
|
250
|
+
typeof row.sourceResourceId === "string" &&
|
|
251
|
+
typeof row.status === "string" &&
|
|
252
|
+
["pending", "applying", "applied", "rejected", "ambiguous", "cancelled"].includes(row.status) &&
|
|
253
|
+
typeof row.attemptNumber === "number" &&
|
|
254
|
+
typeof row.attemptStartedAt === "number" &&
|
|
255
|
+
(row.settledAt === null || typeof row.settledAt === "number") &&
|
|
256
|
+
Buffer.isBuffer(row.payloadHash) &&
|
|
257
|
+
(row.resultHash === null || Buffer.isBuffer(row.resultHash)));
|
|
258
|
+
}
|
|
259
|
+
function isEffectIdRow(value) {
|
|
260
|
+
return (value !== null &&
|
|
261
|
+
typeof value === "object" &&
|
|
262
|
+
!Array.isArray(value) &&
|
|
263
|
+
typeof value.effectId === "string");
|
|
264
|
+
}
|
|
265
|
+
function isRevisionRow(value) {
|
|
266
|
+
return (value !== null &&
|
|
267
|
+
typeof value === "object" &&
|
|
268
|
+
!Array.isArray(value) &&
|
|
269
|
+
typeof value.revision === "number");
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=channel-effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-effects.js","sourceRoot":"","sources":["../../src/host/channel-effects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ChannelAdapterLaunch, type ChannelAdapterMessage, type ChannelAdapterResponse } from "../channels/protocol.js";
|
|
2
|
+
import { type SupervisedWorkerResult } from "./child-worker-supervisor.js";
|
|
3
|
+
import { HostProcessRegistry, type ProcessIdentity } from "./processes.js";
|
|
4
|
+
import type { WorkerOutcome } from "./state.js";
|
|
5
|
+
export declare class ChannelAdapterSupervisor {
|
|
6
|
+
readonly launch: ChannelAdapterLaunch;
|
|
7
|
+
private readonly options;
|
|
8
|
+
private readonly supervisor;
|
|
9
|
+
constructor(launch: ChannelAdapterLaunch, options: {
|
|
10
|
+
registry: HostProcessRegistry;
|
|
11
|
+
onMessage: (message: ChannelAdapterMessage) => Promise<ChannelAdapterResponse>;
|
|
12
|
+
env?: Record<string, string>;
|
|
13
|
+
startupTimeoutMs?: number;
|
|
14
|
+
adapterEntryPath?: string;
|
|
15
|
+
onSpawn?: (identity: ProcessIdentity) => void;
|
|
16
|
+
onDiagnostic?: (message: string) => void;
|
|
17
|
+
});
|
|
18
|
+
start(): Promise<void>;
|
|
19
|
+
wait(): Promise<SupervisedWorkerResult>;
|
|
20
|
+
stop(outcome?: WorkerOutcome): Promise<void>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { encodeChannelLaunch } from "../channels/adapter-entry.js";
|
|
5
|
+
import { encodeChannelLine, parseChannelAdapterMessage, } from "../channels/protocol.js";
|
|
6
|
+
import { ChildWorkerSupervisor } from "./child-worker-supervisor.js";
|
|
7
|
+
import { HostProcessRegistry } from "./processes.js";
|
|
8
|
+
export class ChannelAdapterSupervisor {
|
|
9
|
+
launch;
|
|
10
|
+
options;
|
|
11
|
+
supervisor;
|
|
12
|
+
constructor(launch, options) {
|
|
13
|
+
this.launch = launch;
|
|
14
|
+
this.options = options;
|
|
15
|
+
this.supervisor = new ChildWorkerSupervisor({
|
|
16
|
+
label: `Telegram channel adapter ${launch.profile}`,
|
|
17
|
+
registry: options.registry,
|
|
18
|
+
onMessage: options.onMessage,
|
|
19
|
+
parseMessage: parseChannelAdapterMessage,
|
|
20
|
+
encodeResponse: encodeChannelLine,
|
|
21
|
+
isReady: (message) => message.kind === "channel.ready",
|
|
22
|
+
isTerminal: (message) => message.kind === "channel.exiting",
|
|
23
|
+
...(options.startupTimeoutMs === undefined
|
|
24
|
+
? {}
|
|
25
|
+
: { startupTimeoutMs: options.startupTimeoutMs }),
|
|
26
|
+
...(options.onSpawn === undefined ? {} : { onSpawn: options.onSpawn }),
|
|
27
|
+
...(options.onDiagnostic === undefined ? {} : { onDiagnostic: options.onDiagnostic }),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async start() {
|
|
31
|
+
const builtEntry = fileURLToPath(new URL("../channels/adapter-entry.js", import.meta.url));
|
|
32
|
+
const sourceEntry = fileURLToPath(new URL("../channels/adapter-entry.ts", import.meta.url));
|
|
33
|
+
const adapterEntry = this.options.adapterEntryPath ?? builtEntry;
|
|
34
|
+
const args = this.options.adapterEntryPath === undefined && !fs.existsSync(builtEntry)
|
|
35
|
+
? ["--import", createRequire(import.meta.url).resolve("tsx"), sourceEntry]
|
|
36
|
+
: [adapterEntry];
|
|
37
|
+
await this.supervisor.start({
|
|
38
|
+
args,
|
|
39
|
+
cwd: process.cwd(),
|
|
40
|
+
env: {
|
|
41
|
+
...process.env,
|
|
42
|
+
...this.options.env,
|
|
43
|
+
PI_WORKFLOWS_CHANNEL_LAUNCH: encodeChannelLaunch(this.launch),
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
async wait() {
|
|
48
|
+
return await this.supervisor.wait();
|
|
49
|
+
}
|
|
50
|
+
async stop(outcome = "cancelled") {
|
|
51
|
+
await this.supervisor.stop(outcome);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=channel-supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-supervisor.js","sourceRoot":"","sources":["../../src/host/channel-supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { once } from "node:events";
|
|
3
|
+
import { NdjsonFrameDecoder } from "../client/protocol.js";
|
|
3
4
|
import { errorMessage } from "../workflows/errors.js";
|
|
4
5
|
import { HostProcessRegistry } from "./processes.js";
|
|
5
|
-
import { NdjsonFrameDecoder } from "./protocol.js";
|
|
6
6
|
const DEFAULT_STARTUP_TIMEOUT_MS = 15_000;
|
|
7
7
|
const DEFAULT_KILL_GRACE_MS = 2_000;
|
|
8
8
|
const MAX_DIAGNOSTIC_BYTES = 64 * 1024;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-worker-supervisor.js","sourceRoot":"","sources":["../../src/host/child-worker-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"child-worker-supervisor.js","sourceRoot":"","sources":["../../src/host/child-worker-supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import type { ResolvedControllerInitialization, ResolvedSettingsChange, ResolvedWorkflowLaunch } from "../client/resolver.js";
|
|
2
3
|
import { type JsonValue } from "../state/json.js";
|
|
3
|
-
export type ResolvedWorkflowLaunch
|
|
4
|
-
schema: "pi-workflows.resolved-launch.v1";
|
|
5
|
-
workflowName: string;
|
|
6
|
-
workflowSourceRef: string;
|
|
7
|
-
workflowSource: JsonValue;
|
|
8
|
-
definitionDigest: string;
|
|
9
|
-
definitionSnapshot: JsonValue;
|
|
10
|
-
};
|
|
11
|
-
export type ResolvedControllerInitialization = {
|
|
12
|
-
schema: "pi-workflows.resolved-controller-initialization.v1";
|
|
13
|
-
controllerName: string;
|
|
14
|
-
controllerPath: string;
|
|
15
|
-
sourceHash: string;
|
|
16
|
-
initialStatus: JsonValue;
|
|
17
|
-
};
|
|
18
|
-
export type ResolvedSettingsChange = {
|
|
19
|
-
schema: "pi-workflows.resolved-settings-change.v1";
|
|
20
|
-
definitionDigest: string;
|
|
21
|
-
patch: JsonValue;
|
|
22
|
-
settings: JsonValue;
|
|
23
|
-
paths: JsonValue;
|
|
24
|
-
};
|
|
4
|
+
export type { ResolvedControllerInitialization, ResolvedSettingsChange, ResolvedWorkflowLaunch, } from "../client/resolver.js";
|
|
25
5
|
type ResolverRequest = {
|
|
26
6
|
schema: "pi-workflows.resolve-request.v1";
|
|
27
7
|
cwd: string;
|
|
@@ -46,4 +26,3 @@ type ControllerInitializationRequest = {
|
|
|
46
26
|
export declare function resolveWorkflowLaunch(request: ResolverRequest): Promise<ResolvedWorkflowLaunch>;
|
|
47
27
|
export declare function resolveControllerInitialization(request: ControllerInitializationRequest): Promise<ResolvedControllerInitialization>;
|
|
48
28
|
export declare function resolveSettingsChange(request: SettingsValidationRequest): Promise<ResolvedSettingsChange>;
|
|
49
|
-
export {};
|
|
@@ -3,6 +3,7 @@ import { createHash } from "node:crypto";
|
|
|
3
3
|
import fs from "node:fs/promises";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { builtinWorkflowCatalog } from "../builtins/catalog.js";
|
|
6
|
+
import { MAX_PROTOCOL_MESSAGE_BYTES } from "../client/protocol.js";
|
|
6
7
|
import { discoverControllers, loadControllerFile } from "../controllers/loader.js";
|
|
7
8
|
import { canonicalJson, parseJson } from "../state/json.js";
|
|
8
9
|
import { compositionMetadata } from "../workflows/composition.js";
|
|
@@ -11,7 +12,6 @@ import { validateWorkflowDefinition } from "../workflows/graph.js";
|
|
|
11
12
|
import { resolveWorkflowRef } from "../workflows/loader.js";
|
|
12
13
|
import { applyWorkflowSettingsPatch } from "../workflows/settings.js";
|
|
13
14
|
import { createDefinitionSnapshot } from "../workflows/store.js";
|
|
14
|
-
import { MAX_PROTOCOL_MESSAGE_BYTES } from "./protocol.js";
|
|
15
15
|
export async function resolveWorkflowLaunch(request) {
|
|
16
16
|
if (request.schema !== "pi-workflows.resolve-request.v1") {
|
|
17
17
|
throw new Error("Invalid workflow resolver request schema");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver-entry.js","sourceRoot":"","sources":["../../src/host/resolver-entry.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver-entry.js","sourceRoot":"","sources":["../../src/host/resolver-entry.ts"],"names":[],"mappings":"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"}
|
package/dist/host/runner.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export type WorkflowHostOptions = {
|
|
|
14
14
|
workerEntryPath?: string;
|
|
15
15
|
workerStartupTimeoutMs?: number;
|
|
16
16
|
controllerWorkerEntryPath?: string;
|
|
17
|
+
channelAdapterEntryPath?: string;
|
|
17
18
|
onLog?: (message: string) => void;
|
|
18
19
|
};
|
|
19
20
|
/** Global package-owned host. It writes state and supervises code-only workers. */
|
|
@@ -28,27 +29,36 @@ export declare class WorkflowHost {
|
|
|
28
29
|
private readonly hostState;
|
|
29
30
|
private readonly queue;
|
|
30
31
|
private readonly decisions;
|
|
32
|
+
private readonly channelEffects;
|
|
31
33
|
private readonly runStore;
|
|
34
|
+
private readonly views;
|
|
32
35
|
private readonly registry;
|
|
33
36
|
private readonly activeRuns;
|
|
34
37
|
private readonly workerDescendants;
|
|
35
38
|
private readonly activeControllers;
|
|
39
|
+
private readonly activeChannels;
|
|
36
40
|
private readonly controlClaims;
|
|
37
41
|
private readonly activationTasks;
|
|
42
|
+
private readonly maintenanceCommands;
|
|
38
43
|
private readonly pendingStarts;
|
|
39
44
|
private readonly pendingRunClaims;
|
|
40
45
|
private readonly pendingResumes;
|
|
41
46
|
private readonly blockedRuns;
|
|
42
|
-
private readonly
|
|
47
|
+
private readonly sessionCoordinators;
|
|
43
48
|
private readonly sockets;
|
|
49
|
+
private readonly connections;
|
|
44
50
|
private server;
|
|
45
51
|
private claim;
|
|
46
52
|
private heartbeatTimer;
|
|
47
53
|
private pollTimer;
|
|
54
|
+
private viewTimer;
|
|
48
55
|
private stopping;
|
|
49
56
|
private started;
|
|
50
57
|
private controllerPollActive;
|
|
51
58
|
private decisionTimeoutActive;
|
|
59
|
+
private decisionChannelConfig;
|
|
60
|
+
private decisionChannelError;
|
|
61
|
+
private channelReloading;
|
|
52
62
|
constructor(options?: WorkflowHostOptions);
|
|
53
63
|
get endpoint(): string;
|
|
54
64
|
private get runClaimLeaseMs();
|
|
@@ -59,24 +69,57 @@ export declare class WorkflowHost {
|
|
|
59
69
|
private startTimers;
|
|
60
70
|
private listen;
|
|
61
71
|
private handleConnection;
|
|
72
|
+
private detachSessionCoordinators;
|
|
73
|
+
private handleClientRequest;
|
|
74
|
+
private executeMaintenanceCommand;
|
|
75
|
+
private addSubscription;
|
|
76
|
+
private sessionCoordinatorView;
|
|
77
|
+
private requireSessionCoordinator;
|
|
78
|
+
private requireSessionCommand;
|
|
79
|
+
private reportWorkflowBranch;
|
|
80
|
+
private reportWorkflowTurn;
|
|
81
|
+
private applyWorkflowTurnEnd;
|
|
82
|
+
private publishViews;
|
|
83
|
+
private publishConnection;
|
|
84
|
+
private submitInteractionAndWait;
|
|
62
85
|
private handleRequest;
|
|
63
86
|
private executeOperation;
|
|
87
|
+
private restartRun;
|
|
88
|
+
private queueSessionFollowUp;
|
|
89
|
+
private removeSessionFollowUp;
|
|
90
|
+
private changeSessionWorkflowSettings;
|
|
91
|
+
private recordSessionBatch;
|
|
64
92
|
private executeControllerOperation;
|
|
65
93
|
private statusReceipt;
|
|
66
|
-
private
|
|
67
|
-
private deliveryClaim;
|
|
68
|
-
private validateDelivery;
|
|
69
|
-
private claimNotification;
|
|
70
|
-
private deliverNotification;
|
|
71
|
-
private claimTurn;
|
|
72
|
-
private resolveTurn;
|
|
94
|
+
private stateStatusReceipt;
|
|
73
95
|
private answerCheckpoint;
|
|
74
96
|
private answerDecision;
|
|
97
|
+
private acceptDecisionAnswer;
|
|
75
98
|
private prepareDecisionContinuation;
|
|
76
99
|
private prepareContinuation;
|
|
77
100
|
private startRun;
|
|
78
101
|
private publishInteractionUpdate;
|
|
79
102
|
private submitInteraction;
|
|
103
|
+
private decisionChannelStatus;
|
|
104
|
+
private markApplyingChannelEffectsAmbiguous;
|
|
105
|
+
private recoverDecisionChannel;
|
|
106
|
+
private reloadDecisionChannels;
|
|
107
|
+
private startDecisionChannel;
|
|
108
|
+
private ensureChannelResource;
|
|
109
|
+
private handleChannelExit;
|
|
110
|
+
private handleChannelMessage;
|
|
111
|
+
private applyChannelMessage;
|
|
112
|
+
private nextChannelCommand;
|
|
113
|
+
private ensureApplyingChannelEffect;
|
|
114
|
+
private recordChannelEffectResult;
|
|
115
|
+
private confirmedChannelMessageReferences;
|
|
116
|
+
private saveChannelCursor;
|
|
117
|
+
private channelCursor;
|
|
118
|
+
private channelEventExists;
|
|
119
|
+
private recordChannelEvent;
|
|
120
|
+
private recordChannelMutation;
|
|
121
|
+
private recordChannelResourceMutation;
|
|
122
|
+
private channelRevision;
|
|
80
123
|
private claimControllerOne;
|
|
81
124
|
private activateController;
|
|
82
125
|
private handleControllerWorkerMessage;
|
|
@@ -106,6 +149,9 @@ export declare class WorkflowHost {
|
|
|
106
149
|
private parkForInteraction;
|
|
107
150
|
private prepareInteractionResume;
|
|
108
151
|
private applyLifecycleProjection;
|
|
152
|
+
private createTerminalWorkflowMessage;
|
|
153
|
+
private ensureTerminalWorkflowMessage;
|
|
154
|
+
private terminalAncestorOutcomes;
|
|
109
155
|
private completeControllerWorkflow;
|
|
110
156
|
private commitActivePause;
|
|
111
157
|
private recoverWorkerExit;
|