kimaki 1.3.0 → 1.5.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/assets/fonts/Geist-Bold.ttf +0 -0
- package/assets/fonts/Geist-Regular.ttf +0 -0
- package/assets/fonts/GeistMono-Regular.ttf +0 -0
- package/assets/fonts/OFL.txt +92 -0
- package/dist/agent-ui.e2e.test.js +27 -13
- package/dist/agent-ui.e2e.test.js.map +1 -1
- package/dist/agent-ui.js +2 -1
- package/dist/agent-ui.js.map +1 -1
- package/dist/analytics.e2e.test.js +1 -1
- package/dist/analytics.e2e.test.js.map +1 -1
- package/dist/autostart.d.ts +4 -0
- package/dist/autostart.js +55 -10
- package/dist/autostart.js.map +1 -1
- package/dist/bot.d.ts +13 -6
- package/dist/bot.js +17 -15
- package/dist/bot.js.map +1 -1
- package/dist/btw.e2e.test.js +3 -3
- package/dist/builtin-skills.d.ts +3 -0
- package/dist/builtin-skills.js +29 -0
- package/dist/builtin-skills.js.map +1 -1
- package/dist/builtin-skills.test.js +72 -1
- package/dist/builtin-skills.test.js.map +1 -1
- package/dist/catalog-refresh.e2e.test.js +2 -2
- package/dist/cli/bot.d.ts +1 -1
- package/dist/cli/bot.js +33 -18
- package/dist/cli/bot.js.map +1 -1
- package/dist/cli/discord.js +32 -6
- package/dist/cli/discord.js.map +1 -1
- package/dist/cli/schedule.js +23 -9
- package/dist/cli/schedule.js.map +1 -1
- package/dist/cli/session.js +37 -12
- package/dist/cli/session.js.map +1 -1
- package/dist/cli/shared.d.ts +5 -3
- package/dist/cli/shared.js +45 -10
- package/dist/cli/shared.js.map +1 -1
- package/dist/cli-discord.e2e.test.js +13 -8
- package/dist/cli-discord.e2e.test.js.map +1 -1
- package/dist/cli-lock.e2e.test.js +87 -20
- package/dist/cli-lock.e2e.test.js.map +1 -1
- package/dist/cli-read.e2e.test.js +18 -9
- package/dist/cli-read.e2e.test.js.map +1 -1
- package/dist/cli-sessions.e2e.test.js +4 -3
- package/dist/cli-sessions.e2e.test.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/preference-commands.d.ts +4 -0
- package/dist/commands/preference-commands.js +38 -4
- package/dist/commands/preference-commands.js.map +1 -1
- package/dist/commands/session-commands.js +11 -8
- package/dist/commands/session-commands.js.map +1 -1
- package/dist/commands/thread-commands.js +94 -24
- package/dist/commands/thread-commands.js.map +1 -1
- package/dist/commands/worktree-commands.d.ts +5 -6
- package/dist/commands/worktree-commands.js +8 -7
- package/dist/commands/worktree-commands.js.map +1 -1
- package/dist/commands.e2e.test.js +25 -21
- package/dist/commands.e2e.test.js.map +1 -1
- package/dist/coordinator-agents.e2e.test.d.ts +1 -0
- package/dist/coordinator-agents.e2e.test.js +113 -0
- package/dist/coordinator-agents.e2e.test.js.map +1 -0
- package/dist/coordinator-idle.e2e.test.d.ts +1 -0
- package/dist/coordinator-idle.e2e.test.js +100 -0
- package/dist/coordinator-idle.e2e.test.js.map +1 -0
- package/dist/coordinator-queue.e2e.test.d.ts +1 -0
- package/dist/coordinator-queue.e2e.test.js +244 -0
- package/dist/coordinator-queue.e2e.test.js.map +1 -0
- package/dist/coordinator-warmup.e2e.test.d.ts +1 -0
- package/dist/coordinator-warmup.e2e.test.js +131 -0
- package/dist/coordinator-warmup.e2e.test.js.map +1 -0
- package/dist/coordinator.d.ts +6 -0
- package/dist/coordinator.e2e.test.d.ts +1 -0
- package/dist/coordinator.e2e.test.js +505 -0
- package/dist/coordinator.e2e.test.js.map +1 -0
- package/dist/coordinator.js +164 -0
- package/dist/coordinator.js.map +1 -0
- package/dist/db.d.ts +78 -3
- package/dist/db.test.js +1 -0
- package/dist/db.test.js.map +1 -1
- package/dist/diagram.d.ts +11 -0
- package/dist/diagram.js +232 -0
- package/dist/diagram.js.map +1 -0
- package/dist/diagram.test.d.ts +1 -0
- package/dist/diagram.test.js +52 -0
- package/dist/diagram.test.js.map +1 -0
- package/dist/duration.js +13 -5
- package/dist/duration.js.map +1 -1
- package/dist/effects.d.ts +6 -1
- package/dist/effects.js +97 -26
- package/dist/effects.js.map +1 -1
- package/dist/event-loop.d.ts +2 -3
- package/dist/event-loop.js +74 -44
- package/dist/event-loop.js.map +1 -1
- package/dist/format-parts.d.ts +21 -4
- package/dist/format-parts.js +40 -23
- package/dist/format-parts.js.map +1 -1
- package/dist/gateway-replay.e2e.test.js +4 -4
- package/dist/harness.e2e.test.js +2 -2
- package/dist/harness.e2e.test.js.map +1 -1
- package/dist/hello-thread.e2e.test.js +56 -5
- package/dist/hello-thread.e2e.test.js.map +1 -1
- package/dist/ingress.js +47 -12
- package/dist/ingress.js.map +1 -1
- package/dist/interaction-context.d.ts +4 -4
- package/dist/interaction-context.js +9 -7
- package/dist/interaction-context.js.map +1 -1
- package/dist/interrupt.e2e.test.js +8 -5
- package/dist/interrupt.e2e.test.js.map +1 -1
- package/dist/legacy.e2e.test.js +1 -1
- package/dist/lock-routes.d.ts +83 -31
- package/dist/lock-routes.js +68 -8
- package/dist/lock-routes.js.map +1 -1
- package/dist/lock-server.d.ts +3 -2
- package/dist/lock-server.js +23 -7
- package/dist/lock-server.js.map +1 -1
- package/dist/main.d.ts +6 -3
- package/dist/main.js +14 -4
- package/dist/main.js.map +1 -1
- package/dist/mainmast-idle.e2e.test.d.ts +1 -0
- package/dist/mainmast-idle.e2e.test.js +99 -0
- package/dist/mainmast-idle.e2e.test.js.map +1 -0
- package/dist/mainmast-queue.e2e.test.d.ts +1 -0
- package/dist/mainmast-queue.e2e.test.js +244 -0
- package/dist/mainmast-queue.e2e.test.js.map +1 -0
- package/dist/mainmast-warmup.e2e.test.d.ts +1 -0
- package/dist/mainmast-warmup.e2e.test.js +130 -0
- package/dist/mainmast-warmup.e2e.test.js.map +1 -0
- package/dist/mainmast.d.ts +6 -0
- package/dist/mainmast.e2e.test.d.ts +1 -0
- package/dist/mainmast.e2e.test.js +428 -0
- package/dist/mainmast.e2e.test.js.map +1 -0
- package/dist/mainmast.js +156 -0
- package/dist/mainmast.js.map +1 -0
- package/dist/markdown/markdown.test.js +14 -4
- package/dist/markdown/markdown.test.js.map +1 -1
- package/dist/markdown/render-markdown.js +9 -6
- package/dist/markdown/render-markdown.js.map +1 -1
- package/dist/onboarding-cli.e2e.test.js +7 -6
- package/dist/onboarding-cli.e2e.test.js.map +1 -1
- package/dist/onboarding.d.ts +3 -10
- package/dist/onboarding.e2e.test.js +8 -10
- package/dist/onboarding.e2e.test.js.map +1 -1
- package/dist/onboarding.js +14 -24
- package/dist/onboarding.js.map +1 -1
- package/dist/permissions.e2e.test.js +3 -3
- package/dist/plugin/coordinator.d.ts +4 -0
- package/dist/plugin/coordinator.js +389 -0
- package/dist/plugin/coordinator.js.map +1 -0
- package/dist/plugin/index.js +93 -61
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/mainmast.d.ts +4 -0
- package/dist/plugin/mainmast.js +379 -0
- package/dist/plugin/mainmast.js.map +1 -0
- package/dist/plugin.e2e.test.js +1 -1
- package/dist/preference-commands.e2e.test.js +103 -24
- package/dist/preference-commands.e2e.test.js.map +1 -1
- package/dist/project.d.ts +1 -1
- package/dist/prompt.d.ts +22 -9
- package/dist/prompt.js +64 -48
- package/dist/prompt.js.map +1 -1
- package/dist/questions.e2e.test.js +13 -13
- package/dist/queue-sources.e2e.test.d.ts +1 -0
- package/dist/queue-sources.e2e.test.js +168 -0
- package/dist/queue-sources.e2e.test.js.map +1 -0
- package/dist/queue.d.ts +9 -1
- package/dist/queue.e2e.test.js +48 -30
- package/dist/queue.e2e.test.js.map +1 -1
- package/dist/queue.js +97 -24
- package/dist/queue.js.map +1 -1
- package/dist/queue.test.d.ts +1 -0
- package/dist/queue.test.js +57 -0
- package/dist/queue.test.js.map +1 -0
- package/dist/remote-send.e2e.test.js +6 -6
- package/dist/remote-send.js +2 -1
- package/dist/remote-send.js.map +1 -1
- package/dist/renderer.e2e.test.js +7 -7
- package/dist/restart.e2e.test.js +2 -2
- package/dist/routines.e2e.test.js +2 -2
- package/dist/scheduler.d.ts +3 -3
- package/dist/scheduler.e2e.test.js +43 -20
- package/dist/scheduler.e2e.test.js.map +1 -1
- package/dist/scheduler.js +4 -2
- package/dist/scheduler.js.map +1 -1
- package/dist/schema-sql.d.ts +1 -1
- package/dist/schema-sql.js +1 -1
- package/dist/schema-sql.js.map +1 -1
- package/dist/schema.d.ts +152 -6
- package/dist/schema.js +12 -0
- package/dist/schema.js.map +1 -1
- package/dist/session-commands.e2e.test.js +36 -11
- package/dist/session-commands.e2e.test.js.map +1 -1
- package/dist/session-events.d.ts +18 -6
- package/dist/session-events.js +175 -27
- package/dist/session-events.js.map +1 -1
- package/dist/session-ops.e2e.test.js +63 -12
- package/dist/session-ops.e2e.test.js.map +1 -1
- package/dist/sessions.d.ts +44 -21
- package/dist/sessions.js +177 -65
- package/dist/sessions.js.map +1 -1
- package/dist/shell.e2e.test.js +4 -4
- package/dist/slash-commands.js +6 -4
- package/dist/slash-commands.js.map +1 -1
- package/dist/slash-commands.test.js +2 -0
- package/dist/slash-commands.test.js.map +1 -1
- package/dist/sleep.e2e.test.js +29 -14
- package/dist/sleep.e2e.test.js.map +1 -1
- package/dist/sleeps.d.ts +2 -1
- package/dist/sleeps.js +21 -3
- package/dist/sleeps.js.map +1 -1
- package/dist/store.d.ts +1 -0
- package/dist/store.js +3 -2
- package/dist/store.js.map +1 -1
- package/dist/system-prompt.d.ts +5 -15
- package/dist/system-prompt.js +180 -131
- package/dist/system-prompt.js.map +1 -1
- package/dist/test/generate-log-plugin/index.d.ts +3 -0
- package/dist/test/generate-log-plugin/index.js +15 -0
- package/dist/test/generate-log-plugin/index.js.map +1 -0
- package/dist/test/harness.d.ts +20 -2
- package/dist/test/harness.js +51 -11
- package/dist/test/harness.js.map +1 -1
- package/dist/test/replay.js +11 -8
- package/dist/test/replay.js.map +1 -1
- package/dist/thread-reducer.d.ts +29 -6
- package/dist/thread-reducer.fixtures.test.js +58 -51
- package/dist/thread-reducer.fixtures.test.js.map +1 -1
- package/dist/thread-reducer.js +109 -50
- package/dist/thread-reducer.js.map +1 -1
- package/dist/thread-reducer.test.js +190 -48
- package/dist/thread-reducer.test.js.map +1 -1
- package/dist/tunnel.d.ts +9 -0
- package/dist/tunnel.js +117 -28
- package/dist/tunnel.js.map +1 -1
- package/dist/tunnel.test.js +81 -5
- package/dist/tunnel.test.js.map +1 -1
- package/dist/voice-attachments.e2e.test.js +108 -18
- package/dist/voice-attachments.e2e.test.js.map +1 -1
- package/dist/voice-call.e2e.test.js +9 -9
- package/dist/voice-call.js +6 -6
- package/dist/voice-call.js.map +1 -1
- package/dist/voice-openai.e2e.test.js +59 -23
- package/dist/voice-openai.e2e.test.js.map +1 -1
- package/dist/voice.d.ts +1 -1
- package/dist/voice.js +72 -24
- package/dist/voice.js.map +1 -1
- package/dist/working-directory.e2e.test.js +11 -11
- package/dist/working-directory.e2e.test.js.map +1 -1
- package/package.json +11 -5
- package/skills/kimaki-tunnel/SKILL.md +3 -2
- package/src/agent-ui.e2e.test.ts +27 -13
- package/src/agent-ui.ts +2 -1
- package/src/analytics.e2e.test.ts +1 -1
- package/src/autostart.ts +55 -10
- package/src/bot.ts +36 -19
- package/src/btw.e2e.test.ts +3 -3
- package/src/builtin-skills.test.ts +73 -1
- package/src/builtin-skills.ts +33 -0
- package/src/catalog-refresh.e2e.test.ts +2 -2
- package/src/cli/bot.ts +30 -19
- package/src/cli/discord.ts +30 -6
- package/src/cli/schedule.ts +23 -9
- package/src/cli/session.ts +35 -12
- package/src/cli/shared.ts +43 -8
- package/src/cli-discord.e2e.test.ts +13 -8
- package/src/cli-lock.e2e.test.ts +88 -20
- package/src/cli-read.e2e.test.ts +17 -8
- package/src/cli-sessions.e2e.test.ts +4 -3
- package/src/cli.ts +2 -0
- package/src/commands/preference-commands.ts +38 -4
- package/src/commands/session-commands.ts +12 -7
- package/src/commands/thread-commands.ts +92 -24
- package/src/commands/worktree-commands.ts +10 -9
- package/src/commands.e2e.test.ts +25 -21
- package/src/coordinator-agents.e2e.test.ts +145 -0
- package/src/coordinator-idle.e2e.test.ts +122 -0
- package/src/coordinator-queue.e2e.test.ts +279 -0
- package/src/coordinator-warmup.e2e.test.ts +158 -0
- package/src/coordinator.e2e.test.ts +545 -0
- package/src/coordinator.ts +168 -0
- package/src/db.test.ts +1 -0
- package/src/diagram.test.ts +56 -0
- package/src/diagram.ts +243 -0
- package/src/duration.ts +13 -5
- package/src/effects.ts +99 -27
- package/src/event-loop.ts +71 -45
- package/src/format-parts.ts +53 -22
- package/src/gateway-replay.e2e.test.ts +4 -4
- package/src/harness.e2e.test.ts +2 -2
- package/src/hello-thread.e2e.test.ts +59 -5
- package/src/ingress.ts +44 -11
- package/src/interaction-context.ts +12 -11
- package/src/interrupt.e2e.test.ts +8 -5
- package/src/legacy.e2e.test.ts +1 -1
- package/src/lock-routes.ts +62 -8
- package/src/lock-server.ts +23 -7
- package/src/main.ts +26 -10
- package/src/markdown/markdown.test.ts +15 -4
- package/src/markdown/render-markdown.ts +9 -6
- package/src/onboarding-cli.e2e.test.ts +7 -6
- package/src/onboarding.e2e.test.ts +8 -10
- package/src/onboarding.ts +13 -29
- package/src/permissions.e2e.test.ts +3 -3
- package/src/plugin/coordinator.ts +401 -0
- package/src/plugin/index.ts +86 -59
- package/src/plugin.e2e.test.ts +1 -1
- package/src/preference-commands.e2e.test.ts +103 -23
- package/src/prompt.ts +87 -43
- package/src/questions.e2e.test.ts +13 -13
- package/src/queue-sources.e2e.test.ts +197 -0
- package/src/queue.e2e.test.ts +48 -30
- package/src/queue.test.ts +59 -0
- package/src/queue.ts +104 -24
- package/src/remote-send.e2e.test.ts +6 -6
- package/src/remote-send.ts +2 -1
- package/src/renderer.e2e.test.ts +7 -7
- package/src/restart.e2e.test.ts +2 -2
- package/src/routines.e2e.test.ts +2 -2
- package/src/scheduler.e2e.test.ts +45 -19
- package/src/scheduler.ts +4 -2
- package/src/schema-sql.ts +1 -1
- package/src/schema.ts +13 -0
- package/src/session-commands.e2e.test.ts +38 -11
- package/src/session-events.ts +168 -25
- package/src/session-ops.e2e.test.ts +64 -11
- package/src/sessions.ts +217 -67
- package/src/shell.e2e.test.ts +4 -4
- package/src/slash-commands.test.ts +2 -0
- package/src/slash-commands.ts +6 -4
- package/src/sleep.e2e.test.ts +30 -13
- package/src/sleeps.ts +20 -3
- package/src/store.ts +5 -2
- package/src/system-prompt.ts +190 -134
- package/src/test/generate-log-plugin/index.ts +16 -0
- package/src/test/harness.ts +77 -17
- package/src/test/replay.ts +12 -7
- package/src/thread-reducer.fixtures.test.ts +58 -51
- package/src/thread-reducer.test.ts +199 -49
- package/src/thread-reducer.ts +135 -66
- package/src/tunnel.test.ts +81 -5
- package/src/tunnel.ts +124 -25
- package/src/voice-attachments.e2e.test.ts +110 -18
- package/src/voice-call.e2e.test.ts +9 -9
- package/src/voice-call.ts +6 -6
- package/src/voice-openai.e2e.test.ts +64 -24
- package/src/voice.ts +93 -26
- package/src/working-directory.e2e.test.ts +11 -11
- package/src/message-tool.e2e.test.ts +0 -45
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
// Coordinator notes: when a thread session finishes a run, its coordinator learns
|
|
2
|
+
// about it, so the coordinator always knows what happened in its project.
|
|
3
|
+
//
|
|
4
|
+
// thread run ends ─▶ `kimaki send --wait` prompt, wait not over, target busy? ─▶ no note: the wait prints the answer
|
|
5
|
+
// ├─▶ run prompt sent by a coordinator (`sender`)? ─▶ note + wake that coordinator
|
|
6
|
+
// └─▶ else (user steered, routine), channel coordinator? ─▶ silent note (read at next prompt)
|
|
7
|
+
//
|
|
8
|
+
// Who sent the prompt is in its metadata (`sender`, prompt.ts), read from the
|
|
9
|
+
// run's messages: no state of its own. The note is a synthetic inbox item, like
|
|
10
|
+
// OpenCode's own subagent completion (core/src/session/subagent-completion.ts):
|
|
11
|
+
// `resume` decides if it wakes the session.
|
|
12
|
+
import { isCoordinatorChannel, oc, projectOf, readMarker } from "./bot.js";
|
|
13
|
+
import { createLogger } from "./logger.js";
|
|
14
|
+
import { IDLE_REPLY } from "./plugin/coordinator.js";
|
|
15
|
+
import { finalAnswer, formatDuration, formatTokens, sessionUsage } from "./session-events.js";
|
|
16
|
+
import { escapeAttribute } from "./system-prompt.js";
|
|
17
|
+
const logger = createLogger('COORDINATOR');
|
|
18
|
+
// A woken coordinator reads the whole answer; a silent note only says what happened.
|
|
19
|
+
const WAKE_ANSWER_CHARS = 2_000;
|
|
20
|
+
const NOTE_ANSWER_CHARS = 400;
|
|
21
|
+
const USER_PROMPT_CHARS = 1_000;
|
|
22
|
+
const RUN_PAGE_MESSAGES = 30;
|
|
23
|
+
// A run longer than this only loses uploads from its first steps.
|
|
24
|
+
const MAX_RUN_PAGES = 10;
|
|
25
|
+
// The messages of the last run, oldest first: pages back until its user prompt.
|
|
26
|
+
async function lastRunMessages(bot, sessionId) {
|
|
27
|
+
const messages = [];
|
|
28
|
+
let cursor;
|
|
29
|
+
for (let page = 0; page < MAX_RUN_PAGES; page++) {
|
|
30
|
+
const result = await oc(bot, 'message.list', (client) => client.message.list({ sessionID: sessionId, limit: RUN_PAGE_MESSAGES, ...(cursor ? { cursor } : { order: 'desc' }) }));
|
|
31
|
+
if (result instanceof Error)
|
|
32
|
+
return result;
|
|
33
|
+
messages.push(...result.data);
|
|
34
|
+
cursor = result.cursor.next ?? undefined;
|
|
35
|
+
if (!cursor || result.data.some((message) => message.type === 'user'))
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
return messages.reverse();
|
|
39
|
+
}
|
|
40
|
+
// Who wrote the run's prompt, from its metadata (prompt.ts): a sender
|
|
41
|
+
// (`kimaki send`, routine, sleep wake) or a person in Discord.
|
|
42
|
+
function runPrompt(messages) {
|
|
43
|
+
const prompt = messages.findLast((message) => message.type === 'user');
|
|
44
|
+
if (prompt?.type !== 'user')
|
|
45
|
+
return { sender: null, user: null };
|
|
46
|
+
const sender = prompt.metadata?.['sender'];
|
|
47
|
+
if (sender && typeof sender === 'object') {
|
|
48
|
+
const sessionId = Reflect.get(sender, 'sessionId');
|
|
49
|
+
const waitUntil = Reflect.get(sender, 'waitUntil');
|
|
50
|
+
return { sender: { ...(typeof sessionId === 'string' && { sessionId }), ...(typeof waitUntil === 'number' && { waitUntil }) }, user: null };
|
|
51
|
+
}
|
|
52
|
+
const discord = prompt.metadata?.['discord'];
|
|
53
|
+
const username = discord && typeof discord === 'object' ? Reflect.get(discord, 'username') : null;
|
|
54
|
+
return { sender: null, user: typeof username === 'string' ? { username, text: prompt.text } : null };
|
|
55
|
+
}
|
|
56
|
+
// The coordinator a session belongs to: the root of its conversation when that is
|
|
57
|
+
// a coordinator channel. The sender may be a subagent of that coordinator.
|
|
58
|
+
async function coordinatorOf(bot, sessionId) {
|
|
59
|
+
const { sessionThreads, roots } = bot.store.getState();
|
|
60
|
+
const conversation = sessionThreads[sessionId];
|
|
61
|
+
if (!conversation || !(await holdsCoordinator(bot, conversation)))
|
|
62
|
+
return null;
|
|
63
|
+
return roots[conversation] ?? null;
|
|
64
|
+
}
|
|
65
|
+
function cut(text, max) {
|
|
66
|
+
return text.length <= max ? text : `${text.slice(0, max)}…`;
|
|
67
|
+
}
|
|
68
|
+
// A conversation that is a project channel in coordinator mode holds a coordinator.
|
|
69
|
+
async function holdsCoordinator(bot, conversationId) {
|
|
70
|
+
if (!isCoordinatorChannel(bot, conversationId))
|
|
71
|
+
return false;
|
|
72
|
+
const project = await projectOf(bot, conversationId);
|
|
73
|
+
return !(project instanceof Error) && project !== null;
|
|
74
|
+
}
|
|
75
|
+
// The project channel of a session thread, from its view or from Discord.
|
|
76
|
+
async function channelOfThread(bot, threadId) {
|
|
77
|
+
const view = bot.store.getState().threads[threadId];
|
|
78
|
+
if (view)
|
|
79
|
+
return view.channelId;
|
|
80
|
+
const channel = await bot.discord.channels.fetch(threadId).catch(() => null);
|
|
81
|
+
return channel?.isThread() ? channel.parentId : null;
|
|
82
|
+
}
|
|
83
|
+
// The run's prompt came from `kimaki send --wait`, the run ended before the wait
|
|
84
|
+
// ran out and the target still runs: it is waiting in that shell call, which
|
|
85
|
+
// prints the answer. A target that is idle lost its wait (shell timeout,
|
|
86
|
+
// interrupt), so it gets the note.
|
|
87
|
+
async function isWaiting(bot, target) {
|
|
88
|
+
const active = await oc(bot, 'session.active', (client) => client.session.active());
|
|
89
|
+
// On a failed check the note goes out: a duplicate is better than a lost result.
|
|
90
|
+
if (active instanceof Error) {
|
|
91
|
+
logger.warn(`wait check of ${target}`, active);
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return target in active;
|
|
95
|
+
}
|
|
96
|
+
async function noteRunEnded(bot, run) {
|
|
97
|
+
const channelId = await channelOfThread(bot, run.threadId);
|
|
98
|
+
// The coordinator's own runs, and threads outside any project channel.
|
|
99
|
+
if (!channelId || channelId === run.threadId)
|
|
100
|
+
return;
|
|
101
|
+
const [info, messages] = await Promise.all([
|
|
102
|
+
oc(bot, 'session.get', (client) => client.session.get({ sessionID: run.sessionId })),
|
|
103
|
+
lastRunMessages(bot, run.sessionId),
|
|
104
|
+
]);
|
|
105
|
+
if (info instanceof Error)
|
|
106
|
+
return logger.warn(`note of ${run.sessionId}`, info);
|
|
107
|
+
if (messages instanceof Error)
|
|
108
|
+
return logger.warn(`answer of ${run.sessionId}`, messages);
|
|
109
|
+
const marker = readMarker(info.metadata);
|
|
110
|
+
const { sender, user } = runPrompt(messages);
|
|
111
|
+
// TODO: also note sessions on other machines (remote `kimaki send`, OpenCode workspaces).
|
|
112
|
+
// Their bot cannot reach this OpenCode server: relay the note through a Discord envelope
|
|
113
|
+
// in the coordinator channel, like remote-send.ts does for prompts.
|
|
114
|
+
// Only a run a coordinator prompted wakes it. The user steering the thread, routines and
|
|
115
|
+
// other senders leave a silent note in the channel's coordinator.
|
|
116
|
+
const sentBy = sender?.sessionId ? await coordinatorOf(bot, sender.sessionId) : null;
|
|
117
|
+
const wake = sentBy !== null;
|
|
118
|
+
const target = sentBy ?? (isCoordinatorChannel(bot, channelId) ? bot.store.getState().roots[channelId] : undefined);
|
|
119
|
+
if (!target || target === run.sessionId)
|
|
120
|
+
return;
|
|
121
|
+
if (sender?.waitUntil !== undefined && Date.now() < sender.waitUntil && (await isWaiting(bot, target)))
|
|
122
|
+
return;
|
|
123
|
+
const answer = run.error ?? finalAnswer(messages) ?? 'Finished without a text answer.';
|
|
124
|
+
const state = run.error ? 'error' : 'completed';
|
|
125
|
+
const title = info.title || 'Untitled';
|
|
126
|
+
const routine = marker?.task ? ` routine="#${marker.task.id}"` : '';
|
|
127
|
+
// Context size and run length, so the coordinator knows when a follow-up would rewrite a big cache.
|
|
128
|
+
const usage = sessionUsage(messages);
|
|
129
|
+
const stats = usage ? ` context="${formatTokens(usage.contextTokens)} tokens"${usage.runMs === null ? '' : ` duration="${formatDuration(usage.runMs)}"`}` : '';
|
|
130
|
+
const text = [
|
|
131
|
+
`<session-finished sessionID="${run.sessionId}" threadID="${run.threadId}" state="${state}" title="${escapeAttribute(title)}"${routine}${stats} wake="${wake}">`,
|
|
132
|
+
// The user steered this thread directly: the coordinator must know what they asked.
|
|
133
|
+
...(user ? [`<user-prompt username="${escapeAttribute(user.username)}">\n${cut(user.text, USER_PROMPT_CHARS)}\n</user-prompt>`] : []),
|
|
134
|
+
cut(answer, wake ? WAKE_ANSWER_CHARS : NOTE_ANSWER_CHARS),
|
|
135
|
+
`More: kimaki session read ${run.sessionId}`,
|
|
136
|
+
...(wake ? [`The user sees nothing else about this. When it is work they asked for, a failure or a decision they must make, tell them the outcome in a few plain sentences, with the thread link <#${run.threadId}> once. Otherwise reply exactly ${IDLE_REPLY}.`] : []),
|
|
137
|
+
'</session-finished>',
|
|
138
|
+
].join('\n');
|
|
139
|
+
const sent = await oc(bot, 'session.synthetic', (client) => client.session.synthetic({
|
|
140
|
+
sessionID: target,
|
|
141
|
+
text,
|
|
142
|
+
description: `${title} finished`,
|
|
143
|
+
metadata: { source: 'kimaki-session', sessionID: run.sessionId, threadID: run.threadId, title, state, wake },
|
|
144
|
+
resume: wake,
|
|
145
|
+
}));
|
|
146
|
+
if (sent instanceof Error)
|
|
147
|
+
return logger.warn(`note of ${run.sessionId} to ${target}`, sent);
|
|
148
|
+
logger.log(`${wake ? 'woke' : 'noted'} coordinator ${target}: ${run.sessionId} ${state}`);
|
|
149
|
+
}
|
|
150
|
+
export function createCoordinatorNotes() {
|
|
151
|
+
const registered = { bot: null };
|
|
152
|
+
return {
|
|
153
|
+
register(bot) {
|
|
154
|
+
registered.bot = bot;
|
|
155
|
+
},
|
|
156
|
+
runEnded(run) {
|
|
157
|
+
const bot = registered.bot;
|
|
158
|
+
// No channel in coordinator mode: no note to send, so no OpenCode reads.
|
|
159
|
+
if (bot && (bot.coordinatorDefault || Object.values(bot.store.getState().coordinator).includes(true)))
|
|
160
|
+
void noteRunEnded(bot, run);
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../src/coordinator.ts"],"names":[],"mappings":"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"}
|
package/dist/db.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ declare function createDrizzle(client: Client): import("drizzle-orm/libsql").Lib
|
|
|
28
28
|
channel_worktree: orm.One<"channel_worktrees", true>;
|
|
29
29
|
channel_verbosity: orm.One<"channel_verbosity", true>;
|
|
30
30
|
channel_mention_mode: orm.One<"channel_mention_mode", true>;
|
|
31
|
+
channel_coordinator: orm.One<"channel_coordinator", true>;
|
|
31
32
|
scheduled_tasks: orm.Many<"scheduled_tasks">;
|
|
32
33
|
};
|
|
33
34
|
channel_models: {
|
|
@@ -45,6 +46,9 @@ declare function createDrizzle(client: Client): import("drizzle-orm/libsql").Lib
|
|
|
45
46
|
channel_mention_mode: {
|
|
46
47
|
channel: orm.One<"channel_directories", true>;
|
|
47
48
|
};
|
|
49
|
+
channel_coordinator: {
|
|
50
|
+
channel: orm.One<"channel_directories", true>;
|
|
51
|
+
};
|
|
48
52
|
scheduled_tasks: {
|
|
49
53
|
channel: orm.One<"channel_directories", true>;
|
|
50
54
|
thread: orm.One<"thread_sessions", true>;
|
|
@@ -210,7 +214,7 @@ declare function createDrizzle(client: Client): import("drizzle-orm/libsql").Lib
|
|
|
210
214
|
name: string;
|
|
211
215
|
tableName: "bot_tokens";
|
|
212
216
|
dataType: "string enum";
|
|
213
|
-
data: "
|
|
217
|
+
data: "self_hosted" | "gateway";
|
|
214
218
|
driverParam: string;
|
|
215
219
|
notNull: true;
|
|
216
220
|
hasDefault: true;
|
|
@@ -1063,6 +1067,77 @@ declare function createDrizzle(client: Client): import("drizzle-orm/libsql").Lib
|
|
|
1063
1067
|
};
|
|
1064
1068
|
dialect: "sqlite";
|
|
1065
1069
|
}>;
|
|
1070
|
+
channel_coordinator: s.SQLiteTableWithColumns<{
|
|
1071
|
+
name: "channel_coordinator";
|
|
1072
|
+
schema: undefined;
|
|
1073
|
+
columns: {
|
|
1074
|
+
channel_id: s.SQLiteColumn<{
|
|
1075
|
+
name: string;
|
|
1076
|
+
tableName: "channel_coordinator";
|
|
1077
|
+
dataType: "string";
|
|
1078
|
+
data: string;
|
|
1079
|
+
driverParam: string;
|
|
1080
|
+
notNull: true;
|
|
1081
|
+
hasDefault: false;
|
|
1082
|
+
isPrimaryKey: true;
|
|
1083
|
+
isAutoincrement: false;
|
|
1084
|
+
hasRuntimeDefault: false;
|
|
1085
|
+
enumValues: [string, ...string[]];
|
|
1086
|
+
baseColumn: never;
|
|
1087
|
+
identity: undefined;
|
|
1088
|
+
generated: undefined;
|
|
1089
|
+
}, {}>;
|
|
1090
|
+
enabled: s.SQLiteColumn<{
|
|
1091
|
+
name: string;
|
|
1092
|
+
tableName: "channel_coordinator";
|
|
1093
|
+
dataType: "number int53";
|
|
1094
|
+
data: number;
|
|
1095
|
+
driverParam: number;
|
|
1096
|
+
notNull: true;
|
|
1097
|
+
hasDefault: false;
|
|
1098
|
+
isPrimaryKey: false;
|
|
1099
|
+
isAutoincrement: false;
|
|
1100
|
+
hasRuntimeDefault: false;
|
|
1101
|
+
enumValues: undefined;
|
|
1102
|
+
baseColumn: never;
|
|
1103
|
+
identity: undefined;
|
|
1104
|
+
generated: undefined;
|
|
1105
|
+
}, {}>;
|
|
1106
|
+
created_at: s.SQLiteColumn<{
|
|
1107
|
+
name: string;
|
|
1108
|
+
tableName: "channel_coordinator";
|
|
1109
|
+
dataType: "custom";
|
|
1110
|
+
data: Date;
|
|
1111
|
+
driverParam: string;
|
|
1112
|
+
notNull: false;
|
|
1113
|
+
hasDefault: true;
|
|
1114
|
+
isPrimaryKey: false;
|
|
1115
|
+
isAutoincrement: false;
|
|
1116
|
+
hasRuntimeDefault: false;
|
|
1117
|
+
enumValues: undefined;
|
|
1118
|
+
baseColumn: never;
|
|
1119
|
+
identity: undefined;
|
|
1120
|
+
generated: undefined;
|
|
1121
|
+
}, {}>;
|
|
1122
|
+
updated_at: s.SQLiteColumn<{
|
|
1123
|
+
name: string;
|
|
1124
|
+
tableName: "channel_coordinator";
|
|
1125
|
+
dataType: "custom";
|
|
1126
|
+
data: Date;
|
|
1127
|
+
driverParam: string;
|
|
1128
|
+
notNull: false;
|
|
1129
|
+
hasDefault: true;
|
|
1130
|
+
isPrimaryKey: false;
|
|
1131
|
+
isAutoincrement: false;
|
|
1132
|
+
hasRuntimeDefault: false;
|
|
1133
|
+
enumValues: undefined;
|
|
1134
|
+
baseColumn: never;
|
|
1135
|
+
identity: undefined;
|
|
1136
|
+
generated: undefined;
|
|
1137
|
+
}, {}>;
|
|
1138
|
+
};
|
|
1139
|
+
dialect: "sqlite";
|
|
1140
|
+
}>;
|
|
1066
1141
|
scheduled_tasks: s.SQLiteTableWithColumns<{
|
|
1067
1142
|
name: "scheduled_tasks";
|
|
1068
1143
|
schema: undefined;
|
|
@@ -1087,7 +1162,7 @@ declare function createDrizzle(client: Client): import("drizzle-orm/libsql").Lib
|
|
|
1087
1162
|
name: string;
|
|
1088
1163
|
tableName: "scheduled_tasks";
|
|
1089
1164
|
dataType: "string enum";
|
|
1090
|
-
data: "
|
|
1165
|
+
data: "planned" | "running" | "completed" | "cancelled" | "failed";
|
|
1091
1166
|
driverParam: string;
|
|
1092
1167
|
notNull: true;
|
|
1093
1168
|
hasDefault: true;
|
|
@@ -1430,7 +1505,7 @@ declare function createDrizzle(client: Client): import("drizzle-orm/libsql").Lib
|
|
|
1430
1505
|
name: string;
|
|
1431
1506
|
tableName: "session_sleeps";
|
|
1432
1507
|
dataType: "string enum";
|
|
1433
|
-
data: "
|
|
1508
|
+
data: "planned" | "cancelled" | "failed" | "consumed";
|
|
1434
1509
|
driverParam: string;
|
|
1435
1510
|
notNull: true;
|
|
1436
1511
|
hasDefault: true;
|
package/dist/db.test.js
CHANGED
package/dist/db.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.test.js","sourceRoot":"","sources":["../src/db.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.test.js","sourceRoot":"","sources":["../src/db.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as errore from 'errore';
|
|
2
|
+
export type DiagramTheme = 'light' | 'dark';
|
|
3
|
+
declare const DiagramError_base: errore.FactoryTaggedErrorClass<"DiagramError", "$reason", Error>;
|
|
4
|
+
export declare class DiagramError extends DiagramError_base {
|
|
5
|
+
}
|
|
6
|
+
export declare function computeCustomProperties(svg: string, vars?: ReadonlyMap<string, string>): string;
|
|
7
|
+
export declare function withColorClasses(source: string, theme?: DiagramTheme): string;
|
|
8
|
+
export declare function renderDiagram(source: string, { theme }?: {
|
|
9
|
+
theme?: DiagramTheme;
|
|
10
|
+
}): DiagramError | Buffer;
|
|
11
|
+
export {};
|
package/dist/diagram.js
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
// `kimaki diagram`: renders Mermaid source to a PNG for Discord, which shows
|
|
2
|
+
// SVG attachments as code, not as images. pele (https://pele.run) lays out
|
|
3
|
+
// the diagram as SVG in pure JS; resvg rasterizes it with the bundled Geist fonts.
|
|
4
|
+
// Loaded lazily by the CLI command, so the static imports cost nothing at startup.
|
|
5
|
+
import fs from 'node:fs';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
import { Resvg } from '@resvg/resvg-js';
|
|
9
|
+
import * as errore from 'errore';
|
|
10
|
+
import { DomUtils, parseDocument } from 'htmlparser2';
|
|
11
|
+
import { detectType, render } from 'pele';
|
|
12
|
+
import postcss from 'postcss';
|
|
13
|
+
import valueParser, {} from 'postcss-value-parser';
|
|
14
|
+
const FONTS_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'assets', 'fonts');
|
|
15
|
+
const SCALE = 2;
|
|
16
|
+
const PADDING = 24;
|
|
17
|
+
// Inherited by every shape without its own width, edges included.
|
|
18
|
+
const STROKE_WIDTH = 1.5;
|
|
19
|
+
// Share of the hue in a color class border; the rest is its fill, for soft borders.
|
|
20
|
+
const BORDER_HUE = 0.5;
|
|
21
|
+
// Discord shrinks long images until labels are unreadable; a square one reads best.
|
|
22
|
+
// The compact candidate asks pele for the narrowest layout: wrapped labels and `LR`
|
|
23
|
+
// turned into `TB` (https://pele.run/api#narrow-screens).
|
|
24
|
+
const SQUARE_CANDIDATES = [{ autoDirection: false }, { maxWidth: 1, autoDirection: true, directionBreakpoint: Infinity }];
|
|
25
|
+
// Category hues, built in as classDefs so diagrams only write `node:::blue`.
|
|
26
|
+
// Light: the claude-style palette of the diagrams-and-charts skill. Dark: Vercel/Next.js docs.
|
|
27
|
+
const LIGHT_COLORS = {
|
|
28
|
+
blue: { fill: '#edf5fb', stroke: '#5290c8' },
|
|
29
|
+
green: { fill: '#eef6f0', stroke: '#5f9a6d' },
|
|
30
|
+
purple: { fill: '#f3effa', stroke: '#8a72c2' },
|
|
31
|
+
pink: { fill: '#fbeef3', stroke: '#c4688a' },
|
|
32
|
+
amber: { fill: '#fbf5e8', stroke: '#c99a3e' },
|
|
33
|
+
red: { fill: '#fbeeee', stroke: '#c8524f' },
|
|
34
|
+
teal: { fill: '#ebf6f4', stroke: '#3f9a8f' },
|
|
35
|
+
};
|
|
36
|
+
const DARK_COLORS = {
|
|
37
|
+
blue: { fill: '#0b1f38', stroke: '#1d68c5' },
|
|
38
|
+
green: { fill: '#1a2c1e', stroke: '#49a45f' },
|
|
39
|
+
purple: { fill: '#251931', stroke: '#8955a7' },
|
|
40
|
+
pink: { fill: '#371523', stroke: '#c14c70' },
|
|
41
|
+
amber: { fill: '#4c3d20', stroke: '#f2b342' },
|
|
42
|
+
red: { fill: '#3c1618', stroke: '#e5484d' },
|
|
43
|
+
teal: { fill: '#0d2d2a', stroke: '#12a594' },
|
|
44
|
+
};
|
|
45
|
+
// pele's CSS variables (https://pele.run/theming).
|
|
46
|
+
function theme({ colors, base }) {
|
|
47
|
+
const vars = new Map(Object.entries({
|
|
48
|
+
...base,
|
|
49
|
+
'--pele-radius': '10px',
|
|
50
|
+
'--pele-font': 'Geist, sans-serif',
|
|
51
|
+
'--pele-font-mono': 'Geist Mono, monospace',
|
|
52
|
+
'--pele-series-1': colors.blue.stroke,
|
|
53
|
+
'--pele-series-2': colors.amber.stroke,
|
|
54
|
+
'--pele-series-3': colors.green.stroke,
|
|
55
|
+
'--pele-series-4': colors.pink.stroke,
|
|
56
|
+
'--pele-series-5': colors.purple.stroke,
|
|
57
|
+
'--pele-series-6': base['--pele-accent'],
|
|
58
|
+
'--pele-series-7': colors.red.stroke,
|
|
59
|
+
'--pele-series-8': colors.teal.stroke,
|
|
60
|
+
}));
|
|
61
|
+
return { colors, vars };
|
|
62
|
+
}
|
|
63
|
+
const THEMES = {
|
|
64
|
+
light: theme({
|
|
65
|
+
colors: LIGHT_COLORS,
|
|
66
|
+
base: {
|
|
67
|
+
'--pele-bg': '#faf9f5',
|
|
68
|
+
'--pele-fg': '#141413',
|
|
69
|
+
'--pele-muted': '#72736e',
|
|
70
|
+
'--pele-line': '#8c8b85',
|
|
71
|
+
'--pele-surface': '#ffffff',
|
|
72
|
+
'--pele-surface-alt': '#efeee5',
|
|
73
|
+
'--pele-border': '#d1cfc5',
|
|
74
|
+
'--pele-accent': '#d97757',
|
|
75
|
+
'--pele-critical': LIGHT_COLORS.pink.stroke,
|
|
76
|
+
'--pele-error': LIGHT_COLORS.red.stroke,
|
|
77
|
+
},
|
|
78
|
+
}),
|
|
79
|
+
dark: theme({
|
|
80
|
+
colors: DARK_COLORS,
|
|
81
|
+
base: {
|
|
82
|
+
'--pele-bg': '#0a0a0a',
|
|
83
|
+
'--pele-fg': '#ededed',
|
|
84
|
+
'--pele-muted': '#8f8f8f',
|
|
85
|
+
'--pele-line': '#878787',
|
|
86
|
+
'--pele-surface': '#171717',
|
|
87
|
+
'--pele-surface-alt': '#232323',
|
|
88
|
+
'--pele-border': '#3d3d3d',
|
|
89
|
+
'--pele-accent': '#4a8fe7',
|
|
90
|
+
'--pele-critical': DARK_COLORS.pink.stroke,
|
|
91
|
+
'--pele-error': DARK_COLORS.red.stroke,
|
|
92
|
+
},
|
|
93
|
+
}),
|
|
94
|
+
};
|
|
95
|
+
export class DiagramError extends errore.createTaggedError({
|
|
96
|
+
name: 'DiagramError',
|
|
97
|
+
message: '$reason',
|
|
98
|
+
}) {
|
|
99
|
+
}
|
|
100
|
+
// resvg and librsvg do not support CSS custom properties, which pele uses for
|
|
101
|
+
// every color. This does the browser's job on the parsed SVG: custom properties
|
|
102
|
+
// inherit down the element tree, and every var() and color-mix() in attributes
|
|
103
|
+
// and inline styles is computed to a plain value. resvg also ignores rx/ry in
|
|
104
|
+
// style (pele writes rx:var(--_r)), so they move to attributes.
|
|
105
|
+
// TODO: drop this once resvg resolves var(). https://github.com/linebender/resvg/issues/821
|
|
106
|
+
export function computeCustomProperties(svg, vars = THEMES.light.vars) {
|
|
107
|
+
const document = parseDocument(svg, { xmlMode: true });
|
|
108
|
+
for (const child of document.children)
|
|
109
|
+
visit(child, vars);
|
|
110
|
+
return DomUtils.getOuterHTML(document, { xmlMode: true });
|
|
111
|
+
}
|
|
112
|
+
function visit(node, inherited) {
|
|
113
|
+
if (!DomUtils.isTag(node))
|
|
114
|
+
return;
|
|
115
|
+
const vars = new Map(inherited);
|
|
116
|
+
const { style, ...attributes } = node.attribs;
|
|
117
|
+
if (style) {
|
|
118
|
+
const declarations = postcss.parse(style).nodes.filter((child) => child.type === 'decl');
|
|
119
|
+
// Custom properties first: they apply to this element's own declarations too.
|
|
120
|
+
for (const decl of declarations)
|
|
121
|
+
if (decl.prop.startsWith('--'))
|
|
122
|
+
vars.set(decl.prop, computeValue(decl.value, vars));
|
|
123
|
+
for (const decl of declarations)
|
|
124
|
+
if (decl.prop === 'rx' || decl.prop === 'ry')
|
|
125
|
+
node.attribs[decl.prop] = computeValue(decl.value, vars);
|
|
126
|
+
const kept = declarations
|
|
127
|
+
.filter((decl) => !decl.prop.startsWith('--') && decl.prop !== 'rx' && decl.prop !== 'ry')
|
|
128
|
+
.map((decl) => `${decl.prop}:${computeValue(decl.value, vars)}`);
|
|
129
|
+
if (kept.length > 0)
|
|
130
|
+
node.attribs.style = kept.join(';');
|
|
131
|
+
else
|
|
132
|
+
delete node.attribs.style;
|
|
133
|
+
}
|
|
134
|
+
for (const [name, value] of Object.entries(attributes))
|
|
135
|
+
node.attribs[name] = computeValue(value, vars);
|
|
136
|
+
for (const child of node.children)
|
|
137
|
+
visit(child, vars);
|
|
138
|
+
}
|
|
139
|
+
function computeValue(value, vars) {
|
|
140
|
+
if (!value.includes('var(') && !value.includes('color-mix('))
|
|
141
|
+
return value;
|
|
142
|
+
const parsed = valueParser(value);
|
|
143
|
+
computeNodes(parsed.nodes, vars);
|
|
144
|
+
return parsed.toString();
|
|
145
|
+
}
|
|
146
|
+
// Replaces var() and color-mix() function nodes in place with word nodes.
|
|
147
|
+
function computeNodes(nodes, vars) {
|
|
148
|
+
for (const node of nodes) {
|
|
149
|
+
if (node.type !== 'function')
|
|
150
|
+
continue;
|
|
151
|
+
computeNodes(node.nodes, vars);
|
|
152
|
+
if (node.value === 'var') {
|
|
153
|
+
const [name, ...rest] = splitArgs(node.nodes);
|
|
154
|
+
const fallback = rest.length > 0 ? rest.join(',') : undefined;
|
|
155
|
+
replaceWithWord(node, vars.get(name ?? '') ?? fallback ?? 'initial');
|
|
156
|
+
}
|
|
157
|
+
else if (node.value === 'color-mix') {
|
|
158
|
+
const mixed = colorMix(splitArgs(node.nodes));
|
|
159
|
+
if (mixed)
|
|
160
|
+
replaceWithWord(node, mixed);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function splitArgs(nodes) {
|
|
165
|
+
const args = [[]];
|
|
166
|
+
for (const node of nodes) {
|
|
167
|
+
if (node.type === 'div' && node.value === ',')
|
|
168
|
+
args.push([]);
|
|
169
|
+
else
|
|
170
|
+
args.at(-1).push(node);
|
|
171
|
+
}
|
|
172
|
+
return args.map((arg) => valueParser.stringify(arg).trim());
|
|
173
|
+
}
|
|
174
|
+
function replaceWithWord(node, value) {
|
|
175
|
+
Object.assign(node, { type: 'word', value, nodes: undefined });
|
|
176
|
+
}
|
|
177
|
+
// color-mix(in srgb, <hex> [<pct>], <hex> [<pct>]): the only form pele emits.
|
|
178
|
+
function colorMix([space, first, second]) {
|
|
179
|
+
if (space !== 'in srgb' || !first || !second)
|
|
180
|
+
return undefined;
|
|
181
|
+
const [colorA, percentA] = first.split(/\s+/);
|
|
182
|
+
const [colorB, percentB] = second.split(/\s+/);
|
|
183
|
+
const weightA = percentA ? parseFloat(percentA) / 100 : percentB ? 1 - parseFloat(percentB) / 100 : 0.5;
|
|
184
|
+
return mixHex({ a: colorA, b: colorB, weightA });
|
|
185
|
+
}
|
|
186
|
+
function mixHex({ a, b, weightA }) {
|
|
187
|
+
const channelsA = hexChannels(a);
|
|
188
|
+
const channelsB = hexChannels(b);
|
|
189
|
+
if (!channelsA || !channelsB)
|
|
190
|
+
return undefined;
|
|
191
|
+
return `#${channelsA.map((channel, i) => Math.round(channel * weightA + channelsB[i] * (1 - weightA)).toString(16).padStart(2, '0')).join('')}`;
|
|
192
|
+
}
|
|
193
|
+
function hexChannels(color) {
|
|
194
|
+
if (!color || !/^#[0-9a-f]{6}$/i.test(color))
|
|
195
|
+
return undefined;
|
|
196
|
+
return [1, 3, 5].map((i) => parseInt(color.slice(i, i + 2), 16));
|
|
197
|
+
}
|
|
198
|
+
// Renders Mermaid source to PNG bytes. pele syntax errors already include the line and a pointer.
|
|
199
|
+
// Diagram types whose grammar accepts classDef lines.
|
|
200
|
+
const CLASS_DEF_TYPES = new Set(['flowchart', 'swimlane', 'state', 'class', 'er', 'requirement']);
|
|
201
|
+
// Appends a classDef per color the source does not define itself.
|
|
202
|
+
export function withColorClasses(source, theme = 'light') {
|
|
203
|
+
const type = detectType(source);
|
|
204
|
+
if (!type || !CLASS_DEF_TYPES.has(type))
|
|
205
|
+
return source;
|
|
206
|
+
const { colors, vars } = THEMES[theme];
|
|
207
|
+
const defined = new Set(source.split('\n').flatMap((line) => line.trim().match(/^classDef\s+(\S+)/)?.[1]?.split(',') ?? []));
|
|
208
|
+
const lines = Object.entries(colors)
|
|
209
|
+
.filter(([name]) => !defined.has(name))
|
|
210
|
+
.map(([name, { fill, stroke }]) => ` classDef ${name} fill:${fill},stroke:${mixHex({ a: stroke, b: fill, weightA: BORDER_HUE })},color:${vars.get('--pele-fg')}`);
|
|
211
|
+
return [source.trimEnd(), ...lines].join('\n');
|
|
212
|
+
}
|
|
213
|
+
export function renderDiagram(source, { theme = 'light' } = {}) {
|
|
214
|
+
const { vars } = THEMES[theme];
|
|
215
|
+
const colored = withColorClasses(source, theme);
|
|
216
|
+
const renders = errore.try(() => SQUARE_CANDIDATES.map((layout) => render(colored, { fontFamily: 'Geist', fontFamilyMono: 'Geist Mono', padding: PADDING, responsive: false, links: false, images: false, ...layout })), (error) => new DiagramError({ reason: error instanceof Error ? error.message : String(error) }));
|
|
217
|
+
if (renders instanceof Error)
|
|
218
|
+
return renders;
|
|
219
|
+
const squareness = ({ width, height }) => Math.abs(Math.log(width / height));
|
|
220
|
+
const result = renders.reduce((best, candidate) => (squareness(candidate) < squareness(best) ? candidate : best));
|
|
221
|
+
const fontFiles = fs.readdirSync(FONTS_DIR).filter((file) => file.endsWith('.ttf')).map((file) => path.join(FONTS_DIR, file));
|
|
222
|
+
return errore.try(() => {
|
|
223
|
+
const svg = result.svg.replace('<svg ', `<svg stroke-width="${STROKE_WIDTH}" `);
|
|
224
|
+
const resvg = new Resvg(computeCustomProperties(svg, vars), {
|
|
225
|
+
background: vars.get('--pele-bg'),
|
|
226
|
+
fitTo: { mode: 'zoom', value: SCALE },
|
|
227
|
+
font: { loadSystemFonts: false, fontFiles, defaultFontFamily: 'Geist', sansSerifFamily: 'Geist', monospaceFamily: 'Geist Mono' },
|
|
228
|
+
});
|
|
229
|
+
return resvg.render().asPng();
|
|
230
|
+
}, (error) => new DiagramError({ reason: `Rasterizing failed: ${error instanceof Error ? error.message : String(error)}`, cause: error }));
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=diagram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram.js","sourceRoot":"","sources":["../src/diagram.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2EAA2E;AAC3E,mFAAmF;AACnF,mFAAmF;AAEnF,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,WAAW,EAAE,EAA0B,MAAM,sBAAsB,CAAA;AAE1E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AACrG,MAAM,KAAK,GAAG,CAAC,CAAA;AACf,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,kEAAkE;AAClE,MAAM,YAAY,GAAG,GAAG,CAAA;AACxB,oFAAoF;AACpF,MAAM,UAAU,GAAG,GAAG,CAAA;AACtB,oFAAoF;AACpF,oFAAoF;AACpF,0DAA0D;AAC1D,MAAM,iBAAiB,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAA;AAKzH,6EAA6E;AAC7E,+FAA+F;AAC/F,MAAM,YAAY,GAAY;IAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;CAC7C,CAAA;AAED,MAAM,WAAW,GAAY;IAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;CAC7C,CAAA;AAMD,mDAAmD;AACnD,SAAS,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAqD;IAChF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;QAClC,GAAG,IAAI;QACP,eAAe,EAAE,MAAM;QACvB,aAAa,EAAE,mBAAmB;QAClC,kBAAkB,EAAE,uBAAuB;QAC3C,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QACrC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;QACtC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;QACtC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QACrC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QACvC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAE;QACzC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM;QACpC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;KACtC,CAAC,CAAC,CAAA;IACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC;AAED,MAAM,MAAM,GAA+C;IACzD,KAAK,EAAE,KAAK,CAAC;QACX,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE;YACJ,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,oBAAoB,EAAE,SAAS;YAC/B,eAAe,EAAE,SAAS;YAC1B,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM;YAC3C,cAAc,EAAE,YAAY,CAAC,GAAG,CAAC,MAAM;SACxC;KACF,CAAC;IACF,IAAI,EAAE,KAAK,CAAC;QACV,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE;YACJ,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,SAAS;YAC3B,oBAAoB,EAAE,SAAS;YAC/B,eAAe,EAAE,SAAS;YAC1B,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM;YAC1C,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM;SACvC;KACF,CAAC;CACH,CAAA;AAED,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC,iBAAiB,CAAC;IACzD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,SAAS;CACnB,CAAC;CAAG;AAEL,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,gEAAgE;AAChE,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,GAAW,EAAE,OAAoC,MAAM,CAAC,KAAK,CAAC,IAAI;IACxG,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACtD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ;QAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACzD,OAAO,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3D,CAAC;AAID,SAAS,KAAK,CAAC,IAAa,EAAE,SAAsC;IAClE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAM;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QACxF,8EAA8E;QAC9E,KAAK,MAAM,IAAI,IAAI,YAAY;YAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QACpH,KAAK,MAAM,IAAI,IAAI,YAAY;YAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACvI,MAAM,IAAI,GAAG,YAAY;aACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;aACzF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAClE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;YACnD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;IAChC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACtG,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAiC;IACpE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1E,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IACjC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAChC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;AAC1B,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,KAAkB,EAAE,IAAiC;IACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,SAAQ;QACtC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC7D,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,CAAA;QACtE,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7C,IAAI,KAAK;gBAAE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAkB;IACnC,MAAM,IAAI,GAAkB,CAAC,EAAE,CAAC,CAAA;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;;YACvD,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,eAAe,CAAC,IAAe,EAAE,KAAa;IACrD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;AAChE,CAAC;AAED,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAW;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC9D,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IACvG,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAqE;IAClG,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAChC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAC9C,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;AAClJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9D,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,kGAAkG;AAClG,sDAAsD;AACtD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;AAEjG,kEAAkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAAsB,OAAO;IAC5E,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAA;IACtD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5H,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,IAAI,SAAS,IAAI,WAAW,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACpK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,EAAE,KAAK,GAAG,OAAO,KAA+B,EAAE;IAC9F,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CACxB,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,EAC5L,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAChG,CAAA;IACD,IAAI,OAAO,YAAY,KAAK;QAAE,OAAO,OAAO,CAAA;IAC5C,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAqC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAA;IAC/G,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACjH,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IAC7H,OAAO,MAAM,CAAC,GAAG,CACf,GAAG,EAAE;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,sBAAsB,YAAY,IAAI,CAAC,CAAA;QAC/E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YAC1D,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACjC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;YACrC,IAAI,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE;SACjI,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACvI,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|