@pellux/goodvibes-tui 0.19.59 → 0.19.61

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 (232) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +1 -1
  3. package/docs/foundation-artifacts/operator-contract.json +2398 -2086
  4. package/package.json +2 -2
  5. package/src/audio/player.ts +1 -1
  6. package/src/audio/spoken-turn-controller.ts +5 -5
  7. package/src/audio/spoken-turn-model-routing.ts +3 -3
  8. package/src/audio/spoken-turn-wiring.ts +3 -3
  9. package/src/cli/bundle-command.ts +3 -3
  10. package/src/cli/entrypoint.ts +9 -8
  11. package/src/cli/management-commands.ts +6 -6
  12. package/src/cli/management.ts +17 -16
  13. package/src/cli/provider-auth-routes.ts +1 -1
  14. package/src/cli/service-posture.ts +2 -2
  15. package/src/cli/status.ts +4 -3
  16. package/src/cli/surface-command.ts +1 -1
  17. package/src/config/index.ts +12 -11
  18. package/src/config/provider-model.ts +23 -0
  19. package/src/config/secret-config.ts +1 -1
  20. package/src/config/secrets.ts +3 -3
  21. package/src/core/composer-state.ts +1 -1
  22. package/src/core/conversation-rendering.ts +3 -3
  23. package/src/core/conversation.ts +10 -10
  24. package/src/core/orchestrator.ts +1 -1
  25. package/src/core/system-message-router.ts +3 -3
  26. package/src/daemon/cli.ts +19 -19
  27. package/src/daemon/safe-serve.ts +2 -2
  28. package/src/input/bookmark-modal.ts +1 -1
  29. package/src/input/command-registry.ts +31 -31
  30. package/src/input/commands/control-room-runtime.ts +3 -3
  31. package/src/input/commands/conversation-runtime.ts +1 -1
  32. package/src/input/commands/diff-runtime.ts +1 -1
  33. package/src/input/commands/discovery-runtime.ts +2 -2
  34. package/src/input/commands/eval.ts +6 -6
  35. package/src/input/commands/git-runtime.ts +2 -2
  36. package/src/input/commands/guidance-runtime.ts +3 -3
  37. package/src/input/commands/health-runtime.ts +10 -10
  38. package/src/input/commands/incident-runtime.ts +1 -1
  39. package/src/input/commands/integration-runtime.ts +2 -2
  40. package/src/input/commands/intelligence-runtime.ts +3 -3
  41. package/src/input/commands/knowledge.ts +1 -1
  42. package/src/input/commands/local-auth-runtime.ts +1 -1
  43. package/src/input/commands/local-provider-runtime.ts +3 -4
  44. package/src/input/commands/local-runtime.ts +6 -6
  45. package/src/input/commands/local-setup-review.ts +3 -3
  46. package/src/input/commands/local-setup.ts +3 -3
  47. package/src/input/commands/managed-runtime.ts +9 -8
  48. package/src/input/commands/marketplace-runtime.ts +1 -1
  49. package/src/input/commands/mcp-runtime.ts +1 -1
  50. package/src/input/commands/operator-panel-runtime.ts +1 -1
  51. package/src/input/commands/operator-runtime.ts +5 -5
  52. package/src/input/commands/platform-access-runtime.ts +2 -2
  53. package/src/input/commands/platform-sandbox-qemu.ts +2 -2
  54. package/src/input/commands/platform-sandbox-runtime.ts +6 -6
  55. package/src/input/commands/platform-sandbox-session.ts +2 -2
  56. package/src/input/commands/policy-dispatch.ts +6 -6
  57. package/src/input/commands/product-runtime.ts +2 -2
  58. package/src/input/commands/profile-sync-runtime.ts +2 -2
  59. package/src/input/commands/provider-accounts-runtime.ts +1 -1
  60. package/src/input/commands/provider.ts +3 -3
  61. package/src/input/commands/quit-shared.ts +2 -2
  62. package/src/input/commands/recall-bundle.ts +2 -2
  63. package/src/input/commands/recall-capture.ts +2 -2
  64. package/src/input/commands/recall-query.ts +2 -2
  65. package/src/input/commands/recall-shared.ts +2 -2
  66. package/src/input/commands/remote-runtime-setup.ts +2 -2
  67. package/src/input/commands/remote-runtime.ts +1 -1
  68. package/src/input/commands/replay-runtime.ts +1 -1
  69. package/src/input/commands/runtime-services.ts +11 -11
  70. package/src/input/commands/schedule-runtime.ts +6 -6
  71. package/src/input/commands/services-runtime.ts +1 -1
  72. package/src/input/commands/session-content.ts +5 -5
  73. package/src/input/commands/session-workflow.ts +5 -5
  74. package/src/input/commands/session.ts +2 -2
  75. package/src/input/commands/settings-sync-runtime.ts +5 -4
  76. package/src/input/commands/share-runtime.ts +3 -3
  77. package/src/input/commands/shell-core.ts +4 -5
  78. package/src/input/commands/skills-runtime.ts +1 -1
  79. package/src/input/commands/subscription-runtime.ts +7 -7
  80. package/src/input/commands/tasks-runtime.ts +5 -5
  81. package/src/input/commands/teamwork-runtime.ts +3 -3
  82. package/src/input/commands/teleport-runtime.ts +1 -1
  83. package/src/input/commands/worktree-runtime.ts +3 -3
  84. package/src/input/feed-context-factory.ts +1 -1
  85. package/src/input/file-picker.ts +1 -1
  86. package/src/input/handler-command-route.ts +2 -2
  87. package/src/input/handler-content-actions.ts +7 -7
  88. package/src/input/handler-feed-routes.ts +3 -3
  89. package/src/input/handler-feed.ts +2 -2
  90. package/src/input/handler-interactions.ts +1 -1
  91. package/src/input/handler-modal-routes.ts +1 -2
  92. package/src/input/handler-modal-token-routes.ts +1 -1
  93. package/src/input/handler-onboarding.ts +9 -6
  94. package/src/input/handler-picker-routes.ts +3 -3
  95. package/src/input/handler-shortcuts.ts +1 -1
  96. package/src/input/handler-ui-state.ts +1 -1
  97. package/src/input/handler.ts +5 -5
  98. package/src/input/input-history.ts +2 -2
  99. package/src/input/keybindings.ts +3 -3
  100. package/src/input/model-picker-types.ts +1 -1
  101. package/src/input/model-picker.ts +6 -6
  102. package/src/input/onboarding/handler-onboarding-routes.ts +1 -1
  103. package/src/input/onboarding/onboarding-runtime-status.ts +1 -1
  104. package/src/input/onboarding/onboarding-wizard-apply.ts +2 -2
  105. package/src/input/onboarding/onboarding-wizard-external-surfaces.ts +1 -1
  106. package/src/input/panel-integration-actions.ts +1 -1
  107. package/src/input/profile-picker-modal.ts +5 -5
  108. package/src/input/session-picker-modal.ts +2 -2
  109. package/src/input/settings-modal-behavior.ts +3 -5
  110. package/src/input/settings-modal-secrets.ts +4 -4
  111. package/src/input/settings-modal-subscriptions.ts +3 -3
  112. package/src/input/settings-modal-types.ts +4 -4
  113. package/src/input/settings-modal.ts +9 -9
  114. package/src/input/tts-settings-actions.ts +1 -1
  115. package/src/main.ts +16 -17
  116. package/src/panels/agent-inspector-panel.ts +4 -4
  117. package/src/panels/agent-logs-panel.ts +2 -2
  118. package/src/panels/approval-panel.ts +2 -2
  119. package/src/panels/builtin/operations.ts +1 -1
  120. package/src/panels/builtin/session.ts +2 -2
  121. package/src/panels/builtin/shared.ts +26 -26
  122. package/src/panels/context-visualizer-panel.ts +3 -3
  123. package/src/panels/cost-tracker-panel.ts +1 -1
  124. package/src/panels/debug-panel.ts +1 -1
  125. package/src/panels/eval-panel.ts +1 -1
  126. package/src/panels/forensics-panel.ts +3 -3
  127. package/src/panels/git-panel.ts +3 -3
  128. package/src/panels/hooks-panel.ts +7 -7
  129. package/src/panels/incident-review-panel.ts +2 -2
  130. package/src/panels/knowledge-panel.ts +1 -1
  131. package/src/panels/local-auth-panel.ts +1 -1
  132. package/src/panels/marketplace-panel.ts +2 -2
  133. package/src/panels/mcp-panel.ts +2 -2
  134. package/src/panels/memory-panel.ts +2 -2
  135. package/src/panels/ops-control-panel.ts +1 -1
  136. package/src/panels/ops-strategy-panel.ts +2 -2
  137. package/src/panels/orchestration-panel.ts +1 -1
  138. package/src/panels/panel-list-panel.ts +1 -1
  139. package/src/panels/plan-dashboard-panel.ts +1 -1
  140. package/src/panels/plugins-panel.ts +1 -1
  141. package/src/panels/policy-panel.ts +1 -1
  142. package/src/panels/project-planning-panel.ts +1 -1
  143. package/src/panels/provider-account-snapshot.ts +1 -1
  144. package/src/panels/provider-health-domains.ts +4 -4
  145. package/src/panels/provider-health-panel.ts +4 -4
  146. package/src/panels/provider-stats-panel.ts +1 -1
  147. package/src/panels/qr-panel.ts +1 -1
  148. package/src/panels/sandbox-panel.ts +3 -3
  149. package/src/panels/schedule-panel.ts +4 -4
  150. package/src/panels/security-panel.ts +1 -1
  151. package/src/panels/services-panel.ts +1 -1
  152. package/src/panels/session-browser-panel.ts +3 -3
  153. package/src/panels/settings-sync-panel.ts +1 -1
  154. package/src/panels/skills-panel.ts +1 -1
  155. package/src/panels/subscription-panel.ts +2 -2
  156. package/src/panels/system-messages-panel.ts +1 -1
  157. package/src/panels/tasks-panel.ts +5 -5
  158. package/src/panels/thinking-panel.ts +1 -1
  159. package/src/panels/token-budget-panel.ts +2 -2
  160. package/src/panels/tool-inspector-panel.ts +1 -1
  161. package/src/panels/worktree-panel.ts +6 -6
  162. package/src/panels/wrfc-panel.ts +4 -4
  163. package/src/permissions/prompt.ts +3 -3
  164. package/src/planning/project-planning-coordinator.ts +1 -1
  165. package/src/plugins/loader.ts +2 -2
  166. package/src/renderer/agent-detail-modal.ts +5 -5
  167. package/src/renderer/bookmark-modal.ts +1 -1
  168. package/src/renderer/git-status.ts +3 -3
  169. package/src/renderer/help-overlay.ts +1 -1
  170. package/src/renderer/live-tail-modal.ts +2 -2
  171. package/src/renderer/model-picker-overlay.ts +2 -2
  172. package/src/renderer/model-workspace.ts +1 -1
  173. package/src/renderer/process-modal.ts +3 -3
  174. package/src/renderer/qr-renderer.ts +1 -1
  175. package/src/renderer/semantic-diff.ts +6 -6
  176. package/src/renderer/syntax-highlighter.ts +3 -3
  177. package/src/renderer/tool-call.ts +1 -1
  178. package/src/runtime/bootstrap-command-context.ts +46 -46
  179. package/src/runtime/bootstrap-command-parts.ts +46 -47
  180. package/src/runtime/bootstrap-core.ts +24 -23
  181. package/src/runtime/bootstrap-hook-bridge.ts +14 -14
  182. package/src/runtime/bootstrap-shell.ts +15 -15
  183. package/src/runtime/bootstrap.ts +27 -27
  184. package/src/runtime/cloudflare-control-plane.ts +1 -1
  185. package/src/runtime/context.ts +13 -13
  186. package/src/runtime/diagnostics/panels/index.ts +14 -14
  187. package/src/runtime/diagnostics/panels/ops.ts +7 -7
  188. package/src/runtime/diagnostics/panels/panel-resources.ts +1 -1
  189. package/src/runtime/diagnostics/panels/policy.ts +11 -11
  190. package/src/runtime/index.ts +625 -163
  191. package/src/runtime/onboarding/apply.ts +1 -1
  192. package/src/runtime/onboarding/derivation.ts +3 -2
  193. package/src/runtime/onboarding/markers.ts +1 -1
  194. package/src/runtime/onboarding/snapshot.ts +3 -2
  195. package/src/runtime/onboarding/types.ts +2 -2
  196. package/src/runtime/onboarding/verify.ts +1 -1
  197. package/src/runtime/perf/panel-contracts.ts +2 -2
  198. package/src/runtime/perf/panel-health-monitor.ts +2 -2
  199. package/src/runtime/sandbox-public-gaps.ts +486 -0
  200. package/src/runtime/services.ts +114 -67
  201. package/src/runtime/store/domains/index.ts +50 -50
  202. package/src/runtime/store/index.ts +21 -20
  203. package/src/runtime/store/selectors/index.ts +17 -17
  204. package/src/runtime/store/state.ts +50 -50
  205. package/src/runtime/surface-feature-flags.ts +1 -3
  206. package/src/runtime/terminal-output-guard.ts +1 -1
  207. package/src/runtime/ui/index.ts +7 -7
  208. package/src/runtime/ui/model-picker/data-provider.ts +7 -7
  209. package/src/runtime/ui/model-picker/health-enrichment.ts +7 -7
  210. package/src/runtime/ui/model-picker/index.ts +11 -11
  211. package/src/runtime/ui/model-picker/types.ts +1 -1
  212. package/src/runtime/ui/provider-health/data-provider.ts +4 -4
  213. package/src/runtime/ui/provider-health/fallback-visualizer.ts +5 -3
  214. package/src/runtime/ui/provider-health/index.ts +7 -7
  215. package/src/runtime/ui/provider-health/types.ts +1 -1
  216. package/src/runtime/ui-events.ts +1 -1
  217. package/src/runtime/ui-read-model-helpers.ts +1 -1
  218. package/src/runtime/ui-read-models-observability-maintenance.ts +1 -1
  219. package/src/runtime/ui-read-models-observability-options.ts +1 -1
  220. package/src/runtime/ui-read-models-observability-remote.ts +1 -1
  221. package/src/runtime/ui-read-models-observability-security.ts +1 -1
  222. package/src/runtime/ui-read-models-observability-system.ts +1 -1
  223. package/src/runtime/ui-read-models-observability.ts +1 -1
  224. package/src/runtime/ui-read-models.ts +8 -8
  225. package/src/runtime/ui-service-queries.ts +1 -1
  226. package/src/runtime/ui-services.ts +8 -8
  227. package/src/scripts/process-messages.ts +1 -1
  228. package/src/shell/blocking-input.ts +2 -2
  229. package/src/shell/ui-openers.ts +8 -7
  230. package/src/tools/index.ts +1 -1
  231. package/src/utils/clipboard.ts +3 -3
  232. package/src/version.ts +1 -1
@@ -1,8 +1,8 @@
1
1
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, resolve } from 'node:path';
3
3
  import type { CommandRegistry } from '../command-registry.ts';
4
- import type { ProfileBundleEntry, ProfileSyncBundle } from '@pellux/goodvibes-sdk/platform/runtime/sandbox/types';
5
- import { recordSettingsSyncEvent, recordSettingsSyncFailure } from '@pellux/goodvibes-sdk/platform/runtime/settings/control-plane';
4
+ import type { ProfileBundleEntry, ProfileSyncBundle } from '@/runtime/index.ts';
5
+ import { recordSettingsSyncEvent, recordSettingsSyncFailure } from '@/runtime/index.ts';
6
6
  import { requireProfileManager, requireShellPaths } from './runtime-services.ts';
7
7
 
8
8
  function inspectProfileSyncBundle(bundle: ProfileSyncBundle): string {
@@ -2,7 +2,7 @@ import type { CommandContext, CommandRegistry } from '../command-registry.ts';
2
2
  import type {
3
3
  ProviderAccountRecord,
4
4
  ProviderAccountSnapshot,
5
- } from '@pellux/goodvibes-sdk/platform/runtime/provider-accounts/registry';
5
+ } from '@/runtime/index.ts';
6
6
  import {
7
7
  openCommandPanel,
8
8
  requireOperatorClient,
@@ -13,9 +13,9 @@
13
13
  */
14
14
 
15
15
  import type { SlashCommand, CommandContext } from '../command-registry.ts';
16
- import type { RouteExplanation } from '@pellux/goodvibes-sdk/platform/providers/capabilities';
17
- import type { FallbackTestResult, FallbackTransition } from '@pellux/goodvibes-sdk/platform/providers/optimizer';
18
- import type { ProviderApiModelRecord } from '@pellux/goodvibes-sdk/platform/providers/provider-api';
16
+ import type { RouteExplanation } from '@pellux/goodvibes-sdk/platform/providers';
17
+ import type { FallbackTestResult, FallbackTransition } from '@pellux/goodvibes-sdk/platform/providers';
18
+ import type { ProviderApiModelRecord } from '@pellux/goodvibes-sdk/platform/providers';
19
19
  import { requireProviderApi } from './runtime-services.ts';
20
20
 
21
21
  // ---------------------------------------------------------------------------
@@ -1,8 +1,8 @@
1
1
  import type { StatusResult } from 'simple-git';
2
2
  import { basename } from 'path';
3
3
  import type { CommandContext } from '../command-registry.ts';
4
- import { GitService } from '@pellux/goodvibes-sdk/platform/git/service';
5
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
4
+ import { GitService } from '@pellux/goodvibes-sdk/platform/git';
5
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
6
6
 
7
7
  type GitLike = Pick<GitService, 'addAll' | 'status' | 'commit'>;
8
8
 
@@ -1,11 +1,11 @@
1
1
  import { dirname } from 'node:path';
2
2
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
3
  import type { CommandContext } from '../command-registry.ts';
4
- import type { MemoryBundle, MemorySearchFilter } from '@pellux/goodvibes-sdk/platform/state/memory-store';
4
+ import type { MemoryBundle, MemorySearchFilter } from '@pellux/goodvibes-sdk/platform/state';
5
5
  import { VALID_CLASSES, VALID_SCOPES, isValidClass, isValidScope, resolveBundlePath } from './recall-shared.ts';
6
6
  import { requireShellPaths } from './runtime-services.ts';
7
7
  import { getMemoryApi } from './recall-query.ts';
8
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
8
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
9
9
 
10
10
  export function handleRecallExport(args: string[], context: CommandContext): void {
11
11
  const memory = getMemoryApi(context);
@@ -1,11 +1,11 @@
1
1
  import type { CommandContext } from '../command-registry.ts';
2
- import type { ProvenanceLink } from '@pellux/goodvibes-sdk/platform/state/memory-store';
2
+ import type { ProvenanceLink } from '@pellux/goodvibes-sdk/platform/state';
3
3
  import {
4
4
  buildIncidentMemoryAddOptions,
5
5
  buildMcpSecurityMemoryAddOptions,
6
6
  buildPluginSecurityMemoryAddOptions,
7
7
  buildPolicyPreflightMemoryAddOptions,
8
- } from '@pellux/goodvibes-sdk/platform/state/memory-ingest';
8
+ } from '@pellux/goodvibes-sdk/platform/state';
9
9
  import { VALID_CLASSES, VALID_SCOPES, isValidClass, isValidScope } from './recall-shared.ts';
10
10
  import { getMemoryApi } from './recall-query.ts';
11
11
 
@@ -1,6 +1,6 @@
1
1
  import type { CommandContext } from '../command-registry.ts';
2
- import type { MemoryApi } from '@pellux/goodvibes-sdk/platform/knowledge/knowledge-api';
3
- import type { MemorySearchFilter } from '@pellux/goodvibes-sdk/platform/state/memory-store';
2
+ import type { MemoryApi } from '@pellux/goodvibes-sdk/platform/knowledge';
3
+ import type { MemorySearchFilter } from '@pellux/goodvibes-sdk/platform/state';
4
4
  import { VALID_CLASSES, VALID_SCOPES, isValidClass, isValidScope } from './recall-shared.ts';
5
5
 
6
6
  export function getMemoryApi(context: CommandContext): MemoryApi | null {
@@ -1,5 +1,5 @@
1
- import type { ShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
2
- import type { MemoryClass, MemoryReviewState, MemoryScope } from '@pellux/goodvibes-sdk/platform/state/memory-store';
1
+ import type { ShellPathService } from '@/runtime/index.ts';
2
+ import type { MemoryClass, MemoryReviewState, MemoryScope } from '@pellux/goodvibes-sdk/platform/state';
3
3
 
4
4
  export const VALID_CLASSES: MemoryClass[] = ['decision', 'constraint', 'incident', 'pattern', 'fact', 'risk', 'runbook', 'architecture', 'ownership'];
5
5
  export const VALID_SCOPES: MemoryScope[] = ['session', 'project', 'team'];
@@ -1,8 +1,8 @@
1
1
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, resolve } from 'node:path';
3
- import { getDefaultAcpAgentCommand } from '@pellux/goodvibes-sdk/platform/acp/manager';
3
+ import { getDefaultAcpAgentCommand } from '@pellux/goodvibes-sdk/platform/acp';
4
4
  import type { CommandContext, RemoteCommandService } from '../command-registry.ts';
5
- import type { RemoteSessionBundle } from '@pellux/goodvibes-sdk/platform/runtime/remote/types';
5
+ import type { RemoteSessionBundle } from '@/runtime/index.ts';
6
6
  import { requireShellPaths } from './runtime-services.ts';
7
7
 
8
8
  type RemoteRegistryLike = Pick<RemoteCommandService, 'listContracts' | 'exportSessionBundle' | 'importSessionBundle'>;
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import type { CommandRegistry, CommandContext } from '../command-registry.ts';
3
- import { AGENT_TEMPLATES } from '@pellux/goodvibes-sdk/platform/tools/agent/manager';
3
+ import { AGENT_TEMPLATES } from '@pellux/goodvibes-sdk/platform/tools';
4
4
  import { handleRemoteSetupCommand } from './remote-runtime-setup.ts';
5
5
  import { handleRemotePoolCommand } from './remote-runtime-pool.ts';
6
6
  import { requireAgentManager, requireAcpManager, requirePeerClient, requireShellPaths } from './runtime-services.ts';
@@ -1,5 +1,5 @@
1
1
  import type { CommandRegistry } from '../command-registry.ts';
2
- import { handleReplayCommand } from '@pellux/goodvibes-sdk/platform/core/replay-command-handler';
2
+ import { handleReplayCommand } from '@pellux/goodvibes-sdk/platform/core';
3
3
  import { requireReplayEngine } from './runtime-services.ts';
4
4
 
5
5
  export function registerReplayRuntimeCommands(registry: CommandRegistry): void {
@@ -8,17 +8,17 @@ import type {
8
8
  CommandWorkspaceServices,
9
9
  } from '../command-registry.ts';
10
10
  import type { UiReadModels } from '../../runtime/ui-read-models.ts';
11
- import type { ShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
12
- import type { EcosystemCatalogPathOptions } from '@pellux/goodvibes-sdk/platform/runtime/ecosystem/catalog';
11
+ import type { ShellPathService } from '@/runtime/index.ts';
12
+ import type { EcosystemCatalogPathOptions } from '@/runtime/index.ts';
13
13
  import type { PluginPathOptions } from '../../plugins/loader';
14
- import type { DirectTransport } from '@pellux/goodvibes-sdk/platform/runtime/transports/direct';
15
- import type { KnowledgeApi } from '@pellux/goodvibes-sdk/platform/knowledge/knowledge-api';
16
- import type { HookApi } from '@pellux/goodvibes-sdk/platform/hooks/hook-api';
17
- import type { McpApi } from '@pellux/goodvibes-sdk/platform/mcp/mcp-api';
18
- import type { OperatorClient } from '@pellux/goodvibes-sdk/platform/runtime/operator-client';
19
- import type { OpsApi } from '@pellux/goodvibes-sdk/platform/runtime/ops-api';
20
- import type { PeerClient } from '@pellux/goodvibes-sdk/platform/runtime/peer-client';
21
- import type { ProviderApi } from '@pellux/goodvibes-sdk/platform/providers/provider-api';
14
+ import type { DirectTransport } from '@/runtime/index.ts';
15
+ import type { KnowledgeApi } from '@pellux/goodvibes-sdk/platform/knowledge';
16
+ import type { HookApi } from '@pellux/goodvibes-sdk/platform/hooks';
17
+ import type { McpApi } from '@pellux/goodvibes-sdk/platform/mcp';
18
+ import type { OperatorClient } from '@/runtime/index.ts';
19
+ import type { OpsApi } from '@/runtime/index.ts';
20
+ import type { PeerClient } from '@/runtime/index.ts';
21
+ import type { ProviderApi } from '@pellux/goodvibes-sdk/platform/providers';
22
22
  import type {
23
23
  ShellAgentManagerService,
24
24
  ShellAcpManagerService,
@@ -27,7 +27,7 @@ import type {
27
27
  ShellModeManagerService,
28
28
  ShellPlanManagerService,
29
29
  ShellSessionOrchestrationService,
30
- } from '@pellux/goodvibes-sdk/platform/runtime/shell-command-ops';
30
+ } from '@/runtime/index.ts';
31
31
 
32
32
  function requireContextValue<T>(value: T | null | undefined, name: string): T {
33
33
  if (value == null) {
@@ -5,17 +5,17 @@ import {
5
5
  normalizeAtSchedule,
6
6
  normalizeCronSchedule,
7
7
  normalizeEverySchedule,
8
- } from '@pellux/goodvibes-sdk/platform/automation/index';
9
- import type { AutomationManager } from '@pellux/goodvibes-sdk/platform/automation/index';
10
- import type { AutomationJob } from '@pellux/goodvibes-sdk/platform/automation/jobs';
11
- import type { AutomationScheduleDefinition } from '@pellux/goodvibes-sdk/platform/automation/schedules';
12
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
8
+ } from '@pellux/goodvibes-sdk/platform/automation';
9
+ import type { AutomationManager } from '@pellux/goodvibes-sdk/platform/automation';
10
+ import type { AutomationJob } from '@pellux/goodvibes-sdk/platform/automation';
11
+ import type { AutomationScheduleDefinition } from '@pellux/goodvibes-sdk/platform/automation';
12
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
13
13
  import type {
14
14
  AutomationExecutionPolicy,
15
15
  AutomationExternalContentSource,
16
16
  AutomationSessionTarget,
17
17
  AutomationWakeMode,
18
- } from '@pellux/goodvibes-sdk/platform/automation/session-targets';
18
+ } from '@pellux/goodvibes-sdk/platform/automation';
19
19
 
20
20
  function formatSchedule(schedule: AutomationScheduleDefinition): string {
21
21
  switch (schedule.kind) {
@@ -3,7 +3,7 @@ import { dirname, join, resolve } from 'node:path';
3
3
  import type { CommandRegistry } from '../command-registry.ts';
4
4
  import type { SelectionAction, SelectionItem } from '../selection-modal.ts';
5
5
  import { openCommandPanel, requireServiceRegistry, requireShellPaths } from './runtime-services.ts';
6
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
6
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
7
7
 
8
8
  export function registerServicesRuntimeCommands(registry: CommandRegistry): void {
9
9
  registry.register({
@@ -3,10 +3,10 @@ import { existsSync, mkdirSync, unlinkSync } from 'node:fs';
3
3
  import { writeFile } from 'node:fs/promises';
4
4
  import type { CommandRegistry } from '../command-registry.ts';
5
5
  import type { SelectionItem } from '../selection-modal.ts';
6
- import { exportToMarkdown } from '@pellux/goodvibes-sdk/platform/export/markdown';
7
- import { TemplateManager, parseTemplateArgs } from '@pellux/goodvibes-sdk/platform/templates/manager';
6
+ import { exportToMarkdown } from '@pellux/goodvibes-sdk/platform/export';
7
+ import { TemplateManager, parseTemplateArgs } from '@pellux/goodvibes-sdk/platform/templates';
8
8
  import { requireSessionManager, requireSessionMemoryStore, requireShellPaths } from './runtime-services.ts';
9
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
9
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
10
10
 
11
11
  export function registerSessionContentCommands(registry: CommandRegistry): void {
12
12
  registry.register({
@@ -43,9 +43,9 @@ export function registerSessionContentCommands(registry: CommandRegistry): void
43
43
  const exportMsgs = msgs.map(m => ({
44
44
  role: String(m.role ?? 'user') as 'user' | 'assistant' | 'system' | 'tool',
45
45
  content: Array.isArray(m.content)
46
- ? m.content as import('@pellux/goodvibes-sdk/platform/providers/interface').ContentPart[]
46
+ ? m.content as import('@pellux/goodvibes-sdk/platform/providers').ContentPart[]
47
47
  : String(m.content ?? ''),
48
- toolCalls: m.toolCalls as import('@pellux/goodvibes-sdk/platform/types/tools').ToolCall[] | undefined,
48
+ toolCalls: m.toolCalls as import('@pellux/goodvibes-sdk/platform/types').ToolCall[] | undefined,
49
49
  callId: m.callId as string | undefined,
50
50
  toolName: m.toolName as string | undefined,
51
51
  reasoningContent: m.reasoningContent as string | undefined,
@@ -1,13 +1,13 @@
1
1
  import { randomBytes } from 'node:crypto';
2
2
 
3
3
  import type { CommandContext, CommandRegistry } from '../command-registry.ts';
4
- import { type SessionMeta } from '@pellux/goodvibes-sdk/platform/sessions/manager';
5
- import type { TranscriptEventKind } from '@pellux/goodvibes-sdk/platform/core/transcript-events/index';
4
+ import { type SessionMeta } from '@pellux/goodvibes-sdk/platform/sessions';
5
+ import type { TranscriptEventKind } from '@pellux/goodvibes-sdk/platform/core';
6
6
  import type { ConversationTitleSource } from '../../core/conversation';
7
- import type { SessionReturnContextSummary } from '@pellux/goodvibes-sdk/platform/runtime/session-return-context';
8
- import { formatReturnContextForDisplay, getReturnContextMode, maybeAssistReturnContextSummary } from '@pellux/goodvibes-sdk/platform/runtime/session-return-context';
7
+ import type { SessionReturnContextSummary } from '@/runtime/index.ts';
8
+ import { formatReturnContextForDisplay, getReturnContextMode, maybeAssistReturnContextSummary } from '@/runtime/index.ts';
9
9
  import { requirePanelManager, requireProviderApi, requireSessionManager } from './runtime-services.ts';
10
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
10
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
11
11
 
12
12
  function parseTranscriptKind(raw: string | undefined): TranscriptEventKind | 'all' {
13
13
  const normalized = (raw ?? 'all').toLowerCase().replace(/-/g, '_');
@@ -18,8 +18,8 @@
18
18
  */
19
19
 
20
20
  import type { SlashCommand, CommandContext } from '../command-registry.ts';
21
- import type { CancellationScope, CrossSessionTaskRef } from '@pellux/goodvibes-sdk/platform/sessions/orchestration/index';
22
- import { VALID_SCOPES } from '@pellux/goodvibes-sdk/platform/sessions/orchestration/index';
21
+ import type { CancellationScope, CrossSessionTaskRef } from '@pellux/goodvibes-sdk/platform/sessions';
22
+ import { VALID_SCOPES } from '@pellux/goodvibes-sdk/platform/sessions';
23
23
  import { handleSessionWorkflowCommand } from './session-workflow.ts';
24
24
  import { requireSessionOrchestration } from './runtime-services.ts';
25
25
 
@@ -14,12 +14,13 @@ import {
14
14
  recordSettingsSyncFailure,
15
15
  setManagedSettingLock,
16
16
  type SettingsSyncBundle,
17
- } from '@pellux/goodvibes-sdk/platform/runtime/settings/control-plane';
17
+ } from '@/runtime/index.ts';
18
+ import { getProviderIdFromModel } from '../../config/provider-model.ts';
18
19
  import { type ConfigKey } from '../../config/index.ts';
19
- import { CONFIG_KEYS } from '@pellux/goodvibes-sdk/platform/config/schema';
20
+ import { CONFIG_KEYS } from '@pellux/goodvibes-sdk/platform/config';
20
21
  import type { CommandRegistry } from '../command-registry.ts';
21
22
  import { openCommandPanel, requireShellPaths } from './runtime-services.ts';
22
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
23
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
23
24
 
24
25
  export function registerSettingsSyncRuntimeCommands(registry: CommandRegistry): void {
25
26
  registry.register({
@@ -71,7 +72,7 @@ export function registerSettingsSyncRuntimeCommands(registry: CommandRegistry):
71
72
  return;
72
73
  }
73
74
  ctx.session.runtime.model = String(ctx.platform.configManager.get('provider.model'));
74
- ctx.session.runtime.provider = String(ctx.platform.configManager.get('provider.provider'));
75
+ ctx.session.runtime.provider = getProviderIdFromModel(ctx.platform.configManager.get('provider.model'));
75
76
  ctx.session.runtime.reasoningEffort = ctx.platform.configManager.get('provider.reasoningEffort') as string;
76
77
  ctx.print(`Resolved synced conflict for ${key} using the ${resolution} value.`);
77
78
  return;
@@ -7,10 +7,10 @@ import {
7
7
  exportToHTML,
8
8
  exportToJSON,
9
9
  exportToMarkdownExtended,
10
- } from '@pellux/goodvibes-sdk/platform/export/session-export';
11
- import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
10
+ } from '@pellux/goodvibes-sdk/platform/export';
11
+ import { logger } from '@pellux/goodvibes-sdk/platform/utils';
12
12
  import { requireShellPaths } from './runtime-services.ts';
13
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
13
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
14
14
 
15
15
  export function registerShareRuntimeCommands(registry: CommandRegistry): void {
16
16
  registry.register({
@@ -1,11 +1,11 @@
1
1
  import type { CommandRegistry } from '../command-registry.ts';
2
2
  import type { SelectionItem } from '../selection-modal.ts';
3
- import { EFFORT_DESCRIPTIONS } from '@pellux/goodvibes-sdk/platform/providers/effort-levels';
4
- import { REASONING_BUDGET_MAP } from '@pellux/goodvibes-sdk/platform/providers/interface';
3
+ import { EFFORT_DESCRIPTIONS } from '@pellux/goodvibes-sdk/platform/providers';
4
+ import { REASONING_BUDGET_MAP } from '@pellux/goodvibes-sdk/platform/providers';
5
5
  import { executeWriteQuit } from './quit-shared.ts';
6
6
  import { compactConversation, requireKeybindingsManager, requireProviderApi } from './runtime-services.ts';
7
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
8
- import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
7
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
8
+ import { logger } from '@pellux/goodvibes-sdk/platform/utils';
9
9
 
10
10
  export function registerShellCoreCommands(registry: CommandRegistry): void {
11
11
  registry.register({
@@ -33,7 +33,6 @@ export function registerShellCoreCommands(registry: CommandRegistry): void {
33
33
  ctx.session.runtime.model = selected.registryKey;
34
34
  ctx.session.runtime.provider = selected.providerId;
35
35
  ctx.platform.configManager.set('provider.model', selected.registryKey);
36
- ctx.platform.configManager.set('provider.provider', selected.providerId);
37
36
  ctx.print(`Switched to model: ${selected.displayName} (${selected.providerId})`);
38
37
  void providerApi.recordModelUsage(selected.registryKey).catch((err) => { logger.debug('model usage record failed', { err }); });
39
38
  } catch (e) {
@@ -10,7 +10,7 @@ import {
10
10
  uninstallEcosystemCatalogEntry,
11
11
  updateInstalledEcosystemEntry,
12
12
  upsertEcosystemCatalogEntry,
13
- } from '@pellux/goodvibes-sdk/platform/runtime/ecosystem/catalog';
13
+ } from '@/runtime/index.ts';
14
14
  import { requireEcosystemCatalogPaths, requirePanelManager, requireShellPaths } from './runtime-services.ts';
15
15
 
16
16
  export function registerSkillsRuntimeCommands(registry: CommandRegistry): void {
@@ -1,14 +1,14 @@
1
1
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, resolve } from 'node:path';
3
3
  import type { CommandContext, CommandRegistry } from '../command-registry.ts';
4
- import { createOAuthLocalListener } from '@pellux/goodvibes-sdk/platform/config/oauth-local-listener';
5
- import { beginOpenAICodexLogin, exchangeOpenAICodexCode } from '@pellux/goodvibes-sdk/platform/config/openai-codex-auth';
6
- import type { OAuthProviderConfig, ProviderSubscription } from '@pellux/goodvibes-sdk/platform/config/subscriptions';
7
- import { getSubscriptionProviderConfig, listAvailableSubscriptionProviders } from '@pellux/goodvibes-sdk/platform/config/subscription-providers';
8
- import { inspectProviderAuth } from '@pellux/goodvibes-sdk/platform/runtime/auth/inspection';
9
- import { openExternalUrl } from '@pellux/goodvibes-sdk/platform/utils/open-external';
4
+ import { createOAuthLocalListener } from '@pellux/goodvibes-sdk/platform/config';
5
+ import { beginOpenAICodexLogin, exchangeOpenAICodexCode } from '@pellux/goodvibes-sdk/platform/config';
6
+ import type { OAuthProviderConfig, ProviderSubscription } from '@pellux/goodvibes-sdk/platform/config';
7
+ import { getSubscriptionProviderConfig, listAvailableSubscriptionProviders } from '@pellux/goodvibes-sdk/platform/config';
8
+ import { inspectProviderAuth } from '@/runtime/index.ts';
9
+ import { openExternalUrl } from '@pellux/goodvibes-sdk/platform/utils';
10
10
  import { requireSecretsManager, requireServiceRegistry, requireShellPaths, requireSubscriptionManager } from './runtime-services.ts';
11
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
11
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
12
12
 
13
13
  interface SubscriptionBundle {
14
14
  readonly version: 1;
@@ -1,8 +1,8 @@
1
1
  import type { CommandRegistry } from '../command-registry.ts';
2
- import type { RuntimeTask, TaskLifecycleState } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/tasks';
3
- import { reviewWorktreeAttachments } from '@pellux/goodvibes-sdk/platform/runtime/worktree/registry';
2
+ import type { RuntimeTask, TaskLifecycleState } from '@/runtime/index.ts';
3
+ import { reviewWorktreeAttachments } from '@/runtime/index.ts';
4
4
  import { requireOperatorClient, requireOpsApi, requirePanelManager, requireShellPaths } from './runtime-services.ts';
5
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
5
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
6
6
 
7
7
  function sortRuntimeTasks(tasks: RuntimeTask[]): RuntimeTask[] {
8
8
  const statusOrder: TaskLifecycleState[] = ['running', 'queued', 'blocked', 'failed', 'completed', 'cancelled'];
@@ -95,7 +95,7 @@ export function registerTasksRuntimeCommands(registry: CommandRegistry): void {
95
95
  });
96
96
  return worktrees.total > 0
97
97
  ? [
98
- ` worktrees: ${worktrees.total} tracked (${worktrees.active} active / ${worktrees.paused} paused / ${worktrees.cleanupPending} cleanup)`,
98
+ ` worktrees: ${worktrees.total} tracked (${worktrees.active} active / ${worktrees.paused} paused / ${worktrees.pendingCleanup} cleanup)`,
99
99
  ` worktree next: /worktree task ${task.id}`,
100
100
  ]
101
101
  : [];
@@ -140,7 +140,7 @@ export function registerTasksRuntimeCommands(registry: CommandRegistry): void {
140
140
  return;
141
141
  }
142
142
  const task = opsApi.tasks.create({
143
- kind: kind as import('@pellux/goodvibes-sdk/platform/runtime/store/domains/tasks').TaskKind,
143
+ kind: kind as import('@/runtime/index.ts').TaskKind,
144
144
  owner,
145
145
  title,
146
146
  description: title,
@@ -1,9 +1,9 @@
1
1
  import type { CommandRegistry, CommandContext } from '../command-registry.ts';
2
2
  import { join } from 'node:path';
3
- import { AGENT_TEMPLATES } from '@pellux/goodvibes-sdk/platform/tools/agent/manager';
4
- import { ArchetypeLoader, type AgentArchetype } from '@pellux/goodvibes-sdk/platform/agents/archetypes';
3
+ import { AGENT_TEMPLATES } from '@pellux/goodvibes-sdk/platform/tools';
4
+ import { ArchetypeLoader, type AgentArchetype } from '@pellux/goodvibes-sdk/platform/agents';
5
5
  import { requireOpsApi, requireReadModels, requireShellPaths } from './runtime-services.ts';
6
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
6
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
7
7
 
8
8
  type TeamworkModeId =
9
9
  | 'local-engineer'
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import type { CommandRegistry } from '../command-registry.ts';
3
- import type { RemoteSessionBundle } from '@pellux/goodvibes-sdk/platform/runtime/remote/types';
3
+ import type { RemoteSessionBundle } from '@/runtime/index.ts';
4
4
  import { requirePeerClient, requireShellPaths } from './runtime-services.ts';
5
5
 
6
6
  function inspectRemoteSessionBundle(bundle: RemoteSessionBundle): string {
@@ -1,4 +1,4 @@
1
- import { getPersistedWorktreeMeta, reviewWorktreeAttachments, summarizeWorktreeOwnership } from '@pellux/goodvibes-sdk/platform/runtime/worktree/registry';
1
+ import { getPersistedWorktreeMeta, reviewWorktreeAttachments, summarizeWorktreeOwnership } from '@/runtime/index.ts';
2
2
  import type { CommandRegistry } from '../command-registry.ts';
3
3
  import { openCommandPanel, requireShellPaths } from './runtime-services.ts';
4
4
 
@@ -33,7 +33,7 @@ export function registerWorktreeRuntimeCommands(registry: CommandRegistry): void
33
33
  }
34
34
  const nextSteps = [
35
35
  record.state === 'paused' ? `/worktree resume ${record.path}` : null,
36
- record.state === 'discard' || record.state === 'cleanup-pending' ? `/worktree cleanup ${record.path}` : null,
36
+ record.state === 'discard' || record.state === 'pending-cleanup' ? `/worktree cleanup ${record.path}` : null,
37
37
  record.state === 'kept' ? `/worktree keep ${record.path}` : null,
38
38
  record.sessionId ? `/worktree session ${record.sessionId}` : null,
39
39
  record.taskId ? `/worktree task ${record.taskId}` : null,
@@ -78,7 +78,7 @@ export function registerWorktreeRuntimeCommands(registry: CommandRegistry): void
78
78
  ? [
79
79
  `${header}: ${targetKind} ${targetId}`,
80
80
  ` total: ${review.total}`,
81
- ` active: ${review.active} paused: ${review.paused} kept: ${review.kept} discard: ${review.discard} cleanup: ${review.cleanupPending}`,
81
+ ` active: ${review.active} paused: ${review.paused} kept: ${review.kept} discard: ${review.discard} cleanup: ${review.pendingCleanup}`,
82
82
  ...review.records.map((record) => ` ${record.state.padEnd(15)} ${record.kind.padEnd(12)} ${record.path}`),
83
83
  ...(sub === 'recover'
84
84
  ? [
@@ -150,7 +150,7 @@ export interface FeedContextClosures {
150
150
  handleBlockToggle: () => void;
151
151
  findMarkerAtPos: (pos: number) => { start: number; end: number } | null;
152
152
  cleanupMarkerRegistry: (text: string) => void;
153
- expandPrompt: (text: string) => string | import('@pellux/goodvibes-sdk/platform/providers/interface').ContentPart[];
153
+ expandPrompt: (text: string) => string | import('@pellux/goodvibes-sdk/platform/providers').ContentPart[];
154
154
  openModelPickerWithTarget: (target: ModelPickerTarget, source?: 'settings' | 'onboarding') => boolean;
155
155
  openProviderModelPickerWithTarget: (target: ModelPickerTarget, source?: 'settings' | 'onboarding') => boolean;
156
156
  onModelPickerCommit: () => boolean;
@@ -1,6 +1,6 @@
1
1
  import { readdir } from 'node:fs/promises';
2
2
  import { join, relative } from 'node:path';
3
- import type { ShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
3
+ import type { ShellPathService } from '@/runtime/index.ts';
4
4
 
5
5
  /**
6
6
  * FilePickerModal - Fuzzy file finder triggered by @ in the input area.
@@ -1,7 +1,7 @@
1
- import { loadSkillByTrigger } from '@pellux/goodvibes-sdk/platform/tools/registry-tool/skill-loader';
1
+ import { loadSkillByTrigger } from '@pellux/goodvibes-sdk/platform/tools';
2
2
  import type { CommandContext, CommandRegistry } from './command-registry.ts';
3
3
  import type { AutocompleteEngine } from './autocomplete.ts';
4
- import type { InputToken } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
4
+ import type { InputToken } from '@pellux/goodvibes-sdk/platform/core';
5
5
  import type { ConversationManager } from '../core/conversation';
6
6
 
7
7
  export type CommandModeRouteState = {
@@ -2,15 +2,15 @@ import { readFileSync, writeFileSync, existsSync } from 'node:fs';
2
2
  import { copyToClipboard, pasteFromClipboard, pasteImageFromClipboard } from '../utils/clipboard.ts';
3
3
  import type { InfiniteBuffer } from '../core/history.ts';
4
4
  import type { ConversationManager } from '../core/conversation';
5
- import type { PermissionCategory } from '@pellux/goodvibes-sdk/platform/permissions/manager';
6
- import type { ContentPart } from '@pellux/goodvibes-sdk/platform/providers/interface';
5
+ import type { PermissionCategory } from '@pellux/goodvibes-sdk/platform/permissions';
6
+ import type { ContentPart } from '@pellux/goodvibes-sdk/platform/providers';
7
7
  import type { CommandContext } from './command-registry.ts';
8
- import type { BookmarkManager } from '@pellux/goodvibes-sdk/platform/bookmarks/manager';
9
- import { resolveAndValidatePath } from '@pellux/goodvibes-sdk/platform/utils/path-safety';
10
- import { analyzePermissionRequest } from '@pellux/goodvibes-sdk/platform/permissions/analysis';
11
- import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
8
+ import type { BookmarkManager } from '@pellux/goodvibes-sdk/platform/bookmarks';
9
+ import { resolveAndValidatePath } from '@pellux/goodvibes-sdk/platform/utils';
10
+ import { analyzePermissionRequest } from '@pellux/goodvibes-sdk/platform/permissions';
11
+ import { logger } from '@pellux/goodvibes-sdk/platform/utils';
12
12
  import type { SelectionManager } from './selection.ts';
13
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
13
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
14
14
 
15
15
  export const MARKER_REGEX = /\[(TEXT|IMAGE): [^\]]+\]/g;
16
16
 
@@ -1,7 +1,7 @@
1
- import type { InputToken } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
1
+ import type { InputToken } from '@pellux/goodvibes-sdk/platform/core';
2
2
  import type { BlockMeta, ConversationManager } from '../core/conversation';
3
3
  import type { InputHistory } from './input-history.ts';
4
- import type { ContentPart } from '@pellux/goodvibes-sdk/platform/providers/interface';
4
+ import type { ContentPart } from '@pellux/goodvibes-sdk/platform/providers';
5
5
  import type { CommandRegistry, CommandContext } from './command-registry.ts';
6
6
  import type { AutocompleteEngine } from './autocomplete.ts';
7
7
  import type { SelectionManager } from './selection.ts';
@@ -9,7 +9,7 @@ import type { WrappedPromptInfo } from './handler-prompt-buffer.ts';
9
9
  import { cleanupMarkerRegistry, expandPrompt, findMarkerAtPos, registerPaste } from './handler-content-actions.ts';
10
10
  import type { PanelManager } from '../panels/panel-manager.ts';
11
11
  import type { KeybindingsManager } from './keybindings.ts';
12
- import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
12
+ import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils';
13
13
 
14
14
  export type PanelFocusRouteState = {
15
15
  panelManager: PanelManager;
@@ -1,4 +1,4 @@
1
- import type { InputToken } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
1
+ import type { InputToken } from '@pellux/goodvibes-sdk/platform/core';
2
2
  import type { InfiniteBuffer } from '../core/history.ts';
3
3
  import type { CommandContext, CommandRegistry } from './command-registry.ts';
4
4
  import { AutocompleteEngine } from './autocomplete.ts';
@@ -151,7 +151,7 @@ export interface InputFeedContext {
151
151
  readonly handleBlockToggle: () => void;
152
152
  readonly findMarkerAtPos: (pos: number) => { start: number; end: number } | null;
153
153
  readonly cleanupMarkerRegistry: (text: string) => void;
154
- readonly expandPrompt: (text: string) => string | import('@pellux/goodvibes-sdk/platform/providers/interface').ContentPart[];
154
+ readonly expandPrompt: (text: string) => string | import('@pellux/goodvibes-sdk/platform/providers').ContentPart[];
155
155
  readonly openModelPickerWithTarget: (target: ModelPickerTarget, source?: 'settings' | 'onboarding') => boolean;
156
156
  readonly openProviderModelPickerWithTarget: (target: ModelPickerTarget, source?: 'settings' | 'onboarding') => boolean;
157
157
  readonly onModelPickerCommit: () => boolean;
@@ -1,4 +1,4 @@
1
- import { buildProviderAccountSnapshot } from '@pellux/goodvibes-sdk/platform/runtime/provider-accounts/registry';
1
+ import { buildProviderAccountSnapshot } from '@/runtime/index.ts';
2
2
  import type { OnboardingWizardMode } from './onboarding/onboarding-wizard.ts';
3
3
  import { collectOnboardingSnapshot, readOnboardingCheckMarker, writeOnboardingCheckMarker } from '../runtime/onboarding/index.ts';
4
4
  import { cleanupMarkerRegistry, expandPrompt, findMarkerAtPos, handleBlockCopy, handleBlockRerun, handleBlockSave, handleBlockToggle, handleBookmark, handleClipboardPaste, handleCopy, handleCtrlC, handleDiffApply, registerPaste } from './handler-content-actions.ts';
@@ -1,4 +1,4 @@
1
- import type { InputToken } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
1
+ import type { InputToken } from '@pellux/goodvibes-sdk/platform/core';
2
2
  import type { SelectionResult, SelectionAction } from './selection-modal.ts';
3
3
  import type { CommandContext } from './command-registry.ts';
4
4
  import { openTtsProviderPicker, openTtsVoicePicker } from './tts-settings-actions.ts';
@@ -244,7 +244,6 @@ type SettingsRouteState = {
244
244
  function syncRuntimeAfterSettingReset(ctx: CommandContext | undefined, key: string, value: unknown): void {
245
245
  if (!ctx) return;
246
246
  if (key === 'provider.model') ctx.session.runtime.model = String(value);
247
- if (key === 'provider.provider') ctx.session.runtime.provider = String(value);
248
247
  if (key === 'provider.reasoningEffort') ctx.session.runtime.reasoningEffort = String(value);
249
248
  }
250
249
 
@@ -1,4 +1,4 @@
1
- import type { InputToken } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
1
+ import type { InputToken } from '@pellux/goodvibes-sdk/platform/core';
2
2
  import type { InfiniteBuffer } from '../core/history.ts';
3
3
  import type { SelectionResult, SelectionModal } from './selection-modal.ts';
4
4
  import type { BookmarkModal } from './bookmark-modal.ts';
@@ -1,7 +1,8 @@
1
- import { createOAuthLocalListener } from '@pellux/goodvibes-sdk/platform/config/oauth-local-listener';
2
- import { beginOpenAICodexLogin, exchangeOpenAICodexCode } from '@pellux/goodvibes-sdk/platform/config/openai-codex-auth';
3
- import { openExternalUrl } from '@pellux/goodvibes-sdk/platform/utils/open-external';
4
- import { buildProviderAccountSnapshot } from '@pellux/goodvibes-sdk/platform/runtime/provider-accounts/registry';
1
+ import { createOAuthLocalListener } from '@pellux/goodvibes-sdk/platform/config';
2
+ import { beginOpenAICodexLogin, exchangeOpenAICodexCode } from '@pellux/goodvibes-sdk/platform/config';
3
+ import { openExternalUrl } from '@pellux/goodvibes-sdk/platform/utils';
4
+ import { getProviderIdFromModel } from '../config/provider-model.ts';
5
+ import { buildProviderAccountSnapshot } from '@/runtime/index.ts';
5
6
  import { OnboardingWizardController, type OnboardingWizardAction, type OnboardingWizardApplyFeedback } from './onboarding/onboarding-wizard.ts';
6
7
  import { handleCloudflareOnboardingActionForHandler, maybeProvisionCloudflareOnFinalApplyForHandler } from './handler-onboarding-cloudflare.ts';
7
8
  import { applyOnboardingRequest, collectOnboardingSnapshot, verifyOnboardingRequest } from '../runtime/onboarding/index.ts';
@@ -545,8 +546,10 @@ export function syncRuntimeFromOnboardingRequestForHandler(handler: InputHandler
545
546
 
546
547
  for (const operation of request.operations) {
547
548
  if (operation.kind !== 'set-config') continue;
548
- if (operation.key === 'provider.model' && typeof operation.value === 'string') runtime.model = operation.value;
549
- if (operation.key === 'provider.provider' && typeof operation.value === 'string') runtime.provider = operation.value;
549
+ if (operation.key === 'provider.model' && typeof operation.value === 'string') {
550
+ runtime.model = operation.value;
551
+ runtime.provider = getProviderIdFromModel(operation.value);
552
+ }
550
553
  if (operation.key === 'provider.reasoningEffort' && typeof operation.value === 'string') runtime.reasoningEffort = operation.value;
551
554
  }
552
555
  }