@tai42/studio-sdk 1.5.0 → 1.7.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.
- package/dist/components/tool-picker.d.ts +8 -1
- package/dist/components/tool-picker.d.ts.map +1 -1
- package/dist/components/tool-picker.js +24 -13
- package/dist/components/tool-picker.js.map +1 -1
- package/dist/hooks/useApi.d.ts +14 -1
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useToolDisplayNames.d.ts +73 -0
- package/dist/hooks/useToolDisplayNames.d.ts.map +1 -0
- package/dist/hooks/useToolDisplayNames.js +115 -0
- package/dist/hooks/useToolDisplayNames.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/testing.d.ts +2 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +2 -0
- package/dist/testing.js.map +1 -1
- package/package.json +2 -2
- package/src/components/tool-picker.tsx +35 -11
- package/src/hooks/useToolDisplayNames.tsx +160 -0
- package/src/index.ts +10 -0
- package/src/testing.ts +2 -0
|
@@ -19,6 +19,13 @@ export interface ToolPickerProps {
|
|
|
19
19
|
readonly tagsByTool?: Readonly<Record<string, readonly string[]>>;
|
|
20
20
|
/** Tool names that are agent run tools; their option labels are suffixed " (agent)". */
|
|
21
21
|
readonly agentToolNames?: ReadonlySet<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Human display names keyed by raw tool name (from the tool-meta overlay). A
|
|
24
|
+
* mapped option's label reads `Display Name (raw_name)`; an unmapped name — or a
|
|
25
|
+
* mapping equal to the raw name — reads the bare raw name. The value `onChange`
|
|
26
|
+
* emits stays the raw name in every case.
|
|
27
|
+
*/
|
|
28
|
+
readonly displayNames?: Readonly<Record<string, string>>;
|
|
22
29
|
}
|
|
23
|
-
export declare function ToolPicker({ toolNames, value, onChange, disabled, placeholder, idPrefix, label, 'aria-label': ariaLabel, excludeNames, tagsByTool, agentToolNames, }: ToolPickerProps): import("react").JSX.Element;
|
|
30
|
+
export declare function ToolPicker({ toolNames, value, onChange, disabled, placeholder, idPrefix, label, 'aria-label': ariaLabel, excludeNames, tagsByTool, agentToolNames, displayNames, }: ToolPickerProps): import("react").JSX.Element;
|
|
24
31
|
//# sourceMappingURL=tool-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-picker.d.ts","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-picker.d.ts","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":"AAoCA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,wFAAwF;IACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D;AAyDD,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAA8B,EAC9B,QAAwB,EACxB,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,GACb,EAAE,eAAe,+BAgEjB"}
|
|
@@ -6,8 +6,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
6
6
|
* PRESENTATIONAL: the caller fetches the tool names (GET /api/tools) and owns the
|
|
7
7
|
* selected value; this component fetches nothing.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* passes all
|
|
9
|
+
* Four optional extensions, each inert unless supplied; the preset create flow
|
|
10
|
+
* passes all four and the multi-tool picker every one but `agentToolNames`:
|
|
11
11
|
* - `excludeNames` removes names from the options (e.g. a preset cannot be
|
|
12
12
|
* another preset's base, so the preset create flow excludes existing preset
|
|
13
13
|
* names). The server stays the authority — a slipped-through name is rejected
|
|
@@ -19,14 +19,21 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
19
19
|
* tool with " (agent)" (in grouped and flat renderings alike) — a purely visual
|
|
20
20
|
* honesty cue; the value stays the bare name and no option is excluded, since an
|
|
21
21
|
* agent run tool is a legal preset base for an authored agent.
|
|
22
|
+
* - `displayNames` (from the tool-meta overlay) overlays a human name onto the
|
|
23
|
+
* LABEL: a mapped option reads `Display Name (raw_name)`, an unmapped name (or a
|
|
24
|
+
* mapping equal to the raw name) reads the bare raw name. The value stays the raw
|
|
25
|
+
* name and grouping/filtering/exclusion key off raw names alone, so a display
|
|
26
|
+
* name is purely cosmetic.
|
|
22
27
|
*
|
|
23
|
-
* SAFETY: a tool name AND a
|
|
24
|
-
* TEXT through the DS `Select` (React escapes it) — never an HTML sink.
|
|
25
|
-
* a test.
|
|
28
|
+
* SAFETY: a tool name, a tag, AND a display name are server-supplied, so every one
|
|
29
|
+
* renders as TEXT through the DS `Select` (React escapes it) — never an HTML sink.
|
|
30
|
+
* Pinned by a test.
|
|
26
31
|
*/
|
|
27
32
|
import { useState } from 'react';
|
|
33
|
+
import { toolDisplayLabel } from '../hooks/useToolDisplayNames';
|
|
28
34
|
import { Field } from './field';
|
|
29
35
|
import { Select } from './select';
|
|
36
|
+
const NO_DISPLAY_NAMES = {};
|
|
30
37
|
const UNTAGGED = 'Untagged';
|
|
31
38
|
// Radix `Select.Item` forbids an empty-string value, so the "no filter" choice
|
|
32
39
|
// uses a sentinel rather than ''. A tool literally tagged this string would just
|
|
@@ -37,12 +44,16 @@ function groupFor(name, tagsByTool) {
|
|
|
37
44
|
const tags = [...(tagsByTool[name] ?? [])].sort((a, b) => a.localeCompare(b));
|
|
38
45
|
return tags[0] ?? UNTAGGED;
|
|
39
46
|
}
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
/**
|
|
48
|
+
* The option label: `Display Name (raw)` when a distinct non-empty display name maps
|
|
49
|
+
* the name, else the bare name; either way suffixed " (agent)" for an agent run tool.
|
|
50
|
+
*/
|
|
51
|
+
function optionLabel(name, displayNames, agentToolNames) {
|
|
52
|
+
const base = toolDisplayLabel(displayNames ?? NO_DISPLAY_NAMES, name);
|
|
53
|
+
return agentToolNames?.has(name) === true ? `${base} (agent)` : base;
|
|
43
54
|
}
|
|
44
55
|
/** Build the grouped option clusters (sorted group labels, "Untagged" last). */
|
|
45
|
-
function buildGroups(names, tagsByTool, agentToolNames) {
|
|
56
|
+
function buildGroups(names, tagsByTool, displayNames, agentToolNames) {
|
|
46
57
|
const byGroup = new Map();
|
|
47
58
|
for (const name of names) {
|
|
48
59
|
const group = groupFor(name, tagsByTool);
|
|
@@ -62,11 +73,11 @@ function buildGroups(names, tagsByTool, agentToolNames) {
|
|
|
62
73
|
label,
|
|
63
74
|
options: groupNames.map((name) => ({
|
|
64
75
|
value: name,
|
|
65
|
-
label: optionLabel(name, agentToolNames),
|
|
76
|
+
label: optionLabel(name, displayNames, agentToolNames),
|
|
66
77
|
})),
|
|
67
78
|
}));
|
|
68
79
|
}
|
|
69
|
-
export function ToolPicker({ toolNames, value, onChange, disabled, placeholder = 'Select a tool…', idPrefix = 'tool-picker', label, 'aria-label': ariaLabel, excludeNames, tagsByTool, agentToolNames, }) {
|
|
80
|
+
export function ToolPicker({ toolNames, value, onChange, disabled, placeholder = 'Select a tool…', idPrefix = 'tool-picker', label, 'aria-label': ariaLabel, excludeNames, tagsByTool, agentToolNames, displayNames, }) {
|
|
70
81
|
const [tagFilter, setTagFilter] = useState(ALL_TAGS);
|
|
71
82
|
const excluded = new Set(excludeNames ?? []);
|
|
72
83
|
const available = toolNames.filter((name) => !excluded.has(name));
|
|
@@ -77,7 +88,7 @@ export function ToolPicker({ toolNames, value, onChange, disabled, placeholder =
|
|
|
77
88
|
const filtered = tagsByTool !== undefined && tagFilter !== ALL_TAGS
|
|
78
89
|
? available.filter((name) => (tagsByTool[name] ?? []).includes(tagFilter))
|
|
79
90
|
: available;
|
|
80
|
-
const toolSelect = tagsByTool !== undefined ? (_jsx(Select, { groups: buildGroups(filtered, tagsByTool, agentToolNames), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled })) : (_jsx(Select
|
|
91
|
+
const toolSelect = tagsByTool !== undefined ? (_jsx(Select, { groups: buildGroups(filtered, tagsByTool, displayNames, agentToolNames), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled })) : (_jsx(Select
|
|
81
92
|
// Keep Radix controlled even when the caller's value is null: `''` matches no
|
|
82
93
|
// item (placeholder still shows) and avoids the uncontrolled→controlled warning
|
|
83
94
|
// a subsequent selection would otherwise trigger.
|
|
@@ -87,7 +98,7 @@ export function ToolPicker({ toolNames, value, onChange, disabled, placeholder =
|
|
|
87
98
|
// a subsequent selection would otherwise trigger.
|
|
88
99
|
options: filtered.map((name) => ({
|
|
89
100
|
value: name,
|
|
90
|
-
label: optionLabel(name, agentToolNames),
|
|
101
|
+
label: optionLabel(name, displayNames, agentToolNames),
|
|
91
102
|
})), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled }));
|
|
92
103
|
return (_jsxs("div", { "data-testid": idPrefix, className: "tai-stack tai-stack-2", children: [tagsByTool !== undefined && allTags.length > 0 ? (_jsx(Field, { label: "Filter by tag", children: _jsx(Select, { options: [
|
|
93
104
|
{ value: ALL_TAGS, label: 'All tags' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-picker.js","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"tool-picker.js","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":"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"}
|
package/dist/hooks/useApi.d.ts
CHANGED
|
@@ -873,6 +873,7 @@ export declare const ApiProvider: import("react").Provider<{
|
|
|
873
873
|
readonly readConversationTranscript: (query: import("@tai42/api-client").ConversationTranscriptQuery, signal?: AbortSignal) => Promise<{
|
|
874
874
|
items: {
|
|
875
875
|
created_at: number;
|
|
876
|
+
origin: "client" | "operator";
|
|
876
877
|
route_name: string;
|
|
877
878
|
door: "channel" | "api";
|
|
878
879
|
thread_id: string;
|
|
@@ -898,6 +899,18 @@ export declare const ApiProvider: import("react").Provider<{
|
|
|
898
899
|
next_page: number | null;
|
|
899
900
|
order: "asc" | "desc";
|
|
900
901
|
}>;
|
|
902
|
+
readonly sendConversationThreadMessage: (routeName: string, body: import("@tai42/api-client").ConversationThreadMessageBody) => Promise<{
|
|
903
|
+
thread_id: string;
|
|
904
|
+
message_id: string;
|
|
905
|
+
}>;
|
|
906
|
+
readonly getConversationThreadMode: (routeName: string, threadId: string, signal?: AbortSignal) => Promise<{
|
|
907
|
+
mode: "agent" | "manual";
|
|
908
|
+
source: "thread" | "route";
|
|
909
|
+
}>;
|
|
910
|
+
readonly setConversationThreadMode: (routeName: string, threadId: string, mode: import("@tai42/api-client").ConversationThreadMode) => Promise<{
|
|
911
|
+
mode: "agent" | "manual";
|
|
912
|
+
source: "thread" | "route";
|
|
913
|
+
}>;
|
|
901
914
|
readonly getWebEntryGate: (identity: string, signal?: AbortSignal) => Promise<{
|
|
902
915
|
enabled: boolean;
|
|
903
916
|
codes: {
|
|
@@ -1511,9 +1524,9 @@ export declare const ApiProvider: import("react").Provider<{
|
|
|
1511
1524
|
kind: string;
|
|
1512
1525
|
}[];
|
|
1513
1526
|
version: string;
|
|
1527
|
+
source: string;
|
|
1514
1528
|
ref: string;
|
|
1515
1529
|
latest: string | null;
|
|
1516
|
-
source: string;
|
|
1517
1530
|
installed_at: string;
|
|
1518
1531
|
update_available: boolean;
|
|
1519
1532
|
incompatible_newer: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD,eAAO,MAAM,WAAW;;+
|
|
1
|
+
{"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `useToolDisplayNames` — the tool-meta display-name overlay (`GET /api/tool-meta`),
|
|
3
|
+
* fetched once per auth flip and held as SDK state, so every tool picker across the
|
|
4
|
+
* app labels a raw tool name with its human display name from ONE shared read rather
|
|
5
|
+
* than each picker refetching the overlay.
|
|
6
|
+
*
|
|
7
|
+
* A PLAIN fetch state machine (`loading` / `ready` / `failed`), NOT TanStack Query:
|
|
8
|
+
* the SDK is the shared leaf across the plugin boundary and holds no query context,
|
|
9
|
+
* exactly as `useSystemKinds` and `useCapabilities` do. It is DELIBERATELY
|
|
10
|
+
* non-blocking — the map reads empty until the overlay is `ready`, and a failed fetch
|
|
11
|
+
* settles into `failed` QUIETLY (no unauthorized routing, no loud error) because a
|
|
12
|
+
* display name is cosmetic: a picker with an empty map falls back to the bare raw
|
|
13
|
+
* name, never a hard-failed page.
|
|
14
|
+
*/
|
|
15
|
+
import { type ReactNode } from 'react';
|
|
16
|
+
export type ToolDisplayNamesState = {
|
|
17
|
+
readonly status: 'loading';
|
|
18
|
+
} | {
|
|
19
|
+
readonly status: 'ready';
|
|
20
|
+
readonly names: Readonly<Record<string, string>>;
|
|
21
|
+
} | {
|
|
22
|
+
readonly status: 'failed';
|
|
23
|
+
readonly error: unknown;
|
|
24
|
+
};
|
|
25
|
+
export interface ToolDisplayNamesContextValue {
|
|
26
|
+
readonly state: ToolDisplayNamesState;
|
|
27
|
+
/** Re-fetch the overlay (drives the app-level refresh after a display-name edit). */
|
|
28
|
+
readonly reload: () => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Fetch the tool-meta overlay once the caller is authenticated and hold its
|
|
32
|
+
* display-name map as SDK state. Gated on `isAuthenticated` (the overlay is an authed
|
|
33
|
+
* read), so the login screen never fires a doomed request; a fetch failure settles
|
|
34
|
+
* into `failed` QUIETLY, because the consuming pickers fall back to the bare raw name.
|
|
35
|
+
* `reload` re-fetches on demand, so an app-level display-name write refreshes every
|
|
36
|
+
* picker without a remount.
|
|
37
|
+
*/
|
|
38
|
+
export declare function ToolDisplayNamesProvider({ children }: {
|
|
39
|
+
children: ReactNode;
|
|
40
|
+
}): import("react").FunctionComponentElement<import("react").ProviderProps<ToolDisplayNamesContextValue | null>>;
|
|
41
|
+
/**
|
|
42
|
+
* The live raw-name → display-name map — `{}` while the overlay is loading/failed, no
|
|
43
|
+
* provider is mounted, or no row carries a display name. A tool picker folds this into
|
|
44
|
+
* its option labels; an unmapped name reads the bare raw name.
|
|
45
|
+
*/
|
|
46
|
+
export declare function useToolDisplayNames(): Readonly<Record<string, string>>;
|
|
47
|
+
/**
|
|
48
|
+
* Re-fetch the display-name overlay. A surface that writes a display name calls this
|
|
49
|
+
* so the app-level provider — and every picker reading it — refreshes alongside the
|
|
50
|
+
* surface's own list invalidation. A no-op when no provider is mounted.
|
|
51
|
+
*/
|
|
52
|
+
export declare function useReloadToolDisplayNames(): () => void;
|
|
53
|
+
/**
|
|
54
|
+
* The option label for a raw tool name under a display-name map: `Display (raw)` when
|
|
55
|
+
* a display name maps the name and is non-empty AND differs from the raw name, else
|
|
56
|
+
* the bare raw name. Shared so every tool picker labels identically.
|
|
57
|
+
*
|
|
58
|
+
* @param names - the raw-name → display-name map (from {@link useToolDisplayNames}).
|
|
59
|
+
* @param rawName - the raw tool name to label.
|
|
60
|
+
* @returns `Display (raw)` for a distinct non-empty display name, else `rawName`.
|
|
61
|
+
*/
|
|
62
|
+
export declare function toolDisplayLabel(names: Readonly<Record<string, string>>, rawName: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* Serve a FIXED display-name map — the test seam for a consumer that renders a tool
|
|
65
|
+
* picker without a live fetch. `reload` defaults to a no-op; a test that exercises the
|
|
66
|
+
* reload wiring passes a spy. Re-exported from the testing entry.
|
|
67
|
+
*/
|
|
68
|
+
export declare function StaticToolDisplayNamesProvider({ names, reload, children, }: {
|
|
69
|
+
readonly names: Readonly<Record<string, string>>;
|
|
70
|
+
readonly reload?: () => void;
|
|
71
|
+
readonly children: ReactNode;
|
|
72
|
+
}): import("react").FunctionComponentElement<import("react").ProviderProps<ToolDisplayNamesContextValue | null>>;
|
|
73
|
+
//# sourceMappingURL=useToolDisplayNames.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useToolDisplayNames.d.ts","sourceRoot":"","sources":["../../src/hooks/useToolDisplayNames.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAMf,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,GAC9E;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAkBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,gHAqC7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAItE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,IAAI,CAGtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKjG;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,EAC7C,KAAK,EACL,MAAwB,EACxB,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B,gHAMA"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `useToolDisplayNames` — the tool-meta display-name overlay (`GET /api/tool-meta`),
|
|
3
|
+
* fetched once per auth flip and held as SDK state, so every tool picker across the
|
|
4
|
+
* app labels a raw tool name with its human display name from ONE shared read rather
|
|
5
|
+
* than each picker refetching the overlay.
|
|
6
|
+
*
|
|
7
|
+
* A PLAIN fetch state machine (`loading` / `ready` / `failed`), NOT TanStack Query:
|
|
8
|
+
* the SDK is the shared leaf across the plugin boundary and holds no query context,
|
|
9
|
+
* exactly as `useSystemKinds` and `useCapabilities` do. It is DELIBERATELY
|
|
10
|
+
* non-blocking — the map reads empty until the overlay is `ready`, and a failed fetch
|
|
11
|
+
* settles into `failed` QUIETLY (no unauthorized routing, no loud error) because a
|
|
12
|
+
* display name is cosmetic: a picker with an empty map falls back to the bare raw
|
|
13
|
+
* name, never a hard-failed page.
|
|
14
|
+
*/
|
|
15
|
+
import { createContext, createElement, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
|
|
16
|
+
import { useApi } from './useApi';
|
|
17
|
+
import { useAuth } from './useAuth';
|
|
18
|
+
const ToolDisplayNamesContext = createContext(null);
|
|
19
|
+
/** The shared empty map returned while loading/failed or with no provider mounted. */
|
|
20
|
+
const EMPTY_NAMES = Object.freeze({});
|
|
21
|
+
/** Build the raw-name → display-name map from the overlay rows with a truthy `display_name`. */
|
|
22
|
+
function buildNames(overlay) {
|
|
23
|
+
const names = {};
|
|
24
|
+
for (const row of overlay.meta) {
|
|
25
|
+
if (row.display_name !== null && row.display_name !== '') {
|
|
26
|
+
names[row.tool_name] = row.display_name;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return names;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Fetch the tool-meta overlay once the caller is authenticated and hold its
|
|
33
|
+
* display-name map as SDK state. Gated on `isAuthenticated` (the overlay is an authed
|
|
34
|
+
* read), so the login screen never fires a doomed request; a fetch failure settles
|
|
35
|
+
* into `failed` QUIETLY, because the consuming pickers fall back to the bare raw name.
|
|
36
|
+
* `reload` re-fetches on demand, so an app-level display-name write refreshes every
|
|
37
|
+
* picker without a remount.
|
|
38
|
+
*/
|
|
39
|
+
export function ToolDisplayNamesProvider({ children }) {
|
|
40
|
+
const { isAuthenticated } = useAuth();
|
|
41
|
+
const api = useApi();
|
|
42
|
+
const [state, setState] = useState({ status: 'loading' });
|
|
43
|
+
const [attempt, setAttempt] = useState(0);
|
|
44
|
+
const reload = useCallback(() => {
|
|
45
|
+
setAttempt((n) => n + 1);
|
|
46
|
+
}, []);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (!isAuthenticated) {
|
|
49
|
+
// No credential → nothing to read. Reset to the neutral `loading` state so the
|
|
50
|
+
// next sign-in re-fetches cleanly; every picker reads the empty map meanwhile.
|
|
51
|
+
setState({ status: 'loading' });
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const controller = new AbortController();
|
|
55
|
+
setState({ status: 'loading' });
|
|
56
|
+
api.listToolMeta(controller.signal).then((overlay) => {
|
|
57
|
+
if (!controller.signal.aborted) {
|
|
58
|
+
setState({ status: 'ready', names: buildNames(overlay) });
|
|
59
|
+
}
|
|
60
|
+
}, (error) => {
|
|
61
|
+
if (!controller.signal.aborted)
|
|
62
|
+
setState({ status: 'failed', error });
|
|
63
|
+
});
|
|
64
|
+
return () => {
|
|
65
|
+
controller.abort();
|
|
66
|
+
};
|
|
67
|
+
}, [api, isAuthenticated, attempt]);
|
|
68
|
+
const value = useMemo(() => ({ state, reload }), [state, reload]);
|
|
69
|
+
return createElement(ToolDisplayNamesContext.Provider, { value }, children);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The live raw-name → display-name map — `{}` while the overlay is loading/failed, no
|
|
73
|
+
* provider is mounted, or no row carries a display name. A tool picker folds this into
|
|
74
|
+
* its option labels; an unmapped name reads the bare raw name.
|
|
75
|
+
*/
|
|
76
|
+
export function useToolDisplayNames() {
|
|
77
|
+
const value = useContext(ToolDisplayNamesContext);
|
|
78
|
+
if (value?.state.status !== 'ready')
|
|
79
|
+
return EMPTY_NAMES;
|
|
80
|
+
return value.state.names;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Re-fetch the display-name overlay. A surface that writes a display name calls this
|
|
84
|
+
* so the app-level provider — and every picker reading it — refreshes alongside the
|
|
85
|
+
* surface's own list invalidation. A no-op when no provider is mounted.
|
|
86
|
+
*/
|
|
87
|
+
export function useReloadToolDisplayNames() {
|
|
88
|
+
const value = useContext(ToolDisplayNamesContext);
|
|
89
|
+
return value?.reload ?? (() => undefined);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The option label for a raw tool name under a display-name map: `Display (raw)` when
|
|
93
|
+
* a display name maps the name and is non-empty AND differs from the raw name, else
|
|
94
|
+
* the bare raw name. Shared so every tool picker labels identically.
|
|
95
|
+
*
|
|
96
|
+
* @param names - the raw-name → display-name map (from {@link useToolDisplayNames}).
|
|
97
|
+
* @param rawName - the raw tool name to label.
|
|
98
|
+
* @returns `Display (raw)` for a distinct non-empty display name, else `rawName`.
|
|
99
|
+
*/
|
|
100
|
+
export function toolDisplayLabel(names, rawName) {
|
|
101
|
+
const display = names[rawName];
|
|
102
|
+
return display !== undefined && display !== '' && display !== rawName
|
|
103
|
+
? `${display} (${rawName})`
|
|
104
|
+
: rawName;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Serve a FIXED display-name map — the test seam for a consumer that renders a tool
|
|
108
|
+
* picker without a live fetch. `reload` defaults to a no-op; a test that exercises the
|
|
109
|
+
* reload wiring passes a spy. Re-exported from the testing entry.
|
|
110
|
+
*/
|
|
111
|
+
export function StaticToolDisplayNamesProvider({ names, reload = () => undefined, children, }) {
|
|
112
|
+
const value = useMemo(() => ({ state: { status: 'ready', names }, reload }), [names, reload]);
|
|
113
|
+
return createElement(ToolDisplayNamesContext.Provider, { value }, children);
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=useToolDisplayNames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useToolDisplayNames.js","sourceRoot":"","sources":["../../src/hooks/useToolDisplayNames.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ export { CapabilityProvider, useCapabilities, useCanWrite, isFullProjection, cov
|
|
|
30
30
|
export type { CapabilityState, CapabilityContextValue } from './hooks/useCapabilities';
|
|
31
31
|
export { SystemKindsProvider, useSystemKinds, useFeatureOff, useFeatureOffMessage, } from './hooks/useSystemKinds';
|
|
32
32
|
export type { SystemKindsState } from './hooks/useSystemKinds';
|
|
33
|
+
export { ToolDisplayNamesProvider, useToolDisplayNames, useReloadToolDisplayNames, toolDisplayLabel, } from './hooks/useToolDisplayNames';
|
|
34
|
+
export type { ToolDisplayNamesState, ToolDisplayNamesContextValue, } from './hooks/useToolDisplayNames';
|
|
33
35
|
export { ThemeProvider, useTheme } from './hooks/useTheme';
|
|
34
36
|
export type { Theme, ThemePreference, ThemeState } from './hooks/useTheme';
|
|
35
37
|
export { useBreakpoint } from './hooks/useBreakpoint';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
@@ -32,6 +32,7 @@ export { UnauthorizedProvider, useOnUnauthorized } from './hooks/useUnauthorized
|
|
|
32
32
|
export { AuthProvider, useAuth } from './hooks/useAuth';
|
|
33
33
|
export { CapabilityProvider, useCapabilities, useCanWrite, isFullProjection, coversAnyRoute, coversRoute, coversWrite, } from './hooks/useCapabilities';
|
|
34
34
|
export { SystemKindsProvider, useSystemKinds, useFeatureOff, useFeatureOffMessage, } from './hooks/useSystemKinds';
|
|
35
|
+
export { ToolDisplayNamesProvider, useToolDisplayNames, useReloadToolDisplayNames, toolDisplayLabel, } from './hooks/useToolDisplayNames';
|
|
35
36
|
export { ThemeProvider, useTheme } from './hooks/useTheme';
|
|
36
37
|
export { useBreakpoint } from './hooks/useBreakpoint';
|
|
37
38
|
export { useInteractionsStream } from './hooks/useSse';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export { __resetContributions } from './plugin/registry';
|
|
3
3
|
/** Test-only plugin host-state reset, cleared between cases beside the registry reset. */
|
|
4
4
|
export { __resetPluginHostState } from './plugin/host-state';
|
|
5
|
+
/** Test-only injector: serves a fixed tool display-name map without a live fetch. */
|
|
6
|
+
export { StaticToolDisplayNamesProvider } from './hooks/useToolDisplayNames';
|
|
5
7
|
/**
|
|
6
8
|
* Fires every live `ResizeObserver` stub's callback for the elements it is
|
|
7
9
|
* observing. Pair it with `setElementOverflow` to drive a component that
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,0FAA0F;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,0FAA0F;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,qFAAqF;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAuE7E;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAK7D;AAMD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,GAAG,IAAI,CAMnF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CA4GxC;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,KAAK;IAC7B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC,CAQA"}
|
package/dist/testing.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export { __resetContributions } from './plugin/registry';
|
|
3
3
|
/** Test-only plugin host-state reset, cleared between cases beside the registry reset. */
|
|
4
4
|
export { __resetPluginHostState } from './plugin/host-state';
|
|
5
|
+
/** Test-only injector: serves a fixed tool display-name map without a live fetch. */
|
|
6
|
+
export { StaticToolDisplayNamesProvider } from './hooks/useToolDisplayNames';
|
|
5
7
|
const liveResizeObservers = new Set();
|
|
6
8
|
/**
|
|
7
9
|
* An in-memory Web Storage, installed for both `localStorage` and
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,0FAA0F;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tai42/studio-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "The Studio plugin contract, shared UI components, and hooks that every feature builds on.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "tai42 <oss@tai42.ai>",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"@radix-ui/react-select": "^2.3.2",
|
|
90
90
|
"@radix-ui/react-tabs": "^1.1.16",
|
|
91
91
|
"@radix-ui/react-tooltip": "^1.2.11",
|
|
92
|
-
"@tai42/api-client": "1.
|
|
92
|
+
"@tai42/api-client": "1.7.0"
|
|
93
93
|
},
|
|
94
94
|
"scripts": {
|
|
95
95
|
"build": "tsc -b tsconfig.build.json && node scripts/copy-assets.mjs",
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* PRESENTATIONAL: the caller fetches the tool names (GET /api/tools) and owns the
|
|
6
6
|
* selected value; this component fetches nothing.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* passes all
|
|
8
|
+
* Four optional extensions, each inert unless supplied; the preset create flow
|
|
9
|
+
* passes all four and the multi-tool picker every one but `agentToolNames`:
|
|
10
10
|
* - `excludeNames` removes names from the options (e.g. a preset cannot be
|
|
11
11
|
* another preset's base, so the preset create flow excludes existing preset
|
|
12
12
|
* names). The server stays the authority — a slipped-through name is rejected
|
|
@@ -18,13 +18,19 @@
|
|
|
18
18
|
* tool with " (agent)" (in grouped and flat renderings alike) — a purely visual
|
|
19
19
|
* honesty cue; the value stays the bare name and no option is excluded, since an
|
|
20
20
|
* agent run tool is a legal preset base for an authored agent.
|
|
21
|
+
* - `displayNames` (from the tool-meta overlay) overlays a human name onto the
|
|
22
|
+
* LABEL: a mapped option reads `Display Name (raw_name)`, an unmapped name (or a
|
|
23
|
+
* mapping equal to the raw name) reads the bare raw name. The value stays the raw
|
|
24
|
+
* name and grouping/filtering/exclusion key off raw names alone, so a display
|
|
25
|
+
* name is purely cosmetic.
|
|
21
26
|
*
|
|
22
|
-
* SAFETY: a tool name AND a
|
|
23
|
-
* TEXT through the DS `Select` (React escapes it) — never an HTML sink.
|
|
24
|
-
* a test.
|
|
27
|
+
* SAFETY: a tool name, a tag, AND a display name are server-supplied, so every one
|
|
28
|
+
* renders as TEXT through the DS `Select` (React escapes it) — never an HTML sink.
|
|
29
|
+
* Pinned by a test.
|
|
25
30
|
*/
|
|
26
31
|
import { useState } from 'react';
|
|
27
32
|
|
|
33
|
+
import { toolDisplayLabel } from '../hooks/useToolDisplayNames';
|
|
28
34
|
import { Field } from './field';
|
|
29
35
|
import { Select, type SelectGroup } from './select';
|
|
30
36
|
|
|
@@ -49,8 +55,16 @@ export interface ToolPickerProps {
|
|
|
49
55
|
readonly tagsByTool?: Readonly<Record<string, readonly string[]>>;
|
|
50
56
|
/** Tool names that are agent run tools; their option labels are suffixed " (agent)". */
|
|
51
57
|
readonly agentToolNames?: ReadonlySet<string>;
|
|
58
|
+
/**
|
|
59
|
+
* Human display names keyed by raw tool name (from the tool-meta overlay). A
|
|
60
|
+
* mapped option's label reads `Display Name (raw_name)`; an unmapped name — or a
|
|
61
|
+
* mapping equal to the raw name — reads the bare raw name. The value `onChange`
|
|
62
|
+
* emits stays the raw name in every case.
|
|
63
|
+
*/
|
|
64
|
+
readonly displayNames?: Readonly<Record<string, string>>;
|
|
52
65
|
}
|
|
53
66
|
|
|
67
|
+
const NO_DISPLAY_NAMES: Readonly<Record<string, string>> = {};
|
|
54
68
|
const UNTAGGED = 'Untagged';
|
|
55
69
|
// Radix `Select.Item` forbids an empty-string value, so the "no filter" choice
|
|
56
70
|
// uses a sentinel rather than ''. A tool literally tagged this string would just
|
|
@@ -63,15 +77,24 @@ function groupFor(name: string, tagsByTool: Readonly<Record<string, readonly str
|
|
|
63
77
|
return tags[0] ?? UNTAGGED;
|
|
64
78
|
}
|
|
65
79
|
|
|
66
|
-
/**
|
|
67
|
-
|
|
68
|
-
|
|
80
|
+
/**
|
|
81
|
+
* The option label: `Display Name (raw)` when a distinct non-empty display name maps
|
|
82
|
+
* the name, else the bare name; either way suffixed " (agent)" for an agent run tool.
|
|
83
|
+
*/
|
|
84
|
+
function optionLabel(
|
|
85
|
+
name: string,
|
|
86
|
+
displayNames: Readonly<Record<string, string>> | undefined,
|
|
87
|
+
agentToolNames: ReadonlySet<string> | undefined,
|
|
88
|
+
): string {
|
|
89
|
+
const base = toolDisplayLabel(displayNames ?? NO_DISPLAY_NAMES, name);
|
|
90
|
+
return agentToolNames?.has(name) === true ? `${base} (agent)` : base;
|
|
69
91
|
}
|
|
70
92
|
|
|
71
93
|
/** Build the grouped option clusters (sorted group labels, "Untagged" last). */
|
|
72
94
|
function buildGroups(
|
|
73
95
|
names: readonly string[],
|
|
74
96
|
tagsByTool: Readonly<Record<string, readonly string[]>>,
|
|
97
|
+
displayNames: Readonly<Record<string, string>> | undefined,
|
|
75
98
|
agentToolNames: ReadonlySet<string> | undefined,
|
|
76
99
|
): SelectGroup[] {
|
|
77
100
|
const byGroup = new Map<string, string[]>();
|
|
@@ -91,7 +114,7 @@ function buildGroups(
|
|
|
91
114
|
label,
|
|
92
115
|
options: groupNames.map((name) => ({
|
|
93
116
|
value: name,
|
|
94
|
-
label: optionLabel(name, agentToolNames),
|
|
117
|
+
label: optionLabel(name, displayNames, agentToolNames),
|
|
95
118
|
})),
|
|
96
119
|
}));
|
|
97
120
|
}
|
|
@@ -108,6 +131,7 @@ export function ToolPicker({
|
|
|
108
131
|
excludeNames,
|
|
109
132
|
tagsByTool,
|
|
110
133
|
agentToolNames,
|
|
134
|
+
displayNames,
|
|
111
135
|
}: ToolPickerProps) {
|
|
112
136
|
const [tagFilter, setTagFilter] = useState<string>(ALL_TAGS);
|
|
113
137
|
|
|
@@ -130,7 +154,7 @@ export function ToolPicker({
|
|
|
130
154
|
const toolSelect =
|
|
131
155
|
tagsByTool !== undefined ? (
|
|
132
156
|
<Select
|
|
133
|
-
groups={buildGroups(filtered, tagsByTool, agentToolNames)}
|
|
157
|
+
groups={buildGroups(filtered, tagsByTool, displayNames, agentToolNames)}
|
|
134
158
|
value={value ?? ''}
|
|
135
159
|
onValueChange={onChange}
|
|
136
160
|
placeholder={placeholder}
|
|
@@ -144,7 +168,7 @@ export function ToolPicker({
|
|
|
144
168
|
// a subsequent selection would otherwise trigger.
|
|
145
169
|
options={filtered.map((name) => ({
|
|
146
170
|
value: name,
|
|
147
|
-
label: optionLabel(name, agentToolNames),
|
|
171
|
+
label: optionLabel(name, displayNames, agentToolNames),
|
|
148
172
|
}))}
|
|
149
173
|
value={value ?? ''}
|
|
150
174
|
onValueChange={onChange}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `useToolDisplayNames` — the tool-meta display-name overlay (`GET /api/tool-meta`),
|
|
3
|
+
* fetched once per auth flip and held as SDK state, so every tool picker across the
|
|
4
|
+
* app labels a raw tool name with its human display name from ONE shared read rather
|
|
5
|
+
* than each picker refetching the overlay.
|
|
6
|
+
*
|
|
7
|
+
* A PLAIN fetch state machine (`loading` / `ready` / `failed`), NOT TanStack Query:
|
|
8
|
+
* the SDK is the shared leaf across the plugin boundary and holds no query context,
|
|
9
|
+
* exactly as `useSystemKinds` and `useCapabilities` do. It is DELIBERATELY
|
|
10
|
+
* non-blocking — the map reads empty until the overlay is `ready`, and a failed fetch
|
|
11
|
+
* settles into `failed` QUIETLY (no unauthorized routing, no loud error) because a
|
|
12
|
+
* display name is cosmetic: a picker with an empty map falls back to the bare raw
|
|
13
|
+
* name, never a hard-failed page.
|
|
14
|
+
*/
|
|
15
|
+
import {
|
|
16
|
+
createContext,
|
|
17
|
+
createElement,
|
|
18
|
+
useCallback,
|
|
19
|
+
useContext,
|
|
20
|
+
useEffect,
|
|
21
|
+
useMemo,
|
|
22
|
+
useState,
|
|
23
|
+
type ReactNode,
|
|
24
|
+
} from 'react';
|
|
25
|
+
import type { ToolMetaOverlay } from '@tai42/api-client';
|
|
26
|
+
|
|
27
|
+
import { useApi } from './useApi';
|
|
28
|
+
import { useAuth } from './useAuth';
|
|
29
|
+
|
|
30
|
+
export type ToolDisplayNamesState =
|
|
31
|
+
| { readonly status: 'loading' }
|
|
32
|
+
| { readonly status: 'ready'; readonly names: Readonly<Record<string, string>> }
|
|
33
|
+
| { readonly status: 'failed'; readonly error: unknown };
|
|
34
|
+
|
|
35
|
+
export interface ToolDisplayNamesContextValue {
|
|
36
|
+
readonly state: ToolDisplayNamesState;
|
|
37
|
+
/** Re-fetch the overlay (drives the app-level refresh after a display-name edit). */
|
|
38
|
+
readonly reload: () => void;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const ToolDisplayNamesContext = createContext<ToolDisplayNamesContextValue | null>(null);
|
|
42
|
+
|
|
43
|
+
/** The shared empty map returned while loading/failed or with no provider mounted. */
|
|
44
|
+
const EMPTY_NAMES: Readonly<Record<string, string>> = Object.freeze({});
|
|
45
|
+
|
|
46
|
+
/** Build the raw-name → display-name map from the overlay rows with a truthy `display_name`. */
|
|
47
|
+
function buildNames(overlay: ToolMetaOverlay): Readonly<Record<string, string>> {
|
|
48
|
+
const names: Record<string, string> = {};
|
|
49
|
+
for (const row of overlay.meta) {
|
|
50
|
+
if (row.display_name !== null && row.display_name !== '') {
|
|
51
|
+
names[row.tool_name] = row.display_name;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return names;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Fetch the tool-meta overlay once the caller is authenticated and hold its
|
|
59
|
+
* display-name map as SDK state. Gated on `isAuthenticated` (the overlay is an authed
|
|
60
|
+
* read), so the login screen never fires a doomed request; a fetch failure settles
|
|
61
|
+
* into `failed` QUIETLY, because the consuming pickers fall back to the bare raw name.
|
|
62
|
+
* `reload` re-fetches on demand, so an app-level display-name write refreshes every
|
|
63
|
+
* picker without a remount.
|
|
64
|
+
*/
|
|
65
|
+
export function ToolDisplayNamesProvider({ children }: { children: ReactNode }) {
|
|
66
|
+
const { isAuthenticated } = useAuth();
|
|
67
|
+
const api = useApi();
|
|
68
|
+
const [state, setState] = useState<ToolDisplayNamesState>({ status: 'loading' });
|
|
69
|
+
const [attempt, setAttempt] = useState(0);
|
|
70
|
+
|
|
71
|
+
const reload = useCallback(() => {
|
|
72
|
+
setAttempt((n) => n + 1);
|
|
73
|
+
}, []);
|
|
74
|
+
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
if (!isAuthenticated) {
|
|
77
|
+
// No credential → nothing to read. Reset to the neutral `loading` state so the
|
|
78
|
+
// next sign-in re-fetches cleanly; every picker reads the empty map meanwhile.
|
|
79
|
+
setState({ status: 'loading' });
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const controller = new AbortController();
|
|
83
|
+
setState({ status: 'loading' });
|
|
84
|
+
api.listToolMeta(controller.signal).then(
|
|
85
|
+
(overlay) => {
|
|
86
|
+
if (!controller.signal.aborted) {
|
|
87
|
+
setState({ status: 'ready', names: buildNames(overlay) });
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
(error: unknown) => {
|
|
91
|
+
if (!controller.signal.aborted) setState({ status: 'failed', error });
|
|
92
|
+
},
|
|
93
|
+
);
|
|
94
|
+
return () => {
|
|
95
|
+
controller.abort();
|
|
96
|
+
};
|
|
97
|
+
}, [api, isAuthenticated, attempt]);
|
|
98
|
+
|
|
99
|
+
const value = useMemo<ToolDisplayNamesContextValue>(() => ({ state, reload }), [state, reload]);
|
|
100
|
+
|
|
101
|
+
return createElement(ToolDisplayNamesContext.Provider, { value }, children);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* The live raw-name → display-name map — `{}` while the overlay is loading/failed, no
|
|
106
|
+
* provider is mounted, or no row carries a display name. A tool picker folds this into
|
|
107
|
+
* its option labels; an unmapped name reads the bare raw name.
|
|
108
|
+
*/
|
|
109
|
+
export function useToolDisplayNames(): Readonly<Record<string, string>> {
|
|
110
|
+
const value = useContext(ToolDisplayNamesContext);
|
|
111
|
+
if (value?.state.status !== 'ready') return EMPTY_NAMES;
|
|
112
|
+
return value.state.names;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Re-fetch the display-name overlay. A surface that writes a display name calls this
|
|
117
|
+
* so the app-level provider — and every picker reading it — refreshes alongside the
|
|
118
|
+
* surface's own list invalidation. A no-op when no provider is mounted.
|
|
119
|
+
*/
|
|
120
|
+
export function useReloadToolDisplayNames(): () => void {
|
|
121
|
+
const value = useContext(ToolDisplayNamesContext);
|
|
122
|
+
return value?.reload ?? (() => undefined);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* The option label for a raw tool name under a display-name map: `Display (raw)` when
|
|
127
|
+
* a display name maps the name and is non-empty AND differs from the raw name, else
|
|
128
|
+
* the bare raw name. Shared so every tool picker labels identically.
|
|
129
|
+
*
|
|
130
|
+
* @param names - the raw-name → display-name map (from {@link useToolDisplayNames}).
|
|
131
|
+
* @param rawName - the raw tool name to label.
|
|
132
|
+
* @returns `Display (raw)` for a distinct non-empty display name, else `rawName`.
|
|
133
|
+
*/
|
|
134
|
+
export function toolDisplayLabel(names: Readonly<Record<string, string>>, rawName: string): string {
|
|
135
|
+
const display = names[rawName];
|
|
136
|
+
return display !== undefined && display !== '' && display !== rawName
|
|
137
|
+
? `${display} (${rawName})`
|
|
138
|
+
: rawName;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Serve a FIXED display-name map — the test seam for a consumer that renders a tool
|
|
143
|
+
* picker without a live fetch. `reload` defaults to a no-op; a test that exercises the
|
|
144
|
+
* reload wiring passes a spy. Re-exported from the testing entry.
|
|
145
|
+
*/
|
|
146
|
+
export function StaticToolDisplayNamesProvider({
|
|
147
|
+
names,
|
|
148
|
+
reload = () => undefined,
|
|
149
|
+
children,
|
|
150
|
+
}: {
|
|
151
|
+
readonly names: Readonly<Record<string, string>>;
|
|
152
|
+
readonly reload?: () => void;
|
|
153
|
+
readonly children: ReactNode;
|
|
154
|
+
}) {
|
|
155
|
+
const value = useMemo<ToolDisplayNamesContextValue>(
|
|
156
|
+
() => ({ state: { status: 'ready', names }, reload }),
|
|
157
|
+
[names, reload],
|
|
158
|
+
);
|
|
159
|
+
return createElement(ToolDisplayNamesContext.Provider, { value }, children);
|
|
160
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -71,6 +71,16 @@ export {
|
|
|
71
71
|
useFeatureOffMessage,
|
|
72
72
|
} from './hooks/useSystemKinds';
|
|
73
73
|
export type { SystemKindsState } from './hooks/useSystemKinds';
|
|
74
|
+
export {
|
|
75
|
+
ToolDisplayNamesProvider,
|
|
76
|
+
useToolDisplayNames,
|
|
77
|
+
useReloadToolDisplayNames,
|
|
78
|
+
toolDisplayLabel,
|
|
79
|
+
} from './hooks/useToolDisplayNames';
|
|
80
|
+
export type {
|
|
81
|
+
ToolDisplayNamesState,
|
|
82
|
+
ToolDisplayNamesContextValue,
|
|
83
|
+
} from './hooks/useToolDisplayNames';
|
|
74
84
|
export { ThemeProvider, useTheme } from './hooks/useTheme';
|
|
75
85
|
export type { Theme, ThemePreference, ThemeState } from './hooks/useTheme';
|
|
76
86
|
export { useBreakpoint } from './hooks/useBreakpoint';
|
package/src/testing.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export { __resetContributions } from './plugin/registry';
|
|
3
3
|
/** Test-only plugin host-state reset, cleared between cases beside the registry reset. */
|
|
4
4
|
export { __resetPluginHostState } from './plugin/host-state';
|
|
5
|
+
/** Test-only injector: serves a fixed tool display-name map without a live fetch. */
|
|
6
|
+
export { StaticToolDisplayNamesProvider } from './hooks/useToolDisplayNames';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* Every `ResizeObserver` the stub has handed out and not yet had disconnected,
|