@agentuity/core 3.0.0-alpha.6 → 3.0.0-beta.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/AGENTS.md +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/services/coder/api-reference.d.ts.map +1 -1
- package/dist/services/coder/api-reference.js +30 -1
- package/dist/services/coder/api-reference.js.map +1 -1
- package/dist/services/coder/client.d.ts +17 -1
- package/dist/services/coder/client.d.ts.map +1 -1
- package/dist/services/coder/client.js +30 -2
- package/dist/services/coder/client.js.map +1 -1
- package/dist/services/coder/index.d.ts +2 -2
- package/dist/services/coder/index.d.ts.map +1 -1
- package/dist/services/coder/index.js +1 -1
- package/dist/services/coder/index.js.map +1 -1
- package/dist/services/coder/protocol.d.ts +186 -5
- package/dist/services/coder/protocol.d.ts.map +1 -1
- package/dist/services/coder/protocol.js +125 -0
- package/dist/services/coder/protocol.js.map +1 -1
- package/dist/services/coder/sessions.d.ts +22 -0
- package/dist/services/coder/sessions.d.ts.map +1 -1
- package/dist/services/coder/sessions.js +10 -1
- package/dist/services/coder/sessions.js.map +1 -1
- package/dist/services/coder/sse.d.ts +2 -2
- package/dist/services/coder/sse.d.ts.map +1 -1
- package/dist/services/coder/sse.js +290 -178
- package/dist/services/coder/sse.js.map +1 -1
- package/dist/services/coder/types.d.ts +627 -0
- package/dist/services/coder/types.d.ts.map +1 -1
- package/dist/services/coder/types.js +221 -1
- package/dist/services/coder/types.js.map +1 -1
- package/dist/services/coder/workspaces.d.ts +11 -1
- package/dist/services/coder/workspaces.d.ts.map +1 -1
- package/dist/services/coder/workspaces.js +34 -1
- package/dist/services/coder/workspaces.js.map +1 -1
- package/dist/services/index.d.ts +0 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +0 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/keyvalue/service.d.ts +9 -3
- package/dist/services/keyvalue/service.d.ts.map +1 -1
- package/dist/services/keyvalue/service.js +6 -3
- package/dist/services/keyvalue/service.js.map +1 -1
- package/dist/services/sandbox/api-reference.js +8 -8
- package/dist/services/sandbox/api-reference.js.map +1 -1
- package/dist/services/sandbox/client.d.ts +3 -2
- package/dist/services/sandbox/client.d.ts.map +1 -1
- package/dist/services/sandbox/client.js.map +1 -1
- package/dist/services/sandbox/create.d.ts +5 -0
- package/dist/services/sandbox/create.d.ts.map +1 -1
- package/dist/services/sandbox/create.js +8 -0
- package/dist/services/sandbox/create.js.map +1 -1
- package/dist/services/sandbox/get.d.ts +8 -4
- package/dist/services/sandbox/get.d.ts.map +1 -1
- package/dist/services/sandbox/get.js +28 -3
- package/dist/services/sandbox/get.js.map +1 -1
- package/dist/services/sandbox/getStatus.d.ts +3 -0
- package/dist/services/sandbox/getStatus.d.ts.map +1 -1
- package/dist/services/sandbox/getStatus.js +19 -2
- package/dist/services/sandbox/getStatus.js.map +1 -1
- package/dist/services/sandbox/index.d.ts +1 -1
- package/dist/services/sandbox/index.d.ts.map +1 -1
- package/dist/services/sandbox/list.d.ts +3 -0
- package/dist/services/sandbox/list.d.ts.map +1 -1
- package/dist/services/sandbox/list.js +5 -0
- package/dist/services/sandbox/list.js.map +1 -1
- package/dist/services/sandbox/pause.d.ts +17 -1
- package/dist/services/sandbox/pause.d.ts.map +1 -1
- package/dist/services/sandbox/pause.js +21 -3
- package/dist/services/sandbox/pause.js.map +1 -1
- package/dist/services/sandbox/run.d.ts +3 -2
- package/dist/services/sandbox/run.d.ts.map +1 -1
- package/dist/services/sandbox/run.js +244 -84
- package/dist/services/sandbox/run.js.map +1 -1
- package/dist/services/sandbox/types.d.ts +11 -4
- package/dist/services/sandbox/types.d.ts.map +1 -1
- package/dist/services/sandbox/types.js +12 -0
- package/dist/services/sandbox/types.js.map +1 -1
- package/dist/services/stream/namespaces.d.ts +2 -2
- package/dist/services/stream/namespaces.js +2 -2
- package/dist/services/stream/namespaces.js.map +1 -1
- package/dist/services/vector/service.d.ts +11 -11
- package/dist/services/vector/service.d.ts.map +1 -1
- package/dist/services/vector/service.js.map +1 -1
- package/package.json +3 -17
- package/src/index.ts +0 -15
- package/src/services/coder/api-reference.ts +31 -0
- package/src/services/coder/client.ts +46 -0
- package/src/services/coder/index.ts +3 -0
- package/src/services/coder/protocol.ts +133 -0
- package/src/services/coder/sessions.ts +26 -0
- package/src/services/coder/sse.ts +343 -184
- package/src/services/coder/types.ts +273 -1
- package/src/services/coder/workspaces.ts +74 -0
- package/src/services/index.ts +0 -2
- package/src/services/keyvalue/service.ts +16 -7
- package/src/services/sandbox/api-reference.ts +8 -8
- package/src/services/sandbox/client.ts +4 -4
- package/src/services/sandbox/create.ts +10 -0
- package/src/services/sandbox/get.ts +32 -3
- package/src/services/sandbox/getStatus.ts +23 -2
- package/src/services/sandbox/index.ts +1 -1
- package/src/services/sandbox/list.ts +5 -0
- package/src/services/sandbox/pause.ts +38 -4
- package/src/services/sandbox/run.ts +352 -105
- package/src/services/sandbox/types.ts +17 -2
- package/src/services/stream/namespaces.ts +2 -2
- package/src/services/vector/service.ts +11 -21
- package/dist/services/auth/index.d.ts +0 -7
- package/dist/services/auth/index.d.ts.map +0 -1
- package/dist/services/auth/index.js +0 -7
- package/dist/services/auth/index.js.map +0 -1
- package/dist/services/auth/types.d.ts +0 -192
- package/dist/services/auth/types.d.ts.map +0 -1
- package/dist/services/auth/types.js +0 -11
- package/dist/services/auth/types.js.map +0 -1
- package/dist/services/eval/api-reference.d.ts +0 -4
- package/dist/services/eval/api-reference.d.ts.map +0 -1
- package/dist/services/eval/api-reference.js +0 -121
- package/dist/services/eval/api-reference.js.map +0 -1
- package/dist/services/eval/events.d.ts +0 -93
- package/dist/services/eval/events.d.ts.map +0 -1
- package/dist/services/eval/events.js +0 -24
- package/dist/services/eval/events.js.map +0 -1
- package/dist/services/eval/get.d.ts +0 -36
- package/dist/services/eval/get.d.ts.map +0 -1
- package/dist/services/eval/get.js +0 -23
- package/dist/services/eval/get.js.map +0 -1
- package/dist/services/eval/index.d.ts +0 -6
- package/dist/services/eval/index.d.ts.map +0 -1
- package/dist/services/eval/index.js +0 -6
- package/dist/services/eval/index.js.map +0 -1
- package/dist/services/eval/list.d.ts +0 -50
- package/dist/services/eval/list.d.ts.map +0 -1
- package/dist/services/eval/list.js +0 -32
- package/dist/services/eval/list.js.map +0 -1
- package/dist/services/eval/run-get.d.ts +0 -48
- package/dist/services/eval/run-get.d.ts.map +0 -1
- package/dist/services/eval/run-get.js +0 -29
- package/dist/services/eval/run-get.js.map +0 -1
- package/dist/services/eval/run-list.d.ts +0 -70
- package/dist/services/eval/run-list.d.ts.map +0 -1
- package/dist/services/eval/run-list.js +0 -42
- package/dist/services/eval/run-list.js.map +0 -1
- package/dist/webrtc.d.ts +0 -243
- package/dist/webrtc.d.ts.map +0 -1
- package/dist/webrtc.js +0 -5
- package/dist/webrtc.js.map +0 -1
- package/dist/workbench-config.d.ts +0 -62
- package/dist/workbench-config.d.ts.map +0 -1
- package/dist/workbench-config.js +0 -58
- package/dist/workbench-config.js.map +0 -1
- package/dist/workbench.d.ts +0 -2
- package/dist/workbench.d.ts.map +0 -1
- package/dist/workbench.js +0 -2
- package/dist/workbench.js.map +0 -1
- package/src/services/auth/index.ts +0 -19
- package/src/services/auth/types.ts +0 -223
- package/src/services/eval/api-reference.ts +0 -124
- package/src/services/eval/events.ts +0 -92
- package/src/services/eval/get.ts +0 -33
- package/src/services/eval/index.ts +0 -29
- package/src/services/eval/list.ts +0 -49
- package/src/services/eval/run-get.ts +0 -39
- package/src/services/eval/run-list.ts +0 -59
- package/src/webrtc.ts +0 -259
- package/src/workbench-config.ts +0 -79
- package/src/workbench.ts +0 -1
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { type APIClient, APIResponseSchema } from '../api.ts';
|
|
3
|
-
|
|
4
|
-
export const EvaluationSchema = z.object({
|
|
5
|
-
id: z.string().describe('Evaluation ID'),
|
|
6
|
-
name: z.string().describe('Evaluation name'),
|
|
7
|
-
description: z.string().nullable().describe('Evaluation description'),
|
|
8
|
-
identifier: z.string().nullable().describe('Stable evaluation identifier'),
|
|
9
|
-
agentIdentifier: z.string().describe('Agent identifier'),
|
|
10
|
-
projectId: z.string().describe('Project ID'),
|
|
11
|
-
devmode: z.boolean().describe('Whether this is a devmode evaluation'),
|
|
12
|
-
createdAt: z.string().describe('Creation timestamp'),
|
|
13
|
-
updatedAt: z.string().describe('Last updated timestamp'),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
export const EvalListResponseData = z.array(EvaluationSchema);
|
|
17
|
-
export const EvalListResponseSchema = APIResponseSchema(EvalListResponseData);
|
|
18
|
-
|
|
19
|
-
export type Evaluation = z.infer<typeof EvaluationSchema>;
|
|
20
|
-
export type EvaluationListRequest = {
|
|
21
|
-
projectId?: string;
|
|
22
|
-
agentId?: string;
|
|
23
|
-
orgId?: string;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export async function evalList(
|
|
27
|
-
client: APIClient,
|
|
28
|
-
request: EvaluationListRequest = {}
|
|
29
|
-
): Promise<Evaluation[]> {
|
|
30
|
-
const params = new URLSearchParams();
|
|
31
|
-
if (request.orgId) params.set('orgId', request.orgId);
|
|
32
|
-
if (request.projectId) params.set('projectId', request.projectId);
|
|
33
|
-
if (request.agentId) params.set('agentId', request.agentId);
|
|
34
|
-
|
|
35
|
-
const queryString = params.toString();
|
|
36
|
-
const url = `/cli/eval${queryString ? `?${queryString}` : ''}`;
|
|
37
|
-
|
|
38
|
-
const resp = await client.request<z.infer<typeof EvalListResponseSchema>>(
|
|
39
|
-
'GET',
|
|
40
|
-
url,
|
|
41
|
-
EvalListResponseSchema
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
if (resp.success) {
|
|
45
|
-
return resp.data;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
throw new Error(resp.message || 'Failed to list evaluations');
|
|
49
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { type APIClient, APIResponseSchema } from '../api.ts';
|
|
3
|
-
|
|
4
|
-
export const EvalRunDetailSchema = z.object({
|
|
5
|
-
id: z.string().describe('Eval run ID'),
|
|
6
|
-
sessionId: z.string().describe('Session ID'),
|
|
7
|
-
evalId: z.string().describe('Evaluation record ID'),
|
|
8
|
-
evalIdentifier: z.string().nullable().describe('Stable evaluation identifier'),
|
|
9
|
-
evalName: z.string().nullable().describe('Evaluation name'),
|
|
10
|
-
agentIdentifier: z.string().nullable().describe('Agent identifier'),
|
|
11
|
-
projectId: z.string().describe('Project ID'),
|
|
12
|
-
orgId: z.string().describe('Organization ID'),
|
|
13
|
-
deploymentId: z.string().nullable().describe('Deployment ID'),
|
|
14
|
-
devmode: z.boolean().describe('Whether this is a devmode run'),
|
|
15
|
-
pending: z.boolean().describe('Whether the eval run is pending'),
|
|
16
|
-
success: z.boolean().describe('Whether the eval run succeeded'),
|
|
17
|
-
error: z.string().nullable().describe('Error message if failed'),
|
|
18
|
-
result: z.any().nullable().describe('Eval run result'),
|
|
19
|
-
createdAt: z.string().describe('Creation timestamp'),
|
|
20
|
-
updatedAt: z.string().describe('Last updated timestamp'),
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
export const EvalRunGetResponseSchema = APIResponseSchema(EvalRunDetailSchema);
|
|
24
|
-
|
|
25
|
-
export type EvalRunDetail = z.infer<typeof EvalRunDetailSchema>;
|
|
26
|
-
|
|
27
|
-
export async function evalRunGet(client: APIClient, id: string): Promise<EvalRunDetail> {
|
|
28
|
-
const resp = await client.request<z.infer<typeof EvalRunGetResponseSchema>>(
|
|
29
|
-
'GET',
|
|
30
|
-
`/cli/eval-run/${encodeURIComponent(id)}`,
|
|
31
|
-
EvalRunGetResponseSchema
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
if (resp.success) {
|
|
35
|
-
return resp.data;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
throw new Error(resp.message || 'Failed to get eval run');
|
|
39
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { type APIClient, APIResponseSchema } from '../api.ts';
|
|
3
|
-
|
|
4
|
-
export const EvalRunSchema = z.object({
|
|
5
|
-
id: z.string().describe('Eval run ID'),
|
|
6
|
-
sessionId: z.string().describe('Session ID'),
|
|
7
|
-
evalId: z.string().describe('Evaluation record ID'),
|
|
8
|
-
evalIdentifier: z.string().nullable().describe('Stable evaluation identifier'),
|
|
9
|
-
evalName: z.string().nullable().describe('Evaluation name'),
|
|
10
|
-
agentIdentifier: z.string().nullable().describe('Agent identifier'),
|
|
11
|
-
projectId: z.string().describe('Project ID'),
|
|
12
|
-
deploymentId: z.string().nullable().describe('Deployment ID'),
|
|
13
|
-
devmode: z.boolean().describe('Whether this is a devmode run'),
|
|
14
|
-
pending: z.boolean().describe('Whether the eval run is pending'),
|
|
15
|
-
success: z.boolean().describe('Whether the eval run succeeded'),
|
|
16
|
-
error: z.string().nullable().describe('Error message if failed'),
|
|
17
|
-
result: z.any().nullable().describe('Eval run result'),
|
|
18
|
-
createdAt: z.string().describe('Creation timestamp'),
|
|
19
|
-
updatedAt: z.string().describe('Last updated timestamp'),
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
export const EvalRunListResponseData = z.array(EvalRunSchema);
|
|
23
|
-
export const EvalRunListResponseSchema = APIResponseSchema(EvalRunListResponseData);
|
|
24
|
-
|
|
25
|
-
export type EvalRunListItem = z.infer<typeof EvalRunSchema>;
|
|
26
|
-
export type EvalRunListRequest = {
|
|
27
|
-
projectId?: string;
|
|
28
|
-
agentId?: string;
|
|
29
|
-
evalId?: string;
|
|
30
|
-
sessionId?: string;
|
|
31
|
-
orgId?: string;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export async function evalRunList(
|
|
35
|
-
client: APIClient,
|
|
36
|
-
request: EvalRunListRequest = {}
|
|
37
|
-
): Promise<EvalRunListItem[]> {
|
|
38
|
-
const params = new URLSearchParams();
|
|
39
|
-
if (request.orgId) params.set('orgId', request.orgId);
|
|
40
|
-
if (request.projectId) params.set('projectId', request.projectId);
|
|
41
|
-
if (request.agentId) params.set('agentId', request.agentId);
|
|
42
|
-
if (request.evalId) params.set('evalId', request.evalId);
|
|
43
|
-
if (request.sessionId) params.set('sessionId', request.sessionId);
|
|
44
|
-
|
|
45
|
-
const queryString = params.toString();
|
|
46
|
-
const url = `/cli/eval-run${queryString ? `?${queryString}` : ''}`;
|
|
47
|
-
|
|
48
|
-
const resp = await client.request<z.infer<typeof EvalRunListResponseSchema>>(
|
|
49
|
-
'GET',
|
|
50
|
-
url,
|
|
51
|
-
EvalRunListResponseSchema
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
if (resp.success) {
|
|
55
|
-
return resp.data;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
throw new Error(resp.message || 'Failed to list eval runs');
|
|
59
|
-
}
|
package/src/webrtc.ts
DELETED
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebRTC signaling types shared between server and client.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
// =============================================================================
|
|
6
|
-
// Signaling Protocol Types
|
|
7
|
-
// =============================================================================
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* SDP (Session Description Protocol) description for WebRTC negotiation.
|
|
11
|
-
*/
|
|
12
|
-
export interface SDPDescription {
|
|
13
|
-
type: 'offer' | 'answer' | 'pranswer' | 'rollback';
|
|
14
|
-
sdp?: string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* ICE (Interactive Connectivity Establishment) candidate for NAT traversal.
|
|
19
|
-
*/
|
|
20
|
-
export interface ICECandidate {
|
|
21
|
-
candidate?: string;
|
|
22
|
-
sdpMid?: string | null;
|
|
23
|
-
sdpMLineIndex?: number | null;
|
|
24
|
-
usernameFragment?: string | null;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Signaling message protocol for WebRTC peer communication.
|
|
29
|
-
*
|
|
30
|
-
* Message types:
|
|
31
|
-
* - `join`: Client requests to join a room
|
|
32
|
-
* - `joined`: Server confirms join with peer ID and existing peers
|
|
33
|
-
* - `peer-joined`: Server notifies when another peer joins the room
|
|
34
|
-
* - `peer-left`: Server notifies when a peer leaves the room
|
|
35
|
-
* - `sdp`: SDP offer/answer exchange between peers
|
|
36
|
-
* - `ice`: ICE candidate exchange between peers
|
|
37
|
-
* - `error`: Error message from server
|
|
38
|
-
*/
|
|
39
|
-
export type SignalMessage =
|
|
40
|
-
| { t: 'join'; roomId: string }
|
|
41
|
-
| { t: 'joined'; peerId: string; roomId: string; peers: string[] }
|
|
42
|
-
| { t: 'peer-joined'; peerId: string }
|
|
43
|
-
| { t: 'peer-left'; peerId: string }
|
|
44
|
-
| { t: 'sdp'; from: string; to?: string; description: SDPDescription }
|
|
45
|
-
| { t: 'ice'; from: string; to?: string; candidate: ICECandidate }
|
|
46
|
-
| { t: 'error'; message: string };
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* @deprecated Use `SignalMessage` instead. Alias for backwards compatibility.
|
|
50
|
-
*/
|
|
51
|
-
export type SignalMsg = SignalMessage;
|
|
52
|
-
|
|
53
|
-
// =============================================================================
|
|
54
|
-
// Frontend State Machine Types
|
|
55
|
-
// =============================================================================
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* WebRTC connection states for the frontend state machine.
|
|
59
|
-
*
|
|
60
|
-
* State transitions:
|
|
61
|
-
* - idle → connecting: connect() called
|
|
62
|
-
* - connecting → signaling: WebSocket opened, joined room
|
|
63
|
-
* - connecting → idle: error or cancel
|
|
64
|
-
* - signaling → negotiating: peer joined, SDP exchange started
|
|
65
|
-
* - signaling → idle: hangup or WebSocket closed
|
|
66
|
-
* - negotiating → connected: ICE complete, media flowing
|
|
67
|
-
* - negotiating → signaling: peer left during negotiation
|
|
68
|
-
* - negotiating → idle: error or hangup
|
|
69
|
-
* - connected → negotiating: renegotiation needed
|
|
70
|
-
* - connected → signaling: peer left
|
|
71
|
-
* - connected → idle: hangup or WebSocket closed
|
|
72
|
-
*/
|
|
73
|
-
export type WebRTCConnectionState =
|
|
74
|
-
| 'idle'
|
|
75
|
-
| 'connecting'
|
|
76
|
-
| 'signaling'
|
|
77
|
-
| 'negotiating'
|
|
78
|
-
| 'connected';
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Reasons for disconnection.
|
|
82
|
-
*/
|
|
83
|
-
export type WebRTCDisconnectReason = 'hangup' | 'error' | 'peer-left' | 'timeout';
|
|
84
|
-
|
|
85
|
-
// =============================================================================
|
|
86
|
-
// Data Channel Types
|
|
87
|
-
// =============================================================================
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Configuration for creating a data channel.
|
|
91
|
-
*/
|
|
92
|
-
export interface DataChannelConfig {
|
|
93
|
-
/** Unique label for the channel */
|
|
94
|
-
label: string;
|
|
95
|
-
/** Whether messages are ordered (default: true) */
|
|
96
|
-
ordered?: boolean;
|
|
97
|
-
/** Maximum retransmit time in milliseconds */
|
|
98
|
-
maxPacketLifeTime?: number;
|
|
99
|
-
/** Maximum number of retransmissions */
|
|
100
|
-
maxRetransmits?: number;
|
|
101
|
-
/** Sub-protocol name */
|
|
102
|
-
protocol?: string;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Message types for data channel communication.
|
|
107
|
-
*/
|
|
108
|
-
export type DataChannelMessage =
|
|
109
|
-
| { type: 'string'; data: string }
|
|
110
|
-
| { type: 'binary'; data: ArrayBuffer }
|
|
111
|
-
| { type: 'json'; data: unknown };
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Data channel state.
|
|
115
|
-
*/
|
|
116
|
-
export type DataChannelState = 'connecting' | 'open' | 'closing' | 'closed';
|
|
117
|
-
|
|
118
|
-
// =============================================================================
|
|
119
|
-
// Connection Quality / Stats Types
|
|
120
|
-
// =============================================================================
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Normalized connection quality summary.
|
|
124
|
-
* Derived from RTCPeerConnection.getStats() for easy consumption.
|
|
125
|
-
*/
|
|
126
|
-
export interface ConnectionQualitySummary {
|
|
127
|
-
/** Round-trip time in milliseconds */
|
|
128
|
-
rtt?: number;
|
|
129
|
-
/** Packet loss percentage (0-100) */
|
|
130
|
-
packetLossPercent?: number;
|
|
131
|
-
/** Jitter in milliseconds (audio) */
|
|
132
|
-
jitter?: number;
|
|
133
|
-
/** Current bitrate in bits per second */
|
|
134
|
-
bitrate?: {
|
|
135
|
-
audio?: { inbound?: number; outbound?: number };
|
|
136
|
-
video?: { inbound?: number; outbound?: number };
|
|
137
|
-
};
|
|
138
|
-
/** Video metrics */
|
|
139
|
-
video?: {
|
|
140
|
-
framesPerSecond?: number;
|
|
141
|
-
framesDropped?: number;
|
|
142
|
-
frameWidth?: number;
|
|
143
|
-
frameHeight?: number;
|
|
144
|
-
};
|
|
145
|
-
/** ICE candidate pair info */
|
|
146
|
-
candidatePair?: {
|
|
147
|
-
localType?: string;
|
|
148
|
-
remoteType?: string;
|
|
149
|
-
protocol?: string;
|
|
150
|
-
usingRelay?: boolean;
|
|
151
|
-
};
|
|
152
|
-
/** Timestamp when stats were collected */
|
|
153
|
-
timestamp: number;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Recording options for MediaRecorder.
|
|
158
|
-
*/
|
|
159
|
-
export interface RecordingOptions {
|
|
160
|
-
/** MIME type for recording (default: 'video/webm;codecs=vp9,opus' or 'audio/webm;codecs=opus') */
|
|
161
|
-
mimeType?: string;
|
|
162
|
-
/** Audio bits per second */
|
|
163
|
-
audioBitsPerSecond?: number;
|
|
164
|
-
/** Video bits per second */
|
|
165
|
-
videoBitsPerSecond?: number;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Recording handle for controlling an active recording.
|
|
170
|
-
*/
|
|
171
|
-
export interface RecordingHandle {
|
|
172
|
-
/** Stop recording and get the blob */
|
|
173
|
-
stop(): Promise<Blob>;
|
|
174
|
-
/** Pause recording */
|
|
175
|
-
pause(): void;
|
|
176
|
-
/** Resume recording */
|
|
177
|
-
resume(): void;
|
|
178
|
-
/** Current recording state */
|
|
179
|
-
readonly state: RecordingState;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Recording state.
|
|
184
|
-
*/
|
|
185
|
-
export type RecordingState = 'inactive' | 'recording' | 'paused';
|
|
186
|
-
|
|
187
|
-
// =============================================================================
|
|
188
|
-
// Track Source Types
|
|
189
|
-
// =============================================================================
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Abstract track source interface for custom media sources.
|
|
193
|
-
* Implementations can provide camera, screen share, or custom tracks.
|
|
194
|
-
*
|
|
195
|
-
* Note: This interface is implemented in @agentuity/frontend where
|
|
196
|
-
* browser APIs (MediaStream) are available.
|
|
197
|
-
*/
|
|
198
|
-
export interface TrackSource {
|
|
199
|
-
/** Get the media stream from this source (returns browser MediaStream) */
|
|
200
|
-
getStream(): Promise<unknown>;
|
|
201
|
-
/** Stop the source and release resources */
|
|
202
|
-
stop(): void;
|
|
203
|
-
/** Source type identifier */
|
|
204
|
-
readonly type: 'user-media' | 'display-media' | 'custom';
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// =============================================================================
|
|
208
|
-
// Backend Signaling Callbacks
|
|
209
|
-
// =============================================================================
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Callbacks for WebRTC signaling server events.
|
|
213
|
-
* All callbacks are optional - only subscribe to events you care about.
|
|
214
|
-
*/
|
|
215
|
-
export interface WebRTCSignalingCallbacks {
|
|
216
|
-
/**
|
|
217
|
-
* Called when a new room is created.
|
|
218
|
-
* @param roomId - The room ID
|
|
219
|
-
*/
|
|
220
|
-
onRoomCreated?: (roomId: string) => void;
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Called when a room is destroyed (last peer left).
|
|
224
|
-
* @param roomId - The room ID
|
|
225
|
-
*/
|
|
226
|
-
onRoomDestroyed?: (roomId: string) => void;
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Called when a peer joins a room.
|
|
230
|
-
* @param peerId - The peer's ID
|
|
231
|
-
* @param roomId - The room ID
|
|
232
|
-
*/
|
|
233
|
-
onPeerJoin?: (peerId: string, roomId: string) => void;
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Called when a peer leaves a room.
|
|
237
|
-
* @param peerId - The peer's ID
|
|
238
|
-
* @param roomId - The room ID
|
|
239
|
-
* @param reason - Why the peer left
|
|
240
|
-
*/
|
|
241
|
-
onPeerLeave?: (peerId: string, roomId: string, reason: 'disconnect' | 'kicked') => void;
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Called when a signaling message is relayed.
|
|
245
|
-
* @param type - Message type ('sdp' or 'ice')
|
|
246
|
-
* @param from - Sender peer ID
|
|
247
|
-
* @param to - Target peer ID (undefined for broadcast)
|
|
248
|
-
* @param roomId - The room ID
|
|
249
|
-
*/
|
|
250
|
-
onMessage?: (type: 'sdp' | 'ice', from: string, to: string | undefined, roomId: string) => void;
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Called when an error occurs.
|
|
254
|
-
* @param error - The error that occurred
|
|
255
|
-
* @param peerId - The peer ID if applicable
|
|
256
|
-
* @param roomId - The room ID if applicable
|
|
257
|
-
*/
|
|
258
|
-
onError?: (error: Error, peerId?: string, roomId?: string) => void;
|
|
259
|
-
}
|
package/src/workbench-config.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { StructuredError } from './error.ts';
|
|
2
|
-
|
|
3
|
-
export const WorkbenchConfigError = StructuredError(
|
|
4
|
-
'WorkbenchConfigError',
|
|
5
|
-
'The workbench configuration is invalid'
|
|
6
|
-
);
|
|
7
|
-
|
|
8
|
-
export const WorkbenchNotFoundError = StructuredError(
|
|
9
|
-
'WorkbenchNotFoundError',
|
|
10
|
-
'Workbench config not found - build process did not inline config'
|
|
11
|
-
);
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Workbench configuration utilities shared across packages
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
export interface WorkbenchConfig {
|
|
18
|
-
route?: string;
|
|
19
|
-
headers?: Record<string, string>;
|
|
20
|
-
apiKey?: string;
|
|
21
|
-
baseUrl?: string | null;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Encode workbench config to base64 for environment variable storage
|
|
26
|
-
*/
|
|
27
|
-
export function encodeWorkbenchConfig(config: WorkbenchConfig): string {
|
|
28
|
-
const json = JSON.stringify(config);
|
|
29
|
-
|
|
30
|
-
// Use Node.js Buffer if available (build-time), otherwise browser btoa (shouldn't be called in browser)
|
|
31
|
-
if (typeof Buffer !== 'undefined') {
|
|
32
|
-
return Buffer.from(json).toString('base64');
|
|
33
|
-
} else {
|
|
34
|
-
return btoa(json);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Decode workbench config from base64 environment variable
|
|
40
|
-
* Throws error if config is invalid
|
|
41
|
-
*/
|
|
42
|
-
export function decodeWorkbenchConfig(encoded: string): WorkbenchConfig {
|
|
43
|
-
try {
|
|
44
|
-
let json: string;
|
|
45
|
-
|
|
46
|
-
// Use appropriate decoding method based on environment
|
|
47
|
-
if (typeof Buffer !== 'undefined') {
|
|
48
|
-
// Node.js environment (build-time)
|
|
49
|
-
json = Buffer.from(encoded, 'base64').toString('utf-8');
|
|
50
|
-
} else if (typeof atob !== 'undefined') {
|
|
51
|
-
// Browser environment (runtime)
|
|
52
|
-
json = atob(encoded);
|
|
53
|
-
} else {
|
|
54
|
-
throw new Error('No base64 decoding method available');
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const config = JSON.parse(json) as WorkbenchConfig;
|
|
58
|
-
return config;
|
|
59
|
-
} catch (error) {
|
|
60
|
-
throw new WorkbenchConfigError({
|
|
61
|
-
cause: error,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Get workbench config from build-time variable
|
|
68
|
-
* Throws error if config is not available or invalid
|
|
69
|
-
*/
|
|
70
|
-
export function getWorkbenchConfig(): WorkbenchConfig {
|
|
71
|
-
// This will be replaced at build time by Bun's define mechanism
|
|
72
|
-
// @ts-expect-error - AGENTUITY_WORKBENCH_CONFIG_INLINE will be replaced at build time
|
|
73
|
-
if (typeof AGENTUITY_WORKBENCH_CONFIG_INLINE === 'undefined') {
|
|
74
|
-
throw new WorkbenchNotFoundError();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// @ts-expect-error - AGENTUITY_WORKBENCH_CONFIG_INLINE will be replaced at build time
|
|
78
|
-
return decodeWorkbenchConfig(AGENTUITY_WORKBENCH_CONFIG_INLINE);
|
|
79
|
-
}
|
package/src/workbench.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './workbench-config.ts';
|