@datalayer/agent-runtimes 1.3.87 → 1.3.89
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/components/a2ui/datalayer/Download.d.ts +21 -0
- package/lib/components/a2ui/datalayer/Download.js +66 -0
- package/lib/components/a2ui/datalayer/drawn.d.ts +1 -1
- package/lib/components/a2ui/datalayer/drawn.js +1 -0
- package/lib/components/a2ui/datalayer/index.d.ts +2 -1
- package/lib/components/a2ui/datalayer/index.js +3 -0
- package/lib/components/inspector/a2aSpans.d.ts +9 -0
- package/lib/components/inspector/a2aSpans.js +11 -1
- package/lib/components/teams/AnswerSurfaces.d.ts +56 -0
- package/lib/components/teams/AnswerSurfaces.js +27 -0
- package/lib/components/teams/AnswerSurfacesView.d.ts +14 -0
- package/lib/components/teams/AnswerSurfacesView.js +30 -0
- package/lib/components/teams/index.d.ts +1 -0
- package/lib/components/teams/index.js +1 -0
- package/lib/components/teams/useA2ATeam.d.ts +56 -2
- package/lib/components/teams/useA2ATeam.js +122 -3
- package/lib/hooks/useAgentRuntimes.d.ts +13 -0
- package/lib/hooks/useAgentRuntimes.js +11 -1
- package/lib/loop/apps/AppFeedback.js +11 -2
- package/lib/loop/apps/AppRenderer.d.ts +13 -1
- package/lib/loop/apps/AppRenderer.js +34 -1
- package/lib/loop/apps/AppRuntimePlugins.d.ts +8 -0
- package/lib/loop/apps/AppRuntimePlugins.js +87 -0
- package/lib/loop/apps/feedback.d.ts +7 -0
- package/lib/loop/apps/feedback.js +3 -0
- package/lib/loop/apps/pluginPair.d.ts +60 -0
- package/lib/loop/apps/pluginPair.js +44 -0
- package/lib/loop/apps/threads.d.ts +35 -0
- package/lib/loop/apps/threads.js +79 -0
- package/lib/loop/embed/LoopEmbed.d.ts +4 -3
- package/lib/loop/embed/hostBridge.d.ts +27 -0
- package/lib/loop/embed/hostBridge.js +47 -0
- package/lib/loop/index.d.ts +1 -1
- package/lib/loop/index.js +1 -1
- package/lib/loop/plugins/agent-capacity/index.d.ts +7 -0
- package/lib/loop/plugins/agent-capacity/index.js +3 -2
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +11 -0
- package/lib/loop/plugins/agents/appLaunch.d.ts +15 -0
- package/lib/loop/plugins/agents/appLaunch.js +28 -0
- package/lib/loop/plugins/chat/ChatView.js +177 -109
- package/lib/loop/shell/LoopWorkspace.d.ts +3 -3
- package/lib/loop/shell/LoopWorkspace.js +1 -1
- package/lib/runtimes/__tests__/fixtures/accounting-agent-card.json +10 -2
- package/lib/runtimes/actions.js +23 -0
- package/lib/runtimes/apis.d.ts +18 -0
- package/lib/runtimes/browser/a2aPeer.d.ts +19 -2
- package/lib/runtimes/browser/a2aPeer.js +13 -7
- package/lib/specs/apps.js +102 -30
- package/lib/specs/envvars.d.ts +2 -0
- package/lib/specs/envvars.js +22 -0
- package/lib/specs/outputs.d.ts +1 -0
- package/lib/specs/outputs.js +12 -0
- package/lib/specs/sceneSchema.js +12 -1
- package/lib/specs/scenes.js +238 -121
- package/lib/specs/teams/teams.js +23 -7
- package/lib/specs/uiPlugins.js +55 -0
- package/lib/stores/agentRuntimeStore.js +4 -0
- package/lib/types/chat.d.ts +6 -0
- package/lib/types/scenes.d.ts +7 -1
- package/package.json +1 -1
- package/scripts/codegen/generate_envvars.py +0 -1
- package/scripts/codegen/generate_mcp_servers.py +11 -7
package/lib/specs/teams/teams.js
CHANGED
|
@@ -749,6 +749,10 @@ export const CROP_MONITORING_TEAM_SPEC_0_0_1 = {
|
|
|
749
749
|
text: 'Which datasets and granules cover the Po valley for June 2026?',
|
|
750
750
|
emoji: '🛰️',
|
|
751
751
|
},
|
|
752
|
+
{
|
|
753
|
+
text: 'Save the June 2026 granules of the Po valley to my Space.',
|
|
754
|
+
emoji: '💾',
|
|
755
|
+
},
|
|
752
756
|
],
|
|
753
757
|
delegation: {
|
|
754
758
|
maxDepth: 0,
|
|
@@ -815,13 +819,17 @@ export const DISASTER_ASSESSMENT_TEAM_SPEC_0_0_1 = {
|
|
|
815
819
|
emoji: '🌊',
|
|
816
820
|
},
|
|
817
821
|
{
|
|
818
|
-
text: 'Fires burned around Los Angeles from 7 January 2025.
|
|
822
|
+
text: 'Fires burned around Los Angeles from 7 January 2025. Which imagery shows what changed?',
|
|
819
823
|
emoji: '🔥',
|
|
820
824
|
},
|
|
821
825
|
{
|
|
822
|
-
text: 'The Ahr valley was hit by a storm on 14 July 2021.
|
|
826
|
+
text: 'The Ahr valley was hit by a storm on 14 July 2021. Chart the imagery found each day from 10 to 20 July.',
|
|
823
827
|
emoji: '🌧️',
|
|
824
828
|
},
|
|
829
|
+
{
|
|
830
|
+
text: 'Send the Valencia flood assessment to the emergency services.',
|
|
831
|
+
emoji: '📣',
|
|
832
|
+
},
|
|
825
833
|
],
|
|
826
834
|
delegation: {
|
|
827
835
|
maxDepth: 1,
|
|
@@ -1140,13 +1148,14 @@ export const MONTH_END_CLOSE_TEAM_SPEC_0_0_1 = {
|
|
|
1140
1148
|
emoji: '☑️',
|
|
1141
1149
|
},
|
|
1142
1150
|
{
|
|
1143
|
-
text: 'Which accruals should be booked for last month
|
|
1151
|
+
text: 'Which accruals should be booked for last month? Show me the entries each rests on.',
|
|
1144
1152
|
emoji: '🧾',
|
|
1145
1153
|
},
|
|
1146
1154
|
{
|
|
1147
|
-
text:
|
|
1148
|
-
emoji: '
|
|
1155
|
+
text: "Chart last month's expenses by account against the month before.",
|
|
1156
|
+
emoji: '📊',
|
|
1149
1157
|
},
|
|
1158
|
+
{ text: 'Post the accruals you suggested for last month.', emoji: '✍️' },
|
|
1150
1159
|
],
|
|
1151
1160
|
delegation: {
|
|
1152
1161
|
maxDepth: 0,
|
|
@@ -1741,10 +1750,17 @@ export const SALES_AND_ACCOUNTING_TEAM_SPEC_0_0_1 = {
|
|
|
1741
1750
|
emoji: '🧾',
|
|
1742
1751
|
},
|
|
1743
1752
|
{
|
|
1744
|
-
text: '
|
|
1753
|
+
text: 'Chart the aged receivables as of today, by customer.',
|
|
1745
1754
|
emoji: '⏳',
|
|
1746
1755
|
},
|
|
1747
|
-
{
|
|
1756
|
+
{
|
|
1757
|
+
text: 'Which invoices make up the largest balance due? Show me each one.',
|
|
1758
|
+
emoji: '🔎',
|
|
1759
|
+
},
|
|
1760
|
+
{
|
|
1761
|
+
text: 'Send a payment reminder to every customer more than 60 days late.',
|
|
1762
|
+
emoji: '✉️',
|
|
1763
|
+
},
|
|
1748
1764
|
],
|
|
1749
1765
|
delegation: {
|
|
1750
1766
|
maxDepth: 1,
|
package/lib/specs/uiPlugins.js
CHANGED
|
@@ -998,6 +998,61 @@ export const A2UI_UI_PLUGIN_0_0_1 = {
|
|
|
998
998
|
},
|
|
999
999
|
},
|
|
1000
1000
|
},
|
|
1001
|
+
{
|
|
1002
|
+
id: 'Download',
|
|
1003
|
+
name: 'File to download',
|
|
1004
|
+
category: 'data',
|
|
1005
|
+
emoji: '📄',
|
|
1006
|
+
description: 'A file the application gives, to save: a report, a sheet, an export — by its link, or the file itself as a data: URL.',
|
|
1007
|
+
version: '1.0.0',
|
|
1008
|
+
standard: false,
|
|
1009
|
+
properties: {
|
|
1010
|
+
type: 'object',
|
|
1011
|
+
required: ['name', 'url'],
|
|
1012
|
+
properties: {
|
|
1013
|
+
name: {
|
|
1014
|
+
type: 'string',
|
|
1015
|
+
title: 'File name',
|
|
1016
|
+
description: 'What the file is saved as, with its extension.',
|
|
1017
|
+
minLength: 1,
|
|
1018
|
+
},
|
|
1019
|
+
url: {
|
|
1020
|
+
type: 'string',
|
|
1021
|
+
title: 'Link',
|
|
1022
|
+
description: 'Where the file is: an http(s) link, or the file itself as a data: URL.',
|
|
1023
|
+
pattern: '^(https?://|data:)',
|
|
1024
|
+
},
|
|
1025
|
+
media_type: {
|
|
1026
|
+
type: 'string',
|
|
1027
|
+
title: 'Kind',
|
|
1028
|
+
description: 'Its media type (text/csv, application/pdf…), said beside its name.',
|
|
1029
|
+
},
|
|
1030
|
+
size: {
|
|
1031
|
+
type: 'integer',
|
|
1032
|
+
title: 'Size (bytes)',
|
|
1033
|
+
description: 'How large it is, said beside its name.',
|
|
1034
|
+
minimum: 0,
|
|
1035
|
+
},
|
|
1036
|
+
description: {
|
|
1037
|
+
type: 'string',
|
|
1038
|
+
title: 'Description',
|
|
1039
|
+
description: 'A line under its name.',
|
|
1040
|
+
},
|
|
1041
|
+
},
|
|
1042
|
+
},
|
|
1043
|
+
bindings: {
|
|
1044
|
+
shows: [],
|
|
1045
|
+
sends: [],
|
|
1046
|
+
},
|
|
1047
|
+
events: ['download'],
|
|
1048
|
+
example: {
|
|
1049
|
+
name: 'totals.csv',
|
|
1050
|
+
url: 'data:text/csv;base64,bW9udGgsdG90YWwKSmFuLDEyMDAK',
|
|
1051
|
+
media_type: 'text/csv',
|
|
1052
|
+
size: 21,
|
|
1053
|
+
description: "The month's totals.",
|
|
1054
|
+
},
|
|
1055
|
+
},
|
|
1001
1056
|
],
|
|
1002
1057
|
};
|
|
1003
1058
|
export const MCP_APPS_UI_PLUGIN_0_0_1 = {
|
|
@@ -371,6 +371,10 @@ export const agentRuntimeStore = createStore()(subscribeWithSelector(persist((se
|
|
|
371
371
|
givenName: runtimeOptions.givenName,
|
|
372
372
|
capabilities: runtimeOptions.capabilities,
|
|
373
373
|
snapshot: runtimeOptions.snapshot,
|
|
374
|
+
// The application it is launched for, with its Appspec (R-19).
|
|
375
|
+
appSpec: runtimeOptions.appSpec,
|
|
376
|
+
appUid: runtimeOptions.appUid,
|
|
377
|
+
deploymentUid: runtimeOptions.deploymentUid,
|
|
374
378
|
});
|
|
375
379
|
set({ status: 'connecting' });
|
|
376
380
|
const jupyterBaseUrl = runtimeRecord.ingress;
|
package/lib/types/chat.d.ts
CHANGED
|
@@ -662,6 +662,12 @@ export type ResumedThread = {
|
|
|
662
662
|
id: string;
|
|
663
663
|
/** What it holds already; none for a new one. */
|
|
664
664
|
messages: ChatMessage[];
|
|
665
|
+
/**
|
|
666
|
+
* Opened from a person's history (LOOP P-24): its conversation is read
|
|
667
|
+
* from the runtime the application's chat runs on as the chat mounts —
|
|
668
|
+
* held there, else resumed from its record — in place of `messages`.
|
|
669
|
+
*/
|
|
670
|
+
fromRuntime?: boolean;
|
|
665
671
|
/**
|
|
666
672
|
* Told the thread a message is first sent on — this one, or a new one
|
|
667
673
|
* after the header's + — so that its host keeps it. A stable function.
|
package/lib/types/scenes.d.ts
CHANGED
|
@@ -71,7 +71,13 @@ export interface SceneCueSpec {
|
|
|
71
71
|
event: string;
|
|
72
72
|
}
|
|
73
73
|
/** What kind of answer comes back, and what the page shows. */
|
|
74
|
-
export type SceneAnswerKind = 'words' | 'table' | 'chart' | 'notebook' | 'map' | 'file' | 'image'
|
|
74
|
+
export type SceneAnswerKind = 'words' | 'table' | 'chart' | 'notebook' | 'map' | 'file' | 'image'
|
|
75
|
+
/** The sources it read, as cards that open (STUDIO H-02). */
|
|
76
|
+
| 'sources'
|
|
77
|
+
/** A choice as buttons that answer the application. */
|
|
78
|
+
| 'choice'
|
|
79
|
+
/** A choice whose option does more than read: asked, and refused to a visitor. */
|
|
80
|
+
| 'approval';
|
|
75
81
|
/** How fast a beat plays for the audience. */
|
|
76
82
|
export type ScenePace = 'quick' | 'steady' | 'slow';
|
|
77
83
|
/** One member asking another over a protocol, or answering the audience. */
|
package/package.json
CHANGED
|
@@ -126,13 +126,17 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
|
|
|
126
126
|
if env_formatted:
|
|
127
127
|
lines.append(f" env={env_formatted},")
|
|
128
128
|
|
|
129
|
-
lines.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
129
|
+
lines.append(f" required_env_vars={envvars_formatted},")
|
|
130
|
+
# What the code its tools write reads in the code sandbox: given there
|
|
131
|
+
# when the account has them, never required (LOOP R-19).
|
|
132
|
+
sandbox_envvars = spec.get("sandbox_envvars", [])
|
|
133
|
+
if sandbox_envvars:
|
|
134
|
+
lines.append(
|
|
135
|
+
" sandbox_env_vars=["
|
|
136
|
+
+ ", ".join(f'"{v}"' for v in sandbox_envvars)
|
|
137
|
+
+ "],"
|
|
138
|
+
)
|
|
139
|
+
lines.extend([")", ""])
|
|
136
140
|
|
|
137
141
|
# Generate catalog dictionary
|
|
138
142
|
lines.extend(
|