@pellux/goodvibes-tui 0.18.12 → 0.18.13

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 (157) hide show
  1. package/CHANGELOG.md +50 -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/config/index.ts +1 -138
  6. package/src/config/subscription-providers.ts +1 -127
  7. package/src/core/conversation-rendering.ts +3 -3
  8. package/src/core/conversation.ts +176 -423
  9. package/src/core/history.ts +45 -0
  10. package/src/core/orchestrator.ts +3 -735
  11. package/src/core/system-message-router.ts +19 -58
  12. package/src/input/handler-content-actions.ts +2 -2
  13. package/src/input/handler-feed.ts +1 -1
  14. package/src/input/handler-modal-token-routes.ts +1 -1
  15. package/src/input/handler-ui-state.ts +1 -1
  16. package/src/input/handler.ts +1 -1
  17. package/src/input/search.ts +1 -1
  18. package/src/input/selection.ts +2 -2
  19. package/src/main.ts +1 -1
  20. package/src/panels/agent-inspector-panel.ts +3 -3
  21. package/src/panels/agent-logs-panel.ts +3 -3
  22. package/src/panels/approval-panel.ts +2 -2
  23. package/src/panels/automation-control-panel.ts +3 -3
  24. package/src/panels/base-panel.ts +14 -14
  25. package/src/panels/builtin/operations.ts +1 -1
  26. package/src/panels/builtin/session.ts +1 -1
  27. package/src/panels/builtin/shared.ts +3 -3
  28. package/src/panels/cockpit-panel.ts +2 -2
  29. package/src/panels/communication-panel.ts +3 -3
  30. package/src/panels/context-visualizer-panel.ts +2 -2
  31. package/src/panels/control-plane-panel.ts +3 -3
  32. package/src/panels/cost-tracker-panel.ts +3 -3
  33. package/src/panels/debug-panel.ts +2 -2
  34. package/src/panels/diff-panel.ts +2 -2
  35. package/src/panels/docs-panel.ts +1 -1
  36. package/src/panels/eval-panel.ts +2 -2
  37. package/src/panels/file-explorer-panel.ts +3 -3
  38. package/src/panels/file-preview-panel.ts +3 -3
  39. package/src/panels/forensics-panel.ts +2 -2
  40. package/src/panels/git-panel.ts +1 -1
  41. package/src/panels/hooks-panel.ts +3 -3
  42. package/src/panels/incident-review-panel.ts +1 -1
  43. package/src/panels/intelligence-panel.ts +2 -2
  44. package/src/panels/knowledge-panel.ts +1 -1
  45. package/src/panels/local-auth-panel.ts +2 -2
  46. package/src/panels/marketplace-panel.ts +1 -1
  47. package/src/panels/mcp-panel.ts +3 -3
  48. package/src/panels/memory-panel.ts +1 -1
  49. package/src/panels/ops-control-panel.ts +3 -3
  50. package/src/panels/ops-strategy-panel.ts +2 -2
  51. package/src/panels/orchestration-panel.ts +2 -2
  52. package/src/panels/panel-list-panel.ts +6 -6
  53. package/src/panels/plan-dashboard-panel.ts +1 -1
  54. package/src/panels/plugins-panel.ts +2 -2
  55. package/src/panels/policy-panel.ts +2 -2
  56. package/src/panels/polish.ts +3 -3
  57. package/src/panels/provider-accounts-panel.ts +2 -2
  58. package/src/panels/provider-health-panel.ts +2 -2
  59. package/src/panels/provider-stats-panel.ts +3 -3
  60. package/src/panels/remote-panel.ts +3 -3
  61. package/src/panels/routes-panel.ts +3 -3
  62. package/src/panels/sandbox-panel.ts +2 -2
  63. package/src/panels/schedule-panel.ts +1 -1
  64. package/src/panels/security-panel.ts +2 -2
  65. package/src/panels/services-panel.ts +2 -2
  66. package/src/panels/session-browser-panel.ts +2 -2
  67. package/src/panels/settings-sync-panel.ts +2 -2
  68. package/src/panels/skills-panel.ts +6 -6
  69. package/src/panels/subscription-panel.ts +2 -2
  70. package/src/panels/symbol-outline-panel.ts +3 -3
  71. package/src/panels/system-messages-panel.ts +4 -4
  72. package/src/panels/tasks-panel.ts +2 -2
  73. package/src/panels/thinking-panel.ts +3 -3
  74. package/src/panels/token-budget-panel.ts +1 -1
  75. package/src/panels/tool-inspector-panel.ts +3 -3
  76. package/src/panels/types.ts +5 -5
  77. package/src/panels/watchers-panel.ts +3 -3
  78. package/src/panels/welcome-panel.ts +1 -1
  79. package/src/panels/worktree-panel.ts +2 -2
  80. package/src/panels/wrfc-panel.ts +3 -3
  81. package/src/permissions/prompt.ts +3 -22
  82. package/src/plugins/loader.ts +15 -304
  83. package/src/renderer/agent-detail-modal.ts +1 -1
  84. package/src/renderer/autocomplete-overlay.ts +2 -2
  85. package/src/renderer/bookmark-modal.ts +1 -1
  86. package/src/renderer/bottom-bar.ts +2 -2
  87. package/src/renderer/buffer.ts +1 -1
  88. package/src/renderer/code-block.ts +2 -2
  89. package/src/renderer/compositor.ts +2 -2
  90. package/src/renderer/context-inspector.ts +1 -1
  91. package/src/renderer/conversation-layout.ts +2 -2
  92. package/src/renderer/conversation-overlays.ts +1 -1
  93. package/src/renderer/conversation-surface.ts +2 -2
  94. package/src/renderer/diff-view.ts +2 -2
  95. package/src/renderer/diff.ts +1 -1
  96. package/src/renderer/file-picker-overlay.ts +2 -2
  97. package/src/renderer/file-tree.ts +2 -2
  98. package/src/renderer/help-overlay.ts +1 -1
  99. package/src/renderer/history-search-overlay.ts +2 -2
  100. package/src/renderer/live-tail-modal.ts +1 -1
  101. package/src/renderer/markdown.ts +2 -2
  102. package/src/renderer/modal-factory.ts +3 -3
  103. package/src/renderer/model-picker-overlay.ts +2 -2
  104. package/src/renderer/overlay-box.ts +2 -2
  105. package/src/renderer/panel-composite.ts +1 -1
  106. package/src/renderer/panel-picker-overlay.ts +2 -2
  107. package/src/renderer/panel-tab-bar.ts +1 -1
  108. package/src/renderer/panel-workspace-bar.ts +1 -1
  109. package/src/renderer/process-indicator.ts +2 -2
  110. package/src/renderer/process-modal.ts +1 -1
  111. package/src/renderer/profile-picker-modal.ts +2 -2
  112. package/src/renderer/progress.ts +2 -2
  113. package/src/renderer/search-overlay.ts +2 -2
  114. package/src/renderer/selection-modal-overlay.ts +2 -2
  115. package/src/renderer/session-picker-modal.ts +2 -2
  116. package/src/renderer/settings-modal.ts +2 -2
  117. package/src/renderer/shell-surface.ts +1 -1
  118. package/src/renderer/system-message.ts +1 -1
  119. package/src/renderer/tab-strip.ts +2 -2
  120. package/src/renderer/text-layout.ts +1 -1
  121. package/src/renderer/thinking.ts +1 -1
  122. package/src/renderer/tool-call.ts +2 -2
  123. package/src/renderer/ui-factory.ts +2 -2
  124. package/src/runtime/bootstrap-command-context.ts +4 -5
  125. package/src/runtime/bootstrap-command-parts.ts +1 -3
  126. package/src/runtime/bootstrap-core.ts +3 -2
  127. package/src/runtime/bootstrap-hook-bridge.ts +15 -174
  128. package/src/runtime/bootstrap-shell.ts +4 -4
  129. package/src/runtime/bootstrap.ts +1 -1
  130. package/src/runtime/context.ts +4 -20
  131. package/src/runtime/diagnostics/panels/index.ts +1 -1
  132. package/src/runtime/diagnostics/panels/ops.ts +1 -1
  133. package/src/runtime/diagnostics/panels/panel-resources.ts +118 -0
  134. package/src/runtime/perf/panel-contracts.ts +32 -0
  135. package/src/runtime/perf/panel-health-monitor.ts +18 -0
  136. package/src/runtime/services.ts +4 -4
  137. package/src/runtime/store/domains/conversation.ts +1 -181
  138. package/src/runtime/store/domains/permissions.ts +1 -143
  139. package/src/runtime/store/helpers/reducers/conversation.ts +1 -228
  140. package/src/runtime/store/helpers/reducers/lifecycle.ts +1 -440
  141. package/src/runtime/store/selectors/index.ts +11 -6
  142. package/src/runtime/store/state.ts +12 -4
  143. package/src/runtime/ui-events.ts +46 -0
  144. package/src/runtime/ui-services.ts +1 -1
  145. package/src/shell/ui-openers.ts +1 -1
  146. package/src/tools/index.ts +1 -186
  147. package/src/types/grid.ts +48 -0
  148. package/src/utils/clipboard.ts +21 -0
  149. package/src/utils/splash-lines.ts +1 -1
  150. package/src/utils/terminal-width.ts +185 -0
  151. package/src/version.ts +1 -1
  152. package/src/daemon/facade-composition.ts +0 -398
  153. package/src/daemon/facade.ts +0 -638
  154. package/src/daemon/surface-policy.ts +0 -60
  155. package/src/daemon/types.ts +0 -191
  156. package/src/runtime/ui-read-models-core.ts +0 -95
  157. package/src/runtime/ui-read-models-operations.ts +0 -203
@@ -2,7 +2,7 @@
2
2
  * MemoryPanel — project memory substrate TUI panel.
3
3
  */
4
4
 
5
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
5
+ import type { Line } from '../types/grid.ts';
6
6
  import type { MemoryRegistry } from '@pellux/goodvibes-sdk/platform/state/memory-store';
7
7
  import type { MemoryRecord, MemoryClass } from '@pellux/goodvibes-sdk/platform/state/memory-store';
8
8
  import { BasePanel } from './base-panel.ts';
@@ -7,13 +7,13 @@
7
7
  * Requires the `operator-control-plane` feature flag to be enabled.
8
8
  * Open via Ctrl+O keybind or `/ops view` command.
9
9
  */
10
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
10
+ import type { Line } from '../types/grid.ts';
11
11
  import type { OpsEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
12
- import type { UiEventFeed } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
12
+ import type { UiEventFeed } from '../runtime/ui-events.ts';
13
13
  import type { OpsAuditEntry } from '../runtime/diagnostics/panels/ops.ts';
14
14
  import { OpsPanel } from '../runtime/diagnostics/panels/ops.ts';
15
15
  import { BasePanel } from './base-panel.ts';
16
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
16
+ import { createEmptyLine } from '../types/grid.ts';
17
17
  import {
18
18
  buildEmptyState,
19
19
  buildPanelLine,
@@ -8,10 +8,10 @@
8
8
  */
9
9
 
10
10
  import { BasePanel } from './base-panel.ts';
11
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
11
+ import type { Line } from '../types/grid.ts';
12
12
  import type { PlannerDecision, ExecutionStrategy } from '@pellux/goodvibes-sdk/platform/core/adaptive-planner';
13
13
  import type { PlannerEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
14
- import type { UiEventFeed } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
14
+ import type { UiEventFeed } from '../runtime/ui-events.ts';
15
15
  import type { OpsStrategyQuery } from '../runtime/ui-service-queries.ts';
16
16
  import {
17
17
  buildEmptyState,
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { UiOrchestrationSnapshot, UiReadModel } from '../runtime/ui-read-models.ts';
5
5
  import {
@@ -12,12 +12,12 @@
12
12
  *
13
13
  * Open via /panel list.
14
14
  */
15
- import type { Line, Cell } from '@pellux/goodvibes-sdk/platform/types/grid';
15
+ import type { Line, Cell } from '../types/grid.ts';
16
16
  import type { PanelCategory, PanelRegistration } from './types.ts';
17
17
  import { BasePanel } from './base-panel.ts';
18
18
  import type { PanelManager } from './panel-manager.ts';
19
- import type { PanelHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-health-monitor';
20
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
19
+ import type { ComponentHealthMonitor } from '../runtime/perf/panel-health-monitor.ts';
20
+ import { createEmptyLine } from '../types/grid.ts';
21
21
  import {
22
22
  buildEmptyState,
23
23
  buildKeyValueLine,
@@ -30,7 +30,7 @@ import {
30
30
  resolvePrimaryScrollableSection,
31
31
  type PanelWorkspaceSection,
32
32
  } from './polish.ts';
33
- import { truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
33
+ import { truncateDisplay } from '../utils/terminal-width.ts';
34
34
  import { wrapWithHangingIndent } from '../renderer/text-layout.ts';
35
35
  import {
36
36
  getPanelSearchFocusTransition,
@@ -112,9 +112,9 @@ export class PanelListPanel extends BasePanel {
112
112
 
113
113
  public constructor(
114
114
  private readonly panelManager: PanelManager,
115
- panelHealthMonitor?: PanelHealthMonitor,
115
+ componentHealthMonitor?: ComponentHealthMonitor,
116
116
  ) {
117
- super('panel-list', 'Panel List', 'L', 'session', panelHealthMonitor);
117
+ super('panel-list', 'Panel List', 'L', 'session', componentHealthMonitor);
118
118
  }
119
119
 
120
120
  public override onActivate(): void {
@@ -1,4 +1,4 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
2
  import type { ExecutionPlan, PlanItem, PlanItemStatus } from '@pellux/goodvibes-sdk/platform/core/execution-plan';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { PlanDashboardQuery } from '../runtime/ui-service-queries.ts';
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { PluginManagerObserver, PluginStatus } from '@pellux/goodvibes-sdk/platform/plugins/manager';
5
5
  import {
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { PolicyRuntimeState } from '@pellux/goodvibes-sdk/platform/runtime/permissions/policy-runtime';
5
5
  import type { PolicyPanelSnapshot } from '../runtime/diagnostics/panels/policy.ts';
@@ -1,6 +1,6 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine, createStyledCell } from '@pellux/goodvibes-sdk/platform/types/grid';
3
- import { getDisplayWidth, wrapText } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine, createStyledCell } from '../types/grid.ts';
3
+ import { getDisplayWidth, wrapText } from '../utils/terminal-width.ts';
4
4
  import { getSurfaceContentRows, getTrackedVisibleWindow, getVisibleWindow, type VisibleWindow } from '../renderer/surface-layout.ts';
5
5
  import { GLYPHS, UI_TONES } from '../renderer/ui-primitives.ts';
6
6
 
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import {
5
5
  buildDetailBlock,
@@ -1,9 +1,9 @@
1
1
  import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
2
2
  import { BasePanel } from './base-panel.ts';
3
- import { createEmptyLine, createStyledCell, type Line } from '@pellux/goodvibes-sdk/platform/types/grid';
3
+ import { createEmptyLine, createStyledCell, type Line } from '../types/grid.ts';
4
4
  import type { ProviderAuthRouteDescriptor } from '@pellux/goodvibes-sdk/platform/providers/interface';
5
5
  import type { ProviderEvent, TurnEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
6
- import type { UiEventFeed } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
6
+ import type { UiEventFeed } from '../runtime/ui-events.ts';
7
7
  import {
8
8
  type ProviderRuntimeInspectionQuery,
9
9
  } from '../runtime/ui-service-queries.ts';
@@ -1,7 +1,7 @@
1
1
  import { BasePanel } from './base-panel.ts';
2
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
+ import type { Line } from '../types/grid.ts';
3
3
  import type { ProviderEvent, TurnEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
4
- import type { UiEventFeed } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
4
+ import type { UiEventFeed } from '../runtime/ui-events.ts';
5
5
  import type { UiProvidersSnapshot, UiReadModel } from '../runtime/ui-read-models.ts';
6
6
  import {
7
7
  buildEmptyState,
@@ -11,7 +11,7 @@ import {
11
11
  DEFAULT_PANEL_PALETTE,
12
12
  type PanelWorkspaceSection,
13
13
  } from './polish.ts';
14
- import { truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
14
+ import { truncateDisplay } from '../utils/terminal-width.ts';
15
15
 
16
16
  // ---------------------------------------------------------------------------
17
17
  // Constants
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { UiReadModel, UiRemoteSnapshot } from '../runtime/ui-read-models.ts';
5
5
  import {
@@ -14,7 +14,7 @@ import {
14
14
  resolvePrimaryScrollableSection,
15
15
  type PanelWorkspaceSection,
16
16
  } from './polish.ts';
17
- import { truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
17
+ import { truncateDisplay } from '../utils/terminal-width.ts';
18
18
  import { getTrackedVisibleWindow } from '../renderer/surface-layout.ts';
19
19
 
20
20
  const C = {
@@ -1,8 +1,8 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { UiReadModel, UiRoutesSnapshot } from '../runtime/ui-read-models.ts';
5
- import { truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
5
+ import { truncateDisplay } from '../utils/terminal-width.ts';
6
6
  import {
7
7
  buildEmptyState,
8
8
  buildGuidanceLine,
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
5
5
  import { buildSandboxReview, listSandboxPresets, listSandboxProfiles } from '@pellux/goodvibes-sdk/platform/runtime/sandbox/manager';
@@ -1,5 +1,5 @@
1
1
  import { BasePanel } from './base-panel.ts';
2
- import { type Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
+ import { type Line } from '../types/grid.ts';
3
3
  import type { AutomationManager } from '@pellux/goodvibes-sdk/platform/automation/index';
4
4
  import type { AutomationJob } from '@pellux/goodvibes-sdk/platform/automation/jobs';
5
5
  import type { AutomationRun } from '@pellux/goodvibes-sdk/platform/automation/runs';
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { TokenAuditResult } from '@pellux/goodvibes-sdk/platform/security/token-audit';
5
5
  import type { UiReadModel, UiSecuritySnapshot } from '../runtime/ui-read-models.ts';
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import {
5
5
  type ServiceConfig,
@@ -2,7 +2,7 @@
2
2
  // SessionBrowserPanel — browse, search, and resume old sessions.
3
3
  // ---------------------------------------------------------------------------
4
4
 
5
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
5
+ import type { Line } from '../types/grid.ts';
6
6
  import { BasePanel } from './base-panel.ts';
7
7
  import type { SessionInfo } from '@pellux/goodvibes-sdk/platform/sessions/manager';
8
8
  import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
@@ -17,7 +17,7 @@ import {
17
17
  DEFAULT_PANEL_PALETTE,
18
18
  type PanelWorkspaceSection,
19
19
  } from './polish.ts';
20
- import { truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
20
+ import { truncateDisplay } from '../utils/terminal-width.ts';
21
21
  import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
22
22
  import {
23
23
  getPanelSearchFocusTransition,
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import {
5
5
  buildDetailBlock,
@@ -1,10 +1,10 @@
1
1
  import { existsSync, readdirSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
4
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
5
- import { getDisplayWidth, truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
3
+ import type { Line } from '../types/grid.ts';
4
+ import { createEmptyLine } from '../types/grid.ts';
5
+ import { getDisplayWidth, truncateDisplay } from '../utils/terminal-width.ts';
6
6
  import { BasePanel } from './base-panel.ts';
7
- import type { PanelHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-health-monitor';
7
+ import type { ComponentHealthMonitor } from '../runtime/perf/panel-health-monitor.ts';
8
8
  import type { ShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
9
9
  import {
10
10
  buildEmptyState,
@@ -55,7 +55,7 @@ export interface SkillRecord {
55
55
 
56
56
  export interface SkillsPanelOptions {
57
57
  shellPaths: Pick<ShellPathService, 'workingDirectory' | 'homeDirectory'>;
58
- panelHealthMonitor?: PanelHealthMonitor;
58
+ componentHealthMonitor?: ComponentHealthMonitor;
59
59
  }
60
60
 
61
61
  function parseFrontmatter(content: string): Record<string, string> {
@@ -243,7 +243,7 @@ export class SkillsPanel extends BasePanel {
243
243
  private cacheDirty = true;
244
244
 
245
245
  public constructor(options: SkillsPanelOptions) {
246
- super('skills', 'Skills', 'K', 'monitoring', options.panelHealthMonitor);
246
+ super('skills', 'Skills', 'K', 'monitoring', options.componentHealthMonitor);
247
247
  this.shellPaths = options.shellPaths;
248
248
  }
249
249
 
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { ProviderSubscription, PendingSubscriptionLogin } from '@pellux/goodvibes-sdk/platform/config/subscriptions';
5
5
  import { listBuiltinSubscriptionProviders } from '../config/subscription-providers.ts';
@@ -1,6 +1,6 @@
1
1
  import { BasePanel } from './base-panel.ts';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
3
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
+ import type { Line } from '../types/grid.ts';
4
4
  import {
5
5
  buildEmptyState,
6
6
  buildPanelLine,
@@ -9,7 +9,7 @@ import {
9
9
  resolveScrollablePanelSection,
10
10
  DEFAULT_PANEL_PALETTE,
11
11
  } from './polish.ts';
12
- import { getDisplayWidth } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
12
+ import { getDisplayWidth } from '../utils/terminal-width.ts';
13
13
 
14
14
  // ── Symbol types ────────────────────────────────────────────────────────────
15
15
 
@@ -4,8 +4,8 @@
4
4
  */
5
5
 
6
6
  import { BasePanel } from './base-panel.ts';
7
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
8
- import type { PanelHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-health-monitor';
7
+ import type { Line } from '../types/grid.ts';
8
+ import type { ComponentHealthMonitor } from '../runtime/perf/panel-health-monitor.ts';
9
9
  import {
10
10
  buildBodyText,
11
11
  buildEmptyState,
@@ -54,8 +54,8 @@ export class SystemMessagesPanel extends BasePanel {
54
54
  private _scrollOffset = 0;
55
55
  private readonly configManager: ConfigManager;
56
56
 
57
- constructor(configManager: ConfigManager, panelHealthMonitor?: PanelHealthMonitor) {
58
- super('system-messages', 'System Messages', 'J', 'monitoring', panelHealthMonitor);
57
+ constructor(configManager: ConfigManager, componentHealthMonitor?: ComponentHealthMonitor) {
58
+ super('system-messages', 'System Messages', 'J', 'monitoring', componentHealthMonitor);
59
59
  this.configManager = configManager;
60
60
  }
61
61
 
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { RuntimeTask, TaskLifecycleState } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/tasks';
5
5
  import type { ManagedWorktreeMeta } from '@pellux/goodvibes-sdk/platform/runtime/worktree/registry';
@@ -2,10 +2,10 @@
2
2
  // ThinkingPanel — streams model reasoning tokens in real-time.
3
3
  // ---------------------------------------------------------------------------
4
4
 
5
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
5
+ import type { Line } from '../types/grid.ts';
6
6
  import { BasePanel } from './base-panel.ts';
7
7
  import type { TurnEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
8
- import type { UiEventFeed } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
8
+ import type { UiEventFeed } from '../runtime/ui-events.ts';
9
9
  import {
10
10
  buildEmptyState,
11
11
  buildPanelLine,
@@ -15,7 +15,7 @@ import {
15
15
  DEFAULT_PANEL_PALETTE,
16
16
  type PanelWorkspaceSection,
17
17
  } from './polish.ts';
18
- import { truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
18
+ import { truncateDisplay } from '../utils/terminal-width.ts';
19
19
 
20
20
  const C = {
21
21
  headerBg: '#1a1a2e',
@@ -1,6 +1,6 @@
1
1
  import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
2
2
  import { BasePanel } from './base-panel.ts';
3
- import { createEmptyLine, createStyledCell, type Line } from '@pellux/goodvibes-sdk/platform/types/grid';
3
+ import { createEmptyLine, createStyledCell, type Line } from '../types/grid.ts';
4
4
  import type { Orchestrator } from '../core/orchestrator';
5
5
  import { evaluateSessionMaintenance } from '@pellux/goodvibes-sdk/platform/runtime/session-maintenance';
6
6
  import type { UiReadModel, UiSessionSnapshot } from '../runtime/ui-read-models.ts';
@@ -2,10 +2,10 @@
2
2
  // ToolInspectorPanel — chronological list of tool calls with args/results.
3
3
  // ---------------------------------------------------------------------------
4
4
 
5
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
5
+ import type { Line } from '../types/grid.ts';
6
6
  import { BasePanel } from './base-panel.ts';
7
7
  import type { ToolEvent, TurnEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
8
- import type { UiEventFeed } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
8
+ import type { UiEventFeed } from '../runtime/ui-events.ts';
9
9
  import {
10
10
  buildEmptyState,
11
11
  buildPanelLine,
@@ -15,7 +15,7 @@ import {
15
15
  DEFAULT_PANEL_PALETTE,
16
16
  type PanelWorkspaceSection,
17
17
  } from './polish.ts';
18
- import { truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
18
+ import { truncateDisplay } from '../utils/terminal-width.ts';
19
19
 
20
20
  const C = {
21
21
  headerBg: '#1a1a2e',
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import type { PanelResourceContract, PanelHealthState } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-contracts';
1
+ import type { Line } from '../types/grid.ts';
2
+ import type { ComponentResourceContract, ComponentHealthState } from '../runtime/perf/panel-contracts.ts';
3
3
 
4
4
  export type PanelCategory = 'development' | 'agent' | 'monitoring' | 'session' | 'ai';
5
5
 
@@ -23,10 +23,10 @@ export interface Panel {
23
23
  needsRender: boolean;
24
24
 
25
25
  // Resource contract (optional — panels may declare resource requirements)
26
- resourceContract?: Readonly<PanelResourceContract>;
26
+ resourceContract?: Readonly<ComponentResourceContract>;
27
27
 
28
- // Health state (optional — set by PanelHealthMonitor when panel is registered)
29
- healthState?: Readonly<PanelHealthState>;
28
+ // Health state (optional — set by ComponentHealthMonitor when panel is registered)
29
+ healthState?: Readonly<ComponentHealthState>;
30
30
 
31
31
  // Input (optional)
32
32
  handleInput?(key: string): boolean;
@@ -1,8 +1,8 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import type { UiReadModel, UiWatchersSnapshot } from '../runtime/ui-read-models.ts';
5
- import { truncateDisplay } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
5
+ import { truncateDisplay } from '../utils/terminal-width.ts';
6
6
  import {
7
7
  buildEmptyState,
8
8
  buildGuidanceLine,
@@ -1,4 +1,4 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
2
  import { BasePanel } from './base-panel.ts';
3
3
  import { buildGuidanceLine, buildPanelLine, buildPanelWorkspace, DEFAULT_PANEL_PALETTE } from './polish.ts';
4
4
 
@@ -1,5 +1,5 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
2
- import { createEmptyLine } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
+ import { createEmptyLine } from '../types/grid.ts';
3
3
  import { BasePanel } from './base-panel.ts';
4
4
  import { buildKeyValueLine, buildPanelLine, buildPanelWorkspace, DEFAULT_PANEL_PALETTE, resolvePrimaryScrollableSection, type PanelWorkspaceSection } from './polish.ts';
5
5
  import { summarizeWorktreeOwnership, type WorktreeRegistry, type WorktreeStatusRecord } from '@pellux/goodvibes-sdk/platform/runtime/worktree/registry';
@@ -1,9 +1,9 @@
1
- import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import type { Line } from '../types/grid.ts';
2
2
  import type { WrfcChain, WrfcState, QualityGateResult } from '@pellux/goodvibes-sdk/platform/agents/wrfc-types';
3
3
  import type { WrfcController } from '@pellux/goodvibes-sdk/platform/agents/wrfc-controller';
4
4
  import { BasePanel } from './base-panel.ts';
5
5
  import type { WorkflowEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
6
- import type { UiEventFeed } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
6
+ import type { UiEventFeed } from '../runtime/ui-events.ts';
7
7
  import {
8
8
  buildPanelLine,
9
9
  buildPanelWorkspace,
@@ -14,7 +14,7 @@ import {
14
14
  buildStyledPanelLine,
15
15
  buildEmptyState,
16
16
  } from './polish.ts';
17
- import { getDisplayWidth } from '@pellux/goodvibes-sdk/platform/utils/terminal-width';
17
+ import { getDisplayWidth } from '../utils/terminal-width.ts';
18
18
 
19
19
  // ---------------------------------------------------------------------------
20
20
  // Colour palette
@@ -1,29 +1,10 @@
1
- import { type Line } from '@pellux/goodvibes-sdk/platform/types/grid';
1
+ import { type Line } from '../types/grid.ts';
2
2
  import { UIFactory } from '../renderer/ui-factory.ts';
3
3
  import type { PermissionCategory, PermissionRequestAnalysis } from '@pellux/goodvibes-sdk/platform/permissions/types';
4
4
  import { buildPermissionApprovalBrief, getDisplayArg } from '@pellux/goodvibes-sdk/platform/permissions/briefs/build';
5
5
 
6
- export interface PermissionPromptRequest {
7
- callId: string;
8
- tool: string;
9
- args: Record<string, unknown>;
10
- category: PermissionCategory;
11
- analysis: PermissionRequestAnalysis;
12
- workingDirectory?: string;
13
- }
14
-
15
- export interface PermissionPromptDecision {
16
- approved: boolean;
17
- remember?: boolean;
18
- }
19
-
20
- export type PermissionRequestHandler = (
21
- request: PermissionPromptRequest,
22
- ) => Promise<PermissionPromptDecision>;
23
-
24
- export interface PermissionRequest extends PermissionPromptRequest {
25
- resolve: (approved: boolean, remember?: boolean) => void;
26
- }
6
+ import type { PermissionPromptRequest, PermissionPromptDecision, PermissionRequestHandler, PermissionRequest } from '@pellux/goodvibes-sdk/platform/permissions/prompt';
7
+ export type { PermissionPromptRequest, PermissionPromptDecision, PermissionRequestHandler, PermissionRequest };
27
8
 
28
9
  /**
29
10
  * PermissionPromptUI - Renders a permission prompt as Line[] fragments.