@llblab/pi-actors 0.12.4 → 0.12.6

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/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.12.6: Documentation Example Alignment
6
+
7
+ - `[Docs]` Replaced remaining shader-ring recipe examples in registry and template-recipe docs with the concrete docs-review actor recipe example, aligned test fixtures, and changed async-run outbox docs to show actor message envelopes without public delivery knobs. Impact: public docs now consistently demonstrate useful actor wrapping and keep coordinator attention policy out of recipe-authored message examples.
8
+
9
+ ## 0.12.5: README Actor Recipe Example
10
+
11
+ - `[Docs]` Replaced the placeholder shader-ring onboarding recipe with a concrete async docs-review actor recipe that includes typed args, mailbox metadata, and a real launch template. Impact: README onboarding now demonstrates actor wrapping instead of an abstract placeholder.
12
+
5
13
  ## 0.12.4: Actor Runtime Positioning
6
14
 
7
15
  - `[Docs]` Reframed README and package metadata around `pi-actors` as an actor runtime and orchestrator for agent-managed local processes, while preserving the persistent actor-tool registry as one capability. Impact: new readers see how templates, recipes, mailboxes, messages, artifacts, and run state turn any trusted local process into an agent-controllable actor.
package/README.md CHANGED
@@ -126,17 +126,24 @@ Move to actor recipes when work is long-running, parallel, service-like, or agen
126
126
 
127
127
  ```json
128
128
  {
129
- "name": "shader-ring-8-parallel",
129
+ "name": "docs-review",
130
130
  "async": true,
131
- "parallel": true,
132
- "template": ["..."]
131
+ "args": ["scope:path", "model:string"],
132
+ "defaults": {
133
+ "model": "openai-codex/gpt-5.5"
134
+ },
135
+ "mailbox": {
136
+ "accepts": ["control.stop"],
137
+ "emits": ["review.completed", "run.failed"]
138
+ },
139
+ "template": "pi -p --model {model} --no-tools \"Review {scope} for unclear actor-runtime onboarding. Return concise findings.\""
133
140
  }
134
141
  ```
135
142
 
136
143
  Expose a reusable actor recipe as a normal capability:
137
144
 
138
145
  ```text
139
- register_tool name=shader_ring description="Start shader ring" template="shader-ring-8-parallel.json" args="theme,out_dir"
146
+ register_tool name=docs_review description="Start an async docs review actor" template="docs-review.json" args="scope:path,model:string=openai-codex/gpt-5.5"
140
147
  ```
141
148
 
142
149
  `Task` is the user's work item. `Template` is the execution graph. `Actor recipe` is saved JSON. `Run` is one actor instance with status, logs, messages, cancellation, artifacts, and ambient triangles.
@@ -203,13 +210,13 @@ register_tool name=transcribe \
203
210
  For reusable actor workflows, keep the large template and mailbox contract in a recipe file and register a small tool:
204
211
 
205
212
  ```text
206
- register_tool name=shader_ring \
207
- description="Start the shader ring recipe" \
208
- template="shader-ring-8-parallel.json" \
209
- args="theme,out_dir"
213
+ register_tool name=docs_review \
214
+ description="Start an async docs review actor" \
215
+ template="docs-review.json" \
216
+ args="scope:path,model:string=openai-codex/gpt-5.5"
210
217
  ```
211
218
 
212
- If the recipe file contains `async: true`, calling `shader_ring` starts a detached run and returns metadata immediately. If `async` is omitted or false, the same recipe runs foreground and returns normal tool output.
219
+ If the recipe file contains `async: true`, calling `docs_review` starts a detached run and returns metadata immediately. If `async` is omitted or false, the same recipe runs foreground and returns normal tool output.
213
220
 
214
221
  A recipe can also be co-located in `actors-tools.json` when keeping metadata and the recipe body together is clearer:
215
222
 
@@ -262,10 +269,10 @@ The commands above persist entries like this in `~/.pi/agent/actors-tools.json`;
262
269
  "description": "Run pi as a non-interactive sub-agent",
263
270
  "template": "pi -p --model {model=openai-codex/gpt-5.5} --no-tools {prompt}"
264
271
  },
265
- "shader_ring": {
266
- "description": "Start the shader ring recipe",
267
- "args": ["theme", "out_dir"],
268
- "template": "shader-ring-8-parallel.json"
272
+ "docs_review": {
273
+ "description": "Start an async docs review actor",
274
+ "args": ["scope:path", "model:string=openai-codex/gpt-5.5"],
275
+ "template": "docs-review.json"
269
276
  }
270
277
  }
271
278
  ```
@@ -188,22 +188,19 @@ Shape:
188
188
 
189
189
  ```json
190
190
  {
191
- "event": "player.track",
191
+ "type": "player.track",
192
+ "to": "coordinator",
193
+ "from": "run:music-player",
192
194
  "summary": "Now playing: track.flac",
193
195
  "level": "info",
194
- "delivery": "log",
195
196
  "ts": "2026-05-19T00:00:00.000Z",
196
- "data": { "track": "/Music/track.flac", "index": 3, "count": 42 }
197
+ "body": { "track": "/Music/track.flac", "index": 3, "count": 42 }
197
198
  }
198
199
  ```
199
200
 
200
- `level` is `info`, `warning`, or `error`. `delivery` is `log`, `notify`, or `followup`:
201
+ `level` is `info`, `warning`, or `error`. The public message describes sender, receiver, type, summary, and body; it does not choose notification mechanics. Runtime attention policy infers whether a coordinator-bound message stays available for explicit `inspect`, becomes a UI notification, or re-enters the launching coordinator as compact follow-up context.
201
202
 
202
- - `log`: stored only; read explicitly with `inspect view=events`.
203
- - `notify`: shown as a UI notification to the launching coordinator session.
204
- - `followup`: notification plus compact follow-up context to the launching coordinator session.
205
-
206
- Use `followup` for completion and decision-point messages that should reach the coordinator, not for every progress tick. Packaged multi-agent branch completion is a completion message and should bubble by default. Follow-up path lists use Markdown hierarchy: a section heading, `- Base: ...`, and `- Files: ...`, so repeated run-state prefixes do not flood agent context.
203
+ Use coordinator-bound messages for completion and decision points, not for every progress tick. Packaged multi-agent branch completion is a completion message and should bubble by default. Follow-up path lists use Markdown hierarchy: a section heading, `- Base: ...`, and `- Files: ...`, so repeated run-state prefixes do not flood agent context.
207
204
 
208
205
  ## Cancellation And Ownership
209
206
 
@@ -170,15 +170,15 @@ A registered tool can point at an actor recipe by storing the recipe path or nam
170
170
 
171
171
  ```json
172
172
  {
173
- "shader_ring": {
174
- "description": "Start the shader ring recipe",
175
- "args": ["theme", "out_dir"],
176
- "template": "shader-ring-8-parallel.json"
173
+ "docs_review": {
174
+ "description": "Start an async docs review actor",
175
+ "args": ["scope:path", "model:string=openai-codex/gpt-5.5"],
176
+ "template": "docs-review.json"
177
177
  }
178
178
  }
179
179
  ```
180
180
 
181
- If `shader-ring-8-parallel.json` contains `async: true`, calling `shader_ring` starts a detached run and returns metadata. If `async` is omitted or false, calling `shader_ring` executes the recipe foreground and returns normal tool output.
181
+ If `docs-review.json` contains `async: true`, calling `docs_review` starts a detached actor run and returns metadata. If `async` is omitted or false, calling `docs_review` executes the recipe foreground and returns normal tool output.
182
182
 
183
183
  A registered tool may also co-locate an actor recipe directly in `actors-tools.json`:
184
184
 
@@ -47,16 +47,16 @@ Use `update=true` to overwrite an existing tool. Omit `template` and co-located
47
47
  ]
48
48
  ```
49
49
 
50
- For reusable workflows, register a small tool whose `template` points to a template recipe instead of embedding a large parallel template in the tool itself:
50
+ For reusable actor workflows, register a small tool whose `template` points to an actor recipe instead of embedding the launch graph in the tool itself:
51
51
 
52
52
  ```text
53
- register_tool name=shader_ring \
54
- description="Start the shader ring recipe" \
55
- template="shader-ring-8-parallel.json" \
56
- args="theme,out_dir"
53
+ register_tool name=docs_review \
54
+ description="Start an async docs review actor" \
55
+ template="docs-review.json" \
56
+ args="scope:path,model:string=openai-codex/gpt-5.5"
57
57
  ```
58
58
 
59
- This stores the recipe path in the registry as `template`. If `~/.pi/agent/recipes/shader-ring-8-parallel.json` contains `async: true`, calling the tool starts a detached run and returns metadata immediately. If `async` is omitted or false, the same recipe runs foreground and returns normal tool output.
59
+ This stores the recipe path in the registry as `template`. If `~/.pi/agent/recipes/docs-review.json` contains `async: true`, calling the tool starts a detached actor run and returns metadata immediately. If `async` is omitted or false, the same recipe runs foreground and returns normal tool output.
60
60
 
61
61
  When co-location is clearer than a separate file, the registry entry may include recipe fields directly beside tool metadata:
62
62
 
@@ -93,10 +93,10 @@ Tool names come from the top-level registry keys. Tool entries define `template`
93
93
  "description": "Run pi as a non-interactive sub-agent",
94
94
  "template": "pi -p --model {model=openai-codex/gpt-5.5} --no-tools {prompt}"
95
95
  },
96
- "shader_ring": {
97
- "description": "Start the shader ring recipe",
98
- "args": ["theme", "out_dir"],
99
- "template": "shader-ring-8-parallel.json"
96
+ "docs_review": {
97
+ "description": "Start an async docs review actor",
98
+ "args": ["scope:path", "model:string=openai-codex/gpt-5.5"],
99
+ "template": "docs-review.json"
100
100
  }
101
101
  }
102
102
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llblab/pi-actors",
3
- "version": "0.12.4",
3
+ "version": "0.12.6",
4
4
  "private": false,
5
5
  "description": "Actor runtime and orchestrator for agent-managed local processes",
6
6
  "type": "module",