@sjawhar/pi-legion 10.8.3 → 10.10.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.
package/dist/legion.js CHANGED
@@ -16171,7 +16171,7 @@ function ompCapabilityHost() {
16171
16171
  // package.json
16172
16172
  var package_default = {
16173
16173
  name: "@sjawhar/pi-legion",
16174
- version: "10.8.3",
16174
+ version: "10.10.0",
16175
16175
  license: "Apache-2.0",
16176
16176
  type: "module",
16177
16177
  omp: {
@@ -16183,7 +16183,7 @@ var package_default = {
16183
16183
  ]
16184
16184
  },
16185
16185
  legion: {
16186
- daemonApiVersion: 30
16186
+ daemonApiVersion: 32
16187
16187
  },
16188
16188
  repository: {
16189
16189
  type: "git",
@@ -16340,6 +16340,7 @@ var legionPhaseView = exports_external.strictObject({
16340
16340
  rounds: exports_external.number().int().nonnegative()
16341
16341
  });
16342
16342
  var legionPullRequestView = exports_external.strictObject({
16343
+ repo: nonEmptyString,
16343
16344
  number: exports_external.number().int().positive(),
16344
16345
  head: nonEmptyString,
16345
16346
  checksVerdict: nonEmptyString.optional(),
@@ -16380,6 +16381,8 @@ var legionIssue = exports_external.strictObject({
16380
16381
  generation: exports_external.number().int().nonnegative(),
16381
16382
  phase: exports_external.enum(LEGION_PHASES),
16382
16383
  status: nonEmptyString,
16384
+ repo: nonEmptyString.optional(),
16385
+ defaultBranch: nonEmptyString.optional(),
16383
16386
  holdReason: exports_external.literal("escalated").optional(),
16384
16387
  architect: legionClaimView.optional(),
16385
16388
  workers: exports_external.partialRecord(exports_external.enum(LEGION_ROLES), legionPhaseView),
@@ -16418,6 +16421,29 @@ var legionCapabilityState = exports_external.strictObject({
16418
16421
  configLine: nonEmptyString.optional(),
16419
16422
  source: exports_external.enum(["configuration", "boot"]).optional()
16420
16423
  });
16424
+ var legionCacheView = exports_external.strictObject({
16425
+ repo: nonEmptyString,
16426
+ sandbox: nonEmptyString,
16427
+ state: exports_external.enum(["starting", "cloning", "ready", "failing", "refused"]),
16428
+ reason: nonEmptyString.optional(),
16429
+ ready: exports_external.boolean(),
16430
+ address: nonEmptyString.optional(),
16431
+ head: nonEmptyString.optional(),
16432
+ lastFetchAt: timestamp.optional(),
16433
+ bytes: exports_external.number().int().positive().optional(),
16434
+ healthError: nonEmptyString.optional(),
16435
+ retainedUntil: timestamp.optional()
16436
+ });
16437
+ var legionRepositories = exports_external.strictObject({
16438
+ owners: exports_external.array(nonEmptyString),
16439
+ mapped: exports_external.array(exports_external.strictObject({
16440
+ repo: nonEmptyString,
16441
+ default: exports_external.boolean(),
16442
+ cache: legionCacheView.optional()
16443
+ })),
16444
+ refused: exports_external.array(exports_external.strictObject({ repo: nonEmptyString, reason: nonEmptyString })),
16445
+ caches: exports_external.array(legionCacheView)
16446
+ });
16421
16447
  var LegionStateResponse = exports_external.strictObject({
16422
16448
  daemon: daemonInfo,
16423
16449
  admission: legionAdmission,
@@ -16427,7 +16453,8 @@ var LegionStateResponse = exports_external.strictObject({
16427
16453
  strandedClaims: exports_external.array(legionStrandedClaim),
16428
16454
  controllerLocator: legionControllerLocator.optional(),
16429
16455
  agentSecretsLogin: legionAgentSecretsLoginView.optional(),
16430
- capabilities: exports_external.array(legionCapabilityState)
16456
+ capabilities: exports_external.array(legionCapabilityState),
16457
+ repositories: legionRepositories
16431
16458
  });
16432
16459
  var LegionRegisterResponse = exports_external.strictObject({
16433
16460
  claimToken: nonEmptyString,
@@ -404,6 +404,7 @@ active phase worker.
404
404
  | `child-status` | A child of your tree left the workflow or re-entered it; the notice's reason names the child and its new status. `todo` (a human's move, your `release_children`, or your `rerun_child`) means the child runs again under your tree from planning, and the daemon starts it; you start nothing. `backlog`, `icebox` or `triage` (a human's move, or your `park_child`) means the daemon has suspended the child's workers, and it advances no further until it is set back to `todo`. What the rest of the tree does is your decision. |
405
405
  | `child-closed` | Read the child completion and remaining open children. Re-scope open work, park obsolete work with `park_child`, and release an appropriate next wave with `release_children`. When a worker waits on this child for a missing surface (see `phase-finished`), tell it to continue with `envoy_publish` to its role topic. The last child's close is not the end-game (section 3). |
406
406
  | `child-release-stalled` | Its `reason` names a child your `release_children` released while Dispatch already showed it `todo`, and that child's parent, whose release has not reached the daemon after three tries. Read the parent's record with the `legion` tool's `read_record` (`issue` the parent); run `release_children` for the child again once the parent is recorded in your tree, and tell the controller if it never is. |
407
+ | `child-not-recorded` | Its `reason` names a child your tree did not record and why: its repository resolves to none (neither it nor an ancestor names one, and the project has no default), or to one not mapped to the project, or to one the daemon leaves out for a missing GitHub App. The daemon said why on the child too. Set the child's repository to one of the project's (`dispatch issue-update --repo owner/name`), then release it again with `release_children`; tell the controller when the repository it needs is not served. |
407
408
  | `design-approved` | Its `version` is the approved one. A human approved the root spec document at its current version; the gate is open. Proceed to section 2 — except on a root whose catch-up said `handed_over`: its workers already run their phases, so start nothing; the approval releases any READY the gate refused. One whose `version` is the version a human's own answer to a decision block wrote, after an earlier approval (Dispatch carried that approval to it, section 1), opens nothing new: carry on, and release no wave because of it. |
408
409
  | `design-changes-requested` | Its `version` and `reason`. A human asked for changes to the root spec at `version`, for `reason`. Revise the spec as the reason asks and request approval again as section 1 says; stay parked; the gate is closed. |
409
410
  | `phase-finished` | The daemon has already moved the issue to its next phase by its fixed table and started that phase's role; you start nothing. Read the committed handoff for the finishing phase; if it shows unresolved gaps, tell the role now working the issue (`envoy_publish` to its role topic). A `planner` notice that names a departure from the spec's design defers to section 1's full condition: when the approved Summary, Acceptance, scope and settled decisions still hold, the plan is the record; otherwise change the root spec and request approval again as section 1 says. A `reviewer` notice whose GitHub review is `CHANGES_REQUESTED` needs nothing from you: the daemon has returned the issue to `implementing` (Dispatch `in_progress`) and started the **implementer**, whose correction goes through the tester and the reviewer again, never straight to retro. A `reviewer` notice with an `APPROVED` review means the daemon has started retro (step 5). An `implementer` notice for `production_check` is its production report: read the record on the pull request and the issue, then run step 7. A `tester` notice with `verdict: "fail"` — its handoff carries `implementerProof.verdict: "rejected"`, or a failure naming the production-like proof — has gone back to the **implementer** by the daemon's table; never supply the proof from another role. A worker that reports no surface reaches the changed path sends that report instead of completing its phase, so the daemon starts nothing more on that issue and the worker stays idle in its session, not suspended: file a child issue in this tree to build the surface (infrastructure, tooling, or a skill), and when that child's `child-closed` arrives, tell the waiting worker to continue with `envoy_publish` to its role topic. That report is never a reason to advance the phase. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/pi-legion",
3
- "version": "10.8.3",
3
+ "version": "10.10.0",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "omp": {
@@ -12,7 +12,7 @@
12
12
  ]
13
13
  },
14
14
  "legion": {
15
- "daemonApiVersion": 30
15
+ "daemonApiVersion": 32
16
16
  },
17
17
  "repository": {
18
18
  "type": "git",