@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,381 +1 @@
1
- /**
2
- * Provider Optimizer
3
- *
4
- * Lives above provider implementations. Routes requests based on capability
5
- * contracts from ProviderCapabilityRegistry. Supports auto/manual/pinned
6
- * routing modes with deterministic, fully-explainable decisions.
7
- *
8
- * Optimizer off → zero behavior change (selectRoute returns null).
9
- * Optimizer on → deterministic route explanation for every request profile.
10
- */
11
-
12
- import {
13
- ProviderCapabilityRegistry,
14
- type RequestProfile,
15
- type RouteExplanation,
16
- } from './capabilities.ts';
17
- import type { ModelDefinition, ProviderRegistry } from './registry.ts';
18
- import type { ProviderHealthRecord } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/provider-health';
19
-
20
- // ---------------------------------------------------------------------------
21
- // Types
22
- // ---------------------------------------------------------------------------
23
-
24
- /** Optimizer routing mode. */
25
- export type OptimizerMode = 'auto' | 'manual' | 'pinned';
26
-
27
- /** A single fallback transition log entry. */
28
- export interface FallbackTransition {
29
- /** Epoch ms when the transition occurred. */
30
- readonly ts: number;
31
- /** Provider/model that failed or was skipped. */
32
- readonly from: string;
33
- /** Provider/model selected as fallback. */
34
- readonly to: string;
35
- /** Human-readable reason for the transition. */
36
- readonly reason: string;
37
- }
38
-
39
- /** Result of a route selection decision. */
40
- export interface RouteDecision {
41
- /** Provider ID selected. */
42
- readonly providerId: string;
43
- /** Model ID selected. */
44
- readonly modelId: string;
45
- /** Full route explanation from the capability registry. */
46
- readonly explanation: RouteExplanation;
47
- /** All candidates considered (accepted and rejected). */
48
- readonly allCandidates: readonly RouteExplanation[];
49
- /** Epoch ms when this decision was made. */
50
- readonly decidedAt: number;
51
- /** Whether this decision was constrained by a pin. */
52
- readonly pinned: boolean;
53
- }
54
-
55
- /** Result of a fallback chain test. */
56
- export interface FallbackTestResult {
57
- /** Ordered nodes in the simulated fallback chain. */
58
- readonly chain: ReadonlyArray<{
59
- readonly position: number;
60
- readonly providerId: string;
61
- readonly modelId: string;
62
- readonly capable: boolean;
63
- readonly explanation: RouteExplanation;
64
- }>;
65
- /** Number of nodes that satisfy the empty request profile. */
66
- readonly viableCount: number;
67
- /** Total nodes tested. */
68
- readonly totalCount: number;
69
- /** Epoch ms when the test was run. */
70
- readonly testedAt: number;
71
- }
72
-
73
- // ---------------------------------------------------------------------------
74
- // ProviderOptimizer
75
- // ---------------------------------------------------------------------------
76
-
77
- /**
78
- * Optimizer that selects the best provider/model for a given request profile.
79
- *
80
- * When disabled (`enabled = false`) every method returns null/empty — the
81
- * optimizer has zero effect on normal request flow.
82
- *
83
- * When enabled, routing decisions are driven entirely by `ProviderCapabilityRegistry`
84
- * capability contracts. The selection algorithm is deterministic: candidates are
85
- * evaluated in registry order (custom → synthetic → catalog → discovered), and
86
- * the first capable model wins. Ties are never broken by opaque scoring.
87
- */
88
- export class ProviderOptimizer {
89
- private _mode: OptimizerMode = 'manual';
90
- private _enabled: boolean;
91
- private _pinnedProvider: string | null = null;
92
- private _pinnedModel: string | null = null;
93
- private readonly _fallbackLog: FallbackTransition[] = [];
94
- private static readonly MAX_LOG_ENTRIES = 200;
95
- private readonly _clock: () => number;
96
- private readonly registry: Pick<ProviderRegistry, 'getCurrentModel' | 'getSelectableModels' | 'explainRoute'>;
97
- private readonly capabilityRegistry: ProviderCapabilityRegistry;
98
-
99
- constructor(
100
- registry: Pick<ProviderRegistry, 'getCurrentModel' | 'getSelectableModels' | 'explainRoute'>,
101
- capabilityRegistry: ProviderCapabilityRegistry,
102
- enabled = false,
103
- clock: () => number = Date.now,
104
- ) {
105
- this.registry = registry;
106
- this.capabilityRegistry = capabilityRegistry;
107
- this._enabled = enabled;
108
- this._clock = clock;
109
- }
110
-
111
- // -------------------------------------------------------------------------
112
- // Mode control
113
- // -------------------------------------------------------------------------
114
-
115
- /** Current routing mode. */
116
- get mode(): OptimizerMode {
117
- return this._mode;
118
- }
119
-
120
- /** Whether the optimizer is active. When false, selectRoute always returns null. */
121
- get enabled(): boolean {
122
- return this._enabled;
123
- }
124
-
125
- /** Enable or disable the optimizer. */
126
- setEnabled(enabled: boolean): void {
127
- this._enabled = enabled;
128
- }
129
-
130
- /**
131
- * Set the routing mode.
132
- * - `auto` — optimizer selects the best capable provider for each request profile.
133
- * - `manual` — optimizer is advisory only; caller drives provider selection.
134
- * - `pinned` — optimizer always returns the pinned provider/model (if capable).
135
- */
136
- setMode(mode: OptimizerMode): void {
137
- this._mode = mode;
138
- if (mode !== 'pinned') {
139
- this._pinnedProvider = null;
140
- this._pinnedModel = null;
141
- }
142
- }
143
-
144
- // -------------------------------------------------------------------------
145
- // Pinning
146
- // -------------------------------------------------------------------------
147
-
148
- /**
149
- * Pin routing to a specific provider and model.
150
- * Automatically switches mode to `pinned`.
151
- *
152
- * @param providerId - Provider name (e.g. `'anthropic'`).
153
- * @param modelId - Model ID (e.g. `'claude-opus-4-5'`).
154
- */
155
- pin(providerId: string, modelId: string): void {
156
- this._pinnedProvider = providerId;
157
- this._pinnedModel = modelId;
158
- this._mode = 'pinned';
159
- }
160
-
161
- /** Remove the current pin and return to `manual` mode. */
162
- unpin(): void {
163
- this._pinnedProvider = null;
164
- this._pinnedModel = null;
165
- this._mode = 'manual';
166
- }
167
-
168
- /** Current pin target, or null if not pinned. */
169
- get pinnedTarget(): { providerId: string; modelId: string } | null {
170
- if (this._pinnedProvider && this._pinnedModel) {
171
- return { providerId: this._pinnedProvider, modelId: this._pinnedModel };
172
- }
173
- return null;
174
- }
175
-
176
- // -------------------------------------------------------------------------
177
- // Route selection
178
- // -------------------------------------------------------------------------
179
-
180
- /**
181
- * Select the best route for the given request profile.
182
- *
183
- * Returns `null` when the optimizer is disabled — callers must handle null
184
- * and fall through to their own provider selection logic.
185
- *
186
- * @param profile - Capability requirements for the request.
187
- * @param healthSnapshot - Optional map of provider health records for filtering
188
- * unhealthy providers in `auto` mode.
189
- * @returns A `RouteDecision` or `null` when optimizer is off.
190
- *
191
- * @remarks
192
- * `selectRoute` is wired by the orchestrator when the `provider-optimizer`
193
- * feature flag is enabled. This follows the same deferred-integration pattern
194
- * as session emitters — the method is fully functional but called externally
195
- * only when the feature is active. Until then it is a no-op (returns `null`).
196
- */
197
- selectRoute(
198
- profile: RequestProfile,
199
- healthSnapshot?: ReadonlyMap<string, ProviderHealthRecord>,
200
- ): RouteDecision | null {
201
- if (!this._enabled) return null;
202
-
203
- const candidates = this.registry.getSelectableModels();
204
- const allCandidates: RouteExplanation[] = [];
205
-
206
- // Pinned mode — evaluate only the pinned target
207
- if (this._mode === 'pinned' && this._pinnedProvider && this._pinnedModel) {
208
- const explanation = this.capabilityRegistry.getRouteExplanation(
209
- this._pinnedProvider,
210
- this._pinnedModel,
211
- profile,
212
- );
213
- allCandidates.push(explanation);
214
- return {
215
- providerId: this._pinnedProvider,
216
- modelId: this._pinnedModel,
217
- explanation,
218
- allCandidates,
219
- decidedAt: this._clock(),
220
- pinned: true,
221
- };
222
- }
223
-
224
- // Auto mode — evaluate all selectable models; pick first capable
225
- // Manual mode — same evaluation but result is advisory (caller may ignore)
226
- let selected: ModelDefinition | null = null;
227
- let selectedExplanation: RouteExplanation | null = null;
228
-
229
- for (const model of candidates) {
230
- // Skip unhealthy providers in auto mode when health data is available
231
- if (this._mode === 'auto' && healthSnapshot) {
232
- const health = healthSnapshot.get(model.provider);
233
- if (health && (health.status === 'unavailable' || health.status === 'auth_error')) {
234
- continue;
235
- }
236
- }
237
-
238
- const explanation = this.capabilityRegistry.getRouteExplanation(
239
- model.provider,
240
- model.id,
241
- profile,
242
- );
243
- allCandidates.push(explanation);
244
-
245
- if (explanation.accepted && !selected) {
246
- selected = model;
247
- selectedExplanation = explanation;
248
- }
249
- }
250
-
251
- if (!selected || !selectedExplanation) {
252
- // No capable provider found — return first candidate's explanation as the decision
253
- // so callers get a fully-populated rejection explanation
254
- const fallbackExpl = allCandidates[0] ?? this._emptyExplanation();
255
- return {
256
- providerId: fallbackExpl.providerId,
257
- modelId: fallbackExpl.modelId,
258
- explanation: fallbackExpl,
259
- allCandidates,
260
- decidedAt: this._clock(),
261
- pinned: false,
262
- };
263
- }
264
-
265
- return {
266
- providerId: selected.provider,
267
- modelId: selected.id,
268
- explanation: selectedExplanation,
269
- allCandidates,
270
- decidedAt: this._clock(),
271
- pinned: false,
272
- };
273
- }
274
-
275
- /**
276
- * Explain the current routing decision for the active model without changing it.
277
- * Always returns a full explanation even when the optimizer is in manual mode.
278
- *
279
- * @param profile - Optional request profile; defaults to empty (no requirements).
280
- */
281
- explainCurrentRoute(profile: RequestProfile = {}): RouteExplanation {
282
- const current = this.registry.getCurrentModel();
283
- return this.registry.explainRoute(current.registryKey ?? `${current.provider}:${current.id}`, profile);
284
- }
285
-
286
- // -------------------------------------------------------------------------
287
- // Private helpers
288
- // -------------------------------------------------------------------------
289
-
290
- /** Returns a fully-typed rejection explanation when no candidates are available. */
291
- private _emptyExplanation() {
292
- return {
293
- accepted: false as const,
294
- providerId: 'none',
295
- modelId: 'none',
296
- summary: 'No selectable models available in registry.',
297
- rejections: [] as import('./capabilities.ts').RouteRejectionDetail[],
298
- capability: this.capabilityRegistry.getCapability('unknown', 'unknown'),
299
- };
300
- }
301
-
302
- // -------------------------------------------------------------------------
303
- // Fallback test
304
- // -------------------------------------------------------------------------
305
-
306
- /**
307
- * Simulate the fallback chain by evaluating all selectable models against
308
- * the given profile. Returns an ordered list of results (capable first,
309
- * then incapable) so operators can visualize the full fallback topology.
310
- *
311
- * @param profile - Capability requirements to test against.
312
- */
313
- testFallback(profile: RequestProfile = {}): FallbackTestResult {
314
- const candidates = this.registry.getSelectableModels();
315
-
316
- const chain: Array<{
317
- position: number;
318
- providerId: string;
319
- modelId: string;
320
- capable: boolean;
321
- explanation: RouteExplanation;
322
- }> = [];
323
-
324
- let position = 0;
325
- for (const model of candidates) {
326
- const explanation = this.capabilityRegistry.getRouteExplanation(model.provider, model.id, profile);
327
- chain.push({
328
- position,
329
- providerId: model.provider,
330
- modelId: model.id,
331
- capable: explanation.accepted,
332
- explanation,
333
- });
334
- position++;
335
- }
336
-
337
- const viableCount = chain.filter((n) => n.capable).length;
338
-
339
- return {
340
- chain,
341
- viableCount,
342
- totalCount: chain.length,
343
- testedAt: this._clock(),
344
- };
345
- }
346
-
347
- // -------------------------------------------------------------------------
348
- // Fallback transition log
349
- // -------------------------------------------------------------------------
350
-
351
- /**
352
- * Record a fallback transition. Called by orchestration layers when a
353
- * provider fails and routing switches to a fallback.
354
- *
355
- * Transitions are always recorded regardless of optimizer enabled state
356
- * so that manual fallbacks are also visible in the log.
357
- */
358
- recordFallbackTransition(from: string, to: string, reason: string): void {
359
- const entry: FallbackTransition = {
360
- ts: this._clock(),
361
- from,
362
- to,
363
- reason,
364
- };
365
- this._fallbackLog.push(entry);
366
- // Trim to bounded size
367
- if (this._fallbackLog.length > ProviderOptimizer.MAX_LOG_ENTRIES) {
368
- this._fallbackLog.splice(0, this._fallbackLog.length - ProviderOptimizer.MAX_LOG_ENTRIES);
369
- }
370
- }
371
-
372
- /** All recorded fallback transitions (oldest first). */
373
- get fallbackLog(): readonly FallbackTransition[] {
374
- return this._fallbackLog;
375
- }
376
-
377
- /** Clear the fallback transition log. */
378
- clearFallbackLog(): void {
379
- this._fallbackLog.splice(0);
380
- }
381
- }
1
+ export * from '@pellux/goodvibes-sdk/platform/providers/optimizer';