@felan-ai/daemon 0.0.0-stage → 0.0.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 (288) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +69 -0
  3. package/README.md +61 -2
  4. package/dist/client.d.ts +5 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +4 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/daemon/admission.d.ts +39 -0
  9. package/dist/daemon/admission.d.ts.map +1 -0
  10. package/dist/daemon/admission.js +175 -0
  11. package/dist/daemon/admission.js.map +1 -0
  12. package/dist/daemon/agent-logs.d.ts +11 -0
  13. package/dist/daemon/agent-logs.d.ts.map +1 -0
  14. package/dist/daemon/agent-logs.js +31 -0
  15. package/dist/daemon/agent-logs.js.map +1 -0
  16. package/dist/daemon/bootstrap.d.ts +7 -0
  17. package/dist/daemon/bootstrap.d.ts.map +1 -0
  18. package/dist/daemon/bootstrap.js +4 -0
  19. package/dist/daemon/bootstrap.js.map +1 -0
  20. package/dist/daemon/broker.d.ts +94 -0
  21. package/dist/daemon/broker.d.ts.map +1 -0
  22. package/dist/daemon/broker.js +374 -0
  23. package/dist/daemon/broker.js.map +1 -0
  24. package/dist/daemon/commands.d.ts +47 -0
  25. package/dist/daemon/commands.d.ts.map +1 -0
  26. package/dist/daemon/commands.js +639 -0
  27. package/dist/daemon/commands.js.map +1 -0
  28. package/dist/daemon/control-recovery.d.ts +9 -0
  29. package/dist/daemon/control-recovery.d.ts.map +1 -0
  30. package/dist/daemon/control-recovery.js +68 -0
  31. package/dist/daemon/control-recovery.js.map +1 -0
  32. package/dist/daemon/control-state.d.ts +1915 -0
  33. package/dist/daemon/control-state.d.ts.map +1 -0
  34. package/dist/daemon/control-state.js +154 -0
  35. package/dist/daemon/control-state.js.map +1 -0
  36. package/dist/daemon/control-store.d.ts +113 -0
  37. package/dist/daemon/control-store.d.ts.map +1 -0
  38. package/dist/daemon/control-store.js +901 -0
  39. package/dist/daemon/control-store.js.map +1 -0
  40. package/dist/daemon/execution-policy.d.ts +15 -0
  41. package/dist/daemon/execution-policy.d.ts.map +1 -0
  42. package/dist/daemon/execution-policy.js +42 -0
  43. package/dist/daemon/execution-policy.js.map +1 -0
  44. package/dist/daemon/execution-services.d.ts +5 -0
  45. package/dist/daemon/execution-services.d.ts.map +1 -0
  46. package/dist/daemon/execution-services.js +73 -0
  47. package/dist/daemon/execution-services.js.map +1 -0
  48. package/dist/daemon/executions.d.ts +134 -0
  49. package/dist/daemon/executions.d.ts.map +1 -0
  50. package/dist/daemon/executions.js +486 -0
  51. package/dist/daemon/executions.js.map +1 -0
  52. package/dist/daemon/extension-ui.d.ts +24 -0
  53. package/dist/daemon/extension-ui.d.ts.map +1 -0
  54. package/dist/daemon/extension-ui.js +161 -0
  55. package/dist/daemon/extension-ui.js.map +1 -0
  56. package/dist/daemon/fanout.d.ts +40 -0
  57. package/dist/daemon/fanout.d.ts.map +1 -0
  58. package/dist/daemon/fanout.js +304 -0
  59. package/dist/daemon/fanout.js.map +1 -0
  60. package/dist/daemon/headless-json.d.ts +3 -0
  61. package/dist/daemon/headless-json.d.ts.map +1 -0
  62. package/dist/daemon/headless-json.js +20 -0
  63. package/dist/daemon/headless-json.js.map +1 -0
  64. package/dist/daemon/host-config.d.ts +61 -0
  65. package/dist/daemon/host-config.d.ts.map +1 -0
  66. package/dist/daemon/host-config.js +167 -0
  67. package/dist/daemon/host-config.js.map +1 -0
  68. package/dist/daemon/host-services.d.ts +61 -0
  69. package/dist/daemon/host-services.d.ts.map +1 -0
  70. package/dist/daemon/host-services.js +2 -0
  71. package/dist/daemon/host-services.js.map +1 -0
  72. package/dist/daemon/ipc.d.ts +14 -0
  73. package/dist/daemon/ipc.d.ts.map +1 -0
  74. package/dist/daemon/ipc.js +233 -0
  75. package/dist/daemon/ipc.js.map +1 -0
  76. package/dist/daemon/legacy-sessions.d.ts +48 -0
  77. package/dist/daemon/legacy-sessions.d.ts.map +1 -0
  78. package/dist/daemon/legacy-sessions.js +328 -0
  79. package/dist/daemon/legacy-sessions.js.map +1 -0
  80. package/dist/daemon/lifecycle.d.ts +44 -0
  81. package/dist/daemon/lifecycle.d.ts.map +1 -0
  82. package/dist/daemon/lifecycle.js +164 -0
  83. package/dist/daemon/lifecycle.js.map +1 -0
  84. package/dist/daemon/main.d.ts +3 -0
  85. package/dist/daemon/main.d.ts.map +1 -0
  86. package/dist/daemon/main.js +83 -0
  87. package/dist/daemon/main.js.map +1 -0
  88. package/dist/daemon/message-display.d.ts +4 -0
  89. package/dist/daemon/message-display.d.ts.map +1 -0
  90. package/dist/daemon/message-display.js +20 -0
  91. package/dist/daemon/message-display.js.map +1 -0
  92. package/dist/daemon/native-ownership.d.ts +13 -0
  93. package/dist/daemon/native-ownership.d.ts.map +1 -0
  94. package/dist/daemon/native-ownership.js +173 -0
  95. package/dist/daemon/native-ownership.js.map +1 -0
  96. package/dist/daemon/operational-log.d.ts +23 -0
  97. package/dist/daemon/operational-log.d.ts.map +1 -0
  98. package/dist/daemon/operational-log.js +79 -0
  99. package/dist/daemon/operational-log.js.map +1 -0
  100. package/dist/daemon/ownership.d.ts +35 -0
  101. package/dist/daemon/ownership.d.ts.map +1 -0
  102. package/dist/daemon/ownership.js +395 -0
  103. package/dist/daemon/ownership.js.map +1 -0
  104. package/dist/daemon/persistence.d.ts +110 -0
  105. package/dist/daemon/persistence.d.ts.map +1 -0
  106. package/dist/daemon/persistence.js +540 -0
  107. package/dist/daemon/persistence.js.map +1 -0
  108. package/dist/daemon/process-adapter.d.ts +23 -0
  109. package/dist/daemon/process-adapter.d.ts.map +1 -0
  110. package/dist/daemon/process-adapter.js +2 -0
  111. package/dist/daemon/process-adapter.js.map +1 -0
  112. package/dist/daemon/processes.d.ts +102 -0
  113. package/dist/daemon/processes.d.ts.map +1 -0
  114. package/dist/daemon/processes.js +691 -0
  115. package/dist/daemon/processes.js.map +1 -0
  116. package/dist/daemon/profile-storage.d.ts +16 -0
  117. package/dist/daemon/profile-storage.d.ts.map +1 -0
  118. package/dist/daemon/profile-storage.js +148 -0
  119. package/dist/daemon/profile-storage.js.map +1 -0
  120. package/dist/daemon/projection.d.ts +110 -0
  121. package/dist/daemon/projection.d.ts.map +1 -0
  122. package/dist/daemon/projection.js +661 -0
  123. package/dist/daemon/projection.js.map +1 -0
  124. package/dist/daemon/provider-loader.d.ts +28 -0
  125. package/dist/daemon/provider-loader.d.ts.map +1 -0
  126. package/dist/daemon/provider-loader.js +376 -0
  127. package/dist/daemon/provider-loader.js.map +1 -0
  128. package/dist/daemon/provider.d.ts +92 -0
  129. package/dist/daemon/provider.d.ts.map +1 -0
  130. package/dist/daemon/provider.js +31 -0
  131. package/dist/daemon/provider.js.map +1 -0
  132. package/dist/daemon/registry.d.ts +209 -0
  133. package/dist/daemon/registry.d.ts.map +1 -0
  134. package/dist/daemon/registry.js +1591 -0
  135. package/dist/daemon/registry.js.map +1 -0
  136. package/dist/daemon/runtime-dependencies.d.ts +5 -0
  137. package/dist/daemon/runtime-dependencies.d.ts.map +1 -0
  138. package/dist/daemon/runtime-dependencies.js +31 -0
  139. package/dist/daemon/runtime-dependencies.js.map +1 -0
  140. package/dist/daemon/server.d.ts +110 -0
  141. package/dist/daemon/server.d.ts.map +1 -0
  142. package/dist/daemon/server.js +556 -0
  143. package/dist/daemon/server.js.map +1 -0
  144. package/dist/daemon/service.d.ts +38 -0
  145. package/dist/daemon/service.d.ts.map +1 -0
  146. package/dist/daemon/service.js +275 -0
  147. package/dist/daemon/service.js.map +1 -0
  148. package/dist/daemon/session-cursor.d.ts +3 -0
  149. package/dist/daemon/session-cursor.d.ts.map +1 -0
  150. package/dist/daemon/session-cursor.js +4 -0
  151. package/dist/daemon/session-cursor.js.map +1 -0
  152. package/dist/daemon/session-execution.d.ts +88 -0
  153. package/dist/daemon/session-execution.d.ts.map +1 -0
  154. package/dist/daemon/session-execution.js +2 -0
  155. package/dist/daemon/session-execution.js.map +1 -0
  156. package/dist/daemon/session-executions.d.ts +5 -0
  157. package/dist/daemon/session-executions.d.ts.map +1 -0
  158. package/dist/daemon/session-executions.js +146 -0
  159. package/dist/daemon/session-executions.js.map +1 -0
  160. package/dist/daemon/session-files.d.ts +28 -0
  161. package/dist/daemon/session-files.d.ts.map +1 -0
  162. package/dist/daemon/session-files.js +189 -0
  163. package/dist/daemon/session-files.js.map +1 -0
  164. package/dist/daemon/session-lifecycle-contracts.d.ts +104 -0
  165. package/dist/daemon/session-lifecycle-contracts.d.ts.map +1 -0
  166. package/dist/daemon/session-lifecycle-contracts.js +2 -0
  167. package/dist/daemon/session-lifecycle-contracts.js.map +1 -0
  168. package/dist/daemon/session-lifecycle.d.ts +26 -0
  169. package/dist/daemon/session-lifecycle.d.ts.map +1 -0
  170. package/dist/daemon/session-lifecycle.js +246 -0
  171. package/dist/daemon/session-lifecycle.js.map +1 -0
  172. package/dist/daemon/session-runtime.d.ts +64 -0
  173. package/dist/daemon/session-runtime.d.ts.map +1 -0
  174. package/dist/daemon/session-runtime.js +3 -0
  175. package/dist/daemon/session-runtime.js.map +1 -0
  176. package/dist/daemon/session-services.d.ts +6 -0
  177. package/dist/daemon/session-services.d.ts.map +1 -0
  178. package/dist/daemon/session-services.js +144 -0
  179. package/dist/daemon/session-services.js.map +1 -0
  180. package/dist/daemon/shutdown-error.d.ts +12 -0
  181. package/dist/daemon/shutdown-error.d.ts.map +1 -0
  182. package/dist/daemon/shutdown-error.js +51 -0
  183. package/dist/daemon/shutdown-error.js.map +1 -0
  184. package/dist/daemon/supervisor.d.ts +28 -0
  185. package/dist/daemon/supervisor.d.ts.map +1 -0
  186. package/dist/daemon/supervisor.js +159 -0
  187. package/dist/daemon/supervisor.js.map +1 -0
  188. package/dist/daemon/target.d.ts +55 -0
  189. package/dist/daemon/target.d.ts.map +1 -0
  190. package/dist/daemon/target.js +191 -0
  191. package/dist/daemon/target.js.map +1 -0
  192. package/dist/daemon/tree.d.ts +7 -0
  193. package/dist/daemon/tree.d.ts.map +1 -0
  194. package/dist/daemon/tree.js +126 -0
  195. package/dist/daemon/tree.js.map +1 -0
  196. package/dist/daemon/ui-vocabulary.d.ts +29 -0
  197. package/dist/daemon/ui-vocabulary.d.ts.map +1 -0
  198. package/dist/daemon/ui-vocabulary.js +323 -0
  199. package/dist/daemon/ui-vocabulary.js.map +1 -0
  200. package/dist/daemon/worker.d.ts +5 -0
  201. package/dist/daemon/worker.d.ts.map +1 -0
  202. package/dist/daemon/worker.js +49 -0
  203. package/dist/daemon/worker.js.map +1 -0
  204. package/dist/index.d.ts +4 -0
  205. package/dist/index.d.ts.map +1 -0
  206. package/dist/index.js +12 -0
  207. package/dist/index.js.map +1 -0
  208. package/dist/lock.d.ts +27 -0
  209. package/dist/lock.d.ts.map +1 -0
  210. package/dist/lock.js +432 -0
  211. package/dist/lock.js.map +1 -0
  212. package/dist/logger.d.ts +9 -0
  213. package/dist/logger.d.ts.map +1 -0
  214. package/dist/logger.js +56 -0
  215. package/dist/logger.js.map +1 -0
  216. package/dist/remote/backoff.d.ts +17 -0
  217. package/dist/remote/backoff.d.ts.map +1 -0
  218. package/dist/remote/backoff.js +18 -0
  219. package/dist/remote/backoff.js.map +1 -0
  220. package/dist/remote/batch.d.ts +3 -0
  221. package/dist/remote/batch.d.ts.map +1 -0
  222. package/dist/remote/batch.js +27 -0
  223. package/dist/remote/batch.js.map +1 -0
  224. package/dist/remote/command-journal.d.ts +30 -0
  225. package/dist/remote/command-journal.d.ts.map +1 -0
  226. package/dist/remote/command-journal.js +72 -0
  227. package/dist/remote/command-journal.js.map +1 -0
  228. package/dist/remote/commands.d.ts +48 -0
  229. package/dist/remote/commands.d.ts.map +1 -0
  230. package/dist/remote/commands.js +145 -0
  231. package/dist/remote/commands.js.map +1 -0
  232. package/dist/remote/connector.d.ts +135 -0
  233. package/dist/remote/connector.d.ts.map +1 -0
  234. package/dist/remote/connector.js +1069 -0
  235. package/dist/remote/connector.js.map +1 -0
  236. package/dist/remote/content.d.ts +17 -0
  237. package/dist/remote/content.d.ts.map +1 -0
  238. package/dist/remote/content.js +116 -0
  239. package/dist/remote/content.js.map +1 -0
  240. package/dist/remote/outbox.d.ts +52 -0
  241. package/dist/remote/outbox.d.ts.map +1 -0
  242. package/dist/remote/outbox.js +321 -0
  243. package/dist/remote/outbox.js.map +1 -0
  244. package/dist/remote/platform.d.ts +53 -0
  245. package/dist/remote/platform.d.ts.map +1 -0
  246. package/dist/remote/platform.js +231 -0
  247. package/dist/remote/platform.js.map +1 -0
  248. package/dist/remote/realtime.d.ts +45 -0
  249. package/dist/remote/realtime.d.ts.map +1 -0
  250. package/dist/remote/realtime.js +265 -0
  251. package/dist/remote/realtime.js.map +1 -0
  252. package/dist/remote/sharing.d.ts +16 -0
  253. package/dist/remote/sharing.d.ts.map +1 -0
  254. package/dist/remote/sharing.js +24 -0
  255. package/dist/remote/sharing.js.map +1 -0
  256. package/dist/remote/state.d.ts +52 -0
  257. package/dist/remote/state.d.ts.map +1 -0
  258. package/dist/remote/state.js +156 -0
  259. package/dist/remote/state.js.map +1 -0
  260. package/dist/remote/text.d.ts +11 -0
  261. package/dist/remote/text.d.ts.map +1 -0
  262. package/dist/remote/text.js +188 -0
  263. package/dist/remote/text.js.map +1 -0
  264. package/dist/remote/token.d.ts +39 -0
  265. package/dist/remote/token.d.ts.map +1 -0
  266. package/dist/remote/token.js +238 -0
  267. package/dist/remote/token.js.map +1 -0
  268. package/dist/runtime-factory.d.ts +12 -0
  269. package/dist/runtime-factory.d.ts.map +1 -0
  270. package/dist/runtime-factory.js +12 -0
  271. package/dist/runtime-factory.js.map +1 -0
  272. package/dist/session-history.d.ts +29 -0
  273. package/dist/session-history.d.ts.map +1 -0
  274. package/dist/session-history.js +374 -0
  275. package/dist/session-history.js.map +1 -0
  276. package/dist/setup/dependencies.d.ts +15 -0
  277. package/dist/setup/dependencies.d.ts.map +1 -0
  278. package/dist/setup/dependencies.js +2 -0
  279. package/dist/setup/dependencies.js.map +1 -0
  280. package/dist/setup/open.d.ts +8 -0
  281. package/dist/setup/open.d.ts.map +1 -0
  282. package/dist/setup/open.js +16 -0
  283. package/dist/setup/open.js.map +1 -0
  284. package/dist/version.d.ts +2 -0
  285. package/dist/version.d.ts.map +1 -0
  286. package/dist/version.js +4 -0
  287. package/dist/version.js.map +1 -0
  288. package/package.json +66 -4
@@ -0,0 +1,1915 @@
1
+ import { Type, type Static } from 'typebox';
2
+ export declare const CONTROL_LIMITS: Readonly<{
3
+ projections: 256;
4
+ projectionAgeMs: number;
5
+ }>;
6
+ export declare class ControlStoreError extends Error {
7
+ readonly code: 'storage_failure' | 'request_capacity' | 'request_conflict' | 'not_found' | 'already_resolved' | 'invalid_request' | 'ownership_lost';
8
+ constructor(code: 'storage_failure' | 'request_capacity' | 'request_conflict' | 'not_found' | 'already_resolved' | 'invalid_request' | 'ownership_lost', message: string);
9
+ }
10
+ export declare const DigestSchema: Type.TString;
11
+ export declare const IdentitySchema: Type.TObject<{
12
+ sha256: Type.TString;
13
+ bytes: Type.TInteger;
14
+ }>;
15
+ export declare const SessionProfileSchema: Type.TObject<{
16
+ extensionPaths: Type.TOptional<Type.TArray<Type.TString>>;
17
+ allowedTools: Type.TOptional<Type.TArray<Type.TString>>;
18
+ extensionConfigOverrides: Type.TOptional<Type.TArray<Type.TObject<{
19
+ extensionId: Type.TString;
20
+ source: Type.TString;
21
+ values: Type.TRecord<"^.*$", Type.TUnsafe<import("@felan-ai/session-protocol").JsonValue>>;
22
+ }>>>;
23
+ }>;
24
+ export type SessionProfile = Static<typeof SessionProfileSchema>;
25
+ /** Durable view records: message identities and the pending queue. Tool and status views are live-only. */
26
+ declare const projection: Type.TObject<{
27
+ key: Type.TString;
28
+ updatedAt: Type.TInteger;
29
+ value: Type.TUnion<[Type.TObject<{
30
+ type: Type.TLiteral<"message">;
31
+ id: Type.TString;
32
+ entryId: Type.TString;
33
+ state: Type.TEnum<["observed", "missing"]>;
34
+ }>, Type.TObject<{
35
+ type: Type.TLiteral<"queue">;
36
+ ids: Type.TArray<Type.TString>;
37
+ identity: Type.TObject<{
38
+ sha256: Type.TString;
39
+ bytes: Type.TInteger;
40
+ }>;
41
+ }>]>;
42
+ }>;
43
+ export declare const ExecutionMetadataSchema: Type.TObject<{
44
+ request: Type.TObject<{
45
+ prompt: Type.TString;
46
+ description: Type.TString;
47
+ appendSystemPrompt: Type.TOptional<Type.TString>;
48
+ model: Type.TOptional<Type.TObject<{
49
+ provider: Type.TString;
50
+ id: Type.TString;
51
+ }>>;
52
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
53
+ label: Type.TOptional<Type.TString>;
54
+ maxTurns: Type.TOptional<Type.TInteger>;
55
+ timeoutMs: Type.TOptional<Type.TInteger>;
56
+ allowChildren: Type.TOptional<Type.TBoolean>;
57
+ notifyOnCompletion: Type.TOptional<Type.TBoolean>;
58
+ excludedTools: Type.TOptional<Type.TArray<Type.TString>>;
59
+ }>;
60
+ createdAt: Type.TString;
61
+ startedAt: Type.TOptional<Type.TString>;
62
+ completedAt: Type.TOptional<Type.TString>;
63
+ outcome: Type.TOptional<Type.TEnum<["completed", "failed", "timed_out", "cancelled"]>>;
64
+ error: Type.TOptional<Type.TObject<{
65
+ code: Type.TString;
66
+ message: Type.TString;
67
+ }>>;
68
+ deliveryId: Type.TString;
69
+ completionPending: Type.TBoolean;
70
+ message: Type.TOptional<Type.TString>;
71
+ }>;
72
+ export type ExecutionMetadata = Static<typeof ExecutionMetadataSchema>;
73
+ export declare const ControlSessionSchema: Type.TObject<{
74
+ id: Type.TString;
75
+ root: Type.TString;
76
+ parent: Type.TOptional<Type.TString>;
77
+ cwd: Type.TString;
78
+ piPath: Type.TString;
79
+ revision: Type.TInteger;
80
+ updatedAt: Type.TInteger;
81
+ state: Type.TEnum<["open", "closed"]>;
82
+ residency: Type.TEnum<["warm", "evicted"]>;
83
+ run: Type.TObject<{
84
+ state: Type.TEnum<["idle", "running", "waiting", "cancelling", "interrupted"]>;
85
+ id: Type.TOptional<Type.TString>;
86
+ turnId: Type.TOptional<Type.TString>;
87
+ origin: Type.TOptional<Type.TUnion<[Type.TObject<{
88
+ kind: Type.TEnum<["tui", "acp", "headless"]>;
89
+ attachment: Type.TString;
90
+ }>, Type.TObject<{
91
+ kind: Type.TLiteral<"automation">;
92
+ source: Type.TString;
93
+ parentRunId: Type.TOptional<Type.TString>;
94
+ }>, Type.TObject<{
95
+ kind: Type.TLiteral<"web">;
96
+ user: Type.TString;
97
+ command: Type.TString;
98
+ }>]>>;
99
+ }>;
100
+ policy: Type.TObject<{
101
+ effective: Type.TEnum<["host-default", "acp-strict"]>;
102
+ generation: Type.TInteger;
103
+ }>;
104
+ title: Type.TString;
105
+ branch: Type.TOptional<Type.TString>;
106
+ observedTip: Type.TOptional<Type.TString>;
107
+ model: Type.TOptional<Type.TObject<{
108
+ provider: Type.TString;
109
+ id: Type.TString;
110
+ }>>;
111
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
112
+ profile: Type.TOptional<Type.TObject<{
113
+ extensionPaths: Type.TOptional<Type.TArray<Type.TString>>;
114
+ allowedTools: Type.TOptional<Type.TArray<Type.TString>>;
115
+ extensionConfigOverrides: Type.TOptional<Type.TArray<Type.TObject<{
116
+ extensionId: Type.TString;
117
+ source: Type.TString;
118
+ values: Type.TRecord<"^.*$", Type.TUnsafe<import("@felan-ai/session-protocol").JsonValue>>;
119
+ }>>>;
120
+ }>>;
121
+ execution: Type.TOptional<Type.TObject<{
122
+ request: Type.TObject<{
123
+ prompt: Type.TString;
124
+ description: Type.TString;
125
+ appendSystemPrompt: Type.TOptional<Type.TString>;
126
+ model: Type.TOptional<Type.TObject<{
127
+ provider: Type.TString;
128
+ id: Type.TString;
129
+ }>>;
130
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
131
+ label: Type.TOptional<Type.TString>;
132
+ maxTurns: Type.TOptional<Type.TInteger>;
133
+ timeoutMs: Type.TOptional<Type.TInteger>;
134
+ allowChildren: Type.TOptional<Type.TBoolean>;
135
+ notifyOnCompletion: Type.TOptional<Type.TBoolean>;
136
+ excludedTools: Type.TOptional<Type.TArray<Type.TString>>;
137
+ }>;
138
+ createdAt: Type.TString;
139
+ startedAt: Type.TOptional<Type.TString>;
140
+ completedAt: Type.TOptional<Type.TString>;
141
+ outcome: Type.TOptional<Type.TEnum<["completed", "failed", "timed_out", "cancelled"]>>;
142
+ error: Type.TOptional<Type.TObject<{
143
+ code: Type.TString;
144
+ message: Type.TString;
145
+ }>>;
146
+ deliveryId: Type.TString;
147
+ completionPending: Type.TBoolean;
148
+ message: Type.TOptional<Type.TString>;
149
+ }>>;
150
+ deletedAt: Type.TOptional<Type.TInteger>;
151
+ draft: Type.TOptional<Type.TBoolean>;
152
+ projections: Type.TArray<Type.TObject<{
153
+ key: Type.TString;
154
+ updatedAt: Type.TInteger;
155
+ value: Type.TUnion<[Type.TObject<{
156
+ type: Type.TLiteral<"message">;
157
+ id: Type.TString;
158
+ entryId: Type.TString;
159
+ state: Type.TEnum<["observed", "missing"]>;
160
+ }>, Type.TObject<{
161
+ type: Type.TLiteral<"queue">;
162
+ ids: Type.TArray<Type.TString>;
163
+ identity: Type.TObject<{
164
+ sha256: Type.TString;
165
+ bytes: Type.TInteger;
166
+ }>;
167
+ }>]>;
168
+ }>>;
169
+ }>;
170
+ export declare const ControlSessionMetadataSchema: Type.TObject<{
171
+ state: Type.TEnum<["open", "closed"]>;
172
+ id: Type.TString;
173
+ updatedAt: Type.TInteger;
174
+ model: Type.TOptional<Type.TObject<{
175
+ provider: Type.TString;
176
+ id: Type.TString;
177
+ }>>;
178
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
179
+ root: Type.TString;
180
+ parent: Type.TOptional<Type.TString>;
181
+ cwd: Type.TString;
182
+ piPath: Type.TString;
183
+ revision: Type.TInteger;
184
+ residency: Type.TEnum<["warm", "evicted"]>;
185
+ run: Type.TObject<{
186
+ state: Type.TEnum<["idle", "running", "waiting", "cancelling", "interrupted"]>;
187
+ id: Type.TOptional<Type.TString>;
188
+ turnId: Type.TOptional<Type.TString>;
189
+ origin: Type.TOptional<Type.TUnion<[Type.TObject<{
190
+ kind: Type.TEnum<["tui", "acp", "headless"]>;
191
+ attachment: Type.TString;
192
+ }>, Type.TObject<{
193
+ kind: Type.TLiteral<"automation">;
194
+ source: Type.TString;
195
+ parentRunId: Type.TOptional<Type.TString>;
196
+ }>, Type.TObject<{
197
+ kind: Type.TLiteral<"web">;
198
+ user: Type.TString;
199
+ command: Type.TString;
200
+ }>]>>;
201
+ }>;
202
+ policy: Type.TObject<{
203
+ effective: Type.TEnum<["host-default", "acp-strict"]>;
204
+ generation: Type.TInteger;
205
+ }>;
206
+ title: Type.TString;
207
+ branch: Type.TOptional<Type.TString>;
208
+ observedTip: Type.TOptional<Type.TString>;
209
+ profile: Type.TOptional<Type.TObject<{
210
+ extensionPaths: Type.TOptional<Type.TArray<Type.TString>>;
211
+ allowedTools: Type.TOptional<Type.TArray<Type.TString>>;
212
+ extensionConfigOverrides: Type.TOptional<Type.TArray<Type.TObject<{
213
+ extensionId: Type.TString;
214
+ source: Type.TString;
215
+ values: Type.TRecord<"^.*$", Type.TUnsafe<import("@felan-ai/session-protocol").JsonValue>>;
216
+ }>>>;
217
+ }>>;
218
+ execution: Type.TOptional<Type.TObject<{
219
+ request: Type.TObject<{
220
+ prompt: Type.TString;
221
+ description: Type.TString;
222
+ appendSystemPrompt: Type.TOptional<Type.TString>;
223
+ model: Type.TOptional<Type.TObject<{
224
+ provider: Type.TString;
225
+ id: Type.TString;
226
+ }>>;
227
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
228
+ label: Type.TOptional<Type.TString>;
229
+ maxTurns: Type.TOptional<Type.TInteger>;
230
+ timeoutMs: Type.TOptional<Type.TInteger>;
231
+ allowChildren: Type.TOptional<Type.TBoolean>;
232
+ notifyOnCompletion: Type.TOptional<Type.TBoolean>;
233
+ excludedTools: Type.TOptional<Type.TArray<Type.TString>>;
234
+ }>;
235
+ createdAt: Type.TString;
236
+ startedAt: Type.TOptional<Type.TString>;
237
+ completedAt: Type.TOptional<Type.TString>;
238
+ outcome: Type.TOptional<Type.TEnum<["completed", "failed", "timed_out", "cancelled"]>>;
239
+ error: Type.TOptional<Type.TObject<{
240
+ code: Type.TString;
241
+ message: Type.TString;
242
+ }>>;
243
+ deliveryId: Type.TString;
244
+ completionPending: Type.TBoolean;
245
+ message: Type.TOptional<Type.TString>;
246
+ }>>;
247
+ deletedAt: Type.TOptional<Type.TInteger>;
248
+ draft: Type.TOptional<Type.TBoolean>;
249
+ }>;
250
+ export declare const ControlProjectionRecordSchema: Type.TObject<{
251
+ key: Type.TString;
252
+ updatedAt: Type.TInteger;
253
+ value: Type.TUnion<[Type.TObject<{
254
+ type: Type.TLiteral<"message">;
255
+ id: Type.TString;
256
+ entryId: Type.TString;
257
+ state: Type.TEnum<["observed", "missing"]>;
258
+ }>, Type.TObject<{
259
+ type: Type.TLiteral<"queue">;
260
+ ids: Type.TArray<Type.TString>;
261
+ identity: Type.TObject<{
262
+ sha256: Type.TString;
263
+ bytes: Type.TInteger;
264
+ }>;
265
+ }>]>;
266
+ }>;
267
+ export type ControlSession = Static<typeof ControlSessionSchema>;
268
+ export type ControlSessionMetadata = Omit<ControlSession, 'projections'>;
269
+ export type ControlProjection = Static<typeof projection>['value'];
270
+ export declare const ControlRequestSchema: Type.TObject<{
271
+ id: Type.TString;
272
+ principal: Type.TString;
273
+ session: Type.TOptional<Type.TString>;
274
+ op: Type.TString;
275
+ admittedAt: Type.TInteger;
276
+ retainUntil: Type.TInteger;
277
+ identity: Type.TObject<{
278
+ sha256: Type.TString;
279
+ bytes: Type.TInteger;
280
+ }>;
281
+ phase: Type.TEnum<["intent", "dispatch_intent", "terminal"]>;
282
+ response: Type.TOptional<Type.TUnknown>;
283
+ }>;
284
+ export type ControlRequest = Omit<Static<typeof ControlRequestSchema>, 'response'> & {
285
+ response?: import('@felan-ai/session-protocol').Response;
286
+ };
287
+ export declare const ControlContinuationSchema: Type.TObject<{
288
+ id: Type.TString;
289
+ interaction: Type.TString;
290
+ session: Type.TString;
291
+ phase: Type.TEnum<["ready", "dispatch_intent", "completed", "indeterminate", "cancelled"]>;
292
+ createdAt: Type.TInteger;
293
+ updatedAt: Type.TInteger;
294
+ }>;
295
+ export type ControlContinuation = Static<typeof ControlContinuationSchema>;
296
+ export declare const ControlResourceSchema: Type.TObject<{
297
+ id: Type.TString;
298
+ session: Type.TString;
299
+ root: Type.TString;
300
+ kind: Type.TEnum<["foreground", "pty", "detached"]>;
301
+ state: Type.TEnum<["running", "exited", "interrupted", "missing", "reconciling"]>;
302
+ reference: Type.TOptional<Type.TString>;
303
+ pid: Type.TOptional<Type.TInteger>;
304
+ startIdentity: Type.TOptional<Type.TString>;
305
+ updatedAt: Type.TInteger;
306
+ }>;
307
+ export type ControlResource = Static<typeof ControlResourceSchema>;
308
+ export declare const ControlStateSchema: Type.TObject<{
309
+ version: Type.TLiteral<1>;
310
+ namespace: Type.TString;
311
+ agentDir: Type.TString;
312
+ clock: Type.TInteger;
313
+ sessions: Type.TArray<Type.TObject<{
314
+ id: Type.TString;
315
+ root: Type.TString;
316
+ parent: Type.TOptional<Type.TString>;
317
+ cwd: Type.TString;
318
+ piPath: Type.TString;
319
+ revision: Type.TInteger;
320
+ updatedAt: Type.TInteger;
321
+ state: Type.TEnum<["open", "closed"]>;
322
+ residency: Type.TEnum<["warm", "evicted"]>;
323
+ run: Type.TObject<{
324
+ state: Type.TEnum<["idle", "running", "waiting", "cancelling", "interrupted"]>;
325
+ id: Type.TOptional<Type.TString>;
326
+ turnId: Type.TOptional<Type.TString>;
327
+ origin: Type.TOptional<Type.TUnion<[Type.TObject<{
328
+ kind: Type.TEnum<["tui", "acp", "headless"]>;
329
+ attachment: Type.TString;
330
+ }>, Type.TObject<{
331
+ kind: Type.TLiteral<"automation">;
332
+ source: Type.TString;
333
+ parentRunId: Type.TOptional<Type.TString>;
334
+ }>, Type.TObject<{
335
+ kind: Type.TLiteral<"web">;
336
+ user: Type.TString;
337
+ command: Type.TString;
338
+ }>]>>;
339
+ }>;
340
+ policy: Type.TObject<{
341
+ effective: Type.TEnum<["host-default", "acp-strict"]>;
342
+ generation: Type.TInteger;
343
+ }>;
344
+ title: Type.TString;
345
+ branch: Type.TOptional<Type.TString>;
346
+ observedTip: Type.TOptional<Type.TString>;
347
+ model: Type.TOptional<Type.TObject<{
348
+ provider: Type.TString;
349
+ id: Type.TString;
350
+ }>>;
351
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
352
+ profile: Type.TOptional<Type.TObject<{
353
+ extensionPaths: Type.TOptional<Type.TArray<Type.TString>>;
354
+ allowedTools: Type.TOptional<Type.TArray<Type.TString>>;
355
+ extensionConfigOverrides: Type.TOptional<Type.TArray<Type.TObject<{
356
+ extensionId: Type.TString;
357
+ source: Type.TString;
358
+ values: Type.TRecord<"^.*$", Type.TUnsafe<import("@felan-ai/session-protocol").JsonValue>>;
359
+ }>>>;
360
+ }>>;
361
+ execution: Type.TOptional<Type.TObject<{
362
+ request: Type.TObject<{
363
+ prompt: Type.TString;
364
+ description: Type.TString;
365
+ appendSystemPrompt: Type.TOptional<Type.TString>;
366
+ model: Type.TOptional<Type.TObject<{
367
+ provider: Type.TString;
368
+ id: Type.TString;
369
+ }>>;
370
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
371
+ label: Type.TOptional<Type.TString>;
372
+ maxTurns: Type.TOptional<Type.TInteger>;
373
+ timeoutMs: Type.TOptional<Type.TInteger>;
374
+ allowChildren: Type.TOptional<Type.TBoolean>;
375
+ notifyOnCompletion: Type.TOptional<Type.TBoolean>;
376
+ excludedTools: Type.TOptional<Type.TArray<Type.TString>>;
377
+ }>;
378
+ createdAt: Type.TString;
379
+ startedAt: Type.TOptional<Type.TString>;
380
+ completedAt: Type.TOptional<Type.TString>;
381
+ outcome: Type.TOptional<Type.TEnum<["completed", "failed", "timed_out", "cancelled"]>>;
382
+ error: Type.TOptional<Type.TObject<{
383
+ code: Type.TString;
384
+ message: Type.TString;
385
+ }>>;
386
+ deliveryId: Type.TString;
387
+ completionPending: Type.TBoolean;
388
+ message: Type.TOptional<Type.TString>;
389
+ }>>;
390
+ deletedAt: Type.TOptional<Type.TInteger>;
391
+ draft: Type.TOptional<Type.TBoolean>;
392
+ projections: Type.TArray<Type.TObject<{
393
+ key: Type.TString;
394
+ updatedAt: Type.TInteger;
395
+ value: Type.TUnion<[Type.TObject<{
396
+ type: Type.TLiteral<"message">;
397
+ id: Type.TString;
398
+ entryId: Type.TString;
399
+ state: Type.TEnum<["observed", "missing"]>;
400
+ }>, Type.TObject<{
401
+ type: Type.TLiteral<"queue">;
402
+ ids: Type.TArray<Type.TString>;
403
+ identity: Type.TObject<{
404
+ sha256: Type.TString;
405
+ bytes: Type.TInteger;
406
+ }>;
407
+ }>]>;
408
+ }>>;
409
+ }>>;
410
+ requests: Type.TArray<Type.TObject<{
411
+ id: Type.TString;
412
+ principal: Type.TString;
413
+ session: Type.TOptional<Type.TString>;
414
+ op: Type.TString;
415
+ admittedAt: Type.TInteger;
416
+ retainUntil: Type.TInteger;
417
+ identity: Type.TObject<{
418
+ sha256: Type.TString;
419
+ bytes: Type.TInteger;
420
+ }>;
421
+ phase: Type.TEnum<["intent", "dispatch_intent", "terminal"]>;
422
+ response: Type.TOptional<Type.TUnknown>;
423
+ }>>;
424
+ interactions: Type.TArray<Type.TUnion<[Type.TObject<{
425
+ state: Type.TLiteral<"waiting">;
426
+ id: Type.TString;
427
+ scope: Type.TUnion<[Type.TObject<{
428
+ kind: Type.TLiteral<"host">;
429
+ recipient: Type.TOptional<Type.TString>;
430
+ }>, Type.TObject<{
431
+ kind: Type.TLiteral<"session">;
432
+ session: Type.TString;
433
+ root: Type.TString;
434
+ }>]>;
435
+ request: Type.TUnion<[Type.TObject<{
436
+ kind: Type.TLiteral<"select">;
437
+ title: Type.TString;
438
+ choices: Type.TArray<Type.TObject<{
439
+ id: Type.TString;
440
+ title: Type.TString;
441
+ description: Type.TOptional<Type.TString>;
442
+ }>>;
443
+ multiple: Type.TBoolean;
444
+ }>, Type.TObject<{
445
+ kind: Type.TLiteral<"confirm">;
446
+ title: Type.TString;
447
+ message: Type.TString;
448
+ }>, Type.TObject<{
449
+ kind: Type.TLiteral<"input">;
450
+ title: Type.TString;
451
+ placeholder: Type.TOptional<Type.TString>;
452
+ initialValue: Type.TOptional<Type.TString>;
453
+ }>, Type.TObject<{
454
+ kind: Type.TLiteral<"editor">;
455
+ title: Type.TString;
456
+ initialValue: Type.TString;
457
+ }>, Type.TObject<{
458
+ kind: Type.TLiteral<"tool_approval">;
459
+ toolCallId: Type.TString;
460
+ toolName: Type.TString;
461
+ summary: Type.TString;
462
+ options: Type.TArray<Type.TObject<{
463
+ id: Type.TString;
464
+ title: Type.TString;
465
+ description: Type.TOptional<Type.TString>;
466
+ }>>;
467
+ }>, Type.TObject<{
468
+ kind: Type.TLiteral<"dependency">;
469
+ dependency: Type.TString;
470
+ message: Type.TString;
471
+ }>, Type.TObject<{
472
+ kind: Type.TLiteral<"form">;
473
+ form: Type.TObject<{
474
+ title: Type.TString;
475
+ description: Type.TOptional<Type.TString>;
476
+ markdown: Type.TOptional<Type.TString>;
477
+ fallback: Type.TString;
478
+ input: Type.TObject<{
479
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
480
+ kind: Type.TLiteral<"string">;
481
+ maxLength: Type.TInteger;
482
+ placeholder: Type.TOptional<Type.TString>;
483
+ multiline: Type.TOptional<Type.TBoolean>;
484
+ id: Type.TString;
485
+ label: Type.TString;
486
+ required: Type.TBoolean;
487
+ }>, Type.TObject<{
488
+ kind: Type.TLiteral<"boolean">;
489
+ id: Type.TString;
490
+ label: Type.TString;
491
+ required: Type.TBoolean;
492
+ }>, Type.TObject<{
493
+ kind: Type.TLiteral<"number">;
494
+ minimum: Type.TOptional<Type.TNumber>;
495
+ maximum: Type.TOptional<Type.TNumber>;
496
+ id: Type.TString;
497
+ label: Type.TString;
498
+ required: Type.TBoolean;
499
+ }>, Type.TObject<{
500
+ kind: Type.TLiteral<"enum">;
501
+ options: Type.TArray<Type.TObject<{
502
+ id: Type.TString;
503
+ label: Type.TString;
504
+ }>>;
505
+ id: Type.TString;
506
+ label: Type.TString;
507
+ required: Type.TBoolean;
508
+ }>, Type.TObject<{
509
+ kind: Type.TLiteral<"multi_select">;
510
+ options: Type.TArray<Type.TObject<{
511
+ id: Type.TString;
512
+ label: Type.TString;
513
+ }>>;
514
+ maxSelections: Type.TInteger;
515
+ id: Type.TString;
516
+ label: Type.TString;
517
+ required: Type.TBoolean;
518
+ }>]>>;
519
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
520
+ }>;
521
+ actions: Type.TArray<Type.TObject<{
522
+ id: Type.TString;
523
+ label: Type.TString;
524
+ description: Type.TOptional<Type.TString>;
525
+ destructive: Type.TOptional<Type.TBoolean>;
526
+ target: Type.TEnum<["element", "item"]>;
527
+ outcome: Type.TEnum<["submit", "cancel"]>;
528
+ input: Type.TOptional<Type.TObject<{
529
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
530
+ kind: Type.TLiteral<"string">;
531
+ maxLength: Type.TInteger;
532
+ placeholder: Type.TOptional<Type.TString>;
533
+ multiline: Type.TOptional<Type.TBoolean>;
534
+ id: Type.TString;
535
+ label: Type.TString;
536
+ required: Type.TBoolean;
537
+ }>, Type.TObject<{
538
+ kind: Type.TLiteral<"boolean">;
539
+ id: Type.TString;
540
+ label: Type.TString;
541
+ required: Type.TBoolean;
542
+ }>, Type.TObject<{
543
+ kind: Type.TLiteral<"number">;
544
+ minimum: Type.TOptional<Type.TNumber>;
545
+ maximum: Type.TOptional<Type.TNumber>;
546
+ id: Type.TString;
547
+ label: Type.TString;
548
+ required: Type.TBoolean;
549
+ }>, Type.TObject<{
550
+ kind: Type.TLiteral<"enum">;
551
+ options: Type.TArray<Type.TObject<{
552
+ id: Type.TString;
553
+ label: Type.TString;
554
+ }>>;
555
+ id: Type.TString;
556
+ label: Type.TString;
557
+ required: Type.TBoolean;
558
+ }>, Type.TObject<{
559
+ kind: Type.TLiteral<"multi_select">;
560
+ options: Type.TArray<Type.TObject<{
561
+ id: Type.TString;
562
+ label: Type.TString;
563
+ }>>;
564
+ maxSelections: Type.TInteger;
565
+ id: Type.TString;
566
+ label: Type.TString;
567
+ required: Type.TBoolean;
568
+ }>]>>;
569
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
570
+ }>>;
571
+ }>>;
572
+ hint: Type.TOptional<Type.TObject<{
573
+ id: Type.TString;
574
+ version: Type.TString;
575
+ }>>;
576
+ }>;
577
+ }>]>;
578
+ authority: Type.TOptional<Type.TEnum<["owner", "local-console"]>>;
579
+ deferrable: Type.TOptional<Type.TBoolean>;
580
+ createdAt: Type.TInteger;
581
+ expiresAt: Type.TOptional<Type.TInteger>;
582
+ }>, Type.TObject<{
583
+ state: Type.TLiteral<"deferred">;
584
+ expiresAt: Type.TInteger;
585
+ id: Type.TString;
586
+ scope: Type.TUnion<[Type.TObject<{
587
+ kind: Type.TLiteral<"host">;
588
+ recipient: Type.TOptional<Type.TString>;
589
+ }>, Type.TObject<{
590
+ kind: Type.TLiteral<"session">;
591
+ session: Type.TString;
592
+ root: Type.TString;
593
+ }>]>;
594
+ request: Type.TUnion<[Type.TObject<{
595
+ kind: Type.TLiteral<"select">;
596
+ title: Type.TString;
597
+ choices: Type.TArray<Type.TObject<{
598
+ id: Type.TString;
599
+ title: Type.TString;
600
+ description: Type.TOptional<Type.TString>;
601
+ }>>;
602
+ multiple: Type.TBoolean;
603
+ }>, Type.TObject<{
604
+ kind: Type.TLiteral<"confirm">;
605
+ title: Type.TString;
606
+ message: Type.TString;
607
+ }>, Type.TObject<{
608
+ kind: Type.TLiteral<"input">;
609
+ title: Type.TString;
610
+ placeholder: Type.TOptional<Type.TString>;
611
+ initialValue: Type.TOptional<Type.TString>;
612
+ }>, Type.TObject<{
613
+ kind: Type.TLiteral<"editor">;
614
+ title: Type.TString;
615
+ initialValue: Type.TString;
616
+ }>, Type.TObject<{
617
+ kind: Type.TLiteral<"tool_approval">;
618
+ toolCallId: Type.TString;
619
+ toolName: Type.TString;
620
+ summary: Type.TString;
621
+ options: Type.TArray<Type.TObject<{
622
+ id: Type.TString;
623
+ title: Type.TString;
624
+ description: Type.TOptional<Type.TString>;
625
+ }>>;
626
+ }>, Type.TObject<{
627
+ kind: Type.TLiteral<"dependency">;
628
+ dependency: Type.TString;
629
+ message: Type.TString;
630
+ }>, Type.TObject<{
631
+ kind: Type.TLiteral<"form">;
632
+ form: Type.TObject<{
633
+ title: Type.TString;
634
+ description: Type.TOptional<Type.TString>;
635
+ markdown: Type.TOptional<Type.TString>;
636
+ fallback: Type.TString;
637
+ input: Type.TObject<{
638
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
639
+ kind: Type.TLiteral<"string">;
640
+ maxLength: Type.TInteger;
641
+ placeholder: Type.TOptional<Type.TString>;
642
+ multiline: Type.TOptional<Type.TBoolean>;
643
+ id: Type.TString;
644
+ label: Type.TString;
645
+ required: Type.TBoolean;
646
+ }>, Type.TObject<{
647
+ kind: Type.TLiteral<"boolean">;
648
+ id: Type.TString;
649
+ label: Type.TString;
650
+ required: Type.TBoolean;
651
+ }>, Type.TObject<{
652
+ kind: Type.TLiteral<"number">;
653
+ minimum: Type.TOptional<Type.TNumber>;
654
+ maximum: Type.TOptional<Type.TNumber>;
655
+ id: Type.TString;
656
+ label: Type.TString;
657
+ required: Type.TBoolean;
658
+ }>, Type.TObject<{
659
+ kind: Type.TLiteral<"enum">;
660
+ options: Type.TArray<Type.TObject<{
661
+ id: Type.TString;
662
+ label: Type.TString;
663
+ }>>;
664
+ id: Type.TString;
665
+ label: Type.TString;
666
+ required: Type.TBoolean;
667
+ }>, Type.TObject<{
668
+ kind: Type.TLiteral<"multi_select">;
669
+ options: Type.TArray<Type.TObject<{
670
+ id: Type.TString;
671
+ label: Type.TString;
672
+ }>>;
673
+ maxSelections: Type.TInteger;
674
+ id: Type.TString;
675
+ label: Type.TString;
676
+ required: Type.TBoolean;
677
+ }>]>>;
678
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
679
+ }>;
680
+ actions: Type.TArray<Type.TObject<{
681
+ id: Type.TString;
682
+ label: Type.TString;
683
+ description: Type.TOptional<Type.TString>;
684
+ destructive: Type.TOptional<Type.TBoolean>;
685
+ target: Type.TEnum<["element", "item"]>;
686
+ outcome: Type.TEnum<["submit", "cancel"]>;
687
+ input: Type.TOptional<Type.TObject<{
688
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
689
+ kind: Type.TLiteral<"string">;
690
+ maxLength: Type.TInteger;
691
+ placeholder: Type.TOptional<Type.TString>;
692
+ multiline: Type.TOptional<Type.TBoolean>;
693
+ id: Type.TString;
694
+ label: Type.TString;
695
+ required: Type.TBoolean;
696
+ }>, Type.TObject<{
697
+ kind: Type.TLiteral<"boolean">;
698
+ id: Type.TString;
699
+ label: Type.TString;
700
+ required: Type.TBoolean;
701
+ }>, Type.TObject<{
702
+ kind: Type.TLiteral<"number">;
703
+ minimum: Type.TOptional<Type.TNumber>;
704
+ maximum: Type.TOptional<Type.TNumber>;
705
+ id: Type.TString;
706
+ label: Type.TString;
707
+ required: Type.TBoolean;
708
+ }>, Type.TObject<{
709
+ kind: Type.TLiteral<"enum">;
710
+ options: Type.TArray<Type.TObject<{
711
+ id: Type.TString;
712
+ label: Type.TString;
713
+ }>>;
714
+ id: Type.TString;
715
+ label: Type.TString;
716
+ required: Type.TBoolean;
717
+ }>, Type.TObject<{
718
+ kind: Type.TLiteral<"multi_select">;
719
+ options: Type.TArray<Type.TObject<{
720
+ id: Type.TString;
721
+ label: Type.TString;
722
+ }>>;
723
+ maxSelections: Type.TInteger;
724
+ id: Type.TString;
725
+ label: Type.TString;
726
+ required: Type.TBoolean;
727
+ }>]>>;
728
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
729
+ }>>;
730
+ }>>;
731
+ hint: Type.TOptional<Type.TObject<{
732
+ id: Type.TString;
733
+ version: Type.TString;
734
+ }>>;
735
+ }>;
736
+ }>]>;
737
+ authority: Type.TOptional<Type.TEnum<["owner", "local-console"]>>;
738
+ deferrable: Type.TOptional<Type.TBoolean>;
739
+ createdAt: Type.TInteger;
740
+ }>, Type.TObject<{
741
+ state: Type.TLiteral<"answered">;
742
+ responder: Type.TString;
743
+ resolvedAt: Type.TInteger;
744
+ result: Type.TUnion<[Type.TObject<{
745
+ kind: Type.TLiteral<"select">;
746
+ choices: Type.TArray<Type.TString>;
747
+ }>, Type.TObject<{
748
+ kind: Type.TLiteral<"confirm">;
749
+ confirmed: Type.TBoolean;
750
+ }>, Type.TObject<{
751
+ kind: Type.TLiteral<"input">;
752
+ text: Type.TString;
753
+ }>, Type.TObject<{
754
+ kind: Type.TLiteral<"editor">;
755
+ text: Type.TString;
756
+ }>, Type.TObject<{
757
+ kind: Type.TLiteral<"tool_approval">;
758
+ optionId: Type.TString;
759
+ }>, Type.TObject<{
760
+ kind: Type.TLiteral<"dependency">;
761
+ approved: Type.TBoolean;
762
+ }>, Type.TObject<{
763
+ kind: Type.TLiteral<"form">;
764
+ actionId: Type.TString;
765
+ outcome: Type.TEnum<["submit", "cancel"]>;
766
+ values: Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>;
767
+ }>]>;
768
+ id: Type.TString;
769
+ scope: Type.TUnion<[Type.TObject<{
770
+ kind: Type.TLiteral<"host">;
771
+ recipient: Type.TOptional<Type.TString>;
772
+ }>, Type.TObject<{
773
+ kind: Type.TLiteral<"session">;
774
+ session: Type.TString;
775
+ root: Type.TString;
776
+ }>]>;
777
+ request: Type.TUnion<[Type.TObject<{
778
+ kind: Type.TLiteral<"select">;
779
+ title: Type.TString;
780
+ choices: Type.TArray<Type.TObject<{
781
+ id: Type.TString;
782
+ title: Type.TString;
783
+ description: Type.TOptional<Type.TString>;
784
+ }>>;
785
+ multiple: Type.TBoolean;
786
+ }>, Type.TObject<{
787
+ kind: Type.TLiteral<"confirm">;
788
+ title: Type.TString;
789
+ message: Type.TString;
790
+ }>, Type.TObject<{
791
+ kind: Type.TLiteral<"input">;
792
+ title: Type.TString;
793
+ placeholder: Type.TOptional<Type.TString>;
794
+ initialValue: Type.TOptional<Type.TString>;
795
+ }>, Type.TObject<{
796
+ kind: Type.TLiteral<"editor">;
797
+ title: Type.TString;
798
+ initialValue: Type.TString;
799
+ }>, Type.TObject<{
800
+ kind: Type.TLiteral<"tool_approval">;
801
+ toolCallId: Type.TString;
802
+ toolName: Type.TString;
803
+ summary: Type.TString;
804
+ options: Type.TArray<Type.TObject<{
805
+ id: Type.TString;
806
+ title: Type.TString;
807
+ description: Type.TOptional<Type.TString>;
808
+ }>>;
809
+ }>, Type.TObject<{
810
+ kind: Type.TLiteral<"dependency">;
811
+ dependency: Type.TString;
812
+ message: Type.TString;
813
+ }>, Type.TObject<{
814
+ kind: Type.TLiteral<"form">;
815
+ form: Type.TObject<{
816
+ title: Type.TString;
817
+ description: Type.TOptional<Type.TString>;
818
+ markdown: Type.TOptional<Type.TString>;
819
+ fallback: Type.TString;
820
+ input: Type.TObject<{
821
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
822
+ kind: Type.TLiteral<"string">;
823
+ maxLength: Type.TInteger;
824
+ placeholder: Type.TOptional<Type.TString>;
825
+ multiline: Type.TOptional<Type.TBoolean>;
826
+ id: Type.TString;
827
+ label: Type.TString;
828
+ required: Type.TBoolean;
829
+ }>, Type.TObject<{
830
+ kind: Type.TLiteral<"boolean">;
831
+ id: Type.TString;
832
+ label: Type.TString;
833
+ required: Type.TBoolean;
834
+ }>, Type.TObject<{
835
+ kind: Type.TLiteral<"number">;
836
+ minimum: Type.TOptional<Type.TNumber>;
837
+ maximum: Type.TOptional<Type.TNumber>;
838
+ id: Type.TString;
839
+ label: Type.TString;
840
+ required: Type.TBoolean;
841
+ }>, Type.TObject<{
842
+ kind: Type.TLiteral<"enum">;
843
+ options: Type.TArray<Type.TObject<{
844
+ id: Type.TString;
845
+ label: Type.TString;
846
+ }>>;
847
+ id: Type.TString;
848
+ label: Type.TString;
849
+ required: Type.TBoolean;
850
+ }>, Type.TObject<{
851
+ kind: Type.TLiteral<"multi_select">;
852
+ options: Type.TArray<Type.TObject<{
853
+ id: Type.TString;
854
+ label: Type.TString;
855
+ }>>;
856
+ maxSelections: Type.TInteger;
857
+ id: Type.TString;
858
+ label: Type.TString;
859
+ required: Type.TBoolean;
860
+ }>]>>;
861
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
862
+ }>;
863
+ actions: Type.TArray<Type.TObject<{
864
+ id: Type.TString;
865
+ label: Type.TString;
866
+ description: Type.TOptional<Type.TString>;
867
+ destructive: Type.TOptional<Type.TBoolean>;
868
+ target: Type.TEnum<["element", "item"]>;
869
+ outcome: Type.TEnum<["submit", "cancel"]>;
870
+ input: Type.TOptional<Type.TObject<{
871
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
872
+ kind: Type.TLiteral<"string">;
873
+ maxLength: Type.TInteger;
874
+ placeholder: Type.TOptional<Type.TString>;
875
+ multiline: Type.TOptional<Type.TBoolean>;
876
+ id: Type.TString;
877
+ label: Type.TString;
878
+ required: Type.TBoolean;
879
+ }>, Type.TObject<{
880
+ kind: Type.TLiteral<"boolean">;
881
+ id: Type.TString;
882
+ label: Type.TString;
883
+ required: Type.TBoolean;
884
+ }>, Type.TObject<{
885
+ kind: Type.TLiteral<"number">;
886
+ minimum: Type.TOptional<Type.TNumber>;
887
+ maximum: Type.TOptional<Type.TNumber>;
888
+ id: Type.TString;
889
+ label: Type.TString;
890
+ required: Type.TBoolean;
891
+ }>, Type.TObject<{
892
+ kind: Type.TLiteral<"enum">;
893
+ options: Type.TArray<Type.TObject<{
894
+ id: Type.TString;
895
+ label: Type.TString;
896
+ }>>;
897
+ id: Type.TString;
898
+ label: Type.TString;
899
+ required: Type.TBoolean;
900
+ }>, Type.TObject<{
901
+ kind: Type.TLiteral<"multi_select">;
902
+ options: Type.TArray<Type.TObject<{
903
+ id: Type.TString;
904
+ label: Type.TString;
905
+ }>>;
906
+ maxSelections: Type.TInteger;
907
+ id: Type.TString;
908
+ label: Type.TString;
909
+ required: Type.TBoolean;
910
+ }>]>>;
911
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
912
+ }>>;
913
+ }>>;
914
+ hint: Type.TOptional<Type.TObject<{
915
+ id: Type.TString;
916
+ version: Type.TString;
917
+ }>>;
918
+ }>;
919
+ }>]>;
920
+ authority: Type.TOptional<Type.TEnum<["owner", "local-console"]>>;
921
+ deferrable: Type.TOptional<Type.TBoolean>;
922
+ createdAt: Type.TInteger;
923
+ expiresAt: Type.TOptional<Type.TInteger>;
924
+ }>, Type.TObject<{
925
+ state: Type.TEnum<["cancelled", "expired"]>;
926
+ resolvedAt: Type.TInteger;
927
+ result: Type.TObject<{
928
+ cancelled: Type.TLiteral<true>;
929
+ reason: Type.TEnum<["user", "abort", "timeout", "unsupported", "drain", "restart"]>;
930
+ }>;
931
+ id: Type.TString;
932
+ scope: Type.TUnion<[Type.TObject<{
933
+ kind: Type.TLiteral<"host">;
934
+ recipient: Type.TOptional<Type.TString>;
935
+ }>, Type.TObject<{
936
+ kind: Type.TLiteral<"session">;
937
+ session: Type.TString;
938
+ root: Type.TString;
939
+ }>]>;
940
+ request: Type.TUnion<[Type.TObject<{
941
+ kind: Type.TLiteral<"select">;
942
+ title: Type.TString;
943
+ choices: Type.TArray<Type.TObject<{
944
+ id: Type.TString;
945
+ title: Type.TString;
946
+ description: Type.TOptional<Type.TString>;
947
+ }>>;
948
+ multiple: Type.TBoolean;
949
+ }>, Type.TObject<{
950
+ kind: Type.TLiteral<"confirm">;
951
+ title: Type.TString;
952
+ message: Type.TString;
953
+ }>, Type.TObject<{
954
+ kind: Type.TLiteral<"input">;
955
+ title: Type.TString;
956
+ placeholder: Type.TOptional<Type.TString>;
957
+ initialValue: Type.TOptional<Type.TString>;
958
+ }>, Type.TObject<{
959
+ kind: Type.TLiteral<"editor">;
960
+ title: Type.TString;
961
+ initialValue: Type.TString;
962
+ }>, Type.TObject<{
963
+ kind: Type.TLiteral<"tool_approval">;
964
+ toolCallId: Type.TString;
965
+ toolName: Type.TString;
966
+ summary: Type.TString;
967
+ options: Type.TArray<Type.TObject<{
968
+ id: Type.TString;
969
+ title: Type.TString;
970
+ description: Type.TOptional<Type.TString>;
971
+ }>>;
972
+ }>, Type.TObject<{
973
+ kind: Type.TLiteral<"dependency">;
974
+ dependency: Type.TString;
975
+ message: Type.TString;
976
+ }>, Type.TObject<{
977
+ kind: Type.TLiteral<"form">;
978
+ form: Type.TObject<{
979
+ title: Type.TString;
980
+ description: Type.TOptional<Type.TString>;
981
+ markdown: Type.TOptional<Type.TString>;
982
+ fallback: Type.TString;
983
+ input: Type.TObject<{
984
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
985
+ kind: Type.TLiteral<"string">;
986
+ maxLength: Type.TInteger;
987
+ placeholder: Type.TOptional<Type.TString>;
988
+ multiline: Type.TOptional<Type.TBoolean>;
989
+ id: Type.TString;
990
+ label: Type.TString;
991
+ required: Type.TBoolean;
992
+ }>, Type.TObject<{
993
+ kind: Type.TLiteral<"boolean">;
994
+ id: Type.TString;
995
+ label: Type.TString;
996
+ required: Type.TBoolean;
997
+ }>, Type.TObject<{
998
+ kind: Type.TLiteral<"number">;
999
+ minimum: Type.TOptional<Type.TNumber>;
1000
+ maximum: Type.TOptional<Type.TNumber>;
1001
+ id: Type.TString;
1002
+ label: Type.TString;
1003
+ required: Type.TBoolean;
1004
+ }>, Type.TObject<{
1005
+ kind: Type.TLiteral<"enum">;
1006
+ options: Type.TArray<Type.TObject<{
1007
+ id: Type.TString;
1008
+ label: Type.TString;
1009
+ }>>;
1010
+ id: Type.TString;
1011
+ label: Type.TString;
1012
+ required: Type.TBoolean;
1013
+ }>, Type.TObject<{
1014
+ kind: Type.TLiteral<"multi_select">;
1015
+ options: Type.TArray<Type.TObject<{
1016
+ id: Type.TString;
1017
+ label: Type.TString;
1018
+ }>>;
1019
+ maxSelections: Type.TInteger;
1020
+ id: Type.TString;
1021
+ label: Type.TString;
1022
+ required: Type.TBoolean;
1023
+ }>]>>;
1024
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1025
+ }>;
1026
+ actions: Type.TArray<Type.TObject<{
1027
+ id: Type.TString;
1028
+ label: Type.TString;
1029
+ description: Type.TOptional<Type.TString>;
1030
+ destructive: Type.TOptional<Type.TBoolean>;
1031
+ target: Type.TEnum<["element", "item"]>;
1032
+ outcome: Type.TEnum<["submit", "cancel"]>;
1033
+ input: Type.TOptional<Type.TObject<{
1034
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1035
+ kind: Type.TLiteral<"string">;
1036
+ maxLength: Type.TInteger;
1037
+ placeholder: Type.TOptional<Type.TString>;
1038
+ multiline: Type.TOptional<Type.TBoolean>;
1039
+ id: Type.TString;
1040
+ label: Type.TString;
1041
+ required: Type.TBoolean;
1042
+ }>, Type.TObject<{
1043
+ kind: Type.TLiteral<"boolean">;
1044
+ id: Type.TString;
1045
+ label: Type.TString;
1046
+ required: Type.TBoolean;
1047
+ }>, Type.TObject<{
1048
+ kind: Type.TLiteral<"number">;
1049
+ minimum: Type.TOptional<Type.TNumber>;
1050
+ maximum: Type.TOptional<Type.TNumber>;
1051
+ id: Type.TString;
1052
+ label: Type.TString;
1053
+ required: Type.TBoolean;
1054
+ }>, Type.TObject<{
1055
+ kind: Type.TLiteral<"enum">;
1056
+ options: Type.TArray<Type.TObject<{
1057
+ id: Type.TString;
1058
+ label: Type.TString;
1059
+ }>>;
1060
+ id: Type.TString;
1061
+ label: Type.TString;
1062
+ required: Type.TBoolean;
1063
+ }>, Type.TObject<{
1064
+ kind: Type.TLiteral<"multi_select">;
1065
+ options: Type.TArray<Type.TObject<{
1066
+ id: Type.TString;
1067
+ label: Type.TString;
1068
+ }>>;
1069
+ maxSelections: Type.TInteger;
1070
+ id: Type.TString;
1071
+ label: Type.TString;
1072
+ required: Type.TBoolean;
1073
+ }>]>>;
1074
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1075
+ }>>;
1076
+ }>>;
1077
+ hint: Type.TOptional<Type.TObject<{
1078
+ id: Type.TString;
1079
+ version: Type.TString;
1080
+ }>>;
1081
+ }>;
1082
+ }>]>;
1083
+ authority: Type.TOptional<Type.TEnum<["owner", "local-console"]>>;
1084
+ deferrable: Type.TOptional<Type.TBoolean>;
1085
+ createdAt: Type.TInteger;
1086
+ expiresAt: Type.TOptional<Type.TInteger>;
1087
+ }>]>>;
1088
+ continuations: Type.TArray<Type.TObject<{
1089
+ id: Type.TString;
1090
+ interaction: Type.TString;
1091
+ session: Type.TString;
1092
+ phase: Type.TEnum<["ready", "dispatch_intent", "completed", "indeterminate", "cancelled"]>;
1093
+ createdAt: Type.TInteger;
1094
+ updatedAt: Type.TInteger;
1095
+ }>>;
1096
+ resources: Type.TArray<Type.TObject<{
1097
+ id: Type.TString;
1098
+ session: Type.TString;
1099
+ root: Type.TString;
1100
+ kind: Type.TEnum<["foreground", "pty", "detached"]>;
1101
+ state: Type.TEnum<["running", "exited", "interrupted", "missing", "reconciling"]>;
1102
+ reference: Type.TOptional<Type.TString>;
1103
+ pid: Type.TOptional<Type.TInteger>;
1104
+ startIdentity: Type.TOptional<Type.TString>;
1105
+ updatedAt: Type.TInteger;
1106
+ }>>;
1107
+ }>;
1108
+ export type ControlState = Omit<Static<typeof ControlStateSchema>, 'requests'> & {
1109
+ requests: ControlRequest[];
1110
+ };
1111
+ export declare class ControlStateValidationError extends Error {
1112
+ readonly code: 'unsupported_version' | 'invalid_state';
1113
+ constructor(code: 'unsupported_version' | 'invalid_state');
1114
+ }
1115
+ export declare function parseControlState(value: unknown): ControlState;
1116
+ declare const ROW_SCHEMAS: {
1117
+ sessions: Type.TObject<{
1118
+ state: Type.TEnum<["open", "closed"]>;
1119
+ id: Type.TString;
1120
+ updatedAt: Type.TInteger;
1121
+ model: Type.TOptional<Type.TObject<{
1122
+ provider: Type.TString;
1123
+ id: Type.TString;
1124
+ }>>;
1125
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
1126
+ root: Type.TString;
1127
+ parent: Type.TOptional<Type.TString>;
1128
+ cwd: Type.TString;
1129
+ piPath: Type.TString;
1130
+ revision: Type.TInteger;
1131
+ residency: Type.TEnum<["warm", "evicted"]>;
1132
+ run: Type.TObject<{
1133
+ state: Type.TEnum<["idle", "running", "waiting", "cancelling", "interrupted"]>;
1134
+ id: Type.TOptional<Type.TString>;
1135
+ turnId: Type.TOptional<Type.TString>;
1136
+ origin: Type.TOptional<Type.TUnion<[Type.TObject<{
1137
+ kind: Type.TEnum<["tui", "acp", "headless"]>;
1138
+ attachment: Type.TString;
1139
+ }>, Type.TObject<{
1140
+ kind: Type.TLiteral<"automation">;
1141
+ source: Type.TString;
1142
+ parentRunId: Type.TOptional<Type.TString>;
1143
+ }>, Type.TObject<{
1144
+ kind: Type.TLiteral<"web">;
1145
+ user: Type.TString;
1146
+ command: Type.TString;
1147
+ }>]>>;
1148
+ }>;
1149
+ policy: Type.TObject<{
1150
+ effective: Type.TEnum<["host-default", "acp-strict"]>;
1151
+ generation: Type.TInteger;
1152
+ }>;
1153
+ title: Type.TString;
1154
+ branch: Type.TOptional<Type.TString>;
1155
+ observedTip: Type.TOptional<Type.TString>;
1156
+ profile: Type.TOptional<Type.TObject<{
1157
+ extensionPaths: Type.TOptional<Type.TArray<Type.TString>>;
1158
+ allowedTools: Type.TOptional<Type.TArray<Type.TString>>;
1159
+ extensionConfigOverrides: Type.TOptional<Type.TArray<Type.TObject<{
1160
+ extensionId: Type.TString;
1161
+ source: Type.TString;
1162
+ values: Type.TRecord<"^.*$", Type.TUnsafe<import("@felan-ai/session-protocol").JsonValue>>;
1163
+ }>>>;
1164
+ }>>;
1165
+ execution: Type.TOptional<Type.TObject<{
1166
+ request: Type.TObject<{
1167
+ prompt: Type.TString;
1168
+ description: Type.TString;
1169
+ appendSystemPrompt: Type.TOptional<Type.TString>;
1170
+ model: Type.TOptional<Type.TObject<{
1171
+ provider: Type.TString;
1172
+ id: Type.TString;
1173
+ }>>;
1174
+ thinking: Type.TOptional<Type.TEnum<["off", "minimal", "low", "medium", "high", "xhigh", "max"]>>;
1175
+ label: Type.TOptional<Type.TString>;
1176
+ maxTurns: Type.TOptional<Type.TInteger>;
1177
+ timeoutMs: Type.TOptional<Type.TInteger>;
1178
+ allowChildren: Type.TOptional<Type.TBoolean>;
1179
+ notifyOnCompletion: Type.TOptional<Type.TBoolean>;
1180
+ excludedTools: Type.TOptional<Type.TArray<Type.TString>>;
1181
+ }>;
1182
+ createdAt: Type.TString;
1183
+ startedAt: Type.TOptional<Type.TString>;
1184
+ completedAt: Type.TOptional<Type.TString>;
1185
+ outcome: Type.TOptional<Type.TEnum<["completed", "failed", "timed_out", "cancelled"]>>;
1186
+ error: Type.TOptional<Type.TObject<{
1187
+ code: Type.TString;
1188
+ message: Type.TString;
1189
+ }>>;
1190
+ deliveryId: Type.TString;
1191
+ completionPending: Type.TBoolean;
1192
+ message: Type.TOptional<Type.TString>;
1193
+ }>>;
1194
+ deletedAt: Type.TOptional<Type.TInteger>;
1195
+ draft: Type.TOptional<Type.TBoolean>;
1196
+ }>;
1197
+ requests: Type.TObject<{
1198
+ id: Type.TString;
1199
+ principal: Type.TString;
1200
+ session: Type.TOptional<Type.TString>;
1201
+ op: Type.TString;
1202
+ admittedAt: Type.TInteger;
1203
+ retainUntil: Type.TInteger;
1204
+ identity: Type.TObject<{
1205
+ sha256: Type.TString;
1206
+ bytes: Type.TInteger;
1207
+ }>;
1208
+ phase: Type.TEnum<["intent", "dispatch_intent", "terminal"]>;
1209
+ response: Type.TOptional<Type.TUnknown>;
1210
+ }>;
1211
+ interactions: Type.TUnion<[Type.TObject<{
1212
+ state: Type.TLiteral<"waiting">;
1213
+ id: Type.TString;
1214
+ scope: Type.TUnion<[Type.TObject<{
1215
+ kind: Type.TLiteral<"host">;
1216
+ recipient: Type.TOptional<Type.TString>;
1217
+ }>, Type.TObject<{
1218
+ kind: Type.TLiteral<"session">;
1219
+ session: Type.TString;
1220
+ root: Type.TString;
1221
+ }>]>;
1222
+ request: Type.TUnion<[Type.TObject<{
1223
+ kind: Type.TLiteral<"select">;
1224
+ title: Type.TString;
1225
+ choices: Type.TArray<Type.TObject<{
1226
+ id: Type.TString;
1227
+ title: Type.TString;
1228
+ description: Type.TOptional<Type.TString>;
1229
+ }>>;
1230
+ multiple: Type.TBoolean;
1231
+ }>, Type.TObject<{
1232
+ kind: Type.TLiteral<"confirm">;
1233
+ title: Type.TString;
1234
+ message: Type.TString;
1235
+ }>, Type.TObject<{
1236
+ kind: Type.TLiteral<"input">;
1237
+ title: Type.TString;
1238
+ placeholder: Type.TOptional<Type.TString>;
1239
+ initialValue: Type.TOptional<Type.TString>;
1240
+ }>, Type.TObject<{
1241
+ kind: Type.TLiteral<"editor">;
1242
+ title: Type.TString;
1243
+ initialValue: Type.TString;
1244
+ }>, Type.TObject<{
1245
+ kind: Type.TLiteral<"tool_approval">;
1246
+ toolCallId: Type.TString;
1247
+ toolName: Type.TString;
1248
+ summary: Type.TString;
1249
+ options: Type.TArray<Type.TObject<{
1250
+ id: Type.TString;
1251
+ title: Type.TString;
1252
+ description: Type.TOptional<Type.TString>;
1253
+ }>>;
1254
+ }>, Type.TObject<{
1255
+ kind: Type.TLiteral<"dependency">;
1256
+ dependency: Type.TString;
1257
+ message: Type.TString;
1258
+ }>, Type.TObject<{
1259
+ kind: Type.TLiteral<"form">;
1260
+ form: Type.TObject<{
1261
+ title: Type.TString;
1262
+ description: Type.TOptional<Type.TString>;
1263
+ markdown: Type.TOptional<Type.TString>;
1264
+ fallback: Type.TString;
1265
+ input: Type.TObject<{
1266
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1267
+ kind: Type.TLiteral<"string">;
1268
+ maxLength: Type.TInteger;
1269
+ placeholder: Type.TOptional<Type.TString>;
1270
+ multiline: Type.TOptional<Type.TBoolean>;
1271
+ id: Type.TString;
1272
+ label: Type.TString;
1273
+ required: Type.TBoolean;
1274
+ }>, Type.TObject<{
1275
+ kind: Type.TLiteral<"boolean">;
1276
+ id: Type.TString;
1277
+ label: Type.TString;
1278
+ required: Type.TBoolean;
1279
+ }>, Type.TObject<{
1280
+ kind: Type.TLiteral<"number">;
1281
+ minimum: Type.TOptional<Type.TNumber>;
1282
+ maximum: Type.TOptional<Type.TNumber>;
1283
+ id: Type.TString;
1284
+ label: Type.TString;
1285
+ required: Type.TBoolean;
1286
+ }>, Type.TObject<{
1287
+ kind: Type.TLiteral<"enum">;
1288
+ options: Type.TArray<Type.TObject<{
1289
+ id: Type.TString;
1290
+ label: Type.TString;
1291
+ }>>;
1292
+ id: Type.TString;
1293
+ label: Type.TString;
1294
+ required: Type.TBoolean;
1295
+ }>, Type.TObject<{
1296
+ kind: Type.TLiteral<"multi_select">;
1297
+ options: Type.TArray<Type.TObject<{
1298
+ id: Type.TString;
1299
+ label: Type.TString;
1300
+ }>>;
1301
+ maxSelections: Type.TInteger;
1302
+ id: Type.TString;
1303
+ label: Type.TString;
1304
+ required: Type.TBoolean;
1305
+ }>]>>;
1306
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1307
+ }>;
1308
+ actions: Type.TArray<Type.TObject<{
1309
+ id: Type.TString;
1310
+ label: Type.TString;
1311
+ description: Type.TOptional<Type.TString>;
1312
+ destructive: Type.TOptional<Type.TBoolean>;
1313
+ target: Type.TEnum<["element", "item"]>;
1314
+ outcome: Type.TEnum<["submit", "cancel"]>;
1315
+ input: Type.TOptional<Type.TObject<{
1316
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1317
+ kind: Type.TLiteral<"string">;
1318
+ maxLength: Type.TInteger;
1319
+ placeholder: Type.TOptional<Type.TString>;
1320
+ multiline: Type.TOptional<Type.TBoolean>;
1321
+ id: Type.TString;
1322
+ label: Type.TString;
1323
+ required: Type.TBoolean;
1324
+ }>, Type.TObject<{
1325
+ kind: Type.TLiteral<"boolean">;
1326
+ id: Type.TString;
1327
+ label: Type.TString;
1328
+ required: Type.TBoolean;
1329
+ }>, Type.TObject<{
1330
+ kind: Type.TLiteral<"number">;
1331
+ minimum: Type.TOptional<Type.TNumber>;
1332
+ maximum: Type.TOptional<Type.TNumber>;
1333
+ id: Type.TString;
1334
+ label: Type.TString;
1335
+ required: Type.TBoolean;
1336
+ }>, Type.TObject<{
1337
+ kind: Type.TLiteral<"enum">;
1338
+ options: Type.TArray<Type.TObject<{
1339
+ id: Type.TString;
1340
+ label: Type.TString;
1341
+ }>>;
1342
+ id: Type.TString;
1343
+ label: Type.TString;
1344
+ required: Type.TBoolean;
1345
+ }>, Type.TObject<{
1346
+ kind: Type.TLiteral<"multi_select">;
1347
+ options: Type.TArray<Type.TObject<{
1348
+ id: Type.TString;
1349
+ label: Type.TString;
1350
+ }>>;
1351
+ maxSelections: Type.TInteger;
1352
+ id: Type.TString;
1353
+ label: Type.TString;
1354
+ required: Type.TBoolean;
1355
+ }>]>>;
1356
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1357
+ }>>;
1358
+ }>>;
1359
+ hint: Type.TOptional<Type.TObject<{
1360
+ id: Type.TString;
1361
+ version: Type.TString;
1362
+ }>>;
1363
+ }>;
1364
+ }>]>;
1365
+ authority: Type.TOptional<Type.TEnum<["owner", "local-console"]>>;
1366
+ deferrable: Type.TOptional<Type.TBoolean>;
1367
+ createdAt: Type.TInteger;
1368
+ expiresAt: Type.TOptional<Type.TInteger>;
1369
+ }>, Type.TObject<{
1370
+ state: Type.TLiteral<"deferred">;
1371
+ expiresAt: Type.TInteger;
1372
+ id: Type.TString;
1373
+ scope: Type.TUnion<[Type.TObject<{
1374
+ kind: Type.TLiteral<"host">;
1375
+ recipient: Type.TOptional<Type.TString>;
1376
+ }>, Type.TObject<{
1377
+ kind: Type.TLiteral<"session">;
1378
+ session: Type.TString;
1379
+ root: Type.TString;
1380
+ }>]>;
1381
+ request: Type.TUnion<[Type.TObject<{
1382
+ kind: Type.TLiteral<"select">;
1383
+ title: Type.TString;
1384
+ choices: Type.TArray<Type.TObject<{
1385
+ id: Type.TString;
1386
+ title: Type.TString;
1387
+ description: Type.TOptional<Type.TString>;
1388
+ }>>;
1389
+ multiple: Type.TBoolean;
1390
+ }>, Type.TObject<{
1391
+ kind: Type.TLiteral<"confirm">;
1392
+ title: Type.TString;
1393
+ message: Type.TString;
1394
+ }>, Type.TObject<{
1395
+ kind: Type.TLiteral<"input">;
1396
+ title: Type.TString;
1397
+ placeholder: Type.TOptional<Type.TString>;
1398
+ initialValue: Type.TOptional<Type.TString>;
1399
+ }>, Type.TObject<{
1400
+ kind: Type.TLiteral<"editor">;
1401
+ title: Type.TString;
1402
+ initialValue: Type.TString;
1403
+ }>, Type.TObject<{
1404
+ kind: Type.TLiteral<"tool_approval">;
1405
+ toolCallId: Type.TString;
1406
+ toolName: Type.TString;
1407
+ summary: Type.TString;
1408
+ options: Type.TArray<Type.TObject<{
1409
+ id: Type.TString;
1410
+ title: Type.TString;
1411
+ description: Type.TOptional<Type.TString>;
1412
+ }>>;
1413
+ }>, Type.TObject<{
1414
+ kind: Type.TLiteral<"dependency">;
1415
+ dependency: Type.TString;
1416
+ message: Type.TString;
1417
+ }>, Type.TObject<{
1418
+ kind: Type.TLiteral<"form">;
1419
+ form: Type.TObject<{
1420
+ title: Type.TString;
1421
+ description: Type.TOptional<Type.TString>;
1422
+ markdown: Type.TOptional<Type.TString>;
1423
+ fallback: Type.TString;
1424
+ input: Type.TObject<{
1425
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1426
+ kind: Type.TLiteral<"string">;
1427
+ maxLength: Type.TInteger;
1428
+ placeholder: Type.TOptional<Type.TString>;
1429
+ multiline: Type.TOptional<Type.TBoolean>;
1430
+ id: Type.TString;
1431
+ label: Type.TString;
1432
+ required: Type.TBoolean;
1433
+ }>, Type.TObject<{
1434
+ kind: Type.TLiteral<"boolean">;
1435
+ id: Type.TString;
1436
+ label: Type.TString;
1437
+ required: Type.TBoolean;
1438
+ }>, Type.TObject<{
1439
+ kind: Type.TLiteral<"number">;
1440
+ minimum: Type.TOptional<Type.TNumber>;
1441
+ maximum: Type.TOptional<Type.TNumber>;
1442
+ id: Type.TString;
1443
+ label: Type.TString;
1444
+ required: Type.TBoolean;
1445
+ }>, Type.TObject<{
1446
+ kind: Type.TLiteral<"enum">;
1447
+ options: Type.TArray<Type.TObject<{
1448
+ id: Type.TString;
1449
+ label: Type.TString;
1450
+ }>>;
1451
+ id: Type.TString;
1452
+ label: Type.TString;
1453
+ required: Type.TBoolean;
1454
+ }>, Type.TObject<{
1455
+ kind: Type.TLiteral<"multi_select">;
1456
+ options: Type.TArray<Type.TObject<{
1457
+ id: Type.TString;
1458
+ label: Type.TString;
1459
+ }>>;
1460
+ maxSelections: Type.TInteger;
1461
+ id: Type.TString;
1462
+ label: Type.TString;
1463
+ required: Type.TBoolean;
1464
+ }>]>>;
1465
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1466
+ }>;
1467
+ actions: Type.TArray<Type.TObject<{
1468
+ id: Type.TString;
1469
+ label: Type.TString;
1470
+ description: Type.TOptional<Type.TString>;
1471
+ destructive: Type.TOptional<Type.TBoolean>;
1472
+ target: Type.TEnum<["element", "item"]>;
1473
+ outcome: Type.TEnum<["submit", "cancel"]>;
1474
+ input: Type.TOptional<Type.TObject<{
1475
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1476
+ kind: Type.TLiteral<"string">;
1477
+ maxLength: Type.TInteger;
1478
+ placeholder: Type.TOptional<Type.TString>;
1479
+ multiline: Type.TOptional<Type.TBoolean>;
1480
+ id: Type.TString;
1481
+ label: Type.TString;
1482
+ required: Type.TBoolean;
1483
+ }>, Type.TObject<{
1484
+ kind: Type.TLiteral<"boolean">;
1485
+ id: Type.TString;
1486
+ label: Type.TString;
1487
+ required: Type.TBoolean;
1488
+ }>, Type.TObject<{
1489
+ kind: Type.TLiteral<"number">;
1490
+ minimum: Type.TOptional<Type.TNumber>;
1491
+ maximum: Type.TOptional<Type.TNumber>;
1492
+ id: Type.TString;
1493
+ label: Type.TString;
1494
+ required: Type.TBoolean;
1495
+ }>, Type.TObject<{
1496
+ kind: Type.TLiteral<"enum">;
1497
+ options: Type.TArray<Type.TObject<{
1498
+ id: Type.TString;
1499
+ label: Type.TString;
1500
+ }>>;
1501
+ id: Type.TString;
1502
+ label: Type.TString;
1503
+ required: Type.TBoolean;
1504
+ }>, Type.TObject<{
1505
+ kind: Type.TLiteral<"multi_select">;
1506
+ options: Type.TArray<Type.TObject<{
1507
+ id: Type.TString;
1508
+ label: Type.TString;
1509
+ }>>;
1510
+ maxSelections: Type.TInteger;
1511
+ id: Type.TString;
1512
+ label: Type.TString;
1513
+ required: Type.TBoolean;
1514
+ }>]>>;
1515
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1516
+ }>>;
1517
+ }>>;
1518
+ hint: Type.TOptional<Type.TObject<{
1519
+ id: Type.TString;
1520
+ version: Type.TString;
1521
+ }>>;
1522
+ }>;
1523
+ }>]>;
1524
+ authority: Type.TOptional<Type.TEnum<["owner", "local-console"]>>;
1525
+ deferrable: Type.TOptional<Type.TBoolean>;
1526
+ createdAt: Type.TInteger;
1527
+ }>, Type.TObject<{
1528
+ state: Type.TLiteral<"answered">;
1529
+ responder: Type.TString;
1530
+ resolvedAt: Type.TInteger;
1531
+ result: Type.TUnion<[Type.TObject<{
1532
+ kind: Type.TLiteral<"select">;
1533
+ choices: Type.TArray<Type.TString>;
1534
+ }>, Type.TObject<{
1535
+ kind: Type.TLiteral<"confirm">;
1536
+ confirmed: Type.TBoolean;
1537
+ }>, Type.TObject<{
1538
+ kind: Type.TLiteral<"input">;
1539
+ text: Type.TString;
1540
+ }>, Type.TObject<{
1541
+ kind: Type.TLiteral<"editor">;
1542
+ text: Type.TString;
1543
+ }>, Type.TObject<{
1544
+ kind: Type.TLiteral<"tool_approval">;
1545
+ optionId: Type.TString;
1546
+ }>, Type.TObject<{
1547
+ kind: Type.TLiteral<"dependency">;
1548
+ approved: Type.TBoolean;
1549
+ }>, Type.TObject<{
1550
+ kind: Type.TLiteral<"form">;
1551
+ actionId: Type.TString;
1552
+ outcome: Type.TEnum<["submit", "cancel"]>;
1553
+ values: Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>;
1554
+ }>]>;
1555
+ id: Type.TString;
1556
+ scope: Type.TUnion<[Type.TObject<{
1557
+ kind: Type.TLiteral<"host">;
1558
+ recipient: Type.TOptional<Type.TString>;
1559
+ }>, Type.TObject<{
1560
+ kind: Type.TLiteral<"session">;
1561
+ session: Type.TString;
1562
+ root: Type.TString;
1563
+ }>]>;
1564
+ request: Type.TUnion<[Type.TObject<{
1565
+ kind: Type.TLiteral<"select">;
1566
+ title: Type.TString;
1567
+ choices: Type.TArray<Type.TObject<{
1568
+ id: Type.TString;
1569
+ title: Type.TString;
1570
+ description: Type.TOptional<Type.TString>;
1571
+ }>>;
1572
+ multiple: Type.TBoolean;
1573
+ }>, Type.TObject<{
1574
+ kind: Type.TLiteral<"confirm">;
1575
+ title: Type.TString;
1576
+ message: Type.TString;
1577
+ }>, Type.TObject<{
1578
+ kind: Type.TLiteral<"input">;
1579
+ title: Type.TString;
1580
+ placeholder: Type.TOptional<Type.TString>;
1581
+ initialValue: Type.TOptional<Type.TString>;
1582
+ }>, Type.TObject<{
1583
+ kind: Type.TLiteral<"editor">;
1584
+ title: Type.TString;
1585
+ initialValue: Type.TString;
1586
+ }>, Type.TObject<{
1587
+ kind: Type.TLiteral<"tool_approval">;
1588
+ toolCallId: Type.TString;
1589
+ toolName: Type.TString;
1590
+ summary: Type.TString;
1591
+ options: Type.TArray<Type.TObject<{
1592
+ id: Type.TString;
1593
+ title: Type.TString;
1594
+ description: Type.TOptional<Type.TString>;
1595
+ }>>;
1596
+ }>, Type.TObject<{
1597
+ kind: Type.TLiteral<"dependency">;
1598
+ dependency: Type.TString;
1599
+ message: Type.TString;
1600
+ }>, Type.TObject<{
1601
+ kind: Type.TLiteral<"form">;
1602
+ form: Type.TObject<{
1603
+ title: Type.TString;
1604
+ description: Type.TOptional<Type.TString>;
1605
+ markdown: Type.TOptional<Type.TString>;
1606
+ fallback: Type.TString;
1607
+ input: Type.TObject<{
1608
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1609
+ kind: Type.TLiteral<"string">;
1610
+ maxLength: Type.TInteger;
1611
+ placeholder: Type.TOptional<Type.TString>;
1612
+ multiline: Type.TOptional<Type.TBoolean>;
1613
+ id: Type.TString;
1614
+ label: Type.TString;
1615
+ required: Type.TBoolean;
1616
+ }>, Type.TObject<{
1617
+ kind: Type.TLiteral<"boolean">;
1618
+ id: Type.TString;
1619
+ label: Type.TString;
1620
+ required: Type.TBoolean;
1621
+ }>, Type.TObject<{
1622
+ kind: Type.TLiteral<"number">;
1623
+ minimum: Type.TOptional<Type.TNumber>;
1624
+ maximum: Type.TOptional<Type.TNumber>;
1625
+ id: Type.TString;
1626
+ label: Type.TString;
1627
+ required: Type.TBoolean;
1628
+ }>, Type.TObject<{
1629
+ kind: Type.TLiteral<"enum">;
1630
+ options: Type.TArray<Type.TObject<{
1631
+ id: Type.TString;
1632
+ label: Type.TString;
1633
+ }>>;
1634
+ id: Type.TString;
1635
+ label: Type.TString;
1636
+ required: Type.TBoolean;
1637
+ }>, Type.TObject<{
1638
+ kind: Type.TLiteral<"multi_select">;
1639
+ options: Type.TArray<Type.TObject<{
1640
+ id: Type.TString;
1641
+ label: Type.TString;
1642
+ }>>;
1643
+ maxSelections: Type.TInteger;
1644
+ id: Type.TString;
1645
+ label: Type.TString;
1646
+ required: Type.TBoolean;
1647
+ }>]>>;
1648
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1649
+ }>;
1650
+ actions: Type.TArray<Type.TObject<{
1651
+ id: Type.TString;
1652
+ label: Type.TString;
1653
+ description: Type.TOptional<Type.TString>;
1654
+ destructive: Type.TOptional<Type.TBoolean>;
1655
+ target: Type.TEnum<["element", "item"]>;
1656
+ outcome: Type.TEnum<["submit", "cancel"]>;
1657
+ input: Type.TOptional<Type.TObject<{
1658
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1659
+ kind: Type.TLiteral<"string">;
1660
+ maxLength: Type.TInteger;
1661
+ placeholder: Type.TOptional<Type.TString>;
1662
+ multiline: Type.TOptional<Type.TBoolean>;
1663
+ id: Type.TString;
1664
+ label: Type.TString;
1665
+ required: Type.TBoolean;
1666
+ }>, Type.TObject<{
1667
+ kind: Type.TLiteral<"boolean">;
1668
+ id: Type.TString;
1669
+ label: Type.TString;
1670
+ required: Type.TBoolean;
1671
+ }>, Type.TObject<{
1672
+ kind: Type.TLiteral<"number">;
1673
+ minimum: Type.TOptional<Type.TNumber>;
1674
+ maximum: Type.TOptional<Type.TNumber>;
1675
+ id: Type.TString;
1676
+ label: Type.TString;
1677
+ required: Type.TBoolean;
1678
+ }>, Type.TObject<{
1679
+ kind: Type.TLiteral<"enum">;
1680
+ options: Type.TArray<Type.TObject<{
1681
+ id: Type.TString;
1682
+ label: Type.TString;
1683
+ }>>;
1684
+ id: Type.TString;
1685
+ label: Type.TString;
1686
+ required: Type.TBoolean;
1687
+ }>, Type.TObject<{
1688
+ kind: Type.TLiteral<"multi_select">;
1689
+ options: Type.TArray<Type.TObject<{
1690
+ id: Type.TString;
1691
+ label: Type.TString;
1692
+ }>>;
1693
+ maxSelections: Type.TInteger;
1694
+ id: Type.TString;
1695
+ label: Type.TString;
1696
+ required: Type.TBoolean;
1697
+ }>]>>;
1698
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1699
+ }>>;
1700
+ }>>;
1701
+ hint: Type.TOptional<Type.TObject<{
1702
+ id: Type.TString;
1703
+ version: Type.TString;
1704
+ }>>;
1705
+ }>;
1706
+ }>]>;
1707
+ authority: Type.TOptional<Type.TEnum<["owner", "local-console"]>>;
1708
+ deferrable: Type.TOptional<Type.TBoolean>;
1709
+ createdAt: Type.TInteger;
1710
+ expiresAt: Type.TOptional<Type.TInteger>;
1711
+ }>, Type.TObject<{
1712
+ state: Type.TEnum<["cancelled", "expired"]>;
1713
+ resolvedAt: Type.TInteger;
1714
+ result: Type.TObject<{
1715
+ cancelled: Type.TLiteral<true>;
1716
+ reason: Type.TEnum<["user", "abort", "timeout", "unsupported", "drain", "restart"]>;
1717
+ }>;
1718
+ id: Type.TString;
1719
+ scope: Type.TUnion<[Type.TObject<{
1720
+ kind: Type.TLiteral<"host">;
1721
+ recipient: Type.TOptional<Type.TString>;
1722
+ }>, Type.TObject<{
1723
+ kind: Type.TLiteral<"session">;
1724
+ session: Type.TString;
1725
+ root: Type.TString;
1726
+ }>]>;
1727
+ request: Type.TUnion<[Type.TObject<{
1728
+ kind: Type.TLiteral<"select">;
1729
+ title: Type.TString;
1730
+ choices: Type.TArray<Type.TObject<{
1731
+ id: Type.TString;
1732
+ title: Type.TString;
1733
+ description: Type.TOptional<Type.TString>;
1734
+ }>>;
1735
+ multiple: Type.TBoolean;
1736
+ }>, Type.TObject<{
1737
+ kind: Type.TLiteral<"confirm">;
1738
+ title: Type.TString;
1739
+ message: Type.TString;
1740
+ }>, Type.TObject<{
1741
+ kind: Type.TLiteral<"input">;
1742
+ title: Type.TString;
1743
+ placeholder: Type.TOptional<Type.TString>;
1744
+ initialValue: Type.TOptional<Type.TString>;
1745
+ }>, Type.TObject<{
1746
+ kind: Type.TLiteral<"editor">;
1747
+ title: Type.TString;
1748
+ initialValue: Type.TString;
1749
+ }>, Type.TObject<{
1750
+ kind: Type.TLiteral<"tool_approval">;
1751
+ toolCallId: Type.TString;
1752
+ toolName: Type.TString;
1753
+ summary: Type.TString;
1754
+ options: Type.TArray<Type.TObject<{
1755
+ id: Type.TString;
1756
+ title: Type.TString;
1757
+ description: Type.TOptional<Type.TString>;
1758
+ }>>;
1759
+ }>, Type.TObject<{
1760
+ kind: Type.TLiteral<"dependency">;
1761
+ dependency: Type.TString;
1762
+ message: Type.TString;
1763
+ }>, Type.TObject<{
1764
+ kind: Type.TLiteral<"form">;
1765
+ form: Type.TObject<{
1766
+ title: Type.TString;
1767
+ description: Type.TOptional<Type.TString>;
1768
+ markdown: Type.TOptional<Type.TString>;
1769
+ fallback: Type.TString;
1770
+ input: Type.TObject<{
1771
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1772
+ kind: Type.TLiteral<"string">;
1773
+ maxLength: Type.TInteger;
1774
+ placeholder: Type.TOptional<Type.TString>;
1775
+ multiline: Type.TOptional<Type.TBoolean>;
1776
+ id: Type.TString;
1777
+ label: Type.TString;
1778
+ required: Type.TBoolean;
1779
+ }>, Type.TObject<{
1780
+ kind: Type.TLiteral<"boolean">;
1781
+ id: Type.TString;
1782
+ label: Type.TString;
1783
+ required: Type.TBoolean;
1784
+ }>, Type.TObject<{
1785
+ kind: Type.TLiteral<"number">;
1786
+ minimum: Type.TOptional<Type.TNumber>;
1787
+ maximum: Type.TOptional<Type.TNumber>;
1788
+ id: Type.TString;
1789
+ label: Type.TString;
1790
+ required: Type.TBoolean;
1791
+ }>, Type.TObject<{
1792
+ kind: Type.TLiteral<"enum">;
1793
+ options: Type.TArray<Type.TObject<{
1794
+ id: Type.TString;
1795
+ label: Type.TString;
1796
+ }>>;
1797
+ id: Type.TString;
1798
+ label: Type.TString;
1799
+ required: Type.TBoolean;
1800
+ }>, Type.TObject<{
1801
+ kind: Type.TLiteral<"multi_select">;
1802
+ options: Type.TArray<Type.TObject<{
1803
+ id: Type.TString;
1804
+ label: Type.TString;
1805
+ }>>;
1806
+ maxSelections: Type.TInteger;
1807
+ id: Type.TString;
1808
+ label: Type.TString;
1809
+ required: Type.TBoolean;
1810
+ }>]>>;
1811
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1812
+ }>;
1813
+ actions: Type.TArray<Type.TObject<{
1814
+ id: Type.TString;
1815
+ label: Type.TString;
1816
+ description: Type.TOptional<Type.TString>;
1817
+ destructive: Type.TOptional<Type.TBoolean>;
1818
+ target: Type.TEnum<["element", "item"]>;
1819
+ outcome: Type.TEnum<["submit", "cancel"]>;
1820
+ input: Type.TOptional<Type.TObject<{
1821
+ fields: Type.TArray<Type.TUnion<[Type.TObject<{
1822
+ kind: Type.TLiteral<"string">;
1823
+ maxLength: Type.TInteger;
1824
+ placeholder: Type.TOptional<Type.TString>;
1825
+ multiline: Type.TOptional<Type.TBoolean>;
1826
+ id: Type.TString;
1827
+ label: Type.TString;
1828
+ required: Type.TBoolean;
1829
+ }>, Type.TObject<{
1830
+ kind: Type.TLiteral<"boolean">;
1831
+ id: Type.TString;
1832
+ label: Type.TString;
1833
+ required: Type.TBoolean;
1834
+ }>, Type.TObject<{
1835
+ kind: Type.TLiteral<"number">;
1836
+ minimum: Type.TOptional<Type.TNumber>;
1837
+ maximum: Type.TOptional<Type.TNumber>;
1838
+ id: Type.TString;
1839
+ label: Type.TString;
1840
+ required: Type.TBoolean;
1841
+ }>, Type.TObject<{
1842
+ kind: Type.TLiteral<"enum">;
1843
+ options: Type.TArray<Type.TObject<{
1844
+ id: Type.TString;
1845
+ label: Type.TString;
1846
+ }>>;
1847
+ id: Type.TString;
1848
+ label: Type.TString;
1849
+ required: Type.TBoolean;
1850
+ }>, Type.TObject<{
1851
+ kind: Type.TLiteral<"multi_select">;
1852
+ options: Type.TArray<Type.TObject<{
1853
+ id: Type.TString;
1854
+ label: Type.TString;
1855
+ }>>;
1856
+ maxSelections: Type.TInteger;
1857
+ id: Type.TString;
1858
+ label: Type.TString;
1859
+ required: Type.TBoolean;
1860
+ }>]>>;
1861
+ defaults: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TArray<Type.TString>]>>>;
1862
+ }>>;
1863
+ }>>;
1864
+ hint: Type.TOptional<Type.TObject<{
1865
+ id: Type.TString;
1866
+ version: Type.TString;
1867
+ }>>;
1868
+ }>;
1869
+ }>]>;
1870
+ authority: Type.TOptional<Type.TEnum<["owner", "local-console"]>>;
1871
+ deferrable: Type.TOptional<Type.TBoolean>;
1872
+ createdAt: Type.TInteger;
1873
+ expiresAt: Type.TOptional<Type.TInteger>;
1874
+ }>]>;
1875
+ continuations: Type.TObject<{
1876
+ id: Type.TString;
1877
+ interaction: Type.TString;
1878
+ session: Type.TString;
1879
+ phase: Type.TEnum<["ready", "dispatch_intent", "completed", "indeterminate", "cancelled"]>;
1880
+ createdAt: Type.TInteger;
1881
+ updatedAt: Type.TInteger;
1882
+ }>;
1883
+ resources: Type.TObject<{
1884
+ id: Type.TString;
1885
+ session: Type.TString;
1886
+ root: Type.TString;
1887
+ kind: Type.TEnum<["foreground", "pty", "detached"]>;
1888
+ state: Type.TEnum<["running", "exited", "interrupted", "missing", "reconciling"]>;
1889
+ reference: Type.TOptional<Type.TString>;
1890
+ pid: Type.TOptional<Type.TInteger>;
1891
+ startIdentity: Type.TOptional<Type.TString>;
1892
+ updatedAt: Type.TInteger;
1893
+ }>;
1894
+ projections: Type.TObject<{
1895
+ key: Type.TString;
1896
+ updatedAt: Type.TInteger;
1897
+ value: Type.TUnion<[Type.TObject<{
1898
+ type: Type.TLiteral<"message">;
1899
+ id: Type.TString;
1900
+ entryId: Type.TString;
1901
+ state: Type.TEnum<["observed", "missing"]>;
1902
+ }>, Type.TObject<{
1903
+ type: Type.TLiteral<"queue">;
1904
+ ids: Type.TArray<Type.TString>;
1905
+ identity: Type.TObject<{
1906
+ sha256: Type.TString;
1907
+ bytes: Type.TInteger;
1908
+ }>;
1909
+ }>]>;
1910
+ }>;
1911
+ };
1912
+ /** Validates one stored record (a session without its projections, or one projection) as `parseControlState` would. */
1913
+ export declare function assertControlRow(table: keyof typeof ROW_SCHEMAS, value: unknown): void;
1914
+ export {};
1915
+ //# sourceMappingURL=control-state.d.ts.map