aura-code 0.6.3 → 0.10.1

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 (265) hide show
  1. package/README.md +47 -164
  2. package/dist/agent/affect.d.ts +13 -0
  3. package/dist/agent/affect.js +34 -0
  4. package/dist/agent/affect.js.map +1 -0
  5. package/dist/agent/compactor.d.ts +27 -4
  6. package/dist/agent/compactor.js +185 -54
  7. package/dist/agent/compactor.js.map +1 -1
  8. package/dist/agent/confess.d.ts +35 -0
  9. package/dist/agent/confess.js +296 -0
  10. package/dist/agent/confess.js.map +1 -0
  11. package/dist/agent/context.d.ts +0 -4
  12. package/dist/agent/context.js +0 -38
  13. package/dist/agent/context.js.map +1 -1
  14. package/dist/agent/domain-expertise.d.ts +22 -0
  15. package/dist/agent/domain-expertise.js +110 -0
  16. package/dist/agent/domain-expertise.js.map +1 -0
  17. package/dist/agent/executive-queue.d.ts +26 -0
  18. package/dist/agent/executive-queue.js +50 -0
  19. package/dist/agent/executive-queue.js.map +1 -0
  20. package/dist/agent/generational-flush.d.ts +28 -0
  21. package/dist/agent/generational-flush.js +48 -0
  22. package/dist/agent/generational-flush.js.map +1 -0
  23. package/dist/agent/loop-profile.d.ts +50 -0
  24. package/dist/agent/loop-profile.js +88 -0
  25. package/dist/agent/loop-profile.js.map +1 -0
  26. package/dist/agent/loop.d.ts +14 -5
  27. package/dist/agent/loop.js +167 -39
  28. package/dist/agent/loop.js.map +1 -1
  29. package/dist/agent/memory-consolidate.d.ts +14 -0
  30. package/dist/agent/memory-consolidate.js +141 -0
  31. package/dist/agent/memory-consolidate.js.map +1 -0
  32. package/dist/agent/mixture.d.ts +33 -0
  33. package/dist/agent/mixture.js +138 -0
  34. package/dist/agent/mixture.js.map +1 -0
  35. package/dist/agent/spawner.js +2 -2
  36. package/dist/agent/spawner.js.map +1 -1
  37. package/dist/agent/system-prompt.d.ts +1 -1
  38. package/dist/agent/system-prompt.js +50 -22
  39. package/dist/agent/system-prompt.js.map +1 -1
  40. package/dist/agent/unified-memory.d.ts +15 -0
  41. package/dist/agent/unified-memory.js +164 -0
  42. package/dist/agent/unified-memory.js.map +1 -0
  43. package/dist/checkpoints/engine.d.ts +44 -0
  44. package/dist/checkpoints/engine.js +324 -0
  45. package/dist/checkpoints/engine.js.map +1 -0
  46. package/dist/cli/command-palette.d.ts +26 -0
  47. package/dist/cli/command-palette.js +133 -0
  48. package/dist/cli/command-palette.js.map +1 -0
  49. package/dist/cli/context-health.d.ts +51 -0
  50. package/dist/cli/context-health.js +187 -0
  51. package/dist/cli/context-health.js.map +1 -0
  52. package/dist/cli/diamond.d.ts +67 -0
  53. package/dist/cli/diamond.js +222 -12
  54. package/dist/cli/diamond.js.map +1 -1
  55. package/dist/cli/dic.d.ts +2 -0
  56. package/dist/cli/dic.js +106 -0
  57. package/dist/cli/dic.js.map +1 -0
  58. package/dist/cli/diff-view.d.ts +18 -0
  59. package/dist/cli/diff-view.js +114 -0
  60. package/dist/cli/diff-view.js.map +1 -0
  61. package/dist/cli/display.d.ts +18 -4
  62. package/dist/cli/display.js +74 -151
  63. package/dist/cli/display.js.map +1 -1
  64. package/dist/cli/help-data.d.ts +7 -0
  65. package/dist/cli/help-data.js +80 -0
  66. package/dist/cli/help-data.js.map +1 -0
  67. package/dist/cli/index.js +1002 -852
  68. package/dist/cli/index.js.map +1 -1
  69. package/dist/cli/markdown.d.ts +5 -0
  70. package/dist/cli/markdown.js +128 -0
  71. package/dist/cli/markdown.js.map +1 -0
  72. package/dist/cli/model-select.d.ts +39 -0
  73. package/dist/cli/model-select.js +65 -0
  74. package/dist/cli/model-select.js.map +1 -0
  75. package/dist/cli/tui.d.ts +34 -0
  76. package/dist/cli/tui.js +1176 -0
  77. package/dist/cli/tui.js.map +1 -0
  78. package/dist/config/defaults.d.ts +6 -17
  79. package/dist/config/defaults.js +25 -46
  80. package/dist/config/defaults.js.map +1 -1
  81. package/dist/config/project-config.d.ts +2 -6
  82. package/dist/config/project-config.js +2 -2
  83. package/dist/config/project-config.js.map +1 -1
  84. package/dist/doctor/checks.d.ts +18 -0
  85. package/dist/doctor/checks.js +524 -0
  86. package/dist/doctor/checks.js.map +1 -0
  87. package/dist/doctor/index.d.ts +4 -0
  88. package/dist/doctor/index.js +229 -0
  89. package/dist/doctor/index.js.map +1 -0
  90. package/dist/doctor/repair.d.ts +19 -0
  91. package/dist/doctor/repair.js +126 -0
  92. package/dist/doctor/repair.js.map +1 -0
  93. package/dist/doctor/types.d.ts +38 -0
  94. package/dist/doctor/types.js +10 -0
  95. package/dist/doctor/types.js.map +1 -0
  96. package/dist/dream/dream.d.ts +79 -59
  97. package/dist/dream/dream.js +324 -144
  98. package/dist/dream/dream.js.map +1 -1
  99. package/dist/dream/episode.d.ts +17 -0
  100. package/dist/dream/episode.js +116 -0
  101. package/dist/dream/episode.js.map +1 -0
  102. package/dist/kanban/engine.d.ts +26 -0
  103. package/dist/kanban/engine.js +208 -0
  104. package/dist/kanban/engine.js.map +1 -0
  105. package/dist/kanban/types.d.ts +19 -0
  106. package/dist/kanban/types.js +9 -1
  107. package/dist/kanban/types.js.map +1 -1
  108. package/dist/machina/render-html.js +4 -2
  109. package/dist/machina/render-html.js.map +1 -1
  110. package/dist/machina/render-terminal.js +11 -4
  111. package/dist/machina/render-terminal.js.map +1 -1
  112. package/dist/machina/repair.d.ts +23 -0
  113. package/dist/machina/repair.js +98 -0
  114. package/dist/machina/repair.js.map +1 -0
  115. package/dist/machina/spec.js +12 -12
  116. package/dist/machina/spec.js.map +1 -1
  117. package/dist/machina/verify.d.ts +13 -1
  118. package/dist/machina/verify.js +12 -2
  119. package/dist/machina/verify.js.map +1 -1
  120. package/dist/mining/extract.d.ts +34 -0
  121. package/dist/mining/extract.js +229 -0
  122. package/dist/mining/extract.js.map +1 -0
  123. package/dist/mining/refine.d.ts +28 -0
  124. package/dist/mining/refine.js +256 -0
  125. package/dist/mining/refine.js.map +1 -0
  126. package/dist/perception/extractor.js +5 -3
  127. package/dist/perception/extractor.js.map +1 -1
  128. package/dist/perception/graph-store.d.ts +0 -11
  129. package/dist/perception/graph-store.js +0 -33
  130. package/dist/perception/graph-store.js.map +1 -1
  131. package/dist/perception/index.d.ts +1 -1
  132. package/dist/perception/index.js +1 -2
  133. package/dist/perception/index.js.map +1 -1
  134. package/dist/plugins/commands.d.ts +38 -0
  135. package/dist/plugins/commands.js +134 -0
  136. package/dist/plugins/commands.js.map +1 -0
  137. package/dist/plugins/frontmatter.d.ts +14 -0
  138. package/dist/plugins/frontmatter.js +78 -0
  139. package/dist/plugins/frontmatter.js.map +1 -0
  140. package/dist/plugins/hooks.d.ts +12 -0
  141. package/dist/plugins/hooks.js +148 -0
  142. package/dist/plugins/hooks.js.map +1 -0
  143. package/dist/plugins/loader.d.ts +7 -0
  144. package/dist/plugins/loader.js +255 -0
  145. package/dist/plugins/loader.js.map +1 -0
  146. package/dist/plugins/market.d.ts +23 -0
  147. package/dist/plugins/market.js +281 -0
  148. package/dist/plugins/market.js.map +1 -0
  149. package/dist/plugins/types.d.ts +90 -0
  150. package/dist/plugins/types.js +20 -0
  151. package/dist/plugins/types.js.map +1 -0
  152. package/dist/providers/anthropic-oauth-draft.d.ts +119 -0
  153. package/dist/providers/anthropic-oauth-draft.js +414 -0
  154. package/dist/providers/anthropic-oauth-draft.js.map +1 -0
  155. package/dist/providers/anthropic.d.ts +4 -1
  156. package/dist/providers/anthropic.js +35 -7
  157. package/dist/providers/anthropic.js.map +1 -1
  158. package/dist/providers/factory.d.ts +43 -19
  159. package/dist/providers/factory.js +183 -129
  160. package/dist/providers/factory.js.map +1 -1
  161. package/dist/providers/google.js +9 -22
  162. package/dist/providers/google.js.map +1 -1
  163. package/dist/providers/live-models.d.ts +23 -0
  164. package/dist/providers/live-models.js +145 -0
  165. package/dist/providers/live-models.js.map +1 -0
  166. package/dist/providers/openai-compatible.d.ts +1 -12
  167. package/dist/providers/openai-compatible.js +71 -108
  168. package/dist/providers/openai-compatible.js.map +1 -1
  169. package/dist/providers/resilient-factory.js +1 -1
  170. package/dist/providers/resilient-factory.js.map +1 -1
  171. package/dist/repl/queue.d.ts +22 -0
  172. package/dist/repl/queue.js +165 -0
  173. package/dist/repl/queue.js.map +1 -0
  174. package/dist/repl/side-channel.d.ts +23 -0
  175. package/dist/repl/side-channel.js +63 -0
  176. package/dist/repl/side-channel.js.map +1 -0
  177. package/dist/research/council.d.ts +2 -0
  178. package/dist/research/council.js +29 -4
  179. package/dist/research/council.js.map +1 -1
  180. package/dist/ruby/alternator.d.ts +11 -30
  181. package/dist/ruby/alternator.js +59 -38
  182. package/dist/ruby/alternator.js.map +1 -1
  183. package/dist/ruby/episode-capture.d.ts +0 -10
  184. package/dist/ruby/episode-capture.js +0 -33
  185. package/dist/ruby/episode-capture.js.map +1 -1
  186. package/dist/ruby/types.js +1 -1
  187. package/dist/ruby/types.js.map +1 -1
  188. package/dist/safety/path-jail.d.ts +17 -0
  189. package/dist/safety/path-jail.js +100 -0
  190. package/dist/safety/path-jail.js.map +1 -0
  191. package/dist/safety/permissions.d.ts +12 -21
  192. package/dist/safety/permissions.js +81 -216
  193. package/dist/safety/permissions.js.map +1 -1
  194. package/dist/safety/ssrf.d.ts +29 -0
  195. package/dist/safety/ssrf.js +185 -0
  196. package/dist/safety/ssrf.js.map +1 -0
  197. package/dist/server/index.js +64 -10
  198. package/dist/server/index.js.map +1 -1
  199. package/dist/setup/first-run.d.ts +0 -24
  200. package/dist/setup/first-run.js +10 -344
  201. package/dist/setup/first-run.js.map +1 -1
  202. package/dist/setup/key-store.d.ts +12 -0
  203. package/dist/setup/key-store.js +108 -0
  204. package/dist/setup/key-store.js.map +1 -0
  205. package/dist/setup/provider-registry.js +31 -18
  206. package/dist/setup/provider-registry.js.map +1 -1
  207. package/dist/setup/provider-test.d.ts +7 -0
  208. package/dist/setup/provider-test.js +73 -10
  209. package/dist/setup/provider-test.js.map +1 -1
  210. package/dist/setup/provider-wizard.d.ts +4 -1
  211. package/dist/setup/provider-wizard.js +92 -26
  212. package/dist/setup/provider-wizard.js.map +1 -1
  213. package/dist/setup/xiaomi.d.ts +1 -1
  214. package/dist/setup/xiaomi.js +3 -3
  215. package/dist/setup/xiaomi.js.map +1 -1
  216. package/dist/tools/browser.js +14 -10
  217. package/dist/tools/browser.js.map +1 -1
  218. package/dist/tools/clipboard.js +7 -1
  219. package/dist/tools/clipboard.js.map +1 -1
  220. package/dist/tools/dictate.d.ts +60 -0
  221. package/dist/tools/dictate.js +983 -0
  222. package/dist/tools/dictate.js.map +1 -0
  223. package/dist/tools/dictate_patched.js +1057 -0
  224. package/dist/tools/edit-file.js +10 -2
  225. package/dist/tools/edit-file.js.map +1 -1
  226. package/dist/tools/http-request.js +14 -4
  227. package/dist/tools/http-request.js.map +1 -1
  228. package/dist/tools/image-read.js +34 -2
  229. package/dist/tools/image-read.js.map +1 -1
  230. package/dist/tools/index.d.ts +16 -1
  231. package/dist/tools/index.js +59 -8
  232. package/dist/tools/index.js.map +1 -1
  233. package/dist/tools/mcp.js +12 -0
  234. package/dist/tools/mcp.js.map +1 -1
  235. package/dist/tools/read-file.js +10 -14
  236. package/dist/tools/read-file.js.map +1 -1
  237. package/dist/tools/telegram-audio-policy.d.ts +30 -0
  238. package/dist/tools/telegram-audio-policy.js +49 -0
  239. package/dist/tools/telegram-audio-policy.js.map +1 -0
  240. package/dist/tools/telegram-bot.js +1136 -537
  241. package/dist/tools/telegram-bot.js.map +1 -1
  242. package/dist/tools/telegram-voice.d.ts +18 -5
  243. package/dist/tools/telegram-voice.js +54 -12
  244. package/dist/tools/telegram-voice.js.map +1 -1
  245. package/dist/tools/telegram.d.ts +3 -3
  246. package/dist/tools/telegram.js +5 -84
  247. package/dist/tools/telegram.js.map +1 -1
  248. package/dist/tools/tools.d.ts +2 -14
  249. package/dist/tools/tools.js +79 -144
  250. package/dist/tools/tools.js.map +1 -1
  251. package/dist/tools/web-fetch.js +39 -7
  252. package/dist/tools/web-fetch.js.map +1 -1
  253. package/dist/tools/web-search.d.ts +0 -20
  254. package/dist/tools/web-search.js +40 -137
  255. package/dist/tools/web-search.js.map +1 -1
  256. package/dist/util/errors.js +1 -15
  257. package/dist/util/errors.js.map +1 -1
  258. package/dist/util/json-repair.d.ts +11 -0
  259. package/dist/util/json-repair.js +31 -0
  260. package/dist/util/json-repair.js.map +1 -0
  261. package/dist/util/rate-limiter.js +2 -8
  262. package/dist/util/rate-limiter.js.map +1 -1
  263. package/dist/viz/index.js +793 -792
  264. package/dist/viz/index.js.map +1 -1
  265. package/package.json +12 -32
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ContextHealthTracker = void 0;
7
+ exports.formatContextBar = formatContextBar;
8
+ exports.formatContextDashboard = formatContextDashboard;
9
+ exports.formatCompactionEvent = formatCompactionEvent;
10
+ /**
11
+ * Context Health Dashboard — real-time visibility into token usage,
12
+ * compaction state, and session costs. Observational only — never
13
+ * modifies history or triggers compaction.
14
+ */
15
+ const chalk_1 = __importDefault(require("chalk"));
16
+ const diamond_js_1 = require("./diamond.js");
17
+ const compactor_js_1 = require("../agent/compactor.js");
18
+ const factory_js_1 = require("../providers/factory.js");
19
+ const loop_js_1 = require("../agent/loop.js");
20
+ const LADDER = [0.55, 0.70, 0.85];
21
+ const ROLLOVER_AT_GENERATION = 3;
22
+ const DEFAULT_WINDOW = 128_000;
23
+ class ContextHealthTracker {
24
+ getSystem;
25
+ getHistory;
26
+ model;
27
+ pricingModel;
28
+ compactionEvents = [];
29
+ _turnCount = 0;
30
+ _toolCallCount = 0;
31
+ constructor(getSystem, getHistory, model, pricingModel) {
32
+ this.getSystem = getSystem;
33
+ this.getHistory = getHistory;
34
+ this.model = model;
35
+ this.pricingModel = pricingModel;
36
+ }
37
+ incrementTurn() { this._turnCount++; }
38
+ incrementToolCalls(n = 1) { this._toolCallCount += n; }
39
+ /** Replace the system-prompt source — used when a shared tracker is passed
40
+ * into the loop and the loop builds the real (task-embedded) system prompt. */
41
+ updateSystem(s) { this.getSystem = () => s; }
42
+ recordCompaction(beforeTokens, afterTokens, generation) {
43
+ this.compactionEvents.push({ turn: this._turnCount, beforeTokens, afterTokens, generation });
44
+ }
45
+ snapshot(inputTokens = 0, outputTokens = 0) {
46
+ const system = this.getSystem();
47
+ const history = this.getHistory();
48
+ const estimatedTokens = (0, compactor_js_1.estimateContextTokens)(system, history);
49
+ const contextWindow = (0, factory_js_1.getContextWindow)(this.model) ?? DEFAULT_WINDOW;
50
+ const usagePercent = (estimatedTokens / contextWindow) * 100;
51
+ const recapGeneration = (0, compactor_js_1.getRecapGeneration)(history);
52
+ const genIndex = Math.min(recapGeneration, LADDER.length - 1);
53
+ const nextCompactionPercent = Math.round(LADDER[genIndex] * 100);
54
+ const nextCompactionThreshold = Math.floor(contextWindow * LADDER[genIndex]);
55
+ const tokensUntilCompaction = Math.max(0, nextCompactionThreshold - estimatedTokens);
56
+ return {
57
+ estimatedTokens, contextWindow, usagePercent, recapGeneration,
58
+ nextCompactionThreshold, nextCompactionPercent, tokensUntilCompaction,
59
+ rolloversRemaining: Math.max(0, ROLLOVER_AT_GENERATION - recapGeneration),
60
+ totalInputTokens: inputTokens, totalOutputTokens: outputTokens,
61
+ totalCostUsd: (0, loop_js_1.costFor)(this.pricingModel, inputTokens, outputTokens),
62
+ turnCount: this._turnCount, toolCallCount: this._toolCallCount,
63
+ compactionCount: this.compactionEvents.length,
64
+ largestMessages: getLargestMessages(history, system, 5),
65
+ compactionHistory: [...this.compactionEvents],
66
+ };
67
+ }
68
+ }
69
+ exports.ContextHealthTracker = ContextHealthTracker;
70
+ function getLargestMessages(history, system, n) {
71
+ const messages = [];
72
+ messages.push({ role: 'system', preview: 'System prompt', tokens: (0, compactor_js_1.countText)(system), index: -1 });
73
+ for (let i = 0; i < history.length; i++) {
74
+ const msg = history[i];
75
+ const tokens = (0, compactor_js_1.countMessage)(msg);
76
+ let preview;
77
+ switch (msg.role) {
78
+ case 'user':
79
+ preview = msg.content?.slice(0, 60) ?? '(empty)';
80
+ break;
81
+ case 'assistant':
82
+ preview = msg.content?.slice(0, 60) || (msg.toolCalls?.length ? 'Calls: ' + msg.toolCalls.map(c => c.name).join(', ') : '(empty)');
83
+ break;
84
+ case 'tool_result':
85
+ preview = 'Tool: ' + msg.results.map(r => r.name).join(', ');
86
+ break;
87
+ default: preview = '(unknown)';
88
+ }
89
+ messages.push({ role: msg.role, preview, tokens, index: i });
90
+ }
91
+ return messages.sort((a, b) => b.tokens - a.tokens).slice(0, n);
92
+ }
93
+ function formatContextBar(h) {
94
+ const barWidth = 20;
95
+ const filled = Math.max(0, Math.min(barWidth, Math.round((h.usagePercent / 100) * barWidth)));
96
+ const ladderPos = LADDER.map(r => Math.floor(r * barWidth));
97
+ let bar = '';
98
+ for (let i = 0; i < barWidth; i++) {
99
+ if (i < filled)
100
+ bar += '\u2588';
101
+ else if (ladderPos.includes(i))
102
+ bar += '\u250a';
103
+ else
104
+ bar += '\u2591';
105
+ }
106
+ const barColor = h.usagePercent < 50 ? chalk_1.default.hex('#5a9e6e') : h.usagePercent < 70 ? chalk_1.default.hex('#d4903a') : chalk_1.default.hex('#b15439');
107
+ const pct = h.usagePercent.toFixed(0) + '%';
108
+ const tok = (h.estimatedTokens / 1000).toFixed(1) + 'k/' + (h.contextWindow / 1000).toFixed(0) + 'k';
109
+ const gen = h.recapGeneration > 0 ? ' \u00b7 gen ' + h.recapGeneration : '';
110
+ const compact = ' \u00b7 compact @ ' + h.nextCompactionPercent + '% (' + (h.nextCompactionThreshold / 1000).toFixed(0) + 'k)';
111
+ const cost = h.totalCostUsd > 0 ? ' \u00b7 $' + h.totalCostUsd.toFixed(2) : '';
112
+ return ' \u25c6 Context: ' + barColor(bar) + ' ' + pct + ' (' + tok + ')' + gen + compact + cost + ' \u00b7 ' + h.turnCount + ' turns';
113
+ }
114
+ function formatContextDashboard(h) {
115
+ const w = process.stdout.columns ?? 80;
116
+ const line = '\u2500'.repeat(Math.min(w - 4, 60));
117
+ const barWidth = 30;
118
+ const filled = Math.max(0, Math.min(barWidth, Math.round((h.usagePercent / 100) * barWidth)));
119
+ const ladderPos = LADDER.map(r => Math.floor(r * barWidth));
120
+ let bar = '';
121
+ for (let i = 0; i < barWidth; i++) {
122
+ if (i < filled)
123
+ bar += '\u2588';
124
+ else if (ladderPos.includes(i))
125
+ bar += '\u250a';
126
+ else
127
+ bar += '\u2591';
128
+ }
129
+ const barColor = h.usagePercent < 50 ? chalk_1.default.hex('#5a9e6e') : h.usagePercent < 70 ? chalk_1.default.hex('#d4903a') : chalk_1.default.hex('#b15439');
130
+ const freeTokens = Math.max(0, h.contextWindow - h.estimatedTokens);
131
+ const freePct = (100 - Math.min(100, h.usagePercent)).toFixed(0);
132
+ const lines = [
133
+ '',
134
+ chalk_1.default.hex(diamond_js_1.FAINT_HEX)(line),
135
+ chalk_1.default.hex('#cc785c').bold(' Context Health Dashboard'),
136
+ chalk_1.default.hex(diamond_js_1.FAINT_HEX)(line),
137
+ '',
138
+ ' Window: ' + chalk_1.default.hex('#c8b5a0')(h.contextWindow.toLocaleString()) + ' tokens',
139
+ ' Used: ' + chalk_1.default.hex('#c8b5a0')(h.estimatedTokens.toLocaleString()) + ' tokens (' + chalk_1.default.bold(h.usagePercent.toFixed(1) + '%') + ') ' + barColor(bar),
140
+ ' Free: ' + chalk_1.default.hex('#c8b5a0')(freeTokens.toLocaleString()) + ' tokens (' + freePct + '%)',
141
+ '',
142
+ ' Compaction: ' + chalk_1.default.hex('#c8b5a0')('Generation ' + h.recapGeneration + ' of ' + ROLLOVER_AT_GENERATION),
143
+ ' Next fire: ' + chalk_1.default.hex('#c8b5a0')(h.nextCompactionThreshold.toLocaleString() + ' tokens (' + h.nextCompactionPercent + '%)') + ' \u2014 ' + chalk_1.default.hex('#d4903a')(h.tokensUntilCompaction.toLocaleString() + ' tokens away'),
144
+ ' Ladder: ' + formatLadder(h.recapGeneration),
145
+ ' Remaining: ' + chalk_1.default.hex('#c8b5a0')(h.rolloversRemaining + ' compaction(s) before dream flush'),
146
+ '',
147
+ chalk_1.default.hex('#cc785c').bold(' Session totals'),
148
+ ' Input: ' + chalk_1.default.hex('#c8b5a0')(h.totalInputTokens.toLocaleString()) + ' tokens',
149
+ ' Output: ' + chalk_1.default.hex('#c8b5a0')(h.totalOutputTokens.toLocaleString()) + ' tokens',
150
+ ' Cost: ' + chalk_1.default.hex('#c8b5a0')('$' + h.totalCostUsd.toFixed(4)),
151
+ ' Turns: ' + chalk_1.default.hex('#c8b5a0')(String(h.turnCount)),
152
+ ' Tools: ' + chalk_1.default.hex('#c8b5a0')(h.toolCallCount + ' calls'),
153
+ ];
154
+ if (h.compactionHistory.length > 0) {
155
+ lines.push('', chalk_1.default.hex('#cc785c').bold(' Compaction history'));
156
+ for (const e of h.compactionHistory) {
157
+ const saved = ((1 - e.afterTokens / e.beforeTokens) * 100).toFixed(0);
158
+ lines.push(' Turn ' + e.turn + ': ' + e.beforeTokens.toLocaleString() + ' \u2192 ' + e.afterTokens.toLocaleString() + ' tokens ' + chalk_1.default.hex('#5a9e6e')('(-' + saved + '%)') + ' gen ' + (e.generation - 1) + '\u2192' + e.generation);
159
+ }
160
+ }
161
+ if (h.largestMessages.length > 0) {
162
+ lines.push('', chalk_1.default.hex('#cc785c').bold(' Largest messages'));
163
+ for (const m of h.largestMessages) {
164
+ const idx = m.index === -1 ? 'sys' : '#' + m.index;
165
+ lines.push(' ' + chalk_1.default.hex(diamond_js_1.FAINT_HEX)(idx.padEnd(4)) + ' ' + chalk_1.default.hex(diamond_js_1.TEXT_DIM_HEX)(m.role.padEnd(12)) + ' ' + m.preview + ' ' + chalk_1.default.hex('#d4903a')(m.tokens.toLocaleString() + ' tok'));
166
+ }
167
+ }
168
+ lines.push('', chalk_1.default.hex(diamond_js_1.FAINT_HEX)(line), '');
169
+ return lines.join('\n');
170
+ }
171
+ function formatLadder(generation) {
172
+ const rungs = LADDER.map((r, i) => {
173
+ const pct = (r * 100).toFixed(0) + '%';
174
+ if (i < generation)
175
+ return chalk_1.default.hex('#5a9e6e')(pct + ' \u2713');
176
+ if (i === generation)
177
+ return chalk_1.default.hex('#d4903a')(pct + ' pending');
178
+ return chalk_1.default.hex(diamond_js_1.FAINT_HEX)(pct);
179
+ });
180
+ const flush = chalk_1.default.hex('#6d8fb3')('flush');
181
+ return rungs.join(' \u2192 ') + ' \u2192 ' + flush;
182
+ }
183
+ function formatCompactionEvent(beforeTokens, afterTokens, generation, threshold) {
184
+ const saved = ((1 - afterTokens / beforeTokens) * 100).toFixed(0);
185
+ return 'Context compacted: ' + beforeTokens.toLocaleString() + ' \u2192 ' + afterTokens.toLocaleString() + ' tokens ' + chalk_1.default.hex('#5a9e6e')('(-' + saved + '%)') + ' \u00b7 gen ' + generation + ' \u00b7 threshold ' + threshold.toLocaleString();
186
+ }
187
+ //# sourceMappingURL=context-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-health.js","sourceRoot":"","sources":["../../src/cli/context-health.ts"],"names":[],"mappings":"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"}
@@ -1 +1,68 @@
1
+ import chalk from 'chalk';
2
+ export declare const RUBY_HEX = "#9b1b30";
3
+ export declare const RUBY_ACCENT: chalk.Chalk;
4
+ export declare const BG_HEX = "#0f1724";
5
+ export declare const PANEL_BG_HEX = "#1c2739";
6
+ export declare const TERRACOTTA_HEX = "#cc785c";
7
+ export declare const TEXT_HEX = "#e8e6e3";
8
+ export declare const TEXT_DIM_HEX = "#8a94a6";
9
+ export declare const FAINT_HEX = "#4a5568";
10
+ export declare const TEXT: chalk.Chalk;
11
+ export declare const TEXT_DIM: chalk.Chalk;
12
+ export declare const FAINT: chalk.Chalk;
13
+ export declare const CHROME_DIM: chalk.Chalk;
14
+ /**
15
+ * Color a run of identical border/rule characters with the four-stop ruby
16
+ * gradient, dark → bright, split into four roughly equal segments across
17
+ * its length. Works for horizontal rules ('─'.repeat(n)) and is also used
18
+ * character-by-character for vertical dividers (see `gradientRows`).
19
+ */
20
+ export declare function gradient(str: string): string;
21
+ /** Bold variant of `gradient()` — for borders that need extra visual weight (e.g. the input box, where the user types). */
22
+ export declare function gradientBold(str: string): string;
23
+ /**
24
+ * Color for the Nth row (0-indexed) of a `total`-row vertical divider —
25
+ * dark at the top, bright at the bottom, same four stops as `gradient()`.
26
+ * Used to color a single divider character ('│') per output row.
27
+ */
28
+ export declare function gradientStopFor(row: number, total: number): chalk.Chalk;
29
+ /**
30
+ * Brilliant-cut gem, 9 rows: a narrow flat table, a widening crown, the
31
+ * wide girdle (row 4, the widest point), then a long tapering pavilion
32
+ * down to a single point — the silhouette of an actual cut diamond, not
33
+ * a symmetric kite or a wedge. Solid blocks only (no fractional glyphs)
34
+ * so the point renders cleanly on every terminal font; per-row 3D facet
35
+ * shading is applied at render time by styleGemRow, not baked in here.
36
+ */
37
+ export declare const GEM: string[];
38
+ /** Column width of one gem row (all rows share the same padded width). */
39
+ export declare const GEM_WIDTH: number;
40
+ /** The gem's styled Nth row, or null if out of range — for compositing beside other columns. */
41
+ export declare function gemRow(i: number): string | null;
42
+ export interface BannerInfo {
43
+ version: string;
44
+ title?: string;
45
+ model?: string;
46
+ provider?: string;
47
+ language?: string;
48
+ mode?: string;
49
+ cwd?: string;
50
+ extras?: string[];
51
+ }
52
+ /** Clear the screen and move the cursor to the top-left (home). */
53
+ export declare function clearToTop(): void;
54
+ /**
55
+ * The banner's fully-styled lines, one string per terminal row:
56
+ * - Brilliant-cut gem centered above the wordmark, each row faceted
57
+ * left-bright / mid / shadow (light hits from the top-left).
58
+ * - LOGO text gets a left-bright / right-shadow treatment.
59
+ * - Session metadata (version, provider/model, cwd, tagline) below.
60
+ * Exposed separately from renderBanner() so the TUI can keep a copy and
61
+ * repaint the banner itself when it rebuilds the screen (e.g. returning
62
+ * from scroll mode) — the alt screen has no scrollback to recover it from.
63
+ */
64
+ export declare function buildBannerLines(info: BannerInfo): string[];
65
+ /** Render the banner pinned to the top of a cleared screen, so it reads like a real app header, not scrollback. */
66
+ export declare function renderBanner(info: BannerInfo): void;
67
+ /** Standalone diamond (no logo, no info column) — splash contexts. */
1
68
  export declare function renderDiamond(): void;
@@ -3,21 +3,231 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GEM_WIDTH = exports.GEM = exports.CHROME_DIM = exports.FAINT = exports.TEXT_DIM = exports.TEXT = exports.FAINT_HEX = exports.TEXT_DIM_HEX = exports.TEXT_HEX = exports.TERRACOTTA_HEX = exports.PANEL_BG_HEX = exports.BG_HEX = exports.RUBY_ACCENT = exports.RUBY_HEX = void 0;
7
+ exports.gradient = gradient;
8
+ exports.gradientBold = gradientBold;
9
+ exports.gradientStopFor = gradientStopFor;
10
+ exports.gemRow = gemRow;
11
+ exports.clearToTop = clearToTop;
12
+ exports.buildBannerLines = buildBannerLines;
13
+ exports.renderBanner = renderBanner;
6
14
  exports.renderDiamond = renderDiamond;
7
15
  const chalk_1 = __importDefault(require("chalk"));
8
- const r = chalk_1.default.hex('#9b1b30');
9
- const g = chalk_1.default.hex('#c9a84c');
10
- const w = chalk_1.default.hex('#f0ece4');
16
+ // Ruby palette — matches https://aurawebsite-self.vercel.app/
17
+ // (#e63956 bright ruby, #9b1b30 primary, #4a0d1a deep wine)
18
+ const light = chalk_1.default.hex('#e63956');
19
+ const mid = chalk_1.default.hex('#c22743');
20
+ const ruby = chalk_1.default.hex('#9b1b30');
21
+ const shadow = chalk_1.default.hex('#6d1322');
22
+ // Primary ruby as a single reusable accent (e.g. the message-bubble left
23
+ // bar) — distinct from the 4-stop gradient, which is for dividers/borders.
24
+ exports.RUBY_HEX = '#9b1b30';
25
+ exports.RUBY_ACCENT = ruby;
26
+ // ── Palette v3: bluish-dark background, terracotta chrome, white text ──────
27
+ // Terminal background, set via OSC 11 on TUI start (desaturated dark navy).
28
+ exports.BG_HEX = '#0f1724';
29
+ // Elevated panel background (code/log blocks) — one step lighter than BG_HEX.
30
+ exports.PANEL_BG_HEX = '#1c2739';
31
+ // Tool/UI chrome — the terracotta already used for tool labels and mode
32
+ // indicators across the CLI. Everything that is "the tooling talking to you".
33
+ exports.TERRACOTTA_HEX = '#cc785c';
34
+ // Primary text (user input, assistant replies, body copy) — near-white for
35
+ // maximum readability on the bluish background.
36
+ exports.TEXT_HEX = '#e8e6e3';
37
+ // Secondary/de-emphasized text — desaturated blue-gray, quieter than TEXT_HEX
38
+ // but still readable on BG_HEX.
39
+ exports.TEXT_DIM_HEX = '#8a94a6';
40
+ // Faintest text (rules, timings, ellipses) — visible but receding on BG_HEX.
41
+ exports.FAINT_HEX = '#4a5568';
42
+ exports.TEXT = chalk_1.default.hex(exports.TEXT_HEX);
43
+ exports.TEXT_DIM = chalk_1.default.hex(exports.TEXT_DIM_HEX);
44
+ exports.FAINT = chalk_1.default.hex(exports.FAINT_HEX);
45
+ // Muted terracotta for unfocused/quiet chrome (e.g. blurred panel borders).
46
+ exports.CHROME_DIM = chalk_1.default.hex('#8a5a48');
47
+ const dim = exports.TEXT_DIM;
48
+ /**
49
+ * The four terracotta stops, dark end → bright end, centered on
50
+ * TERRACOTTA_HEX. Used for every line that separates fields/panels/sections
51
+ * (box borders, rules, column dividers) — per the fixed palette rule,
52
+ * dividers get this same four-stop gradient rather than a single flat hue.
53
+ * (The ruby stops above remain for the gem/logo branding only.)
54
+ */
55
+ const chromeShadow = chalk_1.default.hex('#7a4636');
56
+ const chromeMid = chalk_1.default.hex('#a05a44');
57
+ const chromeBase = chalk_1.default.hex(exports.TERRACOTTA_HEX);
58
+ const chromeLight = chalk_1.default.hex('#e29a80');
59
+ const GRADIENT_STOPS = [chromeShadow, chromeMid, chromeBase, chromeLight];
60
+ /**
61
+ * Color a run of identical border/rule characters with the four-stop ruby
62
+ * gradient, dark → bright, split into four roughly equal segments across
63
+ * its length. Works for horizontal rules ('─'.repeat(n)) and is also used
64
+ * character-by-character for vertical dividers (see `gradientRows`).
65
+ */
66
+ function gradient(str) {
67
+ const len = str.length;
68
+ if (len === 0)
69
+ return str;
70
+ const segLen = Math.max(1, Math.ceil(len / GRADIENT_STOPS.length));
71
+ let out = '';
72
+ let i = 0;
73
+ for (const stop of GRADIENT_STOPS) {
74
+ if (i >= len)
75
+ break;
76
+ out += stop(str.slice(i, i + segLen));
77
+ i += segLen;
78
+ }
79
+ return out;
80
+ }
81
+ /** Bold variant of `gradient()` — for borders that need extra visual weight (e.g. the input box, where the user types). */
82
+ function gradientBold(str) {
83
+ const len = str.length;
84
+ if (len === 0)
85
+ return str;
86
+ const segLen = Math.max(1, Math.ceil(len / GRADIENT_STOPS.length));
87
+ let out = '';
88
+ let i = 0;
89
+ for (const stop of GRADIENT_STOPS) {
90
+ if (i >= len)
91
+ break;
92
+ out += stop.bold(str.slice(i, i + segLen));
93
+ i += segLen;
94
+ }
95
+ return out;
96
+ }
97
+ /**
98
+ * Color for the Nth row (0-indexed) of a `total`-row vertical divider —
99
+ * dark at the top, bright at the bottom, same four stops as `gradient()`.
100
+ * Used to color a single divider character ('│') per output row.
101
+ */
102
+ function gradientStopFor(row, total) {
103
+ const idx = Math.min(GRADIENT_STOPS.length - 1, Math.floor((row / Math.max(1, total)) * GRADIENT_STOPS.length));
104
+ return GRADIENT_STOPS[idx];
105
+ }
106
+ /**
107
+ * Brilliant-cut gem, 9 rows: a narrow flat table, a widening crown, the
108
+ * wide girdle (row 4, the widest point), then a long tapering pavilion
109
+ * down to a single point — the silhouette of an actual cut diamond, not
110
+ * a symmetric kite or a wedge. Solid blocks only (no fractional glyphs)
111
+ * so the point renders cleanly on every terminal font; per-row 3D facet
112
+ * shading is applied at render time by styleGemRow, not baked in here.
113
+ */
114
+ exports.GEM = [
115
+ ' █████ ', // table
116
+ ' ████████ ', // crown
117
+ ' ██████████ ', // crown → girdle
118
+ '████████████', // girdle (widest)
119
+ ' █████████ ', // pavilion
120
+ ' ███████ ', // pavilion
121
+ ' █████ ', // pavilion
122
+ ' ███ ', // pavilion, narrowing to the point
123
+ ' █ ', // point
124
+ ];
125
+ /** Column width of one gem row (all rows share the same padded width). */
126
+ exports.GEM_WIDTH = exports.GEM[0].length;
127
+ /** The gem's styled Nth row, or null if out of range — for compositing beside other columns. */
128
+ function gemRow(i) {
129
+ const row = exports.GEM[i];
130
+ return row === undefined ? null : styleGemRow(row, FACET_SHADES);
131
+ }
132
+ const LOGO = [
133
+ ' ░▒▓██████▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░ ░▒▓██████▓▒░ ░▒▓██████▓▒░ ▒▓██████▓▒░░▒▓███████▓▒░░ ▒▓████████▓ ',
134
+ '░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ▒▓█▓▒░ ',
135
+ '░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░░▒▓█▓▒░▒▓█▓▒░ ',
136
+ '░▒▓████████▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░░▒▓████████▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░░▒▓█▓▒░▒▓██████▓▒ ',
137
+ '░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░░▒▓█▓▒░▒▓█▓▒░ ',
138
+ '░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ▒▓█▓▒░ ',
139
+ '░▒▓█▓▒░░▒▓█▓▒░░▒▓██████▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓██████▓▒░ ░▒▓██████▓▒░░▒▓███████▓▒░░ ▒▓████████▓ ',
140
+ ];
141
+ // Shade zones for 3D faceted diamond: [leftFace, midFace, shadowFace].
142
+ // Light comes from top-left, so left face is brightest.
143
+ const FACET_SHADES = [light, mid, shadow];
144
+ /** Clear the screen and move the cursor to the top-left (home). */
145
+ function clearToTop() {
146
+ // \x1b[2J clears the screen, \x1b[3J wipes scrollback, \x1b[H homes cursor.
147
+ // Matches how Claude Code pins its header at the top on launch.
148
+ if (process.stdout.isTTY)
149
+ process.stdout.write('\x1b[2J\x1b[3J\x1b[H');
150
+ }
151
+ /** A ruby-gradient horizontal rule spanning the terminal width (capped). */
152
+ function rule() {
153
+ const width = Math.min(process.stdout.columns ?? 80, 100);
154
+ return gradient('─'.repeat(width));
155
+ }
156
+ /**
157
+ * Apply 3D faceted lighting to a diamond row: bright → mid → shadow across
158
+ * the width of its solid-block run (three-zone split, 40/35/25).
159
+ */
160
+ function styleGemRow(row, shades) {
161
+ const match = row.match(/([█]+)/);
162
+ if (!match)
163
+ return row;
164
+ const blockStr = match[1];
165
+ const blockIdx = match.index;
166
+ const len = blockStr.length;
167
+ const leftLen = Math.max(1, Math.ceil(len * 0.40));
168
+ const midLen = Math.max(1, Math.ceil(len * 0.35));
169
+ const rightLen = Math.max(0, len - leftLen - midLen);
170
+ let styled = '';
171
+ if (leftLen > 0)
172
+ styled += shades[0](blockStr.slice(0, leftLen));
173
+ if (midLen > 0)
174
+ styled += shades[1](blockStr.slice(leftLen, leftLen + midLen));
175
+ if (rightLen > 0)
176
+ styled += shades[2](blockStr.slice(leftLen + midLen));
177
+ return row.slice(0, blockIdx) + styled + row.slice(blockIdx + len);
178
+ }
179
+ /** The gem's styled rows, centered above whatever text follows them. */
180
+ function gemBlockLines(indent) {
181
+ const pad = ' '.repeat(Math.max(0, indent));
182
+ return exports.GEM.map(row => pad + styleGemRow(row, FACET_SHADES));
183
+ }
184
+ /** Render the gem alone, centered above whatever text follows it. */
185
+ function renderGemBlock(indent) {
186
+ gemBlockLines(indent).forEach(line => console.log(line));
187
+ }
188
+ /**
189
+ * The banner's fully-styled lines, one string per terminal row:
190
+ * - Brilliant-cut gem centered above the wordmark, each row faceted
191
+ * left-bright / mid / shadow (light hits from the top-left).
192
+ * - LOGO text gets a left-bright / right-shadow treatment.
193
+ * - Session metadata (version, provider/model, cwd, tagline) below.
194
+ * Exposed separately from renderBanner() so the TUI can keep a copy and
195
+ * repaint the banner itself when it rebuilds the screen (e.g. returning
196
+ * from scroll mode) — the alt screen has no scrollback to recover it from.
197
+ */
198
+ function buildBannerLines(info) {
199
+ const lines = [''];
200
+ const gemIndent = Math.floor((LOGO[0].length - exports.GEM[0].length) / 2);
201
+ lines.push(...gemBlockLines(gemIndent), '');
202
+ LOGO.forEach(row => {
203
+ const midPoint = Math.floor(row.length / 2);
204
+ lines.push(light(row.slice(0, midPoint)) + shadow(row.slice(midPoint)));
205
+ });
206
+ lines.push('');
207
+ const meta = [
208
+ info.provider,
209
+ info.model,
210
+ info.language,
211
+ info.mode && `${info.mode} mode`,
212
+ ...(info.extras ?? []),
213
+ ].filter(Boolean).join(' · ');
214
+ lines.push(' ' + ruby.bold(`v${info.version}`) + (info.title ? dim(` — ${info.title}`) : ''));
215
+ if (meta)
216
+ lines.push(' ' + dim(meta));
217
+ lines.push(' ' + dim(info.cwd ?? process.cwd()));
218
+ lines.push(' ' + light.italic('"I don\'t try. I verify."'));
219
+ lines.push(rule());
220
+ return lines;
221
+ }
222
+ /** Render the banner pinned to the top of a cleared screen, so it reads like a real app header, not scrollback. */
223
+ function renderBanner(info) {
224
+ clearToTop();
225
+ buildBannerLines(info).forEach(line => console.log(line));
226
+ }
227
+ /** Standalone diamond (no logo, no info column) — splash contexts. */
11
228
  function renderDiamond() {
12
- console.log(r(' / / / \ \ \ '));
13
- console.log(w(' /__|____|__|__\ '));
14
- console.log(w(' \ | | | / '));
15
- console.log(r(' \ \ / / / '));
16
- console.log(r(' \ \ / // '));
17
- console.log(r(' \ \/ // '));
18
- console.log(g(' \ // '));
19
- console.log(g(' \// '));
20
- console.log(g(' V '));
229
+ console.log('');
230
+ renderGemBlock(2);
21
231
  console.log('');
22
232
  }
23
233
  //# sourceMappingURL=diamond.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diamond.js","sourceRoot":"","sources":["../../src/cli/diamond.ts"],"names":[],"mappings":";;;;;AAMA,sCAWC;AAjBD,kDAA0B;AAE1B,MAAM,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/B,MAAM,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/B,MAAM,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE/B,SAAgB,aAAa;IAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"diamond.js","sourceRoot":"","sources":["../../src/cli/diamond.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};