@osolmaz/pi-workflows 0.16.5 → 0.16.7
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 +5 -5
- package/dist/builtins/autoimplement.workflow.d.ts +5 -1
- package/dist/builtins/autoimplement.workflow.js +29 -10
- package/dist/builtins/autoimplement.workflow.js.map +1 -1
- package/dist/client/client.js +3 -1
- package/dist/client/client.js.map +1 -1
- package/dist/client/protocol.d.ts +1 -1
- package/dist/client/protocol.js +18 -1
- package/dist/client/protocol.js.map +1 -1
- package/dist/client/view.d.ts +7 -5
- package/dist/extension/index.d.ts +2 -1
- package/dist/extension/index.js +116 -166
- package/dist/extension/index.js.map +1 -1
- package/dist/extension/recorder.d.ts +1 -1
- package/dist/extension/recorder.js +2 -2
- package/dist/extension/recorder.js.map +1 -1
- package/dist/extension/step-message.d.ts +1 -1
- package/dist/extension/step-message.js +4 -4
- package/dist/extension/step-message.js.map +1 -1
- package/dist/extension/widget.js +1 -1
- package/dist/extension/widget.js.map +1 -1
- package/dist/extension/workflow-message-coordinator.d.ts +12 -3
- package/dist/extension/workflow-message-coordinator.js +108 -94
- package/dist/extension/workflow-message-coordinator.js.map +1 -1
- package/dist/render/graph-render.js +1 -1
- package/dist/resource-managers/index.d.ts +1 -2
- package/dist/resource-managers/index.js +1 -2
- package/dist/resource-managers/index.js.map +1 -1
- package/dist/resource-managers/sqlite.d.ts +2 -295
- package/dist/resource-managers/sqlite.js +71 -1528
- package/dist/resource-managers/sqlite.js.map +1 -1
- package/dist/resource-managers/types.d.ts +2 -7
- package/dist/server/resource-runner-entry.js +2 -6
- package/dist/server/resource-runner-entry.js.map +1 -1
- package/dist/server/rpc-bridge.js +1 -1
- package/dist/server/rpc-bridge.js.map +1 -1
- package/dist/server/rpc-executor.js +2 -4
- package/dist/server/rpc-executor.js.map +1 -1
- package/dist/server/server-entry.js +3 -0
- package/dist/server/server-entry.js.map +1 -1
- package/dist/server/server.d.ts +9 -8
- package/dist/server/server.js +364 -541
- package/dist/server/server.js.map +1 -1
- package/dist/server/state.d.ts +16 -29
- package/dist/server/state.js +105 -319
- package/dist/server/state.js.map +1 -1
- package/dist/server/view.d.ts +6 -5
- package/dist/server/view.js +68 -51
- package/dist/server/view.js.map +1 -1
- package/dist/server/workflow-runner-entry.d.ts +1 -1
- package/dist/server/workflow-runner-entry.js +1 -49
- package/dist/server/workflow-runner-entry.js.map +1 -1
- package/dist/server/workflow-runner-protocol.d.ts +2 -7
- package/dist/server/workflow-runner-protocol.js +5 -10
- package/dist/server/workflow-runner-protocol.js.map +1 -1
- package/dist/server/workflow-runner-store.d.ts +5 -6
- package/dist/server/workflow-runner-store.js +7 -14
- package/dist/server/workflow-runner-store.js.map +1 -1
- package/dist/state/attempt-time.d.ts +21 -0
- package/dist/state/attempt-time.js +95 -0
- package/dist/state/attempt-time.js.map +1 -0
- package/dist/state/json.d.ts +2 -1
- package/dist/state/json.js.map +1 -1
- package/dist/state/project-store.d.ts +39 -0
- package/dist/state/project-store.js +154 -0
- package/dist/state/project-store.js.map +1 -0
- package/dist/state/prune.js +0 -7
- package/dist/state/prune.js.map +1 -1
- package/dist/state/schema.js +23 -23
- package/dist/state/workflow-messages.d.ts +1 -1
- package/dist/state/workflow-messages.js +3 -1
- package/dist/state/workflow-messages.js.map +1 -1
- package/dist/viewer/backup.js +5 -0
- package/dist/viewer/backup.js.map +1 -1
- package/dist/workflows/diagnostics.d.ts +8 -0
- package/dist/workflows/diagnostics.js +61 -0
- package/dist/workflows/diagnostics.js.map +1 -0
- package/dist/workflows/engine.d.ts +2 -16
- package/dist/workflows/engine.js +128 -252
- package/dist/workflows/engine.js.map +1 -1
- package/dist/workflows/errors.d.ts +1 -1
- package/dist/workflows/errors.js +2 -2
- package/dist/workflows/errors.js.map +1 -1
- package/dist/workflows/human-decision.d.ts +3 -7
- package/dist/workflows/human-decision.js +2 -56
- package/dist/workflows/human-decision.js.map +1 -1
- package/dist/workflows/index.d.ts +2 -1
- package/dist/workflows/index.js +1 -0
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/queue.d.ts +267 -0
- package/dist/workflows/queue.js +1248 -0
- package/dist/workflows/queue.js.map +1 -0
- package/dist/workflows/requests.d.ts +47 -0
- package/dist/workflows/requests.js +158 -0
- package/dist/workflows/requests.js.map +1 -0
- package/dist/workflows/schema.js +2 -4
- package/dist/workflows/schema.js.map +1 -1
- package/dist/workflows/store.d.ts +11 -16
- package/dist/workflows/store.js +177 -174
- package/dist/workflows/store.js.map +1 -1
- package/dist/workflows/tool-input.d.ts +6 -9
- package/dist/workflows/tool-input.js +15 -12
- package/dist/workflows/tool-input.js.map +1 -1
- package/dist/workflows/transitions.d.ts +38 -0
- package/dist/workflows/transitions.js +276 -0
- package/dist/workflows/transitions.js.map +1 -0
- package/dist/workflows/types.d.ts +9 -42
- package/dist/workflows/workflow-message-content.d.ts +7 -1
- package/dist/workflows/workflow-message-content.js +22 -4
- package/dist/workflows/workflow-message-content.js.map +1 -1
- package/docs/2026-08-25-workflow-follow-ups.md +5 -5
- package/docs/2026-09-02-unify-workflow-messages-plan.md +2 -0
- package/docs/2026-09-04-workflow-run-state-plan.md +2 -0
- package/docs/2026-09-06-durable-execution-plan.md +176 -0
- package/docs/2026-09-07-workflow-handoff-plan.md +84 -0
- package/docs/DEFERRED_TURNS.md +84 -105
- package/docs/HUMAN_DECISIONS.md +17 -19
- package/docs/HUMAN_DECISION_PRESENTATIONS.md +1 -1
- package/docs/SQLITE_STATE.md +68 -29
- package/docs/WORKFLOW_SERVER.md +21 -10
- package/docs/WORKFLOW_STEP_MESSAGES.md +83 -54
- package/docs/plans/2026-08-04-controller-runtime-plan.md +2 -0
- package/docs/plans/2026-08-21-deferred-turn-intents-plan.md +2 -0
- package/docs/plans/2026-08-27-workflow-terminal-restart-plan.md +2 -0
- package/docs/workflows.md +111 -45
- package/examples/workflows/autoresearch.workflow.ts +0 -2
- package/examples/workflows/branch.workflow.ts +0 -4
- package/examples/workflows/echo.workflow.ts +0 -2
- package/examples/workflows/live-settings.workflow.ts +0 -2
- package/examples/workflows/two-turn.workflow.ts +0 -2
- package/herdr-plugin.toml +1 -1
- package/package.json +1 -1
- package/protocol/fixtures/client-v1.json +1 -1
- package/skills/pi-workflows/SKILL.md +8 -7
- package/src/builtins/autoimplement.workflow.ts +31 -10
- package/src/client/client.ts +3 -1
- package/src/client/protocol.ts +21 -1
- package/src/client/view.ts +9 -5
- package/src/extension/index.ts +118 -190
- package/src/extension/recorder.ts +2 -2
- package/src/extension/step-message.ts +4 -4
- package/src/extension/widget.ts +1 -1
- package/src/extension/workflow-message-coordinator.ts +133 -95
- package/src/render/graph-render.ts +1 -1
- package/src/resource-managers/index.ts +1 -9
- package/src/resource-managers/sqlite.ts +330 -2655
- package/src/resource-managers/types.ts +2 -3
- package/src/server/resource-runner-entry.ts +2 -7
- package/src/server/rpc-bridge.ts +1 -1
- package/src/server/rpc-executor.ts +4 -9
- package/src/server/server-entry.ts +3 -0
- package/src/server/server.ts +416 -641
- package/src/server/state.ts +122 -466
- package/src/server/view.ts +73 -58
- package/src/server/workflow-runner-entry.ts +2 -55
- package/src/server/workflow-runner-protocol.ts +5 -15
- package/src/server/workflow-runner-store.ts +12 -27
- package/src/state/attempt-time.ts +122 -0
- package/src/state/json.ts +2 -1
- package/src/state/project-store.ts +218 -0
- package/src/state/prune.ts +0 -13
- package/src/state/schema.ts +23 -23
- package/src/state/workflow-messages.ts +4 -2
- package/src/viewer/backup.ts +7 -0
- package/src/workflows/diagnostics.ts +78 -0
- package/src/workflows/engine.ts +136 -299
- package/src/workflows/errors.ts +4 -2
- package/src/workflows/human-decision.ts +3 -81
- package/src/workflows/index.ts +8 -2
- package/src/workflows/queue.ts +2091 -0
- package/src/workflows/requests.ts +283 -0
- package/src/workflows/schema.ts +2 -6
- package/src/workflows/store.ts +226 -236
- package/src/workflows/tool-input.ts +20 -12
- package/src/workflows/transitions.ts +330 -0
- package/src/workflows/types.ts +9 -46
- package/src/workflows/workflow-message-content.ts +28 -4
- package/dist/resource-managers/runtime.d.ts +0 -59
- package/dist/resource-managers/runtime.js +0 -423
- package/dist/resource-managers/runtime.js.map +0 -1
- package/src/resource-managers/runtime.ts +0 -576
package/dist/server/state.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type ClientRequest, type ClientResponse } from "../client/protocol.js";
|
|
2
|
+
import { type AttemptClock } from "../state/attempt-time.js";
|
|
2
3
|
import { StateDatabase } from "../state/database.js";
|
|
3
4
|
import { type JsonValue } from "../state/json.js";
|
|
4
5
|
import { WorkflowMessageStore, type WorkflowStepReason } from "../state/workflow-messages.js";
|
|
6
|
+
import { type InteractiveRequestRecord } from "../workflows/requests.js";
|
|
5
7
|
import type { WorkflowRunnerMessage, WorkflowRunnerResponse } from "./workflow-runner-protocol.js";
|
|
6
8
|
export type ServerClaim = {
|
|
7
9
|
serverId: string;
|
|
@@ -42,29 +44,15 @@ export type InteractiveSubmissionRecord = {
|
|
|
42
44
|
receipt: JsonValue | null;
|
|
43
45
|
submittedAt: string;
|
|
44
46
|
};
|
|
45
|
-
export type InteractiveRequestRecord = {
|
|
46
|
-
requestId: string;
|
|
47
|
-
runId: string;
|
|
48
|
-
attemptId: string;
|
|
49
|
-
targetSessionId: string;
|
|
50
|
-
kind: "agent" | "assistant" | "decision";
|
|
51
|
-
contract: JsonValue;
|
|
52
|
-
revision: number;
|
|
53
|
-
status: "pending" | "settled" | "cancelled";
|
|
54
|
-
unproductiveTurnEnds: number;
|
|
55
|
-
acceptedSubmissionId: string | null;
|
|
56
|
-
createdAt: string;
|
|
57
|
-
updatedAt: string;
|
|
58
|
-
settledAt: string | null;
|
|
59
|
-
consumedAt: string | null;
|
|
60
|
-
};
|
|
61
47
|
export declare class ServerStateStore {
|
|
62
48
|
readonly state: StateDatabase;
|
|
63
49
|
private readonly ownsState;
|
|
64
50
|
readonly workflowMessages: WorkflowMessageStore;
|
|
51
|
+
private readonly attemptTime;
|
|
65
52
|
constructor(databasePath: string, options?: {
|
|
66
53
|
state?: StateDatabase;
|
|
67
54
|
readOnly?: boolean;
|
|
55
|
+
clock?: AttemptClock;
|
|
68
56
|
});
|
|
69
57
|
close(): void;
|
|
70
58
|
acquireServer(options: {
|
|
@@ -102,11 +90,12 @@ export declare class ServerStateStore {
|
|
|
102
90
|
}): InteractiveRequestRecord;
|
|
103
91
|
ensureInteractionMessage(request: InteractiveRequestRecord, reason: WorkflowStepReason, now?: number): import("../state/workflow-messages.js").WorkflowMessage;
|
|
104
92
|
resumePendingInteraction(runId: string, now?: number): InteractiveRequestRecord;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
93
|
+
syncActiveTime(): void;
|
|
94
|
+
beginInteractionModelTurn(requestId: string): void;
|
|
95
|
+
endInteractionModelTurn(requestId: string): void;
|
|
96
|
+
resumeInteractionModelTurn(runId: string): void;
|
|
108
97
|
markSessionModelTurnsInactive(targetSessionId: string, now?: number): void;
|
|
109
|
-
recoverInactiveModelTurns(
|
|
98
|
+
recoverInactiveModelTurns(now?: number): void;
|
|
110
99
|
resumeSessionModelTurns(targetSessionId: string, now?: number): void;
|
|
111
100
|
getInteraction(requestId: string): InteractiveRequestRecord | undefined;
|
|
112
101
|
acceptedInteraction(runId: string): {
|
|
@@ -123,8 +112,8 @@ export declare class ServerStateStore {
|
|
|
123
112
|
submissionId: string;
|
|
124
113
|
payload: JsonValue;
|
|
125
114
|
} | undefined;
|
|
126
|
-
|
|
127
|
-
expiredInteractionRuns(
|
|
115
|
+
readyInteractionRunIds(): string[];
|
|
116
|
+
expiredInteractionRuns(): ExpiredInteractionRunRow[];
|
|
128
117
|
timedOutInteraction(runId: string): TimedOutInteractionRow | undefined;
|
|
129
118
|
interactionSubmission(requestId: string, submissionId: string): InteractiveSubmissionRecord | undefined;
|
|
130
119
|
finishInteractionValidation(options: {
|
|
@@ -133,7 +122,6 @@ export declare class ServerStateStore {
|
|
|
133
122
|
accepted: boolean;
|
|
134
123
|
receipt: JsonValue;
|
|
135
124
|
}): InteractiveSubmissionRecord;
|
|
136
|
-
consumeAcceptedInteraction(runId: string, attemptId: string, now?: number): boolean;
|
|
137
125
|
listPendingInteractions(sessionId: string): InteractiveRequestRecord[];
|
|
138
126
|
listPendingDecisionInteractions(): InteractiveRequestRecord[];
|
|
139
127
|
submitInteraction(options: {
|
|
@@ -150,6 +138,7 @@ export declare class ServerStateStore {
|
|
|
150
138
|
outcome: "accepted" | "adopted";
|
|
151
139
|
receipt: JsonValue;
|
|
152
140
|
};
|
|
141
|
+
hasInteractionSubmission(requestId: string, idempotencyKey: string): boolean;
|
|
153
142
|
beginInteractionValidation(options: {
|
|
154
143
|
requestId: string;
|
|
155
144
|
submissionId: string;
|
|
@@ -163,20 +152,18 @@ export declare class ServerStateStore {
|
|
|
163
152
|
outcome: "accepted" | "adopted";
|
|
164
153
|
receipt: JsonValue;
|
|
165
154
|
};
|
|
166
|
-
private recordInteractionSubmission;
|
|
167
155
|
private serverRow;
|
|
168
156
|
private commandResponse;
|
|
169
157
|
private interactiveRequest;
|
|
170
|
-
private shiftInteractionTimeout;
|
|
171
158
|
private requireInteractiveRequest;
|
|
172
159
|
}
|
|
160
|
+
type ExpiredInteractionRunRow = {
|
|
161
|
+
runId: string;
|
|
162
|
+
targetSessionId: string;
|
|
163
|
+
};
|
|
173
164
|
type TimedOutInteractionRow = {
|
|
174
165
|
requestId: string;
|
|
175
166
|
attemptId: string;
|
|
176
167
|
nodeId: string;
|
|
177
168
|
};
|
|
178
|
-
type ExpiredInteractionRunRow = {
|
|
179
|
-
runId: string;
|
|
180
|
-
targetSessionId: string;
|
|
181
|
-
};
|
|
182
169
|
export {};
|