@datalayer/agent-runtimes 1.3.74 → 1.3.75

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.
Files changed (55) hide show
  1. package/lib/chat/ChatFloating.d.ts +17 -1
  2. package/lib/chat/ChatFloating.js +52 -5
  3. package/lib/chat/assistant/AssistantContextMenu.d.ts +67 -0
  4. package/lib/chat/assistant/AssistantContextMenu.js +68 -0
  5. package/lib/chat/assistant/AssistantStage.d.ts +95 -1
  6. package/lib/chat/assistant/AssistantStage.js +227 -7
  7. package/lib/chat/assistant/BalloonParts.d.ts +15 -1
  8. package/lib/chat/assistant/BalloonParts.js +26 -9
  9. package/lib/chat/assistant/BalloonVisual.d.ts +10 -2
  10. package/lib/chat/assistant/BalloonVisual.js +3 -3
  11. package/lib/chat/assistant/SpeechBalloon.d.ts +47 -1
  12. package/lib/chat/assistant/SpeechBalloon.js +60 -8
  13. package/lib/chat/base/ChatBase.js +51 -1
  14. package/lib/chat/indicators/TypingDots.d.ts +13 -0
  15. package/lib/chat/indicators/TypingDots.js +21 -0
  16. package/lib/chat/messages/ChatMessageList.js +1 -15
  17. package/lib/components/inspector/AgentInspector.d.ts +59 -0
  18. package/lib/components/inspector/AgentInspector.js +220 -0
  19. package/lib/components/inspector/AgentInspectorDialog.d.ts +19 -0
  20. package/lib/components/inspector/AgentInspectorDialog.js +9 -0
  21. package/lib/components/inspector/JsonTree.d.ts +24 -0
  22. package/lib/components/inspector/JsonTree.js +89 -0
  23. package/lib/components/inspector/a2aInspect.d.ts +56 -0
  24. package/lib/components/inspector/a2aInspect.js +478 -0
  25. package/lib/components/inspector/agentInspector.d.ts +179 -0
  26. package/lib/components/inspector/agentInspector.js +267 -0
  27. package/lib/components/inspector/chatInspect.d.ts +38 -0
  28. package/lib/components/inspector/chatInspect.js +65 -0
  29. package/lib/components/inspector/classify.d.ts +19 -0
  30. package/lib/components/inspector/classify.js +42 -0
  31. package/lib/components/inspector/index.d.ts +14 -0
  32. package/lib/components/inspector/index.js +18 -0
  33. package/lib/components/teams/A2ATeamGraph.d.ts +42 -1
  34. package/lib/components/teams/A2ATeamGraph.js +24 -7
  35. package/lib/components/teams/NotebookPreviewView.js +9 -1
  36. package/lib/components/teams/TeamNotebook.d.ts +3 -1
  37. package/lib/components/teams/TeamNotebook.js +3 -3
  38. package/lib/components/teams/jupyterThemeVariables.d.ts +9 -0
  39. package/lib/components/teams/jupyterThemeVariables.js +441 -0
  40. package/lib/components/teams/teamConnections.d.ts +9 -1
  41. package/lib/components/teams/teamConnections.js +20 -0
  42. package/lib/components/teams/useA2ATeam.d.ts +17 -4
  43. package/lib/components/teams/useA2ATeam.js +87 -23
  44. package/lib/examples/AgentA2ATeamExample.d.ts +13 -0
  45. package/lib/examples/AgentA2ATeamExample.js +61 -13
  46. package/lib/examples/AssistantExample.js +62 -2
  47. package/lib/loop/apps/AppRenderer.js +1 -1
  48. package/lib/loop/core/index.d.ts +17 -0
  49. package/lib/loop/core/index.js +1 -0
  50. package/lib/loop/plugins/assistant/index.d.ts +1 -1
  51. package/lib/loop/plugins/assistant/index.js +8 -3
  52. package/lib/runtimes/browser/a2aPeer.d.ts +4 -1
  53. package/lib/types/chat.d.ts +7 -0
  54. package/package.json +1 -1
  55. package/scripts/codegen/generate_jupyter_theme_variables.mjs +57 -0
@@ -0,0 +1,441 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * JupyterLab's theme variables, light and dark, as its theme extensions state
7
+ * them. Generated by scripts/codegen/generate_jupyter_theme_variables.mjs: do
8
+ * not edit.
9
+ *
10
+ * @module components/teams/jupyterThemeVariables
11
+ */
12
+ export const JUPYTER_LIGHT_VARIABLES = {
13
+ '--jp-shadow-base-lightness': '0',
14
+ '--jp-shadow-umbra-color': 'rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.2 )',
15
+ '--jp-shadow-penumbra-color': 'rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.14 )',
16
+ '--jp-shadow-ambient-color': 'rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.12 )',
17
+ '--jp-elevation-z0': 'none',
18
+ '--jp-elevation-z1': '0 2px 1px -1px var(--jp-shadow-umbra-color), 0 1px 1px 0 var(--jp-shadow-penumbra-color), 0 1px 3px 0 var(--jp-shadow-ambient-color)',
19
+ '--jp-elevation-z2': '0 3px 1px -2px var(--jp-shadow-umbra-color), 0 2px 2px 0 var(--jp-shadow-penumbra-color), 0 1px 5px 0 var(--jp-shadow-ambient-color)',
20
+ '--jp-elevation-z4': '0 2px 4px -1px var(--jp-shadow-umbra-color), 0 4px 5px 0 var(--jp-shadow-penumbra-color), 0 1px 10px 0 var(--jp-shadow-ambient-color)',
21
+ '--jp-elevation-z6': '0 3px 5px -1px var(--jp-shadow-umbra-color), 0 6px 10px 0 var(--jp-shadow-penumbra-color), 0 1px 18px 0 var(--jp-shadow-ambient-color)',
22
+ '--jp-elevation-z8': '0 5px 5px -3px var(--jp-shadow-umbra-color), 0 8px 10px 1px var(--jp-shadow-penumbra-color), 0 3px 14px 2px var(--jp-shadow-ambient-color)',
23
+ '--jp-elevation-z12': '0 7px 8px -4px var(--jp-shadow-umbra-color), 0 12px 17px 2px var(--jp-shadow-penumbra-color), 0 5px 22px 4px var(--jp-shadow-ambient-color)',
24
+ '--jp-elevation-z16': '0 8px 10px -5px var(--jp-shadow-umbra-color), 0 16px 24px 2px var(--jp-shadow-penumbra-color), 0 6px 30px 5px var(--jp-shadow-ambient-color)',
25
+ '--jp-elevation-z20': '0 10px 13px -6px var(--jp-shadow-umbra-color), 0 20px 31px 3px var(--jp-shadow-penumbra-color), 0 8px 38px 7px var(--jp-shadow-ambient-color)',
26
+ '--jp-elevation-z24': '0 11px 15px -7px var(--jp-shadow-umbra-color), 0 24px 38px 3px var(--jp-shadow-penumbra-color), 0 9px 46px 8px var(--jp-shadow-ambient-color)',
27
+ '--jp-border-width': '1px',
28
+ '--jp-border-color0': 'var(--md-grey-400, #bdbdbd)',
29
+ '--jp-border-color1': 'var(--md-grey-400, #bdbdbd)',
30
+ '--jp-border-color2': 'var(--md-grey-300, #e0e0e0)',
31
+ '--jp-border-color3': 'var(--md-grey-200, #eee)',
32
+ '--jp-inverse-border-color': 'var(--md-grey-600, #757575)',
33
+ '--jp-border-radius': '2px',
34
+ '--jp-shortcuts-button-background': 'var(--jp-brand-color3)',
35
+ '--jp-shortcuts-button-hover-background': 'var(--jp-brand-color2)',
36
+ '--jp-ui-font-scale-factor': '1.2',
37
+ '--jp-ui-font-size0': '0.83333em',
38
+ '--jp-ui-font-size1': '13px',
39
+ '--jp-ui-font-size2': '1.2em',
40
+ '--jp-ui-font-size3': '1.44em',
41
+ '--jp-ui-font-family': "system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'",
42
+ '--jp-ui-font-color0': 'rgba(0, 0, 0, 1)',
43
+ '--jp-ui-font-color1': 'rgba(0, 0, 0, 0.87)',
44
+ '--jp-ui-font-color2': 'rgba(0, 0, 0, 0.54)',
45
+ '--jp-ui-font-color3': 'rgba(0, 0, 0, 0.38)',
46
+ '--jp-ui-inverse-font-color0': 'rgba(255, 255, 255, 1)',
47
+ '--jp-ui-inverse-font-color1': 'rgba(255, 255, 255, 1)',
48
+ '--jp-ui-inverse-font-color2': 'rgba(255, 255, 255, 0.7)',
49
+ '--jp-ui-inverse-font-color3': 'rgba(255, 255, 255, 0.5)',
50
+ '--jp-content-line-height': '1.6',
51
+ '--jp-content-font-scale-factor': '1.2',
52
+ '--jp-content-font-size0': '0.83333em',
53
+ '--jp-content-font-size1': '14px',
54
+ '--jp-content-font-size2': '1.2em',
55
+ '--jp-content-font-size3': '1.44em',
56
+ '--jp-content-font-size4': '1.728em',
57
+ '--jp-content-font-size5': '2.0736em',
58
+ '--jp-content-presentation-font-size1': '17px',
59
+ '--jp-content-heading-line-height': '1',
60
+ '--jp-content-heading-margin-top': '1.2em',
61
+ '--jp-content-heading-margin-bottom': '0.8em',
62
+ '--jp-content-heading-font-weight': '500',
63
+ '--jp-content-font-color0': 'rgba(0, 0, 0, 1)',
64
+ '--jp-content-font-color1': 'rgba(0, 0, 0, 0.87)',
65
+ '--jp-content-font-color2': 'rgba(0, 0, 0, 0.54)',
66
+ '--jp-content-font-color3': 'rgba(0, 0, 0, 0.38)',
67
+ '--jp-content-link-color': 'var(--md-blue-900, #0d47a1)',
68
+ '--jp-content-link-visited-color': 'var(--md-purple-700, #7b1fa2)',
69
+ '--jp-content-font-family': "system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'",
70
+ '--jp-datagrid-font-size': '12px',
71
+ '--jp-datagrid-font-family': 'var(--jp-content-font-family)',
72
+ '--jp-code-font-size': '13px',
73
+ '--jp-code-line-height': '1.3077',
74
+ '--jp-code-padding': '5px',
75
+ '--jp-code-font-family-default': "menlo, consolas, 'DejaVu Sans Mono', monospace",
76
+ '--jp-code-font-family': 'var(--jp-code-font-family-default)',
77
+ '--jp-code-presentation-font-size': '16px',
78
+ '--jp-code-cursor-width0': '1.4px',
79
+ '--jp-code-cursor-width1': '2px',
80
+ '--jp-code-cursor-width2': '4px',
81
+ '--jp-layout-color0': 'white',
82
+ '--jp-layout-color1': 'white',
83
+ '--jp-layout-color2': 'var(--md-grey-200, #eee)',
84
+ '--jp-layout-color3': 'var(--md-grey-400, #bdbdbd)',
85
+ '--jp-layout-color4': 'var(--md-grey-600, #757575)',
86
+ '--jp-inverse-layout-color0': '#111',
87
+ '--jp-inverse-layout-color1': 'var(--md-grey-900, #212121)',
88
+ '--jp-inverse-layout-color2': 'var(--md-grey-800, #424242)',
89
+ '--jp-inverse-layout-color3': 'var(--md-grey-700, #616161)',
90
+ '--jp-inverse-layout-color4': 'var(--md-grey-600, #757575)',
91
+ '--jp-brand-color0': 'var(--md-blue-900, #0d47a1)',
92
+ '--jp-brand-color1': 'var(--md-blue-700, #1976d2)',
93
+ '--jp-brand-color2': 'var(--md-blue-300, #64b5f6)',
94
+ '--jp-brand-color3': 'var(--md-blue-100, #bbdefb)',
95
+ '--jp-brand-color4': 'var(--md-blue-50, #e3f2fd)',
96
+ '--jp-accent-color0': 'var(--md-green-900, #1b5e20)',
97
+ '--jp-accent-color1': 'var(--md-green-700, #388e3c)',
98
+ '--jp-accent-color2': 'var(--md-green-300, #81c784)',
99
+ '--jp-accent-color3': 'var(--md-green-100, #c8e6c9)',
100
+ '--jp-warn-color0': 'var(--md-orange-900, #e65100)',
101
+ '--jp-warn-color1': 'var(--md-orange-700, #f57c00)',
102
+ '--jp-warn-color2': 'var(--md-orange-300, #ffb74d)',
103
+ '--jp-warn-color3': 'var(--md-orange-100, #ffe0b2)',
104
+ '--jp-error-color0': 'var(--md-red-900, #b71c1c)',
105
+ '--jp-error-color1': 'var(--md-red-700, #d32f2f)',
106
+ '--jp-error-color2': 'var(--md-red-300, #e57373)',
107
+ '--jp-error-color3': 'var(--md-red-100, #ffcdd2)',
108
+ '--jp-success-color0': 'var(--md-green-900, #1b5e20)',
109
+ '--jp-success-color1': 'var(--md-green-700, #388e3c)',
110
+ '--jp-success-color2': 'var(--md-green-300, #81c784)',
111
+ '--jp-success-color3': 'var(--md-green-100, #c8e6c9)',
112
+ '--jp-info-color0': 'var(--md-cyan-900, #006064)',
113
+ '--jp-info-color1': 'var(--md-cyan-700, #0097a7)',
114
+ '--jp-info-color2': 'var(--md-cyan-300, #4dd0e1)',
115
+ '--jp-info-color3': 'var(--md-cyan-100, #b2ebf2)',
116
+ '--jp-cell-padding': '5px',
117
+ '--jp-cell-collapser-width': '8px',
118
+ '--jp-cell-collapser-min-height': '20px',
119
+ '--jp-cell-collapser-not-active-hover-opacity': '0.6',
120
+ '--jp-cell-editor-background': 'var(--md-grey-100, #f5f5f5)',
121
+ '--jp-cell-editor-border-color': 'var(--md-grey-300, #e0e0e0)',
122
+ '--jp-cell-editor-box-shadow': 'inset 0 0 2px var(--md-blue-300, #64b5f6)',
123
+ '--jp-cell-editor-active-background': 'var(--jp-layout-color0)',
124
+ '--jp-cell-editor-active-border-color': 'var(--jp-brand-color1)',
125
+ '--jp-cell-prompt-width': '64px',
126
+ '--jp-cell-prompt-font-family': 'var(--jp-code-font-family-default)',
127
+ '--jp-cell-prompt-letter-spacing': '0',
128
+ '--jp-cell-prompt-opacity': '1',
129
+ '--jp-cell-prompt-not-active-opacity': '0.5',
130
+ '--jp-cell-prompt-not-active-font-color': 'var(--md-grey-700, #616161)',
131
+ '--jp-cell-inprompt-font-color': '#307fc1',
132
+ '--jp-cell-outprompt-font-color': '#bf5b3d',
133
+ '--jp-notebook-padding': '10px',
134
+ '--jp-notebook-select-background': 'var(--jp-layout-color1)',
135
+ '--jp-notebook-multiselected-color': 'var(--md-blue-50, #e3f2fd)',
136
+ '--jp-notebook-scroll-padding': 'calc( 100% - var(--jp-code-font-size) * var(--jp-code-line-height) - var(--jp-code-padding) - var(--jp-cell-padding) - 1px )',
137
+ '--jp-editor-scroll-padding': 'calc( 100% - var(--jp-code-font-size) * var(--jp-code-line-height) - var(--jp-code-padding) - 1px )',
138
+ '--jp-rendermime-error-background': '#fdd',
139
+ '--jp-rendermime-table-row-background': 'var(--md-grey-100, #cfd8dc)',
140
+ '--jp-rendermime-table-row-hover-background': 'var(--md-light-blue-50, #e1f5fe)',
141
+ '--jp-dialog-background': 'rgba(0, 0, 0, 0.25)',
142
+ '--jp-console-padding': '10px',
143
+ '--jp-toolbar-border-color': 'var(--jp-border-color1)',
144
+ '--jp-toolbar-micro-height': '8px',
145
+ '--jp-toolbar-background': 'var(--jp-layout-color1)',
146
+ '--jp-toolbar-box-shadow': '0 0 2px 0 rgba(0, 0, 0, 0.24)',
147
+ '--jp-toolbar-header-margin': '4px 4px 0 4px',
148
+ '--jp-toolbar-active-background': 'var(--md-grey-300, #90a4ae)',
149
+ '--jp-statusbar-height': '24px',
150
+ '--jp-input-box-shadow': 'inset 0 0 2px var(--md-blue-300, #64b5f6)',
151
+ '--jp-input-active-background': 'var(--jp-layout-color1)',
152
+ '--jp-input-hover-background': 'var(--jp-layout-color1)',
153
+ '--jp-input-background': 'var(--md-grey-100, #f5f5f5)',
154
+ '--jp-input-border-color': 'var(--jp-inverse-border-color)',
155
+ '--jp-input-active-border-color': 'var(--jp-brand-color1)',
156
+ '--jp-input-active-box-shadow-color': 'rgba(19, 124, 189, 0.3)',
157
+ '--jp-editor-selected-background': '#d9d9d9',
158
+ '--jp-editor-selected-focused-background': '#d7d4f0',
159
+ '--jp-editor-cursor-color': 'var(--jp-ui-font-color0)',
160
+ '--jp-mirror-editor-keyword-color': '#008000',
161
+ '--jp-mirror-editor-atom-color': '#88f',
162
+ '--jp-mirror-editor-number-color': '#080',
163
+ '--jp-mirror-editor-def-color': '#00f',
164
+ '--jp-mirror-editor-variable-color': 'var(--md-grey-900, #212121)',
165
+ '--jp-mirror-editor-variable-2-color': 'rgb(0, 54, 109)',
166
+ '--jp-mirror-editor-variable-3-color': '#085',
167
+ '--jp-mirror-editor-punctuation-color': '#05a',
168
+ '--jp-mirror-editor-property-color': '#05a',
169
+ '--jp-mirror-editor-operator-color': '#7800c2',
170
+ '--jp-mirror-editor-comment-color': '#408080',
171
+ '--jp-mirror-editor-string-color': '#ba2121',
172
+ '--jp-mirror-editor-string-2-color': '#708',
173
+ '--jp-mirror-editor-meta-color': '#a2f',
174
+ '--jp-mirror-editor-qualifier-color': '#555',
175
+ '--jp-mirror-editor-builtin-color': '#008000',
176
+ '--jp-mirror-editor-bracket-color': '#997',
177
+ '--jp-mirror-editor-tag-color': '#170',
178
+ '--jp-mirror-editor-attribute-color': '#00c',
179
+ '--jp-mirror-editor-header-color': 'blue',
180
+ '--jp-mirror-editor-quote-color': '#090',
181
+ '--jp-mirror-editor-link-color': '#00c',
182
+ '--jp-mirror-editor-error-color': '#f00',
183
+ '--jp-mirror-editor-hr-color': '#999',
184
+ '--jp-collaborator-color1': '#ffad8e',
185
+ '--jp-collaborator-color2': '#dac83d',
186
+ '--jp-collaborator-color3': '#72dd76',
187
+ '--jp-collaborator-color4': '#00e4d0',
188
+ '--jp-collaborator-color5': '#45d4ff',
189
+ '--jp-collaborator-color6': '#e2b1ff',
190
+ '--jp-collaborator-color7': '#ff9de6',
191
+ '--jp-vega-background': 'white',
192
+ '--jp-sidebar-min-width': '250px',
193
+ '--jp-search-selected-match-background-color': 'rgb(245, 200, 0)',
194
+ '--jp-search-selected-match-color': 'black',
195
+ '--jp-search-unselected-match-background-color': 'var( --jp-inverse-layout-color0 )',
196
+ '--jp-search-unselected-match-color': 'var(--jp-ui-inverse-font-color0)',
197
+ '--jp-icon-contrast-color0': 'var(--md-purple-600, #8e24aa)',
198
+ '--jp-icon-contrast-color1': 'var(--md-green-600, #43a047)',
199
+ '--jp-icon-contrast-color2': 'var(--md-pink-600, #d81b60)',
200
+ '--jp-icon-contrast-color3': 'var(--md-blue-600, #1e88e5)',
201
+ '--jp-accept-color-normal': 'var(--md-blue-700, #1976d2)',
202
+ '--jp-accept-color-hover': 'var(--md-blue-800, #1565c0)',
203
+ '--jp-accept-color-active': 'var(--md-blue-900, #0d47a1)',
204
+ '--jp-warn-color-normal': 'var(--md-red-700, #d32f2f)',
205
+ '--jp-warn-color-hover': 'var(--md-red-800, #c62828)',
206
+ '--jp-warn-color-active': 'var(--md-red-900, #b71c1c)',
207
+ '--jp-reject-color-normal': 'var(--md-grey-600, #757575)',
208
+ '--jp-reject-color-hover': 'var(--md-grey-700, #616161)',
209
+ '--jp-reject-color-active': 'var(--md-grey-800, #424242)',
210
+ '--jp-jupyter-icon-color': '#f37626',
211
+ '--jp-notebook-icon-color': '#f37626',
212
+ '--jp-json-icon-color': 'var(--md-orange-700, #f57c00)',
213
+ '--jp-console-icon-background-color': 'var(--md-blue-700, #1976d2)',
214
+ '--jp-console-icon-color': 'white',
215
+ '--jp-terminal-icon-background-color': 'var(--md-grey-800, #424242)',
216
+ '--jp-terminal-icon-color': 'var(--md-grey-200, #eee)',
217
+ '--jp-text-editor-icon-color': 'var(--md-grey-700, #616161)',
218
+ '--jp-inspector-icon-color': 'var(--md-grey-700, #616161)',
219
+ '--jp-switch-color': 'var(--md-grey-400, #bdbdbd)',
220
+ '--jp-switch-true-position-color': 'var(--md-orange-900, #e65100)',
221
+ '--jp-focus-outline-color': 'var(--jp-brand-color1)',
222
+ '--jp-focus-outline-width': '2px',
223
+ };
224
+ export const JUPYTER_DARK_VARIABLES = {
225
+ '--jp-shadow-base-lightness': '32',
226
+ '--jp-shadow-umbra-color': 'rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.2 )',
227
+ '--jp-shadow-penumbra-color': 'rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.14 )',
228
+ '--jp-shadow-ambient-color': 'rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.12 )',
229
+ '--jp-elevation-z0': 'none',
230
+ '--jp-elevation-z1': '0 2px 1px -1px var(--jp-shadow-umbra-color), 0 1px 1px 0 var(--jp-shadow-penumbra-color), 0 1px 3px 0 var(--jp-shadow-ambient-color)',
231
+ '--jp-elevation-z2': '0 3px 1px -2px var(--jp-shadow-umbra-color), 0 2px 2px 0 var(--jp-shadow-penumbra-color), 0 1px 5px 0 var(--jp-shadow-ambient-color)',
232
+ '--jp-elevation-z4': '0 2px 4px -1px var(--jp-shadow-umbra-color), 0 4px 5px 0 var(--jp-shadow-penumbra-color), 0 1px 10px 0 var(--jp-shadow-ambient-color)',
233
+ '--jp-elevation-z6': '0 3px 5px -1px var(--jp-shadow-umbra-color), 0 6px 10px 0 var(--jp-shadow-penumbra-color), 0 1px 18px 0 var(--jp-shadow-ambient-color)',
234
+ '--jp-elevation-z8': '0 5px 5px -3px var(--jp-shadow-umbra-color), 0 8px 10px 1px var(--jp-shadow-penumbra-color), 0 3px 14px 2px var(--jp-shadow-ambient-color)',
235
+ '--jp-elevation-z12': '0 7px 8px -4px var(--jp-shadow-umbra-color), 0 12px 17px 2px var(--jp-shadow-penumbra-color), 0 5px 22px 4px var(--jp-shadow-ambient-color)',
236
+ '--jp-elevation-z16': '0 8px 10px -5px var(--jp-shadow-umbra-color), 0 16px 24px 2px var(--jp-shadow-penumbra-color), 0 6px 30px 5px var(--jp-shadow-ambient-color)',
237
+ '--jp-elevation-z20': '0 10px 13px -6px var(--jp-shadow-umbra-color), 0 20px 31px 3px var(--jp-shadow-penumbra-color), 0 8px 38px 7px var(--jp-shadow-ambient-color)',
238
+ '--jp-elevation-z24': '0 11px 15px -7px var(--jp-shadow-umbra-color), 0 24px 38px 3px var(--jp-shadow-penumbra-color), 0 9px 46px 8px var(--jp-shadow-ambient-color)',
239
+ '--jp-shortcuts-button-background': 'var(--jp-brand-color2)',
240
+ '--jp-shortcuts-button-hover-background': 'var(--jp-brand-color1)',
241
+ '--jp-border-width': '1px',
242
+ '--jp-border-color0': 'var(--md-grey-700, #616161)',
243
+ '--jp-border-color1': 'var(--md-grey-700, #616161)',
244
+ '--jp-border-color2': 'var(--md-grey-800, #424242)',
245
+ '--jp-border-color3': 'var(--md-grey-900, #212121)',
246
+ '--jp-inverse-border-color': 'var(--md-grey-600, #757575)',
247
+ '--jp-border-radius': '2px',
248
+ '--jp-ui-font-scale-factor': '1.2',
249
+ '--jp-ui-font-size0': '0.83333em',
250
+ '--jp-ui-font-size1': '13px',
251
+ '--jp-ui-font-size2': '1.2em',
252
+ '--jp-ui-font-size3': '1.44em',
253
+ '--jp-ui-font-family': "system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'",
254
+ '--jp-ui-font-color0': 'rgba(255, 255, 255, 1)',
255
+ '--jp-ui-font-color1': 'rgba(255, 255, 255, 0.87)',
256
+ '--jp-ui-font-color2': 'rgba(255, 255, 255, 0.54)',
257
+ '--jp-ui-font-color3': 'rgba(255, 255, 255, 0.38)',
258
+ '--jp-ui-inverse-font-color0': 'rgba(0, 0, 0, 1)',
259
+ '--jp-ui-inverse-font-color1': 'rgba(0, 0, 0, 0.8)',
260
+ '--jp-ui-inverse-font-color2': 'rgba(0, 0, 0, 0.5)',
261
+ '--jp-ui-inverse-font-color3': 'rgba(0, 0, 0, 0.3)',
262
+ '--jp-content-line-height': '1.6',
263
+ '--jp-content-font-scale-factor': '1.2',
264
+ '--jp-content-font-size0': '0.83333em',
265
+ '--jp-content-font-size1': '14px',
266
+ '--jp-content-font-size2': '1.2em',
267
+ '--jp-content-font-size3': '1.44em',
268
+ '--jp-content-font-size4': '1.728em',
269
+ '--jp-content-font-size5': '2.0736em',
270
+ '--jp-content-presentation-font-size1': '17px',
271
+ '--jp-content-heading-line-height': '1',
272
+ '--jp-content-heading-margin-top': '1.2em',
273
+ '--jp-content-heading-margin-bottom': '0.8em',
274
+ '--jp-content-heading-font-weight': '500',
275
+ '--jp-content-font-color0': 'rgba(255, 255, 255, 1)',
276
+ '--jp-content-font-color1': 'rgba(255, 255, 255, 1)',
277
+ '--jp-content-font-color2': 'rgba(255, 255, 255, 0.7)',
278
+ '--jp-content-font-color3': 'rgba(255, 255, 255, 0.5)',
279
+ '--jp-content-link-color': 'var(--md-blue-300, #64b5f6)',
280
+ '--jp-content-link-visited-color': 'var(--md-purple-300, #ba68c8)',
281
+ '--jp-content-link-hover-color': 'var(--md-blue-400, #42a5f5)',
282
+ '--jp-content-font-family': "system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'",
283
+ '--jp-datagrid-font-size': '12px',
284
+ '--jp-datagrid-font-family': 'var(--jp-content-font-family)',
285
+ '--jp-code-font-size': '13px',
286
+ '--jp-code-line-height': '1.3077',
287
+ '--jp-code-padding': '5px',
288
+ '--jp-code-font-family-default': "menlo, consolas, 'DejaVu Sans Mono', monospace",
289
+ '--jp-code-font-family': 'var(--jp-code-font-family-default)',
290
+ '--jp-code-presentation-font-size': '16px',
291
+ '--jp-code-cursor-width0': '1.4px',
292
+ '--jp-code-cursor-width1': '2px',
293
+ '--jp-code-cursor-width2': '4px',
294
+ '--jp-layout-color0': '#111',
295
+ '--jp-layout-color1': 'var(--md-grey-900, #212121)',
296
+ '--jp-layout-color2': 'var(--md-grey-800, #424242)',
297
+ '--jp-layout-color3': 'var(--md-grey-700, #616161)',
298
+ '--jp-layout-color4': 'var(--md-grey-600, #757575)',
299
+ '--jp-inverse-layout-color0': 'white',
300
+ '--jp-inverse-layout-color1': 'white',
301
+ '--jp-inverse-layout-color2': 'var(--md-grey-200, #eee)',
302
+ '--jp-inverse-layout-color3': 'var(--md-grey-400, #bdbdbd)',
303
+ '--jp-inverse-layout-color4': 'var(--md-grey-600, #757575)',
304
+ '--jp-brand-color0': 'var(--md-blue-700, #1976d2)',
305
+ '--jp-brand-color1': 'var(--md-blue-500, #2196f3)',
306
+ '--jp-brand-color2': 'var(--md-blue-300, #64b5f6)',
307
+ '--jp-brand-color3': 'var(--md-blue-100, #bbdefb)',
308
+ '--jp-brand-color4': 'var(--md-blue-50, #e3f2fd)',
309
+ '--jp-accent-color0': 'var(--md-green-700, #388e3c)',
310
+ '--jp-accent-color1': 'var(--md-green-500, #4caf50)',
311
+ '--jp-accent-color2': 'var(--md-green-300, #81c784)',
312
+ '--jp-accent-color3': 'var(--md-green-100, #c8e6c9)',
313
+ '--jp-warn-color0': 'var(--md-orange-700, #f57c00)',
314
+ '--jp-warn-color1': 'var(--md-orange-500, #ff9800)',
315
+ '--jp-warn-color2': 'var(--md-orange-300, #ffb74d)',
316
+ '--jp-warn-color3': 'var(--md-orange-100, #ffe0b2)',
317
+ '--jp-error-color0': 'var(--md-red-700, #d32f2f)',
318
+ '--jp-error-color1': 'var(--md-red-500, #f44336)',
319
+ '--jp-error-color2': 'var(--md-red-300, #e57373)',
320
+ '--jp-error-color3': 'var(--md-red-100, #ffcdd2)',
321
+ '--jp-success-color0': 'var(--md-green-700, #388e3c)',
322
+ '--jp-success-color1': 'var(--md-green-500, #4caf50)',
323
+ '--jp-success-color2': 'var(--md-green-300, #81c784)',
324
+ '--jp-success-color3': 'var(--md-green-100, #c8e6c9)',
325
+ '--jp-info-color0': 'var(--md-cyan-700, #0097a7)',
326
+ '--jp-info-color1': 'var(--md-cyan-500, #00bcd4)',
327
+ '--jp-info-color2': 'var(--md-cyan-300, #4dd0e1)',
328
+ '--jp-info-color3': 'var(--md-cyan-100, #b2ebf2)',
329
+ '--jp-cell-padding': '5px',
330
+ '--jp-cell-collapser-width': '8px',
331
+ '--jp-cell-collapser-min-height': '20px',
332
+ '--jp-cell-collapser-not-active-hover-opacity': '0.6',
333
+ '--jp-cell-editor-background': 'var(--jp-layout-color1)',
334
+ '--jp-cell-editor-border-color': 'var(--md-grey-700, #616161)',
335
+ '--jp-cell-editor-box-shadow': 'inset 0 0 2px var(--md-blue-300, #64b5f6)',
336
+ '--jp-cell-editor-active-background': 'var(--jp-layout-color0)',
337
+ '--jp-cell-editor-active-border-color': 'var(--jp-brand-color1)',
338
+ '--jp-cell-prompt-width': '64px',
339
+ '--jp-cell-prompt-font-family': 'var(--jp-code-font-family-default)',
340
+ '--jp-cell-prompt-letter-spacing': '0',
341
+ '--jp-cell-prompt-opacity': '1',
342
+ '--jp-cell-prompt-not-active-opacity': '1',
343
+ '--jp-cell-prompt-not-active-font-color': 'var(--md-grey-300, #e0e0e0)',
344
+ '--jp-cell-inprompt-font-color': '#307fc1',
345
+ '--jp-cell-outprompt-font-color': '#bf5b3d',
346
+ '--jp-notebook-padding': '10px',
347
+ '--jp-notebook-select-background': 'var(--jp-layout-color1)',
348
+ '--jp-notebook-multiselected-color': 'rgba(33, 150, 243, 0.24)',
349
+ '--jp-notebook-scroll-padding': 'calc( 100% - var(--jp-code-font-size) * var(--jp-code-line-height) - var(--jp-code-padding) - var(--jp-cell-padding) - 1px )',
350
+ '--jp-editor-scroll-padding': 'calc( 100% - var(--jp-code-font-size) * var(--jp-code-line-height) - var(--jp-code-padding) - 1px )',
351
+ '--jp-rendermime-error-background': 'rgba(244, 67, 54, 0.28)',
352
+ '--jp-rendermime-table-row-background': 'var(--md-grey-900, #212121)',
353
+ '--jp-rendermime-table-row-hover-background': 'rgba(3, 169, 244, 0.2)',
354
+ '--jp-dialog-background': 'rgba(0, 0, 0, 0.6)',
355
+ '--jp-console-padding': '10px',
356
+ '--jp-toolbar-border-color': 'var(--jp-border-color2)',
357
+ '--jp-toolbar-micro-height': '8px',
358
+ '--jp-toolbar-background': 'var(--jp-layout-color1)',
359
+ '--jp-toolbar-box-shadow': '0 0 2px 0 rgba(0, 0, 0, 0.8)',
360
+ '--jp-toolbar-header-margin': '4px 4px 0 4px',
361
+ '--jp-toolbar-active-background': 'var(--jp-layout-color0)',
362
+ '--jp-statusbar-height': '24px',
363
+ '--jp-input-box-shadow': 'inset 0 0 2px var(--md-blue-300, #64b5f6)',
364
+ '--jp-input-active-background': 'var(--jp-layout-color0)',
365
+ '--jp-input-hover-background': 'var(--jp-layout-color2)',
366
+ '--jp-input-background': 'var(--md-grey-800, #424242)',
367
+ '--jp-input-border-color': 'var(--jp-inverse-border-color)',
368
+ '--jp-input-active-border-color': 'var(--jp-brand-color1)',
369
+ '--jp-input-active-box-shadow-color': 'rgba(19, 124, 189, 0.3)',
370
+ '--jp-editor-selected-background': 'var(--jp-layout-color2)',
371
+ '--jp-editor-selected-focused-background': 'rgba(33, 150, 243, 0.24)',
372
+ '--jp-editor-cursor-color': 'var(--jp-ui-font-color0)',
373
+ '--jp-mirror-editor-keyword-color': 'var(--md-green-500, #4caf50)',
374
+ '--jp-mirror-editor-atom-color': 'var(--md-blue-300, #64b5f6)',
375
+ '--jp-mirror-editor-number-color': 'var(--md-green-400, #66bb6a)',
376
+ '--jp-mirror-editor-def-color': 'var(--md-blue-600, #1e88e5)',
377
+ '--jp-mirror-editor-variable-color': 'var(--md-grey-300, #e0e0e0)',
378
+ '--jp-mirror-editor-variable-2-color': 'var(--md-blue-500, #2196f3)',
379
+ '--jp-mirror-editor-variable-3-color': 'var(--md-green-600, #43a047)',
380
+ '--jp-mirror-editor-punctuation-color': 'var(--md-blue-400, #42a5f5)',
381
+ '--jp-mirror-editor-property-color': 'var(--md-blue-400, #42a5f5)',
382
+ '--jp-mirror-editor-operator-color': '#d48fff',
383
+ '--jp-mirror-editor-comment-color': '#408080',
384
+ '--jp-mirror-editor-string-color': '#ff7070',
385
+ '--jp-mirror-editor-string-2-color': 'var(--md-purple-300, #ba68c8)',
386
+ '--jp-mirror-editor-meta-color': '#a2f',
387
+ '--jp-mirror-editor-qualifier-color': '#555',
388
+ '--jp-mirror-editor-builtin-color': 'var(--md-green-600, #43a047)',
389
+ '--jp-mirror-editor-bracket-color': '#997',
390
+ '--jp-mirror-editor-tag-color': 'var(--md-green-700, #388e3c)',
391
+ '--jp-mirror-editor-attribute-color': 'var(--md-blue-700, #1976d2)',
392
+ '--jp-mirror-editor-header-color': 'var(--md-blue-500, #2196f3)',
393
+ '--jp-mirror-editor-quote-color': 'var(--md-green-300, #81c784)',
394
+ '--jp-mirror-editor-link-color': 'var(--md-blue-700, #1976d2)',
395
+ '--jp-mirror-editor-error-color': '#f00',
396
+ '--jp-mirror-editor-hr-color': '#999',
397
+ '--jp-collaborator-color1': '#ad4a00',
398
+ '--jp-collaborator-color2': '#7b6a00',
399
+ '--jp-collaborator-color3': '#007e00',
400
+ '--jp-collaborator-color4': '#008772',
401
+ '--jp-collaborator-color5': '#0079b9',
402
+ '--jp-collaborator-color6': '#8b45c6',
403
+ '--jp-collaborator-color7': '#be208b',
404
+ '--jp-vega-background': 'var(--md-grey-400, #bdbdbd)',
405
+ '--jp-sidebar-min-width': '250px',
406
+ '--jp-search-selected-match-background-color': 'rgb(255, 225, 0)',
407
+ '--jp-search-selected-match-color': 'black',
408
+ '--jp-search-unselected-match-background-color': 'var( --jp-inverse-layout-color0 )',
409
+ '--jp-search-unselected-match-color': 'var(--jp-ui-inverse-font-color0)',
410
+ '--jp-scrollbar-background-color': '#3f4244',
411
+ '--jp-scrollbar-thumb-color': '104, 112, 114',
412
+ '--jp-scrollbar-endpad': '3px',
413
+ '--jp-scrollbar-thumb-margin': '3.5px',
414
+ '--jp-scrollbar-thumb-radius': '9px',
415
+ '--jp-icon-contrast-color0': 'var(--md-purple-600, #8e24aa)',
416
+ '--jp-icon-contrast-color1': 'var(--md-green-600, #43a047)',
417
+ '--jp-icon-contrast-color2': 'var(--md-pink-600, #d81b60)',
418
+ '--jp-icon-contrast-color3': 'var(--md-blue-600, #1e88e5)',
419
+ '--jp-accept-color-normal': 'var(--md-blue-700, #1976d2)',
420
+ '--jp-accept-color-hover': 'var(--md-blue-800, #1565c0)',
421
+ '--jp-accept-color-active': 'var(--md-blue-900, #0d47a1)',
422
+ '--jp-warn-color-normal': 'var(--md-red-700, #d32f2f)',
423
+ '--jp-warn-color-hover': 'var(--md-red-800, #c62828)',
424
+ '--jp-warn-color-active': 'var(--md-red-900, #b71c1c)',
425
+ '--jp-reject-color-normal': 'var(--md-grey-600, #757575)',
426
+ '--jp-reject-color-hover': 'var(--md-grey-700, #616161)',
427
+ '--jp-reject-color-active': 'var(--md-grey-800, #424242)',
428
+ '--jp-jupyter-icon-color': '#f37626',
429
+ '--jp-notebook-icon-color': '#f37626',
430
+ '--jp-json-icon-color': 'var(--md-orange-500, #ff9800)',
431
+ '--jp-console-icon-background-color': 'var(--md-blue-500, #2196f3)',
432
+ '--jp-console-icon-color': 'white',
433
+ '--jp-terminal-icon-background-color': 'var(--md-grey-200, #eee)',
434
+ '--jp-terminal-icon-color': 'var(--md-grey-800, #424242)',
435
+ '--jp-text-editor-icon-color': 'var(--md-grey-200, #eee)',
436
+ '--jp-inspector-icon-color': 'var(--md-grey-200, #eee)',
437
+ '--jp-switch-color': 'var(--md-grey-400, #bdbdbd)',
438
+ '--jp-switch-true-position-color': 'var(--md-orange-700, #f57c00)',
439
+ '--jp-focus-outline-color': '#38a0f5',
440
+ '--jp-focus-outline-width': '2px',
441
+ };
@@ -1,8 +1,16 @@
1
1
  import type { AppSpec } from '../../types/agentspecs';
2
- import type { A2ATeamConnection } from './a2aTeamFlow';
2
+ import { type A2ATeamConnection } from './a2aTeamFlow';
3
+ import type { ToolClass } from '../inspector/agentInspector';
3
4
  /**
4
5
  * The connections of an application, each with its server's name and mark
5
6
  * and its tools. A connection to a server the catalogue does not have is
6
7
  * left out: there is nothing to draw it with.
7
8
  */
8
9
  export declare function teamConnectionsOf(app: Pick<AppSpec, 'connections'>): A2ATeamConnection[];
10
+ /**
11
+ * Where a member's tool call comes from, for the Agent Inspector: a call to
12
+ * one of its connections is an MCP call, with the server's mark; any other
13
+ * is `fallback`'s (`classifyToolCall`, by the catalogues) or a tool its
14
+ * runtime runs (`write_notebook`).
15
+ */
16
+ export declare function teamToolClassifier(connections: A2ATeamConnection[], fallback?: (name: string, args?: Record<string, unknown>) => ToolClass): (name: string, args?: Record<string, unknown>) => ToolClass;
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import { MCP_SERVER_LIBRARY } from '../../specs/mcpServers';
14
14
  import { SERVER_ACTIONS } from '../../specs/actions';
15
+ import { connectionOfTool } from './a2aTeamFlow';
15
16
  /** A server reference without its version: `odoo-accounting:0.0.1` is `odoo-accounting`. */
16
17
  const idOf = (ref) => {
17
18
  const at = ref.lastIndexOf(':');
@@ -47,3 +48,22 @@ export function teamConnectionsOf(app) {
47
48
  }
48
49
  return connections;
49
50
  }
51
+ /**
52
+ * Where a member's tool call comes from, for the Agent Inspector: a call to
53
+ * one of its connections is an MCP call, with the server's mark; any other
54
+ * is `fallback`'s (`classifyToolCall`, by the catalogues) or a tool its
55
+ * runtime runs (`write_notebook`).
56
+ */
57
+ export function teamToolClassifier(connections, fallback) {
58
+ return (name, args) => {
59
+ const connection = connectionOfTool(name, connections);
60
+ if (connection) {
61
+ return {
62
+ source: 'mcp',
63
+ ...(connection.icon ? { icon: connection.icon } : {}),
64
+ ...(connection.emoji ? { emoji: connection.emoji } : {}),
65
+ };
66
+ }
67
+ return fallback?.(name, args) ?? { source: 'backend-tool' };
68
+ };
69
+ }
@@ -1,7 +1,8 @@
1
- import type { AssistantState } from '../../chat/assistant/state';
1
+ import type { AssistantState, BalloonHistoryMessage } from '../../chat/assistant/state';
2
2
  import { type BrowserModelOptions } from '../../runtimes/browser/model';
3
3
  import { type A2APeer, type A2APeerArtifact } from '../../runtimes/browser/a2aPeer';
4
4
  import type { AppSpec } from '../../types/agentspecs';
5
+ import type { AgentInspectorSink } from '../inspector/agentInspector';
5
6
  import { type A2ATeamCall, type A2ATeamConnection, type A2ATeamFlow } from './a2aTeamFlow';
6
7
  import { type BalloonToolLine } from '../../chat/assistant/toolLine';
7
8
  /** What one member's character does: its state, its balloon, and whether it was sent away. */
@@ -9,6 +10,8 @@ export type A2ATeamPersona = {
9
10
  state: AssistantState;
10
11
  /** What its balloon says. */
11
12
  saying?: string;
13
+ /** What it says, uncut, when `saying` was cut to fit: the balloon's *more*. */
14
+ full?: string;
12
15
  /** Whether the balloon shows without the pointer over it. */
13
16
  insist: boolean;
14
17
  away: boolean;
@@ -28,7 +31,7 @@ export type A2ATeamTurn = {
28
31
  };
29
32
  /** What a page that shows notebooks accepts: a notebook, and words in Markdown. */
30
33
  export declare const NOTEBOOK_AND_WORDS: readonly string[];
31
- /** What an exchange line calls what the peer gave: its words, and each of its artifacts. */
34
+ /** What the peer gave, in words: its words, and each of its artifacts. */
32
35
  export declare function answeredLine(artifacts: A2APeerArtifact[]): string;
33
36
  /** The latest notebook among what a peer gave, or none. */
34
37
  export declare function notebookAmong(artifacts: A2APeerArtifact[]): A2APeerArtifact | null;
@@ -54,6 +57,11 @@ export type UseA2ATeamOptions = {
54
57
  * words, and the formats it can show, such as a notebook. Unsaid, words alone.
55
58
  */
56
59
  accept?: readonly string[];
60
+ /**
61
+ * The Agent Inspector's sink: the entry's turns and its call to the peer
62
+ * are recorded there, and what the peer's events were made of.
63
+ */
64
+ inspector?: AgentInspectorSink | null;
57
65
  };
58
66
  export type A2ATeam = {
59
67
  entryPersona: A2ATeamPersona;
@@ -61,8 +69,13 @@ export type A2ATeam = {
61
69
  setEntryAway: (away: boolean) => void;
62
70
  setPeerAway: (away: boolean) => void;
63
71
  turns: A2ATeamTurn[];
64
- /** The exchange between the two, a line a step. */
65
- exchange: string[];
72
+ /** The entry's conversation, as its `history` balloon lists it. */
73
+ entryHistory: BalloonHistoryMessage[];
74
+ /**
75
+ * What the peer was asked, what it did (its tool lines) and what it
76
+ * answered, as its `history` balloon lists it.
77
+ */
78
+ peerHistory: BalloonHistoryMessage[];
66
79
  /** The peer's last answer, as it gave it. */
67
80
  report: string | null;
68
81
  /** What the peer gave besides words with its last answer, by media type. */