@khorsheed/dsh-room 0.2.1 → 0.2.3

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 (114) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.en.md +29 -62
  3. package/README.i18n.yaml +2 -2
  4. package/README.md +28 -61
  5. package/lib/client.js +34057 -6483
  6. package/lib/index.js +4045 -730
  7. package/lib/journal-B4FOGO6S.js +482 -0
  8. package/lib/journal-Rid9AAnD.js +485 -0
  9. package/lib/tool.js +112 -166
  10. package/lib/typert.host.js +2517 -363
  11. package/lib/typert.remote-client.d.ts +53 -9
  12. package/lib/typert.remote-client.js +1909 -280
  13. package/lib/types/agent-setup.d.ts +1 -1
  14. package/lib/types/client/InviteAgentAction.js +4 -16
  15. package/lib/types/client/InviteDialog.d.ts +28 -6
  16. package/lib/types/client/InviteDialog.js +76 -12
  17. package/lib/types/client/MemberCard.d.ts +5 -1
  18. package/lib/types/client/MemberCard.js +4 -4
  19. package/lib/types/client/MembersView.d.ts +1 -1
  20. package/lib/types/client/MembersView.js +58 -22
  21. package/lib/types/client/RemoveMemberConfirm.d.ts +40 -0
  22. package/lib/types/client/RemoveMemberConfirm.js +85 -0
  23. package/lib/types/client/RoomApprovalView.d.ts +11 -0
  24. package/lib/types/client/RoomApprovalView.js +28 -0
  25. package/lib/types/client/RoomComposer.d.ts +1 -1
  26. package/lib/types/client/RoomComposer.js +228 -37
  27. package/lib/types/client/RoomDecisionView.d.ts +22 -0
  28. package/lib/types/client/RoomDecisionView.js +35 -0
  29. package/lib/types/client/RoomHelpView.d.ts +17 -0
  30. package/lib/types/client/RoomHelpView.js +56 -0
  31. package/lib/types/client/RoomInboxView.d.ts +10 -0
  32. package/lib/types/client/RoomInboxView.js +14 -0
  33. package/lib/types/client/RoomQuestionView.d.ts +13 -0
  34. package/lib/types/client/RoomQuestionView.js +61 -0
  35. package/lib/types/client/RoomRelayView.js +1 -1
  36. package/lib/types/client/RoomRunView.d.ts +3 -1
  37. package/lib/types/client/RoomRunView.js +12 -5
  38. package/lib/types/client/RoomSettingsView.d.ts +19 -0
  39. package/lib/types/client/RoomSettingsView.js +30 -0
  40. package/lib/types/client/RoomSpeechView.d.ts +22 -8
  41. package/lib/types/client/RoomSpeechView.js +94 -11
  42. package/lib/types/client/RoomStatsLine.d.ts +26 -5
  43. package/lib/types/client/RoomStatsLine.js +53 -7
  44. package/lib/types/client/RoomTaskCapsule.d.ts +19 -0
  45. package/lib/types/client/RoomTaskCapsule.js +37 -0
  46. package/lib/types/client/TasksTab.d.ts +41 -0
  47. package/lib/types/client/TasksTab.js +43 -0
  48. package/lib/types/client/TasksView.d.ts +44 -0
  49. package/lib/types/client/TasksView.js +149 -0
  50. package/lib/types/client/TeamView.d.ts +33 -0
  51. package/lib/types/client/TeamView.js +210 -0
  52. package/lib/types/client/at-menu.d.ts +127 -0
  53. package/lib/types/client/at-menu.js +173 -0
  54. package/lib/types/client/draft-chips.d.ts +67 -0
  55. package/lib/types/client/draft-chips.js +95 -0
  56. package/lib/types/client/executions.d.ts +0 -30
  57. package/lib/types/client/executions.js +4 -34
  58. package/lib/types/client/icons-local.d.ts +25 -0
  59. package/lib/types/client/icons-local.js +10 -0
  60. package/lib/types/client/icons.d.ts +2 -1
  61. package/lib/types/client/icons.js +1 -0
  62. package/lib/types/client/index.js +276 -72
  63. package/lib/types/client/locales.d.ts +482 -52
  64. package/lib/types/client/locales.js +490 -60
  65. package/lib/types/client/nodes.d.ts +112 -17
  66. package/lib/types/client/nodes.js +197 -26
  67. package/lib/types/client/preset-visibility.d.ts +12 -2
  68. package/lib/types/client/preset-visibility.js +54 -13
  69. package/lib/types/client/slots.d.ts +124 -51
  70. package/lib/types/client/task-tag.d.ts +32 -0
  71. package/lib/types/client/task-tag.js +33 -0
  72. package/lib/types/client/tasks.d.ts +50 -0
  73. package/lib/types/client/tasks.js +82 -0
  74. package/lib/types/client/team.d.ts +73 -0
  75. package/lib/types/client/team.js +187 -0
  76. package/lib/types/decisions.d.ts +49 -0
  77. package/lib/types/decisions.js +101 -0
  78. package/lib/types/deliveries.d.ts +17 -1
  79. package/lib/types/deliveries.js +82 -6
  80. package/lib/types/dispatch.d.ts +92 -4
  81. package/lib/types/dispatch.js +477 -109
  82. package/lib/types/help.d.ts +137 -0
  83. package/lib/types/help.js +216 -0
  84. package/lib/types/helps.d.ts +26 -0
  85. package/lib/types/helps.js +47 -0
  86. package/lib/types/index.d.ts +292 -52
  87. package/lib/types/index.js +1415 -199
  88. package/lib/types/jobs.d.ts +22 -0
  89. package/lib/types/jobs.js +77 -0
  90. package/lib/types/journal.d.ts +17 -27
  91. package/lib/types/journal.js +120 -43
  92. package/lib/types/messaging.d.ts +65 -0
  93. package/lib/types/messaging.js +160 -0
  94. package/lib/types/plan-service.js +7 -1
  95. package/lib/types/report-gate.d.ts +81 -0
  96. package/lib/types/report-gate.js +89 -0
  97. package/lib/types/tool-definition.d.ts +43 -20
  98. package/lib/types/tool-definition.js +145 -212
  99. package/lib/types/tool.d.ts +2 -2
  100. package/lib/types/tool.js +3 -2
  101. package/lib/types/types.d.ts +755 -78
  102. package/locale/zh.json +1 -1
  103. package/package.json +27 -29
  104. package/lib/invariant.js +0 -26
  105. package/lib/types/client/RoomActivityDock.d.ts +0 -19
  106. package/lib/types/client/RoomActivityDock.js +0 -105
  107. package/lib/types/client/RoomDockCapsules.d.ts +0 -64
  108. package/lib/types/client/RoomDockCapsules.js +0 -277
  109. package/lib/types/client/RoomPlanTab.d.ts +0 -15
  110. package/lib/types/client/RoomPlanTab.js +0 -13
  111. package/lib/types/client/RoomTaskLineView.d.ts +0 -13
  112. package/lib/types/client/RoomTaskLineView.js +0 -21
  113. package/lib/types/invariant.d.ts +0 -16
  114. package/lib/types/invariant.js +0 -24
@@ -1,21 +1,113 @@
1
1
  /* Generated by @deepseek-ai/dsh-typert-generator from FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
+ import { createTypertRemoteInfo } from '@deepseek-ai/dsh-typert-protocol/remote-info'
5
+
4
6
  let RoomJsonValueRemoteCodec$schema$value
5
7
  const RoomJsonValueRemoteCodec$schema = () => (RoomJsonValueRemoteCodec$schema$value ??= z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => RoomJsonValueRemoteCodec$schema())), z.record(z.string(), z.lazy(() => RoomJsonValueRemoteCodec$schema()))]))
6
- let _khorsheed_dsh_room_room_addTask_parameter_0$schema$value
7
- const _khorsheed_dsh_room_room_addTask_parameter_0$schema = () => (_khorsheed_dsh_room_room_addTask_parameter_0$schema$value ??= z.object({
8
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
9
- 'member': z.string().readonly(),
10
- 'title': z.string().readonly(),
11
- 'blockedBy': z.string().readonly().optional(),
8
+ let _khorsheed_dsh_room_room_answerApproval_parameter_0$schema$value
9
+ const _khorsheed_dsh_room_room_answerApproval_parameter_0$schema = () => (_khorsheed_dsh_room_room_answerApproval_parameter_0$schema$value ??= z.object({
10
+ 'sessionId': z.string().readonly(),
11
+ 'id': z.string().readonly(),
12
+ 'outcome': z.union([z.literal("rejected"), z.literal("allowed-once")]).readonly(),
12
13
  }))
13
- let _khorsheed_dsh_room_room_addTask_result$schema$value
14
- const _khorsheed_dsh_room_room_addTask_result$schema = () => (_khorsheed_dsh_room_room_addTask_result$schema$value ??= z.union([z.object({
14
+ let _khorsheed_dsh_room_room_answerApproval_result$schema$value
15
+ const _khorsheed_dsh_room_room_answerApproval_result$schema = () => (_khorsheed_dsh_room_room_answerApproval_result$schema$value ??= z.union([z.object({
15
16
  'ok': z.literal(true).readonly(),
16
- 'value': z.object({
17
+ }), z.object({
18
+ 'ok': z.literal(false).readonly(),
19
+ 'error': z.union([z.object({
20
+ 'code': z.literal("request-conflict").readonly(),
21
+ }), z.object({
22
+ 'code': z.literal("member-cwd-bound").readonly(),
23
+ }), z.object({
24
+ 'code': z.literal("not-coordinator").readonly(),
25
+ }), z.object({
26
+ 'code': z.literal("delivery-not-uncertain").readonly(),
27
+ }), z.object({
28
+ 'code': z.literal("plan-reconciliation-required").readonly(),
29
+ }), z.object({
30
+ 'code': z.literal("coordinator-busy").readonly(),
31
+ }), z.object({
32
+ 'code': z.literal("coordinator-not-ready").readonly(),
33
+ 'message': z.string().readonly(),
34
+ }), z.object({
35
+ 'code': z.literal("coordinator-conflict").readonly(),
36
+ }), z.object({
37
+ 'code': z.literal("active-coordinator").readonly(),
38
+ }), z.object({
39
+ 'code': z.literal("configuration-owned-by-core").readonly(),
40
+ }), z.object({
41
+ 'code': z.literal("session-not-found").readonly(),
42
+ }), z.object({
43
+ 'code': z.literal("not-a-room").readonly(),
44
+ }), z.object({
45
+ 'code': z.literal("invalid-name").readonly(),
46
+ }), z.object({
47
+ 'code': z.literal("duplicate-name").readonly(),
48
+ }), z.object({
49
+ 'code': z.literal("empty-provider").readonly(),
50
+ }), z.object({
51
+ 'code': z.literal("member-not-found").readonly(),
52
+ }), z.object({
53
+ 'code': z.literal("empty-text").readonly(),
54
+ }), z.object({
55
+ 'code': z.literal("role-too-long").readonly(),
56
+ }), z.object({
57
+ 'code': z.literal("invalid-settings").readonly(),
58
+ }), z.object({
59
+ 'code': z.literal("self-message").readonly(),
60
+ }), z.object({
61
+ 'code': z.literal("unknown-task").readonly(),
62
+ }), z.object({
63
+ 'code': z.literal("unknown-preset").readonly(),
64
+ 'preset': z.string().readonly(),
65
+ 'available': z.array(z.string()).readonly(),
66
+ }), z.object({
67
+ 'code': z.literal("nothing-to-update").readonly(),
68
+ }), z.object({
69
+ 'code': z.literal("local-agent-unavailable").readonly(),
70
+ }), z.object({
71
+ 'code': z.literal("unknown-provider").readonly(),
72
+ 'provider': z.string().readonly(),
73
+ 'available': z.array(z.string()).readonly(),
74
+ }), z.object({
75
+ 'code': z.literal("unknown-targets").readonly(),
76
+ 'names': z.array(z.string()).readonly(),
77
+ }), z.object({
78
+ 'code': z.literal("no-targets").readonly(),
79
+ }), z.object({
80
+ 'code': z.literal("relay-not-found").readonly(),
81
+ }), z.object({
82
+ 'code': z.literal("relay-not-pending").readonly(),
83
+ }), z.object({
84
+ 'code': z.literal("approval-not-pending").readonly(),
85
+ }), z.object({
86
+ 'code': z.literal("question-not-pending").readonly(),
87
+ }), z.object({
88
+ 'code': z.literal("main-member").readonly(),
89
+ }), z.object({
90
+ 'code': z.literal("task-not-found").readonly(),
91
+ }), z.object({
92
+ 'code': z.literal("task-closed").readonly(),
93
+ }), z.object({
94
+ 'code': z.literal("resume-failed").readonly(),
95
+ 'message': z.string().readonly(),
96
+ })]).readonly(),
97
+ })]))
98
+ let _khorsheed_dsh_room_room_answerQuestion_parameter_0$schema$value
99
+ const _khorsheed_dsh_room_room_answerQuestion_parameter_0$schema = () => (_khorsheed_dsh_room_room_answerQuestion_parameter_0$schema$value ??= z.object({
100
+ 'sessionId': z.string().readonly(),
17
101
  'id': z.string().readonly(),
18
- }).readonly(),
102
+ 'answers': z.array(z.object({
103
+ 'id': z.string().readonly(),
104
+ 'selected': z.array(z.string()).readonly(),
105
+ 'custom': z.string().readonly().optional(),
106
+ })).readonly(),
107
+ }))
108
+ let _khorsheed_dsh_room_room_answerQuestion_result$schema$value
109
+ const _khorsheed_dsh_room_room_answerQuestion_result$schema = () => (_khorsheed_dsh_room_room_answerQuestion_result$schema$value ??= z.union([z.object({
110
+ 'ok': z.literal(true).readonly(),
19
111
  }), z.object({
20
112
  'ok': z.literal(false).readonly(),
21
113
  'error': z.union([z.object({
@@ -53,6 +145,18 @@ const _khorsheed_dsh_room_room_addTask_result$schema = () => (_khorsheed_dsh_roo
53
145
  'code': z.literal("member-not-found").readonly(),
54
146
  }), z.object({
55
147
  'code': z.literal("empty-text").readonly(),
148
+ }), z.object({
149
+ 'code': z.literal("role-too-long").readonly(),
150
+ }), z.object({
151
+ 'code': z.literal("invalid-settings").readonly(),
152
+ }), z.object({
153
+ 'code': z.literal("self-message").readonly(),
154
+ }), z.object({
155
+ 'code': z.literal("unknown-task").readonly(),
156
+ }), z.object({
157
+ 'code': z.literal("unknown-preset").readonly(),
158
+ 'preset': z.string().readonly(),
159
+ 'available': z.array(z.string()).readonly(),
56
160
  }), z.object({
57
161
  'code': z.literal("nothing-to-update").readonly(),
58
162
  }), z.object({
@@ -70,6 +174,10 @@ const _khorsheed_dsh_room_room_addTask_result$schema = () => (_khorsheed_dsh_roo
70
174
  'code': z.literal("relay-not-found").readonly(),
71
175
  }), z.object({
72
176
  'code': z.literal("relay-not-pending").readonly(),
177
+ }), z.object({
178
+ 'code': z.literal("approval-not-pending").readonly(),
179
+ }), z.object({
180
+ 'code': z.literal("question-not-pending").readonly(),
73
181
  }), z.object({
74
182
  'code': z.literal("main-member").readonly(),
75
183
  }), z.object({
@@ -83,16 +191,16 @@ const _khorsheed_dsh_room_room_addTask_result$schema = () => (_khorsheed_dsh_roo
83
191
  })]))
84
192
  let _khorsheed_dsh_room_room_cancel_parameter_0$schema$value
85
193
  const _khorsheed_dsh_room_room_cancel_parameter_0$schema = () => (_khorsheed_dsh_room_room_cancel_parameter_0$schema$value ??= z.object({
86
- 'expectedRunId': z.string().readonly().optional(),
194
+ 'expectedRunId': z.string().readonly().optional().describe('Optional fencing for an execution card; a stale card must never stop a successor.'),
87
195
  'expectedStartedAt': z.number().readonly().optional(),
88
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
89
- 'name': z.string().readonly(),
196
+ 'sessionId': z.string().readonly().describe('Room session.'),
197
+ 'name': z.string().readonly().describe('Member whose run should be cancelled.'),
90
198
  }))
91
199
  let _khorsheed_dsh_room_room_cancel_result$schema$value
92
200
  const _khorsheed_dsh_room_room_cancel_result$schema = () => (_khorsheed_dsh_room_room_cancel_result$schema$value ??= z.union([z.object({
93
201
  'ok': z.literal(true).readonly(),
94
202
  'value': z.object({
95
- 'cancelled': z.boolean().readonly(),
203
+ 'cancelled': z.boolean().readonly().describe('True when an in-flight run was found and cancelled.'),
96
204
  }).readonly(),
97
205
  }), z.object({
98
206
  'ok': z.literal(false).readonly(),
@@ -131,6 +239,18 @@ const _khorsheed_dsh_room_room_cancel_result$schema = () => (_khorsheed_dsh_room
131
239
  'code': z.literal("member-not-found").readonly(),
132
240
  }), z.object({
133
241
  'code': z.literal("empty-text").readonly(),
242
+ }), z.object({
243
+ 'code': z.literal("role-too-long").readonly(),
244
+ }), z.object({
245
+ 'code': z.literal("invalid-settings").readonly(),
246
+ }), z.object({
247
+ 'code': z.literal("self-message").readonly(),
248
+ }), z.object({
249
+ 'code': z.literal("unknown-task").readonly(),
250
+ }), z.object({
251
+ 'code': z.literal("unknown-preset").readonly(),
252
+ 'preset': z.string().readonly(),
253
+ 'available': z.array(z.string()).readonly(),
134
254
  }), z.object({
135
255
  'code': z.literal("nothing-to-update").readonly(),
136
256
  }), z.object({
@@ -148,6 +268,10 @@ const _khorsheed_dsh_room_room_cancel_result$schema = () => (_khorsheed_dsh_room
148
268
  'code': z.literal("relay-not-found").readonly(),
149
269
  }), z.object({
150
270
  'code': z.literal("relay-not-pending").readonly(),
271
+ }), z.object({
272
+ 'code': z.literal("approval-not-pending").readonly(),
273
+ }), z.object({
274
+ 'code': z.literal("question-not-pending").readonly(),
151
275
  }), z.object({
152
276
  'code': z.literal("main-member").readonly(),
153
277
  }), z.object({
@@ -161,14 +285,14 @@ const _khorsheed_dsh_room_room_cancel_result$schema = () => (_khorsheed_dsh_room
161
285
  })]))
162
286
  let _khorsheed_dsh_room_room_cancelChild_parameter_0$schema$value
163
287
  const _khorsheed_dsh_room_room_cancelChild_parameter_0$schema = () => (_khorsheed_dsh_room_room_cancelChild_parameter_0$schema$value ??= z.object({
164
- 'sessionId': z.intersection(z.string(), z.unknown()),
165
- 'childSessionId': z.intersection(z.string(), z.unknown()),
288
+ 'sessionId': z.string(),
289
+ 'childSessionId': z.string(),
166
290
  }))
167
291
  let _khorsheed_dsh_room_room_cancelChild_result$schema$value
168
292
  const _khorsheed_dsh_room_room_cancelChild_result$schema = () => (_khorsheed_dsh_room_room_cancelChild_result$schema$value ??= z.union([z.object({
169
293
  'ok': z.literal(true).readonly(),
170
294
  'value': z.object({
171
- 'cancelled': z.boolean().readonly(),
295
+ 'cancelled': z.boolean().readonly().describe('True when an in-flight run was found and cancelled.'),
172
296
  }).readonly(),
173
297
  }), z.object({
174
298
  'ok': z.literal(false).readonly(),
@@ -207,6 +331,18 @@ const _khorsheed_dsh_room_room_cancelChild_result$schema = () => (_khorsheed_dsh
207
331
  'code': z.literal("member-not-found").readonly(),
208
332
  }), z.object({
209
333
  'code': z.literal("empty-text").readonly(),
334
+ }), z.object({
335
+ 'code': z.literal("role-too-long").readonly(),
336
+ }), z.object({
337
+ 'code': z.literal("invalid-settings").readonly(),
338
+ }), z.object({
339
+ 'code': z.literal("self-message").readonly(),
340
+ }), z.object({
341
+ 'code': z.literal("unknown-task").readonly(),
342
+ }), z.object({
343
+ 'code': z.literal("unknown-preset").readonly(),
344
+ 'preset': z.string().readonly(),
345
+ 'available': z.array(z.string()).readonly(),
210
346
  }), z.object({
211
347
  'code': z.literal("nothing-to-update").readonly(),
212
348
  }), z.object({
@@ -224,6 +360,10 @@ const _khorsheed_dsh_room_room_cancelChild_result$schema = () => (_khorsheed_dsh
224
360
  'code': z.literal("relay-not-found").readonly(),
225
361
  }), z.object({
226
362
  'code': z.literal("relay-not-pending").readonly(),
363
+ }), z.object({
364
+ 'code': z.literal("approval-not-pending").readonly(),
365
+ }), z.object({
366
+ 'code': z.literal("question-not-pending").readonly(),
227
367
  }), z.object({
228
368
  'code': z.literal("main-member").readonly(),
229
369
  }), z.object({
@@ -235,17 +375,16 @@ const _khorsheed_dsh_room_room_cancelChild_result$schema = () => (_khorsheed_dsh
235
375
  'message': z.string().readonly(),
236
376
  })]).readonly(),
237
377
  })]))
238
- let _khorsheed_dsh_room_room_closeTask_parameter_0$schema$value
239
- const _khorsheed_dsh_room_room_closeTask_parameter_0$schema = () => (_khorsheed_dsh_room_room_closeTask_parameter_0$schema$value ??= z.object({
240
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
241
- 'taskId': z.string().readonly(),
242
- 'status': z.union([z.literal("done"), z.literal("cancelled")]).readonly().optional(),
378
+ let _khorsheed_dsh_room_room_confirmRelay_parameter_0$schema$value
379
+ const _khorsheed_dsh_room_room_confirmRelay_parameter_0$schema = () => (_khorsheed_dsh_room_room_confirmRelay_parameter_0$schema$value ??= z.object({
380
+ 'sessionId': z.string().readonly().describe('Room session.'),
381
+ 'relayId': z.string().readonly().describe('The relay to resolve.'),
243
382
  }))
244
- let _khorsheed_dsh_room_room_closeTask_result$schema$value
245
- const _khorsheed_dsh_room_room_closeTask_result$schema = () => (_khorsheed_dsh_room_room_closeTask_result$schema$value ??= z.union([z.object({
383
+ let _khorsheed_dsh_room_room_confirmRelay_result$schema$value
384
+ const _khorsheed_dsh_room_room_confirmRelay_result$schema = () => (_khorsheed_dsh_room_room_confirmRelay_result$schema$value ??= z.union([z.object({
246
385
  'ok': z.literal(true).readonly(),
247
386
  'value': z.object({
248
- 'id': z.string().readonly(),
387
+ 'relayId': z.string().readonly(),
249
388
  }).readonly(),
250
389
  }), z.object({
251
390
  'ok': z.literal(false).readonly(),
@@ -284,6 +423,18 @@ const _khorsheed_dsh_room_room_closeTask_result$schema = () => (_khorsheed_dsh_r
284
423
  'code': z.literal("member-not-found").readonly(),
285
424
  }), z.object({
286
425
  'code': z.literal("empty-text").readonly(),
426
+ }), z.object({
427
+ 'code': z.literal("role-too-long").readonly(),
428
+ }), z.object({
429
+ 'code': z.literal("invalid-settings").readonly(),
430
+ }), z.object({
431
+ 'code': z.literal("self-message").readonly(),
432
+ }), z.object({
433
+ 'code': z.literal("unknown-task").readonly(),
434
+ }), z.object({
435
+ 'code': z.literal("unknown-preset").readonly(),
436
+ 'preset': z.string().readonly(),
437
+ 'available': z.array(z.string()).readonly(),
287
438
  }), z.object({
288
439
  'code': z.literal("nothing-to-update").readonly(),
289
440
  }), z.object({
@@ -301,6 +452,10 @@ const _khorsheed_dsh_room_room_closeTask_result$schema = () => (_khorsheed_dsh_r
301
452
  'code': z.literal("relay-not-found").readonly(),
302
453
  }), z.object({
303
454
  'code': z.literal("relay-not-pending").readonly(),
455
+ }), z.object({
456
+ 'code': z.literal("approval-not-pending").readonly(),
457
+ }), z.object({
458
+ 'code': z.literal("question-not-pending").readonly(),
304
459
  }), z.object({
305
460
  'code': z.literal("main-member").readonly(),
306
461
  }), z.object({
@@ -312,17 +467,15 @@ const _khorsheed_dsh_room_room_closeTask_result$schema = () => (_khorsheed_dsh_r
312
467
  'message': z.string().readonly(),
313
468
  })]).readonly(),
314
469
  })]))
315
- let _khorsheed_dsh_room_room_confirmRelay_parameter_0$schema$value
316
- const _khorsheed_dsh_room_room_confirmRelay_parameter_0$schema = () => (_khorsheed_dsh_room_room_confirmRelay_parameter_0$schema$value ??= z.object({
317
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
318
- 'relayId': z.string().readonly(),
470
+ let _khorsheed_dsh_room_room_dismissHelpNudge_parameter_0$schema$value
471
+ const _khorsheed_dsh_room_room_dismissHelpNudge_parameter_0$schema = () => (_khorsheed_dsh_room_room_dismissHelpNudge_parameter_0$schema$value ??= z.object({
472
+ 'sessionId': z.string().readonly(),
473
+ 'target': z.string().readonly().describe('The outside session.'),
474
+ 'title': z.string().readonly().optional().describe('Its title (link only).'),
319
475
  }))
320
- let _khorsheed_dsh_room_room_confirmRelay_result$schema$value
321
- const _khorsheed_dsh_room_room_confirmRelay_result$schema = () => (_khorsheed_dsh_room_room_confirmRelay_result$schema$value ??= z.union([z.object({
476
+ let _khorsheed_dsh_room_room_dismissHelpNudge_result$schema$value
477
+ const _khorsheed_dsh_room_room_dismissHelpNudge_result$schema = () => (_khorsheed_dsh_room_room_dismissHelpNudge_result$schema$value ??= z.union([z.object({
322
478
  'ok': z.literal(true).readonly(),
323
- 'value': z.object({
324
- 'relayId': z.string().readonly(),
325
- }).readonly(),
326
479
  }), z.object({
327
480
  'ok': z.literal(false).readonly(),
328
481
  'error': z.union([z.object({
@@ -360,6 +513,18 @@ const _khorsheed_dsh_room_room_confirmRelay_result$schema = () => (_khorsheed_ds
360
513
  'code': z.literal("member-not-found").readonly(),
361
514
  }), z.object({
362
515
  'code': z.literal("empty-text").readonly(),
516
+ }), z.object({
517
+ 'code': z.literal("role-too-long").readonly(),
518
+ }), z.object({
519
+ 'code': z.literal("invalid-settings").readonly(),
520
+ }), z.object({
521
+ 'code': z.literal("self-message").readonly(),
522
+ }), z.object({
523
+ 'code': z.literal("unknown-task").readonly(),
524
+ }), z.object({
525
+ 'code': z.literal("unknown-preset").readonly(),
526
+ 'preset': z.string().readonly(),
527
+ 'available': z.array(z.string()).readonly(),
363
528
  }), z.object({
364
529
  'code': z.literal("nothing-to-update").readonly(),
365
530
  }), z.object({
@@ -377,6 +542,10 @@ const _khorsheed_dsh_room_room_confirmRelay_result$schema = () => (_khorsheed_ds
377
542
  'code': z.literal("relay-not-found").readonly(),
378
543
  }), z.object({
379
544
  'code': z.literal("relay-not-pending").readonly(),
545
+ }), z.object({
546
+ 'code': z.literal("approval-not-pending").readonly(),
547
+ }), z.object({
548
+ 'code': z.literal("question-not-pending").readonly(),
380
549
  }), z.object({
381
550
  'code': z.literal("main-member").readonly(),
382
551
  }), z.object({
@@ -390,8 +559,8 @@ const _khorsheed_dsh_room_room_confirmRelay_result$schema = () => (_khorsheed_ds
390
559
  })]))
391
560
  let _khorsheed_dsh_room_room_dismissRelay_parameter_0$schema$value
392
561
  const _khorsheed_dsh_room_room_dismissRelay_parameter_0$schema = () => (_khorsheed_dsh_room_room_dismissRelay_parameter_0$schema$value ??= z.object({
393
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
394
- 'relayId': z.string().readonly(),
562
+ 'sessionId': z.string().readonly().describe('Room session.'),
563
+ 'relayId': z.string().readonly().describe('The relay to resolve.'),
395
564
  }))
396
565
  let _khorsheed_dsh_room_room_dismissRelay_result$schema$value
397
566
  const _khorsheed_dsh_room_room_dismissRelay_result$schema = () => (_khorsheed_dsh_room_room_dismissRelay_result$schema$value ??= z.union([z.object({
@@ -436,6 +605,18 @@ const _khorsheed_dsh_room_room_dismissRelay_result$schema = () => (_khorsheed_ds
436
605
  'code': z.literal("member-not-found").readonly(),
437
606
  }), z.object({
438
607
  'code': z.literal("empty-text").readonly(),
608
+ }), z.object({
609
+ 'code': z.literal("role-too-long").readonly(),
610
+ }), z.object({
611
+ 'code': z.literal("invalid-settings").readonly(),
612
+ }), z.object({
613
+ 'code': z.literal("self-message").readonly(),
614
+ }), z.object({
615
+ 'code': z.literal("unknown-task").readonly(),
616
+ }), z.object({
617
+ 'code': z.literal("unknown-preset").readonly(),
618
+ 'preset': z.string().readonly(),
619
+ 'available': z.array(z.string()).readonly(),
439
620
  }), z.object({
440
621
  'code': z.literal("nothing-to-update").readonly(),
441
622
  }), z.object({
@@ -453,6 +634,10 @@ const _khorsheed_dsh_room_room_dismissRelay_result$schema = () => (_khorsheed_ds
453
634
  'code': z.literal("relay-not-found").readonly(),
454
635
  }), z.object({
455
636
  'code': z.literal("relay-not-pending").readonly(),
637
+ }), z.object({
638
+ 'code': z.literal("approval-not-pending").readonly(),
639
+ }), z.object({
640
+ 'code': z.literal("question-not-pending").readonly(),
456
641
  }), z.object({
457
642
  'code': z.literal("main-member").readonly(),
458
643
  }), z.object({
@@ -466,7 +651,7 @@ const _khorsheed_dsh_room_room_dismissRelay_result$schema = () => (_khorsheed_ds
466
651
  })]))
467
652
  let _khorsheed_dsh_room_room_getState_parameter_0$schema$value
468
653
  const _khorsheed_dsh_room_room_getState_parameter_0$schema = () => (_khorsheed_dsh_room_room_getState_parameter_0$schema$value ??= z.object({
469
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
654
+ 'sessionId': z.string().readonly().describe('Room session to replay.'),
470
655
  }))
471
656
  let _khorsheed_dsh_room_room_getState_result$schema$value
472
657
  const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_room_room_getState_result$schema$value ??= z.union([z.object({
@@ -475,19 +660,28 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
475
660
  'executions': z.array(z.object({
476
661
  'id': z.string().readonly(),
477
662
  'memberId': z.string().readonly().optional(),
478
- 'childSessionId': z.intersection(z.string(), z.unknown()).readonly().optional(),
663
+ 'childSessionId': z.string().readonly().optional(),
664
+ 'childTurn': z.number().readonly().optional().describe('The child session round the run reached, as recorded by its terminal run-state edge.'),
479
665
  'provider': z.string().readonly().optional(),
480
666
  'model': z.string().readonly().optional(),
481
667
  'effort': z.string().readonly().optional(),
482
668
  'tokens': z.number().readonly().optional(),
483
- 'runId': z.string().readonly().optional(),
669
+ 'usage': z.object({
670
+ 'inputTokens': z.number().readonly(),
671
+ 'outputTokens': z.number().readonly(),
672
+ 'cacheReadTokens': z.number().readonly().optional(),
673
+ 'cacheWriteTokens': z.number().readonly().optional(),
674
+ 'reasoningTokens': z.number().readonly().optional(),
675
+ }).readonly().optional(),
676
+ 'runId': z.string().readonly().optional().describe('Stable execution identity; legacy journals use startedAt.'),
484
677
  'member': z.string().readonly(),
485
- 'state': z.union([z.literal("running"), z.literal("done"), z.literal("cancelled"), z.literal("failed")]).readonly(),
678
+ 'state': z.union([z.literal("cancelled"), z.literal("failed"), z.literal("running"), z.literal("done")]).readonly(),
486
679
  'startedAt': z.number().readonly(),
487
680
  'elapsedMs': z.number().readonly().optional(),
488
- 'error': z.string().readonly().optional(),
681
+ 'error': z.string().readonly().optional().describe('Why the run failed (failed edges only), when the edge carried one.'),
489
682
  })).readonly().optional(),
490
683
  'plan': z.object({
684
+ 'status': z.union([z.literal("cancelled"), z.literal("running"), z.literal("completed"), z.literal("paused"), z.literal("draft")]),
491
685
  'stages': z.array(z.object({
492
686
  'id': z.string(),
493
687
  'title': z.string(),
@@ -496,7 +690,6 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
496
690
  'id': z.string(),
497
691
  'revision': z.number(),
498
692
  'objective': z.string(),
499
- 'status': z.union([z.literal("draft"), z.literal("running"), z.literal("cancelled"), z.literal("paused"), z.literal("completed")]),
500
693
  'reason': z.string().optional(),
501
694
  'budget': z.object({
502
695
  'maxParallel': z.number(),
@@ -518,12 +711,12 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
518
711
  'inputRefs': z.array(z.string()),
519
712
  'artifactPaths': z.array(z.string()),
520
713
  'dependsOn': z.array(z.string()),
521
- 'status': z.union([z.literal("running"), z.literal("cancelled"), z.literal("pending"), z.literal("failed"), z.literal("submitted"), z.literal("accepted")]),
714
+ 'status': z.union([z.literal("cancelled"), z.literal("failed"), z.literal("running"), z.literal("pending"), z.literal("accepted"), z.literal("submitted")]),
522
715
  'attempts': z.array(z.object({
523
716
  'id': z.string(),
524
717
  'deliveryId': z.string(),
525
718
  'number': z.number(),
526
- 'status': z.union([z.literal("running"), z.literal("cancelled"), z.literal("failed"), z.literal("rejected"), z.literal("queued"), z.literal("uncertain"), z.literal("submitted"), z.literal("accepted")]),
719
+ 'status': z.union([z.literal("cancelled"), z.literal("failed"), z.literal("running"), z.literal("rejected"), z.literal("accepted"), z.literal("queued"), z.literal("uncertain"), z.literal("submitted")]),
527
720
  'createdAt': z.number(),
528
721
  'startedAt': z.number().optional(),
529
722
  'settledAt': z.number().optional(),
@@ -557,8 +750,11 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
557
750
  'id': z.string().readonly(),
558
751
  'dispatchSeq': z.number().readonly(),
559
752
  'memberId': z.string().readonly(),
560
- 'status': z.union([z.literal("running"), z.literal("done"), z.literal("cancelled"), z.literal("failed"), z.literal("queued"), z.literal("uncertain")]).readonly(),
561
- 'origin': z.union([z.literal("human"), z.literal("coordinator"), z.literal("report"), z.literal("relay")]).readonly(),
753
+ 'status': z.union([z.literal("cancelled"), z.literal("failed"), z.literal("running"), z.literal("done"), z.literal("queued"), z.literal("uncertain"), z.literal("held")]).readonly().describe('`held`: a report the gate keeps for a later round (never run on its own).'),
754
+ 'origin': z.union([z.literal("human"), z.literal("coordinator"), z.literal("member"), z.literal("report"), z.literal("relay"), z.literal("help")]).readonly(),
755
+ 'replyTo': z.string().readonly().optional().describe('The member id this delivery\'s outcome is reported to, when any.'),
756
+ 'from': z.string().readonly().optional().describe('The sending member\'s id (coordinator/member origins).'),
757
+ 'kind': z.union([z.literal("task"), z.literal("notify")]).readonly().optional().describe('`task` or `notify` (member sends); absent on human and legacy dispatches.'),
562
758
  'text': z.string().readonly(),
563
759
  'error': z.string().readonly().optional(),
564
760
  'plan': z.union([z.undefined(), z.object({
@@ -566,6 +762,13 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
566
762
  'taskId': z.string().readonly().optional(),
567
763
  'attemptId': z.string().readonly().optional(),
568
764
  })]).readonly().optional(),
765
+ 'task': z.string().readonly().optional().describe('The task this delivery belongs to (see RoomDispatchEvent.task).'),
766
+ 'parent': z.string().readonly().optional().describe('The sender\'s own delivery this was sent from (the task tree\'s parent).'),
767
+ 'queuedAt': z.number().readonly().describe('Epoch ms: dispatched, admitted (first running edge), settled.'),
768
+ 'startedAt': z.number().readonly().optional(),
769
+ 'endedAt': z.number().readonly().optional(),
770
+ 'heldAt': z.number().readonly().optional().describe('Epoch ms the report gate held this report, and released it.'),
771
+ 'releasedAt': z.number().readonly().optional(),
569
772
  })).readonly().optional(),
570
773
  'coordinator': z.object({
571
774
  'version': z.literal(1).readonly(),
@@ -577,13 +780,16 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
577
780
  'members': z.array(z.object({
578
781
  'id': z.string().readonly().optional(),
579
782
  'name': z.string().readonly(),
580
- 'kind': z.union([z.literal("main-agent"), z.literal("cli")]).readonly(),
783
+ 'kind': z.union([z.literal("native"), z.literal("main-agent"), z.literal("cli")]).readonly(),
581
784
  'provider': z.string().readonly().optional(),
582
785
  'instructions': z.string().readonly().optional(),
786
+ 'role': z.string().readonly().optional().describe('Short public role shown to the other members (see {@link RoomMemberAddedEvent.role}).'),
787
+ 'preset': z.string().readonly().optional().describe('Native members: the host agent preset (see {@link RoomMemberAddedEvent.preset}).'),
583
788
  'invitedBy': z.union([z.literal("agent"), z.literal("human")]).readonly(),
584
- 'cwd': z.string().readonly().optional(),
585
- 'model': z.string().readonly().optional(),
586
- 'childSessionId': z.intersection(z.string(), z.unknown()).readonly().optional(),
789
+ 'cwd': z.string().readonly().optional().describe('Member-level working directory (roster record; not yet passed to the facade).'),
790
+ 'model': z.string().readonly().optional().describe('The member\'s intended model (roster record; the facade start\'s `model` option on the first dispatch).'),
791
+ 'effort': z.string().readonly().optional().describe('The member\'s intended reasoning effort (roster record; the facade start\'s `effort` option on the first dispatch).'),
792
+ 'childSessionId': z.string().readonly().optional(),
587
793
  })).readonly(),
588
794
  'relays': z.array(z.object({
589
795
  'id': z.string().readonly(),
@@ -592,25 +798,129 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
592
798
  'content': z.string().readonly(),
593
799
  'provenance': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => RoomJsonValueRemoteCodec$schema())), z.record(z.string(), z.lazy(() => RoomJsonValueRemoteCodec$schema()))])).readonly().optional(),
594
800
  'state': z.union([z.literal("pending"), z.literal("confirmed"), z.literal("dismissed"), z.literal("sent")]).readonly(),
801
+ 'reason': z.union([z.literal("paused"), z.literal("confirm"), z.literal("hop-limit")]).readonly().optional(),
802
+ 'intent': z.object({
803
+ 'origin': z.union([z.literal("coordinator"), z.literal("member"), z.literal("report"), z.literal("help")]).readonly(),
804
+ 'help': z.object({
805
+ 'id': z.string().readonly().describe('The thread id in the asking room.'),
806
+ 'room': z.string().readonly(),
807
+ 'roomTitle': z.string().readonly(),
808
+ 'from': z.string().readonly().describe('The asking member\'s name.'),
809
+ }).readonly().optional().describe('A help request from another room (origin `help`): its final reply goes back there.'),
810
+ 'from': z.string().readonly().optional(),
811
+ 'kind': z.union([z.literal("task"), z.literal("notify")]).readonly().optional(),
812
+ 'hop': z.number().readonly(),
813
+ 'inReplyTo': z.number().readonly().optional(),
814
+ 'replyTo': z.string().readonly().optional(),
815
+ 'reportFor': z.string().readonly().optional(),
816
+ 'plan': z.object({
817
+ 'goalId': z.string().readonly(),
818
+ }).readonly().optional(),
819
+ 'note': z.string().readonly().optional(),
820
+ 'task': z.string().readonly().optional(),
821
+ 'parent': z.string().readonly().optional(),
822
+ }).readonly().optional(),
823
+ })).readonly(),
824
+ 'approvals': z.array(z.object({
825
+ 'id': z.string().readonly(),
826
+ 'member': z.string().readonly(),
827
+ 'tool': z.string().readonly(),
828
+ 'reason': z.string().readonly().optional(),
829
+ 'time': z.number().readonly(),
830
+ })).readonly().optional().describe('Members\' tool approvals still waiting for the human.'),
831
+ 'questions': z.array(z.object({
832
+ 'id': z.string().readonly(),
833
+ 'member': z.string().readonly(),
834
+ 'questions': z.array(z.object({
835
+ 'id': z.string().readonly(),
836
+ 'question': z.string().readonly(),
837
+ 'header': z.string().readonly().optional(),
838
+ 'options': z.array(z.object({
839
+ 'label': z.string().readonly(),
840
+ 'description': z.string().readonly().optional(),
841
+ })).readonly().optional(),
842
+ 'multiSelect': z.boolean().readonly().optional(),
595
843
  })).readonly(),
844
+ 'time': z.number().readonly(),
845
+ })).readonly().optional().describe('Members\' questions still waiting for the human.'),
596
846
  'tasks': z.array(z.object({
597
- 'deliveryId': z.string().readonly().optional(),
847
+ 'deliveryId': z.string().readonly().optional().describe('Only this delivery may automatically settle this legacy chat task row.'),
598
848
  'id': z.string().readonly(),
599
849
  'member': z.string().readonly(),
600
850
  'title': z.string().readonly(),
601
- 'status': z.union([z.literal("done"), z.literal("cancelled"), z.literal("pending"), z.literal("failed"), z.literal("in_progress")]).readonly(),
602
- 'blockedBy': z.string().readonly().optional(),
603
- 'updatedAt': z.number().readonly(),
851
+ 'status': z.union([z.literal("cancelled"), z.literal("failed"), z.literal("pending"), z.literal("in_progress"), z.literal("done")]).readonly(),
852
+ 'blockedBy': z.string().readonly().optional().describe('The member this task waits on (display only; never dispatches anything).'),
853
+ 'updatedAt': z.number().readonly().describe('Epoch ms of the task\'s latest journal event (add or status update): the goal card\'s "latest advance" ordering and the row\'s relative time.'),
604
854
  })).readonly(),
605
855
  'runs': z.array(z.object({
606
- 'runId': z.string().readonly().optional(),
856
+ 'runId': z.string().readonly().optional().describe('Stable execution identity; legacy journals use startedAt.'),
607
857
  'member': z.string().readonly(),
608
- 'state': z.union([z.literal("running"), z.literal("done"), z.literal("cancelled"), z.literal("failed")]).readonly(),
858
+ 'state': z.union([z.literal("cancelled"), z.literal("failed"), z.literal("running"), z.literal("done")]).readonly(),
609
859
  'startedAt': z.number().readonly(),
610
860
  'elapsedMs': z.number().readonly().optional(),
861
+ 'error': z.string().readonly().optional().describe('Why the run failed (failed edges only), when the edge carried one.'),
862
+ })).readonly(),
863
+ 'goal': z.string().readonly().optional().describe('The current goal text (the latest `room/goal` event), undefined when unset.'),
864
+ 'latestReplySeq': z.number().readonly().optional().describe('Seq of the newest member speech addressed to the room (no `reportedTo`): the reply the human is reading, shown unfolded.'),
865
+ 'latestSpeechSeq': z.number().readonly().optional().describe('Seq of the newest member speech of any kind: its action row stays shown, older rows reveal on hover.'),
866
+ 'settings': z.object({
867
+ 'memberMessages': z.union([z.literal("free"), z.literal("confirm")]).readonly(),
868
+ 'hopLimit': z.number().readonly(),
869
+ 'paused': z.boolean().readonly(),
870
+ 'reportTiming': z.union([z.literal("judge"), z.literal("each")]).readonly(),
871
+ 'autoTaskFiling': z.boolean().readonly(),
872
+ 'reportThreshold': z.number().readonly(),
873
+ 'reportWaitMinutes': z.number().readonly(),
874
+ 'helpReminderMinutes': z.number().readonly(),
875
+ }).readonly().optional().describe('Collaboration settings (defaults when never set).'),
876
+ 'jobs': z.array(z.object({
877
+ 'id': z.string().readonly().describe('Root message id (or the root human dispatch\'s id).'),
878
+ 'number': z.number().readonly().describe('1-based ordinal in the room, for 「任务 N」 and the coordinator\'s `task` argument.'),
879
+ 'title': z.string().readonly(),
880
+ 'messages': z.array(z.object({
881
+ 'id': z.string().readonly(),
882
+ 'time': z.number().readonly(),
883
+ 'text': z.string().readonly(),
884
+ 'by': z.union([z.literal("model"), z.literal("human"), z.literal("coordinator")]).readonly().optional(),
885
+ 'probability': z.number().readonly().optional(),
886
+ })).readonly(),
887
+ 'status': z.union([z.literal("running"), z.literal("stopped"), z.literal("done"), z.literal("attention")]).readonly(),
888
+ 'startedAt': z.number().readonly(),
889
+ 'endedAt': z.number().readonly().optional().describe('Last settlement, when nothing is open any more.'),
890
+ 'deliveries': z.array(z.string()).readonly().describe('Delivery ids, in dispatch order.'),
891
+ 'members': z.array(z.string()).readonly().describe('Member ids that took part.'),
892
+ 'goalId': z.string().readonly().optional().describe('The formal goal (room_plan) this task\'s work belongs to, when any.'),
893
+ })).readonly().optional().describe('Tasks, newest first (absent in rooms that never dispatched work).'),
894
+ 'helps': z.array(z.object({
895
+ 'state': z.union([z.literal("failed"), z.literal("running"), z.literal("queued"), z.literal("asking"), z.literal("replied")]).readonly(),
896
+ 'since': z.number().readonly().describe('When the thread entered its current state (epoch ms).'),
611
897
  'error': z.string().readonly().optional(),
898
+ 'messages': z.array(z.object({
899
+ 'help': z.string().readonly(),
900
+ 'kind': z.union([z.literal("question"), z.literal("reply"), z.literal("message")]).readonly().describe('`question`: the helper asks the asker. `reply`: the helper\'s answer (its final reply plus a short handoff). `message`: the asker writes again (an answer to a question, or a follow-up).'),
901
+ 'text': z.string().readonly(),
902
+ 'handoff': z.string().readonly().optional().describe('The helper\'s short handoff note on a reply.'),
903
+ 'fallback': z.literal(true).readonly().optional().describe('A reply taken from the helper\'s last answer because it never called the reply tool.'),
904
+ 'time': z.number().readonly(),
612
905
  })).readonly(),
613
- 'goal': z.string().readonly().optional(),
906
+ 'time': z.number().readonly(),
907
+ 'id': z.string().readonly(),
908
+ 'from': z.string().readonly().describe('The asking member\'s id and name.'),
909
+ 'fromName': z.string().readonly(),
910
+ 'target': z.object({
911
+ 'sessionId': z.string().readonly(),
912
+ 'title': z.string().readonly(),
913
+ 'room': z.literal(true).readonly().optional(),
914
+ 'member': z.string().readonly().optional(),
915
+ }).readonly().describe('The helper\'s session. A room target (`room`) routes through that room: to the named `member`, else to its coordinator.'),
916
+ 'text': z.string().readonly().describe('The request as the helper reads it.'),
917
+ })).readonly().optional().describe('Cross-session help threads this room opened (absent when none).'),
918
+ 'linked': z.array(z.object({
919
+ 'sessionId': z.string().readonly(),
920
+ 'title': z.string().readonly(),
921
+ 'time': z.number().readonly(),
922
+ })).readonly().optional().describe('Outside sessions kept on the member list (absent when none).'),
923
+ 'helpNudgesDismissed': z.array(z.string()).readonly().optional().describe('Sessions whose 加入房间成员 hint was dismissed (absent when none).'),
614
924
  }).readonly(),
615
925
  }), z.object({
616
926
  'ok': z.literal(false).readonly(),
@@ -649,6 +959,18 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
649
959
  'code': z.literal("member-not-found").readonly(),
650
960
  }), z.object({
651
961
  'code': z.literal("empty-text").readonly(),
962
+ }), z.object({
963
+ 'code': z.literal("role-too-long").readonly(),
964
+ }), z.object({
965
+ 'code': z.literal("invalid-settings").readonly(),
966
+ }), z.object({
967
+ 'code': z.literal("self-message").readonly(),
968
+ }), z.object({
969
+ 'code': z.literal("unknown-task").readonly(),
970
+ }), z.object({
971
+ 'code': z.literal("unknown-preset").readonly(),
972
+ 'preset': z.string().readonly(),
973
+ 'available': z.array(z.string()).readonly(),
652
974
  }), z.object({
653
975
  'code': z.literal("nothing-to-update").readonly(),
654
976
  }), z.object({
@@ -666,6 +988,10 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
666
988
  'code': z.literal("relay-not-found").readonly(),
667
989
  }), z.object({
668
990
  'code': z.literal("relay-not-pending").readonly(),
991
+ }), z.object({
992
+ 'code': z.literal("approval-not-pending").readonly(),
993
+ }), z.object({
994
+ 'code': z.literal("question-not-pending").readonly(),
669
995
  }), z.object({
670
996
  'code': z.literal("main-member").readonly(),
671
997
  }), z.object({
@@ -679,20 +1005,27 @@ const _khorsheed_dsh_room_room_getState_result$schema = () => (_khorsheed_dsh_ro
679
1005
  })]))
680
1006
  let _khorsheed_dsh_room_room_invite_parameter_0$schema$value
681
1007
  const _khorsheed_dsh_room_room_invite_parameter_0$schema = () => (_khorsheed_dsh_room_room_invite_parameter_0$schema$value ??= z.object({
682
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
683
- 'provider': z.string().readonly(),
684
- 'name': z.string().readonly(),
685
- 'instructions': z.string().readonly().optional(),
686
- 'cwd': z.string().readonly().optional(),
687
- 'firstTask': z.string().readonly().optional(),
688
- 'model': z.string().readonly().optional(),
1008
+ 'sessionId': z.string().readonly().describe('Room session.'),
1009
+ 'kind': z.union([z.literal("native"), z.literal("cli")]).readonly().optional().describe('`cli` (default): an external CLI through the local-agent family. `native`: a DSH child agent in this host process, composing `preset`.'),
1010
+ 'preset': z.string().readonly().optional().describe('The member\'s mode: the host agent preset id. A native member composes it (omitted = the host default); a CLI member reaches its plugin tools through the bridge (omitted = no mode).'),
1011
+ 'inheritPreset': z.boolean().readonly().optional().describe('With no `preset`: take the room session\'s own mode (the coordinator\'s invite default).'),
1012
+ 'provider': z.string().readonly().describe('CLI provider id (non-blank).'),
1013
+ 'name': z.string().readonly().describe('Addressing/display name: unique in the room, no whitespace, no `@`.'),
1014
+ 'instructions': z.string().readonly().optional().describe('Role instructions, prepended to the member\'s first dispatch.'),
1015
+ 'role': z.string().readonly().optional().describe('Short public role (≤ 30 chars); blank/omitted = none.'),
1016
+ 'cwd': z.string().readonly().optional().describe('Member-level working directory (empty/omitted = inherits the room session\'s cwd). Recorded on the roster; not yet passed to the delegation facade (family need R2 pending).'),
1017
+ 'firstTask': z.string().readonly().optional().describe('Optional first task, dispatched to the member as soon as it joins.'),
1018
+ 'note': z.string().readonly().optional().describe('What the inviter waits for when the first task reports (see RoomDispatchEvent.note).'),
1019
+ 'model': z.string().readonly().optional().describe('The delegation\'s model (blank/omitted = follow the harness default). Applies to local-agent harness providers only: it lands as the facade `start` call\'s `model` option, bound at spawn for exec and live alike.'),
1020
+ 'effort': z.string().readonly().optional().describe('The delegation\'s reasoning effort (blank/omitted = follow the harness default): the facade `start` call\'s `effort` option, bound at spawn alongside the model.'),
689
1021
  }))
690
1022
  let _khorsheed_dsh_room_room_invite_result$schema$value
691
1023
  const _khorsheed_dsh_room_room_invite_result$schema = () => (_khorsheed_dsh_room_room_invite_result$schema$value ??= z.union([z.object({
692
1024
  'ok': z.literal(true).readonly(),
693
1025
  'value': z.object({
694
- 'name': z.string().readonly(),
695
- 'pendingFirstTask': z.boolean().readonly(),
1026
+ 'name': z.string().readonly().describe('The accepted member name.'),
1027
+ 'pendingFirstTask': z.boolean().readonly().describe('True when a first task was supplied and dispatched with the invitation.'),
1028
+ 'preset': z.string().readonly().optional().describe('The member\'s mode (preset id), when it has one.'),
696
1029
  }).readonly(),
697
1030
  }), z.object({
698
1031
  'ok': z.literal(false).readonly(),
@@ -731,6 +1064,18 @@ const _khorsheed_dsh_room_room_invite_result$schema = () => (_khorsheed_dsh_room
731
1064
  'code': z.literal("member-not-found").readonly(),
732
1065
  }), z.object({
733
1066
  'code': z.literal("empty-text").readonly(),
1067
+ }), z.object({
1068
+ 'code': z.literal("role-too-long").readonly(),
1069
+ }), z.object({
1070
+ 'code': z.literal("invalid-settings").readonly(),
1071
+ }), z.object({
1072
+ 'code': z.literal("self-message").readonly(),
1073
+ }), z.object({
1074
+ 'code': z.literal("unknown-task").readonly(),
1075
+ }), z.object({
1076
+ 'code': z.literal("unknown-preset").readonly(),
1077
+ 'preset': z.string().readonly(),
1078
+ 'available': z.array(z.string()).readonly(),
734
1079
  }), z.object({
735
1080
  'code': z.literal("nothing-to-update").readonly(),
736
1081
  }), z.object({
@@ -748,6 +1093,10 @@ const _khorsheed_dsh_room_room_invite_result$schema = () => (_khorsheed_dsh_room
748
1093
  'code': z.literal("relay-not-found").readonly(),
749
1094
  }), z.object({
750
1095
  'code': z.literal("relay-not-pending").readonly(),
1096
+ }), z.object({
1097
+ 'code': z.literal("approval-not-pending").readonly(),
1098
+ }), z.object({
1099
+ 'code': z.literal("question-not-pending").readonly(),
751
1100
  }), z.object({
752
1101
  'code': z.literal("main-member").readonly(),
753
1102
  }), z.object({
@@ -761,51 +1110,19 @@ const _khorsheed_dsh_room_room_invite_result$schema = () => (_khorsheed_dsh_room
761
1110
  })]))
762
1111
  let _khorsheed_dsh_room_room_isRoom_parameter_0$schema$value
763
1112
  const _khorsheed_dsh_room_room_isRoom_parameter_0$schema = () => (_khorsheed_dsh_room_room_isRoom_parameter_0$schema$value ??= z.object({
764
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
1113
+ 'sessionId': z.string().readonly().describe('Session to probe.'),
765
1114
  }))
766
1115
  let _khorsheed_dsh_room_room_isRoom_result$schema$value
767
1116
  const _khorsheed_dsh_room_room_isRoom_result$schema = () => (_khorsheed_dsh_room_room_isRoom_result$schema$value ??= z.boolean())
768
- let _khorsheed_dsh_room_room_listProviders_parameter_0$schema$value
769
- const _khorsheed_dsh_room_room_listProviders_parameter_0$schema = () => (_khorsheed_dsh_room_room_listProviders_parameter_0$schema$value ??= z.object({}))
770
- let _khorsheed_dsh_room_room_listProviders_result$schema$value
771
- const _khorsheed_dsh_room_room_listProviders_result$schema = () => (_khorsheed_dsh_room_room_listProviders_result$schema$value ??= z.object({
772
- 'localAgentAvailable': z.boolean().readonly(),
773
- 'providers': z.array(z.object({
774
- 'provider': z.string().readonly(),
775
- 'displayName': z.string().readonly(),
776
- 'harness': z.string().readonly().optional(),
777
- 'authenticated': z.boolean().readonly(),
778
- })).readonly(),
779
- }))
780
- let _khorsheed_dsh_room_room_planCommand_parameter_0$schema$value
781
- const _khorsheed_dsh_room_room_planCommand_parameter_0$schema = () => (_khorsheed_dsh_room_room_planCommand_parameter_0$schema$value ??= z.object({
782
- 'sessionId': z.intersection(z.string(), z.unknown()),
783
- 'command': z.string(),
784
- }))
785
- let _khorsheed_dsh_room_room_planCommand_result$schema$value
786
- const _khorsheed_dsh_room_room_planCommand_result$schema = () => (_khorsheed_dsh_room_room_planCommand_result$schema$value ??= z.union([z.object({
787
- 'ok': z.literal(true),
788
- }), z.object({
789
- 'ok': z.literal(false),
790
- 'message': z.string(),
791
- })]))
792
- let _khorsheed_dsh_room_room_postMessage_parameter_0$schema$value
793
- const _khorsheed_dsh_room_room_postMessage_parameter_0$schema = () => (_khorsheed_dsh_room_room_postMessage_parameter_0$schema$value ??= z.object({
794
- 'requestId': z.string().readonly().optional(),
795
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
796
- 'text': z.string().readonly(),
797
- 'targets': z.array(z.string()).readonly().optional(),
1117
+ let _khorsheed_dsh_room_room_linkSession_parameter_0$schema$value
1118
+ const _khorsheed_dsh_room_room_linkSession_parameter_0$schema = () => (_khorsheed_dsh_room_room_linkSession_parameter_0$schema$value ??= z.object({
1119
+ 'sessionId': z.string().readonly(),
1120
+ 'target': z.string().readonly().describe('The outside session.'),
1121
+ 'title': z.string().readonly().optional().describe('Its title (link only).'),
798
1122
  }))
799
- let _khorsheed_dsh_room_room_postMessage_result$schema$value
800
- const _khorsheed_dsh_room_room_postMessage_result$schema = () => (_khorsheed_dsh_room_room_postMessage_result$schema$value ??= z.union([z.object({
1123
+ let _khorsheed_dsh_room_room_linkSession_result$schema$value
1124
+ const _khorsheed_dsh_room_room_linkSession_result$schema = () => (_khorsheed_dsh_room_room_linkSession_result$schema$value ??= z.union([z.object({
801
1125
  'ok': z.literal(true).readonly(),
802
- 'value': z.object({
803
- 'parsed': z.object({
804
- 'targets': z.array(z.string()).readonly(),
805
- 'text': z.string().readonly(),
806
- }).readonly(),
807
- 'seq': z.number().readonly(),
808
- }).readonly(),
809
1126
  }), z.object({
810
1127
  'ok': z.literal(false).readonly(),
811
1128
  'error': z.union([z.object({
@@ -843,6 +1160,18 @@ const _khorsheed_dsh_room_room_postMessage_result$schema = () => (_khorsheed_dsh
843
1160
  'code': z.literal("member-not-found").readonly(),
844
1161
  }), z.object({
845
1162
  'code': z.literal("empty-text").readonly(),
1163
+ }), z.object({
1164
+ 'code': z.literal("role-too-long").readonly(),
1165
+ }), z.object({
1166
+ 'code': z.literal("invalid-settings").readonly(),
1167
+ }), z.object({
1168
+ 'code': z.literal("self-message").readonly(),
1169
+ }), z.object({
1170
+ 'code': z.literal("unknown-task").readonly(),
1171
+ }), z.object({
1172
+ 'code': z.literal("unknown-preset").readonly(),
1173
+ 'preset': z.string().readonly(),
1174
+ 'available': z.array(z.string()).readonly(),
846
1175
  }), z.object({
847
1176
  'code': z.literal("nothing-to-update").readonly(),
848
1177
  }), z.object({
@@ -860,6 +1189,10 @@ const _khorsheed_dsh_room_room_postMessage_result$schema = () => (_khorsheed_dsh
860
1189
  'code': z.literal("relay-not-found").readonly(),
861
1190
  }), z.object({
862
1191
  'code': z.literal("relay-not-pending").readonly(),
1192
+ }), z.object({
1193
+ 'code': z.literal("approval-not-pending").readonly(),
1194
+ }), z.object({
1195
+ 'code': z.literal("question-not-pending").readonly(),
863
1196
  }), z.object({
864
1197
  'code': z.literal("main-member").readonly(),
865
1198
  }), z.object({
@@ -871,19 +1204,152 @@ const _khorsheed_dsh_room_room_postMessage_result$schema = () => (_khorsheed_dsh
871
1204
  'message': z.string().readonly(),
872
1205
  })]).readonly(),
873
1206
  })]))
874
- let _khorsheed_dsh_room_room_prepareMember_parameter_0$schema$value
875
- const _khorsheed_dsh_room_room_prepareMember_parameter_0$schema = () => (_khorsheed_dsh_room_room_prepareMember_parameter_0$schema$value ??= z.object({
876
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
877
- 'name': z.string().readonly(),
1207
+ let _khorsheed_dsh_room_room_listProviders_parameter_0$schema$value
1208
+ const _khorsheed_dsh_room_room_listProviders_parameter_0$schema = () => (_khorsheed_dsh_room_room_listProviders_parameter_0$schema$value ??= z.object({
1209
+ 'sessionId': z.string().readonly().optional().describe('The session the invite is for: the result then carries its mode (`sessionPreset`).'),
878
1210
  }))
879
- let _khorsheed_dsh_room_room_prepareMember_result$schema$value
880
- const _khorsheed_dsh_room_room_prepareMember_result$schema = () => (_khorsheed_dsh_room_room_prepareMember_result$schema$value ??= z.union([z.object({
881
- 'ok': z.literal(true).readonly(),
882
- 'value': z.object({
883
- 'childSessionId': z.string().readonly(),
884
- }).readonly(),
1211
+ let _khorsheed_dsh_room_room_listProviders_result$schema$value
1212
+ const _khorsheed_dsh_room_room_listProviders_result$schema = () => (_khorsheed_dsh_room_room_listProviders_result$schema$value ??= z.object({
1213
+ 'localAgentAvailable': z.boolean().readonly().describe('False when the local-agent delegation facade is absent (CLI members undispatchable).'),
1214
+ 'providers': z.array(z.object({
1215
+ 'provider': z.string().readonly().describe('The provider id invite/dispatch uses (the harness\'s delegationProvider).'),
1216
+ 'displayName': z.string().readonly(),
1217
+ 'harness': z.string().readonly().optional().describe('The roster harness name — the lookup key for the localAgentGateway `harnessModel` read (the invite dialog\'s model picker). Absent only on a pre-model-broker family core; the dialog then serves a plain text input.'),
1218
+ 'authenticated': z.boolean().readonly().describe('Whether the harness\'s scoped home holds usable credentials.'),
1219
+ })).readonly(),
1220
+ 'presets': z.array(z.object({
1221
+ 'id': z.string().readonly(),
1222
+ 'name': z.string().readonly().optional(),
1223
+ 'description': z.string().readonly().optional(),
1224
+ 'isDefault': z.boolean().readonly(),
1225
+ 'broken': z.string().readonly().optional().describe('Why the preset cannot be composed right now.'),
1226
+ })).readonly().optional().describe('The host\'s agent presets a native DSH member may compose; absent when the composition mounts no preset registry (native members then run the plain composition).'),
1227
+ 'sessionPreset': z.string().readonly().optional().describe('The requested session\'s own mode (preset id), when known: the dialog\'s default mode.'),
1228
+ }))
1229
+ let _khorsheed_dsh_room_room_planCommand_parameter_0$schema$value
1230
+ const _khorsheed_dsh_room_room_planCommand_parameter_0$schema = () => (_khorsheed_dsh_room_room_planCommand_parameter_0$schema$value ??= z.object({
1231
+ 'sessionId': z.string(),
1232
+ 'command': z.string(),
1233
+ }))
1234
+ let _khorsheed_dsh_room_room_planCommand_result$schema$value
1235
+ const _khorsheed_dsh_room_room_planCommand_result$schema = () => (_khorsheed_dsh_room_room_planCommand_result$schema$value ??= z.union([z.object({
1236
+ 'ok': z.literal(true),
885
1237
  }), z.object({
886
- 'ok': z.literal(false).readonly(),
1238
+ 'ok': z.literal(false),
1239
+ 'message': z.string(),
1240
+ })]))
1241
+ let _khorsheed_dsh_room_room_postMessage_parameter_0$schema$value
1242
+ const _khorsheed_dsh_room_room_postMessage_parameter_0$schema = () => (_khorsheed_dsh_room_room_postMessage_parameter_0$schema$value ??= z.object({
1243
+ 'requestId': z.string().readonly().optional(),
1244
+ 'sessionId': z.string().readonly().describe('Room session.'),
1245
+ 'text': z.string().readonly().describe('Raw composer text: leading `@name` tokens address members.'),
1246
+ 'targets': z.array(z.string()).readonly().optional().describe('Menu-picked addressees (the room composer\'s mention menu records a pick as explicit addressing even when the `@name` sits mid-sentence). Unioned with the parsed leading tokens and validated against the roster the same way; the text itself is dispatched verbatim either way.'),
1247
+ 'task': z.string().readonly().optional().describe('The composer\'s task tag: `new` or a task root id (see RoomSetTaskHintRequest).'),
1248
+ }))
1249
+ let _khorsheed_dsh_room_room_postMessage_result$schema$value
1250
+ const _khorsheed_dsh_room_room_postMessage_result$schema = () => (_khorsheed_dsh_room_room_postMessage_result$schema$value ??= z.union([z.object({
1251
+ 'ok': z.literal(true).readonly(),
1252
+ 'value': z.object({
1253
+ 'parsed': z.object({
1254
+ 'targets': z.array(z.string()).readonly().describe('Addressed members (never empty — a bare message is a `no-targets` rejection).'),
1255
+ 'text': z.string().readonly().describe('The message body with the leading'),
1256
+ }).readonly(),
1257
+ 'seq': z.number().readonly().describe('Seq of the appended journal event.'),
1258
+ }).readonly(),
1259
+ }), z.object({
1260
+ 'ok': z.literal(false).readonly(),
1261
+ 'error': z.union([z.object({
1262
+ 'code': z.literal("request-conflict").readonly(),
1263
+ }), z.object({
1264
+ 'code': z.literal("member-cwd-bound").readonly(),
1265
+ }), z.object({
1266
+ 'code': z.literal("not-coordinator").readonly(),
1267
+ }), z.object({
1268
+ 'code': z.literal("delivery-not-uncertain").readonly(),
1269
+ }), z.object({
1270
+ 'code': z.literal("plan-reconciliation-required").readonly(),
1271
+ }), z.object({
1272
+ 'code': z.literal("coordinator-busy").readonly(),
1273
+ }), z.object({
1274
+ 'code': z.literal("coordinator-not-ready").readonly(),
1275
+ 'message': z.string().readonly(),
1276
+ }), z.object({
1277
+ 'code': z.literal("coordinator-conflict").readonly(),
1278
+ }), z.object({
1279
+ 'code': z.literal("active-coordinator").readonly(),
1280
+ }), z.object({
1281
+ 'code': z.literal("configuration-owned-by-core").readonly(),
1282
+ }), z.object({
1283
+ 'code': z.literal("session-not-found").readonly(),
1284
+ }), z.object({
1285
+ 'code': z.literal("not-a-room").readonly(),
1286
+ }), z.object({
1287
+ 'code': z.literal("invalid-name").readonly(),
1288
+ }), z.object({
1289
+ 'code': z.literal("duplicate-name").readonly(),
1290
+ }), z.object({
1291
+ 'code': z.literal("empty-provider").readonly(),
1292
+ }), z.object({
1293
+ 'code': z.literal("member-not-found").readonly(),
1294
+ }), z.object({
1295
+ 'code': z.literal("empty-text").readonly(),
1296
+ }), z.object({
1297
+ 'code': z.literal("role-too-long").readonly(),
1298
+ }), z.object({
1299
+ 'code': z.literal("invalid-settings").readonly(),
1300
+ }), z.object({
1301
+ 'code': z.literal("self-message").readonly(),
1302
+ }), z.object({
1303
+ 'code': z.literal("unknown-task").readonly(),
1304
+ }), z.object({
1305
+ 'code': z.literal("unknown-preset").readonly(),
1306
+ 'preset': z.string().readonly(),
1307
+ 'available': z.array(z.string()).readonly(),
1308
+ }), z.object({
1309
+ 'code': z.literal("nothing-to-update").readonly(),
1310
+ }), z.object({
1311
+ 'code': z.literal("local-agent-unavailable").readonly(),
1312
+ }), z.object({
1313
+ 'code': z.literal("unknown-provider").readonly(),
1314
+ 'provider': z.string().readonly(),
1315
+ 'available': z.array(z.string()).readonly(),
1316
+ }), z.object({
1317
+ 'code': z.literal("unknown-targets").readonly(),
1318
+ 'names': z.array(z.string()).readonly(),
1319
+ }), z.object({
1320
+ 'code': z.literal("no-targets").readonly(),
1321
+ }), z.object({
1322
+ 'code': z.literal("relay-not-found").readonly(),
1323
+ }), z.object({
1324
+ 'code': z.literal("relay-not-pending").readonly(),
1325
+ }), z.object({
1326
+ 'code': z.literal("approval-not-pending").readonly(),
1327
+ }), z.object({
1328
+ 'code': z.literal("question-not-pending").readonly(),
1329
+ }), z.object({
1330
+ 'code': z.literal("main-member").readonly(),
1331
+ }), z.object({
1332
+ 'code': z.literal("task-not-found").readonly(),
1333
+ }), z.object({
1334
+ 'code': z.literal("task-closed").readonly(),
1335
+ }), z.object({
1336
+ 'code': z.literal("resume-failed").readonly(),
1337
+ 'message': z.string().readonly(),
1338
+ })]).readonly(),
1339
+ })]))
1340
+ let _khorsheed_dsh_room_room_prepareMember_parameter_0$schema$value
1341
+ const _khorsheed_dsh_room_room_prepareMember_parameter_0$schema = () => (_khorsheed_dsh_room_room_prepareMember_parameter_0$schema$value ??= z.object({
1342
+ 'sessionId': z.string().readonly(),
1343
+ 'name': z.string().readonly(),
1344
+ }))
1345
+ let _khorsheed_dsh_room_room_prepareMember_result$schema$value
1346
+ const _khorsheed_dsh_room_room_prepareMember_result$schema = () => (_khorsheed_dsh_room_room_prepareMember_result$schema$value ??= z.union([z.object({
1347
+ 'ok': z.literal(true).readonly(),
1348
+ 'value': z.object({
1349
+ 'childSessionId': z.string().readonly(),
1350
+ }).readonly(),
1351
+ }), z.object({
1352
+ 'ok': z.literal(false).readonly(),
887
1353
  'error': z.union([z.object({
888
1354
  'code': z.literal("request-conflict").readonly(),
889
1355
  }), z.object({
@@ -919,6 +1385,18 @@ const _khorsheed_dsh_room_room_prepareMember_result$schema = () => (_khorsheed_d
919
1385
  'code': z.literal("member-not-found").readonly(),
920
1386
  }), z.object({
921
1387
  'code': z.literal("empty-text").readonly(),
1388
+ }), z.object({
1389
+ 'code': z.literal("role-too-long").readonly(),
1390
+ }), z.object({
1391
+ 'code': z.literal("invalid-settings").readonly(),
1392
+ }), z.object({
1393
+ 'code': z.literal("self-message").readonly(),
1394
+ }), z.object({
1395
+ 'code': z.literal("unknown-task").readonly(),
1396
+ }), z.object({
1397
+ 'code': z.literal("unknown-preset").readonly(),
1398
+ 'preset': z.string().readonly(),
1399
+ 'available': z.array(z.string()).readonly(),
922
1400
  }), z.object({
923
1401
  'code': z.literal("nothing-to-update").readonly(),
924
1402
  }), z.object({
@@ -936,6 +1414,10 @@ const _khorsheed_dsh_room_room_prepareMember_result$schema = () => (_khorsheed_d
936
1414
  'code': z.literal("relay-not-found").readonly(),
937
1415
  }), z.object({
938
1416
  'code': z.literal("relay-not-pending").readonly(),
1417
+ }), z.object({
1418
+ 'code': z.literal("approval-not-pending").readonly(),
1419
+ }), z.object({
1420
+ 'code': z.literal("question-not-pending").readonly(),
939
1421
  }), z.object({
940
1422
  'code': z.literal("main-member").readonly(),
941
1423
  }), z.object({
@@ -949,9 +1431,9 @@ const _khorsheed_dsh_room_room_prepareMember_result$schema = () => (_khorsheed_d
949
1431
  })]))
950
1432
  let _khorsheed_dsh_room_room_reconcileDelivery_parameter_0$schema$value
951
1433
  const _khorsheed_dsh_room_room_reconcileDelivery_parameter_0$schema = () => (_khorsheed_dsh_room_room_reconcileDelivery_parameter_0$schema$value ??= z.object({
952
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
1434
+ 'sessionId': z.string().readonly(),
953
1435
  'deliveryId': z.string().readonly(),
954
- 'outcome': z.union([z.literal("done"), z.literal("cancelled")]).readonly(),
1436
+ 'outcome': z.union([z.literal("cancelled"), z.literal("done")]).readonly(),
955
1437
  'evidence': z.string().readonly(),
956
1438
  }))
957
1439
  let _khorsheed_dsh_room_room_reconcileDelivery_result$schema$value
@@ -994,6 +1476,18 @@ const _khorsheed_dsh_room_room_reconcileDelivery_result$schema = () => (_khorshe
994
1476
  'code': z.literal("member-not-found").readonly(),
995
1477
  }), z.object({
996
1478
  'code': z.literal("empty-text").readonly(),
1479
+ }), z.object({
1480
+ 'code': z.literal("role-too-long").readonly(),
1481
+ }), z.object({
1482
+ 'code': z.literal("invalid-settings").readonly(),
1483
+ }), z.object({
1484
+ 'code': z.literal("self-message").readonly(),
1485
+ }), z.object({
1486
+ 'code': z.literal("unknown-task").readonly(),
1487
+ }), z.object({
1488
+ 'code': z.literal("unknown-preset").readonly(),
1489
+ 'preset': z.string().readonly(),
1490
+ 'available': z.array(z.string()).readonly(),
997
1491
  }), z.object({
998
1492
  'code': z.literal("nothing-to-update").readonly(),
999
1493
  }), z.object({
@@ -1011,6 +1505,10 @@ const _khorsheed_dsh_room_room_reconcileDelivery_result$schema = () => (_khorshe
1011
1505
  'code': z.literal("relay-not-found").readonly(),
1012
1506
  }), z.object({
1013
1507
  'code': z.literal("relay-not-pending").readonly(),
1508
+ }), z.object({
1509
+ 'code': z.literal("approval-not-pending").readonly(),
1510
+ }), z.object({
1511
+ 'code': z.literal("question-not-pending").readonly(),
1014
1512
  }), z.object({
1015
1513
  'code': z.literal("main-member").readonly(),
1016
1514
  }), z.object({
@@ -1022,16 +1520,16 @@ const _khorsheed_dsh_room_room_reconcileDelivery_result$schema = () => (_khorshe
1022
1520
  'message': z.string().readonly(),
1023
1521
  })]).readonly(),
1024
1522
  })]))
1025
- let _khorsheed_dsh_room_room_removeMember_parameter_0$schema$value
1026
- const _khorsheed_dsh_room_room_removeMember_parameter_0$schema = () => (_khorsheed_dsh_room_room_removeMember_parameter_0$schema$value ??= z.object({
1027
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
1523
+ let _khorsheed_dsh_room_room_releaseReports_parameter_0$schema$value
1524
+ const _khorsheed_dsh_room_room_releaseReports_parameter_0$schema = () => (_khorsheed_dsh_room_room_releaseReports_parameter_0$schema$value ??= z.object({
1525
+ 'sessionId': z.string().readonly(),
1028
1526
  'name': z.string().readonly(),
1029
1527
  }))
1030
- let _khorsheed_dsh_room_room_removeMember_result$schema$value
1031
- const _khorsheed_dsh_room_room_removeMember_result$schema = () => (_khorsheed_dsh_room_room_removeMember_result$schema$value ??= z.union([z.object({
1528
+ let _khorsheed_dsh_room_room_releaseReports_result$schema$value
1529
+ const _khorsheed_dsh_room_room_releaseReports_result$schema = () => (_khorsheed_dsh_room_room_releaseReports_result$schema$value ??= z.union([z.object({
1032
1530
  'ok': z.literal(true).readonly(),
1033
1531
  'value': z.object({
1034
- 'name': z.string().readonly(),
1532
+ 'released': z.boolean().readonly(),
1035
1533
  }).readonly(),
1036
1534
  }), z.object({
1037
1535
  'ok': z.literal(false).readonly(),
@@ -1070,6 +1568,18 @@ const _khorsheed_dsh_room_room_removeMember_result$schema = () => (_khorsheed_ds
1070
1568
  'code': z.literal("member-not-found").readonly(),
1071
1569
  }), z.object({
1072
1570
  'code': z.literal("empty-text").readonly(),
1571
+ }), z.object({
1572
+ 'code': z.literal("role-too-long").readonly(),
1573
+ }), z.object({
1574
+ 'code': z.literal("invalid-settings").readonly(),
1575
+ }), z.object({
1576
+ 'code': z.literal("self-message").readonly(),
1577
+ }), z.object({
1578
+ 'code': z.literal("unknown-task").readonly(),
1579
+ }), z.object({
1580
+ 'code': z.literal("unknown-preset").readonly(),
1581
+ 'preset': z.string().readonly(),
1582
+ 'available': z.array(z.string()).readonly(),
1073
1583
  }), z.object({
1074
1584
  'code': z.literal("nothing-to-update").readonly(),
1075
1585
  }), z.object({
@@ -1087,6 +1597,10 @@ const _khorsheed_dsh_room_room_removeMember_result$schema = () => (_khorsheed_ds
1087
1597
  'code': z.literal("relay-not-found").readonly(),
1088
1598
  }), z.object({
1089
1599
  'code': z.literal("relay-not-pending").readonly(),
1600
+ }), z.object({
1601
+ 'code': z.literal("approval-not-pending").readonly(),
1602
+ }), z.object({
1603
+ 'code': z.literal("question-not-pending").readonly(),
1090
1604
  }), z.object({
1091
1605
  'code': z.literal("main-member").readonly(),
1092
1606
  }), z.object({
@@ -1098,21 +1612,19 @@ const _khorsheed_dsh_room_room_removeMember_result$schema = () => (_khorsheed_ds
1098
1612
  'message': z.string().readonly(),
1099
1613
  })]).readonly(),
1100
1614
  })]))
1101
- let _khorsheed_dsh_room_room_setCoordinator_parameter_0$schema$value
1102
- const _khorsheed_dsh_room_room_setCoordinator_parameter_0$schema = () => (_khorsheed_dsh_room_room_setCoordinator_parameter_0$schema$value ??= z.object({
1103
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
1104
- 'memberId': z.string().readonly(),
1105
- 'expectedRevision': z.number().readonly(),
1615
+ let _khorsheed_dsh_room_room_removeMember_parameter_0$schema$value
1616
+ const _khorsheed_dsh_room_room_removeMember_parameter_0$schema = () => (_khorsheed_dsh_room_room_removeMember_parameter_0$schema$value ??= z.object({
1617
+ 'sessionId': z.string().readonly().describe('Room session.'),
1618
+ 'name': z.string().readonly().describe('Member to remove.'),
1106
1619
  }))
1107
- let _khorsheed_dsh_room_room_setCoordinator_result$schema$value
1108
- const _khorsheed_dsh_room_room_setCoordinator_result$schema = () => (_khorsheed_dsh_room_room_setCoordinator_result$schema$value ??= z.union([z.object({
1620
+ let _khorsheed_dsh_room_room_removeMember_result$schema$value
1621
+ const _khorsheed_dsh_room_room_removeMember_result$schema = () => (_khorsheed_dsh_room_room_removeMember_result$schema$value ??= z.union([z.object({
1109
1622
  'ok': z.literal(true).readonly(),
1110
1623
  'value': z.object({
1111
- 'version': z.literal(1).readonly(),
1112
- 'memberId': z.string().readonly(),
1113
- 'revision': z.number().readonly(),
1114
- 'previousMemberId': z.string().readonly(),
1115
- 'handoff': z.string().readonly(),
1624
+ 'name': z.string().readonly(),
1625
+ 'stopped': z.boolean().readonly().describe('True when a running round was stopped first.'),
1626
+ 'cancelledDeliveries': z.number().readonly().describe('Queued messages that will never be delivered.'),
1627
+ 'notified': z.array(z.string()).readonly().describe('Members that were waiting for a report and were told instead.'),
1116
1628
  }).readonly(),
1117
1629
  }), z.object({
1118
1630
  'ok': z.literal(false).readonly(),
@@ -1151,6 +1663,18 @@ const _khorsheed_dsh_room_room_setCoordinator_result$schema = () => (_khorsheed_
1151
1663
  'code': z.literal("member-not-found").readonly(),
1152
1664
  }), z.object({
1153
1665
  'code': z.literal("empty-text").readonly(),
1666
+ }), z.object({
1667
+ 'code': z.literal("role-too-long").readonly(),
1668
+ }), z.object({
1669
+ 'code': z.literal("invalid-settings").readonly(),
1670
+ }), z.object({
1671
+ 'code': z.literal("self-message").readonly(),
1672
+ }), z.object({
1673
+ 'code': z.literal("unknown-task").readonly(),
1674
+ }), z.object({
1675
+ 'code': z.literal("unknown-preset").readonly(),
1676
+ 'preset': z.string().readonly(),
1677
+ 'available': z.array(z.string()).readonly(),
1154
1678
  }), z.object({
1155
1679
  'code': z.literal("nothing-to-update").readonly(),
1156
1680
  }), z.object({
@@ -1168,6 +1692,10 @@ const _khorsheed_dsh_room_room_setCoordinator_result$schema = () => (_khorsheed_
1168
1692
  'code': z.literal("relay-not-found").readonly(),
1169
1693
  }), z.object({
1170
1694
  'code': z.literal("relay-not-pending").readonly(),
1695
+ }), z.object({
1696
+ 'code': z.literal("approval-not-pending").readonly(),
1697
+ }), z.object({
1698
+ 'code': z.literal("question-not-pending").readonly(),
1171
1699
  }), z.object({
1172
1700
  'code': z.literal("main-member").readonly(),
1173
1701
  }), z.object({
@@ -1179,16 +1707,16 @@ const _khorsheed_dsh_room_room_setCoordinator_result$schema = () => (_khorsheed_
1179
1707
  'message': z.string().readonly(),
1180
1708
  })]).readonly(),
1181
1709
  })]))
1182
- let _khorsheed_dsh_room_room_setGoal_parameter_0$schema$value
1183
- const _khorsheed_dsh_room_room_setGoal_parameter_0$schema = () => (_khorsheed_dsh_room_room_setGoal_parameter_0$schema$value ??= z.object({
1184
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
1185
- 'text': z.string().readonly(),
1710
+ let _khorsheed_dsh_room_room_restoreMember_parameter_0$schema$value
1711
+ const _khorsheed_dsh_room_room_restoreMember_parameter_0$schema = () => (_khorsheed_dsh_room_room_restoreMember_parameter_0$schema$value ??= z.object({
1712
+ 'sessionId': z.string().readonly(),
1713
+ 'name': z.string().readonly(),
1186
1714
  }))
1187
- let _khorsheed_dsh_room_room_setGoal_result$schema$value
1188
- const _khorsheed_dsh_room_room_setGoal_result$schema = () => (_khorsheed_dsh_room_room_setGoal_result$schema$value ??= z.union([z.object({
1715
+ let _khorsheed_dsh_room_room_restoreMember_result$schema$value
1716
+ const _khorsheed_dsh_room_room_restoreMember_result$schema = () => (_khorsheed_dsh_room_room_restoreMember_result$schema$value ??= z.union([z.object({
1189
1717
  'ok': z.literal(true).readonly(),
1190
1718
  'value': z.object({
1191
- 'goal': z.string().readonly().optional(),
1719
+ 'name': z.string().readonly(),
1192
1720
  }).readonly(),
1193
1721
  }), z.object({
1194
1722
  'ok': z.literal(false).readonly(),
@@ -1227,6 +1755,18 @@ const _khorsheed_dsh_room_room_setGoal_result$schema = () => (_khorsheed_dsh_roo
1227
1755
  'code': z.literal("member-not-found").readonly(),
1228
1756
  }), z.object({
1229
1757
  'code': z.literal("empty-text").readonly(),
1758
+ }), z.object({
1759
+ 'code': z.literal("role-too-long").readonly(),
1760
+ }), z.object({
1761
+ 'code': z.literal("invalid-settings").readonly(),
1762
+ }), z.object({
1763
+ 'code': z.literal("self-message").readonly(),
1764
+ }), z.object({
1765
+ 'code': z.literal("unknown-task").readonly(),
1766
+ }), z.object({
1767
+ 'code': z.literal("unknown-preset").readonly(),
1768
+ 'preset': z.string().readonly(),
1769
+ 'available': z.array(z.string()).readonly(),
1230
1770
  }), z.object({
1231
1771
  'code': z.literal("nothing-to-update").readonly(),
1232
1772
  }), z.object({
@@ -1244,6 +1784,10 @@ const _khorsheed_dsh_room_room_setGoal_result$schema = () => (_khorsheed_dsh_roo
1244
1784
  'code': z.literal("relay-not-found").readonly(),
1245
1785
  }), z.object({
1246
1786
  'code': z.literal("relay-not-pending").readonly(),
1787
+ }), z.object({
1788
+ 'code': z.literal("approval-not-pending").readonly(),
1789
+ }), z.object({
1790
+ 'code': z.literal("question-not-pending").readonly(),
1247
1791
  }), z.object({
1248
1792
  'code': z.literal("main-member").readonly(),
1249
1793
  }), z.object({
@@ -1255,20 +1799,21 @@ const _khorsheed_dsh_room_room_setGoal_result$schema = () => (_khorsheed_dsh_roo
1255
1799
  'message': z.string().readonly(),
1256
1800
  })]).readonly(),
1257
1801
  })]))
1258
- let _khorsheed_dsh_room_room_updateMember_parameter_0$schema$value
1259
- const _khorsheed_dsh_room_room_updateMember_parameter_0$schema = () => (_khorsheed_dsh_room_room_updateMember_parameter_0$schema$value ??= z.object({
1260
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
1261
- 'name': z.string().readonly(),
1262
- 'rename': z.string().readonly().optional(),
1263
- 'instructions': z.union([z.literal(null), z.string()]).readonly().optional(),
1264
- 'cwd': z.union([z.literal(null), z.string()]).readonly().optional(),
1265
- 'model': z.union([z.literal(null), z.string()]).readonly().optional(),
1802
+ let _khorsheed_dsh_room_room_setCoordinator_parameter_0$schema$value
1803
+ const _khorsheed_dsh_room_room_setCoordinator_parameter_0$schema = () => (_khorsheed_dsh_room_room_setCoordinator_parameter_0$schema$value ??= z.object({
1804
+ 'sessionId': z.string().readonly(),
1805
+ 'memberId': z.string().readonly(),
1806
+ 'expectedRevision': z.number().readonly(),
1266
1807
  }))
1267
- let _khorsheed_dsh_room_room_updateMember_result$schema$value
1268
- const _khorsheed_dsh_room_room_updateMember_result$schema = () => (_khorsheed_dsh_room_room_updateMember_result$schema$value ??= z.union([z.object({
1808
+ let _khorsheed_dsh_room_room_setCoordinator_result$schema$value
1809
+ const _khorsheed_dsh_room_room_setCoordinator_result$schema = () => (_khorsheed_dsh_room_room_setCoordinator_result$schema$value ??= z.union([z.object({
1269
1810
  'ok': z.literal(true).readonly(),
1270
1811
  'value': z.object({
1271
- 'name': z.string().readonly(),
1812
+ 'version': z.literal(1).readonly(),
1813
+ 'memberId': z.string().readonly(),
1814
+ 'revision': z.number().readonly(),
1815
+ 'previousMemberId': z.string().readonly(),
1816
+ 'handoff': z.string().readonly(),
1272
1817
  }).readonly(),
1273
1818
  }), z.object({
1274
1819
  'ok': z.literal(false).readonly(),
@@ -1307,6 +1852,18 @@ const _khorsheed_dsh_room_room_updateMember_result$schema = () => (_khorsheed_ds
1307
1852
  'code': z.literal("member-not-found").readonly(),
1308
1853
  }), z.object({
1309
1854
  'code': z.literal("empty-text").readonly(),
1855
+ }), z.object({
1856
+ 'code': z.literal("role-too-long").readonly(),
1857
+ }), z.object({
1858
+ 'code': z.literal("invalid-settings").readonly(),
1859
+ }), z.object({
1860
+ 'code': z.literal("self-message").readonly(),
1861
+ }), z.object({
1862
+ 'code': z.literal("unknown-task").readonly(),
1863
+ }), z.object({
1864
+ 'code': z.literal("unknown-preset").readonly(),
1865
+ 'preset': z.string().readonly(),
1866
+ 'available': z.array(z.string()).readonly(),
1310
1867
  }), z.object({
1311
1868
  'code': z.literal("nothing-to-update").readonly(),
1312
1869
  }), z.object({
@@ -1324,6 +1881,10 @@ const _khorsheed_dsh_room_room_updateMember_result$schema = () => (_khorsheed_ds
1324
1881
  'code': z.literal("relay-not-found").readonly(),
1325
1882
  }), z.object({
1326
1883
  'code': z.literal("relay-not-pending").readonly(),
1884
+ }), z.object({
1885
+ 'code': z.literal("approval-not-pending").readonly(),
1886
+ }), z.object({
1887
+ 'code': z.literal("question-not-pending").readonly(),
1327
1888
  }), z.object({
1328
1889
  'code': z.literal("main-member").readonly(),
1329
1890
  }), z.object({
@@ -1335,56 +1896,757 @@ const _khorsheed_dsh_room_room_updateMember_result$schema = () => (_khorsheed_ds
1335
1896
  'message': z.string().readonly(),
1336
1897
  })]).readonly(),
1337
1898
  })]))
1899
+ let _khorsheed_dsh_room_room_setGoal_parameter_0$schema$value
1900
+ const _khorsheed_dsh_room_room_setGoal_parameter_0$schema = () => (_khorsheed_dsh_room_room_setGoal_parameter_0$schema$value ??= z.object({
1901
+ 'sessionId': z.string().readonly().describe('Room session.'),
1902
+ 'text': z.string().readonly().describe('Goal text; blank clears the goal.'),
1903
+ }))
1904
+ let _khorsheed_dsh_room_room_setGoal_result$schema$value
1905
+ const _khorsheed_dsh_room_room_setGoal_result$schema = () => (_khorsheed_dsh_room_room_setGoal_result$schema$value ??= z.union([z.object({
1906
+ 'ok': z.literal(true).readonly(),
1907
+ 'value': z.object({
1908
+ 'goal': z.string().readonly().optional(),
1909
+ }).readonly(),
1910
+ }), z.object({
1911
+ 'ok': z.literal(false).readonly(),
1912
+ 'error': z.union([z.object({
1913
+ 'code': z.literal("request-conflict").readonly(),
1914
+ }), z.object({
1915
+ 'code': z.literal("member-cwd-bound").readonly(),
1916
+ }), z.object({
1917
+ 'code': z.literal("not-coordinator").readonly(),
1918
+ }), z.object({
1919
+ 'code': z.literal("delivery-not-uncertain").readonly(),
1920
+ }), z.object({
1921
+ 'code': z.literal("plan-reconciliation-required").readonly(),
1922
+ }), z.object({
1923
+ 'code': z.literal("coordinator-busy").readonly(),
1924
+ }), z.object({
1925
+ 'code': z.literal("coordinator-not-ready").readonly(),
1926
+ 'message': z.string().readonly(),
1927
+ }), z.object({
1928
+ 'code': z.literal("coordinator-conflict").readonly(),
1929
+ }), z.object({
1930
+ 'code': z.literal("active-coordinator").readonly(),
1931
+ }), z.object({
1932
+ 'code': z.literal("configuration-owned-by-core").readonly(),
1933
+ }), z.object({
1934
+ 'code': z.literal("session-not-found").readonly(),
1935
+ }), z.object({
1936
+ 'code': z.literal("not-a-room").readonly(),
1937
+ }), z.object({
1938
+ 'code': z.literal("invalid-name").readonly(),
1939
+ }), z.object({
1940
+ 'code': z.literal("duplicate-name").readonly(),
1941
+ }), z.object({
1942
+ 'code': z.literal("empty-provider").readonly(),
1943
+ }), z.object({
1944
+ 'code': z.literal("member-not-found").readonly(),
1945
+ }), z.object({
1946
+ 'code': z.literal("empty-text").readonly(),
1947
+ }), z.object({
1948
+ 'code': z.literal("role-too-long").readonly(),
1949
+ }), z.object({
1950
+ 'code': z.literal("invalid-settings").readonly(),
1951
+ }), z.object({
1952
+ 'code': z.literal("self-message").readonly(),
1953
+ }), z.object({
1954
+ 'code': z.literal("unknown-task").readonly(),
1955
+ }), z.object({
1956
+ 'code': z.literal("unknown-preset").readonly(),
1957
+ 'preset': z.string().readonly(),
1958
+ 'available': z.array(z.string()).readonly(),
1959
+ }), z.object({
1960
+ 'code': z.literal("nothing-to-update").readonly(),
1961
+ }), z.object({
1962
+ 'code': z.literal("local-agent-unavailable").readonly(),
1963
+ }), z.object({
1964
+ 'code': z.literal("unknown-provider").readonly(),
1965
+ 'provider': z.string().readonly(),
1966
+ 'available': z.array(z.string()).readonly(),
1967
+ }), z.object({
1968
+ 'code': z.literal("unknown-targets").readonly(),
1969
+ 'names': z.array(z.string()).readonly(),
1970
+ }), z.object({
1971
+ 'code': z.literal("no-targets").readonly(),
1972
+ }), z.object({
1973
+ 'code': z.literal("relay-not-found").readonly(),
1974
+ }), z.object({
1975
+ 'code': z.literal("relay-not-pending").readonly(),
1976
+ }), z.object({
1977
+ 'code': z.literal("approval-not-pending").readonly(),
1978
+ }), z.object({
1979
+ 'code': z.literal("question-not-pending").readonly(),
1980
+ }), z.object({
1981
+ 'code': z.literal("main-member").readonly(),
1982
+ }), z.object({
1983
+ 'code': z.literal("task-not-found").readonly(),
1984
+ }), z.object({
1985
+ 'code': z.literal("task-closed").readonly(),
1986
+ }), z.object({
1987
+ 'code': z.literal("resume-failed").readonly(),
1988
+ 'message': z.string().readonly(),
1989
+ })]).readonly(),
1990
+ })]))
1991
+ let _khorsheed_dsh_room_room_setSettings_parameter_0$schema$value
1992
+ const _khorsheed_dsh_room_room_setSettings_parameter_0$schema = () => (_khorsheed_dsh_room_room_setSettings_parameter_0$schema$value ??= z.object({
1993
+ 'sessionId': z.string().readonly(),
1994
+ 'reportTiming': z.union([z.literal("judge"), z.literal("each")]).readonly().optional(),
1995
+ 'autoTaskFiling': z.boolean().readonly().optional(),
1996
+ 'reportThreshold': z.number().readonly().optional(),
1997
+ 'reportWaitMinutes': z.number().readonly().optional(),
1998
+ 'helpReminderMinutes': z.number().readonly().optional().describe('10–120, in steps of 10.'),
1999
+ 'memberMessages': z.union([z.literal("free"), z.literal("confirm")]).readonly().optional(),
2000
+ 'hopLimit': z.number().readonly().optional().describe('2–50.'),
2001
+ 'paused': z.boolean().readonly().optional(),
2002
+ }))
2003
+ let _khorsheed_dsh_room_room_setSettings_result$schema$value
2004
+ const _khorsheed_dsh_room_room_setSettings_result$schema = () => (_khorsheed_dsh_room_room_setSettings_result$schema$value ??= z.union([z.object({
2005
+ 'ok': z.literal(true).readonly(),
2006
+ 'value': z.object({
2007
+ 'memberMessages': z.union([z.literal("free"), z.literal("confirm")]).readonly(),
2008
+ 'hopLimit': z.number().readonly(),
2009
+ 'paused': z.boolean().readonly(),
2010
+ 'reportTiming': z.union([z.literal("judge"), z.literal("each")]).readonly(),
2011
+ 'autoTaskFiling': z.boolean().readonly(),
2012
+ 'reportThreshold': z.number().readonly(),
2013
+ 'reportWaitMinutes': z.number().readonly(),
2014
+ 'helpReminderMinutes': z.number().readonly(),
2015
+ }).readonly(),
2016
+ }), z.object({
2017
+ 'ok': z.literal(false).readonly(),
2018
+ 'error': z.union([z.object({
2019
+ 'code': z.literal("request-conflict").readonly(),
2020
+ }), z.object({
2021
+ 'code': z.literal("member-cwd-bound").readonly(),
2022
+ }), z.object({
2023
+ 'code': z.literal("not-coordinator").readonly(),
2024
+ }), z.object({
2025
+ 'code': z.literal("delivery-not-uncertain").readonly(),
2026
+ }), z.object({
2027
+ 'code': z.literal("plan-reconciliation-required").readonly(),
2028
+ }), z.object({
2029
+ 'code': z.literal("coordinator-busy").readonly(),
2030
+ }), z.object({
2031
+ 'code': z.literal("coordinator-not-ready").readonly(),
2032
+ 'message': z.string().readonly(),
2033
+ }), z.object({
2034
+ 'code': z.literal("coordinator-conflict").readonly(),
2035
+ }), z.object({
2036
+ 'code': z.literal("active-coordinator").readonly(),
2037
+ }), z.object({
2038
+ 'code': z.literal("configuration-owned-by-core").readonly(),
2039
+ }), z.object({
2040
+ 'code': z.literal("session-not-found").readonly(),
2041
+ }), z.object({
2042
+ 'code': z.literal("not-a-room").readonly(),
2043
+ }), z.object({
2044
+ 'code': z.literal("invalid-name").readonly(),
2045
+ }), z.object({
2046
+ 'code': z.literal("duplicate-name").readonly(),
2047
+ }), z.object({
2048
+ 'code': z.literal("empty-provider").readonly(),
2049
+ }), z.object({
2050
+ 'code': z.literal("member-not-found").readonly(),
2051
+ }), z.object({
2052
+ 'code': z.literal("empty-text").readonly(),
2053
+ }), z.object({
2054
+ 'code': z.literal("role-too-long").readonly(),
2055
+ }), z.object({
2056
+ 'code': z.literal("invalid-settings").readonly(),
2057
+ }), z.object({
2058
+ 'code': z.literal("self-message").readonly(),
2059
+ }), z.object({
2060
+ 'code': z.literal("unknown-task").readonly(),
2061
+ }), z.object({
2062
+ 'code': z.literal("unknown-preset").readonly(),
2063
+ 'preset': z.string().readonly(),
2064
+ 'available': z.array(z.string()).readonly(),
2065
+ }), z.object({
2066
+ 'code': z.literal("nothing-to-update").readonly(),
2067
+ }), z.object({
2068
+ 'code': z.literal("local-agent-unavailable").readonly(),
2069
+ }), z.object({
2070
+ 'code': z.literal("unknown-provider").readonly(),
2071
+ 'provider': z.string().readonly(),
2072
+ 'available': z.array(z.string()).readonly(),
2073
+ }), z.object({
2074
+ 'code': z.literal("unknown-targets").readonly(),
2075
+ 'names': z.array(z.string()).readonly(),
2076
+ }), z.object({
2077
+ 'code': z.literal("no-targets").readonly(),
2078
+ }), z.object({
2079
+ 'code': z.literal("relay-not-found").readonly(),
2080
+ }), z.object({
2081
+ 'code': z.literal("relay-not-pending").readonly(),
2082
+ }), z.object({
2083
+ 'code': z.literal("approval-not-pending").readonly(),
2084
+ }), z.object({
2085
+ 'code': z.literal("question-not-pending").readonly(),
2086
+ }), z.object({
2087
+ 'code': z.literal("main-member").readonly(),
2088
+ }), z.object({
2089
+ 'code': z.literal("task-not-found").readonly(),
2090
+ }), z.object({
2091
+ 'code': z.literal("task-closed").readonly(),
2092
+ }), z.object({
2093
+ 'code': z.literal("resume-failed").readonly(),
2094
+ 'message': z.string().readonly(),
2095
+ })]).readonly(),
2096
+ })]))
2097
+ let _khorsheed_dsh_room_room_setTaskHint_parameter_0$schema$value
2098
+ const _khorsheed_dsh_room_room_setTaskHint_parameter_0$schema = () => (_khorsheed_dsh_room_room_setTaskHint_parameter_0$schema$value ??= z.object({
2099
+ 'sessionId': z.string().readonly(),
2100
+ 'task': z.union([z.literal(null), z.string()]).readonly().describe('`new`, a task root id, or null to clear.'),
2101
+ }))
2102
+ let _khorsheed_dsh_room_room_setTaskHint_result$schema$value
2103
+ const _khorsheed_dsh_room_room_setTaskHint_result$schema = () => (_khorsheed_dsh_room_room_setTaskHint_result$schema$value ??= z.object({
2104
+ 'ok': z.literal(true).readonly(),
2105
+ }))
2106
+ let _khorsheed_dsh_room_room_stopJob_parameter_0$schema$value
2107
+ const _khorsheed_dsh_room_room_stopJob_parameter_0$schema = () => (_khorsheed_dsh_room_room_stopJob_parameter_0$schema$value ??= z.object({
2108
+ 'sessionId': z.string().readonly(),
2109
+ 'task': z.string().readonly().describe('The task\'s root id.'),
2110
+ }))
2111
+ let _khorsheed_dsh_room_room_stopJob_result$schema$value
2112
+ const _khorsheed_dsh_room_room_stopJob_result$schema = () => (_khorsheed_dsh_room_room_stopJob_result$schema$value ??= z.union([z.object({
2113
+ 'ok': z.literal(true).readonly(),
2114
+ 'value': z.object({
2115
+ 'stopped': z.number().readonly(),
2116
+ }).readonly(),
2117
+ }), z.object({
2118
+ 'ok': z.literal(false).readonly(),
2119
+ 'error': z.union([z.object({
2120
+ 'code': z.literal("request-conflict").readonly(),
2121
+ }), z.object({
2122
+ 'code': z.literal("member-cwd-bound").readonly(),
2123
+ }), z.object({
2124
+ 'code': z.literal("not-coordinator").readonly(),
2125
+ }), z.object({
2126
+ 'code': z.literal("delivery-not-uncertain").readonly(),
2127
+ }), z.object({
2128
+ 'code': z.literal("plan-reconciliation-required").readonly(),
2129
+ }), z.object({
2130
+ 'code': z.literal("coordinator-busy").readonly(),
2131
+ }), z.object({
2132
+ 'code': z.literal("coordinator-not-ready").readonly(),
2133
+ 'message': z.string().readonly(),
2134
+ }), z.object({
2135
+ 'code': z.literal("coordinator-conflict").readonly(),
2136
+ }), z.object({
2137
+ 'code': z.literal("active-coordinator").readonly(),
2138
+ }), z.object({
2139
+ 'code': z.literal("configuration-owned-by-core").readonly(),
2140
+ }), z.object({
2141
+ 'code': z.literal("session-not-found").readonly(),
2142
+ }), z.object({
2143
+ 'code': z.literal("not-a-room").readonly(),
2144
+ }), z.object({
2145
+ 'code': z.literal("invalid-name").readonly(),
2146
+ }), z.object({
2147
+ 'code': z.literal("duplicate-name").readonly(),
2148
+ }), z.object({
2149
+ 'code': z.literal("empty-provider").readonly(),
2150
+ }), z.object({
2151
+ 'code': z.literal("member-not-found").readonly(),
2152
+ }), z.object({
2153
+ 'code': z.literal("empty-text").readonly(),
2154
+ }), z.object({
2155
+ 'code': z.literal("role-too-long").readonly(),
2156
+ }), z.object({
2157
+ 'code': z.literal("invalid-settings").readonly(),
2158
+ }), z.object({
2159
+ 'code': z.literal("self-message").readonly(),
2160
+ }), z.object({
2161
+ 'code': z.literal("unknown-task").readonly(),
2162
+ }), z.object({
2163
+ 'code': z.literal("unknown-preset").readonly(),
2164
+ 'preset': z.string().readonly(),
2165
+ 'available': z.array(z.string()).readonly(),
2166
+ }), z.object({
2167
+ 'code': z.literal("nothing-to-update").readonly(),
2168
+ }), z.object({
2169
+ 'code': z.literal("local-agent-unavailable").readonly(),
2170
+ }), z.object({
2171
+ 'code': z.literal("unknown-provider").readonly(),
2172
+ 'provider': z.string().readonly(),
2173
+ 'available': z.array(z.string()).readonly(),
2174
+ }), z.object({
2175
+ 'code': z.literal("unknown-targets").readonly(),
2176
+ 'names': z.array(z.string()).readonly(),
2177
+ }), z.object({
2178
+ 'code': z.literal("no-targets").readonly(),
2179
+ }), z.object({
2180
+ 'code': z.literal("relay-not-found").readonly(),
2181
+ }), z.object({
2182
+ 'code': z.literal("relay-not-pending").readonly(),
2183
+ }), z.object({
2184
+ 'code': z.literal("approval-not-pending").readonly(),
2185
+ }), z.object({
2186
+ 'code': z.literal("question-not-pending").readonly(),
2187
+ }), z.object({
2188
+ 'code': z.literal("main-member").readonly(),
2189
+ }), z.object({
2190
+ 'code': z.literal("task-not-found").readonly(),
2191
+ }), z.object({
2192
+ 'code': z.literal("task-closed").readonly(),
2193
+ }), z.object({
2194
+ 'code': z.literal("resume-failed").readonly(),
2195
+ 'message': z.string().readonly(),
2196
+ })]).readonly(),
2197
+ })]))
2198
+ let _khorsheed_dsh_room_room_unlinkSession_parameter_0$schema$value
2199
+ const _khorsheed_dsh_room_room_unlinkSession_parameter_0$schema = () => (_khorsheed_dsh_room_room_unlinkSession_parameter_0$schema$value ??= z.object({
2200
+ 'sessionId': z.string().readonly(),
2201
+ 'target': z.string().readonly().describe('The outside session.'),
2202
+ 'title': z.string().readonly().optional().describe('Its title (link only).'),
2203
+ }))
2204
+ let _khorsheed_dsh_room_room_unlinkSession_result$schema$value
2205
+ const _khorsheed_dsh_room_room_unlinkSession_result$schema = () => (_khorsheed_dsh_room_room_unlinkSession_result$schema$value ??= z.union([z.object({
2206
+ 'ok': z.literal(true).readonly(),
2207
+ }), z.object({
2208
+ 'ok': z.literal(false).readonly(),
2209
+ 'error': z.union([z.object({
2210
+ 'code': z.literal("request-conflict").readonly(),
2211
+ }), z.object({
2212
+ 'code': z.literal("member-cwd-bound").readonly(),
2213
+ }), z.object({
2214
+ 'code': z.literal("not-coordinator").readonly(),
2215
+ }), z.object({
2216
+ 'code': z.literal("delivery-not-uncertain").readonly(),
2217
+ }), z.object({
2218
+ 'code': z.literal("plan-reconciliation-required").readonly(),
2219
+ }), z.object({
2220
+ 'code': z.literal("coordinator-busy").readonly(),
2221
+ }), z.object({
2222
+ 'code': z.literal("coordinator-not-ready").readonly(),
2223
+ 'message': z.string().readonly(),
2224
+ }), z.object({
2225
+ 'code': z.literal("coordinator-conflict").readonly(),
2226
+ }), z.object({
2227
+ 'code': z.literal("active-coordinator").readonly(),
2228
+ }), z.object({
2229
+ 'code': z.literal("configuration-owned-by-core").readonly(),
2230
+ }), z.object({
2231
+ 'code': z.literal("session-not-found").readonly(),
2232
+ }), z.object({
2233
+ 'code': z.literal("not-a-room").readonly(),
2234
+ }), z.object({
2235
+ 'code': z.literal("invalid-name").readonly(),
2236
+ }), z.object({
2237
+ 'code': z.literal("duplicate-name").readonly(),
2238
+ }), z.object({
2239
+ 'code': z.literal("empty-provider").readonly(),
2240
+ }), z.object({
2241
+ 'code': z.literal("member-not-found").readonly(),
2242
+ }), z.object({
2243
+ 'code': z.literal("empty-text").readonly(),
2244
+ }), z.object({
2245
+ 'code': z.literal("role-too-long").readonly(),
2246
+ }), z.object({
2247
+ 'code': z.literal("invalid-settings").readonly(),
2248
+ }), z.object({
2249
+ 'code': z.literal("self-message").readonly(),
2250
+ }), z.object({
2251
+ 'code': z.literal("unknown-task").readonly(),
2252
+ }), z.object({
2253
+ 'code': z.literal("unknown-preset").readonly(),
2254
+ 'preset': z.string().readonly(),
2255
+ 'available': z.array(z.string()).readonly(),
2256
+ }), z.object({
2257
+ 'code': z.literal("nothing-to-update").readonly(),
2258
+ }), z.object({
2259
+ 'code': z.literal("local-agent-unavailable").readonly(),
2260
+ }), z.object({
2261
+ 'code': z.literal("unknown-provider").readonly(),
2262
+ 'provider': z.string().readonly(),
2263
+ 'available': z.array(z.string()).readonly(),
2264
+ }), z.object({
2265
+ 'code': z.literal("unknown-targets").readonly(),
2266
+ 'names': z.array(z.string()).readonly(),
2267
+ }), z.object({
2268
+ 'code': z.literal("no-targets").readonly(),
2269
+ }), z.object({
2270
+ 'code': z.literal("relay-not-found").readonly(),
2271
+ }), z.object({
2272
+ 'code': z.literal("relay-not-pending").readonly(),
2273
+ }), z.object({
2274
+ 'code': z.literal("approval-not-pending").readonly(),
2275
+ }), z.object({
2276
+ 'code': z.literal("question-not-pending").readonly(),
2277
+ }), z.object({
2278
+ 'code': z.literal("main-member").readonly(),
2279
+ }), z.object({
2280
+ 'code': z.literal("task-not-found").readonly(),
2281
+ }), z.object({
2282
+ 'code': z.literal("task-closed").readonly(),
2283
+ }), z.object({
2284
+ 'code': z.literal("resume-failed").readonly(),
2285
+ 'message': z.string().readonly(),
2286
+ })]).readonly(),
2287
+ })]))
2288
+ let _khorsheed_dsh_room_room_updateMember_parameter_0$schema$value
2289
+ const _khorsheed_dsh_room_room_updateMember_parameter_0$schema = () => (_khorsheed_dsh_room_room_updateMember_parameter_0$schema$value ??= z.object({
2290
+ 'sessionId': z.string().readonly().describe('Room session.'),
2291
+ 'name': z.string().readonly().describe('Member to update (its CURRENT name).'),
2292
+ 'rename': z.string().readonly().optional().describe('Rename: the new'),
2293
+ 'instructions': z.union([z.literal(null), z.string()]).readonly().optional().describe('New role instructions; null (or a blank string) CLEARS them.'),
2294
+ 'role': z.union([z.literal(null), z.string()]).readonly().optional().describe('New public role; null (or a blank string) CLEARS it.'),
2295
+ 'cwd': z.union([z.literal(null), z.string()]).readonly().optional().describe('New member-level cwd; null (or a blank string) CLEARS the override back to inheriting the room cwd.'),
2296
+ 'model': z.union([z.literal(null), z.string()]).readonly().optional().describe('New intended model (roster-recorded; the first dispatch binds it as the facade start\'s `model` option); null (or a blank string) CLEARS it back to following the harness default.'),
2297
+ 'effort': z.union([z.literal(null), z.string()]).readonly().optional().describe('New intended reasoning effort (roster-recorded, bound like the model on the first dispatch); null (or a blank string) CLEARS it back to following the harness default.'),
2298
+ }))
2299
+ let _khorsheed_dsh_room_room_updateMember_result$schema$value
2300
+ const _khorsheed_dsh_room_room_updateMember_result$schema = () => (_khorsheed_dsh_room_room_updateMember_result$schema$value ??= z.union([z.object({
2301
+ 'ok': z.literal(true).readonly(),
2302
+ 'value': z.object({
2303
+ 'name': z.string().readonly(),
2304
+ }).readonly(),
2305
+ }), z.object({
2306
+ 'ok': z.literal(false).readonly(),
2307
+ 'error': z.union([z.object({
2308
+ 'code': z.literal("request-conflict").readonly(),
2309
+ }), z.object({
2310
+ 'code': z.literal("member-cwd-bound").readonly(),
2311
+ }), z.object({
2312
+ 'code': z.literal("not-coordinator").readonly(),
2313
+ }), z.object({
2314
+ 'code': z.literal("delivery-not-uncertain").readonly(),
2315
+ }), z.object({
2316
+ 'code': z.literal("plan-reconciliation-required").readonly(),
2317
+ }), z.object({
2318
+ 'code': z.literal("coordinator-busy").readonly(),
2319
+ }), z.object({
2320
+ 'code': z.literal("coordinator-not-ready").readonly(),
2321
+ 'message': z.string().readonly(),
2322
+ }), z.object({
2323
+ 'code': z.literal("coordinator-conflict").readonly(),
2324
+ }), z.object({
2325
+ 'code': z.literal("active-coordinator").readonly(),
2326
+ }), z.object({
2327
+ 'code': z.literal("configuration-owned-by-core").readonly(),
2328
+ }), z.object({
2329
+ 'code': z.literal("session-not-found").readonly(),
2330
+ }), z.object({
2331
+ 'code': z.literal("not-a-room").readonly(),
2332
+ }), z.object({
2333
+ 'code': z.literal("invalid-name").readonly(),
2334
+ }), z.object({
2335
+ 'code': z.literal("duplicate-name").readonly(),
2336
+ }), z.object({
2337
+ 'code': z.literal("empty-provider").readonly(),
2338
+ }), z.object({
2339
+ 'code': z.literal("member-not-found").readonly(),
2340
+ }), z.object({
2341
+ 'code': z.literal("empty-text").readonly(),
2342
+ }), z.object({
2343
+ 'code': z.literal("role-too-long").readonly(),
2344
+ }), z.object({
2345
+ 'code': z.literal("invalid-settings").readonly(),
2346
+ }), z.object({
2347
+ 'code': z.literal("self-message").readonly(),
2348
+ }), z.object({
2349
+ 'code': z.literal("unknown-task").readonly(),
2350
+ }), z.object({
2351
+ 'code': z.literal("unknown-preset").readonly(),
2352
+ 'preset': z.string().readonly(),
2353
+ 'available': z.array(z.string()).readonly(),
2354
+ }), z.object({
2355
+ 'code': z.literal("nothing-to-update").readonly(),
2356
+ }), z.object({
2357
+ 'code': z.literal("local-agent-unavailable").readonly(),
2358
+ }), z.object({
2359
+ 'code': z.literal("unknown-provider").readonly(),
2360
+ 'provider': z.string().readonly(),
2361
+ 'available': z.array(z.string()).readonly(),
2362
+ }), z.object({
2363
+ 'code': z.literal("unknown-targets").readonly(),
2364
+ 'names': z.array(z.string()).readonly(),
2365
+ }), z.object({
2366
+ 'code': z.literal("no-targets").readonly(),
2367
+ }), z.object({
2368
+ 'code': z.literal("relay-not-found").readonly(),
2369
+ }), z.object({
2370
+ 'code': z.literal("relay-not-pending").readonly(),
2371
+ }), z.object({
2372
+ 'code': z.literal("approval-not-pending").readonly(),
2373
+ }), z.object({
2374
+ 'code': z.literal("question-not-pending").readonly(),
2375
+ }), z.object({
2376
+ 'code': z.literal("main-member").readonly(),
2377
+ }), z.object({
2378
+ 'code': z.literal("task-not-found").readonly(),
2379
+ }), z.object({
2380
+ 'code': z.literal("task-closed").readonly(),
2381
+ }), z.object({
2382
+ 'code': z.literal("resume-failed").readonly(),
2383
+ 'message': z.string().readonly(),
2384
+ })]).readonly(),
2385
+ })]))
2386
+ let _khorsheed_dsh_room_room_answerApproval_parameter_0_strict$schema$value
2387
+ const _khorsheed_dsh_room_room_answerApproval_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_answerApproval_parameter_0_strict$schema$value ??= z.strictObject({
2388
+ 'sessionId': z.string().readonly(),
2389
+ 'id': z.string().readonly(),
2390
+ 'outcome': z.union([z.literal("rejected"), z.literal("allowed-once")]).readonly(),
2391
+ }))
2392
+ let _khorsheed_dsh_room_room_answerQuestion_parameter_0_strict$schema$value
2393
+ const _khorsheed_dsh_room_room_answerQuestion_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_answerQuestion_parameter_0_strict$schema$value ??= z.strictObject({
2394
+ 'sessionId': z.string().readonly(),
2395
+ 'id': z.string().readonly(),
2396
+ 'answers': z.array(z.strictObject({
2397
+ 'id': z.string().readonly(),
2398
+ 'selected': z.array(z.string()).readonly(),
2399
+ 'custom': z.string().readonly().optional(),
2400
+ })).readonly(),
2401
+ }))
2402
+ let _khorsheed_dsh_room_room_cancel_parameter_0_strict$schema$value
2403
+ const _khorsheed_dsh_room_room_cancel_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_cancel_parameter_0_strict$schema$value ??= z.strictObject({
2404
+ 'expectedRunId': z.string().readonly().optional().describe('Optional fencing for an execution card; a stale card must never stop a successor.'),
2405
+ 'expectedStartedAt': z.number().readonly().optional(),
2406
+ 'sessionId': z.string().readonly().describe('Room session.'),
2407
+ 'name': z.string().readonly().describe('Member whose run should be cancelled.'),
2408
+ }))
2409
+ let _khorsheed_dsh_room_room_cancelChild_parameter_0_strict$schema$value
2410
+ const _khorsheed_dsh_room_room_cancelChild_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_cancelChild_parameter_0_strict$schema$value ??= z.strictObject({
2411
+ 'sessionId': z.string(),
2412
+ 'childSessionId': z.string(),
2413
+ }))
2414
+ let _khorsheed_dsh_room_room_confirmRelay_parameter_0_strict$schema$value
2415
+ const _khorsheed_dsh_room_room_confirmRelay_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_confirmRelay_parameter_0_strict$schema$value ??= z.strictObject({
2416
+ 'sessionId': z.string().readonly().describe('Room session.'),
2417
+ 'relayId': z.string().readonly().describe('The relay to resolve.'),
2418
+ }))
2419
+ let _khorsheed_dsh_room_room_dismissHelpNudge_parameter_0_strict$schema$value
2420
+ const _khorsheed_dsh_room_room_dismissHelpNudge_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_dismissHelpNudge_parameter_0_strict$schema$value ??= z.strictObject({
2421
+ 'sessionId': z.string().readonly(),
2422
+ 'target': z.string().readonly().describe('The outside session.'),
2423
+ 'title': z.string().readonly().optional().describe('Its title (link only).'),
2424
+ }))
2425
+ let _khorsheed_dsh_room_room_dismissRelay_parameter_0_strict$schema$value
2426
+ const _khorsheed_dsh_room_room_dismissRelay_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_dismissRelay_parameter_0_strict$schema$value ??= z.strictObject({
2427
+ 'sessionId': z.string().readonly().describe('Room session.'),
2428
+ 'relayId': z.string().readonly().describe('The relay to resolve.'),
2429
+ }))
2430
+ let _khorsheed_dsh_room_room_getState_parameter_0_strict$schema$value
2431
+ const _khorsheed_dsh_room_room_getState_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_getState_parameter_0_strict$schema$value ??= z.strictObject({
2432
+ 'sessionId': z.string().readonly().describe('Room session to replay.'),
2433
+ }))
2434
+ let _khorsheed_dsh_room_room_invite_parameter_0_strict$schema$value
2435
+ const _khorsheed_dsh_room_room_invite_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_invite_parameter_0_strict$schema$value ??= z.strictObject({
2436
+ 'sessionId': z.string().readonly().describe('Room session.'),
2437
+ 'kind': z.union([z.literal("native"), z.literal("cli")]).readonly().optional().describe('`cli` (default): an external CLI through the local-agent family. `native`: a DSH child agent in this host process, composing `preset`.'),
2438
+ 'preset': z.string().readonly().optional().describe('The member\'s mode: the host agent preset id. A native member composes it (omitted = the host default); a CLI member reaches its plugin tools through the bridge (omitted = no mode).'),
2439
+ 'inheritPreset': z.boolean().readonly().optional().describe('With no `preset`: take the room session\'s own mode (the coordinator\'s invite default).'),
2440
+ 'provider': z.string().readonly().describe('CLI provider id (non-blank).'),
2441
+ 'name': z.string().readonly().describe('Addressing/display name: unique in the room, no whitespace, no `@`.'),
2442
+ 'instructions': z.string().readonly().optional().describe('Role instructions, prepended to the member\'s first dispatch.'),
2443
+ 'role': z.string().readonly().optional().describe('Short public role (≤ 30 chars); blank/omitted = none.'),
2444
+ 'cwd': z.string().readonly().optional().describe('Member-level working directory (empty/omitted = inherits the room session\'s cwd). Recorded on the roster; not yet passed to the delegation facade (family need R2 pending).'),
2445
+ 'firstTask': z.string().readonly().optional().describe('Optional first task, dispatched to the member as soon as it joins.'),
2446
+ 'note': z.string().readonly().optional().describe('What the inviter waits for when the first task reports (see RoomDispatchEvent.note).'),
2447
+ 'model': z.string().readonly().optional().describe('The delegation\'s model (blank/omitted = follow the harness default). Applies to local-agent harness providers only: it lands as the facade `start` call\'s `model` option, bound at spawn for exec and live alike.'),
2448
+ 'effort': z.string().readonly().optional().describe('The delegation\'s reasoning effort (blank/omitted = follow the harness default): the facade `start` call\'s `effort` option, bound at spawn alongside the model.'),
2449
+ }))
2450
+ let _khorsheed_dsh_room_room_isRoom_parameter_0_strict$schema$value
2451
+ const _khorsheed_dsh_room_room_isRoom_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_isRoom_parameter_0_strict$schema$value ??= z.strictObject({
2452
+ 'sessionId': z.string().readonly().describe('Session to probe.'),
2453
+ }))
2454
+ let _khorsheed_dsh_room_room_linkSession_parameter_0_strict$schema$value
2455
+ const _khorsheed_dsh_room_room_linkSession_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_linkSession_parameter_0_strict$schema$value ??= z.strictObject({
2456
+ 'sessionId': z.string().readonly(),
2457
+ 'target': z.string().readonly().describe('The outside session.'),
2458
+ 'title': z.string().readonly().optional().describe('Its title (link only).'),
2459
+ }))
2460
+ let _khorsheed_dsh_room_room_listProviders_parameter_0_strict$schema$value
2461
+ const _khorsheed_dsh_room_room_listProviders_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_listProviders_parameter_0_strict$schema$value ??= z.strictObject({
2462
+ 'sessionId': z.string().readonly().optional().describe('The session the invite is for: the result then carries its mode (`sessionPreset`).'),
2463
+ }))
2464
+ let _khorsheed_dsh_room_room_planCommand_parameter_0_strict$schema$value
2465
+ const _khorsheed_dsh_room_room_planCommand_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_planCommand_parameter_0_strict$schema$value ??= z.strictObject({
2466
+ 'sessionId': z.string(),
2467
+ 'command': z.string(),
2468
+ }))
2469
+ let _khorsheed_dsh_room_room_postMessage_parameter_0_strict$schema$value
2470
+ const _khorsheed_dsh_room_room_postMessage_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_postMessage_parameter_0_strict$schema$value ??= z.strictObject({
2471
+ 'requestId': z.string().readonly().optional(),
2472
+ 'sessionId': z.string().readonly().describe('Room session.'),
2473
+ 'text': z.string().readonly().describe('Raw composer text: leading `@name` tokens address members.'),
2474
+ 'targets': z.array(z.string()).readonly().optional().describe('Menu-picked addressees (the room composer\'s mention menu records a pick as explicit addressing even when the `@name` sits mid-sentence). Unioned with the parsed leading tokens and validated against the roster the same way; the text itself is dispatched verbatim either way.'),
2475
+ 'task': z.string().readonly().optional().describe('The composer\'s task tag: `new` or a task root id (see RoomSetTaskHintRequest).'),
2476
+ }))
2477
+ let _khorsheed_dsh_room_room_prepareMember_parameter_0_strict$schema$value
2478
+ const _khorsheed_dsh_room_room_prepareMember_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_prepareMember_parameter_0_strict$schema$value ??= z.strictObject({
2479
+ 'sessionId': z.string().readonly(),
2480
+ 'name': z.string().readonly(),
2481
+ }))
2482
+ let _khorsheed_dsh_room_room_reconcileDelivery_parameter_0_strict$schema$value
2483
+ const _khorsheed_dsh_room_room_reconcileDelivery_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_reconcileDelivery_parameter_0_strict$schema$value ??= z.strictObject({
2484
+ 'sessionId': z.string().readonly(),
2485
+ 'deliveryId': z.string().readonly(),
2486
+ 'outcome': z.union([z.literal("cancelled"), z.literal("done")]).readonly(),
2487
+ 'evidence': z.string().readonly(),
2488
+ }))
2489
+ let _khorsheed_dsh_room_room_releaseReports_parameter_0_strict$schema$value
2490
+ const _khorsheed_dsh_room_room_releaseReports_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_releaseReports_parameter_0_strict$schema$value ??= z.strictObject({
2491
+ 'sessionId': z.string().readonly(),
2492
+ 'name': z.string().readonly(),
2493
+ }))
2494
+ let _khorsheed_dsh_room_room_removeMember_parameter_0_strict$schema$value
2495
+ const _khorsheed_dsh_room_room_removeMember_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_removeMember_parameter_0_strict$schema$value ??= z.strictObject({
2496
+ 'sessionId': z.string().readonly().describe('Room session.'),
2497
+ 'name': z.string().readonly().describe('Member to remove.'),
2498
+ }))
2499
+ let _khorsheed_dsh_room_room_restoreMember_parameter_0_strict$schema$value
2500
+ const _khorsheed_dsh_room_room_restoreMember_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_restoreMember_parameter_0_strict$schema$value ??= z.strictObject({
2501
+ 'sessionId': z.string().readonly(),
2502
+ 'name': z.string().readonly(),
2503
+ }))
2504
+ let _khorsheed_dsh_room_room_setCoordinator_parameter_0_strict$schema$value
2505
+ const _khorsheed_dsh_room_room_setCoordinator_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_setCoordinator_parameter_0_strict$schema$value ??= z.strictObject({
2506
+ 'sessionId': z.string().readonly(),
2507
+ 'memberId': z.string().readonly(),
2508
+ 'expectedRevision': z.number().readonly(),
2509
+ }))
2510
+ let _khorsheed_dsh_room_room_setGoal_parameter_0_strict$schema$value
2511
+ const _khorsheed_dsh_room_room_setGoal_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_setGoal_parameter_0_strict$schema$value ??= z.strictObject({
2512
+ 'sessionId': z.string().readonly().describe('Room session.'),
2513
+ 'text': z.string().readonly().describe('Goal text; blank clears the goal.'),
2514
+ }))
2515
+ let _khorsheed_dsh_room_room_setSettings_parameter_0_strict$schema$value
2516
+ const _khorsheed_dsh_room_room_setSettings_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_setSettings_parameter_0_strict$schema$value ??= z.strictObject({
2517
+ 'sessionId': z.string().readonly(),
2518
+ 'reportTiming': z.union([z.literal("judge"), z.literal("each")]).readonly().optional(),
2519
+ 'autoTaskFiling': z.boolean().readonly().optional(),
2520
+ 'reportThreshold': z.number().readonly().optional(),
2521
+ 'reportWaitMinutes': z.number().readonly().optional(),
2522
+ 'helpReminderMinutes': z.number().readonly().optional().describe('10–120, in steps of 10.'),
2523
+ 'memberMessages': z.union([z.literal("free"), z.literal("confirm")]).readonly().optional(),
2524
+ 'hopLimit': z.number().readonly().optional().describe('2–50.'),
2525
+ 'paused': z.boolean().readonly().optional(),
2526
+ }))
2527
+ let _khorsheed_dsh_room_room_setTaskHint_parameter_0_strict$schema$value
2528
+ const _khorsheed_dsh_room_room_setTaskHint_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_setTaskHint_parameter_0_strict$schema$value ??= z.strictObject({
2529
+ 'sessionId': z.string().readonly(),
2530
+ 'task': z.union([z.literal(null), z.string()]).readonly().describe('`new`, a task root id, or null to clear.'),
2531
+ }))
2532
+ let _khorsheed_dsh_room_room_stopJob_parameter_0_strict$schema$value
2533
+ const _khorsheed_dsh_room_room_stopJob_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_stopJob_parameter_0_strict$schema$value ??= z.strictObject({
2534
+ 'sessionId': z.string().readonly(),
2535
+ 'task': z.string().readonly().describe('The task\'s root id.'),
2536
+ }))
2537
+ let _khorsheed_dsh_room_room_unlinkSession_parameter_0_strict$schema$value
2538
+ const _khorsheed_dsh_room_room_unlinkSession_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_unlinkSession_parameter_0_strict$schema$value ??= z.strictObject({
2539
+ 'sessionId': z.string().readonly(),
2540
+ 'target': z.string().readonly().describe('The outside session.'),
2541
+ 'title': z.string().readonly().optional().describe('Its title (link only).'),
2542
+ }))
2543
+ let _khorsheed_dsh_room_room_updateMember_parameter_0_strict$schema$value
2544
+ const _khorsheed_dsh_room_room_updateMember_parameter_0_strict$schema = () => (_khorsheed_dsh_room_room_updateMember_parameter_0_strict$schema$value ??= z.strictObject({
2545
+ 'sessionId': z.string().readonly().describe('Room session.'),
2546
+ 'name': z.string().readonly().describe('Member to update (its CURRENT name).'),
2547
+ 'rename': z.string().readonly().optional().describe('Rename: the new'),
2548
+ 'instructions': z.union([z.literal(null), z.string()]).readonly().optional().describe('New role instructions; null (or a blank string) CLEARS them.'),
2549
+ 'role': z.union([z.literal(null), z.string()]).readonly().optional().describe('New public role; null (or a blank string) CLEARS it.'),
2550
+ 'cwd': z.union([z.literal(null), z.string()]).readonly().optional().describe('New member-level cwd; null (or a blank string) CLEARS the override back to inheriting the room cwd.'),
2551
+ 'model': z.union([z.literal(null), z.string()]).readonly().optional().describe('New intended model (roster-recorded; the first dispatch binds it as the facade start\'s `model` option); null (or a blank string) CLEARS it back to following the harness default.'),
2552
+ 'effort': z.union([z.literal(null), z.string()]).readonly().optional().describe('New intended reasoning effort (roster-recorded, bound like the model on the first dispatch); null (or a blank string) CLEARS it back to following the harness default.'),
2553
+ }))
1338
2554
 
1339
- export const TYPERT = {
2555
+ const $remote = createTypertRemoteInfo({
1340
2556
  package: '@khorsheed/dsh-room',
1341
- face: 'host',
1342
- schemas: [
1343
- ],
1344
- invocations: [
1345
- {
1346
- id: '@khorsheed/dsh-room#room/addTask',
2557
+ methods: {
2558
+ 'room/answerApproval': {
2559
+ service: 'room',
2560
+ description: 'The human answers a member\'s tool approval from the room.',
2561
+ invocation: { kind: 'direct' },
2562
+ parameters: [
2563
+ {
2564
+ name: 'request',
2565
+ description: 'room session, approval id, allow once or reject.',
2566
+ source: 'json',
2567
+ codec: {
2568
+ mode: 'strict',
2569
+ typeSymbol: '@khorsheed/dsh-room/types#RoomAnswerApprovalRequest',
2570
+ create: _khorsheed_dsh_room_room_answerApproval_parameter_0$schema,
2571
+ schema: _khorsheed_dsh_room_room_answerApproval_parameter_0$schema(),
2572
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"id":{"type":"string"},"outcome":{"type":"string","enum":["rejected","allowed-once"]}},"required":["sessionId","id","outcome"],"additionalProperties":true},
2573
+ },
2574
+ strictCodec: {
2575
+ mode: 'strict',
2576
+ typeSymbol: '@khorsheed/dsh-room/types#RoomAnswerApprovalRequest',
2577
+ create: _khorsheed_dsh_room_room_answerApproval_parameter_0_strict$schema,
2578
+ schema: _khorsheed_dsh_room_room_answerApproval_parameter_0_strict$schema(),
2579
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"id":{"type":"string"},"outcome":{"type":"string","enum":["rejected","allowed-once"]}},"required":["sessionId","id","outcome"],"additionalProperties":false},
2580
+ },
2581
+ },
2582
+ ],
2583
+ result: {
2584
+ mode: 'strict',
2585
+ typeSymbol: '@khorsheed/dsh-room/types#RoomAnswerApprovalResult',
2586
+ create: _khorsheed_dsh_room_room_answerApproval_result$schema,
2587
+ schema: _khorsheed_dsh_room_room_answerApproval_result$schema(),
2588
+ description: 'ok, or `approval-not-pending` when it already ended.',
2589
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
2590
+ },
2591
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1766,"column":9},
2592
+ },
2593
+ 'room/answerQuestion': {
1347
2594
  service: 'room',
1348
- namespace: 'room',
1349
- method: 'addTask',
2595
+ description: 'The human answers a member\'s question card from the room.',
1350
2596
  invocation: { kind: 'direct' },
1351
2597
  parameters: [
1352
2598
  {
1353
2599
  name: 'request',
1354
- wire: 'request',
2600
+ description: 'room session, card id, one answer per question.',
1355
2601
  source: 'json',
1356
2602
  codec: {
1357
2603
  mode: 'strict',
1358
- typeSymbol: '@khorsheed/dsh-room/types#RoomAddTaskRequest',
1359
- create: _khorsheed_dsh_room_room_addTask_parameter_0$schema,
1360
- schema: _khorsheed_dsh_room_room_addTask_parameter_0$schema(),
2604
+ typeSymbol: '@khorsheed/dsh-room/types#RoomAnswerQuestionRequest',
2605
+ create: _khorsheed_dsh_room_room_answerQuestion_parameter_0$schema,
2606
+ schema: _khorsheed_dsh_room_room_answerQuestion_parameter_0$schema(),
2607
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"id":{"type":"string"},"answers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"selected":{"type":"array","items":{"type":"string"}},"custom":{"type":"string"}},"required":["id","selected"],"additionalProperties":true}}},"required":["sessionId","id","answers"],"additionalProperties":true},
2608
+ },
2609
+ strictCodec: {
2610
+ mode: 'strict',
2611
+ typeSymbol: '@khorsheed/dsh-room/types#RoomAnswerQuestionRequest',
2612
+ create: _khorsheed_dsh_room_room_answerQuestion_parameter_0_strict$schema,
2613
+ schema: _khorsheed_dsh_room_room_answerQuestion_parameter_0_strict$schema(),
2614
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"id":{"type":"string"},"answers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"selected":{"type":"array","items":{"type":"string"}},"custom":{"type":"string"}},"required":["id","selected"],"additionalProperties":false}}},"required":["sessionId","id","answers"],"additionalProperties":false},
1361
2615
  },
1362
2616
  },
1363
2617
  ],
1364
2618
  result: {
1365
2619
  mode: 'strict',
1366
- typeSymbol: '@khorsheed/dsh-room/types#RoomAddTaskResult',
1367
- create: _khorsheed_dsh_room_room_addTask_result$schema,
1368
- schema: _khorsheed_dsh_room_room_addTask_result$schema(),
2620
+ typeSymbol: '@khorsheed/dsh-room/types#RoomAnswerQuestionResult',
2621
+ create: _khorsheed_dsh_room_room_answerQuestion_result$schema,
2622
+ schema: _khorsheed_dsh_room_room_answerQuestion_result$schema(),
2623
+ description: 'ok, or `question-not-pending` when it already ended.',
2624
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1369
2625
  },
1370
- sourceLocation: {"file":"packages/room/src/index.ts","line":948,"column":9},
2626
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1820,"column":9},
1371
2627
  },
1372
- {
1373
- id: '@khorsheed/dsh-room#room/cancel',
2628
+ 'room/cancel': {
1374
2629
  service: 'room',
1375
- namespace: 'room',
1376
- method: 'cancel',
2630
+ description: 'Cancel a member\'s in-flight run through the local-agent facade. A hit journals the terminal `cancelled` edge immediately (the engine\'s own settle for that run then no-ops); a miss — no facade, no delegation handle, or nothing in flight — journals nothing and reports `cancelled: false`.',
1377
2631
  invocation: { kind: 'direct' },
1378
2632
  parameters: [
1379
2633
  {
1380
2634
  name: 'request',
1381
- wire: 'request',
2635
+ description: 'room session, member name.',
1382
2636
  source: 'json',
1383
2637
  codec: {
1384
2638
  mode: 'strict',
1385
2639
  typeSymbol: '@khorsheed/dsh-room/types#RoomCancelRequest',
1386
2640
  create: _khorsheed_dsh_room_room_cancel_parameter_0$schema,
1387
2641
  schema: _khorsheed_dsh_room_room_cancel_parameter_0$schema(),
2642
+ jsonSchema: {"type":"object","properties":{"expectedRunId":{"type":"string","description":"Optional fencing for an execution card; a stale card must never stop a successor."},"expectedStartedAt":{"type":"number"},"sessionId":{"type":"string","description":"Room session."},"name":{"type":"string","description":"Member whose run should be cancelled."}},"required":["sessionId","name"],"additionalProperties":true},
2643
+ },
2644
+ strictCodec: {
2645
+ mode: 'strict',
2646
+ typeSymbol: '@khorsheed/dsh-room/types#RoomCancelRequest',
2647
+ create: _khorsheed_dsh_room_room_cancel_parameter_0_strict$schema,
2648
+ schema: _khorsheed_dsh_room_room_cancel_parameter_0_strict$schema(),
2649
+ jsonSchema: {"type":"object","properties":{"expectedRunId":{"type":"string","description":"Optional fencing for an execution card; a stale card must never stop a successor."},"expectedStartedAt":{"type":"number"},"sessionId":{"type":"string","description":"Room session."},"name":{"type":"string","description":"Member whose run should be cancelled."}},"required":["sessionId","name"],"additionalProperties":false},
1388
2650
  },
1389
2651
  },
1390
2652
  ],
@@ -1393,25 +2655,32 @@ export const TYPERT = {
1393
2655
  typeSymbol: '@khorsheed/dsh-room/types#RoomCancelResult',
1394
2656
  create: _khorsheed_dsh_room_room_cancel_result$schema,
1395
2657
  schema: _khorsheed_dsh_room_room_cancel_result$schema(),
2658
+ description: 'the cancellation receipt, or a rejection.',
2659
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"cancelled":{"type":"boolean","description":"True when an in-flight run was found and cancelled."}},"required":["cancelled"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1396
2660
  },
1397
- sourceLocation: {"file":"packages/room/src/index.ts","line":1053,"column":9},
2661
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2166,"column":9},
1398
2662
  },
1399
- {
1400
- id: '@khorsheed/dsh-room#room/cancelChild',
2663
+ 'room/cancelChild': {
1401
2664
  service: 'room',
1402
- namespace: 'room',
1403
- method: 'cancelChild',
2665
+ description: 'Native descendant controls share the host\'s continuation and cancellation channels.',
1404
2666
  invocation: { kind: 'direct' },
1405
2667
  parameters: [
1406
2668
  {
1407
2669
  name: 'request',
1408
- wire: 'request',
1409
2670
  source: 'json',
1410
2671
  codec: {
1411
2672
  mode: 'strict',
1412
2673
  typeSymbol: '@khorsheed/dsh-room#room/cancelChild:request',
1413
2674
  create: _khorsheed_dsh_room_room_cancelChild_parameter_0$schema,
1414
2675
  schema: _khorsheed_dsh_room_room_cancelChild_parameter_0$schema(),
2676
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"childSessionId":{"type":"string"}},"required":["sessionId","childSessionId"],"additionalProperties":true},
2677
+ },
2678
+ strictCodec: {
2679
+ mode: 'strict',
2680
+ typeSymbol: '@khorsheed/dsh-room#room/cancelChild:request',
2681
+ create: _khorsheed_dsh_room_room_cancelChild_parameter_0_strict$schema,
2682
+ schema: _khorsheed_dsh_room_room_cancelChild_parameter_0_strict$schema(),
2683
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"childSessionId":{"type":"string"}},"required":["sessionId","childSessionId"],"additionalProperties":false},
1415
2684
  },
1416
2685
  },
1417
2686
  ],
@@ -1420,79 +2689,102 @@ export const TYPERT = {
1420
2689
  typeSymbol: '@khorsheed/dsh-room/types#RoomCancelResult',
1421
2690
  create: _khorsheed_dsh_room_room_cancelChild_result$schema,
1422
2691
  schema: _khorsheed_dsh_room_room_cancelChild_result$schema(),
2692
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"cancelled":{"type":"boolean","description":"True when an in-flight run was found and cancelled."}},"required":["cancelled"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1423
2693
  },
1424
- sourceLocation: {"file":"packages/room/src/index.ts","line":1093,"column":9},
2694
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2201,"column":9},
1425
2695
  },
1426
- {
1427
- id: '@khorsheed/dsh-room#room/closeTask',
2696
+ 'room/confirmRelay': {
1428
2697
  service: 'room',
1429
- namespace: 'room',
1430
- method: 'closeTask',
2698
+ description: 'Confirm a pending relay: journal the confirmed edge and dispatch the notification to the recipient as a continuation (`{from} 给你的通知: {content}`); the engine marks the relay sent once the recipient\'s own session receives the prompt.',
1431
2699
  invocation: { kind: 'direct' },
1432
2700
  parameters: [
1433
2701
  {
1434
2702
  name: 'request',
1435
- wire: 'request',
2703
+ description: 'room session, relay id.',
1436
2704
  source: 'json',
1437
2705
  codec: {
1438
2706
  mode: 'strict',
1439
- typeSymbol: '@khorsheed/dsh-room/types#RoomCloseTaskRequest',
1440
- create: _khorsheed_dsh_room_room_closeTask_parameter_0$schema,
1441
- schema: _khorsheed_dsh_room_room_closeTask_parameter_0$schema(),
2707
+ typeSymbol: '@khorsheed/dsh-room/types#RoomRelayResolveRequest',
2708
+ create: _khorsheed_dsh_room_room_confirmRelay_parameter_0$schema,
2709
+ schema: _khorsheed_dsh_room_room_confirmRelay_parameter_0$schema(),
2710
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"relayId":{"type":"string","description":"The relay to resolve."}},"required":["sessionId","relayId"],"additionalProperties":true},
2711
+ },
2712
+ strictCodec: {
2713
+ mode: 'strict',
2714
+ typeSymbol: '@khorsheed/dsh-room/types#RoomRelayResolveRequest',
2715
+ create: _khorsheed_dsh_room_room_confirmRelay_parameter_0_strict$schema,
2716
+ schema: _khorsheed_dsh_room_room_confirmRelay_parameter_0_strict$schema(),
2717
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"relayId":{"type":"string","description":"The relay to resolve."}},"required":["sessionId","relayId"],"additionalProperties":false},
1442
2718
  },
1443
2719
  },
1444
2720
  ],
1445
2721
  result: {
1446
2722
  mode: 'strict',
1447
- typeSymbol: '@khorsheed/dsh-room/types#RoomCloseTaskResult',
1448
- create: _khorsheed_dsh_room_room_closeTask_result$schema,
1449
- schema: _khorsheed_dsh_room_room_closeTask_result$schema(),
2723
+ typeSymbol: '@khorsheed/dsh-room/types#RoomRelayResolveResult',
2724
+ create: _khorsheed_dsh_room_room_confirmRelay_result$schema,
2725
+ schema: _khorsheed_dsh_room_room_confirmRelay_result$schema(),
2726
+ description: 'the resolution receipt, or a rejection.',
2727
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"relayId":{"type":"string"}},"required":["relayId"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1450
2728
  },
1451
- sourceLocation: {"file":"packages/room/src/index.ts","line":976,"column":9},
2729
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1956,"column":9},
1452
2730
  },
1453
- {
1454
- id: '@khorsheed/dsh-room#room/confirmRelay',
2731
+ 'room/dismissHelpNudge': {
1455
2732
  service: 'room',
1456
- namespace: 'room',
1457
- method: 'confirmRelay',
2733
+ description: 'Dismiss the 加入房间成员 hint for one outside session (it never shows again).',
1458
2734
  invocation: { kind: 'direct' },
1459
2735
  parameters: [
1460
2736
  {
1461
2737
  name: 'request',
1462
- wire: 'request',
2738
+ description: 'room session, the outside session.',
1463
2739
  source: 'json',
1464
2740
  codec: {
1465
2741
  mode: 'strict',
1466
- typeSymbol: '@khorsheed/dsh-room/types#RoomRelayResolveRequest',
1467
- create: _khorsheed_dsh_room_room_confirmRelay_parameter_0$schema,
1468
- schema: _khorsheed_dsh_room_room_confirmRelay_parameter_0$schema(),
2742
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkRequest',
2743
+ create: _khorsheed_dsh_room_room_dismissHelpNudge_parameter_0$schema,
2744
+ schema: _khorsheed_dsh_room_room_dismissHelpNudge_parameter_0$schema(),
2745
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"target":{"type":"string","description":"The outside session."},"title":{"type":"string","description":"Its title (link only)."}},"required":["sessionId","target"],"additionalProperties":true},
2746
+ },
2747
+ strictCodec: {
2748
+ mode: 'strict',
2749
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkRequest',
2750
+ create: _khorsheed_dsh_room_room_dismissHelpNudge_parameter_0_strict$schema,
2751
+ schema: _khorsheed_dsh_room_room_dismissHelpNudge_parameter_0_strict$schema(),
2752
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"target":{"type":"string","description":"The outside session."},"title":{"type":"string","description":"Its title (link only)."}},"required":["sessionId","target"],"additionalProperties":false},
1469
2753
  },
1470
2754
  },
1471
2755
  ],
1472
2756
  result: {
1473
2757
  mode: 'strict',
1474
- typeSymbol: '@khorsheed/dsh-room/types#RoomRelayResolveResult',
1475
- create: _khorsheed_dsh_room_room_confirmRelay_result$schema,
1476
- schema: _khorsheed_dsh_room_room_confirmRelay_result$schema(),
2758
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkResult',
2759
+ create: _khorsheed_dsh_room_room_dismissHelpNudge_result$schema,
2760
+ schema: _khorsheed_dsh_room_room_dismissHelpNudge_result$schema(),
2761
+ description: 'ok.',
2762
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1477
2763
  },
1478
- sourceLocation: {"file":"packages/room/src/index.ts","line":905,"column":9},
2764
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2103,"column":9},
1479
2765
  },
1480
- {
1481
- id: '@khorsheed/dsh-room#room/dismissRelay',
2766
+ 'room/dismissRelay': {
1482
2767
  service: 'room',
1483
- namespace: 'room',
1484
- method: 'dismissRelay',
2768
+ description: 'Dismiss a pending relay: the notification never reaches anyone.',
1485
2769
  invocation: { kind: 'direct' },
1486
2770
  parameters: [
1487
2771
  {
1488
2772
  name: 'request',
1489
- wire: 'request',
2773
+ description: 'room session, relay id.',
1490
2774
  source: 'json',
1491
2775
  codec: {
1492
2776
  mode: 'strict',
1493
2777
  typeSymbol: '@khorsheed/dsh-room/types#RoomRelayResolveRequest',
1494
2778
  create: _khorsheed_dsh_room_room_dismissRelay_parameter_0$schema,
1495
2779
  schema: _khorsheed_dsh_room_room_dismissRelay_parameter_0$schema(),
2780
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"relayId":{"type":"string","description":"The relay to resolve."}},"required":["sessionId","relayId"],"additionalProperties":true},
2781
+ },
2782
+ strictCodec: {
2783
+ mode: 'strict',
2784
+ typeSymbol: '@khorsheed/dsh-room/types#RoomRelayResolveRequest',
2785
+ create: _khorsheed_dsh_room_room_dismissRelay_parameter_0_strict$schema,
2786
+ schema: _khorsheed_dsh_room_room_dismissRelay_parameter_0_strict$schema(),
2787
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"relayId":{"type":"string","description":"The relay to resolve."}},"required":["sessionId","relayId"],"additionalProperties":false},
1496
2788
  },
1497
2789
  },
1498
2790
  ],
@@ -1501,25 +2793,33 @@ export const TYPERT = {
1501
2793
  typeSymbol: '@khorsheed/dsh-room/types#RoomRelayResolveResult',
1502
2794
  create: _khorsheed_dsh_room_room_dismissRelay_result$schema,
1503
2795
  schema: _khorsheed_dsh_room_room_dismissRelay_result$schema(),
2796
+ description: 'the resolution receipt, or a rejection.',
2797
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"relayId":{"type":"string"}},"required":["relayId"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1504
2798
  },
1505
- sourceLocation: {"file":"packages/room/src/index.ts","line":928,"column":9},
2799
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2118,"column":9},
1506
2800
  },
1507
- {
1508
- id: '@khorsheed/dsh-room#room/getState',
2801
+ 'room/getState': {
1509
2802
  service: 'room',
1510
- namespace: 'room',
1511
- method: 'getState',
2803
+ description: 'Replay the room\'s journal into the derived state (roster, notification relays, task board, run states).',
1512
2804
  invocation: { kind: 'direct' },
1513
2805
  parameters: [
1514
2806
  {
1515
2807
  name: 'request',
1516
- wire: 'request',
2808
+ description: 'room session identity.',
1517
2809
  source: 'json',
1518
2810
  codec: {
1519
2811
  mode: 'strict',
1520
2812
  typeSymbol: '@khorsheed/dsh-room/types#RoomGetStateRequest',
1521
2813
  create: _khorsheed_dsh_room_room_getState_parameter_0$schema,
1522
2814
  schema: _khorsheed_dsh_room_room_getState_parameter_0$schema(),
2815
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session to replay."}},"required":["sessionId"],"additionalProperties":true},
2816
+ },
2817
+ strictCodec: {
2818
+ mode: 'strict',
2819
+ typeSymbol: '@khorsheed/dsh-room/types#RoomGetStateRequest',
2820
+ create: _khorsheed_dsh_room_room_getState_parameter_0_strict$schema,
2821
+ schema: _khorsheed_dsh_room_room_getState_parameter_0_strict$schema(),
2822
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session to replay."}},"required":["sessionId"],"additionalProperties":false},
1523
2823
  },
1524
2824
  },
1525
2825
  ],
@@ -1528,25 +2828,33 @@ export const TYPERT = {
1528
2828
  typeSymbol: '@khorsheed/dsh-room/types#RoomGetStateResult',
1529
2829
  create: _khorsheed_dsh_room_room_getState_result$schema,
1530
2830
  schema: _khorsheed_dsh_room_room_getState_result$schema(),
2831
+ description: 'the replayed state, or a rejection from the closed failure union.',
2832
+ jsonSchemaError: 'typert tool schema: recursive selected type requires a supported JSON value declaration',
1531
2833
  },
1532
- sourceLocation: {"file":"packages/room/src/index.ts","line":349,"column":9},
2834
+ sourceLocation: {"file":"packages/room/src/index.ts","line":767,"column":9},
1533
2835
  },
1534
- {
1535
- id: '@khorsheed/dsh-room#room/invite',
2836
+ 'room/invite': {
1536
2837
  service: 'room',
1537
- namespace: 'room',
1538
- method: 'invite',
2838
+ description: 'Invite a CLI member (the human path; see inviteMember).',
1539
2839
  invocation: { kind: 'direct' },
1540
2840
  parameters: [
1541
2841
  {
1542
2842
  name: 'request',
1543
- wire: 'request',
2843
+ description: 'room session, provider, name, optional cwd, instructions and first task.',
1544
2844
  source: 'json',
1545
2845
  codec: {
1546
2846
  mode: 'strict',
1547
2847
  typeSymbol: '@khorsheed/dsh-room/types#RoomInviteRequest',
1548
2848
  create: _khorsheed_dsh_room_room_invite_parameter_0$schema,
1549
2849
  schema: _khorsheed_dsh_room_room_invite_parameter_0$schema(),
2850
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"kind":{"type":"string","enum":["native","cli"],"description":"`cli` (default): an external CLI through the local-agent family. `native`: a DSH child agent in this host process, composing `preset`."},"preset":{"type":"string","description":"The member's mode: the host agent preset id. A native member composes it (omitted = the host default); a CLI member reaches its plugin tools through the bridge (omitted = no mode)."},"inheritPreset":{"type":"boolean","description":"With no `preset`: take the room session's own mode (the coordinator's invite default)."},"provider":{"type":"string","description":"CLI provider id (non-blank)."},"name":{"type":"string","description":"Addressing/display name: unique in the room, no whitespace, no `@`."},"instructions":{"type":"string","description":"Role instructions, prepended to the member's first dispatch."},"role":{"type":"string","description":"Short public role (≤ 30 chars); blank/omitted = none."},"cwd":{"type":"string","description":"Member-level working directory (empty/omitted = inherits the room session's cwd). Recorded on the roster; not yet passed to the delegation facade (family need R2 pending)."},"firstTask":{"type":"string","description":"Optional first task, dispatched to the member as soon as it joins."},"note":{"type":"string","description":"What the inviter waits for when the first task reports (see RoomDispatchEvent.note)."},"model":{"type":"string","description":"The delegation's model (blank/omitted = follow the harness default). Applies to local-agent harness providers only: it lands as the facade `start` call's `model` option, bound at spawn for exec and live alike."},"effort":{"type":"string","description":"The delegation's reasoning effort (blank/omitted = follow the harness default): the facade `start` call's `effort` option, bound at spawn alongside the model."}},"required":["sessionId","provider","name"],"additionalProperties":true},
2851
+ },
2852
+ strictCodec: {
2853
+ mode: 'strict',
2854
+ typeSymbol: '@khorsheed/dsh-room/types#RoomInviteRequest',
2855
+ create: _khorsheed_dsh_room_room_invite_parameter_0_strict$schema,
2856
+ schema: _khorsheed_dsh_room_room_invite_parameter_0_strict$schema(),
2857
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"kind":{"type":"string","enum":["native","cli"],"description":"`cli` (default): an external CLI through the local-agent family. `native`: a DSH child agent in this host process, composing `preset`."},"preset":{"type":"string","description":"The member's mode: the host agent preset id. A native member composes it (omitted = the host default); a CLI member reaches its plugin tools through the bridge (omitted = no mode)."},"inheritPreset":{"type":"boolean","description":"With no `preset`: take the room session's own mode (the coordinator's invite default)."},"provider":{"type":"string","description":"CLI provider id (non-blank)."},"name":{"type":"string","description":"Addressing/display name: unique in the room, no whitespace, no `@`."},"instructions":{"type":"string","description":"Role instructions, prepended to the member's first dispatch."},"role":{"type":"string","description":"Short public role (≤ 30 chars); blank/omitted = none."},"cwd":{"type":"string","description":"Member-level working directory (empty/omitted = inherits the room session's cwd). Recorded on the roster; not yet passed to the delegation facade (family need R2 pending)."},"firstTask":{"type":"string","description":"Optional first task, dispatched to the member as soon as it joins."},"note":{"type":"string","description":"What the inviter waits for when the first task reports (see RoomDispatchEvent.note)."},"model":{"type":"string","description":"The delegation's model (blank/omitted = follow the harness default). Applies to local-agent harness providers only: it lands as the facade `start` call's `model` option, bound at spawn for exec and live alike."},"effort":{"type":"string","description":"The delegation's reasoning effort (blank/omitted = follow the harness default): the facade `start` call's `effort` option, bound at spawn alongside the model."}},"required":["sessionId","provider","name"],"additionalProperties":false},
1550
2858
  },
1551
2859
  },
1552
2860
  ],
@@ -1555,25 +2863,33 @@ export const TYPERT = {
1555
2863
  typeSymbol: '@khorsheed/dsh-room/types#RoomInviteResult',
1556
2864
  create: _khorsheed_dsh_room_room_invite_result$schema,
1557
2865
  schema: _khorsheed_dsh_room_room_invite_result$schema(),
2866
+ description: 'the invitation receipt, or a rejection.',
2867
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"name":{"type":"string","description":"The accepted member name."},"pendingFirstTask":{"type":"boolean","description":"True when a first task was supplied and dispatched with the invitation."},"preset":{"type":"string","description":"The member's mode (preset id), when it has one."}},"required":["name","pendingFirstTask"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1558
2868
  },
1559
- sourceLocation: {"file":"packages/room/src/index.ts","line":450,"column":3},
2869
+ sourceLocation: {"file":"packages/room/src/index.ts","line":909,"column":3},
1560
2870
  },
1561
- {
1562
- id: '@khorsheed/dsh-room#room/isRoom',
2871
+ 'room/isRoom': {
1563
2872
  service: 'room',
1564
- namespace: 'room',
1565
- method: 'isRoom',
2873
+ description: 'Probe whether a session is a room: replay its event log looking for the `room/created` marker. Side-effect-free: a cold session answers from a persistence inspection, so opening any session never resumes its agent.',
1566
2874
  invocation: { kind: 'direct' },
1567
2875
  parameters: [
1568
2876
  {
1569
2877
  name: 'request',
1570
- wire: 'request',
2878
+ description: 'session identity.',
1571
2879
  source: 'json',
1572
2880
  codec: {
1573
2881
  mode: 'strict',
1574
2882
  typeSymbol: '@khorsheed/dsh-room/types#RoomIsRoomRequest',
1575
2883
  create: _khorsheed_dsh_room_room_isRoom_parameter_0$schema,
1576
2884
  schema: _khorsheed_dsh_room_room_isRoom_parameter_0$schema(),
2885
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Session to probe."}},"required":["sessionId"],"additionalProperties":true},
2886
+ },
2887
+ strictCodec: {
2888
+ mode: 'strict',
2889
+ typeSymbol: '@khorsheed/dsh-room/types#RoomIsRoomRequest',
2890
+ create: _khorsheed_dsh_room_room_isRoom_parameter_0_strict$schema,
2891
+ schema: _khorsheed_dsh_room_room_isRoom_parameter_0_strict$schema(),
2892
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Session to probe."}},"required":["sessionId"],"additionalProperties":false},
1577
2893
  },
1578
2894
  },
1579
2895
  ],
@@ -1582,25 +2898,67 @@ export const TYPERT = {
1582
2898
  typeSymbol: '@khorsheed/dsh-room#room/isRoom:result',
1583
2899
  create: _khorsheed_dsh_room_room_isRoom_result$schema,
1584
2900
  schema: _khorsheed_dsh_room_room_isRoom_result$schema(),
2901
+ description: 'true when the session carries the marker (false for unknown sessions too).',
2902
+ jsonSchema: {"type":"boolean"},
2903
+ },
2904
+ sourceLocation: {"file":"packages/room/src/index.ts","line":444,"column":9},
2905
+ },
2906
+ 'room/linkSession': {
2907
+ service: 'room',
2908
+ description: 'Keep an outside session on the member list (「加入房间成员」): only a shortcut for asking it — it stays in its own session, asks still go through room_help, and its usage stays its own.',
2909
+ invocation: { kind: 'direct' },
2910
+ parameters: [
2911
+ {
2912
+ name: 'request',
2913
+ description: 'room session, the outside session and its title.',
2914
+ source: 'json',
2915
+ codec: {
2916
+ mode: 'strict',
2917
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkRequest',
2918
+ create: _khorsheed_dsh_room_room_linkSession_parameter_0$schema,
2919
+ schema: _khorsheed_dsh_room_room_linkSession_parameter_0$schema(),
2920
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"target":{"type":"string","description":"The outside session."},"title":{"type":"string","description":"Its title (link only)."}},"required":["sessionId","target"],"additionalProperties":true},
2921
+ },
2922
+ strictCodec: {
2923
+ mode: 'strict',
2924
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkRequest',
2925
+ create: _khorsheed_dsh_room_room_linkSession_parameter_0_strict$schema,
2926
+ schema: _khorsheed_dsh_room_room_linkSession_parameter_0_strict$schema(),
2927
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"target":{"type":"string","description":"The outside session."},"title":{"type":"string","description":"Its title (link only)."}},"required":["sessionId","target"],"additionalProperties":false},
2928
+ },
2929
+ },
2930
+ ],
2931
+ result: {
2932
+ mode: 'strict',
2933
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkResult',
2934
+ create: _khorsheed_dsh_room_room_linkSession_result$schema,
2935
+ schema: _khorsheed_dsh_room_room_linkSession_result$schema(),
2936
+ description: 'ok, or a rejection.',
2937
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1585
2938
  },
1586
- sourceLocation: {"file":"packages/room/src/index.ts","line":272,"column":9},
2939
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2069,"column":9},
1587
2940
  },
1588
- {
1589
- id: '@khorsheed/dsh-room#room/listProviders',
2941
+ 'room/listProviders': {
1590
2942
  service: 'room',
1591
- namespace: 'room',
1592
- method: 'listProviders',
2943
+ description: 'List the invitable CLI providers: the local-agent roster with each harness\'s auth state, plus the delegation-facade verdict (absent facade = CLI members undispatchable; the dialog greys the section instead of failing). Harnesses without a delegation provider are record-only and are not invitable.',
1593
2944
  invocation: { kind: 'direct' },
1594
2945
  parameters: [
1595
2946
  {
1596
- name: '_request',
1597
- wire: '_request',
2947
+ name: 'request',
1598
2948
  source: 'json',
1599
2949
  codec: {
1600
2950
  mode: 'strict',
1601
2951
  typeSymbol: '@khorsheed/dsh-room/types#RoomListProvidersRequest',
1602
2952
  create: _khorsheed_dsh_room_room_listProviders_parameter_0$schema,
1603
2953
  schema: _khorsheed_dsh_room_room_listProviders_parameter_0$schema(),
2954
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"The session the invite is for: the result then carries its mode (`sessionPreset`)."}},"required":[],"additionalProperties":true},
2955
+ },
2956
+ strictCodec: {
2957
+ mode: 'strict',
2958
+ typeSymbol: '@khorsheed/dsh-room/types#RoomListProvidersRequest',
2959
+ create: _khorsheed_dsh_room_room_listProviders_parameter_0_strict$schema,
2960
+ schema: _khorsheed_dsh_room_room_listProviders_parameter_0_strict$schema(),
2961
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"The session the invite is for: the result then carries its mode (`sessionPreset`)."}},"required":[],"additionalProperties":false},
1604
2962
  },
1605
2963
  },
1606
2964
  ],
@@ -1609,25 +2967,32 @@ export const TYPERT = {
1609
2967
  typeSymbol: '@khorsheed/dsh-room/types#RoomProviderList',
1610
2968
  create: _khorsheed_dsh_room_room_listProviders_result$schema,
1611
2969
  schema: _khorsheed_dsh_room_room_listProviders_result$schema(),
2970
+ description: 'the provider list and the facade verdict.',
2971
+ jsonSchema: {"type":"object","properties":{"localAgentAvailable":{"type":"boolean","description":"False when the local-agent delegation facade is absent (CLI members undispatchable)."},"providers":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","description":"The provider id invite/dispatch uses (the harness's delegationProvider)."},"displayName":{"type":"string"},"harness":{"type":"string","description":"The roster harness name — the lookup key for the localAgentGateway `harnessModel` read (the invite dialog's model picker). Absent only on a pre-model-broker family core; the dialog then serves a plain text input."},"authenticated":{"type":"boolean","description":"Whether the harness's scoped home holds usable credentials."}},"required":["provider","displayName","authenticated"],"additionalProperties":true}},"presets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isDefault":{"type":"boolean"},"broken":{"type":"string","description":"Why the preset cannot be composed right now."}},"required":["id","isDefault"],"additionalProperties":true},"description":"The host's agent presets a native DSH member may compose; absent when the composition mounts no preset registry (native members then run the plain composition)."},"sessionPreset":{"type":"string","description":"The requested session's own mode (preset id), when known: the dialog's default mode."}},"required":["localAgentAvailable","providers"],"additionalProperties":true},
1612
2972
  },
1613
- sourceLocation: {"file":"packages/room/src/index.ts","line":321,"column":9},
2973
+ sourceLocation: {"file":"packages/room/src/index.ts","line":493,"column":9},
1614
2974
  },
1615
- {
1616
- id: '@khorsheed/dsh-room#room/planCommand',
2975
+ 'room/planCommand': {
1617
2976
  service: 'room',
1618
- namespace: 'room',
1619
- method: 'planCommand',
2977
+ description: 'Human UI and native/external tools share the same durable transition service.',
1620
2978
  invocation: { kind: 'direct' },
1621
2979
  parameters: [
1622
2980
  {
1623
2981
  name: 'request',
1624
- wire: 'request',
1625
2982
  source: 'json',
1626
2983
  codec: {
1627
2984
  mode: 'strict',
1628
2985
  typeSymbol: '@khorsheed/dsh-room#room/planCommand:request',
1629
2986
  create: _khorsheed_dsh_room_room_planCommand_parameter_0$schema,
1630
2987
  schema: _khorsheed_dsh_room_room_planCommand_parameter_0$schema(),
2988
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"command":{"type":"string"}},"required":["sessionId","command"],"additionalProperties":true},
2989
+ },
2990
+ strictCodec: {
2991
+ mode: 'strict',
2992
+ typeSymbol: '@khorsheed/dsh-room#room/planCommand:request',
2993
+ create: _khorsheed_dsh_room_room_planCommand_parameter_0_strict$schema,
2994
+ schema: _khorsheed_dsh_room_room_planCommand_parameter_0_strict$schema(),
2995
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"command":{"type":"string"}},"required":["sessionId","command"],"additionalProperties":false},
1631
2996
  },
1632
2997
  },
1633
2998
  ],
@@ -1636,25 +3001,32 @@ export const TYPERT = {
1636
3001
  typeSymbol: '@khorsheed/dsh-room#room/planCommand:result',
1637
3002
  create: _khorsheed_dsh_room_room_planCommand_result$schema,
1638
3003
  schema: _khorsheed_dsh_room_room_planCommand_result$schema(),
3004
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"message":{"type":"string"}},"required":["ok","message"],"additionalProperties":true}]},
1639
3005
  },
1640
- sourceLocation: {"file":"packages/room/src/index.ts","line":789,"column":9},
3006
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1666,"column":9},
1641
3007
  },
1642
- {
1643
- id: '@khorsheed/dsh-room#room/postMessage',
3008
+ 'room/postMessage': {
1644
3009
  service: 'room',
1645
- namespace: 'room',
1646
- method: 'postMessage',
3010
+ description: 'Post a human',
1647
3011
  invocation: { kind: 'direct' },
1648
3012
  parameters: [
1649
3013
  {
1650
3014
  name: 'request',
1651
- wire: 'request',
3015
+ description: 'room session, raw composer text, and the menu-picked addressees.',
1652
3016
  source: 'json',
1653
3017
  codec: {
1654
3018
  mode: 'strict',
1655
3019
  typeSymbol: '@khorsheed/dsh-room/types#RoomPostMessageRequest',
1656
3020
  create: _khorsheed_dsh_room_room_postMessage_parameter_0$schema,
1657
3021
  schema: _khorsheed_dsh_room_room_postMessage_parameter_0$schema(),
3022
+ jsonSchema: {"type":"object","properties":{"requestId":{"type":"string"},"sessionId":{"type":"string","description":"Room session."},"text":{"type":"string","description":"Raw composer text: leading `@name` tokens address members."},"targets":{"type":"array","items":{"type":"string"},"description":"Menu-picked addressees (the room composer's mention menu records a pick as explicit addressing even when the `@name` sits mid-sentence). Unioned with the parsed leading tokens and validated against the roster the same way; the text itself is dispatched verbatim either way."},"task":{"type":"string","description":"The composer's task tag: `new` or a task root id (see RoomSetTaskHintRequest)."}},"required":["sessionId","text"],"additionalProperties":true},
3023
+ },
3024
+ strictCodec: {
3025
+ mode: 'strict',
3026
+ typeSymbol: '@khorsheed/dsh-room/types#RoomPostMessageRequest',
3027
+ create: _khorsheed_dsh_room_room_postMessage_parameter_0_strict$schema,
3028
+ schema: _khorsheed_dsh_room_room_postMessage_parameter_0_strict$schema(),
3029
+ jsonSchema: {"type":"object","properties":{"requestId":{"type":"string"},"sessionId":{"type":"string","description":"Room session."},"text":{"type":"string","description":"Raw composer text: leading `@name` tokens address members."},"targets":{"type":"array","items":{"type":"string"},"description":"Menu-picked addressees (the room composer's mention menu records a pick as explicit addressing even when the `@name` sits mid-sentence). Unioned with the parsed leading tokens and validated against the roster the same way; the text itself is dispatched verbatim either way."},"task":{"type":"string","description":"The composer's task tag: `new` or a task root id (see RoomSetTaskHintRequest)."}},"required":["sessionId","text"],"additionalProperties":false},
1658
3030
  },
1659
3031
  },
1660
3032
  ],
@@ -1663,25 +3035,32 @@ export const TYPERT = {
1663
3035
  typeSymbol: '@khorsheed/dsh-room/types#RoomPostMessageResult',
1664
3036
  create: _khorsheed_dsh_room_room_postMessage_result$schema,
1665
3037
  schema: _khorsheed_dsh_room_room_postMessage_result$schema(),
3038
+ description: 'the parse receipt, or a rejection.',
3039
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"parsed":{"type":"object","properties":{"targets":{"type":"array","items":{"type":"string"},"description":"Addressed members (never empty — a bare message is a `no-targets` rejection)."},"text":{"type":"string","description":"The message body with the leading"}},"required":["targets","text"],"additionalProperties":true},"seq":{"type":"number","description":"Seq of the appended journal event."}},"required":["parsed","seq"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1666
3040
  },
1667
- sourceLocation: {"file":"packages/room/src/index.ts","line":668,"column":9},
3041
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1187,"column":9},
1668
3042
  },
1669
- {
1670
- id: '@khorsheed/dsh-room#room/prepareMember',
3043
+ 'room/prepareMember': {
1671
3044
  service: 'room',
1672
- namespace: 'room',
1673
- method: 'prepareMember',
3045
+ description: 'Native preparation creates no unrelated conversation turn and leaves the role unchanged.',
1674
3046
  invocation: { kind: 'direct' },
1675
3047
  parameters: [
1676
3048
  {
1677
3049
  name: 'request',
1678
- wire: 'request',
1679
3050
  source: 'json',
1680
3051
  codec: {
1681
3052
  mode: 'strict',
1682
3053
  typeSymbol: '@khorsheed/dsh-room/types#RoomPrepareMemberRequest',
1683
3054
  create: _khorsheed_dsh_room_room_prepareMember_parameter_0$schema,
1684
3055
  schema: _khorsheed_dsh_room_room_prepareMember_parameter_0$schema(),
3056
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"name":{"type":"string"}},"required":["sessionId","name"],"additionalProperties":true},
3057
+ },
3058
+ strictCodec: {
3059
+ mode: 'strict',
3060
+ typeSymbol: '@khorsheed/dsh-room/types#RoomPrepareMemberRequest',
3061
+ create: _khorsheed_dsh_room_room_prepareMember_parameter_0_strict$schema,
3062
+ schema: _khorsheed_dsh_room_room_prepareMember_parameter_0_strict$schema(),
3063
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"name":{"type":"string"}},"required":["sessionId","name"],"additionalProperties":false},
1685
3064
  },
1686
3065
  },
1687
3066
  ],
@@ -1690,25 +3069,31 @@ export const TYPERT = {
1690
3069
  typeSymbol: '@khorsheed/dsh-room/types#RoomPrepareMemberResult',
1691
3070
  create: _khorsheed_dsh_room_room_prepareMember_result$schema,
1692
3071
  schema: _khorsheed_dsh_room_room_prepareMember_result$schema(),
3072
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"childSessionId":{"type":"string"}},"required":["childSessionId"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1693
3073
  },
1694
- sourceLocation: {"file":"packages/room/src/index.ts","line":518,"column":9},
3074
+ sourceLocation: {"file":"packages/room/src/index.ts","line":987,"column":9},
1695
3075
  },
1696
- {
1697
- id: '@khorsheed/dsh-room#room/reconcileDelivery',
3076
+ 'room/reconcileDelivery': {
1698
3077
  service: 'room',
1699
- namespace: 'room',
1700
- method: 'reconcileDelivery',
3078
+ description: 'A human records the known result before releasing a crashed member\'s queued work.',
1701
3079
  invocation: { kind: 'direct' },
1702
3080
  parameters: [
1703
3081
  {
1704
3082
  name: 'request',
1705
- wire: 'request',
1706
3083
  source: 'json',
1707
3084
  codec: {
1708
3085
  mode: 'strict',
1709
3086
  typeSymbol: '@khorsheed/dsh-room/types#RoomReconcileDeliveryRequest',
1710
3087
  create: _khorsheed_dsh_room_room_reconcileDelivery_parameter_0$schema,
1711
3088
  schema: _khorsheed_dsh_room_room_reconcileDelivery_parameter_0$schema(),
3089
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"deliveryId":{"type":"string"},"outcome":{"type":"string","enum":["cancelled","done"]},"evidence":{"type":"string"}},"required":["sessionId","deliveryId","outcome","evidence"],"additionalProperties":true},
3090
+ },
3091
+ strictCodec: {
3092
+ mode: 'strict',
3093
+ typeSymbol: '@khorsheed/dsh-room/types#RoomReconcileDeliveryRequest',
3094
+ create: _khorsheed_dsh_room_room_reconcileDelivery_parameter_0_strict$schema,
3095
+ schema: _khorsheed_dsh_room_room_reconcileDelivery_parameter_0_strict$schema(),
3096
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"deliveryId":{"type":"string"},"outcome":{"type":"string","enum":["cancelled","done"]},"evidence":{"type":"string"}},"required":["sessionId","deliveryId","outcome","evidence"],"additionalProperties":false},
1712
3097
  },
1713
3098
  },
1714
3099
  ],
@@ -1717,25 +3102,67 @@ export const TYPERT = {
1717
3102
  typeSymbol: '@khorsheed/dsh-room/types#RoomReconcileDeliveryResult',
1718
3103
  create: _khorsheed_dsh_room_room_reconcileDelivery_result$schema,
1719
3104
  schema: _khorsheed_dsh_room_room_reconcileDelivery_result$schema(),
3105
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
3106
+ },
3107
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1013,"column":9},
3108
+ },
3109
+ 'room/releaseReports': {
3110
+ service: 'room',
3111
+ description: 'Hand a member the reports the gate holds for it now (the room\'s 「现在交给」 button).',
3112
+ invocation: { kind: 'direct' },
3113
+ parameters: [
3114
+ {
3115
+ name: 'request',
3116
+ description: 'room session, member name.',
3117
+ source: 'json',
3118
+ codec: {
3119
+ mode: 'strict',
3120
+ typeSymbol: '@khorsheed/dsh-room/types#RoomReleaseReportsRequest',
3121
+ create: _khorsheed_dsh_room_room_releaseReports_parameter_0$schema,
3122
+ schema: _khorsheed_dsh_room_room_releaseReports_parameter_0$schema(),
3123
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"name":{"type":"string"}},"required":["sessionId","name"],"additionalProperties":true},
3124
+ },
3125
+ strictCodec: {
3126
+ mode: 'strict',
3127
+ typeSymbol: '@khorsheed/dsh-room/types#RoomReleaseReportsRequest',
3128
+ create: _khorsheed_dsh_room_room_releaseReports_parameter_0_strict$schema,
3129
+ schema: _khorsheed_dsh_room_room_releaseReports_parameter_0_strict$schema(),
3130
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"name":{"type":"string"}},"required":["sessionId","name"],"additionalProperties":false},
3131
+ },
3132
+ },
3133
+ ],
3134
+ result: {
3135
+ mode: 'strict',
3136
+ typeSymbol: '@khorsheed/dsh-room/types#RoomReleaseReportsResult',
3137
+ create: _khorsheed_dsh_room_room_releaseReports_result$schema,
3138
+ schema: _khorsheed_dsh_room_room_releaseReports_result$schema(),
3139
+ description: 'whether anything was held.',
3140
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"released":{"type":"boolean"}},"required":["released"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1720
3141
  },
1721
- sourceLocation: {"file":"packages/room/src/index.ts","line":544,"column":9},
3142
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2001,"column":9},
1722
3143
  },
1723
- {
1724
- id: '@khorsheed/dsh-room#room/removeMember',
3144
+ 'room/removeMember': {
1725
3145
  service: 'room',
1726
- namespace: 'room',
1727
- method: 'removeMember',
3146
+ description: 'Remove a member and settle everything that depended on it, so the confirmation\'s promises hold: a running round is stopped first (the same cancel the stop button uses), queued messages to it are cancelled, every member waiting for one of its reports is told it will not come, and only then does it leave the roster. Its own session and history stay; {@link restoreMember} brings it back onto them.',
1728
3147
  invocation: { kind: 'direct' },
1729
3148
  parameters: [
1730
3149
  {
1731
3150
  name: 'request',
1732
- wire: 'request',
3151
+ description: 'room session, member name.',
1733
3152
  source: 'json',
1734
3153
  codec: {
1735
3154
  mode: 'strict',
1736
3155
  typeSymbol: '@khorsheed/dsh-room/types#RoomRemoveMemberRequest',
1737
3156
  create: _khorsheed_dsh_room_room_removeMember_parameter_0$schema,
1738
3157
  schema: _khorsheed_dsh_room_room_removeMember_parameter_0$schema(),
3158
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"name":{"type":"string","description":"Member to remove."}},"required":["sessionId","name"],"additionalProperties":true},
3159
+ },
3160
+ strictCodec: {
3161
+ mode: 'strict',
3162
+ typeSymbol: '@khorsheed/dsh-room/types#RoomRemoveMemberRequest',
3163
+ create: _khorsheed_dsh_room_room_removeMember_parameter_0_strict$schema,
3164
+ schema: _khorsheed_dsh_room_room_removeMember_parameter_0_strict$schema(),
3165
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"name":{"type":"string","description":"Member to remove."}},"required":["sessionId","name"],"additionalProperties":false},
1739
3166
  },
1740
3167
  },
1741
3168
  ],
@@ -1744,25 +3171,67 @@ export const TYPERT = {
1744
3171
  typeSymbol: '@khorsheed/dsh-room/types#RoomRemoveMemberResult',
1745
3172
  create: _khorsheed_dsh_room_room_removeMember_result$schema,
1746
3173
  schema: _khorsheed_dsh_room_room_removeMember_result$schema(),
3174
+ description: 'what the removal did, or a rejection.',
3175
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"name":{"type":"string"},"stopped":{"type":"boolean","description":"True when a running round was stopped first."},"cancelledDeliveries":{"type":"number","description":"Queued messages that will never be delivered."},"notified":{"type":"array","items":{"type":"string"},"description":"Members that were waiting for a report and were told instead."}},"required":["name","stopped","cancelledDeliveries","notified"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
3176
+ },
3177
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1098,"column":9},
3178
+ },
3179
+ 'room/restoreMember': {
3180
+ service: 'room',
3181
+ description: 'Undo a removal: the member rejoins under its old identity, provider, role, instructions and native session, so its memory carries on. Work the removal cancelled stays cancelled. Rejected when the name was taken in between or the member was never removed.',
3182
+ invocation: { kind: 'direct' },
3183
+ parameters: [
3184
+ {
3185
+ name: 'request',
3186
+ description: 'room session, the removed member\'s name.',
3187
+ source: 'json',
3188
+ codec: {
3189
+ mode: 'strict',
3190
+ typeSymbol: '@khorsheed/dsh-room/types#RoomRestoreMemberRequest',
3191
+ create: _khorsheed_dsh_room_room_restoreMember_parameter_0$schema,
3192
+ schema: _khorsheed_dsh_room_room_restoreMember_parameter_0$schema(),
3193
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"name":{"type":"string"}},"required":["sessionId","name"],"additionalProperties":true},
3194
+ },
3195
+ strictCodec: {
3196
+ mode: 'strict',
3197
+ typeSymbol: '@khorsheed/dsh-room/types#RoomRestoreMemberRequest',
3198
+ create: _khorsheed_dsh_room_room_restoreMember_parameter_0_strict$schema,
3199
+ schema: _khorsheed_dsh_room_room_restoreMember_parameter_0_strict$schema(),
3200
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"name":{"type":"string"}},"required":["sessionId","name"],"additionalProperties":false},
3201
+ },
3202
+ },
3203
+ ],
3204
+ result: {
3205
+ mode: 'strict',
3206
+ typeSymbol: '@khorsheed/dsh-room/types#RoomRestoreMemberResult',
3207
+ create: _khorsheed_dsh_room_room_restoreMember_result$schema,
3208
+ schema: _khorsheed_dsh_room_room_restoreMember_result$schema(),
3209
+ description: 'the restored name, or a rejection.',
3210
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1747
3211
  },
1748
- sourceLocation: {"file":"packages/room/src/index.ts","line":631,"column":9},
3212
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1137,"column":9},
1749
3213
  },
1750
- {
1751
- id: '@khorsheed/dsh-room#room/setCoordinator',
3214
+ 'room/setCoordinator': {
1752
3215
  service: 'room',
1753
- namespace: 'room',
1754
- method: 'setCoordinator',
3216
+ description: 'Explicit human role change; state is committed only after readiness and idle checks.',
1755
3217
  invocation: { kind: 'direct' },
1756
3218
  parameters: [
1757
3219
  {
1758
3220
  name: 'request',
1759
- wire: 'request',
1760
3221
  source: 'json',
1761
3222
  codec: {
1762
3223
  mode: 'strict',
1763
3224
  typeSymbol: '@khorsheed/dsh-room/types#RoomSetCoordinatorRequest',
1764
3225
  create: _khorsheed_dsh_room_room_setCoordinator_parameter_0$schema,
1765
3226
  schema: _khorsheed_dsh_room_room_setCoordinator_parameter_0$schema(),
3227
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"memberId":{"type":"string"},"expectedRevision":{"type":"number"}},"required":["sessionId","memberId","expectedRevision"],"additionalProperties":true},
3228
+ },
3229
+ strictCodec: {
3230
+ mode: 'strict',
3231
+ typeSymbol: '@khorsheed/dsh-room/types#RoomSetCoordinatorRequest',
3232
+ create: _khorsheed_dsh_room_room_setCoordinator_parameter_0_strict$schema,
3233
+ schema: _khorsheed_dsh_room_room_setCoordinator_parameter_0_strict$schema(),
3234
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"memberId":{"type":"string"},"expectedRevision":{"type":"number"}},"required":["sessionId","memberId","expectedRevision"],"additionalProperties":false},
1766
3235
  },
1767
3236
  },
1768
3237
  ],
@@ -1771,25 +3240,32 @@ export const TYPERT = {
1771
3240
  typeSymbol: '@khorsheed/dsh-room/types#RoomSetCoordinatorResult',
1772
3241
  create: _khorsheed_dsh_room_room_setCoordinator_result$schema,
1773
3242
  schema: _khorsheed_dsh_room_room_setCoordinator_result$schema(),
3243
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"version":{"type":"number","const":1},"memberId":{"type":"string"},"revision":{"type":"number"},"previousMemberId":{"type":"string"},"handoff":{"type":"string"}},"required":["version","memberId","revision","previousMemberId","handoff"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1774
3244
  },
1775
- sourceLocation: {"file":"packages/room/src/index.ts","line":561,"column":9},
3245
+ sourceLocation: {"file":"packages/room/src/index.ts","line":1030,"column":9},
1776
3246
  },
1777
- {
1778
- id: '@khorsheed/dsh-room#room/setGoal',
3247
+ 'room/setGoal': {
1779
3248
  service: 'room',
1780
- namespace: 'room',
1781
- method: 'setGoal',
3249
+ description: 'Set (or, with a blank text, clear) the room\'s goal. The goal is one journaled line — the latest `room/goal` event wins; it rides the top of the roster section in every member prompt and drives the dock\'s goal capsule. Pure display/coordination text: it never dispatches anything.',
1782
3250
  invocation: { kind: 'direct' },
1783
3251
  parameters: [
1784
3252
  {
1785
3253
  name: 'request',
1786
- wire: 'request',
3254
+ description: 'room session and goal text.',
1787
3255
  source: 'json',
1788
3256
  codec: {
1789
3257
  mode: 'strict',
1790
3258
  typeSymbol: '@khorsheed/dsh-room/types#RoomSetGoalRequest',
1791
3259
  create: _khorsheed_dsh_room_room_setGoal_parameter_0$schema,
1792
3260
  schema: _khorsheed_dsh_room_room_setGoal_parameter_0$schema(),
3261
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"text":{"type":"string","description":"Goal text; blank clears the goal."}},"required":["sessionId","text"],"additionalProperties":true},
3262
+ },
3263
+ strictCodec: {
3264
+ mode: 'strict',
3265
+ typeSymbol: '@khorsheed/dsh-room/types#RoomSetGoalRequest',
3266
+ create: _khorsheed_dsh_room_room_setGoal_parameter_0_strict$schema,
3267
+ schema: _khorsheed_dsh_room_room_setGoal_parameter_0_strict$schema(),
3268
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"text":{"type":"string","description":"Goal text; blank clears the goal."}},"required":["sessionId","text"],"additionalProperties":false},
1793
3269
  },
1794
3270
  },
1795
3271
  ],
@@ -1798,25 +3274,173 @@ export const TYPERT = {
1798
3274
  typeSymbol: '@khorsheed/dsh-room/types#RoomSetGoalResult',
1799
3275
  create: _khorsheed_dsh_room_room_setGoal_result$schema,
1800
3276
  schema: _khorsheed_dsh_room_room_setGoal_result$schema(),
3277
+ description: 'the now-current goal (absent after a clear), or a rejection.',
3278
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"goal":{"type":"string"}},"required":[],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
3279
+ },
3280
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2147,"column":9},
3281
+ },
3282
+ 'room/setSettings': {
3283
+ service: 'room',
3284
+ description: 'Change the room\'s collaboration settings (any subset). Resuming a paused room releases everything the pause held, in order.',
3285
+ invocation: { kind: 'direct' },
3286
+ parameters: [
3287
+ {
3288
+ name: 'request',
3289
+ description: 'room session and the fields to change.',
3290
+ source: 'json',
3291
+ codec: {
3292
+ mode: 'strict',
3293
+ typeSymbol: '@khorsheed/dsh-room/types#RoomSetSettingsRequest',
3294
+ create: _khorsheed_dsh_room_room_setSettings_parameter_0$schema,
3295
+ schema: _khorsheed_dsh_room_room_setSettings_parameter_0$schema(),
3296
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"reportTiming":{"type":"string","enum":["judge","each"]},"autoTaskFiling":{"type":"boolean"},"reportThreshold":{"type":"number"},"reportWaitMinutes":{"type":"number"},"helpReminderMinutes":{"type":"number","description":"10–120, in steps of 10."},"memberMessages":{"type":"string","enum":["free","confirm"]},"hopLimit":{"type":"number","description":"2–50."},"paused":{"type":"boolean"}},"required":["sessionId"],"additionalProperties":true},
3297
+ },
3298
+ strictCodec: {
3299
+ mode: 'strict',
3300
+ typeSymbol: '@khorsheed/dsh-room/types#RoomSetSettingsRequest',
3301
+ create: _khorsheed_dsh_room_room_setSettings_parameter_0_strict$schema,
3302
+ schema: _khorsheed_dsh_room_room_setSettings_parameter_0_strict$schema(),
3303
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"reportTiming":{"type":"string","enum":["judge","each"]},"autoTaskFiling":{"type":"boolean"},"reportThreshold":{"type":"number"},"reportWaitMinutes":{"type":"number"},"helpReminderMinutes":{"type":"number","description":"10–120, in steps of 10."},"memberMessages":{"type":"string","enum":["free","confirm"]},"hopLimit":{"type":"number","description":"2–50."},"paused":{"type":"boolean"}},"required":["sessionId"],"additionalProperties":false},
3304
+ },
3305
+ },
3306
+ ],
3307
+ result: {
3308
+ mode: 'strict',
3309
+ typeSymbol: '@khorsheed/dsh-room/types#RoomSetSettingsResult',
3310
+ create: _khorsheed_dsh_room_room_setSettings_result$schema,
3311
+ schema: _khorsheed_dsh_room_room_setSettings_result$schema(),
3312
+ description: 'the settings after the change, or a rejection.',
3313
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"memberMessages":{"type":"string","enum":["free","confirm"]},"hopLimit":{"type":"number"},"paused":{"type":"boolean"},"reportTiming":{"type":"string","enum":["judge","each"]},"autoTaskFiling":{"type":"boolean"},"reportThreshold":{"type":"number"},"reportWaitMinutes":{"type":"number"},"helpReminderMinutes":{"type":"number"}},"required":["memberMessages","hopLimit","paused","reportTiming","autoTaskFiling","reportThreshold","reportWaitMinutes","helpReminderMinutes"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
3314
+ },
3315
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2017,"column":9},
3316
+ },
3317
+ 'room/setTaskHint': {
3318
+ service: 'room',
3319
+ description: 'Tag the human\'s next message with a task (the task page\'s 追问 / 新任务), or clear the tag.',
3320
+ invocation: { kind: 'direct' },
3321
+ parameters: [
3322
+ {
3323
+ name: 'request',
3324
+ description: 'room session and the task root id, `new`, or null.',
3325
+ source: 'json',
3326
+ codec: {
3327
+ mode: 'strict',
3328
+ typeSymbol: '@khorsheed/dsh-room/types#RoomSetTaskHintRequest',
3329
+ create: _khorsheed_dsh_room_room_setTaskHint_parameter_0$schema,
3330
+ schema: _khorsheed_dsh_room_room_setTaskHint_parameter_0$schema(),
3331
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"task":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"`new`, a task root id, or null to clear."}},"required":["sessionId","task"],"additionalProperties":true},
3332
+ },
3333
+ strictCodec: {
3334
+ mode: 'strict',
3335
+ typeSymbol: '@khorsheed/dsh-room/types#RoomSetTaskHintRequest',
3336
+ create: _khorsheed_dsh_room_room_setTaskHint_parameter_0_strict$schema,
3337
+ schema: _khorsheed_dsh_room_room_setTaskHint_parameter_0_strict$schema(),
3338
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"task":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"`new`, a task root id, or null to clear."}},"required":["sessionId","task"],"additionalProperties":false},
3339
+ },
3340
+ },
3341
+ ],
3342
+ result: {
3343
+ mode: 'strict',
3344
+ typeSymbol: '@khorsheed/dsh-room#room/setTaskHint:result',
3345
+ create: _khorsheed_dsh_room_room_setTaskHint_result$schema,
3346
+ schema: _khorsheed_dsh_room_room_setTaskHint_result$schema(),
3347
+ description: 'acknowledgement.',
3348
+ jsonSchema: {"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":true},
3349
+ },
3350
+ sourceLocation: {"file":"packages/room/src/index.ts","line":599,"column":9},
3351
+ },
3352
+ 'room/stopJob': {
3353
+ service: 'room',
3354
+ description: 'Stop a whole task: running rounds of its deliveries are cancelled (the same cancel the stop button uses), queued and held ones never run, and ordinary rounds whose outcome a restart lost close as cancelled — the human gave up on them — which unblocks those members\' later messages.',
3355
+ invocation: { kind: 'direct' },
3356
+ parameters: [
3357
+ {
3358
+ name: 'request',
3359
+ description: 'room session and the task root id.',
3360
+ source: 'json',
3361
+ codec: {
3362
+ mode: 'strict',
3363
+ typeSymbol: '@khorsheed/dsh-room/types#RoomStopJobRequest',
3364
+ create: _khorsheed_dsh_room_room_stopJob_parameter_0$schema,
3365
+ schema: _khorsheed_dsh_room_room_stopJob_parameter_0$schema(),
3366
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"task":{"type":"string","description":"The task's root id."}},"required":["sessionId","task"],"additionalProperties":true},
3367
+ },
3368
+ strictCodec: {
3369
+ mode: 'strict',
3370
+ typeSymbol: '@khorsheed/dsh-room/types#RoomStopJobRequest',
3371
+ create: _khorsheed_dsh_room_room_stopJob_parameter_0_strict$schema,
3372
+ schema: _khorsheed_dsh_room_room_stopJob_parameter_0_strict$schema(),
3373
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"task":{"type":"string","description":"The task's root id."}},"required":["sessionId","task"],"additionalProperties":false},
3374
+ },
3375
+ },
3376
+ ],
3377
+ result: {
3378
+ mode: 'strict',
3379
+ typeSymbol: '@khorsheed/dsh-room/types#RoomStopJobResult',
3380
+ create: _khorsheed_dsh_room_room_stopJob_result$schema,
3381
+ schema: _khorsheed_dsh_room_room_stopJob_result$schema(),
3382
+ description: 'how many deliveries were stopped.',
3383
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"stopped":{"type":"number"}},"required":["stopped"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
3384
+ },
3385
+ sourceLocation: {"file":"packages/room/src/index.ts","line":614,"column":9},
3386
+ },
3387
+ 'room/unlinkSession': {
3388
+ service: 'room',
3389
+ description: 'Take an outside session off the member list (its own session is untouched).',
3390
+ invocation: { kind: 'direct' },
3391
+ parameters: [
3392
+ {
3393
+ name: 'request',
3394
+ description: 'room session, the outside session.',
3395
+ source: 'json',
3396
+ codec: {
3397
+ mode: 'strict',
3398
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkRequest',
3399
+ create: _khorsheed_dsh_room_room_unlinkSession_parameter_0$schema,
3400
+ schema: _khorsheed_dsh_room_room_unlinkSession_parameter_0$schema(),
3401
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"target":{"type":"string","description":"The outside session."},"title":{"type":"string","description":"Its title (link only)."}},"required":["sessionId","target"],"additionalProperties":true},
3402
+ },
3403
+ strictCodec: {
3404
+ mode: 'strict',
3405
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkRequest',
3406
+ create: _khorsheed_dsh_room_room_unlinkSession_parameter_0_strict$schema,
3407
+ schema: _khorsheed_dsh_room_room_unlinkSession_parameter_0_strict$schema(),
3408
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string"},"target":{"type":"string","description":"The outside session."},"title":{"type":"string","description":"Its title (link only)."}},"required":["sessionId","target"],"additionalProperties":false},
3409
+ },
3410
+ },
3411
+ ],
3412
+ result: {
3413
+ mode: 'strict',
3414
+ typeSymbol: '@khorsheed/dsh-room/types#RoomHelpLinkResult',
3415
+ create: _khorsheed_dsh_room_room_unlinkSession_result$schema,
3416
+ schema: _khorsheed_dsh_room_room_unlinkSession_result$schema(),
3417
+ description: 'ok, or `member-not-found` when it was not on the list.',
3418
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1801
3419
  },
1802
- sourceLocation: {"file":"packages/room/src/index.ts","line":1034,"column":9},
3420
+ sourceLocation: {"file":"packages/room/src/index.ts","line":2088,"column":9},
1803
3421
  },
1804
- {
1805
- id: '@khorsheed/dsh-room#room/updateMember',
3422
+ 'room/updateMember': {
1806
3423
  service: 'room',
1807
- namespace: 'room',
1808
- method: 'updateMember',
3424
+ description: 'Update a member\'s editable fields: rename (validated like an invite name — unique, parseable; the main agent is the room itself and cannot be renamed), role instructions (null or a blank text CLEARS them — later dispatches inject none), the member-level cwd override (null or a blank text clears back to inheriting the room cwd; still roster-recorded only — the delegation facade\'s per-call cwd override is the family\'s open R2), and the intended model (null or a blank text clears it back to the harness default; roster-recorded intent — the first dispatch binds it as the facade start\'s `model` option, and the live member\'s immediate switch is the client\'s localAgentGateway `setMemberModel` call, not this one). An instructions edit rides the member\'s next dispatch as a context update (the CLI session itself is never rewritten); a rename migrates every name-keyed projection at replay (the journal fold moves the roster key, tasks\' member/blockedBy, relays\' from/to, and the runs key).',
1809
3425
  invocation: { kind: 'direct' },
1810
3426
  parameters: [
1811
3427
  {
1812
3428
  name: 'request',
1813
- wire: 'request',
3429
+ description: 'room session, member name, and the fields to change.',
1814
3430
  source: 'json',
1815
3431
  codec: {
1816
3432
  mode: 'strict',
1817
3433
  typeSymbol: '@khorsheed/dsh-room/types#RoomUpdateMemberRequest',
1818
3434
  create: _khorsheed_dsh_room_room_updateMember_parameter_0$schema,
1819
3435
  schema: _khorsheed_dsh_room_room_updateMember_parameter_0$schema(),
3436
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"name":{"type":"string","description":"Member to update (its CURRENT name)."},"rename":{"type":"string","description":"Rename: the new"},"instructions":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New role instructions; null (or a blank string) CLEARS them."},"role":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New public role; null (or a blank string) CLEARS it."},"cwd":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New member-level cwd; null (or a blank string) CLEARS the override back to inheriting the room cwd."},"model":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New intended model (roster-recorded; the first dispatch binds it as the facade start's `model` option); null (or a blank string) CLEARS it back to following the harness default."},"effort":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New intended reasoning effort (roster-recorded, bound like the model on the first dispatch); null (or a blank string) CLEARS it back to following the harness default."}},"required":["sessionId","name"],"additionalProperties":true},
3437
+ },
3438
+ strictCodec: {
3439
+ mode: 'strict',
3440
+ typeSymbol: '@khorsheed/dsh-room/types#RoomUpdateMemberRequest',
3441
+ create: _khorsheed_dsh_room_room_updateMember_parameter_0_strict$schema,
3442
+ schema: _khorsheed_dsh_room_room_updateMember_parameter_0_strict$schema(),
3443
+ jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Room session."},"name":{"type":"string","description":"Member to update (its CURRENT name)."},"rename":{"type":"string","description":"Rename: the new"},"instructions":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New role instructions; null (or a blank string) CLEARS them."},"role":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New public role; null (or a blank string) CLEARS it."},"cwd":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New member-level cwd; null (or a blank string) CLEARS the override back to inheriting the room cwd."},"model":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New intended model (roster-recorded; the first dispatch binds it as the facade start's `model` option); null (or a blank string) CLEARS it back to following the harness default."},"effort":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"New intended reasoning effort (roster-recorded, bound like the model on the first dispatch); null (or a blank string) CLEARS it back to following the harness default."}},"required":["sessionId","name"],"additionalProperties":false},
1820
3444
  },
1821
3445
  },
1822
3446
  ],
@@ -1825,10 +3449,20 @@ export const TYPERT = {
1825
3449
  typeSymbol: '@khorsheed/dsh-room/types#RoomUpdateMemberResult',
1826
3450
  create: _khorsheed_dsh_room_room_updateMember_result$schema,
1827
3451
  schema: _khorsheed_dsh_room_room_updateMember_result$schema(),
3452
+ description: 'the update receipt (the CURRENT name), or a rejection.',
3453
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"value":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":true}},"required":["ok","value"],"additionalProperties":true},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","const":"request-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-cwd-bound"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"delivery-not-uncertain"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"plan-reconciliation-required"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-busy"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-not-ready"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"coordinator-conflict"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"active-coordinator"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"configuration-owned-by-core"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"session-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"not-a-room"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"duplicate-name"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-provider"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"member-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"empty-text"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"role-too-long"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"invalid-settings"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"self-message"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-task"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-preset"},"preset":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","preset","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"nothing-to-update"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"local-agent-unavailable"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-provider"},"provider":{"type":"string"},"available":{"type":"array","items":{"type":"string"}}},"required":["code","provider","available"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"unknown-targets"},"names":{"type":"array","items":{"type":"string"}}},"required":["code","names"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"no-targets"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"relay-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"approval-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"question-not-pending"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"main-member"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-not-found"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"task-closed"}},"required":["code"],"additionalProperties":true},{"type":"object","properties":{"code":{"type":"string","const":"resume-failed"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":true}]}},"required":["ok","error"],"additionalProperties":true}]},
1828
3454
  },
1829
- sourceLocation: {"file":"packages/room/src/index.ts","line":473,"column":9},
3455
+ sourceLocation: {"file":"packages/room/src/index.ts","line":932,"column":9},
1830
3456
  },
3457
+ },
3458
+ }, z)
3459
+
3460
+ export const TYPERT = {
3461
+ package: '@khorsheed/dsh-room',
3462
+ face: 'host',
3463
+ schemas: [
1831
3464
  ],
3465
+ get invocations() { return $remote.descriptors },
1832
3466
  model: {
1833
3467
  "services": [
1834
3468
  {
@@ -1837,11 +3471,11 @@ export const TYPERT = {
1837
3471
  "tags": [
1838
3472
  {
1839
3473
  "name": "",
1840
- "comment": "-message intake, the notification gate, the task board, and run cancellation. A room IS a normal session; the journal is its only state. A room is never CREATED apart from a session — inviting an agent into any session promotes it (see ensureRoom; the room-session-promotion proposal).",
1841
- "text": "@-message\n * intake, the notification gate, the task board, and run cancellation. A\n * room IS a normal session; the journal is its only state. A room is never\n * CREATED apart from a session — inviting an agent into any session promotes\n * it (see ensureRoom; the room-session-promotion proposal)."
3474
+ "comment": "-message intake, the notification gate, tasks, and run cancellation. A room IS a normal session; the journal is its only state. A room is never CREATED apart from a session — inviting an agent into any session promotes it (see ensureRoom; the room-session-promotion proposal).",
3475
+ "text": "@-message\n * intake, the notification gate, tasks, and run cancellation. A\n * room IS a normal session; the journal is its only state. A room is never\n * CREATED apart from a session — inviting an agent into any session promotes\n * it (see ensureRoom; the room-session-promotion proposal)."
1842
3476
  }
1843
3477
  ],
1844
- "jsDoc": "/**\n * room Remote service: promotion, roster management, the human @-message\n * intake, the notification gate, the task board, and run cancellation. A\n * room IS a normal session; the journal is its only state. A room is never\n * CREATED apart from a session — inviting an agent into any session promotes\n * it (see ensureRoom; the room-session-promotion proposal).\n */",
3478
+ "jsDoc": "/**\n * room Remote service: promotion, roster management, the human @-message\n * intake, the notification gate, tasks, and run cancellation. A\n * room IS a normal session; the journal is its only state. A room is never\n * CREATED apart from a session — inviting an agent into any session promotes\n * it (see ensureRoom; the room-session-promotion proposal).\n */",
1845
3479
  "key": "room",
1846
3480
  "exportName": "RoomService",
1847
3481
  "members": [
@@ -1874,10 +3508,31 @@ export const TYPERT = {
1874
3508
  {
1875
3509
  "kind": "method",
1876
3510
  "name": "listProviders",
1877
- "signature": "@Remote('listProviders') async listProviders(_request: RoomListProvidersRequest): Promise<RoomProviderList>",
3511
+ "signature": "@Remote('listProviders') async listProviders(request: RoomListProvidersRequest): Promise<RoomProviderList>",
1878
3512
  "summary": "List the invitable CLI providers: the local-agent roster with each harness's auth state, plus the delegation-facade verdict (absent facade = CLI members undispatchable; the dialog greys the section instead of failing).",
1879
3513
  "jsDoc": "/**\n * List the invitable CLI providers: the local-agent roster with each\n * harness's auth state, plus the delegation-facade verdict (absent facade =\n * CLI members undispatchable; the dialog greys the section instead of\n * failing). Harnesses without a delegation provider are record-only and\n * are not invitable.\n * @param _request - no parameters.\n * @returns the provider list and the facade verdict.\n */"
1880
3514
  },
3515
+ {
3516
+ "kind": "method",
3517
+ "name": "setTaskHint",
3518
+ "signature": "@Remote('setTaskHint') async setTaskHint(request: RoomSetTaskHintRequest): Promise<{ readonly ok: true }>",
3519
+ "summary": "Tag the human's next message with a task (the task page's 追问 / 新任务), or clear the tag.",
3520
+ "jsDoc": "/**\n * Tag the human's next message with a task (the task page's 追问 /\n * 新任务), or clear the tag.\n * @param request - room session and the task root id, `new`, or null.\n * @returns acknowledgement.\n */"
3521
+ },
3522
+ {
3523
+ "kind": "method",
3524
+ "name": "stopJob",
3525
+ "signature": "@Remote('stopJob') async stopJob(request: RoomStopJobRequest): Promise<RoomStopJobResult>",
3526
+ "summary": "Stop a whole task: running rounds of its deliveries are cancelled (the same cancel the stop button uses), queued and held ones never run, and ordinary rounds whose outcome a restart lost close as cancelled — the human gave up on them — which unblocks those members' later messages.",
3527
+ "jsDoc": "/**\n * Stop a whole task: running rounds of its deliveries are cancelled (the\n * same cancel the stop button uses), queued and held ones never run, and\n * ordinary rounds whose outcome a restart lost close as cancelled — the\n * human gave up on them — which unblocks those members' later messages.\n * @param request - room session and the task root id.\n * @returns how many deliveries were stopped.\n */"
3528
+ },
3529
+ {
3530
+ "kind": "method",
3531
+ "name": "nativeRoute",
3532
+ "signature": "nativeRoute(sessionId: string): { readonly roomId: SessionId; readonly actor: string } | undefined",
3533
+ "summary": "A native member's own session calling a room tool: the tools see the child session, so route to its room with the child as the authenticated actor instead of promoting the child into a room of its own.",
3534
+ "jsDoc": "/**\n * A native member's own session calling a room tool: the tools see the\n * child session, so route to its room with the child as the authenticated\n * actor instead of promoting the child into a room of its own.\n * @param sessionId - the calling agent's session.\n * @returns the room and actor, or undefined when the caller is no native member.\n */"
3535
+ },
1881
3536
  {
1882
3537
  "kind": "method",
1883
3538
  "name": "getState",
@@ -1931,8 +3586,15 @@ export const TYPERT = {
1931
3586
  "kind": "method",
1932
3587
  "name": "removeMember",
1933
3588
  "signature": "@Remote('removeMember') async removeMember(request: RoomRemoveMemberRequest): Promise<RoomRemoveMemberResult>",
1934
- "summary": "Remove a member from the roster.",
1935
- "jsDoc": "/**\n * Remove a member from the roster. An in-flight run is NOT interrupted\n * here — cancel() first when the member is running.\n * @param request - room session, member name.\n * @returns the removal receipt, or a rejection.\n */"
3589
+ "summary": "Remove a member and settle everything that depended on it, so the confirmation's promises hold: a running round is stopped first (the same cancel the stop button uses), queued messages to it are cancelled, every member waiting for one of its reports is told it will not come, and only then does it leave the roster.",
3590
+ "jsDoc": "/**\n * Remove a member and settle everything that depended on it, so the\n * confirmation's promises hold: a running round is stopped first (the same\n * cancel the stop button uses), queued messages to it are cancelled, every\n * member waiting for one of its reports is told it will not come, and only\n * then does it leave the roster. Its own session and history stay;\n * {@link restoreMember} brings it back onto them.\n * @param request - room session, member name.\n * @returns what the removal did, or a rejection.\n */"
3591
+ },
3592
+ {
3593
+ "kind": "method",
3594
+ "name": "restoreMember",
3595
+ "signature": "@Remote('restoreMember') async restoreMember(request: RoomRestoreMemberRequest): Promise<RoomRestoreMemberResult>",
3596
+ "summary": "Undo a removal: the member rejoins under its old identity, provider, role, instructions and native session, so its memory carries on.",
3597
+ "jsDoc": "/**\n * Undo a removal: the member rejoins under its old identity, provider,\n * role, instructions and native session, so its memory carries on. Work\n * the removal cancelled stays cancelled. Rejected when the name was taken\n * in between or the member was never removed.\n * @param request - room session, the removed member's name.\n * @returns the restored name, or a rejection.\n */"
1936
3598
  },
1937
3599
  {
1938
3600
  "kind": "method",
@@ -1945,8 +3607,22 @@ export const TYPERT = {
1945
3607
  "kind": "method",
1946
3608
  "name": "messageMember",
1947
3609
  "signature": "async messageMember(request: RoomMessageRequest, actorChildSessionId?: string): Promise<RoomMessageResult>",
1948
- "summary": "Dispatch one message to one member (host-only — the `room_message` tool's path; the model-facing equivalent of the human's `@member text`).",
1949
- "jsDoc": "/**\n * Dispatch one message to one member (host-only — the `room_message` tool's\n * path; the model-facing equivalent of the human's `@member text`). Same\n * dispatch internals as postMessage minus the user/message bubble: the\n * caller is the room's own main agent, so the text must NOT wear the human\n * bubble (source kind 'user' would misattribute it). The dispatch record\n * and the auto-opened in_progress task journal as usual.\n * @param request - room session, addressee, text.\n * @returns the dispatch receipt, or a rejection.\n */"
3610
+ "summary": "Send one message from a member to another (host-only — the `room_message` tool and the bridge's `member_message`/`room_message` land here; the human's path is postMessage).",
3611
+ "jsDoc": "/**\n * Send one message from a member to another (host-only — the `room_message`\n * tool and the bridge's `member_message`/`room_message` land here; the\n * human's path is postMessage). Any member may message any other: the\n * coordinator's sends journal as `coordinator` dispatches, everyone else's\n * as `member` ones. A `task` (default) has the recipient's final reply\n * reported back to the sender; a `notify` is FYI. The room's settings may\n * hold the message for the human instead (see messaging.ts).\n * @param request - room session, addressee, text, kind, optional reply reference.\n * @param actorChildSessionId - the authenticated CLI sender; absent = the room's own agent.\n * @returns the delivery receipt (with its `m<seq>` id) or the hold, or a rejection.\n */"
3612
+ },
3613
+ {
3614
+ "kind": "method",
3615
+ "name": "askHelp",
3616
+ "signature": "async askHelp(request: { readonly sessionId: string; readonly session?: string; readonly member?: string; readonly help?: string; readonly text: string }, caller: Agent | undefined, actorChildSessionId?: string): Promise<string>",
3617
+ "summary": "A member asks another session for help, or writes again on a thread (the `room_help` tool).",
3618
+ "jsDoc": "/**\n * A member asks another session for help, or writes again on a thread\n * (the `room_help` tool). The first ask of a session the human never\n * @-mentioned in this room waits for the human's go-ahead.\n * @param request - the calling session, the target session (new thread) or help id (existing), the text.\n * @param caller - the calling agent.\n * @returns the tool's text result.\n */"
3619
+ },
3620
+ {
3621
+ "kind": "method",
3622
+ "name": "helperMessage",
3623
+ "signature": "async helperMessage(agent: Agent, request: { help?: string; kind: 'question' | 'reply'; text: string; handoff?: string }): Promise<string>",
3624
+ "summary": "The helper's `room_help_reply` / `room_help_ask`: find the thread from the help requests in the helper's own log, then carry the message back.",
3625
+ "jsDoc": "/**\n * The helper's `room_help_reply` / `room_help_ask`: find the thread from\n * the help requests in the helper's own log, then carry the message back.\n * @param agent - the helper agent.\n * @param request - thread (optional when only one), kind, text, handoff.\n * @returns the tool's text result.\n */"
1950
3626
  },
1951
3627
  {
1952
3628
  "kind": "method",
@@ -1969,6 +3645,34 @@ export const TYPERT = {
1969
3645
  "summary": "The actor is derived from the calling native agent or authenticated bridge.",
1970
3646
  "jsDoc": "/** The actor is derived from the calling native agent or authenticated bridge. */"
1971
3647
  },
3648
+ {
3649
+ "kind": "method",
3650
+ "name": "memberMode",
3651
+ "signature": "async memberMode(actor: LocalAgentMemberRun): Promise<{ readonly preset: string; readonly cwd?: string } | undefined>",
3652
+ "summary": "The mode of an external member — the host preset whose plugin tools its bridge offers (local-agent's preset tool host runs them) — with its working directory.",
3653
+ "jsDoc": "/**\n * The mode of an external member — the host preset whose plugin tools its\n * bridge offers (local-agent's preset tool host runs them) — with its\n * working directory. Host method for the member channel, never a Remote.\n * @param actor - the authenticated member run.\n * @returns the mode, or undefined when the member has none or is not here.\n */"
3654
+ },
3655
+ {
3656
+ "kind": "method",
3657
+ "name": "askMemberApproval",
3658
+ "signature": "async askMemberApproval(actor: LocalAgentMemberRun, request: { readonly toolName: string; readonly reason?: string; readonly signal?: AbortSignal }): Promise<'allowed-once' | 'rejected' | 'cancelled' | 'unavailable'>",
3659
+ "summary": "A CLI member's mode tool needs the human's approval: ask in the room's conversation (a 允许 / 拒绝 line) and resolve when the human answers, the call is cancelled, or the room is gone.",
3660
+ "jsDoc": "/**\n * A CLI member's mode tool needs the human's approval: ask in the room's\n * conversation (a 允许 / 拒绝 line) and resolve when the human answers,\n * the call is cancelled, or the room is gone. Host method for the member\n * channel (local-agent's approval hook), never a Remote.\n * @param actor - the authenticated member run.\n * @param request - the tool, an optional reason, and the call's signal.\n * @returns the approval outcome the tool registry expects.\n */"
3661
+ },
3662
+ {
3663
+ "kind": "method",
3664
+ "name": "answerApproval",
3665
+ "signature": "@Remote('answerApproval') async answerApproval(request: RoomAnswerApprovalRequest): Promise<RoomAnswerApprovalResult>",
3666
+ "summary": "The human answers a member's tool approval from the room.",
3667
+ "jsDoc": "/**\n * The human answers a member's tool approval from the room.\n * @param request - room session, approval id, allow once or reject.\n * @returns ok, or `approval-not-pending` when it already ended.\n */"
3668
+ },
3669
+ {
3670
+ "kind": "method",
3671
+ "name": "answerQuestion",
3672
+ "signature": "@Remote('answerQuestion') async answerQuestion(request: RoomAnswerQuestionRequest): Promise<RoomAnswerQuestionResult>",
3673
+ "summary": "The human answers a member's question card from the room.",
3674
+ "jsDoc": "/**\n * The human answers a member's question card from the room.\n * @param request - room session, card id, one answer per question.\n * @returns ok, or `question-not-pending` when it already ended.\n */"
3675
+ },
1972
3676
  {
1973
3677
  "kind": "method",
1974
3678
  "name": "receiveMemberCommand",
@@ -1980,8 +3684,8 @@ export const TYPERT = {
1980
3684
  "kind": "method",
1981
3685
  "name": "receiveMemberMessage",
1982
3686
  "signature": "async receiveMemberMessage(request: RoomMemberMessage): Promise<RoomMemberMessageReceipt>",
1983
- "summary": "The notification gate entry, verbatim-frozen contract for the local-agent family bridge (`ctx.get('room')` + duck-typed call).",
1984
- "jsDoc": "/**\n * The notification gate entry, verbatim-frozen contract for the local-agent\n * family bridge (`ctx.get('room')` + duck-typed call). The call crosses an\n * untyped package boundary, so the message shape is validated at runtime:\n * a malformed message throws (the bridge treats a rejection as \"room does\n * not claim this\" and delivers directly) instead of poisoning the journal.\n * `from`/`to` arrive as roster names OR member child session ids (the\n * bridge cannot speak names for the sender — only room owns the roster);\n * both are normalized to roster names when resolvable, so the pending card\n * and the delivery text (`{from} 给你的通知: …`) read as names. Phase 1's\n * gate is ALWAYS human confirmation: the relay is journaled pending and\n * the sender receives 'pending-confirm' (never 'sent' — the bridge keeps\n * the member's conclusion honest). A non-room parent session throws.\n * @param request - sender, recipient, content, the shared parent session, provenance.\n * @returns the gate receipt.\n */"
3687
+ "summary": "The bridge's `member_message` entry (contract shared with the local-agent family: `ctx.get('room')` + duck-typed call).",
3688
+ "jsDoc": "/**\n * The bridge's `member_message` entry (contract shared with the local-agent\n * family: `ctx.get('room')` + duck-typed call). The call crosses an untyped\n * package boundary, so the message shape is validated at runtime: a\n * malformed message throws (the bridge treats a rejection as \"room does\n * not claim this\" and delivers directly) instead of poisoning the journal.\n * A roster sender (resolved by child session id + provider, never\n * self-reported) goes through {@link messageMember}: delivered at once or\n * held by the room's settings. The receipt tells the model what happened\n * (`sent #m12 …` / `pending-confirm …`). A sender the roster does not know\n * keeps the legacy pending relay.\n * @param request - sender, recipient, content, the shared parent session, provenance, kind.\n * @returns the receipt quoted back to the sending model.\n */"
1985
3689
  },
1986
3690
  {
1987
3691
  "kind": "method",
@@ -1992,31 +3696,45 @@ export const TYPERT = {
1992
3696
  },
1993
3697
  {
1994
3698
  "kind": "method",
1995
- "name": "dismissRelay",
1996
- "signature": "@Remote('dismissRelay') async dismissRelay(request: RoomRelayResolveRequest): Promise<RoomRelayResolveResult>",
1997
- "summary": "Dismiss a pending relay: the notification never reaches anyone.",
1998
- "jsDoc": "/**\n * Dismiss a pending relay: the notification never reaches anyone.\n * @param request - room session, relay id.\n * @returns the resolution receipt, or a rejection.\n */"
3699
+ "name": "releaseReports",
3700
+ "signature": "@Remote('releaseReports') async releaseReports(request: RoomReleaseReportsRequest): Promise<RoomReleaseReportsResult>",
3701
+ "summary": "Hand a member the reports the gate holds for it now (the room's 「现在交给」 button).",
3702
+ "jsDoc": "/**\n * Hand a member the reports the gate holds for it now (the room's\n * 「现在交给」 button).\n * @param request - room session, member name.\n * @returns whether anything was held.\n */"
1999
3703
  },
2000
3704
  {
2001
3705
  "kind": "method",
2002
- "name": "addTask",
2003
- "signature": "@Remote('addTask') async addTask(request: RoomAddTaskRequest): Promise<RoomAddTaskResult>",
2004
- "summary": "Add a task to a member's board lane (the human's management entry;",
2005
- "jsDoc": "/**\n * Add a task to a member's board lane (the human's management entry; @-\n * dispatches auto-open in_progress tasks, this opens a pending one).\n * `blockedBy` names the member the task waits on (display only — it never\n * dispatches anything); it must resolve against the roster.\n * @param request - room session, member, title, optional blockedBy.\n * @returns the new task's id, or a rejection.\n */"
3706
+ "name": "setSettings",
3707
+ "signature": "@Remote('setSettings') async setSettings(request: RoomSetSettingsRequest): Promise<RoomSetSettingsResult>",
3708
+ "summary": "Change the room's collaboration settings (any subset).",
3709
+ "jsDoc": "/**\n * Change the room's collaboration settings (any subset). Resuming a paused\n * room releases everything the pause held, in order.\n * @param request - room session and the fields to change.\n * @returns the settings after the change, or a rejection.\n */"
2006
3710
  },
2007
3711
  {
2008
3712
  "kind": "method",
2009
- "name": "closeTask",
2010
- "signature": "@Remote('closeTask') async closeTask(request: RoomCloseTaskRequest): Promise<RoomCloseTaskResult>",
2011
- "summary": "Close an open task (done by default, or cancelled).",
2012
- "jsDoc": "/**\n * Close an open task (done by default, or cancelled). A failed task is\n * still open for closing — that is the human's dismiss path after a\n * failed run (the board's [关闭] passes 'cancelled').\n * @param request - room session, task id, optional closing status.\n * @returns the closed task's id, or a rejection.\n */"
3713
+ "name": "linkSession",
3714
+ "signature": "@Remote('linkSession') async linkSession(request: RoomHelpLinkRequest): Promise<RoomHelpLinkResult>",
3715
+ "summary": "Keep an outside session on the member list (「加入房间成员」): only a shortcut for asking it — it stays in its own session, asks still go through room_help, and its usage stays its own.",
3716
+ "jsDoc": "/**\n * Keep an outside session on the member list (「加入房间成员」): only a\n * shortcut for asking it — it stays in its own session, asks still go\n * through room_help, and its usage stays its own.\n * @param request - room session, the outside session and its title.\n * @returns ok, or a rejection.\n */"
2013
3717
  },
2014
3718
  {
2015
3719
  "kind": "method",
2016
- "name": "updateTask",
2017
- "signature": "async updateTask(request: RoomUpdateTaskRequest): Promise<RoomUpdateTaskResult>",
2018
- "summary": "Edit an open task's title and/or blockedBy (the `room_task` tool's update action; journaled as `room/task-edited`, status changes stay on closeTask).",
2019
- "jsDoc": "/**\n * Edit an open task's title and/or blockedBy (the `room_task` tool's update\n * action; journaled as `room/task-edited`, status changes stay on\n * closeTask). Host method only — the capsule UI edits nothing but the goal.\n * `blockedBy: null` clears the wait; a string must resolve against the\n * roster. A closed task takes no edits.\n * @param request - room session, task id, and at least one edited field.\n * @returns the edited task's id, or a rejection.\n */"
3720
+ "name": "unlinkSession",
3721
+ "signature": "@Remote('unlinkSession') async unlinkSession(request: RoomHelpLinkRequest): Promise<RoomHelpLinkResult>",
3722
+ "summary": "Take an outside session off the member list (its own session is untouched).",
3723
+ "jsDoc": "/**\n * Take an outside session off the member list (its own session is untouched).\n * @param request - room session, the outside session.\n * @returns ok, or `member-not-found` when it was not on the list.\n */"
3724
+ },
3725
+ {
3726
+ "kind": "method",
3727
+ "name": "dismissHelpNudge",
3728
+ "signature": "@Remote('dismissHelpNudge') async dismissHelpNudge(request: RoomHelpLinkRequest): Promise<RoomHelpLinkResult>",
3729
+ "summary": "Dismiss the 加入房间成员 hint for one outside session (it never shows again).",
3730
+ "jsDoc": "/**\n * Dismiss the 加入房间成员 hint for one outside session (it never shows again).\n * @param request - room session, the outside session.\n * @returns ok.\n */"
3731
+ },
3732
+ {
3733
+ "kind": "method",
3734
+ "name": "dismissRelay",
3735
+ "signature": "@Remote('dismissRelay') async dismissRelay(request: RoomRelayResolveRequest): Promise<RoomRelayResolveResult>",
3736
+ "summary": "Dismiss a pending relay: the notification never reaches anyone.",
3737
+ "jsDoc": "/**\n * Dismiss a pending relay: the notification never reaches anyone.\n * @param request - room session, relay id.\n * @returns the resolution receipt, or a rejection.\n */"
2020
3738
  },
2021
3739
  {
2022
3740
  "kind": "method",
@@ -2041,6 +3759,14 @@ export const TYPERT = {
2041
3759
  }
2042
3760
  ],
2043
3761
  "types": [
3762
+ {
3763
+ "name": "AfterScheduleRecord",
3764
+ "declaration": "export interface AfterScheduleRecord {\n readonly id: ScheduleId;\n readonly kind: 'after';\n readonly title: string;\n readonly prompt: string;\n readonly afterSeconds: number;\n readonly scheduledAt: string;\n}"
3765
+ },
3766
+ {
3767
+ "name": "Agent",
3768
+ "declaration": "export interface Agent {\n readonly id: SessionId;\n readonly options: AgentOptions;\n readonly session: Session;\n readonly inbox: Inbox;\n readonly status: AgentStatus;\n readonly ctx: Context;\n cancel(cause: AgentCancelCause, options?: CancelOptions): void;\n whenIdle(): Promise<void>;\n runMaintenance<T>(task: (signal: AbortSignal) => Promise<T>): Promise<T>;\n send(message: UserMessage, target: InboxTarget, wakeup: boolean): void;\n followup(message: UserMessage): void;\n steer(message: UserMessage): void;\n inject(message: UserMessage): void;\n}"
3769
+ },
2044
3770
  {
2045
3771
  "name": "AgentCancelCause",
2046
3772
  "declaration": "export type AgentCancelCause = { readonly kind: 'user'; } | { readonly kind: 'parent'; } | { readonly kind: 'hook'; readonly reason: string; } | { readonly kind: 'disposed'; };"
@@ -2049,6 +3775,18 @@ export const TYPERT = {
2049
3775
  "name": "AgentMessageSource",
2050
3776
  "declaration": "export interface AgentMessageSource {\n readonly kind: 'agent-message';\n readonly form: 'relay';\n readonly senderSessionId: SessionId;\n}"
2051
3777
  },
3778
+ {
3779
+ "name": "AgentOptions",
3780
+ "declaration": "export interface AgentOptions {\n provider?: string;\n model?: string;\n reasoningEffort?: ReasoningEffortId;\n maxTokens?: number;\n subagentDepth?: number;\n}"
3781
+ },
3782
+ {
3783
+ "name": "AgentStatus",
3784
+ "declaration": "export type AgentStatus = 'idle' | 'running';"
3785
+ },
3786
+ {
3787
+ "name": "AllowedModelRoute",
3788
+ "declaration": "export interface AllowedModelRoute {\n readonly provider: string;\n readonly model: string;\n}"
3789
+ },
2052
3790
  {
2053
3791
  "name": "ApprovalOutcome",
2054
3792
  "declaration": "export type ApprovalOutcome = 'allowed-once' | 'rejected' | 'cancelled' | 'unavailable';"
@@ -2073,6 +3811,10 @@ export const TYPERT = {
2073
3811
  "name": "AssistantStreamRecord",
2074
3812
  "declaration": "export type AssistantStreamRecord = { readonly type: 'text-chunks'; readonly time0: number; readonly index: number; readonly dt: readonly number[]; readonly texts: readonly string[]; } | { readonly type: 'reasoning-chunks'; readonly time0: number; readonly index: number; readonly dt: readonly number[]; readonly texts: readonly string[]; } | { readonly type: 'tool-call-chunks'; readonly time0: number; readonly index: number; readonly dt: readonly number[]; readonly id: ToolCallId; readonly name?: string; readonly args: readonly string[]; } | { readonly type: 'chunk'; readonly time: number; readonly chunk: StreamChunk; };"
2075
3813
  },
3814
+ {
3815
+ "name": "AtScheduleRecord",
3816
+ "declaration": "export interface AtScheduleRecord {\n readonly id: ScheduleId;\n readonly kind: 'at';\n readonly title: string;\n readonly prompt: string;\n readonly scheduledAt: string;\n}"
3817
+ },
2076
3818
  {
2077
3819
  "name": "AttachmentId",
2078
3820
  "declaration": "export type AttachmentId = Branded<'AttachmentId'>;"
@@ -2085,6 +3827,10 @@ export const TYPERT = {
2085
3827
  "name": "BrandedNumber",
2086
3828
  "declaration": "export type BrandedNumber<B extends string> = number & { readonly [BRAND]: B; };"
2087
3829
  },
3830
+ {
3831
+ "name": "CancelOptions",
3832
+ "declaration": "export interface CancelOptions {\n keepInbox?: boolean | undefined;\n}"
3833
+ },
2088
3834
  {
2089
3835
  "name": "CommandId",
2090
3836
  "declaration": "export type CommandId = Branded<'CommandId'>;"
@@ -2097,6 +3843,14 @@ export const TYPERT = {
2097
3843
  "name": "CommandSourceMap",
2098
3844
  "declaration": "export interface CommandSourceMap {\n user: { kind: 'user'; };\n}"
2099
3845
  },
3846
+ {
3847
+ "name": "CompactionCheckpointSource",
3848
+ "declaration": "export type CompactionCheckpointSource = typeof COMPACT_CHECKPOINT_MARKER & { readonly compactionId: CompactionId; readonly sourceCommandId?: CommandId; };"
3849
+ },
3850
+ {
3851
+ "name": "CompactionId",
3852
+ "declaration": "export type CompactionId = Branded<'CompactionId'>;"
3853
+ },
2100
3854
  {
2101
3855
  "name": "ContentBlock",
2102
3856
  "declaration": "export type ContentBlock = ContentBlockMap[ContentBlockType];"
@@ -2127,7 +3881,7 @@ export const TYPERT = {
2127
3881
  },
2128
3882
  {
2129
3883
  "name": "DispatchEngine",
2130
- "declaration": "export class DispatchEngine {\n hasPending(room: Session, memberName: string): boolean;\n dispatch(room: Session, memberName: string, text: string, options: DispatchOptions = {}): void;\n idle(): Promise<void>;\n view(sessionId: string, state: RoomState): RoomState;\n recover(room: Session): Promise<void>;\n}"
3884
+ "declaration": "export class DispatchEngine {\n startingMembers(roomId: string): readonly string[];\n hasPending(room: Session, memberName: string): boolean;\n dispatch(room: Session, memberName: string, text: string, options: DispatchOptions = {}): void;\n idle(): Promise<void>;\n view(sessionId: string, state: RoomState): RoomState;\n recover(room: Session): Promise<void>;\n reportOutcome(room: Session, dispatchSeq: number, deliveryId: string, fromId: string, outcome: string, text: string): Promise<void>;\n markHeldReleased(room: Session, member: RoomMember, seqs: readonly number[]): Promise<void>;\n releaseHeld(room: Session, recipientId: string, reason: string): Promise<boolean>;\n}"
2131
3885
  },
2132
3886
  {
2133
3887
  "name": "DispatchOptions",
@@ -2137,6 +3891,22 @@ export const TYPERT = {
2137
3891
  "name": "EpochHeader",
2138
3892
  "declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n tools?: ToolSchema[];\n system?: never;\n}"
2139
3893
  },
3894
+ {
3895
+ "name": "EveryScheduleDispatchChange",
3896
+ "declaration": "export interface EveryScheduleDispatchChange {\n readonly version: 1;\n readonly operation: 'dispatch';\n readonly id: ScheduleId;\n readonly acceptedAt: string;\n}"
3897
+ },
3898
+ {
3899
+ "name": "EveryScheduleRecord",
3900
+ "declaration": "export interface EveryScheduleRecord {\n readonly id: ScheduleId;\n readonly kind: 'every';\n readonly title: string;\n readonly prompt: string;\n readonly everySeconds: number;\n readonly scheduledAt: string;\n}"
3901
+ },
3902
+ {
3903
+ "name": "FeedbackCategory",
3904
+ "declaration": "export type FeedbackCategory = 'task-result' | 'instruction-following' | 'product-interaction' | 'service-stability' | 'resource-cost' | 'security-privacy-permission' | 'other';"
3905
+ },
3906
+ {
3907
+ "name": "FeedbackRecord",
3908
+ "declaration": "export interface FeedbackRecord {\n readonly text?: string;\n readonly category?: FeedbackCategory;\n}"
3909
+ },
2140
3910
  {
2141
3911
  "name": "FileAttachmentRef",
2142
3912
  "declaration": "export interface FileAttachmentRef {\n attachmentId: AttachmentId;\n name: string;\n bytes: number;\n}"
@@ -2153,6 +3923,50 @@ export const TYPERT = {
2153
3923
  "name": "FinishReasonMap",
2154
3924
  "declaration": "export interface FinishReasonMap {\n stop: { kind: 'stop'; };\n 'tool-calls': { kind: 'tool-calls'; };\n 'max-tokens': { kind: 'max-tokens'; };\n aborted: { kind: 'aborted'; failure: LlmFailure; };\n error: { kind: 'error'; failure: LlmFailure; };\n}"
2155
3925
  },
3926
+ {
3927
+ "name": "GameMessageOp",
3928
+ "declaration": "export type GameMessageOp = { readonly op: 'check-failed'; readonly attempt: number; readonly cap: number; readonly failures: readonly { where: string; message: string; }[]; } | { readonly op: 'attached'; readonly items: readonly string[]; };"
3929
+ },
3930
+ {
3931
+ "name": "GoalBlockReason",
3932
+ "declaration": "export interface GoalBlockReason {\n readonly code: string;\n readonly message: string;\n}"
3933
+ },
3934
+ {
3935
+ "name": "GoalChangeMeta",
3936
+ "declaration": "export type GoalChangeMeta = GoalSnapshotChangeMeta | GoalClearChangeMeta;"
3937
+ },
3938
+ {
3939
+ "name": "GoalClearChangeMeta",
3940
+ "declaration": "export interface GoalClearChangeMeta {\n readonly kind: 'goal/change';\n readonly version: 1;\n readonly operation: 'clear';\n readonly cleared: GoalRef;\n readonly clearedAt: number;\n}"
3941
+ },
3942
+ {
3943
+ "name": "GoalId",
3944
+ "declaration": "export type GoalId = Branded<'GoalId'>;"
3945
+ },
3946
+ {
3947
+ "name": "GoalMessageSource",
3948
+ "declaration": "export interface GoalMessageSource {\n readonly kind: 'goal';\n readonly goalId: GoalId;\n readonly revision: number;\n readonly round: number;\n}"
3949
+ },
3950
+ {
3951
+ "name": "GoalOperation",
3952
+ "declaration": "export type GoalOperation = 'create' | 'edit' | 'pause' | 'resume' | 'complete' | 'block' | 'clear';"
3953
+ },
3954
+ {
3955
+ "name": "GoalPhase",
3956
+ "declaration": "export type GoalPhase = 'active' | 'paused' | 'blocked' | 'complete';"
3957
+ },
3958
+ {
3959
+ "name": "GoalRef",
3960
+ "declaration": "export interface GoalRef {\n readonly id: GoalId;\n readonly revision: number;\n}"
3961
+ },
3962
+ {
3963
+ "name": "GoalSnapshot",
3964
+ "declaration": "export interface GoalSnapshot extends GoalRef {\n readonly objective: string;\n readonly phase: GoalPhase;\n readonly blockedReason?: GoalBlockReason;\n readonly maxGoalRounds: number;\n}"
3965
+ },
3966
+ {
3967
+ "name": "GoalSnapshotChangeMeta",
3968
+ "declaration": "export interface GoalSnapshotChangeMeta {\n readonly kind: 'goal/change';\n readonly version: 1;\n readonly operation: Exclude<GoalOperation, 'clear'>;\n readonly goal: GoalSnapshot;\n readonly roundsStarted: number;\n readonly createdAt: number;\n readonly updatedAt: number;\n}"
3969
+ },
2156
3970
  {
2157
3971
  "name": "ImageAttachmentRef",
2158
3972
  "declaration": "export interface ImageAttachmentRef {\n attachmentId: AttachmentId;\n mediaType: ImageMediaType;\n bytes: number;\n width: number;\n height: number;\n name?: string;\n originalDimensions?: { width: number; height: number; };\n}"
@@ -2169,10 +3983,38 @@ export const TYPERT = {
2169
3983
  "name": "ImageOffloadTarget",
2170
3984
  "declaration": "export interface ImageOffloadTarget {\n seq: SessionSeq;\n imageIndexes: number[];\n}"
2171
3985
  },
3986
+ {
3987
+ "name": "Inbox",
3988
+ "declaration": "export interface Inbox {\n readonly nextTurn: readonly UserMessage[];\n readonly nextStep: readonly UserMessage[];\n clear(): void;\n append(target: InboxTarget, message: UserMessage): void;\n prepend(target: InboxTarget, message: UserMessage): void;\n replace(messageId: MessageId, newMessage: UserMessage): boolean;\n remove(messageId: MessageId): boolean;\n splice(target: InboxTarget, start: number, deleteCount: number, inserted: UserMessage[]): UserMessage[];\n}"
3989
+ },
2172
3990
  {
2173
3991
  "name": "InboxTarget",
2174
3992
  "declaration": "export type InboxTarget = 'next-turn' | 'next-step';"
2175
3993
  },
3994
+ {
3995
+ "name": "JobId",
3996
+ "declaration": "export type JobId = Branded<'JobId'>;"
3997
+ },
3998
+ {
3999
+ "name": "JobOutcome",
4000
+ "declaration": "export interface JobOutcome {\n status: 'completed' | 'killed' | 'failed';\n detail?: string;\n result?: string;\n}"
4001
+ },
4002
+ {
4003
+ "name": "JobRegisteredData",
4004
+ "declaration": "export interface JobRegisteredData {\n readonly jobId: JobId;\n readonly owner: SessionId;\n readonly kind: string;\n readonly label: string;\n readonly startedAt: number;\n readonly toolCall?: JobToolCall;\n}"
4005
+ },
4006
+ {
4007
+ "name": "JobSettleCause",
4008
+ "declaration": "export type JobSettleCause = 'producer' | 'kill' | 'teardown';"
4009
+ },
4010
+ {
4011
+ "name": "JobSettledData",
4012
+ "declaration": "export interface JobSettledData extends JobRegisteredData {\n readonly finishedAt: number;\n readonly status: JobOutcome['status'];\n readonly cause: JobSettleCause;\n readonly producerReported: boolean;\n readonly detail?: string;\n}"
4013
+ },
4014
+ {
4015
+ "name": "JobToolCall",
4016
+ "declaration": "export interface JobToolCall {\n readonly callId: SessionEventMap['tool/call']['callId'];\n readonly rootCallId: SessionEventMap['tool/call']['callId'];\n}"
4017
+ },
2176
4018
  {
2177
4019
  "name": "JsonValue",
2178
4020
  "declaration": "export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue; };"
@@ -2181,18 +4023,46 @@ export const TYPERT = {
2181
4023
  "name": "KnownCatalogMode",
2182
4024
  "declaration": "export type KnownCatalogMode = { readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; };"
2183
4025
  },
4026
+ {
4027
+ "name": "LegacyAfterScheduleRecord",
4028
+ "declaration": "export interface LegacyAfterScheduleRecord extends Omit<AfterScheduleRecord, 'title'> {\n readonly title?: string;\n}"
4029
+ },
4030
+ {
4031
+ "name": "LegacyAtScheduleRecord",
4032
+ "declaration": "export interface LegacyAtScheduleRecord extends Omit<AtScheduleRecord, 'title'> {\n readonly title?: string;\n}"
4033
+ },
4034
+ {
4035
+ "name": "LegacyEveryScheduleRecord",
4036
+ "declaration": "export interface LegacyEveryScheduleRecord extends Omit<EveryScheduleRecord, 'title'> {\n readonly title?: string;\n}"
4037
+ },
4038
+ {
4039
+ "name": "LegacyScheduleRecord",
4040
+ "declaration": "export type LegacyScheduleRecord = LegacyAfterScheduleRecord | LegacyAtScheduleRecord | LegacyEveryScheduleRecord;"
4041
+ },
2184
4042
  {
2185
4043
  "name": "LlmCallConfig",
2186
- "declaration": "export interface LlmCallConfig {\n provider: string;\n model: string;\n reasoningEffort?: ReasoningEffortId;\n temperature?: number;\n maxTokens?: number;\n stop?: string[];\n}"
4044
+ "declaration": "export interface LlmCallConfig extends LlmCallControls {\n provider: string;\n model: string;\n}"
2187
4045
  },
2188
4046
  {
2189
4047
  "name": "LlmCallConfigAdapterDefaults",
2190
4048
  "declaration": "export interface LlmCallConfigAdapterDefaults {\n reasoningEffort?: true;\n maxTokens?: true;\n}"
2191
4049
  },
4050
+ {
4051
+ "name": "LlmCallControls",
4052
+ "declaration": "export interface LlmCallControls {\n reasoningEffort?: ReasoningEffortId;\n temperature?: number;\n maxTokens?: number;\n stop?: string[];\n}"
4053
+ },
2192
4054
  {
2193
4055
  "name": "LlmFailure",
2194
4056
  "declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n readonly offloadImages?: number;\n}"
2195
4057
  },
4058
+ {
4059
+ "name": "LlmRetryEventData",
4060
+ "declaration": "export type LlmRetryEventData = { retryId: RetryId; turn: number; step: number; provider: string; mode: 'normal'; policyKey: string; retry: number; maxRetries: number; delayMs: number; failure: LlmFailure; } | { retryId: RetryId; turn: number; step: number; provider: string; mode: 'always'; policyKey: string; retry: number; delayMs: number; failure: LlmFailure; };"
4061
+ },
4062
+ {
4063
+ "name": "LlmRetryStartedEventData",
4064
+ "declaration": "export interface LlmRetryStartedEventData {\n retryId: RetryId;\n turn: number;\n step: number;\n retry: number;\n}"
4065
+ },
2196
4066
  {
2197
4067
  "name": "LocalAgentMemberRun",
2198
4068
  "declaration": "export interface LocalAgentMemberRun {\n childSessionId: string;\n parentSessionId: string;\n provider: string;\n}"
@@ -2215,7 +4085,7 @@ export const TYPERT = {
2215
4085
  },
2216
4086
  {
2217
4087
  "name": "MemberRoomCommandName",
2218
- "declaration": "export type MemberRoomCommandName = 'room_plan' | 'room_read' | 'room_invite' | 'room_message';"
4088
+ "declaration": "export type MemberRoomCommandName = 'room_plan' | 'room_read' | 'room_invite' | 'room_message' | 'ask_user_question' | 'room_help';"
2219
4089
  },
2220
4090
  {
2221
4091
  "name": "Message",
@@ -2225,6 +4095,26 @@ export const TYPERT = {
2225
4095
  "name": "MessageBase",
2226
4096
  "declaration": "export interface MessageBase {\n readonly id: MessageId;\n readonly content: readonly ContentBlock[];\n readonly source: MessageSource;\n}"
2227
4097
  },
4098
+ {
4099
+ "name": "MessageFeedbackDelete",
4100
+ "declaration": "export interface MessageFeedbackDelete {\n readonly sessionId: SessionId;\n readonly messageId: MessageId;\n}"
4101
+ },
4102
+ {
4103
+ "name": "MessageFeedbackItem",
4104
+ "declaration": "export interface MessageFeedbackItem {\n readonly messageId: MessageId;\n readonly rating: MessageFeedbackRating;\n readonly note?: string;\n readonly category?: FeedbackCategory;\n readonly version: MessageFeedbackVersion;\n readonly createdAt: number;\n readonly updatedAt: number;\n}"
4105
+ },
4106
+ {
4107
+ "name": "MessageFeedbackPut",
4108
+ "declaration": "export interface MessageFeedbackPut {\n readonly sessionId: SessionId;\n readonly item: MessageFeedbackItem;\n}"
4109
+ },
4110
+ {
4111
+ "name": "MessageFeedbackRating",
4112
+ "declaration": "export type MessageFeedbackRating = 'positive' | 'negative';"
4113
+ },
4114
+ {
4115
+ "name": "MessageFeedbackVersion",
4116
+ "declaration": "export type MessageFeedbackVersion = Branded<'MessageFeedbackVersion'>;"
4117
+ },
2228
4118
  {
2229
4119
  "name": "MessageId",
2230
4120
  "declaration": "export type MessageId = Branded<'MessageId'>;"
@@ -2239,7 +4129,7 @@ export const TYPERT = {
2239
4129
  },
2240
4130
  {
2241
4131
  "name": "MessageSourceMap",
2242
- "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'skill-invocation': SkillInvocationSource;\n 'message-tools': { kind: 'message-tools'; readonly op?: MessageToolsOp; } & ContextFormed;\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n room: { kind: 'room'; } & ContextFormed;\n sidechat: { kind: 'sidechat'; } & ContextFormed;\n worktrees: { kind: 'worktrees'; } & ContextFormed;\n}"
4132
+ "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'runtime-context': { kind: 'runtime-context'; } & ContextFormed;\n 'working-directory': { kind: 'working-directory'; };\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; principal?: Principal; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'compact-checkpoint': CompactionCheckpointSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n 'team-message': TeamMessageSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n goal: GoalMessageSource;\n 'plan-mode': { kind: 'plan-mode'; } & ContextFormed;\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'session-reference': SessionReferenceSource;\n webhook: { readonly kind: 'webhook'; readonly provider: string; readonly source: WebhookSourceId; readonly deliveryId: WebhookDeliveryId; readonly ruleId: WebhookRuleId; readonly form: 'notice'; readonly summary: string; };\n 'message-tools': { kind: 'message-tools'; readonly op?: MessageToolsOp; } & ContextFormed;\n 'dsh-game': { kind: 'dsh-game'; plugin: '@khorsheed/dsh-game'; } & ContextFormed & Partial<GameMessageOp>;\n room: { kind: 'room'; } & ContextFormed;\n 'room-help': { kind: 'room-help'; plugin: '@khorsheed/dsh-room'; help: string; room: string; roomTitle: string; from: string; op: 'request' | 'message'; text: string; } & ContextFormed;\n sidechat: { kind: 'sidechat'; } & ContextFormed;\n worktrees: { kind: 'worktrees'; } & ContextFormed;\n}"
2243
4133
  },
2244
4134
  {
2245
4135
  "name": "MessageToolsOp",
@@ -2249,10 +4139,22 @@ export const TYPERT = {
2249
4139
  "name": "ModelMessageSource",
2250
4140
  "declaration": "export interface ModelMessageSource extends AssistantProviderMetadata {\n kind: 'model';\n}"
2251
4141
  },
4142
+ {
4143
+ "name": "ModelSelection",
4144
+ "declaration": "export interface ModelSelection {\n readonly provider: string;\n readonly model: string;\n readonly reasoningEffort?: string;\n}"
4145
+ },
4146
+ {
4147
+ "name": "OneShotScheduleDispatchChange",
4148
+ "declaration": "export interface OneShotScheduleDispatchChange {\n readonly version: 1;\n readonly operation: 'dispatch';\n readonly id: ScheduleId;\n}"
4149
+ },
2252
4150
  {
2253
4151
  "name": "OneShotSubagentDescriptorData",
2254
4152
  "declaration": "export interface OneShotSubagentDescriptorData extends SubagentDescriptorBase {\n readonly mode: 'one-shot';\n readonly label?: string;\n}"
2255
4153
  },
4154
+ {
4155
+ "name": "OptionalSessionSeq",
4156
+ "declaration": "export type OptionalSessionSeq = SessionSeq | null;"
4157
+ },
2256
4158
  {
2257
4159
  "name": "PlanActor",
2258
4160
  "declaration": "export interface PlanActor {\n kind: 'human' | 'coordinator' | 'worker';\n memberId: string;\n}"
@@ -2277,13 +4179,21 @@ export const TYPERT = {
2277
4179
  "name": "PlanTask",
2278
4180
  "declaration": "export interface PlanTask {\n id: string;\n title: string;\n stageId: string;\n parentId?: string;\n kind: 'group' | 'task';\n ownerMemberId?: string;\n instruction: string;\n criteria: string[];\n inputRefs: string[];\n artifactPaths: string[];\n dependsOn: string[];\n status: 'pending' | 'running' | 'submitted' | 'accepted' | 'failed' | 'cancelled';\n attempts: PlanAttempt[];\n}"
2279
4181
  },
4182
+ {
4183
+ "name": "Principal",
4184
+ "declaration": "export type Principal = PrincipalMap[keyof PrincipalMap];"
4185
+ },
4186
+ {
4187
+ "name": "PrincipalMap",
4188
+ "declaration": "export interface PrincipalMap {\n owner: { readonly kind: 'owner'; };\n}"
4189
+ },
2280
4190
  {
2281
4191
  "name": "ProviderRequestId",
2282
4192
  "declaration": "export type ProviderRequestId = Branded<'ProviderRequestId'>;"
2283
4193
  },
2284
4194
  {
2285
4195
  "name": "PtcDispatchEventData",
2286
- "declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n error?: { name: string; code: string; reason?: string; };\n}"
4196
+ "declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n meta?: JsonValue;\n error?: { name: string; code: string; reason?: string; };\n}"
2287
4197
  },
2288
4198
  {
2289
4199
  "name": "PtcDispatchStartEventData",
@@ -2310,12 +4220,36 @@ export const TYPERT = {
2310
4220
  "declaration": "export type RequestHeaderReason = 'initial' | 'resume' | 'change' | 'series';"
2311
4221
  },
2312
4222
  {
2313
- "name": "RoomAddTaskRequest",
2314
- "declaration": "export interface RoomAddTaskRequest {\n readonly sessionId: SessionId;\n readonly member: string;\n readonly title: string;\n readonly blockedBy?: string;\n}"
4223
+ "name": "RetryId",
4224
+ "declaration": "export type RetryId = Branded<'RetryId'>;"
4225
+ },
4226
+ {
4227
+ "name": "RoomAnswerApprovalRequest",
4228
+ "declaration": "export interface RoomAnswerApprovalRequest {\n readonly sessionId: SessionId;\n readonly id: string;\n readonly outcome: 'allowed-once' | 'rejected';\n}"
4229
+ },
4230
+ {
4231
+ "name": "RoomAnswerApprovalResult",
4232
+ "declaration": "export type RoomAnswerApprovalResult = { readonly ok: true; } | { readonly ok: false; readonly error: RoomFailure; };"
4233
+ },
4234
+ {
4235
+ "name": "RoomAnswerQuestionRequest",
4236
+ "declaration": "export interface RoomAnswerQuestionRequest {\n readonly sessionId: SessionId;\n readonly id: string;\n readonly answers: readonly RoomQuestionAnswer[];\n}"
2315
4237
  },
2316
4238
  {
2317
- "name": "RoomAddTaskResult",
2318
- "declaration": "export type RoomAddTaskResult = { readonly ok: true; readonly value: { readonly id: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
4239
+ "name": "RoomAnswerQuestionResult",
4240
+ "declaration": "export type RoomAnswerQuestionResult = { readonly ok: true; } | { readonly ok: false; readonly error: RoomFailure; };"
4241
+ },
4242
+ {
4243
+ "name": "RoomApproval",
4244
+ "declaration": "export interface RoomApproval {\n readonly id: string;\n readonly member: string;\n readonly tool: string;\n readonly reason?: string;\n readonly time: number;\n}"
4245
+ },
4246
+ {
4247
+ "name": "RoomApprovalEvent",
4248
+ "declaration": "export interface RoomApprovalEvent {\n readonly id: string;\n readonly member: string;\n readonly memberId: string;\n readonly tool: string;\n readonly reason?: string;\n}"
4249
+ },
4250
+ {
4251
+ "name": "RoomApprovalResolvedEvent",
4252
+ "declaration": "export interface RoomApprovalResolvedEvent {\n readonly id: string;\n readonly outcome: 'allowed-once' | 'rejected' | 'cancelled';\n}"
2319
4253
  },
2320
4254
  {
2321
4255
  "name": "RoomCancellation",
@@ -2329,14 +4263,6 @@ export const TYPERT = {
2329
4263
  "name": "RoomCancelResult",
2330
4264
  "declaration": "export type RoomCancelResult = { readonly ok: true; readonly value: RoomCancellation; } | { readonly ok: false; readonly error: RoomFailure; };"
2331
4265
  },
2332
- {
2333
- "name": "RoomCloseTaskRequest",
2334
- "declaration": "export interface RoomCloseTaskRequest {\n readonly sessionId: SessionId;\n readonly taskId: string;\n readonly status?: 'done' | 'cancelled';\n}"
2335
- },
2336
- {
2337
- "name": "RoomCloseTaskResult",
2338
- "declaration": "export type RoomCloseTaskResult = { readonly ok: true; readonly value: { readonly id: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
2339
- },
2340
4266
  {
2341
4267
  "name": "RoomCoordinatorEvent",
2342
4268
  "declaration": "export interface RoomCoordinatorEvent {\n readonly version: 1;\n readonly memberId: string;\n readonly revision: number;\n readonly previousMemberId: string;\n readonly handoff: string;\n}"
@@ -2345,9 +4271,21 @@ export const TYPERT = {
2345
4271
  "name": "RoomCreatedEvent",
2346
4272
  "declaration": "export interface RoomCreatedEvent {\n readonly version: 1;\n}"
2347
4273
  },
4274
+ {
4275
+ "name": "RoomDecisionCall",
4276
+ "declaration": "export interface RoomDecisionCall {\n readonly model: string;\n readonly latencyMs?: number;\n readonly cached?: boolean;\n readonly inputTokens?: number;\n readonly outputTokens?: number;\n readonly request: { readonly state: RoomJsonValue; readonly questions: RoomJsonValue; };\n readonly response?: RoomJsonValue;\n readonly failure?: { readonly reason: string; readonly detail?: string; };\n}"
4277
+ },
4278
+ {
4279
+ "name": "RoomDecisionEvent",
4280
+ "declaration": "export interface RoomDecisionEvent {\n readonly id: string;\n readonly scenario: RoomDecisionScenario;\n readonly outcome: string;\n readonly rule?: string;\n readonly probability?: number;\n readonly call?: RoomDecisionCall;\n readonly about: { readonly message?: string; readonly task?: { readonly number: number; readonly title: string; }; readonly from?: string; readonly to?: string; };\n}"
4281
+ },
4282
+ {
4283
+ "name": "RoomDecisionScenario",
4284
+ "declaration": "export type RoomDecisionScenario = 'task-filing' | 'report-timing';"
4285
+ },
2348
4286
  {
2349
4287
  "name": "RoomDelivery",
2350
- "declaration": "export interface RoomDelivery {\n readonly id: string;\n readonly dispatchSeq: number;\n readonly memberId: string;\n readonly status: 'queued' | RoomDeliveryStateEvent['state'];\n readonly origin: NonNullable<RoomDispatchEvent['origin']>;\n readonly text: string;\n readonly error?: string;\n readonly plan?: RoomDispatchEvent['plan'];\n}"
4288
+ "declaration": "export interface RoomDelivery {\n readonly id: string;\n readonly dispatchSeq: number;\n readonly memberId: string;\n readonly status: 'queued' | 'held' | RoomDeliveryStateEvent['state'];\n readonly origin: NonNullable<RoomDispatchEvent['origin']>;\n readonly replyTo?: string;\n readonly from?: string;\n readonly kind?: 'task' | 'notify';\n readonly text: string;\n readonly error?: string;\n readonly plan?: RoomDispatchEvent['plan'];\n readonly task?: string;\n readonly parent?: string;\n readonly queuedAt: number;\n readonly startedAt?: number;\n readonly endedAt?: number;\n readonly heldAt?: number;\n readonly releasedAt?: number;\n}"
2351
4289
  },
2352
4290
  {
2353
4291
  "name": "RoomDeliveryStateEvent",
@@ -2355,19 +4293,19 @@ export const TYPERT = {
2355
4293
  },
2356
4294
  {
2357
4295
  "name": "RoomDispatchEvent",
2358
- "declaration": "export interface RoomDispatchEvent {\n readonly plan?: { readonly goalId: string; readonly taskId?: string; readonly attemptId?: string; };\n readonly requestSignature?: string;\n readonly id?: string;\n readonly targetIds?: readonly string[];\n readonly origin?: 'human' | 'coordinator' | 'report' | 'relay';\n readonly replyTo?: string;\n readonly reportFor?: string;\n readonly targets: readonly string[];\n readonly text: string;\n}"
4296
+ "declaration": "export interface RoomDispatchEvent {\n readonly plan?: { readonly goalId: string; readonly taskId?: string; readonly attemptId?: string; };\n readonly requestSignature?: string;\n readonly id?: string;\n readonly targetIds?: readonly string[];\n readonly origin?: 'human' | 'coordinator' | 'member' | 'report' | 'relay' | 'help';\n readonly help?: RoomHelpOrigin;\n readonly from?: string;\n readonly kind?: 'task' | 'notify';\n readonly hop?: number;\n readonly inReplyTo?: number;\n readonly note?: string;\n readonly held?: true;\n readonly releases?: readonly number[];\n readonly task?: string;\n readonly parent?: string;\n readonly replyTo?: string;\n readonly reportFor?: string;\n readonly targets: readonly string[];\n readonly text: string;\n}"
2359
4297
  },
2360
4298
  {
2361
4299
  "name": "RoomExecution",
2362
- "declaration": "export interface RoomExecution extends RoomMemberRun {\n readonly id: string;\n readonly memberId?: string;\n readonly childSessionId?: SessionId;\n readonly provider?: string;\n readonly model?: string;\n readonly effort?: string;\n readonly tokens?: number;\n}"
4300
+ "declaration": "export interface RoomExecution extends RoomMemberRun {\n readonly id: string;\n readonly memberId?: string;\n readonly childSessionId?: SessionId;\n readonly childTurn?: number;\n readonly provider?: string;\n readonly model?: string;\n readonly effort?: string;\n readonly tokens?: number;\n readonly usage?: RoomRunUsage;\n}"
2363
4301
  },
2364
4302
  {
2365
4303
  "name": "RoomExecutionMetadataEvent",
2366
- "declaration": "export interface RoomExecutionMetadataEvent {\n readonly runId: string;\n readonly model?: string;\n readonly effort?: string;\n readonly tokens?: number;\n}"
4304
+ "declaration": "export interface RoomExecutionMetadataEvent {\n readonly runId: string;\n readonly model?: string;\n readonly effort?: string;\n readonly tokens?: number;\n readonly usage?: RoomRunUsage;\n}"
2367
4305
  },
2368
4306
  {
2369
4307
  "name": "RoomFailure",
2370
- "declaration": "export type RoomFailure = { readonly code: 'request-conflict'; } | { readonly code: 'member-cwd-bound'; } | { readonly code: 'not-coordinator'; } | { readonly code: 'delivery-not-uncertain'; } | { readonly code: 'plan-reconciliation-required'; } | { readonly code: 'coordinator-busy'; } | { readonly code: 'coordinator-not-ready'; readonly message: string; } | { readonly code: 'coordinator-conflict'; } | { readonly code: 'active-coordinator'; } | { readonly code: 'configuration-owned-by-core'; } | { readonly code: 'session-not-found'; } | { readonly code: 'not-a-room'; } | { readonly code: 'invalid-name'; } | { readonly code: 'duplicate-name'; } | { readonly code: 'empty-provider'; } | { readonly code: 'member-not-found'; } | { readonly code: 'empty-text'; } | { readonly code: 'nothing-to-update'; } | { readonly code: 'local-agent-unavailable'; } | { readonly code: 'unknown-provider'; readonly provider: string; readonly available: readonly string[]; } | { readonly code: 'unknown-targets'; readonly names: readonly string[]; } | { readonly code: 'no-targets'; } | { readonly code: 'relay-not-found'; } | { readonly code: 'relay-not-pending'; } | { readonly code: 'main-member'; } | { readonly code: 'task-not-found'; } | { readonly code: 'task-closed'; } | { readonly code: 'resume-failed'; readonly message: string; };"
4308
+ "declaration": "export type RoomFailure = { readonly code: 'request-conflict'; } | { readonly code: 'member-cwd-bound'; } | { readonly code: 'not-coordinator'; } | { readonly code: 'delivery-not-uncertain'; } | { readonly code: 'plan-reconciliation-required'; } | { readonly code: 'coordinator-busy'; } | { readonly code: 'coordinator-not-ready'; readonly message: string; } | { readonly code: 'coordinator-conflict'; } | { readonly code: 'active-coordinator'; } | { readonly code: 'configuration-owned-by-core'; } | { readonly code: 'session-not-found'; } | { readonly code: 'not-a-room'; } | { readonly code: 'invalid-name'; } | { readonly code: 'duplicate-name'; } | { readonly code: 'empty-provider'; } | { readonly code: 'member-not-found'; } | { readonly code: 'empty-text'; } | { readonly code: 'role-too-long'; } | { readonly code: 'invalid-settings'; } | { readonly code: 'self-message'; } | { readonly code: 'unknown-task'; } | { readonly code: 'unknown-preset'; readonly preset: string; readonly available: readonly string[]; } | { readonly code: 'nothing-to-update'; } | { readonly code: 'local-agent-unavailable'; } | { readonly code: 'unknown-provider'; readonly provider: string; readonly available: readonly string[]; } | { readonly code: 'unknown-targets'; readonly names: readonly string[]; } | { readonly code: 'no-targets'; } | { readonly code: 'relay-not-found'; } | { readonly code: 'relay-not-pending'; } | { readonly code: 'approval-not-pending'; } | { readonly code: 'question-not-pending'; } | { readonly code: 'main-member'; } | { readonly code: 'task-not-found'; } | { readonly code: 'task-closed'; } | { readonly code: 'resume-failed'; readonly message: string; };"
2371
4309
  },
2372
4310
  {
2373
4311
  "name": "RoomGetStateRequest",
@@ -2381,13 +4319,57 @@ export const TYPERT = {
2381
4319
  "name": "RoomGoalEvent",
2382
4320
  "declaration": "export interface RoomGoalEvent {\n readonly text: string;\n}"
2383
4321
  },
4322
+ {
4323
+ "name": "RoomHeldDispatch",
4324
+ "declaration": "export interface RoomHeldDispatch {\n readonly origin: 'coordinator' | 'member' | 'report' | 'help';\n readonly help?: RoomHelpOrigin;\n readonly from?: string;\n readonly kind?: 'task' | 'notify';\n readonly hop: number;\n readonly inReplyTo?: number;\n readonly replyTo?: string;\n readonly reportFor?: string;\n readonly plan?: { readonly goalId: string; };\n readonly note?: string;\n readonly task?: string;\n readonly parent?: string;\n}"
4325
+ },
4326
+ {
4327
+ "name": "RoomHelp",
4328
+ "declaration": "export interface RoomHelp extends RoomHelpEvent {\n readonly state: RoomHelpStatus;\n readonly since: number;\n readonly error?: string;\n readonly messages: readonly (RoomHelpMessageEvent & { readonly time: number; })[];\n readonly time: number;\n}"
4329
+ },
4330
+ {
4331
+ "name": "RoomHelpEvent",
4332
+ "declaration": "export interface RoomHelpEvent {\n readonly id: string;\n readonly from: string;\n readonly fromName: string;\n readonly target: { readonly sessionId: string; readonly title: string; readonly room?: true; readonly member?: string; };\n readonly text: string;\n}"
4333
+ },
4334
+ {
4335
+ "name": "RoomHelpInEvent",
4336
+ "declaration": "export interface RoomHelpInEvent extends RoomHelpOrigin {\n readonly member: string;\n readonly text: string;\n readonly op: 'request' | 'message';\n readonly held?: true;\n}"
4337
+ },
4338
+ {
4339
+ "name": "RoomHelpLinkRequest",
4340
+ "declaration": "export interface RoomHelpLinkRequest {\n readonly sessionId: SessionId;\n readonly target: string;\n readonly title?: string;\n}"
4341
+ },
4342
+ {
4343
+ "name": "RoomHelpLinkResult",
4344
+ "declaration": "export type RoomHelpLinkResult = { readonly ok: true; } | { readonly ok: false; readonly error: RoomFailure; };"
4345
+ },
4346
+ {
4347
+ "name": "RoomHelpMessageEvent",
4348
+ "declaration": "export interface RoomHelpMessageEvent {\n readonly help: string;\n readonly kind: 'question' | 'reply' | 'message';\n readonly text: string;\n readonly handoff?: string;\n readonly fallback?: true;\n}"
4349
+ },
4350
+ {
4351
+ "name": "RoomHelpOrigin",
4352
+ "declaration": "export interface RoomHelpOrigin {\n readonly id: string;\n readonly room: string;\n readonly roomTitle: string;\n readonly from: string;\n}"
4353
+ },
4354
+ {
4355
+ "name": "RoomHelpStateEvent",
4356
+ "declaration": "export interface RoomHelpStateEvent {\n readonly help: string;\n readonly state: RoomHelpStatus;\n readonly error?: string;\n}"
4357
+ },
4358
+ {
4359
+ "name": "RoomHelpStatus",
4360
+ "declaration": "export type RoomHelpStatus = 'queued' | 'running' | 'asking' | 'replied' | 'failed';"
4361
+ },
4362
+ {
4363
+ "name": "RoomHoldReason",
4364
+ "declaration": "export type RoomHoldReason = 'confirm' | 'hop-limit' | 'paused';"
4365
+ },
2384
4366
  {
2385
4367
  "name": "RoomInvitation",
2386
- "declaration": "export interface RoomInvitation {\n readonly name: string;\n readonly pendingFirstTask: boolean;\n}"
4368
+ "declaration": "export interface RoomInvitation {\n readonly name: string;\n readonly pendingFirstTask: boolean;\n readonly preset?: string;\n}"
2387
4369
  },
2388
4370
  {
2389
4371
  "name": "RoomInviteRequest",
2390
- "declaration": "export interface RoomInviteRequest {\n readonly sessionId: SessionId;\n readonly provider: string;\n readonly name: string;\n readonly instructions?: string;\n readonly cwd?: string;\n readonly firstTask?: string;\n readonly model?: string;\n}"
4372
+ "declaration": "export interface RoomInviteRequest {\n readonly sessionId: SessionId;\n readonly kind?: 'cli' | 'native';\n readonly preset?: string;\n readonly inheritPreset?: boolean;\n readonly provider: string;\n readonly name: string;\n readonly instructions?: string;\n readonly role?: string;\n readonly cwd?: string;\n readonly firstTask?: string;\n readonly note?: string;\n readonly model?: string;\n readonly effort?: string;\n}"
2391
4373
  },
2392
4374
  {
2393
4375
  "name": "RoomInviteResult",
@@ -2397,13 +4379,25 @@ export const TYPERT = {
2397
4379
  "name": "RoomIsRoomRequest",
2398
4380
  "declaration": "export interface RoomIsRoomRequest {\n readonly sessionId: SessionId;\n}"
2399
4381
  },
4382
+ {
4383
+ "name": "RoomJob",
4384
+ "declaration": "export interface RoomJob {\n readonly id: string;\n readonly number: number;\n readonly title: string;\n readonly messages: readonly { readonly id: string; readonly time: number; readonly text: string; readonly by?: RoomTaskLinkEvent['by']; readonly probability?: number; }[];\n readonly status: 'running' | 'attention' | 'done' | 'stopped';\n readonly startedAt: number;\n readonly endedAt?: number;\n readonly deliveries: readonly string[];\n readonly members: readonly string[];\n readonly goalId?: string;\n}"
4385
+ },
4386
+ {
4387
+ "name": "RoomJobStoppedEvent",
4388
+ "declaration": "export interface RoomJobStoppedEvent {\n readonly task: string;\n}"
4389
+ },
2400
4390
  {
2401
4391
  "name": "RoomJsonValue",
2402
4392
  "declaration": "export type RoomJsonValue = null | boolean | number | string | RoomJsonValue[] | { [key: string]: RoomJsonValue; };"
2403
4393
  },
4394
+ {
4395
+ "name": "RoomLinkedSession",
4396
+ "declaration": "export interface RoomLinkedSession {\n readonly sessionId: string;\n readonly title: string;\n readonly time: number;\n}"
4397
+ },
2404
4398
  {
2405
4399
  "name": "RoomListProvidersRequest",
2406
- "declaration": "export interface RoomListProvidersRequest {\n}"
4400
+ "declaration": "export interface RoomListProvidersRequest {\n readonly sessionId?: SessionId;\n}"
2407
4401
  },
2408
4402
  {
2409
4403
  "name": "RoomLoad",
@@ -2411,19 +4405,19 @@ export const TYPERT = {
2411
4405
  },
2412
4406
  {
2413
4407
  "name": "RoomMember",
2414
- "declaration": "export interface RoomMember {\n readonly id?: string;\n readonly name: string;\n readonly kind: 'main-agent' | 'cli';\n readonly provider?: string;\n readonly instructions?: string;\n readonly invitedBy: 'human' | 'agent';\n readonly cwd?: string;\n readonly model?: string;\n readonly childSessionId?: SessionId;\n}"
4408
+ "declaration": "export interface RoomMember {\n readonly id?: string;\n readonly name: string;\n readonly kind: 'main-agent' | 'cli' | 'native';\n readonly provider?: string;\n readonly instructions?: string;\n readonly role?: string;\n readonly preset?: string;\n readonly invitedBy: 'human' | 'agent';\n readonly cwd?: string;\n readonly model?: string;\n readonly effort?: string;\n readonly childSessionId?: SessionId;\n}"
2415
4409
  },
2416
4410
  {
2417
4411
  "name": "RoomMemberAddedEvent",
2418
- "declaration": "export interface RoomMemberAddedEvent {\n readonly id?: string;\n readonly name: string;\n readonly kind: 'main-agent' | 'cli';\n readonly provider?: string;\n readonly instructions?: string;\n readonly invitedBy: 'human' | 'agent';\n readonly cwd?: string;\n readonly model?: string;\n readonly childSessionId?: SessionId;\n}"
4412
+ "declaration": "export interface RoomMemberAddedEvent {\n readonly id?: string;\n readonly name: string;\n readonly kind: 'main-agent' | 'cli' | 'native';\n readonly provider?: string;\n readonly preset?: string;\n readonly instructions?: string;\n readonly role?: string;\n readonly invitedBy: 'human' | 'agent';\n readonly cwd?: string;\n readonly model?: string;\n readonly effort?: string;\n readonly childSessionId?: SessionId;\n}"
2419
4413
  },
2420
4414
  {
2421
4415
  "name": "RoomMemberMessage",
2422
- "declaration": "export interface RoomMemberMessage {\n readonly from: string;\n readonly to: string;\n readonly content: string;\n readonly parentSessionId: SessionId;\n readonly provenance?: Record<string, RoomJsonValue>;\n}"
4416
+ "declaration": "export interface RoomMemberMessage {\n readonly from: string;\n readonly to: string;\n readonly content: string;\n readonly parentSessionId: SessionId;\n readonly provenance?: Record<string, RoomJsonValue>;\n readonly kind?: 'task' | 'notify';\n readonly inReplyTo?: string;\n readonly note?: string;\n readonly task?: string;\n}"
2423
4417
  },
2424
4418
  {
2425
4419
  "name": "RoomMemberMessageReceipt",
2426
- "declaration": "export type RoomMemberMessageReceipt = 'sent' | 'pending-confirm' | 'busy';"
4420
+ "declaration": "export type RoomMemberMessageReceipt = 'sent' | 'pending-confirm' | 'busy' | `sent ${string}` | `pending-confirm ${string}`;"
2427
4421
  },
2428
4422
  {
2429
4423
  "name": "RoomMemberRemovedEvent",
@@ -2435,15 +4429,19 @@ export const TYPERT = {
2435
4429
  },
2436
4430
  {
2437
4431
  "name": "RoomMemberUpdatedEvent",
2438
- "declaration": "export interface RoomMemberUpdatedEvent {\n readonly name: string;\n readonly rename?: string;\n readonly instructions?: string | null;\n readonly cwd?: string | null;\n readonly model?: string | null;\n readonly childSessionId?: SessionId;\n}"
4432
+ "declaration": "export interface RoomMemberUpdatedEvent {\n readonly name: string;\n readonly rename?: string;\n readonly instructions?: string | null;\n readonly role?: string | null;\n readonly cwd?: string | null;\n readonly model?: string | null;\n readonly effort?: string | null;\n readonly childSessionId?: SessionId;\n}"
4433
+ },
4434
+ {
4435
+ "name": "RoomMessageReceipt",
4436
+ "declaration": "export interface RoomMessageReceipt {\n readonly member: string;\n readonly messageId?: string;\n readonly held?: RoomHoldReason;\n}"
2439
4437
  },
2440
4438
  {
2441
4439
  "name": "RoomMessageRequest",
2442
- "declaration": "export interface RoomMessageRequest {\n readonly sessionId: SessionId;\n readonly member: string;\n readonly text: string;\n}"
4440
+ "declaration": "export interface RoomMessageRequest {\n readonly sessionId: SessionId;\n readonly member: string;\n readonly text: string;\n readonly kind?: 'task' | 'notify';\n readonly inReplyTo?: string;\n readonly note?: string;\n readonly task?: string;\n}"
2443
4441
  },
2444
4442
  {
2445
4443
  "name": "RoomMessageResult",
2446
- "declaration": "export type RoomMessageResult = { readonly ok: true; readonly value: { readonly member: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
4444
+ "declaration": "export type RoomMessageResult = { readonly ok: true; readonly value: RoomMessageReceipt; } | { readonly ok: false; readonly error: RoomFailure; };"
2447
4445
  },
2448
4446
  {
2449
4447
  "name": "RoomPlan",
@@ -2451,7 +4449,7 @@ export const TYPERT = {
2451
4449
  },
2452
4450
  {
2453
4451
  "name": "RoomPostMessageRequest",
2454
- "declaration": "export interface RoomPostMessageRequest {\n readonly requestId?: string;\n readonly sessionId: SessionId;\n readonly text: string;\n readonly targets?: readonly string[];\n}"
4452
+ "declaration": "export interface RoomPostMessageRequest {\n readonly requestId?: string;\n readonly sessionId: SessionId;\n readonly text: string;\n readonly targets?: readonly string[];\n readonly task?: string;\n}"
2455
4453
  },
2456
4454
  {
2457
4455
  "name": "RoomPostMessageResult",
@@ -2473,13 +4471,41 @@ export const TYPERT = {
2473
4471
  "name": "RoomPrepareMemberResult",
2474
4472
  "declaration": "export type RoomPrepareMemberResult = { readonly ok: true; readonly value: { readonly childSessionId: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
2475
4473
  },
4474
+ {
4475
+ "name": "RoomPresetInfo",
4476
+ "declaration": "export interface RoomPresetInfo {\n readonly id: string;\n readonly name?: string;\n readonly description?: string;\n readonly isDefault: boolean;\n readonly broken?: string;\n}"
4477
+ },
2476
4478
  {
2477
4479
  "name": "RoomProviderInfo",
2478
4480
  "declaration": "export interface RoomProviderInfo {\n readonly provider: string;\n readonly displayName: string;\n readonly harness?: string;\n readonly authenticated: boolean;\n}"
2479
4481
  },
2480
4482
  {
2481
4483
  "name": "RoomProviderList",
2482
- "declaration": "export interface RoomProviderList {\n readonly localAgentAvailable: boolean;\n readonly providers: readonly RoomProviderInfo[];\n}"
4484
+ "declaration": "export interface RoomProviderList {\n readonly localAgentAvailable: boolean;\n readonly providers: readonly RoomProviderInfo[];\n readonly presets?: readonly RoomPresetInfo[];\n readonly sessionPreset?: string;\n}"
4485
+ },
4486
+ {
4487
+ "name": "RoomQuestion",
4488
+ "declaration": "export interface RoomQuestion {\n readonly id: string;\n readonly member: string;\n readonly questions: readonly RoomQuestionItem[];\n readonly time: number;\n}"
4489
+ },
4490
+ {
4491
+ "name": "RoomQuestionAnswer",
4492
+ "declaration": "export interface RoomQuestionAnswer {\n readonly id: string;\n readonly selected: readonly string[];\n readonly custom?: string;\n}"
4493
+ },
4494
+ {
4495
+ "name": "RoomQuestionEvent",
4496
+ "declaration": "export interface RoomQuestionEvent {\n readonly id: string;\n readonly member: string;\n readonly memberId: string;\n readonly questions: readonly RoomQuestionItem[];\n}"
4497
+ },
4498
+ {
4499
+ "name": "RoomQuestionItem",
4500
+ "declaration": "export interface RoomQuestionItem {\n readonly id: string;\n readonly question: string;\n readonly header?: string;\n readonly options?: readonly RoomQuestionOption[];\n readonly multiSelect?: boolean;\n}"
4501
+ },
4502
+ {
4503
+ "name": "RoomQuestionOption",
4504
+ "declaration": "export interface RoomQuestionOption {\n readonly label: string;\n readonly description?: string;\n}"
4505
+ },
4506
+ {
4507
+ "name": "RoomQuestionResolvedEvent",
4508
+ "declaration": "export interface RoomQuestionResolvedEvent {\n readonly id: string;\n readonly outcome: 'answered' | 'cancelled';\n readonly answers?: readonly RoomQuestionAnswer[];\n}"
2483
4509
  },
2484
4510
  {
2485
4511
  "name": "RoomReconcileDeliveryRequest",
@@ -2491,11 +4517,11 @@ export const TYPERT = {
2491
4517
  },
2492
4518
  {
2493
4519
  "name": "RoomRelay",
2494
- "declaration": "export interface RoomRelay {\n readonly id: string;\n readonly from: string;\n readonly to: string;\n readonly content: string;\n readonly provenance?: Record<string, RoomJsonValue>;\n readonly state: RoomRelayState;\n}"
4520
+ "declaration": "export interface RoomRelay {\n readonly id: string;\n readonly from: string;\n readonly to: string;\n readonly content: string;\n readonly provenance?: Record<string, RoomJsonValue>;\n readonly state: RoomRelayState;\n readonly reason?: RoomHoldReason;\n readonly intent?: RoomHeldDispatch;\n}"
2495
4521
  },
2496
4522
  {
2497
4523
  "name": "RoomRelayEvent",
2498
- "declaration": "export interface RoomRelayEvent {\n readonly id: string;\n readonly from: string;\n readonly to: string;\n readonly content: string;\n readonly provenance?: Record<string, RoomJsonValue>;\n}"
4524
+ "declaration": "export interface RoomRelayEvent {\n readonly id: string;\n readonly from: string;\n readonly to: string;\n readonly content: string;\n readonly provenance?: Record<string, RoomJsonValue>;\n readonly reason?: RoomHoldReason;\n readonly intent?: RoomHeldDispatch;\n}"
2499
4525
  },
2500
4526
  {
2501
4527
  "name": "RoomRelayResolvedEvent",
@@ -2513,17 +4539,45 @@ export const TYPERT = {
2513
4539
  "name": "RoomRelayState",
2514
4540
  "declaration": "export type RoomRelayState = 'pending' | 'confirmed' | 'dismissed' | 'sent';"
2515
4541
  },
4542
+ {
4543
+ "name": "RoomReleaseReportsRequest",
4544
+ "declaration": "export interface RoomReleaseReportsRequest {\n readonly sessionId: SessionId;\n readonly name: string;\n}"
4545
+ },
4546
+ {
4547
+ "name": "RoomReleaseReportsResult",
4548
+ "declaration": "export type RoomReleaseReportsResult = { readonly ok: true; readonly value: { readonly released: boolean; }; } | { readonly ok: false; readonly error: RoomFailure; };"
4549
+ },
4550
+ {
4551
+ "name": "RoomRemoval",
4552
+ "declaration": "export interface RoomRemoval {\n readonly name: string;\n readonly stopped: boolean;\n readonly cancelledDeliveries: number;\n readonly notified: readonly string[];\n}"
4553
+ },
2516
4554
  {
2517
4555
  "name": "RoomRemoveMemberRequest",
2518
4556
  "declaration": "export interface RoomRemoveMemberRequest {\n readonly sessionId: SessionId;\n readonly name: string;\n}"
2519
4557
  },
2520
4558
  {
2521
4559
  "name": "RoomRemoveMemberResult",
2522
- "declaration": "export type RoomRemoveMemberResult = { readonly ok: true; readonly value: { readonly name: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
4560
+ "declaration": "export type RoomRemoveMemberResult = { readonly ok: true; readonly value: RoomRemoval; } | { readonly ok: false; readonly error: RoomFailure; };"
4561
+ },
4562
+ {
4563
+ "name": "RoomReportGateEvent",
4564
+ "declaration": "export interface RoomReportGateEvent {\n readonly dispatchSeq: number;\n readonly memberId: string;\n readonly member: string;\n readonly verdict: 'deliver' | 'hold' | 'release';\n readonly reason: string;\n readonly probability?: number;\n}"
4565
+ },
4566
+ {
4567
+ "name": "RoomRestoreMemberRequest",
4568
+ "declaration": "export interface RoomRestoreMemberRequest {\n readonly sessionId: SessionId;\n readonly name: string;\n}"
4569
+ },
4570
+ {
4571
+ "name": "RoomRestoreMemberResult",
4572
+ "declaration": "export type RoomRestoreMemberResult = { readonly ok: true; readonly value: { readonly name: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
2523
4573
  },
2524
4574
  {
2525
4575
  "name": "RoomRunStateEvent",
2526
- "declaration": "export interface RoomRunStateEvent {\n readonly childSessionId?: SessionId;\n readonly model?: string;\n readonly effort?: string;\n readonly tokens?: number;\n readonly runId?: string;\n readonly member: string;\n readonly state: 'running' | 'done' | 'cancelled' | 'failed';\n readonly startedAt: number;\n readonly elapsedMs?: number;\n readonly error?: string;\n}"
4576
+ "declaration": "export interface RoomRunStateEvent {\n readonly childSessionId?: SessionId;\n readonly childTurn?: number;\n readonly model?: string;\n readonly effort?: string;\n readonly tokens?: number;\n readonly runId?: string;\n readonly member: string;\n readonly state: 'running' | 'done' | 'cancelled' | 'failed';\n readonly startedAt: number;\n readonly elapsedMs?: number;\n readonly error?: string;\n}"
4577
+ },
4578
+ {
4579
+ "name": "RoomRunUsage",
4580
+ "declaration": "export interface RoomRunUsage {\n readonly inputTokens: number;\n readonly outputTokens: number;\n readonly cacheReadTokens?: number;\n readonly cacheWriteTokens?: number;\n readonly reasoningTokens?: number;\n}"
2527
4581
  },
2528
4582
  {
2529
4583
  "name": "RoomSetCoordinatorRequest",
@@ -2541,13 +4595,41 @@ export const TYPERT = {
2541
4595
  "name": "RoomSetGoalResult",
2542
4596
  "declaration": "export type RoomSetGoalResult = { readonly ok: true; readonly value: { readonly goal?: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
2543
4597
  },
4598
+ {
4599
+ "name": "RoomSetSettingsRequest",
4600
+ "declaration": "export interface RoomSetSettingsRequest {\n readonly sessionId: SessionId;\n readonly reportTiming?: 'judge' | 'each';\n readonly autoTaskFiling?: boolean;\n readonly reportThreshold?: number;\n readonly reportWaitMinutes?: number;\n readonly helpReminderMinutes?: number;\n readonly memberMessages?: 'free' | 'confirm';\n readonly hopLimit?: number;\n readonly paused?: boolean;\n}"
4601
+ },
4602
+ {
4603
+ "name": "RoomSetSettingsResult",
4604
+ "declaration": "export type RoomSetSettingsResult = { readonly ok: true; readonly value: RoomSettings; } | { readonly ok: false; readonly error: RoomFailure; };"
4605
+ },
4606
+ {
4607
+ "name": "RoomSetTaskHintRequest",
4608
+ "declaration": "export interface RoomSetTaskHintRequest {\n readonly sessionId: SessionId;\n readonly task: string | null;\n}"
4609
+ },
4610
+ {
4611
+ "name": "RoomSettings",
4612
+ "declaration": "export interface RoomSettings {\n readonly memberMessages: 'free' | 'confirm';\n readonly hopLimit: number;\n readonly paused: boolean;\n readonly reportTiming: 'judge' | 'each';\n readonly autoTaskFiling: boolean;\n readonly reportThreshold: number;\n readonly reportWaitMinutes: number;\n readonly helpReminderMinutes: number;\n}"
4613
+ },
4614
+ {
4615
+ "name": "RoomSettingsEvent",
4616
+ "declaration": "export interface RoomSettingsEvent {\n readonly memberMessages?: 'free' | 'confirm';\n readonly hopLimit?: number;\n readonly paused?: boolean;\n readonly reportTiming?: 'judge' | 'each';\n readonly autoTaskFiling?: boolean;\n readonly reportThreshold?: number;\n readonly reportWaitMinutes?: number;\n readonly helpReminderMinutes?: number;\n}"
4617
+ },
2544
4618
  {
2545
4619
  "name": "RoomSpeechEvent",
2546
- "declaration": "export interface RoomSpeechEvent {\n readonly interrupted?: 'cancelled' | 'failed';\n readonly member: string;\n readonly text: string;\n readonly childSessionId?: SessionId;\n readonly durationMs?: number;\n}"
4620
+ "declaration": "export interface RoomSpeechEvent {\n readonly interrupted?: 'cancelled' | 'failed';\n readonly reportedTo?: string;\n readonly member: string;\n readonly text: string;\n readonly childSessionId?: SessionId;\n readonly durationMs?: number;\n readonly runId?: string;\n readonly messageId?: string;\n}"
2547
4621
  },
2548
4622
  {
2549
4623
  "name": "RoomState",
2550
- "declaration": "export interface RoomState {\n readonly executions?: readonly RoomExecution[];\n readonly plan?: Omit<RoomPlan, 'requests'>;\n readonly deliveries?: readonly RoomDelivery[];\n readonly coordinator?: RoomCoordinatorEvent;\n readonly members: readonly RoomMember[];\n readonly relays: readonly RoomRelay[];\n readonly tasks: readonly RoomTask[];\n readonly runs: readonly RoomMemberRun[];\n readonly goal?: string;\n}"
4624
+ "declaration": "export interface RoomState {\n readonly executions?: readonly RoomExecution[];\n readonly plan?: Omit<RoomPlan, 'requests'>;\n readonly deliveries?: readonly RoomDelivery[];\n readonly coordinator?: RoomCoordinatorEvent;\n readonly members: readonly RoomMember[];\n readonly relays: readonly RoomRelay[];\n readonly approvals?: readonly RoomApproval[];\n readonly questions?: readonly RoomQuestion[];\n readonly tasks: readonly RoomTask[];\n readonly runs: readonly RoomMemberRun[];\n readonly goal?: string;\n readonly latestReplySeq?: number;\n readonly latestSpeechSeq?: number;\n readonly settings?: RoomSettings;\n readonly jobs?: readonly RoomJob[];\n readonly helps?: readonly RoomHelp[];\n readonly linked?: readonly RoomLinkedSession[];\n readonly helpNudgesDismissed?: readonly string[];\n}"
4625
+ },
4626
+ {
4627
+ "name": "RoomStopJobRequest",
4628
+ "declaration": "export interface RoomStopJobRequest {\n readonly sessionId: SessionId;\n readonly task: string;\n}"
4629
+ },
4630
+ {
4631
+ "name": "RoomStopJobResult",
4632
+ "declaration": "export type RoomStopJobResult = { readonly ok: true; readonly value: { readonly stopped: number; }; } | { readonly ok: false; readonly error: RoomFailure; };"
2551
4633
  },
2552
4634
  {
2553
4635
  "name": "RoomTask",
@@ -2559,7 +4641,11 @@ export const TYPERT = {
2559
4641
  },
2560
4642
  {
2561
4643
  "name": "RoomTaskEditedEvent",
2562
- "declaration": "export interface RoomTaskEditedEvent {\n readonly id: string;\n readonly title?: string;\n readonly blockedBy?: string | null;\n}"
4644
+ "declaration": "export interface RoomTaskEditedEvent {\n readonly id: string;\n readonly title?: string;\n readonly blockedBy?: string | null;\n readonly member?: string;\n}"
4645
+ },
4646
+ {
4647
+ "name": "RoomTaskLinkEvent",
4648
+ "declaration": "export interface RoomTaskLinkEvent {\n readonly message: string;\n readonly task: string;\n readonly by: 'human' | 'coordinator' | 'model';\n readonly probability?: number;\n}"
2563
4649
  },
2564
4650
  {
2565
4651
  "name": "RoomTaskStatus",
@@ -2571,23 +4657,35 @@ export const TYPERT = {
2571
4657
  },
2572
4658
  {
2573
4659
  "name": "RoomUpdateMemberRequest",
2574
- "declaration": "export interface RoomUpdateMemberRequest {\n readonly sessionId: SessionId;\n readonly name: string;\n readonly rename?: string;\n readonly instructions?: string | null;\n readonly cwd?: string | null;\n readonly model?: string | null;\n}"
4660
+ "declaration": "export interface RoomUpdateMemberRequest {\n readonly sessionId: SessionId;\n readonly name: string;\n readonly rename?: string;\n readonly instructions?: string | null;\n readonly role?: string | null;\n readonly cwd?: string | null;\n readonly model?: string | null;\n readonly effort?: string | null;\n}"
2575
4661
  },
2576
4662
  {
2577
4663
  "name": "RoomUpdateMemberResult",
2578
4664
  "declaration": "export type RoomUpdateMemberResult = { readonly ok: true; readonly value: { readonly name: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
2579
4665
  },
2580
4666
  {
2581
- "name": "RoomUpdateTaskRequest",
2582
- "declaration": "export interface RoomUpdateTaskRequest {\n readonly sessionId: SessionId;\n readonly taskId: string;\n readonly title?: string;\n readonly blockedBy?: string | null;\n}"
4667
+ "name": "SandboxMode",
4668
+ "declaration": "export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';"
4669
+ },
4670
+ {
4671
+ "name": "ScheduleChange",
4672
+ "declaration": "export type ScheduleChange = ScheduleCreateChange | ScheduleDeleteChange | ScheduleDispatchChange;"
2583
4673
  },
2584
4674
  {
2585
- "name": "RoomUpdateTaskResult",
2586
- "declaration": "export type RoomUpdateTaskResult = { readonly ok: true; readonly value: { readonly id: string; }; } | { readonly ok: false; readonly error: RoomFailure; };"
4675
+ "name": "ScheduleCreateChange",
4676
+ "declaration": "export interface ScheduleCreateChange {\n readonly version: 1;\n readonly operation: 'create';\n readonly schedule: LegacyScheduleRecord;\n}"
2587
4677
  },
2588
4678
  {
2589
- "name": "SandboxMode",
2590
- "declaration": "export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';"
4679
+ "name": "ScheduleDeleteChange",
4680
+ "declaration": "export interface ScheduleDeleteChange {\n readonly version: 1;\n readonly operation: 'delete';\n readonly id: ScheduleId;\n}"
4681
+ },
4682
+ {
4683
+ "name": "ScheduleDispatchChange",
4684
+ "declaration": "export type ScheduleDispatchChange = OneShotScheduleDispatchChange | EveryScheduleDispatchChange;"
4685
+ },
4686
+ {
4687
+ "name": "ScheduleId",
4688
+ "declaration": "export type ScheduleId = Branded<'ScheduleId'>;"
2591
4689
  },
2592
4690
  {
2593
4691
  "name": "Session",
@@ -2599,7 +4697,7 @@ export const TYPERT = {
2599
4697
  },
2600
4698
  {
2601
4699
  "name": "SessionEventMap",
2602
- "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'local-agent/stream': LocalAgentStreamCheckpoint;\n 'room/created': RoomCreatedEvent;\n 'room/member-added': RoomMemberAddedEvent;\n 'room/member-updated': RoomMemberUpdatedEvent;\n 'room/member-removed': RoomMemberRemovedEvent;\n 'room/dispatch': RoomDispatchEvent;\n 'room/speech': RoomSpeechEvent;\n 'room/run-state': RoomRunStateEvent;\n 'room/execution-metadata': RoomExecutionMetadataEvent;\n 'room/relay': RoomRelayEvent;\n 'room/relay-resolved': RoomRelayResolvedEvent;\n 'room/task-added': RoomTaskAddedEvent;\n 'room/task-updated': RoomTaskUpdatedEvent;\n 'room/task-edited': RoomTaskEditedEvent;\n 'room/goal': RoomGoalEvent;\n 'room/plan-state': RoomPlan;\n 'room/coordinator': RoomCoordinatorEvent;\n 'room/delivery-state': RoomDeliveryStateEvent;\n}"
4700
+ "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'working-directory/change': { cwd: string; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'job/registered': JobRegisteredData;\n 'job/settled': JobSettledData;\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'permission/preset': { preset: string; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'subagent/catalog': SubagentCatalogEvent;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n 'feedback/record': FeedbackRecord;\n 'llm/retry': LlmRetryEventData;\n 'llm/retry-started': LlmRetryStartedEventData;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'plan/mode': { active: boolean; };\n 'schedule/change': ScheduleChange;\n 'subagent/model-selection-policy': { allowedModels: AllowedModelRoute[]; };\n 'workspace/changes': { turn: number; };\n 'local-agent/stream': LocalAgentStreamCheckpoint;\n 'room/created': RoomCreatedEvent;\n 'room/member-added': RoomMemberAddedEvent;\n 'room/member-updated': RoomMemberUpdatedEvent;\n 'room/member-removed': RoomMemberRemovedEvent;\n 'room/dispatch': RoomDispatchEvent;\n 'room/speech': RoomSpeechEvent;\n 'room/run-state': RoomRunStateEvent;\n 'room/execution-metadata': RoomExecutionMetadataEvent;\n 'room/relay': RoomRelayEvent;\n 'room/relay-resolved': RoomRelayResolvedEvent;\n 'room/approval': RoomApprovalEvent;\n 'room/approval-resolved': RoomApprovalResolvedEvent;\n 'room/question': RoomQuestionEvent;\n 'room/question-resolved': RoomQuestionResolvedEvent;\n 'room/task-added': RoomTaskAddedEvent;\n 'room/task-updated': RoomTaskUpdatedEvent;\n 'room/task-edited': RoomTaskEditedEvent;\n 'room/goal': RoomGoalEvent;\n 'room/settings': RoomSettingsEvent;\n 'room/report-gate': RoomReportGateEvent;\n 'room/decision': RoomDecisionEvent;\n 'room/task-link': RoomTaskLinkEvent;\n 'room/job-stopped': RoomJobStoppedEvent;\n 'room/help': RoomHelpEvent;\n 'room/help-message': RoomHelpMessageEvent;\n 'room/help-state': RoomHelpStateEvent;\n 'room/help-in': RoomHelpInEvent;\n 'room/help-link': { readonly sessionId: string; readonly title: string; };\n 'room/help-unlink': { readonly sessionId: string; };\n 'room/help-nudge-dismissed': { readonly sessionId: string; };\n 'room/plan-state': RoomPlan;\n 'room/coordinator': RoomCoordinatorEvent;\n 'room/delivery-state': RoomDeliveryStateEvent;\n}"
2603
4701
  },
2604
4702
  {
2605
4703
  "name": "SessionEventType",
@@ -2617,6 +4715,14 @@ export const TYPERT = {
2617
4715
  "name": "SessionLogOffset",
2618
4716
  "declaration": "export type SessionLogOffset = BrandedNumber<'SessionLogOffset'>;"
2619
4717
  },
4718
+ {
4719
+ "name": "SessionReferenceSource",
4720
+ "declaration": "export interface SessionReferenceSource {\n kind: 'session-reference';\n form: 'recall';\n version: 1;\n references: { sessionId: string; label: string; capturedFormatVersion?: number; capturedThroughSeq: OptionalSessionSeq; compacted: boolean; originalMessages: number; retainedMessages: number; omittedMessages: number; omittedBytes: number; truncated: boolean; inputIndex: number; }[];\n}"
4721
+ },
4722
+ {
4723
+ "name": "SessionRequestId",
4724
+ "declaration": "export type SessionRequestId = Branded<'session-request-id'>;"
4725
+ },
2620
4726
  {
2621
4727
  "name": "SessionSeq",
2622
4728
  "declaration": "export type SessionSeq = BrandedNumber<'SessionSeq'>;"
@@ -2651,7 +4757,7 @@ export const TYPERT = {
2651
4757
  },
2652
4758
  {
2653
4759
  "name": "SubagentCatalogEvent",
2654
- "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })));"
4760
+ "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })) | { readonly version: 2; readonly mode: 'external'; readonly label?: string; });"
2655
4761
  },
2656
4762
  {
2657
4763
  "name": "SubagentDescriptorBase",
@@ -2689,6 +4795,42 @@ export const TYPERT = {
2689
4795
  "name": "SystemPromptUpdate",
2690
4796
  "declaration": "export type SystemPromptUpdate = 'in-history';"
2691
4797
  },
4798
+ {
4799
+ "name": "TeamId",
4800
+ "declaration": "export type TeamId = Branded<'TeamId'>;"
4801
+ },
4802
+ {
4803
+ "name": "TeamMemberPhase",
4804
+ "declaration": "export type TeamMemberPhase = 'provisioning' | 'active' | 'failed';"
4805
+ },
4806
+ {
4807
+ "name": "TeamMemberSnapshot",
4808
+ "declaration": "export interface TeamMemberSnapshot {\n readonly id: SessionId;\n readonly name: string;\n readonly description: string;\n readonly provider: string;\n readonly context: 'fresh' | 'fork';\n readonly phase: TeamMemberPhase;\n readonly error?: string;\n}"
4809
+ },
4810
+ {
4811
+ "name": "TeamMessageId",
4812
+ "declaration": "export type TeamMessageId = Branded<'TeamMessageId'>;"
4813
+ },
4814
+ {
4815
+ "name": "TeamMessageSnapshot",
4816
+ "declaration": "export interface TeamMessageSnapshot {\n readonly id: TeamMessageId;\n readonly senderId: SessionId;\n readonly senderName: string;\n readonly targetId: SessionId;\n readonly content: ContentBlock[];\n}"
4817
+ },
4818
+ {
4819
+ "name": "TeamMessageSource",
4820
+ "declaration": "export interface TeamMessageSource {\n readonly kind: 'team-message';\n readonly teamId: TeamId;\n readonly messageId: TeamMessageId;\n readonly senderId: SessionId;\n readonly senderName: string;\n}"
4821
+ },
4822
+ {
4823
+ "name": "TeamTaskId",
4824
+ "declaration": "export type TeamTaskId = Branded<'TeamTaskId'>;"
4825
+ },
4826
+ {
4827
+ "name": "TeamTaskSnapshot",
4828
+ "declaration": "export interface TeamTaskSnapshot {\n readonly id: TeamTaskId;\n readonly revision: number;\n readonly subject: string;\n readonly description: string;\n readonly status: TeamTaskStatus;\n readonly ownerId?: SessionId;\n readonly blockedBy: TeamTaskId[];\n readonly writeScopes: string[];\n}"
4829
+ },
4830
+ {
4831
+ "name": "TeamTaskStatus",
4832
+ "declaration": "export type TeamTaskStatus = 'pending' | 'in_progress' | 'completed' | 'deleted';"
4833
+ },
2692
4834
  {
2693
4835
  "name": "TextBlock",
2694
4836
  "declaration": "export interface TextBlock {\n type: 'text';\n text: string;\n}"
@@ -2752,6 +4894,18 @@ export const TYPERT = {
2752
4894
  {
2753
4895
  "name": "UserMessage",
2754
4896
  "declaration": "export interface UserMessage extends MessageBase {\n readonly role: 'user';\n}"
4897
+ },
4898
+ {
4899
+ "name": "WebhookDeliveryId",
4900
+ "declaration": "export type WebhookDeliveryId = Branded<'WebhookDeliveryId'>;"
4901
+ },
4902
+ {
4903
+ "name": "WebhookRuleId",
4904
+ "declaration": "export type WebhookRuleId = Branded<'WebhookRuleId'>;"
4905
+ },
4906
+ {
4907
+ "name": "WebhookSourceId",
4908
+ "declaration": "export type WebhookSourceId = Branded<'WebhookSourceId'>;"
2755
4909
  }
2756
4910
  ]
2757
4911
  }