omnara 0.1.4 → 0.1.6
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/README.md +1 -1
- package/dist/cli.js +6357 -50
- package/dist/cli.js.map +7 -1
- package/dist/orchestrator/agent-orchestrator.d.ts +4 -1
- package/dist/orchestrator/orchestrator-prompt.d.ts +8 -2
- package/dist/orchestrator/{types.d.ts → orchestrator-types.d.ts} +14 -0
- package/dist/orchestrator/session.d.ts +1 -1
- package/dist/orchestrator/tools/worker-tools.d.ts +1 -0
- package/dist/orchestrator/utils/session-logger.d.ts +1 -1
- package/dist/relay/relay-bridge.d.ts +1 -0
- package/dist/utils/browser.d.ts +1 -0
- package/dist/utils/claude-code-check.d.ts +21 -0
- package/dist/utils/logger.d.ts +127 -0
- package/dist/utils/version-check.d.ts +9 -0
- package/package.json +12 -5
- package/scripts/preinstall.js +141 -0
- package/scripts/test-preinstall.js +125 -0
- package/dist/auth/auth-provider.js +0 -56
- package/dist/auth/auth-provider.js.map +0 -1
- package/dist/auth/cli-auth-service.js +0 -44
- package/dist/auth/cli-auth-service.js.map +0 -1
- package/dist/auth/credential-manager.js +0 -71
- package/dist/auth/credential-manager.js.map +0 -1
- package/dist/auth/credentials-store.js +0 -69
- package/dist/auth/credentials-store.js.map +0 -1
- package/dist/auth/login-flow.js +0 -196
- package/dist/auth/login-flow.js.map +0 -1
- package/dist/auth/loopback-listener.js +0 -155
- package/dist/auth/loopback-listener.js.map +0 -1
- package/dist/auth/pkce.js +0 -15
- package/dist/auth/pkce.js.map +0 -1
- package/dist/auth/supabase-client.js +0 -10
- package/dist/auth/supabase-client.js.map +0 -1
- package/dist/auth/supabase-config.js +0 -21
- package/dist/auth/supabase-config.js.map +0 -1
- package/dist/commands/agent.js +0 -172
- package/dist/commands/agent.js.map +0 -1
- package/dist/commands/auth.js +0 -84
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/index.js +0 -3
- package/dist/commands/index.js.map +0 -1
- package/dist/http/api-client.js +0 -118
- package/dist/http/api-client.js.map +0 -1
- package/dist/http/user-sessions.js +0 -9
- package/dist/http/user-sessions.js.map +0 -1
- package/dist/orchestrator/agent-orchestrator.js +0 -592
- package/dist/orchestrator/agent-orchestrator.js.map +0 -1
- package/dist/orchestrator/ai-client.js +0 -77
- package/dist/orchestrator/ai-client.js.map +0 -1
- package/dist/orchestrator/orchestrator-prompt.js +0 -13
- package/dist/orchestrator/orchestrator-prompt.js.map +0 -1
- package/dist/orchestrator/session.js +0 -295
- package/dist/orchestrator/session.js.map +0 -1
- package/dist/orchestrator/tools/worker-status-tool.js +0 -41
- package/dist/orchestrator/tools/worker-status-tool.js.map +0 -1
- package/dist/orchestrator/tools/worker-tools.js +0 -149
- package/dist/orchestrator/tools/worker-tools.js.map +0 -1
- package/dist/orchestrator/types.js +0 -30
- package/dist/orchestrator/types.js.map +0 -1
- package/dist/orchestrator/utils/async-queue.js +0 -70
- package/dist/orchestrator/utils/async-queue.js.map +0 -1
- package/dist/orchestrator/utils/session-logger.js +0 -47
- package/dist/orchestrator/utils/session-logger.js.map +0 -1
- package/dist/orchestrator/worker-manager.js +0 -418
- package/dist/orchestrator/worker-manager.js.map +0 -1
- package/dist/relay/relay-bridge.js +0 -601
- package/dist/relay/relay-bridge.js.map +0 -1
- package/dist/relay/relay-service.js +0 -23
- package/dist/relay/relay-service.js.map +0 -1
- package/dist/repl/terminal-repl.js +0 -262
- package/dist/repl/terminal-repl.js.map +0 -1
- package/dist/schemas/generated.d.ts +0 -244
- package/dist/schemas/generated.js +0 -5
- package/dist/schemas/generated.js.map +0 -1
- package/dist/schemas/index.js +0 -2
- package/dist/schemas/index.js.map +0 -1
- package/dist/scripts/generate-schema-types.d.ts +0 -1
- package/dist/scripts/generate-schema-types.js +0 -53
- package/dist/scripts/generate-schema-types.js.map +0 -1
- package/dist/scripts/sync-schemas.d.ts +0 -1
- package/dist/scripts/sync-schemas.js +0 -28
- package/dist/scripts/sync-schemas.js.map +0 -1
- package/dist/utils/prompt.js +0 -13
- package/dist/utils/prompt.js.map +0 -1
- package/dist/voice/voice-service.js +0 -25
- package/dist/voice/voice-service.js.map +0 -1
package/dist/commands/agent.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { AgentOrchestrator } from '../orchestrator/agent-orchestrator.js';
|
|
3
|
-
import { CredentialsStore } from '../auth/credentials-store.js';
|
|
4
|
-
import { RelayBridge } from '../relay/relay-bridge.js';
|
|
5
|
-
import { runTerminalRepl } from '../repl/terminal-repl.js';
|
|
6
|
-
import { ApiClient } from '../http/api-client.js';
|
|
7
|
-
import { registerRelaySession } from '../relay/relay-service.js';
|
|
8
|
-
import { launchVoiceForSession } from '../voice/voice-service.js';
|
|
9
|
-
import { createAuthProvider } from '../auth/auth-provider.js';
|
|
10
|
-
import { resolveBackendUrl, resolveFrontendUrl } from '../auth/login-flow.js';
|
|
11
|
-
export function buildAgentCommand() {
|
|
12
|
-
const agent = new Command('agent').description('Utilities for interacting with the Omnara Claude agent.');
|
|
13
|
-
agent
|
|
14
|
-
.command('orchestrator')
|
|
15
|
-
.alias('server')
|
|
16
|
-
.description('Start the Omnara agent orchestrator.')
|
|
17
|
-
.option('--backend-url <url>', 'Override backend API base URL used for login')
|
|
18
|
-
.option('--frontend-url <url>', 'Override frontend URL opened during login')
|
|
19
|
-
.action(async (options) => {
|
|
20
|
-
await runAgentOrchestrator(options);
|
|
21
|
-
});
|
|
22
|
-
agent
|
|
23
|
-
.command('repl')
|
|
24
|
-
.description('Start the Omnara agent REPL connected through the backend relay.')
|
|
25
|
-
.requiredOption('--session-id <id>', 'Connect to an existing parent agent session')
|
|
26
|
-
.requiredOption('--user-session-id <id>', 'User session that owns the agent session')
|
|
27
|
-
.option('--backend-url <url>', 'Override backend API base URL used for login')
|
|
28
|
-
.option('--frontend-url <url>', 'Override frontend URL opened during login')
|
|
29
|
-
.action(async (options) => {
|
|
30
|
-
await runRepl(options);
|
|
31
|
-
});
|
|
32
|
-
agent
|
|
33
|
-
.command('voice')
|
|
34
|
-
.description('Dispatch the LiveKit voice agent for an existing session.')
|
|
35
|
-
.requiredOption('--session-id <id>', 'Agent session to connect the voice worker to')
|
|
36
|
-
.option('--backend-url <url>', 'Override backend API base URL used for login')
|
|
37
|
-
.option('--frontend-url <url>', 'Override frontend URL opened during login')
|
|
38
|
-
.option('--room-name <name>', 'Override the LiveKit room name used for the call')
|
|
39
|
-
.option('--force', 'Launch even if the CLI relay is offline')
|
|
40
|
-
.action(async (options) => {
|
|
41
|
-
await runVoice(options);
|
|
42
|
-
});
|
|
43
|
-
return agent;
|
|
44
|
-
}
|
|
45
|
-
export async function runAgentOrchestrator(options = {}) {
|
|
46
|
-
const orchestrator = new AgentOrchestrator();
|
|
47
|
-
await orchestrator.start();
|
|
48
|
-
const backendUrl = resolveBackendUrl(options.backendUrl);
|
|
49
|
-
const frontendUrl = resolveFrontendUrl(options.frontendUrl);
|
|
50
|
-
const store = new CredentialsStore();
|
|
51
|
-
const bridge = new RelayBridge(orchestrator, {
|
|
52
|
-
store,
|
|
53
|
-
logger: console,
|
|
54
|
-
backendUrl,
|
|
55
|
-
frontendUrl,
|
|
56
|
-
});
|
|
57
|
-
const stop = async () => {
|
|
58
|
-
await bridge.stop();
|
|
59
|
-
await orchestrator.stop();
|
|
60
|
-
};
|
|
61
|
-
const signalHandler = createSignalHandler(stop);
|
|
62
|
-
process.on('SIGINT', signalHandler.handler);
|
|
63
|
-
process.on('SIGTERM', signalHandler.handler);
|
|
64
|
-
try {
|
|
65
|
-
await bridge.start();
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
console.error(`Relay orchestrator terminated: ${extractErrorMessage(error)}`);
|
|
69
|
-
process.exitCode = process.exitCode || 1;
|
|
70
|
-
}
|
|
71
|
-
finally {
|
|
72
|
-
await stop();
|
|
73
|
-
signalHandler.remove();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
function createSignalHandler(onStop) {
|
|
77
|
-
let stopping = false;
|
|
78
|
-
const handler = (signal) => {
|
|
79
|
-
if (stopping) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
stopping = true;
|
|
83
|
-
console.log(`\nReceived ${signal}. Shutting down agent orchestrator...`);
|
|
84
|
-
void onStop()
|
|
85
|
-
.catch((error) => {
|
|
86
|
-
console.error('Error while shutting down agent orchestrator:', error);
|
|
87
|
-
});
|
|
88
|
-
};
|
|
89
|
-
const remove = () => {
|
|
90
|
-
process.removeListener('SIGINT', handler);
|
|
91
|
-
process.removeListener('SIGTERM', handler);
|
|
92
|
-
};
|
|
93
|
-
return { handler, remove };
|
|
94
|
-
}
|
|
95
|
-
function extractErrorMessage(error) {
|
|
96
|
-
if (error instanceof Error) {
|
|
97
|
-
return error.message;
|
|
98
|
-
}
|
|
99
|
-
return String(error);
|
|
100
|
-
}
|
|
101
|
-
async function runRepl(options) {
|
|
102
|
-
const backendUrl = resolveBackendUrl(options.backendUrl);
|
|
103
|
-
const frontendUrl = resolveFrontendUrl(options.frontendUrl);
|
|
104
|
-
const store = new CredentialsStore();
|
|
105
|
-
const authProvider = await createAuthProvider({
|
|
106
|
-
store,
|
|
107
|
-
backendUrl,
|
|
108
|
-
frontendUrl,
|
|
109
|
-
logger: console,
|
|
110
|
-
});
|
|
111
|
-
const client = new ApiClient({ baseUrl: backendUrl });
|
|
112
|
-
const accessToken = await authProvider.getAccessToken();
|
|
113
|
-
const registration = await registerRelaySession(client, accessToken, {
|
|
114
|
-
userSessionId: options.userSessionId,
|
|
115
|
-
clientKind: 'cli',
|
|
116
|
-
});
|
|
117
|
-
const wsUrl = buildRelayWebsocketUrl(backendUrl, registration.relayWsPath);
|
|
118
|
-
console.log(`Using agent session ${options.sessionId} (user session ${registration.userSessionId})`);
|
|
119
|
-
await runTerminalRepl({
|
|
120
|
-
url: wsUrl,
|
|
121
|
-
headers: {
|
|
122
|
-
authorization: `Bearer ${accessToken}`,
|
|
123
|
-
'x-relay-token': registration.relayToken,
|
|
124
|
-
},
|
|
125
|
-
initialSessionId: options.sessionId,
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
async function runVoice(options) {
|
|
129
|
-
const backendUrl = resolveBackendUrl(options.backendUrl);
|
|
130
|
-
const frontendUrl = resolveFrontendUrl(options.frontendUrl);
|
|
131
|
-
const store = new CredentialsStore();
|
|
132
|
-
const authProvider = await createAuthProvider({
|
|
133
|
-
store,
|
|
134
|
-
backendUrl,
|
|
135
|
-
frontendUrl,
|
|
136
|
-
logger: console,
|
|
137
|
-
});
|
|
138
|
-
const client = new ApiClient({ baseUrl: backendUrl });
|
|
139
|
-
const launch = await launchVoiceForSession(client, await authProvider.getAccessToken(), {
|
|
140
|
-
sessionId: options.sessionId,
|
|
141
|
-
force: options.force ?? false,
|
|
142
|
-
roomName: options.roomName,
|
|
143
|
-
});
|
|
144
|
-
console.log('\nVoice agent dispatched successfully.');
|
|
145
|
-
console.log(`Session ID: ${launch.sessionId}`);
|
|
146
|
-
console.log(`LiveKit URL: ${launch.livekitUrl}`);
|
|
147
|
-
console.log(`Room name: ${launch.roomName}`);
|
|
148
|
-
console.log(`Participant identity: ${launch.accessTokenIdentity}`);
|
|
149
|
-
console.log('\nUse this token to join the room:');
|
|
150
|
-
console.log(launch.accessToken);
|
|
151
|
-
console.log('\nOnce connected (for example via the LiveKit Agents playground),');
|
|
152
|
-
console.log('the voice worker will coordinate with the CLI coding agent through the relay.');
|
|
153
|
-
console.log(`Relay websocket: ${launch.relayWsUrl}`);
|
|
154
|
-
console.log(`Relay token (expires in ${launch.relayTokenExpiresIn}s):`);
|
|
155
|
-
console.log(launch.relayToken);
|
|
156
|
-
console.log('\nKeep this information secure—tokens grant access to your agent session.');
|
|
157
|
-
}
|
|
158
|
-
function buildRelayWebsocketUrl(baseUrl, path) {
|
|
159
|
-
const url = new URL(baseUrl);
|
|
160
|
-
url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
161
|
-
url.search = '';
|
|
162
|
-
url.hash = '';
|
|
163
|
-
if (path.startsWith('/')) {
|
|
164
|
-
url.pathname = path;
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
const basePath = url.pathname.endsWith('/') ? url.pathname : `${url.pathname}/`;
|
|
168
|
-
url.pathname = `${basePath}${path}`;
|
|
169
|
-
}
|
|
170
|
-
return url.toString();
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/auth.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { CredentialsStore } from '../auth/credentials-store.js';
|
|
3
|
-
import { ApiError } from '../http/api-client.js';
|
|
4
|
-
import { performVerificationLogin, resolveBackendUrl, formatDuration } from '../auth/login-flow.js';
|
|
5
|
-
export function buildAuthCommand() {
|
|
6
|
-
const auth = new Command('auth').description('Authenticate the Omnara CLI.');
|
|
7
|
-
auth
|
|
8
|
-
.command('login')
|
|
9
|
-
.description('Authenticate via the browser-based verification flow.')
|
|
10
|
-
.option('--backend-url <url>', 'Backend base URL')
|
|
11
|
-
.option('--frontend-url <url>', 'Frontend URL to open for verification')
|
|
12
|
-
.action(async (options) => {
|
|
13
|
-
const store = new CredentialsStore();
|
|
14
|
-
const backendUrl = resolveBackendUrl(options.backendUrl);
|
|
15
|
-
try {
|
|
16
|
-
await performVerificationLogin({
|
|
17
|
-
backendUrlOption: backendUrl,
|
|
18
|
-
frontendUrlOption: options.frontendUrl,
|
|
19
|
-
store,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
catch (error) {
|
|
23
|
-
if (error instanceof ApiError) {
|
|
24
|
-
console.error(`\nRequest failed (HTTP ${error.status}): ${error.message}`);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
console.error(`\nLogin failed: ${extractErrorMessage(error)}`);
|
|
28
|
-
}
|
|
29
|
-
process.exitCode = 1;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
auth
|
|
33
|
-
.command('logout')
|
|
34
|
-
.description('Remove stored CLI credentials.')
|
|
35
|
-
.action(async () => {
|
|
36
|
-
const store = new CredentialsStore();
|
|
37
|
-
await store.clear();
|
|
38
|
-
console.log('Credentials cleared.');
|
|
39
|
-
});
|
|
40
|
-
auth
|
|
41
|
-
.command('status')
|
|
42
|
-
.description('Show stored CLI credential details.')
|
|
43
|
-
.action(async () => {
|
|
44
|
-
const store = new CredentialsStore();
|
|
45
|
-
const credentials = await store.load();
|
|
46
|
-
if (!credentials) {
|
|
47
|
-
console.log('No credentials stored.');
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
printStatus(credentials);
|
|
51
|
-
});
|
|
52
|
-
return auth;
|
|
53
|
-
}
|
|
54
|
-
function printStatus(credentials) {
|
|
55
|
-
if (credentials.accessToken) {
|
|
56
|
-
const accessStatus = describeExpiry(credentials.accessTokenExpiresAt);
|
|
57
|
-
const refreshStatus = credentials.refreshTokenExpiresAt
|
|
58
|
-
? describeExpiry(credentials.refreshTokenExpiresAt)
|
|
59
|
-
: 'unknown expiry';
|
|
60
|
-
console.log(`Authentication: Supabase access token (${accessStatus}), Refresh token (${refreshStatus})`);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
console.log('Authentication: Not configured');
|
|
64
|
-
}
|
|
65
|
-
function describeExpiry(iso) {
|
|
66
|
-
if (!iso) {
|
|
67
|
-
return 'unknown expiry';
|
|
68
|
-
}
|
|
69
|
-
const timestamp = Date.parse(iso);
|
|
70
|
-
if (Number.isNaN(timestamp)) {
|
|
71
|
-
return 'invalid timestamp';
|
|
72
|
-
}
|
|
73
|
-
const diff = timestamp - Date.now();
|
|
74
|
-
const abs = Math.abs(diff);
|
|
75
|
-
const descriptor = formatDuration(abs);
|
|
76
|
-
return diff >= 0 ? `expires in ${descriptor}` : `expired ${descriptor} ago`;
|
|
77
|
-
}
|
|
78
|
-
function extractErrorMessage(error) {
|
|
79
|
-
if (error instanceof Error) {
|
|
80
|
-
return error.message;
|
|
81
|
-
}
|
|
82
|
-
return String(error);
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAA4B,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/http/api-client.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
export class ApiError extends Error {
|
|
2
|
-
status;
|
|
3
|
-
details;
|
|
4
|
-
constructor(status, message, details) {
|
|
5
|
-
super(message);
|
|
6
|
-
this.status = status;
|
|
7
|
-
this.details = details;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
export class ApiClient {
|
|
11
|
-
baseUrl;
|
|
12
|
-
constructor(options) {
|
|
13
|
-
this.baseUrl = normalizeBaseUrl(options.baseUrl);
|
|
14
|
-
}
|
|
15
|
-
async getJson(path, options) {
|
|
16
|
-
const url = resolveUrl(this.baseUrl, path);
|
|
17
|
-
const headers = this.buildHeaders(options);
|
|
18
|
-
const response = await fetch(url, {
|
|
19
|
-
method: 'GET',
|
|
20
|
-
headers,
|
|
21
|
-
signal: options?.signal,
|
|
22
|
-
});
|
|
23
|
-
return await this.handleResponse(response);
|
|
24
|
-
}
|
|
25
|
-
async postJson(path, body, options) {
|
|
26
|
-
const url = resolveUrl(this.baseUrl, path);
|
|
27
|
-
const headers = this.buildHeaders(options, { includeJson: true });
|
|
28
|
-
const response = await fetch(url, {
|
|
29
|
-
method: 'POST',
|
|
30
|
-
headers,
|
|
31
|
-
body: JSON.stringify(body ?? {}),
|
|
32
|
-
signal: options?.signal,
|
|
33
|
-
});
|
|
34
|
-
return await this.handleResponse(response);
|
|
35
|
-
}
|
|
36
|
-
buildHeaders(options, extras) {
|
|
37
|
-
const headers = new Headers();
|
|
38
|
-
if (extras?.includeJson) {
|
|
39
|
-
headers.set('content-type', 'application/json');
|
|
40
|
-
}
|
|
41
|
-
if (options?.headers) {
|
|
42
|
-
for (const [key, value] of Object.entries(options.headers)) {
|
|
43
|
-
headers.set(key, value);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (options?.accessToken) {
|
|
47
|
-
headers.set('authorization', `Bearer ${options.accessToken}`);
|
|
48
|
-
}
|
|
49
|
-
else if (options?.apiKey) {
|
|
50
|
-
headers.set('authorization', `Bearer ${options.apiKey}`);
|
|
51
|
-
}
|
|
52
|
-
return headers;
|
|
53
|
-
}
|
|
54
|
-
async handleResponse(response) {
|
|
55
|
-
const contentType = response.headers.get('content-type');
|
|
56
|
-
const isJson = contentType?.includes('application/json');
|
|
57
|
-
let payload = undefined;
|
|
58
|
-
if (isJson) {
|
|
59
|
-
try {
|
|
60
|
-
payload = await response.json();
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
if (response.ok) {
|
|
64
|
-
throw new ApiError(response.status, `Failed to parse JSON response: ${extractErrorMessage(error)}`);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
else if (response.ok) {
|
|
69
|
-
payload = await response.text();
|
|
70
|
-
}
|
|
71
|
-
if (!response.ok) {
|
|
72
|
-
const detail = extractDetail(payload);
|
|
73
|
-
throw new ApiError(response.status, detail ?? `HTTP ${response.status}`, payload);
|
|
74
|
-
}
|
|
75
|
-
return payload;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
export function normalizeBaseUrl(raw) {
|
|
79
|
-
if (!raw) {
|
|
80
|
-
throw new Error('Backend URL cannot be empty.');
|
|
81
|
-
}
|
|
82
|
-
return raw.endsWith('/') ? raw : `${raw}/`;
|
|
83
|
-
}
|
|
84
|
-
export function resolveUrl(base, path) {
|
|
85
|
-
const baseUrl = new URL(base);
|
|
86
|
-
if (!path.startsWith('/')) {
|
|
87
|
-
path = `/${path}`;
|
|
88
|
-
}
|
|
89
|
-
const resolved = new URL(path, baseUrl);
|
|
90
|
-
return resolved.toString();
|
|
91
|
-
}
|
|
92
|
-
function extractDetail(payload) {
|
|
93
|
-
if (!payload) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
if (typeof payload === 'string') {
|
|
97
|
-
return payload;
|
|
98
|
-
}
|
|
99
|
-
if (typeof payload === 'object' && payload !== null) {
|
|
100
|
-
const record = payload;
|
|
101
|
-
const detail = record.detail;
|
|
102
|
-
if (typeof detail === 'string') {
|
|
103
|
-
return detail;
|
|
104
|
-
}
|
|
105
|
-
const message = record.message;
|
|
106
|
-
if (typeof message === 'string') {
|
|
107
|
-
return message;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
function extractErrorMessage(error) {
|
|
113
|
-
if (error instanceof Error) {
|
|
114
|
-
return error.message;
|
|
115
|
-
}
|
|
116
|
-
return String(error);
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=api-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/http/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ApiClient } from './api-client.js';
|
|
2
|
-
export async function createUserSession(client, accessToken, options = {}) {
|
|
3
|
-
const body = {
|
|
4
|
-
name: options.name ?? null,
|
|
5
|
-
metadata: options.metadata ?? null,
|
|
6
|
-
};
|
|
7
|
-
return await client.postJson('/api/v1/user-sessions', body, { accessToken });
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=user-sessions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-sessions.js","sourceRoot":"","sources":["../../src/http/user-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgB5C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAiB,EACjB,WAAmB,EACnB,UAAiE,EAAE;IAEnE,MAAM,IAAI,GAAiC;QACzC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;KACnC,CAAC;IAEF,OAAO,MAAM,MAAM,CAAC,QAAQ,CAC1B,uBAAuB,EACvB,IAAI,EACJ,EAAE,WAAW,EAAE,CAChB,CAAC;AACJ,CAAC"}
|