@silo-code/sdk 0.57.0 → 0.59.0

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.
@@ -52,6 +52,12 @@ export interface ToolbarItemContext {
52
52
  kindId: string;
53
53
  workspaceId: string;
54
54
  params: Readonly<Record<string, unknown>>;
55
+ /**
56
+ * This panel's {@link DockPanelRecord.id} — the same id {@link
57
+ * Workspace.panels} enumerates. `undefined` for a panel kind that isn't
58
+ * `persistence: "recorded"` (no record exists to name).
59
+ */
60
+ recordId?: string;
55
61
  };
56
62
  }
57
63
  /**
@@ -107,15 +113,62 @@ export interface ToolbarItemFields<S extends ToolbarSurface = ToolbarSurface> {
107
113
  */
108
114
  checked?: (ctx: ContextKeys, target: ToolbarItemContext[S]) => boolean;
109
115
  }
116
+ /**
117
+ * The dropdown half of a {@link ToolbarCommandItemContribution} that sets
118
+ * {@link ToolbarCommandItemContribution.dropdown | dropdown} — the caret the
119
+ * host welds onto the right edge of the command control.
120
+ *
121
+ * It carries its own {@link ToolbarItemDropdown.label | label} and
122
+ * {@link ToolbarItemDropdown.tooltip | tooltip} because the two halves answer
123
+ * different questions: the action half names what clicking *does* ("Mark as
124
+ * follow-up: Bug"), the caret names what opening it *offers* ("Follow-up
125
+ * options"). Visibility is not its own concern — the whole control appears or
126
+ * hides together via {@link ToolbarItemFields.when | when}.
127
+ *
128
+ * @category Registration
129
+ * @public
130
+ */
131
+ export interface ToolbarItemDropdown<S extends ToolbarSurface = ToolbarSurface> {
132
+ /**
133
+ * Build the dropdown for this target. May be sync or async. The host
134
+ * anchors the menu on the caret half (`align: "end"`, toggle on) — the same
135
+ * chrome a {@link ToolbarMenuItemContribution} gets.
136
+ */
137
+ menu: (target: ToolbarItemContext[S]) => MenuEntry[] | Promise<MenuEntry[]>;
138
+ /**
139
+ * Accessible name for the caret half. Falls back to the item's
140
+ * {@link ToolbarItemFields.label | label} suffixed with "options".
141
+ */
142
+ label?: string;
143
+ /** Hover tooltip for the caret half. Falls back to `label`. */
144
+ tooltip?: string;
145
+ }
110
146
  /**
111
147
  * Command-backed toolbar control — click runs {@link ToolbarCommandItemContribution.command}.
112
148
  *
149
+ * Adding {@link ToolbarCommandItemContribution.dropdown | dropdown} turns it
150
+ * into a **split control**: one welded unit whose left half runs the command
151
+ * and whose right half opens a menu. Reach for that when a toolbar has a
152
+ * single obvious default action plus variations on it — "mark with the default
153
+ * label" next to "mark with…" — rather than registering two adjacent items,
154
+ * which the host is free to separate, reorder, or collapse chrome between.
155
+ *
113
156
  * @category Registration
114
157
  * @public
115
158
  */
116
159
  export interface ToolbarCommandItemContribution<S extends ToolbarSurface = ToolbarSurface> extends ToolbarItemFields<S> {
117
160
  /** The command to run; receives {@link ToolbarItemContext}[S] as its first arg. */
118
161
  command: string;
162
+ /**
163
+ * Optional dropdown half, welded to the command half as one split control.
164
+ * Omit for a plain command button.
165
+ *
166
+ * {@link ToolbarItemFields.checked | checked} still describes the *command* —
167
+ * but the host tints the whole control, caret included, so a marked split
168
+ * control reads as one pressed thing rather than a pressed button beside an
169
+ * unpressed caret.
170
+ */
171
+ dropdown?: ToolbarItemDropdown<S>;
119
172
  menu?: undefined;
120
173
  type?: undefined;
121
174
  }
@@ -134,6 +187,12 @@ export interface ToolbarMenuItemContribution<S extends ToolbarSurface = ToolbarS
134
187
  */
135
188
  menu: (target: ToolbarItemContext[S]) => MenuEntry[] | Promise<MenuEntry[]>;
136
189
  command?: undefined;
190
+ /**
191
+ * A menu-only control is already all dropdown — there is no action half to
192
+ * weld one onto. Use {@link ToolbarCommandItemContribution.dropdown} for a
193
+ * split control.
194
+ */
195
+ dropdown?: undefined;
137
196
  type?: undefined;
138
197
  }
139
198
  /**
@@ -188,8 +247,9 @@ export interface ToolbarSpacerContribution<S extends ToolbarSurface = ToolbarSur
188
247
  *
189
248
  * Interactive items set exactly one of
190
249
  * {@link ToolbarCommandItemContribution.command | command} or
191
- * {@link ToolbarMenuItemContribution.menu | menu}. Separators and spacers use
192
- * `type: "separator" | "spacer"`.
250
+ * {@link ToolbarMenuItemContribution.menu | menu}; a command item may also set
251
+ * {@link ToolbarCommandItemContribution.dropdown | dropdown} to become a split
252
+ * control. Separators and spacers use `type: "separator" | "spacer"`.
193
253
  *
194
254
  * Contributions are independent of context-menu items — an extension may
195
255
  * register either, both, or neither. Hosts only render items while that
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-items.d.ts","sourceRoot":"","sources":["../src/toolbar-items.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolbar-items.d.ts","sourceRoot":"","sources":["../src/toolbar-items.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -496,6 +496,15 @@ export interface MenuContext {
496
496
  kindId: string;
497
497
  workspaceId: string;
498
498
  params: Readonly<Record<string, unknown>>;
499
+ /**
500
+ * This tab's {@link DockPanelRecord.id} — the same id {@link
501
+ * Workspace.panels} enumerates, so a handler that persists something
502
+ * per-panel can key off it directly instead of rebuilding a
503
+ * `panelId → DockPanelRecord.id` index from `Workspace.panels` itself.
504
+ * `undefined` for a panel kind that isn't `persistence: "recorded"` (no
505
+ * record exists to name).
506
+ */
507
+ recordId?: string;
499
508
  };
500
509
  workspace: Workspace;
501
510
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silo-code/sdk",
3
- "version": "0.57.0",
3
+ "version": "0.59.0",
4
4
  "description": "The public, types-first SDK for building Silo extensions — the only surface third-party extensions import.",
5
5
  "license": "MIT",
6
6
  "author": "Dave Weaver",
@@ -23,9 +23,13 @@ import type { TabActivityBinder, TabIconBinder } from "./tab-adornment";
23
23
  * gone (no daemon to reattach to) after an unclean shutdown; nothing will
24
24
  * arrive to resolve this on its own.
25
25
  *
26
- * `"blocked"` (chat-kind only) is a turn suspended on
27
- * {@link AgentSessionHandle.onPermission} — a concrete, protocol-reported
28
- * question, not the inferred "no output for a while" guess `"idle"` is. It
26
+ * `"blocked"` (chat-kind only) is a turn suspended **awaiting a user
27
+ * answer** — either {@link AgentSessionHandle.onPermission} (the agent wants
28
+ * permission to run a tool) or {@link AgentSessionHandle.onElicitation} (the
29
+ * agent is asking a structured question). Both are concrete and
30
+ * protocol-reported, not the inferred "no output for a while" guess `"idle"`
31
+ * is, and they deliberately share one value: nothing a consumer renders would
32
+ * differ between them, and the user learns which it is on opening the tab. It
29
33
  * does not repeat the earlier `"waiting"` mistake: unlike a merely-idle
30
34
  * agent, it stays `"blocked"` even while its own session is the one on
31
35
  * screen, since "the agent needs you to answer something" is worth showing
@@ -1298,6 +1302,184 @@ export interface AgentPermissionRequest {
1298
1302
  respond(optionId: string): void;
1299
1303
  }
1300
1304
 
1305
+ /**
1306
+ * One choice in an {@link AgentElicitationQuestion} of kind `"select"` or
1307
+ * `"multi-select"`.
1308
+ *
1309
+ * @category Consumer Services
1310
+ * @public
1311
+ * @beta
1312
+ */
1313
+ export interface AgentElicitationOption {
1314
+ /** The value to send back as the answer. */
1315
+ readonly value: string;
1316
+ /** What to show the user. Falls back to {@link value} when the agent gave
1317
+ * no separate label. */
1318
+ readonly label: string;
1319
+ /** Secondary text, when the agent supplied one. */
1320
+ readonly description?: string;
1321
+ }
1322
+
1323
+ /**
1324
+ * Which control an {@link AgentElicitationQuestion} asks for.
1325
+ *
1326
+ * Silo renders a deliberate subset of JSON Schema — the shape the agents
1327
+ * actually send. Anything outside it degrades to `"text"` rather than being
1328
+ * dropped, so **every question always reaches the user**: free text is a
1329
+ * first-class answer in this protocol, not a fallback that loses information.
1330
+ *
1331
+ * @category Consumer Services
1332
+ * @public
1333
+ * @beta
1334
+ */
1335
+ export type AgentElicitationQuestionKind =
1336
+ | "select"
1337
+ | "multi-select"
1338
+ | "text"
1339
+ | "boolean"
1340
+ | "number";
1341
+
1342
+ /**
1343
+ * The free-text "Other" box belonging to one question — present when the agent
1344
+ * paired one with it, as Claude's `AskUserQuestion` bridge does for every
1345
+ * question it asks.
1346
+ *
1347
+ * A typed custom answer **overrides** the selection: that is the agent's own
1348
+ * precedence rule, applied for you by
1349
+ * {@link AgentElicitationRequest.respond}.
1350
+ *
1351
+ * @category Consumer Services
1352
+ * @public
1353
+ * @beta
1354
+ */
1355
+ export interface AgentElicitationCustomAnswer {
1356
+ /** The field the typed answer is sent under. Rarely needed — pass custom
1357
+ * text as {@link AgentElicitationAnswer.custom} and Silo routes it. */
1358
+ readonly field: string;
1359
+ /** The box's label, e.g. `"Other"`. */
1360
+ readonly label?: string;
1361
+ /** Longer helper text, when the agent gave one. */
1362
+ readonly description?: string;
1363
+ }
1364
+
1365
+ /**
1366
+ * One question in an {@link AgentElicitationRequest}.
1367
+ *
1368
+ * @category Consumer Services
1369
+ * @public
1370
+ * @beta
1371
+ */
1372
+ export interface AgentElicitationQuestion {
1373
+ /** Identifies the question when answering — the key in the map passed to
1374
+ * {@link AgentElicitationRequest.respond}. */
1375
+ readonly id: string;
1376
+ /** Which control to render. */
1377
+ readonly kind: AgentElicitationQuestionKind;
1378
+ /** The question to show. Never empty; for a single-question form this is
1379
+ * the request's own {@link AgentElicitationRequest.message}. */
1380
+ readonly prompt: string;
1381
+ /** A short header to show above {@link prompt}, when the agent gave one. */
1382
+ readonly title?: string;
1383
+ /** The choices, for `"select"` / `"multi-select"`. Never empty when
1384
+ * present — a question with no usable options arrives as `"text"`. */
1385
+ readonly options?: readonly AgentElicitationOption[];
1386
+ /** The question's own free-text box, when it has one. */
1387
+ readonly custom?: AgentElicitationCustomAnswer;
1388
+ }
1389
+
1390
+ /**
1391
+ * One question's answer, as passed to
1392
+ * {@link AgentElicitationRequest.respond}.
1393
+ *
1394
+ * Omit both fields — or omit the question from the map entirely — to leave it
1395
+ * unanswered; Silo sends no value for it rather than inventing one.
1396
+ *
1397
+ * @category Consumer Services
1398
+ * @public
1399
+ * @beta
1400
+ */
1401
+ export interface AgentElicitationAnswer {
1402
+ /**
1403
+ * The selection or typed value, matched to the question's
1404
+ * {@link AgentElicitationQuestion.kind}: an option `value` for `"select"`,
1405
+ * an array of them for `"multi-select"`, the text for `"text"`, a boolean,
1406
+ * or a number. A number may be passed as the string an input produced — it
1407
+ * is coerced, and **omitted** if it does not parse, since a malformed value
1408
+ * would make some agents discard the whole payload.
1409
+ */
1410
+ readonly value?: string | readonly string[] | boolean | number;
1411
+ /**
1412
+ * Free text the user typed into this question's
1413
+ * {@link AgentElicitationQuestion.custom} box. When non-empty it overrides
1414
+ * {@link value}, per the agent's own precedence rule.
1415
+ */
1416
+ readonly custom?: string;
1417
+ }
1418
+
1419
+ /**
1420
+ * The agent is **blocked on the user**: it is asking a structured question and
1421
+ * the turn will not proceed until one of {@link respond}, {@link decline} or
1422
+ * {@link cancel} is called. Delivered to
1423
+ * {@link AgentSessionHandle.onElicitation} (RFC 0062).
1424
+ *
1425
+ * This is the richer sibling of {@link AgentPermissionRequest} — several
1426
+ * questions in one ask, multi-select answers, per-question free text — and it
1427
+ * is what Claude's `AskUserQuestion` tool becomes. The surface is the
1428
+ * **parsed questions**, not the raw JSON Schema, so a chat UI never has to
1429
+ * reimplement the schema subset; `raw` is there for one that wants more.
1430
+ *
1431
+ * Auto-accept behavior is deliberately **not** extended to questions (RFC
1432
+ * 0047 is permission-only): there is no safe answer to invent, and guessing
1433
+ * would put words in the user's mouth and record them as the tool's answer.
1434
+ *
1435
+ * If no `onElicitation` listener is registered, Silo answers `cancel` on the
1436
+ * extension's behalf so the agent is never left hanging.
1437
+ *
1438
+ * @category Consumer Services
1439
+ * @public
1440
+ * @beta
1441
+ */
1442
+ export interface AgentElicitationRequest {
1443
+ /** The human-readable ask. For a single-question form this *is* the
1444
+ * question, and the question's `prompt` repeats it. */
1445
+ readonly message: string;
1446
+ /** The questions to put to the user, in the agent's order. */
1447
+ readonly questions: readonly AgentElicitationQuestion[];
1448
+ /**
1449
+ * True when the agent's schema named no fields: show {@link message} with
1450
+ * accept / decline / cancel and **no input**. Not a parse failure — with no
1451
+ * field to answer, an empty answer is the complete and correct reply.
1452
+ */
1453
+ readonly acknowledgeOnly: boolean;
1454
+ /** The tool call this question belongs to, when the agent sent one — the
1455
+ * same id as the matching {@link AgentToolCall.toolCallId}. */
1456
+ readonly toolCallId?: string;
1457
+ /** The raw Agent Client Protocol `elicitation/create` params, including
1458
+ * anything the parsed model above does not name. */
1459
+ readonly raw: Readonly<Record<string, unknown>>;
1460
+ /**
1461
+ * Accept with the collected answers, keyed by
1462
+ * {@link AgentElicitationQuestion.id}. Silo coerces each answer to the type
1463
+ * the agent declared and routes custom answers to their own field.
1464
+ *
1465
+ * Idempotent, and mutually exclusive with {@link decline} / {@link cancel} —
1466
+ * the first call wins and later ones are ignored.
1467
+ */
1468
+ respond(answers: Readonly<Record<string, AgentElicitationAnswer>>): void;
1469
+ /**
1470
+ * The user chose to **skip**. The agent is told so and the turn continues —
1471
+ * `claude-agent-acp` hands the model empty answers. This is the user's
1472
+ * decision, never Silo's.
1473
+ */
1474
+ decline(): void;
1475
+ /**
1476
+ * Abort the tool call the question belongs to. Stronger than
1477
+ * {@link decline}: the agent gives up on the call rather than continuing
1478
+ * without an answer.
1479
+ */
1480
+ cancel(): void;
1481
+ }
1482
+
1301
1483
  /**
1302
1484
  * One selectable value inside an {@link AgentSessionConfigOption}.
1303
1485
  *
@@ -1532,6 +1714,17 @@ export interface AgentSessionHandle {
1532
1714
  * with none, Silo answers `cancelled`.
1533
1715
  */
1534
1716
  onPermission(listener: (request: AgentPermissionRequest) => void): Disposable;
1717
+ /**
1718
+ * Subscribe to {@link AgentElicitationRequest}s — the agent asking the user
1719
+ * a structured question (RFC 0062). Returns a {@link Disposable}.
1720
+ *
1721
+ * Same contract as {@link onPermission}: with at least one listener
1722
+ * registered, answering is your responsibility; with none, Silo answers
1723
+ * `cancel`.
1724
+ */
1725
+ onElicitation(
1726
+ listener: (request: AgentElicitationRequest) => void,
1727
+ ): Disposable;
1535
1728
  /**
1536
1729
  * The session-level controls the agent advertised at connect — mode, model,
1537
1730
  * and whatever else it offers, each a self-describing
@@ -251,6 +251,14 @@ export interface EditorService extends TabAdornmentMethods {
251
251
  saveAs(): boolean;
252
252
  /** Close the active dock panel. Returns false if there's nothing to close. */
253
253
  closeActive(): boolean;
254
+ /**
255
+ * Switch to the editor's owning workspace and bring its tab to the front —
256
+ * including an untitled buffer or a diff view, neither reachable by
257
+ * re-calling {@link EditorService.open}. No-op if `editorId` names no open
258
+ * editor. `opts.workspaceId` disambiguates when known; omit it to search
259
+ * every open workspace.
260
+ */
261
+ focus(editorId: string, opts?: { workspaceId?: string }): void;
254
262
  /**
255
263
  * List the editor views that match `path` (or `null` for an untitled buffer),
256
264
  * highest-priority first, each flagged whether it's the one the host resolves
package/src/index.ts CHANGED
@@ -84,7 +84,7 @@ export type {
84
84
  EditorsState,
85
85
  EditorSaveEvent,
86
86
  } from "./editor-service";
87
- export type { PanelService } from "./panel-service";
87
+ export type { ActivePanelInfo, PanelService } from "./panel-service";
88
88
  export type {
89
89
  LayoutService,
90
90
  LayoutState,
@@ -142,6 +142,12 @@ export type {
142
142
  AgentSessionConfigChoice,
143
143
  AgentPermissionRequest,
144
144
  AgentPermissionOption,
145
+ AgentElicitationRequest,
146
+ AgentElicitationQuestion,
147
+ AgentElicitationQuestionKind,
148
+ AgentElicitationOption,
149
+ AgentElicitationCustomAnswer,
150
+ AgentElicitationAnswer,
145
151
  AgentCommand,
146
152
  AgentPromptCapabilities,
147
153
  } from "./agents-service";
@@ -183,6 +189,7 @@ export type {
183
189
  ToolbarItemContext,
184
190
  ToolbarItemFields,
185
191
  ToolbarCommandItemContribution,
192
+ ToolbarItemDropdown,
186
193
  ToolbarMenuItemContribution,
187
194
  ToolbarChromeFields,
188
195
  ToolbarSeparatorContribution,
@@ -1,8 +1,34 @@
1
+ import type { Disposable } from "./types";
1
2
  import type { TabAdornmentMethods } from "./tab-adornment";
2
3
 
3
4
  // `ctx.panels` — tab chrome for a dock panel tab of any `DockPanelKind` (RFC
4
5
  // 0046). The host implementation lives in the extension host.
5
6
 
7
+ /**
8
+ * A snapshot of the active center-dock panel, when it's a `DockPanelKind`
9
+ * other than the built-in editor or terminal. Returned by
10
+ * {@link PanelService.getState} and delivered to
11
+ * {@link PanelService.subscribe} listeners.
12
+ *
13
+ * @category Consumer Services
14
+ * @public
15
+ */
16
+ export interface ActivePanelInfo {
17
+ /** The active tab's own dockview id — the same string {@link PanelService.focus}
18
+ * and the tab-adornment methods take as their target. */
19
+ panelId: string;
20
+ /** The panel's {@link DockPanelKind.id}. */
21
+ kindId: string;
22
+ /** The workspace whose dock this panel is active in. */
23
+ workspaceId: string;
24
+ /**
25
+ * This tab's {@link DockPanelRecord.id}, when the kind is
26
+ * `persistence: "recorded"` — the same id {@link Workspace.panels}
27
+ * enumerates. `undefined` for a transient kind (no record exists to name).
28
+ */
29
+ recordId?: string;
30
+ }
31
+
6
32
  /**
7
33
  * Tab-chrome verbs for a dock panel tab of any {@link DockPanelKind} — the
8
34
  * bundled Chat transcript, a web viewer, a third-party panel. Target id is
@@ -23,4 +49,48 @@ import type { TabAdornmentMethods } from "./tab-adornment";
23
49
  * @category Consumer Services
24
50
  * @public
25
51
  */
26
- export interface PanelService extends TabAdornmentMethods {}
52
+ export interface PanelService extends TabAdornmentMethods {
53
+ /**
54
+ * Switch to the panel's owning workspace and bring its dock tab to the
55
+ * front. No-op if `panelId` names no open panel.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * for (const p of workspace.panels) {
60
+ * if (p.id === flaggedRecordId) ctx.panels.focus(p.panelId);
61
+ * }
62
+ * ```
63
+ */
64
+ focus(panelId: string): void;
65
+
66
+ /**
67
+ * Current frozen snapshot of the active panel — `null` whenever the active
68
+ * center-dock tab is the built-in editor or terminal, or nothing. Mirrors
69
+ * {@link EditorService.getState}: referentially stable between renders, so
70
+ * `useServiceState(ctx.panels)` works without extra memoization.
71
+ *
72
+ * A consumer that needs "is *this* flagged panel the one on screen"
73
+ * compares `recordId` (or `panelId`) against its own records — e.g. each
74
+ * entry's {@link DockPanelRecord.id} from {@link Workspace.panels}.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const active = ctx.panels.getState();
79
+ * if (active?.kindId === "silo.agents-chat-panel") {
80
+ * ctx.log.info(`Looking at panel ${active.panelId}`);
81
+ * }
82
+ * ```
83
+ */
84
+ getState(): ActivePanelInfo | null;
85
+
86
+ /**
87
+ * Subscribe to changes in the active panel. The listener is called whenever
88
+ * {@link PanelService.getState}'s value changes (tab focus moves, workspace
89
+ * switches, or the active tab becomes/stops being a non-editor/terminal
90
+ * panel). Returns a {@link Disposable} that cancels the subscription.
91
+ *
92
+ * Use `useServiceState(ctx.panels)` in React components instead of calling
93
+ * `subscribe` directly.
94
+ */
95
+ subscribe(listener: (state: ActivePanelInfo | null) => void): Disposable;
96
+ }
@@ -195,10 +195,6 @@ export interface TerminalService extends TabAdornmentMethods {
195
195
  */
196
196
  rename(terminalId: string, name: string): void;
197
197
 
198
- /**
199
- * Switch to the workspace containing this terminal and activate its tab in
200
- * the center dock. No-ops if the terminal id is unknown.
201
- */
202
198
  /**
203
199
  * The rows of this terminal's tab context menu — **Rename…**, then whatever
204
200
  * extensions contributed on the `"terminal/tab"`
@@ -223,6 +219,10 @@ export interface TerminalService extends TabAdornmentMethods {
223
219
  */
224
220
  getTabMenuItems(terminalId: string): MenuEntry[];
225
221
 
222
+ /**
223
+ * Switch to the workspace containing this terminal and activate its tab in
224
+ * the center dock. No-ops if the terminal id is unknown.
225
+ */
226
226
  focus(terminalId: string): void;
227
227
 
228
228
  /**
@@ -354,13 +354,17 @@ export interface TerminalService extends TabAdornmentMethods {
354
354
  ): Disposable;
355
355
 
356
356
  /**
357
- * The record id of the terminal tab that is currently active in the active
358
- * workspace's center dock, or `null` when an editor tab (or nothing) is
359
- * active. "Active" is the dock's single active panel — the tab the user is
360
- * looking at and typing into — so a terminal merely visible in a non-active
361
- * split does not count.
357
+ * Current frozen snapshot of which terminal is active — the record id of
358
+ * the terminal tab that is currently active in the active workspace's
359
+ * center dock, or `null` when an editor tab (or nothing) is active.
360
+ * "Active" is the dock's single active panel — the tab the user is looking
361
+ * at and typing into — so a terminal merely visible in a non-active split
362
+ * does not count. Identical value to the deprecated
363
+ * {@link TerminalService.getActive}; this is the {@link ReactiveService}-shaped
364
+ * replacement, so `useServiceState(ctx.terminals)` works like it does for
365
+ * {@link ExtensionContext.editors | ctx.editors}.
362
366
  */
363
- getActive(): string | null;
367
+ getState(): string | null;
364
368
 
365
369
  /**
366
370
  * Subscribe to active-terminal changes. The listener receives the terminal
@@ -370,17 +374,30 @@ export interface TerminalService extends TabAdornmentMethods {
370
374
  * workspace's active tab is published).
371
375
  *
372
376
  * Fires on tab activation, group activation, and workspace switches.
373
- * Returns a {@link Disposable} that cancels the subscription.
377
+ * Returns a {@link Disposable} that cancels the subscription. Identical
378
+ * event to the deprecated {@link TerminalService.subscribeActive}; see
379
+ * {@link TerminalService.getState}.
374
380
  *
375
381
  * @example
376
382
  * ```ts
377
383
  * // Clear a "needs attention" marker once the user views the terminal.
378
384
  * ctx.subscriptions.push(
379
- * ctx.terminals.subscribeActive((terminalId) => {
385
+ * ctx.terminals.subscribe((terminalId) => {
380
386
  * if (terminalId) attention.delete(terminalId);
381
387
  * }),
382
388
  * );
383
389
  * ```
384
390
  */
391
+ subscribe(listener: (terminalId: string | null) => void): Disposable;
392
+
393
+ /**
394
+ * @deprecated Prefer {@link TerminalService.getState} — identical value,
395
+ * `ReactiveService`-shaped (so it satisfies `useServiceState` directly).
396
+ */
397
+ getActive(): string | null;
398
+
399
+ /**
400
+ * @deprecated Prefer {@link TerminalService.subscribe} — identical event.
401
+ */
385
402
  subscribeActive(listener: (terminalId: string | null) => void): Disposable;
386
403
  }