@zachwill/pi-orchestrate 0.7.1 → 0.7.2

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 CHANGED
@@ -134,9 +134,9 @@ lifecycle: interactive
134
134
  Inspect only the assigned scope. Do not modify files. Return concise findings with file paths.
135
135
  ```
136
136
 
137
- Required fields are `name`, `description`, a nonempty `tools` list, and `lifecycle` (`one-shot` or `interactive`). The Markdown body is the worker's nonempty system prompt.
137
+ Required fields are `name`, `description`, and a nonempty `tools` list. The Markdown body is the worker's nonempty system prompt.
138
138
 
139
- Optional fields are `model`, `thinking`, `skills`, and `compaction`. An omitted `model` inherits the parent's model. For `skills`, omission uses normal discovery, a list is an exact allowlist, and `[]` disables skills.
139
+ `lifecycle` is optional, accepts `one-shot` or `interactive`, and defaults to `one-shot`. Other optional fields are `model`, `thinking`, `skills`, and `compaction`. An omitted `model` inherits the parent's model. For `skills`, omission uses normal discovery, a list is an exact allowlist, and `[]` disables skills.
140
140
 
141
141
  Definitions are strict, regular non-symlink `.md` files up to 64 KiB. Supported Pi tools are `read`, `bash`, `edit`, `write`, `grep`, `find`, and `ls`. Grant the smallest useful set: a read-only prompt does not prevent writes when the worker has tools with write authority.
142
142
 
@@ -6,7 +6,7 @@ import {
6
6
  import { lstatSync, readdirSync, readFileSync } from "node:fs";
7
7
  import { basename, extname, join } from "node:path";
8
8
  import { fileURLToPath } from "node:url";
9
- import { Result, Schema, SchemaGetter, type SchemaIssue } from "effect";
9
+ import { Effect, Result, Schema, SchemaGetter, type SchemaIssue } from "effect";
10
10
  import type {
11
11
  CatalogDiagnostic,
12
12
  WorkerCatalog,
@@ -76,7 +76,9 @@ const WorkerFrontmatter = Schema.Struct({
76
76
  tools: commaList(Schema.Literals(SUPPORTED_TOOL_NAMES)),
77
77
  skills: Schema.optionalKey(commaList(Schema.NonEmptyString, true)),
78
78
  compaction: Schema.optionalKey(Compaction),
79
- lifecycle: Schema.Literals(["one-shot", "interactive"]),
79
+ lifecycle: Schema.Literals(["one-shot", "interactive"]).pipe(
80
+ Schema.withDecodingDefaultKey(Effect.succeed("one-shot")),
81
+ ),
80
82
  });
81
83
  const decodeWorkerFrontmatter = Schema.decodeUnknownResult(WorkerFrontmatter, {
82
84
  errors: "all",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zachwill/pi-orchestrate",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "type": "module",
5
5
  "description": "Concurrent worker orchestration for Pi",
6
6
  "files": ["extension/", "examples/", "README.md", "LICENSE"],