@ours.network/fleet 1.1.0-nightly.8 → 1.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 (202) hide show
  1. package/README.md +231 -46
  2. package/dist/application/capabilities.js +18 -6
  3. package/dist/application/fleet-query-service.js +7 -4
  4. package/dist/application/role-command-service.js +9 -0
  5. package/dist/application/role-creation-service.d.ts +4 -4
  6. package/dist/application/role-creation-service.js +9 -2
  7. package/dist/application/role-repository.d.ts +4 -2
  8. package/dist/application/role-repository.js +6 -3
  9. package/dist/application/session-control.d.ts +3 -1
  10. package/dist/application/session-control.js +4 -2
  11. package/dist/application/task-room-service.d.ts +92 -39
  12. package/dist/application/task-room-service.js +579 -173
  13. package/dist/briefing.js +85 -28
  14. package/dist/build-info.json +5 -5
  15. package/dist/canonical-json.d.ts +2 -0
  16. package/dist/canonical-json.js +10 -0
  17. package/dist/cli.js +130 -55
  18. package/dist/config.d.ts +38 -3
  19. package/dist/config.js +193 -28
  20. package/dist/creation.d.ts +1 -1
  21. package/dist/creation.js +7 -4
  22. package/dist/docs.d.ts +1 -1
  23. package/dist/docs.js +193 -55
  24. package/dist/doctor.d.ts +2 -0
  25. package/dist/doctor.js +40 -4
  26. package/dist/fleet-command-audit.d.ts +59 -9
  27. package/dist/fleet-command-audit.js +426 -63
  28. package/dist/fleet-proxy.d.ts +5 -2
  29. package/dist/harness/claude-code-session.js +2 -1
  30. package/dist/harness/codex-app-server-proxy.d.ts +40 -0
  31. package/dist/harness/codex-app-server-proxy.js +348 -14
  32. package/dist/harness/codex-session.d.ts +9 -2
  33. package/dist/harness/codex-session.js +18 -2
  34. package/dist/harness/codex.d.ts +5 -1
  35. package/dist/harness/codex.js +104 -10
  36. package/dist/harness/types.d.ts +1 -1
  37. package/dist/index.d.ts +4 -3
  38. package/dist/index.js +3 -2
  39. package/dist/init-guidance.d.ts +1 -1
  40. package/dist/init-guidance.js +1 -1
  41. package/dist/init-wizard.d.ts +98 -0
  42. package/dist/init-wizard.js +631 -0
  43. package/dist/lifecycle-summary.d.ts +134 -0
  44. package/dist/lifecycle-summary.js +179 -0
  45. package/dist/loops/config.d.ts +10 -1
  46. package/dist/loops/config.js +38 -5
  47. package/dist/model-recovery.d.ts +1 -1
  48. package/dist/ops.js +2 -17
  49. package/dist/owner-channel/channel.d.ts +21 -5
  50. package/dist/owner-channel/channel.js +312 -138
  51. package/dist/owner-channel/commands.d.ts +28 -6
  52. package/dist/owner-channel/commands.js +109 -27
  53. package/dist/owner-channel/lifecycle-outbox.d.ts +24 -0
  54. package/dist/owner-channel/lifecycle-outbox.js +87 -0
  55. package/dist/owner-channel/ours-client.d.ts +19 -0
  56. package/dist/owner-channel/ours-client.js +3 -0
  57. package/dist/owner-channel/state.d.ts +2 -0
  58. package/dist/owner-channel/state.js +8 -2
  59. package/dist/permissions.js +1 -1
  60. package/dist/preset-migration.d.ts +42 -0
  61. package/dist/preset-migration.js +450 -0
  62. package/dist/reports/artifact.d.ts +10 -0
  63. package/dist/reports/artifact.js +32 -0
  64. package/dist/reports/index.d.ts +5 -0
  65. package/dist/reports/index.js +5 -0
  66. package/dist/reports/render.d.ts +6 -0
  67. package/dist/reports/render.js +240 -0
  68. package/dist/reports/service.d.ts +42 -0
  69. package/dist/reports/service.js +57 -0
  70. package/dist/reports/tasks.d.ts +52 -0
  71. package/dist/reports/tasks.js +177 -0
  72. package/dist/reports/types.d.ts +315 -0
  73. package/dist/reports/types.js +6 -0
  74. package/dist/resolved-plan.js +13 -1
  75. package/dist/rooms-tasks/cli.d.ts +2 -0
  76. package/dist/rooms-tasks/cli.js +434 -279
  77. package/dist/rooms-tasks/close.d.ts +9 -1
  78. package/dist/rooms-tasks/close.js +23 -7
  79. package/dist/rooms-tasks/config.js +16 -25
  80. package/dist/rooms-tasks/cowork-adapter.d.ts +5 -0
  81. package/dist/rooms-tasks/cowork-adapter.js +13 -0
  82. package/dist/rooms-tasks/deletion.d.ts +51 -0
  83. package/dist/rooms-tasks/deletion.js +217 -0
  84. package/dist/rooms-tasks/external-worker.d.ts +8 -0
  85. package/dist/rooms-tasks/external-worker.js +38 -0
  86. package/dist/rooms-tasks/launch-snapshot.d.ts +19 -0
  87. package/dist/rooms-tasks/launch-snapshot.js +181 -0
  88. package/dist/rooms-tasks/member-overrides.d.ts +30 -0
  89. package/dist/rooms-tasks/member-overrides.js +204 -0
  90. package/dist/rooms-tasks/member-startup.d.ts +1 -0
  91. package/dist/rooms-tasks/member-startup.js +9 -2
  92. package/dist/rooms-tasks/provision.js +146 -56
  93. package/dist/rooms-tasks/room-state.d.ts +1 -0
  94. package/dist/rooms-tasks/room-state.js +12 -1
  95. package/dist/rooms-tasks/task-room-name.d.ts +12 -0
  96. package/dist/rooms-tasks/task-room-name.js +61 -0
  97. package/dist/rooms-tasks/task-state.d.ts +115 -3
  98. package/dist/rooms-tasks/task-state.js +361 -11
  99. package/dist/rooms-tasks/templates.d.ts +4 -1
  100. package/dist/rooms-tasks/templates.js +34 -3
  101. package/dist/rooms-tasks/terminal.d.ts +3 -0
  102. package/dist/rooms-tasks/terminal.js +10 -4
  103. package/dist/rooms-tasks/types.d.ts +92 -7
  104. package/dist/rooms-tasks/types.js +14 -1
  105. package/dist/runner.d.ts +3 -0
  106. package/dist/runner.js +92 -33
  107. package/dist/session/acp.d.ts +4 -1
  108. package/dist/session/acp.js +29 -13
  109. package/dist/session/arbiter.d.ts +2 -1
  110. package/dist/session/arbiter.js +2 -0
  111. package/dist/session/codex-app-server-transport.d.ts +53 -0
  112. package/dist/session/codex-app-server-transport.js +184 -0
  113. package/dist/session/codex-app-server.d.ts +122 -0
  114. package/dist/session/codex-app-server.js +1031 -0
  115. package/dist/session/control.d.ts +2 -2
  116. package/dist/session/control.js +18 -2
  117. package/dist/session/conversation-types.d.ts +4 -4
  118. package/dist/session/types.d.ts +24 -6
  119. package/dist/session/types.js +28 -0
  120. package/dist/spawn.d.ts +9 -0
  121. package/dist/spawn.js +77 -9
  122. package/dist/web/fleet-config-service.d.ts +1 -0
  123. package/dist/web/fleet-config-service.js +25 -7
  124. package/dist/web/runtime.js +11 -6
  125. package/dist/web/server.js +28 -1
  126. package/dist/web-app/assets/{index-BbTc5KtZ.js → index-C0h3ALvs.js} +8 -8
  127. package/dist/web-app/index.html +1 -1
  128. package/package.json +4 -4
  129. package/presets/brain-catalog.json +17 -0
  130. package/presets/fleet/{agents → agent_templates}/Critic.yaml +2 -0
  131. package/presets/fleet/{agents/Agent.yaml → agent_templates/Developer.yaml} +3 -1
  132. package/presets/fleet/agent_templates/LocalCoordinator.yaml +50 -0
  133. package/presets/fleet/agents/{Developer.yaml → FleetCoordinator.yaml} +1 -1
  134. package/presets/fleet/brains/claude-fable-5-high.yaml +5 -0
  135. package/presets/fleet/brains/claude-fable-5-low.yaml +5 -0
  136. package/presets/fleet/brains/claude-fable-5-max.yaml +5 -0
  137. package/presets/fleet/brains/claude-fable-5-medium.yaml +5 -0
  138. package/presets/fleet/brains/claude-fable-5-xhigh.yaml +5 -0
  139. package/presets/fleet/brains/claude-opus-5-high.yaml +5 -0
  140. package/presets/fleet/brains/claude-opus-5-low.yaml +5 -0
  141. package/presets/fleet/brains/claude-opus-5-max.yaml +5 -0
  142. package/presets/fleet/brains/claude-opus-5-medium.yaml +5 -0
  143. package/presets/fleet/brains/claude-opus-5-xhigh.yaml +5 -0
  144. package/presets/fleet/brains/claude-sonnet-5-high.yaml +5 -0
  145. package/presets/fleet/brains/claude-sonnet-5-low.yaml +5 -0
  146. package/presets/fleet/brains/claude-sonnet-5-max.yaml +5 -0
  147. package/presets/fleet/brains/claude-sonnet-5-medium.yaml +5 -0
  148. package/presets/fleet/brains/claude-sonnet-5-xhigh.yaml +5 -0
  149. package/presets/fleet/brains/codex-gpt-5-3-codex-spark-high.yaml +5 -0
  150. package/presets/fleet/brains/codex-gpt-5-3-codex-spark-low.yaml +5 -0
  151. package/presets/fleet/brains/codex-gpt-5-3-codex-spark-medium.yaml +5 -0
  152. package/presets/fleet/brains/codex-gpt-5-3-codex-spark-xhigh.yaml +5 -0
  153. package/presets/fleet/brains/codex-gpt-5-4-high.yaml +5 -0
  154. package/presets/fleet/brains/codex-gpt-5-4-low.yaml +5 -0
  155. package/presets/fleet/brains/codex-gpt-5-4-medium.yaml +5 -0
  156. package/presets/fleet/brains/codex-gpt-5-4-mini-high.yaml +5 -0
  157. package/presets/fleet/brains/codex-gpt-5-4-mini-low.yaml +5 -0
  158. package/presets/fleet/brains/codex-gpt-5-4-mini-medium.yaml +5 -0
  159. package/presets/fleet/brains/codex-gpt-5-4-mini-xhigh.yaml +5 -0
  160. package/presets/fleet/brains/codex-gpt-5-4-xhigh.yaml +5 -0
  161. package/presets/fleet/brains/codex-gpt-5-5-high.yaml +5 -0
  162. package/presets/fleet/brains/codex-gpt-5-5-low.yaml +5 -0
  163. package/presets/fleet/brains/codex-gpt-5-5-medium.yaml +5 -0
  164. package/presets/fleet/brains/codex-gpt-5-5-xhigh.yaml +5 -0
  165. package/presets/fleet/brains/codex-gpt-5-6-luna-high.yaml +5 -0
  166. package/presets/fleet/brains/codex-gpt-5-6-luna-low.yaml +5 -0
  167. package/presets/fleet/brains/codex-gpt-5-6-luna-max.yaml +5 -0
  168. package/presets/fleet/brains/codex-gpt-5-6-luna-medium.yaml +5 -0
  169. package/presets/fleet/brains/codex-gpt-5-6-luna-xhigh.yaml +5 -0
  170. package/presets/fleet/brains/codex-gpt-5-6-sol-high.yaml +5 -0
  171. package/presets/fleet/brains/codex-gpt-5-6-sol-low.yaml +5 -0
  172. package/presets/fleet/brains/codex-gpt-5-6-sol-max.yaml +5 -0
  173. package/presets/fleet/brains/codex-gpt-5-6-sol-medium.yaml +5 -0
  174. package/presets/fleet/brains/codex-gpt-5-6-sol-ultra.yaml +5 -0
  175. package/presets/fleet/brains/codex-gpt-5-6-sol-xhigh.yaml +5 -0
  176. package/presets/fleet/brains/codex-gpt-5-6-terra-high.yaml +5 -0
  177. package/presets/fleet/brains/codex-gpt-5-6-terra-low.yaml +5 -0
  178. package/presets/fleet/brains/codex-gpt-5-6-terra-max.yaml +5 -0
  179. package/presets/fleet/brains/codex-gpt-5-6-terra-medium.yaml +5 -0
  180. package/presets/fleet/brains/codex-gpt-5-6-terra-ultra.yaml +5 -0
  181. package/presets/fleet/brains/codex-gpt-5-6-terra-xhigh.yaml +5 -0
  182. package/presets/fleet/brains/codex-gpt-6-astra-high.yaml +5 -0
  183. package/presets/fleet/brains/codex-gpt-6-astra-low.yaml +5 -0
  184. package/presets/fleet/brains/codex-gpt-6-astra-max.yaml +5 -0
  185. package/presets/fleet/brains/codex-gpt-6-astra-medium.yaml +5 -0
  186. package/presets/fleet/brains/codex-gpt-6-astra-ultra.yaml +5 -0
  187. package/presets/fleet/brains/codex-gpt-6-astra-xhigh.yaml +5 -0
  188. package/presets/fleet/roles/Coordinator.yaml +37 -0
  189. package/presets/fleet/roles/Critic.yaml +23 -1
  190. package/presets/fleet/roles/Developer.yaml +27 -5
  191. package/presets/fleet/roles/LocalCoordinator.yaml +35 -0
  192. package/presets/fleet/room_templates/pair.yaml +9 -7
  193. package/presets/fleet/room_templates/single.yaml +5 -4
  194. package/presets/fleet/room_templates/team.yaml +12 -8
  195. package/presets/manifest.json +2 -1
  196. package/presets/fleet/agents/Architect.yaml +0 -3
  197. package/presets/fleet/agents/Secretary.yaml +0 -3
  198. package/presets/fleet/agents/Tester.yaml +0 -3
  199. package/presets/fleet/roles/Agent.yaml +0 -6
  200. package/presets/fleet/roles/Architect.yaml +0 -6
  201. package/presets/fleet/roles/Secretary.yaml +0 -6
  202. package/presets/fleet/roles/Tester.yaml +0 -6
@@ -1,7 +1,7 @@
1
1
  import { controlRequest, followConversation } from '../session/control.js';
2
2
  import { FleetError, normalizeError } from './errors.js';
3
3
  const visibleEvents = (events) => events.filter(event => event.kind !== 'thought');
4
- export class AcpRoleSessionAdapter {
4
+ export class RoleSessionControlAdapter {
5
5
  stateDir;
6
6
  request;
7
7
  constructor(stateDir, request = controlRequest) {
@@ -12,7 +12,7 @@ export class AcpRoleSessionAdapter {
12
12
  const response = await this.call('snapshot');
13
13
  const result = response;
14
14
  return {
15
- backend: 'acp', protocolVersion: result.protocolVersion ?? 1,
15
+ backend: result.backend, protocolVersion: result.protocolVersion ?? 1,
16
16
  features: result.features ?? [], snapshot: result,
17
17
  };
18
18
  }
@@ -147,3 +147,5 @@ export class AcpRoleSessionAdapter {
147
147
  }
148
148
  }
149
149
  }
150
+ /** @deprecated Compatibility name; control is provider-neutral. */
151
+ export { RoleSessionControlAdapter as AcpRoleSessionAdapter };
@@ -2,7 +2,10 @@ import { type FleetConfig } from '../config.js';
2
2
  import { type CoworkAdapter } from '../rooms-tasks/cowork-adapter.js';
3
3
  import { provisionMembers } from '../rooms-tasks/provision.js';
4
4
  import { moveTaskToList } from '../rooms-tasks/task-state.js';
5
- import type { RoomOrchestrationRecord, TaskListRecord, TaskOrigin, TaskOutcome, TaskRecord, TaskState } from '../rooms-tasks/types.js';
5
+ import { type MemberOverrides } from '../rooms-tasks/member-overrides.js';
6
+ import { type TaskDeletionSettleResult } from '../rooms-tasks/deletion.js';
7
+ import type { RoomLaunchPolicy, RoomOrchestrationRecord, TaskListRecord, TaskOrigin, TaskOutcome, TaskRecord, TaskState, TemplateSnapshot } from '../rooms-tasks/types.js';
8
+ import type { TaskDeletionAcceptance } from '../rooms-tasks/task-state.js';
6
9
  export type TaskRoomActor = {
7
10
  kind: 'local_control';
8
11
  surface: 'cli' | 'web';
@@ -18,8 +21,8 @@ export interface TaskSettlementPlan {
18
21
  task: TaskRecord;
19
22
  settlementRequired: boolean;
20
23
  }
21
- export type TaskRecoveryIssue = {
22
- code: 'terminal_pending' | 'waiting_cowork' | 'waiting_owner_invite' | 'owner_cid_mismatch' | 'waiting_seats' | 'provisioning_resumed';
24
+ export type TaskProvisioningContinuationIssue = {
25
+ code: 'waiting_cowork' | 'waiting_owner_authorization' | 'waiting_owner_invite' | 'owner_cid_mismatch' | 'waiting_seats' | 'provisioning_resumed';
23
26
  } | {
24
27
  code: 'member_failed';
25
28
  stepIndex: number;
@@ -27,24 +30,36 @@ export type TaskRecoveryIssue = {
27
30
  code: 'resume_failed';
28
31
  error: string;
29
32
  };
30
- export interface TaskRecoveryResult {
31
- kind: 'provisioning_resumed' | 'provisioning_resume_failed' | 'provisioning_non_resumable' | 'terminal' | 'no_op';
33
+ export interface TaskProvisioningContinuationResult {
34
+ kind: 'provisioning_resumed' | 'provisioning_resume_failed' | 'provisioning_non_resumable' | 'no_op';
32
35
  task: TaskRecord;
33
36
  room: RoomOrchestrationRecord | undefined;
34
- issues: TaskRecoveryIssue[];
37
+ issues: TaskProvisioningContinuationIssue[];
35
38
  reason?: 'missing_room' | 'missing_durable_template' | 'non_resumable_phase';
36
39
  }
37
- export type TaskRecoveryBegin = {
38
- kind: 'terminal_worker_required';
39
- taskId: string;
40
- } | {
41
- kind: 'final';
42
- result: TaskRecoveryResult;
43
- };
40
+ export interface TaskProvisioningOutcome {
41
+ kind: 'ready' | 'in_progress' | 'failed';
42
+ task: TaskRecord;
43
+ room?: RoomOrchestrationRecord;
44
+ launch: {
45
+ template?: string;
46
+ anonymous: boolean;
47
+ owner_attached: boolean;
48
+ };
49
+ members: {
50
+ expected: number;
51
+ active: number;
52
+ launched: number;
53
+ };
54
+ blocker?: string;
55
+ next_action?: string;
56
+ }
57
+ /** Repairable terminal observation derived entirely from durable Task/Room state. */
58
+ export declare function recordTaskProvisioningOutcome(outcome: TaskProvisioningOutcome): void;
44
59
  export declare class TaskRoomApplicationError extends Error {
45
- readonly code: 'template_not_found' | 'task_template_drift' | 'template_mismatch' | 'task_terminal' | 'task_terminal_already' | 'task_non_resumable' | 'room_not_found' | 'room_record_not_found';
60
+ readonly code: 'template_not_found' | 'task_template_drift' | 'template_mismatch' | 'task_terminal' | 'task_terminal_already' | 'task_non_resumable' | 'task_deleting' | 'room_not_found' | 'room_record_not_found';
46
61
  readonly fields: Readonly<Record<string, string>>;
47
- constructor(code: 'template_not_found' | 'task_template_drift' | 'template_mismatch' | 'task_terminal' | 'task_terminal_already' | 'task_non_resumable' | 'room_not_found' | 'room_record_not_found', message: string, fields?: Readonly<Record<string, string>>);
62
+ constructor(code: 'template_not_found' | 'task_template_drift' | 'template_mismatch' | 'task_terminal' | 'task_terminal_already' | 'task_non_resumable' | 'task_deleting' | 'room_not_found' | 'room_record_not_found', message: string, fields?: Readonly<Record<string, string>>);
48
63
  }
49
64
  export interface CreateTaskRequest {
50
65
  actor: TaskRoomActor;
@@ -57,6 +72,8 @@ export interface CreateTaskRequest {
57
72
  idempotencyKey?: string;
58
73
  origin: TaskOrigin;
59
74
  list?: string;
75
+ members?: MemberOverrides;
76
+ anonymous?: boolean;
60
77
  }
61
78
  export interface CreateRoomRequest {
62
79
  actor: TaskRoomActor;
@@ -65,34 +82,44 @@ export interface CreateRoomRequest {
65
82
  goal?: string;
66
83
  brief?: string;
67
84
  briefFile?: string;
85
+ members?: MemberOverrides;
86
+ anonymous?: boolean;
68
87
  }
88
+ export declare function resolveRoomLaunchPolicy(template: TemplateSnapshot | undefined, override: boolean | undefined): RoomLaunchPolicy;
69
89
  export interface TaskRoomServiceDeps {
70
90
  loadConfiguration?(path?: string): FleetConfig;
71
91
  cowork?(config: FleetConfig): CoworkAdapter;
72
92
  binPath?(): string;
73
93
  provisionMembers?: typeof provisionMembers;
74
94
  moveTaskToList?: typeof moveTaskToList;
95
+ launchDeletionWorker?(taskId: string): Promise<void>;
96
+ sleep?(ms: number): Promise<void>;
97
+ now?(): number;
75
98
  }
76
99
  /** Exact extraction of the previously CLI-owned task create/start behavior. */
77
100
  export declare class TaskRoomApplicationService {
78
101
  private readonly configurationPath?;
79
102
  private readonly deps;
80
- private recovery?;
81
103
  constructor(configurationPath?: string | undefined, deps?: TaskRoomServiceDeps);
82
104
  createTask(request: CreateTaskRequest): Promise<TaskRecord>;
83
105
  createRoom(request: CreateRoomRequest): Promise<RoomOrchestrationRecord>;
84
106
  startTask(input: {
85
107
  actor: TaskRoomActor;
86
108
  taskId: string;
109
+ template?: string;
110
+ members?: MemberOverrides;
111
+ anonymous?: boolean;
87
112
  }): Promise<TaskRecord>;
88
113
  listTasks(filter?: {
89
114
  state?: TaskState | TaskState[];
90
115
  list?: string;
116
+ includeDeleting?: boolean;
91
117
  }): TaskRecord[];
92
118
  listTaskLists(): TaskListRecord[];
93
119
  groupedTasks(filter?: {
94
120
  state?: TaskState | TaskState[];
95
121
  list?: string;
122
+ includeDeleting?: boolean;
96
123
  }): Array<{
97
124
  list: TaskListRecord;
98
125
  tasks: TaskRecord[];
@@ -124,6 +151,12 @@ export declare class TaskRoomApplicationService {
124
151
  task: TaskRecord;
125
152
  orchestration: RoomOrchestrationRecord | undefined;
126
153
  };
154
+ taskProvisioningOutcome(taskId: string): TaskProvisioningOutcome;
155
+ awaitTaskProvisioning(input: {
156
+ actor: TaskRoomActor;
157
+ taskId: string;
158
+ waitMs?: number;
159
+ }): Promise<TaskProvisioningOutcome>;
127
160
  blockTask(input: {
128
161
  actor: TaskRoomActor;
129
162
  taskId: string;
@@ -137,10 +170,40 @@ export declare class TaskRoomApplicationService {
137
170
  actor: TaskRoomActor;
138
171
  taskId: string;
139
172
  }): TaskRecord;
140
- deleteTask(input: {
173
+ private deletionActor;
174
+ /** Accept a permanent deletion in any lifecycle state; audit at acceptance. */
175
+ requestTaskDeletion(input: {
141
176
  actor: TaskRoomActor;
142
177
  taskId: string;
143
- }): boolean;
178
+ }): Promise<TaskDeletionAcceptance>;
179
+ /** Worker entry: converge an accepted deletion; Cowork is resolved lazily. */
180
+ settleTaskDeletion(input: {
181
+ actor: {
182
+ kind: 'internal_worker';
183
+ surface: 'cli';
184
+ };
185
+ taskId: string;
186
+ }): Promise<TaskDeletionSettleResult>;
187
+ /**
188
+ * Launch the external deletion worker outside the caller's lifecycle and
189
+ * wait boundedly for physical absence. Timeouts and launch failures report
190
+ * a pending, recoverable state — never success. A concurrent worker that
191
+ * already removed the record reads as settled.
192
+ */
193
+ launchTaskDeletionWorker(input: {
194
+ taskId: string;
195
+ waitMs?: number;
196
+ }): Promise<{
197
+ deleted: boolean;
198
+ pending: boolean;
199
+ error?: string;
200
+ }>;
201
+ recordDeletionError(input: {
202
+ actor: TaskRoomActor;
203
+ taskId: string;
204
+ error: string;
205
+ recoveryHint: string;
206
+ }): Promise<TaskRecord>;
144
207
  completeTask(input: {
145
208
  actor: TaskRoomActor;
146
209
  taskId: string;
@@ -163,15 +226,14 @@ export declare class TaskRoomApplicationService {
163
226
  error: string;
164
227
  recoveryHint: string;
165
228
  }): Promise<TaskRecord>;
166
- beginTaskRecovery(input: {
167
- actor: TaskRoomActor;
168
- taskId: string;
169
- }): Promise<TaskRecoveryBegin>;
170
- continueTaskRecovery(input: {
171
- actor: TaskRoomActor;
229
+ continueTaskProvisioning(input: {
230
+ actor: {
231
+ kind: 'internal_worker';
232
+ surface: 'cli';
233
+ };
172
234
  taskId: string;
173
- terminalTimedOut: boolean;
174
- }): Promise<TaskRecoveryResult>;
235
+ }): Promise<TaskProvisioningContinuationResult>;
236
+ private reconcileProvisioningOwner;
175
237
  private acceptTerminal;
176
238
  listTemplates(): import("../rooms-tasks/types.js").TemplateDefinition[];
177
239
  getTemplate(name: string): {
@@ -197,6 +259,7 @@ export declare class TaskRoomApplicationService {
197
259
  identity_cid: string;
198
260
  room_name: string;
199
261
  state: "provisioning" | "active" | "closing" | "closed";
262
+ anonymous: boolean;
200
263
  seats: import("../rooms-tasks/cowork-adapter.js").CoworkSeatInfo[];
201
264
  goal?: string;
202
265
  briefing?: string;
@@ -231,18 +294,6 @@ export declare class TaskRoomApplicationService {
231
294
  error: string;
232
295
  recoveryHint: string;
233
296
  }): Promise<RoomOrchestrationRecord>;
234
- recoverRoom(input: {
235
- actor: TaskRoomActor;
236
- roomId: string;
237
- }): Promise<{
238
- kind: 'deletion_worker_required';
239
- roomId: string;
240
- } | {
241
- kind: 'recovered' | 'provisioning_resumed' | 'provisioning_resume_failed';
242
- room: Awaited<ReturnType<CoworkAdapter['recoverRoom']>>;
243
- orchestration: RoomOrchestrationRecord | undefined;
244
- issues: string[];
245
- }>;
246
297
  finishTask(input: {
247
298
  actor: TaskRoomActor;
248
299
  taskId: string;
@@ -252,9 +303,11 @@ export declare class TaskRoomApplicationService {
252
303
  actor: TaskRoomActor;
253
304
  taskId: string;
254
305
  template?: string;
306
+ members?: MemberOverrides;
307
+ anonymous?: boolean;
255
308
  }): Promise<{
256
309
  task: TaskRecord;
257
- status: 'ready' | 'already_active';
310
+ status: 'ready' | 'already_active' | 'in_progress';
258
311
  }>;
259
312
  private createTemplate;
260
313
  private existingTemplate;