@pellux/goodvibes-sdk 0.18.27 → 0.18.29

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 (93) hide show
  1. package/dist/_internal/platform/agents/orchestrator-runner.js +1 -1
  2. package/dist/_internal/platform/bookmarks/manager.d.ts +1 -1
  3. package/dist/_internal/platform/bookmarks/manager.d.ts.map +1 -1
  4. package/dist/_internal/platform/channels/surface-registry.js +3 -3
  5. package/dist/_internal/platform/config/api-keys.d.ts +29 -0
  6. package/dist/_internal/platform/config/api-keys.d.ts.map +1 -0
  7. package/dist/_internal/platform/config/api-keys.js +153 -0
  8. package/dist/_internal/platform/config/index.d.ts +1 -13
  9. package/dist/_internal/platform/config/index.d.ts.map +1 -1
  10. package/dist/_internal/platform/config/index.js +1 -138
  11. package/dist/_internal/platform/core/conversation-diff.d.ts +6 -2
  12. package/dist/_internal/platform/core/conversation-diff.d.ts.map +1 -1
  13. package/dist/_internal/platform/core/conversation.d.ts +13 -5
  14. package/dist/_internal/platform/core/conversation.d.ts.map +1 -1
  15. package/dist/_internal/platform/core/conversation.js +35 -1
  16. package/dist/_internal/platform/plugins/loader.d.ts +5 -1
  17. package/dist/_internal/platform/plugins/loader.d.ts.map +1 -1
  18. package/dist/_internal/platform/plugins/loader.js +7 -3
  19. package/dist/_internal/platform/runtime/bootstrap-hook-bridge.d.ts +10 -0
  20. package/dist/_internal/platform/runtime/bootstrap-hook-bridge.d.ts.map +1 -0
  21. package/dist/_internal/platform/runtime/bootstrap-hook-bridge.js +143 -0
  22. package/dist/_internal/platform/runtime/diagnostics/panels/panel-resources.d.ts +5 -5
  23. package/dist/_internal/platform/runtime/diagnostics/panels/panel-resources.d.ts.map +1 -1
  24. package/dist/_internal/platform/runtime/diagnostics/panels/panel-resources.js +3 -3
  25. package/dist/_internal/platform/runtime/diagnostics/types.d.ts +26 -13
  26. package/dist/_internal/platform/runtime/diagnostics/types.d.ts.map +1 -1
  27. package/dist/_internal/platform/runtime/diagnostics/types.js +4 -2
  28. package/dist/_internal/platform/runtime/mutable-runtime-state.d.ts +14 -0
  29. package/dist/_internal/platform/runtime/mutable-runtime-state.d.ts.map +1 -0
  30. package/dist/_internal/platform/runtime/mutable-runtime-state.js +1 -0
  31. package/dist/_internal/platform/runtime/ops/playbooks/permission-deadlock.js +2 -2
  32. package/dist/_internal/platform/runtime/perf/component-contracts.d.ts +114 -0
  33. package/dist/_internal/platform/runtime/perf/component-contracts.d.ts.map +1 -0
  34. package/dist/_internal/platform/runtime/perf/component-contracts.js +104 -0
  35. package/dist/_internal/platform/runtime/perf/component-health-monitor.d.ts +98 -0
  36. package/dist/_internal/platform/runtime/perf/component-health-monitor.d.ts.map +1 -0
  37. package/dist/_internal/platform/runtime/perf/component-health-monitor.js +248 -0
  38. package/dist/_internal/platform/runtime/perf/index.d.ts +6 -3
  39. package/dist/_internal/platform/runtime/perf/index.d.ts.map +1 -1
  40. package/dist/_internal/platform/runtime/perf/index.js +4 -2
  41. package/dist/_internal/platform/runtime/perf/panel-contracts.d.ts +6 -90
  42. package/dist/_internal/platform/runtime/perf/panel-contracts.d.ts.map +1 -1
  43. package/dist/_internal/platform/runtime/perf/panel-contracts.js +4 -83
  44. package/dist/_internal/platform/runtime/perf/panel-health-monitor.d.ts +4 -88
  45. package/dist/_internal/platform/runtime/perf/panel-health-monitor.d.ts.map +1 -1
  46. package/dist/_internal/platform/runtime/perf/panel-health-monitor.js +4 -236
  47. package/dist/_internal/platform/runtime/service-queries.d.ts +3 -0
  48. package/dist/_internal/platform/runtime/service-queries.d.ts.map +1 -0
  49. package/dist/_internal/platform/runtime/service-queries.js +1 -0
  50. package/dist/_internal/platform/runtime/services.d.ts +2 -2
  51. package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
  52. package/dist/_internal/platform/runtime/services.js +3 -3
  53. package/dist/_internal/platform/runtime/session-persistence.d.ts +3 -3
  54. package/dist/_internal/platform/runtime/session-persistence.d.ts.map +1 -1
  55. package/dist/_internal/platform/runtime/session-persistence.js +13 -13
  56. package/dist/_internal/platform/runtime/session-return-context.js +1 -1
  57. package/dist/_internal/platform/runtime/shell-command-services.d.ts +2 -2
  58. package/dist/_internal/platform/runtime/shell-command-services.d.ts.map +1 -1
  59. package/dist/_internal/platform/runtime/shell-command-services.js +2 -2
  60. package/dist/_internal/platform/runtime/shell-command-workspace.d.ts +2 -2
  61. package/dist/_internal/platform/runtime/shell-command-workspace.d.ts.map +1 -1
  62. package/dist/_internal/platform/runtime/shell-command-workspace.js +2 -2
  63. package/dist/_internal/platform/runtime/store/domains/index.d.ts +2 -0
  64. package/dist/_internal/platform/runtime/store/domains/index.d.ts.map +1 -1
  65. package/dist/_internal/platform/runtime/store/domains/index.js +1 -0
  66. package/dist/_internal/platform/runtime/store/selectors/index.d.ts +27 -14
  67. package/dist/_internal/platform/runtime/store/selectors/index.d.ts.map +1 -1
  68. package/dist/_internal/platform/runtime/store/selectors/index.js +35 -25
  69. package/dist/_internal/platform/runtime/store/state.d.ts +3 -4
  70. package/dist/_internal/platform/runtime/store/state.d.ts.map +1 -1
  71. package/dist/_internal/platform/runtime/store/state.js +3 -4
  72. package/dist/_internal/platform/runtime/system-message-policy.d.ts +18 -0
  73. package/dist/_internal/platform/runtime/system-message-policy.d.ts.map +1 -0
  74. package/dist/_internal/platform/runtime/system-message-policy.js +35 -0
  75. package/dist/_internal/platform/utils/clipboard.d.ts +3 -2
  76. package/dist/_internal/platform/utils/clipboard.d.ts.map +1 -1
  77. package/dist/_internal/platform/utils/clipboard.js +0 -17
  78. package/dist/_internal/platform/utils/notify.d.ts.map +1 -1
  79. package/dist/_internal/platform/utils/notify.js +4 -1
  80. package/dist/_internal/platform/utils/terminal-width.d.ts +13 -0
  81. package/dist/_internal/platform/utils/terminal-width.d.ts.map +1 -1
  82. package/dist/_internal/platform/utils/terminal-width.js +13 -0
  83. package/dist/_internal/platform/version.js +1 -1
  84. package/package.json +1 -1
  85. package/dist/_internal/platform/core/history.d.ts +0 -22
  86. package/dist/_internal/platform/core/history.d.ts.map +0 -1
  87. package/dist/_internal/platform/core/history.js +0 -43
  88. package/dist/_internal/platform/types/grid.d.ts +0 -27
  89. package/dist/_internal/platform/types/grid.d.ts.map +0 -1
  90. package/dist/_internal/platform/types/grid.js +0 -26
  91. package/dist/_internal/platform/utils/splash-lines.d.ts +0 -8
  92. package/dist/_internal/platform/utils/splash-lines.d.ts.map +0 -1
  93. package/dist/_internal/platform/utils/splash-lines.js +0 -32
@@ -1,92 +1,8 @@
1
1
  /**
2
- * PanelHealthMonitor enforces per-panel resource contracts.
2
+ * @deprecated This module has been renamed. Import from component-health-monitor.js instead.
3
3
  *
4
- * Tracks update rate and render cost per panel. Panels that exceed their
5
- * contracted budget are throttled (render gated to a minimum interval).
6
- * Panels with sustained violations are degraded (rendered at a fixed low rate).
7
- *
8
- * The monitor does NOT render panels itself — callers ask canRender() before
9
- * rendering and report the actual render cost via recordRender().
10
- *
11
- * This keeps the monitor policy-focused and the rendering path ignorant of
12
- * throttling policy details.
13
- */
14
- import type { PanelResourceContract, PanelHealthState } from './panel-contracts.js';
15
- /**
16
- * PanelHealthMonitor — tracks panel resource usage and enforces budgets.
17
- *
18
- * Usage:
19
- * 1. Register panels with register(panelId, category).
20
- * 2. Before rendering: if (!monitor.canRender(panelId, now)) skip the render.
21
- * 3. After rendering: monitor.recordRender(panelId, durationMs, now).
22
- * 4. Read health via getHealth(panelId) or getAllHealth().
4
+ * This file is a backward-compatibility shim. ComponentHealthMonitor is
5
+ * re-exported as PanelHealthMonitor for backward compatibility.
23
6
  */
24
- export declare class PanelHealthMonitor {
25
- private readonly _tracks;
26
- /**
27
- * Register a panel with the monitor.
28
- *
29
- * If the panel is already registered, this is a no-op.
30
- *
31
- * @param panelId - Unique panel identifier.
32
- * @param category - Panel category (used to select the base contract).
33
- * @param contractOverrides - Optional per-panel contract overrides.
34
- */
35
- register(panelId: string, category: string, contractOverrides?: Partial<Omit<PanelResourceContract, 'panelId'>>): void;
36
- /**
37
- * Deregister a panel, removing all tracking state.
38
- */
39
- deregister(panelId: string): void;
40
- /**
41
- * Check whether a panel is permitted to render at the given time.
42
- *
43
- * Records the render request for rate tracking regardless of the outcome.
44
- * If the panel is not registered, renders are always permitted.
45
- *
46
- * @param panelId - Panel to check.
47
- * @param now - Current epoch ms (defaults to Date.now()).
48
- * @returns true if the render is permitted; false if it should be skipped.
49
- */
50
- canRender(panelId: string, now?: number): boolean;
51
- /**
52
- * Record the actual render duration for a panel.
53
- *
54
- * Should be called after every permitted render completes. Updates the
55
- * p95 render cost and may escalate the panel's throttle status if the
56
- * render cost budget is violated.
57
- *
58
- * @param panelId - Panel that rendered.
59
- * @param durationMs - Actual render duration in milliseconds.
60
- * @param now - Epoch ms at render completion (defaults to Date.now()).
61
- */
62
- recordRender(panelId: string, durationMs: number, now?: number): void;
63
- /**
64
- * Return the current health state for a panel, or undefined if not registered.
65
- */
66
- getHealth(panelId: string): PanelHealthState | undefined;
67
- /**
68
- * Return health states for all registered panels.
69
- */
70
- getAllHealth(): PanelHealthState[];
71
- /**
72
- * Return the resource contract for a registered panel, or undefined.
73
- */
74
- getContract(panelId: string): PanelResourceContract | undefined;
75
- /**
76
- * Forcibly reset a panel's health state to normal.
77
- * Useful for tests or manual operator intervention.
78
- */
79
- resetHealth(panelId: string): void;
80
- private _rotateWindow;
81
- private _applyViolation;
82
- /**
83
- * Dual-path recovery: `_recordClean` handles render-cost-based recovery
84
- * (triggered from `recordRender` after a cheap render), while `_rotateWindow`
85
- * handles rate-based recovery (triggered at window boundaries). Both paths
86
- * call `_recover` once the clean-window threshold is met, so either signal
87
- * alone is sufficient to restore a panel to normal status.
88
- */
89
- private _recordClean;
90
- private _recover;
91
- }
7
+ export { ComponentHealthMonitor, PanelHealthMonitor } from './component-health-monitor.js';
92
8
  //# sourceMappingURL=panel-health-monitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"panel-health-monitor.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/perf/panel-health-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAqCpF;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAE9D;;;;;;;;OAQG;IACH,QAAQ,CACN,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,GAClE,IAAI;IAgBP;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO;IAmC7D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI;IA2BjF;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIxD;;OAEG;IACH,YAAY,IAAI,gBAAgB,EAAE;IAIlC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAI/D;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAalC,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,eAAe;IAiBvB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;CAOjB"}
1
+ {"version":3,"file":"panel-health-monitor.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/perf/panel-health-monitor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1,239 +1,7 @@
1
1
  /**
2
- * PanelHealthMonitor enforces per-panel resource contracts.
2
+ * @deprecated This module has been renamed. Import from component-health-monitor.js instead.
3
3
  *
4
- * Tracks update rate and render cost per panel. Panels that exceed their
5
- * contracted budget are throttled (render gated to a minimum interval).
6
- * Panels with sustained violations are degraded (rendered at a fixed low rate).
7
- *
8
- * The monitor does NOT render panels itself — callers ask canRender() before
9
- * rendering and report the actual render cost via recordRender().
10
- *
11
- * This keeps the monitor policy-focused and the rendering path ignorant of
12
- * throttling policy details.
13
- */
14
- import { CATEGORY_CONTRACTS, buildContract, createInitialPanelHealthState, } from './panel-contracts.js';
15
- /** Measurement window for update-rate enforcement (ms). */
16
- const RATE_WINDOW_MS = 1000;
17
- /** Number of recent render durations to keep for p95 calculation. */
18
- const RENDER_SAMPLE_CAPACITY = 20;
19
- /** Recovery: violations reset to 0 after this many consecutive clean windows. */
20
- const RECOVERY_CLEAN_WINDOWS = 3;
21
- /**
22
- * PanelHealthMonitor — tracks panel resource usage and enforces budgets.
23
- *
24
- * Usage:
25
- * 1. Register panels with register(panelId, category).
26
- * 2. Before rendering: if (!monitor.canRender(panelId, now)) skip the render.
27
- * 3. After rendering: monitor.recordRender(panelId, durationMs, now).
28
- * 4. Read health via getHealth(panelId) or getAllHealth().
4
+ * This file is a backward-compatibility shim. ComponentHealthMonitor is
5
+ * re-exported as PanelHealthMonitor for backward compatibility.
29
6
  */
30
- export class PanelHealthMonitor {
31
- _tracks = new Map();
32
- /**
33
- * Register a panel with the monitor.
34
- *
35
- * If the panel is already registered, this is a no-op.
36
- *
37
- * @param panelId - Unique panel identifier.
38
- * @param category - Panel category (used to select the base contract).
39
- * @param contractOverrides - Optional per-panel contract overrides.
40
- */
41
- register(panelId, category, contractOverrides) {
42
- if (this._tracks.has(panelId))
43
- return;
44
- const contract = buildContract(panelId, category, contractOverrides);
45
- const health = createInitialPanelHealthState(panelId);
46
- this._tracks.set(panelId, {
47
- contract,
48
- health,
49
- renderSamples: { buf: new Array(RENDER_SAMPLE_CAPACITY), head: 0, size: 0 },
50
- windowRequests: [],
51
- cleanWindows: 0,
52
- windowStart: 0,
53
- });
54
- }
55
- /**
56
- * Deregister a panel, removing all tracking state.
57
- */
58
- deregister(panelId) {
59
- this._tracks.delete(panelId);
60
- }
61
- /**
62
- * Check whether a panel is permitted to render at the given time.
63
- *
64
- * Records the render request for rate tracking regardless of the outcome.
65
- * If the panel is not registered, renders are always permitted.
66
- *
67
- * @param panelId - Panel to check.
68
- * @param now - Current epoch ms (defaults to Date.now()).
69
- * @returns true if the render is permitted; false if it should be skipped.
70
- */
71
- canRender(panelId, now = Date.now()) {
72
- const track = this._tracks.get(panelId);
73
- if (!track)
74
- return true; // unregistered panels are always permitted
75
- // Rotate the measurement window if needed
76
- this._rotateWindow(track, now);
77
- // Gate on throttle/degrade interval
78
- if (now < track.health.nextAllowedAt) {
79
- track.health.totalSuppressed++;
80
- return false;
81
- }
82
- // Record this request in the current window
83
- track.windowRequests.push(now);
84
- // Check update rate limit
85
- let requestsInWindow = 0;
86
- for (const t of track.windowRequests) {
87
- if (now - t < RATE_WINDOW_MS)
88
- requestsInWindow++;
89
- }
90
- // Note: stale entries older than RATE_WINDOW_MS are pruned at window rotation, not here
91
- const maxPerWindow = track.contract.maxUpdatesPerSecond;
92
- if (requestsInWindow > maxPerWindow) {
93
- // Rate exceeded: throttle or degrade
94
- this._applyViolation(track, now);
95
- track.health.totalSuppressed++;
96
- return false;
97
- }
98
- track.health.totalPermitted++;
99
- return true;
100
- }
101
- /**
102
- * Record the actual render duration for a panel.
103
- *
104
- * Should be called after every permitted render completes. Updates the
105
- * p95 render cost and may escalate the panel's throttle status if the
106
- * render cost budget is violated.
107
- *
108
- * @param panelId - Panel that rendered.
109
- * @param durationMs - Actual render duration in milliseconds.
110
- * @param now - Epoch ms at render completion (defaults to Date.now()).
111
- */
112
- recordRender(panelId, durationMs, now = Date.now()) {
113
- const track = this._tracks.get(panelId);
114
- if (!track)
115
- return;
116
- // Add sample to ring buffer (O(1) modular index — no shift/realloc)
117
- const rb = track.renderSamples;
118
- rb.buf[rb.head] = durationMs;
119
- rb.head = (rb.head + 1) % RENDER_SAMPLE_CAPACITY;
120
- if (rb.size < RENDER_SAMPLE_CAPACITY)
121
- rb.size++;
122
- // Update p95
123
- const samples = rb.buf.slice(0, rb.size);
124
- samples.sort((a, b) => a - b); // sort in-place, no second copy
125
- const p95Val = samples[Math.ceil(samples.length * 0.95) - 1] ?? 0;
126
- track.health.renderP95Ms = p95Val;
127
- track.health.lastRenderAt = now;
128
- track.health.rendersInWindow++;
129
- // Check render cost budget
130
- if (track.health.renderP95Ms > track.contract.maxRenderMs) {
131
- this._applyViolation(track, now);
132
- }
133
- else {
134
- // Render cost within budget — count as a clean observation
135
- this._recordClean(track);
136
- }
137
- }
138
- /**
139
- * Return the current health state for a panel, or undefined if not registered.
140
- */
141
- getHealth(panelId) {
142
- return this._tracks.get(panelId)?.health;
143
- }
144
- /**
145
- * Return health states for all registered panels.
146
- */
147
- getAllHealth() {
148
- return Array.from(this._tracks.values()).map((t) => ({ ...t.health }));
149
- }
150
- /**
151
- * Return the resource contract for a registered panel, or undefined.
152
- */
153
- getContract(panelId) {
154
- return this._tracks.get(panelId)?.contract;
155
- }
156
- /**
157
- * Forcibly reset a panel's health state to normal.
158
- * Useful for tests or manual operator intervention.
159
- */
160
- resetHealth(panelId) {
161
- const track = this._tracks.get(panelId);
162
- if (!track)
163
- return;
164
- track.health = createInitialPanelHealthState(panelId);
165
- track.renderSamples = { buf: new Array(RENDER_SAMPLE_CAPACITY), head: 0, size: 0 };
166
- track.windowRequests = [];
167
- track.cleanWindows = 0;
168
- }
169
- // ---------------------------------------------------------------------------
170
- // Private helpers
171
- // ---------------------------------------------------------------------------
172
- _rotateWindow(track, now) {
173
- if (track.windowStart === 0) {
174
- track.windowStart = now;
175
- return;
176
- }
177
- if (now - track.windowStart >= RATE_WINDOW_MS) {
178
- // Check for recovery
179
- let requestsLastWindow = 0;
180
- for (const t of track.windowRequests) {
181
- if (t >= track.windowStart && t < track.windowStart + RATE_WINDOW_MS)
182
- requestsLastWindow++;
183
- }
184
- const withinBudget = requestsLastWindow <= track.contract.maxUpdatesPerSecond;
185
- if (withinBudget) {
186
- track.cleanWindows++;
187
- if (track.cleanWindows >= RECOVERY_CLEAN_WINDOWS) {
188
- this._recover(track);
189
- }
190
- }
191
- else {
192
- track.cleanWindows = 0;
193
- }
194
- // Discard old requests
195
- track.windowRequests = track.windowRequests.filter((t) => now - t < RATE_WINDOW_MS);
196
- track.windowStart = now;
197
- track.health.rendersInWindow = 0;
198
- }
199
- }
200
- _applyViolation(track, now) {
201
- track.health.consecutiveViolations++;
202
- track.cleanWindows = 0;
203
- if (track.health.consecutiveViolations >= track.contract.degradeAfterViolations) {
204
- // Escalate to degraded
205
- track.health.throttleStatus = 'degraded';
206
- track.health.healthStatus = 'overloaded';
207
- track.health.nextAllowedAt = now + track.contract.degradedIntervalMs;
208
- }
209
- else {
210
- // Apply standard throttle
211
- track.health.throttleStatus = 'throttled';
212
- track.health.healthStatus = 'warning';
213
- track.health.nextAllowedAt = now + track.contract.throttleIntervalMs;
214
- }
215
- }
216
- /**
217
- * Dual-path recovery: `_recordClean` handles render-cost-based recovery
218
- * (triggered from `recordRender` after a cheap render), while `_rotateWindow`
219
- * handles rate-based recovery (triggered at window boundaries). Both paths
220
- * call `_recover` once the clean-window threshold is met, so either signal
221
- * alone is sufficient to restore a panel to normal status.
222
- */
223
- _recordClean(track) {
224
- // Only advance recovery if we're already throttled/degraded
225
- if (track.health.throttleStatus === 'normal')
226
- return;
227
- track.cleanWindows++;
228
- if (track.cleanWindows >= RECOVERY_CLEAN_WINDOWS) {
229
- this._recover(track);
230
- }
231
- }
232
- _recover(track) {
233
- track.health.throttleStatus = 'normal';
234
- track.health.healthStatus = 'healthy';
235
- track.health.consecutiveViolations = 0;
236
- track.health.nextAllowedAt = 0;
237
- track.cleanWindows = 0;
238
- }
239
- }
7
+ export { ComponentHealthMonitor, PanelHealthMonitor } from './component-health-monitor.js';
@@ -0,0 +1,3 @@
1
+ export type { EnvironmentVariableQuery, ServiceInspectionQuery, SubscriptionAccessQuery, LocalAuthInspectionQuery, SessionBrowserQuery, SessionMemoryQuery, ToolCatalogQuery, ProviderModelCatalogQuery, ProviderAccountInspectionQuery, ProviderRuntimeInspectionQuery, PlanDashboardQuery, OpsStrategyQuery, } from './ui-service-queries.js';
2
+ export { createEnvironmentVariableQuery, createProviderRuntimeInspectionQuery, } from './ui-service-queries.js';
3
+ //# sourceMappingURL=service-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-queries.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/service-queries.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,8BAA8B,EAC9B,8BAA8B,EAC9B,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,8BAA8B,EAC9B,oCAAoC,GACrC,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1 @@
1
+ export { createEnvironmentVariableQuery, createProviderRuntimeInspectionQuery, } from './ui-service-queries.js';
@@ -56,7 +56,7 @@ import { AdaptivePlanner } from '@pellux/goodvibes-sdk/platform/core/adaptive-pl
56
56
  import { IdempotencyStore } from '@pellux/goodvibes-sdk/platform/runtime/idempotency/index';
57
57
  import { OverflowHandler } from '@pellux/goodvibes-sdk/platform/tools/shared/overflow';
58
58
  import { ToolLLM } from '../config/tool-llm.js';
59
- import { PanelHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-health-monitor';
59
+ import { ComponentHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/component-health-monitor';
60
60
  import { WorktreeRegistry } from './worktree/registry.js';
61
61
  import { SandboxSessionRegistry } from './sandbox/session-registry.js';
62
62
  import { type ShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
@@ -124,7 +124,7 @@ export interface RuntimeServices {
124
124
  readonly channelPolicy: ChannelPolicyManager;
125
125
  readonly mcpRegistry: McpRegistry;
126
126
  readonly tokenAuditor: ApiTokenAuditor;
127
- readonly panelHealthMonitor: PanelHealthMonitor;
127
+ readonly componentHealthMonitor: ComponentHealthMonitor;
128
128
  readonly worktreeRegistry: WorktreeRegistry;
129
129
  readonly sandboxSessionRegistry: SandboxSessionRegistry;
130
130
  readonly webhookNotifier: WebhookNotifier;
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ import { ProjectIndex } from '@pellux/goodvibes-sdk/platform/state/project-index
58
58
  import { IdempotencyStore } from '@pellux/goodvibes-sdk/platform/runtime/idempotency/index';
59
59
  import { OverflowHandler } from '@pellux/goodvibes-sdk/platform/tools/shared/overflow';
60
60
  import { ToolLLM } from '../config/tool-llm.js';
61
- import { PanelHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-health-monitor';
61
+ import { ComponentHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/component-health-monitor';
62
62
  import { WorktreeRegistry } from './worktree/registry.js';
63
63
  import { SandboxSessionRegistry } from './sandbox/session-registry.js';
64
64
  import { createShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
@@ -288,7 +288,7 @@ export function createRuntimeServices(options) {
288
288
  mcpRegistry.setRuntimeBus(options.runtimeBus);
289
289
  mcpRegistry.setSandboxRuntime(configManager, sandboxSessionRegistry);
290
290
  const tokenAuditor = new ApiTokenAuditor({ managed: false });
291
- const panelHealthMonitor = new PanelHealthMonitor();
291
+ const componentHealthMonitor = new ComponentHealthMonitor();
292
292
  const worktreeRegistry = new WorktreeRegistry(workingDirectory, { surfaceRoot });
293
293
  const webhookNotifier = new WebhookNotifier();
294
294
  const replayEngine = new DeterministicReplayEngine(workingDirectory);
@@ -405,7 +405,7 @@ export function createRuntimeServices(options) {
405
405
  channelPolicy,
406
406
  mcpRegistry,
407
407
  tokenAuditor,
408
- panelHealthMonitor,
408
+ componentHealthMonitor,
409
409
  worktreeRegistry,
410
410
  sandboxSessionRegistry,
411
411
  webhookNotifier,
@@ -24,9 +24,9 @@ export type SessionPersistencePaths = {
24
24
  readonly workingDirectory: string;
25
25
  readonly homeDirectory: string;
26
26
  };
27
- export declare function getUserSessionsDir(workingDirectory: string): string;
28
- export declare function getLastSessionPointerPath(workingDirectory: string): string;
29
- export declare function getRecoveryFilePath(homeDirectory: string): string;
27
+ export declare function getUserSessionsDir(workingDirectory: string, surfaceRoot?: string): string;
28
+ export declare function getLastSessionPointerPath(workingDirectory: string, surfaceRoot?: string): string;
29
+ export declare function getRecoveryFilePath(homeDirectory: string, surfaceRoot?: string): string;
30
30
  export declare function generateUserSessionId(): string;
31
31
  export declare function saveSession(sessionId: string, data: SessionSnapshot, model: string, provider: string, title?: string, options?: SessionPersistenceOptions): void;
32
32
  export declare function persistConversation(sessionId: string, data: SessionSnapshot, model: string, provider: string, title?: string, options?: SessionPersistenceOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"session-persistence.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/session-persistence.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAoB,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAgCF,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAeN;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAGN;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAapG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,MAAM,GAAG,IAAI,CAWzF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,eAAe,GAAG,IAAI,CAYhG;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,EACjB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CA2BN;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAO5E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,gBAAgB,GAAG,IAAI,CAmC9F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,eAAe,GAAG,IAAI,CA6CpG"}
1
+ {"version":3,"file":"session-persistence.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/session-persistence.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAoB,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAgCF,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzF;AAED,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhG;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAeN;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAGN;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAapG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,MAAM,GAAG,IAAI,CAWzF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,eAAe,GAAG,IAAI,CAYhG;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,EACjB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CA2BN;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAO5E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,gBAAgB,GAAG,IAAI,CAmC9F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,eAAe,GAAG,IAAI,CA6CpG"}
@@ -31,14 +31,14 @@ function resolveSessionManager(options) {
31
31
  }
32
32
  return new SessionManager(requireWorkingDirectory(options), { surfaceRoot: options?.surfaceRoot });
33
33
  }
34
- export function getUserSessionsDir(workingDirectory) {
35
- return resolveScopedDirectory(workingDirectory, undefined, 'sessions');
34
+ export function getUserSessionsDir(workingDirectory, surfaceRoot) {
35
+ return resolveScopedDirectory(workingDirectory, surfaceRoot, 'sessions');
36
36
  }
37
- export function getLastSessionPointerPath(workingDirectory) {
38
- return join(getUserSessionsDir(workingDirectory), 'last-session.json');
37
+ export function getLastSessionPointerPath(workingDirectory, surfaceRoot) {
38
+ return join(getUserSessionsDir(workingDirectory, surfaceRoot), 'last-session.json');
39
39
  }
40
- export function getRecoveryFilePath(homeDirectory) {
41
- return resolveScopedDirectory(homeDirectory, undefined, 'recovery.jsonl');
40
+ export function getRecoveryFilePath(homeDirectory, surfaceRoot) {
41
+ return resolveScopedDirectory(homeDirectory, surfaceRoot, 'recovery.jsonl');
42
42
  }
43
43
  export function generateUserSessionId() {
44
44
  return randomBytes(4).toString('hex');
@@ -67,7 +67,7 @@ export function persistConversation(sessionId, data, model, provider, title = ''
67
67
  export function writeLastSessionPointer(sessionId, options) {
68
68
  try {
69
69
  const workingDirectory = requireWorkingDirectory(options);
70
- const pointerPath = getLastSessionPointerPath(workingDirectory);
70
+ const pointerPath = getLastSessionPointerPath(workingDirectory, options?.surfaceRoot);
71
71
  mkdirSync(dirname(pointerPath), { recursive: true });
72
72
  writeFileSync(pointerPath, JSON.stringify({ sessionId, timestamp: new Date().toISOString() }) + '\n', 'utf-8');
73
73
  }
@@ -78,7 +78,7 @@ export function writeLastSessionPointer(sessionId, options) {
78
78
  export function readLastSessionPointer(options) {
79
79
  try {
80
80
  const workingDirectory = requireWorkingDirectory(options);
81
- const pointerPath = getLastSessionPointerPath(workingDirectory);
81
+ const pointerPath = getLastSessionPointerPath(workingDirectory, options?.surfaceRoot);
82
82
  if (!existsSync(pointerPath))
83
83
  return null;
84
84
  const data = JSON.parse(readFileSync(pointerPath, 'utf-8'));
@@ -109,7 +109,7 @@ export function writeRecoveryFile(snapshot, sessionId, title = '', options) {
109
109
  if (!snapshot.messages.length)
110
110
  return;
111
111
  const homeDirectory = requireHomeDirectory(options);
112
- const recoveryFile = getRecoveryFilePath(homeDirectory);
112
+ const recoveryFile = getRecoveryFilePath(homeDirectory, options?.surfaceRoot);
113
113
  const lines = [];
114
114
  lines.push(JSON.stringify({ type: 'meta', sessionId, title, timestamp: Date.now() }));
115
115
  if (snapshot.titleSource || snapshot.returnContext) {
@@ -137,7 +137,7 @@ export function writeRecoveryFile(snapshot, sessionId, title = '', options) {
137
137
  export function deleteRecoveryFile(options) {
138
138
  try {
139
139
  const homeDirectory = requireHomeDirectory(options);
140
- unlinkSync(getRecoveryFilePath(homeDirectory));
140
+ unlinkSync(getRecoveryFilePath(homeDirectory, options?.surfaceRoot));
141
141
  }
142
142
  catch {
143
143
  // missing file is fine
@@ -149,11 +149,11 @@ export function checkRecoveryFile(options) {
149
149
  workingDirectory: requireWorkingDirectory(options),
150
150
  homeDirectory: requireHomeDirectory(options),
151
151
  });
152
- const recoveryFile = getRecoveryFilePath(homeDirectory);
152
+ const recoveryFile = getRecoveryFilePath(homeDirectory, options?.surfaceRoot);
153
153
  if (!existsSync(recoveryFile))
154
154
  return null;
155
155
  const recoveryMtime = statSync(recoveryFile).mtimeMs;
156
- const pointerPath = getLastSessionPointerPath(workingDirectory);
156
+ const pointerPath = getLastSessionPointerPath(workingDirectory, options?.surfaceRoot);
157
157
  if (existsSync(pointerPath)) {
158
158
  const lastCleanMtime = statSync(pointerPath).mtimeMs;
159
159
  if (recoveryMtime <= lastCleanMtime)
@@ -180,7 +180,7 @@ export function checkRecoveryFile(options) {
180
180
  export function loadRecoveryConversation(options) {
181
181
  try {
182
182
  const homeDirectory = requireHomeDirectory(options);
183
- const recoveryFile = getRecoveryFilePath(homeDirectory);
183
+ const recoveryFile = getRecoveryFilePath(homeDirectory, options?.surfaceRoot);
184
184
  const raw = readFileSync(recoveryFile, 'utf-8');
185
185
  const lines = raw.split('\n').filter(Boolean);
186
186
  if (lines.length < 2)
@@ -108,7 +108,7 @@ export async function maybeAssistReturnContextSummary(configManager, helperModel
108
108
  if (!enabled)
109
109
  return summary;
110
110
  const prompt = [
111
- 'You are generating a terse resume summary for a terminal coding session.',
111
+ 'You are generating a terse resume summary for a coding session.',
112
112
  'Return one sentence under 160 characters.',
113
113
  'Focus on what the operator should look at first.',
114
114
  '',
@@ -5,7 +5,7 @@ import type { HookWorkbench } from '../hooks/workbench.js';
5
5
  import type { KnowledgeService } from '../knowledge/index.js';
6
6
  import type { PluginManager } from '../plugins/manager.js';
7
7
  import type { PolicyRuntimeState } from './permissions/policy-runtime.js';
8
- import type { PanelHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-health-monitor';
8
+ import type { ComponentHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/component-health-monitor';
9
9
  import type { ShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
10
10
  import type { WorktreeRegistry } from './worktree/registry.js';
11
11
  import type { SandboxSessionRegistry } from './sandbox/session-registry.js';
@@ -33,7 +33,7 @@ export interface CreateBootstrapCommandShellServicesOptions {
33
33
  readonly adaptivePlanner?: AdaptivePlanner;
34
34
  readonly sessionOrchestration?: import('./shell-command-ops.js').ShellSessionOrchestrationService;
35
35
  readonly shellPaths: ShellPathService;
36
- readonly panelHealthMonitor: PanelHealthMonitor;
36
+ readonly componentHealthMonitor: ComponentHealthMonitor;
37
37
  readonly worktreeRegistry: WorktreeRegistry;
38
38
  readonly sandboxSessionRegistry: SandboxSessionRegistry;
39
39
  readonly readModels: import('./ui-read-models.js').UiReadModels;
@@ -1 +1 @@
1
- {"version":3,"file":"shell-command-services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/shell-command-services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-command-services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/shell-command-services.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@ import { createShellOpsServices, createShellPlanRuntime, createShellRemoteComman
3
3
  import { createShellPlatformServices } from './shell-command-platform.js';
4
4
  import { createShellWorkspaceServices } from './shell-command-workspace.js';
5
5
  export function createBootstrapCommandShellServices(options) {
6
- const { agentManager, acpManager, automationManager, modeManager, planManager, adaptivePlanner, sessionOrchestration, shellPaths, panelHealthMonitor, worktreeRegistry, sandboxSessionRegistry, readModels, serviceRegistry, subscriptionManager, secretsManager, localUserAuthManager, tokenAuditor, replayEngine, webhookNotifier, remoteRuntime, planRuntime, forensicsRegistry, policyRuntimeState, memoryRegistry, integrationHelpers, knowledgeService, pluginManager, hookWorkbench, } = options;
6
+ const { agentManager, acpManager, automationManager, modeManager, planManager, adaptivePlanner, sessionOrchestration, shellPaths, componentHealthMonitor, worktreeRegistry, sandboxSessionRegistry, readModels, serviceRegistry, subscriptionManager, secretsManager, localUserAuthManager, tokenAuditor, replayEngine, webhookNotifier, remoteRuntime, planRuntime, forensicsRegistry, policyRuntimeState, memoryRegistry, integrationHelpers, knowledgeService, pluginManager, hookWorkbench, } = options;
7
7
  return {
8
8
  workspace: createShellWorkspaceServices({
9
9
  shellPaths,
10
- panelHealthMonitor,
10
+ componentHealthMonitor,
11
11
  worktreeRegistry,
12
12
  sandboxSessionRegistry,
13
13
  }),
@@ -1,10 +1,10 @@
1
- import type { PanelHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-health-monitor';
1
+ import type { ComponentHealthMonitor } from '@pellux/goodvibes-sdk/platform/runtime/perf/component-health-monitor';
2
2
  import type { SandboxSessionRegistry } from './sandbox/session-registry.js';
3
3
  import type { ShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
4
4
  import type { WorktreeRegistry } from './worktree/registry.js';
5
5
  export interface CommandWorkspaceShellServices {
6
6
  readonly shellPaths?: ShellPathService;
7
- readonly panelHealthMonitor?: PanelHealthMonitor;
7
+ readonly componentHealthMonitor?: ComponentHealthMonitor;
8
8
  readonly worktreeRegistry?: WorktreeRegistry;
9
9
  readonly sandboxSessionRegistry?: SandboxSessionRegistry;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shell-command-workspace.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/shell-command-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kEAAkE,CAAC;AAC3G,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CAC1D;AAED,MAAM,WAAW,mCAAoC,SAAQ,6BAA6B;CAAG;AAE7F,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mCAAmC,GAC3C,6BAA6B,CAc/B"}
1
+ {"version":3,"file":"shell-command-workspace.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/shell-command-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sEAAsE,CAAC;AACnH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CAC1D;AAED,MAAM,WAAW,mCAAoC,SAAQ,6BAA6B;CAAG;AAE7F,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mCAAmC,GAC3C,6BAA6B,CAc/B"}