wicked-crew-api-types 0.87.0 → 0.91.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.
Files changed (2) hide show
  1. package/index.d.ts +115 -7
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -1010,7 +1010,7 @@ export interface RunFileContent {
1010
1010
  export interface RunDiff {
1011
1011
  /** Unified diff text (`git diff --no-color --no-ext-diff HEAD`), cut at 1 MB when `truncated`. */
1012
1012
  diff: string;
1013
- /** The diff exceeded the 1 MB output cap and was cut. */
1013
+ /** The diff exceeded the 1 MB output cap and was cut (or, crew#790, ran out of its time budget). */
1014
1014
  truncated: boolean;
1015
1015
  /**
1016
1016
  * Where the diff was read from (wave 6, F-7R2-013; api-types 0.36.0): `worktree` — the live run
@@ -1025,7 +1025,12 @@ export interface RunDiff {
1025
1025
  branch?: string;
1026
1026
  /** `source: 'branch'` — the base commit the branch was diffed against: the engine's recorded
1027
1027
  * `AgentSession.base_commit` when it has one, else the branch's merge-base with the default
1028
- * branch; `?base=<ref>` overrides it with a plain in-repo ref. */
1028
+ * branch; `?base=<ref>` overrides it with a plain in-repo ref. `source: 'worktree'` (crew#790)
1029
+ * — present when no `?base=` was sent and the worktree was diffed against the recorded
1030
+ * `base_commit` (committed AND uncommitted run work); absent when the baseline was HEAD (no
1031
+ * recorded base, or it does not resolve in the worktree). `truncated` is also `true` when the
1032
+ * untracked-file pass stopped at its time budget on a busy host; a git stopped before it
1033
+ * answered is 503 `{ code: "diff_busy" }` with `Retry-After`. */
1029
1034
  base?: string;
1030
1035
  }
1031
1036
 
@@ -4542,6 +4547,17 @@ export interface BlastRadius {
4542
4547
  * hot symbol. When non-zero, an empty `dependents` still never means "safe".
4543
4548
  */
4544
4549
  unresolved: number;
4550
+ /**
4551
+ * Completeness causes from estate (wicked-estate#222, estate >= 0.18.0; api-types 0.91.0, crew#751),
4552
+ * ABSENT on an older estate. `depth_horizon_reached`: the depth horizon stopped the walk with
4553
+ * dependents beyond it; `node_cap_reached`: the node budget dropped reachable nodes;
4554
+ * `searched_depth`: the horizon that applied (re-ask with a larger one); `truncated_dependents`:
4555
+ * rows estate had but cut to fit its output budget. Any of them set ⇒ `dependents` is partial.
4556
+ */
4557
+ depth_horizon_reached?: boolean;
4558
+ node_cap_reached?: boolean;
4559
+ searched_depth?: number;
4560
+ truncated_dependents?: number;
4545
4561
  }
4546
4562
 
4547
4563
  /** An open elicitation as `GET /runs/:id/elicitation` returns it (DES-002). */
@@ -4902,6 +4918,63 @@ export interface InteractiveStatusPosted {
4902
4918
  unit_ord?: number;
4903
4919
  }
4904
4920
 
4921
+ // ── EP-C2: a document's checks — the four reviewers (api-types 0.88.0) ─────────────────────────
4922
+
4923
+ /** The four reviewers, by `wicked.interactive.review.requested`'s schema id (Intent = `match`, Quality = `qe`). */
4924
+ export type DocReviewerId = 'match' | 'a11y' | 'copy' | 'qe';
4925
+
4926
+ /** Where a document check came from, in the checks panel's words. */
4927
+ export type DocCheckSource = 'review:intent' | 'review:a11y' | 'review:copy' | 'review:quality';
4928
+
4929
+ /** One thing a reviewer found. A finding never edits the document; fixing it is the operator's choice. */
4930
+ export interface DocCheckFinding {
4931
+ /** The `data-wid` the finding is about; `null` = unanchored (the host says so, and checks the anchor against its own inventory). */
4932
+ wid: string | null;
4933
+ severity: 'low' | 'medium' | 'high';
4934
+ sentence: string;
4935
+ }
4936
+
4937
+ /**
4938
+ * One reviewer's verdict on one saved version of a document — a wicked-ledger verdict row, stamped
4939
+ * with the crew run that produced it (`run_id`). There is no second verdict store.
4940
+ */
4941
+ export interface DocCheck {
4942
+ /** The ledger verdict row's id. */
4943
+ id: string;
4944
+ source: DocCheckSource;
4945
+ reviewer: DocReviewerId;
4946
+ /** The version that was reviewed. A check on an older version than the one asked for is shown "on version N". */
4947
+ version: number;
4948
+ /** `pass` (nothing needs changing) · `fail` (changes asked for) · `inconclusive` (the reviewer could not run). */
4949
+ state: 'pass' | 'fail' | 'inconclusive';
4950
+ /** One plain sentence: why this state. */
4951
+ sentence: string;
4952
+ findings: DocCheckFinding[];
4953
+ /**
4954
+ * Who reviewed. `evaluator` is true only when the document's authoring runs are on record AND the
4955
+ * reviewing seat is not one of their seats — shown, never inferred. `author_known: false` (a version
4956
+ * the operator typed, or runs no longer on record) means no seat could be excluded, and says so.
4957
+ */
4958
+ by: { seat: string | null; evaluator: boolean; excluded_seats: string[]; author_known: boolean };
4959
+ /** The skill the reviewer loaded; `null` when it worked from the built-in rubric (the skill is not installed). */
4960
+ skill: string | null;
4961
+ run_id: string;
4962
+ /** ISO-8601: when the verdict was recorded. */
4963
+ at: string;
4964
+ }
4965
+
4966
+ /**
4967
+ * `GET /projects/:projectId/interactive/docs/:doc/checks?version=` → 200. Per reviewer, the newest
4968
+ * verdict at or below `version` (every version when omitted) — so a newer review replaces an older
4969
+ * one, and an older one stays visible until then. `checks: []` = never reviewed.
4970
+ */
4971
+ export interface DocChecksResponse {
4972
+ document_id: string;
4973
+ /** The `version` asked for; `null` when the query named none. */
4974
+ version: number | null;
4975
+ checks: DocCheck[];
4976
+ }
4977
+
4905
4978
  /**
4906
4979
  * One row of `GET /projects/:projectId/interactive/api/docs` (crew#472) — the bridge's own
4907
4980
  * `GET /api/docs` row (interactive's `listDocs` shape, relayed field-for-field) stamped with the
@@ -4947,8 +5020,10 @@ export interface InteractiveDocsListing {
4947
5020
  unreachable: InteractiveDocsUnreachable[];
4948
5021
  }
4949
5022
 
4950
- /** The seams that can answer a document (the handoff ledgers). */
4951
- export type InteractiveSeamKind = 'draft' | 'edit' | 'chat' | 'demo' | (string & {});
5023
+ /** The seams that can answer a document (the handoff ledgers). `theme` (EP-C4 theme learning) and
5024
+ * `review` (EP-C2 reviews) keep their rows in the edit seam's ledger and are told apart by the row
5025
+ * key (api-types 0.90.0, crew#785): a document only reviewed reads `review`, never `edit`. */
5026
+ export type InteractiveSeamKind = 'draft' | 'edit' | 'chat' | 'demo' | 'theme' | 'review' | (string & {});
4952
5027
 
4953
5028
  /** One document on the daemon-wide listing (api-types 0.36.0). */
4954
5029
  export interface InteractiveDocIndexRow {
@@ -5599,6 +5674,17 @@ export interface ProjectBlastRadius {
5599
5674
  missingRepos: string[];
5600
5675
  linkage: ProjectGraphLinkage;
5601
5676
  note: string;
5677
+ /**
5678
+ * Completeness causes from estate (wicked-estate#222, estate >= 0.18.0; api-types 0.91.0, crew#751),
5679
+ * ABSENT on an older estate. `depth_horizon_reached`: the depth horizon stopped the walk with
5680
+ * dependents beyond it; `node_cap_reached`: the node budget dropped reachable nodes;
5681
+ * `searched_depth`: the horizon that applied (re-ask with a larger one); `truncated_dependents`:
5682
+ * rows estate had but cut to fit its output budget. Any of them set ⇒ `dependents` is partial.
5683
+ */
5684
+ depth_horizon_reached?: boolean;
5685
+ node_cap_reached?: boolean;
5686
+ searched_depth?: number;
5687
+ truncated_dependents?: number;
5602
5688
  }
5603
5689
 
5604
5690
  /** `GET /projects/:id/graph/search?name=` — exact-name symbol resolution across member repos. */
@@ -6782,7 +6868,8 @@ export interface WalkthroughView {
6782
6868
  /** Proof-root-relative paths of the stitched take; `null` until there is one. */
6783
6869
  video: { mp4: string | null; poster: string | null; markers: DemoMarker[] };
6784
6870
  chapters: WalkthroughChapter[];
6785
- /** Per creator step, the check state from THIS pair's take — computed at every read from its re-verified seal (WT-W2). */
6871
+ /** Per creator step, the check state from THIS pair's take — computed at every read from its re-verified seal (WT-W2).
6872
+ * With no pair because the accepted plan's override removed it, every finished creator step `owned_by_you` (0.88.1). */
6786
6873
  steps: WalkthroughStepState[];
6787
6874
  }
6788
6875
 
@@ -6793,7 +6880,9 @@ export interface WalkthroughView {
6793
6880
  * engine-captured output), `bundle_sha` recomputed from the proof root, and the proof root's stamped
6794
6881
  * ledger verdicts against the sealed chapter verdicts. The gate is deny-dominates across the repo
6795
6882
  * ledger and every row: a missing, mismatched ("changed after it was sealed") or non-PASS seal
6796
- * denies. ABSENT when the requirement names no walkthrough step.
6883
+ * denies. ABSENT when the requirement names no walkthrough step — except when the accepted plan's floor
6884
+ * override removed the walkthrough pair (§4.9; api-types 0.88.1): then it is present with `roots: []`,
6885
+ * `sealed: true` (nothing to seal) and every finished creator step `owned_by_you`.
6797
6886
  */
6798
6887
  export interface RunAcceptanceWalkthrough {
6799
6888
  roots: Array<{ stepId: string; sealed: boolean; satisfied: boolean; reason: string }>;
@@ -6814,7 +6903,8 @@ export interface RunAcceptanceSummary {
6814
6903
  /** Deny-dominates across the repo ledger and every walkthrough (`gate.satisfied`). */
6815
6904
  satisfied: boolean;
6816
6905
  line: string;
6817
- /** From the newest walkthrough; `null` when the requirement names none. */
6906
+ /** From the newest walkthrough; `null` when the requirement names none — unless the accepted plan's
6907
+ * override removed the pair (then `tree` is `null` and `ownedByYou` counts the operator's steps). */
6818
6908
  walkthrough: {
6819
6909
  checked: number;
6820
6910
  failed: number;
@@ -6847,6 +6937,24 @@ export interface PutStorylineResponse {
6847
6937
  at: string;
6848
6938
  }
6849
6939
 
6940
+ /**
6941
+ * `GET /runs/:id/walkthrough/storyline?step=` → 200 (#782; api-types 0.89.0): the author's storyline
6942
+ * — `author/<planStepId>/storyline.mjs` — so "Edit the check" can prefill the box and send the edit
6943
+ * back through `PUT` ({@link PutStorylineBody}). Readable at any run status. `step` names the author or
6944
+ * its recorder (default: the newest pair). 404 `no_storyline` before the author wrote one; 409
6945
+ * `no_author` / `no_evidence_root` / `read_refused` (a link or a non-file, never followed); 413 over
6946
+ * 256 KB. `edited_by` / `at` come from crew's edit marker only when its `sha256` names THIS text.
6947
+ */
6948
+ export interface WalkthroughStorylineView {
6949
+ runId: string;
6950
+ planStepId: string;
6951
+ storyline: string;
6952
+ sha256: string;
6953
+ edited_by: 'human' | null;
6954
+ /** ISO-8601 of the operator's edit; `null` when the text is the author's. */
6955
+ at: string | null;
6956
+ }
6957
+
6850
6958
  /** `POST /proposals/:id/reject` → 200. */
6851
6959
  export interface RejectProposalResponse {
6852
6960
  ok: true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-crew-api-types",
3
- "version": "0.87.0",
3
+ "version": "0.91.0",
4
4
  "description": "The wire contract of the wicked-crew daemon's /api/v1 REST surface and /ws CoreEvent frames \u2014 types only, zero runtime",
5
5
  "type": "module",
6
6
  "types": "./index.d.ts",