@tangle-network/sandbox-ui 0.104.0 → 0.105.0
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/dist/chat.d.ts +53 -48
- package/dist/{chunk-WYMAC3T3.js → chunk-4VLVVKQZ.js} +6 -2
- package/dist/{chunk-KEYPUGS3.js → chunk-7KB22BLB.js} +54 -1
- package/dist/{chunk-K5RMJOH6.js → chunk-NAWEV5UJ.js} +1 -1
- package/dist/hooks.d.ts +9 -2
- package/dist/hooks.js +1 -1
- package/dist/index.js +3 -3
- package/dist/terminal.d.ts +6 -1
- package/dist/terminal.js +2 -2
- package/dist/workbench.js +3 -3
- package/package.json +1 -1
package/dist/chat.d.ts
CHANGED
|
@@ -60,10 +60,9 @@ declare function ReasoningLevelPicker({ value, onChange, disabled, className, tr
|
|
|
60
60
|
/**
|
|
61
61
|
* Limits applied when staging files onto a composer.
|
|
62
62
|
*
|
|
63
|
-
* @
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* breaking release.
|
|
63
|
+
* Serves {@link AgentComposer}'s attachment lifecycle. `ChatComposer` in
|
|
64
|
+
* `@tangle-network/agent-app/web-react` stages files without a validation or
|
|
65
|
+
* retry step, so it has no equivalent.
|
|
67
66
|
*/
|
|
68
67
|
interface ComposerFileValidationConfig {
|
|
69
68
|
/** Reject any single file larger than this. */
|
|
@@ -81,10 +80,9 @@ interface ComposerFileValidationConfig {
|
|
|
81
80
|
}
|
|
82
81
|
/** A file that failed validation, paired with a human-readable reason.
|
|
83
82
|
*
|
|
84
|
-
* @
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* breaking release. */
|
|
83
|
+
* Serves {@link AgentComposer}'s attachment lifecycle. `ChatComposer` in
|
|
84
|
+
* `@tangle-network/agent-app/web-react` stages files without a validation or
|
|
85
|
+
* retry step, so it has no equivalent. */
|
|
88
86
|
interface ComposerFileRejection {
|
|
89
87
|
file: File;
|
|
90
88
|
reason: string;
|
|
@@ -94,10 +92,9 @@ interface ComposerFileRejection {
|
|
|
94
92
|
* grammar as the native `<input accept>` attribute. An undefined or empty
|
|
95
93
|
* `accept` accepts everything.
|
|
96
94
|
*
|
|
97
|
-
* @
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* breaking release.
|
|
95
|
+
* Serves {@link AgentComposer}'s attachment lifecycle. `ChatComposer` in
|
|
96
|
+
* `@tangle-network/agent-app/web-react` stages files without a validation or
|
|
97
|
+
* retry step, so it has no equivalent.
|
|
101
98
|
*/
|
|
102
99
|
declare function isAcceptedType(file: File, accept?: string): boolean;
|
|
103
100
|
/**
|
|
@@ -107,10 +104,9 @@ declare function isAcceptedType(file: File, accept?: string): boolean;
|
|
|
107
104
|
* file and the limit it broke. Pure data in, pure data out — no throwing,
|
|
108
105
|
* no console noise, so callers decide how to surface rejections.
|
|
109
106
|
*
|
|
110
|
-
* @
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* breaking release.
|
|
107
|
+
* Serves {@link AgentComposer}'s attachment lifecycle. `ChatComposer` in
|
|
108
|
+
* `@tangle-network/agent-app/web-react` stages files without a validation or
|
|
109
|
+
* retry step, so it has no equivalent.
|
|
114
110
|
*/
|
|
115
111
|
declare function validateComposerFiles(files: File[] | FileList, config: ComposerFileValidationConfig): {
|
|
116
112
|
accepted: File[];
|
|
@@ -120,9 +116,9 @@ declare function validateComposerFiles(files: File[] | FileList, config: Compose
|
|
|
120
116
|
/** A selectable item in the `@`-mention popover. Generic — file semantics live
|
|
121
117
|
* in the consuming app, not here.
|
|
122
118
|
*
|
|
123
|
-
*
|
|
124
|
-
* `@tangle-network/agent-app/web-react`
|
|
125
|
-
*
|
|
119
|
+
* Part of the {@link AgentComposer} API. `ChatComposer` in
|
|
120
|
+
* `@tangle-network/agent-app/web-react` has no equivalent — see
|
|
121
|
+
* {@link AgentComposer} for which composer fits a surface. */
|
|
126
122
|
interface MentionItem {
|
|
127
123
|
id: string;
|
|
128
124
|
label: string;
|
|
@@ -134,9 +130,9 @@ interface MentionItem {
|
|
|
134
130
|
* TipTap rich input that renders mentions as atomic pills; absent ⇒ exactly
|
|
135
131
|
* today's plain-textarea behavior. Data-agnostic: the app supplies items.
|
|
136
132
|
*
|
|
137
|
-
*
|
|
138
|
-
* `@tangle-network/agent-app/web-react`
|
|
139
|
-
*
|
|
133
|
+
* Part of the {@link AgentComposer} API. `ChatComposer` in
|
|
134
|
+
* `@tangle-network/agent-app/web-react` has no equivalent — see
|
|
135
|
+
* {@link AgentComposer} for which composer fits a surface.
|
|
140
136
|
*/
|
|
141
137
|
interface AgentComposerMention {
|
|
142
138
|
/** The character that opens the popover. Default "@". */
|
|
@@ -159,9 +155,9 @@ interface AgentComposerMention {
|
|
|
159
155
|
}
|
|
160
156
|
/** A staged attachment shown as a chip above the input.
|
|
161
157
|
*
|
|
162
|
-
*
|
|
163
|
-
* `@tangle-network/agent-app/web-react`
|
|
164
|
-
*
|
|
158
|
+
* Part of the {@link AgentComposer} API. `ChatComposer` in
|
|
159
|
+
* `@tangle-network/agent-app/web-react` has no equivalent — see
|
|
160
|
+
* {@link AgentComposer} for which composer fits a surface. */
|
|
165
161
|
interface ComposerFile {
|
|
166
162
|
id: string;
|
|
167
163
|
name: string;
|
|
@@ -181,9 +177,9 @@ interface ComposerFile {
|
|
|
181
177
|
}
|
|
182
178
|
/** Context the agent will see alongside the next message.
|
|
183
179
|
*
|
|
184
|
-
*
|
|
185
|
-
* `@tangle-network/agent-app/web-react`
|
|
186
|
-
*
|
|
180
|
+
* Part of the {@link AgentComposer} API. `ChatComposer` in
|
|
181
|
+
* `@tangle-network/agent-app/web-react` has no equivalent — see
|
|
182
|
+
* {@link AgentComposer} for which composer fits a surface. */
|
|
187
183
|
interface ComposerContextItem {
|
|
188
184
|
id: string;
|
|
189
185
|
label: string;
|
|
@@ -192,11 +188,11 @@ interface ComposerContextItem {
|
|
|
192
188
|
onRemove?: () => void;
|
|
193
189
|
}
|
|
194
190
|
/**
|
|
195
|
-
* Props of
|
|
191
|
+
* Props of {@link AgentComposer}.
|
|
196
192
|
*
|
|
197
|
-
*
|
|
198
|
-
* `@tangle-network/agent-app/web-react`
|
|
199
|
-
*
|
|
193
|
+
* Part of the {@link AgentComposer} API. `ChatComposer` in
|
|
194
|
+
* `@tangle-network/agent-app/web-react` has no equivalent — see
|
|
195
|
+
* {@link AgentComposer} for which composer fits a surface.
|
|
200
196
|
*/
|
|
201
197
|
interface AgentComposerProps {
|
|
202
198
|
/** Composer text (controlled). */
|
|
@@ -288,25 +284,35 @@ interface AgentComposerProps {
|
|
|
288
284
|
autoFocus?: boolean;
|
|
289
285
|
}
|
|
290
286
|
/**
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
* `sendVariant="icon"`. Plan a port, not a rename: 14 of the 28 props here
|
|
295
|
-
* have no same-named counterpart there, among them `contextItems`, `mention`,
|
|
296
|
-
* `trailing`, `maxHeight`, `minRows`, and `autoFocus`. The control model also
|
|
297
|
-
* differs — this component requires `value` and `onChange` and calls
|
|
298
|
-
* `onSubmit` with no arguments, while `ChatComposer` can own its draft and
|
|
299
|
-
* gives the message to a refusable `onSend`. This slot-shell is frozen and
|
|
300
|
-
* will be removed at sandbox-ui's next breaking release.
|
|
287
|
+
* Sibling of `ChatComposer` in `@tangle-network/agent-app/web-react`, not a
|
|
288
|
+
* predecessor of it. The two composers cover different jobs, and neither is a
|
|
289
|
+
* superset of the other, so pick by the features a surface needs.
|
|
301
290
|
*
|
|
302
|
-
*
|
|
291
|
+
* Reach for `AgentComposer` when the surface needs `@`-mentions (`mention`,
|
|
292
|
+
* backed by a lazily loaded rich-text input that renders mention pills),
|
|
293
|
+
* `contextItems`, or the full attachment lifecycle — `attachments` plus
|
|
294
|
+
* `onRejectFiles` and `onRetryFile`. It also owns `autoFocus`,
|
|
295
|
+
* `canSubmitAttachmentsOnly`, `trailing`, `maxHeight`, and `minRows`.
|
|
296
|
+
*
|
|
297
|
+
* Reach for `ChatComposer` when the surface is a plain send box. It owns
|
|
298
|
+
* send-failure recovery (`onSendFailed`, `sendFailureMessage`), one-shot
|
|
299
|
+
* prefill (`seed`), `controlsPlacement`, `floating`, `sendVariant`,
|
|
300
|
+
* parts-aware sends (`onSendParts`), and an uncontrolled mode
|
|
301
|
+
* (`initialValue`) — none of which exist here.
|
|
302
|
+
*
|
|
303
|
+
* Moving between them is a port, not a rename: the control models differ. This
|
|
304
|
+
* component requires `value` and `onChange` and calls `onSubmit` with no
|
|
305
|
+
* arguments, while `ChatComposer` can own its draft and hands the message to a
|
|
306
|
+
* refusable `onSend`.
|
|
307
|
+
*
|
|
308
|
+
* The input itself: one rounded surface holding an auto-growing
|
|
303
309
|
* textarea and a bottom row that runs left → right — attach buttons, the
|
|
304
310
|
* control strip (supplied via the required `controls` prop), trailing slot,
|
|
305
311
|
* and the send button on the far right. The strip is explicit: the canonical
|
|
306
312
|
* pickers are `ModelPicker` / `EffortPicker` / `AgentSessionControls` from
|
|
307
313
|
* `@tangle-network/agent-app/web-react` — this component only owns the slot.
|
|
308
314
|
*
|
|
309
|
-
* Opt-in extras
|
|
315
|
+
* Opt-in extras cover what apps otherwise hand-roll:
|
|
310
316
|
* file/folder attachments with drag-and-drop + chips + clipboard paste
|
|
311
317
|
* (`onAttach` also gates pasting files onto the textarea, auto-naming
|
|
312
318
|
* generic clipboard image blobs `pasted-image-<n>.<ext>`), a streaming Stop
|
|
@@ -323,10 +329,9 @@ declare function AgentComposer({ value, onChange, onSubmit, placeholder, disable
|
|
|
323
329
|
* importing it never pulls the lazily-loaded editor chunk into a consumer's
|
|
324
330
|
* bundle.
|
|
325
331
|
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
* sandbox-ui's next breaking release.
|
|
332
|
+
* Mention-pill contract of {@link AgentComposer}'s mention feature.
|
|
333
|
+
* `ChatComposer` in `@tangle-network/agent-app/web-react` has no mention
|
|
334
|
+
* support, so it has no equivalent.
|
|
330
335
|
*/
|
|
331
336
|
declare const MENTION_PILL_CLASS: string;
|
|
332
337
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
usePtySession
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7KB22BLB.js";
|
|
4
4
|
|
|
5
5
|
// src/terminal/terminal-view.tsx
|
|
6
6
|
import "@xterm/xterm/css/xterm.css";
|
|
@@ -41,6 +41,8 @@ function TerminalView({
|
|
|
41
41
|
subtitle = "Connected to PTY session",
|
|
42
42
|
isActive = true,
|
|
43
43
|
connectionId,
|
|
44
|
+
incarnationId,
|
|
45
|
+
control,
|
|
44
46
|
fontSize = 13
|
|
45
47
|
}) {
|
|
46
48
|
const resolvedTheme = useMemo(
|
|
@@ -71,7 +73,9 @@ function TerminalView({
|
|
|
71
73
|
apiUrl,
|
|
72
74
|
token,
|
|
73
75
|
onData,
|
|
74
|
-
connectionId
|
|
76
|
+
connectionId,
|
|
77
|
+
incarnationId,
|
|
78
|
+
control
|
|
75
79
|
});
|
|
76
80
|
useEffect(() => {
|
|
77
81
|
if (!containerRef.current) return;
|
|
@@ -37,7 +37,14 @@ function createTerminalConnectionId() {
|
|
|
37
37
|
}
|
|
38
38
|
return `terminal-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
39
39
|
}
|
|
40
|
-
function usePtySession({
|
|
40
|
+
function usePtySession({
|
|
41
|
+
apiUrl,
|
|
42
|
+
token,
|
|
43
|
+
onData,
|
|
44
|
+
connectionId: providedConnectionId,
|
|
45
|
+
incarnationId,
|
|
46
|
+
control
|
|
47
|
+
}) {
|
|
41
48
|
const [isConnected, setIsConnected] = useState(false);
|
|
42
49
|
const [error, setError] = useState(null);
|
|
43
50
|
const sessionIdRef = useRef(null);
|
|
@@ -48,6 +55,11 @@ function usePtySession({ apiUrl, token, onData, connectionId: providedConnection
|
|
|
48
55
|
const mountedRef = useRef(true);
|
|
49
56
|
const onDataRef = useRef(onData);
|
|
50
57
|
const tokenRef = useRef(token);
|
|
58
|
+
const incarnationIdRef = useRef(incarnationId);
|
|
59
|
+
const controlRef = useRef(control);
|
|
60
|
+
const exactAttachRequiredRef = useRef(
|
|
61
|
+
incarnationId !== void 0 || control !== void 0
|
|
62
|
+
);
|
|
51
63
|
const connectStreamRef = useRef(null);
|
|
52
64
|
const reconnectRef = useRef(null);
|
|
53
65
|
const shouldDeleteSessionRef = useRef(false);
|
|
@@ -177,8 +189,17 @@ function usePtySession({ apiUrl, token, onData, connectionId: providedConnection
|
|
|
177
189
|
pendingWsRef.current = null;
|
|
178
190
|
if (options.initOnOpen) {
|
|
179
191
|
try {
|
|
192
|
+
const initIncarnationId = incarnationIdRef.current;
|
|
193
|
+
const initControl = controlRef.current;
|
|
194
|
+
if (exactAttachRequiredRef.current && (!initIncarnationId || !initControl)) {
|
|
195
|
+
throw new Error(
|
|
196
|
+
"Interactive terminal identity is incomplete"
|
|
197
|
+
);
|
|
198
|
+
}
|
|
180
199
|
ws.send(JSON.stringify({
|
|
181
200
|
type: "init",
|
|
201
|
+
...initIncarnationId !== void 0 ? { incarnationId: initIncarnationId } : {},
|
|
202
|
+
...initControl !== void 0 ? { control: initControl } : {},
|
|
182
203
|
cols: colsRef.current,
|
|
183
204
|
rows: rowsRef.current
|
|
184
205
|
}));
|
|
@@ -267,6 +288,11 @@ function usePtySession({ apiUrl, token, onData, connectionId: providedConnection
|
|
|
267
288
|
});
|
|
268
289
|
}, [apiUrl]);
|
|
269
290
|
const connectStream = useCallback(async (sessionId) => {
|
|
291
|
+
if (exactAttachRequiredRef.current) {
|
|
292
|
+
throw new Error(
|
|
293
|
+
"Interactive terminal requires an exact WebSocket attachment"
|
|
294
|
+
);
|
|
295
|
+
}
|
|
270
296
|
abortStream();
|
|
271
297
|
setError(null);
|
|
272
298
|
try {
|
|
@@ -354,12 +380,19 @@ function usePtySession({ apiUrl, token, onData, connectionId: providedConnection
|
|
|
354
380
|
}, [apiUrl, abortStream]);
|
|
355
381
|
onDataRef.current = onData;
|
|
356
382
|
tokenRef.current = token;
|
|
383
|
+
incarnationIdRef.current = incarnationId;
|
|
384
|
+
controlRef.current = control;
|
|
385
|
+
exactAttachRequiredRef.current = incarnationId !== void 0 || control !== void 0;
|
|
357
386
|
connectStreamRef.current = connectStream;
|
|
358
387
|
const connect = useCallback(async () => {
|
|
359
388
|
cleanup();
|
|
360
389
|
const myGen = ++connectGenRef.current;
|
|
361
390
|
retryCountRef.current = 0;
|
|
362
391
|
setError(null);
|
|
392
|
+
if (exactAttachRequiredRef.current && (!incarnationIdRef.current || !controlRef.current)) {
|
|
393
|
+
setError("Interactive terminal identity is incomplete");
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
363
396
|
try {
|
|
364
397
|
const connectionId = providedConnectionId ?? createTerminalConnectionId();
|
|
365
398
|
if (!mountedRef.current) return;
|
|
@@ -373,6 +406,11 @@ function usePtySession({ apiUrl, token, onData, connectionId: providedConnection
|
|
|
373
406
|
if (directWsOk) {
|
|
374
407
|
return;
|
|
375
408
|
}
|
|
409
|
+
if (exactAttachRequiredRef.current) {
|
|
410
|
+
throw new Error(
|
|
411
|
+
"Interactive terminal WebSocket attach failed; exact identity was not accepted"
|
|
412
|
+
);
|
|
413
|
+
}
|
|
376
414
|
sessionIdRef.current = null;
|
|
377
415
|
transportReadyRef.current = false;
|
|
378
416
|
if (inputAbortRef.current) {
|
|
@@ -434,6 +472,11 @@ function usePtySession({ apiUrl, token, onData, connectionId: providedConnection
|
|
|
434
472
|
console.warn("Terminal resize over WS failed; falling back to HTTP", err);
|
|
435
473
|
}
|
|
436
474
|
}
|
|
475
|
+
if (exactAttachRequiredRef.current) {
|
|
476
|
+
throw new Error(
|
|
477
|
+
"Interactive terminal is not attached with its exact identity"
|
|
478
|
+
);
|
|
479
|
+
}
|
|
437
480
|
try {
|
|
438
481
|
const res = await fetch(`${apiUrl}/terminals/${sid}`, {
|
|
439
482
|
method: "PATCH",
|
|
@@ -469,6 +512,16 @@ function usePtySession({ apiUrl, token, onData, connectionId: providedConnection
|
|
|
469
512
|
}
|
|
470
513
|
continue;
|
|
471
514
|
}
|
|
515
|
+
if (exactAttachRequiredRef.current) {
|
|
516
|
+
for (const w of batch.waiters) {
|
|
517
|
+
w.reject(
|
|
518
|
+
new Error(
|
|
519
|
+
"Interactive terminal is not attached with its exact identity"
|
|
520
|
+
)
|
|
521
|
+
);
|
|
522
|
+
}
|
|
523
|
+
continue;
|
|
524
|
+
}
|
|
472
525
|
try {
|
|
473
526
|
const res = await fetch(`${apiUrl}/terminals/${sid}/input`, {
|
|
474
527
|
method: "POST",
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export { AgentStreamEvent, AppendUserMessageOptions, ApplySdkEventOptions, AuthUser, AutomationStreamEvent, BeginAssistantMessageOptions, BotStreamEvent, CompleteAssistantMessageOptions, ConnectionState, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, SSEEvent, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, TaskStreamEvent, TerminalStreamEvent, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, createAuthFetcher, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useLiveTime, useRealtimeSession, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useToolCallStream } from '@tangle-network/ui/hooks';
|
|
2
|
+
import { AgentInteractiveSessionControlClaim } from '@tangle-network/agent-interface';
|
|
2
3
|
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
3
4
|
import { Session } from './types.js';
|
|
4
5
|
export { e as SESSION_STREAM_RECONNECT_DELAY_MS, f as SendMessageOptions, S as SessionInfo, g as SessionStreamError, a as SidecarAuth, U as UseSessionStreamOptions, b as UseSessionStreamResult, c as UseSidecarAuthOptions, u as useSessionStream, d as useSidecarAuth } from './sdk-hooks-Cjt_Wq7g.js';
|
|
5
6
|
import '@tangle-network/ui/types';
|
|
6
7
|
import '@tangle-network/ui/stores';
|
|
7
8
|
import '@tangle-network/ui/sdk-hooks';
|
|
8
|
-
import '@tangle-network/agent-interface';
|
|
9
9
|
|
|
10
10
|
interface UsePtySessionOptions {
|
|
11
11
|
/** Base URL of the sidecar (e.g. "http://localhost:9100"). */
|
|
@@ -22,6 +22,13 @@ interface UsePtySessionOptions {
|
|
|
22
22
|
* so the session does not survive a remount.
|
|
23
23
|
*/
|
|
24
24
|
connectionId?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Exact incarnation issued for an interactive agent session. When present,
|
|
27
|
+
* it must be sent with `control` on every WebSocket init frame.
|
|
28
|
+
*/
|
|
29
|
+
incarnationId?: string;
|
|
30
|
+
/** Write claim for the exact interactive agent session. */
|
|
31
|
+
control?: AgentInteractiveSessionControlClaim;
|
|
25
32
|
}
|
|
26
33
|
interface UsePtySessionReturn {
|
|
27
34
|
/** Whether the underlying transport is connected and receiving data. */
|
|
@@ -58,7 +65,7 @@ interface UsePtySessionReturn {
|
|
|
58
65
|
* preserved as a fallback so the hook keeps working against
|
|
59
66
|
* deployments that have not yet shipped the WS endpoint.
|
|
60
67
|
*/
|
|
61
|
-
declare function usePtySession({ apiUrl, token, onData, connectionId: providedConnectionId }: UsePtySessionOptions): UsePtySessionReturn;
|
|
68
|
+
declare function usePtySession({ apiUrl, token, onData, connectionId: providedConnectionId, incarnationId, control, }: UsePtySessionOptions): UsePtySessionReturn;
|
|
62
69
|
|
|
63
70
|
/**
|
|
64
71
|
* Sandbox-level telemetry collected by the sidecar from cgroup v2
|
package/dist/hooks.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -153,7 +153,7 @@ import {
|
|
|
153
153
|
buildUnifiedPatch,
|
|
154
154
|
computeDiffStats,
|
|
155
155
|
resolveLanguage
|
|
156
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-NAWEV5UJ.js";
|
|
157
157
|
import {
|
|
158
158
|
FileArtifactPane,
|
|
159
159
|
FilePreview,
|
|
@@ -238,10 +238,10 @@ import {
|
|
|
238
238
|
UsageChart,
|
|
239
239
|
formatPrice
|
|
240
240
|
} from "./chunk-OMUIPJQZ.js";
|
|
241
|
-
import "./chunk-
|
|
241
|
+
import "./chunk-4VLVVKQZ.js";
|
|
242
242
|
import {
|
|
243
243
|
usePtySession
|
|
244
|
-
} from "./chunk-
|
|
244
|
+
} from "./chunk-7KB22BLB.js";
|
|
245
245
|
import {
|
|
246
246
|
Avatar,
|
|
247
247
|
AvatarFallback,
|
package/dist/terminal.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { AgentInteractiveSessionControlClaim } from '@tangle-network/agent-interface';
|
|
2
3
|
|
|
3
4
|
interface TerminalTheme {
|
|
4
5
|
background: string;
|
|
@@ -52,8 +53,12 @@ interface TerminalViewProps {
|
|
|
52
53
|
* session per mount.
|
|
53
54
|
*/
|
|
54
55
|
connectionId?: string;
|
|
56
|
+
/** Exact incarnation issued for an interactive agent session. */
|
|
57
|
+
incarnationId?: string;
|
|
58
|
+
/** Write claim for the exact interactive agent session. */
|
|
59
|
+
control?: AgentInteractiveSessionControlClaim;
|
|
55
60
|
}
|
|
56
61
|
declare const DEFAULT_TERMINAL_THEME: TerminalTheme;
|
|
57
|
-
declare function TerminalView({ apiUrl, token, theme, title, subtitle, isActive, connectionId, fontSize, }: TerminalViewProps): React.JSX.Element;
|
|
62
|
+
declare function TerminalView({ apiUrl, token, theme, title, subtitle, isActive, connectionId, incarnationId, control, fontSize, }: TerminalViewProps): React.JSX.Element;
|
|
58
63
|
|
|
59
64
|
export { DEFAULT_TERMINAL_THEME, type TerminalTheme, TerminalView, type TerminalViewProps };
|
package/dist/terminal.js
CHANGED
package/dist/workbench.js
CHANGED
|
@@ -12,12 +12,12 @@ import {
|
|
|
12
12
|
buildUnifiedPatch,
|
|
13
13
|
computeDiffStats,
|
|
14
14
|
resolveLanguage
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-NAWEV5UJ.js";
|
|
16
16
|
import "./chunk-PZVUIUUW.js";
|
|
17
17
|
import "./chunk-K4Q4E7D7.js";
|
|
18
18
|
import "./chunk-OMUIPJQZ.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-4VLVVKQZ.js";
|
|
20
|
+
import "./chunk-7KB22BLB.js";
|
|
21
21
|
import "./chunk-2XPJ2XF7.js";
|
|
22
22
|
import "./chunk-RQZRXKMR.js";
|
|
23
23
|
import "./chunk-BGVEHENC.js";
|
package/package.json
CHANGED