@datalayer/agent-runtimes 1.3.83 → 1.3.85
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/lib/chat/ChatFloating.d.ts +5 -4
- package/lib/chat/ChatFloating.js +8 -6
- package/lib/chat/ChatLanguage.d.ts +17 -0
- package/lib/chat/ChatLanguage.js +29 -0
- package/lib/chat/assistant/AssistantStage.d.ts +4 -4
- package/lib/chat/assistant/AssistantStage.js +4 -2
- package/lib/chat/assistant/BalloonParts.d.ts +2 -1
- package/lib/chat/assistant/BalloonParts.js +12 -5
- package/lib/chat/assistant/BalloonVisual.js +3 -1
- package/lib/chat/assistant/ConversationBalloon.d.ts +1 -1
- package/lib/chat/assistant/ConversationBalloon.js +3 -2
- package/lib/chat/assistant/SpeechBalloon.d.ts +1 -1
- package/lib/chat/assistant/SpeechBalloon.js +10 -7
- package/lib/chat/assistant/toolLine.d.ts +8 -4
- package/lib/chat/assistant/toolLine.js +13 -9
- package/lib/chat/base/ChatBase.js +30 -11
- package/lib/chat/base/loopElement.d.ts +53 -0
- package/lib/chat/base/loopElement.js +78 -0
- package/lib/chat/base/loopWindow.d.ts +31 -0
- package/lib/chat/base/loopWindow.js +74 -0
- package/lib/chat/display/EmptyState.js +3 -1
- package/lib/chat/index.d.ts +2 -0
- package/lib/chat/index.js +3 -0
- package/lib/chat/messages/ChatMessages.js +3 -1
- package/lib/chat/messages/TurnFooter.js +3 -1
- package/lib/chat/prompt/InputPrompt.js +3 -1
- package/lib/chat/prompt/InputPromptLexical.js +3 -1
- package/lib/chat/prompt/footer/InPromptFooter.js +3 -1
- package/lib/chat/tools/ToolApprovalBanner.js +5 -3
- package/lib/chat/tools/ToolApprovalDialog.js +5 -3
- package/lib/chat/tools/ToolCallDisplay.js +29 -25
- package/lib/chat/words.d.ts +102 -0
- package/lib/chat/words.js +460 -0
- package/lib/components/a2ui/custom/index.d.ts +39 -0
- package/lib/components/a2ui/custom/index.js +95 -0
- package/lib/components/a2ui/custom/sandbox.d.ts +73 -0
- package/lib/components/a2ui/custom/sandbox.js +188 -0
- package/lib/components/a2ui/datalayer/FileUpload.d.ts +10 -2
- package/lib/components/a2ui/datalayer/FileUpload.js +10 -7
- package/lib/components/a2ui/datalayer/Form.d.ts +2 -0
- package/lib/components/a2ui/datalayer/Form.js +9 -2
- package/lib/components/a2ui/datalayer/formWidgets.d.ts +19 -0
- package/lib/components/a2ui/datalayer/formWidgets.js +51 -0
- package/lib/components/a2ui/datalayer/index.d.ts +1 -1
- package/lib/components/a2ui/datalayer/index.js +1 -1
- package/lib/components/a2ui/datalayer/schema.d.ts +10 -0
- package/lib/components/a2ui/datalayer/schema.js +12 -1
- package/lib/components/a2ui/index.d.ts +1 -0
- package/lib/components/a2ui/index.js +1 -0
- package/lib/components/a2ui/visibleWhen.d.ts +12 -1
- package/lib/components/a2ui/visibleWhen.js +24 -3
- package/lib/components/inspector/AgentInspector.d.ts +25 -44
- package/lib/components/inspector/AgentInspector.js +27 -215
- package/lib/components/inspector/AgentInspectorDialog.d.ts +6 -6
- package/lib/components/inspector/AgentInspectorDialog.js +2 -2
- package/lib/components/inspector/a2aSpans.d.ts +51 -0
- package/lib/components/inspector/a2aSpans.js +373 -0
- package/lib/components/inspector/agentSpans.d.ts +120 -0
- package/lib/components/inspector/agentSpans.js +253 -0
- package/lib/components/inspector/chatSpans.d.ts +36 -0
- package/lib/components/inspector/chatSpans.js +50 -0
- package/lib/components/inspector/classify.d.ts +11 -8
- package/lib/components/inspector/classify.js +23 -24
- package/lib/components/inspector/index.d.ts +7 -7
- package/lib/components/inspector/index.js +7 -7
- package/lib/components/teams/A2ATeamGraph.d.ts +4 -4
- package/lib/components/teams/SceneTranscript.d.ts +29 -0
- package/lib/components/teams/SceneTranscript.js +54 -0
- package/lib/components/teams/SceneView.d.ts +41 -0
- package/lib/components/teams/SceneView.js +28 -0
- package/lib/components/teams/index.d.ts +3 -0
- package/lib/components/teams/index.js +3 -0
- package/lib/components/teams/sceneTranscript.d.ts +74 -0
- package/lib/components/teams/sceneTranscript.js +294 -0
- package/lib/components/teams/teamConnections.d.ts +2 -2
- package/lib/components/teams/teamConnections.js +3 -3
- package/lib/components/teams/useA2ATeam.d.ts +4 -4
- package/lib/components/teams/useA2ATeam.js +50 -46
- package/lib/examples/AgentA2ATeamExample.d.ts +10 -9
- package/lib/examples/AgentA2ATeamExample.js +70 -60
- package/lib/examples/AssistantExample.js +2 -2
- package/lib/loop/apps/AppComposer.d.ts +40 -4
- package/lib/loop/apps/AppComposer.js +194 -19
- package/lib/loop/apps/AppRenderer.d.ts +21 -3
- package/lib/loop/apps/AppRenderer.js +88 -48
- package/lib/loop/apps/appspec.d.ts +13 -1
- package/lib/loop/apps/appspec.js +305 -12
- package/lib/loop/apps/checks.d.ts +14 -0
- package/lib/loop/apps/checks.js +276 -5
- package/lib/loop/apps/composer.d.ts +21 -10
- package/lib/loop/apps/composer.js +41 -8
- package/lib/loop/apps/customComponents.d.ts +41 -0
- package/lib/loop/apps/customComponents.js +260 -0
- package/lib/loop/apps/hostTools.d.ts +8 -1
- package/lib/loop/apps/hostTools.js +9 -0
- package/lib/loop/apps/index.d.ts +1 -0
- package/lib/loop/apps/index.js +1 -0
- package/lib/loop/apps/language.d.ts +68 -0
- package/lib/loop/apps/language.js +275 -0
- package/lib/loop/apps/settingsInputs.d.ts +29 -0
- package/lib/loop/apps/settingsInputs.js +147 -0
- package/lib/loop/apps/uploads.d.ts +43 -0
- package/lib/loop/apps/uploads.js +66 -0
- package/lib/loop/core/a2uiComponents.d.ts +10 -0
- package/lib/loop/core/a2uiComponents.js +15 -0
- package/lib/loop/core/index.d.ts +15 -1
- package/lib/loop/core/index.js +3 -0
- package/lib/loop/embed/AppEmbed.d.ts +25 -3
- package/lib/loop/embed/AppEmbed.js +106 -18
- package/lib/loop/embed/element.d.ts +5 -0
- package/lib/loop/embed/element.js +84 -5
- package/lib/loop/embed/embedConfig.d.ts +8 -0
- package/lib/loop/embed/embedConfig.js +18 -0
- package/lib/loop/embed/embedSession.d.ts +14 -0
- package/lib/loop/embed/embedSession.js +34 -0
- package/lib/loop/embed/hostBridge.d.ts +50 -3
- package/lib/loop/embed/hostBridge.js +22 -2
- package/lib/loop/index.d.ts +4 -3
- package/lib/loop/index.js +4 -3
- package/lib/loop/plugins/a2ui-surface/InlineSurface.d.ts +7 -1
- package/lib/loop/plugins/a2ui-surface/InlineSurface.js +7 -2
- package/lib/loop/plugins/a2ui-surface/SurfaceToolResult.js +4 -1
- package/lib/loop/plugins/a2ui-surface/ownComponents.d.ts +6 -0
- package/lib/loop/plugins/a2ui-surface/ownComponents.js +30 -0
- package/lib/loop/plugins/app-components/index.d.ts +26 -0
- package/lib/loop/plugins/app-components/index.js +56 -0
- package/lib/loop/plugins/app-elements/AppElements.d.ts +27 -0
- package/lib/loop/plugins/app-elements/AppElements.js +79 -0
- package/lib/loop/plugins/app-elements/index.d.ts +20 -0
- package/lib/loop/plugins/app-elements/index.js +43 -0
- package/lib/loop/plugins/app-page/AppPage.d.ts +9 -0
- package/lib/loop/plugins/app-page/AppPage.js +106 -8
- package/lib/loop/plugins/app-page/appPageModel.d.ts +17 -1
- package/lib/loop/plugins/app-page/appPageModel.js +122 -4
- package/lib/loop/plugins/app-page/index.d.ts +1 -0
- package/lib/loop/plugins/app-page/index.js +1 -0
- package/lib/loop/plugins/app-page/pageRun.d.ts +46 -0
- package/lib/loop/plugins/app-page/pageRun.js +111 -0
- package/lib/loop/plugins/assistant/index.js +8 -6
- package/lib/loop/plugins/chat/ChatView.js +16 -6
- package/lib/loop/plugins/chat/index.d.ts +1 -1
- package/lib/loop/plugins/chat/index.js +2 -1
- package/lib/models/PageTag.d.ts +1 -1
- package/lib/protocols/BrowserAgentAdapter.d.ts +8 -6
- package/lib/protocols/BrowserAgentAdapter.js +13 -10
- package/lib/runtimes/browser/a2aPeer.d.ts +2 -1
- package/lib/runtimes/browser/protocol.d.ts +1 -1
- package/lib/specs/actions.js +78 -1
- package/lib/specs/apps.d.ts +5 -0
- package/lib/specs/apps.js +1518 -216
- package/lib/specs/appspecSchema.js +630 -3
- package/lib/specs/teams/teams.d.ts +3 -0
- package/lib/specs/teams/teams.js +249 -0
- package/lib/specs/uiPlugins.js +6 -1
- package/lib/types/agentspecs.d.ts +200 -1
- package/lib/types/chat.d.ts +6 -5
- package/lib/types/teams.d.ts +13 -2
- package/package.json +2 -2
- package/scripts/codegen/generate_apps.py +20 -2
- package/scripts/codegen/generate_teams.py +15 -2
- package/lib/components/inspector/JsonTree.d.ts +0 -24
- package/lib/components/inspector/JsonTree.js +0 -89
- package/lib/components/inspector/a2aInspect.d.ts +0 -56
- package/lib/components/inspector/a2aInspect.js +0 -478
- package/lib/components/inspector/agentInspector.d.ts +0 -179
- package/lib/components/inspector/agentInspector.js +0 -267
- package/lib/components/inspector/chatInspect.d.ts +0 -38
- package/lib/components/inspector/chatInspect.js +0 -65
|
@@ -10,7 +10,10 @@ export declare const ANALYZE_SUPPORT_TICKETS_TEAM_SPEC_0_0_1: TeamSpec;
|
|
|
10
10
|
export declare const AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1: TeamSpec;
|
|
11
11
|
export declare const AUTOMATE_REGULATORY_REPORTING_TEAM_SPEC_0_0_1: TeamSpec;
|
|
12
12
|
export declare const COMPREHENSIVE_SALES_ANALYTICS_TEAM_SPEC_0_0_1: TeamSpec;
|
|
13
|
+
export declare const CROP_MONITORING_TEAM_SPEC_0_0_1: TeamSpec;
|
|
14
|
+
export declare const DISASTER_ASSESSMENT_TEAM_SPEC_0_0_1: TeamSpec;
|
|
13
15
|
export declare const JUPYTER_TEAM_SPEC_0_0_1: TeamSpec;
|
|
16
|
+
export declare const MONTH_END_CLOSE_TEAM_SPEC_0_0_1: TeamSpec;
|
|
14
17
|
export declare const NOTEBOOK_BENCHMARK_TEAM_SPEC_0_0_1: TeamSpec;
|
|
15
18
|
export declare const OPTIMIZE_GRID_OPERATIONS_TEAM_SPEC_0_0_1: TeamSpec;
|
|
16
19
|
export declare const PROCESS_CITIZEN_REQUESTS_TEAM_SPEC_0_0_1: TeamSpec;
|
package/lib/specs/teams/teams.js
CHANGED
|
@@ -704,6 +704,187 @@ export const COMPREHENSIVE_SALES_ANALYTICS_TEAM_SPEC_0_0_1 = {
|
|
|
704
704
|
storage: 's3://reports/sales-analytics/',
|
|
705
705
|
},
|
|
706
706
|
};
|
|
707
|
+
export const CROP_MONITORING_TEAM_SPEC_0_0_1 = {
|
|
708
|
+
id: 'crop-monitoring',
|
|
709
|
+
version: '0.0.1',
|
|
710
|
+
name: 'Crop monitoring',
|
|
711
|
+
description: `One agent, its data: Crop monitoring follows crop vigour and growth over a season from the satellite imagery NASA Earthdata holds, and flags the fields that need attention.`,
|
|
712
|
+
tags: [
|
|
713
|
+
'example',
|
|
714
|
+
'scene',
|
|
715
|
+
'earth-observation',
|
|
716
|
+
'agriculture',
|
|
717
|
+
'earthdata',
|
|
718
|
+
'a2a',
|
|
719
|
+
],
|
|
720
|
+
enabled: true,
|
|
721
|
+
icon: 'telescope',
|
|
722
|
+
emoji: '🛰️',
|
|
723
|
+
color: '#1a7f37',
|
|
724
|
+
agentSpecId: '',
|
|
725
|
+
orchestrationProtocol: 'a2a',
|
|
726
|
+
executionMode: 'supervisor',
|
|
727
|
+
supervisor: {
|
|
728
|
+
name: 'Crop monitoring',
|
|
729
|
+
ref: '',
|
|
730
|
+
app: 'crop-monitoring:0.0.1',
|
|
731
|
+
model: '',
|
|
732
|
+
goal: ``,
|
|
733
|
+
instructions: ``,
|
|
734
|
+
approval: 'auto',
|
|
735
|
+
canTerminate: true,
|
|
736
|
+
},
|
|
737
|
+
routingInstructions: `Crop monitoring answers every request from the imagery itself, one search at a time, and reports what the granules show without adding to it.`,
|
|
738
|
+
entry: 'crop-monitoring',
|
|
739
|
+
suggestions: [
|
|
740
|
+
{
|
|
741
|
+
text: 'How has crop vigour evolved over the last three months around 45.5N, 10.2E?',
|
|
742
|
+
emoji: '🌱',
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
text: 'Which fields around 41.9N, 12.5E show a drop in vegetation this month compared with last?',
|
|
746
|
+
emoji: '🌾',
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
text: 'Which datasets and granules cover the Po valley for June 2026?',
|
|
750
|
+
emoji: '🛰️',
|
|
751
|
+
},
|
|
752
|
+
],
|
|
753
|
+
delegation: {
|
|
754
|
+
maxDepth: 0,
|
|
755
|
+
allowPeerDelegation: false,
|
|
756
|
+
includeGeneralPurpose: false,
|
|
757
|
+
},
|
|
758
|
+
context: { sharing: 'shared' },
|
|
759
|
+
validation: { timeout: '300s', retryOnFailure: false, maxRetries: 0 },
|
|
760
|
+
agents: [
|
|
761
|
+
{
|
|
762
|
+
id: 'crop-monitoring',
|
|
763
|
+
name: '',
|
|
764
|
+
ref: '',
|
|
765
|
+
app: 'crop-monitoring:0.0.1',
|
|
766
|
+
runsIn: 'runtime',
|
|
767
|
+
role: 'initiator',
|
|
768
|
+
goal: `Take the person's field and period, search the imagery that covers them, and report the vigour, the growth and the fields to watch.`,
|
|
769
|
+
dependsOn: [],
|
|
770
|
+
subagents: [],
|
|
771
|
+
model: '',
|
|
772
|
+
mcpServer: '',
|
|
773
|
+
tools: [],
|
|
774
|
+
trigger: '',
|
|
775
|
+
approval: 'auto',
|
|
776
|
+
},
|
|
777
|
+
],
|
|
778
|
+
};
|
|
779
|
+
export const DISASTER_ASSESSMENT_TEAM_SPEC_0_0_1 = {
|
|
780
|
+
id: 'disaster-assessment',
|
|
781
|
+
version: '0.0.1',
|
|
782
|
+
name: 'Disaster assessment',
|
|
783
|
+
description: `An event desk in the browser that gets the area a disaster affected and the damage from Disaster assessment, and what changed on the ground from Change detection, each on a runtime over A2A, each reading NASA Earthdata. Event response takes the event and reports; the two others read the imagery and answer.`,
|
|
784
|
+
tags: [
|
|
785
|
+
'example',
|
|
786
|
+
'scene',
|
|
787
|
+
'earth-observation',
|
|
788
|
+
'disaster',
|
|
789
|
+
'insurance',
|
|
790
|
+
'earthdata',
|
|
791
|
+
'a2a',
|
|
792
|
+
],
|
|
793
|
+
enabled: true,
|
|
794
|
+
icon: 'pulse',
|
|
795
|
+
emoji: '🛰️',
|
|
796
|
+
color: '#cf222e',
|
|
797
|
+
agentSpecId: '',
|
|
798
|
+
orchestrationProtocol: 'a2a',
|
|
799
|
+
executionMode: 'supervisor',
|
|
800
|
+
supervisor: {
|
|
801
|
+
name: 'Event response',
|
|
802
|
+
ref: '',
|
|
803
|
+
app: 'event-response:0.0.1',
|
|
804
|
+
model: '',
|
|
805
|
+
goal: ``,
|
|
806
|
+
instructions: ``,
|
|
807
|
+
approval: 'auto',
|
|
808
|
+
canTerminate: true,
|
|
809
|
+
},
|
|
810
|
+
routingInstructions: `Event response asks Disaster assessment for the area and the damage, and Change detection for the change on the ground, one request each, and reports what they answer without adding to it.`,
|
|
811
|
+
entry: 'event-response',
|
|
812
|
+
suggestions: [
|
|
813
|
+
{
|
|
814
|
+
text: 'Valencia, Spain, was flooded on 29 October 2024. What was affected, and what changed?',
|
|
815
|
+
emoji: '🌊',
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
text: 'Fires burned around Los Angeles from 7 January 2025. What was affected, and what changed?',
|
|
819
|
+
emoji: '🔥',
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
text: 'The Ahr valley was hit by a storm on 14 July 2021. What was affected, and what changed?',
|
|
823
|
+
emoji: '🌧️',
|
|
824
|
+
},
|
|
825
|
+
],
|
|
826
|
+
delegation: {
|
|
827
|
+
maxDepth: 1,
|
|
828
|
+
allowPeerDelegation: true,
|
|
829
|
+
includeGeneralPurpose: false,
|
|
830
|
+
},
|
|
831
|
+
context: { sharing: 'shared' },
|
|
832
|
+
validation: { timeout: '600s', retryOnFailure: false, maxRetries: 0 },
|
|
833
|
+
agents: [
|
|
834
|
+
{
|
|
835
|
+
id: 'event-response',
|
|
836
|
+
name: '',
|
|
837
|
+
ref: '',
|
|
838
|
+
app: 'event-response:0.0.1',
|
|
839
|
+
runsIn: 'browser',
|
|
840
|
+
talksTo: [
|
|
841
|
+
{ member: 'disaster-assessment', over: 'a2a' },
|
|
842
|
+
{ member: 'change-detection', over: 'a2a' },
|
|
843
|
+
],
|
|
844
|
+
role: 'initiator',
|
|
845
|
+
goal: `Take the person's event, ask Disaster assessment and Change detection for it, and report what they answered.`,
|
|
846
|
+
dependsOn: [],
|
|
847
|
+
subagents: [],
|
|
848
|
+
model: '',
|
|
849
|
+
mcpServer: '',
|
|
850
|
+
tools: [],
|
|
851
|
+
trigger: '',
|
|
852
|
+
approval: 'auto',
|
|
853
|
+
},
|
|
854
|
+
{
|
|
855
|
+
id: 'disaster-assessment',
|
|
856
|
+
name: '',
|
|
857
|
+
ref: '',
|
|
858
|
+
app: 'disaster-assessment:0.0.1',
|
|
859
|
+
runsIn: 'runtime',
|
|
860
|
+
role: 'contributor',
|
|
861
|
+
goal: `Estimate the area the event affected and the extent of the damage from the imagery before and after it, over A2A.`,
|
|
862
|
+
dependsOn: [],
|
|
863
|
+
subagents: [],
|
|
864
|
+
model: '',
|
|
865
|
+
mcpServer: '',
|
|
866
|
+
tools: [],
|
|
867
|
+
trigger: '',
|
|
868
|
+
approval: 'auto',
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
id: 'change-detection',
|
|
872
|
+
name: '',
|
|
873
|
+
ref: '',
|
|
874
|
+
app: 'change-detection:0.0.1',
|
|
875
|
+
runsIn: 'runtime',
|
|
876
|
+
role: 'contributor',
|
|
877
|
+
goal: `Find what changed on the ground between the two dates from the imagery, over A2A.`,
|
|
878
|
+
dependsOn: [],
|
|
879
|
+
subagents: [],
|
|
880
|
+
model: '',
|
|
881
|
+
mcpServer: '',
|
|
882
|
+
tools: [],
|
|
883
|
+
trigger: '',
|
|
884
|
+
approval: 'auto',
|
|
885
|
+
},
|
|
886
|
+
],
|
|
887
|
+
};
|
|
707
888
|
export const JUPYTER_TEAM_SPEC_0_0_1 = {
|
|
708
889
|
id: 'jupyter',
|
|
709
890
|
version: '0.0.1',
|
|
@@ -928,6 +1109,71 @@ export const JUPYTER_TEAM_SPEC_0_0_1 = {
|
|
|
928
1109
|
storage: '',
|
|
929
1110
|
},
|
|
930
1111
|
};
|
|
1112
|
+
export const MONTH_END_CLOSE_TEAM_SPEC_0_0_1 = {
|
|
1113
|
+
id: 'month-end-close',
|
|
1114
|
+
version: '0.0.1',
|
|
1115
|
+
name: 'Month-end close',
|
|
1116
|
+
description: `One agent, its data: Month-end close drives the close from the Odoo books, which it only reads — the checklist, the accruals to book, the reconciliation gaps that remain.`,
|
|
1117
|
+
tags: ['example', 'scene', 'accounting', 'finance', 'odoo', 'a2a'],
|
|
1118
|
+
enabled: true,
|
|
1119
|
+
icon: 'sync',
|
|
1120
|
+
emoji: '🧾',
|
|
1121
|
+
color: '#bf8700',
|
|
1122
|
+
agentSpecId: '',
|
|
1123
|
+
orchestrationProtocol: 'a2a',
|
|
1124
|
+
executionMode: 'supervisor',
|
|
1125
|
+
supervisor: {
|
|
1126
|
+
name: 'Month-end close',
|
|
1127
|
+
ref: '',
|
|
1128
|
+
app: 'month-end-close:0.0.1',
|
|
1129
|
+
model: '',
|
|
1130
|
+
goal: ``,
|
|
1131
|
+
instructions: ``,
|
|
1132
|
+
approval: 'auto',
|
|
1133
|
+
canTerminate: true,
|
|
1134
|
+
},
|
|
1135
|
+
routingInstructions: `Month-end close answers every request from the books itself, one read at a time, and reports what the books hold without adding to it.`,
|
|
1136
|
+
entry: 'month-end-close',
|
|
1137
|
+
suggestions: [
|
|
1138
|
+
{
|
|
1139
|
+
text: 'Where does the month-end close stand for last month? Give me the checklist.',
|
|
1140
|
+
emoji: '☑️',
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
text: 'Which accruals should be booked for last month, and for how much?',
|
|
1144
|
+
emoji: '🧾',
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
text: 'Which bank lines and open items are still unreconciled for last month?',
|
|
1148
|
+
emoji: '🏦',
|
|
1149
|
+
},
|
|
1150
|
+
],
|
|
1151
|
+
delegation: {
|
|
1152
|
+
maxDepth: 0,
|
|
1153
|
+
allowPeerDelegation: false,
|
|
1154
|
+
includeGeneralPurpose: false,
|
|
1155
|
+
},
|
|
1156
|
+
context: { sharing: 'shared' },
|
|
1157
|
+
validation: { timeout: '300s', retryOnFailure: false, maxRetries: 0 },
|
|
1158
|
+
agents: [
|
|
1159
|
+
{
|
|
1160
|
+
id: 'month-end-close',
|
|
1161
|
+
name: '',
|
|
1162
|
+
ref: '',
|
|
1163
|
+
app: 'month-end-close:0.0.1',
|
|
1164
|
+
runsIn: 'runtime',
|
|
1165
|
+
role: 'initiator',
|
|
1166
|
+
goal: `Take the person's request, read the period's books, and report where the close stands: what is done, what is to book, what is still open.`,
|
|
1167
|
+
dependsOn: [],
|
|
1168
|
+
subagents: [],
|
|
1169
|
+
model: '',
|
|
1170
|
+
mcpServer: '',
|
|
1171
|
+
tools: [],
|
|
1172
|
+
trigger: '',
|
|
1173
|
+
approval: 'auto',
|
|
1174
|
+
},
|
|
1175
|
+
],
|
|
1176
|
+
};
|
|
931
1177
|
export const NOTEBOOK_BENCHMARK_TEAM_SPEC_0_0_1 = {
|
|
932
1178
|
id: 'notebook-benchmark',
|
|
933
1179
|
version: '0.0.1',
|
|
@@ -1679,7 +1925,10 @@ export const TEAM_SPECS = {
|
|
|
1679
1925
|
'audit-inventory-levels': AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1,
|
|
1680
1926
|
'automate-regulatory-reporting': AUTOMATE_REGULATORY_REPORTING_TEAM_SPEC_0_0_1,
|
|
1681
1927
|
'comprehensive-sales-analytics': COMPREHENSIVE_SALES_ANALYTICS_TEAM_SPEC_0_0_1,
|
|
1928
|
+
'crop-monitoring': CROP_MONITORING_TEAM_SPEC_0_0_1,
|
|
1929
|
+
'disaster-assessment': DISASTER_ASSESSMENT_TEAM_SPEC_0_0_1,
|
|
1682
1930
|
jupyter: JUPYTER_TEAM_SPEC_0_0_1,
|
|
1931
|
+
'month-end-close': MONTH_END_CLOSE_TEAM_SPEC_0_0_1,
|
|
1683
1932
|
'notebook-benchmark': NOTEBOOK_BENCHMARK_TEAM_SPEC_0_0_1,
|
|
1684
1933
|
'optimize-grid-operations': OPTIMIZE_GRID_OPERATIONS_TEAM_SPEC_0_0_1,
|
|
1685
1934
|
'process-citizen-requests': PROCESS_CITIZEN_REQUESTS_TEAM_SPEC_0_0_1,
|
package/lib/specs/uiPlugins.js
CHANGED
|
@@ -949,7 +949,7 @@ export const A2UI_UI_PLUGIN_0_0_1 = {
|
|
|
949
949
|
category: 'input',
|
|
950
950
|
emoji: '🧾',
|
|
951
951
|
description: 'Several fields asked at once, from a JSON Schema, checked as they are filled and again when they arrive (drawn with @datalayer/primer-rjsf).',
|
|
952
|
-
version: '1.
|
|
952
|
+
version: '1.1.0',
|
|
953
953
|
standard: false,
|
|
954
954
|
properties: {
|
|
955
955
|
type: 'object',
|
|
@@ -965,6 +965,11 @@ export const A2UI_UI_PLUGIN_0_0_1 = {
|
|
|
965
965
|
title: 'Fields',
|
|
966
966
|
description: 'The JSON Schema of what is asked: its fields, their types, what is required.',
|
|
967
967
|
},
|
|
968
|
+
ui: {
|
|
969
|
+
type: 'object',
|
|
970
|
+
title: 'How its fields are drawn',
|
|
971
|
+
description: "By field name, the ui: options @datalayer/primer-rjsf reads (a uiSchema): ui:widget one of select, radio, range, updown, switch, checkbox, text, textarea, date, checkboxes, tags; each field's own widget when unsaid.",
|
|
972
|
+
},
|
|
968
973
|
submit_label: {
|
|
969
974
|
type: 'string',
|
|
970
975
|
title: 'Send button',
|
|
@@ -446,6 +446,59 @@ export interface AppPermissionsSpec {
|
|
|
446
446
|
export interface AppStarterSpec {
|
|
447
447
|
label: string;
|
|
448
448
|
message: string;
|
|
449
|
+
/**
|
|
450
|
+
* The heading it is offered under (LOOP P-20): the starters of one
|
|
451
|
+
* category together, those without one first. Absent when unsaid.
|
|
452
|
+
*/
|
|
453
|
+
category?: string;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* One of several assistants in one application (LOOP P-20): picked before
|
|
457
|
+
* the conversation starts — the first unless another is — and kept to its
|
|
458
|
+
* end. Its instructions are told in every run, its model run in place of the
|
|
459
|
+
* application's (a mode's wins over it), its starters offered in place of
|
|
460
|
+
* the application's.
|
|
461
|
+
*/
|
|
462
|
+
export interface AppProfileSpec {
|
|
463
|
+
id: string;
|
|
464
|
+
label: string;
|
|
465
|
+
description: string;
|
|
466
|
+
instructions: string;
|
|
467
|
+
model: string | null;
|
|
468
|
+
starters: AppStarterSpec[];
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* What a person reads of an application in another language (LOOP P-26):
|
|
472
|
+
* each part keyed by what names it in the spec — a starter by its label, a
|
|
473
|
+
* category by its words, a setting by its field, a command by its name, a
|
|
474
|
+
* mode and a profile by their ids. Every key present; empty is untranslated.
|
|
475
|
+
*/
|
|
476
|
+
export interface AppTranslationSpec {
|
|
477
|
+
name: string;
|
|
478
|
+
description: string;
|
|
479
|
+
welcome: string;
|
|
480
|
+
starters: Record<string, {
|
|
481
|
+
label: string;
|
|
482
|
+
message: string;
|
|
483
|
+
}>;
|
|
484
|
+
categories: Record<string, string>;
|
|
485
|
+
settings: Record<string, {
|
|
486
|
+
title: string;
|
|
487
|
+
description: string;
|
|
488
|
+
options: Record<string, string>;
|
|
489
|
+
}>;
|
|
490
|
+
commands: Record<string, string>;
|
|
491
|
+
modes: Record<string, {
|
|
492
|
+
label: string;
|
|
493
|
+
options: Record<string, {
|
|
494
|
+
label: string;
|
|
495
|
+
description: string;
|
|
496
|
+
}>;
|
|
497
|
+
}>;
|
|
498
|
+
profiles: Record<string, {
|
|
499
|
+
label: string;
|
|
500
|
+
description: string;
|
|
501
|
+
}>;
|
|
449
502
|
}
|
|
450
503
|
/** A slash command the user picks in the composer (LOOP P-19). */
|
|
451
504
|
export interface AppCommandSpec {
|
|
@@ -523,6 +576,64 @@ export interface AppSurfaceSpec {
|
|
|
523
576
|
composedBy: string;
|
|
524
577
|
composedAt: string;
|
|
525
578
|
}
|
|
579
|
+
/** What a page's output is drawn with of the catalog (LOOP P-05). */
|
|
580
|
+
export type AppPageOutputComponent = 'Text' | 'Image' | 'Table' | 'Chart';
|
|
581
|
+
/**
|
|
582
|
+
* A component its developer wrote (LOOP P-17), of one application only: the
|
|
583
|
+
* catalog grows for it, it does not open. Reviewed as the catalog's own — its
|
|
584
|
+
* properties a JSON Schema, what it shows and sends bindings — and drawn in a
|
|
585
|
+
* sandboxed frame of no origin from the built ES module at `source`.
|
|
586
|
+
*/
|
|
587
|
+
export interface AppCustomComponentSpec {
|
|
588
|
+
/** Its name on a surface (`Gauge`); none of the catalog's own. */
|
|
589
|
+
name: string;
|
|
590
|
+
/** What it is for, in a sentence: what the palette says. */
|
|
591
|
+
description: string;
|
|
592
|
+
/** Its properties: the JSON Schema of an object. */
|
|
593
|
+
props: Record<string, unknown>;
|
|
594
|
+
/** What it shows from the page's data: bindings. */
|
|
595
|
+
shows: string[];
|
|
596
|
+
/** What it sends back: bindings it writes, then its action. */
|
|
597
|
+
sends: string[];
|
|
598
|
+
/** The address of its module: `https://`, or `http://localhost` while written. */
|
|
599
|
+
source: string;
|
|
600
|
+
/** Its Subresource Integrity hash (`sha384-…`); empty when unsaid. */
|
|
601
|
+
integrity: string;
|
|
602
|
+
/** Its height on the page, in pixels. */
|
|
603
|
+
height: number;
|
|
604
|
+
/** A configuration its schema accepts: what the palette previews. */
|
|
605
|
+
example?: Record<string, unknown>;
|
|
606
|
+
}
|
|
607
|
+
/** One thing a widget's page shows for its inputs (LOOP P-05), at `/outputs/<name>`. */
|
|
608
|
+
export interface AppPageOutputSpec {
|
|
609
|
+
name: string;
|
|
610
|
+
/** What a person reads above it; none when empty. */
|
|
611
|
+
title: string;
|
|
612
|
+
/**
|
|
613
|
+
* `Text` (words) unless said, `Image` (an address), `Table` (rows), `Chart`
|
|
614
|
+
* (points) — an `AppPageOutputComponent` — or a component of the
|
|
615
|
+
* application's own (P-17), its value what it shows first.
|
|
616
|
+
*/
|
|
617
|
+
component: string;
|
|
618
|
+
/** The component's other properties: a Table's `columns`, a Chart's `kind`, `x`, `y`. */
|
|
619
|
+
props: Record<string, unknown>;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* A widget's page written in its code (LOOP P-05, `@app.page`): its inputs a
|
|
623
|
+
* form, drawn at `/inputs/<name>`; its outputs values, shown at
|
|
624
|
+
* `/outputs/<name>`. As an input changes, the function its code names runs
|
|
625
|
+
* again on all of them, and the outputs change in place.
|
|
626
|
+
*/
|
|
627
|
+
export interface AppPageSpec {
|
|
628
|
+
/** The function of its code that runs it. */
|
|
629
|
+
function: string;
|
|
630
|
+
inputs: AppFormSchema;
|
|
631
|
+
/** How the inputs are drawn, as `settingsUi` draws the settings. */
|
|
632
|
+
inputsUi?: Record<string, unknown>;
|
|
633
|
+
outputs: AppPageOutputSpec[];
|
|
634
|
+
/** Whether it runs again as an input changes; else when Run is pressed. */
|
|
635
|
+
live: boolean;
|
|
636
|
+
}
|
|
526
637
|
/**
|
|
527
638
|
* An application's voice (VOICE.md VO-41), off unless said: whether a person
|
|
528
639
|
* may talk to it, whether its answers are heard, with which voice of the
|
|
@@ -537,6 +648,25 @@ export interface AppVoiceSpec {
|
|
|
537
648
|
language: string;
|
|
538
649
|
where: 'auto' | 'device' | 'server';
|
|
539
650
|
}
|
|
651
|
+
/**
|
|
652
|
+
* A kind of file a person may send, and how large (LOOP P-21): a media type
|
|
653
|
+
* (`application/pdf`), a family (`image/*`, `audio/*`) or an extension
|
|
654
|
+
* (`.csv`), lowercase.
|
|
655
|
+
*/
|
|
656
|
+
export interface AppUploadKindSpec {
|
|
657
|
+
type: string;
|
|
658
|
+
/** The largest file of this kind, in megabytes; 10 unless said, 25 at most. */
|
|
659
|
+
maxMb: number;
|
|
660
|
+
}
|
|
661
|
+
/**
|
|
662
|
+
* What a person may send in the composer without being asked (LOOP P-21):
|
|
663
|
+
* the kinds it takes, each with its largest size, and how many at once.
|
|
664
|
+
*/
|
|
665
|
+
export interface AppUploadsSpec {
|
|
666
|
+
kinds: AppUploadKindSpec[];
|
|
667
|
+
/** The most files sent with one message; 5 unless said. */
|
|
668
|
+
maxFiles: number;
|
|
669
|
+
}
|
|
540
670
|
/** What the user of an application sees. */
|
|
541
671
|
export interface AppInterfaceSpec {
|
|
542
672
|
layout: AppLayout;
|
|
@@ -550,14 +680,40 @@ export interface AppInterfaceSpec {
|
|
|
550
680
|
commands: AppCommandSpec[];
|
|
551
681
|
/** Mode switches in the composer, the option picked going with every run (P-19). */
|
|
552
682
|
modes: AppModeSpec[];
|
|
683
|
+
/**
|
|
684
|
+
* Several assistants in one application (P-20): two at least, or none.
|
|
685
|
+
* Absent from a spec made before profiles.
|
|
686
|
+
*/
|
|
687
|
+
profiles?: AppProfileSpec[];
|
|
553
688
|
/**
|
|
554
689
|
* What a person may set: the JSON Schema of a form (C-16), drawn beside the
|
|
555
690
|
* conversation and on a deployment's Ship card; none when unsaid.
|
|
556
691
|
*/
|
|
557
692
|
settings?: AppFormSchema;
|
|
693
|
+
/**
|
|
694
|
+
* How the settings' fields are drawn (P-20): a uiSchema as
|
|
695
|
+
* `@datalayer/primer-rjsf` reads it, by field name — `ui:widget` one of
|
|
696
|
+
* `select`, `radio`, `range`, `updown`, `switch`, `checkbox`, `text`,
|
|
697
|
+
* `textarea`, `date`, `checkboxes`, `tags`. Each field's own when unsaid.
|
|
698
|
+
*/
|
|
699
|
+
settingsUi?: Record<string, unknown>;
|
|
700
|
+
/** The language its own words are in, BCP 47 (P-26); `en` when absent. */
|
|
701
|
+
language?: string;
|
|
702
|
+
/** Its words in other languages, by BCP 47 tag (P-26). */
|
|
703
|
+
translations?: Record<string, AppTranslationSpec>;
|
|
704
|
+
/**
|
|
705
|
+
* What a person may send in the composer without being asked (P-21): none
|
|
706
|
+
* when unsaid — the composer offers no attachment, and the runtime refuses
|
|
707
|
+
* a file sent with a message.
|
|
708
|
+
*/
|
|
709
|
+
uploads?: AppUploadsSpec;
|
|
558
710
|
/** The components of the catalog the surface may use. */
|
|
559
711
|
components: string[];
|
|
712
|
+
/** Components its developer wrote (P-17); absent from a spec made before them. */
|
|
713
|
+
customComponents?: AppCustomComponentSpec[];
|
|
560
714
|
surface?: AppSurfaceSpec;
|
|
715
|
+
/** A widget's page written in its code (P-05); none when unsaid. */
|
|
716
|
+
page?: AppPageSpec;
|
|
561
717
|
/**
|
|
562
718
|
* The character its floating assistant shows; the paper clip when unsaid.
|
|
563
719
|
* Said, it wins over the one the person chose in their settings.
|
|
@@ -581,6 +737,12 @@ export interface AppInterfaceSpec {
|
|
|
581
737
|
export interface AppTestCaseSpec {
|
|
582
738
|
ask: string;
|
|
583
739
|
expect: string;
|
|
740
|
+
/**
|
|
741
|
+
* The function of its code that decides the case, by name (LOOP P-06:
|
|
742
|
+
* `@app.test`); `expect` still says it in words, and decides it without
|
|
743
|
+
* the file. Empty, or absent, for a case in words alone.
|
|
744
|
+
*/
|
|
745
|
+
code?: string;
|
|
584
746
|
}
|
|
585
747
|
/**
|
|
586
748
|
* What was verified, and how, each in a sentence a person reads (LOOP E-14):
|
|
@@ -612,11 +774,38 @@ export interface AppRecordSpec {
|
|
|
612
774
|
*/
|
|
613
775
|
suggestTests: boolean;
|
|
614
776
|
}
|
|
615
|
-
/**
|
|
777
|
+
/** Where a check of an application's code runs (LOOP P-06). */
|
|
778
|
+
export type AppCheckStage = 'answer' | 'tool_call';
|
|
779
|
+
/** A check written in an application's code (LOOP P-06: `@app.check`). */
|
|
780
|
+
export interface AppCodeCheckSpec {
|
|
781
|
+
/** The function of its code that checks. */
|
|
782
|
+
name: string;
|
|
783
|
+
/** On every answer, or every tool call the rules let through. */
|
|
784
|
+
on: AppCheckStage;
|
|
785
|
+
/** What it checks, in a sentence a person reads. */
|
|
786
|
+
description: string;
|
|
787
|
+
}
|
|
788
|
+
/** Optional checks from the catalogue, and its code's own. */
|
|
616
789
|
export interface AppChecksSpec {
|
|
617
790
|
guards: string[];
|
|
618
791
|
gates: string[];
|
|
619
792
|
track: string;
|
|
793
|
+
/** Checks written in its code (LOOP P-06); absent when it has none. */
|
|
794
|
+
code?: AppCodeCheckSpec[];
|
|
795
|
+
}
|
|
796
|
+
/**
|
|
797
|
+
* A tool of an application's own, written in its code (LOOP P-06:
|
|
798
|
+
* `@app.tool`): its agent calls it, and the rules decide each call by what
|
|
799
|
+
* it `does`, or by a rule that names it by its name alone.
|
|
800
|
+
*/
|
|
801
|
+
export interface AppToolSpec {
|
|
802
|
+
name: string;
|
|
803
|
+
/** What it does, for the agent. */
|
|
804
|
+
description: string;
|
|
805
|
+
/** The JSON Schema of its arguments, an object. */
|
|
806
|
+
parameters: Record<string, unknown>;
|
|
807
|
+
/** What it does, by class of action: `read`, `write`, `send`… */
|
|
808
|
+
does: string[];
|
|
620
809
|
}
|
|
621
810
|
/** A function of the host page the application's agent may call (LOOP D-10). */
|
|
622
811
|
export interface AppHostFunctionSpec {
|
|
@@ -637,7 +826,15 @@ export interface AppHostFunctionSpec {
|
|
|
637
826
|
export interface AppHostBridgeSpec {
|
|
638
827
|
context: string[];
|
|
639
828
|
functions: AppHostFunctionSpec[];
|
|
829
|
+
/**
|
|
830
|
+
* Who its user is (LOOP D-21): `claimed`, what the page says (unless
|
|
831
|
+
* said); `signed`, only a token the host's server signed with the
|
|
832
|
+
* deployment's secret — the unsigned one refused.
|
|
833
|
+
*/
|
|
834
|
+
user?: AppHostUser;
|
|
640
835
|
}
|
|
836
|
+
/** What the host page's word on its visitor is worth (LOOP D-21). */
|
|
837
|
+
export type AppHostUser = 'claimed' | 'signed';
|
|
641
838
|
export interface AppDeploymentSpec {
|
|
642
839
|
hosted?: {
|
|
643
840
|
visibility: 'private' | 'invited' | 'organization' | 'link' | 'public';
|
|
@@ -711,6 +908,8 @@ export interface AppSpec {
|
|
|
711
908
|
skills: string[];
|
|
712
909
|
/** Backend tools (agentspecs/backend-tools) it adds to its agent's. */
|
|
713
910
|
backendTools: string[];
|
|
911
|
+
/** Tools of its own, written in its code (LOOP P-06); absent when it has none. */
|
|
912
|
+
tools?: AppToolSpec[];
|
|
714
913
|
/** The Frames it works under. */
|
|
715
914
|
context: string[];
|
|
716
915
|
/** The documents and datasets it answers from. */
|
package/lib/types/chat.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { ComponentType, ReactNode } from 'react';
|
|
|
8
8
|
import type { ICollaborationProvider } from '@datalayer/jupyter-react';
|
|
9
9
|
import type { ChatMessage, MessageHandler } from './messages';
|
|
10
10
|
import type { Protocol, ProtocolConfig } from './protocol';
|
|
11
|
-
import type {
|
|
11
|
+
import type { OtelLiveTracer } from '@datalayer/core/lib/otel/live';
|
|
12
12
|
import type { McpServerSelection } from './inference';
|
|
13
13
|
import type { MCPServerTool } from './mcp';
|
|
14
14
|
import type { AgentRuntimeConfig } from './config';
|
|
@@ -1273,11 +1273,12 @@ export interface ChatBaseProps {
|
|
|
1273
1273
|
*/
|
|
1274
1274
|
onToolCallComplete?: (context: ToolCallCompleteContext) => void;
|
|
1275
1275
|
/**
|
|
1276
|
-
* The Agent Inspector's
|
|
1277
|
-
*
|
|
1278
|
-
* the
|
|
1276
|
+
* The Agent Inspector's tracer: the agent's turns (`invoke_agent` spans:
|
|
1277
|
+
* its model, its tokens) and its tool calls (`execute_tool` spans), from
|
|
1278
|
+
* start to end, are recorded there. Without it, the tracer of the nearest
|
|
1279
|
+
* `AgentInspectorProvider`, if any.
|
|
1279
1280
|
*/
|
|
1280
|
-
inspector?:
|
|
1281
|
+
inspector?: OtelLiveTracer | null;
|
|
1281
1282
|
/**
|
|
1282
1283
|
* Whether to render the top-of-chat tool approval banner (and its review
|
|
1283
1284
|
* dialog) when `pendingApprovals` is non-empty. The banner/dialog render
|
package/lib/types/teams.d.ts
CHANGED
|
@@ -46,6 +46,11 @@ export interface TeamContextSpec {
|
|
|
46
46
|
* what the team *is*.
|
|
47
47
|
*/
|
|
48
48
|
sharing: TeamContextSharing;
|
|
49
|
+
/**
|
|
50
|
+
* The Frames every member works under, in order, `id` or `id:version`
|
|
51
|
+
* (LOOP A-04): the team's shared context, as a Cog names its own.
|
|
52
|
+
*/
|
|
53
|
+
frames?: string[];
|
|
49
54
|
}
|
|
50
55
|
/** How far members may hand work to each other, and to subagents. */
|
|
51
56
|
export interface TeamDelegationSpec {
|
|
@@ -60,8 +65,8 @@ export interface TeamDelegationSpec {
|
|
|
60
65
|
export interface TeamLinkSpec {
|
|
61
66
|
/** The member asked, by its id in the team. */
|
|
62
67
|
member: string;
|
|
63
|
-
/** The protocol: `a2a
|
|
64
|
-
over: 'a2a';
|
|
68
|
+
/** The protocol: `a2a` to an agent or an application, `mcp` to a server member. */
|
|
69
|
+
over: 'a2a' | 'mcp';
|
|
65
70
|
}
|
|
66
71
|
export interface TeamAgentspec {
|
|
67
72
|
/** Agent identifier within the team */
|
|
@@ -80,6 +85,12 @@ export interface TeamAgentspec {
|
|
|
80
85
|
* application, with its agent, connections, rules and interface.
|
|
81
86
|
*/
|
|
82
87
|
app?: string;
|
|
88
|
+
/**
|
|
89
|
+
* MCP server catalogue reference, in place of `ref` and `app`: the member
|
|
90
|
+
* is that server, a system of the scene the others reach over MCP
|
|
91
|
+
* (LOOP A-04). It asks nobody.
|
|
92
|
+
*/
|
|
93
|
+
server?: string;
|
|
83
94
|
/** Where its loop turns: in the person's `browser`, or on a `runtime`. */
|
|
84
95
|
runsIn?: 'browser' | 'runtime';
|
|
85
96
|
/** The members it asks directly while it works, and over what. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datalayer/agent-runtimes",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.85",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
".",
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
"@ai-sdk/react": "4.0.93",
|
|
148
148
|
"@anthropic-ai/sdk": "^0.52.0",
|
|
149
149
|
"@datalayer/agent-teams": "^1.0.0",
|
|
150
|
-
"@datalayer/core": "^1.2.
|
|
150
|
+
"@datalayer/core": "^1.2.18",
|
|
151
151
|
"@datalayer/decks": "^1.0.4",
|
|
152
152
|
"@datalayer/icons-react": "^1.0.16",
|
|
153
153
|
"@datalayer/jupyter-lexical": "^2.0.18",
|