teleton 0.7.4 → 0.8.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/README.md +43 -30
- package/dist/chunk-3RG5ZIWI.js +10 -0
- package/dist/{chunk-U7FQYCBQ.js → chunk-7TECSLJ4.js} +2 -2
- package/dist/{chunk-LAQOUFOJ.js → chunk-H36RFKRI.js} +7583 -11185
- package/dist/{chunk-RO62LO6Z.js → chunk-IJBWWQE4.js} +4 -0
- package/dist/{chunk-BGC2IUM5.js → chunk-JHYZYFZJ.js} +69 -20
- package/dist/{chunk-QOQWUUA4.js → chunk-OJCLKU5Z.js} +68 -2
- package/dist/{chunk-OCLG5GKI.js → chunk-P36I6OIV.js} +2 -2
- package/dist/chunk-PHSAHTK4.js +314 -0
- package/dist/{chunk-5PLZ3KSO.js → chunk-QVBSUYVX.js} +14 -42
- package/dist/{chunk-4DU3C27M.js → chunk-R4YSJ4EY.js} +5 -1
- package/dist/chunk-RQBAMUCV.js +10281 -0
- package/dist/{chunk-XDYDA2KV.js → chunk-SD4NLLYG.js} +293 -64
- package/dist/chunk-TVRZJIZX.js +292 -0
- package/dist/{chunk-EK7M5K26.js → chunk-U56QTM46.js} +3 -3
- package/dist/{chunk-XBKSS6DM.js → chunk-VFA7QMCZ.js} +5 -3
- package/dist/{chunk-VAUJSSD3.js → chunk-XQUHC3JZ.js} +1 -1
- package/dist/cli/index.js +96 -33
- package/dist/{client-RTNALK7W.js → client-LNZTDQSA.js} +6 -7
- package/dist/{get-my-gifts-TPVUGUWT.js → get-my-gifts-OMGKOEPM.js} +1 -1
- package/dist/index.js +15 -17
- package/dist/{memory-JQZ6MTRU.js → memory-AS7WKGTW.js} +7 -8
- package/dist/{migrate-GS5ACQDA.js → migrate-POHWYEIW.js} +7 -8
- package/dist/{multipart-parser-S3YC6NRJ.js → multipart-parser-UFQLJOV2.js} +2 -2
- package/dist/{paths-TMNTEDDD.js → paths-XA2RJH4S.js} +1 -1
- package/dist/{server-TCJOBV3D.js → server-H3QA252W.js} +39 -12
- package/dist/{setup-server-YHYJLAMA.js → setup-server-QXED3D2L.js} +24 -12
- package/dist/store-GAFULOOX.js +34 -0
- package/dist/{task-dependency-resolver-WKZWJLLM.js → task-dependency-resolver-3FIKQ7Z6.js} +3 -3
- package/dist/{task-executor-PD3H4MLO.js → task-executor-RUTFG6VG.js} +2 -2
- package/dist/{tasks-QSCWSMPS.js → tasks-BEZ4QRI2.js} +1 -1
- package/dist/{tool-adapter-Y3TCEQOC.js → tool-adapter-IH5VGBOO.js} +1 -1
- package/dist/{tool-index-6HBRVXVG.js → tool-index-H3SHOJC3.js} +6 -6
- package/dist/{transcript-UDJZP6NK.js → transcript-IMNE6KU3.js} +2 -2
- package/dist/web/assets/index-BrVqauzj.css +1 -0
- package/dist/web/assets/index-DYeEkvJ6.js +72 -0
- package/dist/web/assets/{index.es-CqZHj0tz.js → index.es-DkU1GvWU.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +2 -2
- package/dist/BigInteger-DQ33LTTE.js +0 -5
- package/dist/chunk-JQDLW7IE.js +0 -107
- package/dist/chunk-QGM4M3NI.js +0 -37
- package/dist/chunk-RMLQS3X6.js +0 -161
- package/dist/chunk-TSKJCWQQ.js +0 -1263
- package/dist/chunk-UCN6TI25.js +0 -143
- package/dist/chunk-YFG2QHLA.js +0 -3585
- package/dist/web/assets/index-B6M9knfJ.css +0 -1
- package/dist/web/assets/index-DAGeQfVZ.js +0 -72
- package/scripts/patch-gramjs.sh +0 -46
- package/scripts/postinstall.mjs +0 -16
|
@@ -16,8 +16,7 @@ import {
|
|
|
16
16
|
initializeMemory,
|
|
17
17
|
runMigrations,
|
|
18
18
|
setSchemaVersion
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-UCN6TI25.js";
|
|
19
|
+
} from "./chunk-SD4NLLYG.js";
|
|
21
20
|
import {
|
|
22
21
|
AnthropicEmbeddingProvider,
|
|
23
22
|
CachedEmbeddingProvider,
|
|
@@ -27,18 +26,18 @@ import {
|
|
|
27
26
|
deserializeEmbedding,
|
|
28
27
|
hashText,
|
|
29
28
|
serializeEmbedding
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-U56QTM46.js";
|
|
30
|
+
import "./chunk-VFA7QMCZ.js";
|
|
31
|
+
import "./chunk-IJBWWQE4.js";
|
|
32
|
+
import "./chunk-XQUHC3JZ.js";
|
|
33
|
+
import "./chunk-R4YSJ4EY.js";
|
|
35
34
|
import "./chunk-EYWNOHMJ.js";
|
|
36
35
|
import "./chunk-RCMD3U65.js";
|
|
37
36
|
import {
|
|
38
37
|
TaskStore,
|
|
39
38
|
getTaskStore
|
|
40
39
|
} from "./chunk-NUGDTPE4.js";
|
|
41
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-3RG5ZIWI.js";
|
|
42
41
|
export {
|
|
43
42
|
AnthropicEmbeddingProvider,
|
|
44
43
|
CURRENT_SCHEMA_VERSION,
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDatabase
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-4DU3C27M.js";
|
|
3
|
+
} from "./chunk-SD4NLLYG.js";
|
|
4
|
+
import "./chunk-U56QTM46.js";
|
|
5
|
+
import "./chunk-VFA7QMCZ.js";
|
|
6
|
+
import "./chunk-IJBWWQE4.js";
|
|
7
|
+
import "./chunk-XQUHC3JZ.js";
|
|
8
|
+
import "./chunk-R4YSJ4EY.js";
|
|
10
9
|
import {
|
|
11
10
|
TELETON_ROOT
|
|
12
11
|
} from "./chunk-EYWNOHMJ.js";
|
|
@@ -14,7 +13,7 @@ import {
|
|
|
14
13
|
createLogger
|
|
15
14
|
} from "./chunk-RCMD3U65.js";
|
|
16
15
|
import "./chunk-NUGDTPE4.js";
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-3RG5ZIWI.js";
|
|
18
17
|
|
|
19
18
|
// src/session/migrate.ts
|
|
20
19
|
import { readFileSync, existsSync, renameSync } from "fs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getModelsForProvider
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OJCLKU5Z.js";
|
|
4
4
|
import {
|
|
5
5
|
CONFIGURABLE_KEYS,
|
|
6
6
|
WorkspaceSecurityError,
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
deletePluginSecret,
|
|
11
11
|
ensurePluginDeps,
|
|
12
12
|
getNestedValue,
|
|
13
|
+
getTokenUsage,
|
|
13
14
|
listPluginSecretKeys,
|
|
14
15
|
readRawConfig,
|
|
15
16
|
setNestedValue,
|
|
@@ -19,21 +20,31 @@ import {
|
|
|
19
20
|
validateWritePath,
|
|
20
21
|
writePluginSecret,
|
|
21
22
|
writeRawConfig
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import
|
|
24
|
-
|
|
23
|
+
} from "./chunk-RQBAMUCV.js";
|
|
24
|
+
import {
|
|
25
|
+
invalidateEndpointCache,
|
|
26
|
+
invalidateTonClientCache,
|
|
27
|
+
setToncenterApiKey
|
|
28
|
+
} from "./chunk-JHYZYFZJ.js";
|
|
29
|
+
import "./chunk-TVRZJIZX.js";
|
|
30
|
+
import "./chunk-7TECSLJ4.js";
|
|
25
31
|
import {
|
|
26
32
|
getErrorMessage
|
|
27
33
|
} from "./chunk-XBE4JB7C.js";
|
|
34
|
+
import "./chunk-QVBSUYVX.js";
|
|
28
35
|
import {
|
|
29
36
|
getProviderMetadata,
|
|
30
37
|
validateApiKeyFormat
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import
|
|
36
|
-
|
|
38
|
+
} from "./chunk-PHSAHTK4.js";
|
|
39
|
+
import "./chunk-P36I6OIV.js";
|
|
40
|
+
import "./chunk-SD4NLLYG.js";
|
|
41
|
+
import "./chunk-U56QTM46.js";
|
|
42
|
+
import {
|
|
43
|
+
setTonapiKey
|
|
44
|
+
} from "./chunk-VFA7QMCZ.js";
|
|
45
|
+
import "./chunk-IJBWWQE4.js";
|
|
46
|
+
import "./chunk-XQUHC3JZ.js";
|
|
47
|
+
import "./chunk-R4YSJ4EY.js";
|
|
37
48
|
import {
|
|
38
49
|
WORKSPACE_PATHS,
|
|
39
50
|
WORKSPACE_ROOT
|
|
@@ -46,7 +57,7 @@ import {
|
|
|
46
57
|
import {
|
|
47
58
|
getTaskStore
|
|
48
59
|
} from "./chunk-NUGDTPE4.js";
|
|
49
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-3RG5ZIWI.js";
|
|
50
61
|
|
|
51
62
|
// src/webui/server.ts
|
|
52
63
|
import { Hono as Hono12 } from "hono";
|
|
@@ -134,7 +145,9 @@ function createStatusRoutes(deps) {
|
|
|
134
145
|
model: config.agent.model,
|
|
135
146
|
provider: config.agent.provider,
|
|
136
147
|
sessionCount: sessionCountRow?.count ?? 0,
|
|
137
|
-
toolCount: deps.toolRegistry.getAll().length
|
|
148
|
+
toolCount: deps.toolRegistry.getAll().length,
|
|
149
|
+
tokenUsage: getTokenUsage(),
|
|
150
|
+
platform: process.platform
|
|
138
151
|
};
|
|
139
152
|
const response = {
|
|
140
153
|
success: true,
|
|
@@ -1240,6 +1253,14 @@ function createTasksRoutes(deps) {
|
|
|
1240
1253
|
|
|
1241
1254
|
// src/webui/routes/config.ts
|
|
1242
1255
|
import { Hono as Hono10 } from "hono";
|
|
1256
|
+
var CONFIG_SIDE_EFFECTS = {
|
|
1257
|
+
tonapi_key: (v) => setTonapiKey(v),
|
|
1258
|
+
toncenter_api_key: (v) => {
|
|
1259
|
+
setToncenterApiKey(v);
|
|
1260
|
+
invalidateEndpointCache();
|
|
1261
|
+
invalidateTonClientCache();
|
|
1262
|
+
}
|
|
1263
|
+
};
|
|
1243
1264
|
function createConfigRoutes(deps) {
|
|
1244
1265
|
const app = new Hono10();
|
|
1245
1266
|
app.get("/", (c) => {
|
|
@@ -1258,6 +1279,7 @@ function createConfigRoutes(deps) {
|
|
|
1258
1279
|
type: meta.type,
|
|
1259
1280
|
category: meta.category,
|
|
1260
1281
|
description: meta.description,
|
|
1282
|
+
hotReload: meta.hotReload,
|
|
1261
1283
|
...meta.options ? { options: meta.options } : {},
|
|
1262
1284
|
...meta.optionLabels ? { optionLabels: meta.optionLabels } : {},
|
|
1263
1285
|
...meta.itemType ? { itemType: meta.itemType } : {}
|
|
@@ -1328,6 +1350,7 @@ function createConfigRoutes(deps) {
|
|
|
1328
1350
|
type: meta.type,
|
|
1329
1351
|
category: meta.category,
|
|
1330
1352
|
description: meta.description,
|
|
1353
|
+
hotReload: meta.hotReload,
|
|
1331
1354
|
...meta.itemType ? { itemType: meta.itemType } : {}
|
|
1332
1355
|
};
|
|
1333
1356
|
return c.json({ success: true, data: result });
|
|
@@ -1367,6 +1390,7 @@ function createConfigRoutes(deps) {
|
|
|
1367
1390
|
writeRawConfig(raw, deps.configPath);
|
|
1368
1391
|
const runtimeConfig = deps.agent.getConfig();
|
|
1369
1392
|
setNestedValue(runtimeConfig, key, parsed);
|
|
1393
|
+
CONFIG_SIDE_EFFECTS[key]?.(parsed);
|
|
1370
1394
|
if (key === "telegram.owner_id" && typeof parsed === "number") {
|
|
1371
1395
|
const rtAdminIds = getNestedValue(runtimeConfig, "telegram.admin_ids") ?? [];
|
|
1372
1396
|
if (!rtAdminIds.includes(parsed)) {
|
|
@@ -1382,6 +1406,7 @@ function createConfigRoutes(deps) {
|
|
|
1382
1406
|
type: meta.type,
|
|
1383
1407
|
category: meta.category,
|
|
1384
1408
|
description: meta.description,
|
|
1409
|
+
hotReload: meta.hotReload,
|
|
1385
1410
|
...meta.options ? { options: meta.options } : {}
|
|
1386
1411
|
};
|
|
1387
1412
|
return c.json({ success: true, data: result });
|
|
@@ -1411,6 +1436,7 @@ function createConfigRoutes(deps) {
|
|
|
1411
1436
|
writeRawConfig(raw, deps.configPath);
|
|
1412
1437
|
const runtimeConfig = deps.agent.getConfig();
|
|
1413
1438
|
deleteNestedValue(runtimeConfig, key);
|
|
1439
|
+
CONFIG_SIDE_EFFECTS[key]?.(void 0);
|
|
1414
1440
|
const result = {
|
|
1415
1441
|
key,
|
|
1416
1442
|
label: meta.label,
|
|
@@ -1420,6 +1446,7 @@ function createConfigRoutes(deps) {
|
|
|
1420
1446
|
type: meta.type,
|
|
1421
1447
|
category: meta.category,
|
|
1422
1448
|
description: meta.description,
|
|
1449
|
+
hotReload: meta.hotReload,
|
|
1423
1450
|
...meta.options ? { options: meta.options } : {},
|
|
1424
1451
|
...meta.itemType ? { itemType: meta.itemType } : {}
|
|
1425
1452
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getModelsForProvider
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OJCLKU5Z.js";
|
|
4
4
|
import {
|
|
5
5
|
ConfigSchema,
|
|
6
6
|
DealsConfigSchema,
|
|
@@ -11,31 +11,29 @@ import {
|
|
|
11
11
|
isNewWorkspace,
|
|
12
12
|
saveWallet,
|
|
13
13
|
walletExists
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-JHYZYFZJ.js";
|
|
15
15
|
import {
|
|
16
16
|
getClaudeCodeApiKey,
|
|
17
|
-
isClaudeCodeTokenValid
|
|
18
|
-
} from "./chunk-JQDLW7IE.js";
|
|
19
|
-
import {
|
|
20
17
|
getProviderMetadata,
|
|
21
18
|
getSupportedProviders,
|
|
19
|
+
isClaudeCodeTokenValid,
|
|
22
20
|
validateApiKeyFormat
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-PHSAHTK4.js";
|
|
22
|
+
import "./chunk-VFA7QMCZ.js";
|
|
25
23
|
import {
|
|
26
24
|
TELEGRAM_MAX_MESSAGE_LENGTH
|
|
27
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-IJBWWQE4.js";
|
|
28
26
|
import {
|
|
29
27
|
fetchWithTimeout
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-
|
|
28
|
+
} from "./chunk-XQUHC3JZ.js";
|
|
29
|
+
import "./chunk-R4YSJ4EY.js";
|
|
32
30
|
import {
|
|
33
31
|
TELETON_ROOT
|
|
34
32
|
} from "./chunk-EYWNOHMJ.js";
|
|
35
33
|
import {
|
|
36
34
|
createLogger
|
|
37
35
|
} from "./chunk-RCMD3U65.js";
|
|
38
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-3RG5ZIWI.js";
|
|
39
37
|
|
|
40
38
|
// src/webui/setup-server.ts
|
|
41
39
|
import { Hono as Hono2 } from "hono";
|
|
@@ -92,6 +90,10 @@ var TelegramAuthManager = class {
|
|
|
92
90
|
await client.disconnect();
|
|
93
91
|
throw new Error("Account already authenticated (SentCodeSuccess)");
|
|
94
92
|
}
|
|
93
|
+
if (!(result instanceof Api.auth.SentCode)) {
|
|
94
|
+
await client.disconnect();
|
|
95
|
+
throw new Error("Unexpected auth response (payment required or unknown)");
|
|
96
|
+
}
|
|
95
97
|
let codeDelivery = "sms";
|
|
96
98
|
let fragmentUrl;
|
|
97
99
|
let codeLength;
|
|
@@ -359,7 +361,7 @@ function createSetupRoutes() {
|
|
|
359
361
|
app.get("/detect-claude-code-key", (c) => {
|
|
360
362
|
try {
|
|
361
363
|
const key = getClaudeCodeApiKey();
|
|
362
|
-
const masked = key;
|
|
364
|
+
const masked = key.slice(0, 12) + "****" + key.slice(-4);
|
|
363
365
|
return c.json({
|
|
364
366
|
success: true,
|
|
365
367
|
data: {
|
|
@@ -688,10 +690,20 @@ function createSetupRoutes() {
|
|
|
688
690
|
],
|
|
689
691
|
skip_unlimited_providers: false
|
|
690
692
|
},
|
|
693
|
+
capabilities: {
|
|
694
|
+
exec: {
|
|
695
|
+
mode: input.capabilities?.exec?.mode ?? "off",
|
|
696
|
+
scope: "admin-only",
|
|
697
|
+
allowlist: [],
|
|
698
|
+
limits: { timeout: 120, max_output: 5e4 },
|
|
699
|
+
audit: { log_commands: true }
|
|
700
|
+
}
|
|
701
|
+
},
|
|
691
702
|
mcp: { servers: {} },
|
|
692
703
|
plugins: {},
|
|
693
704
|
...input.cocoon ? { cocoon: input.cocoon } : {},
|
|
694
705
|
...input.tonapi_key ? { tonapi_key: input.tonapi_key } : {},
|
|
706
|
+
...input.toncenter_api_key ? { toncenter_api_key: input.toncenter_api_key } : {},
|
|
695
707
|
...input.tavily_api_key ? { tavily_api_key: input.tavily_api_key } : {}
|
|
696
708
|
};
|
|
697
709
|
ConfigSchema.parse(config);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getOrCreateSession,
|
|
3
|
+
getSession,
|
|
4
|
+
incrementMessageCount,
|
|
5
|
+
loadSessionStore,
|
|
6
|
+
pruneOldSessions,
|
|
7
|
+
resetSession,
|
|
8
|
+
resetSessionWithPolicy,
|
|
9
|
+
saveSessionStore,
|
|
10
|
+
shouldResetSession,
|
|
11
|
+
updateSession
|
|
12
|
+
} from "./chunk-TVRZJIZX.js";
|
|
13
|
+
import "./chunk-SD4NLLYG.js";
|
|
14
|
+
import "./chunk-U56QTM46.js";
|
|
15
|
+
import "./chunk-VFA7QMCZ.js";
|
|
16
|
+
import "./chunk-IJBWWQE4.js";
|
|
17
|
+
import "./chunk-XQUHC3JZ.js";
|
|
18
|
+
import "./chunk-R4YSJ4EY.js";
|
|
19
|
+
import "./chunk-EYWNOHMJ.js";
|
|
20
|
+
import "./chunk-RCMD3U65.js";
|
|
21
|
+
import "./chunk-NUGDTPE4.js";
|
|
22
|
+
import "./chunk-3RG5ZIWI.js";
|
|
23
|
+
export {
|
|
24
|
+
getOrCreateSession,
|
|
25
|
+
getSession,
|
|
26
|
+
incrementMessageCount,
|
|
27
|
+
loadSessionStore,
|
|
28
|
+
pruneOldSessions,
|
|
29
|
+
resetSession,
|
|
30
|
+
resetSessionWithPolicy,
|
|
31
|
+
saveSessionStore,
|
|
32
|
+
shouldResetSession,
|
|
33
|
+
updateSession
|
|
34
|
+
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MAX_DEPENDENTS_PER_TASK
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IJBWWQE4.js";
|
|
4
4
|
import {
|
|
5
5
|
BATCH_TRIGGER_DELAY_MS
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-R4YSJ4EY.js";
|
|
7
7
|
import {
|
|
8
8
|
createLogger
|
|
9
9
|
} from "./chunk-RCMD3U65.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-3RG5ZIWI.js";
|
|
11
11
|
|
|
12
12
|
// src/telegram/task-dependency-resolver.ts
|
|
13
13
|
var log = createLogger("Telegram");
|
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
MAX_TOTAL_PROMPT_CHARS,
|
|
7
7
|
SECONDS_PER_DAY,
|
|
8
8
|
SECONDS_PER_HOUR
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-IJBWWQE4.js";
|
|
10
|
+
import "./chunk-3RG5ZIWI.js";
|
|
11
11
|
|
|
12
12
|
// src/telegram/task-executor.ts
|
|
13
13
|
function truncateJson(data, maxChars = MAX_JSON_FIELD_CHARS) {
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
serializeEmbedding
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-U56QTM46.js";
|
|
4
|
+
import "./chunk-VFA7QMCZ.js";
|
|
5
5
|
import {
|
|
6
6
|
TOOL_RAG_KEYWORD_WEIGHT,
|
|
7
7
|
TOOL_RAG_MIN_SCORE,
|
|
8
8
|
TOOL_RAG_VECTOR_WEIGHT
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-IJBWWQE4.js";
|
|
10
|
+
import "./chunk-XQUHC3JZ.js";
|
|
11
|
+
import "./chunk-R4YSJ4EY.js";
|
|
12
12
|
import "./chunk-EYWNOHMJ.js";
|
|
13
13
|
import {
|
|
14
14
|
createLogger
|
|
15
15
|
} from "./chunk-RCMD3U65.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-3RG5ZIWI.js";
|
|
17
17
|
|
|
18
18
|
// src/agent/tools/tool-index.ts
|
|
19
19
|
var log = createLogger("ToolRAG");
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
getTranscriptSize,
|
|
8
8
|
readTranscript,
|
|
9
9
|
transcriptExists
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-P36I6OIV.js";
|
|
11
11
|
import "./chunk-EYWNOHMJ.js";
|
|
12
12
|
import "./chunk-RCMD3U65.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-3RG5ZIWI.js";
|
|
14
14
|
export {
|
|
15
15
|
appendToTranscript,
|
|
16
16
|
archiveTranscript,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--bg: #000000;--surface: rgba(255, 255, 255, .05);--surface-hover: rgba(255, 255, 255, .08);--surface-active: rgba(255, 255, 255, .12);--glass: rgba(255, 255, 255, .06);--glass-border: rgba(255, 255, 255, .1);--glass-border-strong: rgba(255, 255, 255, .15);--text: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .55);--text-tertiary: rgba(255, 255, 255, .5);--text-on-accent: #ffffff;--accent: #0A84FF;--accent-dim: rgba(10, 132, 255, .15);--green: #30D158;--green-dim: rgba(48, 209, 88, .15);--orange: rgba(255, 255, 255, .55);--orange-dim: rgba(255, 255, 255, .06);--red: #FF453A;--red-dim: rgba(255, 69, 58, .15);--purple: #BF5AF2;--purple-dim: rgba(191, 90, 242, .15);--cyan: #64D2FF;--cyan-dim: rgba(100, 210, 255, .15);--separator: rgba(255, 255, 255, .08);--sidebar-bg: rgba(255, 255, 255, .03);--scrollbar: rgba(255, 255, 255, .1);--scrollbar-hover: rgba(255, 255, 255, .2);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--thumb-bg: #ffffff;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 26px;--font-xs: 11px;--font-sm: 12px;--font-md: 13px;--font-base: 14px;--font-lg: 16px;--font-xl: 20px;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--blur: 40px;--blur-heavy: 80px}html,body{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.container{display:flex;min-height:100vh}.sidebar{width:220px;padding:20px 12px;background:var(--sidebar-bg);border-right:1px solid var(--separator);display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{padding:4px 12px 20px;font-size:15px;font-weight:600;letter-spacing:-.2px;color:var(--text)}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar a{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:13px;font-weight:500;transition:all .2s ease}.sidebar a:hover{color:var(--text);background:var(--surface);text-decoration:none}.sidebar a.active{color:var(--text);background:var(--surface-hover);text-decoration:none}.sidebar-link-disabled{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:13px;font-weight:500;opacity:.4;cursor:default;-webkit-user-select:none;user-select:none}.main{flex:1;padding:32px;max-width:1080px;min-width:0;margin:0 auto}.header{margin-bottom:28px}.header h1{font-size:22px;font-weight:600;letter-spacing:-.4px;margin-bottom:4px}.header p{color:var(--text-secondary);font-size:13px}.card{background:var(--glass);backdrop-filter:blur(var(--blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur)) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.card h2{font-size:15px;font-weight:600;letter-spacing:-.2px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.stat-card{background:var(--glass);backdrop-filter:blur(var(--blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur)) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:16px}.stat-card h3{font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.stat-card .value{font-size:24px;font-weight:600;letter-spacing:-.5px}.status-bar{padding:14px 18px!important}.status-row{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}.status-divider{height:1px;background:var(--separator);margin:10px 0}.metric{display:flex;align-items:baseline;gap:6px}.metric-label{font-size:11px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px}.metric-value{font-size:14px;font-weight:600;color:var(--text)}.metric-value.mono{font-size:13px;font-family:SF Mono,Fira Code,monospace}.dashboard-root{display:flex;flex-direction:column;height:calc(100vh - 64px);min-height:0}.dashboard-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:640px){.dashboard-settings{grid-template-columns:1fr}}.dashboard-logs{flex:1;min-height:0;display:flex;flex-direction:column;margin-bottom:0!important}.dashboard-logs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dashboard-logs-scroll{flex:1;min-height:0;overflow-y:auto}button{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--accent);color:var(--text-on-accent);border:none;padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:500;transition:opacity .15s ease}button:hover{opacity:.85}button:disabled{opacity:.4;cursor:not-allowed}input,textarea,select{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--surface);border:1px solid var(--glass-border);color:var(--text);padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;outline:none;transition:border-color .2s ease}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.55)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.custom-select{position:relative}.custom-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--glass-border);color:var(--text);padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;cursor:pointer;transition:border-color .2s ease}.custom-select-trigger:hover{border-color:var(--glass-border-strong);opacity:1}.custom-select-trigger:focus{border-color:var(--accent)}.custom-select-trigger svg{color:var(--text-secondary);flex-shrink:0}.custom-select-menu{background:var(--bg);border:1px solid var(--glass-border-strong);border-radius:var(--radius-sm);padding:4px;z-index:10000;box-shadow:0 8px 24px #00000080;max-height:200px;overflow-y:auto}.custom-select-option{padding:8px 12px;border-radius:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .1s ease}.custom-select-option:hover,.custom-select-option.focused,.custom-select-option.active{background:var(--surface-hover);color:var(--text)}.custom-select-option.active.focused{background:var(--surface-active);color:var(--text)}input:focus,textarea:focus,select:focus{border-color:var(--accent)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}textarea{width:100%;min-height:400px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:13px;line-height:1.6;resize:vertical;border-radius:var(--radius-md)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:none;opacity:.8}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:500;letter-spacing:.2px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--separator)}.badge.count{color:var(--text)}.badge.warn{color:var(--text-secondary);border-color:#ffffff1f}.badge.error{color:var(--red);border-color:color-mix(in srgb,var(--red) 30%,transparent)}.badge.always{color:var(--green);border-color:color-mix(in srgb,var(--green) 30%,transparent)}.tabs{display:flex;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-sm);margin-bottom:16px}.tab{position:relative;padding:7px 16px;background:none;border:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;font-size:13px;font-weight:500;transition:all .2s ease;flex:1;text-align:center}.tab:hover{color:var(--text);opacity:1}.tab.active{color:var(--text);background:var(--surface-active);box-shadow:0 1px 3px #0003}.tab .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:9px;font-size:11px;font-weight:600;background:var(--glass);color:var(--text-tertiary)}.tab.active .tab-count{background:var(--surface-active);color:var(--text)}button.btn-ghost{background:var(--surface);color:var(--text-secondary);border:1px solid var(--glass-border)}button.btn-ghost:hover{background:var(--surface-hover);color:var(--text);opacity:1}button.btn-danger{background:var(--surface);color:var(--text);border:1px solid var(--glass-border)}button.btn-danger:hover{background:var(--surface-hover);opacity:1}button.btn-sm{padding:5px 10px;font-size:12px;border-radius:8px}.tag-pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:12px;font-size:11px;font-weight:500;background:var(--surface);color:var(--text-secondary);border:1px solid var(--glass-border);cursor:pointer;transition:all .15s ease}.tag-pill:hover,.tag-pill.active{background:var(--surface-hover);color:var(--text);border-color:var(--glass-border-strong)}.form-group{margin-bottom:16px}.form-group label:not(.label-inline):not(.card-toggle):not(.toggle){display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text)}.alert{padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13px}.alert.success,.alert.error{background:#ffffff0a;color:var(--text-secondary);border:1px solid rgba(255,255,255,.08)}.file-row{transition:background-color .15s ease}.file-row:hover{background-color:var(--sidebar-bg)}.icon-button{background:none;border:none;cursor:pointer;padding:4px 6px;font-size:15px;opacity:.5;filter:grayscale(1);transition:opacity .15s,filter .15s}.icon-button:hover{opacity:1;filter:none}.log-entry{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;padding:5px 0;border-bottom:1px solid var(--separator);line-height:1.5}.log-entry:last-child{border-bottom:none}.accordion-header{position:relative;z-index:2;padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:background-color .15s ease}.accordion-header:hover{background-color:var(--sidebar-bg)}.accordion-chevron{font-size:10px;color:var(--text-secondary);width:12px;flex-shrink:0}.tool-row{position:relative;padding:10px 14px;background:var(--surface);border-radius:var(--radius-sm);display:flex;justify-content:space-between;align-items:center;transition:background .15s ease}.tool-row:hover{background:var(--surface-hover)}.tool-name{font-size:13px;font-weight:500;margin-bottom:2px}.tool-desc{font-size:12px;color:var(--text-secondary)}.plugin-meta{font-size:12px;color:var(--text-secondary);margin-bottom:8px}.result-item{padding:14px;background:var(--surface);border-radius:var(--radius-sm);margin-bottom:8px}.result-meta{font-size:12px;color:var(--text-secondary);margin-bottom:6px}.result-text{font-size:13px;line-height:1.6}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.connected{background:var(--green)}.status-dot.disconnected{background:var(--red)}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.login-card{background:var(--glass);backdrop-filter:blur(var(--blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur)) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:32px;max-width:380px;width:100%}.login-card h1{font-size:20px;font-weight:600;margin-bottom:8px;letter-spacing:-.3px}.login-card p{color:var(--text-secondary);font-size:13px;margin-bottom:24px;line-height:1.5}.section-title{font-size:13px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.empty{color:var(--text-tertiary);font-size:13px;padding:20px 0;text-align:center}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}.scope-seg{display:inline-flex;padding:3px;background:var(--glass);border-radius:10px;gap:2px}.scope-seg button{padding:4px 10px;font-size:11px;font-weight:500;background:none;color:var(--text-tertiary);border:none;border-radius:7px;cursor:pointer;transition:all .2s ease}.scope-seg button:hover:not(:disabled):not(.active){color:var(--text-secondary);opacity:1}.scope-seg button.active{background:var(--surface-active);color:var(--text)}.scope-seg.lg{padding:4px;border-radius:12px;gap:4px;width:100%}.scope-seg.lg button{flex:1;padding:10px 20px;font-size:14px;font-weight:600;border-radius:8px}.scope-seg.disabled{opacity:.4;pointer-events:none}.toggle{position:relative;width:42px;height:26px;flex-shrink:0;cursor:pointer}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrollbar);border-radius:13px;transition:background .25s ease}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--thumb-bg);border-radius:50%;transition:transform .25s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.toggle input:checked~.toggle-thumb{transform:translate(16px)}.toggle input:disabled+.toggle-track{opacity:.4}.toggle input:disabled~.toggle-thumb{opacity:.4}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg);border:1px solid var(--glass-border-strong);border-radius:var(--radius-lg);padding:24px;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 16px 48px #00000080}.loading{color:var(--text-tertiary);font-size:13px;padding:40px 0;text-align:center}.setup-container{max-width:720px;margin:0 auto;padding:40px 24px;min-height:100vh}.setup-header{margin-bottom:32px}.setup-header h1{font-size:22px;font-weight:600;letter-spacing:-.4px;margin-bottom:8px}.setup-content{margin-top:28px}.setup-nav{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--separator);max-width:720px}.step-indicator{display:flex;align-items:flex-start;padding:16px 0;margin-bottom:12px;max-width:720px}.step-cell{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0;position:relative}.step-cell:last-child{flex:0 0 auto}.step-cell-top{display:flex;align-items:center;width:100%}.step-dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;flex-shrink:0;background:var(--surface);color:var(--text-tertiary);border:1px solid var(--glass-border);transition:all .2s ease}.step-dot.active{background:var(--surface-active);color:var(--text);border-color:var(--glass-border-strong)}.step-dot.completed{background:var(--green-dim);color:var(--green);border-color:#30d1584d}.step-line{flex:1;height:1px;background:var(--glass-border);margin:0 8px;min-width:8px}.step-line.completed{background:#30d1584d}.step-label{font-size:10px;color:var(--text-primary);opacity:.3;text-align:center;white-space:nowrap;margin-top:6px;width:28px;position:relative;left:0;transition:opacity .2s ease}.step-label{overflow:visible;width:max-content;transform:translate(calc(12px - 50%))}.step-label.active{opacity:1;font-weight:500;color:var(--accent)}.step-label.completed{opacity:.5}.provider-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.provider-card{background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:14px;cursor:pointer;transition:all .15s ease}.provider-card:hover{background:var(--surface-hover);border-color:var(--glass-border-strong)}.provider-card.selected{border-color:#ffffff4d;background:#ffffff14}.provider-card h3{font-size:13px;font-weight:600;margin-bottom:4px}.provider-card .provider-meta{font-size:11px;color:var(--text-secondary)}.mnemonic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;margin:12px 0;list-style:none;padding:0}.mnemonic-word{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--surface);border-radius:6px;font-size:12px;font-family:SF Mono,Fira Code,monospace}.mnemonic-word .num{color:var(--text-tertiary);font-size:10px;min-width:16px}.guide-dropdown{margin-bottom:20px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.08);background:#ffffff08}.guide-dropdown summary{padding:10px 14px;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}.guide-dropdown summary::-webkit-details-marker{display:none}.guide-dropdown summary:before{content:"▶";font-size:9px;color:var(--text-tertiary);transition:transform .2s ease}.guide-dropdown[open] summary:before{transform:rotate(90deg)}.guide-dropdown summary:hover{color:var(--text)}.guide-content{padding:0 14px 14px;font-size:13px;line-height:1.6;color:var(--text-secondary);border-top:1px solid rgba(255,255,255,.06)}.guide-section{margin-top:12px}.guide-section strong{color:var(--text);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.guide-section ol{margin:6px 0 0 20px;padding:0}.guide-section ol li{margin-bottom:4px}.guide-section p{margin:6px 0 0}.guide-section code{background:#ffffff14;padding:1px 5px;border-radius:3px;font-size:12px}.warning-card{padding:14px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13px;line-height:1.6;background:#ffffff0a;color:var(--text-secondary);border:1px solid rgba(255,255,255,.08)}.warning-card strong{color:var(--text)}.info-panel{padding:12px 14px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13px;line-height:1.5;background:#ffffff0a;color:var(--text-secondary);border:1px solid rgba(255,255,255,.08)}.code-input{text-align:center;font-size:24px;font-weight:600;letter-spacing:8px;padding:12px 20px;max-width:200px;font-family:SF Mono,Fira Code,monospace}.step-title{font-size:var(--font-lg);font-weight:600;letter-spacing:-.2px;margin-bottom:var(--space-xs)}.step-description{font-size:var(--font-md);color:#ffffffbf;margin-bottom:var(--space-lg)}.helper-text{font-size:var(--font-sm);color:var(--text-secondary);margin-top:var(--space-xs)}.helper-text.error{color:var(--red)}.helper-text.success{color:var(--green)}.form-row{display:flex;align-items:center;gap:var(--space-sm)}.password-wrapper{position:relative;display:flex;align-items:center}.eye-toggle{position:absolute;right:8px;background:none;border:none;cursor:pointer;opacity:.4;padding:4px;display:flex;align-items:center;color:var(--text)}.eye-toggle:hover{opacity:.8}.label-inline{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.info-box{padding:var(--space-md) 14px;border-radius:var(--radius-sm);font-size:var(--font-md);line-height:1.5;background:var(--surface);color:var(--text-secondary);border:1px solid var(--separator);margin-bottom:var(--space-lg)}.code-block{display:inline-block;padding:10px 20px;background:var(--surface);border-radius:var(--radius-sm);font-size:var(--font-base);font-family:var(--font-mono)}.mono{font-family:var(--font-mono)}.text-center{text-align:center}.text-muted{color:var(--text-secondary)}.w-full{width:100%}.card-toggle{display:flex;align-items:center;justify-content:space-between}.card-toggle.open{margin-bottom:var(--space-md)}.module-list{display:flex;flex-direction:column}.module-item{padding:14px 0;border-bottom:1px solid var(--glass-border)}.module-item:first-child{padding-top:0}.module-item:last-child{border-bottom:none}.module-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.module-info{display:flex;flex-direction:column;gap:2px}.module-info strong{font-size:var(--font-md)}.module-desc{font-size:var(--font-sm);color:var(--text-tertiary)}.module-body{margin-top:var(--space-md);padding-top:var(--space-sm)}.review-list{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-md)}.review-label{color:var(--text-secondary)}.review-unset{color:var(--text-tertiary);font-style:italic}.label-inline input[type=checkbox],.label-inline input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;padding:0;flex-shrink:0;border:1.5px solid var(--glass-border-strong);background:var(--surface);cursor:pointer;transition:all .15s ease;position:relative;margin-top:3px}.label-inline input[type=checkbox]{border-radius:5px}.label-inline input[type=radio]{border-radius:50%}.label-inline input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.label-inline input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid var(--text-on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}.label-inline input[type=radio]:checked{border-color:var(--accent);background:var(--surface)}.label-inline input[type=radio]:checked:after{content:"";position:absolute;top:4px;left:4px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.label-inline input[type=checkbox]:focus-visible,.label-inline input[type=radio]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.btn-lg{padding:12px 24px;font-size:var(--font-base);font-weight:600}.step-content{animation:step-fade-in .15s ease-out;max-width:720px}@keyframes step-fade-in{0%{opacity:0}to{opacity:1}}.provider-switch-zone{padding:14px 16px;background:var(--surface);border:1px solid var(--glass-border-strong);border-radius:var(--radius-sm);animation:step-fade-in .15s ease-out}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--glass-border);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle}.spinner.sm{width:12px;height:12px;border-width:1.5px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.container{flex-direction:column}.sidebar{width:100%;height:auto;position:relative;flex-direction:row;overflow-x:auto;padding:12px;border-right:none;border-bottom:1px solid var(--separator)}.sidebar-brand{padding:0 12px 0 4px}.sidebar-brand img{height:32px!important}.sidebar nav{flex-direction:row;gap:2px}.sidebar a{white-space:nowrap;padding:6px 10px}.step-indicator{padding:12px 0;margin-bottom:8px}.step-dot{width:22px;height:22px;font-size:9px}.step-label{font-size:8px}.main{padding:20px 16px}button{min-height:44px;padding:10px 16px}button.btn-sm,button.btn-ghost{min-height:36px}input,textarea,select,.custom-select-trigger{min-height:44px;font-size:16px}}.pill-bar{display:inline-flex;gap:var(--space-sm);padding:var(--space-xs);background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);margin-bottom:var(--space-xl);overflow-x:auto}.pill-bar button{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-md);font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s ease}.pill-bar button:hover{color:var(--text);background:var(--surface-hover)}.pill-bar button.active{background:var(--accent);color:var(--text-on-accent)}
|