@pellux/goodvibes-tui 0.18.8 → 0.18.9

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 (555) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +1 -1
  3. package/docs/foundation-artifacts/operator-contract.json +1 -1
  4. package/package.json +2 -2
  5. package/src/acp/connection.ts +5 -5
  6. package/src/acp/index.ts +1 -1
  7. package/src/acp/manager.ts +1 -133
  8. package/src/adapters/bluebubbles/index.ts +1 -1
  9. package/src/adapters/discord/index.ts +2 -2
  10. package/src/adapters/github/index.ts +1 -1
  11. package/src/adapters/google-chat/index.ts +1 -1
  12. package/src/adapters/imessage/index.ts +1 -1
  13. package/src/adapters/index.ts +15 -15
  14. package/src/adapters/matrix/index.ts +1 -1
  15. package/src/adapters/mattermost/index.ts +1 -1
  16. package/src/adapters/msteams/index.ts +2 -2
  17. package/src/adapters/ntfy/index.ts +1 -1
  18. package/src/adapters/signal/index.ts +1 -1
  19. package/src/adapters/slack/index.ts +2 -2
  20. package/src/adapters/telegram/index.ts +1 -1
  21. package/src/adapters/types.ts +4 -4
  22. package/src/adapters/webhook/index.ts +1 -1
  23. package/src/adapters/whatsapp/index.ts +1 -1
  24. package/src/agents/message-bus-core.ts +2 -2
  25. package/src/agents/message-bus.ts +2 -2
  26. package/src/agents/orchestrator-prompts.ts +4 -4
  27. package/src/agents/orchestrator-runner.ts +11 -11
  28. package/src/agents/orchestrator.ts +14 -13
  29. package/src/agents/session.ts +1 -1
  30. package/src/agents/worktree.ts +1 -1
  31. package/src/agents/wrfc-config.ts +2 -2
  32. package/src/agents/wrfc-controller.ts +12 -12
  33. package/src/agents/wrfc-gate-runtime.ts +5 -5
  34. package/src/agents/wrfc-reporting.ts +1 -1
  35. package/src/agents/wrfc-runtime-events.ts +3 -3
  36. package/src/agents/wrfc-types.ts +1 -1
  37. package/src/automation/delivery-manager.ts +4 -4
  38. package/src/automation/index.ts +4 -4
  39. package/src/automation/manager-runtime-delivery.ts +1 -1
  40. package/src/automation/manager-runtime-events.ts +3 -3
  41. package/src/automation/manager-runtime-execution.ts +5 -5
  42. package/src/automation/manager-runtime-helpers.ts +2 -2
  43. package/src/automation/manager-runtime-job-mutations.ts +3 -3
  44. package/src/automation/manager-runtime-reconcile.ts +4 -4
  45. package/src/automation/manager-runtime-scheduling.ts +2 -2
  46. package/src/automation/manager-runtime.ts +18 -18
  47. package/src/automation/manager.ts +2 -2
  48. package/src/automation/service.ts +2 -2
  49. package/src/channels/builtin/account-actions.ts +5 -5
  50. package/src/channels/builtin/accounts.ts +2 -2
  51. package/src/channels/builtin/contracts.ts +3 -3
  52. package/src/channels/builtin/plugins.ts +5 -5
  53. package/src/channels/builtin/rendering.ts +4 -4
  54. package/src/channels/builtin/setup-schema.ts +1 -1
  55. package/src/channels/builtin/shared.ts +7 -7
  56. package/src/channels/builtin/surfaces.ts +2 -2
  57. package/src/channels/builtin/targets.ts +3 -3
  58. package/src/channels/builtin-runtime.ts +11 -11
  59. package/src/channels/delivery/shared.ts +2 -2
  60. package/src/channels/delivery/strategies-bridge.ts +3 -3
  61. package/src/channels/delivery/strategies-core.ts +5 -5
  62. package/src/channels/delivery/strategies-enterprise.ts +3 -3
  63. package/src/channels/delivery/types.ts +2 -2
  64. package/src/channels/delivery-router.ts +9 -9
  65. package/src/channels/index.ts +12 -12
  66. package/src/channels/plugin-registry.ts +1 -1
  67. package/src/channels/provider-runtime.ts +3 -3
  68. package/src/channels/reply-pipeline.ts +3 -3
  69. package/src/channels/route-manager.ts +2 -2
  70. package/src/channels/surface-registry.ts +2 -2
  71. package/src/config/helper-model.ts +1 -233
  72. package/src/config/index.ts +3 -3
  73. package/src/config/manager.ts +8 -404
  74. package/src/config/secrets.ts +21 -542
  75. package/src/config/service-registry.ts +1 -329
  76. package/src/config/tool-llm.ts +3 -3
  77. package/src/control-plane/approval-broker.ts +1 -1
  78. package/src/control-plane/gateway.ts +1 -713
  79. package/src/control-plane/index.ts +7 -7
  80. package/src/control-plane/media-contract-schemas.ts +1 -208
  81. package/src/control-plane/method-catalog-admin.ts +1 -136
  82. package/src/control-plane/method-catalog-channels.ts +1 -591
  83. package/src/control-plane/method-catalog-control-automation.ts +1 -475
  84. package/src/control-plane/method-catalog-control-core.ts +1 -594
  85. package/src/control-plane/method-catalog-control.ts +1 -8
  86. package/src/control-plane/method-catalog-events.ts +1 -74
  87. package/src/control-plane/method-catalog-knowledge.ts +1 -531
  88. package/src/control-plane/method-catalog-media.ts +1 -279
  89. package/src/control-plane/method-catalog-runtime.ts +1 -304
  90. package/src/control-plane/method-catalog-shared.ts +1 -223
  91. package/src/control-plane/method-catalog.ts +1 -242
  92. package/src/control-plane/operator-contract-schemas-admin.ts +1 -639
  93. package/src/control-plane/operator-contract-schemas-channels.ts +1 -375
  94. package/src/control-plane/operator-contract-schemas-control.ts +1 -226
  95. package/src/control-plane/operator-contract-schemas-domains.ts +1 -4
  96. package/src/control-plane/operator-contract-schemas-knowledge.ts +1 -582
  97. package/src/control-plane/operator-contract-schemas-media.ts +1 -297
  98. package/src/control-plane/operator-contract-schemas-permissions.ts +1 -100
  99. package/src/control-plane/operator-contract-schemas-remote.ts +1 -38
  100. package/src/control-plane/operator-contract-schemas-runtime.ts +1 -563
  101. package/src/control-plane/operator-contract-schemas-shared.ts +1 -85
  102. package/src/control-plane/operator-contract-schemas-telemetry.ts +1 -349
  103. package/src/control-plane/operator-contract-schemas.ts +1 -6
  104. package/src/control-plane/operator-contract.ts +5 -3
  105. package/src/control-plane/session-broker.ts +1 -1
  106. package/src/core/compaction-sections.ts +5 -5
  107. package/src/core/compaction-types.ts +3 -3
  108. package/src/core/composer-state.ts +1 -1
  109. package/src/core/context-compaction.ts +7 -7
  110. package/src/core/conversation-compaction.ts +4 -4
  111. package/src/core/conversation-diff.ts +1 -1
  112. package/src/core/conversation-rendering.ts +5 -5
  113. package/src/core/conversation-utils.ts +2 -2
  114. package/src/core/conversation.ts +10 -10
  115. package/src/core/event-replay.ts +1 -1
  116. package/src/core/orchestrator-context-runtime.ts +8 -8
  117. package/src/core/orchestrator-follow-up-runtime.ts +2 -2
  118. package/src/core/orchestrator-runtime.ts +4 -4
  119. package/src/core/orchestrator-tool-runtime.ts +7 -7
  120. package/src/core/orchestrator-turn-helpers.ts +7 -7
  121. package/src/core/orchestrator-turn-loop.ts +10 -10
  122. package/src/core/orchestrator.ts +17 -17
  123. package/src/core/plan-command-handler.ts +2 -2
  124. package/src/core/system-message-router.ts +2 -2
  125. package/src/core/transcript-events/classify.ts +1 -1
  126. package/src/core/transcript-events/index.ts +3 -3
  127. package/src/daemon/cli.ts +6 -6
  128. package/src/daemon/control-plane.ts +7 -7
  129. package/src/daemon/facade-composition.ts +16 -15
  130. package/src/daemon/facade.ts +17 -17
  131. package/src/daemon/helpers.ts +2 -2
  132. package/src/daemon/http/router-route-contexts.ts +11 -11
  133. package/src/daemon/http/router.ts +25 -25
  134. package/src/daemon/http-listener.ts +3 -3
  135. package/src/daemon/index.ts +1 -3
  136. package/src/daemon/service-manager.ts +1 -1
  137. package/src/daemon/surface-actions.ts +8 -8
  138. package/src/daemon/surface-delivery.ts +7 -7
  139. package/src/daemon/surface-policy.ts +1 -1
  140. package/src/daemon/transport-events.ts +4 -4
  141. package/src/daemon/types.ts +24 -24
  142. package/src/export/markdown.ts +1 -1
  143. package/src/export/session-export.ts +1 -633
  144. package/src/git/index.ts +1 -1
  145. package/src/git/service.ts +1 -1
  146. package/src/hooks/chain-engine.ts +1 -1
  147. package/src/hooks/dispatcher.ts +4 -4
  148. package/src/hooks/hook-api.ts +1 -1
  149. package/src/hooks/index.ts +8 -8
  150. package/src/hooks/runners/agent.ts +1 -1
  151. package/src/hooks/runners/prompt.ts +1 -1
  152. package/src/hooks/workbench.ts +2 -2
  153. package/src/input/command-registry.ts +24 -17
  154. package/src/input/commands/config.ts +1 -1
  155. package/src/input/commands/control-room-runtime.ts +2 -2
  156. package/src/input/commands/conversation-runtime.ts +1 -1
  157. package/src/input/commands/eval.ts +2 -2
  158. package/src/input/commands/git-runtime.ts +1 -1
  159. package/src/input/commands/guidance-runtime.ts +3 -3
  160. package/src/input/commands/health-runtime.ts +7 -7
  161. package/src/input/commands/incident-runtime.ts +1 -1
  162. package/src/input/commands/integration-runtime.ts +3 -3
  163. package/src/input/commands/local-provider-runtime.ts +1 -1
  164. package/src/input/commands/local-runtime.ts +1 -1
  165. package/src/input/commands/local-setup-review.ts +1 -1
  166. package/src/input/commands/local-setup.ts +1 -1
  167. package/src/input/commands/managed-runtime.ts +2 -2
  168. package/src/input/commands/marketplace-runtime.ts +1 -1
  169. package/src/input/commands/platform-access-runtime.ts +1 -1
  170. package/src/input/commands/policy-dispatch.ts +2 -2
  171. package/src/input/commands/product-runtime.ts +2 -2
  172. package/src/input/commands/profile-sync-runtime.ts +1 -1
  173. package/src/input/commands/provider-accounts-runtime.ts +1 -1
  174. package/src/input/commands/provider.ts +3 -3
  175. package/src/input/commands/quit-shared.ts +1 -1
  176. package/src/input/commands/recall-bundle.ts +1 -1
  177. package/src/input/commands/recall-capture.ts +2 -2
  178. package/src/input/commands/recall-query.ts +2 -2
  179. package/src/input/commands/recall-shared.ts +1 -1
  180. package/src/input/commands/remote-runtime-setup.ts +1 -1
  181. package/src/input/commands/remote-runtime.ts +1 -1
  182. package/src/input/commands/runtime-services.ts +13 -11
  183. package/src/input/commands/schedule-runtime.ts +2 -2
  184. package/src/input/commands/session-content.ts +1 -1
  185. package/src/input/commands/session-workflow.ts +4 -4
  186. package/src/input/commands/settings-sync-runtime.ts +1 -1
  187. package/src/input/commands/share-runtime.ts +9 -4
  188. package/src/input/commands/shell-core.ts +1 -1
  189. package/src/input/commands/skills-runtime.ts +1 -1
  190. package/src/input/commands/subscription-runtime.ts +1 -1
  191. package/src/input/commands/tasks-runtime.ts +1 -1
  192. package/src/input/commands/teamwork-runtime.ts +1 -1
  193. package/src/input/commands/worktree-runtime.ts +1 -1
  194. package/src/input/handler-command-route.ts +1 -1
  195. package/src/input/handler-content-actions.ts +3 -3
  196. package/src/input/handler-feed-routes.ts +2 -2
  197. package/src/input/handler-feed.ts +1 -1
  198. package/src/input/handler-shortcuts.ts +1 -1
  199. package/src/input/handler.ts +1 -1
  200. package/src/input/keybindings.ts +5 -0
  201. package/src/input/model-picker.ts +2 -2
  202. package/src/input/profile-picker-modal.ts +1 -1
  203. package/src/input/session-picker-modal.ts +1 -1
  204. package/src/input/settings-modal.ts +4 -4
  205. package/src/integrations/index.ts +1 -1
  206. package/src/integrations/notifier.ts +1 -1
  207. package/src/integrations/webhooks.ts +1 -177
  208. package/src/knowledge/consolidation.ts +2 -2
  209. package/src/knowledge/graphql.ts +1 -1
  210. package/src/knowledge/index.ts +5 -5
  211. package/src/knowledge/ingest-compile.ts +3 -3
  212. package/src/knowledge/ingest-context.ts +1 -1
  213. package/src/knowledge/ingest-inputs.ts +4 -4
  214. package/src/knowledge/ingest.ts +1 -20
  215. package/src/knowledge/internal.ts +1 -1
  216. package/src/knowledge/knowledge-api.ts +7 -7
  217. package/src/knowledge/lint.ts +3 -3
  218. package/src/knowledge/memory-sync.ts +2 -2
  219. package/src/knowledge/packet.ts +3 -3
  220. package/src/knowledge/scheduling.ts +2 -2
  221. package/src/knowledge/service.ts +10 -10
  222. package/src/main.ts +11 -10
  223. package/src/mcp/index.ts +4 -4
  224. package/src/mcp/mcp-api.ts +1 -1
  225. package/src/mcp/registry.ts +1 -506
  226. package/src/media/builtin-image-understanding.ts +2 -2
  227. package/src/media/builtin-providers.ts +2 -2
  228. package/src/media/index.ts +1 -1
  229. package/src/multimodal/index.ts +1 -1
  230. package/src/multimodal/service.ts +2 -2
  231. package/src/panels/agent-inspector-panel.ts +2 -2
  232. package/src/panels/agent-logs-panel.ts +3 -3
  233. package/src/panels/approval-panel.ts +2 -2
  234. package/src/panels/builtin/operations.ts +3 -1
  235. package/src/panels/builtin/shared.ts +13 -13
  236. package/src/panels/context-visualizer-panel.ts +2 -2
  237. package/src/panels/cost-tracker-panel.ts +2 -2
  238. package/src/panels/debug-panel.ts +3 -3
  239. package/src/panels/git-panel.ts +1 -1
  240. package/src/panels/hooks-panel.ts +4 -4
  241. package/src/panels/knowledge-panel.ts +1 -1
  242. package/src/panels/marketplace-panel.ts +1 -1
  243. package/src/panels/mcp-panel.ts +1 -1
  244. package/src/panels/memory-panel.ts +2 -2
  245. package/src/panels/ops-control-panel.ts +2 -2
  246. package/src/panels/ops-strategy-panel.ts +2 -2
  247. package/src/panels/plugins-panel.ts +1 -1
  248. package/src/panels/policy-panel.ts +1 -1
  249. package/src/panels/provider-health-panel.ts +3 -3
  250. package/src/panels/provider-stats-panel.ts +2 -2
  251. package/src/panels/sandbox-panel.ts +1 -1
  252. package/src/panels/schedule-panel.ts +1 -1
  253. package/src/panels/settings-sync-panel.ts +1 -1
  254. package/src/panels/system-messages-panel.ts +1 -1
  255. package/src/panels/tasks-panel.ts +1 -1
  256. package/src/panels/thinking-panel.ts +2 -2
  257. package/src/panels/token-budget-panel.ts +1 -1
  258. package/src/panels/tool-inspector-panel.ts +2 -2
  259. package/src/panels/worktree-panel.ts +1 -1
  260. package/src/panels/wrfc-panel.ts +4 -4
  261. package/src/permissions/briefs/build.ts +1 -1
  262. package/src/permissions/manager.ts +1 -356
  263. package/src/permissions/prompt.ts +1 -1
  264. package/src/plugins/api.ts +9 -9
  265. package/src/plugins/loader.ts +8 -8
  266. package/src/plugins/manager.ts +5 -5
  267. package/src/providers/amazon-bedrock-mantle.ts +1 -1
  268. package/src/providers/amazon-bedrock.ts +1 -1
  269. package/src/providers/anthropic-compat.ts +4 -4
  270. package/src/providers/anthropic-sdk-provider.ts +5 -5
  271. package/src/providers/anthropic-vertex.ts +1 -1
  272. package/src/providers/anthropic.ts +4 -4
  273. package/src/providers/auto-register.ts +6 -6
  274. package/src/providers/builtin-catalog.ts +2 -2
  275. package/src/providers/builtin-registry.ts +15 -15
  276. package/src/providers/cache-planner.ts +2 -2
  277. package/src/providers/capabilities.ts +1 -601
  278. package/src/providers/custom-loader.ts +6 -6
  279. package/src/providers/discovered-compat.ts +7 -18
  280. package/src/providers/discovered-factory.ts +7 -7
  281. package/src/providers/discovered-traits.ts +1 -1
  282. package/src/providers/gemini.ts +4 -4
  283. package/src/providers/github-copilot.ts +4 -4
  284. package/src/providers/index.ts +1 -47
  285. package/src/providers/interface.ts +1 -1
  286. package/src/providers/llama-cpp.ts +4 -4
  287. package/src/providers/lm-studio-helpers.ts +1 -1
  288. package/src/providers/lm-studio.ts +4 -4
  289. package/src/providers/model-catalog-cache.ts +1 -1
  290. package/src/providers/model-catalog-notifications.ts +1 -1
  291. package/src/providers/model-catalog-synthetic.ts +2 -2
  292. package/src/providers/model-catalog.ts +7 -7
  293. package/src/providers/model-limits.ts +1 -280
  294. package/src/providers/ollama.ts +4 -4
  295. package/src/providers/openai-codex.ts +2 -2
  296. package/src/providers/openai-compat.ts +4 -4
  297. package/src/providers/openai.ts +3 -3
  298. package/src/providers/optimizer.ts +1 -381
  299. package/src/providers/provider-api.ts +1 -553
  300. package/src/providers/registry-helpers.ts +1 -1
  301. package/src/providers/registry-models.ts +2 -2
  302. package/src/providers/registry-types.ts +5 -5
  303. package/src/providers/registry.ts +1 -729
  304. package/src/providers/runtime-metadata.ts +1 -1
  305. package/src/providers/runtime-snapshot.ts +3 -3
  306. package/src/providers/synthetic.ts +3 -3
  307. package/src/providers/tier-prompts.ts +1 -1
  308. package/src/providers/tool-formats.ts +1 -1
  309. package/src/renderer/agent-detail-modal.ts +2 -2
  310. package/src/renderer/block-actions.ts +1 -1
  311. package/src/renderer/context-inspector.ts +1 -1
  312. package/src/renderer/conversation-layout.ts +1 -1
  313. package/src/renderer/conversation-overlays.ts +1 -1
  314. package/src/renderer/git-status.ts +1 -1
  315. package/src/renderer/live-tail-modal.ts +1 -1
  316. package/src/renderer/process-modal.ts +2 -2
  317. package/src/runtime/bootstrap-background.ts +4 -4
  318. package/src/runtime/bootstrap-command-context.ts +23 -23
  319. package/src/runtime/bootstrap-command-parts.ts +23 -23
  320. package/src/runtime/bootstrap-core.ts +12 -10
  321. package/src/runtime/bootstrap-helpers.ts +2 -2
  322. package/src/runtime/bootstrap-hook-bridge.ts +9 -9
  323. package/src/runtime/bootstrap-runtime-events.ts +4 -4
  324. package/src/runtime/bootstrap-services.ts +4 -4
  325. package/src/runtime/bootstrap-shell.ts +11 -11
  326. package/src/runtime/bootstrap.ts +28 -10
  327. package/src/runtime/compaction/index.ts +1 -90
  328. package/src/runtime/compaction/lifecycle.ts +1 -167
  329. package/src/runtime/compaction/manager.ts +11 -11
  330. package/src/runtime/compaction/quality-score.ts +1 -279
  331. package/src/runtime/compaction/resume-repair.ts +1 -183
  332. package/src/runtime/compaction/strategies/autocompact.ts +1 -65
  333. package/src/runtime/compaction/strategies/boundary-commit.ts +1 -106
  334. package/src/runtime/compaction/strategies/collapse.ts +1 -90
  335. package/src/runtime/compaction/strategies/index.ts +1 -23
  336. package/src/runtime/compaction/strategies/microcompact.ts +1 -74
  337. package/src/runtime/compaction/strategies/reactive.ts +1 -89
  338. package/src/runtime/compaction/types.ts +1 -221
  339. package/src/runtime/context.ts +9 -9
  340. package/src/runtime/diagnostics/actions.ts +1 -1
  341. package/src/runtime/diagnostics/index.ts +5 -5
  342. package/src/runtime/diagnostics/panels/agents.ts +2 -2
  343. package/src/runtime/diagnostics/panels/events.ts +2 -2
  344. package/src/runtime/diagnostics/panels/health.ts +2 -2
  345. package/src/runtime/diagnostics/panels/ops.ts +2 -2
  346. package/src/runtime/diagnostics/panels/policy.ts +2 -2
  347. package/src/runtime/diagnostics/panels/tasks.ts +2 -2
  348. package/src/runtime/diagnostics/panels/tool-calls.ts +2 -2
  349. package/src/runtime/diagnostics/provider.ts +1 -1
  350. package/src/runtime/ecosystem/recommendations.ts +1 -1
  351. package/src/runtime/emitters/agents.ts +2 -2
  352. package/src/runtime/emitters/automation.ts +2 -2
  353. package/src/runtime/emitters/communication.ts +2 -2
  354. package/src/runtime/emitters/compaction.ts +2 -2
  355. package/src/runtime/emitters/control-plane.ts +2 -2
  356. package/src/runtime/emitters/deliveries.ts +2 -2
  357. package/src/runtime/emitters/forensics.ts +2 -2
  358. package/src/runtime/emitters/index.ts +27 -27
  359. package/src/runtime/emitters/knowledge.ts +2 -2
  360. package/src/runtime/emitters/mcp.ts +2 -2
  361. package/src/runtime/emitters/ops.ts +2 -2
  362. package/src/runtime/emitters/orchestration.ts +2 -2
  363. package/src/runtime/emitters/permissions.ts +2 -2
  364. package/src/runtime/emitters/planner.ts +2 -2
  365. package/src/runtime/emitters/plugins.ts +2 -2
  366. package/src/runtime/emitters/providers.ts +2 -2
  367. package/src/runtime/emitters/routes.ts +2 -2
  368. package/src/runtime/emitters/security.ts +2 -2
  369. package/src/runtime/emitters/session.ts +2 -2
  370. package/src/runtime/emitters/surfaces.ts +2 -2
  371. package/src/runtime/emitters/tasks.ts +2 -2
  372. package/src/runtime/emitters/tools.ts +2 -2
  373. package/src/runtime/emitters/transport.ts +2 -2
  374. package/src/runtime/emitters/turn.ts +3 -3
  375. package/src/runtime/emitters/ui.ts +2 -2
  376. package/src/runtime/emitters/watchers.ts +2 -2
  377. package/src/runtime/emitters/workflows.ts +3 -3
  378. package/src/runtime/eval/index.ts +3 -3
  379. package/src/runtime/eval/runner.ts +1 -1
  380. package/src/runtime/eval/suites.ts +1 -1
  381. package/src/runtime/events/domain-map.ts +2 -2
  382. package/src/runtime/events/index.ts +1 -194
  383. package/src/runtime/events/turn.ts +1 -60
  384. package/src/runtime/events/workflows.ts +1 -17
  385. package/src/runtime/forensics/collector.ts +4 -4
  386. package/src/runtime/forensics/index.ts +1 -1
  387. package/src/runtime/foundation-clients.ts +14 -14
  388. package/src/runtime/foundation-services.ts +8 -8
  389. package/src/runtime/guidance.ts +3 -3
  390. package/src/runtime/health/effect-handlers.ts +3 -3
  391. package/src/runtime/health/index.ts +4 -4
  392. package/src/runtime/health/wiring.ts +2 -2
  393. package/src/runtime/index.ts +29 -29
  394. package/src/runtime/integration/helpers.ts +12 -12
  395. package/src/runtime/lifecycle.ts +4 -4
  396. package/src/runtime/mcp/index.ts +3 -3
  397. package/src/runtime/mcp/manager.ts +1 -1
  398. package/src/runtime/network/inbound.ts +2 -2
  399. package/src/runtime/network/index.ts +5 -5
  400. package/src/runtime/network/outbound.ts +2 -2
  401. package/src/runtime/network/shared.ts +1 -1
  402. package/src/runtime/operator-client.ts +9 -9
  403. package/src/runtime/ops/control-plane.ts +2 -2
  404. package/src/runtime/ops/index.ts +3 -3
  405. package/src/runtime/ops/playbooks/index.ts +2 -2
  406. package/src/runtime/ops/playbooks/session-unrecoverable.ts +2 -2
  407. package/src/runtime/ops/playbooks/stuck-turn.ts +1 -1
  408. package/src/runtime/ops/runtime-context.ts +1 -1
  409. package/src/runtime/orchestration/spawn-policy.ts +1 -1
  410. package/src/runtime/peer-client.ts +3 -3
  411. package/src/runtime/perf/index.ts +1 -1
  412. package/src/runtime/perf/slo-collector.ts +1 -1
  413. package/src/runtime/permissions/index.ts +5 -5
  414. package/src/runtime/permissions/policy-runtime.ts +1 -175
  415. package/src/runtime/permissions/rule-suggestions.ts +1 -1
  416. package/src/runtime/plugins/hot-reload.ts +4 -4
  417. package/src/runtime/plugins/index.ts +13 -13
  418. package/src/runtime/plugins/lifecycle.ts +1 -1
  419. package/src/runtime/plugins/manager.ts +10 -10
  420. package/src/runtime/plugins/manifest.ts +2 -2
  421. package/src/runtime/plugins/quarantine.ts +2 -2
  422. package/src/runtime/plugins/trust.ts +2 -2
  423. package/src/runtime/plugins/types.ts +1 -1
  424. package/src/runtime/provider-accounts/registry.ts +2 -2
  425. package/src/runtime/remote/distributed-runtime-contract-schemas.ts +3 -3
  426. package/src/runtime/remote/index.ts +3 -3
  427. package/src/runtime/remote/runner-registry.ts +2 -2
  428. package/src/runtime/remote/supervisor.ts +1 -1
  429. package/src/runtime/runtime-hook-api.ts +1 -1
  430. package/src/runtime/runtime-knowledge-api.ts +1 -1
  431. package/src/runtime/runtime-mcp-api.ts +1 -1
  432. package/src/runtime/runtime-ops-api.ts +2 -2
  433. package/src/runtime/runtime-provider-api.ts +1 -1
  434. package/src/runtime/services.ts +35 -32
  435. package/src/runtime/session-maintenance.ts +1 -1
  436. package/src/runtime/session-persistence.ts +2 -2
  437. package/src/runtime/session-return-context.ts +3 -3
  438. package/src/runtime/settings/control-plane-store.ts +1 -1
  439. package/src/runtime/settings/control-plane.ts +2 -2
  440. package/src/runtime/shell-command-extensions.ts +7 -7
  441. package/src/runtime/shell-command-ops.ts +6 -6
  442. package/src/runtime/shell-command-platform.ts +1 -1
  443. package/src/runtime/shell-command-services.ts +17 -17
  444. package/src/runtime/shell-command-workspace.ts +1 -1
  445. package/src/runtime/store/domains/conversation.ts +1 -1
  446. package/src/runtime/store/domains/index.ts +4 -4
  447. package/src/runtime/store/domains/permissions.ts +1 -1
  448. package/src/runtime/store/helpers/reducers/conversation.ts +3 -3
  449. package/src/runtime/store/helpers/reducers/lifecycle.ts +3 -3
  450. package/src/runtime/store/helpers/reducers/shared.ts +2 -2
  451. package/src/runtime/store/helpers/reducers/sync.ts +1 -1
  452. package/src/runtime/store/helpers/reducers.ts +4 -4
  453. package/src/runtime/store/index.ts +4 -4
  454. package/src/runtime/store/selectors/index.ts +2 -2
  455. package/src/runtime/store/state.ts +4 -4
  456. package/src/runtime/tasks/adapters/acp-adapter.ts +1 -1
  457. package/src/runtime/tasks/adapters/index.ts +6 -6
  458. package/src/runtime/tasks/index.ts +3 -3
  459. package/src/runtime/tasks/manager.ts +3 -3
  460. package/src/runtime/telemetry/api-helpers.ts +2 -2
  461. package/src/runtime/telemetry/api.ts +2 -2
  462. package/src/runtime/telemetry/index.ts +5 -5
  463. package/src/runtime/telemetry/instrumentation/domain-bridge-agent-session.ts +1 -1
  464. package/src/runtime/telemetry/instrumentation/domain-bridge-plugin-mcp.ts +1 -1
  465. package/src/runtime/telemetry/instrumentation/domain-bridge-shared.ts +1 -1
  466. package/src/runtime/telemetry/instrumentation/domain-bridge-transport-task.ts +1 -1
  467. package/src/runtime/telemetry/instrumentation/domain-bridge.ts +5 -5
  468. package/src/runtime/telemetry/instrumentation/index.ts +3 -3
  469. package/src/runtime/tools/context.ts +3 -3
  470. package/src/runtime/tools/index.ts +4 -4
  471. package/src/runtime/tools/phased-executor.ts +3 -3
  472. package/src/runtime/tools/phases/budget.ts +1 -1
  473. package/src/runtime/tools/phases/execute.ts +1 -1
  474. package/src/runtime/tools/phases/index.ts +7 -7
  475. package/src/runtime/tools/phases/map-output.ts +1 -1
  476. package/src/runtime/tools/phases/permission.ts +2 -2
  477. package/src/runtime/tools/phases/posthook.ts +1 -1
  478. package/src/runtime/tools/phases/prehook.ts +1 -1
  479. package/src/runtime/tools/phases/validate.ts +1 -1
  480. package/src/runtime/transports/direct.ts +4 -4
  481. package/src/runtime/transports/http-helpers.ts +3 -3
  482. package/src/runtime/transports/http-types.ts +6 -6
  483. package/src/runtime/transports/http.ts +8 -8
  484. package/src/runtime/transports/realtime.ts +4 -4
  485. package/src/runtime/transports/remote-events.ts +1 -1
  486. package/src/runtime/transports/shared.ts +2 -2
  487. package/src/runtime/transports/ui-runtime-events.ts +2 -2
  488. package/src/runtime/ui/index.ts +7 -7
  489. package/src/runtime/ui/model-picker/data-provider.ts +4 -4
  490. package/src/runtime/ui/model-picker/health-enrichment.ts +3 -3
  491. package/src/runtime/ui/model-picker/index.ts +8 -8
  492. package/src/runtime/ui/provider-health/data-provider.ts +2 -2
  493. package/src/runtime/ui/provider-health/fallback-visualizer.ts +1 -1
  494. package/src/runtime/ui/provider-health/index.ts +5 -5
  495. package/src/runtime/ui-events.ts +1 -1
  496. package/src/runtime/ui-read-models-core.ts +2 -2
  497. package/src/runtime/ui-read-models-observability-maintenance.ts +4 -4
  498. package/src/runtime/ui-read-models-observability-options.ts +1 -1
  499. package/src/runtime/ui-read-models-observability-remote.ts +2 -2
  500. package/src/runtime/ui-read-models-observability-security.ts +3 -3
  501. package/src/runtime/ui-read-models-observability-system.ts +6 -6
  502. package/src/runtime/ui-read-models-observability.ts +10 -10
  503. package/src/runtime/ui-read-models-operations.ts +2 -2
  504. package/src/runtime/ui-read-models.ts +7 -7
  505. package/src/runtime/ui-service-queries.ts +2 -2
  506. package/src/runtime/ui-services.ts +7 -7
  507. package/src/runtime/worktree/registry.ts +1 -1
  508. package/src/scripts/process-messages.ts +1 -1
  509. package/src/sessions/manager.ts +9 -383
  510. package/src/shell/blocking-input.ts +3 -3
  511. package/src/shell/ui-openers.ts +3 -3
  512. package/src/state/file-watcher.ts +1 -1
  513. package/src/state/index.ts +10 -10
  514. package/src/state/knowledge-injection.ts +2 -2
  515. package/src/state/memory-embedding-http.ts +2 -2
  516. package/src/state/memory-embeddings.ts +1 -1
  517. package/src/state/memory-ingest.ts +3 -3
  518. package/src/state/memory-registry.ts +3 -3
  519. package/src/state/memory-store-helpers.ts +1 -1
  520. package/src/state/memory-store.ts +4 -4
  521. package/src/state/memory-vector-store.ts +3 -3
  522. package/src/tools/agent/index.ts +7 -7
  523. package/src/tools/agent/manager.ts +8 -8
  524. package/src/tools/analyze/git-modes.ts +2 -2
  525. package/src/tools/analyze/index.ts +2 -2
  526. package/src/tools/channel/agent-tools.ts +1 -1
  527. package/src/tools/channel/index.ts +2 -2
  528. package/src/tools/edit/core.ts +3 -3
  529. package/src/tools/edit/index.ts +2 -2
  530. package/src/tools/edit/phased.ts +2 -2
  531. package/src/tools/fetch/index.ts +2 -2
  532. package/src/tools/fetch/phased.ts +1 -1
  533. package/src/tools/index.ts +21 -21
  534. package/src/tools/mcp/index.ts +1 -1
  535. package/src/tools/remote-trigger/index.ts +1 -1
  536. package/src/tools/shared/auto-heal.ts +2 -2
  537. package/src/tools/state/index.ts +1 -1
  538. package/src/tools/web-search/index.ts +1 -1
  539. package/src/tools/write/index.ts +3 -3
  540. package/src/tools/write/phased.ts +1 -1
  541. package/src/version.ts +1 -1
  542. package/src/watchers/index.ts +2 -2
  543. package/src/watchers/registry.ts +2 -2
  544. package/src/web-search/index.ts +10 -10
  545. package/src/web-search/provider-registry.ts +8 -8
  546. package/src/web-search/providers/brave.ts +1 -1
  547. package/src/web-search/providers/duckduckgo.ts +1 -1
  548. package/src/web-search/providers/exa.ts +1 -1
  549. package/src/web-search/providers/firecrawl.ts +1 -1
  550. package/src/web-search/providers/perplexity.ts +1 -1
  551. package/src/web-search/providers/searxng.ts +1 -1
  552. package/src/web-search/providers/shared.ts +1 -1
  553. package/src/web-search/providers/tavily.ts +1 -1
  554. package/src/web-search/service.ts +2 -2
  555. package/src/runtime/ecosystem/catalog.ts +0 -606
@@ -1,223 +1 @@
1
- import type { RuntimeEventDomain } from '../runtime/events/index.ts';
2
-
3
- export type GatewayMethodTransport = 'http' | 'ws' | 'internal';
4
- export type GatewayMethodSource = 'builtin' | 'plugin';
5
- export type GatewayMethodAccess = 'public' | 'authenticated' | 'admin' | 'remote-peer';
6
- export type GatewayEventTransport = 'sse' | 'ws' | 'internal';
7
-
8
- export interface GatewayHttpBinding {
9
- readonly method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
10
- readonly path: string;
11
- }
12
-
13
- export interface GatewayMethodDescriptor {
14
- readonly id: string;
15
- readonly title: string;
16
- readonly description: string;
17
- readonly category: string;
18
- readonly source: GatewayMethodSource;
19
- readonly access: GatewayMethodAccess;
20
- readonly transport: readonly GatewayMethodTransport[];
21
- readonly scopes: readonly string[];
22
- readonly http?: GatewayHttpBinding;
23
- readonly events?: readonly string[];
24
- readonly inputSchema?: Record<string, unknown>;
25
- readonly outputSchema?: Record<string, unknown>;
26
- readonly pluginId?: string;
27
- readonly dangerous?: boolean;
28
- readonly invokable?: boolean;
29
- readonly metadata?: Record<string, unknown>;
30
- }
31
-
32
- export interface GatewayEventDescriptor {
33
- readonly id: string;
34
- readonly title: string;
35
- readonly description: string;
36
- readonly category: string;
37
- readonly source: GatewayMethodSource;
38
- readonly transport: readonly GatewayEventTransport[];
39
- readonly scopes: readonly string[];
40
- readonly domains?: readonly RuntimeEventDomain[];
41
- readonly wireEvents?: readonly string[];
42
- readonly outputSchema?: Record<string, unknown>;
43
- readonly pluginId?: string;
44
- readonly metadata?: Record<string, unknown>;
45
- }
46
-
47
- export interface GatewayMethodInvocationContext {
48
- readonly principalId?: string;
49
- readonly principalKind?: 'user' | 'bot' | 'service' | 'token' | 'remote-peer';
50
- readonly admin?: boolean;
51
- readonly scopes?: readonly string[];
52
- readonly clientKind?: string;
53
- readonly authToken?: string;
54
- readonly metadata?: Record<string, unknown>;
55
- }
56
-
57
- export interface GatewayMethodInvocation {
58
- readonly body?: unknown;
59
- readonly query?: Record<string, unknown>;
60
- readonly context: GatewayMethodInvocationContext;
61
- }
62
-
63
- export type GatewayMethodHandler = (input: GatewayMethodInvocation) => unknown | Promise<unknown>;
64
- export interface GatewayMethodListOptions {
65
- readonly category?: string;
66
- readonly source?: GatewayMethodSource;
67
- readonly pluginId?: string;
68
- }
69
-
70
- export interface GatewayEventListOptions {
71
- readonly category?: string;
72
- readonly source?: GatewayMethodSource;
73
- readonly pluginId?: string;
74
- readonly domain?: RuntimeEventDomain;
75
- }
76
-
77
- export const EMPTY_OBJECT_SCHEMA = { type: 'object', properties: {}, additionalProperties: false } as const;
78
- export const STRING_SCHEMA = { type: 'string' } as const;
79
- export const BOOLEAN_SCHEMA = { type: 'boolean' } as const;
80
- export const NUMBER_SCHEMA = { type: 'number' } as const;
81
- const NULL_SCHEMA = { type: 'null' } as const;
82
- export const JSON_VALUE_SCHEMA: Record<string, unknown> = {};
83
- export const JSON_OBJECT_SCHEMA: Record<string, unknown> = {
84
- type: 'object',
85
- additionalProperties: JSON_VALUE_SCHEMA,
86
- };
87
- export const JSON_ARRAY_SCHEMA: Record<string, unknown> = {
88
- type: 'array',
89
- items: JSON_VALUE_SCHEMA,
90
- };
91
-
92
- Object.assign(JSON_VALUE_SCHEMA, {
93
- anyOf: [
94
- STRING_SCHEMA,
95
- NUMBER_SCHEMA,
96
- BOOLEAN_SCHEMA,
97
- NULL_SCHEMA,
98
- JSON_OBJECT_SCHEMA,
99
- JSON_ARRAY_SCHEMA,
100
- ],
101
- });
102
-
103
- export function arraySchema(itemSchema: Record<string, unknown>): Record<string, unknown> {
104
- return { type: 'array', items: itemSchema };
105
- }
106
-
107
- export function objectSchema(
108
- properties: Record<string, Record<string, unknown>>,
109
- required: readonly string[] = [],
110
- options: { readonly additionalProperties?: boolean } = {},
111
- ): Record<string, unknown> {
112
- return {
113
- type: 'object',
114
- properties,
115
- ...(required.length > 0 ? { required: [...required] } : {}),
116
- additionalProperties: options.additionalProperties ?? false,
117
- };
118
- }
119
-
120
- export const GATEWAY_HTTP_BINDING_SCHEMA = objectSchema({
121
- method: STRING_SCHEMA,
122
- path: STRING_SCHEMA,
123
- }, ['method', 'path']);
124
-
125
- export const METHOD_DESCRIPTOR_SCHEMA = objectSchema({
126
- id: STRING_SCHEMA,
127
- title: STRING_SCHEMA,
128
- description: STRING_SCHEMA,
129
- category: STRING_SCHEMA,
130
- source: STRING_SCHEMA,
131
- access: STRING_SCHEMA,
132
- transport: arraySchema(STRING_SCHEMA),
133
- scopes: arraySchema(STRING_SCHEMA),
134
- http: GATEWAY_HTTP_BINDING_SCHEMA,
135
- events: arraySchema(STRING_SCHEMA),
136
- inputSchema: JSON_OBJECT_SCHEMA,
137
- outputSchema: JSON_OBJECT_SCHEMA,
138
- pluginId: STRING_SCHEMA,
139
- dangerous: BOOLEAN_SCHEMA,
140
- invokable: BOOLEAN_SCHEMA,
141
- metadata: JSON_OBJECT_SCHEMA,
142
- }, ['id', 'title', 'description', 'category', 'source', 'access', 'transport', 'scopes']);
143
-
144
- export const EVENT_DESCRIPTOR_SCHEMA = objectSchema({
145
- id: STRING_SCHEMA,
146
- title: STRING_SCHEMA,
147
- description: STRING_SCHEMA,
148
- category: STRING_SCHEMA,
149
- source: STRING_SCHEMA,
150
- transport: arraySchema(STRING_SCHEMA),
151
- scopes: arraySchema(STRING_SCHEMA),
152
- domains: arraySchema(STRING_SCHEMA),
153
- wireEvents: arraySchema(STRING_SCHEMA),
154
- outputSchema: JSON_OBJECT_SCHEMA,
155
- pluginId: STRING_SCHEMA,
156
- metadata: JSON_OBJECT_SCHEMA,
157
- }, ['id', 'title', 'description', 'category', 'source', 'transport', 'scopes']);
158
-
159
- export function listOutputSchema(
160
- key: string,
161
- itemSchema: Record<string, unknown>,
162
- ): Record<string, unknown> {
163
- return objectSchema({ [key]: arraySchema(itemSchema) }, [key], { additionalProperties: false });
164
- }
165
-
166
- export function entityOutputSchema(
167
- key: string,
168
- entitySchema: Record<string, unknown>,
169
- ): Record<string, unknown> {
170
- return objectSchema({ [key]: entitySchema }, [key], { additionalProperties: false });
171
- }
172
-
173
- export function actionResultOutputSchema(
174
- key: string,
175
- entitySchema: Record<string, unknown>,
176
- ): Record<string, unknown> {
177
- return objectSchema({
178
- [key]: entitySchema,
179
- }, [key], { additionalProperties: true });
180
- }
181
-
182
- export function bodyEnvelopeSchema(
183
- properties: Record<string, Record<string, unknown>> = {},
184
- required: readonly string[] = [],
185
- ): Record<string, unknown> {
186
- return objectSchema({
187
- ...properties,
188
- }, required, { additionalProperties: true });
189
- }
190
-
191
- export function methodDescriptor(input: Omit<GatewayMethodDescriptor, 'source' | 'transport' | 'access'> & Partial<Pick<GatewayMethodDescriptor, 'source' | 'transport' | 'access'>>): GatewayMethodDescriptor {
192
- return {
193
- source: input.source ?? 'builtin',
194
- transport: input.transport ?? ['http', 'ws'],
195
- access: input.access ?? 'authenticated',
196
- ...input,
197
- };
198
- }
199
-
200
- export function eventDescriptor(input: Omit<GatewayEventDescriptor, 'source'> & Partial<Pick<GatewayEventDescriptor, 'source'>>): GatewayEventDescriptor {
201
- return {
202
- source: input.source ?? 'builtin',
203
- ...input,
204
- };
205
- }
206
-
207
- export function runtimeEventId(domain: RuntimeEventDomain): string {
208
- return `runtime.${domain}`;
209
- }
210
-
211
- export function runtimeDomainEvent(domain: RuntimeEventDomain, description: string): GatewayEventDescriptor {
212
- return eventDescriptor({
213
- id: runtimeEventId(domain),
214
- title: `${domain} Domain Events`,
215
- description,
216
- category: 'runtime-domain',
217
- transport: ['sse', 'ws'],
218
- scopes: ['read:events'],
219
- domains: [domain],
220
- wireEvents: [domain],
221
- outputSchema: JSON_OBJECT_SCHEMA,
222
- });
223
- }
1
+ export * from '@pellux/goodvibes-sdk/platform/control-plane/method-catalog-shared';
@@ -1,242 +1 @@
1
- import {
2
- builtinGatewayAdminMethodDescriptors,
3
- } from './method-catalog-admin.ts';
4
- import {
5
- builtinGatewayChannelMethodDescriptors,
6
- } from './method-catalog-channels.ts';
7
- import {
8
- builtinGatewayControlMethodDescriptors,
9
- } from './method-catalog-control.ts';
10
- import {
11
- builtinGatewayEventDescriptors,
12
- } from './method-catalog-events.ts';
13
- import {
14
- builtinGatewayKnowledgeMethodDescriptors,
15
- } from './method-catalog-knowledge.ts';
16
- import {
17
- builtinGatewayMediaMethodDescriptors,
18
- } from './method-catalog-media.ts';
19
- import type {
20
- GatewayEventDescriptor,
21
- GatewayEventListOptions,
22
- GatewayMethodDescriptor,
23
- GatewayMethodHandler,
24
- GatewayMethodInvocation,
25
- GatewayMethodListOptions,
26
- } from './method-catalog-shared.ts';
27
- import {
28
- builtinGatewayRuntimeMethodDescriptors,
29
- } from './method-catalog-runtime.ts';
30
-
31
- export type {
32
- GatewayEventDescriptor,
33
- GatewayEventListOptions,
34
- GatewayEventTransport,
35
- GatewayHttpBinding,
36
- GatewayMethodAccess,
37
- GatewayMethodDescriptor,
38
- GatewayMethodHandler,
39
- GatewayMethodInvocation,
40
- GatewayMethodInvocationContext,
41
- GatewayMethodListOptions,
42
- GatewayMethodSource,
43
- GatewayMethodTransport,
44
- } from './method-catalog-shared.ts';
45
-
46
- interface RegisteredGatewayMethod {
47
- readonly descriptor: GatewayMethodDescriptor;
48
- readonly handler?: GatewayMethodHandler;
49
- }
50
-
51
- interface RegisteredGatewayEvent {
52
- readonly descriptor: GatewayEventDescriptor;
53
- }
54
-
55
- const BUILTIN_GATEWAY_EVENTS: readonly GatewayEventDescriptor[] = builtinGatewayEventDescriptors;
56
-
57
- const BUILTIN_GATEWAY_METHODS: readonly GatewayMethodDescriptor[] = [
58
- ...builtinGatewayControlMethodDescriptors,
59
- ...builtinGatewayChannelMethodDescriptors,
60
- ...builtinGatewayRuntimeMethodDescriptors,
61
- ...builtinGatewayKnowledgeMethodDescriptors,
62
- ...builtinGatewayMediaMethodDescriptors,
63
- ...builtinGatewayAdminMethodDescriptors,
64
- ];
65
-
66
- function normalizeDescriptor(descriptor: GatewayMethodDescriptor): GatewayMethodDescriptor {
67
- const id = descriptor.id.trim();
68
- if (!id) throw new Error('Gateway method id is required');
69
- return {
70
- ...descriptor,
71
- id,
72
- transport: [...new Set(descriptor.transport)],
73
- scopes: [...new Set(descriptor.scopes)],
74
- events: descriptor.events ? [...new Set(descriptor.events)] : undefined,
75
- invokable: descriptor.invokable ?? true,
76
- };
77
- }
78
-
79
- function normalizeEventDescriptor(descriptor: GatewayEventDescriptor): GatewayEventDescriptor {
80
- const id = descriptor.id.trim();
81
- if (!id) throw new Error('Gateway event id is required');
82
- return {
83
- ...descriptor,
84
- id,
85
- transport: [...new Set(descriptor.transport)],
86
- scopes: [...new Set(descriptor.scopes)],
87
- domains: descriptor.domains ? [...new Set(descriptor.domains)] : undefined,
88
- wireEvents: descriptor.wireEvents ? [...new Set(descriptor.wireEvents)] : undefined,
89
- };
90
- }
91
-
92
- function pathMatchesTemplate(template: string, pathname: string): boolean {
93
- const normalize = (value: string) => value.replace(/\/+$/, '') || '/';
94
- const templateParts = normalize(template).split('/');
95
- const pathParts = normalize(pathname).split('/');
96
- if (templateParts.length !== pathParts.length) return false;
97
- return templateParts.every((segment, index) => {
98
- if (segment.startsWith('{') && segment.endsWith('}')) return pathParts[index]!.length > 0;
99
- return segment === pathParts[index];
100
- });
101
- }
102
-
103
- export class GatewayMethodCatalog {
104
- private readonly methods = new Map<string, RegisteredGatewayMethod>();
105
- private readonly events = new Map<string, RegisteredGatewayEvent>();
106
-
107
- constructor(options: { readonly includeBuiltins?: boolean } = {}) {
108
- if (options.includeBuiltins !== false) {
109
- for (const descriptor of BUILTIN_GATEWAY_METHODS) {
110
- this.register(descriptor, undefined, { replace: true });
111
- }
112
- for (const descriptor of BUILTIN_GATEWAY_EVENTS) {
113
- this.registerEvent(descriptor, { replace: true });
114
- }
115
- }
116
- }
117
-
118
- register(
119
- descriptor: GatewayMethodDescriptor,
120
- handler?: GatewayMethodHandler,
121
- options: { readonly replace?: boolean } = {},
122
- ): () => void {
123
- const normalized = normalizeDescriptor(descriptor);
124
- if (this.methods.has(normalized.id) && !options.replace) {
125
- throw new Error(`Gateway method already registered: ${normalized.id}`);
126
- }
127
- this.methods.set(normalized.id, { descriptor: normalized, handler });
128
- return () => {
129
- const current = this.methods.get(normalized.id);
130
- if (current && current.descriptor.pluginId === normalized.pluginId && current.descriptor.source === normalized.source) {
131
- this.unregister(normalized.id);
132
- }
133
- };
134
- }
135
-
136
- registerEvent(
137
- descriptor: GatewayEventDescriptor,
138
- options: { readonly replace?: boolean } = {},
139
- ): () => void {
140
- const normalized = normalizeEventDescriptor(descriptor);
141
- if (this.events.has(normalized.id) && !options.replace) {
142
- throw new Error(`Gateway event already registered: ${normalized.id}`);
143
- }
144
- this.events.set(normalized.id, { descriptor: normalized });
145
- return () => {
146
- const current = this.events.get(normalized.id);
147
- if (current && current.descriptor.pluginId === normalized.pluginId && current.descriptor.source === normalized.source) {
148
- this.unregisterEvent(normalized.id);
149
- }
150
- };
151
- }
152
-
153
- unregister(id: string): boolean {
154
- return this.methods.delete(id);
155
- }
156
-
157
- unregisterEvent(id: string): boolean {
158
- return this.events.delete(id);
159
- }
160
-
161
- clearPluginMethods(pluginId: string): void {
162
- for (const [id, entry] of this.methods.entries()) {
163
- if (entry.descriptor.pluginId === pluginId) {
164
- this.methods.delete(id);
165
- }
166
- }
167
- for (const [id, entry] of this.events.entries()) {
168
- if (entry.descriptor.pluginId === pluginId) {
169
- this.events.delete(id);
170
- }
171
- }
172
- }
173
-
174
- list(options: GatewayMethodListOptions = {}): GatewayMethodDescriptor[] {
175
- return [...this.methods.values()]
176
- .map((entry) => entry.descriptor)
177
- .filter((descriptor) => !options.category || descriptor.category === options.category)
178
- .filter((descriptor) => !options.source || descriptor.source === options.source)
179
- .filter((descriptor) => !options.pluginId || descriptor.pluginId === options.pluginId)
180
- .sort((a, b) => a.category.localeCompare(b.category) || a.id.localeCompare(b.id));
181
- }
182
-
183
- listEvents(options: GatewayEventListOptions = {}): GatewayEventDescriptor[] {
184
- return [...this.events.values()]
185
- .map((entry) => entry.descriptor)
186
- .filter((descriptor) => !options.category || descriptor.category === options.category)
187
- .filter((descriptor) => !options.source || descriptor.source === options.source)
188
- .filter((descriptor) => !options.pluginId || descriptor.pluginId === options.pluginId)
189
- .filter((descriptor) => !options.domain || descriptor.domains?.includes(options.domain))
190
- .sort((a, b) => a.category.localeCompare(b.category) || a.id.localeCompare(b.id));
191
- }
192
-
193
- get(id: string): GatewayMethodDescriptor | null {
194
- return this.methods.get(id)?.descriptor ?? null;
195
- }
196
-
197
- getEvent(id: string): GatewayEventDescriptor | null {
198
- return this.events.get(id)?.descriptor ?? null;
199
- }
200
-
201
- hasHandler(id: string): boolean {
202
- return typeof this.methods.get(id)?.handler === 'function';
203
- }
204
-
205
- findByHttpBinding(method: string, pathname: string): GatewayMethodDescriptor | null {
206
- const normalizedMethod = method.toUpperCase();
207
- for (const entry of this.methods.values()) {
208
- const binding = entry.descriptor.http;
209
- if (!binding || binding.method !== normalizedMethod) continue;
210
- if (pathMatchesTemplate(binding.path, pathname)) return entry.descriptor;
211
- const aliasPaths = Array.isArray(entry.descriptor.metadata?.aliasPaths)
212
- ? entry.descriptor.metadata.aliasPaths.filter((value): value is string => typeof value === 'string')
213
- : [];
214
- if (aliasPaths.some((candidate) => pathMatchesTemplate(candidate, pathname))) return entry.descriptor;
215
- }
216
- return null;
217
- }
218
-
219
- getAllScopes(options: { readonly includeWrite?: boolean } = {}): string[] {
220
- const scopes = new Set<string>();
221
- for (const descriptor of this.methods.values()) {
222
- for (const scope of descriptor.descriptor.scopes) {
223
- if (!options.includeWrite && !scope.startsWith('read:')) continue;
224
- scopes.add(scope);
225
- }
226
- }
227
- for (const descriptor of this.events.values()) {
228
- for (const scope of descriptor.descriptor.scopes) {
229
- if (!options.includeWrite && !scope.startsWith('read:')) continue;
230
- scopes.add(scope);
231
- }
232
- }
233
- return [...scopes].sort();
234
- }
235
-
236
- async invoke(id: string, invocation: GatewayMethodInvocation): Promise<unknown> {
237
- const entry = this.methods.get(id);
238
- if (!entry) throw new Error(`Unknown gateway method: ${id}`);
239
- if (!entry.handler) throw new Error(`Gateway method has no internal handler: ${id}`);
240
- return entry.handler(invocation);
241
- }
242
- }
1
+ export * from '@pellux/goodvibes-sdk/platform/control-plane/method-catalog';