@adhd/backlog 1.0.4 → 1.0.5
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 +16 -0
- package/api.ir.json +1 -1
- package/envelope.d.ts +1 -1
- package/index.js +51 -51
- package/index.mjs +4070 -3937
- package/package.json +1 -1
- package/query/query.d.ts +12 -9
- package/query/resolve.d.ts +27 -0
- package/store/catalog-invariant-guard.d.ts +10 -4
- package/write/catalog.d.ts +9 -2
- package/write/errors.d.ts +37 -1
- package/write/tx.d.ts +23 -1
- package/write/uid-prefix.d.ts +78 -0
package/api.ir.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"formatVersion":1,"operations":[{"id":"backlog/get","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"get","words":["get"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"oneOf":[{"type":"object","properties":{"uid":{"type":"string"},"fields":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","oneOf":[{"$ref":"#/definitions/IIssuePlainField"},{"$ref":"#/definitions/IIssuePseudoField"}],"x-apigen-logical":"union"}}},"required":["uid"],"additionalProperties":false},{"type":"object","properties":{"registry":{"type":"string","enum":["project","component","location"]},"name":{"type":"string"},"filter":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string"},"component":{"type":"string"}},"additionalProperties":false}},"required":["registry","name"],"additionalProperties":false}],"x-apigen-logical":"union"}},"required":["input"],"definitions":{"IIssuePlainField":{"type":"string","enum":["uid","title","kind","status","priority","project","component","createdAt","updatedAt","assignee","author","closedAt","gitContext"],"description":"The closed field vocabulary a `get`/`query` caller may request (SPEC.md §6.5). `assertKnownFields` (this module's {@link assertKnownIssueFields } ) rejects any name outside this union with a `BacklogValidationError` naming it — never a silent drop.\n\n`plain` fields are cheap: each is either a column on the `issue` node itself or a scalar living in `issue.meta.metadata` (`assignee`, `closedAt`, `gitContext` — SPEC.md §6.5's own reclassification of `closedAt` as `plain`, since it is read in the SAME single-row fetch as `assignee`, not a second query; `gitContext` is the item-level disclosure-contract git context, a sibling of `assignee` in the same metadata blob).\n\n`pseudo` fields are opt-in only: each costs a genuine extra read (an edge traversal to another node kind, or only exists on a `searchRanked` response) and is therefore NEVER included in the default card."},"IIssuePseudoField":{"type":"string","enum":["body","citations","notes","auditTrail","blockers","related","_score","_vector"]}}},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").IIssueGetInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").IIssueGetResult>"},"hasCtx":true},{"id":"backlog/query","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"query","words":["query"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"text":{"type":"string"},"filter":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"uid or name (SPEC.md §6.1)."},"component":{"type":"string","description":"uid or name, scoped within `project`."},"kind":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"status":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"string","const":"open"},{"type":"string","const":"closed"},{"type":"string","const":"all"}]},"priority":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"assignee":{"type":"string"},"claimedBy":{"type":"string"},"author":{"type":"string","description":"Resolves via `authored_by` edge traversal — uid or name."},"grep":{"type":"string","description":"FTS keyword, title+body — keyword-only, never hybrid."},"semantic":{"type":"string","description":"Routes to `searchRanked` (§5a) — composes with `grep`, neither swallows the other."},"anchor":{"type":"string","description":"Item-anchored similarity/traversal seed (§6.1) — uid of the reference item."},"plan":{"type":"string","description":"uid or name of the parent `issue` this one is filed under via the `part_of` edge (SPEC.md §1052/§1471: a plan is itself an `issue` row, not a dedicated node kind — attaching an item to it is `relate(childUid, planUid, 'part_of', 'add')`). Resolves candidate issues by the incoming `part_of` edge into the resolved plan node, exactly like the `project`/`component` edge-scoped filters."},"projectPath":{"type":"string","description":"`component.meta.path` (repo-relative package path, SPEC.md §3) — exact match against every live `component` row, unioned across matches. Distinct from `component`, which takes a uid/name rather than a filesystem path."},"closedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"createdAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"updatedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"SPEC.md §6.5's `IIssueFilter`."},"fields":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","oneOf":[{"$ref":"#/definitions/IIssuePlainField"},{"$ref":"#/definitions/IIssuePseudoField"}],"x-apigen-logical":"union"}},"sort":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["priority","updated","created","relevance","textMatch"]},"direction":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["asc","desc"]},"limit":{"type":"number"},"offset":{"type":"number"},"after":{"type":"string"},"view":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["list","ready","graph","order","stale","similar","overlap","projects","components","locations"],"description":"`projects`/`components`/`locations` (SPEC.md §3a/§8 AC-9) are the registry LIST views — every live `project`/`component`/`location` row, optionally narrowed by `filter.project` (and, for `locations`, `filter.component`) — routed to `views/registry.ts`'s `listProjects`/`listComponents`/ `listLocations`, distinct from the issue-search views above (§6.1: \"conflating the two would be wrong\")."},"format":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["json","markdown"]},"overlapAxis":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["file","project","component","author"],"description":"SPEC.md §5, §6.1's `axis` — the grouping dimension for `overlapUids` (§6.2)."},"overlapUids":{"type":"array","items":{"type":"string"}},"staleAfterMin":{"type":"number"}},"additionalProperties":false}},"required":["input"],"definitions":{"IIssuePlainField":{"type":"string","enum":["uid","title","kind","status","priority","project","component","createdAt","updatedAt","assignee","author","closedAt","gitContext"],"description":"The closed field vocabulary a `get`/`query` caller may request (SPEC.md §6.5). `assertKnownFields` (this module's {@link assertKnownIssueFields } ) rejects any name outside this union with a `BacklogValidationError` naming it — never a silent drop.\n\n`plain` fields are cheap: each is either a column on the `issue` node itself or a scalar living in `issue.meta.metadata` (`assignee`, `closedAt`, `gitContext` — SPEC.md §6.5's own reclassification of `closedAt` as `plain`, since it is read in the SAME single-row fetch as `assignee`, not a second query; `gitContext` is the item-level disclosure-contract git context, a sibling of `assignee` in the same metadata blob).\n\n`pseudo` fields are opt-in only: each costs a genuine extra read (an edge traversal to another node kind, or only exists on a `searchRanked` response) and is therefore NEVER included in the default card."},"IIssuePseudoField":{"type":"string","enum":["body","citations","notes","auditTrail","blockers","related","_score","_vector"]}}},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"oneOf":[{"type":"object","properties":{"view":{"type":"string","enum":["list"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context (repo `AGENTS.md`'s \"Cite what you read\": the FIRST element of a `Citations:` block is `<active git context>`). A plain field — a sibling of `assignee` in `issue.meta.metadata`, read in the same single-row fetch. Rendered once at the head of the `Citations:` block by `markdown.ts`; never per-citation. Absent on every issue filed before the field existed, and on any issue whose `create`/`transition` supplied no `gitContext`."},"body":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/definitions/IIssueCitation"}},"notes":{"type":"array","items":{"$ref":"#/definitions/IIssueNote"}},"auditTrail":{"type":"array","items":{"$ref":"#/definitions/IIssueAuditEntry"}},"blockers":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"related":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"_score":{"type":"number"},"_vector":{"type":"array","items":{"type":"number"}}},"required":["uid"],"additionalProperties":false,"description":"The projected issue card (SPEC.md §6.5's `IIssueCard`). Every field is OPTIONAL here because the shape is fields-projected: a caller that asked for `['uid','title']` gets a card with only those two keys populated. `uid` is always present regardless of the requested `fields` — an issue card with no addressable identity is never a useful response."}},"nextCursor":{"type":"string"},"hasMore":{"type":"boolean"}},"required":["view","items","hasMore"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["ready"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context (repo `AGENTS.md`'s \"Cite what you read\": the FIRST element of a `Citations:` block is `<active git context>`). A plain field — a sibling of `assignee` in `issue.meta.metadata`, read in the same single-row fetch. Rendered once at the head of the `Citations:` block by `markdown.ts`; never per-citation. Absent on every issue filed before the field existed, and on any issue whose `create`/`transition` supplied no `gitContext`."},"body":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/definitions/IIssueCitation"}},"notes":{"type":"array","items":{"$ref":"#/definitions/IIssueNote"}},"auditTrail":{"type":"array","items":{"$ref":"#/definitions/IIssueAuditEntry"}},"blockers":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"related":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"_score":{"type":"number"},"_vector":{"type":"array","items":{"type":"number"}}},"required":["uid"],"additionalProperties":false,"description":"The projected issue card (SPEC.md §6.5's `IIssueCard`). Every field is OPTIONAL here because the shape is fields-projected: a caller that asked for `['uid','title']` gets a card with only those two keys populated. `uid` is always present regardless of the requested `fields` — an issue card with no addressable identity is never a useful response."}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["graph"]},"graph":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"}},"required":["uid","title","status"],"additionalProperties":false}},"edges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"rel":{"type":"string","enum":["blocks","relates_to","part_of"]}},"required":["from","to","rel"],"additionalProperties":false}}},"required":["nodes","edges"],"additionalProperties":false,"description":"SPEC.md §5's `DependencyGraph`, using this system's edge vocabulary (§6.2: `blocks`, not `DEPENDS_ON`)."}},"required":["view","graph"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["order"]},"order":{"$schema":"http://json-schema.org/draft-07/schema#","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"order":{"type":"array","items":{"type":"string"}}},"required":["ok","order"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"cycle":{"type":"array","items":{"type":"string"}}},"required":["ok","cycle"],"additionalProperties":false}],"x-apigen-logical":"union"}},"required":["view","order"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["stale"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context (repo `AGENTS.md`'s \"Cite what you read\": the FIRST element of a `Citations:` block is `<active git context>`). A plain field — a sibling of `assignee` in `issue.meta.metadata`, read in the same single-row fetch. Rendered once at the head of the `Citations:` block by `markdown.ts`; never per-citation. Absent on every issue filed before the field existed, and on any issue whose `create`/`transition` supplied no `gitContext`."},"body":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/definitions/IIssueCitation"}},"notes":{"type":"array","items":{"$ref":"#/definitions/IIssueNote"}},"auditTrail":{"type":"array","items":{"$ref":"#/definitions/IIssueAuditEntry"}},"blockers":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"related":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"_score":{"type":"number"},"_vector":{"type":"array","items":{"type":"number"}}},"required":["uid"],"additionalProperties":false,"description":"The projected issue card (SPEC.md §6.5's `IIssueCard`). Every field is OPTIONAL here because the shape is fields-projected: a caller that asked for `['uid','title']` gets a card with only those two keys populated. `uid` is always present regardless of the requested `fields` — an issue card with no addressable identity is never a useful response."}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["similar"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context (repo `AGENTS.md`'s \"Cite what you read\": the FIRST element of a `Citations:` block is `<active git context>`). A plain field — a sibling of `assignee` in `issue.meta.metadata`, read in the same single-row fetch. Rendered once at the head of the `Citations:` block by `markdown.ts`; never per-citation. Absent on every issue filed before the field existed, and on any issue whose `create`/`transition` supplied no `gitContext`."},"body":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/definitions/IIssueCitation"}},"notes":{"type":"array","items":{"$ref":"#/definitions/IIssueNote"}},"auditTrail":{"type":"array","items":{"$ref":"#/definitions/IIssueAuditEntry"}},"blockers":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"related":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"_score":{"type":"number"},"_vector":{"type":"array","items":{"type":"number"}}},"required":["uid"],"additionalProperties":false,"description":"The projected issue card (SPEC.md §6.5's `IIssueCard`). Every field is OPTIONAL here because the shape is fields-projected: a caller that asked for `['uid','title']` gets a card with only those two keys populated. `uid` is always present regardless of the requested `fields` — an issue card with no addressable identity is never a useful response."}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["overlap"]},"groups":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"axisValue":{"type":"string"},"uids":{"type":"array","items":{"type":"string"}}},"required":["axisValue","uids"],"additionalProperties":false,"description":"`view:'overlap'`'s output shape (§6.2) — one entry per distinct axis value shared by ≥1 of the input `uids`."}}},"required":["view","groups"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["projects"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"repoUrl":{"type":"string"},"monorepo":{"type":"boolean"},"description":{"type":"string"}},"required":["uid","name"],"additionalProperties":false}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["components"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"projectUid":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"}},"required":["uid","name","projectUid"],"additionalProperties":false}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["locations"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"locType":{"$ref":"#/definitions/ILocationType"},"value":{"type":"string"},"componentUid":{"type":"string"}},"required":["uid","locType","value","componentUid"],"additionalProperties":false}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["list","ready","stale","similar"]},"format":{"type":"string","enum":["markdown"]},"markdown":{"type":"string"}},"required":["view","format","markdown"],"additionalProperties":false}],"x-apigen-logical":"union"},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."},"IIssueCitation":{"type":"object","properties":{"uid":{"type":"string"},"file":{"type":"string"},"lines":{"type":"string"},"context":{"type":"string","description":"Free-text prose for this citation (the write layer's `ICitationInput.context`). NOT the item's disclosure-contract git context — that is ITEM-level provenance and lives on {@link IIssueCard.gitContext } , a sibling of `assignee`, rendered once at the head of the `Citations:` block. This per-citation `context` is never rendered by `markdown.ts` and cannot carry the git context."},"symbol":{"type":"string"},"sha":{"type":"string"},"at":{"type":"string"}},"required":["uid","file","sha","at"],"additionalProperties":false,"description":"A citation, projected for read (mirrors the write layer's `ICitationInput` shape plus the server-computed `sha`)."},"IIssueNote":{"type":"object","properties":{"uid":{"type":"string"},"author":{"type":"string"},"text":{"type":"string"},"at":{"type":"string"}},"required":["uid","author","text","at"],"additionalProperties":false},"IIssueAuditEntry":{"type":"object","properties":{"uid":{"type":"string"},"actor":{"type":"string"},"action":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"note":{"type":"string"},"sha":{"type":"string"},"at":{"type":"string"}},"required":["uid","actor","action","sha","at"],"additionalProperties":false},"IIssueRef":{"type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"}},"required":["uid","title","status"],"additionalProperties":false,"description":"A minimal cross-reference to another issue — used by the `blockers`/`related` pseudo-fields."},"ILocationType":{"type":"string","enum":["path","url","tool"]}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").IIssueQueryInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").IIssueQueryResult>"},"hasCtx":true},{"id":"backlog/priority-matrix","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"priorityMatrix","words":["priority","matrix"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"filter":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"uid or name (SPEC.md §6.1)."},"component":{"type":"string","description":"uid or name, scoped within `project`."},"kind":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"status":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"string","const":"open"},{"type":"string","const":"closed"},{"type":"string","const":"all"}]},"priority":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"assignee":{"type":"string"},"claimedBy":{"type":"string"},"author":{"type":"string","description":"Resolves via `authored_by` edge traversal — uid or name."},"grep":{"type":"string","description":"FTS keyword, title+body — keyword-only, never hybrid."},"semantic":{"type":"string","description":"Routes to `searchRanked` (§5a) — composes with `grep`, neither swallows the other."},"anchor":{"type":"string","description":"Item-anchored similarity/traversal seed (§6.1) — uid of the reference item."},"plan":{"type":"string","description":"uid or name of the parent `issue` this one is filed under via the `part_of` edge (SPEC.md §1052/§1471: a plan is itself an `issue` row, not a dedicated node kind — attaching an item to it is `relate(childUid, planUid, 'part_of', 'add')`). Resolves candidate issues by the incoming `part_of` edge into the resolved plan node, exactly like the `project`/`component` edge-scoped filters."},"projectPath":{"type":"string","description":"`component.meta.path` (repo-relative package path, SPEC.md §3) — exact match against every live `component` row, unioned across matches. Distinct from `component`, which takes a uid/name rather than a filesystem path."},"closedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"createdAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"updatedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"SPEC.md §6.5's `IIssueFilter`."}},"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"rows":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"priority":{"type":"string"},"priorityUid":{"type":"string"},"rank":{"type":"number","description":"`priority.meta.metadata.rank` (`nextPriorityRankTx`, §2) — lower is more urgent. Absent only for a malformed pre-existing row with no numeric rank; the count itself is still real."},"count":{"type":"number"}},"required":["priority","priorityUid","count"],"additionalProperties":false}},"unassigned":{"type":"number"},"statusScope":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"x-apigen-logical":"union"}},"required":["rows","unassigned","statusScope"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IPriorityMatrixInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IPriorityMatrixResult>"},"hasCtx":true},{"id":"backlog/part-of-rollup","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"partOfRollup","words":["part","of","rollup"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"}},"required":["uid"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"childrenTotal":{"type":"number"},"childrenOpen":{"type":"number"},"childrenClosed":{"type":"number"},"childrenOpenUids":{"type":"array","items":{"type":"string"}}},"required":["uid","childrenTotal","childrenOpen","childrenClosed","childrenOpenUids"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IPartOfRollupInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IPartOfRollupResult>"},"hasCtx":true},{"id":"backlog/open-curve","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"openCurve","words":["open","curve"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"filter":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"uid or name (SPEC.md §6.1)."},"component":{"type":"string","description":"uid or name, scoped within `project`."},"kind":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"status":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"string","const":"open"},{"type":"string","const":"closed"},{"type":"string","const":"all"}]},"priority":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"assignee":{"type":"string"},"claimedBy":{"type":"string"},"author":{"type":"string","description":"Resolves via `authored_by` edge traversal — uid or name."},"grep":{"type":"string","description":"FTS keyword, title+body — keyword-only, never hybrid."},"semantic":{"type":"string","description":"Routes to `searchRanked` (§5a) — composes with `grep`, neither swallows the other."},"anchor":{"type":"string","description":"Item-anchored similarity/traversal seed (§6.1) — uid of the reference item."},"plan":{"type":"string","description":"uid or name of the parent `issue` this one is filed under via the `part_of` edge (SPEC.md §1052/§1471: a plan is itself an `issue` row, not a dedicated node kind — attaching an item to it is `relate(childUid, planUid, 'part_of', 'add')`). Resolves candidate issues by the incoming `part_of` edge into the resolved plan node, exactly like the `project`/`component` edge-scoped filters."},"projectPath":{"type":"string","description":"`component.meta.path` (repo-relative package path, SPEC.md §3) — exact match against every live `component` row, unioned across matches. Distinct from `component`, which takes a uid/name rather than a filesystem path."},"closedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"createdAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"updatedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"SPEC.md §6.5's `IIssueFilter`."},"at":{"type":"array","items":{"type":"string"}}},"required":["at"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"points":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"at":{"type":"string"},"existed":{"type":"number","description":"In-scope issues that EXISTED at this instant (`NodeFilter.validAt`: `t_created <= at` and `t_invalid` is null or after `at`) — exact, never reconstructed."},"open":{"type":"number","description":"Of `existed`, the count whose RECONSTRUCTED status was non-terminal at this instant (never the issue's CURRENT status) — see {@link reconstructStatusAt } ."},"closed":{"type":"number","description":"`existed - open`."}},"required":["at","existed","open","closed"],"additionalProperties":false}}},"required":["points"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IOpenCurveInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IOpenCurveResult>"},"hasCtx":true},{"id":"backlog/embedding-status","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"embeddingStatus","words":["embedding","status"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{},"required":[]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"configuredEnabled":{"type":"boolean"},"effectiveEnabled":{"type":"boolean"},"provider":{"type":"string"},"model":{"type":"string"},"membersPresent":{"type":"object","properties":{"embedding":{"type":"boolean"},"search":{"type":"boolean"}},"required":["embedding","search"],"additionalProperties":false},"divergent":{"type":"boolean"},"startupHash":{"type":"string"},"currentHash":{"type":"string"}},"required":["configuredEnabled","effectiveEnabled","provider","model","membersPresent","divergent","startupHash","currentHash"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"()","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/api\").IEmbeddingStatusResult>"},"hasCtx":true},{"id":"backlog/lookup","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"lookup","words":["lookup"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"q":{"type":"string"}},"required":["q"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"project":{"type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"repoUrl":{"type":"string"}},"required":["uid","name"],"additionalProperties":false},"component":{"type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"}},"required":["uid","name"],"additionalProperties":false},"location":{"type":"object","properties":{"uid":{"type":"string"},"locType":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["path","url","tool"]},"value":{"type":"string"}},"required":["uid","locType","value"],"additionalProperties":false},"hint":{"type":"string"}},"required":["project"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: { q: string; })","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").ILookupResult>"},"hasCtx":true},{"id":"backlog/create","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"create","words":["create"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"citations":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"file":{"type":"string"},"lines":{"type":"string"},"context":{"type":"string"},"symbol":{"type":"string"},"blastRadius":{"description":"Best-effort enrichment payload — not re-specified here; carried through verbatim into the citation node's metadata."}},"required":["file"],"additionalProperties":false,"description":"A filing-time citation (§6.3.2, carried forward from the established `Citation` shape in spirit — `blastRadius` stays best-effort, `model.ts:110-120`). Named `ICitationInput` here (not the spec's bare `Citation`) per this repo's \"prefix shared/data interfaces with `I`\" convention."}},"author":{"type":"string"},"assignee":{"type":"string"},"gitContext":{"type":"string"},"by":{"type":"string"},"duplicateAction":{"type":"string","enum":["abort","force","comment"]},"awaitEmbed":{"type":"boolean"}},"required":["title","body","project","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"created":{"type":"boolean"},"uid":{"type":"string"},"item":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context, echoed back from {@link ICreateIssueInput.gitContext } — present iff one was supplied."}},"required":["uid","title","kind","status","project","component","createdAt"],"additionalProperties":false,"description":"The \"plain\" card fields (§6.5) this verb already has in hand after a create — never field-projected, unlike a `query` response.\n\nBUG-APIGEN-CORE-CLIENT-BARE-NAME-COLLISION-001: named `ICreateIssueCard`, not `IIssueCard`, deliberately. `query/types.ts` also exports an `IIssueCard` (the fields-projected card `query`/`get` return, every field but `uid` optional) — both interfaces were reachable from `api.d.ts`'s type graph, and apigen's extraction (`ts-json-schema-generator`, invoked per-operation but apparently resolving/caching declarations by bare name across the whole extracted program) non-deterministically resolved the `IIssueCard` bare name to EITHER declaration depending on extraction order — confirmed empirically: `dist/index.js` (CJS) resolved `query`'s own `items: IIssueCard[]` to THIS file's stricter shape (wrongly requiring `project`/`component`/`createdAt`), while `dist/index.mjs` (ESM) failed to resolve it at all (`items: {}`, unconstrained) — from the exact same source, built in the same pass. This is what broke `backlog_query`'s MCP `oneOf` output-schema validation the moment `get()`'s return type union (AC-11) made the extractor visit both `IIssueCard` declarations. The correct, permanent fix is what's below: give the two interfaces distinct bare names so extraction can never conflate them, not a workaround in the `get()`/`query()` call sites. Filed as BUG-APIGEN-CORE-CLIENT-BARE-NAME-COLLISION-001 (apigen-core-client, out of this package's ownership) — this rename is the local mitigation; the extractor itself should also stop keying declarations by bare name.\n\nThis rename fixes the CJS path (`dist/index.js`, the only bundle any real transport here — CLI, MCP-stdio, HTTP serve — ever spawns/requires; confirmed empirically, `dist/index.mjs` is loaded by none of them). It does NOT fix a second, DISTINCT defect also present in `dist/index.mjs`: every `$ref` to a NAMED exported interface (`ICreateIssueCard` here, `IDuplicateCandidate`, `IIssueCard`, …) dereferences to `{}` (empty/ unconstrained) in the ESM build specifically, while inline/anonymous object types on the SAME operation (e.g. `ICreateIssueResult.commentedOn`) resolve correctly in both builds — ruling out a general extraction failure and pointing at `dereferenceSchema`'s named-`$ref` resolution specifically misbehaving under ESM. Reproduced on `create`'s `item`/ `duplicateCandidates` fields, which this file's own diff never touched, so it predates and is independent of the collision above. Filed separately as BUG-APIGEN-CORE-CLIENT-ESM-DEREF-EMPTY-001 — not fixed here (out of this package's ownership, and no real consumer loads `dist/index.mjs` today), but must not be silently dropped."},"duplicateCandidates":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"score":{"type":"number","description":"Cosine similarity in `[0,1]`, straight off the vector channel — directly comparable to `project_policy.dedupe_threshold`."}},"required":["uid","title","score"],"additionalProperties":false,"description":"A dedupe candidate surfaced at filing time (§6.4), carrying the cosine similarity that produced it — see {@link scanForDuplicates } 's own doc comment for where that number comes from and why it is the only score this gate will accept."}},"reason":{"type":"string","enum":["duplicate-suppressed"]},"supersededUid":{"type":"string"},"commentedOn":{"type":"object","properties":{"uid":{"type":"string"},"noteId":{"type":"string"}},"required":["uid","noteId"],"additionalProperties":false}},"required":["created"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/create-issue\").ICreateIssueInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/create-issue\").ICreateIssueResult>"},"hasCtx":true},{"id":"backlog/update","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"update","words":["update"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"by":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"kind":{"type":"string"},"priority":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"awaitEmbed":{"type":"boolean"}},"required":["uid","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"changed":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["title","body","kind","priority","assignee","author"]}}},"required":["uid","changed"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/update\").IUpdateIssueInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/update\").IUpdateIssueOutcome>"},"hasCtx":true},{"id":"backlog/transition","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"transition","words":["transition"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"by":{"type":"string"},"toStatus":{"type":"string"},"note":{"type":"string"},"citations":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"file":{"type":"string"},"lines":{"type":"string"},"context":{"type":"string"},"symbol":{"type":"string"},"blastRadius":{"description":"Best-effort enrichment payload — not re-specified here; carried through verbatim into the citation node's metadata."}},"required":["file"],"additionalProperties":false,"description":"A filing-time citation (§6.3.2, carried forward from the established `Citation` shape in spirit — `blastRadius` stays best-effort, `model.ts:110-120`). Named `ICitationInput` here (not the spec's bare `Citation`) per this repo's \"prefix shared/data interfaces with `I`\" convention."}},"gitContext":{"type":"string"}},"required":["uid","by","toStatus"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"fromStatus":{"type":"string"},"toStatus":{"type":"string"},"closedAt":{"type":"string"},"transitionUid":{"type":"string"}},"required":["uid","fromStatus","toStatus","transitionUid"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/transition\").ITransitionInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/transition\").ITransitionOutcome>"},"hasCtx":true},{"id":"backlog/claim","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"claim","words":["claim"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"by":{"type":"string"},"action":{"type":"string","enum":["claim","release","renew"]},"force":{"type":"boolean"}},"required":["uid","by","action"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"status":{"type":"string","enum":["claimed","held","reclaimed-stale","renewed","released","release-noop"]},"claimedBy":{"type":"string"},"claimedAt":{"type":"string"},"heldBy":{"type":"string"},"heldSince":{"type":"string"},"previousClaimant":{"type":"string"},"wasClaimedBy":{"type":"string"}},"required":["uid","status"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/claim\").IClaimInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/claim\").IClaimOutcome>"},"hasCtx":true},{"id":"backlog/relate","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"relate","words":["relate"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"sourceUid":{"type":"string"},"targetUid":{"type":"string"},"rel":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["relates_to","supersedes","blocks","duplicate_of","part_of"],"description":"The closed `rel` union `relate` accepts (§3/§6.3.6) — issue → issue in every case."},"action":{"type":"string","enum":["add","remove"]},"by":{"type":"string"}},"required":["sourceUid","targetUid","rel","action","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"sourceUid":{"type":"string"},"targetUid":{"type":"string"},"rel":{"type":"string"},"action":{"type":"string","enum":["add","remove"]},"noop":{"type":"boolean"}},"required":["sourceUid","targetUid","rel","action","noop"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/relate\").IRelateInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/relate\").IRelateOutcome>"},"hasCtx":true},{"id":"backlog/move","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"move","words":["move"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"toProject":{"type":"string"},"toComponent":{"type":"string"},"by":{"type":"string"}},"required":["uid","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"noop":{"type":"boolean"},"fromProject":{"type":"string"},"toProject":{"type":"string"},"fromComponent":{"type":"string"},"toComponent":{"type":"string"}},"required":["uid","noop","fromProject","toProject","fromComponent","toComponent"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/move\").IMoveIssueInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/move\").IMoveIssueOutcome>"},"hasCtx":true},{"id":"backlog/upsert-project","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"upsertProject","words":["upsert","project"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string"},"repoUrl":{"type":"string"},"monorepo":{"type":"boolean"},"description":{"type":"string"},"by":{"type":"string"}},"required":["name","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"created":{"type":"boolean"},"project":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"repoUrl":{"type":"string"},"monorepo":{"type":"boolean"},"description":{"type":"string"}},"required":["uid","name"],"additionalProperties":false}},"required":["uid","created","project"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertProjectInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertProjectOutcome>"},"hasCtx":true},{"id":"backlog/upsert-component","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"upsertComponent","words":["upsert","component"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"project":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"},"by":{"type":"string"}},"required":["project","name","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"created":{"type":"boolean"},"component":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"projectUid":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"}},"required":["uid","name","projectUid"],"additionalProperties":false}},"required":["uid","created","component"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertComponentInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertComponentOutcome>"},"hasCtx":true},{"id":"backlog/upsert-location","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"upsertLocation","words":["upsert","location"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"component":{"type":"string"},"project":{"type":"string"},"locType":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["path","url","tool"]},"value":{"type":"string"},"by":{"type":"string"}},"required":["component","locType","value","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"created":{"type":"boolean"},"location":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"locType":{"$ref":"#/definitions/ILocationType"},"value":{"type":"string"},"componentUid":{"type":"string"}},"required":["uid","locType","value","componentUid"],"additionalProperties":false}},"required":["uid","created","location"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."},"ILocationType":{"type":"string","enum":["path","url","tool"]}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertLocationInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertLocationOutcome>"},"hasCtx":true},{"id":"backlog/rm-location","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"rmLocation","words":["rm","location"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"by":{"type":"string"},"reason":{"type":"string"}},"required":["uid","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"invalidated":{"type":"boolean","const":true}},"required":["uid","invalidated"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IRmLocationInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IRmLocationOutcome>"},"hasCtx":true},{"id":"backlog/delete","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"delete","words":["delete"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"reason":{"type":"string"},"by":{"type":"string"},"awaitEmbed":{"type":"boolean"}},"required":["uid","reason","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"invalidated":{"type":"boolean","const":true}},"required":["uid","invalidated"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/delete\").IDeleteIssueInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/delete\").IDeleteIssueOutcome>"},"hasCtx":true}],"extractorVersion":"0.3.3","createdAt":"2026-09-27T00:41:53.462Z","artifactSource":{"path":"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/api.d.ts","sha256":"ebfcef5f1d5890f7b6442890b59613fa8583e9d8d2353b12ad98e0b1110bda52","bytes":10898,"deps":{"api.d.ts":"ebfcef5f1d5890f7b6442890b59613fa8583e9d8d2353b12ad98e0b1110bda52","cli-input-envelope.d.ts":"9254390c27f31ab6598e623731007de3d143e50e8cd9e4824cae944e389851b3","cli.d.ts":"51a94638d3c71e0769022a71ae271a286e5f34cb3b43e60926bf7c0a635317fa","env.d.ts":"b8dbe8fb14a7dda4745fdac154dacdf8bacec49657830c88bf9344fed84a69d2","envelope.d.ts":"47e8ff09adbc9c5160ec4a8118a4a3597cfad14e5675039957c9e7725cf62479","extract-live.d.ts":"11a6c52c95a703deeae932b5813922bd7773a544904ce0e4c06c6466d3049934","index.d.ts":"a57f1ad199cdce9e4595c14042ee12a196d69a9edbca42fb6b4262a461ce6651","install-skill.d.ts":"ac52fbea0674a76508a1b38ce2791191e1d6fa8ced8099dd5da81a18b68d1aa2","install.d.ts":"cc9944d6ec2d12af9963deecf2a2f288e433d1f59cfdba8a9ca9b3b4613b4f31","ir-artifact.d.ts":"10a615c14f483f24f01b6b3c53d38320d6c4aa10ebdb1bc4b5c2da4f84b59e8e","query/card.d.ts":"a4902fc8e3ea4ee8f80e74523c35d8c72b6df4949f4b724b2e3b52431ae93343","query/get.d.ts":"ed9344df7f91cad622c6e531883ce72fd6512b8ad7bc2a81ec65947d02c5de3a","query/index.d.ts":"2426d6dc6e3e7e3f2a5ae440250b6233e56edd5aac400bd9dea5ee878501e290","query/markdown.d.ts":"0aefdc5c216491ec2d98986c834fd66da5969c36da55e1c5c92030f2f79a8e87","query/query.d.ts":"cb86d51ffc34f531b55c6699ff1d9f773ab48f2626c8c15eba8d52c405f88c80","query/resolve.d.ts":"399d3d9f83ac4b78b20f7be5c047b4aa9bbed5eda7fef50c8e602bf01b24b6c9","query/types.d.ts":"83a6e4c0bc43f497ffe30b86d95799c823f09f4a93adff3acda2ec2cd4ddf231","query/views/registry.d.ts":"5baee362c591688fe5ea38f8fd3586f80cccb09a2bf6166d3e9e155307bdd08a","query/views/semantic.d.ts":"6ab4a6fe8967e4a79a3d720e006355278e7aaf74ddba1eb2ada829ba90c7d8ed","query/views/stats.d.ts":"5e98526a9d5978e2fbfac2a90c485f5d1b13cec6ca788fdb16e4412e3fc9ab8e","search-shortcut.d.ts":"a9575c3cc4496566859900935031a0e2607f134b557cd3a4462382255dbc0126","serve.d.ts":"768604b57bfd1c31a9a2900d10e77e7a619f4d201f1d6c9f4641e1504e9a0a1c","server.d.ts":"f84b29cd101b50ee0c97c86d3da49f742c9759d55ba0905486ee78b0438cded2","store/catalog-invariant-guard.d.ts":"b1313d5858e5d5fc02e9e2c665206c72d08d368b8149a367c69eb860989ef66c","store/graph-backlog-store.d.ts":"1fe364b91a951677f756e0d44f00baab412be040aaed9938e89dc2c8996b9bee","store/immediate-retry.d.ts":"db564719cb7e75e13275a90872de72ff8f7fd4798c73351677ed32329eb52173","store/signal-cleanup.d.ts":"f2b7fa6071337f862891653d02df99db06feff18bf090e048b1f382a6b21e0d1","store/type-policy.d.ts":"8c46b0611170294765383b9f00791e4fd855185a62c69943219f2d40fa3e9415","store/vocabulary-guard.d.ts":"84c88bc4c825977f48f46efec5667b70cbd50195f0c8bafdbe4eb36154b041b0","version-info.d.ts":"9d2a66fb1dc9a9fa227cdb224c53ff5695ad21b23de66c4be1e02e67c9c08eb3","write/audit.d.ts":"b4871edceb1d2c4fbadf0b1801afdd84138e26a7351011b17e81b5dff0e3bf26","write/bootstrap.d.ts":"652fdfcb1d81e5b0569e64e1f588eb2fbe70411e16553a3043ac5e80e9d68276","write/catalog-merge.d.ts":"6bc0be5931541091473ff071d34cc9831a21b03c89daef723a7427dd10ad0133","write/catalog-repair.d.ts":"d91805b046d77e3b6c33146634b8ffccf86f0c1d3ae6727180647cce8c255282","write/catalog.d.ts":"2350e53df3fbb5c0b0aa010f4162450bb002689da2724202794efd992b6ef830","write/citation-path.d.ts":"78a01a711ec78cba6be9a1e1ef4709c3f8b12bacf8f8b84ea44531702579516f","write/claim-lease.d.ts":"a742912d7d74e5c0221792effdd15452a23e195a88c299e3f7cd60ed26fdc4ff","write/claim.d.ts":"0897712218653b4d71fd5031b65b73e13fe9a56c64f6c348ef1b2d8aed7de2c2","write/create-issue.d.ts":"ef4868d3abb174ae9789f8e2aee35aac089a437b7e30628482a824e936122960","write/delete.d.ts":"73577bd1340a8cb8d078d97d0a7417cf3c1031d3e95ed16d9d087801da6b80df","write/embed-drain.d.ts":"a6295da99822d289187e506281545ca09da490bcda56c497d5571ab674872209","write/embedding-config.d.ts":"b3245db358bf7bbd7db94f412be613b8bb4ac9b3d7b778f07ca019b062c785f1","write/embedding-observer.d.ts":"2ccac6173aba3830bf60652cbf916250d7765f5d704364205a5e08c3f0f4969f","write/errors.d.ts":"55fcd0f32d20c529e7ebbcfabbc2ba19f64b9867180e17a64bcbc66483c45c52","write/issue-status.d.ts":"0df49e4e88d69122d545037c36e97b67da9bec1e882877833bb33077dc10d753","write/move.d.ts":"3dbe164e938a9cb4459231b3c61b9fae89e9c21d8aa7de3fed719732da9fc62e","write/relate.d.ts":"7567c5e07a78b332999591fa77eede9a3d33b5db5d5b3fb5588588be57b4f1ca","write/transition.d.ts":"b7f24a3b773768e31755902b9325c86a8d3391b1985788d4520cf4aa418f4cf7","write/tx.d.ts":"69bbc426befa9919b87659e176456c1a641094e25a3a5a82e89476f60a38eb12","write/update.d.ts":"3901403b32b892d19df57f68f0824c4f8d70d6d0b9d3583fd0e155441c036311"}}}
|
|
1
|
+
{"formatVersion":1,"operations":[{"id":"backlog/get","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"get","words":["get"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"oneOf":[{"type":"object","properties":{"uid":{"type":"string"},"fields":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","oneOf":[{"$ref":"#/definitions/IIssuePlainField"},{"$ref":"#/definitions/IIssuePseudoField"}],"x-apigen-logical":"union"}}},"required":["uid"],"additionalProperties":false},{"type":"object","properties":{"registry":{"type":"string","enum":["project","component","location"]},"name":{"type":"string"},"filter":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string"},"component":{"type":"string"}},"additionalProperties":false}},"required":["registry","name"],"additionalProperties":false}],"x-apigen-logical":"union"}},"required":["input"],"definitions":{"IIssuePlainField":{"type":"string","enum":["uid","title","kind","status","priority","project","component","createdAt","updatedAt","assignee","author","closedAt","gitContext"],"description":"The closed field vocabulary a `get`/`query` caller may request (SPEC.md §6.5). `assertKnownFields` (this module's {@link assertKnownIssueFields } ) rejects any name outside this union with a `BacklogValidationError` naming it — never a silent drop.\n\n`plain` fields are cheap: each is either a column on the `issue` node itself or a scalar living in `issue.meta.metadata` (`assignee`, `closedAt`, `gitContext` — SPEC.md §6.5's own reclassification of `closedAt` as `plain`, since it is read in the SAME single-row fetch as `assignee`, not a second query; `gitContext` is the item-level disclosure-contract git context, a sibling of `assignee` in the same metadata blob).\n\n`pseudo` fields are opt-in only: each costs a genuine extra read (an edge traversal to another node kind, or only exists on a `searchRanked` response) and is therefore NEVER included in the default card."},"IIssuePseudoField":{"type":"string","enum":["body","citations","notes","auditTrail","blockers","related","_score","_vector"]}}},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").IIssueGetInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").IIssueGetResult>"},"hasCtx":true},{"id":"backlog/query","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"query","words":["query"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"text":{"type":"string"},"filter":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"uid or name (SPEC.md §6.1)."},"component":{"type":"string","description":"uid or name, scoped within `project`."},"kind":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"status":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"string","const":"open"},{"type":"string","const":"closed"},{"type":"string","const":"all"}]},"priority":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"assignee":{"type":"string"},"claimedBy":{"type":"string"},"author":{"type":"string","description":"Resolves via `authored_by` edge traversal — uid or name."},"grep":{"type":"string","description":"FTS keyword, title+body — keyword-only, never hybrid."},"semantic":{"type":"string","description":"Routes to `searchRanked` (§5a) — composes with `grep`, neither swallows the other."},"anchor":{"type":"string","description":"Item-anchored similarity/traversal seed (§6.1) — uid of the reference item."},"plan":{"type":"string","description":"uid or name of the parent `issue` this one is filed under via the `part_of` edge (SPEC.md §1052/§1471: a plan is itself an `issue` row, not a dedicated node kind — attaching an item to it is `relate(childUid, planUid, 'part_of', 'add')`). Resolves candidate issues by the incoming `part_of` edge into the resolved plan node, exactly like the `project`/`component` edge-scoped filters."},"projectPath":{"type":"string","description":"`component.meta.path` (repo-relative package path, SPEC.md §3) — exact match against every live `component` row, unioned across matches. Distinct from `component`, which takes a uid/name rather than a filesystem path."},"closedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"createdAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"updatedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"SPEC.md §6.5's `IIssueFilter`."},"fields":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","oneOf":[{"$ref":"#/definitions/IIssuePlainField"},{"$ref":"#/definitions/IIssuePseudoField"}],"x-apigen-logical":"union"}},"sort":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["priority","updated","created","relevance","textMatch"]},"direction":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["asc","desc"]},"limit":{"type":"number"},"offset":{"type":"number"},"after":{"type":"string"},"view":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["list","ready","graph","order","stale","similar","overlap","projects","components","locations"],"description":"`projects`/`components`/`locations` (SPEC.md §3a/§8 AC-9) are the registry LIST views — every live `project`/`component`/`location` row, optionally narrowed by `filter.project` (and, for `locations`, `filter.component`) — routed to `views/registry.ts`'s `listProjects`/`listComponents`/ `listLocations`, distinct from the issue-search views above (§6.1: \"conflating the two would be wrong\")."},"format":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["json","markdown"]},"overlapAxis":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["file","project","component","author"],"description":"SPEC.md §5, §6.1's `axis` — the grouping dimension for `overlapUids` (§6.2)."},"overlapUids":{"type":"array","items":{"type":"string"}},"staleAfterMin":{"type":"number"}},"additionalProperties":false}},"required":["input"],"definitions":{"IIssuePlainField":{"type":"string","enum":["uid","title","kind","status","priority","project","component","createdAt","updatedAt","assignee","author","closedAt","gitContext"],"description":"The closed field vocabulary a `get`/`query` caller may request (SPEC.md §6.5). `assertKnownFields` (this module's {@link assertKnownIssueFields } ) rejects any name outside this union with a `BacklogValidationError` naming it — never a silent drop.\n\n`plain` fields are cheap: each is either a column on the `issue` node itself or a scalar living in `issue.meta.metadata` (`assignee`, `closedAt`, `gitContext` — SPEC.md §6.5's own reclassification of `closedAt` as `plain`, since it is read in the SAME single-row fetch as `assignee`, not a second query; `gitContext` is the item-level disclosure-contract git context, a sibling of `assignee` in the same metadata blob).\n\n`pseudo` fields are opt-in only: each costs a genuine extra read (an edge traversal to another node kind, or only exists on a `searchRanked` response) and is therefore NEVER included in the default card."},"IIssuePseudoField":{"type":"string","enum":["body","citations","notes","auditTrail","blockers","related","_score","_vector"]}}},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"oneOf":[{"type":"object","properties":{"view":{"type":"string","enum":["list"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context (repo `AGENTS.md`'s \"Cite what you read\": the FIRST element of a `Citations:` block is `<active git context>`). A plain field — a sibling of `assignee` in `issue.meta.metadata`, read in the same single-row fetch. Rendered once at the head of the `Citations:` block by `markdown.ts`; never per-citation. Absent on every issue filed before the field existed, and on any issue whose `create`/`transition` supplied no `gitContext`."},"body":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/definitions/IIssueCitation"}},"notes":{"type":"array","items":{"$ref":"#/definitions/IIssueNote"}},"auditTrail":{"type":"array","items":{"$ref":"#/definitions/IIssueAuditEntry"}},"blockers":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"related":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"_score":{"type":"number"},"_vector":{"type":"array","items":{"type":"number"}}},"required":["uid"],"additionalProperties":false,"description":"The projected issue card (SPEC.md §6.5's `IIssueCard`). Every field is OPTIONAL here because the shape is fields-projected: a caller that asked for `['uid','title']` gets a card with only those two keys populated. `uid` is always present regardless of the requested `fields` — an issue card with no addressable identity is never a useful response."}},"nextCursor":{"type":"string"},"hasMore":{"type":"boolean"}},"required":["view","items","hasMore"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["ready"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context (repo `AGENTS.md`'s \"Cite what you read\": the FIRST element of a `Citations:` block is `<active git context>`). A plain field — a sibling of `assignee` in `issue.meta.metadata`, read in the same single-row fetch. Rendered once at the head of the `Citations:` block by `markdown.ts`; never per-citation. Absent on every issue filed before the field existed, and on any issue whose `create`/`transition` supplied no `gitContext`."},"body":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/definitions/IIssueCitation"}},"notes":{"type":"array","items":{"$ref":"#/definitions/IIssueNote"}},"auditTrail":{"type":"array","items":{"$ref":"#/definitions/IIssueAuditEntry"}},"blockers":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"related":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"_score":{"type":"number"},"_vector":{"type":"array","items":{"type":"number"}}},"required":["uid"],"additionalProperties":false,"description":"The projected issue card (SPEC.md §6.5's `IIssueCard`). Every field is OPTIONAL here because the shape is fields-projected: a caller that asked for `['uid','title']` gets a card with only those two keys populated. `uid` is always present regardless of the requested `fields` — an issue card with no addressable identity is never a useful response."}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["graph"]},"graph":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"}},"required":["uid","title","status"],"additionalProperties":false}},"edges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"rel":{"type":"string","enum":["blocks","relates_to","part_of"]}},"required":["from","to","rel"],"additionalProperties":false}}},"required":["nodes","edges"],"additionalProperties":false,"description":"SPEC.md §5's `DependencyGraph`, using this system's edge vocabulary (§6.2: `blocks`, not `DEPENDS_ON`)."}},"required":["view","graph"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["order"]},"order":{"$schema":"http://json-schema.org/draft-07/schema#","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"order":{"type":"array","items":{"type":"string"}}},"required":["ok","order"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"cycle":{"type":"array","items":{"type":"string"}}},"required":["ok","cycle"],"additionalProperties":false}],"x-apigen-logical":"union"}},"required":["view","order"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["stale"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context (repo `AGENTS.md`'s \"Cite what you read\": the FIRST element of a `Citations:` block is `<active git context>`). A plain field — a sibling of `assignee` in `issue.meta.metadata`, read in the same single-row fetch. Rendered once at the head of the `Citations:` block by `markdown.ts`; never per-citation. Absent on every issue filed before the field existed, and on any issue whose `create`/`transition` supplied no `gitContext`."},"body":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/definitions/IIssueCitation"}},"notes":{"type":"array","items":{"$ref":"#/definitions/IIssueNote"}},"auditTrail":{"type":"array","items":{"$ref":"#/definitions/IIssueAuditEntry"}},"blockers":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"related":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"_score":{"type":"number"},"_vector":{"type":"array","items":{"type":"number"}}},"required":["uid"],"additionalProperties":false,"description":"The projected issue card (SPEC.md §6.5's `IIssueCard`). Every field is OPTIONAL here because the shape is fields-projected: a caller that asked for `['uid','title']` gets a card with only those two keys populated. `uid` is always present regardless of the requested `fields` — an issue card with no addressable identity is never a useful response."}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["similar"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context (repo `AGENTS.md`'s \"Cite what you read\": the FIRST element of a `Citations:` block is `<active git context>`). A plain field — a sibling of `assignee` in `issue.meta.metadata`, read in the same single-row fetch. Rendered once at the head of the `Citations:` block by `markdown.ts`; never per-citation. Absent on every issue filed before the field existed, and on any issue whose `create`/`transition` supplied no `gitContext`."},"body":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/definitions/IIssueCitation"}},"notes":{"type":"array","items":{"$ref":"#/definitions/IIssueNote"}},"auditTrail":{"type":"array","items":{"$ref":"#/definitions/IIssueAuditEntry"}},"blockers":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"related":{"type":"array","items":{"$ref":"#/definitions/IIssueRef"}},"_score":{"type":"number"},"_vector":{"type":"array","items":{"type":"number"}}},"required":["uid"],"additionalProperties":false,"description":"The projected issue card (SPEC.md §6.5's `IIssueCard`). Every field is OPTIONAL here because the shape is fields-projected: a caller that asked for `['uid','title']` gets a card with only those two keys populated. `uid` is always present regardless of the requested `fields` — an issue card with no addressable identity is never a useful response."}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["overlap"]},"groups":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"axisValue":{"type":"string"},"uids":{"type":"array","items":{"type":"string"}}},"required":["axisValue","uids"],"additionalProperties":false,"description":"`view:'overlap'`'s output shape (§6.2) — one entry per distinct axis value shared by ≥1 of the input `uids`."}}},"required":["view","groups"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["projects"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"repoUrl":{"type":"string"},"monorepo":{"type":"boolean"},"description":{"type":"string"}},"required":["uid","name"],"additionalProperties":false}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["components"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"projectUid":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"}},"required":["uid","name","projectUid"],"additionalProperties":false}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["locations"]},"items":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"locType":{"$ref":"#/definitions/ILocationType"},"value":{"type":"string"},"componentUid":{"type":"string"}},"required":["uid","locType","value","componentUid"],"additionalProperties":false}}},"required":["view","items"],"additionalProperties":false},{"type":"object","properties":{"view":{"type":"string","enum":["list","ready","stale","similar"]},"format":{"type":"string","enum":["markdown"]},"markdown":{"type":"string"}},"required":["view","format","markdown"],"additionalProperties":false}],"x-apigen-logical":"union"},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."},"IIssueCitation":{"type":"object","properties":{"uid":{"type":"string"},"file":{"type":"string"},"lines":{"type":"string"},"context":{"type":"string","description":"Free-text prose for this citation (the write layer's `ICitationInput.context`). NOT the item's disclosure-contract git context — that is ITEM-level provenance and lives on {@link IIssueCard.gitContext } , a sibling of `assignee`, rendered once at the head of the `Citations:` block. This per-citation `context` is never rendered by `markdown.ts` and cannot carry the git context."},"symbol":{"type":"string"},"sha":{"type":"string"},"at":{"type":"string"}},"required":["uid","file","sha","at"],"additionalProperties":false,"description":"A citation, projected for read (mirrors the write layer's `ICitationInput` shape plus the server-computed `sha`)."},"IIssueNote":{"type":"object","properties":{"uid":{"type":"string"},"author":{"type":"string"},"text":{"type":"string"},"at":{"type":"string"}},"required":["uid","author","text","at"],"additionalProperties":false},"IIssueAuditEntry":{"type":"object","properties":{"uid":{"type":"string"},"actor":{"type":"string"},"action":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"note":{"type":"string"},"sha":{"type":"string"},"at":{"type":"string"}},"required":["uid","actor","action","sha","at"],"additionalProperties":false},"IIssueRef":{"type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"}},"required":["uid","title","status"],"additionalProperties":false,"description":"A minimal cross-reference to another issue — used by the `blockers`/`related` pseudo-fields."},"ILocationType":{"type":"string","enum":["path","url","tool"]}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").IIssueQueryInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").IIssueQueryResult>"},"hasCtx":true},{"id":"backlog/priority-matrix","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"priorityMatrix","words":["priority","matrix"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"filter":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"uid or name (SPEC.md §6.1)."},"component":{"type":"string","description":"uid or name, scoped within `project`."},"kind":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"status":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"string","const":"open"},{"type":"string","const":"closed"},{"type":"string","const":"all"}]},"priority":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"assignee":{"type":"string"},"claimedBy":{"type":"string"},"author":{"type":"string","description":"Resolves via `authored_by` edge traversal — uid or name."},"grep":{"type":"string","description":"FTS keyword, title+body — keyword-only, never hybrid."},"semantic":{"type":"string","description":"Routes to `searchRanked` (§5a) — composes with `grep`, neither swallows the other."},"anchor":{"type":"string","description":"Item-anchored similarity/traversal seed (§6.1) — uid of the reference item."},"plan":{"type":"string","description":"uid or name of the parent `issue` this one is filed under via the `part_of` edge (SPEC.md §1052/§1471: a plan is itself an `issue` row, not a dedicated node kind — attaching an item to it is `relate(childUid, planUid, 'part_of', 'add')`). Resolves candidate issues by the incoming `part_of` edge into the resolved plan node, exactly like the `project`/`component` edge-scoped filters."},"projectPath":{"type":"string","description":"`component.meta.path` (repo-relative package path, SPEC.md §3) — exact match against every live `component` row, unioned across matches. Distinct from `component`, which takes a uid/name rather than a filesystem path."},"closedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"createdAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"updatedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"SPEC.md §6.5's `IIssueFilter`."}},"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"rows":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"priority":{"type":"string"},"priorityUid":{"type":"string"},"rank":{"type":"number","description":"`priority.meta.metadata.rank` (`nextPriorityRankTx`, §2) — lower is more urgent. Absent only for a malformed pre-existing row with no numeric rank; the count itself is still real."},"count":{"type":"number"}},"required":["priority","priorityUid","count"],"additionalProperties":false}},"unassigned":{"type":"number"},"statusScope":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"x-apigen-logical":"union"}},"required":["rows","unassigned","statusScope"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IPriorityMatrixInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IPriorityMatrixResult>"},"hasCtx":true},{"id":"backlog/part-of-rollup","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"partOfRollup","words":["part","of","rollup"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"}},"required":["uid"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"childrenTotal":{"type":"number"},"childrenOpen":{"type":"number"},"childrenClosed":{"type":"number"},"childrenOpenUids":{"type":"array","items":{"type":"string"}}},"required":["uid","childrenTotal","childrenOpen","childrenClosed","childrenOpenUids"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IPartOfRollupInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IPartOfRollupResult>"},"hasCtx":true},{"id":"backlog/open-curve","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"openCurve","words":["open","curve"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"filter":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"project":{"type":"string","description":"uid or name (SPEC.md §6.1)."},"component":{"type":"string","description":"uid or name, scoped within `project`."},"kind":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"status":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"string","const":"open"},{"type":"string","const":"closed"},{"type":"string","const":"all"}]},"priority":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"assignee":{"type":"string"},"claimedBy":{"type":"string"},"author":{"type":"string","description":"Resolves via `authored_by` edge traversal — uid or name."},"grep":{"type":"string","description":"FTS keyword, title+body — keyword-only, never hybrid."},"semantic":{"type":"string","description":"Routes to `searchRanked` (§5a) — composes with `grep`, neither swallows the other."},"anchor":{"type":"string","description":"Item-anchored similarity/traversal seed (§6.1) — uid of the reference item."},"plan":{"type":"string","description":"uid or name of the parent `issue` this one is filed under via the `part_of` edge (SPEC.md §1052/§1471: a plan is itself an `issue` row, not a dedicated node kind — attaching an item to it is `relate(childUid, planUid, 'part_of', 'add')`). Resolves candidate issues by the incoming `part_of` edge into the resolved plan node, exactly like the `project`/`component` edge-scoped filters."},"projectPath":{"type":"string","description":"`component.meta.path` (repo-relative package path, SPEC.md §3) — exact match against every live `component` row, unioned across matches. Distinct from `component`, which takes a uid/name rather than a filesystem path."},"closedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"createdAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false},"updatedAt":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"SPEC.md §6.5's `IIssueFilter`."},"at":{"type":"array","items":{"type":"string"}}},"required":["at"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"points":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"at":{"type":"string"},"existed":{"type":"number","description":"In-scope issues that EXISTED at this instant (`NodeFilter.validAt`: `t_created <= at` and `t_invalid` is null or after `at`) — exact, never reconstructed."},"open":{"type":"number","description":"Of `existed`, the count whose RECONSTRUCTED status was non-terminal at this instant (never the issue's CURRENT status) — see {@link reconstructStatusAt } ."},"closed":{"type":"number","description":"`existed - open`."}},"required":["at","existed","open","closed"],"additionalProperties":false}}},"required":["points"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IOpenCurveInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/views/stats\").IOpenCurveResult>"},"hasCtx":true},{"id":"backlog/embedding-status","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"embeddingStatus","words":["embedding","status"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{},"required":[]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"configuredEnabled":{"type":"boolean"},"effectiveEnabled":{"type":"boolean"},"provider":{"type":"string"},"model":{"type":"string"},"membersPresent":{"type":"object","properties":{"embedding":{"type":"boolean"},"search":{"type":"boolean"}},"required":["embedding","search"],"additionalProperties":false},"divergent":{"type":"boolean"},"startupHash":{"type":"string"},"currentHash":{"type":"string"}},"required":["configuredEnabled","effectiveEnabled","provider","model","membersPresent","divergent","startupHash","currentHash"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"()","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/api\").IEmbeddingStatusResult>"},"hasCtx":true},{"id":"backlog/lookup","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"lookup","words":["lookup"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"q":{"type":"string"}},"required":["q"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"project":{"type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"repoUrl":{"type":"string"}},"required":["uid","name"],"additionalProperties":false},"component":{"type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"}},"required":["uid","name"],"additionalProperties":false},"location":{"type":"object","properties":{"uid":{"type":"string"},"locType":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["path","url","tool"]},"value":{"type":"string"}},"required":["uid","locType","value"],"additionalProperties":false},"hint":{"type":"string"}},"required":["project"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: { q: string; })","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/query/types\").ILookupResult>"},"hasCtx":true},{"id":"backlog/create","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"create","words":["create"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"citations":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"file":{"type":"string"},"lines":{"type":"string"},"context":{"type":"string"},"symbol":{"type":"string"},"blastRadius":{"description":"Best-effort enrichment payload — not re-specified here; carried through verbatim into the citation node's metadata."}},"required":["file"],"additionalProperties":false,"description":"A filing-time citation (§6.3.2, carried forward from the established `Citation` shape in spirit — `blastRadius` stays best-effort, `model.ts:110-120`). Named `ICitationInput` here (not the spec's bare `Citation`) per this repo's \"prefix shared/data interfaces with `I`\" convention."}},"author":{"type":"string"},"assignee":{"type":"string"},"gitContext":{"type":"string"},"by":{"type":"string"},"duplicateAction":{"type":"string","enum":["abort","force","comment"]},"awaitEmbed":{"type":"boolean"}},"required":["title","body","project","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"created":{"type":"boolean"},"uid":{"type":"string"},"item":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"priority":{"type":"string"},"project":{"type":"string"},"component":{"type":"string"},"createdAt":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"closedAt":{"type":"string"},"gitContext":{"type":"string","description":"The item-level disclosure-contract git context, echoed back from {@link ICreateIssueInput.gitContext } — present iff one was supplied."}},"required":["uid","title","kind","status","project","component","createdAt"],"additionalProperties":false,"description":"The \"plain\" card fields (§6.5) this verb already has in hand after a create — never field-projected, unlike a `query` response.\n\nBUG-APIGEN-CORE-CLIENT-BARE-NAME-COLLISION-001: named `ICreateIssueCard`, not `IIssueCard`, deliberately. `query/types.ts` also exports an `IIssueCard` (the fields-projected card `query`/`get` return, every field but `uid` optional) — both interfaces were reachable from `api.d.ts`'s type graph, and apigen's extraction (`ts-json-schema-generator`, invoked per-operation but apparently resolving/caching declarations by bare name across the whole extracted program) non-deterministically resolved the `IIssueCard` bare name to EITHER declaration depending on extraction order — confirmed empirically: `dist/index.js` (CJS) resolved `query`'s own `items: IIssueCard[]` to THIS file's stricter shape (wrongly requiring `project`/`component`/`createdAt`), while `dist/index.mjs` (ESM) failed to resolve it at all (`items: {}`, unconstrained) — from the exact same source, built in the same pass. This is what broke `backlog_query`'s MCP `oneOf` output-schema validation the moment `get()`'s return type union (AC-11) made the extractor visit both `IIssueCard` declarations. The correct, permanent fix is what's below: give the two interfaces distinct bare names so extraction can never conflate them, not a workaround in the `get()`/`query()` call sites. Filed as BUG-APIGEN-CORE-CLIENT-BARE-NAME-COLLISION-001 (apigen-core-client, out of this package's ownership) — this rename is the local mitigation; the extractor itself should also stop keying declarations by bare name.\n\nThis rename fixes the CJS path (`dist/index.js`, the only bundle any real transport here — CLI, MCP-stdio, HTTP serve — ever spawns/requires; confirmed empirically, `dist/index.mjs` is loaded by none of them). It does NOT fix a second, DISTINCT defect also present in `dist/index.mjs`: every `$ref` to a NAMED exported interface (`ICreateIssueCard` here, `IDuplicateCandidate`, `IIssueCard`, …) dereferences to `{}` (empty/ unconstrained) in the ESM build specifically, while inline/anonymous object types on the SAME operation (e.g. `ICreateIssueResult.commentedOn`) resolve correctly in both builds — ruling out a general extraction failure and pointing at `dereferenceSchema`'s named-`$ref` resolution specifically misbehaving under ESM. Reproduced on `create`'s `item`/ `duplicateCandidates` fields, which this file's own diff never touched, so it predates and is independent of the collision above. Filed separately as BUG-APIGEN-CORE-CLIENT-ESM-DEREF-EMPTY-001 — not fixed here (out of this package's ownership, and no real consumer loads `dist/index.mjs` today), but must not be silently dropped."},"duplicateCandidates":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"title":{"type":"string"},"score":{"type":"number","description":"Cosine similarity in `[0,1]`, straight off the vector channel — directly comparable to `project_policy.dedupe_threshold`."}},"required":["uid","title","score"],"additionalProperties":false,"description":"A dedupe candidate surfaced at filing time (§6.4), carrying the cosine similarity that produced it — see {@link scanForDuplicates } 's own doc comment for where that number comes from and why it is the only score this gate will accept."}},"reason":{"type":"string","enum":["duplicate-suppressed"]},"supersededUid":{"type":"string"},"commentedOn":{"type":"object","properties":{"uid":{"type":"string"},"noteId":{"type":"string"}},"required":["uid","noteId"],"additionalProperties":false}},"required":["created"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/create-issue\").ICreateIssueInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/create-issue\").ICreateIssueResult>"},"hasCtx":true},{"id":"backlog/update","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"update","words":["update"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"by":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"kind":{"type":"string"},"priority":{"type":"string"},"assignee":{"type":"string"},"author":{"type":"string"},"awaitEmbed":{"type":"boolean"}},"required":["uid","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"changed":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["title","body","kind","priority","assignee","author"]}}},"required":["uid","changed"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/update\").IUpdateIssueInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/update\").IUpdateIssueOutcome>"},"hasCtx":true},{"id":"backlog/transition","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"transition","words":["transition"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"by":{"type":"string"},"toStatus":{"type":"string"},"note":{"type":"string"},"citations":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"file":{"type":"string"},"lines":{"type":"string"},"context":{"type":"string"},"symbol":{"type":"string"},"blastRadius":{"description":"Best-effort enrichment payload — not re-specified here; carried through verbatim into the citation node's metadata."}},"required":["file"],"additionalProperties":false,"description":"A filing-time citation (§6.3.2, carried forward from the established `Citation` shape in spirit — `blastRadius` stays best-effort, `model.ts:110-120`). Named `ICitationInput` here (not the spec's bare `Citation`) per this repo's \"prefix shared/data interfaces with `I`\" convention."}},"gitContext":{"type":"string"}},"required":["uid","by","toStatus"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"fromStatus":{"type":"string"},"toStatus":{"type":"string"},"closedAt":{"type":"string"},"transitionUid":{"type":"string"}},"required":["uid","fromStatus","toStatus","transitionUid"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/transition\").ITransitionInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/transition\").ITransitionOutcome>"},"hasCtx":true},{"id":"backlog/claim","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"claim","words":["claim"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"by":{"type":"string"},"action":{"type":"string","enum":["claim","release","renew"]},"force":{"type":"boolean"}},"required":["uid","by","action"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"status":{"type":"string","enum":["claimed","held","reclaimed-stale","renewed","released","release-noop"]},"claimedBy":{"type":"string"},"claimedAt":{"type":"string"},"heldBy":{"type":"string"},"heldSince":{"type":"string"},"previousClaimant":{"type":"string"},"wasClaimedBy":{"type":"string"}},"required":["uid","status"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/claim\").IClaimInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/claim\").IClaimOutcome>"},"hasCtx":true},{"id":"backlog/relate","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"relate","words":["relate"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"sourceUid":{"type":"string"},"targetUid":{"type":"string"},"rel":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["relates_to","supersedes","blocks","duplicate_of","part_of"],"description":"The closed `rel` union `relate` accepts (§3/§6.3.6) — issue → issue in every case."},"action":{"type":"string","enum":["add","remove"]},"by":{"type":"string"}},"required":["sourceUid","targetUid","rel","action","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"sourceUid":{"type":"string"},"targetUid":{"type":"string"},"rel":{"type":"string"},"action":{"type":"string","enum":["add","remove"]},"noop":{"type":"boolean"}},"required":["sourceUid","targetUid","rel","action","noop"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/relate\").IRelateInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/relate\").IRelateOutcome>"},"hasCtx":true},{"id":"backlog/move","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"move","words":["move"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"toProject":{"type":"string"},"toComponent":{"type":"string"},"by":{"type":"string"}},"required":["uid","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"noop":{"type":"boolean"},"fromProject":{"type":"string"},"toProject":{"type":"string"},"fromComponent":{"type":"string"},"toComponent":{"type":"string"}},"required":["uid","noop","fromProject","toProject","fromComponent","toComponent"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/move\").IMoveIssueInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/move\").IMoveIssueOutcome>"},"hasCtx":true},{"id":"backlog/upsert-project","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"upsertProject","words":["upsert","project"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string"},"repoUrl":{"type":"string"},"monorepo":{"type":"boolean"},"description":{"type":"string"},"by":{"type":"string"}},"required":["name","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"created":{"type":"boolean"},"project":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"repoUrl":{"type":"string"},"monorepo":{"type":"boolean"},"description":{"type":"string"}},"required":["uid","name"],"additionalProperties":false}},"required":["uid","created","project"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertProjectInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertProjectOutcome>"},"hasCtx":true},{"id":"backlog/upsert-component","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"upsertComponent","words":["upsert","component"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"project":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"},"by":{"type":"string"}},"required":["project","name","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"created":{"type":"boolean"},"component":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string"},"projectUid":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"}},"required":["uid","name","projectUid"],"additionalProperties":false}},"required":["uid","created","component"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertComponentInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertComponentOutcome>"},"hasCtx":true},{"id":"backlog/upsert-location","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"upsertLocation","words":["upsert","location"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"component":{"type":"string"},"project":{"type":"string"},"locType":{"$schema":"http://json-schema.org/draft-07/schema#","type":"string","enum":["path","url","tool"]},"value":{"type":"string"},"by":{"type":"string"}},"required":["component","locType","value","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"created":{"type":"boolean"},"location":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"uid":{"type":"string"},"locType":{"$ref":"#/definitions/ILocationType"},"value":{"type":"string"},"componentUid":{"type":"string"}},"required":["uid","locType","value","componentUid"],"additionalProperties":false}},"required":["uid","created","location"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."},"ILocationType":{"type":"string","enum":["path","url","tool"]}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertLocationInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IUpsertLocationOutcome>"},"hasCtx":true},{"id":"backlog/rm-location","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"rmLocation","words":["rm","location"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"by":{"type":"string"},"reason":{"type":"string"}},"required":["uid","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"invalidated":{"type":"boolean","const":true}},"required":["uid","invalidated"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IRmLocationInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/catalog\").IRmLocationOutcome>"},"hasCtx":true},{"id":"backlog/delete","host":"ts","namespace":{"raw":"backlog","words":["backlog"]},"path":[{"raw":"delete","words":["delete"]}],"kind":"action","async":false,"streaming":false,"safe":false,"input":{"type":"object","properties":{"input":{"type":"object","properties":{"uid":{"type":"string"},"reason":{"type":"string"},"by":{"type":"string"},"awaitEmbed":{"type":"boolean"}},"required":["uid","reason","by"],"additionalProperties":false}},"required":["input"]},"output":{"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"code":{"$ref":"#/definitions/BacklogErrorCode"},"message":{"type":"string"},"details":{"$ref":"#/definitions/IOutcomeErrorDetails"}},"required":["code","message"],"additionalProperties":false,"description":"The error arm's payload."},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","error"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"uid":{"type":"string"},"invalidated":{"type":"boolean","const":true}},"required":["uid","invalidated"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}},"meta":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"total":{"type":"number","description":"Matching rows before limit/offset — the TRUE count."},"returned":{"type":"number","description":"Rows actually in `data`."},"limit":{"type":"number"},"offset":{"type":"number"},"truncated":{"type":"boolean","description":"Set when the result set was cut short by anything other than the caller's own `limit`. A silent cap is forbidden — if it happens, it is stated here."}},"required":["total","returned"],"additionalProperties":false,"description":"Pagination truth carried beside the data. `total` is the count BEFORE `limit`/`offset`; `returned` is `data.length`. A silently-truncated list is indistinguishable from a complete one unless the envelope says how many there really were."}},"required":["ok","data"],"additionalProperties":false}],"x-apigen-logical":"union","definitions":{"BacklogErrorCode":{"type":"string","enum":["not_found","item_not_found","ambiguous_reference","invalid_argument","validation","store_busy","rag_not_configured","conflict","precondition_failed","internal"],"description":"The closed union of envelope error codes. See {@link BACKLOG_ERROR_CODES } ."},"IOutcomeErrorDetails":{"type":"object","properties":{"retryable":{"type":"boolean","description":"True only for transient codes (today: `store_busy`)."},"retryAfterMs":{"type":"number","description":"Suggested backoff in milliseconds; only meaningful when `retryable`."},"internalRef":{"type":"string","description":"Internal doc/plan reference for an `invalid_argument` whose underlying reason cites internal terminology (a plan id, a spec section) that does not belong in the user-facing `message`."}},"additionalProperties":{},"description":"`error.details`. `retryable`/`retryAfterMs` exist so an agent knows whether to retry a `store_busy` and with what backoff instead of hot-looping. Open-ended beyond those: individual codes attach their own evidence."}}},"envelope":{},"typeText":{"lang":"ts","input":"(input: import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/delete\").IDeleteIssueInput)","output":"import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/envelope\").IOutcomeEnvelope<import(\"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/write/delete\").IDeleteIssueOutcome>"},"hasCtx":true}],"extractorVersion":"0.3.3","createdAt":"2026-09-27T03:15:51.151Z","artifactSource":{"path":"/Users/nix/dev/node/adhd/entrypoint/backlog/dist/api.d.ts","sha256":"ebfcef5f1d5890f7b6442890b59613fa8583e9d8d2353b12ad98e0b1110bda52","bytes":10898,"deps":{"api.d.ts":"ebfcef5f1d5890f7b6442890b59613fa8583e9d8d2353b12ad98e0b1110bda52","cli-input-envelope.d.ts":"9254390c27f31ab6598e623731007de3d143e50e8cd9e4824cae944e389851b3","cli.d.ts":"51a94638d3c71e0769022a71ae271a286e5f34cb3b43e60926bf7c0a635317fa","env.d.ts":"b8dbe8fb14a7dda4745fdac154dacdf8bacec49657830c88bf9344fed84a69d2","envelope.d.ts":"baee1dbc75eb16a44773f85c215b71d368208894c7c6323857524c2541a8601e","extract-live.d.ts":"11a6c52c95a703deeae932b5813922bd7773a544904ce0e4c06c6466d3049934","index.d.ts":"a57f1ad199cdce9e4595c14042ee12a196d69a9edbca42fb6b4262a461ce6651","install-skill.d.ts":"ac52fbea0674a76508a1b38ce2791191e1d6fa8ced8099dd5da81a18b68d1aa2","install.d.ts":"cc9944d6ec2d12af9963deecf2a2f288e433d1f59cfdba8a9ca9b3b4613b4f31","ir-artifact.d.ts":"10a615c14f483f24f01b6b3c53d38320d6c4aa10ebdb1bc4b5c2da4f84b59e8e","query/card.d.ts":"a4902fc8e3ea4ee8f80e74523c35d8c72b6df4949f4b724b2e3b52431ae93343","query/get.d.ts":"ed9344df7f91cad622c6e531883ce72fd6512b8ad7bc2a81ec65947d02c5de3a","query/index.d.ts":"2426d6dc6e3e7e3f2a5ae440250b6233e56edd5aac400bd9dea5ee878501e290","query/markdown.d.ts":"0aefdc5c216491ec2d98986c834fd66da5969c36da55e1c5c92030f2f79a8e87","query/query.d.ts":"5fdc656863f61c0c3a854a5888e8be57a01a3c9e4c7937cfcd947c895c7472d2","query/resolve.d.ts":"775a6c4f3414e01879ffacb4bcd032ef1d2e09dcd7139f08312433215b8631c3","query/types.d.ts":"83a6e4c0bc43f497ffe30b86d95799c823f09f4a93adff3acda2ec2cd4ddf231","query/views/registry.d.ts":"5baee362c591688fe5ea38f8fd3586f80cccb09a2bf6166d3e9e155307bdd08a","query/views/semantic.d.ts":"6ab4a6fe8967e4a79a3d720e006355278e7aaf74ddba1eb2ada829ba90c7d8ed","query/views/stats.d.ts":"5e98526a9d5978e2fbfac2a90c485f5d1b13cec6ca788fdb16e4412e3fc9ab8e","search-shortcut.d.ts":"a9575c3cc4496566859900935031a0e2607f134b557cd3a4462382255dbc0126","serve.d.ts":"768604b57bfd1c31a9a2900d10e77e7a619f4d201f1d6c9f4641e1504e9a0a1c","server.d.ts":"f84b29cd101b50ee0c97c86d3da49f742c9759d55ba0905486ee78b0438cded2","store/catalog-invariant-guard.d.ts":"2f77ebbd9c7b2aa66f165eeb9d84a2dee83dd279da695af2a84546b18a08f270","store/graph-backlog-store.d.ts":"1fe364b91a951677f756e0d44f00baab412be040aaed9938e89dc2c8996b9bee","store/immediate-retry.d.ts":"db564719cb7e75e13275a90872de72ff8f7fd4798c73351677ed32329eb52173","store/signal-cleanup.d.ts":"f2b7fa6071337f862891653d02df99db06feff18bf090e048b1f382a6b21e0d1","store/type-policy.d.ts":"8c46b0611170294765383b9f00791e4fd855185a62c69943219f2d40fa3e9415","store/vocabulary-guard.d.ts":"84c88bc4c825977f48f46efec5667b70cbd50195f0c8bafdbe4eb36154b041b0","version-info.d.ts":"9d2a66fb1dc9a9fa227cdb224c53ff5695ad21b23de66c4be1e02e67c9c08eb3","write/audit.d.ts":"b4871edceb1d2c4fbadf0b1801afdd84138e26a7351011b17e81b5dff0e3bf26","write/bootstrap.d.ts":"652fdfcb1d81e5b0569e64e1f588eb2fbe70411e16553a3043ac5e80e9d68276","write/catalog-merge.d.ts":"6bc0be5931541091473ff071d34cc9831a21b03c89daef723a7427dd10ad0133","write/catalog-repair.d.ts":"d91805b046d77e3b6c33146634b8ffccf86f0c1d3ae6727180647cce8c255282","write/catalog.d.ts":"37e91b1f78c54ff6d43feed0bf4411443a36ea932a07d80f4e876607e9b9541d","write/citation-path.d.ts":"78a01a711ec78cba6be9a1e1ef4709c3f8b12bacf8f8b84ea44531702579516f","write/claim-lease.d.ts":"a742912d7d74e5c0221792effdd15452a23e195a88c299e3f7cd60ed26fdc4ff","write/claim.d.ts":"0897712218653b4d71fd5031b65b73e13fe9a56c64f6c348ef1b2d8aed7de2c2","write/create-issue.d.ts":"ef4868d3abb174ae9789f8e2aee35aac089a437b7e30628482a824e936122960","write/delete.d.ts":"73577bd1340a8cb8d078d97d0a7417cf3c1031d3e95ed16d9d087801da6b80df","write/embed-drain.d.ts":"a6295da99822d289187e506281545ca09da490bcda56c497d5571ab674872209","write/embedding-config.d.ts":"b3245db358bf7bbd7db94f412be613b8bb4ac9b3d7b778f07ca019b062c785f1","write/embedding-observer.d.ts":"2ccac6173aba3830bf60652cbf916250d7765f5d704364205a5e08c3f0f4969f","write/errors.d.ts":"9cce78196a1b533bcaf73aac349ea17911d69d0467727d377d60162b2ec951ad","write/issue-status.d.ts":"0df49e4e88d69122d545037c36e97b67da9bec1e882877833bb33077dc10d753","write/move.d.ts":"3dbe164e938a9cb4459231b3c61b9fae89e9c21d8aa7de3fed719732da9fc62e","write/relate.d.ts":"7567c5e07a78b332999591fa77eede9a3d33b5db5d5b3fb5588588be57b4f1ca","write/transition.d.ts":"b7f24a3b773768e31755902b9325c86a8d3391b1985788d4520cf4aa418f4cf7","write/tx.d.ts":"40a166839509dd7693981012f07444fc3aab00a5635dbb9b24a27bbf4e4a5eb8","write/uid-prefix.d.ts":"19c46bffd134092cae77deee38dfdfb584cd431abf86e1825476bf95af6163cb","write/update.d.ts":"3901403b32b892d19df57f68f0824c4f8d70d6d0b9d3583fd0e155441c036311"}}}
|