@osolmaz/pi-workflows 0.5.2 → 0.6.0
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 +13 -3
- package/dist/builtins/catalog.js +1 -1
- package/dist/builtins/monitor.workflow.d.ts +25 -69
- package/dist/builtins/monitor.workflow.js +194 -123
- package/dist/builtins/monitor.workflow.js.map +1 -1
- package/dist/extension/executor.d.ts +7 -2
- package/dist/extension/executor.js +20 -14
- package/dist/extension/executor.js.map +1 -1
- package/dist/extension/index.js +56 -15
- package/dist/extension/index.js.map +1 -1
- package/dist/extension/step-message.d.ts +24 -0
- package/dist/extension/step-message.js +106 -0
- package/dist/extension/step-message.js.map +1 -0
- package/dist/extension/widget.d.ts +4 -2
- package/dist/extension/widget.js +111 -17
- package/dist/extension/widget.js.map +1 -1
- package/dist/extension/workflow-tool.d.ts +9 -0
- package/dist/extension/workflow-tool.js +10 -0
- package/dist/extension/workflow-tool.js.map +1 -1
- package/dist/host/rpc-bridge.js +25 -11
- package/dist/host/rpc-bridge.js.map +1 -1
- package/dist/host/rpc-executor.d.ts +2 -2
- package/dist/host/rpc-executor.js +23 -12
- package/dist/host/rpc-executor.js.map +1 -1
- package/dist/viewer/cli.js +1 -1
- package/dist/viewer/cli.js.map +1 -1
- package/dist/viewer/render.js +14 -0
- package/dist/viewer/render.js.map +1 -1
- package/dist/viewer/tui.js +1 -1
- package/dist/viewer/tui.js.map +1 -1
- package/dist/workflows/engine.d.ts +6 -1
- package/dist/workflows/engine.js +88 -6
- package/dist/workflows/engine.js.map +1 -1
- package/dist/workflows/index.d.ts +4 -2
- package/dist/workflows/index.js +2 -0
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/progress.d.ts +34 -0
- package/dist/workflows/progress.js +268 -0
- package/dist/workflows/progress.js.map +1 -0
- package/dist/workflows/schema.js +21 -1
- package/dist/workflows/schema.js.map +1 -1
- package/dist/workflows/shell.d.ts +2 -2
- package/dist/workflows/shell.js +103 -25
- package/dist/workflows/shell.js.map +1 -1
- package/dist/workflows/store.d.ts +15 -2
- package/dist/workflows/store.js +44 -2
- package/dist/workflows/store.js.map +1 -1
- package/dist/workflows/types.d.ts +52 -1
- package/dist/workflows/updates.d.ts +15 -0
- package/dist/workflows/updates.js +188 -0
- package/dist/workflows/updates.js.map +1 -0
- package/docs/DESIGN_PHILOSOPHY.md +51 -0
- package/docs/MONITOR.md +282 -0
- package/docs/WORKFLOW_STEP_MESSAGES.md +141 -0
- package/docs/WORKFLOW_UPDATES.md +416 -0
- package/docs/development.md +7 -3
- package/docs/plans/2026-08-13-responsive-workflow-widget-plan.md +11 -3
- package/docs/plans/2026-08-16-workflow-updates-plan.md +494 -0
- package/docs/run-bundles.md +10 -2
- package/docs/workflows.md +57 -17
- package/package.json +1 -1
- package/src/builtins/catalog.ts +1 -1
- package/src/builtins/monitor.workflow.ts +217 -148
- package/src/extension/executor.ts +36 -14
- package/src/extension/index.ts +89 -23
- package/src/extension/step-message.ts +145 -0
- package/src/extension/widget.ts +158 -14
- package/src/extension/workflow-tool.ts +22 -0
- package/src/host/rpc-bridge.ts +37 -14
- package/src/host/rpc-executor.ts +35 -14
- package/src/viewer/cli.ts +1 -1
- package/src/viewer/render.ts +27 -0
- package/src/viewer/tui.ts +1 -1
- package/src/workflows/engine.ts +117 -4
- package/src/workflows/index.ts +32 -0
- package/src/workflows/progress.ts +326 -0
- package/src/workflows/schema.ts +23 -1
- package/src/workflows/shell.ts +109 -26
- package/src/workflows/store.ts +67 -2
- package/src/workflows/types.ts +78 -1
- package/src/workflows/updates.ts +208 -0
package/README.md
CHANGED
|
@@ -9,7 +9,14 @@ The workflow model is a port of [openclaw/acpx](https://github.com/openclaw/acpx
|
|
|
9
9
|
flows into pi itself. Agent steps run inside your current pi conversation, so
|
|
10
10
|
the model keeps everything it already knows from the discussion. The model
|
|
11
11
|
completes each step by calling a JSON `workflow` tool, which gives the engine
|
|
12
|
-
structured, validated output to route on.
|
|
12
|
+
structured, validated output to route on. See the
|
|
13
|
+
[design philosophy](docs/DESIGN_PHILOSOPHY.md) for the principles behind the
|
|
14
|
+
engine and its public parts. Running steps can publish durable [workflow
|
|
15
|
+
updates](docs/WORKFLOW_UPDATES.md), including progress counts and ETA data.
|
|
16
|
+
Agent instructions use compact [workflow step
|
|
17
|
+
messages](docs/WORKFLOW_STEP_MESSAGES.md), and the built-in
|
|
18
|
+
[monitor](docs/MONITOR.md) reports every check without starting an extra
|
|
19
|
+
assistant turn.
|
|
13
20
|
|
|
14
21
|
## Install
|
|
15
22
|
|
|
@@ -171,7 +178,9 @@ Inside pi, a compact widget above the editor shows one line per workflow node.
|
|
|
171
178
|
The first glyph is the node status. The second glyph is the node type: `●`
|
|
172
179
|
agent, `ƒ` compute, `!` notification, `$` shell action, `*` function action, or
|
|
173
180
|
`◆` checkpoint. Repeated visits, runtime details, and timing appear on the same
|
|
174
|
-
line when they apply.
|
|
181
|
+
line when they apply. Pi's current theme highlights the full active-node line,
|
|
182
|
+
while status glyphs keep every state readable without color. Long workflows are
|
|
183
|
+
windowed around the active node.
|
|
175
184
|
Scroll the list with `shift+↑` / `shift+↓`; it snaps back to following the
|
|
176
185
|
active node whenever the workflow advances a step. Use `piw` when you need the
|
|
177
186
|
full boxed graph and its edges.
|
|
@@ -247,7 +256,8 @@ example set. Copy any of them into `.pi/workflows/` to use them:
|
|
|
247
256
|
- `branch` classifies a task with a `decision` and routes to either a
|
|
248
257
|
continue lane or a clarification checkpoint.
|
|
249
258
|
- `shell` runs a runtime-owned shell command and parses its output, with no
|
|
250
|
-
agent step at all.
|
|
259
|
+
agent step at all. Shell and function actions can publish durable progress
|
|
260
|
+
while they run.
|
|
251
261
|
- `two-turn` chains three agent steps that build on each other's outputs in
|
|
252
262
|
the same conversation.
|
|
253
263
|
- `elegant-solution` is the mid-conversation trigger described above.
|
package/dist/builtins/catalog.js
CHANGED
|
@@ -1,71 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
import type { WorkflowDefinition, WorkflowProgressData } from "../workflows/types.js";
|
|
2
|
+
export type MonitorInput = {
|
|
3
|
+
task: string;
|
|
4
|
+
everyMinutes?: number;
|
|
5
|
+
stopWhen?: string;
|
|
6
|
+
maxChecks?: number;
|
|
7
|
+
checkTimeoutMinutes?: number;
|
|
8
|
+
};
|
|
9
|
+
type MonitorConfig = Required<MonitorInput>;
|
|
10
|
+
type MonitorRoute = "continue" | "stop";
|
|
11
|
+
type MonitorTrack = {
|
|
12
|
+
key: string;
|
|
13
|
+
data: WorkflowProgressData;
|
|
14
|
+
};
|
|
15
|
+
type MonitorCheck = {
|
|
16
|
+
route: MonitorRoute;
|
|
17
|
+
observation: string;
|
|
18
|
+
report: string;
|
|
19
|
+
progress?: {
|
|
20
|
+
tracks: MonitorTrack[];
|
|
19
21
|
};
|
|
20
|
-
|
|
21
|
-
from: string;
|
|
22
|
-
to: string;
|
|
23
|
-
switch?: never;
|
|
24
|
-
} | {
|
|
25
|
-
to?: never;
|
|
26
|
-
from: string;
|
|
27
|
-
switch: {
|
|
28
|
-
on: string;
|
|
29
|
-
cases: {
|
|
30
|
-
check: string;
|
|
31
|
-
stop: string;
|
|
32
|
-
continue_quiet?: never;
|
|
33
|
-
continue_report?: never;
|
|
34
|
-
stop_quiet?: never;
|
|
35
|
-
stop_report?: never;
|
|
36
|
-
sleep?: never;
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
} | {
|
|
40
|
-
to?: never;
|
|
41
|
-
from: string;
|
|
42
|
-
switch: {
|
|
43
|
-
on: string;
|
|
44
|
-
cases: {
|
|
45
|
-
check?: never;
|
|
46
|
-
continue_quiet: string;
|
|
47
|
-
continue_report: string;
|
|
48
|
-
stop_quiet: string;
|
|
49
|
-
stop_report: string;
|
|
50
|
-
sleep?: never;
|
|
51
|
-
stop?: never;
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
} | {
|
|
55
|
-
to?: never;
|
|
56
|
-
from: string;
|
|
57
|
-
switch: {
|
|
58
|
-
on: string;
|
|
59
|
-
cases: {
|
|
60
|
-
check?: never;
|
|
61
|
-
continue_quiet?: never;
|
|
62
|
-
continue_report?: never;
|
|
63
|
-
stop_quiet?: never;
|
|
64
|
-
stop_report?: never;
|
|
65
|
-
sleep: string;
|
|
66
|
-
stop: string;
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
})[];
|
|
22
|
+
reason: string;
|
|
70
23
|
};
|
|
71
|
-
export
|
|
24
|
+
export declare function prepareMonitorInput(input: unknown): MonitorConfig;
|
|
25
|
+
export declare function validateMonitorCheck(output: unknown): MonitorCheck;
|
|
26
|
+
declare const monitorWorkflow: WorkflowDefinition;
|
|
27
|
+
export default monitorWorkflow;
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
import { agent, compute, defineWorkflow, notify, shell } from "../workflows/definition.js";
|
|
1
|
+
import { action, agent, compute, defineWorkflow, notify, shell } from "../workflows/definition.js";
|
|
2
|
+
import { estimateProgress, formatProgressReport, } from "../workflows/progress.js";
|
|
3
|
+
import { validateProgressData } from "../workflows/updates.js";
|
|
2
4
|
const MIN_INTERVAL_MINUTES = 1;
|
|
3
5
|
const MAX_INTERVAL_MINUTES = 24 * 60;
|
|
6
|
+
const DEFAULT_INTERVAL_MINUTES = 30;
|
|
4
7
|
const MIN_CHECK_TIMEOUT_MINUTES = 5;
|
|
5
8
|
const MAX_CHECK_TIMEOUT_MINUTES = 24 * 60;
|
|
6
9
|
const DEFAULT_MIN_CHECK_TIMEOUT_MINUTES = 60;
|
|
7
10
|
const DEFAULT_MAX_CHECKS = 1_000;
|
|
8
11
|
const MAX_CHECKS = 1_000;
|
|
12
|
+
const MAX_TRACKS = 256;
|
|
9
13
|
const MAX_OBSERVATION_CHARS = 8_000;
|
|
10
14
|
const MAX_REPORT_CHARS = 4_000;
|
|
11
15
|
const MAX_REASON_CHARS = 2_000;
|
|
12
16
|
const SLEEP_TIMEOUT_MARGIN_MS = 60_000;
|
|
13
17
|
const NODE_TIMEOUT_MARGIN_MS = 2 * 60_000;
|
|
14
|
-
const MONITOR_ROUTES = new Set([
|
|
15
|
-
"continue_quiet",
|
|
16
|
-
"continue_report",
|
|
17
|
-
"stop_quiet",
|
|
18
|
-
"stop_report",
|
|
19
|
-
]);
|
|
20
18
|
function requireRecord(value, label) {
|
|
21
19
|
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
22
20
|
throw new Error(`${label} must be an object`);
|
|
@@ -24,32 +22,50 @@ function requireRecord(value, label) {
|
|
|
24
22
|
return value;
|
|
25
23
|
}
|
|
26
24
|
function requireBoundedString(value, label, maxChars) {
|
|
27
|
-
if (typeof value !== "string")
|
|
25
|
+
if (typeof value !== "string")
|
|
28
26
|
throw new Error(`${label} must be a string`);
|
|
29
|
-
}
|
|
30
27
|
const trimmed = value.trim();
|
|
31
|
-
if (trimmed.length === 0)
|
|
28
|
+
if (trimmed.length === 0)
|
|
32
29
|
throw new Error(`${label} must not be empty`);
|
|
33
|
-
|
|
34
|
-
if (trimmed.length > maxChars) {
|
|
30
|
+
if (trimmed.length > maxChars)
|
|
35
31
|
throw new Error(`${label} must be at most ${maxChars} characters`);
|
|
36
|
-
}
|
|
37
32
|
return trimmed;
|
|
38
33
|
}
|
|
39
|
-
function
|
|
34
|
+
async function waitForUpdateSlot(signal) {
|
|
35
|
+
await new Promise((resolve, reject) => {
|
|
36
|
+
const onAbort = () => {
|
|
37
|
+
clearTimeout(timer);
|
|
38
|
+
reject(signal.reason ?? new Error("monitor progress publication was cancelled"));
|
|
39
|
+
};
|
|
40
|
+
const timer = setTimeout(() => {
|
|
41
|
+
signal.removeEventListener("abort", onAbort);
|
|
42
|
+
resolve();
|
|
43
|
+
}, 55);
|
|
44
|
+
if (signal.aborted)
|
|
45
|
+
onAbort();
|
|
46
|
+
else
|
|
47
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
export function prepareMonitorInput(input) {
|
|
40
51
|
const value = requireRecord(input, "monitor input");
|
|
52
|
+
const allowed = new Set(["task", "everyMinutes", "stopWhen", "maxChecks", "checkTimeoutMinutes"]);
|
|
53
|
+
for (const field of Object.keys(value)) {
|
|
54
|
+
if (!allowed.has(field))
|
|
55
|
+
throw new Error(`monitor input field ${field} is not supported`);
|
|
56
|
+
}
|
|
41
57
|
const task = requireBoundedString(value.task, "task", 8_000);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
58
|
+
const everyMinutes = value.everyMinutes ?? DEFAULT_INTERVAL_MINUTES;
|
|
59
|
+
if (!Number.isInteger(everyMinutes) ||
|
|
60
|
+
everyMinutes < MIN_INTERVAL_MINUTES ||
|
|
61
|
+
everyMinutes > MAX_INTERVAL_MINUTES) {
|
|
46
62
|
throw new Error(`everyMinutes must be an integer from ${MIN_INTERVAL_MINUTES} through ${MAX_INTERVAL_MINUTES}`);
|
|
47
63
|
}
|
|
48
64
|
const maxChecks = value.maxChecks ?? DEFAULT_MAX_CHECKS;
|
|
49
65
|
if (!Number.isInteger(maxChecks) || maxChecks <= 0 || maxChecks > MAX_CHECKS) {
|
|
50
66
|
throw new Error(`maxChecks must be an integer from 1 through ${MAX_CHECKS}`);
|
|
51
67
|
}
|
|
52
|
-
const checkTimeoutMinutes = value.checkTimeoutMinutes ?? Math.max(DEFAULT_MIN_CHECK_TIMEOUT_MINUTES,
|
|
68
|
+
const checkTimeoutMinutes = value.checkTimeoutMinutes ?? Math.max(DEFAULT_MIN_CHECK_TIMEOUT_MINUTES, everyMinutes);
|
|
53
69
|
if (!Number.isInteger(checkTimeoutMinutes) ||
|
|
54
70
|
checkTimeoutMinutes < MIN_CHECK_TIMEOUT_MINUTES ||
|
|
55
71
|
checkTimeoutMinutes > MAX_CHECK_TIMEOUT_MINUTES) {
|
|
@@ -57,12 +73,9 @@ function prepareInput(input) {
|
|
|
57
73
|
}
|
|
58
74
|
return {
|
|
59
75
|
task,
|
|
60
|
-
everyMinutes
|
|
61
|
-
reportWhen: value.reportWhen === undefined
|
|
62
|
-
? "The observed state changes materially or needs the user's attention."
|
|
63
|
-
: requireBoundedString(value.reportWhen, "reportWhen", 4_000),
|
|
76
|
+
everyMinutes,
|
|
64
77
|
stopWhen: value.stopWhen === undefined
|
|
65
|
-
? "
|
|
78
|
+
? "Stop only when the user explicitly asks to stop."
|
|
66
79
|
: requireBoundedString(value.stopWhen, "stopWhen", 4_000),
|
|
67
80
|
maxChecks,
|
|
68
81
|
checkTimeoutMinutes,
|
|
@@ -71,119 +84,190 @@ function prepareInput(input) {
|
|
|
71
84
|
function configFrom(outputs) {
|
|
72
85
|
return outputs.prepare;
|
|
73
86
|
}
|
|
74
|
-
function agentTimeoutMs({ outputs }) {
|
|
75
|
-
return configFrom(outputs).checkTimeoutMinutes * 60_000;
|
|
76
|
-
}
|
|
77
87
|
function completedChecks(context) {
|
|
78
88
|
return context.state.steps.filter((step) => step.nodeId === "check" && step.outcome === "ok")
|
|
79
89
|
.length;
|
|
80
90
|
}
|
|
81
|
-
function
|
|
91
|
+
export function validateMonitorCheck(output) {
|
|
82
92
|
const value = requireRecord(output, "monitor check output");
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
: requireBoundedString(value.report, "report", MAX_REPORT_CHARS)
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
const allowed = new Set(["route", "observation", "report", "progress", "reason"]);
|
|
94
|
+
for (const key of Object.keys(value))
|
|
95
|
+
if (!allowed.has(key))
|
|
96
|
+
throw new Error(`monitor check field ${key} is not supported`);
|
|
97
|
+
if (value.route !== "continue" && value.route !== "stop")
|
|
98
|
+
throw new Error("route must be continue or stop");
|
|
99
|
+
const check = {
|
|
100
|
+
route: value.route,
|
|
101
|
+
observation: requireBoundedString(value.observation, "observation", MAX_OBSERVATION_CHARS),
|
|
102
|
+
report: requireBoundedString(value.report, "report", MAX_REPORT_CHARS),
|
|
103
|
+
reason: requireBoundedString(value.reason, "reason", MAX_REASON_CHARS),
|
|
104
|
+
};
|
|
105
|
+
if (value.progress !== undefined)
|
|
106
|
+
check.progress = validateMonitorProgress(value.progress);
|
|
107
|
+
return check;
|
|
108
|
+
}
|
|
109
|
+
function validateMonitorProgress(input) {
|
|
110
|
+
const value = requireRecord(input, "progress");
|
|
111
|
+
if (Object.keys(value).some((key) => key !== "tracks"))
|
|
112
|
+
throw new Error("progress only supports tracks");
|
|
113
|
+
if (!Array.isArray(value.tracks) || value.tracks.length < 1 || value.tracks.length > MAX_TRACKS) {
|
|
114
|
+
throw new Error(`progress.tracks must contain 1 through ${MAX_TRACKS} entries`);
|
|
95
115
|
}
|
|
116
|
+
const keys = new Set();
|
|
117
|
+
const tracks = value.tracks.map((raw, index) => {
|
|
118
|
+
const track = requireRecord(raw, `progress.tracks[${index}]`);
|
|
119
|
+
if (Object.keys(track).some((key) => key !== "key" && key !== "data")) {
|
|
120
|
+
throw new Error(`progress.tracks[${index}] has an unsupported field`);
|
|
121
|
+
}
|
|
122
|
+
const key = requireBoundedString(track.key, `progress.tracks[${index}].key`, 128);
|
|
123
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/.test(key))
|
|
124
|
+
throw new Error(`progress.tracks[${index}].key is invalid`);
|
|
125
|
+
if (keys.has(key))
|
|
126
|
+
throw new Error(`progress track key ${key} is duplicated`);
|
|
127
|
+
keys.add(key);
|
|
128
|
+
return {
|
|
129
|
+
key,
|
|
130
|
+
data: validateProgressData(requireRecord(track.data, `progress.tracks[${index}].data`)),
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
return { tracks };
|
|
134
|
+
}
|
|
135
|
+
function estimateTracks(outputs) {
|
|
136
|
+
const check = outputs.check;
|
|
137
|
+
if (check.progress === undefined)
|
|
138
|
+
return { tracks: [] };
|
|
139
|
+
const previous = outputs.estimate;
|
|
140
|
+
const previousByKey = new Map((previous?.tracks ?? []).map((track) => [track.key, track]));
|
|
141
|
+
const at = new Date().toISOString();
|
|
96
142
|
return {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
143
|
+
tracks: check.progress.tracks.map((track) => {
|
|
144
|
+
const samples = [
|
|
145
|
+
...(previousByKey.get(track.key)?.samples ?? []),
|
|
146
|
+
{ at, data: track.data },
|
|
147
|
+
].slice(-9);
|
|
148
|
+
return { key: track.key, samples, estimate: estimateProgress(track.key, samples) };
|
|
149
|
+
}),
|
|
101
150
|
};
|
|
102
151
|
}
|
|
103
|
-
function reportMessage(
|
|
104
|
-
const check = outputs.check;
|
|
105
|
-
|
|
152
|
+
function reportMessage(context) {
|
|
153
|
+
const check = context.outputs.check;
|
|
154
|
+
const estimate = context.outputs.estimate;
|
|
155
|
+
const config = configFrom(context.outputs);
|
|
156
|
+
const suffix = [];
|
|
157
|
+
if (estimate.tracks.length > 0) {
|
|
158
|
+
suffix.push(formatProgressReport(estimate.tracks.map((track) => track.estimate), check.route === "continue" ? config.everyMinutes : undefined, new Date(), 2_000));
|
|
159
|
+
}
|
|
160
|
+
if (check.route === "continue" && completedChecks(context) >= config.maxChecks) {
|
|
161
|
+
suffix.push(`Reached the ${config.maxChecks}-check safety limit.`);
|
|
162
|
+
}
|
|
163
|
+
const suffixText = suffix.filter(Boolean).join("\n");
|
|
164
|
+
if (suffixText.length === 0)
|
|
165
|
+
return check.report;
|
|
166
|
+
const reportBudget = Math.max(1, MAX_REPORT_CHARS - suffixText.length - 1);
|
|
167
|
+
const report = check.report.length <= reportBudget
|
|
168
|
+
? check.report
|
|
169
|
+
: `${check.report.slice(0, Math.max(0, reportBudget - 1))}…`;
|
|
170
|
+
return `${report}\n${suffixText}`;
|
|
106
171
|
}
|
|
107
|
-
|
|
172
|
+
const monitorWorkflow = defineWorkflow({
|
|
108
173
|
name: "monitor",
|
|
109
174
|
title: ({ input }) => {
|
|
110
175
|
try {
|
|
111
|
-
|
|
112
|
-
return `monitor: ${task.slice(0, 80)}`;
|
|
176
|
+
return `monitor: ${prepareMonitorInput(input).task.slice(0, 80)}`;
|
|
113
177
|
}
|
|
114
178
|
catch {
|
|
115
179
|
return "monitor";
|
|
116
180
|
}
|
|
117
181
|
},
|
|
118
|
-
presentationPrompt: ({ finalOutput }) => {
|
|
119
|
-
const result = requireRecord(finalOutput, "monitor result");
|
|
120
|
-
if (result.reported === true) {
|
|
121
|
-
return undefined;
|
|
122
|
-
}
|
|
123
|
-
return `Tell the user concisely why this monitor stopped: ${String(result.reason ?? "monitor ended")}`;
|
|
124
|
-
},
|
|
125
182
|
startAt: "prepare",
|
|
126
|
-
maxSteps:
|
|
183
|
+
maxSteps: 9_010,
|
|
127
184
|
nodes: {
|
|
128
|
-
prepare: compute({
|
|
129
|
-
run: ({ input }) => prepareInput(input),
|
|
130
|
-
}),
|
|
131
|
-
guard: compute({
|
|
132
|
-
run: (context) => {
|
|
133
|
-
const config = configFrom(context.outputs);
|
|
134
|
-
const checks = completedChecks(context);
|
|
135
|
-
return checks >= config.maxChecks
|
|
136
|
-
? { route: "stop", checks, reason: `Reached the ${config.maxChecks}-check limit.` }
|
|
137
|
-
: { route: "check", checks };
|
|
138
|
-
},
|
|
139
|
-
}),
|
|
140
|
-
continue_guard: compute({
|
|
141
|
-
run: (context) => {
|
|
142
|
-
const config = configFrom(context.outputs);
|
|
143
|
-
const checks = completedChecks(context);
|
|
144
|
-
return checks >= config.maxChecks
|
|
145
|
-
? { route: "stop", checks, reason: `Reached the ${config.maxChecks}-check limit.` }
|
|
146
|
-
: { route: "sleep", checks };
|
|
147
|
-
},
|
|
148
|
-
}),
|
|
185
|
+
prepare: compute({ run: ({ input }) => prepareMonitorInput(input) }),
|
|
149
186
|
check: agent({
|
|
150
187
|
statusDetail: "checking monitored target",
|
|
151
|
-
timeoutMs:
|
|
188
|
+
timeoutMs: ({ outputs }) => configFrom(outputs).checkTimeoutMinutes * 60_000,
|
|
152
189
|
prompt: (context) => {
|
|
153
190
|
const config = configFrom(context.outputs);
|
|
154
191
|
const previous = context.outputs.check;
|
|
155
|
-
const
|
|
192
|
+
const priorEstimate = context.outputs.estimate;
|
|
156
193
|
return [
|
|
157
|
-
`Perform monitoring check ${
|
|
194
|
+
`Perform monitoring check ${completedChecks(context) + 1} of at most ${config.maxChecks}.`,
|
|
158
195
|
`Task: ${config.task}`,
|
|
159
|
-
`Report when: ${config.reportWhen}`,
|
|
160
196
|
`Stop when: ${config.stopWhen}`,
|
|
161
197
|
previous === undefined
|
|
162
|
-
? "There is no previous observation.
|
|
198
|
+
? "There is no previous observation."
|
|
163
199
|
: `Previous accepted observation: ${previous.observation}`,
|
|
164
|
-
|
|
165
|
-
|
|
200
|
+
priorEstimate?.tracks.length
|
|
201
|
+
? `Previous progress: ${formatProgressReport(priorEstimate.tracks.map((track) => track.estimate))}`
|
|
202
|
+
: "There is no previous measured progress.",
|
|
203
|
+
"Use available tools to inspect the current source of truth. Observe only unless the task explicitly authorizes a mutation.",
|
|
204
|
+
"Every accepted check must include a concise user-facing report. Add progress tracks only when the target provides measurable facts. Submit observed counts and target-provided finish times; do not invent rates or an ETA.",
|
|
205
|
+
"Choose route continue or stop.",
|
|
166
206
|
].join("\n\n");
|
|
167
207
|
},
|
|
168
|
-
expectedOutput: '{ "route": "
|
|
169
|
-
validate: (output) =>
|
|
208
|
+
expectedOutput: '{ "route": "continue" | "stop", "observation": "current factual state", "report": "concise status update", "progress": { "tracks": [{ "key": "stable-key", "data": { "schema": "pi-workflows.progress.v1", "status": "running", "completed": 1, "total": 2, "unit": "items" } }] } (optional), "reason": "short reason" }',
|
|
209
|
+
validate: (output) => validateMonitorCheck(output),
|
|
210
|
+
}),
|
|
211
|
+
estimate: compute({ run: ({ outputs }) => estimateTracks(outputs) }),
|
|
212
|
+
publish_progress: action({
|
|
213
|
+
statusDetail: "publishing monitor progress",
|
|
214
|
+
run: async ({ outputs, publishUpdate, signal }) => {
|
|
215
|
+
const check = outputs.check;
|
|
216
|
+
if (check.progress === undefined)
|
|
217
|
+
return { published: 0 };
|
|
218
|
+
for (const track of check.progress.tracks) {
|
|
219
|
+
await waitForUpdateSlot(signal);
|
|
220
|
+
await publishUpdate({ type: "progress", key: track.key, data: track.data });
|
|
221
|
+
}
|
|
222
|
+
return { published: check.progress.tracks.length };
|
|
223
|
+
},
|
|
170
224
|
}),
|
|
171
|
-
|
|
225
|
+
report: notify({
|
|
172
226
|
statusDetail: "queueing monitor update",
|
|
173
|
-
message: (
|
|
227
|
+
message: (context) => reportMessage(context),
|
|
174
228
|
kind: "progress",
|
|
175
229
|
}),
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
230
|
+
decide: compute({
|
|
231
|
+
run: (context) => {
|
|
232
|
+
const check = context.outputs.check;
|
|
233
|
+
const config = configFrom(context.outputs);
|
|
234
|
+
const checks = completedChecks(context);
|
|
235
|
+
if (check.route === "stop")
|
|
236
|
+
return { route: "stop", reason: check.reason, checks };
|
|
237
|
+
if (checks >= config.maxChecks) {
|
|
238
|
+
return {
|
|
239
|
+
route: "stop",
|
|
240
|
+
reason: `Reached the ${config.maxChecks}-check safety limit.`,
|
|
241
|
+
checks,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
return { route: "continue", reason: check.reason, checks };
|
|
245
|
+
},
|
|
246
|
+
}),
|
|
247
|
+
schedule: action({
|
|
248
|
+
statusDetail: "scheduling next monitor check",
|
|
249
|
+
run: async ({ outputs, publishUpdate }) => {
|
|
250
|
+
const config = configFrom(outputs);
|
|
251
|
+
const lastCheckAt = new Date().toISOString();
|
|
252
|
+
const nextCheckAt = new Date(Date.parse(lastCheckAt) + config.everyMinutes * 60_000).toISOString();
|
|
253
|
+
await publishUpdate({
|
|
254
|
+
type: "monitor.schedule",
|
|
255
|
+
key: "next-check",
|
|
256
|
+
data: {
|
|
257
|
+
schema: "pi-workflows.monitor-schedule.v1",
|
|
258
|
+
lastCheckAt,
|
|
259
|
+
nextCheckAt,
|
|
260
|
+
everyMinutes: config.everyMinutes,
|
|
261
|
+
},
|
|
262
|
+
});
|
|
263
|
+
return { lastCheckAt, nextCheckAt, everyMinutes: config.everyMinutes };
|
|
264
|
+
},
|
|
180
265
|
}),
|
|
181
266
|
sleep: shell({
|
|
182
267
|
statusDetail: "waiting for next monitor check",
|
|
183
268
|
timeoutMs: MAX_INTERVAL_MINUTES * 60_000 + NODE_TIMEOUT_MARGIN_MS,
|
|
184
269
|
exec: ({ outputs }) => {
|
|
185
|
-
const
|
|
186
|
-
const sleepMs = config.everyMinutes * 60_000;
|
|
270
|
+
const sleepMs = configFrom(outputs).everyMinutes * 60_000;
|
|
187
271
|
return {
|
|
188
272
|
command: process.execPath,
|
|
189
273
|
args: ["-e", "setTimeout(() => {}, Number(process.argv[1]))", String(sleepMs)],
|
|
@@ -196,39 +280,26 @@ export default defineWorkflow({
|
|
|
196
280
|
finish: compute({
|
|
197
281
|
run: ({ outputs }) => {
|
|
198
282
|
const check = outputs.check;
|
|
199
|
-
const
|
|
200
|
-
const continueGuard = outputs.continue_guard;
|
|
283
|
+
const decision = outputs.decide;
|
|
201
284
|
return {
|
|
202
|
-
reason:
|
|
203
|
-
observation: check
|
|
204
|
-
|
|
205
|
-
|
|
285
|
+
reason: decision?.reason ?? check.reason,
|
|
286
|
+
observation: check.observation,
|
|
287
|
+
checks: decision?.checks ?? 1,
|
|
288
|
+
reported: true,
|
|
206
289
|
};
|
|
207
290
|
},
|
|
208
291
|
}),
|
|
209
292
|
},
|
|
210
293
|
edges: [
|
|
211
|
-
{ from: "prepare", to: "
|
|
212
|
-
{ from: "
|
|
213
|
-
{
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
continue_report: "report_continue",
|
|
220
|
-
stop_quiet: "finish",
|
|
221
|
-
stop_report: "report_stop",
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
{ from: "report_continue", to: "continue_guard" },
|
|
226
|
-
{ from: "report_stop", to: "finish" },
|
|
227
|
-
{
|
|
228
|
-
from: "continue_guard",
|
|
229
|
-
switch: { on: "$.route", cases: { sleep: "sleep", stop: "finish" } },
|
|
230
|
-
},
|
|
231
|
-
{ from: "sleep", to: "guard" },
|
|
294
|
+
{ from: "prepare", to: "check" },
|
|
295
|
+
{ from: "check", to: "estimate" },
|
|
296
|
+
{ from: "estimate", to: "publish_progress" },
|
|
297
|
+
{ from: "publish_progress", to: "report" },
|
|
298
|
+
{ from: "report", to: "decide" },
|
|
299
|
+
{ from: "decide", switch: { on: "$.route", cases: { stop: "finish", continue: "schedule" } } },
|
|
300
|
+
{ from: "schedule", to: "sleep" },
|
|
301
|
+
{ from: "sleep", to: "check" },
|
|
232
302
|
],
|
|
233
303
|
});
|
|
304
|
+
export default monitorWorkflow;
|
|
234
305
|
//# sourceMappingURL=monitor.workflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.workflow.js","sourceRoot":"","sources":["../../src/builtins/monitor.workflow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monitor.workflow.js","sourceRoot":"","sources":["../../src/builtins/monitor.workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,12 @@ export type SubmissionResult = {
|
|
|
6
6
|
accepted: false;
|
|
7
7
|
message: string;
|
|
8
8
|
};
|
|
9
|
+
export type PromptDeliveryKind = "step" | "reminder" | "resume";
|
|
9
10
|
export type PromptDelivery = {
|
|
10
11
|
prompt: string;
|
|
12
|
+
contract: AgentStepRequest["contract"];
|
|
13
|
+
presentation?: AgentStepRequest["presentation"];
|
|
14
|
+
kind: PromptDeliveryKind;
|
|
11
15
|
/** True when the agent is known to be mid-run, so delivery must be queued. */
|
|
12
16
|
streaming: boolean;
|
|
13
17
|
};
|
|
@@ -33,8 +37,8 @@ export type ConversationStepExecutorOptions = {
|
|
|
33
37
|
};
|
|
34
38
|
/**
|
|
35
39
|
* AgentStepExecutor that runs steps inside the current pi conversation. The
|
|
36
|
-
* engine hands it a prompt; it delivers the prompt as a
|
|
37
|
-
* resolves once the model submits an accepted output through the `workflow`
|
|
40
|
+
* engine hands it a prompt; it delivers the prompt as a model-facing workflow
|
|
41
|
+
* message and resolves once the model submits an accepted output through the `workflow`
|
|
38
42
|
* tool. If the agent settles without submitting, it nudges the model a
|
|
39
43
|
* bounded number of times before failing the step.
|
|
40
44
|
*/
|
|
@@ -70,5 +74,6 @@ export declare class ConversationStepExecutor implements AgentStepExecutor {
|
|
|
70
74
|
* budget is exhausted.
|
|
71
75
|
*/
|
|
72
76
|
handleAgentSettled(): boolean;
|
|
77
|
+
private delivery;
|
|
73
78
|
private clearPending;
|
|
74
79
|
}
|