@datalayer/agent-runtimes 1.0.3 → 1.0.5
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/README.md +35 -119
- package/lib/App.js +1 -1
- package/lib/agents/AgentDetails.d.ts +22 -1
- package/lib/agents/AgentDetails.js +34 -47
- package/lib/api/index.d.ts +0 -1
- package/lib/api/index.js +4 -2
- package/lib/chat/Chat.d.ts +5 -104
- package/lib/chat/Chat.js +4 -4
- package/lib/chat/ChatFloating.d.ts +7 -140
- package/lib/chat/ChatFloating.js +2 -2
- package/lib/chat/ChatPopupStandalone.d.ts +8 -47
- package/lib/chat/ChatPopupStandalone.js +3 -3
- package/lib/chat/ChatSidebar.d.ts +4 -69
- package/lib/chat/ChatSidebar.js +2 -2
- package/lib/chat/ChatStandalone.d.ts +4 -54
- package/lib/chat/ChatStandalone.js +3 -3
- package/lib/chat/base/ChatBase.js +1118 -141
- package/lib/chat/header/ChatHeaderBase.d.ts +11 -6
- package/lib/chat/header/ChatHeaderBase.js +18 -16
- package/lib/chat/indicators/McpStatusIndicator.d.ts +7 -4
- package/lib/chat/indicators/McpStatusIndicator.js +7 -32
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +4 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +9 -9
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +7 -0
- package/lib/chat/indicators/SkillsStatusIndicator.js +88 -0
- package/lib/chat/indicators/index.d.ts +1 -0
- package/lib/chat/indicators/index.js +1 -0
- package/lib/chat/messages/ChatMessageList.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.js +110 -102
- package/lib/chat/prompt/InputFooter.d.ts +19 -6
- package/lib/chat/prompt/InputFooter.js +71 -18
- package/lib/chat/prompt/InputPrompt.d.ts +3 -1
- package/lib/chat/prompt/InputPrompt.js +4 -4
- package/lib/chat/prompt/InputPromptFooter.js +1 -1
- package/lib/chat/prompt/InputPromptLexical.d.ts +3 -1
- package/lib/chat/prompt/InputPromptLexical.js +12 -5
- package/lib/chat/prompt/InputPromptText.d.ts +3 -1
- package/lib/chat/prompt/InputPromptText.js +2 -2
- package/lib/chat/tools/ToolApprovalBanner.js +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +3 -1
- package/lib/chat/tools/ToolCallDisplay.js +2 -2
- package/lib/chat/usage/TokenUsageBar.js +20 -2
- package/lib/client/AgentRuntimesClientContext.d.ts +53 -0
- package/lib/client/AgentRuntimesClientContext.js +55 -0
- package/lib/client/AgentsMixin.d.ts +48 -19
- package/lib/client/AgentsMixin.js +115 -30
- package/lib/client/IAgentRuntimesClient.d.ts +215 -0
- package/lib/client/IAgentRuntimesClient.js +5 -0
- package/lib/client/SdkAgentRuntimesClient.d.ts +151 -0
- package/lib/client/SdkAgentRuntimesClient.js +134 -0
- package/lib/client/index.d.ts +4 -1
- package/lib/client/index.js +3 -1
- package/lib/components/NotificationEventCard.js +55 -26
- package/lib/components/OutputCard.js +21 -7
- package/lib/components/ToolApprovalCard.js +20 -2
- package/lib/config/AgentConfiguration.js +3 -3
- package/lib/context/ContextDistribution.d.ts +3 -1
- package/lib/context/ContextDistribution.js +8 -27
- package/lib/context/ContextInspector.d.ts +3 -1
- package/lib/context/ContextInspector.js +19 -67
- package/lib/context/ContextPanel.d.ts +3 -1
- package/lib/context/ContextPanel.js +104 -64
- package/lib/context/ContextUsage.d.ts +3 -1
- package/lib/context/ContextUsage.js +3 -3
- package/lib/context/CostTracker.d.ts +9 -3
- package/lib/context/CostTracker.js +26 -47
- package/lib/context/CostUsageChart.d.ts +12 -0
- package/lib/context/CostUsageChart.js +378 -0
- package/lib/context/GraphFlowChart.d.ts +16 -0
- package/lib/context/GraphFlowChart.js +182 -0
- package/lib/context/TokenUsageChart.d.ts +8 -1
- package/lib/context/TokenUsageChart.js +349 -211
- package/lib/context/TurnGraphChart.d.ts +39 -0
- package/lib/context/TurnGraphChart.js +538 -0
- package/lib/context/otelWsPool.d.ts +20 -0
- package/lib/context/otelWsPool.js +69 -0
- package/lib/examples/A2UiComponentGalleryExample.d.ts +0 -17
- package/lib/examples/A2UiComponentGalleryExample.js +315 -522
- package/lib/examples/A2UiContactCardExample.d.ts +0 -18
- package/lib/examples/A2UiContactCardExample.js +154 -411
- package/lib/examples/A2UiRestaurantExample.d.ts +0 -30
- package/lib/examples/A2UiRestaurantExample.js +114 -212
- package/lib/examples/A2UiViewerExample.d.ts +0 -18
- package/lib/examples/A2UiViewerExample.js +283 -532
- package/lib/examples/AgUiBackendToolRenderingExample.js +1 -1
- package/lib/examples/AgUiHaikuGenUiExample.d.ts +1 -1
- package/lib/examples/AgUiHaikuGenUiExample.js +1 -1
- package/lib/examples/AgentCheckpointsExample.js +14 -34
- package/lib/examples/AgentCodemodeExample.d.ts +4 -6
- package/lib/examples/AgentCodemodeExample.js +591 -175
- package/lib/examples/AgentEvalsExample.js +13 -23
- package/lib/examples/AgentGuardrailsExample.js +371 -71
- package/lib/examples/AgentHooksExample.d.ts +3 -0
- package/lib/examples/AgentHooksExample.js +104 -0
- package/lib/examples/AgentMCPExample.d.ts +3 -0
- package/lib/examples/AgentMCPExample.js +480 -0
- package/lib/examples/AgentMemoryExample.js +14 -24
- package/lib/examples/AgentMonitoringExample.js +261 -206
- package/lib/examples/AgentNotificationsExample.js +50 -24
- package/lib/examples/AgentOtelExample.js +2 -3
- package/lib/examples/AgentOutputsExample.d.ts +11 -6
- package/lib/examples/AgentOutputsExample.js +383 -88
- package/lib/examples/AgentParametersExample.d.ts +3 -0
- package/lib/examples/AgentParametersExample.js +246 -0
- package/lib/examples/AgentSandboxExample.d.ts +2 -2
- package/lib/examples/AgentSandboxExample.js +69 -47
- package/lib/examples/AgentSkillsExample.js +92 -106
- package/lib/examples/{AgentspecExample.js → AgentSpecsExample.js} +10 -21
- package/lib/examples/AgentSubagentsExample.d.ts +14 -0
- package/lib/examples/AgentSubagentsExample.js +228 -0
- package/lib/examples/AgentToolApprovalsExample.js +30 -493
- package/lib/examples/AgentTriggersExample.js +1067 -246
- package/lib/examples/ChatCustomExample.js +11 -24
- package/lib/examples/ChatExample.js +9 -34
- package/lib/examples/CopilotKitLexicalExample.js +2 -1
- package/lib/examples/CopilotKitNotebookExample.js +2 -1
- package/lib/examples/HomeExample.d.ts +15 -0
- package/lib/examples/HomeExample.js +77 -0
- package/lib/examples/Lexical2Example.js +4 -2
- package/lib/examples/{LexicalExample.d.ts → LexicalAgentExample.d.ts} +4 -4
- package/lib/examples/{LexicalExample.js → LexicalAgentExample.js} +65 -16
- package/lib/examples/{LexicalSidebarExample.d.ts → LexicalAgentSidebarExample.d.ts} +5 -5
- package/lib/examples/LexicalAgentSidebarExample.js +261 -0
- package/lib/examples/NotebookAgentExample.d.ts +9 -0
- package/lib/examples/NotebookAgentExample.js +192 -0
- package/lib/examples/{NotebookSidebarExample.d.ts → NotebookAgentSidebarExample.d.ts} +2 -2
- package/lib/examples/NotebookAgentSidebarExample.js +221 -0
- package/lib/examples/{DatalayerNotebookExample.d.ts → NotebookCollaborationExample.d.ts} +4 -4
- package/lib/examples/{DatalayerNotebookExample.js → NotebookCollaborationExample.js} +3 -3
- package/lib/examples/NotebookExample.d.ts +4 -7
- package/lib/examples/NotebookExample.js +14 -146
- package/lib/examples/components/AuthRequiredView.d.ts +6 -0
- package/lib/examples/components/AuthRequiredView.js +33 -0
- package/lib/examples/components/ErrorView.d.ts +14 -0
- package/lib/examples/components/ErrorView.js +20 -0
- package/lib/examples/components/ExampleWrapper.d.ts +7 -0
- package/lib/examples/components/ExampleWrapper.js +25 -6
- package/lib/examples/{ag-ui → components}/haiku/HaikuDisplay.js +1 -1
- package/lib/examples/{ag-ui → components}/haiku/InlineHaikuCard.js +1 -1
- package/lib/examples/{ag-ui → components}/haiku/index.d.ts +1 -1
- package/lib/examples/{ag-ui → components}/haiku/index.js +1 -1
- package/lib/examples/components/index.d.ts +5 -0
- package/lib/examples/components/index.js +5 -0
- package/lib/examples/{ag-ui → components}/weather/index.d.ts +1 -1
- package/lib/examples/{ag-ui → components}/weather/index.js +1 -1
- package/lib/examples/example-selector.d.ts +17 -4
- package/lib/examples/example-selector.js +107 -41
- package/lib/examples/index.d.ts +9 -6
- package/lib/examples/index.js +9 -6
- package/lib/examples/main.d.ts +1 -0
- package/lib/examples/main.js +218 -27
- package/lib/examples/utils/a2ui.d.ts +18 -0
- package/lib/examples/utils/a2ui.js +69 -0
- package/lib/examples/utils/a2uiMarkdownProvider.d.ts +7 -0
- package/lib/examples/utils/a2uiMarkdownProvider.js +9 -0
- package/lib/examples/utils/agentId.d.ts +18 -0
- package/lib/examples/utils/agentId.js +54 -0
- package/lib/examples/utils/agents/earthquake-detector.json +11 -11
- package/lib/examples/utils/agents/sales-forecaster.json +11 -11
- package/lib/examples/utils/agents/social-post-generator.json +11 -11
- package/lib/examples/utils/agents/stock-market.json +11 -11
- package/lib/examples/utils/examplesStore.js +82 -27
- package/lib/hooks/index.d.ts +8 -8
- package/lib/hooks/index.js +7 -7
- package/lib/hooks/useA2A.d.ts +2 -3
- package/lib/hooks/useAIAgentsWebSocket.d.ts +43 -4
- package/lib/hooks/useAIAgentsWebSocket.js +118 -12
- package/lib/hooks/useAcp.d.ts +1 -2
- package/lib/hooks/useAgUi.d.ts +1 -1
- package/lib/hooks/{useAgents.d.ts → useAgentRuntimes.d.ts} +39 -2
- package/lib/hooks/{useAgents.js → useAgentRuntimes.js} +125 -15
- package/lib/hooks/useAgentsCatalog.js +1 -1
- package/lib/hooks/useAgentsService.d.ts +2 -2
- package/lib/hooks/useAgentsService.js +7 -7
- package/lib/hooks/useCheckpoints.js +1 -1
- package/lib/hooks/useConfig.d.ts +4 -1
- package/lib/hooks/useConfig.js +10 -3
- package/lib/hooks/useContextSnapshot.d.ts +9 -4
- package/lib/hooks/useContextSnapshot.js +9 -37
- package/lib/hooks/useMonitoring.js +3 -0
- package/lib/hooks/useSandbox.d.ts +20 -8
- package/lib/hooks/useSandbox.js +105 -40
- package/lib/hooks/useSkills.d.ts +23 -5
- package/lib/hooks/useSkills.js +94 -39
- package/lib/hooks/useToolApprovals.d.ts +60 -36
- package/lib/hooks/useToolApprovals.js +318 -69
- package/lib/hooks/useVercelAI.d.ts +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +1 -0
- package/lib/inference/index.d.ts +0 -1
- package/lib/middleware/index.d.ts +0 -1
- package/lib/protocols/AGUIAdapter.js +6 -0
- package/lib/protocols/VercelAIAdapter.d.ts +9 -0
- package/lib/protocols/VercelAIAdapter.js +144 -26
- package/lib/shims/json5.d.ts +4 -0
- package/lib/shims/json5.js +8 -0
- package/lib/specs/agents/agents.d.ts +10 -0
- package/lib/specs/agents/agents.js +752 -24
- package/lib/specs/envvars.d.ts +1 -0
- package/lib/specs/envvars.js +11 -0
- package/lib/specs/events.d.ts +1 -0
- package/lib/specs/events.js +1 -0
- package/lib/specs/index.d.ts +1 -0
- package/lib/specs/index.js +1 -0
- package/lib/specs/personas.d.ts +41 -0
- package/lib/specs/personas.js +168 -0
- package/lib/specs/skills.d.ts +2 -1
- package/lib/specs/skills.js +23 -5
- package/lib/specs/tools.js +3 -0
- package/lib/stores/agentRuntimeStore.d.ts +204 -0
- package/lib/stores/agentRuntimeStore.js +636 -0
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/tools/adapters/copilotkit/lexicalHooks.d.ts +1 -2
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +1 -3
- package/lib/tools/adapters/copilotkit/notebookHooks.d.ts +1 -2
- package/lib/tools/adapters/copilotkit/notebookHooks.js +1 -3
- package/lib/tools/index.d.ts +0 -2
- package/lib/tools/index.js +0 -1
- package/lib/types/agentspecs.d.ts +50 -1
- package/lib/types/chat.d.ts +309 -8
- package/lib/types/context.d.ts +27 -0
- package/lib/types/cost.d.ts +2 -2
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.js +2 -0
- package/lib/types/mcp.d.ts +8 -0
- package/lib/types/models.d.ts +2 -2
- package/lib/types/personas.d.ts +25 -0
- package/lib/types/personas.js +5 -0
- package/lib/types/skills.d.ts +43 -1
- package/lib/types/stream.d.ts +110 -0
- package/lib/types/stream.js +36 -0
- package/lib/types/tools.d.ts +2 -0
- package/lib/utils/utils.d.ts +9 -5
- package/lib/utils/utils.js +9 -5
- package/package.json +13 -9
- package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_events.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/generate_agents.py +106 -7
- package/scripts/codegen/generate_events.py +47 -17
- package/scripts/codegen/generate_personas.py +319 -0
- package/scripts/codegen/generate_skills.py +9 -9
- package/scripts/codegen/generate_tools.py +20 -0
- package/scripts/sync-jupyter.sh +26 -7
- package/style/primer-primitives.css +1 -6
- package/lib/api/tool-approvals.d.ts +0 -62
- package/lib/api/tool-approvals.js +0 -145
- package/lib/examples/LexicalSidebarExample.js +0 -163
- package/lib/examples/NotebookSidebarExample.js +0 -119
- package/lib/examples/NotebookSimpleExample.d.ts +0 -6
- package/lib/examples/NotebookSimpleExample.js +0 -22
- package/lib/examples/ag-ui/index.d.ts +0 -10
- package/lib/examples/ag-ui/index.js +0 -16
- package/lib/hooks/useAgentsRegistry.d.ts +0 -10
- package/lib/hooks/useAgentsRegistry.js +0 -20
- package/lib/stores/agentsStore.d.ts +0 -123
- package/lib/stores/agentsStore.js +0 -270
- package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
- /package/lib/examples/{AgentspecExample.d.ts → AgentSpecsExample.d.ts} +0 -0
- /package/lib/examples/{ag-ui → components}/haiku/HaikuDisplay.d.ts +0 -0
- /package/lib/examples/{ag-ui → components}/haiku/InlineHaikuCard.d.ts +0 -0
- /package/lib/examples/{ag-ui → components}/weather/InlineWeatherCard.d.ts +0 -0
- /package/lib/examples/{ag-ui → components}/weather/InlineWeatherCard.js +0 -0
package/lib/specs/envvars.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { EnvvarSpec } from '../types';
|
|
10
10
|
export declare const ALPHAVANTAGE_API_KEY_SPEC_0_0_1: EnvvarSpec;
|
|
11
|
+
export declare const DATALAYER_API_KEY_SPEC_0_0_1: EnvvarSpec;
|
|
11
12
|
export declare const GITHUB_TOKEN_SPEC_0_0_1: EnvvarSpec;
|
|
12
13
|
export declare const GOOGLE_OAUTH_CLIENT_ID_SPEC_0_0_1: EnvvarSpec;
|
|
13
14
|
export declare const GOOGLE_OAUTH_CLIENT_SECRET_SPEC_0_0_1: EnvvarSpec;
|
package/lib/specs/envvars.js
CHANGED
|
@@ -15,6 +15,16 @@ export const ALPHAVANTAGE_API_KEY_SPEC_0_0_1 = {
|
|
|
15
15
|
icon: 'key',
|
|
16
16
|
emoji: '🔑',
|
|
17
17
|
};
|
|
18
|
+
export const DATALAYER_API_KEY_SPEC_0_0_1 = {
|
|
19
|
+
id: 'DATALAYER_API_KEY',
|
|
20
|
+
version: '0.0.1',
|
|
21
|
+
name: 'Datalayer API Key',
|
|
22
|
+
description: 'API key for authenticating with Datalayer services, including datalayer-skills such as datalayer-whoami.',
|
|
23
|
+
registrationUrl: 'https://datalayer.app',
|
|
24
|
+
tags: ['authentication', 'api-key', 'datalayer', 'skill'],
|
|
25
|
+
icon: 'key',
|
|
26
|
+
emoji: '🔑',
|
|
27
|
+
};
|
|
18
28
|
export const GITHUB_TOKEN_SPEC_0_0_1 = {
|
|
19
29
|
id: 'GITHUB_TOKEN',
|
|
20
30
|
version: '0.0.1',
|
|
@@ -116,6 +126,7 @@ export const TAVILY_API_KEY_SPEC_0_0_1 = {
|
|
|
116
126
|
// ============================================================================
|
|
117
127
|
export const ENVVAR_CATALOG = {
|
|
118
128
|
ALPHAVANTAGE_API_KEY: ALPHAVANTAGE_API_KEY_SPEC_0_0_1,
|
|
129
|
+
DATALAYER_API_KEY: DATALAYER_API_KEY_SPEC_0_0_1,
|
|
119
130
|
GITHUB_TOKEN: GITHUB_TOKEN_SPEC_0_0_1,
|
|
120
131
|
GOOGLE_OAUTH_CLIENT_ID: GOOGLE_OAUTH_CLIENT_ID_SPEC_0_0_1,
|
|
121
132
|
GOOGLE_OAUTH_CLIENT_SECRET: GOOGLE_OAUTH_CLIENT_SECRET_SPEC_0_0_1,
|
package/lib/specs/events.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare const TOOL_APPROVAL_REQUESTED_EVENT_SPEC_0_0_1: EventSpec;
|
|
|
13
13
|
export declare const EVENT_KIND_AGENT_ENDED = "agent-ended";
|
|
14
14
|
export declare const EVENT_KIND_AGENT_STARTED = "agent-started";
|
|
15
15
|
export declare const EVENT_KIND_TOOL_APPROVAL_REQUESTED = "tool-approval-requested";
|
|
16
|
+
export declare const EVENT_KIND_AGENT_ASSIGNED = "agent-assigned";
|
|
16
17
|
export declare const EVENT_CATALOG: Record<string, EventSpec>;
|
|
17
18
|
export declare function getEventSpecs(): EventSpec[];
|
|
18
19
|
export declare function getEventSpec(eventId: string): EventSpec | undefined;
|
package/lib/specs/events.js
CHANGED
|
@@ -155,6 +155,7 @@ export const TOOL_APPROVAL_REQUESTED_EVENT_SPEC_0_0_1 = {
|
|
|
155
155
|
export const EVENT_KIND_AGENT_ENDED = 'agent-ended';
|
|
156
156
|
export const EVENT_KIND_AGENT_STARTED = 'agent-started';
|
|
157
157
|
export const EVENT_KIND_TOOL_APPROVAL_REQUESTED = 'tool-approval-requested';
|
|
158
|
+
export const EVENT_KIND_AGENT_ASSIGNED = 'agent-assigned';
|
|
158
159
|
// ============================================================================
|
|
159
160
|
// Event Catalog
|
|
160
161
|
// ============================================================================
|
package/lib/specs/index.d.ts
CHANGED
package/lib/specs/index.js
CHANGED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persona Catalog
|
|
3
|
+
*
|
|
4
|
+
* Predefined Persona configurations built on top of agent specs.
|
|
5
|
+
*
|
|
6
|
+
* This file is AUTO-GENERATED from YAML specifications.
|
|
7
|
+
* DO NOT EDIT MANUALLY - run 'make specs' to regenerate.
|
|
8
|
+
*/
|
|
9
|
+
import type { PersonaSpec } from '../types';
|
|
10
|
+
export declare const Personas: {
|
|
11
|
+
readonly CODE: "code";
|
|
12
|
+
readonly FORECASTER: "forecaster";
|
|
13
|
+
readonly INTRUSION: "intrusion";
|
|
14
|
+
readonly JOVYAN: "jovyan";
|
|
15
|
+
readonly MARKETING: "marketing";
|
|
16
|
+
readonly PENTEST: "pentest";
|
|
17
|
+
readonly PHARMA: "pharma";
|
|
18
|
+
readonly POIROT: "poirot";
|
|
19
|
+
readonly SENTINEL: "sentinel";
|
|
20
|
+
readonly TRADER: "trader";
|
|
21
|
+
readonly TUTOR: "tutor";
|
|
22
|
+
readonly TWIN: "twin";
|
|
23
|
+
};
|
|
24
|
+
export type PersonaId = (typeof Personas)[keyof typeof Personas];
|
|
25
|
+
export declare const CODE_PERSONA_0_0_1: PersonaSpec;
|
|
26
|
+
export declare const FORECASTER_PERSONA_0_0_1: PersonaSpec;
|
|
27
|
+
export declare const INTRUSION_PERSONA_0_0_1: PersonaSpec;
|
|
28
|
+
export declare const JOVYAN_PERSONA_0_0_1: PersonaSpec;
|
|
29
|
+
export declare const MARKETING_PERSONA_0_0_1: PersonaSpec;
|
|
30
|
+
export declare const PENTEST_PERSONA_0_0_1: PersonaSpec;
|
|
31
|
+
export declare const PHARMA_PERSONA_0_0_1: PersonaSpec;
|
|
32
|
+
export declare const POIROT_PERSONA_0_0_1: PersonaSpec;
|
|
33
|
+
export declare const SENTINEL_PERSONA_0_0_1: PersonaSpec;
|
|
34
|
+
export declare const TRADER_PERSONA_0_0_1: PersonaSpec;
|
|
35
|
+
export declare const TUTOR_PERSONA_0_0_1: PersonaSpec;
|
|
36
|
+
export declare const TWIN_PERSONA_0_0_1: PersonaSpec;
|
|
37
|
+
export declare const PERSONA_CATALOGUE: Record<string, PersonaSpec>;
|
|
38
|
+
/** Get a persona specification by ID. */
|
|
39
|
+
export declare function getPersona(personaId: string): PersonaSpec | undefined;
|
|
40
|
+
/** List all available personas. */
|
|
41
|
+
export declare function listPersonas(): PersonaSpec[];
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Personas Enum
|
|
7
|
+
// ============================================================================
|
|
8
|
+
export const Personas = {
|
|
9
|
+
CODE: 'code',
|
|
10
|
+
FORECASTER: 'forecaster',
|
|
11
|
+
INTRUSION: 'intrusion',
|
|
12
|
+
JOVYAN: 'jovyan',
|
|
13
|
+
MARKETING: 'marketing',
|
|
14
|
+
PENTEST: 'pentest',
|
|
15
|
+
PHARMA: 'pharma',
|
|
16
|
+
POIROT: 'poirot',
|
|
17
|
+
SENTINEL: 'sentinel',
|
|
18
|
+
TRADER: 'trader',
|
|
19
|
+
TUTOR: 'tutor',
|
|
20
|
+
TWIN: 'twin',
|
|
21
|
+
};
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// Persona Definitions
|
|
24
|
+
// ============================================================================
|
|
25
|
+
export const CODE_PERSONA_0_0_1 = {
|
|
26
|
+
id: 'code',
|
|
27
|
+
version: '0.0.1',
|
|
28
|
+
name: 'Code',
|
|
29
|
+
description: 'A pragmatic coding companion focused on writing, reviewing and refactoring software. Pairs well with editors, terminals and code execution sandboxes.',
|
|
30
|
+
tags: ['coding', 'development', 'engineering', 'assistant'],
|
|
31
|
+
icon: 'code',
|
|
32
|
+
emoji: '🧑💻',
|
|
33
|
+
};
|
|
34
|
+
export const FORECASTER_PERSONA_0_0_1 = {
|
|
35
|
+
id: 'forecaster',
|
|
36
|
+
version: '0.0.1',
|
|
37
|
+
name: 'Forecaster',
|
|
38
|
+
description: 'A predictive-analytics persona that builds and explains time-series forecasts — sales pipelines, demand planning, revenue projection and scenario analysis.',
|
|
39
|
+
tags: ['forecasting', 'analytics', 'sales', 'time-series'],
|
|
40
|
+
icon: 'graph',
|
|
41
|
+
emoji: '📈',
|
|
42
|
+
};
|
|
43
|
+
export const INTRUSION_PERSONA_0_0_1 = {
|
|
44
|
+
id: 'intrusion',
|
|
45
|
+
version: '0.0.1',
|
|
46
|
+
name: 'Intrusion',
|
|
47
|
+
description: 'A defensive security persona focused on intrusion detection, log analysis, threat hunting and incident response across networks, endpoints and cloud workloads.',
|
|
48
|
+
tags: ['security', 'intrusion-detection', 'threat-hunting', 'blue-team'],
|
|
49
|
+
icon: 'shield-lock',
|
|
50
|
+
emoji: '🛡️',
|
|
51
|
+
};
|
|
52
|
+
export const JOVYAN_PERSONA_0_0_1 = {
|
|
53
|
+
id: 'jovyan',
|
|
54
|
+
version: '0.0.1',
|
|
55
|
+
name: 'Jovyan',
|
|
56
|
+
description: 'A Jupyter-native companion that lives in notebooks and lexical documents, runs cells, inspects kernels and helps you explore data, narratives and computations.',
|
|
57
|
+
tags: ['jupyter', 'notebook', 'data-science', 'kernels'],
|
|
58
|
+
icon: 'zap',
|
|
59
|
+
emoji: '🪐',
|
|
60
|
+
};
|
|
61
|
+
export const MARKETING_PERSONA_0_0_1 = {
|
|
62
|
+
id: 'marketing',
|
|
63
|
+
version: '0.0.1',
|
|
64
|
+
name: 'Marketing',
|
|
65
|
+
description: 'A creative marketing persona that drafts campaigns, social posts, newsletters and product copy — adapting tone, channel and audience to maximize engagement.',
|
|
66
|
+
tags: ['marketing', 'content', 'social-media', 'copywriting'],
|
|
67
|
+
icon: 'megaphone',
|
|
68
|
+
emoji: '📣',
|
|
69
|
+
};
|
|
70
|
+
export const PENTEST_PERSONA_0_0_1 = {
|
|
71
|
+
id: 'pentest',
|
|
72
|
+
version: '0.0.1',
|
|
73
|
+
name: 'Pentest',
|
|
74
|
+
description: 'An offensive security persona that helps with authorized penetration testing — reconnaissance, vulnerability assessment, exploit reasoning and reporting.',
|
|
75
|
+
tags: ['security', 'penetration-testing', 'red-team', 'vulnerability'],
|
|
76
|
+
icon: 'bug',
|
|
77
|
+
emoji: '🕷️',
|
|
78
|
+
};
|
|
79
|
+
export const PHARMA_PERSONA_0_0_1 = {
|
|
80
|
+
id: 'pharma',
|
|
81
|
+
version: '0.0.1',
|
|
82
|
+
name: 'Pharma',
|
|
83
|
+
description: 'A life-sciences persona for pharmaceutical and clinical workflows — literature review, trial data exploration, regulatory reporting and drug-safety signal triage.',
|
|
84
|
+
tags: ['pharma', 'life-sciences', 'clinical', 'regulatory'],
|
|
85
|
+
icon: 'beaker',
|
|
86
|
+
emoji: '💊',
|
|
87
|
+
};
|
|
88
|
+
export const POIROT_PERSONA_0_0_1 = {
|
|
89
|
+
id: 'poirot',
|
|
90
|
+
version: '0.0.1',
|
|
91
|
+
name: 'Poirot',
|
|
92
|
+
description: 'A meticulous detective persona for investigative workflows — root cause analysis, evidence correlation, timeline reconstruction and hypothesis testing across heterogeneous data.',
|
|
93
|
+
tags: ['investigation', 'root-cause', 'forensics', 'reasoning'],
|
|
94
|
+
icon: 'search',
|
|
95
|
+
emoji: '🕵️',
|
|
96
|
+
};
|
|
97
|
+
export const SENTINEL_PERSONA_0_0_1 = {
|
|
98
|
+
id: 'sentinel',
|
|
99
|
+
version: '0.0.1',
|
|
100
|
+
name: 'Sentinel',
|
|
101
|
+
description: 'A vigilant monitoring persona for real-time signal detection, anomaly spotting and early-warning alerts — including use cases such as seismic activity, infrastructure health and live event streams.',
|
|
102
|
+
tags: ['monitoring', 'detection', 'alerting', 'real-time', 'earthquake'],
|
|
103
|
+
icon: 'shield',
|
|
104
|
+
emoji: '🛰️',
|
|
105
|
+
};
|
|
106
|
+
export const TRADER_PERSONA_0_0_1 = {
|
|
107
|
+
id: 'trader',
|
|
108
|
+
version: '0.0.1',
|
|
109
|
+
name: 'Trader',
|
|
110
|
+
description: 'A markets persona for stock and portfolio analysis — quote retrieval, technical indicators, portfolio tracking and trading research workflows.',
|
|
111
|
+
tags: ['finance', 'stocks', 'markets', 'portfolio'],
|
|
112
|
+
icon: 'pulse',
|
|
113
|
+
emoji: '💹',
|
|
114
|
+
};
|
|
115
|
+
export const TUTOR_PERSONA_0_0_1 = {
|
|
116
|
+
id: 'tutor',
|
|
117
|
+
version: '0.0.1',
|
|
118
|
+
name: 'Tutor',
|
|
119
|
+
description: "A patient teaching companion that explains concepts, walks through examples step by step, asks questions and adapts its style to the learner's level.",
|
|
120
|
+
tags: ['education', 'learning', 'teaching', 'mentorship'],
|
|
121
|
+
icon: 'book',
|
|
122
|
+
emoji: '🎓',
|
|
123
|
+
};
|
|
124
|
+
export const TWIN_PERSONA_0_0_1 = {
|
|
125
|
+
id: 'twin',
|
|
126
|
+
version: '0.0.1',
|
|
127
|
+
name: 'Twin',
|
|
128
|
+
description: 'A digital twin of you — mirrors your context, preferences and history to assist with personal productivity, decision making and continuity across tools and sessions.',
|
|
129
|
+
tags: ['personal', 'productivity', 'context', 'assistant'],
|
|
130
|
+
icon: 'person',
|
|
131
|
+
emoji: '👤',
|
|
132
|
+
};
|
|
133
|
+
// ============================================================================
|
|
134
|
+
// Persona Catalog
|
|
135
|
+
// ============================================================================
|
|
136
|
+
export const PERSONA_CATALOGUE = {
|
|
137
|
+
code: CODE_PERSONA_0_0_1,
|
|
138
|
+
forecaster: FORECASTER_PERSONA_0_0_1,
|
|
139
|
+
intrusion: INTRUSION_PERSONA_0_0_1,
|
|
140
|
+
jovyan: JOVYAN_PERSONA_0_0_1,
|
|
141
|
+
marketing: MARKETING_PERSONA_0_0_1,
|
|
142
|
+
pentest: PENTEST_PERSONA_0_0_1,
|
|
143
|
+
pharma: PHARMA_PERSONA_0_0_1,
|
|
144
|
+
poirot: POIROT_PERSONA_0_0_1,
|
|
145
|
+
sentinel: SENTINEL_PERSONA_0_0_1,
|
|
146
|
+
trader: TRADER_PERSONA_0_0_1,
|
|
147
|
+
tutor: TUTOR_PERSONA_0_0_1,
|
|
148
|
+
twin: TWIN_PERSONA_0_0_1,
|
|
149
|
+
};
|
|
150
|
+
function resolvePersonaId(personaId) {
|
|
151
|
+
if (personaId in PERSONA_CATALOGUE)
|
|
152
|
+
return personaId;
|
|
153
|
+
const idx = personaId.lastIndexOf(':');
|
|
154
|
+
if (idx > 0) {
|
|
155
|
+
const base = personaId.slice(0, idx);
|
|
156
|
+
if (base in PERSONA_CATALOGUE)
|
|
157
|
+
return base;
|
|
158
|
+
}
|
|
159
|
+
return personaId;
|
|
160
|
+
}
|
|
161
|
+
/** Get a persona specification by ID. */
|
|
162
|
+
export function getPersona(personaId) {
|
|
163
|
+
return PERSONA_CATALOGUE[resolvePersonaId(personaId)];
|
|
164
|
+
}
|
|
165
|
+
/** List all available personas. */
|
|
166
|
+
export function listPersonas() {
|
|
167
|
+
return Object.values(PERSONA_CATALOGUE);
|
|
168
|
+
}
|
package/lib/specs/skills.d.ts
CHANGED
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { SkillSpec } from '../types';
|
|
10
10
|
export declare const CRAWL_SKILL_SPEC_0_0_1: SkillSpec;
|
|
11
|
+
export declare const DATALAYER_WHOAMI_SKILL_SPEC_0_0_1: SkillSpec;
|
|
11
12
|
export declare const EVENTS_SKILL_SPEC_0_0_1: SkillSpec;
|
|
12
13
|
export declare const GITHUB_SKILL_SPEC_0_0_1: SkillSpec;
|
|
13
14
|
export declare const JOKES_SKILL_SPEC_0_0_1: SkillSpec;
|
|
14
15
|
export declare const PDF_SKILL_SPEC_0_0_1: SkillSpec;
|
|
15
16
|
export declare const TEXT_SUMMARIZER_SKILL_SPEC_0_0_1: SkillSpec;
|
|
16
|
-
export declare const
|
|
17
|
+
export declare const SKILLS_CATALOG: Record<string, SkillSpec>;
|
|
17
18
|
export declare function getSkillSpecs(): SkillSpec[];
|
|
18
19
|
export declare function getSkillSpec(skillId: string): SkillSpec | undefined;
|
package/lib/specs/skills.js
CHANGED
|
@@ -22,6 +22,23 @@ export const CRAWL_SKILL_SPEC_0_0_1 = {
|
|
|
22
22
|
emoji: '🌐',
|
|
23
23
|
enabled: true,
|
|
24
24
|
};
|
|
25
|
+
export const DATALAYER_WHOAMI_SKILL_SPEC_0_0_1 = {
|
|
26
|
+
id: 'datalayer-whoami',
|
|
27
|
+
version: '0.0.1',
|
|
28
|
+
name: 'Datalayer Whoami Skill',
|
|
29
|
+
description: 'Retrieve the authenticated Datalayer user profile using the datalayer-skills package.',
|
|
30
|
+
module: 'datalayer_skills.skills.whoami',
|
|
31
|
+
package: undefined,
|
|
32
|
+
method: undefined,
|
|
33
|
+
path: undefined,
|
|
34
|
+
requiredEnvVars: ['DATALAYER_API_KEY:0.0.1'],
|
|
35
|
+
optionalEnvVars: [],
|
|
36
|
+
dependencies: ['datalayer_skills>=0.1.0'],
|
|
37
|
+
tags: ['datalayer', 'iam', 'identity', 'profile'],
|
|
38
|
+
icon: 'person',
|
|
39
|
+
emoji: '👤',
|
|
40
|
+
enabled: true,
|
|
41
|
+
};
|
|
25
42
|
export const EVENTS_SKILL_SPEC_0_0_1 = {
|
|
26
43
|
id: 'events',
|
|
27
44
|
version: '0.0.1',
|
|
@@ -110,8 +127,9 @@ export const TEXT_SUMMARIZER_SKILL_SPEC_0_0_1 = {
|
|
|
110
127
|
// ============================================================================
|
|
111
128
|
// Skill Catalog
|
|
112
129
|
// ============================================================================
|
|
113
|
-
export const
|
|
130
|
+
export const SKILLS_CATALOG = {
|
|
114
131
|
crawl: CRAWL_SKILL_SPEC_0_0_1,
|
|
132
|
+
'datalayer-whoami': DATALAYER_WHOAMI_SKILL_SPEC_0_0_1,
|
|
115
133
|
events: EVENTS_SKILL_SPEC_0_0_1,
|
|
116
134
|
github: GITHUB_SKILL_SPEC_0_0_1,
|
|
117
135
|
jokes: JOKES_SKILL_SPEC_0_0_1,
|
|
@@ -119,19 +137,19 @@ export const SKILL_CATALOG = {
|
|
|
119
137
|
'text-summarizer': TEXT_SUMMARIZER_SKILL_SPEC_0_0_1,
|
|
120
138
|
};
|
|
121
139
|
export function getSkillSpecs() {
|
|
122
|
-
return Object.values(
|
|
140
|
+
return Object.values(SKILLS_CATALOG);
|
|
123
141
|
}
|
|
124
142
|
function resolveSkillId(skillId) {
|
|
125
|
-
if (skillId in
|
|
143
|
+
if (skillId in SKILLS_CATALOG)
|
|
126
144
|
return skillId;
|
|
127
145
|
const idx = skillId.lastIndexOf(':');
|
|
128
146
|
if (idx > 0) {
|
|
129
147
|
const base = skillId.slice(0, idx);
|
|
130
|
-
if (base in
|
|
148
|
+
if (base in SKILLS_CATALOG)
|
|
131
149
|
return base;
|
|
132
150
|
}
|
|
133
151
|
return skillId;
|
|
134
152
|
}
|
|
135
153
|
export function getSkillSpec(skillId) {
|
|
136
|
-
return
|
|
154
|
+
return SKILLS_CATALOG[resolveSkillId(skillId)];
|
|
137
155
|
}
|
package/lib/specs/tools.js
CHANGED
|
@@ -13,6 +13,7 @@ export const RUNTIME_ECHO_TOOL_SPEC_0_0_1 = {
|
|
|
13
13
|
tags: ['runtime', 'utility'],
|
|
14
14
|
enabled: true,
|
|
15
15
|
approval: 'auto',
|
|
16
|
+
timeout: undefined,
|
|
16
17
|
requiresApproval: false,
|
|
17
18
|
runtime: {
|
|
18
19
|
language: 'python',
|
|
@@ -30,6 +31,7 @@ export const RUNTIME_SEND_MAIL_TOOL_SPEC_0_0_1 = {
|
|
|
30
31
|
tags: ['runtime', 'approval', 'mail'],
|
|
31
32
|
enabled: true,
|
|
32
33
|
approval: 'manual',
|
|
34
|
+
timeout: undefined,
|
|
33
35
|
requiresApproval: true,
|
|
34
36
|
runtime: {
|
|
35
37
|
language: 'python',
|
|
@@ -47,6 +49,7 @@ export const RUNTIME_SENSITIVE_ECHO_TOOL_SPEC_0_0_1 = {
|
|
|
47
49
|
tags: ['runtime', 'approval'],
|
|
48
50
|
enabled: true,
|
|
49
51
|
approval: 'manual',
|
|
52
|
+
timeout: undefined,
|
|
50
53
|
requiresApproval: true,
|
|
51
54
|
runtime: {
|
|
52
55
|
language: 'python',
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import type { ServiceManager } from '@jupyterlab/services';
|
|
2
|
+
import type { IRuntimeOptions } from '@datalayer/core/lib/stateful/runtimes/apis';
|
|
3
|
+
import type { AgentStatus, AgentConnection, AgentConfig, Protocol } from '../types';
|
|
4
|
+
import type { AgentStreamSnapshotPayload, AgentStreamToolApprovalPayload, CodemodeStatusData } from '../types/stream';
|
|
5
|
+
import type { ContextSnapshotData } from '../types/context';
|
|
6
|
+
import type { McpToolsetsStatusResponse } from '../types/mcp';
|
|
7
|
+
import type { LoadedSkillInfo } from '../types/skills';
|
|
8
|
+
/**
|
|
9
|
+
* A URL-addressable agent that has been previously connected.
|
|
10
|
+
* May originate from an agent runtime pod OR from the stable agents service.
|
|
11
|
+
*/
|
|
12
|
+
export interface AgentRegistryEntry {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
protocol: Protocol;
|
|
18
|
+
status: AgentStatus;
|
|
19
|
+
error?: string | null;
|
|
20
|
+
lastUpdated: number;
|
|
21
|
+
documentId?: string;
|
|
22
|
+
runtimeId?: string;
|
|
23
|
+
author?: string;
|
|
24
|
+
avatarUrl?: string;
|
|
25
|
+
}
|
|
26
|
+
export type AgentRuntimeWsState = 'closed' | 'connecting' | 'connected';
|
|
27
|
+
export interface LocalTokenTurn {
|
|
28
|
+
turnNumber: number;
|
|
29
|
+
timestampMs: number;
|
|
30
|
+
systemPromptTokens: number;
|
|
31
|
+
toolsDescriptionTokens: number;
|
|
32
|
+
userMessageTokens: number;
|
|
33
|
+
aiMessageTokens: number;
|
|
34
|
+
toolsUsageTokens: number;
|
|
35
|
+
totalTokens: number;
|
|
36
|
+
}
|
|
37
|
+
export interface LocalCostPoint {
|
|
38
|
+
timestampMs: number;
|
|
39
|
+
cumulativeUsd: number;
|
|
40
|
+
}
|
|
41
|
+
export interface MonitoringCacheEntry {
|
|
42
|
+
tokenTurns: LocalTokenTurn[];
|
|
43
|
+
costPoints: LocalCostPoint[];
|
|
44
|
+
}
|
|
45
|
+
export declare function getMonitoringCacheKey(serviceName?: string, agentId?: string): string;
|
|
46
|
+
export interface AgentRuntimeStoreState {
|
|
47
|
+
agents: readonly AgentRegistryEntry[];
|
|
48
|
+
runtime: AgentConnection | null;
|
|
49
|
+
status: AgentStatus;
|
|
50
|
+
error: string | null;
|
|
51
|
+
isLaunching: boolean;
|
|
52
|
+
wsState: AgentRuntimeWsState;
|
|
53
|
+
approvals: AgentStreamToolApprovalPayload[];
|
|
54
|
+
pendingApprovalCount: number;
|
|
55
|
+
contextSnapshot: ContextSnapshotData | null;
|
|
56
|
+
costUsage: ContextSnapshotData['costUsage'] | null;
|
|
57
|
+
mcpStatus: McpToolsetsStatusResponse | null;
|
|
58
|
+
codemodeStatus: CodemodeStatusData | null;
|
|
59
|
+
fullContext: Record<string, unknown> | null;
|
|
60
|
+
monitoringCache: Record<string, MonitoringCacheEntry>;
|
|
61
|
+
loadedSkillsByAgentId: Record<string, LoadedSkillInfo[]>;
|
|
62
|
+
}
|
|
63
|
+
export interface AgentRuntimeStoreActions {
|
|
64
|
+
upsertAgent: (agent: Partial<AgentRegistryEntry> & {
|
|
65
|
+
id: string;
|
|
66
|
+
baseUrl: string;
|
|
67
|
+
protocol: Protocol;
|
|
68
|
+
}) => void;
|
|
69
|
+
getAgentById: (id: string) => AgentRegistryEntry | undefined;
|
|
70
|
+
getAgentByUrl: (baseUrl: string, protocol: Protocol) => AgentRegistryEntry | undefined;
|
|
71
|
+
updateAgentStatus: (id: string, status: AgentStatus, error?: string | null) => void;
|
|
72
|
+
toggleAgentStatus: (id: string) => void;
|
|
73
|
+
deleteAgent: (id: string) => void;
|
|
74
|
+
clearAgents: () => void;
|
|
75
|
+
setLoadedSkillsForAgent: (agentId: string, skills: LoadedSkillInfo[]) => void;
|
|
76
|
+
getLoadedSkillsForAgent: (agentId: string) => LoadedSkillInfo[];
|
|
77
|
+
clearLoadedSkillsForAgent: (agentId: string) => void;
|
|
78
|
+
launchAgent: (options: IRuntimeOptions) => Promise<AgentConnection>;
|
|
79
|
+
connectAgent: (connection: {
|
|
80
|
+
podName: string;
|
|
81
|
+
environmentName: string;
|
|
82
|
+
serviceManager?: ServiceManager.IManager;
|
|
83
|
+
jupyterBaseUrl?: string;
|
|
84
|
+
kernelId?: string;
|
|
85
|
+
}) => void;
|
|
86
|
+
createAgent: (config?: AgentConfig) => Promise<Pick<AgentConnection, 'agentId' | 'endpoint' | 'isReady'>>;
|
|
87
|
+
disconnect: () => void;
|
|
88
|
+
clearError: () => void;
|
|
89
|
+
setError: (error: string) => void;
|
|
90
|
+
setWsState: (state: AgentRuntimeWsState) => void;
|
|
91
|
+
setWs: (ws: WebSocket | null, agentId?: string) => void;
|
|
92
|
+
applySnapshot: (payload: AgentStreamSnapshotPayload) => void;
|
|
93
|
+
upsertApproval: (approval: AgentStreamToolApprovalPayload) => void;
|
|
94
|
+
removeApproval: (approvalId: string) => void;
|
|
95
|
+
sendDecision: (approvalId: string, approved: boolean, note?: string, toolCallId?: string, agentId?: string) => boolean;
|
|
96
|
+
requestRefresh: (agentId?: string) => boolean;
|
|
97
|
+
sendRawMessage: (payload: Record<string, unknown>, agentId?: string) => boolean;
|
|
98
|
+
appendLocalTokenTurn: (params: {
|
|
99
|
+
serviceName?: string;
|
|
100
|
+
agentId?: string;
|
|
101
|
+
timestampMs: number;
|
|
102
|
+
promptTokens: number;
|
|
103
|
+
completionTokens: number;
|
|
104
|
+
totalTokens: number;
|
|
105
|
+
}) => void;
|
|
106
|
+
mergeTokenTurns: (params: {
|
|
107
|
+
serviceName?: string;
|
|
108
|
+
agentId?: string;
|
|
109
|
+
turns: LocalTokenTurn[];
|
|
110
|
+
}) => void;
|
|
111
|
+
appendLocalTokenTurnFull: (params: {
|
|
112
|
+
serviceName?: string;
|
|
113
|
+
agentId?: string;
|
|
114
|
+
timestampMs: number;
|
|
115
|
+
systemPromptTokens: number;
|
|
116
|
+
toolsDescriptionTokens: number;
|
|
117
|
+
userMessageTokens: number;
|
|
118
|
+
aiMessageTokens: number;
|
|
119
|
+
toolsUsageTokens: number;
|
|
120
|
+
totalTokens: number;
|
|
121
|
+
}) => void;
|
|
122
|
+
upsertLocalCostPoint: (params: {
|
|
123
|
+
serviceName?: string;
|
|
124
|
+
agentId?: string;
|
|
125
|
+
timestampMs: number;
|
|
126
|
+
cumulativeUsd: number;
|
|
127
|
+
}) => void;
|
|
128
|
+
mergeCostPoints: (params: {
|
|
129
|
+
serviceName?: string;
|
|
130
|
+
agentId?: string;
|
|
131
|
+
points: LocalCostPoint[];
|
|
132
|
+
}) => void;
|
|
133
|
+
reset: () => void;
|
|
134
|
+
resetWs: () => void;
|
|
135
|
+
}
|
|
136
|
+
export type AgentRuntimeStore = AgentRuntimeStoreState & AgentRuntimeStoreActions;
|
|
137
|
+
export declare const agentRuntimeStore: Omit<Omit<import("zustand").StoreApi<AgentRuntimeStore>, "subscribe"> & {
|
|
138
|
+
subscribe: {
|
|
139
|
+
(listener: (selectedState: AgentRuntimeStore, previousSelectedState: AgentRuntimeStore) => void): () => void;
|
|
140
|
+
<U>(selector: (state: AgentRuntimeStore) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
141
|
+
equalityFn?: ((a: U, b: U) => boolean) | undefined;
|
|
142
|
+
fireImmediately?: boolean;
|
|
143
|
+
} | undefined): () => void;
|
|
144
|
+
};
|
|
145
|
+
}, "persist"> & {
|
|
146
|
+
persist: {
|
|
147
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<AgentRuntimeStore, unknown>>) => void;
|
|
148
|
+
clearStorage: () => void;
|
|
149
|
+
rehydrate: () => Promise<void> | void;
|
|
150
|
+
hasHydrated: () => boolean;
|
|
151
|
+
onHydrate: (fn: (state: AgentRuntimeStore) => void) => () => void;
|
|
152
|
+
onFinishHydration: (fn: (state: AgentRuntimeStore) => void) => () => void;
|
|
153
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<AgentRuntimeStore, unknown>>;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
export declare function useAgentRuntimeStore(): AgentRuntimeStore;
|
|
157
|
+
export declare function useAgentRuntimeStore<T>(selector: (state: AgentRuntimeStore) => T): T;
|
|
158
|
+
export declare const useAgentRuntimeConnection: () => AgentConnection | null;
|
|
159
|
+
export declare const useAgentRuntimeStatus: () => AgentStatus;
|
|
160
|
+
export declare const useAgentRuntimeError: () => string | null;
|
|
161
|
+
export declare const useAgentRuntimeIsLaunching: () => boolean;
|
|
162
|
+
export declare const useAgentRuntimeApprovals: () => AgentStreamToolApprovalPayload[];
|
|
163
|
+
export declare const useAgentRuntimePendingCount: () => number;
|
|
164
|
+
export declare const useAgentRuntimeMcpStatus: () => McpToolsetsStatusResponse | null;
|
|
165
|
+
export declare const useAgentRuntimeFullContext: () => Record<string, unknown> | null;
|
|
166
|
+
export declare const useAgentRuntimeContextSnapshot: () => ContextSnapshotData | null;
|
|
167
|
+
export declare const useAgentRuntimeCostUsage: () => {
|
|
168
|
+
lastTurnCostUsd: number;
|
|
169
|
+
cumulativeCostUsd: number;
|
|
170
|
+
perRunBudgetUsd: number | null;
|
|
171
|
+
cumulativeBudgetUsd: number | null;
|
|
172
|
+
requestCount: number;
|
|
173
|
+
totalTokensUsed: number;
|
|
174
|
+
modelBreakdown: Array<{
|
|
175
|
+
model: string;
|
|
176
|
+
inputTokens: number;
|
|
177
|
+
outputTokens: number;
|
|
178
|
+
costUsd: number;
|
|
179
|
+
requests: number;
|
|
180
|
+
}>;
|
|
181
|
+
runs: Array<{
|
|
182
|
+
timestamp: string;
|
|
183
|
+
model: string;
|
|
184
|
+
inputTokens: number;
|
|
185
|
+
outputTokens: number;
|
|
186
|
+
runCostUsd: number;
|
|
187
|
+
cumulativeCostUsd: number;
|
|
188
|
+
pricePerInputToken: number | null;
|
|
189
|
+
pricePerOutputToken: number | null;
|
|
190
|
+
pricingResolved: boolean;
|
|
191
|
+
}>;
|
|
192
|
+
lastUpdated: string | null;
|
|
193
|
+
} | null | undefined;
|
|
194
|
+
export declare const useAgentRuntimeCodemodeStatus: () => CodemodeStatusData | null;
|
|
195
|
+
export declare const useAgentRuntimeWsState: () => AgentRuntimeWsState;
|
|
196
|
+
export declare const useAgentRuntimeLoadedSkills: (agentId?: string) => LoadedSkillInfo[];
|
|
197
|
+
export declare const getAgentRuntimeState: () => AgentRuntimeStore;
|
|
198
|
+
export declare const subscribeToAgentRuntime: {
|
|
199
|
+
(listener: (selectedState: AgentRuntimeStore, previousSelectedState: AgentRuntimeStore) => void): () => void;
|
|
200
|
+
<U>(selector: (state: AgentRuntimeStore) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
201
|
+
equalityFn?: ((a: U, b: U) => boolean) | undefined;
|
|
202
|
+
fireImmediately?: boolean;
|
|
203
|
+
} | undefined): () => void;
|
|
204
|
+
};
|