pi-cohort 5.1.1 → 5.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.1.2] - 2026-08-07
4
+
5
+ ### Changed
6
+
7
+ - Schema diet round three (subagent tool schema 9,483 -> 8,246 bytes serialized):
8
+ `tasks[]` items collapsed to the round-two stub form (overrides pass through,
9
+ documented in the pi-cohort skill), `ChainItem` allOf conditionals removed
10
+ (runtime-enforced at chain parse), and `runId` no longer advertised by the
11
+ tool schema - still accepted at runtime, `id` preferred.
12
+
3
13
  ## [5.1.1] - 2026-08-07
4
14
 
5
15
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-cohort",
3
- "version": "5.1.1",
3
+ "version": "5.1.2",
4
4
  "description": "Delegate Pi work to focused child agents: code review, scouting, implementation, parallel audits, saved chains, and background jobs.",
5
5
  "author": "Jacek Juraszek",
6
6
  "license": "MIT",
@@ -441,7 +441,7 @@ Example: { chain: [{agent:"agent-a", task:"Analyze {task}"}, {agent:"agent-b", t
441
441
 
442
442
  MANAGEMENT: action=list/get/create/update/delete (chainName for chains; packaged agents use dotted names); config fields: pi-cohort skill reference/config-fields.md.
443
443
 
444
- CONTROL: action=status/interrupt/resume (id/runId, message, index); details: pi-cohort skill.
444
+ CONTROL: action=status/interrupt/resume (id, message, index); details: pi-cohort skill.
445
445
 
446
446
  DIAGNOSTICS:
447
447
  • { action: "doctor" } - read-only report for runtime paths, discovery, sessions, and intercom`,
@@ -137,18 +137,22 @@ const AcceptanceOverrideStub = Type.Unsafe({
137
137
  description: "Acceptance override; same shape as top-level acceptance.",
138
138
  });
139
139
 
140
- const TaskItem = Type.Object({
141
- agent: Type.String(),
142
- task: Type.String(),
143
- cwd: Type.Optional(Type.String()),
144
- count: Type.Optional(Type.Integer({ minimum: 1, description: "Repeat N times (same settings)." })),
145
- output: Type.Optional(brief(OutputOverride, "Output file path, or false.")),
146
- outputMode: Type.Optional(brief(OutputModeOverride, "Default: inline.")),
147
- reads: Type.Optional(ReadsOverride),
148
- progress: Type.Optional(Type.Boolean({ description: "true enables progress.md tracking; omit or false disables." })),
149
- model: Type.Optional(Type.String()),
150
- skill: Type.Optional(brief(SkillOverride, "Skill override.")),
151
- acceptance: Type.Optional(AcceptanceOverrideStub),
140
+ // tasks[] stub (round three): same treatment as ParallelTaskSchema below; structural keys
141
+ // stay explicit (agent/task required, count = arity); every per-task override (model, output,
142
+ // outputMode, reads, progress, skill, cwd, acceptance) passes through additionalProperties
143
+ // and is documented in the pi-cohort skill. No `as` (no {outputs.name} wiring here) and no
144
+ // `label` (TaskParam has no such field at this position). Widening-only: unknown keys were
145
+ // already ignored at runtime.
146
+ const TaskItem = Type.Unsafe({
147
+ type: "object",
148
+ additionalProperties: true,
149
+ required: ["agent", "task"],
150
+ properties: {
151
+ agent: { type: "string" },
152
+ task: { type: "string" },
153
+ count: { type: "integer", minimum: 1, description: "Repeat N times (same settings)." },
154
+ },
155
+ description: "Per-task overrides (model, output, reads, skill, ...): pi-cohort skill.",
152
156
  });
153
157
 
154
158
  // Parallel-item stubs (round two): structural/wiring keys stay explicit (agent/task,
@@ -232,11 +236,6 @@ const ChainItem = Type.Object({
232
236
  }, {
233
237
  description: "{agent,task?} seq; {parallel:[..]} concurrent; {expand,parallel,collect} fanout.",
234
238
  additionalProperties: false,
235
- allOf: [
236
- { if: { required: ["expand"] }, then: { required: ["parallel", "collect"], properties: { parallel: { type: "object" } } } },
237
- { if: { required: ["collect"] }, then: { required: ["expand", "parallel"], properties: { parallel: { type: "object" } } } },
238
- { not: { required: ["expand"], properties: { parallel: { type: "array", items: {} } } } },
239
- ],
240
239
  });
241
240
 
242
241
  // Control stub (round two): 10 fields collapsed; the full table lives in the pi-cohort
@@ -260,9 +259,6 @@ export const SubagentParams = Type.Object({
260
259
  id: Type.Optional(Type.String({
261
260
  description: "Run id/prefix for status/interrupt/resume."
262
261
  })),
263
- runId: Type.Optional(Type.String({
264
- description: "Run ID (interrupt/resume); defaults to latest. Prefer id."
265
- })),
266
262
  dir: Type.Optional(Type.String({
267
263
  description: "Async run dir for status/resume."
268
264
  })),