@pellux/goodvibes-sdk 0.25.8 → 0.25.11

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 (245) hide show
  1. package/README.md +4 -0
  2. package/dist/_internal/contracts/artifacts/operator-contract.json +178 -6
  3. package/dist/_internal/contracts/generated/foundation-client-types.d.ts +16 -1
  4. package/dist/_internal/contracts/generated/foundation-client-types.d.ts.map +1 -1
  5. package/dist/_internal/contracts/generated/foundation-metadata.d.ts +2 -2
  6. package/dist/_internal/contracts/generated/foundation-metadata.js +2 -2
  7. package/dist/_internal/contracts/generated/operator-contract.d.ts.map +1 -1
  8. package/dist/_internal/contracts/generated/operator-contract.js +178 -6
  9. package/dist/_internal/contracts/generated/operator-method-ids.d.ts +1 -1
  10. package/dist/_internal/contracts/generated/operator-method-ids.d.ts.map +1 -1
  11. package/dist/_internal/contracts/generated/operator-method-ids.js +1 -0
  12. package/dist/_internal/daemon/context.d.ts +1 -0
  13. package/dist/_internal/daemon/context.d.ts.map +1 -1
  14. package/dist/_internal/daemon/integration-route-types.d.ts +1 -0
  15. package/dist/_internal/daemon/integration-route-types.d.ts.map +1 -1
  16. package/dist/_internal/daemon/integration-routes.d.ts +1 -1
  17. package/dist/_internal/daemon/integration-routes.d.ts.map +1 -1
  18. package/dist/_internal/daemon/integration-routes.js +3 -0
  19. package/dist/_internal/daemon/operator.d.ts +1 -1
  20. package/dist/_internal/daemon/operator.d.ts.map +1 -1
  21. package/dist/_internal/daemon/operator.js +2 -0
  22. package/dist/_internal/daemon/runtime-route-types.d.ts +1 -1
  23. package/dist/_internal/daemon/runtime-route-types.d.ts.map +1 -1
  24. package/dist/_internal/platform/adapters/discord/index.d.ts.map +1 -1
  25. package/dist/_internal/platform/adapters/discord/index.js +4 -5
  26. package/dist/_internal/platform/adapters/github/index.d.ts.map +1 -1
  27. package/dist/_internal/platform/adapters/github/index.js +4 -5
  28. package/dist/_internal/platform/adapters/google-chat/index.d.ts.map +1 -1
  29. package/dist/_internal/platform/adapters/google-chat/index.js +7 -5
  30. package/dist/_internal/platform/adapters/helpers.d.ts +2 -1
  31. package/dist/_internal/platform/adapters/helpers.d.ts.map +1 -1
  32. package/dist/_internal/platform/adapters/helpers.js +3 -34
  33. package/dist/_internal/platform/adapters/homeassistant/index.d.ts +3 -0
  34. package/dist/_internal/platform/adapters/homeassistant/index.d.ts.map +1 -0
  35. package/dist/_internal/platform/adapters/homeassistant/index.js +177 -0
  36. package/dist/_internal/platform/adapters/index.d.ts +1 -0
  37. package/dist/_internal/platform/adapters/index.d.ts.map +1 -1
  38. package/dist/_internal/platform/adapters/index.js +1 -0
  39. package/dist/_internal/platform/adapters/mattermost/index.d.ts.map +1 -1
  40. package/dist/_internal/platform/adapters/mattermost/index.js +6 -2
  41. package/dist/_internal/platform/adapters/slack/index.d.ts.map +1 -1
  42. package/dist/_internal/platform/adapters/slack/index.js +4 -5
  43. package/dist/_internal/platform/adapters/telegram/index.d.ts.map +1 -1
  44. package/dist/_internal/platform/adapters/telegram/index.js +7 -5
  45. package/dist/_internal/platform/adapters/types.d.ts +1 -1
  46. package/dist/_internal/platform/adapters/types.d.ts.map +1 -1
  47. package/dist/_internal/platform/adapters/webhook/index.d.ts.map +1 -1
  48. package/dist/_internal/platform/adapters/webhook/index.js +4 -1
  49. package/dist/_internal/platform/automation/types.d.ts +1 -1
  50. package/dist/_internal/platform/automation/types.d.ts.map +1 -1
  51. package/dist/_internal/platform/batch/manager.d.ts.map +1 -1
  52. package/dist/_internal/platform/batch/manager.js +4 -0
  53. package/dist/_internal/platform/batch/types.d.ts +4 -0
  54. package/dist/_internal/platform/batch/types.d.ts.map +1 -1
  55. package/dist/_internal/platform/channels/builtin/accounts.d.ts.map +1 -1
  56. package/dist/_internal/platform/channels/builtin/accounts.js +22 -0
  57. package/dist/_internal/platform/channels/builtin/contracts.d.ts.map +1 -1
  58. package/dist/_internal/platform/channels/builtin/contracts.js +9 -0
  59. package/dist/_internal/platform/channels/builtin/descriptors.d.ts.map +1 -1
  60. package/dist/_internal/platform/channels/builtin/descriptors.js +9 -2
  61. package/dist/_internal/platform/channels/builtin/homeassistant.d.ts +64 -0
  62. package/dist/_internal/platform/channels/builtin/homeassistant.d.ts.map +1 -0
  63. package/dist/_internal/platform/channels/builtin/homeassistant.js +380 -0
  64. package/dist/_internal/platform/channels/builtin/plugins.d.ts.map +1 -1
  65. package/dist/_internal/platform/channels/builtin/plugins.js +2 -1
  66. package/dist/_internal/platform/channels/builtin/presentation.d.ts.map +1 -1
  67. package/dist/_internal/platform/channels/builtin/presentation.js +4 -0
  68. package/dist/_internal/platform/channels/builtin/setup-schema.d.ts.map +1 -1
  69. package/dist/_internal/platform/channels/builtin/setup-schema.js +46 -0
  70. package/dist/_internal/platform/channels/builtin/shared.d.ts +1 -1
  71. package/dist/_internal/platform/channels/builtin/shared.d.ts.map +1 -1
  72. package/dist/_internal/platform/channels/builtin/shared.js +2 -0
  73. package/dist/_internal/platform/channels/builtin/surfaces.d.ts.map +1 -1
  74. package/dist/_internal/platform/channels/builtin/surfaces.js +1 -0
  75. package/dist/_internal/platform/channels/builtin/targets.d.ts.map +1 -1
  76. package/dist/_internal/platform/channels/builtin/targets.js +24 -0
  77. package/dist/_internal/platform/channels/builtin-runtime.d.ts.map +1 -1
  78. package/dist/_internal/platform/channels/builtin-runtime.js +6 -0
  79. package/dist/_internal/platform/channels/delivery/strategies-core.d.ts +1 -0
  80. package/dist/_internal/platform/channels/delivery/strategies-core.d.ts.map +1 -1
  81. package/dist/_internal/platform/channels/delivery/strategies-core.js +41 -1
  82. package/dist/_internal/platform/channels/delivery-router.d.ts.map +1 -1
  83. package/dist/_internal/platform/channels/delivery-router.js +2 -1
  84. package/dist/_internal/platform/channels/reply-pipeline.d.ts.map +1 -1
  85. package/dist/_internal/platform/channels/reply-pipeline.js +9 -0
  86. package/dist/_internal/platform/channels/route-manager.d.ts.map +1 -1
  87. package/dist/_internal/platform/channels/route-manager.js +1 -0
  88. package/dist/_internal/platform/channels/surface-registry.d.ts.map +1 -1
  89. package/dist/_internal/platform/channels/surface-registry.js +4 -0
  90. package/dist/_internal/platform/channels/types.d.ts +1 -1
  91. package/dist/_internal/platform/channels/types.d.ts.map +1 -1
  92. package/dist/_internal/platform/cloudflare/client.d.ts +3 -0
  93. package/dist/_internal/platform/cloudflare/client.d.ts.map +1 -0
  94. package/dist/_internal/platform/cloudflare/client.js +9 -0
  95. package/dist/_internal/platform/cloudflare/config.d.ts +8 -0
  96. package/dist/_internal/platform/cloudflare/config.d.ts.map +1 -0
  97. package/dist/_internal/platform/cloudflare/config.js +48 -0
  98. package/dist/_internal/platform/cloudflare/constants.d.ts +18 -0
  99. package/dist/_internal/platform/cloudflare/constants.d.ts.map +1 -0
  100. package/dist/_internal/platform/cloudflare/constants.js +36 -0
  101. package/dist/_internal/platform/cloudflare/discovery.d.ts +23 -0
  102. package/dist/_internal/platform/cloudflare/discovery.d.ts.map +1 -0
  103. package/dist/_internal/platform/cloudflare/discovery.js +57 -0
  104. package/dist/_internal/platform/cloudflare/index.d.ts +6 -0
  105. package/dist/_internal/platform/cloudflare/index.d.ts.map +1 -0
  106. package/dist/_internal/platform/cloudflare/index.js +4 -0
  107. package/dist/_internal/platform/cloudflare/manager.d.ts +30 -0
  108. package/dist/_internal/platform/cloudflare/manager.d.ts.map +1 -0
  109. package/dist/_internal/platform/cloudflare/manager.js +674 -0
  110. package/dist/_internal/platform/cloudflare/resources.d.ts +79 -0
  111. package/dist/_internal/platform/cloudflare/resources.d.ts.map +1 -0
  112. package/dist/_internal/platform/cloudflare/resources.js +353 -0
  113. package/dist/_internal/platform/cloudflare/types.d.ts +694 -0
  114. package/dist/_internal/platform/cloudflare/types.d.ts.map +1 -0
  115. package/dist/_internal/platform/cloudflare/types.js +10 -0
  116. package/dist/_internal/platform/cloudflare/utils.d.ts +14 -0
  117. package/dist/_internal/platform/cloudflare/utils.d.ts.map +1 -0
  118. package/dist/_internal/platform/cloudflare/utils.js +216 -0
  119. package/dist/_internal/platform/cloudflare/worker-source.d.ts +2 -0
  120. package/dist/_internal/platform/cloudflare/worker-source.d.ts.map +1 -0
  121. package/dist/_internal/platform/cloudflare/worker-source.js +165 -0
  122. package/dist/_internal/platform/companion/companion-chat-manager.d.ts +24 -4
  123. package/dist/_internal/platform/companion/companion-chat-manager.d.ts.map +1 -1
  124. package/dist/_internal/platform/companion/companion-chat-manager.js +128 -78
  125. package/dist/_internal/platform/config/schema-domain-runtime.d.ts +24 -0
  126. package/dist/_internal/platform/config/schema-domain-runtime.d.ts.map +1 -1
  127. package/dist/_internal/platform/config/schema-domain-runtime.js +169 -0
  128. package/dist/_internal/platform/config/schema-domain-surfaces.d.ts +11 -0
  129. package/dist/_internal/platform/config/schema-domain-surfaces.d.ts.map +1 -1
  130. package/dist/_internal/platform/config/schema-domain-surfaces.js +59 -0
  131. package/dist/_internal/platform/config/schema-types.d.ts +38 -2
  132. package/dist/_internal/platform/config/schema-types.d.ts.map +1 -1
  133. package/dist/_internal/platform/control-plane/gateway-utils.d.ts +37 -0
  134. package/dist/_internal/platform/control-plane/gateway-utils.d.ts.map +1 -0
  135. package/dist/_internal/platform/control-plane/gateway-utils.js +97 -0
  136. package/dist/_internal/platform/control-plane/gateway.d.ts +4 -9
  137. package/dist/_internal/platform/control-plane/gateway.d.ts.map +1 -1
  138. package/dist/_internal/platform/control-plane/gateway.js +26 -61
  139. package/dist/_internal/platform/control-plane/method-catalog-runtime.d.ts.map +1 -1
  140. package/dist/_internal/platform/control-plane/method-catalog-runtime.js +11 -1
  141. package/dist/_internal/platform/control-plane/operator-contract-schemas-admin.d.ts.map +1 -1
  142. package/dist/_internal/platform/control-plane/operator-contract-schemas-admin.js +3 -2
  143. package/dist/_internal/platform/control-plane/operator-contract-schemas-control.d.ts +1 -0
  144. package/dist/_internal/platform/control-plane/operator-contract-schemas-control.d.ts.map +1 -1
  145. package/dist/_internal/platform/control-plane/operator-contract-schemas-control.js +26 -0
  146. package/dist/_internal/platform/control-plane/routes/operator.d.ts +1 -1
  147. package/dist/_internal/platform/control-plane/routes/operator.d.ts.map +1 -1
  148. package/dist/_internal/platform/control-plane/routes/operator.js +2 -0
  149. package/dist/_internal/platform/control-plane/types.d.ts +1 -1
  150. package/dist/_internal/platform/control-plane/types.d.ts.map +1 -1
  151. package/dist/_internal/platform/daemon/control-plane.d.ts.map +1 -1
  152. package/dist/_internal/platform/daemon/control-plane.js +50 -6
  153. package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
  154. package/dist/_internal/platform/daemon/facade-composition.js +30 -2
  155. package/dist/_internal/platform/daemon/facade-types.d.ts +1 -1
  156. package/dist/_internal/platform/daemon/facade-types.d.ts.map +1 -1
  157. package/dist/_internal/platform/daemon/http/cloudflare-routes.d.ts +7 -0
  158. package/dist/_internal/platform/daemon/http/cloudflare-routes.d.ts.map +1 -0
  159. package/dist/_internal/platform/daemon/http/cloudflare-routes.js +201 -0
  160. package/dist/_internal/platform/daemon/http/router.d.ts +3 -3
  161. package/dist/_internal/platform/daemon/http/router.d.ts.map +1 -1
  162. package/dist/_internal/platform/daemon/http/router.js +22 -16
  163. package/dist/_internal/platform/daemon/http/runtime-route-types.d.ts +1 -1
  164. package/dist/_internal/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
  165. package/dist/_internal/platform/daemon/http-listener.d.ts.map +1 -1
  166. package/dist/_internal/platform/daemon/http-listener.js +4 -8
  167. package/dist/_internal/platform/daemon/surface-actions.d.ts +1 -1
  168. package/dist/_internal/platform/daemon/surface-actions.d.ts.map +1 -1
  169. package/dist/_internal/platform/daemon/surface-delivery.d.ts +1 -1
  170. package/dist/_internal/platform/daemon/surface-delivery.d.ts.map +1 -1
  171. package/dist/_internal/platform/daemon/surface-delivery.js +1 -0
  172. package/dist/_internal/platform/daemon/surface-policy.d.ts +1 -1
  173. package/dist/_internal/platform/daemon/surface-policy.d.ts.map +1 -1
  174. package/dist/_internal/platform/daemon/surface-policy.js +8 -0
  175. package/dist/_internal/platform/daemon/types.d.ts +2 -2
  176. package/dist/_internal/platform/daemon/types.d.ts.map +1 -1
  177. package/dist/_internal/platform/integrations/homeassistant.d.ts +58 -0
  178. package/dist/_internal/platform/integrations/homeassistant.d.ts.map +1 -0
  179. package/dist/_internal/platform/integrations/homeassistant.js +174 -0
  180. package/dist/_internal/platform/integrations/index.d.ts +2 -0
  181. package/dist/_internal/platform/integrations/index.d.ts.map +1 -1
  182. package/dist/_internal/platform/integrations/index.js +1 -0
  183. package/dist/_internal/platform/runtime/events/control-plane.d.ts +1 -1
  184. package/dist/_internal/platform/runtime/events/control-plane.d.ts.map +1 -1
  185. package/dist/_internal/platform/runtime/events/control-plane.js +1 -0
  186. package/dist/_internal/platform/runtime/events/routes.d.ts +1 -1
  187. package/dist/_internal/platform/runtime/events/routes.d.ts.map +1 -1
  188. package/dist/_internal/platform/runtime/events/routes.js +1 -0
  189. package/dist/_internal/platform/runtime/feature-flags/flags.d.ts.map +1 -1
  190. package/dist/_internal/platform/runtime/feature-flags/flags.js +9 -0
  191. package/dist/_internal/platform/runtime/feature-flags/gates.d.ts.map +1 -1
  192. package/dist/_internal/platform/runtime/feature-flags/gates.js +2 -0
  193. package/dist/_internal/platform/runtime/index.d.ts +2 -0
  194. package/dist/_internal/platform/runtime/index.d.ts.map +1 -1
  195. package/dist/_internal/platform/runtime/index.js +1 -0
  196. package/dist/_internal/platform/runtime/integration/helpers.d.ts +4 -0
  197. package/dist/_internal/platform/runtime/integration/helpers.d.ts.map +1 -1
  198. package/dist/_internal/platform/runtime/integration/helpers.js +4 -0
  199. package/dist/_internal/platform/runtime/security-settings.d.ts +19 -0
  200. package/dist/_internal/platform/runtime/security-settings.d.ts.map +1 -0
  201. package/dist/_internal/platform/runtime/security-settings.js +187 -0
  202. package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
  203. package/dist/_internal/platform/runtime/services.js +1 -0
  204. package/dist/_internal/platform/security/user-auth.d.ts +1 -1
  205. package/dist/_internal/platform/security/user-auth.d.ts.map +1 -1
  206. package/dist/_internal/platform/security/user-auth.js +18 -3
  207. package/dist/_internal/platform/tools/edit/core.d.ts.map +1 -1
  208. package/dist/_internal/platform/tools/edit/core.js +4 -47
  209. package/dist/_internal/platform/tools/exec/runtime.d.ts.map +1 -1
  210. package/dist/_internal/platform/tools/exec/runtime.js +7 -1
  211. package/dist/_internal/platform/tools/exec/schema.d.ts +1 -0
  212. package/dist/_internal/platform/tools/exec/schema.d.ts.map +1 -1
  213. package/dist/_internal/platform/tools/exec/schema.js +1 -0
  214. package/dist/_internal/platform/tools/fetch/runtime.d.ts.map +1 -1
  215. package/dist/_internal/platform/tools/fetch/runtime.js +140 -19
  216. package/dist/_internal/platform/tools/fetch/schema.d.ts +1 -0
  217. package/dist/_internal/platform/tools/fetch/schema.d.ts.map +1 -1
  218. package/dist/_internal/platform/tools/fetch/schema.js +1 -0
  219. package/dist/_internal/platform/tools/find/executor.d.ts.map +1 -1
  220. package/dist/_internal/platform/tools/find/executor.js +7 -1
  221. package/dist/_internal/platform/tools/find/schema.d.ts.map +1 -1
  222. package/dist/_internal/platform/tools/find/schema.js +2 -0
  223. package/dist/_internal/platform/tools/read/index.d.ts.map +1 -1
  224. package/dist/_internal/platform/tools/read/index.js +7 -1
  225. package/dist/_internal/platform/tools/read/schema.d.ts +1 -0
  226. package/dist/_internal/platform/tools/read/schema.d.ts.map +1 -1
  227. package/dist/_internal/platform/tools/read/schema.js +1 -0
  228. package/dist/_internal/platform/tools/shared/process-manager.d.ts +2 -0
  229. package/dist/_internal/platform/tools/shared/process-manager.d.ts.map +1 -1
  230. package/dist/_internal/platform/tools/shared/process-manager.js +67 -5
  231. package/dist/_internal/platform/tools/write/index.d.ts.map +1 -1
  232. package/dist/_internal/platform/tools/write/index.js +3 -36
  233. package/dist/_internal/platform/utils/concurrency.d.ts +3 -0
  234. package/dist/_internal/platform/utils/concurrency.d.ts.map +1 -0
  235. package/dist/_internal/platform/utils/concurrency.js +17 -0
  236. package/dist/_internal/platform/utils/logger.d.ts.map +1 -1
  237. package/dist/_internal/platform/utils/logger.js +19 -1
  238. package/dist/_internal/platform/utils/request-body.d.ts +4 -0
  239. package/dist/_internal/platform/utils/request-body.d.ts.map +1 -0
  240. package/dist/_internal/platform/utils/request-body.js +45 -0
  241. package/dist/_internal/platform/version.js +1 -1
  242. package/dist/workers.d.ts +9 -0
  243. package/dist/workers.d.ts.map +1 -1
  244. package/dist/workers.js +67 -3
  245. package/package.json +2 -1
@@ -3,49 +3,7 @@ import { createDomainDispatch } from '../runtime/store/index.js';
3
3
  import { emitControlPlaneAuthGranted, emitControlPlaneClientConnected, emitControlPlaneClientDisconnected, emitControlPlaneSubscriptionCreated, emitControlPlaneSubscriptionDropped, } from '../runtime/emitters/index.js';
4
4
  import { renderControlPlaneGatewayWebUi } from './gateway-web-ui.js';
5
5
  import { isFeatureGateEnabled, requireFeatureGate } from '../runtime/feature-flags/index.js';
6
- const DEFAULT_DOMAINS = [
7
- 'session',
8
- 'tasks',
9
- 'agents',
10
- 'automation',
11
- 'routes',
12
- 'control-plane',
13
- 'deliveries',
14
- 'surfaces',
15
- 'watchers',
16
- 'transport',
17
- 'ops',
18
- 'knowledge',
19
- 'providers',
20
- 'turn',
21
- ];
22
- const DEFAULT_SERVER_CONFIG = {
23
- enabled: false,
24
- host: '127.0.0.1',
25
- port: 3421,
26
- streamingMode: 'sse',
27
- sessionTtlMs: 12 * 60 * 60 * 1000,
28
- };
29
- function serializeEnvelope(envelope) {
30
- return {
31
- type: envelope.type,
32
- timestamp: envelope.ts,
33
- traceId: envelope.traceId,
34
- sessionId: envelope.sessionId,
35
- source: envelope.source,
36
- payload: envelope.payload,
37
- };
38
- }
39
- function toClientDescriptor(record) {
40
- return {
41
- id: record.id,
42
- surface: record.kind,
43
- label: record.label,
44
- connectedAt: record.authenticatedAt ?? record.lastSeenAt ?? Date.now(),
45
- lastSeenAt: record.lastSeenAt ?? Date.now(),
46
- ...(record.metadata.userId && typeof record.metadata.userId === 'string' ? { userId: record.metadata.userId } : {}),
47
- };
48
- }
6
+ import { DEFAULT_DOMAINS, DEFAULT_SERVER_CONFIG, canReplayEventToClient, hasReplayScope, normalizeRuntimeDomains, pruneDisconnectedClientRecords, serializeEnvelope, stripReplayScope, toClientDescriptor, } from './gateway-utils.js';
49
7
  export class ControlPlaneGateway {
50
8
  runtimeBus;
51
9
  dispatch;
@@ -127,6 +85,7 @@ export class ControlPlaneGateway {
127
85
  listClients() {
128
86
  if (!this.isEnabled())
129
87
  return [];
88
+ pruneDisconnectedClientRecords(this.clients);
130
89
  return [...this.clients.values()]
131
90
  .sort((a, b) => (b.lastSeenAt ?? 0) - (a.lastSeenAt ?? 0) || a.id.localeCompare(b.id))
132
91
  .map(toClientDescriptor);
@@ -150,6 +109,7 @@ export class ControlPlaneGateway {
150
109
  recentEvents: [],
151
110
  };
152
111
  }
112
+ pruneDisconnectedClientRecords(this.clients);
153
113
  const active = [...this.clients.values()].filter((client) => client.connected);
154
114
  return {
155
115
  server: this.serverConfig,
@@ -174,7 +134,7 @@ export class ControlPlaneGateway {
174
134
  listRecentEvents(limit = 100) {
175
135
  if (!this.isEnabled())
176
136
  return [];
177
- return this.recentEvents.slice(0, Math.max(1, limit));
137
+ return this.recentEvents.slice(0, Math.max(1, limit)).map(stripReplayScope);
178
138
  }
179
139
  publishSurfaceMessage(input) {
180
140
  this.requireEnabled('publish surface message');
@@ -187,15 +147,19 @@ export class ControlPlaneGateway {
187
147
  if (this.recentMessages.length > 200) {
188
148
  this.recentMessages.length = 200;
189
149
  }
190
- const record = this.rememberEvent('surface-message', message);
150
+ const record = this.rememberEvent('surface-message', message, {
151
+ ...(message.clientId ? { clientId: message.clientId } : {}),
152
+ ...(message.routeId ? { routeId: message.routeId } : {}),
153
+ ...(message.surfaceId ? { surfaceId: message.surfaceId } : {}),
154
+ });
191
155
  for (const client of this.liveClients.values()) {
192
156
  if (client.kind !== 'web')
193
157
  continue;
194
158
  if (message.clientId && client.clientId !== message.clientId)
195
159
  continue;
196
- if (message.routeId && client.routeId && client.routeId !== message.routeId)
160
+ if (message.routeId && client.routeId !== message.routeId)
197
161
  continue;
198
- if (message.surfaceId && client.surfaceId && client.surfaceId !== message.surfaceId)
162
+ if (message.surfaceId && client.surfaceId !== message.surfaceId)
199
163
  continue;
200
164
  client.send('surface-message', message, record.id);
201
165
  }
@@ -204,15 +168,15 @@ export class ControlPlaneGateway {
204
168
  publishEvent(event, payload, filter) {
205
169
  if (!this.isEnabled())
206
170
  return;
207
- const record = this.rememberEvent(event, payload);
171
+ const record = this.rememberEvent(event, payload, filter);
208
172
  for (const client of this.liveClients.values()) {
209
173
  if (filter?.clientKind && client.kind !== filter.clientKind)
210
174
  continue;
211
175
  if (filter?.clientId && client.clientId !== filter.clientId)
212
176
  continue;
213
- if (filter?.routeId && client.routeId && client.routeId !== filter.routeId)
177
+ if (filter?.routeId && client.routeId !== filter.routeId)
214
178
  continue;
215
- if (filter?.surfaceId && client.surfaceId && client.surfaceId !== filter.surfaceId)
179
+ if (filter?.surfaceId && client.surfaceId !== filter.surfaceId)
216
180
  continue;
217
181
  client.send(event, payload, record.id);
218
182
  }
@@ -267,7 +231,7 @@ export class ControlPlaneGateway {
267
231
  if (!this.runtimeBus) {
268
232
  throw new Error('Runtime event bus unavailable');
269
233
  }
270
- const selectedDomains = options.domains?.length ? [...options.domains] : [...DEFAULT_DOMAINS];
234
+ const selectedDomains = normalizeRuntimeDomains(options.domains);
271
235
  const clientId = options.clientId ?? `cp-${randomUUID().slice(0, 8)}`;
272
236
  const label = options.label ?? `${options.clientKind ?? 'web'}:${clientId}`;
273
237
  const now = Date.now();
@@ -344,7 +308,7 @@ export class ControlPlaneGateway {
344
308
  }
345
309
  this.subscribeWebSocketClient(clientId, selectedDomains);
346
310
  send('ready', { clientId, domains: selectedDomains, transport: 'websocket' });
347
- this.replayRecentTraffic(send);
311
+ this.replayRecentTraffic(send, { ...options, clientId, domains: selectedDomains });
348
312
  return { clientId, domains: selectedDomains };
349
313
  }
350
314
  touchWebSocketClient(clientId, metadata = {}) {
@@ -470,6 +434,7 @@ export class ControlPlaneGateway {
470
434
  lastSeenAt: Date.now(),
471
435
  };
472
436
  this.clients.set(clientId, disconnected);
437
+ pruneDisconnectedClientRecords(this.clients);
473
438
  this.dispatch?.syncControlPlaneClient(disconnected, 'control-plane.gateway.ws-disconnect');
474
439
  this.dispatch?.syncControlPlaneState({
475
440
  enabled: true,
@@ -477,12 +442,14 @@ export class ControlPlaneGateway {
477
442
  connectionState: [...this.clients.values()].some((client) => client.connected) ? 'connected' : 'disconnected',
478
443
  }, 'control-plane.gateway.ws-disconnect');
479
444
  }
480
- replayRecentTraffic(send, sinceId) {
445
+ replayRecentTraffic(send, options, sinceId) {
481
446
  const sinceIndex = sinceId ? this.recentEvents.findIndex((event) => event.id === sinceId) : -1;
482
447
  const recentEvents = sinceIndex >= 0
483
448
  ? this.recentEvents.slice(0, sinceIndex).reverse()
484
- : this.listRecentEvents(20).reverse();
449
+ : this.recentEvents.slice(0, 20).reverse();
485
450
  for (const recentEvent of recentEvents) {
451
+ if (!canReplayEventToClient(recentEvent, options))
452
+ continue;
486
453
  send(recentEvent.event, recentEvent.payload, recentEvent.id);
487
454
  }
488
455
  }
@@ -494,7 +461,7 @@ export class ControlPlaneGateway {
494
461
  return Response.json({ error: 'Runtime event bus unavailable' }, { status: 503 });
495
462
  }
496
463
  const encoder = new TextEncoder();
497
- const selectedDomains = options.domains?.length ? [...options.domains] : [...DEFAULT_DOMAINS];
464
+ const selectedDomains = normalizeRuntimeDomains(options.domains);
498
465
  const lastEventId = request.headers.get('last-event-id')?.trim() || undefined;
499
466
  const clientId = options.clientId ?? `cp-${randomUUID().slice(0, 8)}`;
500
467
  const label = options.label ?? `${options.clientKind ?? 'web'}:${clientId}`;
@@ -613,6 +580,7 @@ export class ControlPlaneGateway {
613
580
  lastSeenAt: Date.now(),
614
581
  };
615
582
  this.clients.set(clientId, disconnected);
583
+ pruneDisconnectedClientRecords(this.clients);
616
584
  this.dispatch?.syncControlPlaneClient(disconnected, 'control-plane.gateway.disconnect');
617
585
  this.dispatch?.syncControlPlaneState({
618
586
  enabled: true,
@@ -643,7 +611,7 @@ export class ControlPlaneGateway {
643
611
  controller.close();
644
612
  }, { once: true });
645
613
  send('ready', { clientId, domains: selectedDomains });
646
- this.replayRecentTraffic(send, lastEventId);
614
+ this.replayRecentTraffic(send, { ...options, clientId, domains: selectedDomains }, lastEventId);
647
615
  },
648
616
  cancel: () => {
649
617
  teardown();
@@ -677,12 +645,13 @@ export class ControlPlaneGateway {
677
645
  }, 'control-plane.gateway.event');
678
646
  });
679
647
  }
680
- rememberEvent(event, payload) {
648
+ rememberEvent(event, payload, replayScope) {
681
649
  const record = {
682
650
  id: `cpe-${randomUUID().slice(0, 8)}`,
683
651
  event,
684
652
  createdAt: Date.now(),
685
653
  payload,
654
+ ...(replayScope && hasReplayScope(replayScope) ? { replayScope } : {}),
686
655
  };
687
656
  // O(1) circular ring buffer write — no array shifting.
688
657
  this._recentEventsRing[this._recentEventsHead] = record;
@@ -695,9 +664,5 @@ export class ControlPlaneGateway {
695
664
  return record;
696
665
  }
697
666
  }
698
- // ---------------------------------------------------------------------------
699
667
  // Test export — exposes DEFAULT_DOMAINS for regression tests.
700
- // This export is intentional; the const itself is module-scoped so tests
701
- // cannot otherwise verify its contents without runtime inspection.
702
- // ---------------------------------------------------------------------------
703
668
  export { DEFAULT_DOMAINS as DEFAULT_DOMAINS_TEST_EXPORT };
@@ -1 +1 @@
1
- {"version":3,"file":"method-catalog-runtime.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/method-catalog-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AA2C1E,eAAO,MAAM,sCAAsC,EAAE,SAAS,uBAAuB,EAqRpF,CAAC"}
1
+ {"version":3,"file":"method-catalog-runtime.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/method-catalog-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AA4C1E,eAAO,MAAM,sCAAsC,EAAE,SAAS,uBAAuB,EA+RpF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { EMPTY_OBJECT_SCHEMA, STRING_SCHEMA, NUMBER_SCHEMA, objectSchema, listOutputSchema, entityOutputSchema, bodyEnvelopeSchema, methodDescriptor, runtimeEventId, } from './method-catalog-shared.js';
2
2
  import { nullableSchema } from './operator-contract-schemas-shared.js';
3
- import { CONTINUITY_SNAPSHOT_SCHEMA, DISTRIBUTED_NODE_HOST_CONTRACT_SCHEMA, HEALTH_SNAPSHOT_SCHEMA, INTELLIGENCE_SNAPSHOT_SCHEMA, MEMORY_DOCTOR_REPORT_SCHEMA, MEMORY_VECTOR_STATS_SCHEMA, PROVIDER_ACCOUNT_SNAPSHOT_SCHEMA, PROVIDER_RUNTIME_SNAPSHOT_SCHEMA, PROVIDER_USAGE_SNAPSHOT_SCHEMA, REMOTE_PAIR_APPROVAL_OUTPUT_SCHEMA, REMOTE_PAIR_REQUEST_OUTPUT_SCHEMA, REMOTE_PAIR_REQUESTS_OUTPUT_SCHEMA, REMOTE_PEERS_OUTPUT_SCHEMA, REMOTE_PAIR_REQUEST_ACTION_INPUT_SCHEMA, REMOTE_PEER_DISCONNECT_INPUT_SCHEMA, REMOTE_PEER_INVOKE_INPUT_SCHEMA, REMOTE_PEER_INVOKE_OUTPUT_SCHEMA, REMOTE_PEER_OUTPUT_SCHEMA, REMOTE_PEER_TOKEN_REVOKE_INPUT_SCHEMA, REMOTE_PEER_TOKEN_ROTATE_INPUT_SCHEMA, REMOTE_PEER_TOKEN_ROTATE_OUTPUT_SCHEMA, REMOTE_SNAPSHOT_SCHEMA, REMOTE_WORK_LIST_OUTPUT_SCHEMA, REMOTE_WORK_CANCEL_INPUT_SCHEMA, REMOTE_WORK_OUTPUT_SCHEMA, SETTINGS_SNAPSHOT_SCHEMA, WORKTREE_SNAPSHOT_SCHEMA, } from './operator-contract-schemas.js';
3
+ import { CONTINUITY_SNAPSHOT_SCHEMA, DISTRIBUTED_NODE_HOST_CONTRACT_SCHEMA, HEALTH_SNAPSHOT_SCHEMA, INTELLIGENCE_SNAPSHOT_SCHEMA, MEMORY_DOCTOR_REPORT_SCHEMA, MEMORY_VECTOR_STATS_SCHEMA, PROVIDER_ACCOUNT_SNAPSHOT_SCHEMA, PROVIDER_RUNTIME_SNAPSHOT_SCHEMA, PROVIDER_USAGE_SNAPSHOT_SCHEMA, REMOTE_PAIR_APPROVAL_OUTPUT_SCHEMA, REMOTE_PAIR_REQUEST_OUTPUT_SCHEMA, REMOTE_PAIR_REQUESTS_OUTPUT_SCHEMA, REMOTE_PEERS_OUTPUT_SCHEMA, REMOTE_PAIR_REQUEST_ACTION_INPUT_SCHEMA, REMOTE_PEER_DISCONNECT_INPUT_SCHEMA, REMOTE_PEER_INVOKE_INPUT_SCHEMA, REMOTE_PEER_INVOKE_OUTPUT_SCHEMA, REMOTE_PEER_OUTPUT_SCHEMA, REMOTE_PEER_TOKEN_REVOKE_INPUT_SCHEMA, REMOTE_PEER_TOKEN_ROTATE_INPUT_SCHEMA, REMOTE_PEER_TOKEN_ROTATE_OUTPUT_SCHEMA, REMOTE_SNAPSHOT_SCHEMA, REMOTE_WORK_LIST_OUTPUT_SCHEMA, REMOTE_WORK_CANCEL_INPUT_SCHEMA, REMOTE_WORK_OUTPUT_SCHEMA, SECURITY_SETTINGS_REPORT_SCHEMA, SETTINGS_SNAPSHOT_SCHEMA, WORKTREE_SNAPSHOT_SCHEMA, } from './operator-contract-schemas.js';
4
4
  export const builtinGatewayRuntimeMethodDescriptors = [
5
5
  methodDescriptor({
6
6
  id: 'remote.snapshot',
@@ -191,6 +191,16 @@ export const builtinGatewayRuntimeMethodDescriptors = [
191
191
  inputSchema: EMPTY_OBJECT_SCHEMA,
192
192
  outputSchema: SETTINGS_SNAPSHOT_SCHEMA,
193
193
  }),
194
+ methodDescriptor({
195
+ id: 'security.settings',
196
+ title: 'Security Settings Report',
197
+ description: 'Return security-relevant settings, defaults, current state, and enablement tradeoffs.',
198
+ category: 'settings',
199
+ scopes: ['read:settings'],
200
+ http: { method: 'GET', path: '/api/security-settings' },
201
+ inputSchema: EMPTY_OBJECT_SCHEMA,
202
+ outputSchema: SECURITY_SETTINGS_REPORT_SCHEMA,
203
+ }),
194
204
  methodDescriptor({
195
205
  id: 'continuity.snapshot',
196
206
  title: 'Continuity Snapshot',
@@ -1 +1 @@
1
- {"version":3,"file":"operator-contract-schemas-admin.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/operator-contract-schemas-admin.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sBAAsB,yBAGV,CAAC;AAQ1B,eAAO,MAAM,wBAAwB,yBAQ2F,CAAC;AAEjI,eAAO,MAAM,+BAA+B,yBAE7B,CAAC;AAEhB,eAAO,MAAM,wCAAwC,yBAEtC,CAAC;AAEhB,eAAO,MAAM,uCAAuC,yBAErC,CAAC;AAEhB,eAAO,MAAM,yCAAyC,yBAEvC,CAAC;AAEhB,eAAO,MAAM,wBAAwB,yBAIT,CAAC;AAE7B,eAAO,MAAM,qBAAqB,yBAMmB,CAAC;AAEtD,eAAO,MAAM,sBAAsB,yBAWG,CAAC;AAEvC,eAAO,MAAM,qBAAqB,yBAYyD,CAAC;AAE5F,eAAO,MAAM,wBAAwB,yBAIiB,CAAC;AAwGvD,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAM9D,CAAC;AASF,eAAO,MAAM,kCAAkC,yBAGrB,CAAC;AAE3B,eAAO,MAAM,0CAA0C,yBAKhB,CAAC;AAExC,eAAO,MAAM,gCAAgC,yBAUA,CAAC;AAkB9C,eAAO,MAAM,kCAAkC,yBAoBA,CAAC;AAEhD,eAAO,MAAM,iCAAiC,yBAMD,CAAC;AAE9C,eAAO,MAAM,iCAAiC,yBAQoF,CAAC;AAUnI,eAAO,MAAM,gCAAgC,yBAQyD,CAAC;AAEvG,eAAO,MAAM,+BAA+B,yBAWgE,CAAC;AAuC7G,eAAO,MAAM,+BAA+B,yBASC,CAAC;AAE9C,eAAO,MAAM,qBAAqB,yBAwBiM,CAAC;AAcpO,eAAO,MAAM,qBAAqB,yBAiCiK,CAAC;AAEpM,eAAO,MAAM,sCAAsC,yBA6Bf,CAAC;AAErC,eAAO,MAAM,6BAA6B,yBAE9B,CAAC;AAEb,eAAO,MAAM,6BAA6B,yBAE9B,CAAC;AAEb,eAAO,MAAM,mCAAmC,yBAGvB,CAAC;AAE1B,eAAO,MAAM,oCAAoC,yBAKe,CAAC;AAEjE,eAAO,MAAM,mCAAmC,yBAErC,CAAC;AAEZ,eAAO,MAAM,gCAAgC,yBAQiC,CAAC;AAE/E,eAAO,MAAM,kCAAkC,yBAQI,CAAC;AAEpD,eAAO,MAAM,8BAA8B,yBAGvB,CAAC;AAErB,eAAO,MAAM,wBAAwB,yBASX,CAAC;AAE3B,eAAO,MAAM,sBAAsB,yBAEnB,CAAC;AAEjB,eAAO,MAAM,oBAAoB,yBAA4B,CAAC;AAE9D,eAAO,MAAM,qBAAqB,yBAKmC,CAAC;AAYtE,eAAO,MAAM,qBAAqB,yBAcwD,CAAC;AAE3F,eAAO,MAAM,0BAA0B,yBAEvB,CAAC;AAEjB,eAAO,MAAM,4BAA4B,yBAGM,CAAC;AAuChD,eAAO,MAAM,qBAAqB,yBAckG,CAAC"}
1
+ {"version":3,"file":"operator-contract-schemas-admin.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/operator-contract-schemas-admin.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sBAAsB,yBAGV,CAAC;AAQ1B,eAAO,MAAM,wBAAwB,yBAQ2F,CAAC;AAEjI,eAAO,MAAM,+BAA+B,yBAE7B,CAAC;AAEhB,eAAO,MAAM,wCAAwC,yBAEtC,CAAC;AAEhB,eAAO,MAAM,uCAAuC,yBAErC,CAAC;AAEhB,eAAO,MAAM,yCAAyC,yBAEvC,CAAC;AAEhB,eAAO,MAAM,wBAAwB,yBAIT,CAAC;AAE7B,eAAO,MAAM,qBAAqB,yBAMmB,CAAC;AAEtD,eAAO,MAAM,sBAAsB,yBAWG,CAAC;AAEvC,eAAO,MAAM,qBAAqB,yBAYyD,CAAC;AAE5F,eAAO,MAAM,wBAAwB,yBAIiB,CAAC;AAyGvD,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAM9D,CAAC;AASF,eAAO,MAAM,kCAAkC,yBAGrB,CAAC;AAE3B,eAAO,MAAM,0CAA0C,yBAKhB,CAAC;AAExC,eAAO,MAAM,gCAAgC,yBAUA,CAAC;AAkB9C,eAAO,MAAM,kCAAkC,yBAoBA,CAAC;AAEhD,eAAO,MAAM,iCAAiC,yBAMD,CAAC;AAE9C,eAAO,MAAM,iCAAiC,yBAQoF,CAAC;AAUnI,eAAO,MAAM,gCAAgC,yBAQyD,CAAC;AAEvG,eAAO,MAAM,+BAA+B,yBAWgE,CAAC;AAuC7G,eAAO,MAAM,+BAA+B,yBASC,CAAC;AAE9C,eAAO,MAAM,qBAAqB,yBAwBiM,CAAC;AAcpO,eAAO,MAAM,qBAAqB,yBAiCiK,CAAC;AAEpM,eAAO,MAAM,sCAAsC,yBA6Bf,CAAC;AAErC,eAAO,MAAM,6BAA6B,yBAE9B,CAAC;AAEb,eAAO,MAAM,6BAA6B,yBAE9B,CAAC;AAEb,eAAO,MAAM,mCAAmC,yBAGvB,CAAC;AAE1B,eAAO,MAAM,oCAAoC,yBAKe,CAAC;AAEjE,eAAO,MAAM,mCAAmC,yBAErC,CAAC;AAEZ,eAAO,MAAM,gCAAgC,yBAQiC,CAAC;AAE/E,eAAO,MAAM,kCAAkC,yBAQI,CAAC;AAEpD,eAAO,MAAM,8BAA8B,yBAGvB,CAAC;AAErB,eAAO,MAAM,wBAAwB,yBASX,CAAC;AAE3B,eAAO,MAAM,sBAAsB,yBAEnB,CAAC;AAEjB,eAAO,MAAM,oBAAoB,yBAA4B,CAAC;AAE9D,eAAO,MAAM,qBAAqB,yBAKmC,CAAC;AAYtE,eAAO,MAAM,qBAAqB,yBAcwD,CAAC;AAE3F,eAAO,MAAM,0BAA0B,yBAEvB,CAAC;AAEjB,eAAO,MAAM,4BAA4B,yBAGM,CAAC;AAuChD,eAAO,MAAM,qBAAqB,yBAckG,CAAC"}
@@ -5,10 +5,10 @@ export const LOCAL_AUTH_USER_SCHEMA = objectSchema({
5
5
  roles: STRING_LIST_SCHEMA,
6
6
  }, ['username', 'roles']);
7
7
  const LOCAL_AUTH_SESSION_SCHEMA = objectSchema({
8
- token: STRING_SCHEMA,
8
+ tokenFingerprint: STRING_SCHEMA,
9
9
  username: STRING_SCHEMA,
10
10
  expiresAt: NUMBER_SCHEMA,
11
- }, ['token', 'username', 'expiresAt']);
11
+ }, ['tokenFingerprint', 'username', 'expiresAt']);
12
12
  export const LOCAL_AUTH_STATUS_SCHEMA = objectSchema({
13
13
  userStorePath: STRING_SCHEMA,
14
14
  bootstrapCredentialPath: STRING_SCHEMA,
@@ -90,6 +90,7 @@ const AUTOMATION_SURFACE_KIND_SCHEMA = enumSchema([
90
90
  'discord',
91
91
  'ntfy',
92
92
  'webhook',
93
+ 'homeassistant',
93
94
  'telegram',
94
95
  'google-chat',
95
96
  'signal',
@@ -3,6 +3,7 @@ export declare const CONTROL_AUTH_LOGIN_RESPONSE_SCHEMA: Record<string, unknown>
3
3
  export declare const CONTROL_PLANE_CLIENT_DESCRIPTOR_SCHEMA: Record<string, unknown>;
4
4
  export declare const CONTROL_PLANE_SURFACE_MESSAGE_SCHEMA: Record<string, unknown>;
5
5
  export declare const SETTINGS_SNAPSHOT_SCHEMA: Record<string, unknown>;
6
+ export declare const SECURITY_SETTINGS_REPORT_SCHEMA: Record<string, unknown>;
6
7
  export declare const CONTINUITY_SNAPSHOT_SCHEMA: Record<string, unknown>;
7
8
  export declare const WORKTREE_SNAPSHOT_SCHEMA: Record<string, unknown>;
8
9
  export declare const CONTROL_PLANE_SNAPSHOT_SCHEMA: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"operator-contract-schemas-control.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/operator-contract-schemas-control.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,iCAAiC,yBAGlB,CAAC;AAE7B,eAAO,MAAM,kCAAkC,yBAKQ,CAAC;AAExD,eAAO,MAAM,sCAAsC,yBAOQ,CAAC;AAE5D,eAAO,MAAM,oCAAoC,yBAYE,CAAC;AAsEpD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAE5D,CAAC;AA+BF,eAAO,MAAM,0BAA0B,yBAOkE,CAAC;AA0B1G,eAAO,MAAM,wBAAwB,yBAGX,CAAC;AAE3B,eAAO,MAAM,6BAA6B,yBAaqB,CAAC;AAEhE,eAAO,MAAM,sBAAsB,yBAQgE,CAAC"}
1
+ {"version":3,"file":"operator-contract-schemas-control.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/operator-contract-schemas-control.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,iCAAiC,yBAGlB,CAAC;AAE7B,eAAO,MAAM,kCAAkC,yBAKQ,CAAC;AAExD,eAAO,MAAM,sCAAsC,yBAOQ,CAAC;AAE5D,eAAO,MAAM,oCAAoC,yBAYE,CAAC;AAsEpD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAE5D,CAAC;AA0BF,eAAO,MAAM,+BAA+B,yBAE5B,CAAC;AA+BjB,eAAO,MAAM,0BAA0B,yBAOkE,CAAC;AA0B1G,eAAO,MAAM,wBAAwB,yBAGX,CAAC;AAE3B,eAAO,MAAM,6BAA6B,yBAaqB,CAAC;AAEhE,eAAO,MAAM,sBAAsB,yBAQgE,CAAC"}
@@ -103,6 +103,32 @@ const SETTINGS_SNAPSHOT_AVAILABLE_SCHEMA = objectSchema({
103
103
  export const SETTINGS_SNAPSHOT_SCHEMA = {
104
104
  anyOf: [SETTINGS_SNAPSHOT_UNAVAILABLE_SCHEMA, SETTINGS_SNAPSHOT_AVAILABLE_SCHEMA],
105
105
  };
106
+ const SECURITY_SETTING_REPORT_SCHEMA = objectSchema({
107
+ key: STRING_SCHEMA,
108
+ type: enumSchema(['feature-flag', 'configuration']),
109
+ defaultState: STRING_SCHEMA,
110
+ currentState: STRING_SCHEMA,
111
+ securityRelevant: BOOLEAN_SCHEMA,
112
+ summary: STRING_SCHEMA,
113
+ insecureWhen: STRING_SCHEMA,
114
+ enablementEffect: STRING_SCHEMA,
115
+ enablementRequirements: STRING_LIST_SCHEMA,
116
+ compatibilityNotes: STRING_LIST_SCHEMA,
117
+ }, [
118
+ 'key',
119
+ 'type',
120
+ 'defaultState',
121
+ 'currentState',
122
+ 'securityRelevant',
123
+ 'summary',
124
+ 'insecureWhen',
125
+ 'enablementEffect',
126
+ 'enablementRequirements',
127
+ 'compatibilityNotes',
128
+ ]);
129
+ export const SECURITY_SETTINGS_REPORT_SCHEMA = objectSchema({
130
+ settings: arraySchema(SECURITY_SETTING_REPORT_SCHEMA),
131
+ }, ['settings']);
106
132
  const SESSION_RETURN_CONTEXT_SCHEMA = objectSchema({
107
133
  activityLabel: STRING_SCHEMA,
108
134
  statusLabel: STRING_SCHEMA,
@@ -1,3 +1,3 @@
1
1
  import type { DaemonApiRouteHandlers } from './context.js';
2
- export declare function dispatchOperatorRoutes(req: Request, handlers: Pick<DaemonApiRouteHandlers, 'getStatus' | 'getCurrentAuth' | 'getControlPlaneSnapshot' | 'getOperatorContract' | 'getControlPlaneWeb' | 'getControlPlaneRecentEvents' | 'getControlPlaneMessages' | 'getControlPlaneClients' | 'getTelemetrySnapshot' | 'getTelemetryEvents' | 'getTelemetryErrors' | 'getTelemetryTraces' | 'getTelemetryMetrics' | 'createTelemetryEventStream' | 'getTelemetryOtlpTraces' | 'getTelemetryOtlpLogs' | 'getTelemetryOtlpMetrics' | 'getGatewayMethods' | 'getGatewayEvents' | 'getGatewayMethod' | 'invokeGatewayMethod' | 'createControlPlaneEventStream' | 'getRoutesSnapshot' | 'getSurfaces' | 'getChannelAccounts' | 'getChannelSurfaceAccounts' | 'getChannelAccount' | 'postChannelAccountAction' | 'getChannelSetupSchema' | 'getChannelDoctor' | 'getChannelRepairActions' | 'getChannelLifecycle' | 'postChannelLifecycleMigrate' | 'getChannelCapabilities' | 'getChannelSurfaceCapabilities' | 'getChannelTools' | 'getChannelSurfaceTools' | 'getChannelAgentTools' | 'getChannelSurfaceAgentTools' | 'postChannelTool' | 'getChannelActions' | 'getChannelSurfaceActions' | 'postChannelAction' | 'postChannelResolveTarget' | 'postChannelAuthorize' | 'postChannelAllowlistResolve' | 'postChannelAllowlistEdit' | 'getChannelPolicies' | 'postChannelPolicy' | 'getChannelPolicyAudit' | 'getChannelStatus' | 'getChannelDirectory' | 'getWatchers' | 'postWatcher' | 'patchWatcher' | 'watcherAction' | 'deleteWatcher' | 'getServiceStatus' | 'installService' | 'startService' | 'stopService' | 'restartService' | 'uninstallService' | 'getRouteBindings' | 'postRouteBinding' | 'patchRouteBinding' | 'deleteRouteBinding' | 'getApprovals' | 'approvalAction' | 'getRemote' | 'getHealth' | 'getAccounts' | 'getProviders' | 'getProvider' | 'getProviderUsage' | 'getSettings' | 'getContinuity' | 'getWorktrees' | 'getIntelligence' | 'getLocalAuth' | 'postLocalAuthUser' | 'deleteLocalAuthUser' | 'postLocalAuthPassword' | 'deleteLocalAuthSession' | 'deleteBootstrapFile' | 'getPanels' | 'postPanelOpen' | 'getEvents' | 'getConfig' | 'postConfig' | 'getReview' | 'getIntegrationSession' | 'getIntegrationTasks' | 'getIntegrationAutomation' | 'getIntegrationSessions' | 'getAutomationHeartbeat' | 'postAutomationHeartbeat' | 'getMemoryDoctor' | 'getMemoryVectorStats' | 'postMemoryVectorRebuild' | 'postMemoryEmbeddingDefault' | 'getKnowledgeStatus' | 'getKnowledgeSources' | 'getKnowledgeNodes' | 'getKnowledgeIssues' | 'getKnowledgeItem' | 'getKnowledgeConnectors' | 'getKnowledgeConnector' | 'getKnowledgeConnectorDoctor' | 'getKnowledgeProjectionTargets' | 'getKnowledgeGraphqlSchema' | 'getKnowledgeExtractions' | 'getKnowledgeUsage' | 'getKnowledgeCandidates' | 'getKnowledgeCandidate' | 'getKnowledgeReports' | 'getKnowledgeReport' | 'getKnowledgeExtraction' | 'getKnowledgeSourceExtraction' | 'getKnowledgeJobs' | 'getKnowledgeJob' | 'getKnowledgeJobRuns' | 'getKnowledgeSchedules' | 'getKnowledgeSchedule' | 'postKnowledgeIngestUrl' | 'postKnowledgeIngestArtifact' | 'postKnowledgeImportBookmarks' | 'postKnowledgeImportUrls' | 'postKnowledgeIngestConnector' | 'postKnowledgeSearch' | 'postKnowledgePacket' | 'postKnowledgeDecideCandidate' | 'postKnowledgeRunJob' | 'postKnowledgeLint' | 'postKnowledgeReindex' | 'postKnowledgeSaveSchedule' | 'deleteKnowledgeSchedule' | 'postKnowledgeSetScheduleEnabled' | 'postKnowledgeRenderProjection' | 'postKnowledgeMaterializeProjection' | 'executeKnowledgeGraphql' | 'getVoiceStatus' | 'getVoiceProviders' | 'getVoiceVoices' | 'postVoiceTts' | 'postVoiceTtsStream' | 'postVoiceStt' | 'postVoiceRealtimeSession' | 'getWebSearchProviders' | 'postWebSearch' | 'getArtifacts' | 'postArtifact' | 'getArtifact' | 'getArtifactContent' | 'getMediaProviders' | 'postMediaAnalyze' | 'postMediaTransform' | 'postMediaGenerate' | 'getMultimodalStatus' | 'getMultimodalProviders' | 'postMultimodalAnalyze' | 'postMultimodalPacket' | 'postMultimodalWriteback' | 'getRemoteNodeHostContract'>): Promise<Response | null>;
2
+ export declare function dispatchOperatorRoutes(req: Request, handlers: Pick<DaemonApiRouteHandlers, 'getStatus' | 'getCurrentAuth' | 'getControlPlaneSnapshot' | 'getOperatorContract' | 'getControlPlaneWeb' | 'getControlPlaneRecentEvents' | 'getControlPlaneMessages' | 'getControlPlaneClients' | 'getTelemetrySnapshot' | 'getTelemetryEvents' | 'getTelemetryErrors' | 'getTelemetryTraces' | 'getTelemetryMetrics' | 'createTelemetryEventStream' | 'getTelemetryOtlpTraces' | 'getTelemetryOtlpLogs' | 'getTelemetryOtlpMetrics' | 'getGatewayMethods' | 'getGatewayEvents' | 'getGatewayMethod' | 'invokeGatewayMethod' | 'createControlPlaneEventStream' | 'getRoutesSnapshot' | 'getSurfaces' | 'getChannelAccounts' | 'getChannelSurfaceAccounts' | 'getChannelAccount' | 'postChannelAccountAction' | 'getChannelSetupSchema' | 'getChannelDoctor' | 'getChannelRepairActions' | 'getChannelLifecycle' | 'postChannelLifecycleMigrate' | 'getChannelCapabilities' | 'getChannelSurfaceCapabilities' | 'getChannelTools' | 'getChannelSurfaceTools' | 'getChannelAgentTools' | 'getChannelSurfaceAgentTools' | 'postChannelTool' | 'getChannelActions' | 'getChannelSurfaceActions' | 'postChannelAction' | 'postChannelResolveTarget' | 'postChannelAuthorize' | 'postChannelAllowlistResolve' | 'postChannelAllowlistEdit' | 'getChannelPolicies' | 'postChannelPolicy' | 'getChannelPolicyAudit' | 'getChannelStatus' | 'getChannelDirectory' | 'getWatchers' | 'postWatcher' | 'patchWatcher' | 'watcherAction' | 'deleteWatcher' | 'getServiceStatus' | 'installService' | 'startService' | 'stopService' | 'restartService' | 'uninstallService' | 'getRouteBindings' | 'postRouteBinding' | 'patchRouteBinding' | 'deleteRouteBinding' | 'getApprovals' | 'approvalAction' | 'getRemote' | 'getHealth' | 'getAccounts' | 'getProviders' | 'getProvider' | 'getProviderUsage' | 'getSettings' | 'getSecuritySettings' | 'getContinuity' | 'getWorktrees' | 'getIntelligence' | 'getLocalAuth' | 'postLocalAuthUser' | 'deleteLocalAuthUser' | 'postLocalAuthPassword' | 'deleteLocalAuthSession' | 'deleteBootstrapFile' | 'getPanels' | 'postPanelOpen' | 'getEvents' | 'getConfig' | 'postConfig' | 'getReview' | 'getIntegrationSession' | 'getIntegrationTasks' | 'getIntegrationAutomation' | 'getIntegrationSessions' | 'getAutomationHeartbeat' | 'postAutomationHeartbeat' | 'getMemoryDoctor' | 'getMemoryVectorStats' | 'postMemoryVectorRebuild' | 'postMemoryEmbeddingDefault' | 'getKnowledgeStatus' | 'getKnowledgeSources' | 'getKnowledgeNodes' | 'getKnowledgeIssues' | 'getKnowledgeItem' | 'getKnowledgeConnectors' | 'getKnowledgeConnector' | 'getKnowledgeConnectorDoctor' | 'getKnowledgeProjectionTargets' | 'getKnowledgeGraphqlSchema' | 'getKnowledgeExtractions' | 'getKnowledgeUsage' | 'getKnowledgeCandidates' | 'getKnowledgeCandidate' | 'getKnowledgeReports' | 'getKnowledgeReport' | 'getKnowledgeExtraction' | 'getKnowledgeSourceExtraction' | 'getKnowledgeJobs' | 'getKnowledgeJob' | 'getKnowledgeJobRuns' | 'getKnowledgeSchedules' | 'getKnowledgeSchedule' | 'postKnowledgeIngestUrl' | 'postKnowledgeIngestArtifact' | 'postKnowledgeImportBookmarks' | 'postKnowledgeImportUrls' | 'postKnowledgeIngestConnector' | 'postKnowledgeSearch' | 'postKnowledgePacket' | 'postKnowledgeDecideCandidate' | 'postKnowledgeRunJob' | 'postKnowledgeLint' | 'postKnowledgeReindex' | 'postKnowledgeSaveSchedule' | 'deleteKnowledgeSchedule' | 'postKnowledgeSetScheduleEnabled' | 'postKnowledgeRenderProjection' | 'postKnowledgeMaterializeProjection' | 'executeKnowledgeGraphql' | 'getVoiceStatus' | 'getVoiceProviders' | 'getVoiceVoices' | 'postVoiceTts' | 'postVoiceTtsStream' | 'postVoiceStt' | 'postVoiceRealtimeSession' | 'getWebSearchProviders' | 'postWebSearch' | 'getArtifacts' | 'postArtifact' | 'getArtifact' | 'getArtifactContent' | 'getMediaProviders' | 'postMediaAnalyze' | 'postMediaTransform' | 'postMediaGenerate' | 'getMultimodalStatus' | 'getMultimodalProviders' | 'postMultimodalAnalyze' | 'postMultimodalPacket' | 'postMultimodalWriteback' | 'getRemoteNodeHostContract'>): Promise<Response | null>;
3
3
  //# sourceMappingURL=operator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/control-plane/routes/operator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/control-plane/routes/operator.ts"],"names":[],"mappings":"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"}
@@ -212,6 +212,8 @@ export async function dispatchOperatorRoutes(req, handlers) {
212
212
  return handlers.getProvider(decodeURIComponent(providerMatch[1]));
213
213
  if (pathname === '/api/settings' && method === 'GET')
214
214
  return handlers.getSettings();
215
+ if (pathname === '/api/security-settings' && method === 'GET')
216
+ return handlers.getSecuritySettings();
215
217
  if (pathname === '/api/continuity' && method === 'GET')
216
218
  return handlers.getContinuity();
217
219
  if (pathname === '/api/worktrees' && method === 'GET')
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import type { ArtifactAttachment } from '../artifacts/index.js';
5
5
  export type ControlPlaneStreamingMode = 'sse' | 'websocket' | 'both';
6
- export type ControlPlaneClientSurface = 'tui' | 'web' | 'slack' | 'discord' | 'ntfy' | 'webhook' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix' | 'service';
6
+ export type ControlPlaneClientSurface = 'tui' | 'web' | 'slack' | 'discord' | 'ntfy' | 'webhook' | 'homeassistant' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix' | 'service';
7
7
  export interface ControlPlaneServerConfig {
8
8
  enabled: boolean;
9
9
  host: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;AACrE,MAAM,MAAM,yBAAyB,GACjC,KAAK,GACL,KAAK,GACL,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,GACT,UAAU,GACV,aAAa,GACb,QAAQ,GACR,UAAU,GACV,UAAU,GACV,SAAS,GACT,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,yBAAyB,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;AACrE,MAAM,MAAM,yBAAyB,GACjC,KAAK,GACL,KAAK,GACL,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,GACT,eAAe,GACf,UAAU,GACV,aAAa,GACb,QAAQ,GACR,UAAU,GACV,UAAU,GACV,SAAS,GACT,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,yBAAyB,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/control-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/control-plane.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { authenticateOperatorRequest, authenticateOperatorToken, extractOperatorAuthToken, isOperatorAdmin, } from '../security/http-auth.js';
2
+ import { isRuntimeEventDomain } from '../runtime/events/index.js';
2
3
  import { extractForwardedClientIp } from '../runtime/network/index.js';
3
4
  import { resolveGatewayPathTemplate } from './helpers.js';
4
5
  import { summarizeError } from '../utils/error-display.js';
@@ -133,11 +134,13 @@ export class DaemonControlPlaneHelper {
133
134
  }
134
135
  const token = this.extractAuthToken(req);
135
136
  const principal = resolveAuthenticatedPrincipal(req, this);
136
- if (token && !principal) {
137
+ if (!principal) {
137
138
  return Response.json({ error: 'Unauthorized' }, { status: 401 });
138
139
  }
139
140
  const rawDomains = url.searchParams.get('domains');
140
- const domains = (rawDomains ? rawDomains.split(',').map((value) => value.trim()).filter(Boolean) : []);
141
+ const domains = parseRuntimeDomains(rawDomains);
142
+ if (domains instanceof Response)
143
+ return domains;
141
144
  const requestedKind = url.searchParams.get('clientKind');
142
145
  const clientKind = requestedKind === 'tui'
143
146
  || requestedKind === 'web'
@@ -159,7 +162,7 @@ export class DaemonControlPlaneHelper {
159
162
  domains,
160
163
  clientKind,
161
164
  remoteAddress: extractForwardedClientIp(req, this.trustProxyEnabled()),
162
- authenticated: Boolean(principal),
165
+ authenticated: true,
163
166
  },
164
167
  });
165
168
  return upgraded ? 'upgraded' : Response.json({ error: 'WebSocket upgrade failed' }, { status: 400 });
@@ -219,7 +222,12 @@ export class DaemonControlPlaneHelper {
219
222
  ...(Array.isArray(frame.capabilities) ? { capabilities: frame.capabilities.filter((value) => typeof value === 'string') } : {}),
220
223
  });
221
224
  if (Array.isArray(frame.domains)) {
222
- this.context.controlPlaneGateway.subscribeWebSocketClient(clientId, frame.domains.filter((value) => typeof value === 'string'));
225
+ const domains = normalizeFrameDomains(frame.domains);
226
+ if (domains instanceof Response) {
227
+ ws.send(JSON.stringify({ type: 'auth', ok: false, error: 'Invalid runtime event domain' }));
228
+ return;
229
+ }
230
+ this.context.controlPlaneGateway.subscribeWebSocketClient(clientId, domains);
223
231
  }
224
232
  ws.data.authToken = token;
225
233
  ws.data.principalId = principal.principalId;
@@ -236,16 +244,24 @@ export class DaemonControlPlaneHelper {
236
244
  return;
237
245
  }
238
246
  const domains = Array.isArray(frame.domains)
239
- ? frame.domains.filter((value) => typeof value === 'string')
247
+ ? normalizeFrameDomains(frame.domains)
240
248
  : [];
249
+ if (domains instanceof Response) {
250
+ ws.send(JSON.stringify({ type: 'error', error: 'Invalid runtime event domain' }));
251
+ return;
252
+ }
241
253
  this.context.controlPlaneGateway.subscribeWebSocketClient(clientId, domains);
242
254
  ws.send(JSON.stringify({ type: 'subscribed', clientId, domains }));
243
255
  return;
244
256
  }
245
257
  if (frame.type === 'unsubscribe') {
246
258
  const domains = Array.isArray(frame.domains)
247
- ? frame.domains.filter((value) => typeof value === 'string')
259
+ ? normalizeFrameDomains(frame.domains)
248
260
  : undefined;
261
+ if (domains instanceof Response) {
262
+ ws.send(JSON.stringify({ type: 'error', error: 'Invalid runtime event domain' }));
263
+ return;
264
+ }
249
265
  this.context.controlPlaneGateway.unsubscribeWebSocketClient(clientId, domains);
250
266
  ws.send(JSON.stringify({ type: 'unsubscribed', clientId, domains: domains ?? [] }));
251
267
  return;
@@ -400,3 +416,31 @@ export class DaemonControlPlaneHelper {
400
416
  });
401
417
  }
402
418
  }
419
+ function parseRuntimeDomains(rawDomains) {
420
+ if (!rawDomains)
421
+ return [];
422
+ return normalizeFrameDomains(rawDomains.split(',').map((value) => value.trim()).filter(Boolean));
423
+ }
424
+ function normalizeFrameDomains(values) {
425
+ const domains = [];
426
+ const invalid = [];
427
+ for (const value of values) {
428
+ if (typeof value !== 'string') {
429
+ invalid.push(String(value));
430
+ continue;
431
+ }
432
+ const trimmed = value.trim();
433
+ if (!isRuntimeEventDomain(trimmed)) {
434
+ invalid.push(trimmed);
435
+ continue;
436
+ }
437
+ domains.push(trimmed);
438
+ }
439
+ if (invalid.length > 0) {
440
+ return Response.json({
441
+ error: 'Invalid runtime event domain',
442
+ invalid,
443
+ }, { status: 400 });
444
+ }
445
+ return [...new Set(domains)];
446
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/facade-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkBrD,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,wCAAwC,CAAC;AAI3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAIpE,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACvC,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,CA2FvG;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,qBAAqB,CAAC,EAAE,aAAa,GACpC,2BAA2B,CAoI7B;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,yBAAyB,CAuK3B;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,aAAa,EAAE,OAAO,2BAA2B,EAAE,mBAAmB,CAAC;IAChF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,yBAAyB,EAAE,WAAW,GAAG,QAAQ,CAAC;IACzK,QAAQ,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,kDAAkD,EAAE,sBAAsB,GAAG,SAAS,EAAE,KAAK,EAAE;QACrJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B,KAAK,IAAI,CAAC;CACZ,GAAG,IAAI,CAsBP"}
1
+ {"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/facade-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkBrD,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,wCAAwC,CAAC;AAI3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAKpE,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACvC,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,CAoHvG;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,qBAAqB,CAAC,EAAE,aAAa,GACpC,2BAA2B,CA6I7B;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,yBAAyB,CAuK3B;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,aAAa,EAAE,OAAO,2BAA2B,EAAE,mBAAmB,CAAC;IAChF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,yBAAyB,EAAE,WAAW,GAAG,QAAQ,CAAC;IACzK,QAAQ,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,kDAAkD,EAAE,sBAAsB,GAAG,SAAS,EAAE,KAAK,EAAE;QACrJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B,KAAK,IAAI,CAAC;CACZ,GAAG,IAAI,CAsBP"}
@@ -19,6 +19,7 @@ import { getBaseModelId } from '../providers/registry-helpers.js';
19
19
  import { CATALOG_PROVIDER_NAME_ALIASES } from '../providers/builtin-registry.js';
20
20
  import { createRuntimeServices } from '../runtime/services.js';
21
21
  import { PlatformServiceManager } from './service-manager.js';
22
+ import { PermissionManager, createPermissionConfigReader } from '../permissions/manager.js';
22
23
  /**
23
24
  * Creates the CompanionLLMProvider adapter that bridges the daemon's
24
25
  * ProviderRegistry (chat-based) to the queue-driven async-generator interface
@@ -89,6 +90,7 @@ export function createCompanionProviderAdapter(providerRegistry) {
89
90
  let resolve = null;
90
91
  let done = false;
91
92
  let streamError;
93
+ let streamedContent = '';
92
94
  const push = (chunk) => {
93
95
  queue.push(chunk);
94
96
  resolve?.();
@@ -96,14 +98,37 @@ export function createCompanionProviderAdapter(providerRegistry) {
96
98
  };
97
99
  const chatPromise = provider.chat({
98
100
  model: bareModelId,
99
- messages: messages.map((m) => ({ role: m.role, content: m.content })),
101
+ messages: messages.map((m) => {
102
+ if (m.role === 'tool') {
103
+ return {
104
+ role: 'tool',
105
+ callId: m.callId,
106
+ content: m.content,
107
+ ...(m.name ? { name: m.name } : {}),
108
+ };
109
+ }
110
+ if (m.role === 'assistant') {
111
+ return {
112
+ role: 'assistant',
113
+ content: m.content,
114
+ ...(m.toolCalls ? { toolCalls: m.toolCalls } : {}),
115
+ };
116
+ }
117
+ return { role: 'user', content: m.content };
118
+ }),
119
+ tools: options.tools && options.tools.length > 0 ? [...options.tools] : undefined,
100
120
  systemPrompt: options.systemPrompt ?? undefined,
101
121
  signal: options.abortSignal,
102
122
  onDelta(delta) {
103
- if (delta.content)
123
+ if (delta.content) {
124
+ streamedContent += delta.content;
104
125
  push({ type: 'text_delta', delta: delta.content });
126
+ }
105
127
  },
106
128
  }).then((resp) => {
129
+ if (resp.content && streamedContent.length === 0) {
130
+ push({ type: 'text_delta', delta: resp.content });
131
+ }
107
132
  if (resp.toolCalls?.length) {
108
133
  for (const tc of resp.toolCalls) {
109
134
  push({ type: 'tool_call', toolCallId: tc.id, toolName: tc.name, toolInput: tc.arguments });
@@ -199,6 +224,9 @@ export function resolveDaemonFacadeRuntime(config, fallbackConfigManager) {
199
224
  persist: true,
200
225
  // C-3: Wire the full ToolRegistry so LLM-emitted tool calls are executed.
201
226
  toolRegistry: runtimeServices.agentOrchestrator.getToolRegistry(),
227
+ permissionManager: new PermissionManager(undefined, createPermissionConfigReader(resolvedConfigManager), runtimeServices.policyRuntimeState, runtimeServices.hookDispatcher, runtimeServices.featureFlags),
228
+ hookDispatcher: runtimeServices.hookDispatcher,
229
+ runtimeBus,
202
230
  });
203
231
  runtimeServices.approvalBroker.setPublisher(controlPlaneGateway);
204
232
  runtimeServices.sessionBroker.setEventPublisher((event, payload) => {
@@ -117,7 +117,7 @@ export interface CreateDaemonFacadeCollaboratorsOptions {
117
117
  }>;
118
118
  readonly syncSpawnedAgentTask: (record: import('../tools/agent/index.js').AgentRecord, sessionId?: string) => void;
119
119
  readonly syncFinishedAgentTask: (record: import('../tools/agent/index.js').AgentRecord) => void;
120
- readonly surfaceDeliveryEnabled: (surface: 'slack' | 'discord' | 'ntfy' | 'webhook' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix') => boolean;
120
+ readonly surfaceDeliveryEnabled: (surface: 'slack' | 'discord' | 'ntfy' | 'webhook' | 'homeassistant' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix') => boolean;
121
121
  readonly signWebhookPayload: (body: string, secret: string) => string;
122
122
  readonly handleApprovalAction: (approvalId: string, action: 'claim' | 'approve' | 'deny' | 'cancel', req: Request) => Promise<Response>;
123
123
  readonly tlsState: () => ResolvedInboundTlsContext | null;