zora-agent 0.10.0 → 0.10.2

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 (166) hide show
  1. package/README.md +171 -65
  2. package/dist/cli/daemon.js +1 -0
  3. package/dist/cli/daemon.js.map +1 -1
  4. package/dist/cli/index.js +27 -0
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/secret-commands.d.ts +16 -0
  7. package/dist/cli/secret-commands.d.ts.map +1 -0
  8. package/dist/cli/secret-commands.js +87 -0
  9. package/dist/cli/secret-commands.js.map +1 -0
  10. package/dist/cli/skill-commands.d.ts.map +1 -1
  11. package/dist/cli/skill-commands.js +75 -0
  12. package/dist/cli/skill-commands.js.map +1 -1
  13. package/dist/cli/subagent-commands.d.ts +13 -0
  14. package/dist/cli/subagent-commands.d.ts.map +1 -0
  15. package/dist/cli/subagent-commands.js +80 -0
  16. package/dist/cli/subagent-commands.js.map +1 -0
  17. package/dist/config/defaults.d.ts +6 -0
  18. package/dist/config/defaults.d.ts.map +1 -1
  19. package/dist/config/defaults.js +6 -0
  20. package/dist/config/defaults.js.map +1 -1
  21. package/dist/dashboard/cost-tracker.d.ts +40 -0
  22. package/dist/dashboard/cost-tracker.d.ts.map +1 -0
  23. package/dist/dashboard/cost-tracker.js +63 -0
  24. package/dist/dashboard/cost-tracker.js.map +1 -0
  25. package/dist/dashboard/frontend/dist/assets/{index-DSXaCp9r.js → index-Bi0V-1ti.js} +83 -83
  26. package/dist/dashboard/frontend/dist/assets/index-SQqtXVeO.css +1 -0
  27. package/dist/dashboard/frontend/dist/index.html +2 -2
  28. package/dist/dashboard/server.d.ts +5 -0
  29. package/dist/dashboard/server.d.ts.map +1 -1
  30. package/dist/dashboard/server.js +17 -0
  31. package/dist/dashboard/server.js.map +1 -1
  32. package/dist/hooks/built-in/audit-log.d.ts +13 -0
  33. package/dist/hooks/built-in/audit-log.d.ts.map +1 -0
  34. package/dist/hooks/built-in/audit-log.js +48 -0
  35. package/dist/hooks/built-in/audit-log.js.map +1 -0
  36. package/dist/hooks/built-in/rate-limit.d.ts +18 -0
  37. package/dist/hooks/built-in/rate-limit.d.ts.map +1 -0
  38. package/dist/hooks/built-in/rate-limit.js +30 -0
  39. package/dist/hooks/built-in/rate-limit.js.map +1 -0
  40. package/dist/hooks/built-in/secret-redact.d.ts +7 -0
  41. package/dist/hooks/built-in/secret-redact.d.ts.map +1 -0
  42. package/dist/hooks/built-in/secret-redact.js +33 -0
  43. package/dist/hooks/built-in/secret-redact.js.map +1 -0
  44. package/dist/hooks/built-in/shell-safety.d.ts +7 -0
  45. package/dist/hooks/built-in/shell-safety.d.ts.map +1 -0
  46. package/dist/hooks/built-in/shell-safety.js +34 -0
  47. package/dist/hooks/built-in/shell-safety.js.map +1 -0
  48. package/dist/hooks/index.d.ts +5 -0
  49. package/dist/hooks/index.d.ts.map +1 -1
  50. package/dist/hooks/index.js +5 -0
  51. package/dist/hooks/index.js.map +1 -1
  52. package/dist/hooks/tool-hook-runner.d.ts +36 -0
  53. package/dist/hooks/tool-hook-runner.d.ts.map +1 -0
  54. package/dist/hooks/tool-hook-runner.js +49 -0
  55. package/dist/hooks/tool-hook-runner.js.map +1 -0
  56. package/dist/lib/error-normalizer.d.ts +53 -0
  57. package/dist/lib/error-normalizer.d.ts.map +1 -0
  58. package/dist/lib/error-normalizer.js +128 -0
  59. package/dist/lib/error-normalizer.js.map +1 -0
  60. package/dist/memory/context-compressor.d.ts +3 -1
  61. package/dist/memory/context-compressor.d.ts.map +1 -1
  62. package/dist/memory/context-compressor.js +18 -3
  63. package/dist/memory/context-compressor.js.map +1 -1
  64. package/dist/memory/plan-cache.d.ts +27 -0
  65. package/dist/memory/plan-cache.d.ts.map +1 -0
  66. package/dist/memory/plan-cache.js +91 -0
  67. package/dist/memory/plan-cache.js.map +1 -0
  68. package/dist/orchestrator/code-tool-runner.d.ts +41 -0
  69. package/dist/orchestrator/code-tool-runner.d.ts.map +1 -0
  70. package/dist/orchestrator/code-tool-runner.js +375 -0
  71. package/dist/orchestrator/code-tool-runner.js.map +1 -0
  72. package/dist/orchestrator/error-pattern-detector.d.ts +54 -0
  73. package/dist/orchestrator/error-pattern-detector.d.ts.map +1 -0
  74. package/dist/orchestrator/error-pattern-detector.js +87 -0
  75. package/dist/orchestrator/error-pattern-detector.js.map +1 -0
  76. package/dist/orchestrator/execution-planner.d.ts +33 -0
  77. package/dist/orchestrator/execution-planner.d.ts.map +1 -0
  78. package/dist/orchestrator/execution-planner.js +67 -0
  79. package/dist/orchestrator/execution-planner.js.map +1 -0
  80. package/dist/orchestrator/orchestrator.d.ts +77 -0
  81. package/dist/orchestrator/orchestrator.d.ts.map +1 -1
  82. package/dist/orchestrator/orchestrator.js +595 -29
  83. package/dist/orchestrator/orchestrator.js.map +1 -1
  84. package/dist/orchestrator/retry-queue.d.ts +7 -1
  85. package/dist/orchestrator/retry-queue.d.ts.map +1 -1
  86. package/dist/orchestrator/retry-queue.js +10 -4
  87. package/dist/orchestrator/retry-queue.js.map +1 -1
  88. package/dist/orchestrator/step-classifier.d.ts +26 -0
  89. package/dist/orchestrator/step-classifier.d.ts.map +1 -0
  90. package/dist/orchestrator/step-classifier.js +77 -0
  91. package/dist/orchestrator/step-classifier.js.map +1 -0
  92. package/dist/orchestrator/tlci-dispatcher.d.ts +47 -0
  93. package/dist/orchestrator/tlci-dispatcher.d.ts.map +1 -0
  94. package/dist/orchestrator/tlci-dispatcher.js +116 -0
  95. package/dist/orchestrator/tlci-dispatcher.js.map +1 -0
  96. package/dist/routines/heartbeat.d.ts.map +1 -1
  97. package/dist/routines/heartbeat.js +3 -1
  98. package/dist/routines/heartbeat.js.map +1 -1
  99. package/dist/routines/routine-manager.d.ts.map +1 -1
  100. package/dist/routines/routine-manager.js +3 -1
  101. package/dist/routines/routine-manager.js.map +1 -1
  102. package/dist/security/intent-capsule.d.ts +19 -0
  103. package/dist/security/intent-capsule.d.ts.map +1 -1
  104. package/dist/security/intent-capsule.js +84 -1
  105. package/dist/security/intent-capsule.js.map +1 -1
  106. package/dist/security/policy-engine.d.ts +1 -0
  107. package/dist/security/policy-engine.d.ts.map +1 -1
  108. package/dist/security/policy-engine.js +22 -1
  109. package/dist/security/policy-engine.js.map +1 -1
  110. package/dist/services/negative-cache.d.ts +67 -0
  111. package/dist/services/negative-cache.d.ts.map +1 -0
  112. package/dist/services/negative-cache.js +164 -0
  113. package/dist/services/negative-cache.js.map +1 -0
  114. package/dist/skills/skill-auditor.d.ts +36 -0
  115. package/dist/skills/skill-auditor.d.ts.map +1 -0
  116. package/dist/skills/skill-auditor.js +89 -0
  117. package/dist/skills/skill-auditor.js.map +1 -0
  118. package/dist/skills/skill-installer.d.ts +41 -0
  119. package/dist/skills/skill-installer.d.ts.map +1 -0
  120. package/dist/skills/skill-installer.js +141 -0
  121. package/dist/skills/skill-installer.js.map +1 -0
  122. package/dist/skills/skill-scanner.d.ts +30 -0
  123. package/dist/skills/skill-scanner.d.ts.map +1 -0
  124. package/dist/skills/skill-scanner.js +249 -0
  125. package/dist/skills/skill-scanner.js.map +1 -0
  126. package/dist/tools/index.d.ts +2 -0
  127. package/dist/tools/index.d.ts.map +1 -1
  128. package/dist/tools/index.js +2 -0
  129. package/dist/tools/index.js.map +1 -1
  130. package/dist/tools/planning-tool.d.ts +95 -0
  131. package/dist/tools/planning-tool.d.ts.map +1 -0
  132. package/dist/tools/planning-tool.js +117 -0
  133. package/dist/tools/planning-tool.js.map +1 -0
  134. package/dist/tools/skill-tool.d.ts +94 -0
  135. package/dist/tools/skill-tool.d.ts.map +1 -0
  136. package/dist/tools/skill-tool.js +202 -0
  137. package/dist/tools/skill-tool.js.map +1 -0
  138. package/dist/tools/subagent-tool.d.ts +11 -0
  139. package/dist/tools/subagent-tool.d.ts.map +1 -0
  140. package/dist/tools/subagent-tool.js +87 -0
  141. package/dist/tools/subagent-tool.js.map +1 -0
  142. package/dist/types.d.ts +22 -0
  143. package/dist/types.d.ts.map +1 -1
  144. package/dist/utils/args.d.ts +5 -0
  145. package/dist/utils/args.d.ts.map +1 -0
  146. package/dist/utils/args.js +20 -0
  147. package/dist/utils/args.js.map +1 -0
  148. package/package.json +4 -1
  149. package/dist/dashboard/frontend/dist/assets/index-2FaDr6iS.js +0 -277
  150. package/dist/dashboard/frontend/dist/assets/index-B9-KXW14.css +0 -1
  151. package/dist/dashboard/frontend/dist/assets/index-BMxbyTer.css +0 -1
  152. package/dist/dashboard/frontend/dist/assets/index-BXUfB9iR.js +0 -253
  153. package/dist/dashboard/frontend/dist/assets/index-BcOGj1EF.css +0 -1
  154. package/dist/dashboard/frontend/dist/assets/index-BtiFO9YN.js +0 -261
  155. package/dist/dashboard/frontend/dist/assets/index-CQmpMTLW.js +0 -253
  156. package/dist/dashboard/frontend/dist/assets/index-Cfjy5acU.css +0 -1
  157. package/dist/dashboard/frontend/dist/assets/index-D41hcjgc.js +0 -253
  158. package/dist/dashboard/frontend/dist/assets/index-D83BawFd.css +0 -1
  159. package/dist/dashboard/frontend/dist/assets/index-DAODjoxu.css +0 -1
  160. package/dist/dashboard/frontend/dist/assets/index-DB-Eu5oV.js +0 -253
  161. package/dist/dashboard/frontend/dist/assets/index-W0VVEDu6.js +0 -253
  162. package/dist/dashboard/frontend/dist/assets/index-aK9PWl6w.js +0 -253
  163. package/dist/dashboard/frontend/vite.config.d.ts +0 -3
  164. package/dist/dashboard/frontend/vite.config.d.ts.map +0 -1
  165. package/dist/dashboard/frontend/vite.config.js +0 -11
  166. package/dist/dashboard/frontend/vite.config.js.map +0 -1
@@ -9,12 +9,38 @@ import os from 'node:os';
9
9
  import path from 'node:path';
10
10
  import fs from 'node:fs/promises';
11
11
  import { loadSkills } from '../skills/skill-loader.js';
12
+ import { installSkill } from '../skills/skill-installer.js';
13
+ import { auditInstalledSkills } from '../skills/skill-auditor.js';
12
14
  import { createLogger } from '../utils/logger.js';
13
15
  const log = createLogger('skill-commands');
14
16
  export function registerSkillCommands(program) {
15
17
  const skill = program
16
18
  .command('skill')
17
19
  .description('List and inspect available Claude Code skills');
20
+ skill
21
+ .command('audit')
22
+ .description('Scan all installed skills for security issues (catches manually installed skills)')
23
+ .option('--threshold <level>', 'Report findings at this severity and above: critical|high|medium|low (default: high)', 'high')
24
+ .option('--fail-fast', 'Stop on first critical finding')
25
+ .action(async (opts) => {
26
+ const validThresholds = ['critical', 'high', 'medium', 'low'];
27
+ if (!validThresholds.includes(opts.threshold)) {
28
+ console.error(`Invalid threshold "${opts.threshold}". Use: ${validThresholds.join(', ')}`);
29
+ process.exit(1);
30
+ }
31
+ const threshold = opts.threshold;
32
+ console.log(`Auditing installed skills (threshold: ${threshold})...\n`);
33
+ const report = await auditInstalledSkills({
34
+ severityThreshold: threshold,
35
+ failFast: opts.failFast,
36
+ });
37
+ console.log(report.summary);
38
+ if (!report.clean) {
39
+ console.log('\nTo remediate: remove the flagged skill directory from ~/.claude/skills/<name>/,');
40
+ console.log('or reinstall via "zora-agent skill install <file.skill>" to get a verified version.');
41
+ process.exit(1);
42
+ }
43
+ });
18
44
  skill
19
45
  .command('list')
20
46
  .description('List all available skills from ~/.claude/skills/')
@@ -32,6 +58,55 @@ export function registerSkillCommands(program) {
32
58
  console.log(` ${paddedName}${s.description}`);
33
59
  }
34
60
  });
61
+ skill
62
+ .command('install')
63
+ .description('Install a skill from a .skill or .zip package')
64
+ .argument('<file>', 'Path to .skill or .zip file')
65
+ .option('--project', 'Install to .zora/skills/ (project-local) instead of ~/.claude/skills/ (global)')
66
+ .option('--force', 'Install despite security findings')
67
+ .option('--dry-run', 'Scan only — do not install')
68
+ .option('--threshold <level>', 'Block at this severity and above: critical|high|medium|low (default: high)', 'high')
69
+ .action(async (file, opts) => {
70
+ const absFile = path.resolve(file);
71
+ try {
72
+ await fs.access(absFile);
73
+ }
74
+ catch {
75
+ console.error(`File not found: ${absFile}`);
76
+ process.exit(1);
77
+ }
78
+ const threshold = opts.threshold;
79
+ const validThresholds = ['critical', 'high', 'medium', 'low'];
80
+ if (!validThresholds.includes(threshold)) {
81
+ console.error(`Invalid threshold "${threshold}". Use: ${validThresholds.join(', ')}`);
82
+ process.exit(1);
83
+ }
84
+ console.log(`Scanning ${path.basename(absFile)}...`);
85
+ try {
86
+ const result = await installSkill(absFile, {
87
+ target: opts.project ? 'project' : 'global',
88
+ severityThreshold: threshold,
89
+ force: opts.force,
90
+ dryRun: opts.dryRun,
91
+ });
92
+ console.log(result.report);
93
+ if (result.installed) {
94
+ console.log(`\n✅ Installed: ${result.skillName}`);
95
+ console.log(` Path: ${result.installPath}`);
96
+ if (!result.scanPassed) {
97
+ console.log(` ⚠️ Installed with findings (--force)`);
98
+ }
99
+ }
100
+ else if (result.blockedBy) {
101
+ console.error(`\n❌ Install blocked: ${result.blockedBy}`);
102
+ process.exit(1);
103
+ }
104
+ }
105
+ catch (err) {
106
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
107
+ process.exit(1);
108
+ }
109
+ });
35
110
  skill
36
111
  .command('info')
37
112
  .description('Show details about a specific skill')
@@ -1 +1 @@
1
- {"version":3,"file":"skill-commands.js","sourceRoot":"","sources":["../../src/cli/skill-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-commands.js","sourceRoot":"","sources":["../../src/cli/skill-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Subagent CLI Commands — List and inspect available subagent definitions.
3
+ *
4
+ * Subagents live at .zora/subagents/<name>/SUBAGENT.md (project-local)
5
+ * or ~/.zora/subagents/<name>/SUBAGENT.md (global).
6
+ *
7
+ * Commands:
8
+ * zora-agent subagent list — list all available subagents
9
+ * zora-agent subagent info <name> — show full details for a named subagent
10
+ */
11
+ import type { Command } from 'commander';
12
+ export declare function registerSubagentCommands(program: Command): void;
13
+ //# sourceMappingURL=subagent-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-commands.d.ts","sourceRoot":"","sources":["../../src/cli/subagent-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuE/D"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Subagent CLI Commands — List and inspect available subagent definitions.
3
+ *
4
+ * Subagents live at .zora/subagents/<name>/SUBAGENT.md (project-local)
5
+ * or ~/.zora/subagents/<name>/SUBAGENT.md (global).
6
+ *
7
+ * Commands:
8
+ * zora-agent subagent list — list all available subagents
9
+ * zora-agent subagent info <name> — show full details for a named subagent
10
+ */
11
+ import { loadSubagents } from '../skills/subagent-loader.js';
12
+ import { createLogger } from '../utils/logger.js';
13
+ const log = createLogger('subagent-commands');
14
+ export function registerSubagentCommands(program) {
15
+ const subagent = program
16
+ .command('subagent')
17
+ .description('List and inspect available subagent definitions');
18
+ subagent
19
+ .command('list')
20
+ .description('List all available subagents from .zora/subagents/ and ~/.zora/subagents/')
21
+ .action(async () => {
22
+ const subagents = await loadSubagents();
23
+ if (subagents.length === 0) {
24
+ console.log('No subagents defined.');
25
+ console.log('Create .zora/subagents/<name>/SUBAGENT.md to define a project-local subagent,');
26
+ console.log('or ~/.zora/subagents/<name>/SUBAGENT.md for a global subagent.');
27
+ return;
28
+ }
29
+ console.log(`Found ${subagents.length} subagent(s):\n`);
30
+ const maxNameLen = Math.max(...subagents.map(s => s.name.length));
31
+ for (const s of subagents) {
32
+ const paddedName = s.name.padEnd(maxNameLen + 2);
33
+ const toolCount = s.allowedTools.length;
34
+ const toolLabel = toolCount === 0 ? '(all tools)' : `${toolCount} tool(s)`;
35
+ console.log(` ${paddedName}${s.description} [${s.layer}, ${toolLabel}]`);
36
+ }
37
+ });
38
+ subagent
39
+ .command('info')
40
+ .description('Show full details for a specific subagent')
41
+ .argument('<name>', 'Subagent name (directory name in .zora/subagents/<name>/)')
42
+ .action(async (name) => {
43
+ const subagents = await loadSubagents();
44
+ const found = subagents.find(s => s.name === name);
45
+ if (!found) {
46
+ log.error({ name }, 'Subagent not found');
47
+ const similar = subagents.filter(s => s.name.includes(name));
48
+ if (similar.length > 0) {
49
+ console.error(`Did you mean one of: ${similar.map(s => s.name).join(', ')}?`);
50
+ }
51
+ else if (subagents.length > 0) {
52
+ console.error(`Available subagents: ${subagents.map(s => s.name).join(', ')}`);
53
+ }
54
+ else {
55
+ console.error('No subagents are currently defined.');
56
+ }
57
+ process.exit(1);
58
+ }
59
+ console.log(`Name: ${found.name}`);
60
+ console.log(`Description: ${found.description}`);
61
+ console.log(`Layer: ${found.layer}`);
62
+ console.log(`Path: ${found.path}`);
63
+ if (found.allowedTools.length > 0) {
64
+ console.log(`Allowed tools (${found.allowedTools.length}):`);
65
+ for (const tool of found.allowedTools) {
66
+ console.log(` - ${tool}`);
67
+ }
68
+ }
69
+ else {
70
+ console.log('Allowed tools: (all tools — no restriction declared)');
71
+ }
72
+ if (found.systemPrompt) {
73
+ const lines = found.systemPrompt.split('\n');
74
+ const preview = lines.slice(0, 8).join('\n').trim();
75
+ const truncated = lines.length > 8 ? `\n ... (${lines.length - 8} more lines)` : '';
76
+ console.log(`\nSystem prompt preview:\n ${preview.split('\n').join('\n ')}${truncated}`);
77
+ }
78
+ });
79
+ }
80
+ //# sourceMappingURL=subagent-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-commands.js","sourceRoot":"","sources":["../../src/cli/subagent-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAE9C,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAElE,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2EAA2E,CAAC;SACxF,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAC;QAExC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;YAC7F,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAElE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;YACxC,MAAM,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,UAAU,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CAAC,QAAQ,EAAE,2DAA2D,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChF,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,wBAAwB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3C,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;YAC7D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -9,6 +9,12 @@ export declare const DEFAULT_ROUTING: RoutingConfig;
9
9
  export declare const DEFAULT_FAILOVER: FailoverConfig;
10
10
  export declare const DEFAULT_MEMORY: MemoryConfig;
11
11
  export declare const DEFAULT_SECURITY: SecurityConfig;
12
+ /**
13
+ * Default drift blocking mode for ZoraPolicy.
14
+ * 'strict' blocks destructive actions (write_file/edit_file/shell_exec/shell_exec_destructive/git_push/unknown) on drift.
15
+ * 'advisory' logs only; 'paranoid' blocks all drifting actions.
16
+ */
17
+ export declare const DEFAULT_DRIFT_BLOCKING_MODE: "strict";
12
18
  export declare const DEFAULT_STEERING: SteeringConfig;
13
19
  export declare const DEFAULT_NOTIFICATIONS: NotificationsConfig;
14
20
  export declare const DEFAULT_MCP: McpConfig;
@@ -1 +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,YAkB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAW9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAc9B,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"}
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,YAkB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAW9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,UAAiE,CAAC;AAE1G,eAAO,MAAM,gBAAgB,EAAE,cAc9B,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"}
@@ -62,6 +62,12 @@ export const DEFAULT_SECURITY = {
62
62
  sanitize_untrusted_content: true,
63
63
  jit_secret_decryption: true,
64
64
  };
65
+ /**
66
+ * Default drift blocking mode for ZoraPolicy.
67
+ * 'strict' blocks destructive actions (write_file/edit_file/shell_exec/shell_exec_destructive/git_push/unknown) on drift.
68
+ * 'advisory' logs only; 'paranoid' blocks all drifting actions.
69
+ */
70
+ export const DEFAULT_DRIFT_BLOCKING_MODE = 'strict';
65
71
  export const DEFAULT_STEERING = {
66
72
  enabled: true,
67
73
  poll_interval: '5s',
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * CostTracker — Aggregates TLCI metrics for the /api/tlci-stats dashboard endpoint.
3
+ *
4
+ * Daily totals are tracked separately from the rolling 100-plan window so stats remain
5
+ * accurate even when more than 100 plans execute in a single day.
6
+ */
7
+ import { PlanCache } from '../memory/plan-cache.js';
8
+ import type { ExecutionPlan } from '../orchestrator/execution-planner.js';
9
+ export interface CostTrackerSnapshot {
10
+ todayStepsByTier: {
11
+ code: number;
12
+ slm: number;
13
+ frontier: number;
14
+ };
15
+ todaySavingsUSD: number;
16
+ todayCostUSD: number;
17
+ last100StepsTierDistribution: {
18
+ code: number;
19
+ slm: number;
20
+ frontier: number;
21
+ };
22
+ planCacheHitRate: number;
23
+ allTimeSavingsUSD: number;
24
+ allTimeExecutions: number;
25
+ vsAllLLMMessage: string;
26
+ }
27
+ export declare class CostTracker {
28
+ private readonly _planCache;
29
+ private readonly _recentPlans;
30
+ private _planRequests;
31
+ private _planCacheHits;
32
+ private _todayStart;
33
+ private _dailyStepsByTier;
34
+ private _dailySavingsUSD;
35
+ private _dailyCostUSD;
36
+ constructor(_planCache: PlanCache);
37
+ recordPlanRequest(cacheHit: boolean, plan: ExecutionPlan): void;
38
+ getSnapshot(): Promise<CostTrackerSnapshot>;
39
+ }
40
+ //# sourceMappingURL=cost-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../src/dashboard/cost-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,WAAW;IAYV,OAAO,CAAC,QAAQ,CAAC,UAAU;IAVvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAK;gBAEG,UAAU,EAAE,SAAS;IAElD,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAwBzD,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAwBlD"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * CostTracker — Aggregates TLCI metrics for the /api/tlci-stats dashboard endpoint.
3
+ *
4
+ * Daily totals are tracked separately from the rolling 100-plan window so stats remain
5
+ * accurate even when more than 100 plans execute in a single day.
6
+ */
7
+ export class CostTracker {
8
+ _planCache;
9
+ // Rolling window for tier-distribution chart (last 100 plans)
10
+ _recentPlans = [];
11
+ _planRequests = 0;
12
+ _planCacheHits = 0;
13
+ // Daily accumulators — reset at midnight, tracks all plans regardless of window size
14
+ _todayStart = new Date().setHours(0, 0, 0, 0);
15
+ _dailyStepsByTier = { code: 0, slm: 0, frontier: 0 };
16
+ _dailySavingsUSD = 0;
17
+ _dailyCostUSD = 0;
18
+ constructor(_planCache) {
19
+ this._planCache = _planCache;
20
+ }
21
+ recordPlanRequest(cacheHit, plan) {
22
+ this._planRequests++;
23
+ if (cacheHit)
24
+ this._planCacheHits++;
25
+ // Roll over daily counters if the date changed
26
+ const today = new Date().setHours(0, 0, 0, 0);
27
+ if (today !== this._todayStart) {
28
+ this._todayStart = today;
29
+ this._dailyStepsByTier = { code: 0, slm: 0, frontier: 0 };
30
+ this._dailySavingsUSD = 0;
31
+ this._dailyCostUSD = 0;
32
+ }
33
+ this._dailyStepsByTier.code += plan.tierBreakdown.code;
34
+ this._dailyStepsByTier.slm += plan.tierBreakdown.slm;
35
+ this._dailyStepsByTier.frontier += plan.tierBreakdown.frontier;
36
+ this._dailySavingsUSD += plan.costComparison.savingsUSD;
37
+ this._dailyCostUSD += plan.costComparison.tlciEstimate;
38
+ // Rolling window for the distribution chart
39
+ this._recentPlans.push(plan);
40
+ if (this._recentPlans.length > 100)
41
+ this._recentPlans.shift();
42
+ }
43
+ async getSnapshot() {
44
+ const cacheStats = await this._planCache.getStats();
45
+ const last100StepsTierDistribution = this._recentPlans.slice(-100).reduce((acc, p) => {
46
+ acc.code += p.tierBreakdown.code;
47
+ acc.slm += p.tierBreakdown.slm;
48
+ acc.frontier += p.tierBreakdown.frontier;
49
+ return acc;
50
+ }, { code: 0, slm: 0, frontier: 0 });
51
+ return {
52
+ todayStepsByTier: { ...this._dailyStepsByTier },
53
+ todaySavingsUSD: this._dailySavingsUSD,
54
+ todayCostUSD: this._dailyCostUSD,
55
+ last100StepsTierDistribution,
56
+ planCacheHitRate: this._planRequests > 0 ? this._planCacheHits / this._planRequests : 0,
57
+ allTimeSavingsUSD: cacheStats.totalSavingsUSD,
58
+ allTimeExecutions: cacheStats.totalExecutions,
59
+ vsAllLLMMessage: `Zora saved you $${this._dailySavingsUSD.toFixed(2)} today vs all-LLM`,
60
+ };
61
+ }
62
+ }
63
+ //# sourceMappingURL=cost-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../src/dashboard/cost-tracker.ts"],"names":[],"mappings":"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"}