mythos-router 1.1.7 → 1.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +123 -0
- package/README.md +27 -6
- package/dist/cli.js +11 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/chat.d.ts +1 -0
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +100 -7
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/dream.d.ts.map +1 -1
- package/dist/commands/dream.js +15 -0
- package/dist/commands/dream.js.map +1 -1
- package/dist/commands/stats.d.ts +6 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +68 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/git.d.ts +28 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +81 -0
- package/dist/git.js.map +1 -0
- package/dist/memory.d.ts +15 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +239 -17
- package/dist/memory.js.map +1 -1
- package/dist/metrics.d.ts +14 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +37 -0
- package/dist/metrics.js.map +1 -0
- package/package.json +6 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## [1.1.9] — 2026-04-22
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **Budget Analytics & Cost Profiling** — Persistent tracking of token usage and API costs across all sessions, projects, and commands.
|
|
14
|
+
- **`mythos stats` Command** — New reporting engine for financial transparency. Aggregate costs by command, project, or time period (last N days).
|
|
15
|
+
- **Global Metrics Store** — Local append-only JSON store in `~/.mythos-router/metrics.json` for cross-project financial auditing.
|
|
16
|
+
- **Session Instrumentation** — Automated recording of chat sessions and memory compression (dream) events.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## [1.1.8] — 2026-04-20
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- **Self-Healing Memory (V4)** — Re-architected memory system with a dual Authority/Derivative model. `MEMORY.md` remains the sole source of truth, backed by a rebuildable SQLite index.
|
|
24
|
+
- **SQLite Derivative Index** — High-performance query acceleration layer using `node:sqlite`.
|
|
25
|
+
- **FTS5 Smart Search** — Intelligent, ranked text retrieval via FTS5 virtual tables with `unicode61` tokenization.
|
|
26
|
+
- **Integrity Signposting** — SHA-256 manifest hashing on startup ensuring zero drift between the authoritative log and the search index.
|
|
27
|
+
- **Atomic Rebuilds** — Transactional reconstruction logic (`BEGIN/COMMIT`) to ensure index consistency even during hard crashes.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
- **O(1) Append Protocol** — Optimized logging to use `appendFileSync` for better performance and durability under load.
|
|
31
|
+
- **Hardened Test Suite** — Expanded testing to verify SQLite initialization, FTS5 search ranking, and recovery logic.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## [1.1.7] — 2026-04-19
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
- **Interactive Inline Diffs** — High-fidelity terminal previews for dry-run mode. Review exact line changes with ANSI coloring and line numbering before applying.
|
|
39
|
+
- **Myers Diff Engine** — Implemented a zero-dependency, line-based shortest-edit-script algorithm in `src/diff.ts`.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- **SWD Protocol Upgrade** — Updated the "Capybara" system prompt to include the `CONTENT` field for 100% verifiability of file operations.
|
|
43
|
+
- **Enhanced Regex Parsing** — Robust multi-line block extraction for complex code transfers.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## [1.1.6] — 2026-04-19
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
- **Atomic SWD Rollbacks** — Transactional filesystem safety. If any file action in a batch fails verification, the entire operation is reverted to its pristine state.
|
|
51
|
+
- **Claude Opus 4.7 Support** — Official integration as the default `high` effort model.
|
|
52
|
+
- **Adaptive Thinking Protocol** — Real-time streaming of model reasoning in the CLI REPL.
|
|
53
|
+
- **Enhanced Dry-Run Previews** — Per-action confirmation prompts with detailed diff-style metadata.
|
|
54
|
+
- **Adaptive Thinking Mode** — Full support in `client.ts` for thought-process streaming.
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
- Updated model identifiers for Claude Opus 4.7 compatibility.
|
|
58
|
+
- Added SDK usage examples for programmatic integration.
|
|
59
|
+
- Updated pricing constants and tokenization logic for Opus 4.7 compatibility.
|
|
60
|
+
- Improved memory summarization "Dream" logic and session budget visualization.
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
- Deduplicated internal `progressBar` utility.
|
|
64
|
+
- `--effort` flag now validates input and warns on unrecognized values.
|
|
65
|
+
- Improved path traversal detection in `resolveSafePath`.
|
|
66
|
+
- Fixed memory leakage in long REPL sessions.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## [1.1.3] — 2026-04-17
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
- **Programmable SDK API** — Added the `src/index.ts` entry point and updated package module resolution.
|
|
74
|
+
- **Exposed Modules** — Native export of `{ runSWD, streamMessage, snapshotFiles }` for external integration.
|
|
75
|
+
- **SDK Documentation** — Integrated a new SDK Usage guide into the `README.md`.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## [1.1.2] — 2026-04-17
|
|
80
|
+
|
|
81
|
+
### Added
|
|
82
|
+
- **Multi-Model Orchestration** — Dynamic routing engine delegating tasks by effort (Opus 4.7 for Thinking, Sonnet 3.5 for Writing, Haiku 3 for Verifying).
|
|
83
|
+
- **Dynamic CLI Badging** — Terminal now explicitly displays the exact model assigned to the current session.
|
|
84
|
+
- **Protocol Tokenomics** — Added the official `TOKENOMICS.md`, formalizing the $MYTHOS Reasoning Tier Matrix.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## [1.1.1] — 2026-04-12
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
- **Zero-Drift Accuracy** — Filesystem scanner now recursively snapshots subdirectories for 100% drift detection.
|
|
92
|
+
- **True Dry-Run** — Fixed an issue where `MEMORY.md` was being created on disk even with the `--dry-run` flag.
|
|
93
|
+
- **Memory Example** — Enriched the default `MEMORY.md` to reflect real sessions with file modifications.
|
|
94
|
+
- **Codebase Polish** — Removed unused imports and obsolete Git-status checks.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## [1.1.0] — 2026-03-31
|
|
99
|
+
|
|
100
|
+
### Added
|
|
101
|
+
- **Financial Safety** — Hard budget cap and token tracker to prevent bill-shock.
|
|
102
|
+
- **Dry-Run Mode** — Preview all file operations with `[Y/n]` prompts before execution.
|
|
103
|
+
- **Strict Write Discipline** — Enhanced verification logic for cleaner code.
|
|
104
|
+
- **Zero-Drift Scanning** — Initial `verify` command implementation.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## [1.0.0] — 2026-03-29
|
|
109
|
+
|
|
110
|
+
### Added
|
|
111
|
+
- Initial release of mythos-router.
|
|
112
|
+
- **Strict Write Discipline (SWD)** — pre/post filesystem snapshot verification.
|
|
113
|
+
- **Adaptive Thinking** — Claude Opus with configurable effort levels.
|
|
114
|
+
- **Self-Healing Memory** — `MEMORY.md` auto-logging with verification status.
|
|
115
|
+
- **Correction Turns** — max 2 retries before yielding to human.
|
|
116
|
+
- **Dream/Verify Commands** — memory compression and drift detection.
|
|
117
|
+
|
|
118
|
+
[1.1.6]: https://github.com/thewaltero/mythos-router/compare/v1.1.3...v1.1.6
|
|
119
|
+
[1.1.3]: https://github.com/thewaltero/mythos-router/compare/v1.1.2...v1.1.3
|
|
120
|
+
[1.1.2]: https://github.com/thewaltero/mythos-router/compare/v1.1.1...v1.1.2
|
|
121
|
+
[1.1.1]: https://github.com/thewaltero/mythos-router/compare/v1.1.0...v1.1.1
|
|
122
|
+
[1.1.0]: https://github.com/thewaltero/mythos-router/compare/v1.0.0...v1.1.0
|
|
123
|
+
[1.0.0]: https://github.com/thewaltero/mythos-router/releases/tag/v1.0.0
|
package/README.md
CHANGED
|
@@ -49,12 +49,14 @@ Zero slop. Zero hallucinated state. Full adaptive thinking.
|
|
|
49
49
|
|---------|-------------|
|
|
50
50
|
| **Adaptive Thinking** | Opus 4.7 with configurable effort levels (high/medium/low) |
|
|
51
51
|
| **Strict Write Discipline** | Pre/post filesystem snapshots verify every model claim |
|
|
52
|
-
| **Self-Healing Memory** |
|
|
52
|
+
| **Self-Healing Memory** | Authority-based logging with a rebuildable SQLite FTS5 search index |
|
|
53
53
|
| **Correction Turns** | Model gets 2 retries to match filesystem reality, then yields |
|
|
54
|
-
| **
|
|
54
|
+
| **Integrity Gate** | `verify` command and startup hashing ensure zero drift |
|
|
55
55
|
| **Token Limiter** | Budget cap with graceful save — progress saved to MEMORY.md, never lose work |
|
|
56
56
|
| **Dry-Run Mode** | Preview every file operation before it executes — full transparency |
|
|
57
57
|
| **Verbose Tracing** | See exactly what the AI is parsing, thinking, and verifying |
|
|
58
|
+
| **Budget Analytics** | Persistent tracking of cost across sessions and projects via `stats` |
|
|
59
|
+
| **Session Branching** | Isolate AI actions in a namespaced git branch (`mythos/`) |
|
|
58
60
|
| **Zero Build** | Runs directly via `tsx` — no compile step in dev |
|
|
59
61
|
|
|
60
62
|
---
|
|
@@ -72,10 +74,12 @@ Choose the right model for the job via the `--effort` flag:
|
|
|
72
74
|
|
|
73
75
|
The `dream` command automatically uses `low` effort (Haiku) for cost-efficient memory compression, and `verify` uses lightweight scanning — so you only burn Opus tokens when you need deep reasoning.
|
|
74
76
|
|
|
75
|
-
### 2.
|
|
76
|
-
|
|
77
|
+
### 2. Authority-Based "Self-Healing" Memory
|
|
78
|
+
Most agentic systems stored state in opaque databases or messy JSON files. Mythos Router treats `MEMORY.md` as the **Sole Authority**.
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
Every action is logged in Markdown first. On startup, the system verifies the integrity of the log via SHA-256 manifest hashing and reconstructs a high-performance **Derivative SQLite Index** (FTS5). If the index drifts or the database is deleted, the system self-heals by rebuilding from the authoritative Markdown source.
|
|
81
|
+
|
|
82
|
+
As memory approaches capacity, the `dream` command delegates a compression phase to a low-cost model (Haiku 3), ensuring your "Sacred Log" is always lean and relevant.
|
|
79
83
|
|
|
80
84
|
---
|
|
81
85
|
|
|
@@ -122,6 +126,7 @@ mythos chat --effort low # Budget mode (Haiku 3)
|
|
|
122
126
|
mythos chat --effort medium # Balanced (Sonnet 3.5)
|
|
123
127
|
mythos chat --dry-run # Preview all file changes before executing
|
|
124
128
|
mythos chat --verbose # See full SWD traces and thinking
|
|
129
|
+
mythos chat --branch refactor # Isolate session in a fresh git branch
|
|
125
130
|
mythos chat --dry-run --verbose # Maximum transparency
|
|
126
131
|
```
|
|
127
132
|
|
|
@@ -196,6 +201,20 @@ mythos dream --dry-run # Preview without writing
|
|
|
196
201
|
|
|
197
202
|
When `MEMORY.md` exceeds 100 entries, older logs are compressed into a summary block using Claude (low effort, minimal token burn). Recent entries are preserved intact.
|
|
198
203
|
|
|
204
|
+
### `mythos stats` — Budget Analytics & Cost Profiling
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
mythos stats # Show all-time token usage and costs
|
|
208
|
+
mythos stats --days 7 # Filter for the last week
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Tracks every penny spent across all your projects. Costs are aggregated by:
|
|
212
|
+
- **Command** (e.g., `chat` vs `dream`)
|
|
213
|
+
- **Project** (directory name)
|
|
214
|
+
- **Time Period**
|
|
215
|
+
|
|
216
|
+
Data is stored locally in `~/.mythos-router/metrics.json`.
|
|
217
|
+
|
|
199
218
|
### 🔌 SDK Usage (For Agentic Systems)
|
|
200
219
|
|
|
201
220
|
`mythos-router` exposes its Strict Write Discipline engine for programmatic use:
|
|
@@ -232,11 +251,13 @@ mythos-router/
|
|
|
232
251
|
│ ├── budget.ts # Session budget limiter (token cap, turn cap)
|
|
233
252
|
│ ├── swd.ts # Strict Write Discipline + dry-run preview
|
|
234
253
|
│ ├── memory.ts # MEMORY.md self-healing manager (dry-run aware)
|
|
254
|
+
│ ├── metrics.ts # Global metrics store (persistent budget tracking)
|
|
235
255
|
│ ├── utils.ts # Terminal formatting, badges, prompts (zero-dep)
|
|
236
256
|
│ └── commands/
|
|
237
257
|
│ ├── chat.ts # Interactive REPL (budget + dry-run + verbose)
|
|
238
258
|
│ ├── verify.ts # Codebase ↔ Memory scanner (dry-run aware)
|
|
239
|
-
│
|
|
259
|
+
│ ├── dream.ts # Memory compression (dry-run aware)
|
|
260
|
+
│ └── stats.ts # Budget analytics reporter
|
|
240
261
|
├── test/ # Automated test suite (node:test)
|
|
241
262
|
├── .mythosignore # SWD scan exclusions
|
|
242
263
|
├── MEMORY.md # Auto-generated agentic memory
|
package/dist/cli.js
CHANGED
|
@@ -7,13 +7,14 @@ import { Command } from 'commander';
|
|
|
7
7
|
import { chatCommand } from './commands/chat.js';
|
|
8
8
|
import { verifyCommand } from './commands/verify.js';
|
|
9
9
|
import { dreamCommand } from './commands/dream.js';
|
|
10
|
+
import { statsCommand } from './commands/stats.js';
|
|
10
11
|
import { DEFAULT_MAX_TOKENS_PER_SESSION, DEFAULT_MAX_TURNS, } from './config.js';
|
|
11
12
|
const program = new Command();
|
|
12
13
|
program
|
|
13
14
|
.name('mythos')
|
|
14
15
|
.description('Capybara-tier CLI router — Claude Opus 4.7 with Adaptive Thinking, ' +
|
|
15
16
|
'Strict Write Discipline, and Self-Healing Memory.')
|
|
16
|
-
.version('1.1.
|
|
17
|
+
.version('1.1.9');
|
|
17
18
|
// ── mythos chat ──────────────────────────────────────────────
|
|
18
19
|
program
|
|
19
20
|
.command('chat')
|
|
@@ -24,6 +25,7 @@ program
|
|
|
24
25
|
.option('--no-budget', 'Disable budget limits (expert mode — use at your own risk)')
|
|
25
26
|
.option('--dry-run', 'Preview all file operations without executing them')
|
|
26
27
|
.option('--verbose', 'Show detailed SWD traces and memory operations')
|
|
28
|
+
.option('-b, --branch <name>', 'Run session in a new git branch for sandboxed reasoning')
|
|
27
29
|
.action(async (options) => {
|
|
28
30
|
await chatCommand(options);
|
|
29
31
|
});
|
|
@@ -44,6 +46,14 @@ program
|
|
|
44
46
|
.action(async (options) => {
|
|
45
47
|
await dreamCommand(options);
|
|
46
48
|
});
|
|
49
|
+
// ── mythos stats ─────────────────────────────────────────────
|
|
50
|
+
program
|
|
51
|
+
.command('stats')
|
|
52
|
+
.description('Show budget analytics and token usage across sessions')
|
|
53
|
+
.option('-d, --days <n>', 'Filter metrics by the last N days')
|
|
54
|
+
.action(async (options) => {
|
|
55
|
+
await statsCommand(options);
|
|
56
|
+
});
|
|
47
57
|
// ── Default: show help ───────────────────────────────────────
|
|
48
58
|
if (process.argv.length <= 2) {
|
|
49
59
|
// Import banner and show it before help
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,gEAAgE;AAChE,2BAA2B;AAC3B,+CAA+C;AAC/C,gEAAgE;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,qEAAqE;IACrE,mDAAmD,CACpD;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,gEAAgE;AAChE,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CACL,sBAAsB,EACtB,8CAA8C,EAC9C,MAAM,CACP;KACA,MAAM,CACL,kBAAkB,EAClB,oCAAoC,8BAA8B,CAAC,cAAc,EAAE,GAAG,EACtF,MAAM,CAAC,8BAA8B,CAAC,CACvC;KACA,MAAM,CACL,iBAAiB,EACjB,mCAAmC,iBAAiB,GAAG,EACvD,MAAM,CAAC,iBAAiB,CAAC,CAC1B;KACA,MAAM,CACL,aAAa,EACb,4DAA4D,CAC7D;KACA,MAAM,CACL,WAAW,EACX,oDAAoD,CACrD;KACA,MAAM,CACL,WAAW,EACX,gDAAgD,CACjD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,gEAAgE;AAChE,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CACL,WAAW,EACX,mDAAmD,CACpD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,gEAAgE;AAChE,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,aAAa,EAAE,mCAAmC,EAAE,KAAK,CAAC;KACjE,MAAM,CACL,WAAW,EACX,kDAAkD,CACnD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,gEAAgE;AAChE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAC7B,wCAAwC;IACxC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/chat.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAiDA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwWrE"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
import * as readline from 'node:readline';
|
|
7
7
|
import { streamMessage, formatTokenUsage, } from '../client.js';
|
|
8
8
|
import { snapshotFiles, runSWD, printSWDResults, parseFileActions, dryRunSWD, printVerboseParse, resolveSafePath, } from '../swd.js';
|
|
9
|
-
import {
|
|
9
|
+
import { saveSessionMetric } from '../metrics.js';
|
|
10
|
+
import * as path from 'node:path';
|
|
11
|
+
import { appendEntry, appendMetadataBlock, needsDream, printMemoryStatus, getMemoryContext, } from '../memory.js';
|
|
10
12
|
import { MAX_CORRECTION_RETRIES, BUDGET_WARN_PERCENT, MODELS, } from '../config.js';
|
|
11
|
-
import { c, Spinner, BANNER, hr, dryRunBadge, verboseBadge } from '../utils.js';
|
|
13
|
+
import { c, Spinner, BANNER, hr, dryRunBadge, verboseBadge, error as logError, warn as logWarn } from '../utils.js';
|
|
12
14
|
import { SessionBudget } from '../budget.js';
|
|
15
|
+
import { isGitRepo, hasUncommittedChanges, getCurrentBranch, createAndCheckoutBranch, commitChanges, getLatestHash, } from '../git.js';
|
|
13
16
|
// ── Chat Command ─────────────────────────────────────────────
|
|
14
17
|
export async function chatCommand(options) {
|
|
15
18
|
const effort = (options.effort ?? 'high');
|
|
@@ -21,6 +24,44 @@ export async function chatCommand(options) {
|
|
|
21
24
|
maxTokens: parseInt(options.maxTokens ?? '500000', 10) || 500_000,
|
|
22
25
|
maxTurns: parseInt(options.maxTurns ?? '25', 10) || 25,
|
|
23
26
|
}, budgetEnabled);
|
|
27
|
+
// ── Sandbox Branching ────────────────────────────────────
|
|
28
|
+
let sandboxBranch = null;
|
|
29
|
+
if (options.branch) {
|
|
30
|
+
if (!isGitRepo()) {
|
|
31
|
+
logError('Not a git repository. Cannot use --branch flag.');
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
const current = getCurrentBranch();
|
|
35
|
+
if (current.startsWith('mythos/')) {
|
|
36
|
+
logError(`Already inside a mythos branch session: ${c.bold}${current}${c.reset}`);
|
|
37
|
+
logError('Nested sandboxing is blocked to prevent Git ambiguity.');
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
if (hasUncommittedChanges()) {
|
|
41
|
+
logError('Uncommitted changes detected in working tree.');
|
|
42
|
+
logError('Please commit or stash your changes before starting a sandboxed session.');
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
// Generate unique branch name: mythos/<name>-YYYYMMDD-HHMM
|
|
46
|
+
const timestampStr = new Date()
|
|
47
|
+
.toISOString()
|
|
48
|
+
.replace(/[-T:]/g, '')
|
|
49
|
+
.slice(0, 12); // YYYYMMDDHHMM
|
|
50
|
+
const formattedTimestamp = `${timestampStr.slice(0, 8)}-${timestampStr.slice(8)}`;
|
|
51
|
+
const sanitizedName = options.branch
|
|
52
|
+
.toLowerCase()
|
|
53
|
+
.replace(/[^a-z0-9]/g, '-')
|
|
54
|
+
.replace(/-+/g, '-')
|
|
55
|
+
.replace(/^-|-$/g, '');
|
|
56
|
+
sandboxBranch = `mythos/${sanitizedName}-${formattedTimestamp}`;
|
|
57
|
+
try {
|
|
58
|
+
createAndCheckoutBranch(sandboxBranch);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
logError(`Failed to create sandbox branch: ${err.message}`);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
24
65
|
// ── Banner ───────────────────────────────────────────────
|
|
25
66
|
console.log(BANNER);
|
|
26
67
|
// Mode badges
|
|
@@ -35,6 +76,10 @@ export async function chatCommand(options) {
|
|
|
35
76
|
if (!budgetEnabled)
|
|
36
77
|
modes.push(`${c.yellow}budget: disabled${c.reset}`);
|
|
37
78
|
console.log(` ${modes.join(' · ')}`);
|
|
79
|
+
if (sandboxBranch) {
|
|
80
|
+
console.log(` ${c.green}✔ Sandbox mode enabled${c.reset}`);
|
|
81
|
+
console.log(` ${c.dim}branch: ${c.bold}${sandboxBranch}${c.reset}`);
|
|
82
|
+
}
|
|
38
83
|
if (dryRun) {
|
|
39
84
|
console.log(` ${dryRunBadge()} ${c.dim}Filesystem writes previewed. API calls execute normally.${c.reset}`);
|
|
40
85
|
}
|
|
@@ -86,9 +131,13 @@ export async function chatCommand(options) {
|
|
|
86
131
|
if (budgetEnabled && budget.status().turns > 0) {
|
|
87
132
|
console.log(`\n${budget.formatBar()}`);
|
|
88
133
|
}
|
|
134
|
+
if (sandboxBranch) {
|
|
135
|
+
console.log(`\n${c.green}✔ Session complete${c.reset} ${c.dim}(branch: ${c.bold}${sandboxBranch}${c.dim})${c.reset}`);
|
|
136
|
+
}
|
|
137
|
+
// ── Session Finalization (Auto-Commit + Metadata) ──
|
|
138
|
+
await finalizeSession(sandboxBranch, dryRun);
|
|
89
139
|
console.log(`\n${c.dim}Capybara signing off. 🐾${c.reset}\n`);
|
|
90
|
-
|
|
91
|
-
process.exit(0);
|
|
140
|
+
shutdown();
|
|
92
141
|
}
|
|
93
142
|
if (input === '/dream') {
|
|
94
143
|
console.log(`${c.dim}Use ${c.cyan}mythos dream${c.dim} command for memory compression.${c.reset}`);
|
|
@@ -117,12 +166,13 @@ export async function chatCommand(options) {
|
|
|
117
166
|
// ── Graceful Save: persist progress before stopping ──
|
|
118
167
|
const summary = budget.formatSessionSummary();
|
|
119
168
|
appendEntry(summary, '⏸ Session paused — budget reached', dryRun);
|
|
169
|
+
// Finalize session with metadata
|
|
170
|
+
await finalizeSession(sandboxBranch, dryRun);
|
|
120
171
|
const warning = budget.formatWarning();
|
|
121
172
|
if (warning)
|
|
122
173
|
console.log(`\n${warning}`);
|
|
123
174
|
console.log(`\n${budget.formatBar()}`);
|
|
124
|
-
|
|
125
|
-
process.exit(0);
|
|
175
|
+
shutdown();
|
|
126
176
|
}
|
|
127
177
|
// Add user message
|
|
128
178
|
conversationHistory.push({ role: 'user', content: input });
|
|
@@ -236,8 +286,25 @@ export async function chatCommand(options) {
|
|
|
236
286
|
console.log(hr());
|
|
237
287
|
rl.prompt();
|
|
238
288
|
});
|
|
239
|
-
|
|
289
|
+
function shutdown() {
|
|
290
|
+
const snap = budget.status();
|
|
291
|
+
if (snap.totalTokens > 0) {
|
|
292
|
+
saveSessionMetric({
|
|
293
|
+
command: 'chat',
|
|
294
|
+
project: path.basename(process.cwd()),
|
|
295
|
+
inputTokens: snap.inputTokens,
|
|
296
|
+
outputTokens: snap.outputTokens,
|
|
297
|
+
turns: snap.turns,
|
|
298
|
+
costUSD: snap.estimatedCostUSD,
|
|
299
|
+
durationMs: snap.elapsedMs,
|
|
300
|
+
timestamp: new Date().toISOString(),
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
rl.close();
|
|
240
304
|
process.exit(0);
|
|
305
|
+
}
|
|
306
|
+
rl.on('close', () => {
|
|
307
|
+
shutdown();
|
|
241
308
|
});
|
|
242
309
|
}
|
|
243
310
|
// ── Correction Loop ──────────────────────────────────────────
|
|
@@ -322,4 +389,30 @@ function summarizeActions(output, userInput) {
|
|
|
322
389
|
// Fallback: first 80 chars of user input
|
|
323
390
|
return `chat: ${userInput.slice(0, 80)}`;
|
|
324
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Handles deterministic session finalization:
|
|
394
|
+
* 1. Auto-commits changes (if git and dirty)
|
|
395
|
+
* 2. Records commit hash and branch in MEMORY.md metadata block
|
|
396
|
+
*/
|
|
397
|
+
async function finalizeSession(sandboxBranch, dryRun) {
|
|
398
|
+
let commitHash = 'none';
|
|
399
|
+
const repo = isGitRepo();
|
|
400
|
+
if (repo && !dryRun) {
|
|
401
|
+
try {
|
|
402
|
+
if (hasUncommittedChanges()) {
|
|
403
|
+
commitChanges('mythos: session end');
|
|
404
|
+
}
|
|
405
|
+
commitHash = getLatestHash();
|
|
406
|
+
}
|
|
407
|
+
catch (err) {
|
|
408
|
+
logWarn(`Auto-commit failed: ${err.message}`);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
const metadata = {
|
|
412
|
+
commit: commitHash,
|
|
413
|
+
branch: sandboxBranch || (repo ? getCurrentBranch() : 'none'),
|
|
414
|
+
timestamp_end: new Date().toISOString(),
|
|
415
|
+
};
|
|
416
|
+
appendMetadataBlock(metadata, dryRun);
|
|
417
|
+
}
|
|
325
418
|
//# sourceMappingURL=chat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qCAAqC;AACrC,oDAAoD;AACpD,8CAA8C;AAC9C,gEAAgE;AAEhE,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,GACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAW,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAY7C,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAgB,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;IAEzC,4DAA4D;IAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,aAAa,CAC9B;QACE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,QAAQ,EAAE,EAAE,CAAC,IAAI,OAAO;QACjE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;KACvD,EACD,aAAa,CACd,CAAC;IAEF,4DAA4D;IAC5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpB,cAAc;IACd,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,2DAA2D,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,iBAAiB;IACjB,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,GAAG,iBAAiB;YACtF,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,gBAAgB;YACjD,GAAG,CAAC,CAAC,KAAK,GAAG,mBAAmB,IAAI,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,iBAAiB,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAElB,MAAM,SAAS,GAAG;QAChB,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,OAAO;QAC7B,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,kBAAkB;QACzC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,cAAc;QACtC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,qBAAqB;KAC7C,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAExE,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG;KACjC,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAc,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,sDAAsD;IACtD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,IAAI,MAAM,EAAE,CAAC;QACX,mBAAmB,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,8CAA8C,MAAM,2EAA2E;SACzI,CAAC,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,8EAA8E;SACxF,CAAC,CAAC;IACL,CAAC;IAED,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC7D,4BAA4B;YAC5B,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAC9D,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,GAAG,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACnG,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,iBAAiB,EAAE,CAAC;YACpB,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACvC,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,sDAAsD,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACrF,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YACpB,wDAAwD;YACxD,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC9C,WAAW,CAAC,OAAO,EAAE,mCAAmC,EAAE,MAAM,CAAC,CAAC;YAElE,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YACvC,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACvC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE3D,yDAAyD;QACzD,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,mBAAmB,EACnB,MAAM;YACN,kBAAkB;YAClB,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;wBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;oBACnD,CAAC;oBACD,eAAe,GAAG,IAAI,CAAC;gBACzB,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC;oBACZ,uCAAuC;oBACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9C,OAAO,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,cAAc,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC;YACD,cAAc;YACd,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,IAAI,eAAe,IAAI,OAAO,EAAE,CAAC;wBAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,GAAG,cAAc,GAAG,CAAC;4BAC5B,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,8BAA8B,cAAc,WAAW,CAAC,CAAC,KAAK,EAAE;4BAChG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;wBACpD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC;oBACD,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,CACF,CAAC;YAEF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE3B,iBAAiB;YACjB,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAExE,sDAAsD;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;YAE3D,sDAAsD;YACtD,IAAI,OAAO,EAAE,CAAC;gBACZ,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAED,sDAAsD;YACtD,IAAI,MAAM,EAAE,CAAC;gBACX,4CAA4C;gBAC5C,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,WAAW,CACT,YAAY,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAAqB,EAC1D,kCAAkC,EAClC,MAAM,CACP,CAAC;gBACJ,CAAC;gBACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,WAAW,CACT,YAAY,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAAqB,EAC1D,sCAAsC,EACtC,MAAM,CACP,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,sEAAsE;gBACtE,MAAM,eAAe,GAAG,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAE9D,OAAO,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;gBACvD,MAAM,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;gBAEvD,yCAAyC;gBACzC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,eAAe,CAAC,SAAS,CAAC,CAAC;gBAE3B,kBAAkB;gBAClB,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;oBACtD,MAAM,cAAc,CAClB,mBAAmB,EACnB,SAAS,CAAC,gBAAgB,EAC1B,eAAe,EACf,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,CACP,CAAC;gBACJ,CAAC;gBAED,qDAAqD;gBACrD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7D,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ;oBACrC,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,SAAS,CAAC;gBACnF,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YACnD,CAAC;YAED,cAAc;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE/C,aAAa;YACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAEhC,iBAAiB;YACjB,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,EAAE,CAAC,CAAC;YACpC,CAAC;YAED,cAAc;YACd,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,MAAM,uCAAuC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAC3G,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,gBAAgB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,8CAA8C;YAC9C,mBAAmB,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,cAAc,CAC3B,OAAkB,EAClB,gBAAwB,EACxB,gBAAkC,EAClC,MAAmB,EACnB,OAAgB,EAChB,MAAqB,EACrB,MAAe;IAEf,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,sBAAsB,EAAE,OAAO,EAAE,EAAE,CAAC;QACnE,iCAAiC;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,yCAAyC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,MAAM,yBAAyB,OAAO,IAAI,sBAAsB,GAAG,CAAC,CAAC,KAAK,EAAE,CACpF,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,KAAK,CAAC,CAAC;QAClD,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAC5C,OAAO,EACP,MAAM,EACN,CAAC,KAAK,EAAE,EAAE;gBACR,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC9C,OAAO,CAAC,MAAM,CAAC,sBAAsB,OAAO,OAAO,CAAC,CAAC,MAAM,IAAI,cAAc,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACpG,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,sCAAsC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,kBAAkB,CAAC,IAAI;aACjC,CAAC,CAAC;YAEH,oCAAoC;YACpC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAE/E,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,eAAe,CAAC,SAAS,CAAC,CAAC;YAE3B,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,IAAI,OAAO,IAAI,sBAAsB,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,GAAG,gDAAgD,CAAC,CAAC,KAAK,EAAE,CACpE,CAAC;gBACF,WAAW,CACT,8BAA8B,EAC9B,2BAA2B,GAAG,sBAAsB,GAAG,WAAW,EAClE,MAAM,CACP,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC,OAAO,CACnD,8CAA8C,EAC9C,YAAY,sBAAsB,GAAG,OAAO,mCAAmC,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,GAAG,CAAC,CAAC,GAAG,wBAAwB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CACxD,CAAC;YACF,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,gEAAgE;AAEhE,+EAA+E;AAC/E,6EAA6E;AAC7E,SAAS,sBAAsB,CAAC,WAAmB;IACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,SAAiB;IACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,yCAAyC;IACzC,OAAO,SAAS,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dream.d.ts","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dream.d.ts","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"AAoBA,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HhB"}
|
package/dist/commands/dream.js
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
import { readMemory, writeCompressedMemory, initMemory, appendEntry, } from '../memory.js';
|
|
6
6
|
import { sendMessage } from '../client.js';
|
|
7
7
|
import { c, heading, hr, Spinner, success, info, warn, dryRunBadge } from '../utils.js';
|
|
8
|
+
import { saveSessionMetric } from '../metrics.js';
|
|
9
|
+
import { COST_PER_INPUT_TOKEN, COST_PER_OUTPUT_TOKEN } from '../config.js';
|
|
10
|
+
import * as path from 'node:path';
|
|
8
11
|
// ── Dream Command ────────────────────────────────────────────
|
|
9
12
|
export async function dreamCommand(options) {
|
|
10
13
|
const dryRun = options.dryRun === true;
|
|
@@ -73,6 +76,18 @@ export async function dreamCommand(options) {
|
|
|
73
76
|
console.log(`${c.dim} Before: ${beforeSize} chars → After: ${afterSize} chars (${ratio}% reduction)${c.reset}`);
|
|
74
77
|
console.log(`${c.dim} Tokens used: ${c.cyan}${response.inputTokens + response.outputTokens}${c.reset}`);
|
|
75
78
|
appendEntry(`dream: compressed ${toCompress.length} entries`, `✅ ${ratio}% reduction`, dryRun);
|
|
79
|
+
// Save metric
|
|
80
|
+
const costUSD = (response.inputTokens * COST_PER_INPUT_TOKEN) + (response.outputTokens * COST_PER_OUTPUT_TOKEN);
|
|
81
|
+
saveSessionMetric({
|
|
82
|
+
command: 'dream',
|
|
83
|
+
project: path.basename(process.cwd()),
|
|
84
|
+
inputTokens: response.inputTokens,
|
|
85
|
+
outputTokens: response.outputTokens,
|
|
86
|
+
turns: 1,
|
|
87
|
+
costUSD,
|
|
88
|
+
durationMs: 0, // Not easily trackable without start time, 0 is fine
|
|
89
|
+
timestamp: new Date().toISOString(),
|
|
90
|
+
});
|
|
76
91
|
}
|
|
77
92
|
catch (err) {
|
|
78
93
|
spinner.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,sCAAsC;AACtC,4CAA4C;AAC5C,gEAAgE;AAEhE,OAAO,EACL,UAAU,EACV,qBAAqB,EAErB,UAAU,EACV,WAAW,GAEZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEvE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { loadSessionMetrics } from '../metrics.js';
|
|
2
|
+
import { c, hr, BANNER } from '../utils.js';
|
|
3
|
+
export async function statsCommand(options) {
|
|
4
|
+
const allMetrics = loadSessionMetrics();
|
|
5
|
+
if (allMetrics.length === 0) {
|
|
6
|
+
console.log(BANNER);
|
|
7
|
+
console.log(` ${c.dim}No metrics found yet. Start chatting to log some metrics!${c.reset}`);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
// Filter by days if provided
|
|
11
|
+
let metrics = allMetrics;
|
|
12
|
+
if (options.days) {
|
|
13
|
+
const days = parseInt(options.days, 10);
|
|
14
|
+
if (!isNaN(days)) {
|
|
15
|
+
const cutoff = new Date();
|
|
16
|
+
cutoff.setDate(cutoff.getDate() - days);
|
|
17
|
+
metrics = allMetrics.filter(m => new Date(m.timestamp) >= cutoff);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
let totalCost = 0;
|
|
21
|
+
let totalInputTokens = 0;
|
|
22
|
+
let totalOutputTokens = 0;
|
|
23
|
+
let totalTurns = 0;
|
|
24
|
+
const costByCommand = {};
|
|
25
|
+
const costByProject = {};
|
|
26
|
+
for (const m of metrics) {
|
|
27
|
+
totalCost += m.costUSD;
|
|
28
|
+
totalInputTokens += m.inputTokens;
|
|
29
|
+
totalOutputTokens += m.outputTokens;
|
|
30
|
+
totalTurns += m.turns;
|
|
31
|
+
costByCommand[m.command] = (costByCommand[m.command] || 0) + m.costUSD;
|
|
32
|
+
costByProject[m.project] = (costByProject[m.project] || 0) + m.costUSD;
|
|
33
|
+
}
|
|
34
|
+
console.log(BANNER);
|
|
35
|
+
console.log(` ${c.cyan}Budget Analytics & Cost Profiling${c.reset}`);
|
|
36
|
+
if (options.days) {
|
|
37
|
+
console.log(` ${c.dim}Showing data for the last ${options.days} days${c.reset}`);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.log(` ${c.dim}Showing all-time data${c.reset}`);
|
|
41
|
+
}
|
|
42
|
+
console.log(hr());
|
|
43
|
+
// Overall Stats
|
|
44
|
+
console.log(`${c.bold}Overall Usage${c.reset}`);
|
|
45
|
+
console.log(` Total Sessions : ${metrics.length}`);
|
|
46
|
+
console.log(` Total Turns : ${totalTurns}`);
|
|
47
|
+
console.log(` Input Tokens : ${totalInputTokens.toLocaleString()}`);
|
|
48
|
+
console.log(` Output Tokens : ${totalOutputTokens.toLocaleString()}`);
|
|
49
|
+
console.log(` Total Cost : ${c.green}$${totalCost.toFixed(4)}${c.reset}`);
|
|
50
|
+
console.log('');
|
|
51
|
+
// Cost by Command
|
|
52
|
+
console.log(`${c.bold}Cost by Command${c.reset}`);
|
|
53
|
+
const sortedCommands = Object.entries(costByCommand).sort((a, b) => b[1] - a[1]);
|
|
54
|
+
for (const [cmd, cost] of sortedCommands) {
|
|
55
|
+
const percentage = totalCost > 0 ? ((cost / totalCost) * 100).toFixed(1) : '0.0';
|
|
56
|
+
console.log(` ${cmd.padEnd(14)} : ${c.green}$${cost.toFixed(4)}${c.reset} ${c.dim}(${percentage}%)${c.reset}`);
|
|
57
|
+
}
|
|
58
|
+
console.log('');
|
|
59
|
+
// Cost by Project
|
|
60
|
+
console.log(`${c.bold}Cost by Project${c.reset}`);
|
|
61
|
+
const sortedProjects = Object.entries(costByProject).sort((a, b) => b[1] - a[1]);
|
|
62
|
+
for (const [proj, cost] of sortedProjects) {
|
|
63
|
+
const percentage = totalCost > 0 ? ((cost / totalCost) * 100).toFixed(1) : '0.0';
|
|
64
|
+
console.log(` ${proj.padEnd(14)} : ${c.green}$${cost.toFixed(4)}${c.reset} ${c.dim}(${percentage}%)${c.reset}`);
|
|
65
|
+
}
|
|
66
|
+
console.log(hr());
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=stats.js.map
|