@osolmaz/pi-workflows 0.5.3 → 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 +10 -2
- 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 +51 -13
- 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 +2 -2
- package/dist/extension/widget.js +64 -5
- 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-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 +81 -19
- package/src/extension/step-message.ts +145 -0
- package/src/extension/widget.ts +93 -4
- 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
|
|
|
@@ -249,7 +256,8 @@ example set. Copy any of them into `.pi/workflows/` to use them:
|
|
|
249
256
|
- `branch` classifies a task with a `decision` and routes to either a
|
|
250
257
|
continue lane or a clarification checkpoint.
|
|
251
258
|
- `shell` runs a runtime-owned shell command and parses its output, with no
|
|
252
|
-
agent step at all.
|
|
259
|
+
agent step at all. Shell and function actions can publish durable progress
|
|
260
|
+
while they run.
|
|
253
261
|
- `two-turn` chains three agent steps that build on each other's outputs in
|
|
254
262
|
the same conversation.
|
|
255
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
|
}
|