@meetquinn/animactl 0.1.2 → 0.1.3
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 +11 -6
- package/dist/server/{runtime/activity-payload.d.ts → activities/format.d.ts} +4 -1
- package/dist/server/activities/format.d.ts.map +1 -0
- package/dist/server/{runtime/activity-payload.js → activities/format.js} +16 -1
- package/dist/server/agents/agent-skills.d.ts +7 -3
- package/dist/server/agents/agent-skills.d.ts.map +1 -1
- package/dist/server/agents/agent-skills.js +243 -38
- package/dist/server/agents/agent-slack.service.d.ts +15 -0
- package/dist/server/agents/agent-slack.service.d.ts.map +1 -1
- package/dist/server/agents/agent-slack.service.js +43 -6
- package/dist/server/agents/default-skills.d.ts +9 -0
- package/dist/server/agents/default-skills.d.ts.map +1 -0
- package/dist/server/agents/default-skills.js +52 -0
- package/dist/server/cli/runtime-cli.d.ts +7 -1
- package/dist/server/cli/runtime-cli.d.ts.map +1 -1
- package/dist/server/cli/runtime-cli.js +107 -3
- package/dist/server/cli/services-cli.d.ts.map +1 -1
- package/dist/server/cli/services-cli.js +39 -0
- package/dist/server/inbox/slack-subscriber.d.ts +2 -0
- package/dist/server/inbox/slack-subscriber.d.ts.map +1 -1
- package/dist/server/inbox/slack-subscriber.js +28 -2
- package/dist/server/inbox/slack-subscription.service.d.ts.map +1 -1
- package/dist/server/inbox/slack-subscription.service.js +13 -1
- package/dist/server/inbox/wake-queue.service.d.ts +3 -1
- package/dist/server/inbox/wake-queue.service.d.ts.map +1 -1
- package/dist/server/inbox/wake-queue.service.js +5 -3
- package/dist/server/provider-usage/http.d.ts +1 -0
- package/dist/server/provider-usage/http.d.ts.map +1 -1
- package/dist/server/provider-usage/http.js +23 -1
- package/dist/server/provider-usage/provider-usage.service.d.ts +1 -4
- package/dist/server/provider-usage/provider-usage.service.d.ts.map +1 -1
- package/dist/server/provider-usage/provider-usage.service.js +1 -18
- package/dist/server/provider-usage/providers/claude.d.ts +1 -1
- package/dist/server/provider-usage/providers/claude.d.ts.map +1 -1
- package/dist/server/provider-usage/providers/claude.js +1 -1
- package/dist/server/provider-usage/providers/codex.d.ts +1 -1
- package/dist/server/provider-usage/providers/codex.d.ts.map +1 -1
- package/dist/server/provider-usage/providers/codex.js +1 -1
- package/dist/server/provider-usage/providers/kimi.d.ts +1 -1
- package/dist/server/provider-usage/providers/kimi.d.ts.map +1 -1
- package/dist/server/provider-usage/providers/kimi.js +4 -4
- package/dist/server/provider-usage/result.d.ts +5 -0
- package/dist/server/provider-usage/result.d.ts.map +1 -0
- package/dist/server/provider-usage/result.js +18 -0
- package/dist/server/providers/active-runtime.d.ts +1 -1
- package/dist/server/providers/active-runtime.d.ts.map +1 -1
- package/dist/server/providers/claude-events.d.ts +1 -1
- package/dist/server/providers/claude-events.d.ts.map +1 -1
- package/dist/server/providers/claude-events.js +2 -2
- package/dist/server/providers/claude.d.ts +1 -1
- package/dist/server/providers/claude.d.ts.map +1 -1
- package/dist/server/providers/claude.js +2 -2
- package/dist/server/providers/codex-app-server.d.ts +1 -1
- package/dist/server/providers/codex-app-server.d.ts.map +1 -1
- package/dist/server/providers/codex-app-server.js +1 -1
- package/dist/server/providers/codex-events.js +1 -1
- package/dist/server/providers/codex.d.ts +1 -1
- package/dist/server/providers/codex.d.ts.map +1 -1
- package/dist/server/providers/codex.js +2 -2
- package/dist/server/{runtime/provider-contract.d.ts → providers/contract.d.ts} +1 -1
- package/dist/server/providers/contract.d.ts.map +1 -0
- package/dist/server/providers/factory.d.ts +1 -1
- package/dist/server/providers/factory.d.ts.map +1 -1
- package/dist/server/providers/kimi-events.d.ts +1 -1
- package/dist/server/providers/kimi-events.d.ts.map +1 -1
- package/dist/server/providers/kimi-events.js +1 -1
- package/dist/server/providers/kimi.d.ts +1 -1
- package/dist/server/providers/kimi.d.ts.map +1 -1
- package/dist/server/providers/kimi.js +3 -2
- package/dist/server/providers/reasoning-events.js +1 -1
- package/dist/server/runtime/active-run-control.d.ts +19 -0
- package/dist/server/runtime/active-run-control.d.ts.map +1 -0
- package/dist/server/runtime/active-run-control.js +89 -0
- package/dist/server/runtime/activity.js +1 -1
- package/dist/server/runtime/agent-runner.d.ts +1 -1
- package/dist/server/runtime/agent-runner.d.ts.map +1 -1
- package/dist/server/runtime/delivery-prompt.d.ts +6 -0
- package/dist/server/runtime/delivery-prompt.d.ts.map +1 -1
- package/dist/server/runtime/delivery-prompt.js +53 -34
- package/dist/server/runtime/followup-appender.d.ts +20 -0
- package/dist/server/runtime/followup-appender.d.ts.map +1 -0
- package/dist/server/runtime/followup-appender.js +128 -0
- package/dist/server/runtime/host.d.ts +2 -0
- package/dist/server/runtime/host.d.ts.map +1 -1
- package/dist/server/runtime/host.js +8 -0
- package/dist/server/runtime/provider-runner.d.ts +16 -0
- package/dist/server/runtime/provider-runner.d.ts.map +1 -0
- package/dist/server/runtime/provider-runner.js +86 -0
- package/dist/server/runtime/runtime-bridge.d.ts +1 -1
- package/dist/server/runtime/runtime-bridge.d.ts.map +1 -1
- package/dist/server/runtime/runtime-session.service.d.ts +1 -1
- package/dist/server/runtime/runtime-session.service.d.ts.map +1 -1
- package/dist/server/runtime/runtime-session.service.js +1 -1
- package/dist/server/runtime/runtime-worker.d.ts +2 -10
- package/dist/server/runtime/runtime-worker.d.ts.map +1 -1
- package/dist/server/runtime/runtime-worker.js +60 -286
- package/dist/server/runtime-management/managed-runtime.d.ts.map +1 -0
- package/dist/server/runtime-management/runtime-release.d.ts.map +1 -0
- package/dist/server/{runtime → runtime-management}/runtime-upgrade.d.ts +1 -0
- package/dist/server/runtime-management/runtime-upgrade.d.ts.map +1 -0
- package/dist/server/{runtime → runtime-management}/runtime-upgrade.js +14 -0
- package/dist/server/services/system.service.d.ts +41 -0
- package/dist/server/services/system.service.d.ts.map +1 -0
- package/dist/server/services/system.service.js +154 -0
- package/dist/server/settings/settings.service.d.ts +2 -1
- package/dist/server/settings/settings.service.d.ts.map +1 -1
- package/dist/server/settings/settings.service.js +9 -1
- package/dist/server/slack/shortcuts.d.ts +0 -3
- package/dist/server/slack/shortcuts.d.ts.map +1 -1
- package/dist/server/slack/shortcuts.js +0 -3
- package/dist/server/slack-interactions/shortcut-ids.d.ts +4 -0
- package/dist/server/slack-interactions/shortcut-ids.d.ts.map +1 -0
- package/dist/server/slack-interactions/shortcut-ids.js +3 -0
- package/dist/server/slack-interactions/shortcut-views.d.ts +65 -0
- package/dist/server/slack-interactions/shortcut-views.d.ts.map +1 -0
- package/dist/server/slack-interactions/shortcut-views.js +211 -0
- package/dist/server/{slack → slack-interactions}/shortcut.service.d.ts +2 -47
- package/dist/server/slack-interactions/shortcut.service.d.ts.map +1 -0
- package/dist/server/slack-interactions/shortcut.service.js +227 -0
- package/dist/server/storage/jsonl-log.d.ts +9 -0
- package/dist/server/storage/jsonl-log.d.ts.map +1 -1
- package/dist/server/storage/jsonl-log.js +36 -1
- package/dist/server/storage/schema/server.store.d.ts +5 -0
- package/dist/server/storage/schema/server.store.d.ts.map +1 -1
- package/dist/server/storage/schema/server.store.js +2 -1
- package/dist/server/storage/schema/wake-queue.store.d.ts +15 -1
- package/dist/server/storage/schema/wake-queue.store.d.ts.map +1 -1
- package/dist/server/storage/schema/wake-queue.store.js +5 -3
- package/dist/server/tests/agent-config.test.d.ts +2 -0
- package/dist/server/tests/agent-config.test.d.ts.map +1 -0
- package/dist/server/tests/agent-config.test.js +229 -0
- package/dist/server/tests/agent-runtime.test.d.ts +2 -0
- package/dist/server/tests/agent-runtime.test.d.ts.map +1 -0
- package/dist/server/tests/agent-runtime.test.js +1110 -0
- package/dist/server/tests/agent-seed-memory.test.d.ts +2 -0
- package/dist/server/tests/agent-seed-memory.test.d.ts.map +1 -0
- package/dist/server/tests/agent-seed-memory.test.js +16 -0
- package/dist/server/tests/agent-skills.test.d.ts +2 -0
- package/dist/server/tests/agent-skills.test.d.ts.map +1 -0
- package/dist/server/tests/agent-skills.test.js +140 -0
- package/dist/server/tests/anima-home.d.ts +2 -0
- package/dist/server/tests/anima-home.d.ts.map +1 -0
- package/dist/server/tests/anima-home.js +4 -0
- package/dist/server/tests/cli-file.test.d.ts +2 -0
- package/dist/server/tests/cli-file.test.d.ts.map +1 -0
- package/dist/server/tests/cli-file.test.js +596 -0
- package/dist/server/tests/cli-message.test.d.ts +2 -0
- package/dist/server/tests/cli-message.test.d.ts.map +1 -0
- package/dist/server/tests/cli-message.test.js +1196 -0
- package/dist/server/tests/client-error-routes.test.d.ts +2 -0
- package/dist/server/tests/client-error-routes.test.d.ts.map +1 -0
- package/dist/server/tests/client-error-routes.test.js +163 -0
- package/dist/server/tests/config.test.d.ts +2 -0
- package/dist/server/tests/config.test.d.ts.map +1 -0
- package/dist/server/tests/config.test.js +497 -0
- package/dist/server/tests/default-skills.test.d.ts +2 -0
- package/dist/server/tests/default-skills.test.d.ts.map +1 -0
- package/dist/server/tests/default-skills.test.js +57 -0
- package/dist/server/tests/helpers/inbox.d.ts +10 -0
- package/dist/server/tests/helpers/inbox.d.ts.map +1 -0
- package/dist/server/tests/helpers/inbox.js +21 -0
- package/dist/server/tests/helpers/slack.d.ts +11 -0
- package/dist/server/tests/helpers/slack.d.ts.map +1 -0
- package/dist/server/tests/helpers/slack.js +17 -0
- package/dist/server/tests/helpers/state.d.ts +19 -0
- package/dist/server/tests/helpers/state.d.ts.map +1 -0
- package/dist/server/tests/helpers/state.js +69 -0
- package/dist/server/tests/inbox-slack-events.test.d.ts +2 -0
- package/dist/server/tests/inbox-slack-events.test.d.ts.map +1 -0
- package/dist/server/tests/inbox-slack-events.test.js +271 -0
- package/dist/server/tests/inbox.test.d.ts +2 -0
- package/dist/server/tests/inbox.test.d.ts.map +1 -0
- package/dist/server/tests/inbox.test.js +144 -0
- package/dist/server/tests/interactive-ask.test.d.ts +2 -0
- package/dist/server/tests/interactive-ask.test.d.ts.map +1 -0
- package/dist/server/tests/interactive-ask.test.js +387 -0
- package/dist/server/tests/kb.test.d.ts +2 -0
- package/dist/server/tests/kb.test.d.ts.map +1 -0
- package/dist/server/tests/kb.test.js +371 -0
- package/dist/server/tests/message.service.test.d.ts +2 -0
- package/dist/server/tests/message.service.test.d.ts.map +1 -0
- package/dist/server/tests/message.service.test.js +151 -0
- package/dist/server/tests/messages.test.d.ts +2 -0
- package/dist/server/tests/messages.test.d.ts.map +1 -0
- package/dist/server/tests/messages.test.js +12 -0
- package/dist/server/tests/prompt-attachments.test.d.ts +2 -0
- package/dist/server/tests/prompt-attachments.test.d.ts.map +1 -0
- package/dist/server/tests/prompt-attachments.test.js +274 -0
- package/dist/server/tests/provider-usage.test.d.ts +2 -0
- package/dist/server/tests/provider-usage.test.d.ts.map +1 -0
- package/dist/server/tests/provider-usage.test.js +97 -0
- package/dist/server/tests/reminders.test.d.ts +2 -0
- package/dist/server/tests/reminders.test.d.ts.map +1 -0
- package/dist/server/tests/reminders.test.js +383 -0
- package/dist/server/tests/runtime-cli.test.d.ts +2 -0
- package/dist/server/tests/runtime-cli.test.d.ts.map +1 -0
- package/dist/server/tests/runtime-cli.test.js +21 -0
- package/dist/server/tests/runtime-upgrade.test.d.ts +2 -0
- package/dist/server/tests/runtime-upgrade.test.d.ts.map +1 -0
- package/dist/server/tests/runtime-upgrade.test.js +307 -0
- package/dist/server/tests/runtime-worker.test.d.ts +2 -0
- package/dist/server/tests/runtime-worker.test.d.ts.map +1 -0
- package/dist/server/tests/runtime-worker.test.js +1021 -0
- package/dist/server/tests/runtime.test.d.ts +2 -0
- package/dist/server/tests/runtime.test.d.ts.map +1 -0
- package/dist/server/tests/runtime.test.js +354 -0
- package/dist/server/tests/services.test.d.ts +2 -0
- package/dist/server/tests/services.test.d.ts.map +1 -0
- package/dist/server/tests/services.test.js +636 -0
- package/dist/server/tests/slack-files.test.d.ts +2 -0
- package/dist/server/tests/slack-files.test.d.ts.map +1 -0
- package/dist/server/tests/slack-files.test.js +118 -0
- package/dist/server/tests/slack-shortcuts.test.d.ts +2 -0
- package/dist/server/tests/slack-shortcuts.test.d.ts.map +1 -0
- package/dist/server/tests/slack-shortcuts.test.js +310 -0
- package/dist/server/tests/slack.test.d.ts +2 -0
- package/dist/server/tests/slack.test.d.ts.map +1 -0
- package/dist/server/tests/slack.test.js +213 -0
- package/dist/server/tests/state-cache.test.d.ts +2 -0
- package/dist/server/tests/state-cache.test.d.ts.map +1 -0
- package/dist/server/tests/state-cache.test.js +184 -0
- package/dist/server/tests/subscriptions.test.d.ts +2 -0
- package/dist/server/tests/subscriptions.test.d.ts.map +1 -0
- package/dist/server/tests/subscriptions.test.js +292 -0
- package/dist/server/tests/system-service.test.d.ts +2 -0
- package/dist/server/tests/system-service.test.d.ts.map +1 -0
- package/dist/server/tests/system-service.test.js +20 -0
- package/dist/server/tests/url-routes.test.d.ts +2 -0
- package/dist/server/tests/url-routes.test.d.ts.map +1 -0
- package/dist/server/tests/url-routes.test.js +217 -0
- package/dist/server/tests/web-api.test.d.ts +2 -0
- package/dist/server/tests/web-api.test.d.ts.map +1 -0
- package/dist/server/tests/web-api.test.js +1759 -0
- package/dist/server/web/app.d.ts.map +1 -1
- package/dist/server/web/app.js +2 -0
- package/dist/server/web/client-error-routes.d.ts +3 -0
- package/dist/server/web/client-error-routes.d.ts.map +1 -0
- package/dist/server/web/client-error-routes.js +101 -0
- package/dist/server/web/system-routes.d.ts.map +1 -1
- package/dist/server/web/system-routes.js +21 -131
- package/dist/shared/agent-config.d.ts +8 -18
- package/dist/shared/agent-config.d.ts.map +1 -1
- package/dist/shared/agent-config.js +3 -4
- package/dist/shared/inbox.d.ts +27 -0
- package/dist/shared/inbox.d.ts.map +1 -1
- package/dist/shared/inbox.js +1 -0
- package/dist/shared/server-info.d.ts +6 -5
- package/dist/shared/server-info.d.ts.map +1 -1
- package/dist/shared/server-info.js +3 -1
- package/dist/shared/server-settings.d.ts +6 -0
- package/dist/shared/server-settings.d.ts.map +1 -1
- package/dist/shared/server-settings.js +1 -0
- package/dist/shared/skills.d.ts +24 -3
- package/dist/shared/skills.d.ts.map +1 -1
- package/dist/web/assets/activity-DHjip8tY.js +7 -0
- package/dist/web/assets/clipboard-D2NSC52v.js +1 -0
- package/dist/web/assets/{external-link-Dt0qTpmV.js → external-link-Bhr1WdRS.js} +1 -1
- package/dist/web/assets/{file-text-Dd9ys6py.js → file-text-CYMA_SMA.js} +1 -1
- package/dist/web/assets/{index-CzAQnbuO.js → index-CVpew409.js} +5 -5
- package/dist/web/assets/index-mh0uJTkY.css +2 -0
- package/dist/web/assets/kb-DDVpYkT9.js +35 -0
- package/dist/web/assets/profile-CBy6GNzp.js +1 -0
- package/dist/web/assets/reminders-Bbwb9QNT.js +1 -0
- package/dist/web/favicon.svg +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/templates/runtime-standing-prompt.md +16 -2
- package/templates/skills/find-skills/SKILL.md +133 -0
- package/dist/server/runtime/activity-payload.d.ts.map +0 -1
- package/dist/server/runtime/activity-text.d.ts +0 -4
- package/dist/server/runtime/activity-text.d.ts.map +0 -1
- package/dist/server/runtime/activity-text.js +0 -16
- package/dist/server/runtime/managed-runtime.d.ts.map +0 -1
- package/dist/server/runtime/provider-contract.d.ts.map +0 -1
- package/dist/server/runtime/runtime-release.d.ts.map +0 -1
- package/dist/server/runtime/runtime-upgrade.d.ts.map +0 -1
- package/dist/server/slack/shortcut.service.d.ts.map +0 -1
- package/dist/server/slack/shortcut.service.js +0 -493
- package/dist/web/assets/activity-BP0C81IV.js +0 -7
- package/dist/web/assets/globe-DmDZSgDP.js +0 -1
- package/dist/web/assets/index-DKecrvN0.css +0 -2
- package/dist/web/assets/kb-3wFeP2Jt.js +0 -32
- package/dist/web/assets/profile-D7wPZXW_.js +0 -1
- package/dist/web/assets/reminders-DOhroVwo.js +0 -1
- /package/dist/server/{runtime/provider-contract.js → providers/contract.js} +0 -0
- /package/dist/server/{runtime → runtime-management}/managed-runtime.d.ts +0 -0
- /package/dist/server/{runtime → runtime-management}/managed-runtime.js +0 -0
- /package/dist/server/{runtime → runtime-management}/runtime-release.d.ts +0 -0
- /package/dist/server/{runtime → runtime-management}/runtime-release.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../server/web/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../server/web/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAYxC,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAYvD"}
|
package/dist/server/web/app.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Fastify from 'fastify';
|
|
2
2
|
import { registerAgentRoutes } from './agent-routes.js';
|
|
3
|
+
import { registerClientErrorRoutes } from './client-error-routes.js';
|
|
3
4
|
import { registerErrorHandler } from './http.js';
|
|
4
5
|
import { registerStaticRoutes } from './static.js';
|
|
5
6
|
import { registerSystemRoutes } from './system-routes.js';
|
|
@@ -8,6 +9,7 @@ export async function createWebServer() {
|
|
|
8
9
|
const fastify = Fastify({ logger: false });
|
|
9
10
|
registerErrorHandler(fastify);
|
|
10
11
|
registerSystemRoutes(fastify);
|
|
12
|
+
registerClientErrorRoutes(fastify);
|
|
11
13
|
registerKbRoutes(fastify);
|
|
12
14
|
registerAgentRoutes(fastify);
|
|
13
15
|
registerStaticRoutes(fastify);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-error-routes.d.ts","sourceRoot":"","sources":["../../../server/web/client-error-routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA8F/C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAqCxE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { resolveAnimaHome } from '../anima-home.js';
|
|
4
|
+
import { DEFAULT_JSONL_ROTATE_BYTES, JsonlAppendLog } from '../storage/jsonl-log.js';
|
|
5
|
+
// Local-only client-error diagnostics.
|
|
6
|
+
//
|
|
7
|
+
// The dashboard front-end posts uncaught errors here so they land in the
|
|
8
|
+
// operator's OWN local logs — this is NOT telemetry: nothing is sent to us or
|
|
9
|
+
// any third party, and there is no outbound path. The data stays in the user's
|
|
10
|
+
// own runtime/infrastructure (note: over a LAN dashboard the browser and the
|
|
11
|
+
// host can be different machines, so it is not "never leaves this computer" —
|
|
12
|
+
// it never leaves the user's infrastructure and never reaches us).
|
|
13
|
+
//
|
|
14
|
+
// Kept separate from activity.jsonl: activity is the agent work/audit trail;
|
|
15
|
+
// UI crashes are operator diagnostics, not agent actions.
|
|
16
|
+
// Generous upper bounds — reject absurd/abusive payloads at the schema layer.
|
|
17
|
+
// Display/storage caps are applied separately via truncate() below.
|
|
18
|
+
const ClientErrorPayload = z.object({
|
|
19
|
+
kind: z.enum(['error', 'unhandledrejection', 'render']),
|
|
20
|
+
message: z.string().max(20_000),
|
|
21
|
+
stack: z.string().max(100_000).optional(),
|
|
22
|
+
componentStack: z.string().max(100_000).optional(),
|
|
23
|
+
// pathname only — the client strips origin/query/hash, but defend in depth here too.
|
|
24
|
+
path: z.string().max(4_096),
|
|
25
|
+
userAgent: z.string().max(4_096),
|
|
26
|
+
createdAt: z.string().max(64),
|
|
27
|
+
});
|
|
28
|
+
// Storage caps — bound what actually hits disk regardless of the schema ceiling.
|
|
29
|
+
const MAX_MESSAGE = 2_000;
|
|
30
|
+
const MAX_STACK = 8_000;
|
|
31
|
+
const MAX_PATH = 1_024;
|
|
32
|
+
const MAX_USER_AGENT = 512;
|
|
33
|
+
const MAX_CREATED_AT = 64;
|
|
34
|
+
// Reject oversized request bodies before parsing (~32KB is ample for a stack).
|
|
35
|
+
const BODY_LIMIT_BYTES = 32 * 1024;
|
|
36
|
+
// Retention cap: at most this many rotated 10MB segments are kept on disk, so
|
|
37
|
+
// the local diagnostics log can never grow without bound (~1GB worst case).
|
|
38
|
+
const MAX_ARCHIVES = 100;
|
|
39
|
+
function truncate(value, max) {
|
|
40
|
+
return value.length > max ? `${value.slice(0, max)}…[truncated]` : value;
|
|
41
|
+
}
|
|
42
|
+
// Defence in depth: store the pathname ONLY. The client sends location.pathname,
|
|
43
|
+
// but a buggy/test/malicious caller could send a full URL — parsing against a
|
|
44
|
+
// dummy base reduces any absolute URL to its pathname, dropping origin, userinfo
|
|
45
|
+
// (`https://token@host/...`), query, and hash, all of which can carry secrets.
|
|
46
|
+
function sanitizePath(path) {
|
|
47
|
+
let pathname;
|
|
48
|
+
try {
|
|
49
|
+
pathname = new URL(path, 'http://local').pathname;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// new URL with an absolute base shouldn't throw for a string, but never
|
|
53
|
+
// trust input: fall back to a query/hash-stripped relative path, else '/'.
|
|
54
|
+
pathname = path.startsWith('/') ? (path.split(/[?#]/, 1)[0] ?? '/') : '/';
|
|
55
|
+
}
|
|
56
|
+
return truncate(pathname, MAX_PATH);
|
|
57
|
+
}
|
|
58
|
+
let cachedLog;
|
|
59
|
+
// Resolved lazily so the ANIMA_HOME scope in effect at request time is honoured.
|
|
60
|
+
function clientErrorLog() {
|
|
61
|
+
const path = join(resolveAnimaHome(), 'logs', 'client-errors.jsonl');
|
|
62
|
+
if (!cachedLog || cachedLog.path !== path) {
|
|
63
|
+
cachedLog = new JsonlAppendLog(path, {
|
|
64
|
+
maxBytes: DEFAULT_JSONL_ROTATE_BYTES,
|
|
65
|
+
// Hard disk ceiling: keep at most 100 rotated 10MB segments (~1GB worst
|
|
66
|
+
// case). A runaway render loop can't fill the disk via diagnostics.
|
|
67
|
+
maxArchives: MAX_ARCHIVES,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return cachedLog;
|
|
71
|
+
}
|
|
72
|
+
export function registerClientErrorRoutes(fastify) {
|
|
73
|
+
fastify.post('/api/client-errors', { bodyLimit: BODY_LIMIT_BYTES }, async (request, reply) => {
|
|
74
|
+
const parsed = ClientErrorPayload.safeParse(request.body);
|
|
75
|
+
if (!parsed.success) {
|
|
76
|
+
return reply.status(400).send({ error: 'Invalid client error payload' });
|
|
77
|
+
}
|
|
78
|
+
const payload = parsed.data;
|
|
79
|
+
const record = {
|
|
80
|
+
kind: payload.kind,
|
|
81
|
+
message: truncate(payload.message, MAX_MESSAGE),
|
|
82
|
+
...(payload.stack ? { stack: truncate(payload.stack, MAX_STACK) } : {}),
|
|
83
|
+
...(payload.componentStack
|
|
84
|
+
? { componentStack: truncate(payload.componentStack, MAX_STACK) }
|
|
85
|
+
: {}),
|
|
86
|
+
path: sanitizePath(payload.path),
|
|
87
|
+
userAgent: truncate(payload.userAgent, MAX_USER_AGENT),
|
|
88
|
+
createdAt: truncate(payload.createdAt, MAX_CREATED_AT),
|
|
89
|
+
receivedAt: new Date().toISOString(),
|
|
90
|
+
};
|
|
91
|
+
try {
|
|
92
|
+
await clientErrorLog().append(record);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
// Diagnostics must never become a source of 5xx noise of their own.
|
|
96
|
+
request.log?.error?.(`Failed to append client error log: ${error instanceof Error ? error.message : String(error)}`);
|
|
97
|
+
}
|
|
98
|
+
// Fire-and-forget contract: never echo the payload back.
|
|
99
|
+
return reply.status(204).send();
|
|
100
|
+
});
|
|
101
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-routes.d.ts","sourceRoot":"","sources":["../../../server/web/system-routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-routes.d.ts","sourceRoot":"","sources":["../../../server/web/system-routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAgB/C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CA+CnE"}
|
|
@@ -1,31 +1,20 @@
|
|
|
1
|
-
import { execFile, spawn } from 'node:child_process';
|
|
2
|
-
import { existsSync } from 'node:fs';
|
|
3
|
-
import { mkdir, open, readFile, rm } from 'node:fs/promises';
|
|
4
|
-
import { homedir } from 'node:os';
|
|
5
1
|
import { dirname, join, resolve } from 'node:path';
|
|
6
2
|
import { fileURLToPath } from 'node:url';
|
|
7
|
-
import { promisify } from 'node:util';
|
|
8
|
-
import { resolveAnimaHome } from '../anima-home.js';
|
|
9
3
|
import { defaultServerSettingsService } from '../settings/settings.service.js';
|
|
10
|
-
import {
|
|
11
|
-
import { readLastServicesRestart, servicesRestartLogPath, servicesRestartResultPath, } from '../services/restart-result.js';
|
|
4
|
+
import { defaultSystemService, SystemServiceError } from '../services/system.service.js';
|
|
12
5
|
import { defaultProviderUsageService } from '../provider-usage/provider-usage.service.js';
|
|
13
|
-
import { defaultRuntimeUpgradeService, RuntimeUpgradeConflictError, RuntimeUpgradeUnavailableError, } from '../runtime/runtime-upgrade.js';
|
|
6
|
+
import { defaultRuntimeUpgradeService, RuntimeUpgradeConflictError, RuntimeUpgradeUnavailableError, } from '../runtime-management/runtime-upgrade.js';
|
|
14
7
|
import { SidebarOrder } from '../../shared/server-settings.js';
|
|
15
|
-
import { PROVIDER_CATALOG } from '../../shared/provider-catalog.js';
|
|
16
8
|
import { HttpError } from './http.js';
|
|
17
|
-
const execFileAsync = promisify(execFile);
|
|
18
9
|
const PROJECT_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '../../..');
|
|
19
10
|
const ANIMACTL_SCRIPT = join(PROJECT_ROOT, 'dist/server/cli/animactl.js');
|
|
20
|
-
const API_SERVER_STARTED_AT = new Date().toISOString();
|
|
21
|
-
const API_SERVER_COMMIT = gitShortCommit();
|
|
22
|
-
const RESTART_AFTER_RESPONSE_DELAY_MS = 250;
|
|
23
11
|
export function registerSystemRoutes(fastify) {
|
|
24
12
|
fastify.get('/api/health', async () => ({ ok: true }));
|
|
25
|
-
fastify.get('/api/provider-availability', async () =>
|
|
13
|
+
fastify.get('/api/provider-availability', async () => defaultSystemService.providerAvailability());
|
|
26
14
|
fastify.get('/api/provider-usage', async () => defaultProviderUsageService.list());
|
|
27
15
|
fastify.get('/api/system-update', async () => defaultRuntimeUpgradeService.status());
|
|
28
|
-
fastify.
|
|
16
|
+
fastify.post('/api/system-update/check', async () => defaultRuntimeUpgradeService.checkNow());
|
|
17
|
+
fastify.get('/api/server-info', async () => defaultSystemService.serverInfo());
|
|
29
18
|
fastify.post('/api/system-update/apply', async (_request, reply) => {
|
|
30
19
|
try {
|
|
31
20
|
const config = await defaultServerSettingsService.readConfig();
|
|
@@ -33,9 +22,9 @@ export function registerSystemRoutes(fastify) {
|
|
|
33
22
|
animactlScript: ANIMACTL_SCRIPT,
|
|
34
23
|
dashboardHost: config.dashboardHost ?? '127.0.0.1',
|
|
35
24
|
dashboardPort: config.dashboardPort ?? 4174,
|
|
36
|
-
previousStartedAt:
|
|
25
|
+
previousStartedAt: defaultSystemService.serverStartedAt(),
|
|
37
26
|
});
|
|
38
|
-
|
|
27
|
+
queueAfterResponse(reply.raw, prepared.response.delayMs, prepared.spawn, 'Failed to queue runtime upgrade');
|
|
39
28
|
return reply.status(202).send(prepared.response);
|
|
40
29
|
}
|
|
41
30
|
catch (error) {
|
|
@@ -47,8 +36,16 @@ export function registerSystemRoutes(fastify) {
|
|
|
47
36
|
}
|
|
48
37
|
});
|
|
49
38
|
fastify.post('/api/services/restart', async (_request, reply) => {
|
|
50
|
-
|
|
51
|
-
|
|
39
|
+
try {
|
|
40
|
+
const prepared = defaultSystemService.prepareServicesRestart();
|
|
41
|
+
queueAfterResponse(reply.raw, prepared.response.delayMs, prepared.spawn, 'Failed to queue services restart');
|
|
42
|
+
return reply.status(202).send(prepared.response);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (error instanceof SystemServiceError)
|
|
46
|
+
throw new HttpError(500, error.message);
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
52
49
|
});
|
|
53
50
|
// Sidebar order — global, persisted in ANIMA_HOME/config.json.
|
|
54
51
|
fastify.get('/api/sidebar-order', async () => {
|
|
@@ -62,120 +59,13 @@ export function registerSystemRoutes(fastify) {
|
|
|
62
59
|
return { sidebarOrder: await defaultServerSettingsService.setSidebarOrder(parsed.data) };
|
|
63
60
|
});
|
|
64
61
|
}
|
|
65
|
-
function
|
|
66
|
-
response.once('finish', () => {
|
|
67
|
-
const timer = setTimeout(() => {
|
|
68
|
-
void spawnWorker().catch((error) => {
|
|
69
|
-
console.error(`Failed to queue runtime upgrade: ${error instanceof Error ? error.message : String(error)}`);
|
|
70
|
-
});
|
|
71
|
-
}, queued.delayMs);
|
|
72
|
-
timer.unref();
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function queueServicesRestart(response) {
|
|
76
|
-
if (!existsSync(ANIMACTL_SCRIPT)) {
|
|
77
|
-
throw new HttpError(500, `animactl not found: ${ANIMACTL_SCRIPT}`);
|
|
78
|
-
}
|
|
79
|
-
const animaHome = resolveAnimaHome();
|
|
80
|
-
const logPath = servicesRestartLogPath(animaHome);
|
|
81
|
-
const resultPath = servicesRestartResultPath(animaHome);
|
|
62
|
+
function queueAfterResponse(response, delayMs, task, errorPrefix) {
|
|
82
63
|
response.once('finish', () => {
|
|
83
64
|
const timer = setTimeout(() => {
|
|
84
|
-
void
|
|
85
|
-
console.error(
|
|
65
|
+
void task().catch((error) => {
|
|
66
|
+
console.error(`${errorPrefix}: ${error instanceof Error ? error.message : String(error)}`);
|
|
86
67
|
});
|
|
87
|
-
},
|
|
68
|
+
}, delayMs);
|
|
88
69
|
timer.unref();
|
|
89
70
|
});
|
|
90
|
-
return {
|
|
91
|
-
ok: true,
|
|
92
|
-
animaHome,
|
|
93
|
-
delayMs: RESTART_AFTER_RESPONSE_DELAY_MS,
|
|
94
|
-
logPath,
|
|
95
|
-
scheduled: true,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
async function restartServicesDetached(animaHome, logPath, resultPath) {
|
|
99
|
-
let log;
|
|
100
|
-
try {
|
|
101
|
-
await mkdir(dirname(logPath), { recursive: true });
|
|
102
|
-
await rm(resultPath, { force: true });
|
|
103
|
-
log = await open(logPath, 'a');
|
|
104
|
-
await log.write(`\n[${new Date().toISOString()}] web app requested services restart\n`);
|
|
105
|
-
}
|
|
106
|
-
catch (error) {
|
|
107
|
-
console.error(`Failed to open restart log ${logPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
108
|
-
}
|
|
109
|
-
const child = spawn(process.execPath, [ANIMACTL_SCRIPT, 'services', 'restart', '--drain-active', '--resume-running'], {
|
|
110
|
-
cwd: PROJECT_ROOT,
|
|
111
|
-
detached: true,
|
|
112
|
-
env: { ...cleanServiceEnv(), ANIMA_HOME: animaHome, ANIMA_RESTART_RESULT_FILE: resultPath },
|
|
113
|
-
stdio: log ? ['ignore', log.fd, log.fd] : 'ignore',
|
|
114
|
-
});
|
|
115
|
-
child.on('error', (error) => {
|
|
116
|
-
console.error(`Failed to start services restart: ${error.message}`);
|
|
117
|
-
});
|
|
118
|
-
child.unref();
|
|
119
|
-
await log?.close();
|
|
120
|
-
}
|
|
121
|
-
async function serverInfoForUi() {
|
|
122
|
-
const animaHome = resolveAnimaHome();
|
|
123
|
-
const [config, version, commit, lastRestart] = await Promise.all([
|
|
124
|
-
defaultServerSettingsService.readConfig(),
|
|
125
|
-
packageVersion(),
|
|
126
|
-
API_SERVER_COMMIT,
|
|
127
|
-
readLastServicesRestart(animaHome),
|
|
128
|
-
]);
|
|
129
|
-
return {
|
|
130
|
-
animaHome,
|
|
131
|
-
...(commit ? { commit } : {}),
|
|
132
|
-
dashboardPort: config.dashboardPort ?? 4174,
|
|
133
|
-
env: environmentName(animaHome),
|
|
134
|
-
...(lastRestart ? { lastRestart } : {}),
|
|
135
|
-
ok: true,
|
|
136
|
-
startedAt: API_SERVER_STARTED_AT,
|
|
137
|
-
uptimeSeconds: Math.max(0, Math.floor((Date.now() - Date.parse(API_SERVER_STARTED_AT)) / 1000)),
|
|
138
|
-
version,
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
async function packageVersion() {
|
|
142
|
-
try {
|
|
143
|
-
const pkg = JSON.parse(await readFile(join(PROJECT_ROOT, 'package.json'), 'utf8'));
|
|
144
|
-
return typeof pkg.version === 'string' && pkg.version ? pkg.version : 'unknown';
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
return 'unknown';
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
async function gitShortCommit() {
|
|
151
|
-
try {
|
|
152
|
-
const { stdout } = await execFileAsync('git', ['rev-parse', '--short', 'HEAD'], { cwd: PROJECT_ROOT });
|
|
153
|
-
return stdout.trim() || undefined;
|
|
154
|
-
}
|
|
155
|
-
catch {
|
|
156
|
-
return undefined;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
function environmentName(animaHome) {
|
|
160
|
-
if (resolve(animaHome) === resolve(PROJECT_ROOT, '.anima'))
|
|
161
|
-
return 'dev';
|
|
162
|
-
if (resolve(animaHome) === resolve(homedir(), '.anima'))
|
|
163
|
-
return 'dogfood';
|
|
164
|
-
return 'custom';
|
|
165
|
-
}
|
|
166
|
-
async function detectProviderAvailability() {
|
|
167
|
-
return {
|
|
168
|
-
providers: await Promise.all(PROVIDER_CATALOG.map(async (entry) => ({
|
|
169
|
-
kind: entry.kind,
|
|
170
|
-
present: await commandPresent(entry.command),
|
|
171
|
-
}))),
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
function commandPresent(command) {
|
|
175
|
-
return new Promise((resolvePresent) => {
|
|
176
|
-
const child = execFile(command, ['--version'], { encoding: 'utf8', timeout: 2_000 }, (error) => {
|
|
177
|
-
resolvePresent(!error);
|
|
178
|
-
});
|
|
179
|
-
child.stdin?.end();
|
|
180
|
-
});
|
|
181
71
|
}
|
|
@@ -76,14 +76,6 @@ export declare const AgentSetOwnerRequest: z.ZodObject<{
|
|
|
76
76
|
introduce: z.ZodOptional<z.ZodBoolean>;
|
|
77
77
|
}, z.core.$strict>;
|
|
78
78
|
export type AgentSetOwnerRequest = z.infer<typeof AgentSetOwnerRequest>;
|
|
79
|
-
/** @deprecated Use AgentSetOwnerRequest */
|
|
80
|
-
export declare const AgentSetOperatorRequest: z.ZodObject<{
|
|
81
|
-
slackUserId: z.ZodString;
|
|
82
|
-
openerNote: z.ZodOptional<z.ZodString>;
|
|
83
|
-
introduce: z.ZodOptional<z.ZodBoolean>;
|
|
84
|
-
}, z.core.$strict>;
|
|
85
|
-
/** @deprecated Use AgentSetOwnerRequest */
|
|
86
|
-
export type AgentSetOperatorRequest = AgentSetOwnerRequest;
|
|
87
79
|
export declare const SlackUserCandidate: z.ZodObject<{
|
|
88
80
|
slackUserId: z.ZodString;
|
|
89
81
|
displayName: z.ZodString;
|
|
@@ -149,6 +141,7 @@ export declare const SlackConfig: z.ZodPipe<z.ZodObject<{
|
|
|
149
141
|
appId: z.ZodOptional<z.ZodString>;
|
|
150
142
|
appToken: z.ZodDefault<z.ZodString>;
|
|
151
143
|
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
144
|
+
botProfileSyncedAt: z.ZodOptional<z.ZodString>;
|
|
152
145
|
botToken: z.ZodDefault<z.ZodString>;
|
|
153
146
|
connected: z.ZodOptional<z.ZodBoolean>;
|
|
154
147
|
manifestVersion: z.ZodDefault<z.ZodNumber>;
|
|
@@ -165,6 +158,7 @@ export declare const SlackConfig: z.ZodPipe<z.ZodObject<{
|
|
|
165
158
|
workspaceName: string;
|
|
166
159
|
appId?: string | undefined;
|
|
167
160
|
avatarUrl?: string | undefined;
|
|
161
|
+
botProfileSyncedAt?: string | undefined;
|
|
168
162
|
}, {
|
|
169
163
|
appToken: string;
|
|
170
164
|
botToken: string;
|
|
@@ -174,6 +168,7 @@ export declare const SlackConfig: z.ZodPipe<z.ZodObject<{
|
|
|
174
168
|
workspaceName: string;
|
|
175
169
|
appId?: string | undefined;
|
|
176
170
|
avatarUrl?: string | undefined;
|
|
171
|
+
botProfileSyncedAt?: string | undefined;
|
|
177
172
|
connected?: boolean | undefined;
|
|
178
173
|
}>>;
|
|
179
174
|
export type SlackConfig = z.infer<typeof SlackConfig>;
|
|
@@ -185,16 +180,6 @@ export declare const AgentOwner: z.ZodObject<{
|
|
|
185
180
|
onboardingPromptedAt: z.ZodOptional<z.ZodString>;
|
|
186
181
|
}, z.core.$strict>;
|
|
187
182
|
export type AgentOwner = z.infer<typeof AgentOwner>;
|
|
188
|
-
/** @deprecated Use AgentOwner */
|
|
189
|
-
export declare const AgentOperator: z.ZodObject<{
|
|
190
|
-
slackUserId: z.ZodString;
|
|
191
|
-
displayName: z.ZodString;
|
|
192
|
-
handle: z.ZodOptional<z.ZodString>;
|
|
193
|
-
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
194
|
-
onboardingPromptedAt: z.ZodOptional<z.ZodString>;
|
|
195
|
-
}, z.core.$strict>;
|
|
196
|
-
/** @deprecated Use AgentOwner */
|
|
197
|
-
export type AgentOperator = AgentOwner;
|
|
198
183
|
export declare const AgentProfileConfig: z.ZodObject<{
|
|
199
184
|
displayName: z.ZodString;
|
|
200
185
|
role: z.ZodString;
|
|
@@ -243,6 +228,7 @@ export declare function agentConfigSchema(fallbackId: string): z.ZodPreprocess<z
|
|
|
243
228
|
appId: z.ZodOptional<z.ZodString>;
|
|
244
229
|
appToken: z.ZodDefault<z.ZodString>;
|
|
245
230
|
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
231
|
+
botProfileSyncedAt: z.ZodOptional<z.ZodString>;
|
|
246
232
|
botToken: z.ZodDefault<z.ZodString>;
|
|
247
233
|
connected: z.ZodOptional<z.ZodBoolean>;
|
|
248
234
|
manifestVersion: z.ZodDefault<z.ZodNumber>;
|
|
@@ -259,6 +245,7 @@ export declare function agentConfigSchema(fallbackId: string): z.ZodPreprocess<z
|
|
|
259
245
|
workspaceName: string;
|
|
260
246
|
appId?: string | undefined;
|
|
261
247
|
avatarUrl?: string | undefined;
|
|
248
|
+
botProfileSyncedAt?: string | undefined;
|
|
262
249
|
}, {
|
|
263
250
|
appToken: string;
|
|
264
251
|
botToken: string;
|
|
@@ -268,6 +255,7 @@ export declare function agentConfigSchema(fallbackId: string): z.ZodPreprocess<z
|
|
|
268
255
|
workspaceName: string;
|
|
269
256
|
appId?: string | undefined;
|
|
270
257
|
avatarUrl?: string | undefined;
|
|
258
|
+
botProfileSyncedAt?: string | undefined;
|
|
271
259
|
connected?: boolean | undefined;
|
|
272
260
|
}>>>;
|
|
273
261
|
homePath: z.ZodOptional<z.ZodString>;
|
|
@@ -301,6 +289,7 @@ export declare function agentConfigSchema(fallbackId: string): z.ZodPreprocess<z
|
|
|
301
289
|
workspaceName: string;
|
|
302
290
|
appId?: string | undefined;
|
|
303
291
|
avatarUrl?: string | undefined;
|
|
292
|
+
botProfileSyncedAt?: string | undefined;
|
|
304
293
|
};
|
|
305
294
|
homePath: string;
|
|
306
295
|
owner?: {
|
|
@@ -361,6 +350,7 @@ export declare function agentConfigSchema(fallbackId: string): z.ZodPreprocess<z
|
|
|
361
350
|
workspaceName: string;
|
|
362
351
|
appId?: string | undefined;
|
|
363
352
|
avatarUrl?: string | undefined;
|
|
353
|
+
botProfileSyncedAt?: string | undefined;
|
|
364
354
|
} | undefined;
|
|
365
355
|
homePath?: string | undefined;
|
|
366
356
|
}>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../shared/agent-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,gCAAgC,QAAiB,CAAC;AAC/D,eAAO,MAAM,+BAA+B,gJAQlC,CAAC;AAEX,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAsCD,eAAO,MAAM,kBAAkB;;;;;;;;;kBAOpB,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB;;kBAExB,CAAC;AAEZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,yBAAyB;;;kBAKpC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF,eAAO,MAAM,0BAA0B;;;;;kBAA6B,CAAC;AAErE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEpF,eAAO,MAAM,wBAAwB;;;kBAO1B,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEhF,eAAO,MAAM,yBAAyB;;;kBAG3B,CAAC;AAEZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAClC,eAAe,GACf,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,2BAA2B,GAC3B,eAAe,GACf,iBAAiB,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,yBAAyB,CAAC;CACvC;AAED,eAAO,MAAM,oBAAoB;;;;kBAItB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,
|
|
1
|
+
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../shared/agent-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,8 +87,6 @@ export const AgentSetOwnerRequest = z.object({
|
|
|
87
87
|
openerNote: z.string().optional(),
|
|
88
88
|
introduce: z.boolean().optional(),
|
|
89
89
|
}).strict();
|
|
90
|
-
/** @deprecated Use AgentSetOwnerRequest */
|
|
91
|
-
export const AgentSetOperatorRequest = AgentSetOwnerRequest;
|
|
92
90
|
export const SlackUserCandidate = z.object({
|
|
93
91
|
slackUserId: z.string(),
|
|
94
92
|
displayName: z.string(),
|
|
@@ -135,6 +133,9 @@ export const SlackConfig = z.object({
|
|
|
135
133
|
appId: z.string().optional(),
|
|
136
134
|
appToken: z.string().default(''),
|
|
137
135
|
avatarUrl: z.string().optional(),
|
|
136
|
+
// ISO timestamp of the last bot display-info (avatar/name/icon) sync, used to
|
|
137
|
+
// throttle the automatic refresh that runs while the agent handles messages.
|
|
138
|
+
botProfileSyncedAt: z.string().optional(),
|
|
138
139
|
botToken: z.string().default(''),
|
|
139
140
|
connected: z.boolean().optional(),
|
|
140
141
|
manifestVersion: z.number().int().nonnegative().default(0),
|
|
@@ -150,8 +151,6 @@ export const SlackConfig = z.object({
|
|
|
150
151
|
export const AgentOwner = SlackUserCandidate.extend({
|
|
151
152
|
onboardingPromptedAt: z.string().optional(),
|
|
152
153
|
}).strict();
|
|
153
|
-
/** @deprecated Use AgentOwner */
|
|
154
|
-
export const AgentOperator = AgentOwner;
|
|
155
154
|
const AgentProfileInput = z.preprocess((value) => {
|
|
156
155
|
if (!isRecord(value))
|
|
157
156
|
return value;
|
package/dist/shared/inbox.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ export declare const InboxItemHandling: z.ZodObject<{
|
|
|
13
13
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
14
14
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
15
15
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
16
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
17
|
+
runtime_restart: "runtime_restart";
|
|
18
|
+
}>>;
|
|
16
19
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
17
20
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
18
21
|
status: z.ZodEnum<{
|
|
@@ -54,6 +57,9 @@ export declare const SlackInboxItem: z.ZodObject<{
|
|
|
54
57
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
55
58
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
56
59
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
60
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
61
|
+
runtime_restart: "runtime_restart";
|
|
62
|
+
}>>;
|
|
57
63
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
58
64
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
59
65
|
status: z.ZodEnum<{
|
|
@@ -105,6 +111,9 @@ export declare const ReminderInboxItem: z.ZodObject<{
|
|
|
105
111
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
106
112
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
107
113
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
114
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
115
|
+
runtime_restart: "runtime_restart";
|
|
116
|
+
}>>;
|
|
108
117
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
109
118
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
110
119
|
status: z.ZodEnum<{
|
|
@@ -131,6 +140,9 @@ export declare const OnboardingInboxItem: z.ZodObject<{
|
|
|
131
140
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
132
141
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
133
142
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
143
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
144
|
+
runtime_restart: "runtime_restart";
|
|
145
|
+
}>>;
|
|
134
146
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
135
147
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
136
148
|
status: z.ZodEnum<{
|
|
@@ -164,6 +176,9 @@ export declare const ChoiceResponseInboxItem: z.ZodObject<{
|
|
|
164
176
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
165
177
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
166
178
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
179
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
180
|
+
runtime_restart: "runtime_restart";
|
|
181
|
+
}>>;
|
|
167
182
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
168
183
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
169
184
|
status: z.ZodEnum<{
|
|
@@ -203,6 +218,9 @@ export declare const InboxItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
203
218
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
204
219
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
205
220
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
221
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
222
|
+
runtime_restart: "runtime_restart";
|
|
223
|
+
}>>;
|
|
206
224
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
207
225
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
208
226
|
status: z.ZodEnum<{
|
|
@@ -252,6 +270,9 @@ export declare const InboxItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
252
270
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
253
271
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
254
272
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
273
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
274
|
+
runtime_restart: "runtime_restart";
|
|
275
|
+
}>>;
|
|
255
276
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
256
277
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
257
278
|
status: z.ZodEnum<{
|
|
@@ -276,6 +297,9 @@ export declare const InboxItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
276
297
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
277
298
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
278
299
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
300
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
301
|
+
runtime_restart: "runtime_restart";
|
|
302
|
+
}>>;
|
|
279
303
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
280
304
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
281
305
|
status: z.ZodEnum<{
|
|
@@ -307,6 +331,9 @@ export declare const InboxItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
307
331
|
drainTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
308
332
|
failedAt: z.ZodOptional<z.ZodString>;
|
|
309
333
|
queuedAt: z.ZodOptional<z.ZodString>;
|
|
334
|
+
resumeReason: z.ZodOptional<z.ZodEnum<{
|
|
335
|
+
runtime_restart: "runtime_restart";
|
|
336
|
+
}>>;
|
|
310
337
|
settledAt: z.ZodOptional<z.ZodString>;
|
|
311
338
|
startedAt: z.ZodOptional<z.ZodString>;
|
|
312
339
|
status: z.ZodEnum<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../shared/inbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;EAAuD,CAAC;AACpF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../shared/inbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;EAAuD,CAAC;AACpF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;iBAc5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;;;;iBAU1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;;;iBAMxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAQ1D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU9B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBlC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAK1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
package/dist/shared/inbox.js
CHANGED
|
@@ -8,6 +8,7 @@ export const InboxItemHandling = z.object({
|
|
|
8
8
|
drainTimeoutMs: z.number().int().nonnegative().optional(),
|
|
9
9
|
failedAt: z.string().optional(),
|
|
10
10
|
queuedAt: z.string().optional(),
|
|
11
|
+
resumeReason: z.enum(['runtime_restart']).optional(),
|
|
11
12
|
settledAt: z.string().optional(),
|
|
12
13
|
startedAt: z.string().optional(),
|
|
13
14
|
status: InboxItemStatus,
|
|
@@ -123,11 +123,7 @@ export declare const ServerInfo: z.ZodObject<{
|
|
|
123
123
|
animaHome: z.ZodString;
|
|
124
124
|
commit: z.ZodOptional<z.ZodString>;
|
|
125
125
|
dashboardPort: z.ZodNumber;
|
|
126
|
-
|
|
127
|
-
custom: "custom";
|
|
128
|
-
dev: "dev";
|
|
129
|
-
dogfood: "dogfood";
|
|
130
|
-
}>;
|
|
126
|
+
docsUrl: z.ZodOptional<z.ZodString>;
|
|
131
127
|
lastRestart: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
132
128
|
blockers: z.ZodArray<z.ZodObject<{
|
|
133
129
|
agentId: z.ZodString;
|
|
@@ -165,6 +161,11 @@ export declare const ServerInfo: z.ZodObject<{
|
|
|
165
161
|
}, z.core.$strip>]>>;
|
|
166
162
|
ok: z.ZodLiteral<true>;
|
|
167
163
|
startedAt: z.ZodString;
|
|
164
|
+
track: z.ZodEnum<{
|
|
165
|
+
stable: "stable";
|
|
166
|
+
canary: "canary";
|
|
167
|
+
dev: "dev";
|
|
168
|
+
}>;
|
|
168
169
|
uptimeSeconds: z.ZodNumber;
|
|
169
170
|
version: z.ZodString;
|
|
170
171
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-info.d.ts","sourceRoot":"","sources":["../../shared/server-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"server-info.d.ts","sourceRoot":"","sources":["../../shared/server-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAOjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,8BAA8B;;;;;;;;;;iBAOzC,CAAC;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE5F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;iBAMvC,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAExF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAGhC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAG9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,uBAAuB;;;;;;iBAMlC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { ServerTrack } from './server-settings.js';
|
|
2
3
|
export const ServicesRestartBlocker = z.object({
|
|
3
4
|
agentId: z.string(),
|
|
4
5
|
itemId: z.string(),
|
|
@@ -34,10 +35,11 @@ export const ServerInfo = z.object({
|
|
|
34
35
|
animaHome: z.string(),
|
|
35
36
|
commit: z.string().optional(),
|
|
36
37
|
dashboardPort: z.number(),
|
|
37
|
-
|
|
38
|
+
docsUrl: z.string().url().optional(),
|
|
38
39
|
lastRestart: LastServicesRestart.optional(),
|
|
39
40
|
ok: z.literal(true),
|
|
40
41
|
startedAt: z.string(),
|
|
42
|
+
track: ServerTrack,
|
|
41
43
|
uptimeSeconds: z.number(),
|
|
42
44
|
version: z.string(),
|
|
43
45
|
});
|
|
@@ -9,4 +9,10 @@ export declare const ReleaseTrack: z.ZodEnum<{
|
|
|
9
9
|
canary: "canary";
|
|
10
10
|
}>;
|
|
11
11
|
export type ReleaseTrack = z.infer<typeof ReleaseTrack>;
|
|
12
|
+
export declare const ServerTrack: z.ZodEnum<{
|
|
13
|
+
stable: "stable";
|
|
14
|
+
canary: "canary";
|
|
15
|
+
dev: "dev";
|
|
16
|
+
}>;
|
|
17
|
+
export type ServerTrack = z.infer<typeof ServerTrack>;
|
|
12
18
|
//# sourceMappingURL=server-settings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-settings.d.ts","sourceRoot":"","sources":["../../shared/server-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;iBAGvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY;;;EAA+B,CAAC;AACzD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"server-settings.d.ts","sourceRoot":"","sources":["../../shared/server-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;iBAGvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY;;;EAA+B,CAAC;AACzD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,WAAW;;;;EAAsC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
|