@burtson-labs/agent-ui 1.0.11
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/LICENSE +201 -0
- package/README.md +45 -0
- package/dist/components/AgentConsole.d.ts +11 -0
- package/dist/components/AgentConsole.d.ts.map +1 -0
- package/dist/components/AgentConsole.js +139 -0
- package/dist/components/AgentConsole.js.map +1 -0
- package/dist/components/AgentSummaryCard.d.ts +9 -0
- package/dist/components/AgentSummaryCard.d.ts.map +1 -0
- package/dist/components/AgentSummaryCard.js +96 -0
- package/dist/components/AgentSummaryCard.js.map +1 -0
- package/dist/components/ChatComposer.d.ts +134 -0
- package/dist/components/ChatComposer.d.ts.map +1 -0
- package/dist/components/ChatComposer.js +411 -0
- package/dist/components/ChatComposer.js.map +1 -0
- package/dist/components/ChatConversation.d.ts +28 -0
- package/dist/components/ChatConversation.d.ts.map +1 -0
- package/dist/components/ChatConversation.js +82 -0
- package/dist/components/ChatConversation.js.map +1 -0
- package/dist/components/ChatMessage.d.ts +38 -0
- package/dist/components/ChatMessage.d.ts.map +1 -0
- package/dist/components/ChatMessage.js +208 -0
- package/dist/components/ChatMessage.js.map +1 -0
- package/dist/components/DiffBlock.d.ts +7 -0
- package/dist/components/DiffBlock.d.ts.map +1 -0
- package/dist/components/DiffBlock.js +58 -0
- package/dist/components/DiffBlock.js.map +1 -0
- package/dist/components/DiffReview/DiffBlock.d.ts +7 -0
- package/dist/components/DiffReview/DiffBlock.d.ts.map +1 -0
- package/dist/components/DiffReview/DiffBlock.js +13 -0
- package/dist/components/DiffReview/DiffBlock.js.map +1 -0
- package/dist/components/DiffReview/DiffFileGroup.d.ts +14 -0
- package/dist/components/DiffReview/DiffFileGroup.d.ts.map +1 -0
- package/dist/components/DiffReview/DiffFileGroup.js +44 -0
- package/dist/components/DiffReview/DiffFileGroup.js.map +1 -0
- package/dist/components/DiffReview/DiffReviewPanel.d.ts +16 -0
- package/dist/components/DiffReview/DiffReviewPanel.d.ts.map +1 -0
- package/dist/components/DiffReview/DiffReviewPanel.js +25 -0
- package/dist/components/DiffReview/DiffReviewPanel.js.map +1 -0
- package/dist/components/DiffReview/index.d.ts +3 -0
- package/dist/components/DiffReview/index.d.ts.map +1 -0
- package/dist/components/DiffReview/index.js +19 -0
- package/dist/components/DiffReview/index.js.map +1 -0
- package/dist/components/DiffReviewCard.d.ts +10 -0
- package/dist/components/DiffReviewCard.d.ts.map +1 -0
- package/dist/components/DiffReviewCard.js +36 -0
- package/dist/components/DiffReviewCard.js.map +1 -0
- package/dist/components/DiffStream.d.ts +12 -0
- package/dist/components/DiffStream.d.ts.map +1 -0
- package/dist/components/DiffStream.js +43 -0
- package/dist/components/DiffStream.js.map +1 -0
- package/dist/components/MarkdownMessage.d.ts +17 -0
- package/dist/components/MarkdownMessage.d.ts.map +1 -0
- package/dist/components/MarkdownMessage.js +158 -0
- package/dist/components/MarkdownMessage.js.map +1 -0
- package/dist/components/PermissionCard.d.ts +64 -0
- package/dist/components/PermissionCard.d.ts.map +1 -0
- package/dist/components/PermissionCard.js +156 -0
- package/dist/components/PermissionCard.js.map +1 -0
- package/dist/components/PlanActivity.d.ts +20 -0
- package/dist/components/PlanActivity.d.ts.map +1 -0
- package/dist/components/PlanActivity.js +186 -0
- package/dist/components/PlanActivity.js.map +1 -0
- package/dist/components/PlanTree.d.ts +13 -0
- package/dist/components/PlanTree.d.ts.map +1 -0
- package/dist/components/PlanTree.js +70 -0
- package/dist/components/PlanTree.js.map +1 -0
- package/dist/components/TaskList.d.ts +9 -0
- package/dist/components/TaskList.d.ts.map +1 -0
- package/dist/components/TaskList.js +26 -0
- package/dist/components/TaskList.js.map +1 -0
- package/dist/components/TelemetryPanel.d.ts +9 -0
- package/dist/components/TelemetryPanel.d.ts.map +1 -0
- package/dist/components/TelemetryPanel.js +54 -0
- package/dist/components/TelemetryPanel.js.map +1 -0
- package/dist/components/index.d.ts +15 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +31 -0
- package/dist/components/index.js.map +1 -0
- package/dist/context/BanditContext.d.ts +14 -0
- package/dist/context/BanditContext.d.ts.map +1 -0
- package/dist/context/BanditContext.js +18 -0
- package/dist/context/BanditContext.js.map +1 -0
- package/dist/context/index.d.ts +2 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +18 -0
- package/dist/context/index.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +19 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAgentEvents.d.ts +13 -0
- package/dist/hooks/useAgentEvents.d.ts.map +1 -0
- package/dist/hooks/useAgentEvents.js +54 -0
- package/dist/hooks/useAgentEvents.js.map +1 -0
- package/dist/hooks/useTelemetry.d.ts +4 -0
- package/dist/hooks/useTelemetry.d.ts.map +1 -0
- package/dist/hooks/useTelemetry.js +198 -0
- package/dist/hooks/useTelemetry.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/theme/BanditThemeProvider.d.ts +26 -0
- package/dist/theme/BanditThemeProvider.d.ts.map +1 -0
- package/dist/theme/BanditThemeProvider.js +138 -0
- package/dist/theme/BanditThemeProvider.js.map +1 -0
- package/dist/theme/catppuccin-mocha.json +23 -0
- package/dist/theme/charcoal.json +23 -0
- package/dist/theme/dark.json +23 -0
- package/dist/theme/dracula.json +23 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +21 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/light.json +23 -0
- package/dist/theme/midnight.json +23 -0
- package/dist/theme/nord.json +23 -0
- package/dist/theme/onyx.json +23 -0
- package/dist/theme/sepia.json +23 -0
- package/dist/theme/solarized-dark.json +23 -0
- package/dist/theme/solarized-light.json +23 -0
- package/dist/theme/theme-base.d.ts +37 -0
- package/dist/theme/theme-base.d.ts.map +1 -0
- package/dist/theme/theme-base.js +141 -0
- package/dist/theme/theme-base.js.map +1 -0
- package/dist/theme/theme-registry.d.ts +22 -0
- package/dist/theme/theme-registry.d.ts.map +1 -0
- package/dist/theme/theme-registry.js +52 -0
- package/dist/theme/theme-registry.js.map +1 -0
- package/dist/theme/tokyo-night.json +23 -0
- package/dist/theme/vscode-theme.d.ts +3 -0
- package/dist/theme/vscode-theme.d.ts.map +1 -0
- package/dist/theme/vscode-theme.js +128 -0
- package/dist/theme/vscode-theme.js.map +1 -0
- package/dist/types/ui-schema.d.ts +114 -0
- package/dist/types/ui-schema.d.ts.map +1 -0
- package/dist/types/ui-schema.js +3 -0
- package/dist/types/ui-schema.js.map +1 -0
- package/dist/utils/classNames.d.ts +2 -0
- package/dist/utils/classNames.d.ts.map +1 -0
- package/dist/utils/classNames.js +8 -0
- package/dist/utils/classNames.js.map +1 -0
- package/package.json +55 -0
- package/styles/agent-ui.css +3844 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelemetryPanel = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const classNames_1 = require("../utils/classNames");
|
|
6
|
+
const formatDuration = (value) => {
|
|
7
|
+
if (typeof value !== "number" || Number.isNaN(value)) {
|
|
8
|
+
return "—";
|
|
9
|
+
}
|
|
10
|
+
if (value < 1000) {
|
|
11
|
+
return `${value.toFixed(0)} ms`;
|
|
12
|
+
}
|
|
13
|
+
const seconds = value / 1000;
|
|
14
|
+
if (seconds < 60) {
|
|
15
|
+
return `${seconds.toFixed(1)} s`;
|
|
16
|
+
}
|
|
17
|
+
const minutes = Math.floor(seconds / 60);
|
|
18
|
+
const rem = Math.round(seconds % 60);
|
|
19
|
+
return `${minutes}m ${rem}s`;
|
|
20
|
+
};
|
|
21
|
+
const METRIC_STYLE = {
|
|
22
|
+
display: "flex",
|
|
23
|
+
flexDirection: "column",
|
|
24
|
+
gap: "0.25rem",
|
|
25
|
+
minWidth: 0
|
|
26
|
+
};
|
|
27
|
+
const formatIntent = (intent) => {
|
|
28
|
+
if (!intent) {
|
|
29
|
+
return "Detected goal";
|
|
30
|
+
}
|
|
31
|
+
switch (intent) {
|
|
32
|
+
case "fix":
|
|
33
|
+
return "Bug fix";
|
|
34
|
+
case "refactor":
|
|
35
|
+
return "Refactor";
|
|
36
|
+
case "feature":
|
|
37
|
+
return "Feature work";
|
|
38
|
+
case "analyze":
|
|
39
|
+
return "Investigation";
|
|
40
|
+
case "doc":
|
|
41
|
+
return "Documentation";
|
|
42
|
+
case "style":
|
|
43
|
+
return "Styling";
|
|
44
|
+
default:
|
|
45
|
+
return intent;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const TelemetryPanel = ({ telemetry, title = "Telemetry", className }) => {
|
|
49
|
+
const tokens = telemetry.tokens ?? { input: 0, output: 0, total: 0 };
|
|
50
|
+
const totalSteps = telemetry.totalSteps ?? telemetry.completedSteps + telemetry.failedSteps;
|
|
51
|
+
return ((0, jsx_runtime_1.jsxs)("section", { className: (0, classNames_1.classNames)("agent-ui-panel agent-ui-telemetry", className), children: [(0, jsx_runtime_1.jsxs)("header", { className: "agent-ui-panel__header", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { className: "agent-ui-panel__eyebrow", children: title }), (0, jsx_runtime_1.jsx)("h3", { className: "agent-ui-panel__title", children: telemetry.model ?? telemetry.provider ?? "Unidentified Provider" })] }), (0, jsx_runtime_1.jsxs)("span", { className: "agent-ui-panel__meta", children: [telemetry.completedSteps, " / ", totalSteps, " steps"] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "agent-ui-telemetry__grid", children: [(0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Input Tokens" }), (0, jsx_runtime_1.jsx)("strong", { children: tokens.input.toLocaleString() })] }), (0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Output Tokens" }), (0, jsx_runtime_1.jsx)("strong", { children: tokens.output.toLocaleString() })] }), (0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Total Tokens" }), (0, jsx_runtime_1.jsx)("strong", { children: tokens.total.toLocaleString() })] }), typeof tokens.cache === "number" && ((0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Cache Hits" }), (0, jsx_runtime_1.jsx)("strong", { children: tokens.cache.toLocaleString() })] })), (0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Latency" }), (0, jsx_runtime_1.jsx)("strong", { children: formatDuration(telemetry.latencyMs) })] }), (0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Steps" }), (0, jsx_runtime_1.jsxs)("strong", { children: [telemetry.completedSteps, (0, jsx_runtime_1.jsxs)("span", { style: { fontSize: "0.85rem", color: "var(--agent-ui-text-dim)" }, children: [" / ", totalSteps] })] })] }), telemetry.averageStepDurationMs !== undefined && ((0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Avg Step Duration" }), (0, jsx_runtime_1.jsx)("strong", { children: formatDuration(telemetry.averageStepDurationMs) })] })), telemetry.goalInsight && ((0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Intent" }), (0, jsx_runtime_1.jsx)("strong", { children: formatIntent(telemetry.goalInsight.intent) }), telemetry.goalInsight.files?.length ? ((0, jsx_runtime_1.jsx)("span", { style: { fontSize: "0.8rem", color: "var(--agent-ui-text-dim)" }, children: (telemetry.goalInsight.files ?? []).slice(0, 2).join(", ") })) : null] })), telemetry.taskProgress && ((0, jsx_runtime_1.jsxs)("article", { className: "agent-ui-metric", style: METRIC_STYLE, children: [(0, jsx_runtime_1.jsx)("label", { children: "Tasks Complete" }), (0, jsx_runtime_1.jsxs)("strong", { children: [telemetry.taskProgress.completed, (0, jsx_runtime_1.jsxs)("span", { style: { fontSize: "0.85rem", color: "var(--agent-ui-text-dim)" }, children: [" / ", telemetry.taskProgress.total] })] })] }))] })] }));
|
|
52
|
+
};
|
|
53
|
+
exports.TelemetryPanel = TelemetryPanel;
|
|
54
|
+
//# sourceMappingURL=TelemetryPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelemetryPanel.js","sourceRoot":"","sources":["../../src/components/TelemetryPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./AgentConsole";
|
|
2
|
+
export * from "./AgentSummaryCard";
|
|
3
|
+
export * from "./ChatComposer";
|
|
4
|
+
export * from "./ChatConversation";
|
|
5
|
+
export * from "./MarkdownMessage";
|
|
6
|
+
export * from "./PermissionCard";
|
|
7
|
+
export * from "./DiffBlock";
|
|
8
|
+
export * from "./DiffReview";
|
|
9
|
+
export * from "./DiffReviewCard";
|
|
10
|
+
export * from "./DiffStream";
|
|
11
|
+
export * from "./PlanTree";
|
|
12
|
+
export * from "./TelemetryPanel";
|
|
13
|
+
export * from "./PlanActivity";
|
|
14
|
+
export * from "./TaskList";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./AgentConsole"), exports);
|
|
18
|
+
__exportStar(require("./AgentSummaryCard"), exports);
|
|
19
|
+
__exportStar(require("./ChatComposer"), exports);
|
|
20
|
+
__exportStar(require("./ChatConversation"), exports);
|
|
21
|
+
__exportStar(require("./MarkdownMessage"), exports);
|
|
22
|
+
__exportStar(require("./PermissionCard"), exports);
|
|
23
|
+
__exportStar(require("./DiffBlock"), exports);
|
|
24
|
+
__exportStar(require("./DiffReview"), exports);
|
|
25
|
+
__exportStar(require("./DiffReviewCard"), exports);
|
|
26
|
+
__exportStar(require("./DiffStream"), exports);
|
|
27
|
+
__exportStar(require("./PlanTree"), exports);
|
|
28
|
+
__exportStar(require("./TelemetryPanel"), exports);
|
|
29
|
+
__exportStar(require("./PlanActivity"), exports);
|
|
30
|
+
__exportStar(require("./TaskList"), exports);
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,oDAAkC;AAClC,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,mDAAiC;AACjC,+CAA6B;AAC7B,6CAA2B;AAC3B,mDAAiC;AACjC,iDAA+B;AAC/B,6CAA2B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { JSX, ReactNode } from "react";
|
|
2
|
+
export type BanditRuntimeContext = "web" | "vscode";
|
|
3
|
+
export interface BanditContextValue {
|
|
4
|
+
context: BanditRuntimeContext;
|
|
5
|
+
}
|
|
6
|
+
export declare const useBanditContext: () => BanditContextValue;
|
|
7
|
+
export interface BanditContextProviderProps {
|
|
8
|
+
context?: BanditRuntimeContext;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare const BanditContextProvider: ({ context, children }: BanditContextProviderProps) => JSX.Element;
|
|
12
|
+
export type BanditProviderProps = BanditContextProviderProps;
|
|
13
|
+
export declare const BanditProvider: ({ context, children }: BanditProviderProps) => JSX.Element;
|
|
14
|
+
//# sourceMappingURL=BanditContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BanditContext.d.ts","sourceRoot":"","sources":["../../src/context/BanditContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAID,eAAO,MAAM,gBAAgB,QAAO,kBAA+C,CAAC;AAEpF,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,GAAI,uBAGnC,0BAA0B,KAAG,GAAG,CAAC,OAEnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D,eAAO,MAAM,cAAc,GAAI,uBAA+B,mBAAmB,KAAG,GAAG,CAAC,OAMvF,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BanditProvider = exports.BanditContextProvider = exports.useBanditContext = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const theme_1 = require("../theme");
|
|
7
|
+
const BanditContext = (0, react_1.createContext)({ context: "web" });
|
|
8
|
+
const useBanditContext = () => (0, react_1.useContext)(BanditContext);
|
|
9
|
+
exports.useBanditContext = useBanditContext;
|
|
10
|
+
const BanditContextProvider = ({ context = "web", children }) => {
|
|
11
|
+
return (0, jsx_runtime_1.jsx)(BanditContext.Provider, { value: { context }, children: children });
|
|
12
|
+
};
|
|
13
|
+
exports.BanditContextProvider = BanditContextProvider;
|
|
14
|
+
const BanditProvider = ({ context = "web", children }) => {
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)(exports.BanditContextProvider, { context: context, children: (0, jsx_runtime_1.jsx)(theme_1.BanditThemeProvider, { children: children }) }));
|
|
16
|
+
};
|
|
17
|
+
exports.BanditProvider = BanditProvider;
|
|
18
|
+
//# sourceMappingURL=BanditContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BanditContext.js","sourceRoot":"","sources":["../../src/context/BanditContext.tsx"],"names":[],"mappings":";;;;AAAA,iCAAkD;AAElD,oCAA+C;AAQ/C,MAAM,aAAa,GAAG,IAAA,qBAAa,EAAqB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAErE,MAAM,gBAAgB,GAAG,GAAuB,EAAE,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,CAAC;AAAvE,QAAA,gBAAgB,oBAAuD;AAO7E,MAAM,qBAAqB,GAAG,CAAC,EACpC,OAAO,GAAG,KAAK,EACf,QAAQ,EACmB,EAAe,EAAE;IAC5C,OAAO,uBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,YAAG,QAAQ,GAA0B,CAAC;AACzF,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC;AAIK,MAAM,cAAc,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAuB,EAAe,EAAE;IAChG,OAAO,CACL,uBAAC,6BAAqB,IAAC,OAAO,EAAE,OAAO,YACrC,uBAAC,2BAAmB,cAAE,QAAQ,GAAuB,GAC/B,CACzB,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./BanditContext"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useAgentEvents"), exports);
|
|
18
|
+
__exportStar(require("./useTelemetry"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,iDAA+B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AgentEvent } from "@burtson-labs/agent-core";
|
|
2
|
+
import type { AgentEventSource, AgentUIEventType } from "../types/ui-schema";
|
|
3
|
+
export interface UseAgentEventsOptions {
|
|
4
|
+
eventTypes?: AgentUIEventType[];
|
|
5
|
+
limit?: number;
|
|
6
|
+
initialEvents?: AgentEvent[];
|
|
7
|
+
}
|
|
8
|
+
export interface UseAgentEventsResult {
|
|
9
|
+
events: AgentEvent[];
|
|
10
|
+
clear: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const useAgentEvents: (source: AgentEventSource | null | undefined, options?: UseAgentEventsOptions) => UseAgentEventsResult;
|
|
13
|
+
//# sourceMappingURL=useAgentEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentEvents.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgentEvents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgB7E,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,GACzB,QAAQ,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC3C,UAAS,qBAA0B,KAClC,oBA6CF,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useAgentEvents = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const DEFAULT_EVENT_TYPES = [
|
|
6
|
+
"plan:start",
|
|
7
|
+
"plan:chunk",
|
|
8
|
+
"plan:complete",
|
|
9
|
+
"step:start",
|
|
10
|
+
"step:complete",
|
|
11
|
+
"diff:apply",
|
|
12
|
+
"log",
|
|
13
|
+
"telemetry",
|
|
14
|
+
"context:updated",
|
|
15
|
+
"report:chunk",
|
|
16
|
+
"report:complete"
|
|
17
|
+
];
|
|
18
|
+
const useAgentEvents = (source, options = {}) => {
|
|
19
|
+
const { initialEvents = [], limit = 200 } = options;
|
|
20
|
+
const [events, setEvents] = (0, react_1.useState)(initialEvents);
|
|
21
|
+
const bufferRef = (0, react_1.useRef)(initialEvents);
|
|
22
|
+
const limitRef = (0, react_1.useRef)(limit);
|
|
23
|
+
(0, react_1.useEffect)(() => {
|
|
24
|
+
limitRef.current = limit;
|
|
25
|
+
}, [limit]);
|
|
26
|
+
const eventTypeList = (0, react_1.useMemo)(() => (options.eventTypes?.length ? [...options.eventTypes] : DEFAULT_EVENT_TYPES), [options.eventTypes ? options.eventTypes.join("|") : "default"]);
|
|
27
|
+
const subscriptionKey = eventTypeList.join("|");
|
|
28
|
+
(0, react_1.useEffect)(() => {
|
|
29
|
+
if (!source) {
|
|
30
|
+
bufferRef.current = initialEvents;
|
|
31
|
+
setEvents(initialEvents);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const handleEvent = (event) => {
|
|
35
|
+
bufferRef.current = [...bufferRef.current, event].slice(-limitRef.current);
|
|
36
|
+
setEvents(bufferRef.current);
|
|
37
|
+
};
|
|
38
|
+
for (const type of eventTypeList) {
|
|
39
|
+
source.on(type, handleEvent);
|
|
40
|
+
}
|
|
41
|
+
return () => {
|
|
42
|
+
for (const type of eventTypeList) {
|
|
43
|
+
source.off(type, handleEvent);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}, [source, subscriptionKey, initialEvents, eventTypeList]);
|
|
47
|
+
const clear = () => {
|
|
48
|
+
bufferRef.current = [];
|
|
49
|
+
setEvents([]);
|
|
50
|
+
};
|
|
51
|
+
return { events, clear };
|
|
52
|
+
};
|
|
53
|
+
exports.useAgentEvents = useAgentEvents;
|
|
54
|
+
//# sourceMappingURL=useAgentEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentEvents.js","sourceRoot":"","sources":["../../src/hooks/useAgentEvents.ts"],"names":[],"mappings":";;;AAAA,iCAA6D;AAI7D,MAAM,mBAAmB,GAAuB;IAC9C,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,KAAK;IACL,WAAW;IACX,iBAAiB;IACjB,cAAc;IACd,iBAAiB;CAClB,CAAC;AAaK,MAAM,cAAc,GAAG,CAC5B,MAA2C,EAC3C,UAAiC,EAAE,EACb,EAAE;IACxB,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAe,aAAa,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAA,cAAM,EAAe,aAAa,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAE/B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,aAAa,GAAG,IAAA,eAAO,EAC3B,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAClF,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAChE,CAAC;IACF,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC;YAClC,SAAS,CAAC,aAAa,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAQ,EAAE;YAC9C,SAAS,CAAC,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3E,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;QACvB,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC;AAhDW,QAAA,cAAc,kBAgDzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTelemetry.d.ts","sourceRoot":"","sources":["../../src/hooks/useTelemetry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAIV,iBAAiB,EAGlB,MAAM,oBAAoB,CAAC;AAkH5B,eAAO,MAAM,YAAY,GAAI,SAAQ,UAAU,EAAO,KAAG,iBA+JxD,CAAC"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTelemetry = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const DEFAULT_TOKEN_USAGE = {
|
|
6
|
+
input: 0,
|
|
7
|
+
output: 0,
|
|
8
|
+
total: 0
|
|
9
|
+
};
|
|
10
|
+
const coerceNumber = (value) => {
|
|
11
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
if (typeof value === "string") {
|
|
15
|
+
const parsed = Number(value);
|
|
16
|
+
if (Number.isFinite(parsed)) {
|
|
17
|
+
return parsed;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return 0;
|
|
21
|
+
};
|
|
22
|
+
const asRecord = (value) => typeof value === "object" && value !== null ? value : undefined;
|
|
23
|
+
const readNumber = (...values) => {
|
|
24
|
+
for (const value of values) {
|
|
25
|
+
const numberValue = coerceNumber(value);
|
|
26
|
+
if (numberValue !== 0 || value === 0 || value === "0") {
|
|
27
|
+
return numberValue;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
};
|
|
32
|
+
const readString = (...values) => {
|
|
33
|
+
for (const value of values) {
|
|
34
|
+
if (typeof value === "string") {
|
|
35
|
+
const trimmed = value.trim();
|
|
36
|
+
if (trimmed.length > 0) {
|
|
37
|
+
return trimmed;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
};
|
|
43
|
+
const extractTokenSample = (payload) => {
|
|
44
|
+
const rawTokens = payload.tokens;
|
|
45
|
+
const tokens = asRecord(rawTokens);
|
|
46
|
+
const metadata = asRecord(payload.metadata);
|
|
47
|
+
const metadataTokens = asRecord(metadata?.tokens);
|
|
48
|
+
const directTokenTotal = readNumber(rawTokens, metadata?.tokenTotal, metadata?.tokensTotal);
|
|
49
|
+
const input = readNumber(tokens?.input, tokens?.inputTokens, payload.input, payload.inputTokens, metadata?.input, metadata?.inputTokens, metadataTokens?.input, metadataTokens?.inputTokens);
|
|
50
|
+
const output = readNumber(tokens?.output, tokens?.outputTokens, payload.output, payload.outputTokens, metadata?.output, metadata?.outputTokens, metadataTokens?.output, metadataTokens?.outputTokens);
|
|
51
|
+
const total = readNumber(directTokenTotal, tokens?.total, tokens?.totalTokens, payload.total, payload.totalTokens, metadata?.total, metadata?.totalTokens, metadataTokens?.total, metadataTokens?.totalTokens);
|
|
52
|
+
const cache = readNumber(tokens?.cache, payload.cache, metadata?.cache, metadataTokens?.cache);
|
|
53
|
+
if (input === undefined && output === undefined && total === undefined && cache === undefined) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
return { input, output, total, cache };
|
|
57
|
+
};
|
|
58
|
+
const extractPlanStepCount = (event) => {
|
|
59
|
+
if (event.type !== "plan:start" && event.type !== "plan:complete") {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const payload = asRecord(event.payload);
|
|
63
|
+
const payloadPlan = asRecord(payload?.plan);
|
|
64
|
+
const steps = Array.isArray(payloadPlan?.steps)
|
|
65
|
+
? payloadPlan.steps
|
|
66
|
+
: Array.isArray(payload?.steps)
|
|
67
|
+
? payload.steps
|
|
68
|
+
: undefined;
|
|
69
|
+
return Array.isArray(steps) ? steps.length : undefined;
|
|
70
|
+
};
|
|
71
|
+
const useTelemetry = (events = []) => {
|
|
72
|
+
return (0, react_1.useMemo)(() => {
|
|
73
|
+
const telemetryEvents = events.filter((event) => event.type === "telemetry");
|
|
74
|
+
let goalInsight;
|
|
75
|
+
let taskProgress;
|
|
76
|
+
let resolvedProvider;
|
|
77
|
+
let resolvedModel;
|
|
78
|
+
const tokens = telemetryEvents.reduce((acc, event) => {
|
|
79
|
+
const payload = asRecord(event.payload);
|
|
80
|
+
if (!payload) {
|
|
81
|
+
return acc;
|
|
82
|
+
}
|
|
83
|
+
const tokenSample = extractTokenSample(payload);
|
|
84
|
+
if (tokenSample) {
|
|
85
|
+
if (tokenSample.input !== undefined) {
|
|
86
|
+
acc.input += tokenSample.input;
|
|
87
|
+
}
|
|
88
|
+
if (tokenSample.output !== undefined) {
|
|
89
|
+
acc.output += tokenSample.output;
|
|
90
|
+
}
|
|
91
|
+
if (tokenSample.total !== undefined) {
|
|
92
|
+
acc.total += tokenSample.total;
|
|
93
|
+
}
|
|
94
|
+
else if (tokenSample.input !== undefined || tokenSample.output !== undefined) {
|
|
95
|
+
acc.total += (tokenSample.input ?? 0) + (tokenSample.output ?? 0);
|
|
96
|
+
}
|
|
97
|
+
if (tokenSample.cache !== undefined) {
|
|
98
|
+
acc.cache = (acc.cache ?? 0) + tokenSample.cache;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const metadata = asRecord(payload.metadata);
|
|
102
|
+
resolvedProvider = readString(payload.provider, payload.providerName, metadata?.provider, metadata?.providerName, metadata?.providerLabel, metadata?.providerKind) ?? resolvedProvider;
|
|
103
|
+
resolvedModel = readString(payload.model, payload.modelName, metadata?.model, metadata?.modelName, metadata?.modelId) ?? resolvedModel;
|
|
104
|
+
const kind = readString(payload.kind, metadata?.kind);
|
|
105
|
+
if (kind === "goal-inference" || (!kind && (metadata?.goal || payload.goal))) {
|
|
106
|
+
const goalData = asRecord(metadata?.goal ?? payload.goal);
|
|
107
|
+
if (goalData) {
|
|
108
|
+
const files = Array.isArray(goalData.files)
|
|
109
|
+
? goalData.files.filter((file) => typeof file === "string")
|
|
110
|
+
: undefined;
|
|
111
|
+
goalInsight = {
|
|
112
|
+
id: typeof goalData.id === "string" ? goalData.id : undefined,
|
|
113
|
+
title: typeof goalData.title === "string" ? goalData.title : undefined,
|
|
114
|
+
intent: typeof goalData.intent === "string" ? goalData.intent : undefined,
|
|
115
|
+
rationale: typeof goalData.rationale === "string" ? goalData.rationale : undefined,
|
|
116
|
+
files
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (kind === "task-progress" || (!kind && (metadata?.progress || payload.progress))) {
|
|
121
|
+
const progressData = asRecord(metadata?.progress ?? payload.progress);
|
|
122
|
+
if (progressData) {
|
|
123
|
+
const completed = coerceNumber(progressData.completed);
|
|
124
|
+
const total = coerceNumber(progressData.total);
|
|
125
|
+
taskProgress = {
|
|
126
|
+
goalId: typeof progressData.goalId === "string" ? progressData.goalId : undefined,
|
|
127
|
+
completed,
|
|
128
|
+
total
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return acc;
|
|
133
|
+
}, { ...DEFAULT_TOKEN_USAGE });
|
|
134
|
+
const lastTelemetryPayload = [...telemetryEvents]
|
|
135
|
+
.reverse()
|
|
136
|
+
.map((event) => asRecord(event.payload))
|
|
137
|
+
.find((payload) => Boolean(payload));
|
|
138
|
+
const summaryDurationMs = [...events]
|
|
139
|
+
.reverse()
|
|
140
|
+
.find((event) => event.type === "summary")
|
|
141
|
+
?.payload;
|
|
142
|
+
const startedAt = events.find((event) => event.type === "plan:start")?.timestamp ??
|
|
143
|
+
events.at(0)?.timestamp;
|
|
144
|
+
const lastEventAt = events.at(-1)?.timestamp;
|
|
145
|
+
const stepDurations = [];
|
|
146
|
+
let completedSteps = 0;
|
|
147
|
+
let failedSteps = 0;
|
|
148
|
+
let planStepCount = 0;
|
|
149
|
+
for (const event of events) {
|
|
150
|
+
const maybePlanStepCount = extractPlanStepCount(event);
|
|
151
|
+
if (typeof maybePlanStepCount === "number" && Number.isFinite(maybePlanStepCount)) {
|
|
152
|
+
planStepCount = Math.max(planStepCount, maybePlanStepCount);
|
|
153
|
+
}
|
|
154
|
+
if (event.type !== "step:complete") {
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const payload = event.payload;
|
|
158
|
+
const status = payload?.result?.status;
|
|
159
|
+
if (status === "failed") {
|
|
160
|
+
failedSteps += 1;
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
completedSteps += 1;
|
|
164
|
+
}
|
|
165
|
+
const duration = payload?.result?.metadata?.durationMs;
|
|
166
|
+
if (typeof duration === "number" && Number.isFinite(duration)) {
|
|
167
|
+
stepDurations.push(duration);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const averageStepDurationMs = stepDurations.length > 0
|
|
171
|
+
? stepDurations.reduce((sum, value) => sum + value, 0) / stepDurations.length
|
|
172
|
+
: undefined;
|
|
173
|
+
completedSteps = Math.max(completedSteps, coerceNumber(taskProgress?.completed));
|
|
174
|
+
const totalSteps = Math.max(completedSteps + failedSteps, coerceNumber(taskProgress?.total), planStepCount);
|
|
175
|
+
return {
|
|
176
|
+
totalEvents: events.length,
|
|
177
|
+
tokens,
|
|
178
|
+
latencyMs: lastTelemetryPayload?.latencyMs ??
|
|
179
|
+
(typeof lastTelemetryPayload?.durationMs === "number"
|
|
180
|
+
? (lastTelemetryPayload.durationMs ?? undefined)
|
|
181
|
+
: undefined) ??
|
|
182
|
+
(typeof summaryDurationMs?.durationMs === "number" ? summaryDurationMs.durationMs : undefined) ??
|
|
183
|
+
(startedAt && lastEventAt ? lastEventAt - startedAt : undefined),
|
|
184
|
+
model: resolvedModel ?? lastTelemetryPayload?.model,
|
|
185
|
+
provider: resolvedProvider ?? lastTelemetryPayload?.provider,
|
|
186
|
+
startedAt,
|
|
187
|
+
lastEventAt,
|
|
188
|
+
completedSteps,
|
|
189
|
+
failedSteps,
|
|
190
|
+
totalSteps,
|
|
191
|
+
averageStepDurationMs,
|
|
192
|
+
goalInsight,
|
|
193
|
+
taskProgress
|
|
194
|
+
};
|
|
195
|
+
}, [events]);
|
|
196
|
+
};
|
|
197
|
+
exports.useTelemetry = useTelemetry;
|
|
198
|
+
//# sourceMappingURL=useTelemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTelemetry.js","sourceRoot":"","sources":["../../src/hooks/useTelemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AgentAskResult } from "@burtson-labs/agent-core";
|
|
2
|
+
export * from "./components";
|
|
3
|
+
export * from "./hooks";
|
|
4
|
+
export * from "./context";
|
|
5
|
+
export * from "./theme";
|
|
6
|
+
export * from "./types/ui-schema";
|
|
7
|
+
export interface TimelineEntry {
|
|
8
|
+
label: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const buildTimeline: (result: AgentAskResult) => TimelineEntry[];
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,GAAI,QAAQ,cAAc,KAAG,aAAa,EAInE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.buildTimeline = void 0;
|
|
18
|
+
__exportStar(require("./components"), exports);
|
|
19
|
+
__exportStar(require("./hooks"), exports);
|
|
20
|
+
__exportStar(require("./context"), exports);
|
|
21
|
+
__exportStar(require("./theme"), exports);
|
|
22
|
+
__exportStar(require("./types/ui-schema"), exports);
|
|
23
|
+
const buildTimeline = (result) => [
|
|
24
|
+
{ label: "Prompt", value: result.prompt },
|
|
25
|
+
{ label: "Response", value: result.response },
|
|
26
|
+
{ label: "Duration", value: `${result.durationMs}ms` }
|
|
27
|
+
];
|
|
28
|
+
exports.buildTimeline = buildTimeline;
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,+CAA6B;AAC7B,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,oDAAkC;AAO3B,MAAM,aAAa,GAAG,CAAC,MAAsB,EAAmB,EAAE,CAAC;IACxE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;IACzC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;IAC7C,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE;CACvD,CAAC;AAJW,QAAA,aAAa,iBAIxB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { JSX, ReactNode } from "react";
|
|
2
|
+
import { type BanditTheme } from "./theme-base";
|
|
3
|
+
import { type RegisteredThemeId } from "./theme-registry";
|
|
4
|
+
export type ThemePreference = "auto" | RegisteredThemeId;
|
|
5
|
+
interface ThemeOption {
|
|
6
|
+
id: ThemePreference;
|
|
7
|
+
label: string;
|
|
8
|
+
}
|
|
9
|
+
interface ThemeContextValue {
|
|
10
|
+
theme: BanditTheme;
|
|
11
|
+
appearance: BanditTheme["appearance"];
|
|
12
|
+
preference: ThemePreference;
|
|
13
|
+
setPreference: (preference: ThemePreference) => void;
|
|
14
|
+
cyclePreference: () => void;
|
|
15
|
+
options: readonly ThemeOption[];
|
|
16
|
+
resolvedId: string;
|
|
17
|
+
manualTheme: RegisteredThemeId;
|
|
18
|
+
ideTheme: BanditTheme | null;
|
|
19
|
+
isAuto: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare const BanditThemeProvider: ({ children }: {
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
}) => JSX.Element;
|
|
24
|
+
export declare const useBanditTheme: () => ThemeContextValue;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=BanditThemeProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BanditThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/BanditThemeProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAgC,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAM1B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAEzD,UAAU,WAAW;IACnB,EAAE,EAAE,eAAe,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACtC,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB;AA6DD,eAAO,MAAM,mBAAmB,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,KAAG,GAAG,CAAC,OAkF/E,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,iBAMjC,CAAC"}
|