jinn-cli 0.1.1 → 0.3.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/bin/jimmy.js +1 -1
- package/dist/src/connectors/cron/index.d.ts +21 -0
- package/dist/src/connectors/cron/index.d.ts.map +1 -0
- package/dist/src/connectors/cron/index.js +75 -0
- package/dist/src/connectors/cron/index.js.map +1 -0
- package/dist/src/connectors/slack/index.d.ts +13 -5
- package/dist/src/connectors/slack/index.d.ts.map +1 -1
- package/dist/src/connectors/slack/index.js +80 -3
- package/dist/src/connectors/slack/index.js.map +1 -1
- package/dist/src/connectors/slack/threads.d.ts +14 -1
- package/dist/src/connectors/slack/threads.d.ts.map +1 -1
- package/dist/src/connectors/slack/threads.js +23 -2
- package/dist/src/connectors/slack/threads.js.map +1 -1
- package/dist/src/connectors/slack/threads.test.d.ts +2 -0
- package/dist/src/connectors/slack/threads.test.d.ts.map +1 -0
- package/dist/src/connectors/slack/threads.test.js +45 -0
- package/dist/src/connectors/slack/threads.test.js.map +1 -0
- package/dist/src/cron/runner.d.ts +3 -2
- package/dist/src/cron/runner.d.ts.map +1 -1
- package/dist/src/cron/runner.js +48 -89
- package/dist/src/cron/runner.js.map +1 -1
- package/dist/src/cron/scheduler.d.ts +5 -2
- package/dist/src/cron/scheduler.d.ts.map +1 -1
- package/dist/src/cron/scheduler.js +29 -4
- package/dist/src/cron/scheduler.js.map +1 -1
- package/dist/src/engines/claude.js +1 -1
- package/dist/src/engines/claude.js.map +1 -1
- package/dist/src/engines/codex.js +2 -2
- package/dist/src/engines/codex.js.map +1 -1
- package/dist/src/gateway/api.d.ts.map +1 -1
- package/dist/src/gateway/api.js +58 -26
- package/dist/src/gateway/api.js.map +1 -1
- package/dist/src/gateway/server.d.ts.map +1 -1
- package/dist/src/gateway/server.js +5 -3
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/sessions/manager.d.ts +12 -25
- package/dist/src/sessions/manager.d.ts.map +1 -1
- package/dist/src/sessions/manager.js +171 -96
- package/dist/src/sessions/manager.js.map +1 -1
- package/dist/src/sessions/queue.d.ts +5 -0
- package/dist/src/sessions/queue.d.ts.map +1 -1
- package/dist/src/sessions/queue.js +26 -0
- package/dist/src/sessions/queue.js.map +1 -1
- package/dist/src/sessions/queue.test.d.ts +2 -0
- package/dist/src/sessions/queue.test.d.ts.map +1 -0
- package/dist/src/sessions/queue.test.js +28 -0
- package/dist/src/sessions/queue.test.js.map +1 -0
- package/dist/src/sessions/registry.d.ts +12 -1
- package/dist/src/sessions/registry.d.ts.map +1 -1
- package/dist/src/sessions/registry.js +89 -11
- package/dist/src/sessions/registry.js.map +1 -1
- package/dist/src/sessions/registry.test.d.ts +2 -0
- package/dist/src/sessions/registry.test.d.ts.map +1 -0
- package/dist/src/sessions/registry.test.js +41 -0
- package/dist/src/sessions/registry.test.js.map +1 -0
- package/dist/src/shared/types.d.ts +43 -1
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/_next/static/chunks/app/sessions/page-c83c890177c18258.js +1 -0
- package/dist/web/_next/static/chunks/app/settings/page-2583d55551abdf72.js +1 -0
- package/dist/web/chat.html +1 -1
- package/dist/web/chat.txt +1 -1
- package/dist/web/costs.html +2 -2
- package/dist/web/costs.txt +1 -1
- package/dist/web/cron.html +1 -1
- package/dist/web/cron.txt +1 -1
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +1 -1
- package/dist/web/kanban.html +1 -1
- package/dist/web/kanban.txt +1 -1
- package/dist/web/logs.html +2 -2
- package/dist/web/logs.txt +1 -1
- package/dist/web/org.html +1 -1
- package/dist/web/org.txt +1 -1
- package/dist/web/sessions.html +1 -1
- package/dist/web/sessions.txt +2 -2
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +2 -2
- package/dist/web/skills.html +1 -1
- package/dist/web/skills.txt +1 -1
- package/package.json +9 -8
- package/template/config.default.yaml +5 -2
- package/template/migrations/0.2.0/MIGRATION.md +41 -0
- package/template/migrations/0.2.0/files/config.default.yaml +30 -0
- package/LICENSE +0 -21
- package/dist/web/_next/static/chunks/app/sessions/page-2eef6ac7882a28ba.js +0 -1
- package/dist/web/_next/static/chunks/app/settings/page-4fb01b9b09500170.js +0 -1
- /package/dist/web/_next/static/{vLvOwhC8JocJzSHTHKKOv → jt8R5JvUgfB9CMfFwWFr0}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{vLvOwhC8JocJzSHTHKKOv → jt8R5JvUgfB9CMfFwWFr0}/_ssgManifest.js +0 -0
|
@@ -11,6 +11,11 @@ CREATE TABLE IF NOT EXISTS sessions (
|
|
|
11
11
|
engine_session_id TEXT,
|
|
12
12
|
source TEXT NOT NULL,
|
|
13
13
|
source_ref TEXT NOT NULL,
|
|
14
|
+
connector TEXT,
|
|
15
|
+
session_key TEXT,
|
|
16
|
+
reply_context TEXT,
|
|
17
|
+
message_id TEXT,
|
|
18
|
+
transport_meta TEXT,
|
|
14
19
|
employee TEXT,
|
|
15
20
|
model TEXT,
|
|
16
21
|
title TEXT,
|
|
@@ -31,13 +36,36 @@ CREATE TABLE IF NOT EXISTS messages (
|
|
|
31
36
|
const CREATE_MESSAGES_INDEX = `
|
|
32
37
|
CREATE INDEX IF NOT EXISTS idx_messages_session ON messages (session_id, timestamp)
|
|
33
38
|
`;
|
|
39
|
+
const CREATE_SESSION_KEY_INDEX = `
|
|
40
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_session_key ON sessions (session_key, last_activity)
|
|
41
|
+
`;
|
|
42
|
+
function parseJsonObject(value) {
|
|
43
|
+
if (typeof value !== 'string' || !value.trim())
|
|
44
|
+
return null;
|
|
45
|
+
try {
|
|
46
|
+
const parsed = JSON.parse(value);
|
|
47
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : null;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
34
53
|
function rowToSession(row) {
|
|
54
|
+
const replyContext = parseJsonObject(row.reply_context);
|
|
55
|
+
const transportMeta = parseJsonObject(row.transport_meta);
|
|
56
|
+
const sessionKey = (row.session_key || row.source_ref);
|
|
57
|
+
const connector = row.connector ?? row.source ?? null;
|
|
35
58
|
return {
|
|
36
59
|
id: row.id,
|
|
37
60
|
engine: row.engine,
|
|
38
61
|
engineSessionId: row.engine_session_id ?? null,
|
|
39
62
|
source: row.source,
|
|
40
63
|
sourceRef: row.source_ref,
|
|
64
|
+
connector,
|
|
65
|
+
sessionKey,
|
|
66
|
+
replyContext: replyContext,
|
|
67
|
+
messageId: row.message_id ?? null,
|
|
68
|
+
transportMeta,
|
|
41
69
|
employee: row.employee ?? null,
|
|
42
70
|
model: row.model ?? null,
|
|
43
71
|
title: row.title ?? null,
|
|
@@ -57,16 +85,35 @@ export function initDb() {
|
|
|
57
85
|
db.exec(CREATE_TABLE);
|
|
58
86
|
db.exec(CREATE_MESSAGES_TABLE);
|
|
59
87
|
db.exec(CREATE_MESSAGES_INDEX);
|
|
60
|
-
|
|
61
|
-
|
|
88
|
+
migrateSessionsSchema(db);
|
|
89
|
+
db.exec(CREATE_SESSION_KEY_INDEX);
|
|
90
|
+
return db;
|
|
91
|
+
}
|
|
92
|
+
export function migrateSessionsSchema(database) {
|
|
93
|
+
const cols = database.prepare('PRAGMA table_info(sessions)').all();
|
|
62
94
|
const colNames = new Set(cols.map((c) => c.name));
|
|
63
|
-
|
|
64
|
-
|
|
95
|
+
const missingColumns = [
|
|
96
|
+
['title', 'TEXT'],
|
|
97
|
+
['parent_session_id', 'TEXT'],
|
|
98
|
+
['connector', 'TEXT'],
|
|
99
|
+
['session_key', 'TEXT'],
|
|
100
|
+
['reply_context', 'TEXT'],
|
|
101
|
+
['message_id', 'TEXT'],
|
|
102
|
+
['transport_meta', 'TEXT'],
|
|
103
|
+
];
|
|
104
|
+
for (const [name, type] of missingColumns) {
|
|
105
|
+
if (!colNames.has(name)) {
|
|
106
|
+
database.exec(`ALTER TABLE sessions ADD COLUMN ${name} ${type}`);
|
|
107
|
+
}
|
|
65
108
|
}
|
|
66
|
-
|
|
67
|
-
|
|
109
|
+
const refreshedCols = database.prepare('PRAGMA table_info(sessions)').all();
|
|
110
|
+
const refreshedNames = new Set(refreshedCols.map((c) => c.name));
|
|
111
|
+
if (refreshedNames.has('session_key')) {
|
|
112
|
+
database.exec(`UPDATE sessions SET session_key = COALESCE(session_key, source_ref) WHERE session_key IS NULL OR session_key = ''`);
|
|
113
|
+
}
|
|
114
|
+
if (refreshedNames.has('connector')) {
|
|
115
|
+
database.exec(`UPDATE sessions SET connector = COALESCE(connector, source) WHERE connector IS NULL OR connector = ''`);
|
|
68
116
|
}
|
|
69
|
-
return db;
|
|
70
117
|
}
|
|
71
118
|
function getNextSessionNumber() {
|
|
72
119
|
const db = initDb();
|
|
@@ -88,17 +135,29 @@ export function createSession(opts) {
|
|
|
88
135
|
const now = new Date().toISOString();
|
|
89
136
|
const id = uuidv4();
|
|
90
137
|
const title = opts.title ?? generateTitle(opts.prompt);
|
|
138
|
+
const sessionKey = opts.sessionKey ?? opts.sourceRef;
|
|
139
|
+
const connector = opts.connector ?? opts.source;
|
|
140
|
+
const replyContext = opts.replyContext ? JSON.stringify(opts.replyContext) : null;
|
|
141
|
+
const transportMeta = opts.transportMeta ? JSON.stringify(opts.transportMeta) : null;
|
|
91
142
|
const stmt = db.prepare(`
|
|
92
|
-
INSERT INTO sessions (
|
|
93
|
-
|
|
143
|
+
INSERT INTO sessions (
|
|
144
|
+
id, engine, source, source_ref, connector, session_key, reply_context, message_id, transport_meta,
|
|
145
|
+
employee, model, title, parent_session_id, status, created_at, last_activity
|
|
146
|
+
)
|
|
147
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'idle', ?, ?)
|
|
94
148
|
`);
|
|
95
|
-
stmt.run(id, opts.engine, opts.source, opts.sourceRef, opts.employee ?? null, opts.model ?? null, title, opts.parentSessionId ?? null, now, now);
|
|
149
|
+
stmt.run(id, opts.engine, opts.source, opts.sourceRef, connector, sessionKey, replyContext, opts.messageId ?? null, transportMeta, opts.employee ?? null, opts.model ?? null, title, opts.parentSessionId ?? null, now, now);
|
|
96
150
|
return {
|
|
97
151
|
id,
|
|
98
152
|
engine: opts.engine,
|
|
99
153
|
engineSessionId: null,
|
|
100
154
|
source: opts.source,
|
|
101
155
|
sourceRef: opts.sourceRef,
|
|
156
|
+
connector,
|
|
157
|
+
sessionKey,
|
|
158
|
+
replyContext: opts.replyContext ?? null,
|
|
159
|
+
messageId: opts.messageId ?? null,
|
|
160
|
+
transportMeta: opts.transportMeta ?? null,
|
|
102
161
|
employee: opts.employee ?? null,
|
|
103
162
|
model: opts.model ?? null,
|
|
104
163
|
title,
|
|
@@ -115,8 +174,11 @@ export function getSession(id) {
|
|
|
115
174
|
return row ? rowToSession(row) : undefined;
|
|
116
175
|
}
|
|
117
176
|
export function getSessionBySourceRef(sourceRef) {
|
|
177
|
+
return getSessionBySessionKey(sourceRef);
|
|
178
|
+
}
|
|
179
|
+
export function getSessionBySessionKey(sessionKey) {
|
|
118
180
|
const db = initDb();
|
|
119
|
-
const row = db.prepare('SELECT * FROM sessions WHERE
|
|
181
|
+
const row = db.prepare('SELECT * FROM sessions WHERE session_key = ? ORDER BY last_activity DESC LIMIT 1').get(sessionKey);
|
|
120
182
|
return row ? rowToSession(row) : undefined;
|
|
121
183
|
}
|
|
122
184
|
export function updateSession(id, updates) {
|
|
@@ -131,6 +193,22 @@ export function updateSession(id, updates) {
|
|
|
131
193
|
sets.push('status = ?');
|
|
132
194
|
values.push(updates.status);
|
|
133
195
|
}
|
|
196
|
+
if (updates.model !== undefined) {
|
|
197
|
+
sets.push('model = ?');
|
|
198
|
+
values.push(updates.model);
|
|
199
|
+
}
|
|
200
|
+
if (updates.replyContext !== undefined) {
|
|
201
|
+
sets.push('reply_context = ?');
|
|
202
|
+
values.push(updates.replyContext ? JSON.stringify(updates.replyContext) : null);
|
|
203
|
+
}
|
|
204
|
+
if (updates.messageId !== undefined) {
|
|
205
|
+
sets.push('message_id = ?');
|
|
206
|
+
values.push(updates.messageId);
|
|
207
|
+
}
|
|
208
|
+
if (updates.transportMeta !== undefined) {
|
|
209
|
+
sets.push('transport_meta = ?');
|
|
210
|
+
values.push(updates.transportMeta ? JSON.stringify(updates.transportMeta) : null);
|
|
211
|
+
}
|
|
134
212
|
if (updates.lastActivity !== undefined) {
|
|
135
213
|
sets.push('last_activity = ?');
|
|
136
214
|
values.push(updates.lastActivity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/sessions/registry.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,IAAI,EAAqB,CAAC;AAE1B,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/sessions/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../src/sessions/registry.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import test from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import Database from "better-sqlite3";
|
|
4
|
+
import { migrateSessionsSchema } from "./registry.js";
|
|
5
|
+
test("migrateSessionsSchema upgrades an old sessions table before session_key usage", () => {
|
|
6
|
+
const db = new Database(":memory:");
|
|
7
|
+
db.exec(`
|
|
8
|
+
CREATE TABLE sessions (
|
|
9
|
+
id TEXT PRIMARY KEY,
|
|
10
|
+
engine TEXT NOT NULL,
|
|
11
|
+
engine_session_id TEXT,
|
|
12
|
+
source TEXT NOT NULL,
|
|
13
|
+
source_ref TEXT NOT NULL,
|
|
14
|
+
employee TEXT,
|
|
15
|
+
model TEXT,
|
|
16
|
+
status TEXT DEFAULT 'idle',
|
|
17
|
+
created_at TEXT NOT NULL,
|
|
18
|
+
last_activity TEXT NOT NULL,
|
|
19
|
+
last_error TEXT
|
|
20
|
+
)
|
|
21
|
+
`);
|
|
22
|
+
db.exec(`
|
|
23
|
+
INSERT INTO sessions (
|
|
24
|
+
id, engine, engine_session_id, source, source_ref, employee, model, status, created_at, last_activity, last_error
|
|
25
|
+
) VALUES (
|
|
26
|
+
's1', 'claude', NULL, 'slack', 'slack:C123', NULL, NULL, 'idle', '2026-03-10T00:00:00.000Z', '2026-03-10T00:00:00.000Z', NULL
|
|
27
|
+
)
|
|
28
|
+
`);
|
|
29
|
+
migrateSessionsSchema(db);
|
|
30
|
+
const cols = db.prepare("PRAGMA table_info(sessions)").all();
|
|
31
|
+
const names = new Set(cols.map((col) => col.name));
|
|
32
|
+
assert.equal(names.has("session_key"), true);
|
|
33
|
+
assert.equal(names.has("connector"), true);
|
|
34
|
+
assert.equal(names.has("reply_context"), true);
|
|
35
|
+
assert.equal(names.has("message_id"), true);
|
|
36
|
+
assert.equal(names.has("transport_meta"), true);
|
|
37
|
+
const row = db.prepare("SELECT session_key, connector FROM sessions WHERE id = 's1'").get();
|
|
38
|
+
assert.equal(row.session_key, "slack:C123");
|
|
39
|
+
assert.equal(row.connector, "slack");
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=registry.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/sessions/registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,IAAI,CAAC,+EAA+E,EAAE,GAAG,EAAE;IACzF,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;IACH,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAE1B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAA6B,CAAC;IACxF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;IAEhD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,EAGxF,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC"}
|
|
@@ -41,25 +41,51 @@ export interface EngineResult {
|
|
|
41
41
|
numTurns?: number;
|
|
42
42
|
error?: string;
|
|
43
43
|
}
|
|
44
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
45
|
+
export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
|
|
46
|
+
export interface JsonObject {
|
|
47
|
+
[key: string]: JsonValue;
|
|
48
|
+
}
|
|
49
|
+
export interface ConnectorCapabilities {
|
|
50
|
+
threading: boolean;
|
|
51
|
+
messageEdits: boolean;
|
|
52
|
+
reactions: boolean;
|
|
53
|
+
attachments: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface ConnectorHealth {
|
|
56
|
+
status: "running" | "stopped" | "error";
|
|
57
|
+
detail?: string;
|
|
58
|
+
capabilities: ConnectorCapabilities;
|
|
59
|
+
}
|
|
60
|
+
export type ReplyContext = JsonObject;
|
|
44
61
|
export interface Connector {
|
|
45
62
|
name: string;
|
|
46
63
|
start(): Promise<void>;
|
|
47
64
|
stop(): Promise<void>;
|
|
65
|
+
getCapabilities(): ConnectorCapabilities;
|
|
66
|
+
getHealth(): ConnectorHealth;
|
|
67
|
+
reconstructTarget(replyContext: ReplyContext): Target;
|
|
48
68
|
sendMessage(target: Target, text: string): Promise<string | void>;
|
|
69
|
+
replyMessage(target: Target, text: string): Promise<string | void>;
|
|
49
70
|
addReaction(target: Target, emoji: string): Promise<void>;
|
|
50
71
|
removeReaction(target: Target, emoji: string): Promise<void>;
|
|
51
72
|
editMessage(target: Target, text: string): Promise<void>;
|
|
52
73
|
onMessage(handler: (msg: IncomingMessage) => void): void;
|
|
53
74
|
}
|
|
54
75
|
export interface IncomingMessage {
|
|
76
|
+
connector: string;
|
|
55
77
|
source: string;
|
|
78
|
+
sessionKey: string;
|
|
79
|
+
replyContext: ReplyContext;
|
|
80
|
+
messageId?: string;
|
|
56
81
|
channel: string;
|
|
57
82
|
thread?: string;
|
|
58
83
|
user: string;
|
|
59
84
|
userId: string;
|
|
60
85
|
text: string;
|
|
61
86
|
attachments: Attachment[];
|
|
62
|
-
raw:
|
|
87
|
+
raw: unknown;
|
|
88
|
+
transportMeta?: JsonObject;
|
|
63
89
|
}
|
|
64
90
|
export interface Attachment {
|
|
65
91
|
name: string;
|
|
@@ -71,6 +97,7 @@ export interface Target {
|
|
|
71
97
|
channel: string;
|
|
72
98
|
thread?: string;
|
|
73
99
|
messageTs?: string;
|
|
100
|
+
replyContext?: ReplyContext;
|
|
74
101
|
}
|
|
75
102
|
export interface Session {
|
|
76
103
|
id: string;
|
|
@@ -78,11 +105,18 @@ export interface Session {
|
|
|
78
105
|
engineSessionId: string | null;
|
|
79
106
|
source: string;
|
|
80
107
|
sourceRef: string;
|
|
108
|
+
connector: string | null;
|
|
109
|
+
sessionKey: string;
|
|
110
|
+
replyContext: ReplyContext | null;
|
|
111
|
+
messageId: string | null;
|
|
112
|
+
transportMeta: JsonObject | null;
|
|
81
113
|
employee: string | null;
|
|
82
114
|
model: string | null;
|
|
83
115
|
title: string | null;
|
|
84
116
|
parentSessionId: string | null;
|
|
85
117
|
status: "idle" | "running" | "error";
|
|
118
|
+
queueDepth?: number;
|
|
119
|
+
transportState?: "idle" | "queued" | "running" | "error";
|
|
86
120
|
createdAt: string;
|
|
87
121
|
lastActivity: string;
|
|
88
122
|
lastError: string | null;
|
|
@@ -123,6 +157,13 @@ export interface Department {
|
|
|
123
157
|
}
|
|
124
158
|
export interface WebConnectorConfig {
|
|
125
159
|
}
|
|
160
|
+
export interface SlackConnectorConfig {
|
|
161
|
+
appToken: string;
|
|
162
|
+
botToken: string;
|
|
163
|
+
shareSessionInChannel?: boolean;
|
|
164
|
+
allowFrom?: string | string[];
|
|
165
|
+
ignoreOldMessagesOnBoot?: boolean;
|
|
166
|
+
}
|
|
126
167
|
export interface PortalConfig {
|
|
127
168
|
portalName?: string;
|
|
128
169
|
operatorName?: string;
|
|
@@ -152,6 +193,7 @@ export interface JinnConfig {
|
|
|
152
193
|
};
|
|
153
194
|
connectors: Record<string, any> & {
|
|
154
195
|
web?: WebConnectorConfig;
|
|
196
|
+
slack?: SlackConnectorConfig;
|
|
155
197
|
};
|
|
156
198
|
logging: {
|
|
157
199
|
file: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,mBAAoB,SAAQ,MAAM;IACjD,iEAAiE;IACjE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,wEAAwE;IACxE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,8DAA8D;IAC9D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,mBAAmB,CAEnF;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
package/dist/web/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--jt8R5JvUgfB9CMfFwWFr0--><html lang="en" data-theme="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/4a6a5bca9238c104.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0f39b7e91dce9791.js"/><script src="/_next/static/chunks/8e6518bb-c26e82767f1faf66.js" async=""></script><script src="/_next/static/chunks/743-5bb03adbb0e4ddec.js" async=""></script><script src="/_next/static/chunks/main-app-437f51faf74fbb3b.js" async=""></script><script src="/_next/static/chunks/app/layout-5129b67d5f126cf0.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="description" content="AI Gateway Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-0f39b7e91dce9791.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1150,[\"177\",\"static/chunks/app/layout-5129b67d5f126cf0.js\"],\"ClientProviders\"]\n3:I[8954,[],\"\"]\n4:I[5640,[],\"\"]\n5:I[2051,[],\"OutletBoundary\"]\n7:I[6658,[],\"AsyncMetadataOutlet\"]\n9:I[2051,[],\"ViewportBoundary\"]\nb:I[2051,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7698,[],\"\"]\n:HL[\"/_next/static/css/4a6a5bca9238c104.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"jt8R5JvUgfB9CMfFwWFr0\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4a6a5bca9238c104.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"meta\",\"0\",{\"name\":\"description\",\"content\":\"AI Gateway Dashboard\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[898],{1142:(e,t,a)=>{"use strict";a.d(t,{Xi:()=>c,av:()=>u,j7:()=>d,tU:()=>o});var r=a(8111);a(5271);var n=a(3916),i=a(7534),s=a(1397);function o(e){let{className:t,orientation:a="horizontal",...n}=e;return(0,r.jsx)(i.bL,{"data-slot":"tabs","data-orientation":a,orientation:a,className:(0,s.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...n})}let l=(0,n.F)("rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function d(e){let{className:t,variant:a="default",...n}=e;return(0,r.jsx)(i.B8,{"data-slot":"tabs-list","data-variant":a,className:(0,s.cn)(l({variant:a}),t),...n})}function c(e){let{className:t,...a}=e;return(0,r.jsx)(i.l9,{"data-slot":"tabs-trigger",className:(0,s.cn)("focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground","after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",t),...a})}function u(e){let{className:t,...a}=e;return(0,r.jsx)(i.UC,{"data-slot":"tabs-content",className:(0,s.cn)("flex-1 outline-none",t),...a})}},1397:(e,t,a)=>{"use strict";a.d(t,{cn:()=>i});var r=a(5242),n=a(3065);function i(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return(0,n.QP)((0,r.$)(t))}},2876:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});let r=(0,a(1983).A)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},9033:(e,t,a)=>{Promise.resolve().then(a.bind(a,9504))},9504:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>S});var r=a(8111),n=a(5271),i=a(3176),s=a(1298),o=a(9772),l=a(3916),d=a(1373),c=a(1397);let u=(0,l.F)("inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function v(e){let{className:t,variant:a="default",asChild:n=!1,...i}=e,s=n?d.bL:"span";return(0,r.jsx)(s,{"data-slot":"badge","data-variant":a,className:(0,c.cn)(u({variant:a}),t),...i})}var p=a(2755);let x={idle:"secondary",queued:"outline",running:"default",error:"destructive"},g={idle:"Idle",queued:"Queued",running:"Running",error:"Error"};function f(e){var t;let{sessions:a,selectedId:s,onSelect:l,onDeleted:d}=e,{settings:c}=(0,p.t0)(),u=null!=(t=c.portalName)?t:"Jinn",[f,h]=(0,n.useState)(null),[b,y]=(0,n.useState)(null);async function m(){if(b){try{await i.F.deleteSession(b),null==d||d()}catch(e){}y(null)}}return 0===a.length?(0,r.jsx)(o.Zp,{children:(0,r.jsx)(o.Wu,{children:(0,r.jsx)("div",{style:{textAlign:"center",padding:"var(--space-6)",color:"var(--text-tertiary)",fontSize:"var(--text-body)"},children:"No sessions found"})})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)"},onClick:()=>h(null),children:a.map(e=>{var t;return(0,r.jsx)(o.Zp,{className:"py-3 cursor-pointer transition-colors",onClick:()=>l(e.id),onContextMenu:t=>{var a;return a=e.id,void(t.preventDefault(),h({x:t.clientX,y:t.clientY,sessionId:a}))},style:{cursor:"pointer",borderColor:s===e.id?"var(--accent)":void 0,background:s===e.id?"color-mix(in srgb, var(--accent) 5%, var(--bg-card, var(--bg)))":void 0},children:(0,r.jsxs)(o.Wu,{className:"flex items-center justify-between gap-4",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",flex:1,minWidth:0},children:[(0,r.jsx)("div",{style:{width:36,height:36,borderRadius:"var(--radius-sm, 8px)",background:"var(--fill-secondary)",display:"flex",alignItems:"center",justifyContent:"center",fontFamily:"var(--font-mono)",fontSize:"var(--text-caption1)",fontWeight:"var(--weight-semibold)",color:"var(--text-secondary)",flexShrink:0,textTransform:"uppercase"},children:e.engine.charAt(0)}),(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",marginBottom:2},children:[(0,r.jsx)("span",{style:{fontSize:"var(--text-body)",fontWeight:"var(--weight-semibold)",color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title||e.employee||u}),(0,r.jsx)(v,{variant:null!=(t=x[e.status])?t:"secondary",children:g[e.transportState||e.status]||e.transportState||e.status})]}),(0,r.jsxs)("div",{style:{fontSize:"var(--text-caption1)",color:"var(--text-tertiary)",display:"flex",gap:"var(--space-3)"},children:[(0,r.jsx)("span",{children:e.connector||e.source}),(0,r.jsx)("span",{children:e.employee||u}),"number"==typeof e.queueDepth&&e.queueDepth>0?(0,r.jsxs)("span",{children:["Queue ",e.queueDepth]}):null]})]})]}),(0,r.jsx)("span",{style:{fontSize:"var(--text-caption2)",color:"var(--text-quaternary)",whiteSpace:"nowrap",flexShrink:0},children:function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return"".concat(t,"s ago");let a=Math.floor(t/60);if(a<60)return"".concat(a,"m ago");let r=Math.floor(a/60);if(r<24)return"".concat(r,"h ago");let n=Math.floor(r/24);return"".concat(n,"d ago")}(e.lastActivity)})]})},e.id)})}),f&&(0,r.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:50},onClick:()=>h(null),children:(0,r.jsx)("div",{style:{position:"fixed",top:f.y,left:f.x,background:"var(--bg)",border:"1px solid var(--separator)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-lg)",padding:"var(--space-1)",zIndex:51,minWidth:160},onClick:e=>e.stopPropagation(),children:(0,r.jsxs)("button",{onClick:()=>{var e;return e=f.sessionId,void(h(null),y(e))},style:{width:"100%",textAlign:"left",padding:"var(--space-2) var(--space-3)",fontSize:"var(--text-footnote)",color:"var(--system-red)",background:"transparent",border:"none",cursor:"pointer",borderRadius:"var(--radius-sm)",display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,r.jsx)("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]}),"Delete Session"]})})}),b&&(0,r.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.5)",zIndex:60,display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>y(null),children:(0,r.jsxs)("div",{style:{background:"var(--bg)",borderRadius:"var(--radius-lg)",padding:"var(--space-6)",maxWidth:400,width:"90%",boxShadow:"var(--shadow-overlay)"},onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("h3",{style:{fontSize:"var(--text-headline)",fontWeight:"var(--weight-bold)",color:"var(--text-primary)",marginBottom:"var(--space-2)"},children:"Delete Session?"}),(0,r.jsx)("p",{style:{fontSize:"var(--text-body)",color:"var(--text-secondary)",marginBottom:"var(--space-5)"},children:"This will permanently delete the session and all its messages. This cannot be undone."}),(0,r.jsxs)("div",{style:{display:"flex",gap:"var(--space-3)",justifyContent:"flex-end"},children:[(0,r.jsx)("button",{onClick:()=>y(null),style:{padding:"var(--space-2) var(--space-4)",borderRadius:"var(--radius-md)",background:"var(--fill-tertiary)",color:"var(--text-primary)",border:"none",cursor:"pointer",fontSize:"var(--text-body)",fontWeight:"var(--weight-medium)"},children:"Cancel"}),(0,r.jsx)("button",{onClick:m,style:{padding:"var(--space-2) var(--space-4)",borderRadius:"var(--radius-md)",background:"var(--system-red)",color:"#fff",border:"none",cursor:"pointer",fontSize:"var(--text-body)",fontWeight:"var(--weight-semibold)"},children:"Delete"})]})]})})]})}let h={idle:"secondary",queued:"outline",running:"default",error:"destructive"};function b(e){let{label:t,value:a}=e;return(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"var(--space-3)",padding:"var(--space-2) 0",borderBottom:"1px solid var(--separator)"},children:[(0,r.jsx)("span",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-medium)",textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--text-tertiary)",flexShrink:0},children:t}),(0,r.jsx)("span",{style:{fontSize:"var(--text-body)",color:"var(--text-primary)",textAlign:"right",wordBreak:"break-all"},children:a||(0,r.jsx)("span",{style:{color:"var(--text-quaternary)"},children:"--"})})]})}function y(e){return new Date(e).toLocaleString()}function m(e){var t,a;let{session:s,onClose:l,onNavigate:d}=e,{settings:c}=(0,p.t0)(),u=null!=(t=c.portalName)?t:"Jinn",[x,g]=(0,n.useState)([]);return(0,n.useEffect)(()=>{i.F.getSessionChildren(s.id).then(e=>g(e)).catch(()=>g([]))},[s.id]),(0,r.jsxs)(o.Zp,{children:[(0,r.jsx)(o.aR,{children:(0,r.jsx)(o.ZB,{style:{fontSize:"var(--text-headline)",color:"var(--text-primary)"},children:s.title||"Session Detail"})}),(0,r.jsx)(o.Wu,{children:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,r.jsx)(b,{label:"Session ID",value:(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-caption1)"},children:s.id})}),(0,r.jsx)(b,{label:"Engine",value:(0,r.jsxs)("span",{style:{textTransform:"capitalize"},children:[s.engine,s.model?" (".concat(s.model,")"):""]})}),(0,r.jsx)(b,{label:"Connector",value:s.connector||s.source}),(0,r.jsx)(b,{label:"Session Key",value:s.sessionKey}),(0,r.jsx)(b,{label:"Source",value:s.source}),(0,r.jsx)(b,{label:"Employee",value:s.employee||u}),(0,r.jsx)(b,{label:"Status",value:(0,r.jsx)(v,{variant:null!=(a=h[s.transportState||s.status])?a:"secondary",children:(s.transportState||s.status).charAt(0).toUpperCase()+(s.transportState||s.status).slice(1)})}),(0,r.jsx)(b,{label:"Queue Depth",value:"number"==typeof s.queueDepth?String(s.queueDepth):"--"}),(0,r.jsx)(b,{label:"Message ID",value:s.messageId||"--"}),(0,r.jsx)(b,{label:"Created",value:y(s.createdAt)}),(0,r.jsx)(b,{label:"Last Activity",value:y(s.lastActivity)}),s.parentSessionId&&(0,r.jsx)(b,{label:"Parent Session",value:(0,r.jsxs)("button",{onClick:()=>null==d?void 0:d(s.parentSessionId),style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-caption1)",color:"var(--accent)",background:"none",border:"none",cursor:"pointer",textDecoration:"underline",padding:0},children:[s.parentSessionId.slice(0,12),"..."]})}),x.length>0&&(0,r.jsxs)("div",{style:{marginTop:"var(--space-3)"},children:[(0,r.jsxs)("span",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-medium)",textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--text-tertiary)",display:"block",marginBottom:"var(--space-2)"},children:["Child Sessions (",x.length,")"]}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-1)"},children:x.map(e=>{var t;return(0,r.jsxs)("button",{onClick:()=>null==d?void 0:d(e.id),style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"var(--space-2) var(--space-3)",background:"var(--fill-secondary)",borderRadius:"var(--radius-sm, 8px)",border:"none",cursor:"pointer",textAlign:"left"},children:[(0,r.jsx)("span",{style:{fontSize:"var(--text-caption1)",color:"var(--text-primary)",fontWeight:"var(--weight-medium)"},children:e.title||e.employee||"Session"}),(0,r.jsx)(v,{variant:null!=(t=h[e.status])?t:"secondary",children:e.status})]},e.id)})})]}),s.lastError&&(0,r.jsxs)("div",{style:{marginTop:"var(--space-3)"},children:[(0,r.jsx)("span",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-medium)",textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--system-red)",display:"block",marginBottom:"var(--space-2)"},children:"Last Error"}),(0,r.jsx)("div",{style:{fontSize:"var(--text-caption1)",fontFamily:"var(--font-mono)",color:"var(--system-red)",background:"color-mix(in srgb, var(--system-red) 10%, transparent)",borderRadius:"var(--radius-sm, 8px)",padding:"var(--space-3)"},children:s.lastError})]})]})})]})}var j=a(3073),k=a(1142),w=a(2876);function S(){let[e,t]=(0,n.useState)([]),[a,o]=(0,n.useState)(null),[l,d]=(0,n.useState)(!0),[c,u]=(0,n.useState)(null),[v,p]=(0,n.useState)("all"),x=(0,n.useRef)(null),g=(0,n.useCallback)(async()=>{try{u(null);let e=await i.F.getSessions();t(e)}catch(e){u(e instanceof Error?e.message:"Failed to load sessions")}finally{d(!1)}},[]);(0,n.useEffect)(()=>{g()},[g]),(0,n.useEffect)(()=>{let e=(0,s.E)(e=>{e.startsWith("session")&&g()});return()=>e.close()},[g]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&a&&o(null)}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a]),(0,n.useEffect)(()=>{a&&x.current&&x.current.focus()},[a]);let h=e.find(e=>e.id===a)||null,b="all"===v?e:e.filter(e=>e.status===v);return(0,r.jsx)(j.M,{children:(0,r.jsxs)("div",{style:{display:"flex",height:"100%",position:"relative",background:"var(--bg)"},children:[(0,r.jsxs)("div",{style:{flex:1,height:"100%",overflowY:"auto",padding:"var(--space-6)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"var(--space-5)"},children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{style:{fontSize:"var(--text-title2)",fontWeight:"var(--weight-bold)",color:"var(--text-primary)",marginBottom:"var(--space-1)"},children:"Sessions"}),(0,r.jsx)("p",{style:{fontSize:"var(--text-body)",color:"var(--text-tertiary)"},children:"Active and recent engine sessions"})]}),(0,r.jsxs)("button",{onClick:()=>{d(!0),g()},style:{display:"flex",alignItems:"center",gap:"var(--space-2)",padding:"var(--space-2) var(--space-3)",borderRadius:"var(--radius-md, 12px)",background:"var(--fill-secondary)",color:"var(--text-secondary)",border:"none",cursor:"pointer",fontSize:"var(--text-body)",fontWeight:"var(--weight-medium)"},children:[(0,r.jsx)(w.A,{size:14}),"Refresh"]})]}),c&&(0,r.jsx)("div",{style:{marginBottom:"var(--space-4)",borderRadius:"var(--radius-md, 12px)",background:"color-mix(in srgb, var(--system-red) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--system-red) 30%, transparent)",padding:"var(--space-3) var(--space-4)",fontSize:"var(--text-body)",color:"var(--system-red)"},children:c}),(0,r.jsxs)(k.tU,{value:v,onValueChange:p,children:[(0,r.jsxs)(k.j7,{style:{marginBottom:"var(--space-4)"},children:[(0,r.jsxs)(k.Xi,{value:"all",children:["All (",e.length,")"]}),(0,r.jsxs)(k.Xi,{value:"running",children:["Running (",e.filter(e=>"running"===e.status).length,")"]}),(0,r.jsxs)(k.Xi,{value:"idle",children:["Idle (",e.filter(e=>"idle"===e.status).length,")"]}),(0,r.jsxs)(k.Xi,{value:"error",children:["Error (",e.filter(e=>"error"===e.status).length,")"]})]}),(0,r.jsx)(k.av,{value:v,children:l&&0===e.length?(0,r.jsx)("div",{style:{textAlign:"center",padding:"var(--space-8)",color:"var(--text-tertiary)",fontSize:"var(--text-body)"},children:"Loading sessions..."}):(0,r.jsx)(f,{sessions:b,selectedId:a,onSelect:o,onDeleted:g})})]})]}),h&&(0,r.jsx)("div",{className:"fixed inset-0 z-30 lg:hidden",style:{background:"rgba(0,0,0,0.5)"},onClick:()=>o(null)}),h&&(0,r.jsx)("div",{style:{position:"absolute",top:0,right:0,bottom:0,zIndex:30},children:(0,r.jsxs)("div",{style:{width:400,maxWidth:"100vw",height:"100%",overflowY:"auto",background:"var(--bg)",boxShadow:"var(--shadow-overlay)",display:"flex",flexDirection:"column"},children:[(0,r.jsx)("div",{style:{position:"sticky",top:0,zIndex:10,display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"var(--space-3) var(--space-4)",background:"var(--bg)"},children:(0,r.jsx)("button",{ref:x,onClick:()=>o(null),"aria-label":"Close detail panel",style:{width:30,height:30,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"var(--fill-tertiary)",color:"var(--text-secondary)",border:"none",cursor:"pointer",fontSize:14},children:"✕"})}),(0,r.jsx)("div",{style:{padding:"0 var(--space-4) var(--space-6)"},children:(0,r.jsx)(m,{session:h,onClose:()=>o(null)})})]})})]})})}},9772:(e,t,a)=>{"use strict";a.d(t,{Wu:()=>l,ZB:()=>o,Zp:()=>i,aR:()=>s});var r=a(8111);a(5271);var n=a(1397);function i(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,n.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...a})}function s(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-header",className:(0,n.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...a})}function o(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-title",className:(0,n.cn)("leading-none font-semibold",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,n.cn)("px-6",t),...a})}}},e=>{e.O(0,[704,590,198,534,73,814,743,358],()=>e(e.s=9033)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662],{7649:(e,a,l)=>{Promise.resolve().then(l.bind(l,7774))},7774:(e,a,l)=>{"use strict";l.r(a),l.d(a,{default:()=>k});var t=l(8111),r=l(5271),n=l(1509),o=l(1983);let i=(0,o.A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),s=(0,o.A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),d=(0,o.A)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]),c=(0,o.A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);var u=l(3073),v=l(2755),p=l(7460),g=l(9834),x=l(3176);let h=[{label:"Red",value:"#EF4444"},{label:"Orange",value:"#F97316"},{label:"Amber",value:"#F59E0B"},{label:"Yellow",value:"#EAB308"},{label:"Lime",value:"#84CC16"},{label:"Green",value:"#22C55E"},{label:"Emerald",value:"#10B981"},{label:"Cyan",value:"#06B6D4"},{label:"Blue",value:"#3B82F6"},{label:"Indigo",value:"#6366F1"},{label:"Violet",value:"#8B5CF6"},{label:"Pink",value:"#EC4899"}];function b(e){let{title:a,children:l}=e;return(0,t.jsxs)("section",{style:{marginBottom:"var(--space-6)"},children:[(0,t.jsx)("div",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-semibold)",letterSpacing:"var(--tracking-wide)",textTransform:"uppercase",color:"var(--text-tertiary)",padding:"0 var(--space-2) var(--space-2)"},children:a}),(0,t.jsx)("div",{style:{background:"var(--material-regular)",borderRadius:"var(--radius-md)",border:"1px solid var(--separator)",padding:"var(--space-4)"},children:l})]})}function m(e){let{label:a,children:l}=e;return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"var(--space-2) 0",gap:"var(--space-4)"},children:[(0,t.jsx)("label",{style:{fontSize:"var(--text-subheadline)",color:"var(--text-secondary)",flexShrink:0},children:a}),(0,t.jsx)("div",{style:{width:240,flexShrink:0},children:l})]})}function f(e){let{value:a,onChange:l,type:r="text",placeholder:n}=e;return(0,t.jsx)("input",{type:r,value:a,onChange:e=>l(e.target.value),placeholder:n,className:"apple-input",style:{width:"100%",background:"var(--bg-secondary)",border:"1px solid var(--separator)",borderRadius:"var(--radius-sm)",padding:"6px 10px",fontSize:"var(--text-footnote)",color:"var(--text-primary)"}})}function y(e){let{value:a,onChange:l,options:r}=e;return(0,t.jsx)("select",{value:a,onChange:e=>l(e.target.value),style:{width:"100%",background:"var(--bg-secondary)",border:"1px solid var(--separator)",borderRadius:"var(--radius-sm)",padding:"6px 10px",fontSize:"var(--text-footnote)",color:"var(--text-primary)",cursor:"pointer"},children:r.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))})}function j(e){let{checked:a,onChange:l}=e;return(0,t.jsx)("button",{role:"switch","aria-checked":a,onClick:()=>l(!a),style:{width:44,height:24,borderRadius:12,background:a?"var(--system-green)":"var(--fill-primary)",border:"none",cursor:"pointer",position:"relative",flexShrink:0,transition:"background 200ms var(--ease-smooth)"},children:(0,t.jsx)("span",{style:{position:"absolute",top:2,left:a?22:2,width:20,height:20,borderRadius:"50%",background:"#fff",boxShadow:"0 1px 3px rgba(0,0,0,0.2)",transition:"left 200ms var(--ease-spring)"}})})}function k(){var e,a,l,o,k,C,S,w,z,B,R,E,F,W,N,I,M,T,A,D,P,L,O,G,H,_,V,U,q,J,K,Y,$,Q,X,Z,ee,ea,el,et,er,en,eo,ei,es,ed,ec,eu,ev,ep,eg,ex,eh,eb,em,ef,ey,ej,ek,eC,eS,ew,ez,eB,eR;let{settings:eE,setAccentColor:eF,setPortalName:eW,setPortalSubtitle:eN,setOperatorName:eI,setPortalEmoji:eM,setLanguage:eT,resetAll:eA}=(0,v.t0)(),{theme:eD,setTheme:eP}=(0,p.D)(),[eL,eO]=(0,r.useState)(null!=(et=eE.portalName)?et:""),[eG,eH]=(0,r.useState)(null!=(er=eE.portalSubtitle)?er:""),[e_,eV]=(0,r.useState)(null!=(en=eE.operatorName)?en:""),[eU,eq]=(0,r.useState)(null!=(eo=eE.portalEmoji)?eo:""),[eJ,eK]=(0,r.useState)(null!=(ei=eE.language)?ei:"English"),[eY,e$]=(0,r.useState)(null!=(es=eE.accentColor)?es:""),[eQ,eX]=(0,r.useState)({}),[eZ,e0]=(0,r.useState)(!0),[e1,e2]=(0,r.useState)(null),[e4,e3]=(0,r.useState)(!1),[e6,e5]=(0,r.useState)(null);function e7(){e0(!0),x.F.getConfig().then(e=>{eX(e),e2(null)}).catch(e=>e2(e.message)).finally(()=>e0(!1))}function e8(e,a){eX(l=>{let t=structuredClone(l),r=t;for(let a=0;a<e.length-1;a++)r[e[a]]&&"object"==typeof r[e[a]]||(r[e[a]]={}),r=r[e[a]];return r[e[e.length-1]]=a,t})}return(0,r.useEffect)(()=>{var e,a,l,t,r,n;eO(null!=(e=eE.portalName)?e:""),eH(null!=(a=eE.portalSubtitle)?a:""),eV(null!=(l=eE.operatorName)?l:""),eq(null!=(t=eE.portalEmoji)?t:""),eK(null!=(r=eE.language)?r:"English"),e$(null!=(n=eE.accentColor)?n:"")},[eE.portalName,eE.portalSubtitle,eE.operatorName,eE.portalEmoji,eE.language,eE.accentColor]),(0,r.useEffect)(()=>{e7()},[]),(0,t.jsx)(u.M,{children:(0,t.jsx)("div",{className:"h-full overflow-y-auto",style:{background:"var(--bg)"},children:(0,t.jsxs)("div",{style:{maxWidth:640,margin:"0 auto",padding:"var(--space-6) var(--space-4) var(--space-12)"},children:[(0,t.jsx)("h1",{style:{fontSize:"var(--text-title1)",fontWeight:"var(--weight-bold)",letterSpacing:"var(--tracking-tight)",color:"var(--text-primary)",margin:"0 0 var(--space-6)"},children:"Settings"}),(0,t.jsxs)(b,{title:"Appearance",children:[(0,t.jsx)("div",{style:{fontSize:"var(--text-footnote)",fontWeight:"var(--weight-medium)",color:"var(--text-secondary)",marginBottom:"var(--space-2)"},children:"Theme"}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",gap:"var(--space-2)",marginBottom:"var(--space-4)"},children:g.z.map(e=>{let a=eD===e.id;return(0,t.jsxs)("button",{onClick:()=>eP(e.id),style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"var(--space-1)",padding:"var(--space-3) var(--space-2)",borderRadius:"var(--radius-md)",background:"var(--fill-quaternary)",border:a?"2px solid var(--accent)":"2px solid var(--separator)",cursor:"pointer",transition:"all 150ms var(--ease-smooth)"},children:[(0,t.jsx)("span",{style:{fontSize:24},children:e.emoji}),(0,t.jsx)("span",{style:{fontSize:"var(--text-caption2)",fontWeight:a?"var(--weight-semibold)":"var(--weight-medium)",color:a?"var(--accent)":"var(--text-secondary)"},children:e.label})]},e.id)})}),(0,t.jsx)("div",{style:{fontSize:"var(--text-footnote)",fontWeight:"var(--weight-medium)",color:"var(--text-secondary)",marginBottom:"var(--space-2)"},children:"Accent Color"}),(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"var(--space-2)",marginBottom:"var(--space-3)"},children:h.map(e=>{let a=eE.accentColor===e.value;return(0,t.jsx)("button",{onClick:()=>eF(e.value),"aria-label":e.label,title:e.label,style:{width:32,height:32,borderRadius:"50%",background:e.value,border:a?"2px solid var(--text-primary)":"2px solid transparent",outline:a?"2px solid ".concat(e.value):"none",outlineOffset:2,cursor:"pointer",transition:"all 100ms var(--ease-smooth)",display:"flex",alignItems:"center",justifyContent:"center"},children:a&&(0,t.jsx)(n.A,{size:14,color:"#fff",strokeWidth:3})},e.value)})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[(0,t.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",fontSize:"var(--text-footnote)",color:"var(--text-secondary)",cursor:"pointer"},children:["Custom:",(0,t.jsx)("input",{type:"color",value:null!=(ed=eE.accentColor)?ed:"#3B82F6",onChange:e=>eF(e.target.value),style:{width:28,height:28,border:"none",borderRadius:"50%",cursor:"pointer",background:"none",padding:0}})]}),(0,t.jsx)("input",{type:"text",placeholder:"#3B82F6",value:eY,onChange:e=>{e$(e.target.value),/^#[0-9a-fA-F]{6}$/.test(e.target.value)&&eF(e.target.value)},className:"apple-input",style:{width:90,padding:"4px 8px",fontSize:"var(--text-caption1)",background:"var(--bg-secondary)",border:"1px solid var(--separator)",borderRadius:"var(--radius-sm)",color:"var(--text-primary)",fontFamily:"monospace"}}),eE.accentColor&&(0,t.jsxs)("button",{onClick:()=>eF(null),style:{fontSize:"var(--text-footnote)",color:"var(--system-blue)",background:"none",border:"none",cursor:"pointer",padding:0,display:"inline-flex",alignItems:"center",gap:4},children:[(0,t.jsx)(i,{size:12}),"Reset"]})]})]}),(0,t.jsx)(b,{title:"Branding",children:(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{style:{display:"block",fontSize:"var(--text-caption1)",color:"var(--text-tertiary)",marginBottom:"var(--space-1)"},children:"Portal Name"}),(0,t.jsx)("input",{type:"text",className:"apple-input",placeholder:"Jinn",value:eL,onChange:e=>eO(e.target.value),onBlur:()=>{eW(eL||null),x.F.completeOnboarding({portalName:eL||void 0}).catch(()=>{})},style:{width:"100%",background:"var(--bg-secondary)",border:"1px solid var(--separator)",borderRadius:"var(--radius-sm)",padding:"6px 10px",fontSize:"var(--text-footnote)",color:"var(--text-primary)"}})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{style:{display:"block",fontSize:"var(--text-caption1)",color:"var(--text-tertiary)",marginBottom:"var(--space-1)"},children:"Portal Subtitle"}),(0,t.jsx)("input",{type:"text",className:"apple-input",placeholder:"Command Centre",value:eG,onChange:e=>eH(e.target.value),onBlur:()=>eN(eG||null),style:{width:"100%",background:"var(--bg-secondary)",border:"1px solid var(--separator)",borderRadius:"var(--radius-sm)",padding:"6px 10px",fontSize:"var(--text-footnote)",color:"var(--text-primary)"}})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{style:{display:"block",fontSize:"var(--text-caption1)",color:"var(--text-tertiary)",marginBottom:"var(--space-1)"},children:"Operator Name"}),(0,t.jsx)("input",{type:"text",className:"apple-input",placeholder:"Your Name",value:e_,onChange:e=>eV(e.target.value),onBlur:()=>{eI(e_||null),x.F.completeOnboarding({operatorName:e_||void 0}).catch(()=>{})},style:{width:"100%",background:"var(--bg-secondary)",border:"1px solid var(--separator)",borderRadius:"var(--radius-sm)",padding:"6px 10px",fontSize:"var(--text-footnote)",color:"var(--text-primary)"}})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{style:{display:"block",fontSize:"var(--text-caption1)",color:"var(--text-tertiary)",marginBottom:"var(--space-1)"},children:"Portal Emoji"}),(0,t.jsx)("input",{type:"text",className:"apple-input",placeholder:"\ud83e\udd16",value:eU,onChange:e=>eq(e.target.value),onBlur:()=>eM(eU||null),style:{width:80,textAlign:"center",fontSize:"var(--text-title2)",padding:"6px 8px",background:"var(--bg-secondary)",border:"1px solid var(--separator)",borderRadius:"var(--radius-sm)"}})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{style:{display:"block",fontSize:"var(--text-caption1)",color:"var(--text-tertiary)",marginBottom:"var(--space-1)"},children:"Language"}),(0,t.jsxs)("select",{value:eJ,onChange:e=>eK(e.target.value),onBlur:()=>{eT(eJ||"English"),x.F.completeOnboarding({language:eJ||void 0}).catch(()=>{})},style:{width:"100%",background:"var(--bg-secondary)",border:"1px solid var(--separator)",borderRadius:"var(--radius-sm)",padding:"6px 10px",fontSize:"var(--text-footnote)",color:"var(--text-primary)",cursor:"pointer"},children:[(0,t.jsx)("option",{value:"English",children:"English"}),(0,t.jsx)("option",{value:"Spanish",children:"Spanish"}),(0,t.jsx)("option",{value:"French",children:"French"}),(0,t.jsx)("option",{value:"German",children:"German"}),(0,t.jsx)("option",{value:"Portuguese",children:"Portuguese"}),(0,t.jsx)("option",{value:"Italian",children:"Italian"}),(0,t.jsx)("option",{value:"Dutch",children:"Dutch"}),(0,t.jsx)("option",{value:"Russian",children:"Russian"}),(0,t.jsx)("option",{value:"Chinese",children:"Chinese"}),(0,t.jsx)("option",{value:"Japanese",children:"Japanese"}),(0,t.jsx)("option",{value:"Korean",children:"Korean"}),(0,t.jsx)("option",{value:"Arabic",children:"Arabic"}),(0,t.jsx)("option",{value:"Hindi",children:"Hindi"}),(0,t.jsx)("option",{value:"Bulgarian",children:"Bulgarian"})]})]})]})}),e6&&(0,t.jsx)("div",{style:{marginBottom:"var(--space-4)",padding:"var(--space-3) var(--space-4)",borderRadius:"var(--radius-md)",background:"success"===e6.type?"rgba(34,197,94,0.1)":"rgba(239,68,68,0.1)",border:"1px solid ".concat("success"===e6.type?"rgba(34,197,94,0.3)":"rgba(239,68,68,0.3)"),fontSize:"var(--text-footnote)",color:"success"===e6.type?"var(--system-green)":"var(--system-red)"},children:e6.message}),eZ?(0,t.jsxs)("div",{style:{textAlign:"center",padding:"var(--space-8)",color:"var(--text-tertiary)",fontSize:"var(--text-footnote)"},children:[(0,t.jsx)(s,{size:20,style:{animation:"spin 1s linear infinite",margin:"0 auto var(--space-2)"}}),"Loading gateway config..."]}):e1?(0,t.jsxs)("div",{style:{marginBottom:"var(--space-6)",padding:"var(--space-3) var(--space-4)",borderRadius:"var(--radius-md)",background:"rgba(239,68,68,0.1)",border:"1px solid rgba(239,68,68,0.3)",fontSize:"var(--text-footnote)",color:"var(--system-red)"},children:["Failed to load config: ",e1]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(b,{title:"Gateway Configuration",children:[(0,t.jsx)(m,{label:"Port",children:(0,t.jsx)(f,{type:"number",value:String(null!=(ec=null==(e=eQ.gateway)?void 0:e.port)?ec:""),onChange:e=>e8(["gateway","port"],Number(e)||0),placeholder:"7777"})}),(0,t.jsx)(m,{label:"Host",children:(0,t.jsx)(f,{value:null!=(eu=null==(a=eQ.gateway)?void 0:a.host)?eu:"",onChange:e=>e8(["gateway","host"],e),placeholder:"127.0.0.1"})}),(0,t.jsx)(m,{label:"Default Engine",children:(0,t.jsx)(y,{value:null!=(ev=null==(l=eQ.engines)?void 0:l.default)?ev:"claude",onChange:e=>e8(["engines","default"],e),options:[{value:"claude",label:"Claude"},{value:"codex",label:"Codex"}]})})]}),(0,t.jsxs)(b,{title:"Engine Configuration",children:[(0,t.jsx)("div",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-semibold)",color:"var(--text-tertiary)",marginBottom:"var(--space-2)"},children:"Claude"}),(0,t.jsx)(m,{label:"Binary Path",children:(0,t.jsx)(f,{value:null!=(ep=null==(k=eQ.engines)||null==(o=k.claude)?void 0:o.bin)?ep:"",onChange:e=>e8(["engines","claude","bin"],e),placeholder:"claude"})}),(0,t.jsx)(m,{label:"Model",children:(0,t.jsx)(y,{value:null!=(eg=null==(S=eQ.engines)||null==(C=S.claude)?void 0:C.model)?eg:"opus",onChange:e=>e8(["engines","claude","model"],e),options:[{value:"opus",label:"Opus (claude-opus-4-6)"},{value:"sonnet",label:"Sonnet (claude-sonnet-4-6)"},{value:"haiku",label:"Haiku (claude-haiku-4-5)"}]})}),(0,t.jsx)(m,{label:"Effort Level",children:(0,t.jsx)(y,{value:null!=(ex=null==(z=eQ.engines)||null==(w=z.claude)?void 0:w.effortLevel)?ex:"default",onChange:e=>e8(["engines","claude","effortLevel"],e),options:[{value:"default",label:"Default"},{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"}]})}),(0,t.jsx)("div",{style:{borderTop:"1px solid var(--separator)",marginTop:"var(--space-3)",paddingTop:"var(--space-3)"}}),(0,t.jsx)("div",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-semibold)",color:"var(--text-tertiary)",marginBottom:"var(--space-2)"},children:"Codex"}),(0,t.jsx)(m,{label:"Binary Path",children:(0,t.jsx)(f,{value:null!=(eh=null==(R=eQ.engines)||null==(B=R.codex)?void 0:B.bin)?eh:"",onChange:e=>e8(["engines","codex","bin"],e),placeholder:"codex"})}),(0,t.jsx)(m,{label:"Model",children:(0,t.jsx)(y,{value:null!=(eb=null==(F=eQ.engines)||null==(E=F.codex)?void 0:E.model)?eb:"gpt-5.4",onChange:e=>e8(["engines","codex","model"],e),options:[{value:"gpt-5.4",label:"GPT-5.4"},{value:"gpt-5.3-codex",label:"GPT-5.3 Codex"},{value:"gpt-5.2-codex",label:"GPT-5.2 Codex"},{value:"gpt-5.2",label:"GPT-5.2"},{value:"gpt-5.1-codex-max",label:"GPT-5.1 Codex Max"},{value:"gpt-5.1-codex-mini",label:"GPT-5.1 Codex Mini"}]})}),(0,t.jsx)(m,{label:"Effort Level",children:(0,t.jsx)(y,{value:null!=(em=null==(N=eQ.engines)||null==(W=N.codex)?void 0:W.effortLevel)?em:"default",onChange:e=>e8(["engines","codex","effortLevel"],e),options:[{value:"default",label:"Default"},{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"xhigh",label:"Extra High"}]})})]}),(0,t.jsxs)(b,{title:"Connectors",children:[(0,t.jsx)("div",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-semibold)",color:"var(--text-tertiary)",marginBottom:"var(--space-2)"},children:"Slack"}),(0,t.jsx)(m,{label:"App Token",children:(0,t.jsx)(f,{type:"password",value:null!=(ef=null==(M=eQ.connectors)||null==(I=M.slack)?void 0:I.appToken)?ef:"",onChange:e=>e8(["connectors","slack","appToken"],e),placeholder:"xapp-..."})}),(0,t.jsx)(m,{label:"Bot Token",children:(0,t.jsx)(f,{type:"password",value:null!=(ey=null==(A=eQ.connectors)||null==(T=A.slack)?void 0:T.botToken)?ey:"",onChange:e=>e8(["connectors","slack","botToken"],e),placeholder:"xoxb-..."})}),(0,t.jsx)(m,{label:"Share Session in Channel",children:(0,t.jsx)(j,{checked:null!=(ej=null==(P=eQ.connectors)||null==(D=P.slack)?void 0:D.shareSessionInChannel)&&ej,onChange:e=>e8(["connectors","slack","shareSessionInChannel"],e)})}),(0,t.jsx)(m,{label:"Allowed Users",children:(0,t.jsx)(f,{value:Array.isArray(null==(O=eQ.connectors)||null==(L=O.slack)?void 0:L.allowFrom)?null==(_=eQ.connectors)||null==(H=_.slack)||null==(G=H.allowFrom)?void 0:G.join(", "):null!=(ek=null==(U=eQ.connectors)||null==(V=U.slack)?void 0:V.allowFrom)?ek:"",onChange:e=>e8(["connectors","slack","allowFrom"],e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0),placeholder:"U123, U456"})}),(0,t.jsx)(m,{label:"Ignore Old Messages on Boot",children:(0,t.jsx)(j,{checked:null==(eC=null==(J=eQ.connectors)||null==(q=J.slack)?void 0:q.ignoreOldMessagesOnBoot)||eC,onChange:e=>e8(["connectors","slack","ignoreOldMessagesOnBoot"],e)})}),(0,t.jsx)("div",{style:{borderTop:"1px solid var(--separator)",marginTop:"var(--space-3)",paddingTop:"var(--space-3)"}}),(0,t.jsx)("div",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-semibold)",color:"var(--text-tertiary)",marginBottom:"var(--space-2)"},children:"Web UI"}),(0,t.jsx)("div",{style:{fontSize:"var(--text-caption2)",color:"var(--text-tertiary)"},children:"Web conversations use queued one-shot resume flow for both engines."})]}),(0,t.jsxs)(b,{title:"Cron",children:[(0,t.jsx)("div",{style:{fontSize:"var(--text-caption1)",fontWeight:"var(--weight-semibold)",color:"var(--text-tertiary)",marginBottom:"var(--space-2)"},children:"Default Delivery"}),(0,t.jsx)("div",{style:{fontSize:"var(--text-caption2)",color:"var(--text-tertiary)",marginBottom:"var(--space-3)"},children:"When a cron job has no delivery configured, results will be sent here."}),(0,t.jsx)(m,{label:"Connector",children:(0,t.jsx)(y,{value:null!=(eS=null==(Y=eQ.cron)||null==(K=Y.defaultDelivery)?void 0:K.connector)?eS:"",onChange:e=>e8(["cron","defaultDelivery","connector"],e||void 0),options:[{value:"",label:"None (fire & forget)"},{value:"web",label:"Web"},{value:"slack",label:"Slack"}]})}),(null==(Q=eQ.cron)||null==($=Q.defaultDelivery)?void 0:$.connector)&&(0,t.jsx)(m,{label:"Channel",children:(0,t.jsx)(f,{value:null!=(ew=null==(Z=eQ.cron)||null==(X=Z.defaultDelivery)?void 0:X.channel)?ew:"",onChange:e=>e8(["cron","defaultDelivery","channel"],e),placeholder:"#general"})})]}),(0,t.jsxs)(b,{title:"Logging",children:[(0,t.jsx)(m,{label:"Level",children:(0,t.jsx)(y,{value:null!=(ez=null==(ee=eQ.logging)?void 0:ee.level)?ez:"info",onChange:e=>e8(["logging","level"],e),options:[{value:"debug",label:"Debug"},{value:"info",label:"Info"},{value:"warn",label:"Warn"},{value:"error",label:"Error"}]})}),(0,t.jsx)(m,{label:"Stdout",children:(0,t.jsx)(j,{checked:null==(eB=null==(ea=eQ.logging)?void 0:ea.stdout)||eB,onChange:e=>e8(["logging","stdout"],e)})}),(0,t.jsx)(m,{label:"File Logging",children:(0,t.jsx)(j,{checked:null!=(eR=null==(el=eQ.logging)?void 0:el.file)&&eR,onChange:e=>e8(["logging","file"],e)})})]}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"var(--space-3)",marginBottom:"var(--space-6)"},children:[(0,t.jsxs)("button",{onClick:()=>e7(),style:{padding:"var(--space-2) var(--space-4)",borderRadius:"var(--radius-md)",background:"var(--fill-tertiary)",color:"var(--text-secondary)",border:"none",cursor:"pointer",fontSize:"var(--text-footnote)",fontWeight:"var(--weight-medium)",display:"inline-flex",alignItems:"center",gap:6},children:[(0,t.jsx)(i,{size:14}),"Reload"]}),(0,t.jsxs)("button",{onClick:function(){e3(!0),e5(null),x.F.updateConfig(eQ).then(()=>e5({type:"success",message:"Settings saved successfully"})).catch(e=>e5({type:"error",message:"Failed to save: ".concat(e.message)})).finally(()=>e3(!1))},disabled:e4,style:{padding:"var(--space-2) var(--space-5)",borderRadius:"var(--radius-md)",background:"var(--accent)",color:"var(--accent-contrast)",border:"none",cursor:e4?"wait":"pointer",fontSize:"var(--text-footnote)",fontWeight:"var(--weight-semibold)",display:"inline-flex",alignItems:"center",gap:6,opacity:e4?.7:1,transition:"all 150ms var(--ease-smooth)"},children:[(0,t.jsx)(d,{size:14}),e4?"Saving...":"Save Config"]})]})]}),(0,t.jsx)(b,{title:"Reset",children:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"var(--space-3)",flexWrap:"wrap"},children:[(0,t.jsxs)("button",{onClick:()=>{localStorage.removeItem("jinn-onboarded"),window.location.reload()},style:{padding:"var(--space-2) var(--space-5)",borderRadius:"var(--radius-md)",background:"var(--accent)",color:"var(--accent-contrast)",border:"none",cursor:"pointer",fontSize:"var(--text-footnote)",fontWeight:"var(--weight-semibold)",transition:"all 150ms var(--ease-spring)",display:"inline-flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,t.jsx)(i,{size:14}),"Re-run Onboarding Wizard"]}),(0,t.jsxs)("button",{onClick:()=>{window.confirm("Reset all settings to defaults?")&&(localStorage.removeItem("jinn-settings"),localStorage.removeItem("jinn-theme"),eA(),window.location.reload())},style:{padding:"var(--space-2) var(--space-5)",borderRadius:"var(--radius-md)",background:"var(--system-red)",color:"#fff",border:"none",cursor:"pointer",fontSize:"var(--text-footnote)",fontWeight:"var(--weight-semibold)",transition:"all 150ms var(--ease-spring)",display:"inline-flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,t.jsx)(c,{size:14}),"Reset All Settings"]})]})})]})})})}}},e=>{e.O(0,[704,73,814,743,358],()=>e(e.s=7649)),_N_E=e.O()}]);
|