zora-agent 0.9.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/CHANGELOG.md +145 -0
- package/LICENSE +21 -0
- package/README.md +159 -0
- package/dist/cli/audit-commands.d.ts +8 -0
- package/dist/cli/audit-commands.d.ts.map +1 -0
- package/dist/cli/audit-commands.js +67 -0
- package/dist/cli/audit-commands.js.map +1 -0
- package/dist/cli/daemon.d.ts +9 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +107 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/doctor.d.ts +21 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +31 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/edit-commands.d.ts +8 -0
- package/dist/cli/edit-commands.d.ts.map +1 -0
- package/dist/cli/edit-commands.js +46 -0
- package/dist/cli/edit-commands.js.map +1 -0
- package/dist/cli/index.d.ts +11 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +319 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init-command.d.ts +30 -0
- package/dist/cli/init-command.d.ts.map +1 -0
- package/dist/cli/init-command.js +425 -0
- package/dist/cli/init-command.js.map +1 -0
- package/dist/cli/memory-commands.d.ts +11 -0
- package/dist/cli/memory-commands.d.ts.map +1 -0
- package/dist/cli/memory-commands.js +57 -0
- package/dist/cli/memory-commands.js.map +1 -0
- package/dist/cli/presets.d.ts +12 -0
- package/dist/cli/presets.d.ts.map +1 -0
- package/dist/cli/presets.js +169 -0
- package/dist/cli/presets.js.map +1 -0
- package/dist/cli/skill-commands.d.ts +10 -0
- package/dist/cli/skill-commands.d.ts.map +1 -0
- package/dist/cli/skill-commands.js +73 -0
- package/dist/cli/skill-commands.js.map +1 -0
- package/dist/cli/steer-commands.d.ts +10 -0
- package/dist/cli/steer-commands.d.ts.map +1 -0
- package/dist/cli/steer-commands.js +92 -0
- package/dist/cli/steer-commands.js.map +1 -0
- package/dist/cli/team-commands.d.ts +8 -0
- package/dist/cli/team-commands.d.ts.map +1 -0
- package/dist/cli/team-commands.js +93 -0
- package/dist/cli/team-commands.js.map +1 -0
- package/dist/config/defaults.d.ts +26 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +173 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +30 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +130 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/policy-loader.d.ts +18 -0
- package/dist/config/policy-loader.d.ts.map +1 -0
- package/dist/config/policy-loader.js +72 -0
- package/dist/config/policy-loader.js.map +1 -0
- package/dist/dashboard/auth-middleware.d.ts +15 -0
- package/dist/dashboard/auth-middleware.d.ts.map +1 -0
- package/dist/dashboard/auth-middleware.js +44 -0
- package/dist/dashboard/auth-middleware.js.map +1 -0
- package/dist/dashboard/frontend/vite.config.d.ts +3 -0
- package/dist/dashboard/frontend/vite.config.d.ts.map +1 -0
- package/dist/dashboard/frontend/vite.config.js +11 -0
- package/dist/dashboard/frontend/vite.config.js.map +1 -0
- package/dist/dashboard/server.d.ts +55 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +254 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/category-organizer.d.ts +33 -0
- package/dist/memory/category-organizer.d.ts.map +1 -0
- package/dist/memory/category-organizer.js +137 -0
- package/dist/memory/category-organizer.js.map +1 -0
- package/dist/memory/extraction-pipeline.d.ts +22 -0
- package/dist/memory/extraction-pipeline.d.ts.map +1 -0
- package/dist/memory/extraction-pipeline.js +156 -0
- package/dist/memory/extraction-pipeline.js.map +1 -0
- package/dist/memory/index.d.ts +7 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +7 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +56 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +198 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/memory/memory-types.d.ts +44 -0
- package/dist/memory/memory-types.d.ts.map +1 -0
- package/dist/memory/memory-types.js +8 -0
- package/dist/memory/memory-types.js.map +1 -0
- package/dist/memory/salience-scorer.d.ts +19 -0
- package/dist/memory/salience-scorer.d.ts.map +1 -0
- package/dist/memory/salience-scorer.js +72 -0
- package/dist/memory/salience-scorer.js.map +1 -0
- package/dist/memory/structured-memory.d.ts +28 -0
- package/dist/memory/structured-memory.d.ts.map +1 -0
- package/dist/memory/structured-memory.js +140 -0
- package/dist/memory/structured-memory.js.map +1 -0
- package/dist/orchestrator/auth-monitor.d.ts +28 -0
- package/dist/orchestrator/auth-monitor.d.ts.map +1 -0
- package/dist/orchestrator/auth-monitor.js +49 -0
- package/dist/orchestrator/auth-monitor.js.map +1 -0
- package/dist/orchestrator/execution-loop.d.ts +59 -0
- package/dist/orchestrator/execution-loop.d.ts.map +1 -0
- package/dist/orchestrator/execution-loop.js +94 -0
- package/dist/orchestrator/execution-loop.js.map +1 -0
- package/dist/orchestrator/failover-controller.d.ts +32 -0
- package/dist/orchestrator/failover-controller.d.ts.map +1 -0
- package/dist/orchestrator/failover-controller.js +111 -0
- package/dist/orchestrator/failover-controller.js.map +1 -0
- package/dist/orchestrator/index.d.ts +11 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +11 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestrator.d.ts +99 -0
- package/dist/orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator.js +456 -0
- package/dist/orchestrator/orchestrator.js.map +1 -0
- package/dist/orchestrator/retry-queue.d.ts +39 -0
- package/dist/orchestrator/retry-queue.d.ts.map +1 -0
- package/dist/orchestrator/retry-queue.js +99 -0
- package/dist/orchestrator/retry-queue.js.map +1 -0
- package/dist/orchestrator/router.d.ts +49 -0
- package/dist/orchestrator/router.d.ts.map +1 -0
- package/dist/orchestrator/router.js +167 -0
- package/dist/orchestrator/router.js.map +1 -0
- package/dist/orchestrator/session-manager.d.ts +39 -0
- package/dist/orchestrator/session-manager.d.ts.map +1 -0
- package/dist/orchestrator/session-manager.js +117 -0
- package/dist/orchestrator/session-manager.js.map +1 -0
- package/dist/providers/claude-provider.d.ts +182 -0
- package/dist/providers/claude-provider.d.ts.map +1 -0
- package/dist/providers/claude-provider.js +443 -0
- package/dist/providers/claude-provider.js.map +1 -0
- package/dist/providers/gemini-provider.d.ts +46 -0
- package/dist/providers/gemini-provider.d.ts.map +1 -0
- package/dist/providers/gemini-provider.js +336 -0
- package/dist/providers/gemini-provider.js.map +1 -0
- package/dist/providers/index.d.ts +10 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +10 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/ollama-provider.d.ts +61 -0
- package/dist/providers/ollama-provider.d.ts.map +1 -0
- package/dist/providers/ollama-provider.js +319 -0
- package/dist/providers/ollama-provider.js.map +1 -0
- package/dist/routines/event-triggers.d.ts +34 -0
- package/dist/routines/event-triggers.d.ts.map +1 -0
- package/dist/routines/event-triggers.js +104 -0
- package/dist/routines/event-triggers.js.map +1 -0
- package/dist/routines/heartbeat.d.ts +35 -0
- package/dist/routines/heartbeat.d.ts.map +1 -0
- package/dist/routines/heartbeat.js +93 -0
- package/dist/routines/heartbeat.js.map +1 -0
- package/dist/routines/index.d.ts +7 -0
- package/dist/routines/index.d.ts.map +1 -0
- package/dist/routines/index.js +7 -0
- package/dist/routines/index.js.map +1 -0
- package/dist/routines/routine-manager.d.ts +62 -0
- package/dist/routines/routine-manager.d.ts.map +1 -0
- package/dist/routines/routine-manager.js +148 -0
- package/dist/routines/routine-manager.js.map +1 -0
- package/dist/security/audit-logger.d.ts +55 -0
- package/dist/security/audit-logger.d.ts.map +1 -0
- package/dist/security/audit-logger.js +252 -0
- package/dist/security/audit-logger.js.map +1 -0
- package/dist/security/capability-tokens.d.ts +30 -0
- package/dist/security/capability-tokens.d.ts.map +1 -0
- package/dist/security/capability-tokens.js +110 -0
- package/dist/security/capability-tokens.js.map +1 -0
- package/dist/security/index.d.ts +18 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +12 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/integrity-guardian.d.ts +43 -0
- package/dist/security/integrity-guardian.d.ts.map +1 -0
- package/dist/security/integrity-guardian.js +103 -0
- package/dist/security/integrity-guardian.js.map +1 -0
- package/dist/security/intent-capsule.d.ts +52 -0
- package/dist/security/intent-capsule.d.ts.map +1 -0
- package/dist/security/intent-capsule.js +157 -0
- package/dist/security/intent-capsule.js.map +1 -0
- package/dist/security/leak-detector.d.ts +26 -0
- package/dist/security/leak-detector.d.ts.map +1 -0
- package/dist/security/leak-detector.js +75 -0
- package/dist/security/leak-detector.js.map +1 -0
- package/dist/security/policy-engine.d.ts +188 -0
- package/dist/security/policy-engine.d.ts.map +1 -0
- package/dist/security/policy-engine.js +799 -0
- package/dist/security/policy-engine.js.map +1 -0
- package/dist/security/prompt-defense.d.ts +30 -0
- package/dist/security/prompt-defense.d.ts.map +1 -0
- package/dist/security/prompt-defense.js +164 -0
- package/dist/security/prompt-defense.js.map +1 -0
- package/dist/security/secrets-manager.d.ts +47 -0
- package/dist/security/secrets-manager.d.ts.map +1 -0
- package/dist/security/secrets-manager.js +132 -0
- package/dist/security/secrets-manager.js.map +1 -0
- package/dist/security/security-types.d.ts +84 -0
- package/dist/security/security-types.d.ts.map +1 -0
- package/dist/security/security-types.js +8 -0
- package/dist/security/security-types.js.map +1 -0
- package/dist/skills/index.d.ts +5 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +5 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/skill-loader.d.ts +25 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-loader.js +64 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/steering/flag-manager.d.ts +52 -0
- package/dist/steering/flag-manager.d.ts.map +1 -0
- package/dist/steering/flag-manager.js +160 -0
- package/dist/steering/flag-manager.js.map +1 -0
- package/dist/steering/index.d.ts +8 -0
- package/dist/steering/index.d.ts.map +1 -0
- package/dist/steering/index.js +8 -0
- package/dist/steering/index.js.map +1 -0
- package/dist/steering/steer-injector.d.ts +15 -0
- package/dist/steering/steer-injector.d.ts.map +1 -0
- package/dist/steering/steer-injector.js +41 -0
- package/dist/steering/steer-injector.js.map +1 -0
- package/dist/steering/steering-manager.d.ts +33 -0
- package/dist/steering/steering-manager.d.ts.map +1 -0
- package/dist/steering/steering-manager.js +79 -0
- package/dist/steering/steering-manager.js.map +1 -0
- package/dist/steering/telegram-gateway.d.ts +27 -0
- package/dist/steering/telegram-gateway.d.ts.map +1 -0
- package/dist/steering/telegram-gateway.js +89 -0
- package/dist/steering/telegram-gateway.js.map +1 -0
- package/dist/steering/types.d.ts +54 -0
- package/dist/steering/types.d.ts.map +1 -0
- package/dist/steering/types.js +11 -0
- package/dist/steering/types.js.map +1 -0
- package/dist/teams/agent-loader.d.ts +38 -0
- package/dist/teams/agent-loader.d.ts.map +1 -0
- package/dist/teams/agent-loader.js +85 -0
- package/dist/teams/agent-loader.js.map +1 -0
- package/dist/teams/bridge-watchdog.d.ts +44 -0
- package/dist/teams/bridge-watchdog.d.ts.map +1 -0
- package/dist/teams/bridge-watchdog.js +118 -0
- package/dist/teams/bridge-watchdog.js.map +1 -0
- package/dist/teams/gemini-bridge.d.ts +43 -0
- package/dist/teams/gemini-bridge.d.ts.map +1 -0
- package/dist/teams/gemini-bridge.js +132 -0
- package/dist/teams/gemini-bridge.js.map +1 -0
- package/dist/teams/index.d.ts +11 -0
- package/dist/teams/index.d.ts.map +1 -0
- package/dist/teams/index.js +11 -0
- package/dist/teams/index.js.map +1 -0
- package/dist/teams/mailbox.d.ts +33 -0
- package/dist/teams/mailbox.d.ts.map +1 -0
- package/dist/teams/mailbox.js +97 -0
- package/dist/teams/mailbox.js.map +1 -0
- package/dist/teams/pr-lifecycle.d.ts +47 -0
- package/dist/teams/pr-lifecycle.d.ts.map +1 -0
- package/dist/teams/pr-lifecycle.js +83 -0
- package/dist/teams/pr-lifecycle.js.map +1 -0
- package/dist/teams/team-manager.d.ts +57 -0
- package/dist/teams/team-manager.d.ts.map +1 -0
- package/dist/teams/team-manager.js +170 -0
- package/dist/teams/team-manager.js.map +1 -0
- package/dist/teams/team-types.d.ts +35 -0
- package/dist/teams/team-types.d.ts.map +1 -0
- package/dist/teams/team-types.js +9 -0
- package/dist/teams/team-types.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/notifications.d.ts +13 -0
- package/dist/tools/notifications.d.ts.map +1 -0
- package/dist/tools/notifications.js +30 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/types.d.ts +311 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/fs.d.ts +9 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +31 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/logger.d.ts +43 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +139 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/wasm/wasmtime-spike.d.ts +19 -0
- package/dist/wasm/wasmtime-spike.d.ts.map +1 -0
- package/dist/wasm/wasmtime-spike.js +39 -0
- package/dist/wasm/wasmtime-spike.js.map +1 -0
- package/examples/routines/content-pipeline.toml +20 -0
- package/examples/routines/job-search.toml +19 -0
- package/examples/routines/repo-cleanup.toml +14 -0
- package/package.json +66 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy Presets — Safe, Balanced, Power.
|
|
3
|
+
*
|
|
4
|
+
* These match the spec presets in specs/v5/docs/POLICY_PRESETS.md.
|
|
5
|
+
* Used by `zora-agent init` to generate policy.toml.
|
|
6
|
+
*/
|
|
7
|
+
export const PRESETS = {
|
|
8
|
+
locked: {
|
|
9
|
+
filesystem: {
|
|
10
|
+
allowed_paths: [],
|
|
11
|
+
denied_paths: ['/', '~/', '~/.ssh', '~/.gnupg', '~/.aws'],
|
|
12
|
+
resolve_symlinks: true,
|
|
13
|
+
follow_symlinks: false,
|
|
14
|
+
},
|
|
15
|
+
shell: {
|
|
16
|
+
mode: 'deny_all',
|
|
17
|
+
allowed_commands: [],
|
|
18
|
+
denied_commands: ['*'],
|
|
19
|
+
split_chained_commands: true,
|
|
20
|
+
max_execution_time: '0s',
|
|
21
|
+
},
|
|
22
|
+
actions: {
|
|
23
|
+
reversible: [],
|
|
24
|
+
irreversible: ['*'],
|
|
25
|
+
always_flag: ['*'],
|
|
26
|
+
},
|
|
27
|
+
network: {
|
|
28
|
+
allowed_domains: [],
|
|
29
|
+
denied_domains: ['*'],
|
|
30
|
+
max_request_size: '0',
|
|
31
|
+
},
|
|
32
|
+
budget: {
|
|
33
|
+
max_actions_per_session: 0,
|
|
34
|
+
max_actions_per_type: {},
|
|
35
|
+
token_budget: 0,
|
|
36
|
+
on_exceed: 'block',
|
|
37
|
+
},
|
|
38
|
+
dry_run: {
|
|
39
|
+
enabled: true,
|
|
40
|
+
tools: [],
|
|
41
|
+
audit_dry_runs: true,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
safe: {
|
|
45
|
+
filesystem: {
|
|
46
|
+
allowed_paths: ['~/Projects', '~/.zora/workspace', '~/.zora/memory/daily', '~/.zora/memory/items'],
|
|
47
|
+
denied_paths: ['~/Documents', '~/Desktop', '~/Downloads', '~/Library', '~/.ssh', '~/.gnupg', '/'],
|
|
48
|
+
resolve_symlinks: true,
|
|
49
|
+
follow_symlinks: false,
|
|
50
|
+
},
|
|
51
|
+
shell: {
|
|
52
|
+
mode: 'deny_all',
|
|
53
|
+
allowed_commands: [],
|
|
54
|
+
denied_commands: ['*'],
|
|
55
|
+
split_chained_commands: true,
|
|
56
|
+
max_execution_time: '1m',
|
|
57
|
+
},
|
|
58
|
+
actions: {
|
|
59
|
+
reversible: [],
|
|
60
|
+
irreversible: ['git_push', 'shell_exec_destructive'],
|
|
61
|
+
always_flag: ['git_push'],
|
|
62
|
+
},
|
|
63
|
+
network: {
|
|
64
|
+
allowed_domains: ['https://*'],
|
|
65
|
+
denied_domains: [],
|
|
66
|
+
max_request_size: '10mb',
|
|
67
|
+
},
|
|
68
|
+
budget: {
|
|
69
|
+
max_actions_per_session: 100,
|
|
70
|
+
max_actions_per_type: { shell_exec: 20, shell_exec_destructive: 0 },
|
|
71
|
+
token_budget: 200_000,
|
|
72
|
+
on_exceed: 'block',
|
|
73
|
+
},
|
|
74
|
+
dry_run: {
|
|
75
|
+
enabled: false,
|
|
76
|
+
tools: [],
|
|
77
|
+
audit_dry_runs: true,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
balanced: {
|
|
81
|
+
filesystem: {
|
|
82
|
+
allowed_paths: ['~/Projects', '~/.zora/workspace', '~/.zora/memory/daily', '~/.zora/memory/items'],
|
|
83
|
+
denied_paths: ['~/Documents', '~/Desktop', '~/Downloads', '~/Library', '~/.ssh', '~/.gnupg', '/'],
|
|
84
|
+
resolve_symlinks: true,
|
|
85
|
+
follow_symlinks: false,
|
|
86
|
+
},
|
|
87
|
+
shell: {
|
|
88
|
+
mode: 'allowlist',
|
|
89
|
+
allowed_commands: ['ls', 'pwd', 'rg', 'git', 'node', 'pnpm', 'npm'],
|
|
90
|
+
denied_commands: ['sudo', 'rm', 'chmod', 'chown', 'curl', 'wget'],
|
|
91
|
+
split_chained_commands: true,
|
|
92
|
+
max_execution_time: '5m',
|
|
93
|
+
},
|
|
94
|
+
actions: {
|
|
95
|
+
reversible: ['write_file', 'edit_file', 'git_commit', 'mkdir', 'cp', 'mv'],
|
|
96
|
+
irreversible: ['git_push', 'shell_exec_destructive'],
|
|
97
|
+
always_flag: ['git_push'],
|
|
98
|
+
},
|
|
99
|
+
network: {
|
|
100
|
+
allowed_domains: ['https://*'],
|
|
101
|
+
denied_domains: [],
|
|
102
|
+
max_request_size: '10mb',
|
|
103
|
+
},
|
|
104
|
+
budget: {
|
|
105
|
+
max_actions_per_session: 500,
|
|
106
|
+
max_actions_per_type: { shell_exec: 100, write_file: 200, shell_exec_destructive: 10 },
|
|
107
|
+
token_budget: 1_000_000,
|
|
108
|
+
on_exceed: 'flag',
|
|
109
|
+
},
|
|
110
|
+
dry_run: {
|
|
111
|
+
enabled: false,
|
|
112
|
+
tools: [],
|
|
113
|
+
audit_dry_runs: true,
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
power: {
|
|
117
|
+
filesystem: {
|
|
118
|
+
allowed_paths: ['~/Projects', '~/Documents', '~/.zora/workspace', '~/.zora/memory/daily', '~/.zora/memory/items'],
|
|
119
|
+
denied_paths: ['~/Library', '~/.ssh', '~/.gnupg', '/'],
|
|
120
|
+
resolve_symlinks: true,
|
|
121
|
+
follow_symlinks: false,
|
|
122
|
+
},
|
|
123
|
+
shell: {
|
|
124
|
+
mode: 'allowlist',
|
|
125
|
+
allowed_commands: [
|
|
126
|
+
'ls', 'pwd', 'rg', 'git', 'node', 'pnpm', 'npm',
|
|
127
|
+
'python3', 'pip', 'jq', 'yq', 'find', 'sed', 'awk',
|
|
128
|
+
],
|
|
129
|
+
denied_commands: ['sudo', 'rm', 'chmod', 'chown'],
|
|
130
|
+
split_chained_commands: true,
|
|
131
|
+
max_execution_time: '10m',
|
|
132
|
+
},
|
|
133
|
+
actions: {
|
|
134
|
+
reversible: ['write_file', 'edit_file', 'git_commit', 'mkdir', 'cp', 'mv'],
|
|
135
|
+
irreversible: ['git_push', 'shell_exec_destructive'],
|
|
136
|
+
always_flag: ['git_push'],
|
|
137
|
+
},
|
|
138
|
+
network: {
|
|
139
|
+
allowed_domains: ['https://*'],
|
|
140
|
+
denied_domains: [],
|
|
141
|
+
max_request_size: '10mb',
|
|
142
|
+
},
|
|
143
|
+
budget: {
|
|
144
|
+
max_actions_per_session: 2000,
|
|
145
|
+
max_actions_per_type: { shell_exec: 500, write_file: 800, shell_exec_destructive: 50 },
|
|
146
|
+
token_budget: 5_000_000,
|
|
147
|
+
on_exceed: 'flag',
|
|
148
|
+
},
|
|
149
|
+
dry_run: {
|
|
150
|
+
enabled: false,
|
|
151
|
+
tools: [],
|
|
152
|
+
audit_dry_runs: true,
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
export const TOOL_STACKS = {
|
|
157
|
+
node: ['node', 'npm', 'npx', 'tsc', 'vitest'],
|
|
158
|
+
python: ['python3', 'pip', 'pip3'],
|
|
159
|
+
rust: ['cargo', 'rustc', 'rustup'],
|
|
160
|
+
go: ['go'],
|
|
161
|
+
general: ['ls', 'pwd', 'cat', 'head', 'tail', 'wc', 'grep', 'find', 'which', 'echo', 'mkdir', 'cp', 'mv', 'touch'],
|
|
162
|
+
};
|
|
163
|
+
export const PRESET_DESCRIPTIONS = {
|
|
164
|
+
locked: 'Zero access — fresh install default, run `zora-agent init` to configure',
|
|
165
|
+
safe: 'Read-only, no shell — best for first run or high-sensitivity environments',
|
|
166
|
+
balanced: 'Read/write inside dev path plus safe shell allowlist (recommended)',
|
|
167
|
+
power: 'Expanded filesystem + shell access — use only if you understand the risks',
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/cli/presets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill CLI Commands — List and inspect available Claude Code skills.
|
|
3
|
+
*
|
|
4
|
+
* Zora v0.6: Skills live at ~/.claude/skills/<name>/SKILL.md.
|
|
5
|
+
* The SDK invokes them automatically; these commands provide
|
|
6
|
+
* CLI introspection for discovery.
|
|
7
|
+
*/
|
|
8
|
+
import type { Command } from 'commander';
|
|
9
|
+
export declare function registerSkillCommands(program: Command): void;
|
|
10
|
+
//# sourceMappingURL=skill-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-commands.d.ts","sourceRoot":"","sources":["../../src/cli/skill-commands.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkE5D"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill CLI Commands — List and inspect available Claude Code skills.
|
|
3
|
+
*
|
|
4
|
+
* Zora v0.6: Skills live at ~/.claude/skills/<name>/SKILL.md.
|
|
5
|
+
* The SDK invokes them automatically; these commands provide
|
|
6
|
+
* CLI introspection for discovery.
|
|
7
|
+
*/
|
|
8
|
+
import os from 'node:os';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import fs from 'node:fs/promises';
|
|
11
|
+
import { loadSkills } from '../skills/skill-loader.js';
|
|
12
|
+
export function registerSkillCommands(program) {
|
|
13
|
+
const skill = program
|
|
14
|
+
.command('skill')
|
|
15
|
+
.description('List and inspect available Claude Code skills');
|
|
16
|
+
skill
|
|
17
|
+
.command('list')
|
|
18
|
+
.description('List all available skills from ~/.claude/skills/')
|
|
19
|
+
.action(async () => {
|
|
20
|
+
const skillsDir = path.join(os.homedir(), '.claude', 'skills');
|
|
21
|
+
const skills = await loadSkills(skillsDir);
|
|
22
|
+
if (skills.length === 0) {
|
|
23
|
+
console.log('No skills found in ' + skillsDir);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
console.log(`Found ${skills.length} skill(s):\n`);
|
|
27
|
+
const maxNameLen = Math.max(...skills.map((s) => s.name.length));
|
|
28
|
+
for (const s of skills) {
|
|
29
|
+
const paddedName = s.name.padEnd(maxNameLen + 2);
|
|
30
|
+
console.log(` ${paddedName}${s.description}`);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
skill
|
|
34
|
+
.command('info')
|
|
35
|
+
.description('Show details about a specific skill')
|
|
36
|
+
.argument('<name>', 'Skill name')
|
|
37
|
+
.action(async (name) => {
|
|
38
|
+
const skillsDir = path.join(os.homedir(), '.claude', 'skills');
|
|
39
|
+
const skills = await loadSkills(skillsDir);
|
|
40
|
+
const found = skills.find((s) => s.name === name);
|
|
41
|
+
if (!found) {
|
|
42
|
+
console.error(`Skill "${name}" not found in ${skillsDir}`);
|
|
43
|
+
const similar = skills.filter((s) => s.name.includes(name));
|
|
44
|
+
if (similar.length > 0) {
|
|
45
|
+
console.error(`\nDid you mean: ${similar.map((s) => s.name).join(', ')}?`);
|
|
46
|
+
}
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
console.log(`Name: ${found.name}`);
|
|
50
|
+
console.log(`Description: ${found.description}`);
|
|
51
|
+
console.log(`Path: ${found.path}`);
|
|
52
|
+
// Show first few lines of the skill content
|
|
53
|
+
try {
|
|
54
|
+
const content = await fs.readFile(found.path, 'utf-8');
|
|
55
|
+
const lines = content.split('\n');
|
|
56
|
+
// Skip frontmatter
|
|
57
|
+
let startLine = 0;
|
|
58
|
+
if (lines[0] === '---') {
|
|
59
|
+
const endIdx = lines.indexOf('---', 1);
|
|
60
|
+
if (endIdx > 0)
|
|
61
|
+
startLine = endIdx + 1;
|
|
62
|
+
}
|
|
63
|
+
const preview = lines.slice(startLine, startLine + 5).join('\n').trim();
|
|
64
|
+
if (preview) {
|
|
65
|
+
console.log(`\nPreview:\n ${preview.split('\n').join('\n ')}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Skip preview on read error
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=skill-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-commands.js","sourceRoot":"","sources":["../../src/cli/skill-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Steering CLI Commands — inject steer messages, manage flags.
|
|
3
|
+
*
|
|
4
|
+
* Spec §5.9 "CLI Interface" — steer/flags/approve/reject subcommands.
|
|
5
|
+
*/
|
|
6
|
+
import type { Command } from 'commander';
|
|
7
|
+
export declare function registerSteerCommands(program: Command, baseDir: string, options?: {
|
|
8
|
+
flagTimeoutMs?: number;
|
|
9
|
+
}): void;
|
|
10
|
+
//# sourceMappingURL=steer-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steer-commands.d.ts","sourceRoot":"","sources":["../../src/cli/steer-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACnC,IAAI,CAiGN"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Steering CLI Commands — inject steer messages, manage flags.
|
|
3
|
+
*
|
|
4
|
+
* Spec §5.9 "CLI Interface" — steer/flags/approve/reject subcommands.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { injectSteer, injectFlagDecision } from '../steering/steer-injector.js';
|
|
8
|
+
import { FlagManager } from '../steering/flag-manager.js';
|
|
9
|
+
export function registerSteerCommands(program, baseDir, options) {
|
|
10
|
+
const flagTimeoutMs = options?.flagTimeoutMs ?? 300_000;
|
|
11
|
+
program
|
|
12
|
+
.command('steer <jobId> <message>')
|
|
13
|
+
.description('Send steering message to a running job')
|
|
14
|
+
.action(async (jobId, message) => {
|
|
15
|
+
const id = await injectSteer(baseDir, jobId, message);
|
|
16
|
+
console.log(`Steer message injected: ${id}`);
|
|
17
|
+
});
|
|
18
|
+
program
|
|
19
|
+
.command('flags')
|
|
20
|
+
.description('List flagged decisions awaiting review')
|
|
21
|
+
.option('--job <jobId>', 'Filter by job ID')
|
|
22
|
+
.action(async (opts) => {
|
|
23
|
+
const fm = new FlagManager(path.join(baseDir, 'flags'), {
|
|
24
|
+
timeoutMs: flagTimeoutMs,
|
|
25
|
+
});
|
|
26
|
+
const flags = await fm.getFlags(opts.job);
|
|
27
|
+
if (flags.length === 0) {
|
|
28
|
+
console.log('No flags found.');
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(`${flags.length} flag(s):\n`);
|
|
32
|
+
for (const f of flags) {
|
|
33
|
+
console.log(` [${f.flagId}] job=${f.jobId} status=${f.status}`);
|
|
34
|
+
console.log(` Q: ${f.question}`);
|
|
35
|
+
console.log(` default: ${f.defaultAction}`);
|
|
36
|
+
if (f.resolvedAt) {
|
|
37
|
+
console.log(` resolved: ${f.resolvedAt} (${f.chosenAction})`);
|
|
38
|
+
}
|
|
39
|
+
console.log();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
program
|
|
43
|
+
.command('approve <jobId> <flagId>')
|
|
44
|
+
.description('Approve a flagged decision')
|
|
45
|
+
.action(async (jobId, flagId) => {
|
|
46
|
+
const fm = new FlagManager(path.join(baseDir, 'flags'), {
|
|
47
|
+
timeoutMs: flagTimeoutMs,
|
|
48
|
+
});
|
|
49
|
+
// Validate that the jobId matches the flag's actual job
|
|
50
|
+
const flags = await fm.getFlags();
|
|
51
|
+
const flag = flags.find(f => f.flagId === flagId);
|
|
52
|
+
if (!flag) {
|
|
53
|
+
console.error(`Flag not found: ${flagId}`);
|
|
54
|
+
process.exitCode = 1;
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (flag.jobId !== jobId) {
|
|
58
|
+
console.error(`Job ID mismatch: flag ${flagId} belongs to job ${flag.jobId}, not ${jobId}`);
|
|
59
|
+
process.exitCode = 1;
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
await fm.approve(flagId);
|
|
63
|
+
const id = await injectFlagDecision(baseDir, jobId, flagId, 'approve');
|
|
64
|
+
console.log(`Flag approved: ${id}`);
|
|
65
|
+
});
|
|
66
|
+
program
|
|
67
|
+
.command('reject <jobId> <flagId> [reason]')
|
|
68
|
+
.description('Reject a flagged decision')
|
|
69
|
+
.action(async (jobId, flagId, reason) => {
|
|
70
|
+
const rejectReason = reason ?? 'Rejected via CLI';
|
|
71
|
+
const fm = new FlagManager(path.join(baseDir, 'flags'), {
|
|
72
|
+
timeoutMs: flagTimeoutMs,
|
|
73
|
+
});
|
|
74
|
+
// Validate that the jobId matches the flag's actual job
|
|
75
|
+
const flags = await fm.getFlags();
|
|
76
|
+
const flag = flags.find(f => f.flagId === flagId);
|
|
77
|
+
if (!flag) {
|
|
78
|
+
console.error(`Flag not found: ${flagId}`);
|
|
79
|
+
process.exitCode = 1;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (flag.jobId !== jobId) {
|
|
83
|
+
console.error(`Job ID mismatch: flag ${flagId} belongs to job ${flag.jobId}, not ${jobId}`);
|
|
84
|
+
process.exitCode = 1;
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
await fm.reject(flagId, rejectReason);
|
|
88
|
+
const id = await injectFlagDecision(baseDir, jobId, flagId, 'reject', rejectReason);
|
|
89
|
+
console.log(`Flag rejected: ${id}`);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=steer-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steer-commands.js","sourceRoot":"","sources":["../../src/cli/steer-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team CLI Commands — create, list, status, and teardown multi-agent teams.
|
|
3
|
+
*
|
|
4
|
+
* Spec §5.9 "CLI Interface" — team subcommands.
|
|
5
|
+
*/
|
|
6
|
+
import type { Command } from 'commander';
|
|
7
|
+
export declare function registerTeamCommands(program: Command, baseDir: string): void;
|
|
8
|
+
//# sourceMappingURL=team-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-commands.d.ts","sourceRoot":"","sources":["../../src/cli/team-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBzC,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GACd,IAAI,CAmFN"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team CLI Commands — create, list, status, and teardown multi-agent teams.
|
|
3
|
+
*
|
|
4
|
+
* Spec §5.9 "CLI Interface" — team subcommands.
|
|
5
|
+
*/
|
|
6
|
+
import { TeamManager } from '../teams/team-manager.js';
|
|
7
|
+
function parseAgentSpec(spec) {
|
|
8
|
+
const parts = spec.split(':');
|
|
9
|
+
const name = parts[0] ?? 'agent';
|
|
10
|
+
const VALID_PROVIDERS = ['claude', 'gemini'];
|
|
11
|
+
const rawProvider = parts[1] ?? 'claude';
|
|
12
|
+
if (!VALID_PROVIDERS.includes(rawProvider)) {
|
|
13
|
+
throw new Error(`Invalid provider "${rawProvider}". Must be one of: ${VALID_PROVIDERS.join(', ')}`);
|
|
14
|
+
}
|
|
15
|
+
const provider = rawProvider;
|
|
16
|
+
const model = parts[2] ?? 'default';
|
|
17
|
+
return {
|
|
18
|
+
agentId: `${name}@cli`,
|
|
19
|
+
name,
|
|
20
|
+
provider,
|
|
21
|
+
model,
|
|
22
|
+
cwd: process.cwd(),
|
|
23
|
+
capabilities: ['reasoning'],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function registerTeamCommands(program, baseDir) {
|
|
27
|
+
const team = program.command('team').description('Manage agent teams');
|
|
28
|
+
team
|
|
29
|
+
.command('create <name>')
|
|
30
|
+
.description('Create a new team')
|
|
31
|
+
.option('--agents <agents>', 'Comma-separated agent specs (name:provider:model)')
|
|
32
|
+
.option('--persistent', 'Keep team after completion')
|
|
33
|
+
.action(async (name, opts) => {
|
|
34
|
+
const manager = new TeamManager(baseDir);
|
|
35
|
+
const members = opts.agents
|
|
36
|
+
? opts.agents.split(',').map(s => parseAgentSpec(s.trim()))
|
|
37
|
+
: [parseAgentSpec('default:claude:default')];
|
|
38
|
+
const coordinatorId = members[0]?.agentId ?? 'default@cli';
|
|
39
|
+
const config = await manager.createTeam(name, members, coordinatorId, opts.persistent ?? false);
|
|
40
|
+
console.log(`Team "${config.name}" created with ${config.members.length} member(s).`);
|
|
41
|
+
for (const m of config.members) {
|
|
42
|
+
console.log(` - ${m.name} (${m.provider}/${m.model})`);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
team
|
|
46
|
+
.command('list')
|
|
47
|
+
.description('List all teams')
|
|
48
|
+
.action(async () => {
|
|
49
|
+
const manager = new TeamManager(baseDir);
|
|
50
|
+
const teams = await manager.listTeams();
|
|
51
|
+
if (teams.length === 0) {
|
|
52
|
+
console.log('No teams found.');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
for (const t of teams) {
|
|
56
|
+
const memberCount = t.members.length;
|
|
57
|
+
const activeCount = t.members.filter(m => m.isActive).length;
|
|
58
|
+
console.log(` ${t.name} — ${activeCount}/${memberCount} active, created ${t.createdAt}`);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
team
|
|
62
|
+
.command('status <name>')
|
|
63
|
+
.description('Show team status')
|
|
64
|
+
.action(async (name) => {
|
|
65
|
+
const manager = new TeamManager(baseDir);
|
|
66
|
+
try {
|
|
67
|
+
const { team: t, unreadMessages } = await manager.getTeamStatus(name);
|
|
68
|
+
console.log(`Team: ${t.name}`);
|
|
69
|
+
console.log(`Created: ${t.createdAt}`);
|
|
70
|
+
console.log(`Coordinator: ${t.coordinatorId}`);
|
|
71
|
+
console.log(`Persistent: ${t.persistent}`);
|
|
72
|
+
console.log(`Members:`);
|
|
73
|
+
for (const m of t.members) {
|
|
74
|
+
const unread = unreadMessages[m.name] ?? 0;
|
|
75
|
+
const status = m.isActive ? 'active' : 'inactive';
|
|
76
|
+
console.log(` - ${m.name} (${m.provider}/${m.model}) [${status}] ${unread} unread`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
console.error(`Error: ${err.message}`);
|
|
81
|
+
process.exitCode = 1;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
team
|
|
85
|
+
.command('teardown <name>')
|
|
86
|
+
.description('Remove a team')
|
|
87
|
+
.action(async (name) => {
|
|
88
|
+
const manager = new TeamManager(baseDir);
|
|
89
|
+
await manager.teardownTeam(name);
|
|
90
|
+
console.log(`Team "${name}" torn down.`);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=team-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-commands.js","sourceRoot":"","sources":["../../src/cli/team-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default configuration values for Zora.
|
|
3
|
+
* These are applied when config.toml doesn't specify a value.
|
|
4
|
+
* Matches the spec §7 configuration reference and docs/CONFIGURATION.md.
|
|
5
|
+
*/
|
|
6
|
+
import type { ZoraConfig, AgentConfig, RoutingConfig, FailoverConfig, MemoryConfig, SecurityConfig, SteeringConfig, NotificationsConfig, ProviderConfig, McpConfig } from '../types.js';
|
|
7
|
+
export declare const DEFAULT_AGENT: AgentConfig;
|
|
8
|
+
export declare const DEFAULT_ROUTING: RoutingConfig;
|
|
9
|
+
export declare const DEFAULT_FAILOVER: FailoverConfig;
|
|
10
|
+
export declare const DEFAULT_MEMORY: MemoryConfig;
|
|
11
|
+
export declare const DEFAULT_SECURITY: SecurityConfig;
|
|
12
|
+
export declare const DEFAULT_STEERING: SteeringConfig;
|
|
13
|
+
export declare const DEFAULT_NOTIFICATIONS: NotificationsConfig;
|
|
14
|
+
export declare const DEFAULT_MCP: McpConfig;
|
|
15
|
+
export declare const DEFAULT_CONFIG: ZoraConfig;
|
|
16
|
+
/**
|
|
17
|
+
* Validates a provider config entry has all required fields and valid values.
|
|
18
|
+
* Returns an array of error messages (empty = valid).
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateProviderConfig(p: Partial<ProviderConfig>, index: number): string[];
|
|
21
|
+
/**
|
|
22
|
+
* Validates the full ZoraConfig.
|
|
23
|
+
* Returns an array of error messages (empty = valid).
|
|
24
|
+
*/
|
|
25
|
+
export declare function validateConfig(config: ZoraConfig): string[];
|
|
26
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,aAAa,EAAE,WAe3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,aAE7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAQ9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,YAS5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAW9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAa9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,mBAOnC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,SAEzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAU5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB1F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CA2D3D"}
|