@automagik/omni 2.260409.6 → 2.260421.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.
Files changed (53) hide show
  1. package/db/drizzle/0018_supreme_puma.sql +6 -0
  2. package/db/drizzle/0019_idle_chat_follow_up.sql +23 -0
  3. package/db/drizzle/0020_follow_up_config.sql +2 -0
  4. package/db/drizzle/0021_idle_follow_up_seed.sql +51 -0
  5. package/db/drizzle/0022_idle_follow_up_prompt_v2.sql +34 -0
  6. package/db/drizzle/0023_dispatcher_inbound_age.sql +8 -0
  7. package/db/drizzle/0024_quiet_gabe_jones.sql +23 -0
  8. package/db/drizzle/0025_panoramic_sinister_six.sql +5 -0
  9. package/db/drizzle/0026_agent_key_profiles.sql +19 -0
  10. package/db/drizzle/0027_bridge_tmux_session.sql +13 -0
  11. package/db/drizzle/meta/{0014_snapshot.json → 0018_snapshot.json} +678 -430
  12. package/db/drizzle/meta/{0013_snapshot.json → 0019_snapshot.json} +919 -445
  13. package/db/drizzle/meta/0020_snapshot.json +7240 -0
  14. package/db/drizzle/meta/0021_snapshot.json +7240 -0
  15. package/db/drizzle/meta/0024_snapshot.json +7240 -0
  16. package/db/drizzle/meta/0025_snapshot.json +7240 -0
  17. package/db/drizzle/meta/0026_snapshot.json +7274 -0
  18. package/db/drizzle/meta/_journal.json +70 -0
  19. package/dist/__tests__/mock-api.d.ts +24 -0
  20. package/dist/__tests__/mock-api.d.ts.map +1 -1
  21. package/dist/commands/agents.d.ts +2 -0
  22. package/dist/commands/agents.d.ts.map +1 -1
  23. package/dist/commands/doctor.d.ts +24 -15
  24. package/dist/commands/doctor.d.ts.map +1 -1
  25. package/dist/commands/events.d.ts +25 -0
  26. package/dist/commands/events.d.ts.map +1 -1
  27. package/dist/commands/follow-up.d.ts +13 -0
  28. package/dist/commands/follow-up.d.ts.map +1 -0
  29. package/dist/commands/install.d.ts +28 -29
  30. package/dist/commands/install.d.ts.map +1 -1
  31. package/dist/commands/instances.d.ts.map +1 -1
  32. package/dist/commands/keys.d.ts +43 -0
  33. package/dist/commands/keys.d.ts.map +1 -1
  34. package/dist/commands/start.d.ts.map +1 -1
  35. package/dist/commands/update.d.ts +12 -0
  36. package/dist/commands/update.d.ts.map +1 -1
  37. package/dist/commands/voice.d.ts +11 -0
  38. package/dist/commands/voice.d.ts.map +1 -0
  39. package/dist/config.d.ts +1 -1
  40. package/dist/config.d.ts.map +1 -1
  41. package/dist/index.js +94536 -65466
  42. package/dist/install-helpers.d.ts +32 -0
  43. package/dist/install-helpers.d.ts.map +1 -0
  44. package/dist/nats-install.d.ts +11 -0
  45. package/dist/nats-install.d.ts.map +1 -0
  46. package/dist/output.d.ts +14 -5
  47. package/dist/output.d.ts.map +1 -1
  48. package/dist/pm2.d.ts +46 -0
  49. package/dist/pm2.d.ts.map +1 -1
  50. package/dist/server/davey.linux-x64-gnu-vevevdy2.node +0 -0
  51. package/dist/server/davey.linux-x64-musl-3vkb94zg.node +0 -0
  52. package/dist/server/index.js +97148 -13518
  53. package/package.json +10 -10
@@ -127,6 +127,76 @@
127
127
  "when": 1775772342374,
128
128
  "tag": "0017_drop_agent_fallback",
129
129
  "breakpoints": true
130
+ },
131
+ {
132
+ "idx": 18,
133
+ "version": "7",
134
+ "when": 1776108062203,
135
+ "tag": "0018_supreme_puma",
136
+ "breakpoints": true
137
+ },
138
+ {
139
+ "idx": 19,
140
+ "version": "7",
141
+ "when": 1776148086753,
142
+ "tag": "0019_idle_chat_follow_up",
143
+ "breakpoints": true
144
+ },
145
+ {
146
+ "idx": 20,
147
+ "version": "7",
148
+ "when": 1776148086754,
149
+ "tag": "0020_follow_up_config",
150
+ "breakpoints": true
151
+ },
152
+ {
153
+ "idx": 21,
154
+ "version": "7",
155
+ "when": 1776500000000,
156
+ "tag": "0021_idle_follow_up_seed",
157
+ "breakpoints": true
158
+ },
159
+ {
160
+ "idx": 22,
161
+ "version": "7",
162
+ "when": 1776500100000,
163
+ "tag": "0022_idle_follow_up_prompt_v2",
164
+ "breakpoints": true
165
+ },
166
+ {
167
+ "idx": 23,
168
+ "version": "7",
169
+ "when": 1776528000000,
170
+ "tag": "0023_dispatcher_inbound_age",
171
+ "breakpoints": true
172
+ },
173
+ {
174
+ "idx": 24,
175
+ "version": "7",
176
+ "when": 1776528100000,
177
+ "tag": "0024_quiet_gabe_jones",
178
+ "breakpoints": true
179
+ },
180
+ {
181
+ "idx": 25,
182
+ "version": "7",
183
+ "when": 1776528200000,
184
+ "tag": "0025_panoramic_sinister_six",
185
+ "breakpoints": true
186
+ },
187
+ {
188
+ "idx": 26,
189
+ "version": "7",
190
+ "when": 1776744000000,
191
+ "tag": "0026_agent_key_profiles",
192
+ "breakpoints": true
193
+ },
194
+ {
195
+ "idx": 27,
196
+ "version": "7",
197
+ "when": 1776766900000,
198
+ "tag": "0027_bridge_tmux_session",
199
+ "breakpoints": true
130
200
  }
131
201
  ]
132
202
  }
@@ -13,6 +13,30 @@
13
13
  * - packages/cli/src/__tests__/cli.test.ts
14
14
  */
15
15
  export declare const MOCK_API_KEY = "test-mock-api-key-12345";
16
+ /**
17
+ * In-memory event queue used by `omni events stream` integration tests.
18
+ * Pushed via {@link seedStreamEvent} and drained by `GET /api/v2/events`
19
+ * filtered by `since`. Kept separate from {@link makeSeedEvent} so the
20
+ * `events get` happy path stays deterministic.
21
+ */
22
+ interface StreamEventRow {
23
+ id: string;
24
+ eventType: string;
25
+ contentType: string | null;
26
+ instanceId: string;
27
+ personId: string | null;
28
+ direction: 'inbound' | 'outbound';
29
+ textContent: string | null;
30
+ transcription: string | null;
31
+ imageDescription: string | null;
32
+ chatUuid: string | null;
33
+ agentId: string | null;
34
+ conversationId: string | null;
35
+ receivedAt: string;
36
+ processedAt: string | null;
37
+ }
38
+ export declare function seedStreamEvent(overrides?: Partial<StreamEventRow>): StreamEventRow;
39
+ export declare function clearStreamedEvents(): void;
16
40
  interface MockApiHandle {
17
41
  url: string;
18
42
  port: number;
@@ -1 +1 @@
1
- {"version":3,"file":"mock-api.d.ts","sourceRoot":"","sources":["../../src/__tests__/mock-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,YAAY,4BAA4B,CAAC;AAmdtD,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAID;;;;GAIG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CA6B3D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC"}
1
+ {"version":3,"file":"mock-api.d.ts","sourceRoot":"","sources":["../../src/__tests__/mock-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,YAAY,4BAA4B,CAAC;AAwUtD;;;;;GAKG;AACH,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAID,wBAAgB,eAAe,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAqBvF;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AA0KD,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAID;;;;GAIG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CA+B3D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC"}
@@ -4,7 +4,9 @@
4
4
  * omni agents list [--provider <p>] [--inactive-only] [--limit <n>]
5
5
  * omni agents get <id>
6
6
  * omni agents create --name <name> --provider <provider> [--agent-provider <id>] [--model <model>] [--type <type>]
7
+ * [--provider-agent-id <id>] [--config-path <path>] [--metadata <json>]
7
8
  * omni agents update <id> [--name <name>] [--model <model>] [--provider <provider>] [--agent-provider <id>] [--type <type>] [--active|--inactive]
9
+ * [--provider-agent-id <id>] [--config-path <path>] [--metadata <json>]
8
10
  * omni agents delete <id>
9
11
  */
10
12
  import { Command } from 'commander';
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0DpC,wBAAgB,mBAAmB,IAAI,OAAO,CA+J7C"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkJpC,wBAAgB,mBAAmB,IAAI,OAAO,CAwK7C"}
@@ -8,13 +8,15 @@
8
8
  * mismatch or an auth failure after a restart.
9
9
  *
10
10
  * Checks performed, in order:
11
- * 1. pm2-env-drift — pm2-stored env for omni-api vs. buildRuntimeEnv()
12
- * 2. cli-key-valid — stored CLI key still validates against the server
13
- * 3. pgserve-reachable — TCP connect to localhost:PGSERVE_PORT
14
- * 4. omni-db-exists — `omni` database exists on the embedded pgserve
15
- * 5. orphaned-data-dirs — `.pgserve-data/` directories under cwd
16
- * 6. version-match — CLI version vs. /api/v2/health `version` field
17
- * 7. pm2-status — omni-api and omni-nats both `online` in pm2
11
+ * 1. pm2-env-drift — pm2-stored env for omni-api vs. buildRuntimeEnv()
12
+ * 2. cli-key-valid — stored CLI key still validates against the server
13
+ * 3. pgserve-reachable — TCP connect to localhost:PGSERVE_PORT
14
+ * 4. omni-db-exists — `omni` database exists on the embedded pgserve
15
+ * 5. orphaned-data-dirs — `.pgserve-data/` directories under cwd
16
+ * 6. version-match — CLI version vs. /api/v2/health `version` field
17
+ * 7. pm2-status — omni-api and omni-nats both `online` in pm2
18
+ * 8. pm2-max-restarts — omni-api has bounded restarts (not 0 or >= 1000)
19
+ * 9. pm2-logrotate-installed — pm2-logrotate module configured correctly
18
20
  *
19
21
  * Each check returns OK / WARN / FAIL with a one-line detail. `--fix`
20
22
  * attempts repair for checks with a known repair path. The fix flow
@@ -22,20 +24,24 @@
22
24
  * load-bearing and has a dedicated mutation-safety test.
23
25
  *
24
26
  * Repair paths:
25
- * - pm2-env-drift: `pm2 delete omni-api` + re-launch via the same code
26
- * path used by `omni start`, with a sanitized env.
27
- * - cli-key-valid: Delete `__primary__` from api_keys, restart with a
28
- * freshly generated OMNI_API_KEY, re-validate, write
29
- * the new key to `~/.omni/config.json`.
30
- * - orphaned-data-dirs: Print `rm -rf` commands for the user to review
31
- * (we never auto-delete data directories).
27
+ * - pm2-env-drift: `pm2 delete omni-api` + re-launch with a
28
+ * sanitized env via `buildPm2StartArgs()`.
29
+ * - cli-key-valid: Delete `__primary__` from api_keys, restart
30
+ * with a freshly generated OMNI_API_KEY, re-
31
+ * validate, write new key to ~/.omni/config.json.
32
+ * - orphaned-data-dirs: Print `rm -rf` commands for the user to review
33
+ * (we never auto-delete data directories).
34
+ * - pm2-max-restarts: `pm2 delete` + re-launch via `buildPm2StartArgs()`
35
+ * so the hardened `--max-restarts` flag takes effect.
36
+ * - pm2-logrotate-installed: Re-run `pm2 install pm2-logrotate` + the four
37
+ * `pm2 set pm2-logrotate:*` commands.
32
38
  */
33
39
  import { Command } from 'commander';
34
40
  import { type Config, type ServerConfig } from '../config.js';
35
41
  /** Severity levels reported by each check. */
36
42
  export type CheckLevel = 'OK' | 'WARN' | 'FAIL';
37
43
  /** Identifier used in tests and --json output. */
38
- export type CheckId = 'pm2-env-drift' | 'cli-key-valid' | 'pgserve-reachable' | 'omni-db-exists' | 'orphaned-data-dirs' | 'version-match' | 'pm2-status';
44
+ export type CheckId = 'pm2-env-drift' | 'cli-key-valid' | 'pgserve-reachable' | 'omni-db-exists' | 'orphaned-data-dirs' | 'version-match' | 'pm2-status' | 'pm2-max-restarts' | 'pm2-logrotate-installed';
39
45
  export interface CheckResult {
40
46
  id: CheckId;
41
47
  level: CheckLevel;
@@ -68,6 +74,7 @@ interface Pm2Entry {
68
74
  pm_exec_path?: string;
69
75
  args?: string[];
70
76
  interpreter?: string;
77
+ max_restarts?: number;
71
78
  OMNI_API_KEY?: string;
72
79
  DATABASE_URL?: string;
73
80
  PGSERVE_DATA?: string;
@@ -108,6 +115,8 @@ export interface DoctorDeps {
108
115
  generateApiKey: () => string;
109
116
  /** Sleep briefly after a pm2 restart. Tests stub to zero-delay. */
110
117
  sleepMs: (ms: number) => Promise<void>;
118
+ /** Capture `pm2 conf` stdout (or null on error). Used by pm2-logrotate check. */
119
+ capturePm2Conf: () => Promise<string | null>;
111
120
  }
112
121
  /**
113
122
  * Run all checks and optionally apply fixes. Returns a structured
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,34 @@
2
2
  * Event Commands
3
3
  *
4
4
  * omni events list --instance <id>
5
+ * omni events stream [flags]
5
6
  * omni events search <query>
6
7
  * omni events timeline <person-id>
7
8
  */
9
+ import type { Event } from '@omni/sdk';
8
10
  import { Command } from 'commander';
11
+ /** True when event_type denotes a failure/denial — used by --errors-only. */
12
+ export declare function isErrorEvent(eventType: string): boolean;
13
+ /** True when event_type is considered noisy and should be hidden unless --all is set. */
14
+ export declare function isNoisyEvent(eventType: string): boolean;
15
+ /** Filter predicate matrix for `omni events stream`. Exported for unit tests. */
16
+ export interface StreamFilterOptions {
17
+ instanceId?: string;
18
+ channel?: string;
19
+ type?: string;
20
+ chatId?: string;
21
+ personId?: string;
22
+ errorsOnly?: boolean;
23
+ all?: boolean;
24
+ }
25
+ /**
26
+ * Return true when event should be emitted given the filter options.
27
+ * The API pre-filters by instanceId / channel / eventType / since, so this
28
+ * is primarily a post-fetch sieve for filters the list API does not support
29
+ * (chat-id, person-id, errors-only, noise suppression).
30
+ */
31
+ export declare function passesStreamFilters(event: Event, options: StreamFilterOptions): boolean;
32
+ /** Format an event as a single human-readable line. */
33
+ export declare function formatEventLine(event: Event): string;
9
34
  export declare function createEventsCommand(): Command;
10
35
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkMpC,wBAAgB,mBAAmB,IAAI,OAAO,CA6M7C"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAc,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoNpC,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAQvF;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAOpD;AA0HD,wBAAgB,mBAAmB,IAAI,OAAO,CAkP7C"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Follow-up config commands (issue #404)
3
+ *
4
+ * omni follow-up get agents|instances|chats <id>
5
+ * omni follow-up set agents|instances|chats <id> <json>
6
+ * omni follow-up unset agents|instances|chats <id>
7
+ *
8
+ * The <json> argument is either a literal JSON string, or `@<path>` to read
9
+ * from a file, or `-` to read from stdin.
10
+ */
11
+ import { Command } from 'commander';
12
+ export declare function createFollowUpCommand(): Command;
13
+ //# sourceMappingURL=follow-up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-up.d.ts","sourceRoot":"","sources":["../../src/commands/follow-up.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,wBAAgB,qBAAqB,IAAI,OAAO,CAgE/C"}
@@ -1,43 +1,42 @@
1
1
  /**
2
2
  * Install Command
3
3
  *
4
- * omni install [--non-interactive] [--systemd] [--port <port>]
4
+ * omni install [--port <port>] [--database-url <url>] [--api-key <key>]
5
+ * [--systemd] [--force-cleanup] [--non-interactive]
5
6
  *
6
- * Interactive setup wizard that bootstraps a full Omni server from zero:
7
- * 1. Banner + version
8
- * 2. System check (bun, port availability)
9
- * 3. NATS download (if not present)
10
- * 4. Process manager choice (PM2 or systemd or manual)
11
- * 5. Config (port, data dir)
12
- * 6. API key (generate or provide)
13
- * 7. Start services via PM2 (or write systemd unit)
14
- * 8. Health check
15
- * 9. Write ~/.omni/config.json
16
- * 10. Done banner + next steps
7
+ * Non-interactive, reinstall-safe bootstrapper. Rewritten from an interactive
8
+ * wizard in 2026-04 (WISH: omni-install-resilience). Flow:
9
+ *
10
+ * 1. Detect reinstall (config, pm2 process, or non-empty data dir).
11
+ * 2. Preserve ALL user data on reinstall — never regenerate keys or config.
12
+ * 3. Install pm2-logrotate (best-effort, idempotent).
13
+ * 4. Start services via pm2 with hardened flags (max-restarts, log rotation).
14
+ * 5. Health check.
15
+ * 6. Print an agent handoff block addressed TO the AI agent running this.
17
16
  */
18
17
  import { Command } from 'commander';
19
18
  /**
20
- * Compute the default database URL for the install wizard.
21
- *
22
- * Embedded mode is the default and derives the URL from the configured
23
- * pgserve port (never from the calling shell, which has historically
24
- * leaked foreign databases into omni-api via pm2's stored env). If an
25
- * operator wants to point omni at an external PostgreSQL they must pass
26
- * `--database-url <url>` explicitly — an opt-in signal that the external
27
- * URL is intentional and not an accidental shell export.
28
- *
29
- * Exported so `install-env-leak.test.ts` can assert hermeticity.
19
+ * Compute the default database URL. Embedded-mode derives from the pgserve
20
+ * port — NEVER from the calling shell. Exported so install-env-leak tests
21
+ * can assert hermeticity.
30
22
  */
31
23
  export declare function computeDefaultDatabaseUrl(): string;
32
- /**
33
- * Resolve the `databaseUrl` that will be written to `~/.omni/config.json`.
34
- * Exported for hermeticity tests. Never reads the calling shell's env.
35
- *
36
- * @param options.databaseUrlFlag — the explicit `--database-url` value, if
37
- * the operator passed one. Opt-in external-DB mode.
38
- */
24
+ /** Resolve the effective databaseUrl, honoring an explicit flag over the embedded default. */
39
25
  export declare function resolveInstallDatabaseUrl(options: {
40
26
  databaseUrlFlag?: string;
41
27
  }): string;
28
+ interface ResolvedConfig {
29
+ port: number;
30
+ dataDir: string;
31
+ databaseUrl: string;
32
+ apiKey: string;
33
+ }
34
+ /**
35
+ * Agent handoff banner. Plain text, no ANSI, no ASCII art, no interactive
36
+ * prompts. An agent reading stdout can act on this block directly.
37
+ * Exported for tests that assert the block's structure.
38
+ */
39
+ export declare function buildAgentHandoffBlock(cfg: ResolvedConfig, apiKeyDisplay: string): string;
42
40
  export declare function createInstallCommand(): Command;
41
+ export {};
43
42
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAMvF;AA0kBD,wBAAgB,oBAAoB,IAAI,OAAO,CAQ9C"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,8FAA8F;AAC9F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIvF;AAYD,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAyLD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAmCzF;AA2DD,wBAAgB,oBAAoB,IAAI,OAAO,CAU9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/commands/instances.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgKpC,wBAAgB,sBAAsB,IAAI,OAAO,CAgoChD"}
1
+ {"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/commands/instances.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0KpC,wBAAgB,sBAAsB,IAAI,OAAO,CAopChD"}
@@ -2,7 +2,50 @@
2
2
  * API Key Management Commands
3
3
  *
4
4
  * Create, list, update, revoke, and delete API keys.
5
+ *
6
+ * Profile-based creation (`--profile`) delegates scope resolution and lock
7
+ * validation to the API. The `--profile admin` path is the single exception:
8
+ * the API route refuses admin keys unconditionally (god-keys are human-gated
9
+ * by construction), so the CLI handles admin creation directly against the
10
+ * database and only after the operator types `I UNDERSTAND` on an
11
+ * interactive TTY. Any non-TTY invocation (pipe, redirect, CI) is refused.
5
12
  */
13
+ import type { OmniClient } from '@omni/sdk';
6
14
  import { Command } from 'commander';
15
+ type ProfileFlag = 'cs' | 'personal' | 'scout' | 'coworker' | 'admin';
16
+ interface CreateOptions {
17
+ name: string;
18
+ scopes?: string;
19
+ instances?: string;
20
+ description?: string;
21
+ rateLimit?: number;
22
+ expires?: string;
23
+ profile?: ProfileFlag;
24
+ lockChat?: string[];
25
+ lockInstance?: string[];
26
+ owner?: string;
27
+ denylistPreset?: string;
28
+ }
29
+ declare function promptAdminConfirmation(): Promise<boolean>;
30
+ /**
31
+ * Direct-to-database admin creation path. Bypasses the HTTP API because the
32
+ * `POST /keys` route refuses `profile: 'admin'` unconditionally — there is
33
+ * no HTTP surface that can mint a god-key, by design. Emits the
34
+ * `key.admin_created` audit event so operators have a record.
35
+ */
36
+ declare function handleAdminCreate(options: CreateOptions): Promise<void>;
37
+ declare function handleCreate(client: OmniClient, options: CreateOptions): Promise<void>;
7
38
  export declare function createKeysCommand(): Command;
39
+ /**
40
+ * Exported for tests — lets us exercise the TTY/confirmation/admin path and
41
+ * the profile-flag handling without reaching into Commander internals.
42
+ */
43
+ export declare const __testables: {
44
+ ADMIN_CONFIRMATION_PHRASE: string;
45
+ ADMIN_PROMPT_TEXT: string;
46
+ handleCreate: typeof handleCreate;
47
+ handleAdminCreate: typeof handleAdminCreate;
48
+ promptAdminConfirmation: typeof promptAdminConfirmation;
49
+ };
50
+ export {};
8
51
  //# sourceMappingURL=keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2JpC,wBAAgB,iBAAiB,IAAI,OAAO,CAiG3C"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAA8B,UAAU,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,KAAK,WAAW,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtE,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAmED,iBAAe,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAIzD;AAMD;;;;;GAKG;AACH,iBAAe,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EtE;AAED,iBAAe,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwErF;AAkED,wBAAgB,iBAAiB,IAAI,OAAO,CA0G3C;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0EpC,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyFpC,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C"}
@@ -21,6 +21,18 @@
21
21
  * when the stored key no longer validated.
22
22
  */
23
23
  import { Command } from 'commander';
24
+ import { type Config } from '../config.js';
25
+ export type UpdateChannel = 'latest' | 'next';
26
+ /**
27
+ * Resolve the npm dist-tag to install. Priority:
28
+ * 1. --next / --stable flag (explicit override)
29
+ * 2. Saved `updateChannel` in ~/.omni/config.json
30
+ * 3. Default to 'latest'
31
+ */
32
+ export declare function resolveChannel(options: {
33
+ next?: boolean;
34
+ stable?: boolean;
35
+ }, config?: Config): UpdateChannel;
24
36
  /** Shape of the `/api/v2/health` response we care about. */
25
37
  export interface HealthBody {
26
38
  status?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6HpC,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC9E;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAE7B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,kBAAkB,CAarB;AAED,oEAAoE;AACpE,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAErF;AAED,eAAO,MAAM,yBAAyB,2DAA2D,CAAC;AAuOlG,wBAAgB,mBAAmB,IAAI,OAAO,CAmC7C"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,KAAK,MAAM,EAA4C,MAAM,cAAc,CAAC;AAuBrF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAQ5G;AAiID,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC9E;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAE7B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,kBAAkB,CAarB;AAED,oEAAoE;AACpE,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAErF;AAED,eAAO,MAAM,yBAAyB,2DAA2D,CAAC;AAiPlG,wBAAgB,mBAAmB,IAAI,OAAO,CAgD7C"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Voice Commands
3
+ *
4
+ * omni voice join --instance <id> --channel <channelId> --guild <guildId>
5
+ * omni voice leave --session <sessionId>
6
+ * omni voice sessions
7
+ * omni voice stream <sessionId> [--format opus|pcm] [--user <userId>] [--save <dir>]
8
+ */
9
+ import { Command } from 'commander';
10
+ export declare function createVoiceCommand(): Command;
11
+ //# sourceMappingURL=voice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../src/commands/voice.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,kBAAkB,IAAI,OAAO,CA2L5C"}
package/dist/config.d.ts CHANGED
@@ -23,7 +23,7 @@ export interface Config {
23
23
  format?: 'human' | 'json';
24
24
  showCommands?: string;
25
25
  telemetry?: string;
26
- updateChannel?: 'main' | 'dev';
26
+ updateChannel?: 'latest' | 'next';
27
27
  server?: Partial<ServerConfig>;
28
28
  }
29
29
  /** Default server config with production defaults */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,oCAAoC;AACpC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzE,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,iBAAiB,GACjB,QAAQ,GACR,cAAc,GACd,WAAW,GACX,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,CAAC;AAErB,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAQD,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,EAAE,YAMnC,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CA4BrF,CAAC;AAEF,gCAAgC;AAChC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAUD,4BAA4B;AAC5B,wBAAgB,UAAU,IAAI,MAAM,CAcnC;AAED,0BAA0B;AAC1B,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAcjE;AA6CD,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASlE;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAmBtD;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,SAAS,CAE9D;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,IAAI,OAAO,GAAG,MAAM,CAqBlD;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,IAAI,YAAY,CAG/C;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAIrE;AAED,kCAAkC;AAClC,wBAAgB,OAAO,IAAI,OAAO,CAGjC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,oCAAoC;AACpC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzE,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,iBAAiB,GACjB,QAAQ,GACR,cAAc,GACd,WAAW,GACX,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,CAAC;AAErB,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAQD,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,EAAE,YAMnC,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CA4BrF,CAAC;AAEF,gCAAgC;AAChC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAUD,4BAA4B;AAC5B,wBAAgB,UAAU,IAAI,MAAM,CAcnC;AAED,0BAA0B;AAC1B,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAcjE;AA6CD,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASlE;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAmBtD;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,SAAS,CAE9D;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,IAAI,OAAO,GAAG,MAAM,CAqBlD;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,IAAI,YAAY,CAG/C;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAIrE;AAED,kCAAkC;AAClC,wBAAgB,OAAO,IAAI,OAAO,CAGjC"}