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.
Files changed (303) hide show
  1. package/CHANGELOG.md +145 -0
  2. package/LICENSE +21 -0
  3. package/README.md +159 -0
  4. package/dist/cli/audit-commands.d.ts +8 -0
  5. package/dist/cli/audit-commands.d.ts.map +1 -0
  6. package/dist/cli/audit-commands.js +67 -0
  7. package/dist/cli/audit-commands.js.map +1 -0
  8. package/dist/cli/daemon.d.ts +9 -0
  9. package/dist/cli/daemon.d.ts.map +1 -0
  10. package/dist/cli/daemon.js +107 -0
  11. package/dist/cli/daemon.js.map +1 -0
  12. package/dist/cli/doctor.d.ts +21 -0
  13. package/dist/cli/doctor.d.ts.map +1 -0
  14. package/dist/cli/doctor.js +31 -0
  15. package/dist/cli/doctor.js.map +1 -0
  16. package/dist/cli/edit-commands.d.ts +8 -0
  17. package/dist/cli/edit-commands.d.ts.map +1 -0
  18. package/dist/cli/edit-commands.js +46 -0
  19. package/dist/cli/edit-commands.js.map +1 -0
  20. package/dist/cli/index.d.ts +11 -0
  21. package/dist/cli/index.d.ts.map +1 -0
  22. package/dist/cli/index.js +319 -0
  23. package/dist/cli/index.js.map +1 -0
  24. package/dist/cli/init-command.d.ts +30 -0
  25. package/dist/cli/init-command.d.ts.map +1 -0
  26. package/dist/cli/init-command.js +425 -0
  27. package/dist/cli/init-command.js.map +1 -0
  28. package/dist/cli/memory-commands.d.ts +11 -0
  29. package/dist/cli/memory-commands.d.ts.map +1 -0
  30. package/dist/cli/memory-commands.js +57 -0
  31. package/dist/cli/memory-commands.js.map +1 -0
  32. package/dist/cli/presets.d.ts +12 -0
  33. package/dist/cli/presets.d.ts.map +1 -0
  34. package/dist/cli/presets.js +169 -0
  35. package/dist/cli/presets.js.map +1 -0
  36. package/dist/cli/skill-commands.d.ts +10 -0
  37. package/dist/cli/skill-commands.d.ts.map +1 -0
  38. package/dist/cli/skill-commands.js +73 -0
  39. package/dist/cli/skill-commands.js.map +1 -0
  40. package/dist/cli/steer-commands.d.ts +10 -0
  41. package/dist/cli/steer-commands.d.ts.map +1 -0
  42. package/dist/cli/steer-commands.js +92 -0
  43. package/dist/cli/steer-commands.js.map +1 -0
  44. package/dist/cli/team-commands.d.ts +8 -0
  45. package/dist/cli/team-commands.d.ts.map +1 -0
  46. package/dist/cli/team-commands.js +93 -0
  47. package/dist/cli/team-commands.js.map +1 -0
  48. package/dist/config/defaults.d.ts +26 -0
  49. package/dist/config/defaults.d.ts.map +1 -0
  50. package/dist/config/defaults.js +173 -0
  51. package/dist/config/defaults.js.map +1 -0
  52. package/dist/config/index.d.ts +3 -0
  53. package/dist/config/index.d.ts.map +1 -0
  54. package/dist/config/index.js +3 -0
  55. package/dist/config/index.js.map +1 -0
  56. package/dist/config/loader.d.ts +30 -0
  57. package/dist/config/loader.d.ts.map +1 -0
  58. package/dist/config/loader.js +130 -0
  59. package/dist/config/loader.js.map +1 -0
  60. package/dist/config/policy-loader.d.ts +18 -0
  61. package/dist/config/policy-loader.d.ts.map +1 -0
  62. package/dist/config/policy-loader.js +72 -0
  63. package/dist/config/policy-loader.js.map +1 -0
  64. package/dist/dashboard/auth-middleware.d.ts +15 -0
  65. package/dist/dashboard/auth-middleware.d.ts.map +1 -0
  66. package/dist/dashboard/auth-middleware.js +44 -0
  67. package/dist/dashboard/auth-middleware.js.map +1 -0
  68. package/dist/dashboard/frontend/vite.config.d.ts +3 -0
  69. package/dist/dashboard/frontend/vite.config.d.ts.map +1 -0
  70. package/dist/dashboard/frontend/vite.config.js +11 -0
  71. package/dist/dashboard/frontend/vite.config.js.map +1 -0
  72. package/dist/dashboard/server.d.ts +55 -0
  73. package/dist/dashboard/server.d.ts.map +1 -0
  74. package/dist/dashboard/server.js +254 -0
  75. package/dist/dashboard/server.js.map +1 -0
  76. package/dist/index.d.ts +20 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +19 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/memory/category-organizer.d.ts +33 -0
  81. package/dist/memory/category-organizer.d.ts.map +1 -0
  82. package/dist/memory/category-organizer.js +137 -0
  83. package/dist/memory/category-organizer.js.map +1 -0
  84. package/dist/memory/extraction-pipeline.d.ts +22 -0
  85. package/dist/memory/extraction-pipeline.d.ts.map +1 -0
  86. package/dist/memory/extraction-pipeline.js +156 -0
  87. package/dist/memory/extraction-pipeline.js.map +1 -0
  88. package/dist/memory/index.d.ts +7 -0
  89. package/dist/memory/index.d.ts.map +1 -0
  90. package/dist/memory/index.js +7 -0
  91. package/dist/memory/index.js.map +1 -0
  92. package/dist/memory/memory-manager.d.ts +56 -0
  93. package/dist/memory/memory-manager.d.ts.map +1 -0
  94. package/dist/memory/memory-manager.js +198 -0
  95. package/dist/memory/memory-manager.js.map +1 -0
  96. package/dist/memory/memory-types.d.ts +44 -0
  97. package/dist/memory/memory-types.d.ts.map +1 -0
  98. package/dist/memory/memory-types.js +8 -0
  99. package/dist/memory/memory-types.js.map +1 -0
  100. package/dist/memory/salience-scorer.d.ts +19 -0
  101. package/dist/memory/salience-scorer.d.ts.map +1 -0
  102. package/dist/memory/salience-scorer.js +72 -0
  103. package/dist/memory/salience-scorer.js.map +1 -0
  104. package/dist/memory/structured-memory.d.ts +28 -0
  105. package/dist/memory/structured-memory.d.ts.map +1 -0
  106. package/dist/memory/structured-memory.js +140 -0
  107. package/dist/memory/structured-memory.js.map +1 -0
  108. package/dist/orchestrator/auth-monitor.d.ts +28 -0
  109. package/dist/orchestrator/auth-monitor.d.ts.map +1 -0
  110. package/dist/orchestrator/auth-monitor.js +49 -0
  111. package/dist/orchestrator/auth-monitor.js.map +1 -0
  112. package/dist/orchestrator/execution-loop.d.ts +59 -0
  113. package/dist/orchestrator/execution-loop.d.ts.map +1 -0
  114. package/dist/orchestrator/execution-loop.js +94 -0
  115. package/dist/orchestrator/execution-loop.js.map +1 -0
  116. package/dist/orchestrator/failover-controller.d.ts +32 -0
  117. package/dist/orchestrator/failover-controller.d.ts.map +1 -0
  118. package/dist/orchestrator/failover-controller.js +111 -0
  119. package/dist/orchestrator/failover-controller.js.map +1 -0
  120. package/dist/orchestrator/index.d.ts +11 -0
  121. package/dist/orchestrator/index.d.ts.map +1 -0
  122. package/dist/orchestrator/index.js +11 -0
  123. package/dist/orchestrator/index.js.map +1 -0
  124. package/dist/orchestrator/orchestrator.d.ts +99 -0
  125. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  126. package/dist/orchestrator/orchestrator.js +456 -0
  127. package/dist/orchestrator/orchestrator.js.map +1 -0
  128. package/dist/orchestrator/retry-queue.d.ts +39 -0
  129. package/dist/orchestrator/retry-queue.d.ts.map +1 -0
  130. package/dist/orchestrator/retry-queue.js +99 -0
  131. package/dist/orchestrator/retry-queue.js.map +1 -0
  132. package/dist/orchestrator/router.d.ts +49 -0
  133. package/dist/orchestrator/router.d.ts.map +1 -0
  134. package/dist/orchestrator/router.js +167 -0
  135. package/dist/orchestrator/router.js.map +1 -0
  136. package/dist/orchestrator/session-manager.d.ts +39 -0
  137. package/dist/orchestrator/session-manager.d.ts.map +1 -0
  138. package/dist/orchestrator/session-manager.js +117 -0
  139. package/dist/orchestrator/session-manager.js.map +1 -0
  140. package/dist/providers/claude-provider.d.ts +182 -0
  141. package/dist/providers/claude-provider.d.ts.map +1 -0
  142. package/dist/providers/claude-provider.js +443 -0
  143. package/dist/providers/claude-provider.js.map +1 -0
  144. package/dist/providers/gemini-provider.d.ts +46 -0
  145. package/dist/providers/gemini-provider.d.ts.map +1 -0
  146. package/dist/providers/gemini-provider.js +336 -0
  147. package/dist/providers/gemini-provider.js.map +1 -0
  148. package/dist/providers/index.d.ts +10 -0
  149. package/dist/providers/index.d.ts.map +1 -0
  150. package/dist/providers/index.js +10 -0
  151. package/dist/providers/index.js.map +1 -0
  152. package/dist/providers/ollama-provider.d.ts +61 -0
  153. package/dist/providers/ollama-provider.d.ts.map +1 -0
  154. package/dist/providers/ollama-provider.js +319 -0
  155. package/dist/providers/ollama-provider.js.map +1 -0
  156. package/dist/routines/event-triggers.d.ts +34 -0
  157. package/dist/routines/event-triggers.d.ts.map +1 -0
  158. package/dist/routines/event-triggers.js +104 -0
  159. package/dist/routines/event-triggers.js.map +1 -0
  160. package/dist/routines/heartbeat.d.ts +35 -0
  161. package/dist/routines/heartbeat.d.ts.map +1 -0
  162. package/dist/routines/heartbeat.js +93 -0
  163. package/dist/routines/heartbeat.js.map +1 -0
  164. package/dist/routines/index.d.ts +7 -0
  165. package/dist/routines/index.d.ts.map +1 -0
  166. package/dist/routines/index.js +7 -0
  167. package/dist/routines/index.js.map +1 -0
  168. package/dist/routines/routine-manager.d.ts +62 -0
  169. package/dist/routines/routine-manager.d.ts.map +1 -0
  170. package/dist/routines/routine-manager.js +148 -0
  171. package/dist/routines/routine-manager.js.map +1 -0
  172. package/dist/security/audit-logger.d.ts +55 -0
  173. package/dist/security/audit-logger.d.ts.map +1 -0
  174. package/dist/security/audit-logger.js +252 -0
  175. package/dist/security/audit-logger.js.map +1 -0
  176. package/dist/security/capability-tokens.d.ts +30 -0
  177. package/dist/security/capability-tokens.d.ts.map +1 -0
  178. package/dist/security/capability-tokens.js +110 -0
  179. package/dist/security/capability-tokens.js.map +1 -0
  180. package/dist/security/index.d.ts +18 -0
  181. package/dist/security/index.d.ts.map +1 -0
  182. package/dist/security/index.js +12 -0
  183. package/dist/security/index.js.map +1 -0
  184. package/dist/security/integrity-guardian.d.ts +43 -0
  185. package/dist/security/integrity-guardian.d.ts.map +1 -0
  186. package/dist/security/integrity-guardian.js +103 -0
  187. package/dist/security/integrity-guardian.js.map +1 -0
  188. package/dist/security/intent-capsule.d.ts +52 -0
  189. package/dist/security/intent-capsule.d.ts.map +1 -0
  190. package/dist/security/intent-capsule.js +157 -0
  191. package/dist/security/intent-capsule.js.map +1 -0
  192. package/dist/security/leak-detector.d.ts +26 -0
  193. package/dist/security/leak-detector.d.ts.map +1 -0
  194. package/dist/security/leak-detector.js +75 -0
  195. package/dist/security/leak-detector.js.map +1 -0
  196. package/dist/security/policy-engine.d.ts +188 -0
  197. package/dist/security/policy-engine.d.ts.map +1 -0
  198. package/dist/security/policy-engine.js +799 -0
  199. package/dist/security/policy-engine.js.map +1 -0
  200. package/dist/security/prompt-defense.d.ts +30 -0
  201. package/dist/security/prompt-defense.d.ts.map +1 -0
  202. package/dist/security/prompt-defense.js +164 -0
  203. package/dist/security/prompt-defense.js.map +1 -0
  204. package/dist/security/secrets-manager.d.ts +47 -0
  205. package/dist/security/secrets-manager.d.ts.map +1 -0
  206. package/dist/security/secrets-manager.js +132 -0
  207. package/dist/security/secrets-manager.js.map +1 -0
  208. package/dist/security/security-types.d.ts +84 -0
  209. package/dist/security/security-types.d.ts.map +1 -0
  210. package/dist/security/security-types.js +8 -0
  211. package/dist/security/security-types.js.map +1 -0
  212. package/dist/skills/index.d.ts +5 -0
  213. package/dist/skills/index.d.ts.map +1 -0
  214. package/dist/skills/index.js +5 -0
  215. package/dist/skills/index.js.map +1 -0
  216. package/dist/skills/skill-loader.d.ts +25 -0
  217. package/dist/skills/skill-loader.d.ts.map +1 -0
  218. package/dist/skills/skill-loader.js +64 -0
  219. package/dist/skills/skill-loader.js.map +1 -0
  220. package/dist/steering/flag-manager.d.ts +52 -0
  221. package/dist/steering/flag-manager.d.ts.map +1 -0
  222. package/dist/steering/flag-manager.js +160 -0
  223. package/dist/steering/flag-manager.js.map +1 -0
  224. package/dist/steering/index.d.ts +8 -0
  225. package/dist/steering/index.d.ts.map +1 -0
  226. package/dist/steering/index.js +8 -0
  227. package/dist/steering/index.js.map +1 -0
  228. package/dist/steering/steer-injector.d.ts +15 -0
  229. package/dist/steering/steer-injector.d.ts.map +1 -0
  230. package/dist/steering/steer-injector.js +41 -0
  231. package/dist/steering/steer-injector.js.map +1 -0
  232. package/dist/steering/steering-manager.d.ts +33 -0
  233. package/dist/steering/steering-manager.d.ts.map +1 -0
  234. package/dist/steering/steering-manager.js +79 -0
  235. package/dist/steering/steering-manager.js.map +1 -0
  236. package/dist/steering/telegram-gateway.d.ts +27 -0
  237. package/dist/steering/telegram-gateway.d.ts.map +1 -0
  238. package/dist/steering/telegram-gateway.js +89 -0
  239. package/dist/steering/telegram-gateway.js.map +1 -0
  240. package/dist/steering/types.d.ts +54 -0
  241. package/dist/steering/types.d.ts.map +1 -0
  242. package/dist/steering/types.js +11 -0
  243. package/dist/steering/types.js.map +1 -0
  244. package/dist/teams/agent-loader.d.ts +38 -0
  245. package/dist/teams/agent-loader.d.ts.map +1 -0
  246. package/dist/teams/agent-loader.js +85 -0
  247. package/dist/teams/agent-loader.js.map +1 -0
  248. package/dist/teams/bridge-watchdog.d.ts +44 -0
  249. package/dist/teams/bridge-watchdog.d.ts.map +1 -0
  250. package/dist/teams/bridge-watchdog.js +118 -0
  251. package/dist/teams/bridge-watchdog.js.map +1 -0
  252. package/dist/teams/gemini-bridge.d.ts +43 -0
  253. package/dist/teams/gemini-bridge.d.ts.map +1 -0
  254. package/dist/teams/gemini-bridge.js +132 -0
  255. package/dist/teams/gemini-bridge.js.map +1 -0
  256. package/dist/teams/index.d.ts +11 -0
  257. package/dist/teams/index.d.ts.map +1 -0
  258. package/dist/teams/index.js +11 -0
  259. package/dist/teams/index.js.map +1 -0
  260. package/dist/teams/mailbox.d.ts +33 -0
  261. package/dist/teams/mailbox.d.ts.map +1 -0
  262. package/dist/teams/mailbox.js +97 -0
  263. package/dist/teams/mailbox.js.map +1 -0
  264. package/dist/teams/pr-lifecycle.d.ts +47 -0
  265. package/dist/teams/pr-lifecycle.d.ts.map +1 -0
  266. package/dist/teams/pr-lifecycle.js +83 -0
  267. package/dist/teams/pr-lifecycle.js.map +1 -0
  268. package/dist/teams/team-manager.d.ts +57 -0
  269. package/dist/teams/team-manager.d.ts.map +1 -0
  270. package/dist/teams/team-manager.js +170 -0
  271. package/dist/teams/team-manager.js.map +1 -0
  272. package/dist/teams/team-types.d.ts +35 -0
  273. package/dist/teams/team-types.d.ts.map +1 -0
  274. package/dist/teams/team-types.js +9 -0
  275. package/dist/teams/team-types.js.map +1 -0
  276. package/dist/tools/index.d.ts +8 -0
  277. package/dist/tools/index.d.ts.map +1 -0
  278. package/dist/tools/index.js +8 -0
  279. package/dist/tools/index.js.map +1 -0
  280. package/dist/tools/notifications.d.ts +13 -0
  281. package/dist/tools/notifications.d.ts.map +1 -0
  282. package/dist/tools/notifications.js +30 -0
  283. package/dist/tools/notifications.js.map +1 -0
  284. package/dist/types.d.ts +311 -0
  285. package/dist/types.d.ts.map +1 -0
  286. package/dist/types.js +8 -0
  287. package/dist/types.js.map +1 -0
  288. package/dist/utils/fs.d.ts +9 -0
  289. package/dist/utils/fs.d.ts.map +1 -0
  290. package/dist/utils/fs.js +31 -0
  291. package/dist/utils/fs.js.map +1 -0
  292. package/dist/utils/logger.d.ts +43 -0
  293. package/dist/utils/logger.d.ts.map +1 -0
  294. package/dist/utils/logger.js +139 -0
  295. package/dist/utils/logger.js.map +1 -0
  296. package/dist/wasm/wasmtime-spike.d.ts +19 -0
  297. package/dist/wasm/wasmtime-spike.d.ts.map +1 -0
  298. package/dist/wasm/wasmtime-spike.js +39 -0
  299. package/dist/wasm/wasmtime-spike.js.map +1 -0
  300. package/examples/routines/content-pipeline.toml +20 -0
  301. package/examples/routines/job-search.toml +19 -0
  302. package/examples/routines/repo-cleanup.toml +14 -0
  303. 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"}