omnara 0.1.2 → 0.1.4
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/bin/omnara.js +8 -3
- package/dist/auth/auth-provider.d.ts +2 -2
- package/dist/auth/auth-provider.js +14 -16
- package/dist/auth/auth-provider.js.map +1 -1
- package/dist/auth/cli-auth-service.d.ts +12 -3
- package/dist/auth/cli-auth-service.js +23 -9
- package/dist/auth/cli-auth-service.js.map +1 -1
- package/dist/auth/credential-manager.d.ts +1 -1
- package/dist/auth/credential-manager.js +7 -9
- package/dist/auth/credential-manager.js.map +1 -1
- package/dist/auth/credentials-store.js +14 -20
- package/dist/auth/credentials-store.js.map +1 -1
- package/dist/auth/login-flow.d.ts +2 -2
- package/dist/auth/login-flow.js +128 -39
- package/dist/auth/login-flow.js.map +1 -1
- package/dist/auth/loopback-listener.d.ts +20 -0
- package/dist/auth/loopback-listener.js +155 -0
- package/dist/auth/loopback-listener.js.map +1 -0
- package/dist/auth/pkce.d.ts +6 -0
- package/dist/auth/pkce.js +15 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/supabase-client.d.ts +1 -1
- package/dist/auth/supabase-client.js +3 -6
- package/dist/auth/supabase-client.js.map +1 -1
- package/dist/auth/supabase-config.js +3 -6
- package/dist/auth/supabase-config.js.map +1 -1
- package/dist/cli.js +26 -25
- package/dist/cli.js.map +1 -1
- package/dist/commands/agent.js +36 -38
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/auth.js +13 -16
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/index.d.ts +2 -2
- package/dist/commands/index.js +2 -8
- package/dist/commands/index.js.map +1 -1
- package/dist/http/api-client.js +7 -11
- package/dist/http/api-client.js.map +1 -1
- package/dist/http/user-sessions.d.ts +13 -0
- package/dist/http/user-sessions.js +9 -0
- package/dist/http/user-sessions.js.map +1 -0
- package/dist/orchestrator/agent-orchestrator.d.ts +11 -6
- package/dist/orchestrator/agent-orchestrator.js +226 -57
- package/dist/orchestrator/agent-orchestrator.js.map +1 -1
- package/dist/orchestrator/ai-client.d.ts +5 -4
- package/dist/orchestrator/ai-client.js +17 -14
- package/dist/orchestrator/ai-client.js.map +1 -1
- package/dist/orchestrator/orchestrator-prompt.d.ts +2 -7
- package/dist/orchestrator/orchestrator-prompt.js +7 -154
- package/dist/orchestrator/orchestrator-prompt.js.map +1 -1
- package/dist/orchestrator/orchestrator-prompt.md +405 -0
- package/dist/orchestrator/session.d.ts +7 -3
- package/dist/orchestrator/session.js +56 -34
- package/dist/orchestrator/session.js.map +1 -1
- package/dist/orchestrator/tools/worker-status-tool.d.ts +7 -0
- package/dist/orchestrator/tools/worker-status-tool.js +41 -0
- package/dist/orchestrator/tools/worker-status-tool.js.map +1 -0
- package/dist/orchestrator/tools/worker-tools.d.ts +1 -1
- package/dist/orchestrator/tools/worker-tools.js +73 -89
- package/dist/orchestrator/tools/worker-tools.js.map +1 -1
- package/dist/orchestrator/types.d.ts +19 -29
- package/dist/orchestrator/types.js +22 -25
- package/dist/orchestrator/types.js.map +1 -1
- package/dist/orchestrator/utils/async-queue.d.ts +26 -0
- package/dist/orchestrator/utils/async-queue.js +70 -0
- package/dist/orchestrator/utils/async-queue.js.map +1 -0
- package/dist/orchestrator/utils/session-logger.d.ts +1 -1
- package/dist/orchestrator/utils/session-logger.js +8 -14
- package/dist/orchestrator/utils/session-logger.js.map +1 -1
- package/dist/orchestrator/worker-manager.d.ts +31 -15
- package/dist/orchestrator/worker-manager.js +186 -18
- package/dist/orchestrator/worker-manager.js.map +1 -1
- package/dist/relay/relay-bridge.d.ts +24 -3
- package/dist/relay/relay-bridge.js +382 -90
- package/dist/relay/relay-bridge.js.map +1 -1
- package/dist/relay/relay-service.d.ts +4 -7
- package/dist/relay/relay-service.js +5 -11
- package/dist/relay/relay-service.js.map +1 -1
- package/dist/repl/terminal-repl.js +34 -30
- package/dist/repl/terminal-repl.js.map +1 -1
- package/dist/schemas/generated.d.ts +244 -0
- package/dist/schemas/generated.js +5 -0
- package/dist/schemas/generated.js.map +1 -0
- package/dist/schemas/index.d.ts +2 -0
- package/dist/schemas/index.js +2 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/scripts/generate-schema-types.js +53 -0
- package/dist/scripts/generate-schema-types.js.map +1 -0
- package/dist/scripts/sync-schemas.d.ts +1 -0
- package/dist/scripts/sync-schemas.js +28 -0
- package/dist/scripts/sync-schemas.js.map +1 -0
- package/dist/utils/prompt.js +4 -10
- package/dist/utils/prompt.js.map +1 -1
- package/dist/voice/voice-service.d.ts +1 -1
- package/dist/voice/voice-service.js +2 -4
- package/dist/voice/voice-service.js.map +1 -1
- package/package.json +6 -2
- package/dist/commands/hello.d.ts +0 -2
- package/dist/commands/hello.js +0 -12
- package/dist/commands/hello.js.map +0 -1
- package/dist/generated/relay.d.ts +0 -240
- package/dist/generated/relay.js +0 -2376
- package/dist/generated/relay.js.map +0 -1
- package/dist/messaging/proto-codec.d.ts +0 -5
- package/dist/messaging/proto-codec.js +0 -387
- package/dist/messaging/proto-codec.js.map +0 -1
- package/dist/server/agent-server.d.ts +0 -46
- package/dist/server/agent-server.js +0 -429
- package/dist/server/agent-server.js.map +0 -1
- package/dist/server/ai-client.d.ts +0 -16
- package/dist/server/ai-client.js +0 -74
- package/dist/server/ai-client.js.map +0 -1
- package/dist/server/session.d.ts +0 -35
- package/dist/server/session.js +0 -272
- package/dist/server/session.js.map +0 -1
- package/dist/server/subagents.d.ts +0 -19
- package/dist/server/subagents.js +0 -42
- package/dist/server/subagents.js.map +0 -1
- package/dist/server/tools/worker-tools.d.ts +0 -2
- package/dist/server/tools/worker-tools.js +0 -37
- package/dist/server/tools/worker-tools.js.map +0 -1
- package/dist/server/types.d.ts +0 -120
- package/dist/server/types.js +0 -29
- package/dist/server/types.js.map +0 -1
- package/dist/server/utils/session-logger.d.ts +0 -7
- package/dist/server/utils/session-logger.js +0 -53
- package/dist/server/utils/session-logger.js.map +0 -1
- package/dist/server/worker-manager.d.ts +0 -67
- package/dist/server/worker-manager.js +0 -207
- package/dist/server/worker-manager.js.map +0 -1
- package/dist/test-agent.js +0 -63
- package/dist/test-agent.js.map +0 -1
- /package/dist/{test-agent.d.ts → scripts/generate-schema-types.d.ts} +0 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import http from 'http';
|
|
2
|
+
import { randomBytes } from 'crypto';
|
|
3
|
+
const CALLBACK_PATH = '/callback';
|
|
4
|
+
const LISTEN_HOST = '127.0.0.1';
|
|
5
|
+
export class LoopbackListener {
|
|
6
|
+
static async create() {
|
|
7
|
+
const listener = new LoopbackListener(generateState());
|
|
8
|
+
try {
|
|
9
|
+
await listener.start();
|
|
10
|
+
return listener;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
await listener.stop().catch(() => undefined);
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
state;
|
|
18
|
+
redirectUri;
|
|
19
|
+
server;
|
|
20
|
+
resolveCallback = null;
|
|
21
|
+
rejectCallback = null;
|
|
22
|
+
pending = null;
|
|
23
|
+
constructor(state) {
|
|
24
|
+
this.state = state;
|
|
25
|
+
this.redirectUri = '';
|
|
26
|
+
this.server = http.createServer((request, response) => {
|
|
27
|
+
void this.handleRequest(request, response);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async waitForCallback() {
|
|
31
|
+
if (this.pending) {
|
|
32
|
+
return this.pending;
|
|
33
|
+
}
|
|
34
|
+
this.pending = new Promise((resolve, reject) => {
|
|
35
|
+
this.resolveCallback = resolve;
|
|
36
|
+
this.rejectCallback = reject;
|
|
37
|
+
});
|
|
38
|
+
return this.pending;
|
|
39
|
+
}
|
|
40
|
+
async stop() {
|
|
41
|
+
if (!this.server.listening) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
await new Promise((resolve) => {
|
|
45
|
+
this.server.close(() => resolve());
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async start() {
|
|
49
|
+
await new Promise((resolve, reject) => {
|
|
50
|
+
this.server.once('error', reject);
|
|
51
|
+
this.server.listen(0, LISTEN_HOST, () => {
|
|
52
|
+
this.server.removeListener('error', reject);
|
|
53
|
+
resolve();
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
const address = this.server.address();
|
|
57
|
+
if (!address || typeof address === 'string') {
|
|
58
|
+
throw new Error('Loopback listener failed to bind');
|
|
59
|
+
}
|
|
60
|
+
const { port } = address;
|
|
61
|
+
this.redirectUri = `http://${LISTEN_HOST}:${port}${CALLBACK_PATH}`;
|
|
62
|
+
}
|
|
63
|
+
async handleRequest(request, response) {
|
|
64
|
+
if (request.method !== 'GET' || !request.url) {
|
|
65
|
+
this.respond(response, 405, 'Method Not Allowed');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const url = new URL(request.url, `http://${request.headers.host ?? LISTEN_HOST}`);
|
|
69
|
+
if (url.pathname !== CALLBACK_PATH) {
|
|
70
|
+
this.respond(response, 404, 'Not Found');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const code = url.searchParams.get('code');
|
|
74
|
+
const sessionId = url.searchParams.get('session');
|
|
75
|
+
const state = url.searchParams.get('state');
|
|
76
|
+
if (!code) {
|
|
77
|
+
this.respond(response, 400, buildMessageHtml('Missing authorization code. Return to your CLI and try again.'));
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.respond(response, 200, buildSuccessHtml());
|
|
81
|
+
if (this.resolveCallback) {
|
|
82
|
+
this.resolveCallback({ code, sessionId, state });
|
|
83
|
+
this.resolveCallback = null;
|
|
84
|
+
this.rejectCallback = null;
|
|
85
|
+
}
|
|
86
|
+
void this.stop();
|
|
87
|
+
}
|
|
88
|
+
respond(response, status, body) {
|
|
89
|
+
response.writeHead(status, {
|
|
90
|
+
'content-type': 'text/html; charset=utf-8',
|
|
91
|
+
'cache-control': 'no-store',
|
|
92
|
+
});
|
|
93
|
+
response.end(body);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function buildSuccessHtml() {
|
|
97
|
+
const redirectTarget = 'https://voice.omnara.com/dashboard';
|
|
98
|
+
return `<!doctype html>
|
|
99
|
+
<html lang="en">
|
|
100
|
+
<head>
|
|
101
|
+
<meta charset="utf-8" />
|
|
102
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
103
|
+
<meta http-equiv="refresh" content="3;url=${redirectTarget}" />
|
|
104
|
+
<title>Omnara CLI Login</title>
|
|
105
|
+
<style>
|
|
106
|
+
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #090909; color: #f4f4f5; display: flex; align-items: center; justify-content: center; min-height: 100vh; margin: 0; }
|
|
107
|
+
.card { max-width: 420px; padding: 2.5rem; background: rgba(32, 32, 36, 0.85); border-radius: 14px; box-shadow: 0 20px 40px rgba(0,0,0,0.35); text-align: center; }
|
|
108
|
+
h1 { font-size: 1.5rem; margin-bottom: 0.75rem; }
|
|
109
|
+
p { margin: 0 0 0.75rem; line-height: 1.5; }
|
|
110
|
+
.note { font-size: 0.85rem; color: rgba(244,244,245,0.7); }
|
|
111
|
+
</style>
|
|
112
|
+
</head>
|
|
113
|
+
<body>
|
|
114
|
+
<div class="card">
|
|
115
|
+
<h1>Redirecting back to the CLI…</h1>
|
|
116
|
+
<p>Your authentication details were sent to the Omnara CLI. Return to your terminal to continue.</p>
|
|
117
|
+
<p class="note">If this page doesn't close automatically, you can manually open the Omnara dashboard.</p>
|
|
118
|
+
</div>
|
|
119
|
+
</body>
|
|
120
|
+
</html>`;
|
|
121
|
+
}
|
|
122
|
+
function generateState() {
|
|
123
|
+
return base64UrlEncode(randomBytes(32));
|
|
124
|
+
}
|
|
125
|
+
function base64UrlEncode(input) {
|
|
126
|
+
const buffer = typeof input === 'string' ? Buffer.from(input, 'utf8') : Buffer.from(input);
|
|
127
|
+
return buffer
|
|
128
|
+
.toString('base64')
|
|
129
|
+
.replace(/\+/g, '-')
|
|
130
|
+
.replace(/\//g, '_')
|
|
131
|
+
.replace(/=+$/g, '');
|
|
132
|
+
}
|
|
133
|
+
function buildMessageHtml(message) {
|
|
134
|
+
return `<!doctype html>
|
|
135
|
+
<html lang="en">
|
|
136
|
+
<head>
|
|
137
|
+
<meta charset="utf-8" />
|
|
138
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
139
|
+
<title>Omnara CLI Login</title>
|
|
140
|
+
<style>
|
|
141
|
+
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #090909; color: #f4f4f5; display: flex; align-items: center; justify-content: center; min-height: 100vh; margin: 0; }
|
|
142
|
+
.card { max-width: 420px; padding: 2.5rem; background: rgba(32, 32, 36, 0.85); border-radius: 14px; box-shadow: 0 20px 40px rgba(0,0,0,0.35); text-align: center; }
|
|
143
|
+
h1 { font-size: 1.4rem; margin-bottom: 0.75rem; }
|
|
144
|
+
p { margin: 0; line-height: 1.6; }
|
|
145
|
+
</style>
|
|
146
|
+
</head>
|
|
147
|
+
<body>
|
|
148
|
+
<div class="card">
|
|
149
|
+
<h1>Omnara CLI Login</h1>
|
|
150
|
+
<p>${message}</p>
|
|
151
|
+
</div>
|
|
152
|
+
</body>
|
|
153
|
+
</html>`;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=loopback-listener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loopback-listener.js","sourceRoot":"","sources":["../../src/auth/loopback-listener.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createHash, randomBytes } from 'crypto';
|
|
2
|
+
export function generatePkcePair() {
|
|
3
|
+
const verifier = base64UrlEncode(randomBytes(32));
|
|
4
|
+
const challenge = base64UrlEncode(createHash('sha256').update(verifier).digest());
|
|
5
|
+
return { verifier, challenge, method: 'S256' };
|
|
6
|
+
}
|
|
7
|
+
function base64UrlEncode(input) {
|
|
8
|
+
const buffer = typeof input === 'string' ? Buffer.from(input, 'utf8') : Buffer.from(input);
|
|
9
|
+
return buffer
|
|
10
|
+
.toString('base64')
|
|
11
|
+
.replace(/\+/g, '-')
|
|
12
|
+
.replace(/\//g, '_')
|
|
13
|
+
.replace(/=+$/g, '');
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=pkce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../src/auth/pkce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAQjD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,eAAe,CAAC,KAAmC;IAC1D,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAA4B,CAAC,CAAC;IACrG,OAAO,MAAM;SACV,QAAQ,CAAC,QAAQ,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
-
import type { SupabaseAuthConfig } from './supabase-config';
|
|
2
|
+
import type { SupabaseAuthConfig } from './supabase-config.js';
|
|
3
3
|
export declare function buildSupabaseClient(config: SupabaseAuthConfig): SupabaseClient;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const supabase_js_1 = require("@supabase/supabase-js");
|
|
5
|
-
function buildSupabaseClient(config) {
|
|
6
|
-
return (0, supabase_js_1.createClient)(config.url, config.anonKey, {
|
|
1
|
+
import { createClient } from '@supabase/supabase-js';
|
|
2
|
+
export function buildSupabaseClient(config) {
|
|
3
|
+
return createClient(config.url, config.anonKey, {
|
|
7
4
|
auth: {
|
|
8
5
|
persistSession: false,
|
|
9
6
|
detectSessionInUrl: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase-client.js","sourceRoot":"","sources":["../../src/auth/supabase-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"supabase-client.js","sourceRoot":"","sources":["../../src/auth/supabase-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,uBAAuB,CAAC;AAI1E,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE;QAC9C,IAAI,EAAE;YACJ,cAAc,EAAE,KAAK;YACrB,kBAAkB,EAAE,KAAK;SAC1B;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSupabaseAuthConfig = getSupabaseAuthConfig;
|
|
4
|
-
const api_client_1 = require("../http/api-client");
|
|
1
|
+
import { ApiClient } from '../http/api-client.js';
|
|
5
2
|
const CACHE = new Map();
|
|
6
|
-
async function getSupabaseAuthConfig(baseUrl) {
|
|
3
|
+
export async function getSupabaseAuthConfig(baseUrl) {
|
|
7
4
|
const normalized = normalizeBaseUrl(baseUrl);
|
|
8
5
|
const cached = CACHE.get(normalized);
|
|
9
6
|
if (cached) {
|
|
10
7
|
return cached;
|
|
11
8
|
}
|
|
12
|
-
const client = new
|
|
9
|
+
const client = new ApiClient({ baseUrl: normalized });
|
|
13
10
|
const response = await client.getJson('/api/v1/auth/config');
|
|
14
11
|
const config = {
|
|
15
12
|
url: response.supabase_url,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase-config.js","sourceRoot":"","sources":["../../src/auth/supabase-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"supabase-config.js","sourceRoot":"","sources":["../../src/auth/supabase-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAYlD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAe;IACzD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAyB,qBAAqB,CAAC,CAAC;IACrF,MAAM,MAAM,GAAuB;QACjC,GAAG,EAAE,QAAQ,CAAC,YAAY;QAC1B,OAAO,EAAE,QAAQ,CAAC,iBAAiB;KACpC,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;AAC7C,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,32 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const commander_1 = require("commander");
|
|
10
|
-
const package_json_1 = __importDefault(require("../package.json"));
|
|
11
|
-
const commands_1 = require("./commands");
|
|
12
|
-
function createProgram() {
|
|
13
|
-
const program = new commander_1.Command();
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import { buildAgentCommand, buildAuthCommand, runAgentOrchestrator, } from './commands/index.js';
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
const packageJson = require('../package.json');
|
|
7
|
+
export function createProgram() {
|
|
8
|
+
const program = new Command();
|
|
14
9
|
program
|
|
15
10
|
.name('omnara')
|
|
16
|
-
.description(
|
|
17
|
-
.version(
|
|
11
|
+
.description(packageJson.description ?? 'Command-line interface for Omnara.')
|
|
12
|
+
.version(packageJson.version ?? '0.0.0')
|
|
18
13
|
.option('--backend-url <url>', 'Override backend API base URL used for login')
|
|
19
14
|
.option('--frontend-url <url>', 'Override frontend URL opened during login')
|
|
20
15
|
.action(async () => {
|
|
21
16
|
const options = program.opts();
|
|
22
|
-
await
|
|
17
|
+
await runAgentOrchestrator(options);
|
|
23
18
|
});
|
|
24
19
|
// Register top-level commands here.
|
|
25
|
-
program.addCommand(
|
|
26
|
-
program.addCommand(
|
|
20
|
+
program.addCommand(buildAgentCommand());
|
|
21
|
+
program.addCommand(buildAuthCommand());
|
|
27
22
|
return program;
|
|
28
23
|
}
|
|
29
|
-
async function run(argv) {
|
|
24
|
+
export async function run(argv) {
|
|
30
25
|
const program = createProgram();
|
|
31
26
|
try {
|
|
32
27
|
await program.parseAsync(argv);
|
|
@@ -36,15 +31,21 @@ async function run(argv) {
|
|
|
36
31
|
program.error(error.message, { exitCode: 1 });
|
|
37
32
|
}
|
|
38
33
|
}
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
// Check if this module is being run directly (ESM equivalent of require.main === module)
|
|
35
|
+
function isMainModule() {
|
|
36
|
+
// In ES modules, check if the current file URL matches the executed script
|
|
37
|
+
if (!import.meta.url || !process.argv[1]) {
|
|
41
38
|
return false;
|
|
42
39
|
}
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
40
|
+
// Convert process.argv[1] to a file URL for comparison
|
|
41
|
+
const executedPath = path.resolve(process.argv[1]);
|
|
42
|
+
const currentPath = import.meta.url.startsWith('file://')
|
|
43
|
+
? decodeURIComponent(import.meta.url.slice(7)) // Remove 'file://' prefix
|
|
44
|
+
: import.meta.url;
|
|
45
|
+
// Normalize paths for comparison
|
|
46
|
+
return path.normalize(currentPath) === path.normalize(executedPath);
|
|
46
47
|
}
|
|
47
|
-
if (
|
|
48
|
+
if (isMainModule()) {
|
|
48
49
|
run(process.argv).catch((error) => {
|
|
49
50
|
console.error(error);
|
|
50
51
|
process.exitCode = 1;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAO/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAgB,CAAC;AAE9D,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,WAAW,CAAC,WAAW,IAAI,oCAAoC,CAAC;SAC5E,OAAO,CAAC,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;SACvC,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;SAC7E,MAAM,CAAC,sBAAsB,EAAE,2CAA2C,CAAC;SAC3E,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAuB,CAAC;QACpD,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,oCAAoC;IACpC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEvC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,IAAgB,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+EAA+E;QAC/E,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,SAAS,YAAY;IACnB,2EAA2E;IAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uDAAuD;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACvD,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;QACzE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAEpB,iCAAiC;IACjC,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtE,CAAC;AAED,IAAI,YAAY,EAAE,EAAE,CAAC;IACnB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACzC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/commands/agent.js
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const auth_provider_1 = require("../auth/auth-provider");
|
|
14
|
-
const login_flow_1 = require("../auth/login-flow");
|
|
15
|
-
function buildAgentCommand() {
|
|
16
|
-
const agent = new commander_1.Command('agent').description('Utilities for interacting with the Omnara Claude agent.');
|
|
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.');
|
|
17
13
|
agent
|
|
18
14
|
.command('orchestrator')
|
|
19
15
|
.alias('server')
|
|
@@ -27,6 +23,7 @@ function buildAgentCommand() {
|
|
|
27
23
|
.command('repl')
|
|
28
24
|
.description('Start the Omnara agent REPL connected through the backend relay.')
|
|
29
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')
|
|
30
27
|
.option('--backend-url <url>', 'Override backend API base URL used for login')
|
|
31
28
|
.option('--frontend-url <url>', 'Override frontend URL opened during login')
|
|
32
29
|
.action(async (options) => {
|
|
@@ -45,13 +42,13 @@ function buildAgentCommand() {
|
|
|
45
42
|
});
|
|
46
43
|
return agent;
|
|
47
44
|
}
|
|
48
|
-
async function runAgentOrchestrator(options = {}) {
|
|
49
|
-
const orchestrator = new
|
|
45
|
+
export async function runAgentOrchestrator(options = {}) {
|
|
46
|
+
const orchestrator = new AgentOrchestrator();
|
|
50
47
|
await orchestrator.start();
|
|
51
|
-
const backendUrl =
|
|
52
|
-
const frontendUrl =
|
|
53
|
-
const store = new
|
|
54
|
-
const bridge = new
|
|
48
|
+
const backendUrl = resolveBackendUrl(options.backendUrl);
|
|
49
|
+
const frontendUrl = resolveFrontendUrl(options.frontendUrl);
|
|
50
|
+
const store = new CredentialsStore();
|
|
51
|
+
const bridge = new RelayBridge(orchestrator, {
|
|
55
52
|
store,
|
|
56
53
|
logger: console,
|
|
57
54
|
backendUrl,
|
|
@@ -102,43 +99,44 @@ function extractErrorMessage(error) {
|
|
|
102
99
|
return String(error);
|
|
103
100
|
}
|
|
104
101
|
async function runRepl(options) {
|
|
105
|
-
const backendUrl =
|
|
106
|
-
const frontendUrl =
|
|
107
|
-
const store = new
|
|
108
|
-
const authProvider = await
|
|
102
|
+
const backendUrl = resolveBackendUrl(options.backendUrl);
|
|
103
|
+
const frontendUrl = resolveFrontendUrl(options.frontendUrl);
|
|
104
|
+
const store = new CredentialsStore();
|
|
105
|
+
const authProvider = await createAuthProvider({
|
|
109
106
|
store,
|
|
110
107
|
backendUrl,
|
|
111
108
|
frontendUrl,
|
|
112
109
|
logger: console,
|
|
113
110
|
});
|
|
114
|
-
const client = new
|
|
111
|
+
const client = new ApiClient({ baseUrl: backendUrl });
|
|
115
112
|
const accessToken = await authProvider.getAccessToken();
|
|
116
|
-
const registration = await
|
|
117
|
-
|
|
113
|
+
const registration = await registerRelaySession(client, accessToken, {
|
|
114
|
+
userSessionId: options.userSessionId,
|
|
115
|
+
clientKind: 'cli',
|
|
118
116
|
});
|
|
119
117
|
const wsUrl = buildRelayWebsocketUrl(backendUrl, registration.relayWsPath);
|
|
120
|
-
console.log(`Using agent session ${
|
|
121
|
-
await
|
|
118
|
+
console.log(`Using agent session ${options.sessionId} (user session ${registration.userSessionId})`);
|
|
119
|
+
await runTerminalRepl({
|
|
122
120
|
url: wsUrl,
|
|
123
121
|
headers: {
|
|
124
122
|
authorization: `Bearer ${accessToken}`,
|
|
125
123
|
'x-relay-token': registration.relayToken,
|
|
126
124
|
},
|
|
127
|
-
initialSessionId:
|
|
125
|
+
initialSessionId: options.sessionId,
|
|
128
126
|
});
|
|
129
127
|
}
|
|
130
128
|
async function runVoice(options) {
|
|
131
|
-
const backendUrl =
|
|
132
|
-
const frontendUrl =
|
|
133
|
-
const store = new
|
|
134
|
-
const authProvider = await
|
|
129
|
+
const backendUrl = resolveBackendUrl(options.backendUrl);
|
|
130
|
+
const frontendUrl = resolveFrontendUrl(options.frontendUrl);
|
|
131
|
+
const store = new CredentialsStore();
|
|
132
|
+
const authProvider = await createAuthProvider({
|
|
135
133
|
store,
|
|
136
134
|
backendUrl,
|
|
137
135
|
frontendUrl,
|
|
138
136
|
logger: console,
|
|
139
137
|
});
|
|
140
|
-
const client = new
|
|
141
|
-
const launch = await
|
|
138
|
+
const client = new ApiClient({ baseUrl: backendUrl });
|
|
139
|
+
const launch = await launchVoiceForSession(client, await authProvider.getAccessToken(), {
|
|
142
140
|
sessionId: options.sessionId,
|
|
143
141
|
force: options.force ?? false,
|
|
144
142
|
roomName: options.roomName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAC5C,yDAAyD,CAC1D,CAAC;IAEF,KAAK;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,KAAK,CAAC,QAAQ,CAAC;SACf,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;SAC7E,MAAM,CAAC,sBAAsB,EAAE,2CAA2C,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kEAAkE,CAAC;SAC/E,cAAc,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;SAClF,cAAc,CAAC,wBAAwB,EAAE,0CAA0C,CAAC;SACpF,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;SAC7E,MAAM,CAAC,sBAAsB,EAAE,2CAA2C,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC5C,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2DAA2D,CAAC;SACxE,cAAc,CAAC,mBAAmB,EAAE,8CAA8C,CAAC;SACnF,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;SAC7E,MAAM,CAAC,sBAAsB,EAAE,2CAA2C,CAAC;SAC3E,MAAM,CAAC,oBAAoB,EAAE,kDAAkD,CAAC;SAChF,MAAM,CAAC,SAAS,EAAE,yCAAyC,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEL,OAAO,KAAK,CAAC;AACf,CAAC;AAsBD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAA+B,EAAE;IAC1E,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC7C,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAE3B,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE;QAC3C,KAAK;QACL,MAAM,EAAE,OAAO;QACf,UAAU;QACV,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,EAAE,CAAC;QACb,aAAa,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA2B;IACtD,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,OAAO,GAAG,CAAC,MAAsB,EAAE,EAAE;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,uCAAuC,CAAC,CAAC;QACzE,KAAK,MAAM,EAAE;aACV,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,OAA2B;IAChD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;QAC5C,KAAK;QACL,UAAU;QACV,WAAW;QACX,MAAM,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE;QACnE,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAE3E,OAAO,CAAC,GAAG,CACT,uBAAuB,OAAO,CAAC,SAAS,kBAAkB,YAAY,CAAC,aAAa,GAAG,CACxF,CAAC;IAEF,MAAM,eAAe,CAAC;QACpB,GAAG,EAAE,KAAK;QACV,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,WAAW,EAAE;YACtC,eAAe,EAAE,YAAY,CAAC,UAAU;SACzC;QACD,gBAAgB,EAAE,OAAO,CAAC,SAAS;KACpC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAA4B;IAClD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;QAC5C,KAAK;QACL,UAAU;QACV,WAAW;QACX,MAAM,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC,cAAc,EAAE,EAAE;QACtF,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,mBAAmB,KAAK,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe,EAAE,IAAY;IAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC;QAChF,GAAG,CAAC,QAAQ,GAAG,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -1,29 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const login_flow_1 = require("../auth/login-flow");
|
|
8
|
-
function buildAuthCommand() {
|
|
9
|
-
const auth = new commander_1.Command('auth').description('Authenticate the Omnara CLI.');
|
|
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.');
|
|
10
7
|
auth
|
|
11
8
|
.command('login')
|
|
12
9
|
.description('Authenticate via the browser-based verification flow.')
|
|
13
10
|
.option('--backend-url <url>', 'Backend base URL')
|
|
14
11
|
.option('--frontend-url <url>', 'Frontend URL to open for verification')
|
|
15
12
|
.action(async (options) => {
|
|
16
|
-
const store = new
|
|
17
|
-
const backendUrl =
|
|
13
|
+
const store = new CredentialsStore();
|
|
14
|
+
const backendUrl = resolveBackendUrl(options.backendUrl);
|
|
18
15
|
try {
|
|
19
|
-
await
|
|
16
|
+
await performVerificationLogin({
|
|
20
17
|
backendUrlOption: backendUrl,
|
|
21
18
|
frontendUrlOption: options.frontendUrl,
|
|
22
19
|
store,
|
|
23
20
|
});
|
|
24
21
|
}
|
|
25
22
|
catch (error) {
|
|
26
|
-
if (error instanceof
|
|
23
|
+
if (error instanceof ApiError) {
|
|
27
24
|
console.error(`\nRequest failed (HTTP ${error.status}): ${error.message}`);
|
|
28
25
|
}
|
|
29
26
|
else {
|
|
@@ -36,7 +33,7 @@ function buildAuthCommand() {
|
|
|
36
33
|
.command('logout')
|
|
37
34
|
.description('Remove stored CLI credentials.')
|
|
38
35
|
.action(async () => {
|
|
39
|
-
const store = new
|
|
36
|
+
const store = new CredentialsStore();
|
|
40
37
|
await store.clear();
|
|
41
38
|
console.log('Credentials cleared.');
|
|
42
39
|
});
|
|
@@ -44,7 +41,7 @@ function buildAuthCommand() {
|
|
|
44
41
|
.command('status')
|
|
45
42
|
.description('Show stored CLI credential details.')
|
|
46
43
|
.action(async () => {
|
|
47
|
-
const store = new
|
|
44
|
+
const store = new CredentialsStore();
|
|
48
45
|
const credentials = await store.load();
|
|
49
46
|
if (!credentials) {
|
|
50
47
|
console.log('No credentials stored.');
|
|
@@ -75,7 +72,7 @@ function describeExpiry(iso) {
|
|
|
75
72
|
}
|
|
76
73
|
const diff = timestamp - Date.now();
|
|
77
74
|
const abs = Math.abs(diff);
|
|
78
|
-
const descriptor =
|
|
75
|
+
const descriptor = formatDuration(abs);
|
|
79
76
|
return diff >= 0 ? `expires in ${descriptor}` : `expired ${descriptor} ago`;
|
|
80
77
|
}
|
|
81
78
|
function extractErrorMessage(error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { buildAgentCommand, runAgentOrchestrator, type OrchestratorOptions } from './agent';
|
|
2
|
-
export { buildAuthCommand } from './auth';
|
|
1
|
+
export { buildAgentCommand, runAgentOrchestrator, type OrchestratorOptions } from './agent.js';
|
|
2
|
+
export { buildAuthCommand } from './auth.js';
|
package/dist/commands/index.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.buildAuthCommand = exports.runAgentOrchestrator = exports.buildAgentCommand = void 0;
|
|
4
|
-
var agent_1 = require("./agent");
|
|
5
|
-
Object.defineProperty(exports, "buildAgentCommand", { enumerable: true, get: function () { return agent_1.buildAgentCommand; } });
|
|
6
|
-
Object.defineProperty(exports, "runAgentOrchestrator", { enumerable: true, get: function () { return agent_1.runAgentOrchestrator; } });
|
|
7
|
-
var auth_1 = require("./auth");
|
|
8
|
-
Object.defineProperty(exports, "buildAuthCommand", { enumerable: true, get: function () { return auth_1.buildAuthCommand; } });
|
|
1
|
+
export { buildAgentCommand, runAgentOrchestrator } from './agent.js';
|
|
2
|
+
export { buildAuthCommand } from './auth.js';
|
|
9
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"
|
|
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"}
|