pi-worker-graph 0.1.0-dev.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.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +455 -0
  3. package/SECURITY.md +54 -0
  4. package/dist/config.d.ts +25 -0
  5. package/dist/config.d.ts.map +1 -0
  6. package/dist/config.js +181 -0
  7. package/dist/config.js.map +1 -0
  8. package/dist/context.d.ts +22 -0
  9. package/dist/context.d.ts.map +1 -0
  10. package/dist/context.js +81 -0
  11. package/dist/context.js.map +1 -0
  12. package/dist/coordination.d.ts +19 -0
  13. package/dist/coordination.d.ts.map +1 -0
  14. package/dist/coordination.js +267 -0
  15. package/dist/coordination.js.map +1 -0
  16. package/dist/execution-failure.d.ts +42 -0
  17. package/dist/execution-failure.d.ts.map +1 -0
  18. package/dist/execution-failure.js +90 -0
  19. package/dist/execution-failure.js.map +1 -0
  20. package/dist/extension.d.ts +8 -0
  21. package/dist/extension.d.ts.map +1 -0
  22. package/dist/extension.js +641 -0
  23. package/dist/extension.js.map +1 -0
  24. package/dist/graph.d.ts +44 -0
  25. package/dist/graph.d.ts.map +1 -0
  26. package/dist/graph.js +292 -0
  27. package/dist/graph.js.map +1 -0
  28. package/dist/index.d.ts +16 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +8 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/json.d.ts +9 -0
  33. package/dist/json.d.ts.map +1 -0
  34. package/dist/json.js +66 -0
  35. package/dist/json.js.map +1 -0
  36. package/dist/orchestrator.d.ts +15 -0
  37. package/dist/orchestrator.d.ts.map +1 -0
  38. package/dist/orchestrator.js +473 -0
  39. package/dist/orchestrator.js.map +1 -0
  40. package/dist/output.d.ts +61 -0
  41. package/dist/output.d.ts.map +1 -0
  42. package/dist/output.js +248 -0
  43. package/dist/output.js.map +1 -0
  44. package/dist/pi-subprocess.d.ts +92 -0
  45. package/dist/pi-subprocess.d.ts.map +1 -0
  46. package/dist/pi-subprocess.js +897 -0
  47. package/dist/pi-subprocess.js.map +1 -0
  48. package/dist/run.d.ts +89 -0
  49. package/dist/run.d.ts.map +1 -0
  50. package/dist/run.js +562 -0
  51. package/dist/run.js.map +1 -0
  52. package/dist/store.d.ts +331 -0
  53. package/dist/store.d.ts.map +1 -0
  54. package/dist/store.js +1993 -0
  55. package/dist/store.js.map +1 -0
  56. package/dist/usage.d.ts +35 -0
  57. package/dist/usage.d.ts.map +1 -0
  58. package/dist/usage.js +88 -0
  59. package/dist/usage.js.map +1 -0
  60. package/docs/DECISIONS.md +221 -0
  61. package/docs/DESIGN.md +392 -0
  62. package/docs/NEXT.md +229 -0
  63. package/docs/PLAN.md +203 -0
  64. package/docs/worker-graph.example.json +12 -0
  65. package/extensions/index.ts +1 -0
  66. package/extensions/tsconfig.json +11 -0
  67. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Transport-independent token and cost accounting for one task attempt.
3
+ *
4
+ * The graph runner, the run store, and the Pi adapter all handle these
5
+ * numbers, so the shape and its validation live below all three. Values are
6
+ * reported by an executor, which is why every field is bounded and validated
7
+ * rather than trusted: usage reaches persisted run state.
8
+ */
9
+ export interface TaskUsage {
10
+ readonly turns: number;
11
+ readonly input: number;
12
+ readonly output: number;
13
+ readonly cacheRead: number;
14
+ readonly cacheWrite: number;
15
+ readonly totalTokens: number;
16
+ readonly cost: {
17
+ readonly input: number;
18
+ readonly output: number;
19
+ readonly cacheRead: number;
20
+ readonly cacheWrite: number;
21
+ readonly total: number;
22
+ };
23
+ }
24
+ export declare const TASK_USAGE_LIMITS: Readonly<{
25
+ maxTurns: 256;
26
+ maxTokens: 1000000000000;
27
+ maxCost: 1000000000;
28
+ }>;
29
+ /**
30
+ * Validates reported usage into an immutable snapshot. Absence is normal: an
31
+ * executor that does not account for its own spend reports nothing rather
32
+ * than reporting zeros, which would read as work that cost nothing.
33
+ */
34
+ export declare function parseTaskUsage(value: unknown): TaskUsage | undefined;
35
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB;;;;EAI5B,CAAC;AA2DH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAyBpE"}
package/dist/usage.js ADDED
@@ -0,0 +1,88 @@
1
+ export const TASK_USAGE_LIMITS = Object.freeze({
2
+ maxTurns: 256,
3
+ maxTokens: 1_000_000_000_000,
4
+ maxCost: 1_000_000_000,
5
+ });
6
+ const TOKEN_FIELDS = [
7
+ "input",
8
+ "output",
9
+ "cacheRead",
10
+ "cacheWrite",
11
+ "totalTokens",
12
+ ];
13
+ const COST_FIELDS = [
14
+ "input",
15
+ "output",
16
+ "cacheRead",
17
+ "cacheWrite",
18
+ "total",
19
+ ];
20
+ const USAGE_FIELDS = new Set(["turns", ...TOKEN_FIELDS, "cost"]);
21
+ const COST_FIELD_NAMES = new Set(COST_FIELDS);
22
+ function fail() {
23
+ throw new TypeError("Task usage is invalid or out of range");
24
+ }
25
+ /**
26
+ * Reads a data field without invoking an accessor, so a reported usage object
27
+ * cannot run code or hide a value behind a getter.
28
+ */
29
+ function dataField(value, field) {
30
+ const descriptor = Object.getOwnPropertyDescriptor(value, field);
31
+ if (descriptor === undefined)
32
+ return undefined;
33
+ if (!descriptor.enumerable || !("value" in descriptor))
34
+ fail();
35
+ return descriptor.value;
36
+ }
37
+ function plainFields(value, allowed) {
38
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
39
+ fail();
40
+ }
41
+ const prototype = Object.getPrototypeOf(value);
42
+ if (prototype !== Object.prototype && prototype !== null)
43
+ fail();
44
+ for (const key of Reflect.ownKeys(value)) {
45
+ if (typeof key !== "string" || !allowed.has(key))
46
+ fail();
47
+ }
48
+ return value;
49
+ }
50
+ function bounded(value, maximum, integer) {
51
+ if (typeof value !== "number" ||
52
+ !Number.isFinite(value) ||
53
+ value < 0 ||
54
+ value > maximum ||
55
+ (integer && !Number.isSafeInteger(value))) {
56
+ fail();
57
+ }
58
+ return value;
59
+ }
60
+ /**
61
+ * Validates reported usage into an immutable snapshot. Absence is normal: an
62
+ * executor that does not account for its own spend reports nothing rather
63
+ * than reporting zeros, which would read as work that cost nothing.
64
+ */
65
+ export function parseTaskUsage(value) {
66
+ if (value === undefined)
67
+ return undefined;
68
+ const usage = plainFields(value, USAGE_FIELDS);
69
+ const cost = plainFields(dataField(usage, "cost"), COST_FIELD_NAMES);
70
+ const tokens = TOKEN_FIELDS.map((field) => bounded(dataField(usage, field), TASK_USAGE_LIMITS.maxTokens, true));
71
+ const costs = COST_FIELDS.map((field) => bounded(dataField(cost, field), TASK_USAGE_LIMITS.maxCost, false));
72
+ return Object.freeze({
73
+ turns: bounded(dataField(usage, "turns"), TASK_USAGE_LIMITS.maxTurns, true),
74
+ input: tokens[0],
75
+ output: tokens[1],
76
+ cacheRead: tokens[2],
77
+ cacheWrite: tokens[3],
78
+ totalTokens: tokens[4],
79
+ cost: Object.freeze({
80
+ input: costs[0],
81
+ output: costs[1],
82
+ cacheRead: costs[2],
83
+ cacheWrite: costs[3],
84
+ total: costs[4],
85
+ }),
86
+ });
87
+ }
88
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ # Decisions
2
+
3
+ This page records stable product decisions for the initial implementation.
4
+ Unresolved choices remain under **Open decisions**.
5
+
6
+ ## Decisions of record
7
+
8
+ ### D1 — Public standalone package
9
+
10
+ The project is a reusable, application-independent Pi package named
11
+ `pi-worker-graph`. It is released under the MIT license.
12
+
13
+ ### D2 — DAG edges are the primary context mechanism
14
+
15
+ A node receives compact structured outputs only from nodes named directly in its
16
+ `needs` list. Full sibling transcripts and transitive context dumps are not
17
+ injected.
18
+
19
+ ### D3 — The filesystem is authoritative for code
20
+
21
+ Workers share one checkout. Graph state records coordination facts, decisions,
22
+ interfaces, risks, and handoffs; it does not duplicate source files.
23
+
24
+ ### D4 — Same-tree writes are intentional
25
+
26
+ Writable workers do not receive automatic worktrees. Bounded overlap is allowed
27
+ when the orchestrator judges it worthwhile. The orchestrator reviews the
28
+ integrated checkout before accepting the result.
29
+
30
+ ### D5 — No automatic Git lifecycle
31
+
32
+ The runtime never branches, commits, merges, pushes, stashes, resets, restores,
33
+ or cleans. Git may be used read-only for review and diagnostics.
34
+
35
+ ### D6 — Shared coordination is append-only and run-scoped
36
+
37
+ Coordination events live outside the target checkout. Each event is an immutable
38
+ file created atomically, avoiding concurrent mutation of one shared document.
39
+ Runs are isolated from one another. One run-global sequence orders every record,
40
+ so a cursor is a position a later record cannot precede and a polling worker
41
+ cannot skip a record. Records are published by workers, which never hold the
42
+ orchestrator's ownership capability: publication requires an active owner rather
43
+ than that capability, and is attributed to a task rather than authenticated.
44
+ Both the retained record count per run and one returned page are bounded.
45
+
46
+ ### D7 — The orchestrator owns acceptance
47
+
48
+ A worker success report is evidence, not acceptance. The orchestrator reads the
49
+ actual changes and either accepts the result or delegates a focused repair.
50
+
51
+ Acceptance is a judgment, not a command. Running the checks is delegated,
52
+ because D8 suppresses the parent's `bash` while the mode is active: a
53
+ validation task executes the suite and reports `{command, result}` pairs, and
54
+ the orchestrator weighs those results against the diff it read. That division
55
+ is deliberate. Executing a test suite needs a shell; deciding whether its
56
+ output means the work is acceptable needs the model that planned the work, and
57
+ that judgment is never delegated to a worker.
58
+
59
+ ### D8 — Runtime activation is explicit
60
+
61
+ The extension does not activate its graph tool until worker-graph mode is
62
+ explicitly enabled. Entering snapshots the active tools and suppresses the
63
+ built-in parent tools that can mutate the checkout or execute commands. Leaving
64
+ restores the exact snapshot. The enabled state and snapshot are session-scoped
65
+ and restored through Pi's custom entries. The startup flag applies to the launch
66
+ that carried it; navigating the session tree restores what the target branch
67
+ recorded. A snapshot is captured through the same bounds that read it back, and
68
+ a tool set outside those bounds refuses activation instead of persisting state
69
+ the extension could not restore.
70
+
71
+ ### D9 — Models and providers are configuration
72
+
73
+ The graph domain has no provider dependency or model default. Runtime profiles
74
+ accept configurable model, provider, thinking-level, and tool settings.
75
+ Tests use fakes and make no provider calls.
76
+
77
+ ### D10 — No recursive delegation initially
78
+
79
+ Workers receive coding and coordination tools, but not the graph-spawning tool.
80
+ The orchestrator alone controls execution of the initial immutable graph.
81
+
82
+ ### D11 — Pure graph domain first
83
+
84
+ The first implementation layer is dependency-free and independent of Pi,
85
+ processes, persistence, and providers. Integration layers build on its validated
86
+ state transitions and deterministic scheduling behavior.
87
+
88
+ ### D12 — Static graph and pull-based coordination for the MVP
89
+
90
+ The graph is immutable after execution starts. Coordination events and directed
91
+ messages are read explicitly rather than injected globally or delivered as live
92
+ steering messages.
93
+
94
+ ### D13 — Pi workers use isolated subprocesses
95
+
96
+ The MVP runs each worker as a one-shot Pi JSON-mode subprocess. The parent sends
97
+ task content over stdin, applies an explicit provider/model profile and strict
98
+ tool allowlist, disables discovered extensions, skills, prompts, and session
99
+ persistence, and loads only the child report extension. This provides a clear
100
+ process-tree cancellation boundary and keeps worker failures isolated from the
101
+ orchestrator. SDK sessions remain a possible post-MVP optimization, not a second
102
+ MVP transport.
103
+
104
+ ### D14 — Pi compatibility follows package peer conventions
105
+
106
+ Pi-facing code is currently tested against `@earendil-works/pi-coding-agent`
107
+ 0.85.1. The package declares Pi's extension-provided imports as `"*"` peers, as
108
+ required by Pi package conventions, while pinning the tested versions in
109
+ development dependencies. Compatibility outside the tested version is not
110
+ claimed until a broader matrix exists.
111
+
112
+ ### D15 — One explicitly activated parent graph tool
113
+
114
+ The parent exposes one static `worker_graph` schema for complete DAG execution.
115
+ It is inactive by default and enabled only through `/swarm on` or `--swarm`.
116
+ Transport progress contains bounded status and usage metadata, never worker
117
+ transcripts or tool payloads. Final results contain a separately bounded compact
118
+ projection of structured worker reports and label worker-authored fields as
119
+ untrusted data.
120
+
121
+ ### D16 — Retention is bounded without implicit deletion
122
+
123
+ The store has a fixed default retained-run count and a bounded configuration
124
+ override. Capacity is a fixed set of atomically claimed slot files, so the limit
125
+ is structural and concurrent creators are arbitrated by the filesystem instead
126
+ of by counting. Runs and slots that disagree stop new work rather than
127
+ admitting it on an accounting the store cannot trust. Automatic deletion is
128
+ deferred so an orchestration request never destroys prior diagnostic state as a
129
+ side effect, and no elapsed-time heuristic may reclaim a claimed slot: a
130
+ stranded slot is reported for explicit removal rather than guessed to be free.
131
+
132
+ ### D17 — Retention cleanup names the run
133
+
134
+ Cleanup removes a run the caller names. It does not select by age, by count, or
135
+ by terminal status: D16 already refuses to let elapsed time reclaim a capacity
136
+ slot, and choosing victims by age or count is that same guess one level up,
137
+ where the thing discarded is the diagnostic state an operator kept the run for.
138
+ It is reached through `/swarm runs` and `/swarm delete <run-id>` rather than a
139
+ second parent tool: D15 keeps the parent's tool surface at one static tool, and
140
+ an operation that destroys retained state must not be something an
141
+ orchestration request can reach. `listRetainedRuns` reports what holds capacity
142
+ — including a slot whose run was never published, and a run whose slot is
143
+ missing — so a name is a practical thing to supply. `deleteRun` removes the run
144
+ directory first and the slot second, so an interruption strands a slot the
145
+ store already reports as reclaimable rather than leaving the run/slot
146
+ disagreement that stops the store admitting any work. A run an orchestrator
147
+ holds is refused, under the run mutation lock so ownership cannot be acquired
148
+ between the check and the removal.
149
+
150
+ ### D18 — The orchestrator session is configuration too
151
+
152
+ `worker-graph.json` gains an optional `orchestrator` block naming the parent
153
+ session's provider, model, and thinking level, applied when the mode is
154
+ enabled and reverted when it is left. This extends D9 from workers to the
155
+ parent: still no default, because an absent block leaves the session exactly as
156
+ the operator started it, and the package never selects a model on its own. The
157
+ motive is that the split the runtime depends on — a capable parent that
158
+ decomposes and accepts, cheaper workers that execute one scoped assignment —
159
+ was previously only expressible in Pi's own settings, so the package could
160
+ describe the arrangement but not carry it.
161
+
162
+ The block has no tool list. Parent tools are governed by the mode's snapshot and
163
+ the tools it suppresses, and a second source for them would let a configuration
164
+ file contradict D8.
165
+
166
+ Applying the parent's model is held to the same fail-closed rule as the tool
167
+ snapshot: the mode refuses to enable unless it first knows the provider and
168
+ model id that put the session back, the configured model is one Pi can find,
169
+ and its provider has configured authentication. A refusal applies nothing —
170
+ the tool set is restored before the mode reports why it did not enter. The
171
+ recorded pre-mode model is carried forward when a branch is resumed, because
172
+ the live session is by then running the orchestrator model and re-capturing it
173
+ would lose the way back. `off` is not accepted for the parent: Pi's session
174
+ thinking level cannot express it, so it stays a worker-only level.
175
+
176
+ Enabling the mode therefore requires a loadable configuration, where it
177
+ previously required none. A graph cannot run without profiles anyway, so the
178
+ error now surfaces at activation rather than mid-orchestration.
179
+
180
+ ### D19 — Artifacts are deliberate; overflow stays fail-closed
181
+
182
+ A worker may retain one bounded text artifact beside its report: supplemental
183
+ long-form material such as a log, investigation notes, or detailed review
184
+ findings. It is published deliberately, through an optional field on the
185
+ final-report tool, and never as runtime spillover from something that did not
186
+ fit.
187
+
188
+ An artifact is a sibling of the report, not part of it. The report envelope
189
+ stays at schema version 1 and stays small enough for a dependency edge; the
190
+ artifact is bounded separately, is never parsed, and never reaches a dependent
191
+ task. The graph result names its byte length so the orchestrator learns it
192
+ exists without the text entering that result.
193
+
194
+ Report overflow and prerequisite-context overflow both keep failing closed.
195
+ They are separate correctness boundaries and neither becomes generic
196
+ truncation:
197
+
198
+ - Truncating a report means the runtime choosing which structured fields to
199
+ cut. It could drop a blocker, an interface, a decision, a changed file, or a
200
+ failing validation result. A worker can instead correct and resubmit, which
201
+ is the recoverable path that already exists.
202
+ - Truncating prerequisite context means a dependent worker edits the checkout
203
+ without the complete declared prerequisite contract. An artifact reference
204
+ does not repair that: artifacts are deliberately excluded from dependency
205
+ edges. The orchestrator's remedies — less verbose reports, a split graph,
206
+ less fan-in, an aggregation task — are all better than a dependent working
207
+ from partial context.
208
+
209
+ Explicit truncation remains correct in the parent-facing review projection,
210
+ where it is already marked, because that projection is evidence for a human or
211
+ orchestrator judgment rather than input to execution.
212
+
213
+ If dependency context later proves too restrictive, the answer is a separate
214
+ versioned edge-projection or handoff contract, not generic text truncation.
215
+
216
+ ## Open decisions
217
+
218
+ 1. Whether review feedback resumes a persisted child session or starts a fresh
219
+ attempt with the prior structured output.
220
+ 2. Whether advisory path and symbol claims belong in the MVP or a follow-up.
221
+ 3. Whether graph execution pauses at explicit review barriers between frontiers.