@xfey/tutti 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) hide show
  1. package/README.md +50 -0
  2. package/dist/approvals/index.d.ts +3 -0
  3. package/dist/approvals/index.js +3 -0
  4. package/dist/approvals/manager.d.ts +47 -0
  5. package/dist/approvals/manager.js +180 -0
  6. package/dist/approvals/projections.d.ts +34 -0
  7. package/dist/approvals/projections.js +444 -0
  8. package/dist/artifacts/index.d.ts +4 -0
  9. package/dist/artifacts/index.js +4 -0
  10. package/dist/artifacts/manifest.d.ts +48 -0
  11. package/dist/artifacts/manifest.js +334 -0
  12. package/dist/artifacts/preview-runtime.d.ts +97 -0
  13. package/dist/artifacts/preview-runtime.js +585 -0
  14. package/dist/artifacts/static-preview.d.ts +17 -0
  15. package/dist/artifacts/static-preview.js +180 -0
  16. package/dist/chat-assistant/index.d.ts +66 -0
  17. package/dist/chat-assistant/index.js +268 -0
  18. package/dist/checks/index.d.ts +47 -0
  19. package/dist/checks/index.js +169 -0
  20. package/dist/collaboration-state/clarification-messages.d.ts +8 -0
  21. package/dist/collaboration-state/clarification-messages.js +180 -0
  22. package/dist/collaboration-state/clarification-records.d.ts +27 -0
  23. package/dist/collaboration-state/clarification-records.js +266 -0
  24. package/dist/collaboration-state/clarification-round-writes.d.ts +14 -0
  25. package/dist/collaboration-state/clarification-round-writes.js +58 -0
  26. package/dist/collaboration-state/clarification-rounds.d.ts +19 -0
  27. package/dist/collaboration-state/clarification-rounds.js +347 -0
  28. package/dist/collaboration-state/clarification-successors.d.ts +8 -0
  29. package/dist/collaboration-state/clarification-successors.js +318 -0
  30. package/dist/collaboration-state/execution-status.d.ts +3 -0
  31. package/dist/collaboration-state/execution-status.js +8 -0
  32. package/dist/collaboration-state/index.d.ts +17 -0
  33. package/dist/collaboration-state/index.js +16 -0
  34. package/dist/collaboration-state/messages.d.ts +25 -0
  35. package/dist/collaboration-state/messages.js +371 -0
  36. package/dist/collaboration-state/read-state.d.ts +7 -0
  37. package/dist/collaboration-state/read-state.js +136 -0
  38. package/dist/collaboration-state/recovery.d.ts +6 -0
  39. package/dist/collaboration-state/recovery.js +125 -0
  40. package/dist/collaboration-state/run-recording.d.ts +5 -0
  41. package/dist/collaboration-state/run-recording.js +216 -0
  42. package/dist/collaboration-state/run-results.d.ts +12 -0
  43. package/dist/collaboration-state/run-results.js +202 -0
  44. package/dist/collaboration-state/scratchpad-source-state.d.ts +46 -0
  45. package/dist/collaboration-state/scratchpad-source-state.js +207 -0
  46. package/dist/collaboration-state/scratchpad.d.ts +8 -0
  47. package/dist/collaboration-state/scratchpad.js +84 -0
  48. package/dist/collaboration-state/serialization.d.ts +16 -0
  49. package/dist/collaboration-state/serialization.js +71 -0
  50. package/dist/collaboration-state/storage-types.d.ts +136 -0
  51. package/dist/collaboration-state/storage-types.js +2 -0
  52. package/dist/collaboration-state/task-details.d.ts +5 -0
  53. package/dist/collaboration-state/task-details.js +25 -0
  54. package/dist/collaboration-state/types.d.ts +289 -0
  55. package/dist/collaboration-state/types.js +2 -0
  56. package/dist/collaboration-state/worklist.d.ts +11 -0
  57. package/dist/collaboration-state/worklist.js +286 -0
  58. package/dist/control-plane/clarification-commands.d.ts +34 -0
  59. package/dist/control-plane/clarification-commands.js +106 -0
  60. package/dist/control-plane/command-recovery.d.ts +3 -0
  61. package/dist/control-plane/command-recovery.js +79 -0
  62. package/dist/control-plane/context-sync.d.ts +47 -0
  63. package/dist/control-plane/context-sync.js +207 -0
  64. package/dist/control-plane/event-publishers.d.ts +24 -0
  65. package/dist/control-plane/event-publishers.js +192 -0
  66. package/dist/control-plane/execution-status.d.ts +13 -0
  67. package/dist/control-plane/execution-status.js +130 -0
  68. package/dist/control-plane/follow-up-context.d.ts +27 -0
  69. package/dist/control-plane/follow-up-context.js +93 -0
  70. package/dist/control-plane/follow-up-output.d.ts +53 -0
  71. package/dist/control-plane/follow-up-output.js +141 -0
  72. package/dist/control-plane/follow-up-run.d.ts +22 -0
  73. package/dist/control-plane/follow-up-run.js +90 -0
  74. package/dist/control-plane/follow-up-start.d.ts +26 -0
  75. package/dist/control-plane/follow-up-start.js +101 -0
  76. package/dist/control-plane/formatters.d.ts +12 -0
  77. package/dist/control-plane/formatters.js +47 -0
  78. package/dist/control-plane/index.d.ts +62 -0
  79. package/dist/control-plane/index.js +416 -0
  80. package/dist/control-plane/invalidations.d.ts +12 -0
  81. package/dist/control-plane/invalidations.js +67 -0
  82. package/dist/control-plane/procedure-logging.d.ts +11 -0
  83. package/dist/control-plane/procedure-logging.js +95 -0
  84. package/dist/control-plane/project-brief-refresh.d.ts +31 -0
  85. package/dist/control-plane/project-brief-refresh.js +105 -0
  86. package/dist/control-plane/project-context-bootstrap.d.ts +39 -0
  87. package/dist/control-plane/project-context-bootstrap.js +107 -0
  88. package/dist/control-plane/reference-summary-refresh.d.ts +22 -0
  89. package/dist/control-plane/reference-summary-refresh.js +344 -0
  90. package/dist/control-plane/run-lineage.d.ts +8 -0
  91. package/dist/control-plane/run-lineage.js +13 -0
  92. package/dist/control-plane/run-result-recording.d.ts +46 -0
  93. package/dist/control-plane/run-result-recording.js +81 -0
  94. package/dist/control-plane/run-scheduler.d.ts +35 -0
  95. package/dist/control-plane/run-scheduler.js +110 -0
  96. package/dist/control-plane/run-start.d.ts +30 -0
  97. package/dist/control-plane/run-start.js +167 -0
  98. package/dist/control-plane/scratchpad-auto-refresh.d.ts +32 -0
  99. package/dist/control-plane/scratchpad-auto-refresh.js +150 -0
  100. package/dist/control-plane/scratchpad-refresh-start.d.ts +60 -0
  101. package/dist/control-plane/scratchpad-refresh-start.js +240 -0
  102. package/dist/control-plane/scratchpad-refresh.d.ts +29 -0
  103. package/dist/control-plane/scratchpad-refresh.js +55 -0
  104. package/dist/control-plane/scratchpad-source-messages.d.ts +10 -0
  105. package/dist/control-plane/scratchpad-source-messages.js +131 -0
  106. package/dist/control-plane/startup-recovery.d.ts +19 -0
  107. package/dist/control-plane/startup-recovery.js +113 -0
  108. package/dist/control-plane/task-compile-continuation.d.ts +25 -0
  109. package/dist/control-plane/task-compile-continuation.js +127 -0
  110. package/dist/control-plane/task-compile-output.d.ts +29 -0
  111. package/dist/control-plane/task-compile-output.js +122 -0
  112. package/dist/control-plane/task-compile-start.d.ts +43 -0
  113. package/dist/control-plane/task-compile-start.js +280 -0
  114. package/dist/control-plane/task-proposal.d.ts +3 -0
  115. package/dist/control-plane/task-proposal.js +37 -0
  116. package/dist/control-plane/types.d.ts +155 -0
  117. package/dist/control-plane/types.js +2 -0
  118. package/dist/control-plane/workflows/index.d.ts +4 -0
  119. package/dist/control-plane/workflows/index.js +4 -0
  120. package/dist/control-plane/workflows/openai.d.ts +34 -0
  121. package/dist/control-plane/workflows/openai.js +411 -0
  122. package/dist/control-plane/workflows/structured-output-schemas.d.ts +9 -0
  123. package/dist/control-plane/workflows/structured-output-schemas.js +289 -0
  124. package/dist/control-plane/workflows/structured-output-validators.d.ts +15 -0
  125. package/dist/control-plane/workflows/structured-output-validators.js +295 -0
  126. package/dist/control-plane/workflows/structured-output.d.ts +3 -0
  127. package/dist/control-plane/workflows/structured-output.js +3 -0
  128. package/dist/control-plane/workflows/types.d.ts +274 -0
  129. package/dist/control-plane/workflows/types.js +2 -0
  130. package/dist/control-plane/worklist-terminal-feedback.d.ts +15 -0
  131. package/dist/control-plane/worklist-terminal-feedback.js +135 -0
  132. package/dist/index.d.ts +2 -0
  133. package/dist/index.js +32 -0
  134. package/dist/procedure-engine/index.d.ts +56 -0
  135. package/dist/procedure-engine/index.js +163 -0
  136. package/dist/project-brief/index.d.ts +4 -0
  137. package/dist/project-brief/index.js +3 -0
  138. package/dist/project-brief/repository.d.ts +5 -0
  139. package/dist/project-brief/repository.js +97 -0
  140. package/dist/project-brief/source.d.ts +8 -0
  141. package/dist/project-brief/source.js +75 -0
  142. package/dist/project-brief/types.d.ts +40 -0
  143. package/dist/project-brief/types.js +2 -0
  144. package/dist/project-docs/context.d.ts +34 -0
  145. package/dist/project-docs/context.js +86 -0
  146. package/dist/project-timeline/index.d.ts +20 -0
  147. package/dist/project-timeline/index.js +100 -0
  148. package/dist/prompt-templates/index.d.ts +13 -0
  149. package/dist/prompt-templates/index.js +86 -0
  150. package/dist/provider-usage/index.d.ts +37 -0
  151. package/dist/provider-usage/index.js +227 -0
  152. package/dist/providers/index.d.ts +2 -0
  153. package/dist/providers/index.js +2 -0
  154. package/dist/providers/openai/app-server/json-rpc.d.ts +71 -0
  155. package/dist/providers/openai/app-server/json-rpc.js +298 -0
  156. package/dist/providers/openai/app-server/permission-profile.d.ts +64 -0
  157. package/dist/providers/openai/app-server/permission-profile.js +67 -0
  158. package/dist/providers/openai/app-server/provider-config.d.ts +10 -0
  159. package/dist/providers/openai/app-server/provider-config.js +39 -0
  160. package/dist/providers/openai/app-server/read-only-procedure.d.ts +68 -0
  161. package/dist/providers/openai/app-server/read-only-procedure.js +293 -0
  162. package/dist/providers/openai/app-server/runtime-helpers.d.ts +20 -0
  163. package/dist/providers/openai/app-server/runtime-helpers.js +151 -0
  164. package/dist/providers/openai/app-server/skills.d.ts +82 -0
  165. package/dist/providers/openai/app-server/skills.js +222 -0
  166. package/dist/providers/openai/app-server/smoke-cli.d.ts +2 -0
  167. package/dist/providers/openai/app-server/smoke-cli.js +42 -0
  168. package/dist/providers/openai/app-server/smoke-helpers.d.ts +19 -0
  169. package/dist/providers/openai/app-server/smoke-helpers.js +125 -0
  170. package/dist/providers/openai/app-server/smoke-provider-input.d.ts +6 -0
  171. package/dist/providers/openai/app-server/smoke-provider-input.js +20 -0
  172. package/dist/providers/openai/app-server/smoke-types.d.ts +49 -0
  173. package/dist/providers/openai/app-server/smoke-types.js +20 -0
  174. package/dist/providers/openai/app-server/smoke.d.ts +9 -0
  175. package/dist/providers/openai/app-server/smoke.js +157 -0
  176. package/dist/providers/openai/app-server/workspace-write-run.d.ts +87 -0
  177. package/dist/providers/openai/app-server/workspace-write-run.js +379 -0
  178. package/dist/providers/openai/chat-assistant.d.ts +34 -0
  179. package/dist/providers/openai/chat-assistant.js +72 -0
  180. package/dist/providers/openai/codex-app-server.d.ts +126 -0
  181. package/dist/providers/openai/codex-app-server.js +147 -0
  182. package/dist/providers/openai/credential-store.d.ts +31 -0
  183. package/dist/providers/openai/credential-store.js +143 -0
  184. package/dist/providers/openai/credential-validation.d.ts +45 -0
  185. package/dist/providers/openai/credential-validation.js +190 -0
  186. package/dist/providers/openai/index.d.ts +13 -0
  187. package/dist/providers/openai/index.js +13 -0
  188. package/dist/providers/openai/machine-local-files.d.ts +19 -0
  189. package/dist/providers/openai/machine-local-files.js +55 -0
  190. package/dist/providers/openai/model-config.d.ts +4 -0
  191. package/dist/providers/openai/model-config.js +4 -0
  192. package/dist/providers/openai/provider-config-errors.d.ts +6 -0
  193. package/dist/providers/openai/provider-config-errors.js +13 -0
  194. package/dist/providers/openai/provider-config-shape.d.ts +3 -0
  195. package/dist/providers/openai/provider-config-shape.js +108 -0
  196. package/dist/providers/openai/provider-config-toml.d.ts +13 -0
  197. package/dist/providers/openai/provider-config-toml.js +113 -0
  198. package/dist/providers/openai/provider-config.d.ts +73 -0
  199. package/dist/providers/openai/provider-config.js +117 -0
  200. package/dist/providers/openai/provider-setup.d.ts +31 -0
  201. package/dist/providers/openai/provider-setup.js +88 -0
  202. package/dist/providers/openai/sdk-procedure-runner.d.ts +70 -0
  203. package/dist/providers/openai/sdk-procedure-runner.js +123 -0
  204. package/dist/providers/openai/token-usage.d.ts +11 -0
  205. package/dist/providers/openai/token-usage.js +90 -0
  206. package/dist/run-engine/index.d.ts +61 -0
  207. package/dist/run-engine/index.js +140 -0
  208. package/dist/run-pipeline/candidate-diff.d.ts +3 -0
  209. package/dist/run-pipeline/candidate-diff.js +10 -0
  210. package/dist/run-pipeline/openai.d.ts +41 -0
  211. package/dist/run-pipeline/openai.js +548 -0
  212. package/dist/run-pipeline/promotion-reconcile.d.ts +13 -0
  213. package/dist/run-pipeline/promotion-reconcile.js +138 -0
  214. package/dist/run-pipeline/result-projections.d.ts +39 -0
  215. package/dist/run-pipeline/result-projections.js +115 -0
  216. package/dist/run-pipeline/task-run-invocation.d.ts +6 -0
  217. package/dist/run-pipeline/task-run-invocation.js +130 -0
  218. package/dist/run-pipeline/task-run-output.d.ts +38 -0
  219. package/dist/run-pipeline/task-run-output.js +146 -0
  220. package/dist/server-shell/cli/args.d.ts +7 -0
  221. package/dist/server-shell/cli/args.js +30 -0
  222. package/dist/server-shell/cli/cli.d.ts +3 -0
  223. package/dist/server-shell/cli/cli.js +57 -0
  224. package/dist/server-shell/cli/errors.d.ts +9 -0
  225. package/dist/server-shell/cli/errors.js +53 -0
  226. package/dist/server-shell/cli/git-bootstrap.d.ts +24 -0
  227. package/dist/server-shell/cli/git-bootstrap.js +246 -0
  228. package/dist/server-shell/cli/host-lifecycle.d.ts +45 -0
  229. package/dist/server-shell/cli/host-lifecycle.js +298 -0
  230. package/dist/server-shell/cli/host-relay-status.d.ts +6 -0
  231. package/dist/server-shell/cli/host-relay-status.js +43 -0
  232. package/dist/server-shell/cli/host-runtime-endpoint.d.ts +22 -0
  233. package/dist/server-shell/cli/host-runtime-endpoint.js +120 -0
  234. package/dist/server-shell/cli/host-server-runtime.d.ts +30 -0
  235. package/dist/server-shell/cli/host-server-runtime.js +432 -0
  236. package/dist/server-shell/cli/index.d.ts +8 -0
  237. package/dist/server-shell/cli/index.js +8 -0
  238. package/dist/server-shell/cli/launch.d.ts +45 -0
  239. package/dist/server-shell/cli/launch.js +115 -0
  240. package/dist/server-shell/cli/machine-local.d.ts +69 -0
  241. package/dist/server-shell/cli/machine-local.js +223 -0
  242. package/dist/server-shell/cli/project-identity.d.ts +20 -0
  243. package/dist/server-shell/cli/project-identity.js +87 -0
  244. package/dist/server-shell/cli/relay-registration.d.ts +31 -0
  245. package/dist/server-shell/cli/relay-registration.js +61 -0
  246. package/dist/server-shell/command-idempotency/index.d.ts +44 -0
  247. package/dist/server-shell/command-idempotency/index.js +155 -0
  248. package/dist/server-shell/dev-runner/cli.d.ts +2 -0
  249. package/dist/server-shell/dev-runner/cli.js +10 -0
  250. package/dist/server-shell/dev-runner/config.d.ts +38 -0
  251. package/dist/server-shell/dev-runner/config.js +277 -0
  252. package/dist/server-shell/dev-runner/host-cli.d.ts +2 -0
  253. package/dist/server-shell/dev-runner/host-cli.js +22 -0
  254. package/dist/server-shell/dev-runner/index.d.ts +3 -0
  255. package/dist/server-shell/dev-runner/index.js +3 -0
  256. package/dist/server-shell/dev-runner/runner.d.ts +30 -0
  257. package/dist/server-shell/dev-runner/runner.js +236 -0
  258. package/dist/server-shell/http/create-server.d.ts +18 -0
  259. package/dist/server-shell/http/create-server.js +51 -0
  260. package/dist/server-shell/http/host-tunnel.d.ts +15 -0
  261. package/dist/server-shell/http/host-tunnel.js +154 -0
  262. package/dist/server-shell/http/logger.d.ts +7 -0
  263. package/dist/server-shell/http/logger.js +19 -0
  264. package/dist/server-shell/http/routes/agent-context-auth.d.ts +41 -0
  265. package/dist/server-shell/http/routes/agent-context-auth.js +73 -0
  266. package/dist/server-shell/http/routes/agent-context-errors.d.ts +6 -0
  267. package/dist/server-shell/http/routes/agent-context-errors.js +9 -0
  268. package/dist/server-shell/http/routes/agent-context-messages-routes.d.ts +4 -0
  269. package/dist/server-shell/http/routes/agent-context-messages-routes.js +74 -0
  270. package/dist/server-shell/http/routes/agent-context-project-doc-routes.d.ts +4 -0
  271. package/dist/server-shell/http/routes/agent-context-project-doc-routes.js +86 -0
  272. package/dist/server-shell/http/routes/agent-context-project-docs.d.ts +40 -0
  273. package/dist/server-shell/http/routes/agent-context-project-docs.js +98 -0
  274. package/dist/server-shell/http/routes/agent-context-query.d.ts +31 -0
  275. package/dist/server-shell/http/routes/agent-context-query.js +72 -0
  276. package/dist/server-shell/http/routes/agent-context-reference-routes.d.ts +4 -0
  277. package/dist/server-shell/http/routes/agent-context-reference-routes.js +82 -0
  278. package/dist/server-shell/http/routes/agent-context-references.d.ts +21 -0
  279. package/dist/server-shell/http/routes/agent-context-references.js +85 -0
  280. package/dist/server-shell/http/routes/agent-context-shared.d.ts +34 -0
  281. package/dist/server-shell/http/routes/agent-context-shared.js +44 -0
  282. package/dist/server-shell/http/routes/agent-context-skills-routes.d.ts +4 -0
  283. package/dist/server-shell/http/routes/agent-context-skills-routes.js +85 -0
  284. package/dist/server-shell/http/routes/agent-context-workspace-routes.d.ts +4 -0
  285. package/dist/server-shell/http/routes/agent-context-workspace-routes.js +130 -0
  286. package/dist/server-shell/http/routes/agent-context.d.ts +8 -0
  287. package/dist/server-shell/http/routes/agent-context.js +16 -0
  288. package/dist/server-shell/http/routes/health.d.ts +7 -0
  289. package/dist/server-shell/http/routes/health.js +41 -0
  290. package/dist/server-shell/http/routes/local-control.d.ts +40 -0
  291. package/dist/server-shell/http/routes/local-control.js +260 -0
  292. package/dist/server-shell/http/routes/project-api/approval-routes.d.ts +4 -0
  293. package/dist/server-shell/http/routes/project-api/approval-routes.js +64 -0
  294. package/dist/server-shell/http/routes/project-api/artifacts-routes.d.ts +8 -0
  295. package/dist/server-shell/http/routes/project-api/artifacts-routes.js +166 -0
  296. package/dist/server-shell/http/routes/project-api/clarification-routes.d.ts +4 -0
  297. package/dist/server-shell/http/routes/project-api/clarification-routes.js +150 -0
  298. package/dist/server-shell/http/routes/project-api/constants.d.ts +3 -0
  299. package/dist/server-shell/http/routes/project-api/constants.js +3 -0
  300. package/dist/server-shell/http/routes/project-api/errors.d.ts +26 -0
  301. package/dist/server-shell/http/routes/project-api/errors.js +41 -0
  302. package/dist/server-shell/http/routes/project-api/events-stream.d.ts +11 -0
  303. package/dist/server-shell/http/routes/project-api/events-stream.js +55 -0
  304. package/dist/server-shell/http/routes/project-api/execution-routes.d.ts +4 -0
  305. package/dist/server-shell/http/routes/project-api/execution-routes.js +92 -0
  306. package/dist/server-shell/http/routes/project-api/headers.d.ts +2 -0
  307. package/dist/server-shell/http/routes/project-api/headers.js +7 -0
  308. package/dist/server-shell/http/routes/project-api/invalidations.d.ts +10 -0
  309. package/dist/server-shell/http/routes/project-api/invalidations.js +57 -0
  310. package/dist/server-shell/http/routes/project-api/messages-routes.d.ts +8 -0
  311. package/dist/server-shell/http/routes/project-api/messages-routes.js +80 -0
  312. package/dist/server-shell/http/routes/project-api/openapi-approval-routes.d.ts +128 -0
  313. package/dist/server-shell/http/routes/project-api/openapi-approval-routes.js +32 -0
  314. package/dist/server-shell/http/routes/project-api/openapi-artifacts-routes.d.ts +51 -0
  315. package/dist/server-shell/http/routes/project-api/openapi-artifacts-routes.js +56 -0
  316. package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.d.ts +466 -0
  317. package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.js +165 -0
  318. package/dist/server-shell/http/routes/project-api/openapi-diagnostic-routes.d.ts +16 -0
  319. package/dist/server-shell/http/routes/project-api/openapi-diagnostic-routes.js +17 -0
  320. package/dist/server-shell/http/routes/project-api/openapi-execution-routes.d.ts +215 -0
  321. package/dist/server-shell/http/routes/project-api/openapi-execution-routes.js +75 -0
  322. package/dist/server-shell/http/routes/project-api/openapi-path-parameters.d.ts +9 -0
  323. package/dist/server-shell/http/routes/project-api/openapi-path-parameters.js +18 -0
  324. package/dist/server-shell/http/routes/project-api/openapi-skills-routes.d.ts +60 -0
  325. package/dist/server-shell/http/routes/project-api/openapi-skills-routes.js +51 -0
  326. package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.d.ts +115 -0
  327. package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.js +17 -0
  328. package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.d.ts +323 -0
  329. package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.js +120 -0
  330. package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.d.ts +1317 -0
  331. package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.js +95 -0
  332. package/dist/server-shell/http/routes/project-api/openapi.d.ts +2457 -0
  333. package/dist/server-shell/http/routes/project-api/openapi.js +30 -0
  334. package/dist/server-shell/http/routes/project-api/payload-validation.d.ts +6 -0
  335. package/dist/server-shell/http/routes/project-api/payload-validation.js +36 -0
  336. package/dist/server-shell/http/routes/project-api/project-docs-helpers.d.ts +9 -0
  337. package/dist/server-shell/http/routes/project-api/project-docs-helpers.js +17 -0
  338. package/dist/server-shell/http/routes/project-api/project-docs-routes.d.ts +8 -0
  339. package/dist/server-shell/http/routes/project-api/project-docs-routes.js +151 -0
  340. package/dist/server-shell/http/routes/project-api/project-timeline-projection.d.ts +8 -0
  341. package/dist/server-shell/http/routes/project-api/project-timeline-projection.js +658 -0
  342. package/dist/server-shell/http/routes/project-api/project-timeline-routes.d.ts +4 -0
  343. package/dist/server-shell/http/routes/project-api/project-timeline-routes.js +23 -0
  344. package/dist/server-shell/http/routes/project-api/read-state-routes.d.ts +8 -0
  345. package/dist/server-shell/http/routes/project-api/read-state-routes.js +82 -0
  346. package/dist/server-shell/http/routes/project-api/reference-files-routes.d.ts +8 -0
  347. package/dist/server-shell/http/routes/project-api/reference-files-routes.js +184 -0
  348. package/dist/server-shell/http/routes/project-api/reference-files.d.ts +17 -0
  349. package/dist/server-shell/http/routes/project-api/reference-files.js +212 -0
  350. package/dist/server-shell/http/routes/project-api/repo-projection.d.ts +3 -0
  351. package/dist/server-shell/http/routes/project-api/repo-projection.js +58 -0
  352. package/dist/server-shell/http/routes/project-api/schemas.d.ts +1351 -0
  353. package/dist/server-shell/http/routes/project-api/schemas.js +441 -0
  354. package/dist/server-shell/http/routes/project-api/session-requirements.d.ts +10 -0
  355. package/dist/server-shell/http/routes/project-api/session-requirements.js +60 -0
  356. package/dist/server-shell/http/routes/project-api/skills-helpers.d.ts +7 -0
  357. package/dist/server-shell/http/routes/project-api/skills-helpers.js +48 -0
  358. package/dist/server-shell/http/routes/project-api/skills-routes.d.ts +8 -0
  359. package/dist/server-shell/http/routes/project-api/skills-routes.js +185 -0
  360. package/dist/server-shell/http/routes/project-api/staged-uploads.d.ts +14 -0
  361. package/dist/server-shell/http/routes/project-api/staged-uploads.js +149 -0
  362. package/dist/server-shell/http/routes/project-api/system-routes.d.ts +8 -0
  363. package/dist/server-shell/http/routes/project-api/system-routes.js +141 -0
  364. package/dist/server-shell/http/routes/project-api/types.d.ts +137 -0
  365. package/dist/server-shell/http/routes/project-api/types.js +2 -0
  366. package/dist/server-shell/http/routes/project-api/viewer-projections.d.ts +17 -0
  367. package/dist/server-shell/http/routes/project-api/viewer-projections.js +102 -0
  368. package/dist/server-shell/http/routes/project-api/viewer-routes.d.ts +4 -0
  369. package/dist/server-shell/http/routes/project-api/viewer-routes.js +100 -0
  370. package/dist/server-shell/http/routes/project-api/workflow-routes.d.ts +4 -0
  371. package/dist/server-shell/http/routes/project-api/workflow-routes.js +85 -0
  372. package/dist/server-shell/http/routes/project-api/workspace-projections.d.ts +5 -0
  373. package/dist/server-shell/http/routes/project-api/workspace-projections.js +103 -0
  374. package/dist/server-shell/http/routes/project-api.d.ts +8 -0
  375. package/dist/server-shell/http/routes/project-api.js +34 -0
  376. package/dist/server-shell/http/sse-replay-buffer.d.ts +54 -0
  377. package/dist/server-shell/http/sse-replay-buffer.js +110 -0
  378. package/dist/server-shell/http/sse.d.ts +12 -0
  379. package/dist/server-shell/http/sse.js +22 -0
  380. package/dist/server-shell/http/static-web.d.ts +6 -0
  381. package/dist/server-shell/http/static-web.js +52 -0
  382. package/dist/server-shell/http/validation.d.ts +13 -0
  383. package/dist/server-shell/http/validation.js +136 -0
  384. package/dist/server-shell/http/workspace-events.d.ts +38 -0
  385. package/dist/server-shell/http/workspace-events.js +98 -0
  386. package/dist/server-shell/session/relay-session-context.d.ts +25 -0
  387. package/dist/server-shell/session/relay-session-context.js +49 -0
  388. package/dist/server-shell/smoke/e2e-client.d.ts +59 -0
  389. package/dist/server-shell/smoke/e2e-client.js +304 -0
  390. package/dist/server-shell/smoke/index.d.ts +2 -0
  391. package/dist/server-shell/smoke/index.js +2 -0
  392. package/dist/skills/constants.d.ts +8 -0
  393. package/dist/skills/constants.js +9 -0
  394. package/dist/skills/errors.d.ts +6 -0
  395. package/dist/skills/errors.js +9 -0
  396. package/dist/skills/index.d.ts +41 -0
  397. package/dist/skills/index.js +171 -0
  398. package/dist/skills/metadata.d.ts +8 -0
  399. package/dist/skills/metadata.js +80 -0
  400. package/dist/skills/zip-import.d.ts +18 -0
  401. package/dist/skills/zip-import.js +241 -0
  402. package/dist/store/command-recovery.d.ts +26 -0
  403. package/dist/store/command-recovery.js +71 -0
  404. package/dist/store/index.d.ts +6 -0
  405. package/dist/store/index.js +6 -0
  406. package/dist/store/lifecycle.d.ts +23 -0
  407. package/dist/store/lifecycle.js +53 -0
  408. package/dist/store/metadata.d.ts +18 -0
  409. package/dist/store/metadata.js +30 -0
  410. package/dist/store/migrations.d.ts +20 -0
  411. package/dist/store/migrations.js +76 -0
  412. package/dist/store/sqlite.d.ts +11 -0
  413. package/dist/store/sqlite.js +21 -0
  414. package/dist/workspace-ops/constants.d.ts +15 -0
  415. package/dist/workspace-ops/constants.js +20 -0
  416. package/dist/workspace-ops/errors.d.ts +8 -0
  417. package/dist/workspace-ops/errors.js +33 -0
  418. package/dist/workspace-ops/git.d.ts +13 -0
  419. package/dist/workspace-ops/git.js +53 -0
  420. package/dist/workspace-ops/index.d.ts +11 -0
  421. package/dist/workspace-ops/index.js +9 -0
  422. package/dist/workspace-ops/mainline.d.ts +2 -0
  423. package/dist/workspace-ops/mainline.js +16 -0
  424. package/dist/workspace-ops/project-doc-templates.d.ts +12 -0
  425. package/dist/workspace-ops/project-doc-templates.js +180 -0
  426. package/dist/workspace-ops/project-docs.d.ts +7 -0
  427. package/dist/workspace-ops/project-docs.js +156 -0
  428. package/dist/workspace-ops/reference-files.d.ts +3 -0
  429. package/dist/workspace-ops/reference-files.js +137 -0
  430. package/dist/workspace-ops/reference-metadata.d.ts +13 -0
  431. package/dist/workspace-ops/reference-metadata.js +86 -0
  432. package/dist/workspace-ops/reference-summaries.d.ts +17 -0
  433. package/dist/workspace-ops/reference-summaries.js +298 -0
  434. package/dist/workspace-ops/run-workspaces.d.ts +18 -0
  435. package/dist/workspace-ops/run-workspaces.js +271 -0
  436. package/dist/workspace-ops/types.d.ts +219 -0
  437. package/dist/workspace-ops/types.js +2 -0
  438. package/dist/workspace-ops/viewer-file.d.ts +4 -0
  439. package/dist/workspace-ops/viewer-file.js +207 -0
  440. package/dist/workspace-ops/viewer-git.d.ts +20 -0
  441. package/dist/workspace-ops/viewer-git.js +111 -0
  442. package/dist/workspace-ops/viewer-paths.d.ts +3 -0
  443. package/dist/workspace-ops/viewer-paths.js +13 -0
  444. package/dist/workspace-ops/viewer-tree.d.ts +9 -0
  445. package/dist/workspace-ops/viewer-tree.js +144 -0
  446. package/dist/workspace-ops/viewer.d.ts +5 -0
  447. package/dist/workspace-ops/viewer.js +5 -0
  448. package/migrations/0001_init.sql +674 -0
  449. package/migrations/0002_allow_sealed_round_successor_note.sql +14 -0
  450. package/migrations/0003_drop_scratchpad_source_message_refs.sql +1 -0
  451. package/migrations/0004_read_state.sql +109 -0
  452. package/migrations/0005_provider_usage.sql +15 -0
  453. package/migrations/0006_scratchpad_source_state.sql +29 -0
  454. package/migrations/0007_workspace_signal_read_state_scopes.sql +74 -0
  455. package/migrations/0008_provider_usage_anchors.sql +32 -0
  456. package/migrations/0009_project_timeline_events.sql +33 -0
  457. package/migrations/0010_project_brief.sql +13 -0
  458. package/migrations/0011_message_author_avatar.sql +5 -0
  459. package/migrations/README.md +44 -0
  460. package/node_modules/@tutti/relay-client/dist/host-control.d.ts +164 -0
  461. package/node_modules/@tutti/relay-client/dist/host-control.js +284 -0
  462. package/node_modules/@tutti/relay-client/dist/index.d.ts +3 -0
  463. package/node_modules/@tutti/relay-client/dist/index.js +3 -0
  464. package/node_modules/@tutti/relay-client/dist/tunnel-frames.d.ts +8 -0
  465. package/node_modules/@tutti/relay-client/dist/tunnel-frames.js +124 -0
  466. package/node_modules/@tutti/relay-client/dist/tunnel-types.d.ts +61 -0
  467. package/node_modules/@tutti/relay-client/dist/tunnel-types.js +2 -0
  468. package/node_modules/@tutti/relay-client/dist/tunnel.d.ts +4 -0
  469. package/node_modules/@tutti/relay-client/dist/tunnel.js +144 -0
  470. package/node_modules/@tutti/relay-client/package.json +18 -0
  471. package/node_modules/@tutti/shared/dist/domain/index.d.ts +59 -0
  472. package/node_modules/@tutti/shared/dist/domain/index.js +37 -0
  473. package/node_modules/@tutti/shared/dist/ids/index.d.ts +85 -0
  474. package/node_modules/@tutti/shared/dist/ids/index.js +88 -0
  475. package/node_modules/@tutti/shared/dist/index.d.ts +6 -0
  476. package/node_modules/@tutti/shared/dist/index.js +6 -0
  477. package/node_modules/@tutti/shared/dist/schemas/api/approvals.d.ts +307 -0
  478. package/node_modules/@tutti/shared/dist/schemas/api/approvals.js +110 -0
  479. package/node_modules/@tutti/shared/dist/schemas/api/artifacts.d.ts +173 -0
  480. package/node_modules/@tutti/shared/dist/schemas/api/artifacts.js +107 -0
  481. package/node_modules/@tutti/shared/dist/schemas/api/clarifications.d.ts +704 -0
  482. package/node_modules/@tutti/shared/dist/schemas/api/clarifications.js +224 -0
  483. package/node_modules/@tutti/shared/dist/schemas/api/index.d.ts +18 -0
  484. package/node_modules/@tutti/shared/dist/schemas/api/index.js +17 -0
  485. package/node_modules/@tutti/shared/dist/schemas/api/messages.d.ts +370 -0
  486. package/node_modules/@tutti/shared/dist/schemas/api/messages.js +134 -0
  487. package/node_modules/@tutti/shared/dist/schemas/api/openapi.d.ts +32 -0
  488. package/node_modules/@tutti/shared/dist/schemas/api/openapi.js +100 -0
  489. package/node_modules/@tutti/shared/dist/schemas/api/primitives.d.ts +109 -0
  490. package/node_modules/@tutti/shared/dist/schemas/api/primitives.js +174 -0
  491. package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.d.ts +149 -0
  492. package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.js +44 -0
  493. package/node_modules/@tutti/shared/dist/schemas/api/provider-config.d.ts +21 -0
  494. package/node_modules/@tutti/shared/dist/schemas/api/provider-config.js +33 -0
  495. package/node_modules/@tutti/shared/dist/schemas/api/provider-usage.d.ts +87 -0
  496. package/node_modules/@tutti/shared/dist/schemas/api/provider-usage.js +48 -0
  497. package/node_modules/@tutti/shared/dist/schemas/api/read-state.d.ts +89 -0
  498. package/node_modules/@tutti/shared/dist/schemas/api/read-state.js +39 -0
  499. package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.d.ts +484 -0
  500. package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.js +185 -0
  501. package/node_modules/@tutti/shared/dist/schemas/api/skills.d.ts +88 -0
  502. package/node_modules/@tutti/shared/dist/schemas/api/skills.js +71 -0
  503. package/node_modules/@tutti/shared/dist/schemas/api/types.d.ts +253 -0
  504. package/node_modules/@tutti/shared/dist/schemas/api/types.js +2 -0
  505. package/node_modules/@tutti/shared/dist/schemas/api/uploads.d.ts +103 -0
  506. package/node_modules/@tutti/shared/dist/schemas/api/uploads.js +78 -0
  507. package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.d.ts +484 -0
  508. package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.js +267 -0
  509. package/node_modules/@tutti/shared/dist/schemas/api/work-items.d.ts +264 -0
  510. package/node_modules/@tutti/shared/dist/schemas/api/work-items.js +196 -0
  511. package/node_modules/@tutti/shared/dist/schemas/api/workspace-commands.d.ts +179 -0
  512. package/node_modules/@tutti/shared/dist/schemas/api/workspace-commands.js +137 -0
  513. package/node_modules/@tutti/shared/dist/schemas/domain/index.d.ts +31 -0
  514. package/node_modules/@tutti/shared/dist/schemas/domain/index.js +49 -0
  515. package/node_modules/@tutti/shared/dist/schemas/internal/index.d.ts +46 -0
  516. package/node_modules/@tutti/shared/dist/schemas/internal/index.js +46 -0
  517. package/node_modules/@tutti/shared/dist/utils/command-idempotency/index.d.ts +40 -0
  518. package/node_modules/@tutti/shared/dist/utils/command-idempotency/index.js +100 -0
  519. package/node_modules/@tutti/shared/dist/utils/index.d.ts +5 -0
  520. package/node_modules/@tutti/shared/dist/utils/index.js +5 -0
  521. package/node_modules/@tutti/shared/dist/utils/logging/index.d.ts +34 -0
  522. package/node_modules/@tutti/shared/dist/utils/logging/index.js +130 -0
  523. package/node_modules/@tutti/shared/dist/utils/path-policy/index.d.ts +13 -0
  524. package/node_modules/@tutti/shared/dist/utils/path-policy/index.js +80 -0
  525. package/node_modules/@tutti/shared/dist/utils/redaction/index.d.ts +19 -0
  526. package/node_modules/@tutti/shared/dist/utils/redaction/index.js +158 -0
  527. package/node_modules/@tutti/shared/package.json +63 -0
  528. package/package.json +47 -0
  529. package/prompts/README.md +36 -0
  530. package/prompts/chat-assistant.md +43 -0
  531. package/prompts/codex/README.md +13 -0
  532. package/prompts/codex/no-write-smoke.md +35 -0
  533. package/prompts/procedures/README.md +38 -0
  534. package/prompts/procedures/context-sync.md +66 -0
  535. package/prompts/procedures/follow-up-check.md +83 -0
  536. package/prompts/procedures/project-brief-refresh.md +79 -0
  537. package/prompts/procedures/project-context-bootstrap.md +58 -0
  538. package/prompts/procedures/reference-file-summary.md +49 -0
  539. package/prompts/procedures/scratchpad-refresh.md +83 -0
  540. package/prompts/procedures/task-compile.md +116 -0
  541. package/prompts/prompt-flow-experiment-plan.md +203 -0
  542. package/prompts/prompt-flow-map.md +478 -0
  543. package/prompts/runs/README.md +17 -0
  544. package/prompts/runs/task-continuation.md +148 -0
  545. package/prompts/runs/task-retry.md +153 -0
  546. package/prompts/runs/task-run.md +135 -0
  547. package/prompts/skills/README.md +25 -0
  548. package/prompts/skills/read-main-chat/README.md +8 -0
  549. package/prompts/skills/read-main-chat/SKILL.md +18 -0
  550. package/prompts/skills/read-project-docs/README.md +13 -0
  551. package/prompts/skills/read-project-docs/SKILL.md +42 -0
  552. package/prompts/skills/read-references/README.md +9 -0
  553. package/prompts/skills/read-references/SKILL.md +26 -0
  554. package/prompts/skills/read-scratchpad/README.md +8 -0
  555. package/prompts/skills/read-scratchpad/SKILL.md +16 -0
  556. package/prompts/skills/read-user-skills/README.md +7 -0
  557. package/prompts/skills/read-user-skills/SKILL.md +22 -0
  558. package/prompts/skills/read-worklist/README.md +9 -0
  559. package/prompts/skills/read-worklist/SKILL.md +20 -0
  560. package/web/assets/Tutti-B7gEyTp1.png +0 -0
  561. package/web/assets/Tutti-square-BqFU7F0D.png +0 -0
  562. package/web/assets/index-CWkBgHap.js +29 -0
  563. package/web/assets/index-D8xJY8Gr.css +1 -0
  564. package/web/index.html +13 -0
@@ -0,0 +1,2457 @@
1
+ export declare const HOST_PROJECT_OPENAPI_ROUTES: ({
2
+ method: "get";
3
+ path: string;
4
+ summary: string;
5
+ tags: string[];
6
+ responses: {
7
+ 200: {
8
+ description: string;
9
+ schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
10
+ state: import("@sinclair/typebox").TLiteral<"none">;
11
+ }>, import("@sinclair/typebox").TObject<{
12
+ state: import("@sinclair/typebox").TLiteral<"pending">;
13
+ request: import("@sinclair/typebox").TObject<{
14
+ approval_id: import("@sinclair/typebox").TString;
15
+ request_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"command_execution">, import("@sinclair/typebox").TLiteral<"file_change">, import("@sinclair/typebox").TLiteral<"permissions">, import("@sinclair/typebox").TLiteral<"legacy_exec_command">, import("@sinclair/typebox").TLiteral<"legacy_apply_patch">]>;
16
+ title: import("@sinclair/typebox").TString;
17
+ summary: import("@sinclair/typebox").TString;
18
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
+ requested_at: import("@sinclair/typebox").TString;
20
+ expires_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
22
+ activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
23
+ command: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
24
+ text: import("@sinclair/typebox").TString;
25
+ cwd_label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
+ actions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
27
+ label: import("@sinclair/typebox").TString;
28
+ detail: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
29
+ }>>>;
30
+ network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
31
+ host: import("@sinclair/typebox").TString;
32
+ protocol: import("@sinclair/typebox").TString;
33
+ }>>;
34
+ }>>;
35
+ file_change: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
36
+ grant_root_label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
37
+ paths: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
38
+ }>>;
39
+ permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
40
+ network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
41
+ enabled: import("@sinclair/typebox").TBoolean;
42
+ }>>;
43
+ filesystem: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
44
+ read: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
45
+ write: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
46
+ }>>;
47
+ }>>;
48
+ decisions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
49
+ decision_id: import("@sinclair/typebox").TString;
50
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"allow_once">, import("@sinclair/typebox").TLiteral<"allow_session">, import("@sinclair/typebox").TLiteral<"deny">, import("@sinclair/typebox").TLiteral<"cancel">]>;
51
+ label: import("@sinclair/typebox").TString;
52
+ tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
53
+ }>>;
54
+ }>;
55
+ }>, import("@sinclair/typebox").TObject<{
56
+ state: import("@sinclair/typebox").TLiteral<"resolved">;
57
+ request: import("@sinclair/typebox").TObject<{
58
+ approval_id: import("@sinclair/typebox").TString;
59
+ request_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"command_execution">, import("@sinclair/typebox").TLiteral<"file_change">, import("@sinclair/typebox").TLiteral<"permissions">, import("@sinclair/typebox").TLiteral<"legacy_exec_command">, import("@sinclair/typebox").TLiteral<"legacy_apply_patch">]>;
60
+ title: import("@sinclair/typebox").TString;
61
+ summary: import("@sinclair/typebox").TString;
62
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
63
+ requested_at: import("@sinclair/typebox").TString;
64
+ expires_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
65
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
66
+ activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
67
+ command: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
68
+ text: import("@sinclair/typebox").TString;
69
+ cwd_label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
70
+ actions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
71
+ label: import("@sinclair/typebox").TString;
72
+ detail: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
73
+ }>>>;
74
+ network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
75
+ host: import("@sinclair/typebox").TString;
76
+ protocol: import("@sinclair/typebox").TString;
77
+ }>>;
78
+ }>>;
79
+ file_change: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
80
+ grant_root_label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
81
+ paths: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
82
+ }>>;
83
+ permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
84
+ network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
85
+ enabled: import("@sinclair/typebox").TBoolean;
86
+ }>>;
87
+ filesystem: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
88
+ read: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
89
+ write: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
90
+ }>>;
91
+ }>>;
92
+ decisions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
93
+ decision_id: import("@sinclair/typebox").TString;
94
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"allow_once">, import("@sinclair/typebox").TLiteral<"allow_session">, import("@sinclair/typebox").TLiteral<"deny">, import("@sinclair/typebox").TLiteral<"cancel">]>;
95
+ label: import("@sinclair/typebox").TString;
96
+ tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
97
+ }>>;
98
+ }>;
99
+ resolution: import("@sinclair/typebox").TObject<{
100
+ decision_id: import("@sinclair/typebox").TString;
101
+ label: import("@sinclair/typebox").TString;
102
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"accepted">, import("@sinclair/typebox").TLiteral<"declined">, import("@sinclair/typebox").TLiteral<"cancelled">, import("@sinclair/typebox").TLiteral<"expired">]>;
103
+ decided_at: import("@sinclair/typebox").TString;
104
+ decided_by: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
105
+ account_ref: import("@sinclair/typebox").TString;
106
+ display_name: import("@sinclair/typebox").TString;
107
+ }>>;
108
+ }>;
109
+ }>]>;
110
+ };
111
+ };
112
+ parameters?: never;
113
+ requestBody?: never;
114
+ } | {
115
+ method: "get";
116
+ path: string;
117
+ summary: string;
118
+ tags: string[];
119
+ responses: {
120
+ 200: {
121
+ description: string;
122
+ schema: import("@sinclair/typebox").TObject<{
123
+ artifact: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
124
+ status: import("@sinclair/typebox").TLiteral<"not_declared">;
125
+ }>, import("@sinclair/typebox").TObject<{
126
+ status: import("@sinclair/typebox").TLiteral<"invalid">;
127
+ manifest_path: import("@sinclair/typebox").TLiteral<"tutti.artifact.json">;
128
+ error: import("@sinclair/typebox").TObject<{
129
+ code: import("@sinclair/typebox").TString;
130
+ message: import("@sinclair/typebox").TString;
131
+ }>;
132
+ }>, import("@sinclair/typebox").TObject<{
133
+ status: import("@sinclair/typebox").TLiteral<"declared">;
134
+ manifest_path: import("@sinclair/typebox").TLiteral<"tutti.artifact.json">;
135
+ manifest_blob_oid: import("@sinclair/typebox").TString;
136
+ artifact: import("@sinclair/typebox").TObject<{
137
+ title: import("@sinclair/typebox").TString;
138
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"static">, import("@sinclair/typebox").TLiteral<"server">]>;
139
+ network: import("@sinclair/typebox").TBoolean;
140
+ }>;
141
+ preview: import("@sinclair/typebox").TObject<{
142
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"ready">, import("@sinclair/typebox").TLiteral<"starting">, import("@sinclair/typebox").TLiteral<"stopped">, import("@sinclair/typebox").TLiteral<"failed">]>;
143
+ url: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
144
+ error_message: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
145
+ }>;
146
+ }>]>;
147
+ }>;
148
+ };
149
+ };
150
+ requestBody?: never;
151
+ } | {
152
+ method: "post";
153
+ path: string;
154
+ summary: string;
155
+ tags: string[];
156
+ requestBody: import("@sinclair/typebox").TSchema;
157
+ responses: {
158
+ 200: {
159
+ description: string;
160
+ schema: import("@sinclair/typebox").TSchema;
161
+ };
162
+ };
163
+ } | {
164
+ method: "get";
165
+ path: string;
166
+ summary: string;
167
+ tags: string[];
168
+ querystring: import("@sinclair/typebox").TObject<{
169
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
170
+ anchor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"latest">, import("@sinclair/typebox").TLiteral<"start">]>>;
171
+ before: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
172
+ after: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
173
+ }>;
174
+ responses: {
175
+ 200: {
176
+ description: string;
177
+ schema: import("@sinclair/typebox").TSchema;
178
+ contentType?: never;
179
+ };
180
+ };
181
+ requestBody?: never;
182
+ parameters?: never;
183
+ } | {
184
+ method: "post";
185
+ path: string;
186
+ summary: string;
187
+ tags: string[];
188
+ requestBody: {
189
+ readonly type: "object";
190
+ readonly required: readonly ["command_id", "issued_at", "payload"];
191
+ readonly additionalProperties: false;
192
+ readonly properties: {
193
+ readonly command_id: import("@sinclair/typebox").TString;
194
+ readonly issued_at: import("@sinclair/typebox").TString;
195
+ readonly payload: {
196
+ readonly type: "object";
197
+ readonly required: readonly ["body"];
198
+ readonly additionalProperties: false;
199
+ readonly properties: {
200
+ readonly body: {
201
+ readonly type: "string";
202
+ };
203
+ };
204
+ };
205
+ };
206
+ };
207
+ responses: {
208
+ 200: {
209
+ description: string;
210
+ schema: import("@sinclair/typebox").TSchema;
211
+ contentType?: never;
212
+ };
213
+ };
214
+ querystring?: never;
215
+ parameters?: never;
216
+ } | {
217
+ method: "get";
218
+ path: string;
219
+ summary: string;
220
+ tags: string[];
221
+ querystring: {
222
+ readonly type: "object";
223
+ readonly additionalProperties: false;
224
+ readonly properties: {
225
+ readonly after: {
226
+ readonly type: "string";
227
+ readonly minLength: 1;
228
+ };
229
+ };
230
+ };
231
+ responses: {
232
+ 200: {
233
+ description: string;
234
+ contentType: string;
235
+ schema: {
236
+ readonly type: "string";
237
+ readonly description: "Server-sent event stream containing WorkspaceSseEvent JSON payloads.";
238
+ };
239
+ };
240
+ };
241
+ requestBody?: never;
242
+ parameters?: never;
243
+ } | {
244
+ method: "get";
245
+ path: string;
246
+ summary: string;
247
+ tags: string[];
248
+ responses: {
249
+ 200: {
250
+ description: string;
251
+ schema: import("@sinclair/typebox").TObject<{
252
+ id: import("@sinclair/typebox").TLiteral<"current">;
253
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"empty">, import("@sinclair/typebox").TLiteral<"ready">]>;
254
+ topic: import("@sinclair/typebox").TString;
255
+ background_summary: import("@sinclair/typebox").TString;
256
+ current_consensus: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
257
+ open_questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
258
+ task_changes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
259
+ updated_by_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
260
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
261
+ }>;
262
+ contentType?: never;
263
+ };
264
+ };
265
+ querystring?: never;
266
+ requestBody?: never;
267
+ parameters?: never;
268
+ } | {
269
+ method: "get";
270
+ path: string;
271
+ summary: string;
272
+ tags: string[];
273
+ responses: {
274
+ 200: {
275
+ description: string;
276
+ schema: import("@sinclair/typebox").TObject<{
277
+ modules: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
278
+ module: import("@sinclair/typebox").TObject<{
279
+ id: import("@sinclair/typebox").TString;
280
+ name: import("@sinclair/typebox").TString;
281
+ summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
282
+ order: import("@sinclair/typebox").TInteger;
283
+ archived: import("@sinclair/typebox").TBoolean;
284
+ created_at: import("@sinclair/typebox").TString;
285
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
286
+ }>;
287
+ tasks: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
288
+ id: import("@sinclair/typebox").TString;
289
+ module_id: import("@sinclair/typebox").TString;
290
+ title: import("@sinclair/typebox").TString;
291
+ summary: import("@sinclair/typebox").TString;
292
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"todo">, import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"done">, import("@sinclair/typebox").TLiteral<"failed">]>;
293
+ order: import("@sinclair/typebox").TInteger;
294
+ current_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
295
+ active_clarification_thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
296
+ latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
297
+ created_from_workflow_ref: import("@sinclair/typebox").TString;
298
+ created_at: import("@sinclair/typebox").TString;
299
+ updated_at: import("@sinclair/typebox").TString;
300
+ }>>;
301
+ }>>;
302
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
303
+ }>;
304
+ contentType?: never;
305
+ };
306
+ };
307
+ querystring?: never;
308
+ requestBody?: never;
309
+ parameters?: never;
310
+ } | {
311
+ method: "get";
312
+ path: string;
313
+ summary: string;
314
+ tags: string[];
315
+ responses: {
316
+ 200: {
317
+ description: string;
318
+ schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
319
+ state: import("@sinclair/typebox").TLiteral<"none">;
320
+ }>, import("@sinclair/typebox").TObject<{
321
+ state: import("@sinclair/typebox").TLiteral<"active">;
322
+ thread: import("@sinclair/typebox").TObject<{
323
+ id: import("@sinclair/typebox").TString;
324
+ owner: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
325
+ kind: import("@sinclair/typebox").TLiteral<"task_compile">;
326
+ workflow_ref: import("@sinclair/typebox").TString;
327
+ }>, import("@sinclair/typebox").TObject<{
328
+ kind: import("@sinclair/typebox").TLiteral<"task">;
329
+ task_id: import("@sinclair/typebox").TString;
330
+ }>]>;
331
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"closed">]>;
332
+ current_round_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
333
+ created_from_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
334
+ closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
335
+ created_at: import("@sinclair/typebox").TString;
336
+ updated_at: import("@sinclair/typebox").TString;
337
+ }>;
338
+ round: import("@sinclair/typebox").TObject<{
339
+ id: import("@sinclair/typebox").TString;
340
+ thread_id: import("@sinclair/typebox").TString;
341
+ round_index: import("@sinclair/typebox").TInteger;
342
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"sealed">]>;
343
+ request_payload: import("@sinclair/typebox").TObject<{
344
+ summary: import("@sinclair/typebox").TString;
345
+ request: import("@sinclair/typebox").TString;
346
+ interaction: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
347
+ kind: import("@sinclair/typebox").TLiteral<"freeform">;
348
+ purpose: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"clarify_requirement">, import("@sinclair/typebox").TLiteral<"confirm_risk">]>;
349
+ prompt: import("@sinclair/typebox").TObject<{
350
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
351
+ summary: import("@sinclair/typebox").TString;
352
+ request: import("@sinclair/typebox").TString;
353
+ }>;
354
+ subject: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
355
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"task">, import("@sinclair/typebox").TLiteral<"deployment_target">, import("@sinclair/typebox").TLiteral<"project_context">]>;
356
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
357
+ summary: import("@sinclair/typebox").TString;
358
+ }>>;
359
+ expires_when: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"current_run_only">, import("@sinclair/typebox").TLiteral<"until_task_contract_changes">]>>;
360
+ }>>;
361
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
362
+ related_refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
363
+ ref_kind: import("@sinclair/typebox").TLiteral<"project_doc">;
364
+ path: import("@sinclair/typebox").TString;
365
+ }>, import("@sinclair/typebox").TObject<{
366
+ ref_kind: import("@sinclair/typebox").TLiteral<"directory_readme">;
367
+ path: import("@sinclair/typebox").TString;
368
+ }>, import("@sinclair/typebox").TObject<{
369
+ ref_kind: import("@sinclair/typebox").TLiteral<"task_detail">;
370
+ task_id: import("@sinclair/typebox").TString;
371
+ }>, import("@sinclair/typebox").TObject<{
372
+ ref_kind: import("@sinclair/typebox").TLiteral<"worklist">;
373
+ module_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
374
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
375
+ }>, import("@sinclair/typebox").TObject<{
376
+ ref_kind: import("@sinclair/typebox").TLiteral<"scratchpad">;
377
+ id: import("@sinclair/typebox").TLiteral<"current">;
378
+ }>, import("@sinclair/typebox").TObject<{
379
+ ref_kind: import("@sinclair/typebox").TLiteral<"clarification_round">;
380
+ clarification_round_ref: import("@sinclair/typebox").TString;
381
+ }>, import("@sinclair/typebox").TObject<{
382
+ ref_kind: import("@sinclair/typebox").TLiteral<"chat_messages">;
383
+ message_refs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
384
+ }>, import("@sinclair/typebox").TObject<{
385
+ ref_kind: import("@sinclair/typebox").TLiteral<"repo_paths">;
386
+ paths: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
387
+ }>, import("@sinclair/typebox").TObject<{
388
+ ref_kind: import("@sinclair/typebox").TLiteral<"recovery_summary">;
389
+ recovery_summary_id: import("@sinclair/typebox").TString;
390
+ }>]>>>;
391
+ }>;
392
+ card_message_id: import("@sinclair/typebox").TString;
393
+ opening_message_id: import("@sinclair/typebox").TString;
394
+ submitted_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
395
+ submitted_message_refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
396
+ successor_status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_materialized">, import("@sinclair/typebox").TLiteral<"materialized">]>;
397
+ successor_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
398
+ kind: import("@sinclair/typebox").TLiteral<"next_round">;
399
+ clarification_round_ref: import("@sinclair/typebox").TString;
400
+ }>, import("@sinclair/typebox").TObject<{
401
+ kind: import("@sinclair/typebox").TLiteral<"run">;
402
+ activity_ref: import("@sinclair/typebox").TString;
403
+ }>, import("@sinclair/typebox").TObject<{
404
+ kind: import("@sinclair/typebox").TLiteral<"chain_closed">;
405
+ }>, import("@sinclair/typebox").TObject<{
406
+ kind: import("@sinclair/typebox").TLiteral<"proposal_applied">;
407
+ workflow_ref: import("@sinclair/typebox").TString;
408
+ }>]>>;
409
+ capabilities: import("@sinclair/typebox").TObject<{
410
+ send_message: import("@sinclair/typebox").TBoolean;
411
+ submit: import("@sinclair/typebox").TBoolean;
412
+ }>;
413
+ created_at: import("@sinclair/typebox").TString;
414
+ updated_at: import("@sinclair/typebox").TString;
415
+ }>;
416
+ }>]>;
417
+ contentType?: never;
418
+ };
419
+ };
420
+ querystring?: never;
421
+ requestBody?: never;
422
+ parameters?: never;
423
+ } | {
424
+ method: "get";
425
+ path: string;
426
+ summary: string;
427
+ tags: string[];
428
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
429
+ responses: {
430
+ 200: {
431
+ description: string;
432
+ schema: import("@sinclair/typebox").TObject<{
433
+ thread: import("@sinclair/typebox").TObject<{
434
+ id: import("@sinclair/typebox").TString;
435
+ owner: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
436
+ kind: import("@sinclair/typebox").TLiteral<"task_compile">;
437
+ workflow_ref: import("@sinclair/typebox").TString;
438
+ }>, import("@sinclair/typebox").TObject<{
439
+ kind: import("@sinclair/typebox").TLiteral<"task">;
440
+ task_id: import("@sinclair/typebox").TString;
441
+ }>]>;
442
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"closed">]>;
443
+ current_round_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
444
+ created_from_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
445
+ closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
446
+ created_at: import("@sinclair/typebox").TString;
447
+ updated_at: import("@sinclair/typebox").TString;
448
+ }>;
449
+ rounds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
450
+ id: import("@sinclair/typebox").TString;
451
+ thread_id: import("@sinclair/typebox").TString;
452
+ round_index: import("@sinclair/typebox").TInteger;
453
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"sealed">]>;
454
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
455
+ summary: import("@sinclair/typebox").TString;
456
+ submitted_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
457
+ successor_status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_materialized">, import("@sinclair/typebox").TLiteral<"materialized">]>;
458
+ created_at: import("@sinclair/typebox").TString;
459
+ updated_at: import("@sinclair/typebox").TString;
460
+ }>>;
461
+ }>;
462
+ contentType?: never;
463
+ };
464
+ };
465
+ querystring?: never;
466
+ requestBody?: never;
467
+ } | {
468
+ method: "get";
469
+ path: string;
470
+ summary: string;
471
+ tags: string[];
472
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
473
+ responses: {
474
+ 200: {
475
+ description: string;
476
+ schema: import("@sinclair/typebox").TObject<{
477
+ thread: import("@sinclair/typebox").TObject<{
478
+ id: import("@sinclair/typebox").TString;
479
+ owner: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
480
+ kind: import("@sinclair/typebox").TLiteral<"task_compile">;
481
+ workflow_ref: import("@sinclair/typebox").TString;
482
+ }>, import("@sinclair/typebox").TObject<{
483
+ kind: import("@sinclair/typebox").TLiteral<"task">;
484
+ task_id: import("@sinclair/typebox").TString;
485
+ }>]>;
486
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"closed">]>;
487
+ current_round_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
488
+ created_from_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
489
+ closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
490
+ created_at: import("@sinclair/typebox").TString;
491
+ updated_at: import("@sinclair/typebox").TString;
492
+ }>;
493
+ round: import("@sinclair/typebox").TObject<{
494
+ id: import("@sinclair/typebox").TString;
495
+ thread_id: import("@sinclair/typebox").TString;
496
+ round_index: import("@sinclair/typebox").TInteger;
497
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"sealed">]>;
498
+ request_payload: import("@sinclair/typebox").TObject<{
499
+ summary: import("@sinclair/typebox").TString;
500
+ request: import("@sinclair/typebox").TString;
501
+ interaction: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
502
+ kind: import("@sinclair/typebox").TLiteral<"freeform">;
503
+ purpose: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"clarify_requirement">, import("@sinclair/typebox").TLiteral<"confirm_risk">]>;
504
+ prompt: import("@sinclair/typebox").TObject<{
505
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
506
+ summary: import("@sinclair/typebox").TString;
507
+ request: import("@sinclair/typebox").TString;
508
+ }>;
509
+ subject: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
510
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"task">, import("@sinclair/typebox").TLiteral<"deployment_target">, import("@sinclair/typebox").TLiteral<"project_context">]>;
511
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
512
+ summary: import("@sinclair/typebox").TString;
513
+ }>>;
514
+ expires_when: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"current_run_only">, import("@sinclair/typebox").TLiteral<"until_task_contract_changes">]>>;
515
+ }>>;
516
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
517
+ related_refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
518
+ ref_kind: import("@sinclair/typebox").TLiteral<"project_doc">;
519
+ path: import("@sinclair/typebox").TString;
520
+ }>, import("@sinclair/typebox").TObject<{
521
+ ref_kind: import("@sinclair/typebox").TLiteral<"directory_readme">;
522
+ path: import("@sinclair/typebox").TString;
523
+ }>, import("@sinclair/typebox").TObject<{
524
+ ref_kind: import("@sinclair/typebox").TLiteral<"task_detail">;
525
+ task_id: import("@sinclair/typebox").TString;
526
+ }>, import("@sinclair/typebox").TObject<{
527
+ ref_kind: import("@sinclair/typebox").TLiteral<"worklist">;
528
+ module_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
529
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
530
+ }>, import("@sinclair/typebox").TObject<{
531
+ ref_kind: import("@sinclair/typebox").TLiteral<"scratchpad">;
532
+ id: import("@sinclair/typebox").TLiteral<"current">;
533
+ }>, import("@sinclair/typebox").TObject<{
534
+ ref_kind: import("@sinclair/typebox").TLiteral<"clarification_round">;
535
+ clarification_round_ref: import("@sinclair/typebox").TString;
536
+ }>, import("@sinclair/typebox").TObject<{
537
+ ref_kind: import("@sinclair/typebox").TLiteral<"chat_messages">;
538
+ message_refs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
539
+ }>, import("@sinclair/typebox").TObject<{
540
+ ref_kind: import("@sinclair/typebox").TLiteral<"repo_paths">;
541
+ paths: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
542
+ }>, import("@sinclair/typebox").TObject<{
543
+ ref_kind: import("@sinclair/typebox").TLiteral<"recovery_summary">;
544
+ recovery_summary_id: import("@sinclair/typebox").TString;
545
+ }>]>>>;
546
+ }>;
547
+ card_message_id: import("@sinclair/typebox").TString;
548
+ opening_message_id: import("@sinclair/typebox").TString;
549
+ submitted_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
550
+ submitted_message_refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
551
+ successor_status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_materialized">, import("@sinclair/typebox").TLiteral<"materialized">]>;
552
+ successor_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
553
+ kind: import("@sinclair/typebox").TLiteral<"next_round">;
554
+ clarification_round_ref: import("@sinclair/typebox").TString;
555
+ }>, import("@sinclair/typebox").TObject<{
556
+ kind: import("@sinclair/typebox").TLiteral<"run">;
557
+ activity_ref: import("@sinclair/typebox").TString;
558
+ }>, import("@sinclair/typebox").TObject<{
559
+ kind: import("@sinclair/typebox").TLiteral<"chain_closed">;
560
+ }>, import("@sinclair/typebox").TObject<{
561
+ kind: import("@sinclair/typebox").TLiteral<"proposal_applied">;
562
+ workflow_ref: import("@sinclair/typebox").TString;
563
+ }>]>>;
564
+ capabilities: import("@sinclair/typebox").TObject<{
565
+ send_message: import("@sinclair/typebox").TBoolean;
566
+ submit: import("@sinclair/typebox").TBoolean;
567
+ }>;
568
+ created_at: import("@sinclair/typebox").TString;
569
+ updated_at: import("@sinclair/typebox").TString;
570
+ }>;
571
+ }>;
572
+ contentType?: never;
573
+ };
574
+ };
575
+ querystring?: never;
576
+ requestBody?: never;
577
+ } | {
578
+ method: "get";
579
+ path: string;
580
+ summary: string;
581
+ tags: string[];
582
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
583
+ querystring: import("@sinclair/typebox").TObject<{
584
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
585
+ anchor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"start">, import("@sinclair/typebox").TLiteral<"latest">]>>;
586
+ before: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
587
+ after: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
588
+ }>;
589
+ responses: {
590
+ 200: {
591
+ description: string;
592
+ schema: import("@sinclair/typebox").TSchema;
593
+ contentType?: never;
594
+ };
595
+ };
596
+ requestBody?: never;
597
+ } | {
598
+ method: "get";
599
+ path: string;
600
+ summary: string;
601
+ tags: string[];
602
+ responses: {
603
+ 200: {
604
+ description: string;
605
+ schema: {
606
+ readonly type: "object";
607
+ readonly additionalProperties: true;
608
+ };
609
+ };
610
+ };
611
+ } | {
612
+ method: "get";
613
+ path: string;
614
+ summary: string;
615
+ tags: string[];
616
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
617
+ responses: {
618
+ 200: {
619
+ description: string;
620
+ schema: import("@sinclair/typebox").TObject<{
621
+ id: import("@sinclair/typebox").TString;
622
+ module_id: import("@sinclair/typebox").TString;
623
+ title: import("@sinclair/typebox").TString;
624
+ summary: import("@sinclair/typebox").TString;
625
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"todo">, import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"done">, import("@sinclair/typebox").TLiteral<"failed">]>;
626
+ order: import("@sinclair/typebox").TInteger;
627
+ current_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
628
+ active_clarification_thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
629
+ latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
630
+ created_from_workflow_ref: import("@sinclair/typebox").TString;
631
+ created_at: import("@sinclair/typebox").TString;
632
+ updated_at: import("@sinclair/typebox").TString;
633
+ }>;
634
+ };
635
+ };
636
+ querystring?: never;
637
+ } | {
638
+ method: "get";
639
+ path: string;
640
+ summary: string;
641
+ tags: string[];
642
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
643
+ responses: {
644
+ 200: {
645
+ description: string;
646
+ schema: import("@sinclair/typebox").TObject<{
647
+ task: import("@sinclair/typebox").TObject<{
648
+ id: import("@sinclair/typebox").TString;
649
+ module_id: import("@sinclair/typebox").TString;
650
+ title: import("@sinclair/typebox").TString;
651
+ summary: import("@sinclair/typebox").TString;
652
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"todo">, import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"done">, import("@sinclair/typebox").TLiteral<"failed">]>;
653
+ order: import("@sinclair/typebox").TInteger;
654
+ current_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
655
+ active_clarification_thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
656
+ latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
657
+ created_from_workflow_ref: import("@sinclair/typebox").TString;
658
+ created_at: import("@sinclair/typebox").TString;
659
+ updated_at: import("@sinclair/typebox").TString;
660
+ }>;
661
+ detail: import("@sinclair/typebox").TObject<{
662
+ task_id: import("@sinclair/typebox").TString;
663
+ contract: import("@sinclair/typebox").TObject<{
664
+ goal: import("@sinclair/typebox").TString;
665
+ scope: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
666
+ }>;
667
+ result: import("@sinclair/typebox").TObject<{
668
+ latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
669
+ result_kind: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"needs_human">, import("@sinclair/typebox").TLiteral<"finished">, import("@sinclair/typebox").TLiteral<"failed">]>>;
670
+ run_lineage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
671
+ attempt: import("@sinclair/typebox").TInteger;
672
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"initial">, import("@sinclair/typebox").TLiteral<"continuation">, import("@sinclair/typebox").TLiteral<"retry">]>;
673
+ parent_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
674
+ root_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
675
+ }>>;
676
+ clarification_thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
677
+ outcome: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"failed">]>>;
678
+ summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
679
+ checks: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"passed">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"skipped">]>>;
680
+ docs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"updated">, import("@sinclair/typebox").TLiteral<"checked_no_change">, import("@sinclair/typebox").TLiteral<"not_checked">, import("@sinclair/typebox").TLiteral<"sync_deferred">]>>;
681
+ skip_reason_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"no_validation_command_found">, import("@sinclair/typebox").TLiteral<"project_has_no_test_setup">, import("@sinclair/typebox").TLiteral<"validation_not_applicable">, import("@sinclair/typebox").TLiteral<"command_prerequisite_missing">, import("@sinclair/typebox").TLiteral<"command_requires_external_service">, import("@sinclair/typebox").TLiteral<"command_requires_secret">, import("@sinclair/typebox").TLiteral<"command_requires_interactive_input">, import("@sinclair/typebox").TLiteral<"command_too_expensive_for_mvp">, import("@sinclair/typebox").TLiteral<"unsafe_command_blocked">, import("@sinclair/typebox").TLiteral<"known_failing_baseline">]>>;
682
+ skip_reason_summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
683
+ external_side_effects: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
684
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"succeeded">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"unknown">]>;
685
+ target: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
686
+ redacted_summary: import("@sinclair/typebox").TString;
687
+ started_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
688
+ finished_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
689
+ }>>>;
690
+ changed_paths: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
691
+ promotion: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
692
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"promoted">, import("@sinclair/typebox").TLiteral<"not_promoted">, import("@sinclair/typebox").TLiteral<"not_attempted">]>;
693
+ summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
694
+ reason_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
695
+ commit_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
696
+ }>>;
697
+ error_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
698
+ retryable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
699
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
700
+ }>;
701
+ frozen_contract_since_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
702
+ updated_at: import("@sinclair/typebox").TString;
703
+ }>;
704
+ }>;
705
+ };
706
+ };
707
+ querystring?: never;
708
+ } | {
709
+ method: "get";
710
+ path: string;
711
+ summary: string;
712
+ tags: string[];
713
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
714
+ querystring: import("@sinclair/typebox").TObject<{
715
+ cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
716
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
717
+ }>;
718
+ responses: {
719
+ 200: {
720
+ description: string;
721
+ schema: import("@sinclair/typebox").TSchema;
722
+ };
723
+ };
724
+ } | {
725
+ method: "get";
726
+ path: string;
727
+ summary: string;
728
+ tags: string[];
729
+ querystring: import("@sinclair/typebox").TObject<{
730
+ cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
731
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
732
+ }>;
733
+ responses: {
734
+ 200: {
735
+ description: string;
736
+ schema: import("@sinclair/typebox").TSchema;
737
+ };
738
+ };
739
+ parameters?: never;
740
+ } | {
741
+ method: "get";
742
+ path: string;
743
+ summary: string;
744
+ tags: string[];
745
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
746
+ responses: {
747
+ 200: {
748
+ description: string;
749
+ schema: import("@sinclair/typebox").TObject<{
750
+ recovery_summary: import("@sinclair/typebox").TObject<{
751
+ recovery_summary_id: import("@sinclair/typebox").TString;
752
+ summary: import("@sinclair/typebox").TString;
753
+ affected_activities: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
754
+ affected_activity_count: import("@sinclair/typebox").TInteger;
755
+ created_at: import("@sinclair/typebox").TString;
756
+ }>;
757
+ }>;
758
+ };
759
+ };
760
+ querystring?: never;
761
+ } | {
762
+ method: "get";
763
+ path: string;
764
+ summary: string;
765
+ tags: string[];
766
+ responses: {
767
+ 200: {
768
+ description: string;
769
+ schema: import("@sinclair/typebox").TObject<{
770
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"failed">]>;
771
+ summary: import("@sinclair/typebox").TString;
772
+ active_task: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
773
+ id: import("@sinclair/typebox").TString;
774
+ module_id: import("@sinclair/typebox").TString;
775
+ title: import("@sinclair/typebox").TString;
776
+ summary: import("@sinclair/typebox").TString;
777
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"todo">, import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"done">, import("@sinclair/typebox").TLiteral<"failed">]>;
778
+ order: import("@sinclair/typebox").TInteger;
779
+ current_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
780
+ active_clarification_thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
781
+ latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
782
+ created_from_workflow_ref: import("@sinclair/typebox").TString;
783
+ created_at: import("@sinclair/typebox").TString;
784
+ updated_at: import("@sinclair/typebox").TString;
785
+ }>>;
786
+ active_activity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
787
+ activity_ref: import("@sinclair/typebox").TString;
788
+ activity_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"run">, import("@sinclair/typebox").TLiteral<"procedure">]>;
789
+ workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
790
+ workflow_kind: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"project_context_bootstrap">, import("@sinclair/typebox").TLiteral<"scratchpad_refresh">, import("@sinclair/typebox").TLiteral<"task_compile">, import("@sinclair/typebox").TLiteral<"context_sync">, import("@sinclair/typebox").TLiteral<"reference_summary_refresh">, import("@sinclair/typebox").TLiteral<"recovery_check">, import("@sinclair/typebox").TLiteral<"follow_up_check">]>>;
791
+ lane: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"foreground">, import("@sinclair/typebox").TLiteral<"scratchpad_background">]>>;
792
+ started_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
793
+ }>>;
794
+ active_activities: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
795
+ activity_ref: import("@sinclair/typebox").TString;
796
+ activity_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"run">, import("@sinclair/typebox").TLiteral<"procedure">]>;
797
+ workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
798
+ workflow_kind: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"project_context_bootstrap">, import("@sinclair/typebox").TLiteral<"scratchpad_refresh">, import("@sinclair/typebox").TLiteral<"task_compile">, import("@sinclair/typebox").TLiteral<"context_sync">, import("@sinclair/typebox").TLiteral<"reference_summary_refresh">, import("@sinclair/typebox").TLiteral<"recovery_check">, import("@sinclair/typebox").TLiteral<"follow_up_check">]>>;
799
+ lane: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"foreground">, import("@sinclair/typebox").TLiteral<"scratchpad_background">]>>;
800
+ started_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
801
+ }>>>;
802
+ blocked_by: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
803
+ kind: import("@sinclair/typebox").TLiteral<"clarification">;
804
+ thread_id: import("@sinclair/typebox").TString;
805
+ round_id: import("@sinclair/typebox").TString;
806
+ }>, import("@sinclair/typebox").TObject<{
807
+ kind: import("@sinclair/typebox").TLiteral<"approval">;
808
+ approval_id: import("@sinclair/typebox").TString;
809
+ }>]>>;
810
+ last_conclusion: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
811
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"needs_human">, import("@sinclair/typebox").TLiteral<"recovered">]>;
812
+ summary: import("@sinclair/typebox").TString;
813
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
814
+ activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
815
+ workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
816
+ occurred_at: import("@sinclair/typebox").TString;
817
+ }>>;
818
+ updated_at: import("@sinclair/typebox").TString;
819
+ }>;
820
+ };
821
+ };
822
+ parameters?: never;
823
+ querystring?: never;
824
+ } | {
825
+ method: "get";
826
+ path: string;
827
+ summary: string;
828
+ tags: string[];
829
+ responses: {
830
+ 200: {
831
+ description: string;
832
+ schema: import("@sinclair/typebox").TObject<{
833
+ items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
834
+ name: import("@sinclair/typebox").TString;
835
+ description: import("@sinclair/typebox").TString;
836
+ short_description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
837
+ enabled: import("@sinclair/typebox").TBoolean;
838
+ source: import("@sinclair/typebox").TLiteral<"user">;
839
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
840
+ }>>;
841
+ }>;
842
+ };
843
+ };
844
+ parameters?: never;
845
+ requestBody?: never;
846
+ } | {
847
+ method: "get";
848
+ path: string;
849
+ summary: string;
850
+ tags: string[];
851
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
852
+ responses: {
853
+ 200: {
854
+ description: string;
855
+ schema: import("@sinclair/typebox").TObject<{
856
+ skill: import("@sinclair/typebox").TObject<{
857
+ name: import("@sinclair/typebox").TString;
858
+ description: import("@sinclair/typebox").TString;
859
+ short_description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
860
+ enabled: import("@sinclair/typebox").TBoolean;
861
+ source: import("@sinclair/typebox").TLiteral<"user">;
862
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
863
+ skill_md: import("@sinclair/typebox").TString;
864
+ }>;
865
+ }>;
866
+ };
867
+ };
868
+ requestBody?: never;
869
+ } | {
870
+ method: "get";
871
+ path: string;
872
+ summary: string;
873
+ tags: string[];
874
+ responses: {
875
+ 200: {
876
+ description: string;
877
+ schema: import("@sinclair/typebox").TObject<{
878
+ generated_at: import("@sinclair/typebox").TString;
879
+ usage_overview: import("@sinclair/typebox").TObject<{
880
+ total_tokens: import("@sinclair/typebox").TInteger;
881
+ totals: import("@sinclair/typebox").TObject<{
882
+ input_tokens: import("@sinclair/typebox").TInteger;
883
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
884
+ output_tokens: import("@sinclair/typebox").TInteger;
885
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
886
+ total_tokens: import("@sinclair/typebox").TInteger;
887
+ event_count: import("@sinclair/typebox").TInteger;
888
+ }>;
889
+ by_source: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
890
+ source: import("@sinclair/typebox").TString;
891
+ label: import("@sinclair/typebox").TString;
892
+ category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"implementation">, import("@sinclair/typebox").TLiteral<"planning">, import("@sinclair/typebox").TLiteral<"context">, import("@sinclair/typebox").TLiteral<"qna">, import("@sinclair/typebox").TLiteral<"other">]>;
893
+ input_tokens: import("@sinclair/typebox").TInteger;
894
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
895
+ output_tokens: import("@sinclair/typebox").TInteger;
896
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
897
+ total_tokens: import("@sinclair/typebox").TInteger;
898
+ event_count: import("@sinclair/typebox").TInteger;
899
+ }>>;
900
+ by_model: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
901
+ model: import("@sinclair/typebox").TString;
902
+ input_tokens: import("@sinclair/typebox").TInteger;
903
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
904
+ output_tokens: import("@sinclair/typebox").TInteger;
905
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
906
+ total_tokens: import("@sinclair/typebox").TInteger;
907
+ event_count: import("@sinclair/typebox").TInteger;
908
+ }>>;
909
+ recent_windows: import("@sinclair/typebox").TObject<{
910
+ today: import("@sinclair/typebox").TObject<{
911
+ input_tokens: import("@sinclair/typebox").TInteger;
912
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
913
+ output_tokens: import("@sinclair/typebox").TInteger;
914
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
915
+ total_tokens: import("@sinclair/typebox").TInteger;
916
+ event_count: import("@sinclair/typebox").TInteger;
917
+ }>;
918
+ last_7_days: import("@sinclair/typebox").TObject<{
919
+ input_tokens: import("@sinclair/typebox").TInteger;
920
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
921
+ output_tokens: import("@sinclair/typebox").TInteger;
922
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
923
+ total_tokens: import("@sinclair/typebox").TInteger;
924
+ event_count: import("@sinclair/typebox").TInteger;
925
+ }>;
926
+ last_30_days: import("@sinclair/typebox").TObject<{
927
+ input_tokens: import("@sinclair/typebox").TInteger;
928
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
929
+ output_tokens: import("@sinclair/typebox").TInteger;
930
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
931
+ total_tokens: import("@sinclair/typebox").TInteger;
932
+ event_count: import("@sinclair/typebox").TInteger;
933
+ }>;
934
+ }>;
935
+ }>;
936
+ items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
937
+ id: import("@sinclair/typebox").TString;
938
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"run">, import("@sinclair/typebox").TLiteral<"procedure">, import("@sinclair/typebox").TLiteral<"commit">, import("@sinclair/typebox").TLiteral<"usage">, import("@sinclair/typebox").TLiteral<"clarification">, import("@sinclair/typebox").TLiteral<"checks">, import("@sinclair/typebox").TLiteral<"promotion">, import("@sinclair/typebox").TLiteral<"recovery">]>;
939
+ occurred_at: import("@sinclair/typebox").TString;
940
+ title: import("@sinclair/typebox").TString;
941
+ summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
942
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
943
+ task_title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
944
+ activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
945
+ workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
946
+ commit_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
947
+ commit_short_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
948
+ status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"needs_human">, import("@sinclair/typebox").TLiteral<"skipped">]>>;
949
+ token_usage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
950
+ input_tokens: import("@sinclair/typebox").TInteger;
951
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
952
+ output_tokens: import("@sinclair/typebox").TInteger;
953
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
954
+ total_tokens: import("@sinclair/typebox").TInteger;
955
+ event_count: import("@sinclair/typebox").TInteger;
956
+ }>>;
957
+ usage_sources: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
958
+ source: import("@sinclair/typebox").TString;
959
+ label: import("@sinclair/typebox").TString;
960
+ category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"implementation">, import("@sinclair/typebox").TLiteral<"planning">, import("@sinclair/typebox").TLiteral<"context">, import("@sinclair/typebox").TLiteral<"qna">, import("@sinclair/typebox").TLiteral<"other">]>;
961
+ input_tokens: import("@sinclair/typebox").TInteger;
962
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
963
+ output_tokens: import("@sinclair/typebox").TInteger;
964
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
965
+ total_tokens: import("@sinclair/typebox").TInteger;
966
+ event_count: import("@sinclair/typebox").TInteger;
967
+ }>>>;
968
+ usage_models: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
969
+ model: import("@sinclair/typebox").TString;
970
+ input_tokens: import("@sinclair/typebox").TInteger;
971
+ cached_input_tokens: import("@sinclair/typebox").TInteger;
972
+ output_tokens: import("@sinclair/typebox").TInteger;
973
+ reasoning_output_tokens: import("@sinclair/typebox").TInteger;
974
+ total_tokens: import("@sinclair/typebox").TInteger;
975
+ event_count: import("@sinclair/typebox").TInteger;
976
+ }>>>;
977
+ meta: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
978
+ }>>;
979
+ }>;
980
+ };
981
+ };
982
+ } | {
983
+ method: "get";
984
+ path: string;
985
+ summary: string;
986
+ tags: string[];
987
+ responses: {
988
+ 200: {
989
+ description: string;
990
+ schema: import("@sinclair/typebox").TObject<{
991
+ snapshot: import("@sinclair/typebox").TObject<{
992
+ source: import("@sinclair/typebox").TLiteral<"mainline">;
993
+ branch: import("@sinclair/typebox").TLiteral<"tutti/mainline">;
994
+ head: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
995
+ oid: import("@sinclair/typebox").TString;
996
+ short_oid: import("@sinclair/typebox").TString;
997
+ }>>;
998
+ mainline_clean: import("@sinclair/typebox").TBoolean;
999
+ generated_at: import("@sinclair/typebox").TString;
1000
+ }>;
1001
+ docs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1002
+ doc_key: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"product">, import("@sinclair/typebox").TLiteral<"tech">, import("@sinclair/typebox").TLiteral<"structure">, import("@sinclair/typebox").TLiteral<"architecture_principles">]>;
1003
+ path: import("@sinclair/typebox").TString;
1004
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"available">, import("@sinclair/typebox").TLiteral<"missing">, import("@sinclair/typebox").TLiteral<"unreadable">]>;
1005
+ unreadable_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"restricted_path">, import("@sinclair/typebox").TLiteral<"secret_like">, import("@sinclair/typebox").TLiteral<"binary">, import("@sinclair/typebox").TLiteral<"unsupported_encoding">, import("@sinclair/typebox").TLiteral<"too_large">]>>;
1006
+ size_bytes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1007
+ blob_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1008
+ last_commit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
1009
+ oid: import("@sinclair/typebox").TString;
1010
+ short_oid: import("@sinclair/typebox").TString;
1011
+ committed_at: import("@sinclair/typebox").TString;
1012
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1013
+ }>>;
1014
+ }>>;
1015
+ }>;
1016
+ contentType?: never;
1017
+ };
1018
+ };
1019
+ parameters?: never;
1020
+ querystring?: never;
1021
+ requestBody?: never;
1022
+ } | {
1023
+ method: "get";
1024
+ path: string;
1025
+ summary: string;
1026
+ tags: string[];
1027
+ parameters: import("@tutti/shared/schemas/api").BrowserFacingOpenApiParameter[];
1028
+ querystring: import("@sinclair/typebox").TObject<{
1029
+ max_bytes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1030
+ }>;
1031
+ responses: {
1032
+ 200: {
1033
+ description: string;
1034
+ schema: import("@sinclair/typebox").TObject<{
1035
+ snapshot: import("@sinclair/typebox").TObject<{
1036
+ source: import("@sinclair/typebox").TLiteral<"mainline">;
1037
+ branch: import("@sinclair/typebox").TLiteral<"tutti/mainline">;
1038
+ head: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
1039
+ oid: import("@sinclair/typebox").TString;
1040
+ short_oid: import("@sinclair/typebox").TString;
1041
+ }>>;
1042
+ mainline_clean: import("@sinclair/typebox").TBoolean;
1043
+ generated_at: import("@sinclair/typebox").TString;
1044
+ }>;
1045
+ doc: import("@sinclair/typebox").TObject<{
1046
+ doc_key: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"product">, import("@sinclair/typebox").TLiteral<"tech">, import("@sinclair/typebox").TLiteral<"structure">, import("@sinclair/typebox").TLiteral<"architecture_principles">]>;
1047
+ path: import("@sinclair/typebox").TString;
1048
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"available">, import("@sinclair/typebox").TLiteral<"missing">, import("@sinclair/typebox").TLiteral<"unreadable">]>;
1049
+ unreadable_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"restricted_path">, import("@sinclair/typebox").TLiteral<"secret_like">, import("@sinclair/typebox").TLiteral<"binary">, import("@sinclair/typebox").TLiteral<"unsupported_encoding">, import("@sinclair/typebox").TLiteral<"too_large">]>>;
1050
+ size_bytes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1051
+ blob_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1052
+ last_commit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
1053
+ oid: import("@sinclair/typebox").TString;
1054
+ short_oid: import("@sinclair/typebox").TString;
1055
+ committed_at: import("@sinclair/typebox").TString;
1056
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1057
+ }>>;
1058
+ }>;
1059
+ content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1060
+ kind: import("@sinclair/typebox").TLiteral<"text">;
1061
+ encoding: import("@sinclair/typebox").TLiteral<"utf-8">;
1062
+ text: import("@sinclair/typebox").TString;
1063
+ truncated: import("@sinclair/typebox").TBoolean;
1064
+ bytes_returned: import("@sinclair/typebox").TInteger;
1065
+ total_bytes: import("@sinclair/typebox").TInteger;
1066
+ line_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1067
+ }>, import("@sinclair/typebox").TObject<{
1068
+ kind: import("@sinclair/typebox").TLiteral<"omitted">;
1069
+ reason: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"binary">, import("@sinclair/typebox").TLiteral<"unsupported_encoding">, import("@sinclair/typebox").TLiteral<"too_large">]>;
1070
+ total_bytes: import("@sinclair/typebox").TInteger;
1071
+ }>]>;
1072
+ }>;
1073
+ contentType?: never;
1074
+ };
1075
+ };
1076
+ requestBody?: never;
1077
+ } | {
1078
+ method: "get";
1079
+ path: string;
1080
+ summary: string;
1081
+ tags: string[];
1082
+ querystring: import("@sinclair/typebox").TObject<{
1083
+ path: import("@sinclair/typebox").TString;
1084
+ max_bytes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1085
+ }>;
1086
+ responses: {
1087
+ 200: {
1088
+ description: string;
1089
+ schema: import("@sinclair/typebox").TObject<{
1090
+ snapshot: import("@sinclair/typebox").TObject<{
1091
+ source: import("@sinclair/typebox").TLiteral<"mainline">;
1092
+ branch: import("@sinclair/typebox").TLiteral<"tutti/mainline">;
1093
+ head: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
1094
+ oid: import("@sinclair/typebox").TString;
1095
+ short_oid: import("@sinclair/typebox").TString;
1096
+ }>>;
1097
+ mainline_clean: import("@sinclair/typebox").TBoolean;
1098
+ generated_at: import("@sinclair/typebox").TString;
1099
+ }>;
1100
+ file: import("@sinclair/typebox").TObject<{
1101
+ path: import("@sinclair/typebox").TString;
1102
+ name: import("@sinclair/typebox").TString;
1103
+ kind: import("@sinclair/typebox").TLiteral<"file">;
1104
+ size_bytes: import("@sinclair/typebox").TInteger;
1105
+ blob_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1106
+ extension: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1107
+ language_hint: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1108
+ media_type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1109
+ }>;
1110
+ content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1111
+ kind: import("@sinclair/typebox").TLiteral<"text">;
1112
+ encoding: import("@sinclair/typebox").TLiteral<"utf-8">;
1113
+ text: import("@sinclair/typebox").TString;
1114
+ truncated: import("@sinclair/typebox").TBoolean;
1115
+ bytes_returned: import("@sinclair/typebox").TInteger;
1116
+ total_bytes: import("@sinclair/typebox").TInteger;
1117
+ line_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1118
+ }>, import("@sinclair/typebox").TObject<{
1119
+ kind: import("@sinclair/typebox").TLiteral<"omitted">;
1120
+ reason: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"binary">, import("@sinclair/typebox").TLiteral<"unsupported_encoding">, import("@sinclair/typebox").TLiteral<"too_large">]>;
1121
+ total_bytes: import("@sinclair/typebox").TInteger;
1122
+ }>]>;
1123
+ }>;
1124
+ contentType?: never;
1125
+ };
1126
+ };
1127
+ parameters?: never;
1128
+ requestBody?: never;
1129
+ } | {
1130
+ method: "get";
1131
+ path: string;
1132
+ summary: string;
1133
+ tags: string[];
1134
+ querystring: import("@sinclair/typebox").TObject<{
1135
+ path: import("@sinclair/typebox").TString;
1136
+ variant: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"thumbnail">, import("@sinclair/typebox").TLiteral<"preview">, import("@sinclair/typebox").TLiteral<"original">]>;
1137
+ v: import("@sinclair/typebox").TString;
1138
+ }>;
1139
+ responses: {
1140
+ 200: {
1141
+ description: string;
1142
+ contentType: string;
1143
+ schema: {
1144
+ readonly type: "string";
1145
+ readonly contentEncoding: "base64";
1146
+ readonly description: "Binary viewer asset bytes. The concrete media type is selected per asset.";
1147
+ };
1148
+ };
1149
+ };
1150
+ parameters?: never;
1151
+ requestBody?: never;
1152
+ } | {
1153
+ method: "get";
1154
+ path: string;
1155
+ summary: string;
1156
+ tags: string[];
1157
+ responses: {
1158
+ 200: {
1159
+ description: string;
1160
+ schema: {
1161
+ readonly oneOf: readonly [{
1162
+ readonly type: "object";
1163
+ readonly required: readonly ["status"];
1164
+ readonly additionalProperties: false;
1165
+ readonly properties: {
1166
+ readonly status: {
1167
+ readonly type: "string";
1168
+ readonly enum: readonly ["not_configured"];
1169
+ };
1170
+ };
1171
+ }, {
1172
+ readonly type: "object";
1173
+ readonly required: readonly ["status", "provider", "auth_kind", "redacted_key", "default_model", "validated_at"];
1174
+ readonly additionalProperties: false;
1175
+ readonly properties: {
1176
+ readonly status: {
1177
+ readonly type: "string";
1178
+ readonly enum: readonly ["configured"];
1179
+ };
1180
+ readonly provider: {
1181
+ readonly type: "string";
1182
+ readonly enum: readonly ["openai"];
1183
+ };
1184
+ readonly auth_kind: {
1185
+ readonly type: "string";
1186
+ readonly enum: readonly ["api_key"];
1187
+ };
1188
+ readonly redacted_key: {
1189
+ readonly type: "string";
1190
+ };
1191
+ readonly default_model: {
1192
+ readonly type: "string";
1193
+ };
1194
+ readonly validated_at: import("@sinclair/typebox").TString;
1195
+ };
1196
+ }, {
1197
+ readonly type: "object";
1198
+ readonly required: readonly ["status"];
1199
+ readonly additionalProperties: false;
1200
+ readonly properties: {
1201
+ readonly status: {
1202
+ readonly type: "string";
1203
+ readonly enum: readonly ["invalid"];
1204
+ };
1205
+ readonly provider: {
1206
+ readonly type: "string";
1207
+ readonly enum: readonly ["openai"];
1208
+ };
1209
+ readonly auth_kind: {
1210
+ readonly type: "string";
1211
+ readonly enum: readonly ["api_key"];
1212
+ };
1213
+ readonly redacted_key: {
1214
+ readonly type: "string";
1215
+ };
1216
+ readonly default_model: {
1217
+ readonly type: "string";
1218
+ };
1219
+ readonly validated_at: import("@sinclair/typebox").TString;
1220
+ readonly invalid_reason_code: {
1221
+ readonly type: "string";
1222
+ readonly enum: readonly ["provider_auth_invalid", "provider_quota_or_billing_required", "provider_rate_limited", "provider_model_unavailable", "provider_network_error", "unknown"];
1223
+ };
1224
+ };
1225
+ }];
1226
+ };
1227
+ };
1228
+ };
1229
+ requestBody?: never;
1230
+ } | {
1231
+ method: "get";
1232
+ path: string;
1233
+ summary: string;
1234
+ tags: string[];
1235
+ responses: {
1236
+ 200: {
1237
+ description: string;
1238
+ schema: {
1239
+ readonly type: "object";
1240
+ readonly required: readonly ["total_tokens", "totals", "by_source", "by_model", "recent_windows"];
1241
+ readonly additionalProperties: false;
1242
+ readonly properties: {
1243
+ readonly total_tokens: {
1244
+ readonly type: "integer";
1245
+ readonly minimum: 0;
1246
+ };
1247
+ readonly totals: {
1248
+ readonly type: "object";
1249
+ readonly required: readonly ["input_tokens", "cached_input_tokens", "output_tokens", "reasoning_output_tokens", "total_tokens", "event_count"];
1250
+ readonly additionalProperties: false;
1251
+ readonly properties: {
1252
+ readonly input_tokens: {
1253
+ readonly type: "integer";
1254
+ readonly minimum: 0;
1255
+ };
1256
+ readonly cached_input_tokens: {
1257
+ readonly type: "integer";
1258
+ readonly minimum: 0;
1259
+ };
1260
+ readonly output_tokens: {
1261
+ readonly type: "integer";
1262
+ readonly minimum: 0;
1263
+ };
1264
+ readonly reasoning_output_tokens: {
1265
+ readonly type: "integer";
1266
+ readonly minimum: 0;
1267
+ };
1268
+ readonly total_tokens: {
1269
+ readonly type: "integer";
1270
+ readonly minimum: 0;
1271
+ };
1272
+ readonly event_count: {
1273
+ readonly type: "integer";
1274
+ readonly minimum: 0;
1275
+ };
1276
+ };
1277
+ };
1278
+ readonly by_source: {
1279
+ readonly type: "array";
1280
+ readonly items: {
1281
+ readonly type: "object";
1282
+ readonly required: readonly ["source", "label", "category", "input_tokens", "cached_input_tokens", "output_tokens", "reasoning_output_tokens", "total_tokens", "event_count"];
1283
+ readonly additionalProperties: false;
1284
+ readonly properties: {
1285
+ readonly source: {
1286
+ readonly type: "string";
1287
+ readonly minLength: 1;
1288
+ };
1289
+ readonly label: {
1290
+ readonly type: "string";
1291
+ readonly minLength: 1;
1292
+ };
1293
+ readonly category: {
1294
+ readonly type: "string";
1295
+ readonly enum: readonly ["implementation", "planning", "context", "qna", "other"];
1296
+ };
1297
+ readonly input_tokens: {
1298
+ readonly type: "integer";
1299
+ readonly minimum: 0;
1300
+ };
1301
+ readonly cached_input_tokens: {
1302
+ readonly type: "integer";
1303
+ readonly minimum: 0;
1304
+ };
1305
+ readonly output_tokens: {
1306
+ readonly type: "integer";
1307
+ readonly minimum: 0;
1308
+ };
1309
+ readonly reasoning_output_tokens: {
1310
+ readonly type: "integer";
1311
+ readonly minimum: 0;
1312
+ };
1313
+ readonly total_tokens: {
1314
+ readonly type: "integer";
1315
+ readonly minimum: 0;
1316
+ };
1317
+ readonly event_count: {
1318
+ readonly type: "integer";
1319
+ readonly minimum: 0;
1320
+ };
1321
+ };
1322
+ };
1323
+ };
1324
+ readonly by_model: {
1325
+ readonly type: "array";
1326
+ readonly items: {
1327
+ readonly type: "object";
1328
+ readonly required: readonly ["model", "input_tokens", "cached_input_tokens", "output_tokens", "reasoning_output_tokens", "total_tokens", "event_count"];
1329
+ readonly additionalProperties: false;
1330
+ readonly properties: {
1331
+ readonly model: {
1332
+ readonly type: "string";
1333
+ readonly minLength: 1;
1334
+ };
1335
+ readonly input_tokens: {
1336
+ readonly type: "integer";
1337
+ readonly minimum: 0;
1338
+ };
1339
+ readonly cached_input_tokens: {
1340
+ readonly type: "integer";
1341
+ readonly minimum: 0;
1342
+ };
1343
+ readonly output_tokens: {
1344
+ readonly type: "integer";
1345
+ readonly minimum: 0;
1346
+ };
1347
+ readonly reasoning_output_tokens: {
1348
+ readonly type: "integer";
1349
+ readonly minimum: 0;
1350
+ };
1351
+ readonly total_tokens: {
1352
+ readonly type: "integer";
1353
+ readonly minimum: 0;
1354
+ };
1355
+ readonly event_count: {
1356
+ readonly type: "integer";
1357
+ readonly minimum: 0;
1358
+ };
1359
+ };
1360
+ };
1361
+ };
1362
+ readonly recent_windows: {
1363
+ readonly type: "object";
1364
+ readonly required: readonly ["today", "last_7_days", "last_30_days"];
1365
+ readonly additionalProperties: false;
1366
+ readonly properties: {
1367
+ readonly today: {
1368
+ readonly type: "object";
1369
+ readonly required: readonly ["input_tokens", "cached_input_tokens", "output_tokens", "reasoning_output_tokens", "total_tokens", "event_count"];
1370
+ readonly additionalProperties: false;
1371
+ readonly properties: {
1372
+ readonly input_tokens: {
1373
+ readonly type: "integer";
1374
+ readonly minimum: 0;
1375
+ };
1376
+ readonly cached_input_tokens: {
1377
+ readonly type: "integer";
1378
+ readonly minimum: 0;
1379
+ };
1380
+ readonly output_tokens: {
1381
+ readonly type: "integer";
1382
+ readonly minimum: 0;
1383
+ };
1384
+ readonly reasoning_output_tokens: {
1385
+ readonly type: "integer";
1386
+ readonly minimum: 0;
1387
+ };
1388
+ readonly total_tokens: {
1389
+ readonly type: "integer";
1390
+ readonly minimum: 0;
1391
+ };
1392
+ readonly event_count: {
1393
+ readonly type: "integer";
1394
+ readonly minimum: 0;
1395
+ };
1396
+ };
1397
+ };
1398
+ readonly last_7_days: {
1399
+ readonly type: "object";
1400
+ readonly required: readonly ["input_tokens", "cached_input_tokens", "output_tokens", "reasoning_output_tokens", "total_tokens", "event_count"];
1401
+ readonly additionalProperties: false;
1402
+ readonly properties: {
1403
+ readonly input_tokens: {
1404
+ readonly type: "integer";
1405
+ readonly minimum: 0;
1406
+ };
1407
+ readonly cached_input_tokens: {
1408
+ readonly type: "integer";
1409
+ readonly minimum: 0;
1410
+ };
1411
+ readonly output_tokens: {
1412
+ readonly type: "integer";
1413
+ readonly minimum: 0;
1414
+ };
1415
+ readonly reasoning_output_tokens: {
1416
+ readonly type: "integer";
1417
+ readonly minimum: 0;
1418
+ };
1419
+ readonly total_tokens: {
1420
+ readonly type: "integer";
1421
+ readonly minimum: 0;
1422
+ };
1423
+ readonly event_count: {
1424
+ readonly type: "integer";
1425
+ readonly minimum: 0;
1426
+ };
1427
+ };
1428
+ };
1429
+ readonly last_30_days: {
1430
+ readonly type: "object";
1431
+ readonly required: readonly ["input_tokens", "cached_input_tokens", "output_tokens", "reasoning_output_tokens", "total_tokens", "event_count"];
1432
+ readonly additionalProperties: false;
1433
+ readonly properties: {
1434
+ readonly input_tokens: {
1435
+ readonly type: "integer";
1436
+ readonly minimum: 0;
1437
+ };
1438
+ readonly cached_input_tokens: {
1439
+ readonly type: "integer";
1440
+ readonly minimum: 0;
1441
+ };
1442
+ readonly output_tokens: {
1443
+ readonly type: "integer";
1444
+ readonly minimum: 0;
1445
+ };
1446
+ readonly reasoning_output_tokens: {
1447
+ readonly type: "integer";
1448
+ readonly minimum: 0;
1449
+ };
1450
+ readonly total_tokens: {
1451
+ readonly type: "integer";
1452
+ readonly minimum: 0;
1453
+ };
1454
+ readonly event_count: {
1455
+ readonly type: "integer";
1456
+ readonly minimum: 0;
1457
+ };
1458
+ };
1459
+ };
1460
+ };
1461
+ };
1462
+ };
1463
+ };
1464
+ };
1465
+ };
1466
+ requestBody?: never;
1467
+ } | {
1468
+ method: "get";
1469
+ path: string;
1470
+ summary: string;
1471
+ tags: string[];
1472
+ responses: {
1473
+ 200: {
1474
+ description: string;
1475
+ schema: {
1476
+ readonly type: "object";
1477
+ readonly required: readonly ["account", "membership", "client_session"];
1478
+ readonly additionalProperties: false;
1479
+ readonly properties: {
1480
+ readonly account: {
1481
+ readonly type: "object";
1482
+ readonly required: readonly ["account_ref", "display_name", "avatar"];
1483
+ readonly additionalProperties: false;
1484
+ readonly properties: {
1485
+ readonly account_ref: import("@sinclair/typebox").TString;
1486
+ readonly display_name: {
1487
+ readonly type: "string";
1488
+ readonly minLength: 1;
1489
+ };
1490
+ readonly avatar: {
1491
+ readonly oneOf: readonly [{
1492
+ readonly type: "object";
1493
+ readonly required: readonly ["kind", "initials", "color"];
1494
+ readonly additionalProperties: false;
1495
+ readonly properties: {
1496
+ readonly kind: {
1497
+ readonly type: "string";
1498
+ readonly enum: readonly ["initials"];
1499
+ };
1500
+ readonly initials: {
1501
+ readonly type: "string";
1502
+ readonly minLength: 1;
1503
+ };
1504
+ readonly color: {
1505
+ readonly type: "string";
1506
+ readonly enum: readonly ["green", "blue", "yellow", "neutral"];
1507
+ };
1508
+ };
1509
+ }, {
1510
+ readonly type: "object";
1511
+ readonly required: readonly ["kind", "image_url", "initials", "color"];
1512
+ readonly additionalProperties: false;
1513
+ readonly properties: {
1514
+ readonly kind: {
1515
+ readonly type: "string";
1516
+ readonly enum: readonly ["image"];
1517
+ };
1518
+ readonly image_url: {
1519
+ readonly type: "string";
1520
+ readonly minLength: 1;
1521
+ };
1522
+ readonly initials: {
1523
+ readonly type: "string";
1524
+ readonly minLength: 1;
1525
+ };
1526
+ readonly color: {
1527
+ readonly type: "string";
1528
+ readonly enum: readonly ["green", "blue", "yellow", "neutral"];
1529
+ };
1530
+ };
1531
+ }];
1532
+ };
1533
+ };
1534
+ };
1535
+ readonly membership: {
1536
+ readonly type: "object";
1537
+ readonly required: readonly ["label", "joined_at"];
1538
+ readonly additionalProperties: false;
1539
+ readonly properties: {
1540
+ readonly label: {
1541
+ readonly type: "string";
1542
+ readonly enum: readonly ["owner", "member"];
1543
+ };
1544
+ readonly relay_project_ref: import("@sinclair/typebox").TString;
1545
+ readonly joined_at: import("@sinclair/typebox").TString;
1546
+ };
1547
+ };
1548
+ readonly client_session: {
1549
+ readonly type: "object";
1550
+ readonly required: readonly ["client_session_id", "transport", "connected_at"];
1551
+ readonly additionalProperties: false;
1552
+ readonly properties: {
1553
+ readonly client_session_id: import("@sinclair/typebox").TString;
1554
+ readonly transport: {
1555
+ readonly type: "string";
1556
+ readonly enum: readonly ["relay_tunnel"];
1557
+ };
1558
+ readonly connected_at: import("@sinclair/typebox").TString;
1559
+ };
1560
+ };
1561
+ };
1562
+ };
1563
+ };
1564
+ };
1565
+ requestBody?: never;
1566
+ } | {
1567
+ method: "get";
1568
+ path: string;
1569
+ summary: string;
1570
+ tags: string[];
1571
+ responses: {
1572
+ 200: {
1573
+ description: string;
1574
+ schema: {
1575
+ readonly type: "object";
1576
+ readonly required: readonly ["project", "server", "repo", "relay", "provider", "capabilities"];
1577
+ readonly additionalProperties: false;
1578
+ readonly properties: {
1579
+ readonly project: {
1580
+ readonly type: "object";
1581
+ readonly required: readonly ["project_id", "display_name", "identity_source"];
1582
+ readonly additionalProperties: false;
1583
+ readonly properties: {
1584
+ readonly project_id: import("@sinclair/typebox").TString;
1585
+ readonly display_name: {
1586
+ readonly type: "string";
1587
+ readonly minLength: 1;
1588
+ };
1589
+ readonly identity_source: {
1590
+ readonly type: "string";
1591
+ readonly enum: readonly ["git_config"];
1592
+ };
1593
+ };
1594
+ };
1595
+ readonly server: {
1596
+ readonly type: "object";
1597
+ readonly required: readonly ["version", "started_at", "mode"];
1598
+ readonly additionalProperties: false;
1599
+ readonly properties: {
1600
+ readonly version: {
1601
+ readonly type: "string";
1602
+ };
1603
+ readonly started_at: import("@sinclair/typebox").TString;
1604
+ readonly mode: {
1605
+ readonly type: "string";
1606
+ readonly enum: readonly ["development", "production"];
1607
+ };
1608
+ };
1609
+ };
1610
+ readonly repo: {
1611
+ readonly type: "object";
1612
+ readonly required: readonly ["mainline_branch", "mainline_timeline", "mainline_clean"];
1613
+ readonly additionalProperties: false;
1614
+ readonly properties: {
1615
+ readonly mainline_branch: {
1616
+ readonly type: "string";
1617
+ readonly enum: readonly ["tutti/mainline"];
1618
+ };
1619
+ readonly mainline_head: {
1620
+ readonly type: "object";
1621
+ readonly required: readonly ["oid", "short_oid"];
1622
+ readonly additionalProperties: false;
1623
+ readonly properties: {
1624
+ readonly oid: {
1625
+ readonly type: "string";
1626
+ readonly minLength: 1;
1627
+ };
1628
+ readonly short_oid: {
1629
+ readonly type: "string";
1630
+ readonly minLength: 1;
1631
+ };
1632
+ };
1633
+ };
1634
+ readonly mainline_timeline: {
1635
+ readonly type: "object";
1636
+ readonly required: readonly ["entries"];
1637
+ readonly additionalProperties: false;
1638
+ readonly properties: {
1639
+ readonly entries: {
1640
+ readonly type: "array";
1641
+ readonly items: {
1642
+ readonly type: "object";
1643
+ readonly required: readonly ["oid", "committed_at"];
1644
+ readonly additionalProperties: false;
1645
+ readonly properties: {
1646
+ readonly oid: {
1647
+ readonly type: "string";
1648
+ readonly minLength: 1;
1649
+ };
1650
+ readonly committed_at: import("@sinclair/typebox").TString;
1651
+ };
1652
+ };
1653
+ };
1654
+ };
1655
+ };
1656
+ readonly mainline_clean: {
1657
+ readonly type: "boolean";
1658
+ };
1659
+ };
1660
+ };
1661
+ readonly relay: {
1662
+ readonly type: "object";
1663
+ readonly required: readonly ["status", "relay_url", "join_token_reusable"];
1664
+ readonly additionalProperties: false;
1665
+ readonly properties: {
1666
+ readonly status: {
1667
+ readonly type: "string";
1668
+ readonly enum: readonly ["connected", "reconnecting", "unavailable"];
1669
+ };
1670
+ readonly relay_url: {
1671
+ readonly type: "string";
1672
+ readonly minLength: 1;
1673
+ };
1674
+ readonly join_url: {
1675
+ readonly type: "string";
1676
+ readonly minLength: 1;
1677
+ };
1678
+ readonly join_url_visibility: {
1679
+ readonly type: "string";
1680
+ readonly enum: readonly ["visible_once", "not_recoverable"];
1681
+ };
1682
+ readonly join_token_expires_at: import("@sinclair/typebox").TString;
1683
+ readonly join_token_reusable: {
1684
+ readonly type: "boolean";
1685
+ };
1686
+ };
1687
+ };
1688
+ readonly provider: {
1689
+ readonly type: "object";
1690
+ readonly required: readonly ["status"];
1691
+ readonly additionalProperties: false;
1692
+ readonly properties: {
1693
+ readonly status: {
1694
+ readonly type: "string";
1695
+ readonly enum: readonly ["not_configured", "configured", "invalid"];
1696
+ };
1697
+ readonly provider: {
1698
+ readonly type: "string";
1699
+ readonly enum: readonly ["openai"];
1700
+ };
1701
+ };
1702
+ };
1703
+ readonly capabilities: {
1704
+ readonly type: "object";
1705
+ readonly required: readonly ["sse", "relay_join", "repo_viewer", "provider_config_query", "browser_secret_write", "task_auto_scheduler", "task_run_now_scheduler", "clarification"];
1706
+ readonly additionalProperties: false;
1707
+ readonly properties: {
1708
+ readonly sse: {
1709
+ readonly type: "boolean";
1710
+ };
1711
+ readonly relay_join: {
1712
+ readonly type: "boolean";
1713
+ };
1714
+ readonly repo_viewer: {
1715
+ readonly type: "boolean";
1716
+ };
1717
+ readonly provider_config_query: {
1718
+ readonly type: "boolean";
1719
+ };
1720
+ readonly browser_secret_write: {
1721
+ readonly type: "boolean";
1722
+ readonly enum: readonly [false];
1723
+ };
1724
+ readonly task_auto_scheduler: {
1725
+ readonly type: "boolean";
1726
+ };
1727
+ readonly task_run_now_scheduler: {
1728
+ readonly type: "boolean";
1729
+ };
1730
+ readonly clarification: {
1731
+ readonly type: "boolean";
1732
+ };
1733
+ };
1734
+ };
1735
+ };
1736
+ };
1737
+ };
1738
+ };
1739
+ requestBody?: never;
1740
+ } | {
1741
+ method: "get";
1742
+ path: string;
1743
+ summary: string;
1744
+ tags: string[];
1745
+ responses: {
1746
+ 200: {
1747
+ description: string;
1748
+ schema: {
1749
+ readonly type: "object";
1750
+ readonly required: readonly ["generated_at", "event_cursor", "workspace", "session", "provider_config", "snapshots"];
1751
+ readonly additionalProperties: false;
1752
+ readonly properties: {
1753
+ readonly generated_at: import("@sinclair/typebox").TString;
1754
+ readonly event_cursor: {
1755
+ readonly type: "string";
1756
+ readonly minLength: 1;
1757
+ };
1758
+ readonly workspace: {
1759
+ readonly type: "object";
1760
+ readonly required: readonly ["project", "server", "repo", "relay", "provider", "capabilities"];
1761
+ readonly additionalProperties: false;
1762
+ readonly properties: {
1763
+ readonly project: {
1764
+ readonly type: "object";
1765
+ readonly required: readonly ["project_id", "display_name", "identity_source"];
1766
+ readonly additionalProperties: false;
1767
+ readonly properties: {
1768
+ readonly project_id: import("@sinclair/typebox").TString;
1769
+ readonly display_name: {
1770
+ readonly type: "string";
1771
+ readonly minLength: 1;
1772
+ };
1773
+ readonly identity_source: {
1774
+ readonly type: "string";
1775
+ readonly enum: readonly ["git_config"];
1776
+ };
1777
+ };
1778
+ };
1779
+ readonly server: {
1780
+ readonly type: "object";
1781
+ readonly required: readonly ["version", "started_at", "mode"];
1782
+ readonly additionalProperties: false;
1783
+ readonly properties: {
1784
+ readonly version: {
1785
+ readonly type: "string";
1786
+ };
1787
+ readonly started_at: import("@sinclair/typebox").TString;
1788
+ readonly mode: {
1789
+ readonly type: "string";
1790
+ readonly enum: readonly ["development", "production"];
1791
+ };
1792
+ };
1793
+ };
1794
+ readonly repo: {
1795
+ readonly type: "object";
1796
+ readonly required: readonly ["mainline_branch", "mainline_timeline", "mainline_clean"];
1797
+ readonly additionalProperties: false;
1798
+ readonly properties: {
1799
+ readonly mainline_branch: {
1800
+ readonly type: "string";
1801
+ readonly enum: readonly ["tutti/mainline"];
1802
+ };
1803
+ readonly mainline_head: {
1804
+ readonly type: "object";
1805
+ readonly required: readonly ["oid", "short_oid"];
1806
+ readonly additionalProperties: false;
1807
+ readonly properties: {
1808
+ readonly oid: {
1809
+ readonly type: "string";
1810
+ readonly minLength: 1;
1811
+ };
1812
+ readonly short_oid: {
1813
+ readonly type: "string";
1814
+ readonly minLength: 1;
1815
+ };
1816
+ };
1817
+ };
1818
+ readonly mainline_timeline: {
1819
+ readonly type: "object";
1820
+ readonly required: readonly ["entries"];
1821
+ readonly additionalProperties: false;
1822
+ readonly properties: {
1823
+ readonly entries: {
1824
+ readonly type: "array";
1825
+ readonly items: {
1826
+ readonly type: "object";
1827
+ readonly required: readonly ["oid", "committed_at"];
1828
+ readonly additionalProperties: false;
1829
+ readonly properties: {
1830
+ readonly oid: {
1831
+ readonly type: "string";
1832
+ readonly minLength: 1;
1833
+ };
1834
+ readonly committed_at: import("@sinclair/typebox").TString;
1835
+ };
1836
+ };
1837
+ };
1838
+ };
1839
+ };
1840
+ readonly mainline_clean: {
1841
+ readonly type: "boolean";
1842
+ };
1843
+ };
1844
+ };
1845
+ readonly relay: {
1846
+ readonly type: "object";
1847
+ readonly required: readonly ["status", "relay_url", "join_token_reusable"];
1848
+ readonly additionalProperties: false;
1849
+ readonly properties: {
1850
+ readonly status: {
1851
+ readonly type: "string";
1852
+ readonly enum: readonly ["connected", "reconnecting", "unavailable"];
1853
+ };
1854
+ readonly relay_url: {
1855
+ readonly type: "string";
1856
+ readonly minLength: 1;
1857
+ };
1858
+ readonly join_url: {
1859
+ readonly type: "string";
1860
+ readonly minLength: 1;
1861
+ };
1862
+ readonly join_url_visibility: {
1863
+ readonly type: "string";
1864
+ readonly enum: readonly ["visible_once", "not_recoverable"];
1865
+ };
1866
+ readonly join_token_expires_at: import("@sinclair/typebox").TString;
1867
+ readonly join_token_reusable: {
1868
+ readonly type: "boolean";
1869
+ };
1870
+ };
1871
+ };
1872
+ readonly provider: {
1873
+ readonly type: "object";
1874
+ readonly required: readonly ["status"];
1875
+ readonly additionalProperties: false;
1876
+ readonly properties: {
1877
+ readonly status: {
1878
+ readonly type: "string";
1879
+ readonly enum: readonly ["not_configured", "configured", "invalid"];
1880
+ };
1881
+ readonly provider: {
1882
+ readonly type: "string";
1883
+ readonly enum: readonly ["openai"];
1884
+ };
1885
+ };
1886
+ };
1887
+ readonly capabilities: {
1888
+ readonly type: "object";
1889
+ readonly required: readonly ["sse", "relay_join", "repo_viewer", "provider_config_query", "browser_secret_write", "task_auto_scheduler", "task_run_now_scheduler", "clarification"];
1890
+ readonly additionalProperties: false;
1891
+ readonly properties: {
1892
+ readonly sse: {
1893
+ readonly type: "boolean";
1894
+ };
1895
+ readonly relay_join: {
1896
+ readonly type: "boolean";
1897
+ };
1898
+ readonly repo_viewer: {
1899
+ readonly type: "boolean";
1900
+ };
1901
+ readonly provider_config_query: {
1902
+ readonly type: "boolean";
1903
+ };
1904
+ readonly browser_secret_write: {
1905
+ readonly type: "boolean";
1906
+ readonly enum: readonly [false];
1907
+ };
1908
+ readonly task_auto_scheduler: {
1909
+ readonly type: "boolean";
1910
+ };
1911
+ readonly task_run_now_scheduler: {
1912
+ readonly type: "boolean";
1913
+ };
1914
+ readonly clarification: {
1915
+ readonly type: "boolean";
1916
+ };
1917
+ };
1918
+ };
1919
+ };
1920
+ };
1921
+ readonly session: {
1922
+ readonly type: "object";
1923
+ readonly required: readonly ["account", "membership", "client_session"];
1924
+ readonly additionalProperties: false;
1925
+ readonly properties: {
1926
+ readonly account: {
1927
+ readonly type: "object";
1928
+ readonly required: readonly ["account_ref", "display_name", "avatar"];
1929
+ readonly additionalProperties: false;
1930
+ readonly properties: {
1931
+ readonly account_ref: import("@sinclair/typebox").TString;
1932
+ readonly display_name: {
1933
+ readonly type: "string";
1934
+ readonly minLength: 1;
1935
+ };
1936
+ readonly avatar: {
1937
+ readonly oneOf: readonly [{
1938
+ readonly type: "object";
1939
+ readonly required: readonly ["kind", "initials", "color"];
1940
+ readonly additionalProperties: false;
1941
+ readonly properties: {
1942
+ readonly kind: {
1943
+ readonly type: "string";
1944
+ readonly enum: readonly ["initials"];
1945
+ };
1946
+ readonly initials: {
1947
+ readonly type: "string";
1948
+ readonly minLength: 1;
1949
+ };
1950
+ readonly color: {
1951
+ readonly type: "string";
1952
+ readonly enum: readonly ["green", "blue", "yellow", "neutral"];
1953
+ };
1954
+ };
1955
+ }, {
1956
+ readonly type: "object";
1957
+ readonly required: readonly ["kind", "image_url", "initials", "color"];
1958
+ readonly additionalProperties: false;
1959
+ readonly properties: {
1960
+ readonly kind: {
1961
+ readonly type: "string";
1962
+ readonly enum: readonly ["image"];
1963
+ };
1964
+ readonly image_url: {
1965
+ readonly type: "string";
1966
+ readonly minLength: 1;
1967
+ };
1968
+ readonly initials: {
1969
+ readonly type: "string";
1970
+ readonly minLength: 1;
1971
+ };
1972
+ readonly color: {
1973
+ readonly type: "string";
1974
+ readonly enum: readonly ["green", "blue", "yellow", "neutral"];
1975
+ };
1976
+ };
1977
+ }];
1978
+ };
1979
+ };
1980
+ };
1981
+ readonly membership: {
1982
+ readonly type: "object";
1983
+ readonly required: readonly ["label", "joined_at"];
1984
+ readonly additionalProperties: false;
1985
+ readonly properties: {
1986
+ readonly label: {
1987
+ readonly type: "string";
1988
+ readonly enum: readonly ["owner", "member"];
1989
+ };
1990
+ readonly relay_project_ref: import("@sinclair/typebox").TString;
1991
+ readonly joined_at: import("@sinclair/typebox").TString;
1992
+ };
1993
+ };
1994
+ readonly client_session: {
1995
+ readonly type: "object";
1996
+ readonly required: readonly ["client_session_id", "transport", "connected_at"];
1997
+ readonly additionalProperties: false;
1998
+ readonly properties: {
1999
+ readonly client_session_id: import("@sinclair/typebox").TString;
2000
+ readonly transport: {
2001
+ readonly type: "string";
2002
+ readonly enum: readonly ["relay_tunnel"];
2003
+ };
2004
+ readonly connected_at: import("@sinclair/typebox").TString;
2005
+ };
2006
+ };
2007
+ };
2008
+ };
2009
+ readonly provider_config: {
2010
+ readonly oneOf: readonly [{
2011
+ readonly type: "object";
2012
+ readonly required: readonly ["status"];
2013
+ readonly additionalProperties: false;
2014
+ readonly properties: {
2015
+ readonly status: {
2016
+ readonly type: "string";
2017
+ readonly enum: readonly ["not_configured"];
2018
+ };
2019
+ };
2020
+ }, {
2021
+ readonly type: "object";
2022
+ readonly required: readonly ["status", "provider", "auth_kind", "redacted_key", "default_model", "validated_at"];
2023
+ readonly additionalProperties: false;
2024
+ readonly properties: {
2025
+ readonly status: {
2026
+ readonly type: "string";
2027
+ readonly enum: readonly ["configured"];
2028
+ };
2029
+ readonly provider: {
2030
+ readonly type: "string";
2031
+ readonly enum: readonly ["openai"];
2032
+ };
2033
+ readonly auth_kind: {
2034
+ readonly type: "string";
2035
+ readonly enum: readonly ["api_key"];
2036
+ };
2037
+ readonly redacted_key: {
2038
+ readonly type: "string";
2039
+ };
2040
+ readonly default_model: {
2041
+ readonly type: "string";
2042
+ };
2043
+ readonly validated_at: import("@sinclair/typebox").TString;
2044
+ };
2045
+ }, {
2046
+ readonly type: "object";
2047
+ readonly required: readonly ["status"];
2048
+ readonly additionalProperties: false;
2049
+ readonly properties: {
2050
+ readonly status: {
2051
+ readonly type: "string";
2052
+ readonly enum: readonly ["invalid"];
2053
+ };
2054
+ readonly provider: {
2055
+ readonly type: "string";
2056
+ readonly enum: readonly ["openai"];
2057
+ };
2058
+ readonly auth_kind: {
2059
+ readonly type: "string";
2060
+ readonly enum: readonly ["api_key"];
2061
+ };
2062
+ readonly redacted_key: {
2063
+ readonly type: "string";
2064
+ };
2065
+ readonly default_model: {
2066
+ readonly type: "string";
2067
+ };
2068
+ readonly validated_at: import("@sinclair/typebox").TString;
2069
+ readonly invalid_reason_code: {
2070
+ readonly type: "string";
2071
+ readonly enum: readonly ["provider_auth_invalid", "provider_quota_or_billing_required", "provider_rate_limited", "provider_model_unavailable", "provider_network_error", "unknown"];
2072
+ };
2073
+ };
2074
+ }];
2075
+ };
2076
+ readonly snapshots: {
2077
+ readonly type: "object";
2078
+ readonly additionalProperties: false;
2079
+ readonly properties: {
2080
+ readonly main_chat: import("@sinclair/typebox").TSchema;
2081
+ readonly scratchpad: import("@sinclair/typebox").TObject<{
2082
+ id: import("@sinclair/typebox").TLiteral<"current">;
2083
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"empty">, import("@sinclair/typebox").TLiteral<"ready">]>;
2084
+ topic: import("@sinclair/typebox").TString;
2085
+ background_summary: import("@sinclair/typebox").TString;
2086
+ current_consensus: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
2087
+ open_questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
2088
+ task_changes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
2089
+ updated_by_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2090
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2091
+ }>;
2092
+ readonly worklist: import("@sinclair/typebox").TObject<{
2093
+ modules: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2094
+ module: import("@sinclair/typebox").TObject<{
2095
+ id: import("@sinclair/typebox").TString;
2096
+ name: import("@sinclair/typebox").TString;
2097
+ summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2098
+ order: import("@sinclair/typebox").TInteger;
2099
+ archived: import("@sinclair/typebox").TBoolean;
2100
+ created_at: import("@sinclair/typebox").TString;
2101
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2102
+ }>;
2103
+ tasks: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2104
+ id: import("@sinclair/typebox").TString;
2105
+ module_id: import("@sinclair/typebox").TString;
2106
+ title: import("@sinclair/typebox").TString;
2107
+ summary: import("@sinclair/typebox").TString;
2108
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"todo">, import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"done">, import("@sinclair/typebox").TLiteral<"failed">]>;
2109
+ order: import("@sinclair/typebox").TInteger;
2110
+ current_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2111
+ active_clarification_thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2112
+ latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2113
+ created_from_workflow_ref: import("@sinclair/typebox").TString;
2114
+ created_at: import("@sinclair/typebox").TString;
2115
+ updated_at: import("@sinclair/typebox").TString;
2116
+ }>>;
2117
+ }>>;
2118
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2119
+ }>;
2120
+ readonly active_clarification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
2121
+ state: import("@sinclair/typebox").TLiteral<"none">;
2122
+ }>, import("@sinclair/typebox").TObject<{
2123
+ state: import("@sinclair/typebox").TLiteral<"active">;
2124
+ thread: import("@sinclair/typebox").TObject<{
2125
+ id: import("@sinclair/typebox").TString;
2126
+ owner: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
2127
+ kind: import("@sinclair/typebox").TLiteral<"task_compile">;
2128
+ workflow_ref: import("@sinclair/typebox").TString;
2129
+ }>, import("@sinclair/typebox").TObject<{
2130
+ kind: import("@sinclair/typebox").TLiteral<"task">;
2131
+ task_id: import("@sinclair/typebox").TString;
2132
+ }>]>;
2133
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"closed">]>;
2134
+ current_round_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2135
+ created_from_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2136
+ closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
2137
+ created_at: import("@sinclair/typebox").TString;
2138
+ updated_at: import("@sinclair/typebox").TString;
2139
+ }>;
2140
+ round: import("@sinclair/typebox").TObject<{
2141
+ id: import("@sinclair/typebox").TString;
2142
+ thread_id: import("@sinclair/typebox").TString;
2143
+ round_index: import("@sinclair/typebox").TInteger;
2144
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"sealed">]>;
2145
+ request_payload: import("@sinclair/typebox").TObject<{
2146
+ summary: import("@sinclair/typebox").TString;
2147
+ request: import("@sinclair/typebox").TString;
2148
+ interaction: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2149
+ kind: import("@sinclair/typebox").TLiteral<"freeform">;
2150
+ purpose: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"clarify_requirement">, import("@sinclair/typebox").TLiteral<"confirm_risk">]>;
2151
+ prompt: import("@sinclair/typebox").TObject<{
2152
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2153
+ summary: import("@sinclair/typebox").TString;
2154
+ request: import("@sinclair/typebox").TString;
2155
+ }>;
2156
+ subject: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2157
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"task">, import("@sinclair/typebox").TLiteral<"deployment_target">, import("@sinclair/typebox").TLiteral<"project_context">]>;
2158
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2159
+ summary: import("@sinclair/typebox").TString;
2160
+ }>>;
2161
+ expires_when: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"current_run_only">, import("@sinclair/typebox").TLiteral<"until_task_contract_changes">]>>;
2162
+ }>>;
2163
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2164
+ related_refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
2165
+ ref_kind: import("@sinclair/typebox").TLiteral<"project_doc">;
2166
+ path: import("@sinclair/typebox").TString;
2167
+ }>, import("@sinclair/typebox").TObject<{
2168
+ ref_kind: import("@sinclair/typebox").TLiteral<"directory_readme">;
2169
+ path: import("@sinclair/typebox").TString;
2170
+ }>, import("@sinclair/typebox").TObject<{
2171
+ ref_kind: import("@sinclair/typebox").TLiteral<"task_detail">;
2172
+ task_id: import("@sinclair/typebox").TString;
2173
+ }>, import("@sinclair/typebox").TObject<{
2174
+ ref_kind: import("@sinclair/typebox").TLiteral<"worklist">;
2175
+ module_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2176
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2177
+ }>, import("@sinclair/typebox").TObject<{
2178
+ ref_kind: import("@sinclair/typebox").TLiteral<"scratchpad">;
2179
+ id: import("@sinclair/typebox").TLiteral<"current">;
2180
+ }>, import("@sinclair/typebox").TObject<{
2181
+ ref_kind: import("@sinclair/typebox").TLiteral<"clarification_round">;
2182
+ clarification_round_ref: import("@sinclair/typebox").TString;
2183
+ }>, import("@sinclair/typebox").TObject<{
2184
+ ref_kind: import("@sinclair/typebox").TLiteral<"chat_messages">;
2185
+ message_refs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
2186
+ }>, import("@sinclair/typebox").TObject<{
2187
+ ref_kind: import("@sinclair/typebox").TLiteral<"repo_paths">;
2188
+ paths: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
2189
+ }>, import("@sinclair/typebox").TObject<{
2190
+ ref_kind: import("@sinclair/typebox").TLiteral<"recovery_summary">;
2191
+ recovery_summary_id: import("@sinclair/typebox").TString;
2192
+ }>]>>>;
2193
+ }>;
2194
+ card_message_id: import("@sinclair/typebox").TString;
2195
+ opening_message_id: import("@sinclair/typebox").TString;
2196
+ submitted_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2197
+ submitted_message_refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
2198
+ successor_status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"not_materialized">, import("@sinclair/typebox").TLiteral<"materialized">]>;
2199
+ successor_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
2200
+ kind: import("@sinclair/typebox").TLiteral<"next_round">;
2201
+ clarification_round_ref: import("@sinclair/typebox").TString;
2202
+ }>, import("@sinclair/typebox").TObject<{
2203
+ kind: import("@sinclair/typebox").TLiteral<"run">;
2204
+ activity_ref: import("@sinclair/typebox").TString;
2205
+ }>, import("@sinclair/typebox").TObject<{
2206
+ kind: import("@sinclair/typebox").TLiteral<"chain_closed">;
2207
+ }>, import("@sinclair/typebox").TObject<{
2208
+ kind: import("@sinclair/typebox").TLiteral<"proposal_applied">;
2209
+ workflow_ref: import("@sinclair/typebox").TString;
2210
+ }>]>>;
2211
+ capabilities: import("@sinclair/typebox").TObject<{
2212
+ send_message: import("@sinclair/typebox").TBoolean;
2213
+ submit: import("@sinclair/typebox").TBoolean;
2214
+ }>;
2215
+ created_at: import("@sinclair/typebox").TString;
2216
+ updated_at: import("@sinclair/typebox").TString;
2217
+ }>;
2218
+ }>]>;
2219
+ readonly active_approval: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
2220
+ state: import("@sinclair/typebox").TLiteral<"none">;
2221
+ }>, import("@sinclair/typebox").TObject<{
2222
+ state: import("@sinclair/typebox").TLiteral<"pending">;
2223
+ request: import("@sinclair/typebox").TObject<{
2224
+ approval_id: import("@sinclair/typebox").TString;
2225
+ request_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"command_execution">, import("@sinclair/typebox").TLiteral<"file_change">, import("@sinclair/typebox").TLiteral<"permissions">, import("@sinclair/typebox").TLiteral<"legacy_exec_command">, import("@sinclair/typebox").TLiteral<"legacy_apply_patch">]>;
2226
+ title: import("@sinclair/typebox").TString;
2227
+ summary: import("@sinclair/typebox").TString;
2228
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2229
+ requested_at: import("@sinclair/typebox").TString;
2230
+ expires_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2231
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2232
+ activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2233
+ command: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2234
+ text: import("@sinclair/typebox").TString;
2235
+ cwd_label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2236
+ actions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2237
+ label: import("@sinclair/typebox").TString;
2238
+ detail: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2239
+ }>>>;
2240
+ network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2241
+ host: import("@sinclair/typebox").TString;
2242
+ protocol: import("@sinclair/typebox").TString;
2243
+ }>>;
2244
+ }>>;
2245
+ file_change: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2246
+ grant_root_label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2247
+ paths: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
2248
+ }>>;
2249
+ permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2250
+ network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2251
+ enabled: import("@sinclair/typebox").TBoolean;
2252
+ }>>;
2253
+ filesystem: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2254
+ read: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
2255
+ write: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
2256
+ }>>;
2257
+ }>>;
2258
+ decisions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2259
+ decision_id: import("@sinclair/typebox").TString;
2260
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"allow_once">, import("@sinclair/typebox").TLiteral<"allow_session">, import("@sinclair/typebox").TLiteral<"deny">, import("@sinclair/typebox").TLiteral<"cancel">]>;
2261
+ label: import("@sinclair/typebox").TString;
2262
+ tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
2263
+ }>>;
2264
+ }>;
2265
+ }>, import("@sinclair/typebox").TObject<{
2266
+ state: import("@sinclair/typebox").TLiteral<"resolved">;
2267
+ request: import("@sinclair/typebox").TObject<{
2268
+ approval_id: import("@sinclair/typebox").TString;
2269
+ request_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"command_execution">, import("@sinclair/typebox").TLiteral<"file_change">, import("@sinclair/typebox").TLiteral<"permissions">, import("@sinclair/typebox").TLiteral<"legacy_exec_command">, import("@sinclair/typebox").TLiteral<"legacy_apply_patch">]>;
2270
+ title: import("@sinclair/typebox").TString;
2271
+ summary: import("@sinclair/typebox").TString;
2272
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2273
+ requested_at: import("@sinclair/typebox").TString;
2274
+ expires_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2275
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2276
+ activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2277
+ command: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2278
+ text: import("@sinclair/typebox").TString;
2279
+ cwd_label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2280
+ actions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2281
+ label: import("@sinclair/typebox").TString;
2282
+ detail: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2283
+ }>>>;
2284
+ network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2285
+ host: import("@sinclair/typebox").TString;
2286
+ protocol: import("@sinclair/typebox").TString;
2287
+ }>>;
2288
+ }>>;
2289
+ file_change: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2290
+ grant_root_label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2291
+ paths: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
2292
+ }>>;
2293
+ permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2294
+ network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2295
+ enabled: import("@sinclair/typebox").TBoolean;
2296
+ }>>;
2297
+ filesystem: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2298
+ read: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
2299
+ write: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
2300
+ }>>;
2301
+ }>>;
2302
+ decisions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2303
+ decision_id: import("@sinclair/typebox").TString;
2304
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"allow_once">, import("@sinclair/typebox").TLiteral<"allow_session">, import("@sinclair/typebox").TLiteral<"deny">, import("@sinclair/typebox").TLiteral<"cancel">]>;
2305
+ label: import("@sinclair/typebox").TString;
2306
+ tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
2307
+ }>>;
2308
+ }>;
2309
+ resolution: import("@sinclair/typebox").TObject<{
2310
+ decision_id: import("@sinclair/typebox").TString;
2311
+ label: import("@sinclair/typebox").TString;
2312
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"accepted">, import("@sinclair/typebox").TLiteral<"declined">, import("@sinclair/typebox").TLiteral<"cancelled">, import("@sinclair/typebox").TLiteral<"expired">]>;
2313
+ decided_at: import("@sinclair/typebox").TString;
2314
+ decided_by: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2315
+ account_ref: import("@sinclair/typebox").TString;
2316
+ display_name: import("@sinclair/typebox").TString;
2317
+ }>>;
2318
+ }>;
2319
+ }>]>;
2320
+ readonly execution_status: import("@sinclair/typebox").TObject<{
2321
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"failed">]>;
2322
+ summary: import("@sinclair/typebox").TString;
2323
+ active_task: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2324
+ id: import("@sinclair/typebox").TString;
2325
+ module_id: import("@sinclair/typebox").TString;
2326
+ title: import("@sinclair/typebox").TString;
2327
+ summary: import("@sinclair/typebox").TString;
2328
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"todo">, import("@sinclair/typebox").TLiteral<"running">, import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"done">, import("@sinclair/typebox").TLiteral<"failed">]>;
2329
+ order: import("@sinclair/typebox").TInteger;
2330
+ current_activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2331
+ active_clarification_thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2332
+ latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2333
+ created_from_workflow_ref: import("@sinclair/typebox").TString;
2334
+ created_at: import("@sinclair/typebox").TString;
2335
+ updated_at: import("@sinclair/typebox").TString;
2336
+ }>>;
2337
+ active_activity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2338
+ activity_ref: import("@sinclair/typebox").TString;
2339
+ activity_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"run">, import("@sinclair/typebox").TLiteral<"procedure">]>;
2340
+ workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2341
+ workflow_kind: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"project_context_bootstrap">, import("@sinclair/typebox").TLiteral<"scratchpad_refresh">, import("@sinclair/typebox").TLiteral<"task_compile">, import("@sinclair/typebox").TLiteral<"context_sync">, import("@sinclair/typebox").TLiteral<"reference_summary_refresh">, import("@sinclair/typebox").TLiteral<"recovery_check">, import("@sinclair/typebox").TLiteral<"follow_up_check">]>>;
2342
+ lane: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"foreground">, import("@sinclair/typebox").TLiteral<"scratchpad_background">]>>;
2343
+ started_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2344
+ }>>;
2345
+ active_activities: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2346
+ activity_ref: import("@sinclair/typebox").TString;
2347
+ activity_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"run">, import("@sinclair/typebox").TLiteral<"procedure">]>;
2348
+ workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2349
+ workflow_kind: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"project_context_bootstrap">, import("@sinclair/typebox").TLiteral<"scratchpad_refresh">, import("@sinclair/typebox").TLiteral<"task_compile">, import("@sinclair/typebox").TLiteral<"context_sync">, import("@sinclair/typebox").TLiteral<"reference_summary_refresh">, import("@sinclair/typebox").TLiteral<"recovery_check">, import("@sinclair/typebox").TLiteral<"follow_up_check">]>>;
2350
+ lane: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"foreground">, import("@sinclair/typebox").TLiteral<"scratchpad_background">]>>;
2351
+ started_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2352
+ }>>>;
2353
+ blocked_by: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
2354
+ kind: import("@sinclair/typebox").TLiteral<"clarification">;
2355
+ thread_id: import("@sinclair/typebox").TString;
2356
+ round_id: import("@sinclair/typebox").TString;
2357
+ }>, import("@sinclair/typebox").TObject<{
2358
+ kind: import("@sinclair/typebox").TLiteral<"approval">;
2359
+ approval_id: import("@sinclair/typebox").TString;
2360
+ }>]>>;
2361
+ last_conclusion: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
2362
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"needs_human">, import("@sinclair/typebox").TLiteral<"recovered">]>;
2363
+ summary: import("@sinclair/typebox").TString;
2364
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2365
+ activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2366
+ workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2367
+ occurred_at: import("@sinclair/typebox").TString;
2368
+ }>>;
2369
+ updated_at: import("@sinclair/typebox").TString;
2370
+ }>;
2371
+ readonly read_state: import("@sinclair/typebox").TObject<{
2372
+ generated_at: import("@sinclair/typebox").TString;
2373
+ scopes: import("@sinclair/typebox").TObject<{
2374
+ chat: import("@sinclair/typebox").TObject<{
2375
+ scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"worklist">, import("@sinclair/typebox").TLiteral<"references">, import("@sinclair/typebox").TLiteral<"skills">]>;
2376
+ latest_event_cursor: import("@sinclair/typebox").TInteger;
2377
+ read_event_cursor: import("@sinclair/typebox").TInteger;
2378
+ has_unread: import("@sinclair/typebox").TBoolean;
2379
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2380
+ }>;
2381
+ worklist: import("@sinclair/typebox").TObject<{
2382
+ scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"worklist">, import("@sinclair/typebox").TLiteral<"references">, import("@sinclair/typebox").TLiteral<"skills">]>;
2383
+ latest_event_cursor: import("@sinclair/typebox").TInteger;
2384
+ read_event_cursor: import("@sinclair/typebox").TInteger;
2385
+ has_unread: import("@sinclair/typebox").TBoolean;
2386
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2387
+ }>;
2388
+ references: import("@sinclair/typebox").TObject<{
2389
+ scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"worklist">, import("@sinclair/typebox").TLiteral<"references">, import("@sinclair/typebox").TLiteral<"skills">]>;
2390
+ latest_event_cursor: import("@sinclair/typebox").TInteger;
2391
+ read_event_cursor: import("@sinclair/typebox").TInteger;
2392
+ has_unread: import("@sinclair/typebox").TBoolean;
2393
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2394
+ }>;
2395
+ skills: import("@sinclair/typebox").TObject<{
2396
+ scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"worklist">, import("@sinclair/typebox").TLiteral<"references">, import("@sinclair/typebox").TLiteral<"skills">]>;
2397
+ latest_event_cursor: import("@sinclair/typebox").TInteger;
2398
+ read_event_cursor: import("@sinclair/typebox").TInteger;
2399
+ has_unread: import("@sinclair/typebox").TBoolean;
2400
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2401
+ }>;
2402
+ }>;
2403
+ }>;
2404
+ };
2405
+ };
2406
+ };
2407
+ };
2408
+ };
2409
+ };
2410
+ requestBody?: never;
2411
+ } | {
2412
+ method: "get";
2413
+ path: string;
2414
+ summary: string;
2415
+ tags: string[];
2416
+ responses: {
2417
+ 200: {
2418
+ description: string;
2419
+ schema: import("@sinclair/typebox").TObject<{
2420
+ generated_at: import("@sinclair/typebox").TString;
2421
+ scopes: import("@sinclair/typebox").TObject<{
2422
+ chat: import("@sinclair/typebox").TObject<{
2423
+ scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"worklist">, import("@sinclair/typebox").TLiteral<"references">, import("@sinclair/typebox").TLiteral<"skills">]>;
2424
+ latest_event_cursor: import("@sinclair/typebox").TInteger;
2425
+ read_event_cursor: import("@sinclair/typebox").TInteger;
2426
+ has_unread: import("@sinclair/typebox").TBoolean;
2427
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2428
+ }>;
2429
+ worklist: import("@sinclair/typebox").TObject<{
2430
+ scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"worklist">, import("@sinclair/typebox").TLiteral<"references">, import("@sinclair/typebox").TLiteral<"skills">]>;
2431
+ latest_event_cursor: import("@sinclair/typebox").TInteger;
2432
+ read_event_cursor: import("@sinclair/typebox").TInteger;
2433
+ has_unread: import("@sinclair/typebox").TBoolean;
2434
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2435
+ }>;
2436
+ references: import("@sinclair/typebox").TObject<{
2437
+ scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"worklist">, import("@sinclair/typebox").TLiteral<"references">, import("@sinclair/typebox").TLiteral<"skills">]>;
2438
+ latest_event_cursor: import("@sinclair/typebox").TInteger;
2439
+ read_event_cursor: import("@sinclair/typebox").TInteger;
2440
+ has_unread: import("@sinclair/typebox").TBoolean;
2441
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2442
+ }>;
2443
+ skills: import("@sinclair/typebox").TObject<{
2444
+ scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"worklist">, import("@sinclair/typebox").TLiteral<"references">, import("@sinclair/typebox").TLiteral<"skills">]>;
2445
+ latest_event_cursor: import("@sinclair/typebox").TInteger;
2446
+ read_event_cursor: import("@sinclair/typebox").TInteger;
2447
+ has_unread: import("@sinclair/typebox").TBoolean;
2448
+ updated_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
2449
+ }>;
2450
+ }>;
2451
+ }>;
2452
+ };
2453
+ };
2454
+ requestBody?: never;
2455
+ })[];
2456
+ export declare function buildHostProjectOpenApiDocument(): Record<string, unknown>;
2457
+ //# sourceMappingURL=openapi.d.ts.map