@cellarnode/ui 0.201.0 → 0.202.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/agent/composer.d.ts +6 -1
- package/dist/agent/composer.d.ts.map +1 -1
- package/dist/agent/composer.js +43 -9
- package/dist/agent/composer.js.map +1 -1
- package/dist/agent/conversation.d.ts +20 -2
- package/dist/agent/conversation.d.ts.map +1 -1
- package/dist/agent/conversation.js +37 -5
- package/dist/agent/conversation.js.map +1 -1
- package/dist/agent/copy.d.ts +7 -0
- package/dist/agent/copy.d.ts.map +1 -1
- package/dist/agent/copy.js +9 -0
- package/dist/agent/copy.js.map +1 -1
- package/dist/agent/fixtures.d.ts +34 -0
- package/dist/agent/fixtures.d.ts.map +1 -1
- package/dist/agent/fixtures.js +77 -0
- package/dist/agent/fixtures.js.map +1 -1
- package/dist/agent/index.d.ts +18 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +18 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/markdown.d.ts +64 -0
- package/dist/agent/markdown.d.ts.map +1 -0
- package/dist/agent/markdown.js +220 -0
- package/dist/agent/markdown.js.map +1 -0
- package/dist/agent/masked-value.d.ts +1 -0
- package/dist/agent/masked-value.d.ts.map +1 -1
- package/dist/agent/masked-value.js +4 -1
- package/dist/agent/masked-value.js.map +1 -1
- package/dist/agent/message.d.ts +26 -6
- package/dist/agent/message.d.ts.map +1 -1
- package/dist/agent/message.js +47 -11
- package/dist/agent/message.js.map +1 -1
- package/dist/agent/panel-frame.js +1 -1
- package/dist/agent/panel-frame.js.map +1 -1
- package/dist/agent/role-cards/card-kit.d.ts +111 -0
- package/dist/agent/role-cards/card-kit.d.ts.map +1 -0
- package/dist/agent/role-cards/card-kit.js +68 -0
- package/dist/agent/role-cards/card-kit.js.map +1 -0
- package/dist/agent/role-cards/data-table-card.d.ts +80 -0
- package/dist/agent/role-cards/data-table-card.d.ts.map +1 -0
- package/dist/agent/role-cards/data-table-card.js +214 -0
- package/dist/agent/role-cards/data-table-card.js.map +1 -0
- package/dist/agent/role-cards/fixtures.d.ts +124 -0
- package/dist/agent/role-cards/fixtures.d.ts.map +1 -0
- package/dist/agent/role-cards/fixtures.js +401 -0
- package/dist/agent/role-cards/fixtures.js.map +1 -0
- package/dist/agent/role-cards/host-contract.d.ts +214 -0
- package/dist/agent/role-cards/host-contract.d.ts.map +1 -0
- package/dist/agent/role-cards/host-contract.js +348 -0
- package/dist/agent/role-cards/host-contract.js.map +1 -0
- package/dist/agent/role-cards/inspector-drawer.d.ts +42 -0
- package/dist/agent/role-cards/inspector-drawer.d.ts.map +1 -0
- package/dist/agent/role-cards/inspector-drawer.js +68 -0
- package/dist/agent/role-cards/inspector-drawer.js.map +1 -0
- package/dist/agent/role-cards/inspector-fixtures.d.ts +84 -0
- package/dist/agent/role-cards/inspector-fixtures.d.ts.map +1 -0
- package/dist/agent/role-cards/inspector-fixtures.js +162 -0
- package/dist/agent/role-cards/inspector-fixtures.js.map +1 -0
- package/dist/agent/role-cards/inspector-record.d.ts +109 -0
- package/dist/agent/role-cards/inspector-record.d.ts.map +1 -0
- package/dist/agent/role-cards/inspector-record.js +346 -0
- package/dist/agent/role-cards/inspector-record.js.map +1 -0
- package/dist/agent/role-cards/inspector-view.d.ts +137 -0
- package/dist/agent/role-cards/inspector-view.d.ts.map +1 -0
- package/dist/agent/role-cards/inspector-view.js +261 -0
- package/dist/agent/role-cards/inspector-view.js.map +1 -0
- package/dist/agent/role-cards/match-card.d.ts +21 -0
- package/dist/agent/role-cards/match-card.d.ts.map +1 -0
- package/dist/agent/role-cards/match-card.js +30 -0
- package/dist/agent/role-cards/match-card.js.map +1 -0
- package/dist/agent/role-cards/offer-card.d.ts +27 -0
- package/dist/agent/role-cards/offer-card.d.ts.map +1 -0
- package/dist/agent/role-cards/offer-card.js +68 -0
- package/dist/agent/role-cards/offer-card.js.map +1 -0
- package/dist/agent/role-cards/opportunity-card.d.ts +26 -0
- package/dist/agent/role-cards/opportunity-card.d.ts.map +1 -0
- package/dist/agent/role-cards/opportunity-card.js +50 -0
- package/dist/agent/role-cards/opportunity-card.js.map +1 -0
- package/dist/agent/role-cards/product-card.d.ts +32 -0
- package/dist/agent/role-cards/product-card.d.ts.map +1 -0
- package/dist/agent/role-cards/product-card.js +50 -0
- package/dist/agent/role-cards/product-card.js.map +1 -0
- package/dist/agent/role-cards/proposal-diff.d.ts +38 -0
- package/dist/agent/role-cards/proposal-diff.d.ts.map +1 -0
- package/dist/agent/role-cards/proposal-diff.js +74 -0
- package/dist/agent/role-cards/proposal-diff.js.map +1 -0
- package/dist/agent/role-cards/registry.d.ts +43 -0
- package/dist/agent/role-cards/registry.d.ts.map +1 -0
- package/dist/agent/role-cards/registry.js +46 -0
- package/dist/agent/role-cards/registry.js.map +1 -0
- package/dist/agent/role-cards/score-meter.d.ts +12 -0
- package/dist/agent/role-cards/score-meter.d.ts.map +1 -0
- package/dist/agent/role-cards/score-meter.js +17 -0
- package/dist/agent/role-cards/score-meter.js.map +1 -0
- package/dist/agent/role-cards/surface-links.d.ts +54 -0
- package/dist/agent/role-cards/surface-links.d.ts.map +1 -0
- package/dist/agent/role-cards/surface-links.js +149 -0
- package/dist/agent/role-cards/surface-links.js.map +1 -0
- package/dist/agent/role-cards/text-safety.d.ts +24 -0
- package/dist/agent/role-cards/text-safety.d.ts.map +1 -0
- package/dist/agent/role-cards/text-safety.js +61 -0
- package/dist/agent/role-cards/text-safety.js.map +1 -0
- package/dist/agent/schema.d.ts +7 -0
- package/dist/agent/schema.d.ts.map +1 -1
- package/dist/agent/schema.js +25 -2
- package/dist/agent/schema.js.map +1 -1
- package/dist/agent/states.d.ts +1 -0
- package/dist/agent/states.d.ts.map +1 -1
- package/dist/agent/states.js +1 -1
- package/dist/agent/states.js.map +1 -1
- package/dist/agent/thinking.d.ts +13 -4
- package/dist/agent/thinking.d.ts.map +1 -1
- package/dist/agent/thinking.js +15 -6
- package/dist/agent/thinking.js.map +1 -1
- package/dist/agent/thread-list.d.ts +33 -2
- package/dist/agent/thread-list.d.ts.map +1 -1
- package/dist/agent/thread-list.js +158 -8
- package/dist/agent/thread-list.js.map +1 -1
- package/dist/agent/tool-activity-model.d.ts +136 -0
- package/dist/agent/tool-activity-model.d.ts.map +1 -0
- package/dist/agent/tool-activity-model.js +288 -0
- package/dist/agent/tool-activity-model.js.map +1 -0
- package/dist/agent/tool-activity.d.ts +55 -0
- package/dist/agent/tool-activity.d.ts.map +1 -0
- package/dist/agent/tool-activity.js +159 -0
- package/dist/agent/tool-activity.js.map +1 -0
- package/dist/agent/tool-call-card.d.ts +9 -1
- package/dist/agent/tool-call-card.d.ts.map +1 -1
- package/dist/agent/tool-call-card.js +7 -1
- package/dist/agent/tool-call-card.js.map +1 -1
- package/dist/agent/ui.js +1 -1
- package/dist/agent/ui.js.map +1 -1
- package/dist/agent/use-motion.d.ts +15 -0
- package/dist/agent/use-motion.d.ts.map +1 -0
- package/dist/agent/use-motion.js +52 -0
- package/dist/agent/use-motion.js.map +1 -0
- package/dist/chat/chat-composer.d.ts.map +1 -1
- package/dist/chat/chat-composer.js +1 -1
- package/dist/chat/chat-composer.js.map +1 -1
- package/dist/chat/use-stick-to-bottom.d.ts +5 -0
- package/dist/chat/use-stick-to-bottom.d.ts.map +1 -1
- package/dist/chat/use-stick-to-bottom.js +11 -1
- package/dist/chat/use-stick-to-bottom.js.map +1 -1
- package/dist/components/sheet.d.ts +3 -1
- package/dist/components/sheet.d.ts.map +1 -1
- package/dist/components/sheet.js +2 -2
- package/dist/components/sheet.js.map +1 -1
- package/dist/portfolio-import/import-job-panels.d.ts +6 -0
- package/dist/portfolio-import/import-job-panels.d.ts.map +1 -1
- package/dist/portfolio-import/import-job-panels.js +11 -4
- package/dist/portfolio-import/import-job-panels.js.map +1 -1
- package/dist/portfolio-import/job-error-copy.d.ts +62 -0
- package/dist/portfolio-import/job-error-copy.d.ts.map +1 -0
- package/dist/portfolio-import/job-error-copy.js +78 -0
- package/dist/portfolio-import/job-error-copy.js.map +1 -0
- package/dist/realtime/organisation-events/schemas.d.ts +2 -2
- package/package.json +4 -1
- package/src/theme/tokens.css +66 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-list.js","sourceRoot":"","sources":["../../src/agent/thread-list.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread-list.js","sourceRoot":"","sources":["../../src/agent/thread-list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { type AgentMessagePart, type AgentToolCall } from "./schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* @internal Pure helpers behind the tool-activity trail: tool and card names in words, the result of a call without the
|
|
4
|
+
* model-facing envelope, and which calls a domain card shows. Host- and role-agnostic: nothing here knows an admin route or a
|
|
5
|
+
* producer tool. The defaults are English; every table is overridable (`AgentToolNaming`).
|
|
6
|
+
*/
|
|
7
|
+
/** The role prefixes the MCP tools carry (`admin_get_mcp_overview`, `producer_get_offer_workspace`). Stripped from a name. */
|
|
8
|
+
export declare const DEFAULT_TOOL_PREFIXES: readonly string[];
|
|
9
|
+
export declare const DEFAULT_ACRONYMS: Readonly<Record<string, string>>;
|
|
10
|
+
export type ToolTense = "active" | "done" | "failed";
|
|
11
|
+
/** The leading verb of a tool name, as a finished call, one still running and one that failed. */
|
|
12
|
+
export type ToolVerb = Readonly<Record<ToolTense, string>>;
|
|
13
|
+
export declare const DEFAULT_TOOL_VERBS: Readonly<Record<string, ToolVerb>>;
|
|
14
|
+
/** A host's wording for one tool: one string for every state, or one per state (a missing state uses `done`, then `active`). */
|
|
15
|
+
export type ToolLabel = string | Partial<Record<ToolTense, string>>;
|
|
16
|
+
/**
|
|
17
|
+
* How tool and card names read. All optional: without it generic names are humanised in English
|
|
18
|
+
* (`admin_get_mcp_overview` becomes "Checked MCP overview"). A host that is not in English supplies its own words.
|
|
19
|
+
*/
|
|
20
|
+
export interface AgentToolNaming {
|
|
21
|
+
/** The host's own wording per tool name. Wins over the generic wording. */
|
|
22
|
+
toolLabels?: Readonly<Record<string, ToolLabel>>;
|
|
23
|
+
/** Asked before `toolLabels`: return the wording for this tool in this state, or `undefined` to fall through. */
|
|
24
|
+
formatToolLabel?: (name: string, tense: ToolTense) => string | undefined;
|
|
25
|
+
/** A card type's name in words (`{ McpUsageCard: "MCP usage" }`); the default is the type name split into words. */
|
|
26
|
+
cardLabels?: Readonly<Record<string, string>>;
|
|
27
|
+
/** Replaces entries of the English defaults: the leading verbs, the acronyms kept in capitals, the role prefixes stripped. */
|
|
28
|
+
toolWording?: {
|
|
29
|
+
verbs?: Readonly<Record<string, ToolVerb>>;
|
|
30
|
+
acronyms?: Readonly<Record<string, string>>;
|
|
31
|
+
prefixes?: readonly string[];
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface ToolNamer {
|
|
35
|
+
tool: (name: string, tense: ToolTense) => string;
|
|
36
|
+
card: (cardType: string) => string;
|
|
37
|
+
}
|
|
38
|
+
/** A name that is an identifier (snake_case or camelCase with no spaces), not a sentence the host already wrote. */
|
|
39
|
+
export declare const looksLikeIdentifier: (name: string) => boolean;
|
|
40
|
+
/** Builds the namer a component uses: the host's wording first, then the (overridable) English defaults. */
|
|
41
|
+
export declare function createToolNamer(naming?: AgentToolNaming): ToolNamer;
|
|
42
|
+
/**
|
|
43
|
+
* `admin_get_mcp_overview` becomes "Checked MCP overview" (done) or "Checking MCP overview" (active);
|
|
44
|
+
* `producer_get_offer_workspace` becomes "Checked offer workspace"; `admin_platform_stats` becomes "Platform stats".
|
|
45
|
+
* A host label for the exact name wins.
|
|
46
|
+
*/
|
|
47
|
+
export declare function humanizeToolName(name: string, options?: AgentToolNaming & {
|
|
48
|
+
tense?: ToolTense;
|
|
49
|
+
}): string;
|
|
50
|
+
/** `McpUsageCard` becomes "MCP usage", `OfferCard` becomes "Offer", `DataTable` becomes "Data table". */
|
|
51
|
+
export declare function humanizeCardType(cardType: string, naming?: AgentToolNaming): string;
|
|
52
|
+
export type ToolResultView = {
|
|
53
|
+
kind: "json";
|
|
54
|
+
text: string;
|
|
55
|
+
lines: number;
|
|
56
|
+
} | {
|
|
57
|
+
kind: "text";
|
|
58
|
+
text: string;
|
|
59
|
+
lines: number;
|
|
60
|
+
};
|
|
61
|
+
/** A preview never holds more than this many characters, however large the result. */
|
|
62
|
+
export declare const MAX_PREVIEW_CHARS = 20000;
|
|
63
|
+
/** The wrapper the tool layer puts around a result for the model: `{ untrusted: true, source, data }`. Only that exact flag. */
|
|
64
|
+
export declare function isResultEnvelope(v: unknown): v is Record<string, unknown>;
|
|
65
|
+
/** The result with the envelope's own keys dropped: its `data` when there is one, else the other keys. */
|
|
66
|
+
export declare function unwrapResultEnvelope(v: unknown): unknown;
|
|
67
|
+
/**
|
|
68
|
+
* What a call's result looks like to a person: the envelope's `data` (the envelope's `untrusted` and `source` keys are never
|
|
69
|
+
* shown), pretty-printed, masked cells as their masked text, at most {@link MAX_PREVIEW_CHARS} characters. A string is parsed
|
|
70
|
+
* as JSON when it is JSON; a string that is not (plain text, or JSON shortened by the host) keeps the text, minus a
|
|
71
|
+
* recognisable envelope prefix. The envelope is only unwrapped when it says `untrusted: true`: a result that merely has a
|
|
72
|
+
* `source` or `data` key is the host's own data and is shown whole.
|
|
73
|
+
*
|
|
74
|
+
* `result` is shown as given: the host redacts it the way it redacts `args` (masked cells are marked, never raw).
|
|
75
|
+
*/
|
|
76
|
+
export declare function formatToolResult(raw: unknown): ToolResultView | undefined;
|
|
77
|
+
/** What a call returned for the preview: the full `result` when the host sent one, else its (usually shortened) summary. */
|
|
78
|
+
export declare const resultOf: (call: AgentToolCall) => unknown;
|
|
79
|
+
/** Whether there is anything to preview. Cheap: no parsing or printing, so it can run on every render. */
|
|
80
|
+
export declare function hasResult(call: AgentToolCall): boolean;
|
|
81
|
+
export interface AgentToolStep {
|
|
82
|
+
kind: "tool";
|
|
83
|
+
call: AgentToolCall;
|
|
84
|
+
/** A domain card in the same message shows this call's data, so its preview starts collapsed. */
|
|
85
|
+
shownBelow: boolean;
|
|
86
|
+
/** The card's name in words (`"MCP usage"`), shown as a chip on the step. */
|
|
87
|
+
cardTitle?: string;
|
|
88
|
+
}
|
|
89
|
+
/** The model's own one-line summary of its reasoning ("Thought"), a step like any other. */
|
|
90
|
+
export interface AgentThoughtStep {
|
|
91
|
+
kind: "thought";
|
|
92
|
+
id: string;
|
|
93
|
+
summary: string;
|
|
94
|
+
/** The message is still streaming and this is its last part: the agent is thinking right now. */
|
|
95
|
+
running: boolean;
|
|
96
|
+
}
|
|
97
|
+
export type AgentActivityStep = AgentToolStep | AgentThoughtStep;
|
|
98
|
+
/** @deprecated Use {@link AgentToolStep}. */
|
|
99
|
+
export type AgentToolActivityStep = AgentToolStep;
|
|
100
|
+
export declare const stepId: (s: AgentActivityStep) => string;
|
|
101
|
+
/** A step the agent is still working on. */
|
|
102
|
+
export declare const stepInFlight: (s: AgentActivityStep) => boolean;
|
|
103
|
+
export type AgentMessageItem = {
|
|
104
|
+
kind: "part";
|
|
105
|
+
part: AgentMessagePart;
|
|
106
|
+
index: number;
|
|
107
|
+
} | {
|
|
108
|
+
kind: "activity";
|
|
109
|
+
key: string;
|
|
110
|
+
steps: AgentActivityStep[];
|
|
111
|
+
startIndex: number;
|
|
112
|
+
};
|
|
113
|
+
export type CardCoversCall = (call: AgentToolCall, card: {
|
|
114
|
+
cardType: string;
|
|
115
|
+
data: unknown;
|
|
116
|
+
}) => boolean;
|
|
117
|
+
export interface PlanOptions extends Pick<AgentToolNaming, "cardLabels" | "toolWording"> {
|
|
118
|
+
/**
|
|
119
|
+
* Whether a domain card shows a call's data. Without it (and without a card part's `forCallId`) no step is marked "shown
|
|
120
|
+
* below": a card is not assumed to show anything.
|
|
121
|
+
*/
|
|
122
|
+
covers?: CardCoversCall;
|
|
123
|
+
/** The message is still streaming: a trailing `thinking` part is the agent thinking now. */
|
|
124
|
+
streaming?: boolean;
|
|
125
|
+
/** Indexes of the `card` parts that actually rendered something. A card that rendered nothing covers nothing. Default: all. */
|
|
126
|
+
renderedCards?: ReadonlySet<number>;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Folds a message's parts for display: every run of consecutive `toolCall` and `thinking` parts becomes one activity trail;
|
|
130
|
+
* everything else (text, approvals, cards) stays a part in its place. An approval is never folded into a trail.
|
|
131
|
+
*
|
|
132
|
+
* A call is "shown below" only when a later, rendered `card` part names it (`forCallId`), or, when no card names a call,
|
|
133
|
+
* when the host's `covers` says so. There is no default: guessing which card shows which call marks the wrong steps.
|
|
134
|
+
*/
|
|
135
|
+
export declare function planMessageParts(parts: readonly AgentMessagePart[], options?: PlanOptions): AgentMessageItem[];
|
|
136
|
+
//# sourceMappingURL=tool-activity-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-activity-model.d.ts","sourceRoot":"","sources":["../../src/agent/tool-activity-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import { isMasked } from "./schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* @internal Pure helpers behind the tool-activity trail: tool and card names in words, the result of a call without the
|
|
4
|
+
* model-facing envelope, and which calls a domain card shows. Host- and role-agnostic: nothing here knows an admin route or a
|
|
5
|
+
* producer tool. The defaults are English; every table is overridable (`AgentToolNaming`).
|
|
6
|
+
*/
|
|
7
|
+
/** The role prefixes the MCP tools carry (`admin_get_mcp_overview`, `producer_get_offer_workspace`). Stripped from a name. */
|
|
8
|
+
export const DEFAULT_TOOL_PREFIXES = [
|
|
9
|
+
"admin",
|
|
10
|
+
"producer",
|
|
11
|
+
"importer",
|
|
12
|
+
"distributor",
|
|
13
|
+
"elabel",
|
|
14
|
+
];
|
|
15
|
+
export const DEFAULT_ACRONYMS = {
|
|
16
|
+
ai: "AI",
|
|
17
|
+
api: "API",
|
|
18
|
+
csv: "CSV",
|
|
19
|
+
id: "ID",
|
|
20
|
+
ids: "IDs",
|
|
21
|
+
ip: "IP",
|
|
22
|
+
json: "JSON",
|
|
23
|
+
mcp: "MCP",
|
|
24
|
+
otp: "OTP",
|
|
25
|
+
pdf: "PDF",
|
|
26
|
+
qr: "QR",
|
|
27
|
+
sso: "SSO",
|
|
28
|
+
ui: "UI",
|
|
29
|
+
url: "URL",
|
|
30
|
+
urls: "URLs",
|
|
31
|
+
vat: "VAT",
|
|
32
|
+
};
|
|
33
|
+
export const DEFAULT_TOOL_VERBS = {
|
|
34
|
+
get: { done: "Checked", active: "Checking", failed: "Couldn't check" },
|
|
35
|
+
find: { done: "Searched", active: "Searching", failed: "Couldn't search" },
|
|
36
|
+
search: { done: "Searched", active: "Searching", failed: "Couldn't search" },
|
|
37
|
+
list: { done: "Listed", active: "Listing", failed: "Couldn't list" },
|
|
38
|
+
read: { done: "Read", active: "Reading", failed: "Couldn't read" },
|
|
39
|
+
check: { done: "Checked", active: "Checking", failed: "Couldn't check" },
|
|
40
|
+
create: { done: "Created", active: "Creating", failed: "Couldn't create" },
|
|
41
|
+
update: { done: "Updated", active: "Updating", failed: "Couldn't update" },
|
|
42
|
+
delete: { done: "Deleted", active: "Deleting", failed: "Couldn't delete" },
|
|
43
|
+
start: { done: "Started", active: "Starting", failed: "Couldn't start" },
|
|
44
|
+
send: { done: "Sent", active: "Sending", failed: "Couldn't send" },
|
|
45
|
+
run: { done: "Ran", active: "Running", failed: "Couldn't run" },
|
|
46
|
+
};
|
|
47
|
+
const lowerWords = (words, acronyms) => words.map((w) => acronyms[w.toLowerCase()] ?? w.toLowerCase());
|
|
48
|
+
/** The words as a sentence: acronyms kept in capitals, the first word capitalised unless it is an acronym already. */
|
|
49
|
+
const sentence = (words, acronyms) => {
|
|
50
|
+
const out = lowerWords(words, acronyms);
|
|
51
|
+
const first = out[0];
|
|
52
|
+
if (first && first === first.toLowerCase())
|
|
53
|
+
out[0] = first.charAt(0).toUpperCase() + first.slice(1);
|
|
54
|
+
return out.join(" ");
|
|
55
|
+
};
|
|
56
|
+
/** A name that is an identifier (snake_case or camelCase with no spaces), not a sentence the host already wrote. */
|
|
57
|
+
export const looksLikeIdentifier = (name) => /^[A-Za-z][A-Za-z0-9]*(?:[_-][A-Za-z0-9]+)+$/.test(name) ||
|
|
58
|
+
/^[a-z]+(?:[A-Z][a-z0-9]+)+$/.test(name);
|
|
59
|
+
const hostLabel = (label, tense) => {
|
|
60
|
+
if (label === undefined)
|
|
61
|
+
return undefined;
|
|
62
|
+
if (typeof label === "string")
|
|
63
|
+
return label;
|
|
64
|
+
return label[tense] ?? label.done ?? label.active ?? label.failed;
|
|
65
|
+
};
|
|
66
|
+
/** Builds the namer a component uses: the host's wording first, then the (overridable) English defaults. */
|
|
67
|
+
export function createToolNamer(naming = {}) {
|
|
68
|
+
const { toolLabels, formatToolLabel, cardLabels, toolWording } = naming;
|
|
69
|
+
const acronyms = toolWording?.acronyms
|
|
70
|
+
? { ...DEFAULT_ACRONYMS, ...toolWording.acronyms }
|
|
71
|
+
: DEFAULT_ACRONYMS;
|
|
72
|
+
const verbs = toolWording?.verbs
|
|
73
|
+
? { ...DEFAULT_TOOL_VERBS, ...toolWording.verbs }
|
|
74
|
+
: DEFAULT_TOOL_VERBS;
|
|
75
|
+
const prefixes = toolWording?.prefixes ?? DEFAULT_TOOL_PREFIXES;
|
|
76
|
+
return {
|
|
77
|
+
tool(name, tense) {
|
|
78
|
+
const asked = formatToolLabel?.(name, tense);
|
|
79
|
+
if (asked)
|
|
80
|
+
return asked;
|
|
81
|
+
const fromHost = hostLabel(toolLabels?.[name], tense);
|
|
82
|
+
if (fromHost)
|
|
83
|
+
return fromHost;
|
|
84
|
+
if (!looksLikeIdentifier(name))
|
|
85
|
+
return name;
|
|
86
|
+
let words = name
|
|
87
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1_$2")
|
|
88
|
+
.split(/[_-]+/)
|
|
89
|
+
.filter(Boolean);
|
|
90
|
+
const head = words[0]?.toLowerCase();
|
|
91
|
+
if (words.length > 1 && head && prefixes.includes(head))
|
|
92
|
+
words = words.slice(1);
|
|
93
|
+
const verb = words.length > 1 ? verbs[words[0].toLowerCase()] : undefined;
|
|
94
|
+
if (verb)
|
|
95
|
+
return `${verb[tense]} ${lowerWords(words.slice(1), acronyms).join(" ")}`;
|
|
96
|
+
return sentence(words, acronyms);
|
|
97
|
+
},
|
|
98
|
+
card(cardType) {
|
|
99
|
+
const fromHost = cardLabels?.[cardType];
|
|
100
|
+
if (fromHost)
|
|
101
|
+
return fromHost;
|
|
102
|
+
const words = cardType
|
|
103
|
+
.replace(/Card$/, "")
|
|
104
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1 $2")
|
|
105
|
+
.split(/[\s_-]+/)
|
|
106
|
+
.filter(Boolean);
|
|
107
|
+
return words.length === 0 ? cardType : sentence(words, acronyms);
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const defaultNamer = createToolNamer();
|
|
112
|
+
/**
|
|
113
|
+
* `admin_get_mcp_overview` becomes "Checked MCP overview" (done) or "Checking MCP overview" (active);
|
|
114
|
+
* `producer_get_offer_workspace` becomes "Checked offer workspace"; `admin_platform_stats` becomes "Platform stats".
|
|
115
|
+
* A host label for the exact name wins.
|
|
116
|
+
*/
|
|
117
|
+
export function humanizeToolName(name, options = {}) {
|
|
118
|
+
const { tense = "done", ...naming } = options;
|
|
119
|
+
const namer = naming.toolLabels || naming.formatToolLabel || naming.toolWording || naming.cardLabels
|
|
120
|
+
? createToolNamer(naming)
|
|
121
|
+
: defaultNamer;
|
|
122
|
+
return namer.tool(name, tense);
|
|
123
|
+
}
|
|
124
|
+
/** `McpUsageCard` becomes "MCP usage", `OfferCard` becomes "Offer", `DataTable` becomes "Data table". */
|
|
125
|
+
export function humanizeCardType(cardType, naming = {}) {
|
|
126
|
+
return createToolNamer(naming).card(cardType);
|
|
127
|
+
}
|
|
128
|
+
/** A preview never holds more than this many characters, however large the result. */
|
|
129
|
+
export const MAX_PREVIEW_CHARS = 20_000;
|
|
130
|
+
const isRecord = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
131
|
+
/** The wrapper the tool layer puts around a result for the model: `{ untrusted: true, source, data }`. Only that exact flag. */
|
|
132
|
+
export function isResultEnvelope(v) {
|
|
133
|
+
return isRecord(v) && v.untrusted === true && ("source" in v || "data" in v);
|
|
134
|
+
}
|
|
135
|
+
/** The result with the envelope's own keys dropped: its `data` when there is one, else the other keys. */
|
|
136
|
+
export function unwrapResultEnvelope(v) {
|
|
137
|
+
if (!isResultEnvelope(v))
|
|
138
|
+
return v;
|
|
139
|
+
if ("data" in v)
|
|
140
|
+
return v.data;
|
|
141
|
+
const { untrusted: _u, source: _s, ...rest } = v;
|
|
142
|
+
return rest;
|
|
143
|
+
}
|
|
144
|
+
// A flattened, shortened result (`{"untrusted":true,"source":"x","data":{"calls":0,"err…`) cannot be parsed, but its prefix is
|
|
145
|
+
// known. Drop the prefix so the text a reader sees starts at the data.
|
|
146
|
+
const ENVELOPE_PREFIX = /^\s*\{\s*"untrusted"\s*:\s*true\s*,\s*"source"\s*:\s*"(?:[^"\\]|\\.)*"\s*,\s*"data"\s*:\s*/;
|
|
147
|
+
const lineCount = (text) => (text === "" ? 0 : text.split("\n").length);
|
|
148
|
+
const clip = (text) => {
|
|
149
|
+
if (text.length <= MAX_PREVIEW_CHARS)
|
|
150
|
+
return text;
|
|
151
|
+
// Never end on half of a surrogate pair (an emoji cut in two prints as a replacement character).
|
|
152
|
+
const last = text.charCodeAt(MAX_PREVIEW_CHARS - 1);
|
|
153
|
+
const end = last >= 0xd800 && last <= 0xdbff ? MAX_PREVIEW_CHARS - 1 : MAX_PREVIEW_CHARS;
|
|
154
|
+
return `${text.slice(0, end)}…`;
|
|
155
|
+
};
|
|
156
|
+
const mapMasked = (v) => {
|
|
157
|
+
if (isMasked(v))
|
|
158
|
+
return v.display;
|
|
159
|
+
if (Array.isArray(v))
|
|
160
|
+
return v.map(mapMasked);
|
|
161
|
+
if (isRecord(v))
|
|
162
|
+
return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, mapMasked(x)]));
|
|
163
|
+
return v;
|
|
164
|
+
};
|
|
165
|
+
function printJson(value) {
|
|
166
|
+
const text = clip(JSON.stringify(mapMasked(value), null, 2) ?? "");
|
|
167
|
+
return { kind: "json", text, lines: lineCount(text) };
|
|
168
|
+
}
|
|
169
|
+
function printText(text) {
|
|
170
|
+
const clipped = clip(text);
|
|
171
|
+
return { kind: "text", text: clipped, lines: lineCount(clipped) };
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* What a call's result looks like to a person: the envelope's `data` (the envelope's `untrusted` and `source` keys are never
|
|
175
|
+
* shown), pretty-printed, masked cells as their masked text, at most {@link MAX_PREVIEW_CHARS} characters. A string is parsed
|
|
176
|
+
* as JSON when it is JSON; a string that is not (plain text, or JSON shortened by the host) keeps the text, minus a
|
|
177
|
+
* recognisable envelope prefix. The envelope is only unwrapped when it says `untrusted: true`: a result that merely has a
|
|
178
|
+
* `source` or `data` key is the host's own data and is shown whole.
|
|
179
|
+
*
|
|
180
|
+
* `result` is shown as given: the host redacts it the way it redacts `args` (masked cells are marked, never raw).
|
|
181
|
+
*/
|
|
182
|
+
export function formatToolResult(raw) {
|
|
183
|
+
if (raw === undefined || raw === null || raw === "")
|
|
184
|
+
return undefined;
|
|
185
|
+
if (typeof raw === "string") {
|
|
186
|
+
const trimmed = raw.trim();
|
|
187
|
+
try {
|
|
188
|
+
const parsed = JSON.parse(trimmed);
|
|
189
|
+
if (typeof parsed === "object" && parsed !== null)
|
|
190
|
+
return printJson(unwrapResultEnvelope(parsed));
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
/* not JSON, or shortened JSON: fall through to text */
|
|
194
|
+
}
|
|
195
|
+
const stripped = trimmed.replace(ENVELOPE_PREFIX, "");
|
|
196
|
+
if (stripped !== trimmed) {
|
|
197
|
+
try {
|
|
198
|
+
const inner = JSON.parse(stripped.replace(/\}\s*$/, ""));
|
|
199
|
+
return printJson(inner);
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
/* shortened data: show it as text */
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return printText(stripped);
|
|
206
|
+
}
|
|
207
|
+
return printJson(unwrapResultEnvelope(raw));
|
|
208
|
+
}
|
|
209
|
+
/** What a call returned for the preview: the full `result` when the host sent one, else its (usually shortened) summary. */
|
|
210
|
+
export const resultOf = (call) => call.result ?? call.resultSummary;
|
|
211
|
+
/** Whether there is anything to preview. Cheap: no parsing or printing, so it can run on every render. */
|
|
212
|
+
export function hasResult(call) {
|
|
213
|
+
const r = resultOf(call);
|
|
214
|
+
if (r === undefined || r === null)
|
|
215
|
+
return false;
|
|
216
|
+
return typeof r === "string" ? r.trim() !== "" : true;
|
|
217
|
+
}
|
|
218
|
+
export const stepId = (s) => (s.kind === "tool" ? s.call.id : s.id);
|
|
219
|
+
/** A step the agent is still working on. */
|
|
220
|
+
export const stepInFlight = (s) => s.kind === "thought"
|
|
221
|
+
? s.running
|
|
222
|
+
: s.call.status === "pending" || s.call.status === "running" || s.call.status === "retrying";
|
|
223
|
+
/**
|
|
224
|
+
* Folds a message's parts for display: every run of consecutive `toolCall` and `thinking` parts becomes one activity trail;
|
|
225
|
+
* everything else (text, approvals, cards) stays a part in its place. An approval is never folded into a trail.
|
|
226
|
+
*
|
|
227
|
+
* A call is "shown below" only when a later, rendered `card` part names it (`forCallId`), or, when no card names a call,
|
|
228
|
+
* when the host's `covers` says so. There is no default: guessing which card shows which call marks the wrong steps.
|
|
229
|
+
*/
|
|
230
|
+
export function planMessageParts(parts, options = {}) {
|
|
231
|
+
const { covers, streaming = false, renderedCards } = options;
|
|
232
|
+
const namer = createToolNamer(options);
|
|
233
|
+
const rendered = (index) => renderedCards === undefined || renderedCards.has(index);
|
|
234
|
+
const linked = new Map();
|
|
235
|
+
parts.forEach((p, i) => {
|
|
236
|
+
if (p.type === "card" && p.forCallId && rendered(i))
|
|
237
|
+
linked.set(p.forCallId, namer.card(p.cardType));
|
|
238
|
+
});
|
|
239
|
+
const explicit = linked.size > 0;
|
|
240
|
+
const coverOf = (call, from) => {
|
|
241
|
+
if (call.status !== "succeeded")
|
|
242
|
+
return undefined;
|
|
243
|
+
if (explicit)
|
|
244
|
+
return linked.get(call.id);
|
|
245
|
+
if (!covers)
|
|
246
|
+
return undefined;
|
|
247
|
+
for (let j = from + 1; j < parts.length; j++) {
|
|
248
|
+
const later = parts[j];
|
|
249
|
+
if (later?.type !== "card" || !rendered(j))
|
|
250
|
+
continue;
|
|
251
|
+
if (covers(call, { cardType: later.cardType, data: later.data }))
|
|
252
|
+
return namer.card(later.cardType);
|
|
253
|
+
}
|
|
254
|
+
return undefined;
|
|
255
|
+
};
|
|
256
|
+
const items = [];
|
|
257
|
+
const push = (step, index) => {
|
|
258
|
+
const prev = items[items.length - 1];
|
|
259
|
+
if (prev?.kind === "activity")
|
|
260
|
+
prev.steps.push(step);
|
|
261
|
+
else
|
|
262
|
+
items.push({
|
|
263
|
+
kind: "activity",
|
|
264
|
+
key: `activity:${stepId(step)}`,
|
|
265
|
+
steps: [step],
|
|
266
|
+
startIndex: index,
|
|
267
|
+
});
|
|
268
|
+
};
|
|
269
|
+
parts.forEach((part, index) => {
|
|
270
|
+
if (part.type === "toolCall") {
|
|
271
|
+
const cardTitle = coverOf(part.call, index);
|
|
272
|
+
push({ kind: "tool", call: part.call, shownBelow: cardTitle !== undefined, cardTitle }, index);
|
|
273
|
+
}
|
|
274
|
+
else if (part.type === "thinking") {
|
|
275
|
+
push({
|
|
276
|
+
kind: "thought",
|
|
277
|
+
id: `thought:${index}`,
|
|
278
|
+
summary: part.summary,
|
|
279
|
+
running: streaming && index === parts.length - 1,
|
|
280
|
+
}, index);
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
items.push({ kind: "part", part, index });
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
return items;
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=tool-activity-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-activity-model.js","sourceRoot":"","sources":["../../src/agent/tool-activity-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type AgentActivityStep, type AgentToolNaming } from "./tool-activity-model.js";
|
|
2
|
+
export interface AgentToolActivityCopy {
|
|
3
|
+
pending: string;
|
|
4
|
+
running: string;
|
|
5
|
+
succeeded: string;
|
|
6
|
+
failed: string;
|
|
7
|
+
retrying: string;
|
|
8
|
+
/** Accessible name of the list of steps. */
|
|
9
|
+
list: string;
|
|
10
|
+
/** A finished thought, and one in progress. */
|
|
11
|
+
thought: string;
|
|
12
|
+
thinking: string;
|
|
13
|
+
/** Appended to the name of a step in progress ("Checking MCP overview…"). */
|
|
14
|
+
inProgress: string;
|
|
15
|
+
/** Read before a card's name on the step the card shows. */
|
|
16
|
+
shownBelow: string;
|
|
17
|
+
/** Between a step's name and its status, and between "shown below" and the card's name, for assistive tech. */
|
|
18
|
+
srStatusSeparator: string;
|
|
19
|
+
srCardSeparator: string;
|
|
20
|
+
arguments: string;
|
|
21
|
+
showResult: string;
|
|
22
|
+
hideResult: string;
|
|
23
|
+
/** `{count}` is the number of lines "show all" reveals. */
|
|
24
|
+
showAll: string;
|
|
25
|
+
showLess: string;
|
|
26
|
+
retry: string;
|
|
27
|
+
/** `{seconds}` a finished step took. */
|
|
28
|
+
took: string;
|
|
29
|
+
/** The one line a long, finished trail folds into; `{count}` steps. */
|
|
30
|
+
steps: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AgentToolActivityProps extends AgentToolNaming {
|
|
33
|
+
steps: readonly AgentActivityStep[];
|
|
34
|
+
/** A failed step's Retry. Without it a failed step shows its error and no button. */
|
|
35
|
+
onRetry?: (callId: string) => void;
|
|
36
|
+
/** Start with every step (and a folded trail) open. */
|
|
37
|
+
defaultOpen?: boolean;
|
|
38
|
+
/** BCP 47 tag for the numbers shown ("Took 0,6s"). Default: plain "0.6". A malformed tag falls back to the default. */
|
|
39
|
+
locale?: string;
|
|
40
|
+
copy?: Partial<AgentToolActivityCopy>;
|
|
41
|
+
className?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @internal The agent's work in a turn as a quiet vertical trail: one muted line per step ("Thought ›", "Checked MCP overview",
|
|
45
|
+
* "Searched organizations"), a small status icon each, in place of a card per tool call. The step in progress has a spinner
|
|
46
|
+
* (static under `prefers-reduced-motion`) and the in-progress suffix; the icon of a step that finishes pops in. A step opens to
|
|
47
|
+
* its arguments and a formatted, shortened result preview (the model-facing `untrusted`/`source` envelope is never shown). A step
|
|
48
|
+
* a domain card shows carries that card's name as a chip and keeps its preview behind a toggle. A failed step's error and Retry
|
|
49
|
+
* are always visible. A trail of more than four steps folds into one line ONLY if it was already finished when it appeared (a
|
|
50
|
+
* history trail): a trail that was live is never folded under the reader, and neither is one they have opened. A folded history
|
|
51
|
+
* trail that a live or failed step joins opens, and its fold line (it says the trail is done) is hidden until the trail settles.
|
|
52
|
+
* Approvals are never part of the trail.
|
|
53
|
+
*/
|
|
54
|
+
export declare function AgentToolActivity({ steps, toolLabels, formatToolLabel, cardLabels, toolWording, onRetry, defaultOpen, locale, copy, className, }: AgentToolActivityProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
//# sourceMappingURL=tool-activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-activity.d.ts","sourceRoot":"","sources":["../../src/agent/tool-activity.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAIrB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,+GAA+G;IAC/G,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;CACf;AAoWD,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACpC,qFAAqF;IACrF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,uDAAuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uHAAuH;IACvH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,OAAO,EACP,WAAmB,EACnB,MAAM,EACN,IAAI,EACJ,SAAS,GACV,EAAE,sBAAsB,2CAoExB"}
|