@datalayer/agent-runtimes 1.0.4 → 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 +34 -0
- 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 -106
- 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 +1083 -157
- 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 +108 -113
- 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 +0 -18
- package/lib/client/AgentsMixin.js +6 -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 +5 -1
- 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 +13 -27
- package/lib/examples/AgentCodemodeExample.d.ts +4 -6
- package/lib/examples/AgentCodemodeExample.js +591 -169
- package/lib/examples/AgentEvalsExample.js +12 -16
- package/lib/examples/AgentGuardrailsExample.js +370 -64
- 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 +13 -17
- package/lib/examples/AgentMonitoringExample.js +260 -199
- package/lib/examples/AgentNotificationsExample.js +49 -17
- package/lib/examples/AgentOtelExample.js +2 -3
- package/lib/examples/AgentOutputsExample.d.ts +11 -6
- package/lib/examples/AgentOutputsExample.js +382 -81
- 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 +68 -40
- package/lib/examples/AgentSkillsExample.js +91 -99
- 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 +29 -557
- package/lib/examples/AgentTriggersExample.js +819 -565
- package/lib/examples/ChatCustomExample.js +11 -24
- package/lib/examples/ChatExample.js +7 -24
- 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/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 +3 -0
- package/lib/examples/components/index.js +4 -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.js +217 -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 +7 -0
- package/lib/protocols/VercelAIAdapter.js +59 -7
- package/lib/specs/agents/agents.d.ts +10 -0
- package/lib/specs/agents/agents.js +2139 -262
- package/lib/specs/agents/index.js +3 -1
- package/lib/specs/envvars.d.ts +1 -0
- package/lib/specs/envvars.js +38 -20
- package/lib/specs/evals.js +6 -6
- package/lib/specs/events.d.ts +3 -10
- package/lib/specs/events.js +127 -84
- package/lib/specs/frontendTools.js +2 -2
- package/lib/specs/guardrails.d.ts +0 -7
- package/lib/specs/guardrails.js +240 -159
- package/lib/specs/index.d.ts +1 -0
- package/lib/specs/index.js +1 -0
- package/lib/specs/mcpServers.js +35 -6
- package/lib/specs/memory.d.ts +0 -2
- package/lib/specs/memory.js +4 -17
- package/lib/specs/models.js +25 -5
- package/lib/specs/notifications.js +102 -18
- package/lib/specs/outputs.js +15 -9
- 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 +41 -23
- package/lib/specs/teams/index.js +3 -1
- package/lib/specs/teams/teams.js +468 -348
- package/lib/specs/tools.js +4 -4
- package/lib/specs/triggers.js +61 -11
- 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/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 +102 -6
- package/scripts/codegen/generate_events.py +35 -13
- package/scripts/codegen/generate_personas.py +319 -0
- package/scripts/codegen/generate_skills.py +9 -9
- package/scripts/sync-jupyter.sh +26 -7
- 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/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/models.js
CHANGED
|
@@ -118,7 +118,11 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022_V1_0_0_0_1 = {
|
|
|
118
118
|
description: 'Claude Haiku 3.5 via AWS Bedrock - fast and efficient',
|
|
119
119
|
provider: 'bedrock',
|
|
120
120
|
default: false,
|
|
121
|
-
requiredEnvVars: [
|
|
121
|
+
requiredEnvVars: [
|
|
122
|
+
'AWS_ACCESS_KEY_ID',
|
|
123
|
+
'AWS_SECRET_ACCESS_KEY',
|
|
124
|
+
'AWS_DEFAULT_REGION',
|
|
125
|
+
],
|
|
122
126
|
};
|
|
123
127
|
export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_6_V1_0_0_1 = {
|
|
124
128
|
id: 'bedrock:us.anthropic.claude-opus-4-6-v1',
|
|
@@ -127,7 +131,11 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_6_V1_0_0_1 = {
|
|
|
127
131
|
description: 'Claude Opus 4.6 via AWS Bedrock',
|
|
128
132
|
provider: 'bedrock',
|
|
129
133
|
default: false,
|
|
130
|
-
requiredEnvVars: [
|
|
134
|
+
requiredEnvVars: [
|
|
135
|
+
'AWS_ACCESS_KEY_ID',
|
|
136
|
+
'AWS_SECRET_ACCESS_KEY',
|
|
137
|
+
'AWS_DEFAULT_REGION',
|
|
138
|
+
],
|
|
131
139
|
};
|
|
132
140
|
export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_20250514_V1_0_0_0_1 = {
|
|
133
141
|
id: 'bedrock:us.anthropic.claude-opus-4-20250514-v1:0',
|
|
@@ -136,7 +144,11 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_20250514_V1_0_0_0_1 = {
|
|
|
136
144
|
description: 'Claude Opus 4 via AWS Bedrock - highest capability',
|
|
137
145
|
provider: 'bedrock',
|
|
138
146
|
default: false,
|
|
139
|
-
requiredEnvVars: [
|
|
147
|
+
requiredEnvVars: [
|
|
148
|
+
'AWS_ACCESS_KEY_ID',
|
|
149
|
+
'AWS_SECRET_ACCESS_KEY',
|
|
150
|
+
'AWS_DEFAULT_REGION',
|
|
151
|
+
],
|
|
140
152
|
};
|
|
141
153
|
export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_5_20250929_V1_0_0_0_1 = {
|
|
142
154
|
id: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
|
|
@@ -145,7 +157,11 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_5_20250929_V1_0_0_0_1 = {
|
|
|
145
157
|
description: 'Claude Sonnet 4.5 via AWS Bedrock - balanced performance',
|
|
146
158
|
provider: 'bedrock',
|
|
147
159
|
default: true,
|
|
148
|
-
requiredEnvVars: [
|
|
160
|
+
requiredEnvVars: [
|
|
161
|
+
'AWS_ACCESS_KEY_ID',
|
|
162
|
+
'AWS_SECRET_ACCESS_KEY',
|
|
163
|
+
'AWS_DEFAULT_REGION',
|
|
164
|
+
],
|
|
149
165
|
};
|
|
150
166
|
export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0_0_0_1 = {
|
|
151
167
|
id: 'bedrock:us.anthropic.claude-sonnet-4-20250514-v1:0',
|
|
@@ -154,7 +170,11 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0_0_0_1 = {
|
|
|
154
170
|
description: 'Claude Sonnet 4 via AWS Bedrock - strong reasoning',
|
|
155
171
|
provider: 'bedrock',
|
|
156
172
|
default: false,
|
|
157
|
-
requiredEnvVars: [
|
|
173
|
+
requiredEnvVars: [
|
|
174
|
+
'AWS_ACCESS_KEY_ID',
|
|
175
|
+
'AWS_SECRET_ACCESS_KEY',
|
|
176
|
+
'AWS_DEFAULT_REGION',
|
|
177
|
+
],
|
|
158
178
|
};
|
|
159
179
|
export const OPENAI_GPT_4_1_MINI_0_0_1 = {
|
|
160
180
|
id: 'openai:gpt-4.1-mini',
|
|
@@ -14,9 +14,27 @@ export const API_PUSH_NOTIFICATION_SPEC_0_0_1 = {
|
|
|
14
14
|
available: false,
|
|
15
15
|
coming_soon: true,
|
|
16
16
|
fields: [
|
|
17
|
-
{
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
{
|
|
18
|
+
name: 'url',
|
|
19
|
+
label: 'Endpoint URL',
|
|
20
|
+
type: 'string',
|
|
21
|
+
required: true,
|
|
22
|
+
placeholder: 'https://api.example.com/agent-results',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'secret',
|
|
26
|
+
label: 'Signing Secret',
|
|
27
|
+
type: 'string',
|
|
28
|
+
required: false,
|
|
29
|
+
placeholder: 'Optional HMAC secret for payload signing',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'include_output',
|
|
33
|
+
label: 'Include Output',
|
|
34
|
+
type: 'boolean',
|
|
35
|
+
required: false,
|
|
36
|
+
default: true,
|
|
37
|
+
},
|
|
20
38
|
],
|
|
21
39
|
};
|
|
22
40
|
export const EMAIL_NOTIFICATION_SPEC_0_0_1 = {
|
|
@@ -28,9 +46,27 @@ export const EMAIL_NOTIFICATION_SPEC_0_0_1 = {
|
|
|
28
46
|
available: true,
|
|
29
47
|
coming_soon: false,
|
|
30
48
|
fields: [
|
|
31
|
-
{
|
|
32
|
-
|
|
33
|
-
|
|
49
|
+
{
|
|
50
|
+
name: 'recipients',
|
|
51
|
+
label: 'Recipients',
|
|
52
|
+
type: 'string',
|
|
53
|
+
required: true,
|
|
54
|
+
placeholder: 'ops@company.com, team-lead@company.com',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'subject_template',
|
|
58
|
+
label: 'Subject Template',
|
|
59
|
+
type: 'string',
|
|
60
|
+
required: false,
|
|
61
|
+
placeholder: '[Agent] {{agent_name}} — {{event_type}}',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'include_output',
|
|
65
|
+
label: 'Include Output',
|
|
66
|
+
type: 'boolean',
|
|
67
|
+
required: false,
|
|
68
|
+
default: true,
|
|
69
|
+
},
|
|
34
70
|
],
|
|
35
71
|
};
|
|
36
72
|
export const SLACK_NOTIFICATION_SPEC_0_0_1 = {
|
|
@@ -42,9 +78,27 @@ export const SLACK_NOTIFICATION_SPEC_0_0_1 = {
|
|
|
42
78
|
available: true,
|
|
43
79
|
coming_soon: false,
|
|
44
80
|
fields: [
|
|
45
|
-
{
|
|
46
|
-
|
|
47
|
-
|
|
81
|
+
{
|
|
82
|
+
name: 'channel',
|
|
83
|
+
label: 'Channel',
|
|
84
|
+
type: 'string',
|
|
85
|
+
required: true,
|
|
86
|
+
placeholder: '#sales-analytics',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: 'mention_on_failure',
|
|
90
|
+
label: 'Mention on Failure',
|
|
91
|
+
type: 'string',
|
|
92
|
+
required: false,
|
|
93
|
+
placeholder: '@oncall-team',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: 'include_output',
|
|
97
|
+
label: 'Include Output',
|
|
98
|
+
type: 'boolean',
|
|
99
|
+
required: false,
|
|
100
|
+
default: false,
|
|
101
|
+
},
|
|
48
102
|
],
|
|
49
103
|
};
|
|
50
104
|
export const TEAMS_NOTIFICATION_SPEC_0_0_1 = {
|
|
@@ -56,8 +110,20 @@ export const TEAMS_NOTIFICATION_SPEC_0_0_1 = {
|
|
|
56
110
|
available: false,
|
|
57
111
|
coming_soon: true,
|
|
58
112
|
fields: [
|
|
59
|
-
{
|
|
60
|
-
|
|
113
|
+
{
|
|
114
|
+
name: 'webhook_url',
|
|
115
|
+
label: 'Webhook URL',
|
|
116
|
+
type: 'string',
|
|
117
|
+
required: true,
|
|
118
|
+
placeholder: 'https://outlook.office.com/webhook/...',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'include_output',
|
|
122
|
+
label: 'Include Output',
|
|
123
|
+
type: 'boolean',
|
|
124
|
+
required: false,
|
|
125
|
+
default: false,
|
|
126
|
+
},
|
|
61
127
|
],
|
|
62
128
|
};
|
|
63
129
|
export const WEBHOOK_NOTIFICATION_SPEC_0_0_1 = {
|
|
@@ -69,9 +135,27 @@ export const WEBHOOK_NOTIFICATION_SPEC_0_0_1 = {
|
|
|
69
135
|
available: false,
|
|
70
136
|
coming_soon: true,
|
|
71
137
|
fields: [
|
|
72
|
-
{
|
|
73
|
-
|
|
74
|
-
|
|
138
|
+
{
|
|
139
|
+
name: 'url',
|
|
140
|
+
label: 'Webhook URL',
|
|
141
|
+
type: 'string',
|
|
142
|
+
required: true,
|
|
143
|
+
placeholder: 'https://api.example.com/agent-events',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: 'secret',
|
|
147
|
+
label: 'Signing Secret',
|
|
148
|
+
type: 'string',
|
|
149
|
+
required: false,
|
|
150
|
+
placeholder: 'Optional HMAC secret for payload signing',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: 'include_output',
|
|
154
|
+
label: 'Include Output',
|
|
155
|
+
type: 'boolean',
|
|
156
|
+
required: false,
|
|
157
|
+
default: true,
|
|
158
|
+
},
|
|
75
159
|
],
|
|
76
160
|
};
|
|
77
161
|
// ============================================================================
|
|
@@ -79,10 +163,10 @@ export const WEBHOOK_NOTIFICATION_SPEC_0_0_1 = {
|
|
|
79
163
|
// ============================================================================
|
|
80
164
|
export const NOTIFICATION_CATALOG = {
|
|
81
165
|
'api-push': API_PUSH_NOTIFICATION_SPEC_0_0_1,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
166
|
+
email: EMAIL_NOTIFICATION_SPEC_0_0_1,
|
|
167
|
+
slack: SLACK_NOTIFICATION_SPEC_0_0_1,
|
|
168
|
+
teams: TEAMS_NOTIFICATION_SPEC_0_0_1,
|
|
169
|
+
webhook: WEBHOOK_NOTIFICATION_SPEC_0_0_1,
|
|
86
170
|
};
|
|
87
171
|
export function getNotificationSpecs() {
|
|
88
172
|
return Object.values(NOTIFICATION_CATALOG);
|
package/lib/specs/outputs.js
CHANGED
|
@@ -33,7 +33,11 @@ export const DOCUMENT_OUTPUT_SPEC_0_0_1 = {
|
|
|
33
33
|
icon: 'file',
|
|
34
34
|
supports_template: true,
|
|
35
35
|
supports_storage: true,
|
|
36
|
-
mime_types: [
|
|
36
|
+
mime_types: [
|
|
37
|
+
'application/pdf',
|
|
38
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
39
|
+
'text/markdown',
|
|
40
|
+
],
|
|
37
41
|
};
|
|
38
42
|
export const EMAIL_OUTPUT_SPEC_0_0_1 = {
|
|
39
43
|
id: 'email',
|
|
@@ -73,19 +77,21 @@ export const SPREADSHEET_OUTPUT_SPEC_0_0_1 = {
|
|
|
73
77
|
icon: 'table',
|
|
74
78
|
supports_template: true,
|
|
75
79
|
supports_storage: true,
|
|
76
|
-
mime_types: [
|
|
80
|
+
mime_types: [
|
|
81
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
82
|
+
],
|
|
77
83
|
};
|
|
78
84
|
// ============================================================================
|
|
79
85
|
// Output Catalog
|
|
80
86
|
// ============================================================================
|
|
81
87
|
export const OUTPUT_CATALOG = {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
csv: CSV_OUTPUT_SPEC_0_0_1,
|
|
89
|
+
dashboard: DASHBOARD_OUTPUT_SPEC_0_0_1,
|
|
90
|
+
document: DOCUMENT_OUTPUT_SPEC_0_0_1,
|
|
91
|
+
email: EMAIL_OUTPUT_SPEC_0_0_1,
|
|
92
|
+
json: JSON_OUTPUT_SPEC_0_0_1,
|
|
93
|
+
notebook: NOTEBOOK_OUTPUT_SPEC_0_0_1,
|
|
94
|
+
spreadsheet: SPREADSHEET_OUTPUT_SPEC_0_0_1,
|
|
89
95
|
};
|
|
90
96
|
export function getOutputSpecs() {
|
|
91
97
|
return Object.values(OUTPUT_CATALOG);
|
|
@@ -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
|
@@ -14,14 +14,31 @@ export const CRAWL_SKILL_SPEC_0_0_1 = {
|
|
|
14
14
|
package: undefined,
|
|
15
15
|
method: undefined,
|
|
16
16
|
path: undefined,
|
|
17
|
-
requiredEnvVars: [
|
|
17
|
+
requiredEnvVars: ['TAVILY_API_KEY:0.0.1'],
|
|
18
18
|
optionalEnvVars: [],
|
|
19
|
-
dependencies: [
|
|
20
|
-
tags: [
|
|
19
|
+
dependencies: ['requests>=2.31.0', 'beautifulsoup4>=4.12.0'],
|
|
20
|
+
tags: ['web', 'crawl', 'scraping'],
|
|
21
21
|
icon: 'globe',
|
|
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',
|
|
@@ -33,8 +50,8 @@ export const EVENTS_SKILL_SPEC_0_0_1 = {
|
|
|
33
50
|
path: undefined,
|
|
34
51
|
requiredEnvVars: [],
|
|
35
52
|
optionalEnvVars: [],
|
|
36
|
-
dependencies: [
|
|
37
|
-
tags: [
|
|
53
|
+
dependencies: ['httpx>=0.27.0'],
|
|
54
|
+
tags: ['events', 'orchestration', 'automation'],
|
|
38
55
|
icon: 'bell',
|
|
39
56
|
emoji: '📅',
|
|
40
57
|
enabled: true,
|
|
@@ -48,10 +65,10 @@ export const GITHUB_SKILL_SPEC_0_0_1 = {
|
|
|
48
65
|
package: undefined,
|
|
49
66
|
method: undefined,
|
|
50
67
|
path: undefined,
|
|
51
|
-
requiredEnvVars: [
|
|
68
|
+
requiredEnvVars: ['GITHUB_TOKEN:0.0.1'],
|
|
52
69
|
optionalEnvVars: [],
|
|
53
|
-
dependencies: [
|
|
54
|
-
tags: [
|
|
70
|
+
dependencies: ['PyGithub>=2.1.0'],
|
|
71
|
+
tags: ['github', 'git', 'code'],
|
|
55
72
|
icon: 'mark-github',
|
|
56
73
|
emoji: '🐙',
|
|
57
74
|
enabled: true,
|
|
@@ -68,7 +85,7 @@ export const JOKES_SKILL_SPEC_0_0_1 = {
|
|
|
68
85
|
requiredEnvVars: [],
|
|
69
86
|
optionalEnvVars: [],
|
|
70
87
|
dependencies: [],
|
|
71
|
-
tags: [
|
|
88
|
+
tags: ['fun', 'humor', 'demo'],
|
|
72
89
|
icon: 'smiley',
|
|
73
90
|
emoji: '😄',
|
|
74
91
|
enabled: true,
|
|
@@ -84,8 +101,8 @@ export const PDF_SKILL_SPEC_0_0_1 = {
|
|
|
84
101
|
path: undefined,
|
|
85
102
|
requiredEnvVars: [],
|
|
86
103
|
optionalEnvVars: [],
|
|
87
|
-
dependencies: [
|
|
88
|
-
tags: [
|
|
104
|
+
dependencies: ['PyPDF2>=3.0.0', 'pdfplumber>=0.10.0'],
|
|
105
|
+
tags: ['pdf', 'documents', 'extraction'],
|
|
89
106
|
icon: 'file',
|
|
90
107
|
emoji: '📄',
|
|
91
108
|
enabled: true,
|
|
@@ -101,8 +118,8 @@ export const TEXT_SUMMARIZER_SKILL_SPEC_0_0_1 = {
|
|
|
101
118
|
path: undefined,
|
|
102
119
|
requiredEnvVars: [],
|
|
103
120
|
optionalEnvVars: [],
|
|
104
|
-
dependencies: [
|
|
105
|
-
tags: [
|
|
121
|
+
dependencies: ['agent-skills>=0.0.1'],
|
|
122
|
+
tags: ['nlp', 'summarization', 'text-processing'],
|
|
106
123
|
icon: 'note',
|
|
107
124
|
emoji: '📝',
|
|
108
125
|
enabled: true,
|
|
@@ -110,28 +127,29 @@ export const TEXT_SUMMARIZER_SKILL_SPEC_0_0_1 = {
|
|
|
110
127
|
// ============================================================================
|
|
111
128
|
// Skill Catalog
|
|
112
129
|
// ============================================================================
|
|
113
|
-
export const
|
|
114
|
-
|
|
115
|
-
'
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
export const SKILLS_CATALOG = {
|
|
131
|
+
crawl: CRAWL_SKILL_SPEC_0_0_1,
|
|
132
|
+
'datalayer-whoami': DATALAYER_WHOAMI_SKILL_SPEC_0_0_1,
|
|
133
|
+
events: EVENTS_SKILL_SPEC_0_0_1,
|
|
134
|
+
github: GITHUB_SKILL_SPEC_0_0_1,
|
|
135
|
+
jokes: JOKES_SKILL_SPEC_0_0_1,
|
|
136
|
+
pdf: PDF_SKILL_SPEC_0_0_1,
|
|
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/teams/index.js
CHANGED
|
@@ -31,5 +31,7 @@ export function getTeamSpec(teamId) {
|
|
|
31
31
|
*/
|
|
32
32
|
export function listTeamSpecs(prefix) {
|
|
33
33
|
const specs = Object.values(TEAM_SPECS);
|
|
34
|
-
return prefix !== undefined
|
|
34
|
+
return prefix !== undefined
|
|
35
|
+
? specs.filter(s => s.id.startsWith(prefix))
|
|
36
|
+
: specs;
|
|
35
37
|
}
|