@cleocode/core 2026.10.13 → 2026.10.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/nexus-vault.d.ts +6 -2
  3. package/dist/cloud/nexus-vault.d.ts.map +1 -1
  4. package/dist/cloud/nexus-vault.js +53 -3
  5. package/dist/cloud/nexus-vault.js.map +1 -1
  6. package/dist/cloud/secret-seal.js +2 -2
  7. package/dist/cloud/secret-seal.js.map +1 -1
  8. package/dist/config/registry.d.ts +0 -21
  9. package/dist/config/registry.d.ts.map +1 -1
  10. package/dist/config/registry.js +0 -41
  11. package/dist/config/registry.js.map +1 -1
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +1 -0
  14. package/dist/config.js.map +1 -1
  15. package/dist/crypto/credentials.d.ts +13 -0
  16. package/dist/crypto/credentials.d.ts.map +1 -1
  17. package/dist/crypto/credentials.js +35 -6
  18. package/dist/crypto/credentials.js.map +1 -1
  19. package/dist/docs/docs-ops.d.ts +11 -1
  20. package/dist/docs/docs-ops.d.ts.map +1 -1
  21. package/dist/docs/docs-ops.js +38 -3
  22. package/dist/docs/docs-ops.js.map +1 -1
  23. package/dist/docs/docs-update.d.ts.map +1 -1
  24. package/dist/docs/docs-update.js +5 -1
  25. package/dist/docs/docs-update.js.map +1 -1
  26. package/dist/docs/supersede.d.ts.map +1 -1
  27. package/dist/docs/supersede.js +5 -1
  28. package/dist/docs/supersede.js.map +1 -1
  29. package/dist/docs/wikilinks.d.ts +3 -1
  30. package/dist/docs/wikilinks.d.ts.map +1 -1
  31. package/dist/docs/wikilinks.js +23 -12
  32. package/dist/docs/wikilinks.js.map +1 -1
  33. package/dist/gateway-client/generated/index.d.ts +2 -2
  34. package/dist/gateway-client/generated/index.d.ts.map +1 -1
  35. package/dist/gateway-client/generated/index.js +1 -1
  36. package/dist/gateway-client/generated/index.js.map +1 -1
  37. package/dist/gateway-client/generated/namespaces.gen.d.ts +33 -0
  38. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -1
  39. package/dist/gateway-client/generated/namespaces.gen.js +34 -1
  40. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -1
  41. package/dist/gateway-client/generated/sdk.gen.d.ts +137 -5
  42. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -1
  43. package/dist/gateway-client/generated/sdk.gen.js +355 -6
  44. package/dist/gateway-client/generated/sdk.gen.js.map +1 -1
  45. package/dist/gateway-client/generated/types.gen.d.ts +1811 -187
  46. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  47. package/dist/lib/error-message.d.ts +30 -0
  48. package/dist/lib/error-message.d.ts.map +1 -0
  49. package/dist/lib/error-message.js +65 -0
  50. package/dist/lib/error-message.js.map +1 -0
  51. package/dist/lib/index.d.ts +1 -0
  52. package/dist/lib/index.d.ts.map +1 -1
  53. package/dist/lib/index.js +1 -0
  54. package/dist/lib/index.js.map +1 -1
  55. package/dist/llm/credentials-store.d.ts +29 -16
  56. package/dist/llm/credentials-store.d.ts.map +1 -1
  57. package/dist/llm/credentials-store.js +158 -139
  58. package/dist/llm/credentials-store.js.map +1 -1
  59. package/dist/memory/brain-embedding.d.ts +4 -2
  60. package/dist/memory/brain-embedding.d.ts.map +1 -1
  61. package/dist/memory/brain-embedding.js +8 -2
  62. package/dist/memory/brain-embedding.js.map +1 -1
  63. package/dist/memory/embedding-local.d.ts +28 -5
  64. package/dist/memory/embedding-local.d.ts.map +1 -1
  65. package/dist/memory/embedding-local.js +47 -9
  66. package/dist/memory/embedding-local.js.map +1 -1
  67. package/dist/memory/engine-compat.d.ts +4 -0
  68. package/dist/memory/engine-compat.d.ts.map +1 -1
  69. package/dist/memory/engine-compat.js +76 -0
  70. package/dist/memory/engine-compat.js.map +1 -1
  71. package/dist/memory/global-brain.d.ts +93 -0
  72. package/dist/memory/global-brain.d.ts.map +1 -0
  73. package/dist/memory/global-brain.js +183 -0
  74. package/dist/memory/global-brain.js.map +1 -0
  75. package/dist/memory/patterns.d.ts +2 -2
  76. package/dist/memory/quality-feedback.d.ts.map +1 -1
  77. package/dist/memory/quality-feedback.js +0 -26
  78. package/dist/memory/quality-feedback.js.map +1 -1
  79. package/dist/memory/retrieval/observe.js +4 -4
  80. package/dist/memory/retrieval/observe.js.map +1 -1
  81. package/dist/memory/transcript-extractor.js +5 -2
  82. package/dist/memory/transcript-extractor.js.map +1 -1
  83. package/dist/orchestration/lean-change.d.ts.map +1 -1
  84. package/dist/orchestration/lean-change.js +2 -3
  85. package/dist/orchestration/lean-change.js.map +1 -1
  86. package/dist/orchestration/lean-debt.d.ts +48 -0
  87. package/dist/orchestration/lean-debt.d.ts.map +1 -0
  88. package/dist/orchestration/lean-debt.js +167 -0
  89. package/dist/orchestration/lean-debt.js.map +1 -0
  90. package/dist/sessions/briefing.d.ts.map +1 -1
  91. package/dist/sessions/briefing.js +10 -0
  92. package/dist/sessions/briefing.js.map +1 -1
  93. package/dist/store/attachment-store.d.ts.map +1 -1
  94. package/dist/store/attachment-store.js +5 -1
  95. package/dist/store/attachment-store.js.map +1 -1
  96. package/dist/store/backup-sidecar.d.ts +5 -2
  97. package/dist/store/backup-sidecar.d.ts.map +1 -1
  98. package/dist/store/backup-sidecar.js +31 -18
  99. package/dist/store/backup-sidecar.js.map +1 -1
  100. package/dist/store/credential-transfer.d.ts +13 -14
  101. package/dist/store/credential-transfer.d.ts.map +1 -1
  102. package/dist/store/credential-transfer.js +75 -23
  103. package/dist/store/credential-transfer.js.map +1 -1
  104. package/dist/store/docs-bytes-backup.d.ts +133 -0
  105. package/dist/store/docs-bytes-backup.d.ts.map +1 -0
  106. package/dist/store/docs-bytes-backup.js +450 -0
  107. package/dist/store/docs-bytes-backup.js.map +1 -0
  108. package/dist/store/llm-accounts-accessor.d.ts +107 -0
  109. package/dist/store/llm-accounts-accessor.d.ts.map +1 -0
  110. package/dist/store/llm-accounts-accessor.js +224 -0
  111. package/dist/store/llm-accounts-accessor.js.map +1 -0
  112. package/dist/store/memory-accessor.d.ts +44 -0
  113. package/dist/store/memory-accessor.d.ts.map +1 -1
  114. package/dist/store/memory-accessor.js +60 -0
  115. package/dist/store/memory-accessor.js.map +1 -1
  116. package/dist/store/memory-sqlite.d.ts +18 -0
  117. package/dist/store/memory-sqlite.d.ts.map +1 -1
  118. package/dist/store/memory-sqlite.js +40 -23
  119. package/dist/store/memory-sqlite.js.map +1 -1
  120. package/dist/store/migration-manager.d.ts.map +1 -1
  121. package/dist/store/migration-manager.js +7 -1
  122. package/dist/store/migration-manager.js.map +1 -1
  123. package/dist/store/restore-store.d.ts +12 -1
  124. package/dist/store/restore-store.d.ts.map +1 -1
  125. package/dist/store/restore-store.js +150 -11
  126. package/dist/store/restore-store.js.map +1 -1
  127. package/dist/store/row-identity-registry.d.ts +4 -4
  128. package/dist/store/row-identity-registry.d.ts.map +1 -1
  129. package/dist/store/row-identity-registry.js +35 -8
  130. package/dist/store/row-identity-registry.js.map +1 -1
  131. package/dist/store/schema/cleo-global/accounts.d.ts +6 -5
  132. package/dist/store/schema/cleo-global/accounts.d.ts.map +1 -1
  133. package/dist/store/schema/cleo-global/accounts.js +7 -6
  134. package/dist/store/schema/cleo-global/accounts.js.map +1 -1
  135. package/dist/store/schema/cleo-project/docs.d.ts +32 -0
  136. package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
  137. package/dist/store/schema/cleo-project/docs.js +9 -0
  138. package/dist/store/schema/cleo-project/docs.js.map +1 -1
  139. package/dist/store/sync/apply/applier.d.ts +3 -1
  140. package/dist/store/sync/apply/applier.d.ts.map +1 -1
  141. package/dist/store/sync/apply/applier.js +80 -19
  142. package/dist/store/sync/apply/applier.js.map +1 -1
  143. package/dist/store/sync/apply/parent-delete.d.ts.map +1 -1
  144. package/dist/store/sync/apply/parent-delete.js +4 -0
  145. package/dist/store/sync/apply/parent-delete.js.map +1 -1
  146. package/dist/store/sync/apply/write-api.d.ts +5 -1
  147. package/dist/store/sync/apply/write-api.d.ts.map +1 -1
  148. package/dist/store/sync/apply/write-api.js +22 -0
  149. package/dist/store/sync/apply/write-api.js.map +1 -1
  150. package/dist/store/sync/capture.d.ts +27 -0
  151. package/dist/store/sync/capture.d.ts.map +1 -1
  152. package/dist/store/sync/capture.js +32 -1
  153. package/dist/store/sync/capture.js.map +1 -1
  154. package/dist/store/sync/genesis.d.ts.map +1 -1
  155. package/dist/store/sync/genesis.js +3 -1
  156. package/dist/store/sync/genesis.js.map +1 -1
  157. package/dist/store/sync/inbox.d.ts +18 -2
  158. package/dist/store/sync/inbox.d.ts.map +1 -1
  159. package/dist/store/sync/inbox.js +23 -2
  160. package/dist/store/sync/inbox.js.map +1 -1
  161. package/dist/store/sync/pull.d.ts +1 -1
  162. package/dist/store/sync/pull.d.ts.map +1 -1
  163. package/dist/store/sync/pull.js +4 -1
  164. package/dist/store/sync/pull.js.map +1 -1
  165. package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
  166. package/dist/store/sync/timestamp-canon.js +3 -0
  167. package/dist/store/sync/timestamp-canon.js.map +1 -1
  168. package/dist/store/table-classification.d.ts.map +1 -1
  169. package/dist/store/table-classification.js +29 -3
  170. package/dist/store/table-classification.js.map +1 -1
  171. package/dist/system/backup.d.ts +5 -2
  172. package/dist/system/backup.d.ts.map +1 -1
  173. package/dist/system/backup.js +39 -3
  174. package/dist/system/backup.js.map +1 -1
  175. package/dist/tasks/affected-scope.d.ts +44 -5
  176. package/dist/tasks/affected-scope.d.ts.map +1 -1
  177. package/dist/tasks/affected-scope.js +159 -20
  178. package/dist/tasks/affected-scope.js.map +1 -1
  179. package/dist/tasks/complete-ci.d.ts.map +1 -1
  180. package/dist/tasks/complete-ci.js +11 -9
  181. package/dist/tasks/complete-ci.js.map +1 -1
  182. package/dist/tasks/done-plan.d.ts.map +1 -1
  183. package/dist/tasks/done-plan.js +4 -6
  184. package/dist/tasks/done-plan.js.map +1 -1
  185. package/dist/tasks/gate-preview.d.ts.map +1 -1
  186. package/dist/tasks/gate-preview.js +13 -5
  187. package/dist/tasks/gate-preview.js.map +1 -1
  188. package/dist/tasks/gate-result-cache.d.ts +30 -1
  189. package/dist/tasks/gate-result-cache.d.ts.map +1 -1
  190. package/dist/tasks/gate-result-cache.js +81 -2
  191. package/dist/tasks/gate-result-cache.js.map +1 -1
  192. package/dist/tasks/gate-runner.d.ts +27 -2
  193. package/dist/tasks/gate-runner.d.ts.map +1 -1
  194. package/dist/tasks/gate-runner.js +67 -14
  195. package/dist/tasks/gate-runner.js.map +1 -1
  196. package/dist/tasks/qa-run-binding.d.ts +15 -0
  197. package/dist/tasks/qa-run-binding.d.ts.map +1 -1
  198. package/dist/tasks/qa-run-binding.js +24 -3
  199. package/dist/tasks/qa-run-binding.js.map +1 -1
  200. package/migrations/drizzle-brain/20261014180000_t13719-prune-candidate-column/migration.sql +16 -0
  201. package/migrations/drizzle-cleo-project/20261014100000_t12919-docs-row-uids/migration.sql +27 -0
  202. package/package.json +13 -13
  203. package/templates/CLEO-REFERENCE.md +1 -1
  204. package/templates/global-config.template.json +2 -1
@@ -1,6 +1,180 @@
1
1
  export type ClientOptions = {
2
2
  baseUrl: `${string}://${string}` | (string & {});
3
3
  };
4
+ export type MutateTasksReqAddData = {
5
+ body: {
6
+ /**
7
+ * Task that owns the requirement gates
8
+ */
9
+ taskId: string;
10
+ /**
11
+ * AcceptanceGate JSON; must include kind, description and kind-specific fields
12
+ */
13
+ gate: string;
14
+ };
15
+ path?: never;
16
+ query?: never;
17
+ url: '/v1/tasks/req.add';
18
+ };
19
+ export type MutateTasksReqAddResponses = {
20
+ /**
21
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
22
+ */
23
+ 200: {
24
+ success: true;
25
+ data: {
26
+ [key: string]: unknown;
27
+ };
28
+ /**
29
+ * LAFS response metadata.
30
+ */
31
+ meta: {
32
+ [key: string]: unknown;
33
+ };
34
+ [key: string]: unknown;
35
+ };
36
+ };
37
+ export type MutateTasksReqAddResponse = MutateTasksReqAddResponses[keyof MutateTasksReqAddResponses];
38
+ export type MutateTasksReqReplaceData = {
39
+ body: {
40
+ /**
41
+ * Task that owns the requirement gates
42
+ */
43
+ taskId: string;
44
+ /**
45
+ * REQ-ID of the gate to replace
46
+ */
47
+ req: string;
48
+ /**
49
+ * Replacement AcceptanceGate JSON; its req must be absent or equal the REQ-ID
50
+ */
51
+ gate: string;
52
+ /**
53
+ * Why the gate changes; required once the task is in a locked pipeline stage
54
+ */
55
+ reason?: string;
56
+ };
57
+ path?: never;
58
+ query?: never;
59
+ url: '/v1/tasks/req.replace';
60
+ };
61
+ export type MutateTasksReqReplaceResponses = {
62
+ /**
63
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
64
+ */
65
+ 200: {
66
+ success: true;
67
+ data: {
68
+ [key: string]: unknown;
69
+ };
70
+ /**
71
+ * LAFS response metadata.
72
+ */
73
+ meta: {
74
+ [key: string]: unknown;
75
+ };
76
+ [key: string]: unknown;
77
+ };
78
+ };
79
+ export type MutateTasksReqReplaceResponse = MutateTasksReqReplaceResponses[keyof MutateTasksReqReplaceResponses];
80
+ export type QueryTasksReqListData = {
81
+ body: {
82
+ /**
83
+ * Task that owns the requirement gates
84
+ */
85
+ taskId: string;
86
+ };
87
+ path?: never;
88
+ query?: never;
89
+ url: '/v1/tasks/req.list';
90
+ };
91
+ export type QueryTasksReqListResponses = {
92
+ /**
93
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
94
+ */
95
+ 200: {
96
+ success: true;
97
+ data: {
98
+ [key: string]: unknown;
99
+ };
100
+ /**
101
+ * LAFS response metadata.
102
+ */
103
+ meta: {
104
+ [key: string]: unknown;
105
+ };
106
+ [key: string]: unknown;
107
+ };
108
+ };
109
+ export type QueryTasksReqListResponse = QueryTasksReqListResponses[keyof QueryTasksReqListResponses];
110
+ export type QueryTasksReqMigratePreviewData = {
111
+ body: {
112
+ /**
113
+ * Task that owns the requirement gates
114
+ */
115
+ taskId: string;
116
+ /**
117
+ * Must be absent or false for preview
118
+ */
119
+ apply?: boolean;
120
+ };
121
+ path?: never;
122
+ query?: never;
123
+ url: '/v1/tasks/req.migrate.preview';
124
+ };
125
+ export type QueryTasksReqMigratePreviewResponses = {
126
+ /**
127
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
128
+ */
129
+ 200: {
130
+ success: true;
131
+ data: {
132
+ [key: string]: unknown;
133
+ };
134
+ /**
135
+ * LAFS response metadata.
136
+ */
137
+ meta: {
138
+ [key: string]: unknown;
139
+ };
140
+ [key: string]: unknown;
141
+ };
142
+ };
143
+ export type QueryTasksReqMigratePreviewResponse = QueryTasksReqMigratePreviewResponses[keyof QueryTasksReqMigratePreviewResponses];
144
+ export type MutateTasksReqMigrateData = {
145
+ body: {
146
+ /**
147
+ * Task that owns the requirement gates
148
+ */
149
+ taskId: string;
150
+ /**
151
+ * Must be true to apply proposals
152
+ */
153
+ apply: boolean;
154
+ };
155
+ path?: never;
156
+ query?: never;
157
+ url: '/v1/tasks/req.migrate';
158
+ };
159
+ export type MutateTasksReqMigrateResponses = {
160
+ /**
161
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
162
+ */
163
+ 200: {
164
+ success: true;
165
+ data: {
166
+ [key: string]: unknown;
167
+ };
168
+ /**
169
+ * LAFS response metadata.
170
+ */
171
+ meta: {
172
+ [key: string]: unknown;
173
+ };
174
+ [key: string]: unknown;
175
+ };
176
+ };
177
+ export type MutateTasksReqMigrateResponse = MutateTasksReqMigrateResponses[keyof MutateTasksReqMigrateResponses];
4
178
  export type QueryTasksShowData = {
5
179
  body: {
6
180
  /**
@@ -26,7 +200,7 @@ export type QueryTasksShowData = {
26
200
  };
27
201
  export type QueryTasksShowResponses = {
28
202
  /**
29
- * The task record is nested under `task` — use /data/task/<field>, not /data/<field>. `view` may be null. `acRows` and `relations` are conditional.
203
+ * The task record is nested under `task` — use /data/task/<field>, not /data/<field>. Mutation envelopes are FLAT by contrast (/data/created/0, /data/updated/0), which is the asymmetry that produced GH #1225/#1239/#1231. `view` may be null. `acRows` and `relations` are conditional. The default (MVI) projection withholds each `acRows` UUID and names it once in `/data/_withheld` as `acRows*id` (T12523); cite a criterion by `alias` (AC1..n). `description`, `acceptance` and `verification` are withheld by the default (MVI) projection but `--field` resolves them transparently (T12108) — no `--full` needed. Evidence is NOT a task field: it lives at /data/task/verification/evidence (keyed by gate), alongside /data/task/verification/gates. T12127 (GH #1231) — the previous wording advertised `/data/task/evidence`, which does not exist, in the very text shown to an agent whose pointer had just failed.
30
204
  */
31
205
  200: {
32
206
  success: true;
@@ -41,6 +215,35 @@ export type QueryTasksShowResponses = {
41
215
  priority?: string;
42
216
  type?: string;
43
217
  parentId?: string | null;
218
+ /**
219
+ * Task version for optimistic concurrency: pass it to `cleo update|complete --if-match`. A stale version fails with E_CONFLICT (23); E_TASK_RENAMED (26) when sync re-numbered the task you read (details.expected is its new id).
220
+ */
221
+ updatedAt?: string | null;
222
+ /**
223
+ * Human / owner assignee. Separate from `claim`.
224
+ */
225
+ assignee?: string | null;
226
+ /**
227
+ * Agent claim lease (T12502): the holder session, its agent, and when the lease lapses unless renewed. Absent when unclaimed.
228
+ */
229
+ claim?: {
230
+ /**
231
+ * Session holding the lease.
232
+ */
233
+ sessionId: string;
234
+ /**
235
+ * Agent identity of the holder.
236
+ */
237
+ agentId: string | null;
238
+ /**
239
+ * When the lease was taken (ISO-8601 UTC).
240
+ */
241
+ claimedAt: string;
242
+ /**
243
+ * When the lease lapses unless renewed (ISO-8601 UTC).
244
+ */
245
+ leaseExpiresAt: string;
246
+ };
44
247
  };
45
248
  /**
46
249
  * Canonical task view projection produced by computeTaskView. Null when unavailable.
@@ -53,9 +256,15 @@ export type QueryTasksShowResponses = {
53
256
  */
54
257
  attachments: Array<unknown>;
55
258
  /**
56
- * Acceptance-criterion rows (id, alias AC<n>, ordinal, text). Optional.
259
+ * Acceptance-criterion rows (alias AC<n>, ordinal, text; the UUID id only with --full). Optional.
57
260
  */
58
261
  acRows?: Array<unknown>;
262
+ /**
263
+ * Fields the default projection withheld from list elements, e.g. `acRows*id` → UTF-8 byte total. Absent with --full.
264
+ */
265
+ _withheld?: {
266
+ [key: string]: unknown;
267
+ };
59
268
  /**
60
269
  * Expanded relation/doc lists. Present only with --relations.
61
270
  */
@@ -391,6 +600,10 @@ export type QueryTasksSubscribeResponses = {
391
600
  export type QueryTasksSubscribeResponse = QueryTasksSubscribeResponses[keyof QueryTasksSubscribeResponses];
392
601
  export type QueryTasksListData = {
393
602
  body?: {
603
+ /**
604
+ * Include archived rows under the same filters
605
+ */
606
+ includeArchive?: boolean;
394
607
  /**
395
608
  * Filter by parent task ID
396
609
  */
@@ -407,6 +620,14 @@ export type QueryTasksListData = {
407
620
  * Filter by task type
408
621
  */
409
622
  type?: string;
623
+ /**
624
+ * Filter by severity axis (P0|P1|P2|P3); invalid values are rejected
625
+ */
626
+ severity?: string;
627
+ /**
628
+ * Filter by kind axis (work|research|experiment|bug|spike|release); invalid values are rejected
629
+ */
630
+ kind?: string;
410
631
  /**
411
632
  * Filter by task phase
412
633
  */
@@ -416,11 +637,11 @@ export type QueryTasksListData = {
416
637
  */
417
638
  label?: string;
418
639
  /**
419
- * Limit parent queries to direct children
640
+ * DEPRECATED (no effect; slated for removal in a future major): --parent already returns DIRECT children only, for every parent type including sagas. Do not use.
420
641
  */
421
642
  children?: boolean;
422
643
  /**
423
- * Maximum number of tasks to return
644
+ * Maximum number of tasks to return (default 10). --all or --limit 0 returns every match.
424
645
  */
425
646
  limit?: number;
426
647
  /**
@@ -459,6 +680,23 @@ export type QueryTasksListResponses = {
459
680
  * Number of tasks after filters applied.
460
681
  */
461
682
  filtered: number;
683
+ population: {
684
+ /**
685
+ * All rows matching the query before pagination.
686
+ */
687
+ matched: number;
688
+ /**
689
+ * Rows present in this response; also --output count.
690
+ */
691
+ returned: number;
692
+ /**
693
+ * Matching rows are omitted by this page.
694
+ */
695
+ truncated: boolean;
696
+ archive: 'included' | 'excluded' | 'only';
697
+ limit: number | null;
698
+ offset: number;
699
+ };
462
700
  [key: string]: unknown;
463
701
  };
464
702
  /**
@@ -496,12 +734,29 @@ export type QueryTasksFindResponses = {
496
734
  * Total matching tasks.
497
735
  */
498
736
  total: number;
737
+ population: {
738
+ /**
739
+ * All rows matching the query before pagination.
740
+ */
741
+ matched: number;
742
+ /**
743
+ * Rows present in this response; also --output count.
744
+ */
745
+ returned: number;
746
+ /**
747
+ * Matching rows are omitted by this page.
748
+ */
749
+ truncated: boolean;
750
+ archive: 'included' | 'excluded' | 'only';
751
+ limit: number | null;
752
+ offset: number;
753
+ };
499
754
  /**
500
755
  * The query string that was searched.
501
756
  */
502
757
  query?: string;
503
758
  /**
504
- * Kind of search performed (fts, semantic, ...).
759
+ * Requested matching mode: lexical (default), fuzzy (explicit opt-in), exact, id, or filter.
505
760
  */
506
761
  searchType?: string;
507
762
  [key: string]: unknown;
@@ -1005,7 +1260,20 @@ export type QueryTasksComplexityEstimateResponses = {
1005
1260
  };
1006
1261
  export type QueryTasksComplexityEstimateResponse = QueryTasksComplexityEstimateResponses[keyof QueryTasksComplexityEstimateResponses];
1007
1262
  export type QueryTasksHistoryData = {
1008
- body?: never;
1263
+ body?: {
1264
+ /**
1265
+ * Task to show history for
1266
+ */
1267
+ taskId?: string;
1268
+ /**
1269
+ * Maximum entries
1270
+ */
1271
+ limit?: number;
1272
+ /**
1273
+ * Only ranking-input changes (actor, session, reason, before/after)
1274
+ */
1275
+ ranking?: boolean;
1276
+ };
1009
1277
  path?: never;
1010
1278
  query?: never;
1011
1279
  url: '/v1/tasks/history';
@@ -2737,11 +3005,70 @@ export type QueryCheckGateStatusData = {
2737
3005
  };
2738
3006
  export type QueryCheckGateStatusResponses = {
2739
3007
  /**
2740
- * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
3008
+ * FLAT record identical in shape to check.gate.set. Read-only: reports which gates are recorded and which are still missing. /data/missingGates being empty is the precondition for `cleo complete`.
2741
3009
  */
2742
3010
  200: {
2743
3011
  success: true;
2744
3012
  data: {
3013
+ /**
3014
+ * The task the gates belong to.
3015
+ */
3016
+ taskId: string;
3017
+ /**
3018
+ * Task title, for operator display.
3019
+ */
3020
+ title?: string;
3021
+ /**
3022
+ * Task lifecycle status.
3023
+ */
3024
+ status?: string;
3025
+ /**
3026
+ * Task type (epic | task | subtask).
3027
+ */
3028
+ type?: string;
3029
+ verification: {
3030
+ /**
3031
+ * True when every required gate is set.
3032
+ */
3033
+ passed?: boolean;
3034
+ /**
3035
+ * IVTR round counter.
3036
+ */
3037
+ round?: number;
3038
+ /**
3039
+ * Gate name → whether it is recorded as passed.
3040
+ */
3041
+ gates?: {
3042
+ [key: string]: boolean;
3043
+ };
3044
+ /**
3045
+ * Gate name → the evidence atom kinds validated for it.
3046
+ */
3047
+ evidence?: {
3048
+ [key: string]: unknown;
3049
+ };
3050
+ [key: string]: unknown;
3051
+ };
3052
+ /**
3053
+ * Whether every required gate is now recorded.
3054
+ */
3055
+ verificationStatus: 'passed' | 'pending';
3056
+ /**
3057
+ * Mirror of verification.passed.
3058
+ */
3059
+ passed: boolean;
3060
+ /**
3061
+ * IVTR round counter.
3062
+ */
3063
+ round?: number;
3064
+ /**
3065
+ * Gates this project requires before complete.
3066
+ */
3067
+ requiredGates?: Array<string>;
3068
+ /**
3069
+ * Required gates not yet recorded — empty means ready to complete.
3070
+ */
3071
+ missingGates?: Array<string>;
2745
3072
  [key: string]: unknown;
2746
3073
  };
2747
3074
  /**
@@ -2754,6 +3081,44 @@ export type QueryCheckGateStatusResponses = {
2754
3081
  };
2755
3082
  };
2756
3083
  export type QueryCheckGateStatusResponse = QueryCheckGateStatusResponses[keyof QueryCheckGateStatusResponses];
3084
+ export type QueryCheckGateRunData = {
3085
+ body: {
3086
+ /**
3087
+ * Task whose typed gates should run
3088
+ */
3089
+ taskId: string;
3090
+ /**
3091
+ * Actor attribution recorded on each gate result
3092
+ */
3093
+ agent?: string;
3094
+ /**
3095
+ * Comma-separated REQ-IDs: run and cache only these typed gates; the others are not run (T13486)
3096
+ */
3097
+ req?: string;
3098
+ };
3099
+ path?: never;
3100
+ query?: never;
3101
+ url: '/v1/check/gate.run';
3102
+ };
3103
+ export type QueryCheckGateRunResponses = {
3104
+ /**
3105
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
3106
+ */
3107
+ 200: {
3108
+ success: true;
3109
+ data: {
3110
+ [key: string]: unknown;
3111
+ };
3112
+ /**
3113
+ * LAFS response metadata.
3114
+ */
3115
+ meta: {
3116
+ [key: string]: unknown;
3117
+ };
3118
+ [key: string]: unknown;
3119
+ };
3120
+ };
3121
+ export type QueryCheckGateRunResponse = QueryCheckGateRunResponses[keyof QueryCheckGateRunResponses];
2757
3122
  export type QueryCheckArchiveStatsData = {
2758
3123
  body?: never;
2759
3124
  path?: never;
@@ -4099,6 +4464,7 @@ export type MutateTasksAddData = {
4099
4464
  description?: string;
4100
4465
  parent?: string;
4101
4466
  depends?: Array<string>;
4467
+ dependsWaiver?: string;
4102
4468
  priority?: 'low' | 'medium' | 'high' | 'critical';
4103
4469
  labels?: Array<string>;
4104
4470
  type?: 'saga' | 'epic' | 'task' | 'subtask';
@@ -4113,6 +4479,7 @@ export type MutateTasksAddData = {
4113
4479
  scope?: 'project' | 'feature' | 'unit';
4114
4480
  severity?: 'P0' | 'P1' | 'P2' | 'P3';
4115
4481
  forceDuplicate?: boolean;
4482
+ autoDecompose?: boolean;
4116
4483
  };
4117
4484
  path?: never;
4118
4485
  query?: never;
@@ -4184,6 +4551,7 @@ export type MutateTasksAddBatchData = {
4184
4551
  scope?: 'project' | 'feature' | 'unit';
4185
4552
  severity?: 'P0' | 'P1' | 'P2' | 'P3';
4186
4553
  forceDuplicate?: boolean;
4554
+ autoDecompose?: boolean;
4187
4555
  }>;
4188
4556
  defaultParent?: string;
4189
4557
  dryRun?: boolean;
@@ -4258,6 +4626,7 @@ export type MutateTasksUpdateData = {
4258
4626
  description?: string;
4259
4627
  status?: 'pending' | 'active' | 'blocked' | 'done' | 'cancelled';
4260
4628
  priority?: 'low' | 'medium' | 'high' | 'critical';
4629
+ phase?: string;
4261
4630
  notes?: string;
4262
4631
  labels?: Array<string>;
4263
4632
  addLabels?: Array<string>;
@@ -4278,7 +4647,9 @@ export type MutateTasksUpdateData = {
4278
4647
  severity?: 'P0' | 'P1' | 'P2' | 'P3';
4279
4648
  reason?: string;
4280
4649
  dependsWaiver?: string;
4650
+ blockedBy?: string;
4281
4651
  clearBlockedBy?: boolean;
4652
+ noAutoComplete?: boolean;
4282
4653
  relates?: Array<{
4283
4654
  taskId: string;
4284
4655
  type: string;
@@ -4290,6 +4661,7 @@ export type MutateTasksUpdateData = {
4290
4661
  reason?: string;
4291
4662
  }>;
4292
4663
  removeRelates?: Array<string>;
4664
+ expectedUpdatedAt?: string;
4293
4665
  };
4294
4666
  path?: never;
4295
4667
  query?: never;
@@ -4348,6 +4720,10 @@ export type MutateTasksCompleteData = {
4348
4720
  * taskId parameter
4349
4721
  */
4350
4722
  taskId: string;
4723
+ /**
4724
+ * Optimistic-concurrency guard: fail with E_CONFLICT unless the task updatedAt still equals this value
4725
+ */
4726
+ expectedUpdatedAt?: string;
4351
4727
  };
4352
4728
  path?: never;
4353
4729
  query?: never;
@@ -4440,6 +4816,14 @@ export type MutateTasksDeleteData = {
4440
4816
  * taskId parameter
4441
4817
  */
4442
4818
  taskId: string;
4819
+ /**
4820
+ * Allow dependents and orphan children unless cascade is enabled
4821
+ */
4822
+ force?: boolean;
4823
+ /**
4824
+ * Archive all descendants with the selected task
4825
+ */
4826
+ cascade?: boolean;
4443
4827
  };
4444
4828
  path?: never;
4445
4829
  query?: never;
@@ -4484,12 +4868,92 @@ export type MutateTasksDeleteResponses = {
4484
4868
  };
4485
4869
  };
4486
4870
  export type MutateTasksDeleteResponse = MutateTasksDeleteResponses[keyof MutateTasksDeleteResponses];
4487
- export type MutateTasksArchiveData = {
4488
- body?: never;
4489
- path?: never;
4490
- query?: never;
4491
- url: '/v1/tasks/archive';
4492
- };
4871
+ export type MutateTasksReconcileScopeData = {
4872
+ body: {
4873
+ /**
4874
+ * Saga, epic or other container to sweep (its whole subtree is considered)
4875
+ */
4876
+ rootId: string;
4877
+ /**
4878
+ * Write the proposed `relates` edges (read-only without it)
4879
+ */
4880
+ apply?: boolean;
4881
+ /**
4882
+ * Report pairs at or above this similarity score, 0-1 (default 0.55)
4883
+ */
4884
+ threshold?: number;
4885
+ };
4886
+ path?: never;
4887
+ query?: never;
4888
+ url: '/v1/tasks/reconcile-scope';
4889
+ };
4890
+ export type MutateTasksReconcileScopeResponses = {
4891
+ /**
4892
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
4893
+ */
4894
+ 200: {
4895
+ success: true;
4896
+ data: {
4897
+ [key: string]: unknown;
4898
+ };
4899
+ /**
4900
+ * LAFS response metadata.
4901
+ */
4902
+ meta: {
4903
+ [key: string]: unknown;
4904
+ };
4905
+ [key: string]: unknown;
4906
+ };
4907
+ };
4908
+ export type MutateTasksReconcileScopeResponse = MutateTasksReconcileScopeResponses[keyof MutateTasksReconcileScopeResponses];
4909
+ export type MutateTasksDecomposeData = {
4910
+ body: {
4911
+ /**
4912
+ * Task whose text acceptance criteria move to a new child
4913
+ */
4914
+ taskId: string;
4915
+ /**
4916
+ * Title for the child that inherits the criteria (default: the parent’s)
4917
+ */
4918
+ childTitle?: string;
4919
+ /**
4920
+ * Description for the child (default: the parent’s)
4921
+ */
4922
+ childDescription?: string;
4923
+ /**
4924
+ * Preview the move without writing
4925
+ */
4926
+ dryRun?: boolean;
4927
+ };
4928
+ path?: never;
4929
+ query?: never;
4930
+ url: '/v1/tasks/decompose';
4931
+ };
4932
+ export type MutateTasksDecomposeResponses = {
4933
+ /**
4934
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
4935
+ */
4936
+ 200: {
4937
+ success: true;
4938
+ data: {
4939
+ [key: string]: unknown;
4940
+ };
4941
+ /**
4942
+ * LAFS response metadata.
4943
+ */
4944
+ meta: {
4945
+ [key: string]: unknown;
4946
+ };
4947
+ [key: string]: unknown;
4948
+ };
4949
+ };
4950
+ export type MutateTasksDecomposeResponse = MutateTasksDecomposeResponses[keyof MutateTasksDecomposeResponses];
4951
+ export type MutateTasksArchiveData = {
4952
+ body?: never;
4953
+ path?: never;
4954
+ query?: never;
4955
+ url: '/v1/tasks/archive';
4956
+ };
4493
4957
  export type MutateTasksArchiveResponses = {
4494
4958
  /**
4495
4959
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
@@ -4745,6 +5209,44 @@ export type MutateTasksAssigneeResponses = {
4745
5209
  };
4746
5210
  };
4747
5211
  export type MutateTasksAssigneeResponse = MutateTasksAssigneeResponses[keyof MutateTasksAssigneeResponses];
5212
+ export type MutateTasksRankingRevertData = {
5213
+ body: {
5214
+ /**
5215
+ * ranking_changed audit row id (cleo history ranking <taskId>)
5216
+ */
5217
+ entryId: string;
5218
+ /**
5219
+ * Why it is reverted
5220
+ */
5221
+ reason?: string;
5222
+ /**
5223
+ * Revert even though a field changed again since
5224
+ */
5225
+ force?: boolean;
5226
+ };
5227
+ path?: never;
5228
+ query?: never;
5229
+ url: '/v1/tasks/ranking.revert';
5230
+ };
5231
+ export type MutateTasksRankingRevertResponses = {
5232
+ /**
5233
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
5234
+ */
5235
+ 200: {
5236
+ success: true;
5237
+ data: {
5238
+ [key: string]: unknown;
5239
+ };
5240
+ /**
5241
+ * LAFS response metadata.
5242
+ */
5243
+ meta: {
5244
+ [key: string]: unknown;
5245
+ };
5246
+ [key: string]: unknown;
5247
+ };
5248
+ };
5249
+ export type MutateTasksRankingRevertResponse = MutateTasksRankingRevertResponses[keyof MutateTasksRankingRevertResponses];
4748
5250
  export type MutateTasksRelatesAddData = {
4749
5251
  body: {
4750
5252
  /**
@@ -5182,6 +5684,14 @@ export type MutateTasksStartData = {
5182
5684
  * taskId parameter
5183
5685
  */
5184
5686
  taskId: string;
5687
+ /**
5688
+ * Take over another session's EXPIRED claim lease (audited)
5689
+ */
5690
+ takeOver?: boolean;
5691
+ /**
5692
+ * Take over another session's LIVE claim lease (audited)
5693
+ */
5694
+ forceClaim?: boolean;
5185
5695
  };
5186
5696
  path?: never;
5187
5697
  query?: never;
@@ -5189,11 +5699,40 @@ export type MutateTasksStartData = {
5189
5699
  };
5190
5700
  export type MutateTasksStartResponses = {
5191
5701
  /**
5192
- * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
5702
+ * The claim lease this start holds is at /data/claim (null when the caller is not bound to a session). Another session holding the task fails with E_TASK_CLAIMED (exit 35); error.details.holder names it.
5193
5703
  */
5194
5704
  200: {
5195
5705
  success: true;
5196
5706
  data: {
5707
+ /**
5708
+ * The task now active.
5709
+ */
5710
+ taskId: string;
5711
+ /**
5712
+ * The task active before, if any.
5713
+ */
5714
+ previousTask: string | null;
5715
+ /**
5716
+ * Agent claim lease (T12502): the holder session, its agent, and when the lease lapses unless renewed. Absent when unclaimed.
5717
+ */
5718
+ claim?: {
5719
+ /**
5720
+ * Session holding the lease.
5721
+ */
5722
+ sessionId: string;
5723
+ /**
5724
+ * Agent identity of the holder.
5725
+ */
5726
+ agentId: string | null;
5727
+ /**
5728
+ * When the lease was taken (ISO-8601 UTC).
5729
+ */
5730
+ claimedAt: string;
5731
+ /**
5732
+ * When the lease lapses unless renewed (ISO-8601 UTC).
5733
+ */
5734
+ leaseExpiresAt: string;
5735
+ } | null;
5197
5736
  [key: string]: unknown;
5198
5737
  };
5199
5738
  /**
@@ -5374,11 +5913,40 @@ export type MutateTasksClaimData = {
5374
5913
  };
5375
5914
  export type MutateTasksClaimResponses = {
5376
5915
  /**
5377
- * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
5916
+ * The lease now held by your session is at /data/claim; renew it with --renew. Another holder fails with E_TASK_CLAIMED (exit 35): --take-over (expired) or --force-claim (live).
5378
5917
  */
5379
5918
  200: {
5380
5919
  success: true;
5381
5920
  data: {
5921
+ /**
5922
+ * The claimed task.
5923
+ */
5924
+ taskId: string;
5925
+ /**
5926
+ * Agent recorded with the lease.
5927
+ */
5928
+ agentId: string | null;
5929
+ /**
5930
+ * Agent claim lease (T12502): the holder session, its agent, and when the lease lapses unless renewed. Absent when unclaimed.
5931
+ */
5932
+ claim: {
5933
+ /**
5934
+ * Session holding the lease.
5935
+ */
5936
+ sessionId: string;
5937
+ /**
5938
+ * Agent identity of the holder.
5939
+ */
5940
+ agentId: string | null;
5941
+ /**
5942
+ * When the lease was taken (ISO-8601 UTC).
5943
+ */
5944
+ claimedAt: string;
5945
+ /**
5946
+ * When the lease lapses unless renewed (ISO-8601 UTC).
5947
+ */
5948
+ leaseExpiresAt: string;
5949
+ };
5382
5950
  [key: string]: unknown;
5383
5951
  };
5384
5952
  /**
@@ -5397,6 +5965,10 @@ export type MutateTasksUnclaimData = {
5397
5965
  * Task ID to unclaim
5398
5966
  */
5399
5967
  taskId: string;
5968
+ /**
5969
+ * Release another session's lease (audited)
5970
+ */
5971
+ forceClaim?: boolean;
5400
5972
  };
5401
5973
  path?: never;
5402
5974
  query?: never;
@@ -5404,11 +5976,19 @@ export type MutateTasksUnclaimData = {
5404
5976
  };
5405
5977
  export type MutateTasksUnclaimResponses = {
5406
5978
  /**
5407
- * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
5979
+ * /data/released is true when a lease was cleared, false when the task was unclaimed.
5408
5980
  */
5409
5981
  200: {
5410
5982
  success: true;
5411
5983
  data: {
5984
+ /**
5985
+ * The released task.
5986
+ */
5987
+ taskId: string;
5988
+ /**
5989
+ * Whether a lease was cleared.
5990
+ */
5991
+ released: boolean;
5412
5992
  [key: string]: unknown;
5413
5993
  };
5414
5994
  /**
@@ -5883,6 +6463,10 @@ export type MutateMemoryObserveData = {
5883
6463
  * text parameter
5884
6464
  */
5885
6465
  text: string;
6466
+ /**
6467
+ * Store to write: project (default) or global, the synced main brain (T13720)
6468
+ */
6469
+ scope?: string;
5886
6470
  };
5887
6471
  path?: never;
5888
6472
  query?: never;
@@ -5917,6 +6501,10 @@ export type MutateMemoryDecisionStoreData = {
5917
6501
  * rationale parameter
5918
6502
  */
5919
6503
  rationale: string;
6504
+ /**
6505
+ * Store to write: project (default) or global, the synced main brain (T13720)
6506
+ */
6507
+ scope?: string;
5920
6508
  };
5921
6509
  path?: never;
5922
6510
  query?: never;
@@ -6749,7 +7337,24 @@ export type QueryMemoryBackfillListResponses = {
6749
7337
  };
6750
7338
  export type QueryMemoryBackfillListResponse = QueryMemoryBackfillListResponses[keyof QueryMemoryBackfillListResponses];
6751
7339
  export type MutateMemoryBackfillRunData = {
6752
- body?: never;
7340
+ body?: {
7341
+ /**
7342
+ * Source of the reviewed backfill request.
7343
+ */
7344
+ source?: string;
7345
+ /**
7346
+ * Backfill classification.
7347
+ */
7348
+ kind?: string;
7349
+ /**
7350
+ * Derived brain_page_nodes target only.
7351
+ */
7352
+ targetTable?: string;
7353
+ /**
7354
+ * Exact qualified graph node IDs to stage; all must resolve to missing, eligible typed sources.
7355
+ */
7356
+ nodeIds?: Array<string>;
7357
+ };
6753
7358
  path?: never;
6754
7359
  query?: never;
6755
7360
  url: '/v1/memory/backfill.run';
@@ -6988,6 +7593,56 @@ export type MutatePipelineManifestAppendResponses = {
6988
7593
  };
6989
7594
  };
6990
7595
  export type MutatePipelineManifestAppendResponse = MutatePipelineManifestAppendResponses[keyof MutatePipelineManifestAppendResponses];
7596
+ export type MutatePipelineManifestUpdateData = {
7597
+ body: {
7598
+ /**
7599
+ * Manifest entry id
7600
+ */
7601
+ id: string;
7602
+ /**
7603
+ * Task id to add to linked_tasks
7604
+ */
7605
+ linkTask?: string;
7606
+ /**
7607
+ * New title
7608
+ */
7609
+ title?: string;
7610
+ /**
7611
+ * Replacement topics
7612
+ */
7613
+ topics?: Array<string>;
7614
+ /**
7615
+ * Replacement key findings
7616
+ */
7617
+ key_findings?: Array<string>;
7618
+ /**
7619
+ * New status
7620
+ */
7621
+ status?: string;
7622
+ };
7623
+ path?: never;
7624
+ query?: never;
7625
+ url: '/v1/pipeline/manifest.update';
7626
+ };
7627
+ export type MutatePipelineManifestUpdateResponses = {
7628
+ /**
7629
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
7630
+ */
7631
+ 200: {
7632
+ success: true;
7633
+ data: {
7634
+ [key: string]: unknown;
7635
+ };
7636
+ /**
7637
+ * LAFS response metadata.
7638
+ */
7639
+ meta: {
7640
+ [key: string]: unknown;
7641
+ };
7642
+ [key: string]: unknown;
7643
+ };
7644
+ };
7645
+ export type MutatePipelineManifestUpdateResponse = MutatePipelineManifestUpdateResponses[keyof MutatePipelineManifestUpdateResponses];
6991
7646
  export type MutatePipelineManifestArchiveData = {
6992
7647
  body: {
6993
7648
  /**
@@ -7245,11 +7900,70 @@ export type MutateCheckGateSetData = {
7245
7900
  };
7246
7901
  export type MutateCheckGateSetResponses = {
7247
7902
  /**
7248
- * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
7903
+ * FLAT record, not the nested read shape. The verification object is at /data/verification — NEVER /data/task/verification, which is how `cleo show` nests a task and does not exist here. The response is self-confirming: it returns the full verification after the write, so there is no need to re-read.
7249
7904
  */
7250
7905
  200: {
7251
7906
  success: true;
7252
7907
  data: {
7908
+ /**
7909
+ * The task the gates belong to.
7910
+ */
7911
+ taskId: string;
7912
+ /**
7913
+ * Task title, for operator display.
7914
+ */
7915
+ title?: string;
7916
+ /**
7917
+ * Task lifecycle status.
7918
+ */
7919
+ status?: string;
7920
+ /**
7921
+ * Task type (epic | task | subtask).
7922
+ */
7923
+ type?: string;
7924
+ verification: {
7925
+ /**
7926
+ * True when every required gate is set.
7927
+ */
7928
+ passed?: boolean;
7929
+ /**
7930
+ * IVTR round counter.
7931
+ */
7932
+ round?: number;
7933
+ /**
7934
+ * Gate name → whether it is recorded as passed.
7935
+ */
7936
+ gates?: {
7937
+ [key: string]: boolean;
7938
+ };
7939
+ /**
7940
+ * Gate name → the evidence atom kinds validated for it.
7941
+ */
7942
+ evidence?: {
7943
+ [key: string]: unknown;
7944
+ };
7945
+ [key: string]: unknown;
7946
+ };
7947
+ /**
7948
+ * Whether every required gate is now recorded.
7949
+ */
7950
+ verificationStatus: 'passed' | 'pending';
7951
+ /**
7952
+ * Mirror of verification.passed.
7953
+ */
7954
+ passed: boolean;
7955
+ /**
7956
+ * IVTR round counter.
7957
+ */
7958
+ round?: number;
7959
+ /**
7960
+ * Gates this project requires before complete.
7961
+ */
7962
+ requiredGates?: Array<string>;
7963
+ /**
7964
+ * Required gates not yet recorded — empty means ready to complete.
7965
+ */
7966
+ missingGates?: Array<string>;
7253
7967
  [key: string]: unknown;
7254
7968
  };
7255
7969
  /**
@@ -10212,32 +10926,98 @@ export type QueryNexusProjectsListResponses = {
10212
10926
  };
10213
10927
  };
10214
10928
  export type QueryNexusProjectsListResponse = QueryNexusProjectsListResponses[keyof QueryNexusProjectsListResponses];
10215
- export type MutateNexusProjectsRegisterData = {
10216
- body: {
10929
+ export type QueryNexusProjectsFleetData = {
10930
+ body?: {
10217
10931
  /**
10218
- * Path to the project directory
10932
+ * Only locations on this device (device id, hostname, or current)
10219
10933
  */
10220
- path: string;
10934
+ device?: string;
10221
10935
  /**
10222
- * Custom project name
10936
+ * Only projects with a missing location
10223
10937
  */
10224
- name?: string;
10225
- };
10226
- path?: never;
10227
- query?: never;
10228
- url: '/v1/nexus/projects.register';
10229
- };
10230
- export type MutateNexusProjectsRegisterResponses = {
10231
- /**
10232
- * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
10233
- */
10234
- 200: {
10235
- success: true;
10236
- data: {
10237
- [key: string]: unknown;
10238
- };
10938
+ missing?: boolean;
10239
10939
  /**
10240
- * LAFS response metadata.
10940
+ * Only projects with a dirty location
10941
+ */
10942
+ dirty?: boolean;
10943
+ /**
10944
+ * Only projects with a location behind its upstream (as of the last fetch)
10945
+ */
10946
+ behind?: boolean;
10947
+ /**
10948
+ * Only projects with a location ahead of its upstream (as of the last fetch)
10949
+ */
10950
+ ahead?: boolean;
10951
+ /**
10952
+ * Only projects with a never-probed, old-probe or old-fetch location
10953
+ */
10954
+ stale?: boolean;
10955
+ /**
10956
+ * Only projects whose last probe recorded an error
10957
+ */
10958
+ errored?: boolean;
10959
+ /**
10960
+ * Staleness window for probes, fetches and heartbeats (default 24h)
10961
+ */
10962
+ staleAfterMs?: number;
10963
+ /**
10964
+ * Page size in projects (default 50, max 500; 0 = all)
10965
+ */
10966
+ limit?: number;
10967
+ /**
10968
+ * Projects skipped before the page
10969
+ */
10970
+ offset?: number;
10971
+ };
10972
+ path?: never;
10973
+ query?: never;
10974
+ url: '/v1/nexus/projects.fleet';
10975
+ };
10976
+ export type QueryNexusProjectsFleetResponses = {
10977
+ /**
10978
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
10979
+ */
10980
+ 200: {
10981
+ success: true;
10982
+ data: {
10983
+ [key: string]: unknown;
10984
+ };
10985
+ /**
10986
+ * LAFS response metadata.
10987
+ */
10988
+ meta: {
10989
+ [key: string]: unknown;
10990
+ };
10991
+ [key: string]: unknown;
10992
+ };
10993
+ };
10994
+ export type QueryNexusProjectsFleetResponse = QueryNexusProjectsFleetResponses[keyof QueryNexusProjectsFleetResponses];
10995
+ export type MutateNexusProjectsRegisterData = {
10996
+ body: {
10997
+ /**
10998
+ * Path to the project directory
10999
+ */
11000
+ path: string;
11001
+ /**
11002
+ * Custom project name
11003
+ */
11004
+ name?: string;
11005
+ };
11006
+ path?: never;
11007
+ query?: never;
11008
+ url: '/v1/nexus/projects.register';
11009
+ };
11010
+ export type MutateNexusProjectsRegisterResponses = {
11011
+ /**
11012
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11013
+ */
11014
+ 200: {
11015
+ success: true;
11016
+ data: {
11017
+ [key: string]: unknown;
11018
+ };
11019
+ /**
11020
+ * LAFS response metadata.
10241
11021
  */
10242
11022
  meta: {
10243
11023
  [key: string]: unknown;
@@ -10318,6 +11098,48 @@ export type MutateNexusProjectsScanResponses = {
10318
11098
  };
10319
11099
  };
10320
11100
  export type MutateNexusProjectsScanResponse = MutateNexusProjectsScanResponses[keyof MutateNexusProjectsScanResponses];
11101
+ export type MutateNexusProjectsStatusData = {
11102
+ body?: {
11103
+ /**
11104
+ * Run git fetch per location first (network; off by default)
11105
+ */
11106
+ fetch?: boolean;
11107
+ /**
11108
+ * Locations probed at once (default 8, max 64)
11109
+ */
11110
+ concurrency?: number;
11111
+ /**
11112
+ * Per-location git budget in ms (default 10000; 30000 with fetch)
11113
+ */
11114
+ timeoutMs?: number;
11115
+ /**
11116
+ * A fetch older than this marks remote state stale (default 24h)
11117
+ */
11118
+ staleAfterMs?: number;
11119
+ };
11120
+ path?: never;
11121
+ query?: never;
11122
+ url: '/v1/nexus/projects.status';
11123
+ };
11124
+ export type MutateNexusProjectsStatusResponses = {
11125
+ /**
11126
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11127
+ */
11128
+ 200: {
11129
+ success: true;
11130
+ data: {
11131
+ [key: string]: unknown;
11132
+ };
11133
+ /**
11134
+ * LAFS response metadata.
11135
+ */
11136
+ meta: {
11137
+ [key: string]: unknown;
11138
+ };
11139
+ [key: string]: unknown;
11140
+ };
11141
+ };
11142
+ export type MutateNexusProjectsStatusResponse = MutateNexusProjectsStatusResponses[keyof MutateNexusProjectsStatusResponses];
10321
11143
  export type MutateNexusProjectsCleanData = {
10322
11144
  body?: {
10323
11145
  /**
@@ -10329,7 +11151,7 @@ export type MutateNexusProjectsCleanData = {
10329
11151
  */
10330
11152
  pattern?: string;
10331
11153
  /**
10332
- * Match .temp/ paths
11154
+ * Match .temp/ or OS temp-directory paths
10333
11155
  */
10334
11156
  includeTemp?: boolean;
10335
11157
  /**
@@ -10353,7 +11175,7 @@ export type MutateNexusProjectsCleanData = {
10353
11175
  */
10354
11176
  removeFs?: boolean;
10355
11177
  /**
10356
- * After delete, run sqlite VACUUM on nexus.db to reclaim space (T9117)
11178
+ * After delete, VACUUM the global registry store (<cleoHome>/cleo.db) to reclaim space (T9117 · T12324)
10357
11179
  */
10358
11180
  vacuum?: boolean;
10359
11181
  };
@@ -11279,15 +12101,755 @@ export type QueryIntelligenceConfidenceResponse = QueryIntelligenceConfidenceRes
11279
12101
  export type QueryIntelligenceMatchData = {
11280
12102
  body: {
11281
12103
  /**
11282
- * Task ID to match patterns against
12104
+ * Task ID to match patterns against
12105
+ */
12106
+ taskId: string;
12107
+ };
12108
+ path?: never;
12109
+ query?: never;
12110
+ url: '/v1/intelligence/match';
12111
+ };
12112
+ export type QueryIntelligenceMatchResponses = {
12113
+ /**
12114
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12115
+ */
12116
+ 200: {
12117
+ success: true;
12118
+ data: {
12119
+ [key: string]: unknown;
12120
+ };
12121
+ /**
12122
+ * LAFS response metadata.
12123
+ */
12124
+ meta: {
12125
+ [key: string]: unknown;
12126
+ };
12127
+ [key: string]: unknown;
12128
+ };
12129
+ };
12130
+ export type QueryIntelligenceMatchResponse = QueryIntelligenceMatchResponses[keyof QueryIntelligenceMatchResponses];
12131
+ export type QueryDiagnosticsStatusData = {
12132
+ body?: never;
12133
+ path?: never;
12134
+ query?: never;
12135
+ url: '/v1/diagnostics/status';
12136
+ };
12137
+ export type QueryDiagnosticsStatusResponses = {
12138
+ /**
12139
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12140
+ */
12141
+ 200: {
12142
+ success: true;
12143
+ data: {
12144
+ [key: string]: unknown;
12145
+ };
12146
+ /**
12147
+ * LAFS response metadata.
12148
+ */
12149
+ meta: {
12150
+ [key: string]: unknown;
12151
+ };
12152
+ [key: string]: unknown;
12153
+ };
12154
+ };
12155
+ export type QueryDiagnosticsStatusResponse = QueryDiagnosticsStatusResponses[keyof QueryDiagnosticsStatusResponses];
12156
+ export type QueryDiagnosticsAnalyzeData = {
12157
+ body?: {
12158
+ /**
12159
+ * Analysis window in days (default: 30)
12160
+ */
12161
+ days?: number;
12162
+ /**
12163
+ * Skip pushing observations to BRAIN
12164
+ */
12165
+ noBrain?: boolean;
12166
+ };
12167
+ path?: never;
12168
+ query?: never;
12169
+ url: '/v1/diagnostics/analyze';
12170
+ };
12171
+ export type QueryDiagnosticsAnalyzeResponses = {
12172
+ /**
12173
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12174
+ */
12175
+ 200: {
12176
+ success: true;
12177
+ data: {
12178
+ [key: string]: unknown;
12179
+ };
12180
+ /**
12181
+ * LAFS response metadata.
12182
+ */
12183
+ meta: {
12184
+ [key: string]: unknown;
12185
+ };
12186
+ [key: string]: unknown;
12187
+ };
12188
+ };
12189
+ export type QueryDiagnosticsAnalyzeResponse = QueryDiagnosticsAnalyzeResponses[keyof QueryDiagnosticsAnalyzeResponses];
12190
+ export type QueryDiagnosticsExportData = {
12191
+ body?: {
12192
+ /**
12193
+ * Limit export to last N days (default: all)
12194
+ */
12195
+ days?: number;
12196
+ };
12197
+ path?: never;
12198
+ query?: never;
12199
+ url: '/v1/diagnostics/export';
12200
+ };
12201
+ export type QueryDiagnosticsExportResponses = {
12202
+ /**
12203
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12204
+ */
12205
+ 200: {
12206
+ success: true;
12207
+ data: {
12208
+ [key: string]: unknown;
12209
+ };
12210
+ /**
12211
+ * LAFS response metadata.
12212
+ */
12213
+ meta: {
12214
+ [key: string]: unknown;
12215
+ };
12216
+ [key: string]: unknown;
12217
+ };
12218
+ };
12219
+ export type QueryDiagnosticsExportResponse = QueryDiagnosticsExportResponses[keyof QueryDiagnosticsExportResponses];
12220
+ export type MutateDiagnosticsEnableData = {
12221
+ body?: never;
12222
+ path?: never;
12223
+ query?: never;
12224
+ url: '/v1/diagnostics/enable';
12225
+ };
12226
+ export type MutateDiagnosticsEnableResponses = {
12227
+ /**
12228
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12229
+ */
12230
+ 200: {
12231
+ success: true;
12232
+ data: {
12233
+ [key: string]: unknown;
12234
+ };
12235
+ /**
12236
+ * LAFS response metadata.
12237
+ */
12238
+ meta: {
12239
+ [key: string]: unknown;
12240
+ };
12241
+ [key: string]: unknown;
12242
+ };
12243
+ };
12244
+ export type MutateDiagnosticsEnableResponse = MutateDiagnosticsEnableResponses[keyof MutateDiagnosticsEnableResponses];
12245
+ export type MutateDiagnosticsDisableData = {
12246
+ body?: never;
12247
+ path?: never;
12248
+ query?: never;
12249
+ url: '/v1/diagnostics/disable';
12250
+ };
12251
+ export type MutateDiagnosticsDisableResponses = {
12252
+ /**
12253
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12254
+ */
12255
+ 200: {
12256
+ success: true;
12257
+ data: {
12258
+ [key: string]: unknown;
12259
+ };
12260
+ /**
12261
+ * LAFS response metadata.
12262
+ */
12263
+ meta: {
12264
+ [key: string]: unknown;
12265
+ };
12266
+ [key: string]: unknown;
12267
+ };
12268
+ };
12269
+ export type MutateDiagnosticsDisableResponse = MutateDiagnosticsDisableResponses[keyof MutateDiagnosticsDisableResponses];
12270
+ export type MutateDocsAddData = {
12271
+ body: {
12272
+ /**
12273
+ * Owner entity ID (e.g. T123, ses_*, O-abc)
12274
+ */
12275
+ ownerId: string;
12276
+ /**
12277
+ * Path to local file to attach
12278
+ */
12279
+ file?: string;
12280
+ /**
12281
+ * Remote URL to attach
12282
+ */
12283
+ url?: string;
12284
+ /**
12285
+ * Inline document body (T10965); mutually exclusive with file/url
12286
+ */
12287
+ content?: string;
12288
+ /**
12289
+ * Free-text description
12290
+ */
12291
+ desc?: string;
12292
+ /**
12293
+ * Comma-separated labels
12294
+ */
12295
+ labels?: string;
12296
+ /**
12297
+ * Agent identity (defaults to "human")
12298
+ */
12299
+ attachedBy?: string;
12300
+ };
12301
+ path?: never;
12302
+ query?: never;
12303
+ url: '/v1/docs/add';
12304
+ };
12305
+ export type MutateDocsAddResponses = {
12306
+ /**
12307
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12308
+ */
12309
+ 200: {
12310
+ success: true;
12311
+ data: {
12312
+ [key: string]: unknown;
12313
+ };
12314
+ /**
12315
+ * LAFS response metadata.
12316
+ */
12317
+ meta: {
12318
+ [key: string]: unknown;
12319
+ };
12320
+ [key: string]: unknown;
12321
+ };
12322
+ };
12323
+ export type MutateDocsAddResponse = MutateDocsAddResponses[keyof MutateDocsAddResponses];
12324
+ export type QueryDocsListData = {
12325
+ body?: {
12326
+ /**
12327
+ * Filter by task ID (e.g. T123)
12328
+ */
12329
+ task?: string;
12330
+ /**
12331
+ * Filter by session ID (e.g. ses_*)
12332
+ */
12333
+ session?: string;
12334
+ /**
12335
+ * Filter by observation ID (e.g. O-abc)
12336
+ */
12337
+ observation?: string;
12338
+ };
12339
+ path?: never;
12340
+ query?: never;
12341
+ url: '/v1/docs/list';
12342
+ };
12343
+ export type QueryDocsListResponses = {
12344
+ /**
12345
+ * Records (doc) are under /data/attachments (array). Use /data/attachments/0/<field>.
12346
+ */
12347
+ 200: {
12348
+ success: true;
12349
+ data: {
12350
+ /**
12351
+ * Array of doc records.
12352
+ */
12353
+ attachments: Array<{
12354
+ [key: string]: unknown;
12355
+ }>;
12356
+ [key: string]: unknown;
12357
+ };
12358
+ /**
12359
+ * LAFS response metadata.
12360
+ */
12361
+ meta: {
12362
+ [key: string]: unknown;
12363
+ };
12364
+ [key: string]: unknown;
12365
+ };
12366
+ };
12367
+ export type QueryDocsListResponse = QueryDocsListResponses[keyof QueryDocsListResponses];
12368
+ export type QueryDocsFetchData = {
12369
+ body: {
12370
+ /**
12371
+ * Attachment ID (att_*) or SHA-256 hex
12372
+ */
12373
+ attachmentRef: string;
12374
+ };
12375
+ path?: never;
12376
+ query?: never;
12377
+ url: '/v1/docs/fetch';
12378
+ };
12379
+ export type QueryDocsFetchResponses = {
12380
+ /**
12381
+ * Records (doc) are under /data/metadata. Use /data/metadata/<field>.
12382
+ */
12383
+ 200: {
12384
+ success: true;
12385
+ data: {
12386
+ /**
12387
+ * A doc record.
12388
+ */
12389
+ metadata: {
12390
+ [key: string]: unknown;
12391
+ };
12392
+ [key: string]: unknown;
12393
+ };
12394
+ /**
12395
+ * LAFS response metadata.
12396
+ */
12397
+ meta: {
12398
+ [key: string]: unknown;
12399
+ };
12400
+ [key: string]: unknown;
12401
+ };
12402
+ };
12403
+ export type QueryDocsFetchResponse = QueryDocsFetchResponses[keyof QueryDocsFetchResponses];
12404
+ export type MutateDocsRemoveData = {
12405
+ body: {
12406
+ /**
12407
+ * Attachment ID (att_*) or SHA-256 hex
12408
+ */
12409
+ attachmentRef: string;
12410
+ /**
12411
+ * Owner entity ID to remove the ref from
12412
+ */
12413
+ from: string;
12414
+ };
12415
+ path?: never;
12416
+ query?: never;
12417
+ url: '/v1/docs/remove';
12418
+ };
12419
+ export type MutateDocsRemoveResponses = {
12420
+ /**
12421
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12422
+ */
12423
+ 200: {
12424
+ success: true;
12425
+ data: {
12426
+ [key: string]: unknown;
12427
+ };
12428
+ /**
12429
+ * LAFS response metadata.
12430
+ */
12431
+ meta: {
12432
+ [key: string]: unknown;
12433
+ };
12434
+ [key: string]: unknown;
12435
+ };
12436
+ };
12437
+ export type MutateDocsRemoveResponse = MutateDocsRemoveResponses[keyof MutateDocsRemoveResponses];
12438
+ export type MutateDocsLinkDecisionData = {
12439
+ body: {
12440
+ /**
12441
+ * Slug of the ADR doc
12442
+ */
12443
+ adrSlug: string;
12444
+ /**
12445
+ * The D#### brain ledger decision id the ADR ratifies
12446
+ */
12447
+ decisionId: string;
12448
+ };
12449
+ path?: never;
12450
+ query?: never;
12451
+ url: '/v1/docs/link-decision';
12452
+ };
12453
+ export type MutateDocsLinkDecisionResponses = {
12454
+ /**
12455
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12456
+ */
12457
+ 200: {
12458
+ success: true;
12459
+ data: {
12460
+ [key: string]: unknown;
12461
+ };
12462
+ /**
12463
+ * LAFS response metadata.
12464
+ */
12465
+ meta: {
12466
+ [key: string]: unknown;
12467
+ };
12468
+ [key: string]: unknown;
12469
+ };
12470
+ };
12471
+ export type MutateDocsLinkDecisionResponse = MutateDocsLinkDecisionResponses[keyof MutateDocsLinkDecisionResponses];
12472
+ export type MutateDocsUnlinkDecisionData = {
12473
+ body: {
12474
+ /**
12475
+ * Slug of the ADR doc
12476
+ */
12477
+ adrSlug: string;
12478
+ /**
12479
+ * The D#### brain ledger decision id to unlink
12480
+ */
12481
+ decisionId: string;
12482
+ };
12483
+ path?: never;
12484
+ query?: never;
12485
+ url: '/v1/docs/unlink-decision';
12486
+ };
12487
+ export type MutateDocsUnlinkDecisionResponses = {
12488
+ /**
12489
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12490
+ */
12491
+ 200: {
12492
+ success: true;
12493
+ data: {
12494
+ [key: string]: unknown;
12495
+ };
12496
+ /**
12497
+ * LAFS response metadata.
12498
+ */
12499
+ meta: {
12500
+ [key: string]: unknown;
12501
+ };
12502
+ [key: string]: unknown;
12503
+ };
12504
+ };
12505
+ export type MutateDocsUnlinkDecisionResponse = MutateDocsUnlinkDecisionResponses[keyof MutateDocsUnlinkDecisionResponses];
12506
+ export type MutateDocsSupersedeData = {
12507
+ body: {
12508
+ /**
12509
+ * Slug of the doc being replaced
12510
+ */
12511
+ oldSlug: string;
12512
+ /**
12513
+ * Slug of the doc that replaces oldSlug
12514
+ */
12515
+ newSlug: string;
12516
+ /**
12517
+ * Optional human-readable reason carried back on the response
12518
+ */
12519
+ reason?: string;
12520
+ };
12521
+ path?: never;
12522
+ query?: never;
12523
+ url: '/v1/docs/supersede';
12524
+ };
12525
+ export type MutateDocsSupersedeResponses = {
12526
+ /**
12527
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12528
+ */
12529
+ 200: {
12530
+ success: true;
12531
+ data: {
12532
+ [key: string]: unknown;
12533
+ };
12534
+ /**
12535
+ * LAFS response metadata.
12536
+ */
12537
+ meta: {
12538
+ [key: string]: unknown;
12539
+ };
12540
+ [key: string]: unknown;
12541
+ };
12542
+ };
12543
+ export type MutateDocsSupersedeResponse = MutateDocsSupersedeResponses[keyof MutateDocsSupersedeResponses];
12544
+ export type QueryDocsStatusData = {
12545
+ body?: never;
12546
+ path?: never;
12547
+ query?: never;
12548
+ url: '/v1/docs/status';
12549
+ };
12550
+ export type QueryDocsStatusResponses = {
12551
+ /**
12552
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12553
+ */
12554
+ 200: {
12555
+ success: true;
12556
+ data: {
12557
+ [key: string]: unknown;
12558
+ };
12559
+ /**
12560
+ * LAFS response metadata.
12561
+ */
12562
+ meta: {
12563
+ [key: string]: unknown;
12564
+ };
12565
+ [key: string]: unknown;
12566
+ };
12567
+ };
12568
+ export type QueryDocsStatusResponse = QueryDocsStatusResponses[keyof QueryDocsStatusResponses];
12569
+ export type QueryDocsExportData = {
12570
+ body: {
12571
+ /**
12572
+ * Task whose document to export
12573
+ */
12574
+ taskId: string;
12575
+ /**
12576
+ * Include attachment manifest
12577
+ */
12578
+ includeAttachments?: boolean;
12579
+ /**
12580
+ * Include memory references
12581
+ */
12582
+ includeMemoryRefs?: boolean;
12583
+ };
12584
+ path?: never;
12585
+ query?: never;
12586
+ url: '/v1/docs/export';
12587
+ };
12588
+ export type QueryDocsExportResponses = {
12589
+ /**
12590
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12591
+ */
12592
+ 200: {
12593
+ success: true;
12594
+ data: {
12595
+ [key: string]: unknown;
12596
+ };
12597
+ /**
12598
+ * LAFS response metadata.
12599
+ */
12600
+ meta: {
12601
+ [key: string]: unknown;
12602
+ };
12603
+ [key: string]: unknown;
12604
+ };
12605
+ };
12606
+ export type QueryDocsExportResponse = QueryDocsExportResponses[keyof QueryDocsExportResponses];
12607
+ export type QueryDocsSearchData = {
12608
+ body: {
12609
+ /**
12610
+ * Document search text
12611
+ */
12612
+ query: string;
12613
+ /**
12614
+ * Optional owner scope
12615
+ */
12616
+ ownerId?: string;
12617
+ /**
12618
+ * Maximum matches
12619
+ */
12620
+ limit?: number;
12621
+ /**
12622
+ * Document kind filter
12623
+ */
12624
+ type?: string;
12625
+ };
12626
+ path?: never;
12627
+ query?: never;
12628
+ url: '/v1/docs/search';
12629
+ };
12630
+ export type QueryDocsSearchResponses = {
12631
+ /**
12632
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12633
+ */
12634
+ 200: {
12635
+ success: true;
12636
+ data: {
12637
+ [key: string]: unknown;
12638
+ };
12639
+ /**
12640
+ * LAFS response metadata.
12641
+ */
12642
+ meta: {
12643
+ [key: string]: unknown;
12644
+ };
12645
+ [key: string]: unknown;
12646
+ };
12647
+ };
12648
+ export type QueryDocsSearchResponse = QueryDocsSearchResponses[keyof QueryDocsSearchResponses];
12649
+ export type QueryDocsFindData = {
12650
+ body: {
12651
+ /**
12652
+ * Existing document slug to compare
12653
+ */
12654
+ similarSlug: string;
12655
+ /**
12656
+ * Maximum matches
12657
+ */
12658
+ limit?: number;
12659
+ /**
12660
+ * Minimum similarity
12661
+ */
12662
+ threshold?: number;
12663
+ /**
12664
+ * Compare all document kinds
12665
+ */
12666
+ allKinds?: boolean;
12667
+ };
12668
+ path?: never;
12669
+ query?: never;
12670
+ url: '/v1/docs/find';
12671
+ };
12672
+ export type QueryDocsFindResponses = {
12673
+ /**
12674
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12675
+ */
12676
+ 200: {
12677
+ success: true;
12678
+ data: {
12679
+ [key: string]: unknown;
12680
+ };
12681
+ /**
12682
+ * LAFS response metadata.
12683
+ */
12684
+ meta: {
12685
+ [key: string]: unknown;
12686
+ };
12687
+ [key: string]: unknown;
12688
+ };
12689
+ };
12690
+ export type QueryDocsFindResponse = QueryDocsFindResponses[keyof QueryDocsFindResponses];
12691
+ export type QueryDocsMergeData = {
12692
+ body: {
12693
+ /**
12694
+ * First attachment reference
12695
+ */
12696
+ attA: string;
12697
+ /**
12698
+ * Second attachment reference
12699
+ */
12700
+ attB: string;
12701
+ /**
12702
+ * three-way, cherry-pick, or multi-diff
12703
+ */
12704
+ strategy?: string;
12705
+ /**
12706
+ * Common ancestor attachment reference
12707
+ */
12708
+ base?: string;
12709
+ };
12710
+ path?: never;
12711
+ query?: never;
12712
+ url: '/v1/docs/merge';
12713
+ };
12714
+ export type QueryDocsMergeResponses = {
12715
+ /**
12716
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12717
+ */
12718
+ 200: {
12719
+ success: true;
12720
+ data: {
12721
+ [key: string]: unknown;
12722
+ };
12723
+ /**
12724
+ * LAFS response metadata.
12725
+ */
12726
+ meta: {
12727
+ [key: string]: unknown;
12728
+ };
12729
+ [key: string]: unknown;
12730
+ };
12731
+ };
12732
+ export type QueryDocsMergeResponse = QueryDocsMergeResponses[keyof QueryDocsMergeResponses];
12733
+ export type QueryDocsRankData = {
12734
+ body: {
12735
+ /**
12736
+ * Owner whose documents to rank
12737
+ */
12738
+ ownerId: string;
12739
+ /**
12740
+ * Optional ranking query
12741
+ */
12742
+ query?: string;
12743
+ };
12744
+ path?: never;
12745
+ query?: never;
12746
+ url: '/v1/docs/rank';
12747
+ };
12748
+ export type QueryDocsRankResponses = {
12749
+ /**
12750
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12751
+ */
12752
+ 200: {
12753
+ success: true;
12754
+ data: {
12755
+ [key: string]: unknown;
12756
+ };
12757
+ /**
12758
+ * LAFS response metadata.
12759
+ */
12760
+ meta: {
12761
+ [key: string]: unknown;
12762
+ };
12763
+ [key: string]: unknown;
12764
+ };
12765
+ };
12766
+ export type QueryDocsRankResponse = QueryDocsRankResponses[keyof QueryDocsRankResponses];
12767
+ export type QueryDocsVersionsData = {
12768
+ body: {
12769
+ /**
12770
+ * Document owner
12771
+ */
12772
+ ownerId: string;
12773
+ /**
12774
+ * Optional document name
12775
+ */
12776
+ name?: string;
12777
+ };
12778
+ path?: never;
12779
+ query?: never;
12780
+ url: '/v1/docs/versions';
12781
+ };
12782
+ export type QueryDocsVersionsResponses = {
12783
+ /**
12784
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
12785
+ */
12786
+ 200: {
12787
+ success: true;
12788
+ data: {
12789
+ [key: string]: unknown;
12790
+ };
12791
+ /**
12792
+ * LAFS response metadata.
12793
+ */
12794
+ meta: {
12795
+ [key: string]: unknown;
12796
+ };
12797
+ [key: string]: unknown;
12798
+ };
12799
+ };
12800
+ export type QueryDocsVersionsResponse = QueryDocsVersionsResponses[keyof QueryDocsVersionsResponses];
12801
+ export type MutateDocsPublishData = {
12802
+ body?: {
12803
+ /**
12804
+ * Publication target: file or pr
12805
+ */
12806
+ target?: string;
12807
+ /**
12808
+ * Required for file publication
12809
+ */
12810
+ ownerId?: string;
12811
+ /**
12812
+ * Required destination for file publication
12813
+ */
12814
+ toPath?: string;
12815
+ /**
12816
+ * Attachment to publish
12817
+ */
12818
+ attachmentId?: string;
12819
+ /**
12820
+ * Required document reference for PR publication
12821
+ */
12822
+ slugOrId?: string;
12823
+ /**
12824
+ * Override document slug
12825
+ */
12826
+ slug?: string;
12827
+ /**
12828
+ * Override document kind
12829
+ */
12830
+ type?: string;
12831
+ /**
12832
+ * Override PR title
12833
+ */
12834
+ title?: string;
12835
+ /**
12836
+ * Override PR body
12837
+ */
12838
+ body?: string;
12839
+ /**
12840
+ * PR base branch
11283
12841
  */
11284
- taskId: string;
12842
+ base?: string;
12843
+ /**
12844
+ * Owning task id (T####) for the PR commit subject
12845
+ */
12846
+ taskId?: string;
11285
12847
  };
11286
12848
  path?: never;
11287
12849
  query?: never;
11288
- url: '/v1/intelligence/match';
12850
+ url: '/v1/docs/publish';
11289
12851
  };
11290
- export type QueryIntelligenceMatchResponses = {
12852
+ export type MutateDocsPublishResponses = {
11291
12853
  /**
11292
12854
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11293
12855
  */
@@ -11305,14 +12867,43 @@ export type QueryIntelligenceMatchResponses = {
11305
12867
  [key: string]: unknown;
11306
12868
  };
11307
12869
  };
11308
- export type QueryIntelligenceMatchResponse = QueryIntelligenceMatchResponses[keyof QueryIntelligenceMatchResponses];
11309
- export type QueryDiagnosticsStatusData = {
11310
- body?: never;
12870
+ export type MutateDocsPublishResponse = MutateDocsPublishResponses[keyof MutateDocsPublishResponses];
12871
+ export type MutateDocsPublishPrData = {
12872
+ body: {
12873
+ /**
12874
+ * Document reference to publish
12875
+ */
12876
+ slugOrId: string;
12877
+ /**
12878
+ * Override document slug
12879
+ */
12880
+ slug?: string;
12881
+ /**
12882
+ * Override document kind
12883
+ */
12884
+ type?: string;
12885
+ /**
12886
+ * Override PR title
12887
+ */
12888
+ title?: string;
12889
+ /**
12890
+ * Override PR body
12891
+ */
12892
+ body?: string;
12893
+ /**
12894
+ * PR base branch
12895
+ */
12896
+ base?: string;
12897
+ /**
12898
+ * Owning task id (T####) for the PR commit subject
12899
+ */
12900
+ taskId?: string;
12901
+ };
11311
12902
  path?: never;
11312
12903
  query?: never;
11313
- url: '/v1/diagnostics/status';
12904
+ url: '/v1/docs/publish-pr';
11314
12905
  };
11315
- export type QueryDiagnosticsStatusResponses = {
12906
+ export type MutateDocsPublishPrResponses = {
11316
12907
  /**
11317
12908
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11318
12909
  */
@@ -11330,23 +12921,31 @@ export type QueryDiagnosticsStatusResponses = {
11330
12921
  [key: string]: unknown;
11331
12922
  };
11332
12923
  };
11333
- export type QueryDiagnosticsStatusResponse = QueryDiagnosticsStatusResponses[keyof QueryDiagnosticsStatusResponses];
11334
- export type QueryDiagnosticsAnalyzeData = {
11335
- body?: {
12924
+ export type MutateDocsPublishPrResponse = MutateDocsPublishPrResponses[keyof MutateDocsPublishPrResponses];
12925
+ export type MutateDocsSyncData = {
12926
+ body: {
11336
12927
  /**
11337
- * Analysis window in days (default: 30)
12928
+ * Document owner
11338
12929
  */
11339
- days?: number;
12930
+ ownerId: string;
11340
12931
  /**
11341
- * Skip pushing observations to BRAIN
12932
+ * Source file path
11342
12933
  */
11343
- noBrain?: boolean;
12934
+ fromPath: string;
12935
+ /**
12936
+ * Document blob name
12937
+ */
12938
+ blobName?: string;
12939
+ /**
12940
+ * Document media type
12941
+ */
12942
+ contentType?: string;
11344
12943
  };
11345
12944
  path?: never;
11346
12945
  query?: never;
11347
- url: '/v1/diagnostics/analyze';
12946
+ url: '/v1/docs/sync';
11348
12947
  };
11349
- export type QueryDiagnosticsAnalyzeResponses = {
12948
+ export type MutateDocsSyncResponses = {
11350
12949
  /**
11351
12950
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11352
12951
  */
@@ -11364,19 +12963,31 @@ export type QueryDiagnosticsAnalyzeResponses = {
11364
12963
  [key: string]: unknown;
11365
12964
  };
11366
12965
  };
11367
- export type QueryDiagnosticsAnalyzeResponse = QueryDiagnosticsAnalyzeResponses[keyof QueryDiagnosticsAnalyzeResponses];
11368
- export type QueryDiagnosticsExportData = {
11369
- body?: {
12966
+ export type MutateDocsSyncResponse = MutateDocsSyncResponses[keyof MutateDocsSyncResponses];
12967
+ export type MutateDocsImportData = {
12968
+ body: {
11370
12969
  /**
11371
- * Limit export to last N days (default: all)
12970
+ * Root directory to scan
11372
12971
  */
11373
- days?: number;
12972
+ scanRoot: string;
12973
+ /**
12974
+ * Preview without writing
12975
+ */
12976
+ dryRun?: boolean;
12977
+ /**
12978
+ * Replace conflicting import mappings
12979
+ */
12980
+ force?: boolean;
12981
+ /**
12982
+ * Import manifest path
12983
+ */
12984
+ manifestPath?: string;
11374
12985
  };
11375
12986
  path?: never;
11376
12987
  query?: never;
11377
- url: '/v1/diagnostics/export';
12988
+ url: '/v1/docs/import';
11378
12989
  };
11379
- export type QueryDiagnosticsExportResponses = {
12990
+ export type MutateDocsImportResponses = {
11380
12991
  /**
11381
12992
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11382
12993
  */
@@ -11394,39 +13005,23 @@ export type QueryDiagnosticsExportResponses = {
11394
13005
  [key: string]: unknown;
11395
13006
  };
11396
13007
  };
11397
- export type QueryDiagnosticsExportResponse = QueryDiagnosticsExportResponses[keyof QueryDiagnosticsExportResponses];
11398
- export type MutateDiagnosticsEnableData = {
11399
- body?: never;
11400
- path?: never;
11401
- query?: never;
11402
- url: '/v1/diagnostics/enable';
11403
- };
11404
- export type MutateDiagnosticsEnableResponses = {
11405
- /**
11406
- * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11407
- */
11408
- 200: {
11409
- success: true;
11410
- data: {
11411
- [key: string]: unknown;
11412
- };
13008
+ export type MutateDocsImportResponse = MutateDocsImportResponses[keyof MutateDocsImportResponses];
13009
+ export type QueryDocsAuditData = {
13010
+ body?: {
11413
13011
  /**
11414
- * LAFS response metadata.
13012
+ * Document slug whose history to inspect
11415
13013
  */
11416
- meta: {
11417
- [key: string]: unknown;
11418
- };
11419
- [key: string]: unknown;
13014
+ slug?: string;
13015
+ /**
13016
+ * Verify the full audit chain
13017
+ */
13018
+ verify?: boolean;
11420
13019
  };
11421
- };
11422
- export type MutateDiagnosticsEnableResponse = MutateDiagnosticsEnableResponses[keyof MutateDiagnosticsEnableResponses];
11423
- export type MutateDiagnosticsDisableData = {
11424
- body?: never;
11425
13020
  path?: never;
11426
13021
  query?: never;
11427
- url: '/v1/diagnostics/disable';
13022
+ url: '/v1/docs/audit';
11428
13023
  };
11429
- export type MutateDiagnosticsDisableResponses = {
13024
+ export type QueryDocsAuditResponses = {
11430
13025
  /**
11431
13026
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11432
13027
  */
@@ -11444,43 +13039,19 @@ export type MutateDiagnosticsDisableResponses = {
11444
13039
  [key: string]: unknown;
11445
13040
  };
11446
13041
  };
11447
- export type MutateDiagnosticsDisableResponse = MutateDiagnosticsDisableResponses[keyof MutateDiagnosticsDisableResponses];
11448
- export type MutateDocsAddData = {
11449
- body: {
11450
- /**
11451
- * Owner entity ID (e.g. T123, ses_*, O-abc)
11452
- */
11453
- ownerId: string;
11454
- /**
11455
- * Path to local file to attach
11456
- */
11457
- file?: string;
11458
- /**
11459
- * Remote URL to attach
11460
- */
11461
- url?: string;
11462
- /**
11463
- * Inline document body (T10965); mutually exclusive with file/url
11464
- */
11465
- content?: string;
11466
- /**
11467
- * Free-text description
11468
- */
11469
- desc?: string;
11470
- /**
11471
- * Comma-separated labels
11472
- */
11473
- labels?: string;
13042
+ export type QueryDocsAuditResponse = QueryDocsAuditResponses[keyof QueryDocsAuditResponses];
13043
+ export type QueryDocsDoctorData = {
13044
+ body?: {
11474
13045
  /**
11475
- * Agent identity (defaults to "human")
13046
+ * Age threshold in days for the stale-drafts check (default 30)
11476
13047
  */
11477
- attachedBy?: string;
13048
+ olderThanDays?: number;
11478
13049
  };
11479
13050
  path?: never;
11480
13051
  query?: never;
11481
- url: '/v1/docs/add';
13052
+ url: '/v1/docs/doctor/query';
11482
13053
  };
11483
- export type MutateDocsAddResponses = {
13054
+ export type QueryDocsDoctorResponses = {
11484
13055
  /**
11485
13056
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11486
13057
  */
@@ -11498,39 +13069,33 @@ export type MutateDocsAddResponses = {
11498
13069
  [key: string]: unknown;
11499
13070
  };
11500
13071
  };
11501
- export type MutateDocsAddResponse = MutateDocsAddResponses[keyof MutateDocsAddResponses];
11502
- export type QueryDocsListData = {
13072
+ export type QueryDocsDoctorResponse = QueryDocsDoctorResponses[keyof QueryDocsDoctorResponses];
13073
+ export type QueryDocsTriageData = {
11503
13074
  body?: {
11504
13075
  /**
11505
- * Filter by task ID (e.g. T123)
13076
+ * Maximum docs to scan, oldest first (default 25)
11506
13077
  */
11507
- task?: string;
13078
+ limit?: number;
11508
13079
  /**
11509
- * Filter by session ID (e.g. ses_*)
13080
+ * Lifecycle status to scan (default draft)
11510
13081
  */
11511
- session?: string;
13082
+ status?: string;
11512
13083
  /**
11513
- * Filter by observation ID (e.g. O-abc)
13084
+ * Persist every verdict as a proposed D#### decision (default false)
11514
13085
  */
11515
- observation?: string;
13086
+ record?: boolean;
11516
13087
  };
11517
13088
  path?: never;
11518
13089
  query?: never;
11519
- url: '/v1/docs/list';
13090
+ url: '/v1/docs/triage';
11520
13091
  };
11521
- export type QueryDocsListResponses = {
13092
+ export type QueryDocsTriageResponses = {
11522
13093
  /**
11523
- * Records (doc) are under /data/attachments (array). Use /data/attachments/0/<field>.
13094
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11524
13095
  */
11525
13096
  200: {
11526
13097
  success: true;
11527
13098
  data: {
11528
- /**
11529
- * Array of doc records.
11530
- */
11531
- attachments: Array<{
11532
- [key: string]: unknown;
11533
- }>;
11534
13099
  [key: string]: unknown;
11535
13100
  };
11536
13101
  /**
@@ -11542,31 +13107,20 @@ export type QueryDocsListResponses = {
11542
13107
  [key: string]: unknown;
11543
13108
  };
11544
13109
  };
11545
- export type QueryDocsListResponse = QueryDocsListResponses[keyof QueryDocsListResponses];
11546
- export type QueryDocsFetchData = {
11547
- body: {
11548
- /**
11549
- * Attachment ID (att_*) or SHA-256 hex
11550
- */
11551
- attachmentRef: string;
11552
- };
13110
+ export type QueryDocsTriageResponse = QueryDocsTriageResponses[keyof QueryDocsTriageResponses];
13111
+ export type QueryDocsStatsData = {
13112
+ body?: never;
11553
13113
  path?: never;
11554
13114
  query?: never;
11555
- url: '/v1/docs/fetch';
13115
+ url: '/v1/docs/stats';
11556
13116
  };
11557
- export type QueryDocsFetchResponses = {
13117
+ export type QueryDocsStatsResponses = {
11558
13118
  /**
11559
- * Records (doc) are under /data/metadata. Use /data/metadata/<field>.
13119
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11560
13120
  */
11561
13121
  200: {
11562
13122
  success: true;
11563
13123
  data: {
11564
- /**
11565
- * A doc record.
11566
- */
11567
- metadata: {
11568
- [key: string]: unknown;
11569
- };
11570
13124
  [key: string]: unknown;
11571
13125
  };
11572
13126
  /**
@@ -11578,23 +13132,27 @@ export type QueryDocsFetchResponses = {
11578
13132
  [key: string]: unknown;
11579
13133
  };
11580
13134
  };
11581
- export type QueryDocsFetchResponse = QueryDocsFetchResponses[keyof QueryDocsFetchResponses];
11582
- export type MutateDocsRemoveData = {
11583
- body: {
13135
+ export type QueryDocsStatsResponse = QueryDocsStatsResponses[keyof QueryDocsStatsResponses];
13136
+ export type MutateDocsDoctorData = {
13137
+ body?: {
11584
13138
  /**
11585
- * Attachment ID (att_*) or SHA-256 hex
13139
+ * Execute repairs (default false — dry-run plan only)
11586
13140
  */
11587
- attachmentRef: string;
13141
+ apply?: boolean;
11588
13142
  /**
11589
- * Owner entity ID to remove the ref from
13143
+ * Execute ONLY the legacy-blob-coverage backfill: mirror hash-verified legacy bytes into the blob store so unmigrated docs become readable (T13653)
11590
13144
  */
11591
- from: string;
13145
+ repair?: boolean;
13146
+ /**
13147
+ * Age threshold in days for the stale-drafts check (default 30)
13148
+ */
13149
+ olderThanDays?: number;
11592
13150
  };
11593
13151
  path?: never;
11594
13152
  query?: never;
11595
- url: '/v1/docs/remove';
13153
+ url: '/v1/docs/doctor/mutate';
11596
13154
  };
11597
- export type MutateDocsRemoveResponses = {
13155
+ export type MutateDocsDoctorResponses = {
11598
13156
  /**
11599
13157
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11600
13158
  */
@@ -11612,27 +13170,14 @@ export type MutateDocsRemoveResponses = {
11612
13170
  [key: string]: unknown;
11613
13171
  };
11614
13172
  };
11615
- export type MutateDocsRemoveResponse = MutateDocsRemoveResponses[keyof MutateDocsRemoveResponses];
11616
- export type MutateDocsSupersedeData = {
11617
- body: {
11618
- /**
11619
- * Slug of the doc being replaced
11620
- */
11621
- oldSlug: string;
11622
- /**
11623
- * Slug of the doc that replaces oldSlug
11624
- */
11625
- newSlug: string;
11626
- /**
11627
- * Optional human-readable reason carried back on the response
11628
- */
11629
- reason?: string;
11630
- };
13173
+ export type MutateDocsDoctorResponse = MutateDocsDoctorResponses[keyof MutateDocsDoctorResponses];
13174
+ export type MutateDocsMigrateData = {
13175
+ body?: never;
11631
13176
  path?: never;
11632
13177
  query?: never;
11633
- url: '/v1/docs/supersede';
13178
+ url: '/v1/docs/migrate';
11634
13179
  };
11635
- export type MutateDocsSupersedeResponses = {
13180
+ export type MutateDocsMigrateResponses = {
11636
13181
  /**
11637
13182
  * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
11638
13183
  */
@@ -11650,7 +13195,7 @@ export type MutateDocsSupersedeResponses = {
11650
13195
  [key: string]: unknown;
11651
13196
  };
11652
13197
  };
11653
- export type MutateDocsSupersedeResponse = MutateDocsSupersedeResponses[keyof MutateDocsSupersedeResponses];
13198
+ export type MutateDocsMigrateResponse = MutateDocsMigrateResponses[keyof MutateDocsMigrateResponses];
11654
13199
  export type QueryDocsGenerateData = {
11655
13200
  body: {
11656
13201
  /**
@@ -11753,6 +13298,10 @@ export type MutateDocsUpdateData = {
11753
13298
  * Inline UTF-8 content (mutually exclusive with file)
11754
13299
  */
11755
13300
  content?: string;
13301
+ /**
13302
+ * Expected base version uid — the metadata.headVersionUid from the `cleo docs fetch <slug>` envelope the edit was authored against (T13674). When the stored head has moved past it: append-shaped section edits are three-way merged through the section CRDT (both writers survive); a non-mergeable section edit is recorded as a named section conflict — nothing is silently dropped. A base that does not resolve to this doc's version history is refused with E_DOC_BASE_UNKNOWN before any write. Works with --content and with a UTF-8 text --file; a non-text --file with a base is refused with E_DOC_BASE_UNSUPPORTED. The update result carries the new headVersionUid, so edits can chain without a re-fetch. Omit only when the edit was not based on an earlier fetch (the current head is then assumed).
13303
+ */
13304
+ baseVersionUid?: string;
11756
13305
  /**
11757
13306
  * One-line summary describing the change (recorded in the audit log)
11758
13307
  */
@@ -12622,13 +14171,21 @@ export type MutateReleasePlanData = {
12622
14171
  */
12623
14172
  scheme?: string;
12624
14173
  /**
12625
- * Release channel: latest | beta | alpha | rc
14174
+ * Release channel: latest | beta | alpha | rc | canary
12626
14175
  */
12627
14176
  channel?: string;
12628
14177
  /**
12629
14178
  * Mark plan as release_kind=hotfix
12630
14179
  */
12631
14180
  hotfix?: boolean;
14181
+ /**
14182
+ * Require the unified-hooks pilot for this stable promotion
14183
+ */
14184
+ hooksV1Promotion?: boolean;
14185
+ /**
14186
+ * Audited reason to ship a source change that opens the hooks-v1 gate without the promotion
14187
+ */
14188
+ hooksV1Waiver?: string;
12632
14189
  /**
12633
14190
  * Compute the plan without writing file or DB row
12634
14191
  */
@@ -12675,6 +14232,14 @@ export type MutateReleaseOpenData = {
12675
14232
  * Commit plan file before dispatching
12676
14233
  */
12677
14234
  commitPlan?: boolean;
14235
+ /**
14236
+ * Epic task ID forwarded as the plan scope (e.g. T9999)
14237
+ */
14238
+ epic?: string;
14239
+ /**
14240
+ * Comma-separated task IDs forwarded as the plan scope for a task-scoped release
14241
+ */
14242
+ tasks?: string;
12678
14243
  };
12679
14244
  path?: never;
12680
14245
  query?: never;
@@ -13607,6 +15172,31 @@ export type QueryTasksContextResponses = {
13607
15172
  };
13608
15173
  };
13609
15174
  export type QueryTasksContextResponse = QueryTasksContextResponses[keyof QueryTasksContextResponses];
15175
+ export type QuerySelfimproveProbeData = {
15176
+ body?: never;
15177
+ path?: never;
15178
+ query?: never;
15179
+ url: '/v1/selfimprove/probe';
15180
+ };
15181
+ export type QuerySelfimproveProbeResponses = {
15182
+ /**
15183
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
15184
+ */
15185
+ 200: {
15186
+ success: true;
15187
+ data: {
15188
+ [key: string]: unknown;
15189
+ };
15190
+ /**
15191
+ * LAFS response metadata.
15192
+ */
15193
+ meta: {
15194
+ [key: string]: unknown;
15195
+ };
15196
+ [key: string]: unknown;
15197
+ };
15198
+ };
15199
+ export type QuerySelfimproveProbeResponse = QuerySelfimproveProbeResponses[keyof QuerySelfimproveProbeResponses];
13610
15200
  export type MutateSelfimproveRunData = {
13611
15201
  body: {
13612
15202
  /**
@@ -14698,4 +16288,38 @@ export type MutateProfileUseResponses = {
14698
16288
  };
14699
16289
  };
14700
16290
  export type MutateProfileUseResponse = MutateProfileUseResponses[keyof MutateProfileUseResponses];
16291
+ export type MutateAdminJanitorRunData = {
16292
+ body?: {
16293
+ /**
16294
+ * Report planned actions without mutating anything.
16295
+ */
16296
+ dryRun?: boolean;
16297
+ /**
16298
+ * Minimum age (ms) of an unregistered process before reap eligibility (default: 600000).
16299
+ */
16300
+ gracePeriodMs?: number;
16301
+ };
16302
+ path?: never;
16303
+ query?: never;
16304
+ url: '/v1/admin/janitor.run';
16305
+ };
16306
+ export type MutateAdminJanitorRunResponses = {
16307
+ /**
16308
+ * Generic query result — the precise /data shape is not individually contracted. Run with --full to see the verbose record, or --describe for the operation contract.
16309
+ */
16310
+ 200: {
16311
+ success: true;
16312
+ data: {
16313
+ [key: string]: unknown;
16314
+ };
16315
+ /**
16316
+ * LAFS response metadata.
16317
+ */
16318
+ meta: {
16319
+ [key: string]: unknown;
16320
+ };
16321
+ [key: string]: unknown;
16322
+ };
16323
+ };
16324
+ export type MutateAdminJanitorRunResponse = MutateAdminJanitorRunResponses[keyof MutateAdminJanitorRunResponses];
14701
16325
  //# sourceMappingURL=types.gen.d.ts.map