@silo-code/sdk 0.30.0 → 0.32.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.
Files changed (60) hide show
  1. package/dist/ActivityGlyph.d.ts +25 -0
  2. package/dist/ActivityGlyph.d.ts.map +1 -0
  3. package/dist/ActivityGlyph.js +25 -0
  4. package/dist/ActivityGlyph.js.map +1 -0
  5. package/dist/IconButton.d.ts +23 -6
  6. package/dist/IconButton.d.ts.map +1 -1
  7. package/dist/IconButton.js +14 -5
  8. package/dist/IconButton.js.map +1 -1
  9. package/dist/activity.d.ts +36 -0
  10. package/dist/activity.d.ts.map +1 -0
  11. package/dist/activity.js +33 -0
  12. package/dist/activity.js.map +1 -0
  13. package/dist/agents-service.d.ts +174 -0
  14. package/dist/agents-service.d.ts.map +1 -0
  15. package/dist/agents-service.js +2 -0
  16. package/dist/agents-service.js.map +1 -0
  17. package/dist/editor-service.d.ts +5 -1
  18. package/dist/editor-service.d.ts.map +1 -1
  19. package/dist/icon-button-classes.d.ts +10 -2
  20. package/dist/icon-button-classes.d.ts.map +1 -1
  21. package/dist/icon-button-classes.js +9 -5
  22. package/dist/icon-button-classes.js.map +1 -1
  23. package/dist/index.d.ts +8 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/phosphor-icon.d.ts +15 -0
  28. package/dist/phosphor-icon.d.ts.map +1 -0
  29. package/dist/phosphor-icon.js +2 -0
  30. package/dist/phosphor-icon.js.map +1 -0
  31. package/dist/tab-adornment.d.ts +193 -0
  32. package/dist/tab-adornment.d.ts.map +1 -0
  33. package/dist/tab-adornment.js +2 -0
  34. package/dist/tab-adornment.js.map +1 -0
  35. package/dist/terminal-service.d.ts +18 -35
  36. package/dist/terminal-service.d.ts.map +1 -1
  37. package/dist/toolbar-items.d.ts +171 -0
  38. package/dist/toolbar-items.d.ts.map +1 -0
  39. package/dist/toolbar-items.js +2 -0
  40. package/dist/toolbar-items.js.map +1 -0
  41. package/dist/types.d.ts +26 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/workspace-service.d.ts +66 -45
  44. package/dist/workspace-service.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/ActivityGlyph.tsx +43 -0
  47. package/src/IconButton.tsx +28 -6
  48. package/src/activity.test.ts +35 -0
  49. package/src/activity.ts +57 -0
  50. package/src/agents-service.ts +181 -0
  51. package/src/editor-service.ts +5 -1
  52. package/src/icon-button-classes.test.ts +10 -0
  53. package/src/icon-button-classes.ts +18 -5
  54. package/src/index.ts +33 -1
  55. package/src/phosphor-icon.ts +14 -0
  56. package/src/tab-adornment.ts +208 -0
  57. package/src/terminal-service.ts +21 -35
  58. package/src/toolbar-items.ts +190 -0
  59. package/src/types.ts +28 -0
  60. package/src/workspace-service.ts +72 -45
@@ -0,0 +1,25 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import { type Activity as ActivityKind, type ActivitySize } from "./activity.js";
3
+ /**
4
+ * Host-painted activity glyph — same look on workspace rows, CenterDock tabs,
5
+ * and extension UI. Pick an {@link Activity}; the host owns color and motion
6
+ * (ADR 0030). Omit `activity` only for the workspace-row neutral gray fallback.
7
+ *
8
+ * Styled purely via host-provided `.silo-activity*` classes — no stylesheet
9
+ * import is needed in the extension.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ActivityGlyph activity="working" size="md" />
14
+ * <ActivityGlyph activity="ready" />
15
+ * <ActivityGlyph size="sm" /> // workspace neutral (omit)
16
+ * ```
17
+ *
18
+ * @category Consumer Services
19
+ * @public
20
+ */
21
+ export declare function ActivityGlyph({ activity, size, className, ...rest }: {
22
+ activity?: ActivityKind;
23
+ size?: ActivitySize;
24
+ } & Omit<HTMLAttributes<HTMLSpanElement>, "children">): import("react").JSX.Element;
25
+ //# sourceMappingURL=ActivityGlyph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityGlyph.d.ts","sourceRoot":"","sources":["../src/ActivityGlyph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAEL,KAAK,QAAQ,IAAI,YAAY,EAC7B,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAW,EACX,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,+BASpD"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { activityClass, } from "./activity.js";
3
+ /**
4
+ * Host-painted activity glyph — same look on workspace rows, CenterDock tabs,
5
+ * and extension UI. Pick an {@link Activity}; the host owns color and motion
6
+ * (ADR 0030). Omit `activity` only for the workspace-row neutral gray fallback.
7
+ *
8
+ * Styled purely via host-provided `.silo-activity*` classes — no stylesheet
9
+ * import is needed in the extension.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ActivityGlyph activity="working" size="md" />
14
+ * <ActivityGlyph activity="ready" />
15
+ * <ActivityGlyph size="sm" /> // workspace neutral (omit)
16
+ * ```
17
+ *
18
+ * @category Consumer Services
19
+ * @public
20
+ */
21
+ export function ActivityGlyph({ activity, size = "sm", className, ...rest }) {
22
+ const classes = activityClass(activity, size);
23
+ return (_jsx("span", { className: className ? `${classes} ${className}` : classes, "aria-hidden": rest["aria-label"] == null ? true : undefined, ...rest }));
24
+ }
25
+ //# sourceMappingURL=ActivityGlyph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityGlyph.js","sourceRoot":"","sources":["../src/ActivityGlyph.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,aAAa,GAGd,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,SAAS,EACT,GAAG,IAAI,EAI4C;IACnD,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,CACL,eACE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,iBAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KACtD,IAAI,GACR,CACH,CAAC;AACJ,CAAC"}
@@ -1,33 +1,50 @@
1
1
  import type { ButtonHTMLAttributes, ReactNode } from "react";
2
- import { type IconButtonSize } from "./icon-button-classes.js";
3
- export type { IconButtonSize };
2
+ import { type IconButtonSize, type IconButtonVariant } from "./icon-button-classes.js";
3
+ export type { IconButtonSize, IconButtonVariant };
4
4
  /**
5
5
  * A square icon-only button — the kit's one answer for ✕, ⋮, ↻, ✏️, and
6
6
  * friends. `aria-label` is **required**: the icon is the only visual, so the
7
7
  * label is the accessible name. Pair with {@link Tooltip} so sighted users
8
8
  * get the same label on hover.
9
9
  *
10
+ * Sized in terms of `--silo-font-size-base` so the hit target and child SVGs
11
+ * scale with Silo's UI zoom (`uiFontSize`). Prefer Phosphor `size="1em"`
12
+ * (or omit a fixed px size) so the glyph tracks the button.
13
+ *
10
14
  * Styled purely via host-provided `.silo-icon-button*` classes — no
11
15
  * stylesheet import is needed in the extension.
12
16
  *
13
17
  * @example
14
18
  * ```tsx
15
19
  * <IconButton aria-label="Refresh" onClick={refresh}>
16
- * <RefreshIcon />
20
+ * <RefreshIcon size="1em" />
17
21
  * </IconButton>
18
22
  *
19
23
  * // compact — e.g. in a ListRow's trailing slot
20
24
  * <IconButton size="sm" aria-label="Pin" onClick={pin}>
21
- * <PinIcon />
25
+ * <PinIcon size="1em" />
26
+ * </IconButton>
27
+ *
28
+ * // panel / breadcrumb toolbar (local-web-viewer tone)
29
+ * <IconButton size="sm" variant="toolbar" aria-label="Mark">
30
+ * <FlagIcon size="1em" weight="bold" />
22
31
  * </IconButton>
23
32
  * ```
24
33
  *
25
34
  * @category Consumer Services
26
35
  * @public
27
36
  */
28
- export declare function IconButton({ size, className, type, children, "aria-label": ariaLabel, ...rest }: {
29
- /** 32px standalone / 26px for tight or inline contexts. */
37
+ export declare function IconButton({ size, variant, className, type, children, "aria-label": ariaLabel, ...rest }: {
38
+ /**
39
+ * Hit-target size in `em` of `--silo-font-size-base` (tracks Zoom In/Out).
40
+ * `normal` = 2.5em, `sm` = 2em (local-web-viewer toolbar buttons).
41
+ */
30
42
  size?: IconButtonSize;
43
+ /**
44
+ * `"toolbar"` — black/white toolbar-text icons, hover fill only, no
45
+ * press-scale. Use on editor/terminal breadcrumb clusters and panel bars.
46
+ */
47
+ variant?: IconButtonVariant;
31
48
  /** Required — the icon is the only visual. */
32
49
  "aria-label": string;
33
50
  children?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../src/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAe,EACf,SAAS,EACT,IAAe,EACf,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,GAAG,IAAI,EACR,EAAE;IACD,2DAA2D;IAC3D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,+BAY3E"}
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../src/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAe,EACf,OAAkB,EAClB,SAAS,EACT,IAAe,EACf,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,GAAG,IAAI,EACR,EAAE;IACD;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,+BAY3E"}
@@ -1,31 +1,40 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { iconButtonClass } from "./icon-button-classes.js";
2
+ import { iconButtonClass, } from "./icon-button-classes.js";
3
3
  /**
4
4
  * A square icon-only button — the kit's one answer for ✕, ⋮, ↻, ✏️, and
5
5
  * friends. `aria-label` is **required**: the icon is the only visual, so the
6
6
  * label is the accessible name. Pair with {@link Tooltip} so sighted users
7
7
  * get the same label on hover.
8
8
  *
9
+ * Sized in terms of `--silo-font-size-base` so the hit target and child SVGs
10
+ * scale with Silo's UI zoom (`uiFontSize`). Prefer Phosphor `size="1em"`
11
+ * (or omit a fixed px size) so the glyph tracks the button.
12
+ *
9
13
  * Styled purely via host-provided `.silo-icon-button*` classes — no
10
14
  * stylesheet import is needed in the extension.
11
15
  *
12
16
  * @example
13
17
  * ```tsx
14
18
  * <IconButton aria-label="Refresh" onClick={refresh}>
15
- * <RefreshIcon />
19
+ * <RefreshIcon size="1em" />
16
20
  * </IconButton>
17
21
  *
18
22
  * // compact — e.g. in a ListRow's trailing slot
19
23
  * <IconButton size="sm" aria-label="Pin" onClick={pin}>
20
- * <PinIcon />
24
+ * <PinIcon size="1em" />
25
+ * </IconButton>
26
+ *
27
+ * // panel / breadcrumb toolbar (local-web-viewer tone)
28
+ * <IconButton size="sm" variant="toolbar" aria-label="Mark">
29
+ * <FlagIcon size="1em" weight="bold" />
21
30
  * </IconButton>
22
31
  * ```
23
32
  *
24
33
  * @category Consumer Services
25
34
  * @public
26
35
  */
27
- export function IconButton({ size = "normal", className, type = "button", children, "aria-label": ariaLabel, ...rest }) {
28
- const classes = iconButtonClass(size);
36
+ export function IconButton({ size = "normal", variant = "normal", className, type = "button", children, "aria-label": ariaLabel, ...rest }) {
37
+ const classes = iconButtonClass(size, variant);
29
38
  return (_jsx("button", { type: type, "aria-label": ariaLabel, className: className ? `${classes} ${className}` : classes, ...rest, children: children }));
30
39
  }
31
40
  //# sourceMappingURL=IconButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../src/IconButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAuB,MAAM,uBAAuB,CAAC;AAI7E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,GAAG,QAAQ,EACf,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,GAAG,IAAI,EAOmE;IAC1E,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,CACL,iBACE,IAAI,EAAE,IAAI,gBACE,SAAS,EACrB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,KACtD,IAAI,YAEP,QAAQ,GACF,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../src/IconButton.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,eAAe,GAGhB,MAAM,uBAAuB,CAAC;AAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,GAAG,QAAQ,EACf,OAAO,GAAG,QAAQ,EAClB,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,GAAG,IAAI,EAemE;IAC1E,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,CACL,iBACE,IAAI,EAAE,IAAI,gBACE,SAAS,EACrB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,KACtD,IAAI,YAEP,QAAQ,GACF,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { AgentActivity } from "./agents-service.js";
2
+ /**
3
+ * Host-owned activity state for chrome (workspace rows, CenterDock tabs,
4
+ * SideDock tabs, and the public {@link Activity} glyph). Extensions pick a
5
+ * kind only — never an icon, color, or motion. See ADR 0030.
6
+ *
7
+ * @category Core Types
8
+ * @public
9
+ */
10
+ export type Activity = "working" | "ready" | "warn" | "error";
11
+ /**
12
+ * Glyph size for {@link Activity}. `"sm"` matches workspace status rows (~6px);
13
+ * `"md"` is slightly larger for CenterDock / SideDock tabs.
14
+ *
15
+ * @category Core Types
16
+ * @public
17
+ */
18
+ export type ActivitySize = "sm" | "md";
19
+ /**
20
+ * Map {@link AgentActivity} onto UI {@link Activity}. Returns `null` when there
21
+ * is nothing to paint (`none` / `dead` — callers may map `dead` → `"error"`
22
+ * themselves if they want chrome).
23
+ *
24
+ * @category Core Types
25
+ * @public
26
+ */
27
+ export declare function activityFromAgent(a: AgentActivity): Activity | null;
28
+ /**
29
+ * Resolve the host `.silo-activity*` class string. Pinned by unit tests
30
+ * (RFC 0016 class-contract pattern). When `activity` is omitted, uses the
31
+ * neutral workspace fallback (gray “none” look).
32
+ *
33
+ * @internal
34
+ */
35
+ export declare function activityClass(activity: Activity | undefined, size?: ActivitySize): string;
36
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,IAAI,CAYnE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,IAAI,GAAE,YAAmB,GACxB,MAAM,CAGR"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Map {@link AgentActivity} onto UI {@link Activity}. Returns `null` when there
3
+ * is nothing to paint (`none` / `dead` — callers may map `dead` → `"error"`
4
+ * themselves if they want chrome).
5
+ *
6
+ * @category Core Types
7
+ * @public
8
+ */
9
+ export function activityFromAgent(a) {
10
+ switch (a) {
11
+ case "working":
12
+ return "working";
13
+ case "idle":
14
+ return "ready";
15
+ case "error":
16
+ return "error";
17
+ case "none":
18
+ case "dead":
19
+ return null;
20
+ }
21
+ }
22
+ /**
23
+ * Resolve the host `.silo-activity*` class string. Pinned by unit tests
24
+ * (RFC 0016 class-contract pattern). When `activity` is omitted, uses the
25
+ * neutral workspace fallback (gray “none” look).
26
+ *
27
+ * @internal
28
+ */
29
+ export function activityClass(activity, size = "sm") {
30
+ const kind = activity ?? "none";
31
+ return `silo-activity silo-activity-${kind} silo-activity-${size}`;
32
+ }
33
+ //# sourceMappingURL=activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAgB;IAChD,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,QAA8B,EAC9B,OAAqB,IAAI;IAEzB,MAAM,IAAI,GAAG,QAAQ,IAAI,MAAM,CAAC;IAChC,OAAO,+BAA+B,IAAI,kBAAkB,IAAI,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,174 @@
1
+ import type { Disposable } from "./types.js";
2
+ import type { TerminalKind } from "./domain-types.js";
3
+ /**
4
+ * What a terminal's agent is currently doing, as classified by the host from
5
+ * OSC/output signals. `"none"` means no agent activity has been observed
6
+ * (including plain, non-agent shells). `"idle"` means the agent finished its
7
+ * last turn and is waiting for the next input — this is purely a fact about
8
+ * the agent itself, independent of whether anyone is looking at the
9
+ * terminal; see {@link AgentInfo.needsAttention} for the separate "has a
10
+ * human seen this" signal (an earlier design conflated the two into a
11
+ * `"waiting"`/`"done"` split on `activity` itself — dropped once it turned
12
+ * out to carry no information `needsAttention` didn't already have).
13
+ * `"dead"` is distinct from a merely `stale` restored state — see
14
+ * {@link AgentInfo.stale} — and means the terminal's backend was confirmed
15
+ * gone (no daemon to reattach to) after an unclean shutdown; nothing will
16
+ * arrive to resolve this on its own.
17
+ *
18
+ * @category Core Types
19
+ * @public
20
+ * @beta
21
+ */
22
+ export type AgentActivity = "none" | "working" | "idle" | "error" | "dead";
23
+ /**
24
+ * Live agent-activity and resume-identity state for one terminal, computed
25
+ * once by the host and shared across every subscriber — never recomputed
26
+ * per-extension. Returned by {@link AgentsService.getState} and
27
+ * {@link AgentsService.getByTerminalId}; delivered to
28
+ * {@link AgentsService.subscribe} listeners on every change.
29
+ *
30
+ * @category Consumer Services
31
+ * @public
32
+ * @beta
33
+ */
34
+ export interface AgentInfo {
35
+ /** The terminal record id this state belongs to. */
36
+ readonly terminalId: string;
37
+ /** The workspace this terminal belongs to. */
38
+ readonly workspaceId: string;
39
+ /** The terminal's kind at registration time (`"shell"`, `"claude"`, `"pi"`). */
40
+ readonly kind: TerminalKind;
41
+ /**
42
+ * Whether this terminal currently hosts an agent — true if it was created
43
+ * as one, or an agent-specific signal was observed in it (e.g. typing
44
+ * `claude` into a plain shell).
45
+ */
46
+ readonly isAgent: boolean;
47
+ /** Current classified activity. */
48
+ readonly activity: AgentActivity;
49
+ /**
50
+ * Sticky "finished, go look" flag: set when the agent goes idle in a
51
+ * terminal that wasn't the active one at that moment, and cleared only by
52
+ * {@link AgentsService.acknowledge}. Never set at all if the terminal
53
+ * *was* already active the instant the agent went idle — being watched
54
+ * live counts as already seen, no acknowledgment needed.
55
+ */
56
+ readonly needsAttention: boolean;
57
+ /** ISO timestamp of when `needsAttention` was set; undefined when not pending. */
58
+ readonly attentionSince?: string;
59
+ /** ISO timestamp of when the current `"working"` phase started; undefined otherwise. */
60
+ readonly workingSince?: string;
61
+ /**
62
+ * Soft, time-gap-based, **self-clearing** signal: this restored `working`/
63
+ * `needsAttention` duration followed a gap long enough that it can't be
64
+ * fully trusted — the agent may have finished without it being observed.
65
+ * The next live signal clears it automatically. Distinct from
66
+ * `activity === "dead"`, which is a hard, structural, non-self-resolving
67
+ * fact — see {@link AgentActivity}.
68
+ */
69
+ readonly stale: boolean;
70
+ /**
71
+ * Exact session identifier for the agent running in this terminal, when one
72
+ * could be determined. Present only when an opt-in `SessionStart` hook has
73
+ * reported it (see the Settings → Agents page); absent otherwise — Silo
74
+ * never *infers* a session id by directory/recency, since that can silently
75
+ * resolve to the wrong session. Populated live once the hook fires (not
76
+ * deferred to death), then persisted, so a consumer reacting to
77
+ * `activity === "dead"` can read it back.
78
+ */
79
+ readonly sessionId?: string;
80
+ /**
81
+ * A ready-to-show (and copy/paste) resume hint. Either an exact
82
+ * `"claude --resume 01abc..."` (when {@link AgentInfo.sessionId} was
83
+ * resolved via a hook) or an honest, session-id-less
84
+ * `"was running claude in ~/foo"` note (when it wasn't). Attached the first
85
+ * time the terminal's agent is detected and persisted, so it is available
86
+ * both live and at `activity === "dead"`.
87
+ */
88
+ readonly resumeCommand?: string;
89
+ /**
90
+ * Human-readable agent name, e.g. `"Claude Code"` or `"Codex CLI"`. Tells
91
+ * you *which* agent CLI is running in this terminal, independent of
92
+ * whether an exact session id was ever resolved — populated as soon as a
93
+ * known agent leader is detected at all (same moment
94
+ * {@link AgentInfo.resumeCommand} is first attached), not deferred until
95
+ * {@link AgentInfo.sessionId} is available.
96
+ */
97
+ readonly agentName?: string;
98
+ /**
99
+ * Stable catalog key for the agent, e.g. `"claude"` or `"codex"` — unlike
100
+ * {@link AgentInfo.agentName} (a display string meant for showing to the
101
+ * user), this is meant for an extension's own code to switch or compare
102
+ * on, and won't change if the display name is ever reworded. Populated at
103
+ * the same moment and lifecycle as `agentName`.
104
+ */
105
+ readonly agentId?: string;
106
+ }
107
+ /**
108
+ * Host-computed coding-agent observability — exposed as
109
+ * {@link ExtensionContext.agents}. Detection (what OSC/output signals mean
110
+ * for a given agent) and resume-hint resolution are both sealed inside the
111
+ * host implementation; there is no registration API. Mirrors
112
+ * {@link ProcessesService} in shape: one shared, canonical answer, not
113
+ * something each extension recomputes — reads are unscoped, and
114
+ * {@link AgentsService.acknowledge} is the one deliberately scoped mutation,
115
+ * the same pattern {@link ProcessesService.kill} establishes.
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * const sub = ctx.agents.subscribe((agents) => {
120
+ * const dead = agents.find((a) => a.activity === "dead");
121
+ * if (dead) ctx.ui.notify("info", dead.resumeCommand ?? "An agent session ended.");
122
+ * });
123
+ * ctx.subscriptions.push(sub);
124
+ * ```
125
+ *
126
+ * @category Consumer Services
127
+ * @public
128
+ * @beta
129
+ */
130
+ export interface AgentsService {
131
+ /**
132
+ * Current {@link AgentInfo} for every tracked terminal in the active
133
+ * workspace. Pass `{ allWorkspaces: true }` for every loaded workspace
134
+ * instead.
135
+ */
136
+ getState(options?: {
137
+ allWorkspaces?: boolean;
138
+ }): AgentInfo[];
139
+ /** Look up {@link AgentInfo} for a specific terminal tab by its record id. */
140
+ getByTerminalId(terminalId: string): AgentInfo | undefined;
141
+ /**
142
+ * Subscribe to changes in the active workspace's agent state. Pass
143
+ * `{ allWorkspaces: true }` to be notified across every loaded workspace
144
+ * instead. Returns a {@link Disposable} that cancels the subscription.
145
+ */
146
+ subscribe(listener: (state: AgentInfo[]) => void, options?: {
147
+ allWorkspaces?: boolean;
148
+ }): Disposable;
149
+ /**
150
+ * Acknowledge a finished run: clears {@link AgentInfo.needsAttention} (and
151
+ * its `attentionSince` timestamp). A no-op if the terminal wasn't pending
152
+ * attention. Doesn't touch `activity` — `"idle"` already correctly
153
+ * describes the agent both before and after acknowledgment; only whether
154
+ * a human has seen it changes.
155
+ *
156
+ * Deliberately **not** wired to focus automatically by the host — whether
157
+ * *viewing* a terminal should count as acknowledging it is a per-consumer
158
+ * policy call this method leaves to you, not a fixed rule `ctx.agents`
159
+ * imposes. Call it from wherever your own UI decides a run has been seen —
160
+ * typically `ctx.terminals.subscribeActive`, but it doesn't have to be.
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * // Acknowledge whenever the user actually looks at the terminal.
165
+ * ctx.subscriptions.push(
166
+ * ctx.terminals.subscribeActive((terminalId) => {
167
+ * if (terminalId) ctx.agents.acknowledge(terminalId);
168
+ * }),
169
+ * );
170
+ * ```
171
+ */
172
+ acknowledge(terminalId: string): void;
173
+ }
174
+ //# sourceMappingURL=agents-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-service.d.ts","sourceRoot":"","sources":["../src/agents-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,wFAAwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,EAAE,CAAC;IAC7D,8EAA8E;IAC9E,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3D;;;;OAIG;IACH,SAAS,CACP,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GACpC,UAAU,CAAC;IACd;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agents-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-service.js","sourceRoot":"","sources":["../src/agents-service.ts"],"names":[],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  import type { Disposable } from "./types.js";
2
2
  import type { Event } from "./event.js";
3
3
  import type { EditorMode } from "./domain-types.js";
4
+ import type { TabAdornmentMethods } from "./tab-adornment.js";
4
5
  /**
5
6
  * Options for the editor open methods.
6
7
  *
@@ -207,10 +208,13 @@ export interface EditorSaveEvent {
207
208
  * editors register save handlers. The single entry point for opening editors —
208
209
  * prefer it over reaching into workspace/editor state.
209
210
  *
211
+ * Tab chrome adornments (`setIcon` / `setIndicator` / …) take an **editor id**
212
+ * as the target — see {@link TabAdornmentMethods}.
213
+ *
210
214
  * @category Consumer Services
211
215
  * @public
212
216
  */
213
- export interface EditorService {
217
+ export interface EditorService extends TabAdornmentMethods {
214
218
  /**
215
219
  * Open a file in an editor tab. Promotes an existing preview, focuses an
216
220
  * already-open tab, or opens a new one.
@@ -1 +1 @@
1
- {"version":3,"file":"editor-service.d.ts","sourceRoot":"","sources":["../src/editor-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-service.d.ts","sourceRoot":"","sources":["../src/editor-service.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,19 @@
5
5
  * @internal
6
6
  */
7
7
  export type IconButtonSize = "normal" | "sm";
8
+ /**
9
+ * Visual tone for {@link IconButton}. `"toolbar"` matches the local-web-viewer
10
+ * bar buttons (toolbar-text icons, hover fill only, no press-scale).
11
+ *
12
+ * @internal
13
+ */
14
+ export type IconButtonVariant = "normal" | "toolbar";
8
15
  /**
9
16
  * Resolve the host `.silo-icon-button*` class string for an IconButton's
10
- * `size`. Default is the 32px standalone size; `sm` adds the 26px modifier.
17
+ * `size` + `variant`. Default is the standalone size; `sm` adds the compact
18
+ * modifier; `toolbar` swaps in the breadcrumb/panel-toolbar tone.
11
19
  *
12
20
  * @internal
13
21
  */
14
- export declare function iconButtonClass(size?: IconButtonSize): string;
22
+ export declare function iconButtonClass(size?: IconButtonSize, variant?: IconButtonVariant): string;
15
23
  //# sourceMappingURL=icon-button-classes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button-classes.d.ts","sourceRoot":"","sources":["../src/icon-button-classes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,cAAyB,GAAG,MAAM,CAIvE"}
1
+ {"version":3,"file":"icon-button-classes.d.ts","sourceRoot":"","sources":["../src/icon-button-classes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,GAAE,cAAyB,EAC/B,OAAO,GAAE,iBAA4B,GACpC,MAAM,CAKR"}
@@ -1,12 +1,16 @@
1
1
  /**
2
2
  * Resolve the host `.silo-icon-button*` class string for an IconButton's
3
- * `size`. Default is the 32px standalone size; `sm` adds the 26px modifier.
3
+ * `size` + `variant`. Default is the standalone size; `sm` adds the compact
4
+ * modifier; `toolbar` swaps in the breadcrumb/panel-toolbar tone.
4
5
  *
5
6
  * @internal
6
7
  */
7
- export function iconButtonClass(size = "normal") {
8
- return size === "sm"
9
- ? "silo-icon-button silo-icon-button-sm"
10
- : "silo-icon-button";
8
+ export function iconButtonClass(size = "normal", variant = "normal") {
9
+ const parts = ["silo-icon-button"];
10
+ if (size === "sm")
11
+ parts.push("silo-icon-button-sm");
12
+ if (variant === "toolbar")
13
+ parts.push("silo-icon-button-toolbar");
14
+ return parts.join(" ");
11
15
  }
12
16
  //# sourceMappingURL=icon-button-classes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button-classes.js","sourceRoot":"","sources":["../src/icon-button-classes.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAuB,QAAQ;IAC7D,OAAO,IAAI,KAAK,IAAI;QAClB,CAAC,CAAC,sCAAsC;QACxC,CAAC,CAAC,kBAAkB,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"icon-button-classes.js","sourceRoot":"","sources":["../src/icon-button-classes.ts"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAuB,QAAQ,EAC/B,UAA6B,QAAQ;IAErC,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -22,7 +22,14 @@ export type { EditorService, EditorSaveHandlers, OpenFileOptions, EditorViewInfo
22
22
  export type { LayoutService, LayoutState, SidePanelColumnState, SideLocation, } from "./layout-service.js";
23
23
  export type { ProcessService, ProcessSession, ProcessSpawnOptions, ProcessExecOptions, ProcessExecResult, } from "./process-service.js";
24
24
  export type { ProcessesService, ProcessInfo, ProcessStats, ProcessTreeNode, } from "./processes-service.js";
25
+ export type { AgentsService, AgentInfo, AgentActivity } from "./agents-service.js";
25
26
  export type { TerminalService, CreateTerminalInput, TerminalKind, TerminalRecord, TerminalTabDecoration, TerminalTabDecorationProvider, OscEvent, } from "./terminal-service.js";
27
+ export type { TabAdornmentColor, TabIconAdornment, TabIndicatorAdornment, TabIndicatorFlash, TabActivityAdornment, TabActivityFlash, TabIconContribution, TabIndicatorContribution, TabActivityContribution, TabIconBinder, TabIndicatorBinder, TabActivityBinder, TabAdornmentMethods, } from "./tab-adornment.js";
28
+ export type { Activity, ActivitySize } from "./activity.js";
29
+ export { activityFromAgent } from "./activity.js";
30
+ export { ActivityGlyph } from "./ActivityGlyph.js";
31
+ export type { PhosphorIconName } from "./phosphor-icon.js";
32
+ export type { ToolbarSurface, ToolbarItemContext, ToolbarItemFields, ToolbarCommandItemContribution, ToolbarMenuItemContribution, ToolbarChromeFields, ToolbarSeparatorContribution, ToolbarSpacerSize, ToolbarSpacerContribution, ToolbarItemContribution, } from "./toolbar-items.js";
26
33
  export type { FileService, FileMeta, FileChangeKind, FileChangeEvent, } from "./file-service.js";
27
34
  export type { SearchService, SearchOptions, SearchMatch, SearchFileResult, SearchResponse, } from "./search-service.js";
28
35
  export type { Permission } from "./permissions.js";
@@ -44,7 +51,7 @@ export { Tooltip } from "./Tooltip.js";
44
51
  export { Button } from "./Button.js";
45
52
  export type { ButtonVariant, ButtonSize } from "./Button.js";
46
53
  export { IconButton } from "./IconButton.js";
47
- export type { IconButtonSize } from "./IconButton.js";
54
+ export type { IconButtonSize, IconButtonVariant } from "./IconButton.js";
48
55
  export { Input } from "./Input.js";
49
56
  export { Textarea } from "./Textarea.js";
50
57
  export { SearchInput } from "./SearchInput.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,6 +15,8 @@
15
15
  *
16
16
  * @packageDocumentation
17
17
  */
18
+ export { activityFromAgent } from "./activity.js";
19
+ export { ActivityGlyph } from "./ActivityGlyph.js";
18
20
  export { PathDeniedError } from "./permissions.js";
19
21
  export { DND_MIME } from "./dnd-service.js";
20
22
  // Server-side HTTP client — bypasses CORS, readable response headers.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAiHH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA6BhD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAoBzC,sEAAsE;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkCjD,8EAA8E;AAC9E,8EAA8E;AAC9E,6DAA6D;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,yEAAyE;AACzE,iFAAiF;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,4EAA4E;AAC5E,qDAAqD;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,4DAA4D;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,wEAAwE;AACxE,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAUvE,6EAA6E;AAC7E,wEAAwE;AACxE,+CAA+C;AAC/C,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgHH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA6BhD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAoBzC,sEAAsE;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkCjD,8EAA8E;AAC9E,8EAA8E;AAC9E,6DAA6D;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,yEAAyE;AACzE,iFAAiF;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,4EAA4E;AAC5E,qDAAqD;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,4DAA4D;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,wEAAwE;AACxE,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAUvE,6EAA6E;AAC7E,wEAAwE;AACxE,+CAA+C;AAC/C,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Export name of an icon from `@phosphor-icons/react` — e.g. `"Flag"`,
3
+ * `"ArrowClockwise"`, `"PushPin"`. The host resolves the name and paints it:
4
+ * toolbar chrome uses `weight="bold"`; tab decorations use `weight="regular"`
5
+ * by default (`filled: true` → `weight="fill"`); both use `size="1em"` so
6
+ * glyphs track UI zoom.
7
+ *
8
+ * Use the PascalCase component name from
9
+ * [Phosphor](https://phosphoricons.com), not a kebab-case path.
10
+ *
11
+ * @category Registration
12
+ * @public
13
+ */
14
+ export type PhosphorIconName = string;
15
+ //# sourceMappingURL=phosphor-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phosphor-icon.d.ts","sourceRoot":"","sources":["../src/phosphor-icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC"}