@signalridge/pi-subagents 1.9.0 → 1.9.1

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 (3) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +36 -10
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.1
4
+ ### Patch Changes
5
+
6
+ - fabe89a: Document how a workflow now reaches this catalogue.
7
+
8
+ The "One catalogue, including for workflows" section said a workflow script names
9
+ a key from `agentTiers` directly, with "no second workflow-tier vocabulary and no
10
+ mapping layer" and `agent({ tier: "low" })` examples. pi-workflows scripts now
11
+ name a *strength* and a table on that side chooses the tier, so every claim in
12
+ that section was inverted and its example is rejected before dispatch.
13
+
14
+ The claim it was protecting is still true and is now stated where it belongs:
15
+ there is no second tier catalogue and no second resolver, a `strengths` value is
16
+ a key in this catalogue and never carries its own `model`/`thinking`, and a
17
+ request arriving here is indistinguishable from a spawn that named the key
18
+ itself. Also notes that the shipped `low`/`medium`/`high` profiles are what
19
+ pi-workflows' default table maps onto, so renaming them leaves workflows on the
20
+ ordinary untiered path rather than breaking them.
21
+
22
+ Drops a stale pointer to `workflow.tiers`, a settings key this package no longer
23
+ reads.
24
+
3
25
  ## 1.9.0
4
26
  ### Minor Changes
5
27
 
package/README.md CHANGED
@@ -443,16 +443,39 @@ defaults to the key; it is what the host reads when choosing between Agent tiers
443
443
 
444
444
  ### One catalogue, including for workflows
445
445
 
446
- A managed `pi-workflows` call names a key from this same `agentTiers` catalogue.
447
- There is no second workflow-tier vocabulary and no mapping layer: a workflow that
448
- wants cheap work asks for the tier you defined for cheap work.
446
+ A managed `pi-workflows` call arrives naming a key from this same `agentTiers`
447
+ catalogue. There is no second tier catalogue and no second resolver: this package
448
+ still owns every model, every thinking level, and the only `resolveAgentTier()`.
449
+
450
+ What a workflow *script* writes is not that key. A script names a **strength** —
451
+ `low`, `medium`, `high`, pi-workflows' own word for how much effort a step
452
+ deserves — and a `strengths` table on that side chooses which of your tiers it
453
+ runs on:
449
454
 
450
455
  ```js
451
456
  // in a workflow script
452
- await agent("summarize this diff", { tier: "low" })
453
- await agent("design the migration", { tier: "high" })
457
+ await agent("summarize this diff", { strength: "low" })
458
+ await agent("design the migration", { strength: "high" })
459
+ ```
460
+
461
+ ```jsonc
462
+ // pi-workflows' own settings, edited with `/workflows strength`
463
+ { "strengths": { "low": "cheap-search", "high": "deep" } }
454
464
  ```
455
465
 
466
+ The indirection exists so that re-pricing workflow work does not re-price
467
+ everything else. Workflow fan-outs ask for cheap work by the dozen, and so does
468
+ the `Explore` agent and every spawn that names no tier of its own; if the
469
+ workflow side reached your catalogue directly, making a 26-agent fan-out
470
+ affordable would mean editing the tier all of them share. Pointing a strength
471
+ elsewhere leaves your tiers alone.
472
+
473
+ Nothing about that reaches this side. By the time a request arrives it carries
474
+ one tier key, and this package cannot tell a mapped call apart from a spawn that
475
+ named the key itself. Nor is it a second *policy*: a `strengths` value is a key
476
+ in this catalogue and never carries a `model` or `thinking` of its own — that is
477
+ the line between it and the retired `workflow.tiers` key, which did.
478
+
456
479
  The tier is resolved by the same `resolveAgentTier()` path an ordinary Agent
457
480
  spawn uses — same precedence, same model lookup, same thinking clamping, same
458
481
  availability checks, same immutable resolution snapshot. A tier the host does not
@@ -464,9 +487,12 @@ could silently win or be silently ignored.
464
487
 
465
488
  Fresh installs ship an effort ladder: `low`, `medium`, `high`. Every shipped
466
489
  profile inherits its model, so a new machine gets a working vocabulary without
467
- this package ever choosing a vendor for you. A managed call that names no tier
468
- uses the agent's own tier, then `agentTiers.defaultTier`, and finally falls back
469
- to `medium` so a workflow runs on an unconfigured machine.
490
+ this package ever choosing a vendor for you. Those names are also what
491
+ pi-workflows' shipped default table maps its strengths onto identity, and only
492
+ where you define the name — so a stock machine runs workflows at the strengths
493
+ their scripts asked for. Rename or remove them and that default simply yields
494
+ nothing: a managed call that names no tier uses the agent's own tier, then
495
+ `agentTiers.defaultTier`, and finally falls back to `medium`.
470
496
 
471
497
  `medium` inherits its model, so on an unconfigured machine that fallback runs on
472
498
  the parent session's model. What it buys is a call with a *named* policy, a
@@ -577,7 +603,7 @@ the global file defines. The menu writes the merged catalogue back to the
577
603
  project file, so deleting one of several works, but deleting the last one — or
578
604
  clearing a `defaultTier` that only global sets — leaves no `agentTiers` key
579
605
  behind, and the global value is inherited again on the next start. Remove it
580
- from `~/.pi/agent/subagents.json` instead. The same is true of `workflow.tiers`.
606
+ from `~/.pi/agent/subagents.json` instead.
581
607
 
582
608
  ### Refusals
583
609
 
@@ -645,7 +671,7 @@ Runtime tuning values set via `/agents` → Settings (max concurrency, default m
645
671
 
646
672
  **Precedence:** project overrides global on any field present in both. Missing fields fall back to the hardcoded defaults (max concurrency `4`, default max turns unlimited, grace turns `5`, nested depth `2`, join mode `smart`, defaults enabled).
647
673
 
648
- The `workflow` settings key is **retired**. Managed `pi-workflows` calls name an `agentTiers` key directly, so there is no separate workflow routing table; a file that still has one is ignored with a warning naming the key. `agentTiers.defaultTier` replaces what `workflow.defaultTier` used to do. See [One catalogue, including for workflows](#one-catalogue-including-for-workflows).
674
+ The `workflow` settings key is **retired**; a file that still has one is ignored with a warning naming the key. This file holds no workflow routing of its own: a managed `pi-workflows` call arrives naming a key from `agentTiers`, and which key that is was decided on the pi-workflows side by its own `strengths` table a table of keys into this catalogue, never a second catalogue and never its own `model`/`thinking`. `agentTiers.defaultTier` replaces what `workflow.defaultTier` used to do. See [One catalogue, including for workflows](#one-catalogue-including-for-workflows).
649
675
 
650
676
  **Default model** (`defaultModel`, unset): the model a non-tiered ordinary subagent runs — see [`defaultModel`](#defaultmodel) for where it sits in precedence, why an unresolvable value falls back instead of failing, and how `"inherit"` lets a project cancel a global default. **Default tier** (`agentTiers.defaultTier`, unset) is the tier applied when neither the caller nor the agent names one; the profiles it selects from live under [`agentTiers`](#model-tiers). It has three settings — a tier name, `unset`, and `none` — which the menu offers separately because the last two behave differently for managed workflow calls; see [Model tiers](#model-tiers) for the table.
651
677
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signalridge/pi-subagents",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "description": "Signalridge's managed subagent runtime with workflow-owned orchestration RPC.",
5
5
  "author": "tintinweb and signalridge contributors",
6
6
  "license": "MIT",