@hasna/terminal 2.3.0 → 2.3.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 (267) hide show
  1. package/dist/App.js +404 -0
  2. package/dist/Browse.js +79 -0
  3. package/dist/FuzzyPicker.js +47 -0
  4. package/dist/Onboarding.js +51 -0
  5. package/dist/Spinner.js +12 -0
  6. package/dist/StatusBar.js +49 -0
  7. package/dist/ai.js +322 -0
  8. package/dist/cache.js +41 -0
  9. package/dist/cli.js +64 -16
  10. package/dist/command-rewriter.js +64 -0
  11. package/dist/command-validator.js +86 -0
  12. package/dist/compression.js +107 -0
  13. package/dist/context-hints.js +275 -0
  14. package/dist/diff-cache.js +107 -0
  15. package/dist/discover.js +212 -0
  16. package/dist/economy.js +123 -0
  17. package/dist/expand-store.js +38 -0
  18. package/dist/file-cache.js +72 -0
  19. package/dist/file-index.js +62 -0
  20. package/dist/history.js +62 -0
  21. package/dist/lazy-executor.js +54 -0
  22. package/dist/line-dedup.js +59 -0
  23. package/dist/loop-detector.js +75 -0
  24. package/dist/mcp/install.js +98 -0
  25. package/dist/mcp/server.js +569 -0
  26. package/dist/noise-filter.js +86 -0
  27. package/dist/output-processor.js +129 -0
  28. package/dist/output-router.js +41 -0
  29. package/dist/output-store.js +111 -0
  30. package/dist/parsers/base.js +2 -0
  31. package/dist/parsers/build.js +64 -0
  32. package/dist/parsers/errors.js +101 -0
  33. package/dist/parsers/files.js +78 -0
  34. package/dist/parsers/git.js +99 -0
  35. package/dist/parsers/index.js +48 -0
  36. package/dist/parsers/tests.js +89 -0
  37. package/dist/providers/anthropic.js +39 -0
  38. package/dist/providers/base.js +4 -0
  39. package/dist/providers/cerebras.js +95 -0
  40. package/dist/providers/groq.js +95 -0
  41. package/dist/providers/index.js +73 -0
  42. package/dist/providers/xai.js +95 -0
  43. package/dist/recipes/model.js +20 -0
  44. package/dist/recipes/storage.js +136 -0
  45. package/dist/search/content-search.js +68 -0
  46. package/dist/search/file-search.js +61 -0
  47. package/dist/search/filters.js +34 -0
  48. package/dist/search/index.js +5 -0
  49. package/dist/search/semantic.js +320 -0
  50. package/dist/session-boot.js +59 -0
  51. package/dist/session-context.js +55 -0
  52. package/dist/sessions-db.js +173 -0
  53. package/dist/smart-display.js +286 -0
  54. package/dist/snapshots.js +51 -0
  55. package/dist/supervisor.js +112 -0
  56. package/dist/test-watchlist.js +131 -0
  57. package/dist/tool-profiles.js +122 -0
  58. package/dist/tree.js +94 -0
  59. package/dist/usage-cache.js +65 -0
  60. package/package.json +8 -1
  61. package/src/ai.ts +8 -0
  62. package/src/cli.tsx +57 -18
  63. package/src/output-processor.ts +6 -1
  64. package/src/output-store.ts +58 -12
  65. package/src/tool-profiles.ts +139 -0
  66. package/.claude/scheduled_tasks.lock +0 -1
  67. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
  68. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  69. package/CONTRIBUTING.md +0 -80
  70. package/benchmarks/benchmark.mjs +0 -115
  71. package/imported_modules.txt +0 -0
  72. package/temp/rtk/.claude/agents/code-reviewer.md +0 -221
  73. package/temp/rtk/.claude/agents/debugger.md +0 -519
  74. package/temp/rtk/.claude/agents/rtk-testing-specialist.md +0 -461
  75. package/temp/rtk/.claude/agents/rust-rtk.md +0 -511
  76. package/temp/rtk/.claude/agents/technical-writer.md +0 -355
  77. package/temp/rtk/.claude/commands/diagnose.md +0 -352
  78. package/temp/rtk/.claude/commands/test-routing.md +0 -362
  79. package/temp/rtk/.claude/hooks/bash/pre-commit-format.sh +0 -16
  80. package/temp/rtk/.claude/hooks/rtk-rewrite.sh +0 -70
  81. package/temp/rtk/.claude/hooks/rtk-suggest.sh +0 -152
  82. package/temp/rtk/.claude/rules/cli-testing.md +0 -526
  83. package/temp/rtk/.claude/skills/issue-triage/SKILL.md +0 -348
  84. package/temp/rtk/.claude/skills/issue-triage/templates/issue-comment.md +0 -134
  85. package/temp/rtk/.claude/skills/performance.md +0 -435
  86. package/temp/rtk/.claude/skills/pr-triage/SKILL.md +0 -315
  87. package/temp/rtk/.claude/skills/pr-triage/templates/review-comment.md +0 -71
  88. package/temp/rtk/.claude/skills/repo-recap.md +0 -206
  89. package/temp/rtk/.claude/skills/rtk-tdd/SKILL.md +0 -78
  90. package/temp/rtk/.claude/skills/rtk-tdd/references/testing-patterns.md +0 -124
  91. package/temp/rtk/.claude/skills/security-guardian.md +0 -503
  92. package/temp/rtk/.claude/skills/ship.md +0 -404
  93. package/temp/rtk/.github/workflows/benchmark.yml +0 -34
  94. package/temp/rtk/.github/workflows/dco-check.yaml +0 -12
  95. package/temp/rtk/.github/workflows/release-please.yml +0 -51
  96. package/temp/rtk/.github/workflows/release.yml +0 -343
  97. package/temp/rtk/.github/workflows/security-check.yml +0 -135
  98. package/temp/rtk/.github/workflows/validate-docs.yml +0 -78
  99. package/temp/rtk/.release-please-manifest.json +0 -3
  100. package/temp/rtk/ARCHITECTURE.md +0 -1491
  101. package/temp/rtk/CHANGELOG.md +0 -640
  102. package/temp/rtk/CLAUDE.md +0 -605
  103. package/temp/rtk/CONTRIBUTING.md +0 -199
  104. package/temp/rtk/Cargo.lock +0 -1668
  105. package/temp/rtk/Cargo.toml +0 -64
  106. package/temp/rtk/Formula/rtk.rb +0 -43
  107. package/temp/rtk/INSTALL.md +0 -390
  108. package/temp/rtk/LICENSE +0 -21
  109. package/temp/rtk/README.md +0 -386
  110. package/temp/rtk/README_es.md +0 -159
  111. package/temp/rtk/README_fr.md +0 -197
  112. package/temp/rtk/README_ja.md +0 -159
  113. package/temp/rtk/README_ko.md +0 -159
  114. package/temp/rtk/README_zh.md +0 -167
  115. package/temp/rtk/ROADMAP.md +0 -15
  116. package/temp/rtk/SECURITY.md +0 -217
  117. package/temp/rtk/TEST_EXEC_TIME.md +0 -102
  118. package/temp/rtk/build.rs +0 -57
  119. package/temp/rtk/docs/AUDIT_GUIDE.md +0 -432
  120. package/temp/rtk/docs/FEATURES.md +0 -1410
  121. package/temp/rtk/docs/TROUBLESHOOTING.md +0 -309
  122. package/temp/rtk/docs/filter-workflow.md +0 -102
  123. package/temp/rtk/docs/images/gain-dashboard.jpg +0 -0
  124. package/temp/rtk/docs/tracking.md +0 -583
  125. package/temp/rtk/hooks/opencode-rtk.ts +0 -39
  126. package/temp/rtk/hooks/rtk-awareness.md +0 -29
  127. package/temp/rtk/hooks/rtk-rewrite.sh +0 -61
  128. package/temp/rtk/hooks/test-rtk-rewrite.sh +0 -442
  129. package/temp/rtk/install.sh +0 -124
  130. package/temp/rtk/release-please-config.json +0 -10
  131. package/temp/rtk/scripts/benchmark.sh +0 -592
  132. package/temp/rtk/scripts/check-installation.sh +0 -162
  133. package/temp/rtk/scripts/install-local.sh +0 -37
  134. package/temp/rtk/scripts/rtk-economics.sh +0 -137
  135. package/temp/rtk/scripts/test-all.sh +0 -561
  136. package/temp/rtk/scripts/test-aristote.sh +0 -227
  137. package/temp/rtk/scripts/test-tracking.sh +0 -79
  138. package/temp/rtk/scripts/update-readme-metrics.sh +0 -32
  139. package/temp/rtk/scripts/validate-docs.sh +0 -73
  140. package/temp/rtk/src/aws_cmd.rs +0 -880
  141. package/temp/rtk/src/binlog.rs +0 -1645
  142. package/temp/rtk/src/cargo_cmd.rs +0 -1727
  143. package/temp/rtk/src/cc_economics.rs +0 -1157
  144. package/temp/rtk/src/ccusage.rs +0 -340
  145. package/temp/rtk/src/config.rs +0 -187
  146. package/temp/rtk/src/container.rs +0 -855
  147. package/temp/rtk/src/curl_cmd.rs +0 -134
  148. package/temp/rtk/src/deps.rs +0 -268
  149. package/temp/rtk/src/diff_cmd.rs +0 -367
  150. package/temp/rtk/src/discover/mod.rs +0 -274
  151. package/temp/rtk/src/discover/provider.rs +0 -388
  152. package/temp/rtk/src/discover/registry.rs +0 -2022
  153. package/temp/rtk/src/discover/report.rs +0 -202
  154. package/temp/rtk/src/discover/rules.rs +0 -667
  155. package/temp/rtk/src/display_helpers.rs +0 -402
  156. package/temp/rtk/src/dotnet_cmd.rs +0 -1771
  157. package/temp/rtk/src/dotnet_format_report.rs +0 -133
  158. package/temp/rtk/src/dotnet_trx.rs +0 -593
  159. package/temp/rtk/src/env_cmd.rs +0 -204
  160. package/temp/rtk/src/filter.rs +0 -462
  161. package/temp/rtk/src/filters/README.md +0 -52
  162. package/temp/rtk/src/filters/ansible-playbook.toml +0 -34
  163. package/temp/rtk/src/filters/basedpyright.toml +0 -47
  164. package/temp/rtk/src/filters/biome.toml +0 -45
  165. package/temp/rtk/src/filters/brew-install.toml +0 -37
  166. package/temp/rtk/src/filters/composer-install.toml +0 -40
  167. package/temp/rtk/src/filters/df.toml +0 -16
  168. package/temp/rtk/src/filters/dotnet-build.toml +0 -64
  169. package/temp/rtk/src/filters/du.toml +0 -16
  170. package/temp/rtk/src/filters/fail2ban-client.toml +0 -15
  171. package/temp/rtk/src/filters/gcc.toml +0 -49
  172. package/temp/rtk/src/filters/gcloud.toml +0 -22
  173. package/temp/rtk/src/filters/hadolint.toml +0 -24
  174. package/temp/rtk/src/filters/helm.toml +0 -29
  175. package/temp/rtk/src/filters/iptables.toml +0 -27
  176. package/temp/rtk/src/filters/jj.toml +0 -28
  177. package/temp/rtk/src/filters/jq.toml +0 -24
  178. package/temp/rtk/src/filters/make.toml +0 -41
  179. package/temp/rtk/src/filters/markdownlint.toml +0 -24
  180. package/temp/rtk/src/filters/mix-compile.toml +0 -27
  181. package/temp/rtk/src/filters/mix-format.toml +0 -15
  182. package/temp/rtk/src/filters/mvn-build.toml +0 -44
  183. package/temp/rtk/src/filters/oxlint.toml +0 -43
  184. package/temp/rtk/src/filters/ping.toml +0 -63
  185. package/temp/rtk/src/filters/pio-run.toml +0 -40
  186. package/temp/rtk/src/filters/poetry-install.toml +0 -50
  187. package/temp/rtk/src/filters/pre-commit.toml +0 -35
  188. package/temp/rtk/src/filters/ps.toml +0 -16
  189. package/temp/rtk/src/filters/quarto-render.toml +0 -41
  190. package/temp/rtk/src/filters/rsync.toml +0 -48
  191. package/temp/rtk/src/filters/shellcheck.toml +0 -27
  192. package/temp/rtk/src/filters/shopify-theme.toml +0 -29
  193. package/temp/rtk/src/filters/skopeo.toml +0 -45
  194. package/temp/rtk/src/filters/sops.toml +0 -16
  195. package/temp/rtk/src/filters/ssh.toml +0 -44
  196. package/temp/rtk/src/filters/stat.toml +0 -34
  197. package/temp/rtk/src/filters/swift-build.toml +0 -41
  198. package/temp/rtk/src/filters/systemctl-status.toml +0 -33
  199. package/temp/rtk/src/filters/terraform-plan.toml +0 -35
  200. package/temp/rtk/src/filters/tofu-fmt.toml +0 -16
  201. package/temp/rtk/src/filters/tofu-init.toml +0 -38
  202. package/temp/rtk/src/filters/tofu-plan.toml +0 -35
  203. package/temp/rtk/src/filters/tofu-validate.toml +0 -17
  204. package/temp/rtk/src/filters/trunk-build.toml +0 -39
  205. package/temp/rtk/src/filters/ty.toml +0 -50
  206. package/temp/rtk/src/filters/uv-sync.toml +0 -37
  207. package/temp/rtk/src/filters/xcodebuild.toml +0 -99
  208. package/temp/rtk/src/filters/yamllint.toml +0 -25
  209. package/temp/rtk/src/find_cmd.rs +0 -598
  210. package/temp/rtk/src/format_cmd.rs +0 -386
  211. package/temp/rtk/src/gain.rs +0 -723
  212. package/temp/rtk/src/gh_cmd.rs +0 -1651
  213. package/temp/rtk/src/git.rs +0 -2012
  214. package/temp/rtk/src/go_cmd.rs +0 -592
  215. package/temp/rtk/src/golangci_cmd.rs +0 -254
  216. package/temp/rtk/src/grep_cmd.rs +0 -288
  217. package/temp/rtk/src/gt_cmd.rs +0 -810
  218. package/temp/rtk/src/hook_audit_cmd.rs +0 -283
  219. package/temp/rtk/src/hook_check.rs +0 -171
  220. package/temp/rtk/src/init.rs +0 -1859
  221. package/temp/rtk/src/integrity.rs +0 -537
  222. package/temp/rtk/src/json_cmd.rs +0 -231
  223. package/temp/rtk/src/learn/detector.rs +0 -628
  224. package/temp/rtk/src/learn/mod.rs +0 -119
  225. package/temp/rtk/src/learn/report.rs +0 -184
  226. package/temp/rtk/src/lint_cmd.rs +0 -694
  227. package/temp/rtk/src/local_llm.rs +0 -316
  228. package/temp/rtk/src/log_cmd.rs +0 -248
  229. package/temp/rtk/src/ls.rs +0 -324
  230. package/temp/rtk/src/main.rs +0 -2482
  231. package/temp/rtk/src/mypy_cmd.rs +0 -389
  232. package/temp/rtk/src/next_cmd.rs +0 -241
  233. package/temp/rtk/src/npm_cmd.rs +0 -236
  234. package/temp/rtk/src/parser/README.md +0 -267
  235. package/temp/rtk/src/parser/error.rs +0 -46
  236. package/temp/rtk/src/parser/formatter.rs +0 -336
  237. package/temp/rtk/src/parser/mod.rs +0 -311
  238. package/temp/rtk/src/parser/types.rs +0 -119
  239. package/temp/rtk/src/pip_cmd.rs +0 -302
  240. package/temp/rtk/src/playwright_cmd.rs +0 -479
  241. package/temp/rtk/src/pnpm_cmd.rs +0 -573
  242. package/temp/rtk/src/prettier_cmd.rs +0 -221
  243. package/temp/rtk/src/prisma_cmd.rs +0 -482
  244. package/temp/rtk/src/psql_cmd.rs +0 -382
  245. package/temp/rtk/src/pytest_cmd.rs +0 -384
  246. package/temp/rtk/src/read.rs +0 -217
  247. package/temp/rtk/src/rewrite_cmd.rs +0 -50
  248. package/temp/rtk/src/ruff_cmd.rs +0 -402
  249. package/temp/rtk/src/runner.rs +0 -271
  250. package/temp/rtk/src/summary.rs +0 -297
  251. package/temp/rtk/src/tee.rs +0 -405
  252. package/temp/rtk/src/telemetry.rs +0 -248
  253. package/temp/rtk/src/toml_filter.rs +0 -1655
  254. package/temp/rtk/src/tracking.rs +0 -1416
  255. package/temp/rtk/src/tree.rs +0 -209
  256. package/temp/rtk/src/tsc_cmd.rs +0 -259
  257. package/temp/rtk/src/utils.rs +0 -432
  258. package/temp/rtk/src/verify_cmd.rs +0 -47
  259. package/temp/rtk/src/vitest_cmd.rs +0 -385
  260. package/temp/rtk/src/wc_cmd.rs +0 -401
  261. package/temp/rtk/src/wget_cmd.rs +0 -260
  262. package/temp/rtk/tests/fixtures/dotnet/build_failed.txt +0 -11
  263. package/temp/rtk/tests/fixtures/dotnet/format_changes.json +0 -31
  264. package/temp/rtk/tests/fixtures/dotnet/format_empty.json +0 -1
  265. package/temp/rtk/tests/fixtures/dotnet/format_success.json +0 -12
  266. package/temp/rtk/tests/fixtures/dotnet/test_failed.txt +0 -18
  267. package/tsconfig.json +0 -15
@@ -1,162 +0,0 @@
1
- #!/bin/bash
2
- # RTK Installation Verification Script
3
- # Helps diagnose if you have the correct rtk (Token Killer) installed
4
-
5
- set -e
6
-
7
- RED='\033[0;31m'
8
- GREEN='\033[0;32m'
9
- YELLOW='\033[1;33m'
10
- NC='\033[0m' # No Color
11
-
12
- echo "═══════════════════════════════════════════════════════════"
13
- echo " RTK Installation Verification"
14
- echo "═══════════════════════════════════════════════════════════"
15
- echo ""
16
-
17
- # Check 1: RTK installed?
18
- echo "1. Checking if RTK is installed..."
19
- if command -v rtk &> /dev/null; then
20
- echo -e " ${GREEN}✅ RTK is installed${NC}"
21
- RTK_PATH=$(which rtk)
22
- echo " Location: $RTK_PATH"
23
- else
24
- echo -e " ${RED}❌ RTK is NOT installed${NC}"
25
- echo ""
26
- echo " Install with:"
27
- echo " curl -fsSL https://github.com/rtk-ai/rtk/blob/master/install.sh| sh"
28
- exit 1
29
- fi
30
- echo ""
31
-
32
- # Check 2: RTK version
33
- echo "2. Checking RTK version..."
34
- RTK_VERSION=$(rtk --version 2>/dev/null || echo "unknown")
35
- echo " Version: $RTK_VERSION"
36
- echo ""
37
-
38
- # Check 3: Is it Token Killer or Type Kit?
39
- echo "3. Verifying this is Token Killer (not Type Kit)..."
40
- if rtk gain &>/dev/null || rtk gain --help &>/dev/null; then
41
- echo -e " ${GREEN}✅ CORRECT - You have Rust Token Killer${NC}"
42
- CORRECT_RTK=true
43
- else
44
- echo -e " ${RED}❌ WRONG - You have Rust Type Kit (different project!)${NC}"
45
- echo ""
46
- echo " You installed the wrong package. Fix it with:"
47
- echo " cargo uninstall rtk"
48
- echo " curl -fsSL https://github.com/rtk-ai/rtk/blob/master/install.sh | sh"
49
- CORRECT_RTK=false
50
- fi
51
- echo ""
52
-
53
- if [ "$CORRECT_RTK" = false ]; then
54
- echo "═══════════════════════════════════════════════════════════"
55
- echo -e "${RED}INSTALLATION CHECK FAILED${NC}"
56
- echo "═══════════════════════════════════════════════════════════"
57
- exit 1
58
- fi
59
-
60
- # Check 4: Available features
61
- echo "4. Checking available features..."
62
- FEATURES=()
63
- MISSING_FEATURES=()
64
-
65
- check_command() {
66
- local cmd=$1
67
- local name=$2
68
- if rtk --help 2>/dev/null | grep -qw "$cmd"; then
69
- echo -e " ${GREEN}✅${NC} $name"
70
- FEATURES+=("$name")
71
- else
72
- echo -e " ${YELLOW}⚠️${NC} $name (missing - upgrade to fork?)"
73
- MISSING_FEATURES+=("$name")
74
- fi
75
- }
76
-
77
- check_command "gain" "Token savings analytics"
78
- check_command "git" "Git operations"
79
- check_command "gh" "GitHub CLI"
80
- check_command "pnpm" "pnpm support"
81
- check_command "vitest" "Vitest test runner"
82
- check_command "lint" "ESLint/linters"
83
- check_command "tsc" "TypeScript compiler"
84
- check_command "next" "Next.js"
85
- check_command "prettier" "Prettier"
86
- check_command "playwright" "Playwright E2E"
87
- check_command "prisma" "Prisma ORM"
88
- check_command "discover" "Discover missed savings"
89
-
90
- echo ""
91
-
92
- # Check 5: CLAUDE.md initialization
93
- echo "5. Checking Claude Code integration..."
94
- GLOBAL_INIT=false
95
- LOCAL_INIT=false
96
-
97
- if [ -f "$HOME/.claude/CLAUDE.md" ] && grep -q "rtk" "$HOME/.claude/CLAUDE.md"; then
98
- echo -e " ${GREEN}✅${NC} Global CLAUDE.md initialized (~/.claude/CLAUDE.md)"
99
- GLOBAL_INIT=true
100
- else
101
- echo -e " ${YELLOW}⚠️${NC} Global CLAUDE.md not initialized"
102
- echo " Run: rtk init --global"
103
- fi
104
-
105
- if [ -f "./CLAUDE.md" ] && grep -q "rtk" "./CLAUDE.md"; then
106
- echo -e " ${GREEN}✅${NC} Local CLAUDE.md initialized (./CLAUDE.md)"
107
- LOCAL_INIT=true
108
- else
109
- echo -e " ${YELLOW}⚠️${NC} Local CLAUDE.md not initialized in current directory"
110
- echo " Run: rtk init (in your project directory)"
111
- fi
112
- echo ""
113
-
114
- # Check 6: Auto-rewrite hook
115
- echo "6. Checking auto-rewrite hook (optional but recommended)..."
116
- if [ -f "$HOME/.claude/hooks/rtk-rewrite.sh" ]; then
117
- echo -e " ${GREEN}✅${NC} Hook script installed"
118
- if [ -f "$HOME/.claude/settings.json" ] && grep -q "rtk-rewrite.sh" "$HOME/.claude/settings.json"; then
119
- echo -e " ${GREEN}✅${NC} Hook enabled in settings.json"
120
- else
121
- echo -e " ${YELLOW}⚠️${NC} Hook script exists but not enabled in settings.json"
122
- echo " See README.md 'Auto-Rewrite Hook' section"
123
- fi
124
- else
125
- echo -e " ${YELLOW}⚠️${NC} Auto-rewrite hook not installed (optional)"
126
- echo " Install: cp .claude/hooks/rtk-rewrite.sh ~/.claude/hooks/"
127
- fi
128
- echo ""
129
-
130
- # Summary
131
- echo "═══════════════════════════════════════════════════════════"
132
- echo " SUMMARY"
133
- echo "═══════════════════════════════════════════════════════════"
134
-
135
- if [ ${#MISSING_FEATURES[@]} -gt 0 ]; then
136
- echo -e "${YELLOW}⚠️ You have a basic RTK installation${NC}"
137
- echo ""
138
- echo "Missing features:"
139
- for feature in "${MISSING_FEATURES[@]}"; do
140
- echo " - $feature"
141
- done
142
- echo ""
143
- echo "To get all features, install the fork:"
144
- echo " cargo uninstall rtk"
145
- echo " curl -fsSL https://github.com/rtk-ai/rtk/blob/master/install.sh | sh"
146
- echo " cd rtk && git checkout feat/all-features"
147
- echo " cargo install --path . --force"
148
- else
149
- echo -e "${GREEN}✅ Full-featured RTK installation detected${NC}"
150
- fi
151
-
152
- echo ""
153
-
154
- if [ "$GLOBAL_INIT" = false ] && [ "$LOCAL_INIT" = false ]; then
155
- echo -e "${YELLOW}⚠️ RTK not initialized for Claude Code${NC}"
156
- echo " Run: rtk init --global (for all projects)"
157
- echo " Or: rtk init (for this project only)"
158
- fi
159
-
160
- echo ""
161
- echo "Need help? See docs/TROUBLESHOOTING.md"
162
- echo "═══════════════════════════════════════════════════════════"
@@ -1,37 +0,0 @@
1
- #!/bin/bash
2
- # Install RTK from a local release build (builds from source, no network download).
3
-
4
- set -euo pipefail
5
-
6
- INSTALL_DIR="${1:-$HOME/.cargo/bin}"
7
- INSTALL_PATH="${INSTALL_DIR}/rtk"
8
- BINARY_PATH="./target/release/rtk"
9
-
10
- if ! command -v cargo &>/dev/null; then
11
- echo "error: cargo not found"
12
- echo "install Rust: https://rustup.rs"
13
- exit 1
14
- fi
15
-
16
- echo "installing to: $INSTALL_DIR"
17
- if [ -f "$BINARY_PATH" ] && [ -z "$(find src/ Cargo.toml Cargo.lock -newer "$BINARY_PATH" -print -quit 2>/dev/null)" ]; then
18
- echo "binary is up to date"
19
- else
20
- echo "building rtk (release)..."
21
- cargo build --release
22
- fi
23
-
24
- mkdir -p "$INSTALL_DIR"
25
- install -m 755 "$BINARY_PATH" "$INSTALL_PATH"
26
-
27
- echo "installed: $INSTALL_PATH"
28
- echo "version: $("$INSTALL_PATH" --version)"
29
-
30
- case ":$PATH:" in
31
- *":$INSTALL_DIR:"*) ;;
32
- *) echo
33
- echo "warning: $INSTALL_DIR is not in your PATH"
34
- echo "add this to your shell profile:"
35
- echo " export PATH=\"\$PATH:$INSTALL_DIR\""
36
- ;;
37
- esac
@@ -1,137 +0,0 @@
1
- #!/bin/bash
2
- # rtk-economics.sh
3
- # Combine ccusage (tokens spent) with rtk (tokens saved) for economic analysis
4
-
5
- set -euo pipefail
6
-
7
- # Colors for output
8
- RED='\033[0;31m'
9
- GREEN='\033[0;32m'
10
- YELLOW='\033[1;33m'
11
- BLUE='\033[0;34m'
12
- NC='\033[0m' # No Color
13
-
14
- # Get current month
15
- CURRENT_MONTH=$(date +%Y-%m)
16
-
17
- echo -e "${BLUE}📊 RTK Economic Impact Analysis${NC}"
18
- echo "════════════════════════════════════════════════════════════════"
19
- echo
20
-
21
- # Check if ccusage is available
22
- if ! command -v ccusage &> /dev/null; then
23
- echo -e "${RED}Error: ccusage not found${NC}"
24
- echo "Install: npm install -g @anthropics/claude-code-usage"
25
- exit 1
26
- fi
27
-
28
- # Check if rtk is available
29
- if ! command -v rtk &> /dev/null; then
30
- echo -e "${RED}Error: rtk not found${NC}"
31
- echo "Install: cargo install --path ."
32
- exit 1
33
- fi
34
-
35
- # Fetch ccusage data
36
- echo -e "${YELLOW}Fetching token usage data from ccusage...${NC}"
37
- if ! ccusage_json=$(ccusage monthly --json 2>/dev/null); then
38
- echo -e "${RED}Failed to fetch ccusage data${NC}"
39
- exit 1
40
- fi
41
-
42
- # Fetch rtk data
43
- echo -e "${YELLOW}Fetching token savings data from rtk...${NC}"
44
- if ! rtk_json=$(rtk gain --monthly --format json 2>/dev/null); then
45
- echo -e "${RED}Failed to fetch rtk data${NC}"
46
- exit 1
47
- fi
48
-
49
- echo
50
-
51
- # Parse ccusage data for current month
52
- ccusage_cost=$(echo "$ccusage_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .totalCost // 0")
53
- ccusage_input=$(echo "$ccusage_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .inputTokens // 0")
54
- ccusage_output=$(echo "$ccusage_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .outputTokens // 0")
55
- ccusage_total=$(echo "$ccusage_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .totalTokens // 0")
56
-
57
- # Parse rtk data for current month
58
- rtk_saved=$(echo "$rtk_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .saved_tokens // 0")
59
- rtk_commands=$(echo "$rtk_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .commands // 0")
60
- rtk_input=$(echo "$rtk_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .input_tokens // 0")
61
- rtk_output=$(echo "$rtk_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .output_tokens // 0")
62
- rtk_pct=$(echo "$rtk_json" | jq -r ".monthly[] | select(.month == \"$CURRENT_MONTH\") | .savings_pct // 0")
63
-
64
- # Estimate cost avoided (rough: $0.0001/token for mixed usage)
65
- # More accurate would be to use ccusage's model-specific pricing
66
- saved_cost=$(echo "scale=2; $rtk_saved * 0.0001" | bc 2>/dev/null || echo "0")
67
-
68
- # Calculate total without rtk
69
- total_without_rtk=$(echo "scale=2; $ccusage_cost + $saved_cost" | bc 2>/dev/null || echo "$ccusage_cost")
70
-
71
- # Calculate savings percentage
72
- if (( $(echo "$total_without_rtk > 0" | bc -l) )); then
73
- savings_pct=$(echo "scale=1; ($saved_cost / $total_without_rtk) * 100" | bc 2>/dev/null || echo "0")
74
- else
75
- savings_pct="0"
76
- fi
77
-
78
- # Calculate cost per command
79
- if [ "$rtk_commands" -gt 0 ]; then
80
- cost_per_cmd_with=$(echo "scale=2; $ccusage_cost / $rtk_commands" | bc 2>/dev/null || echo "0")
81
- cost_per_cmd_without=$(echo "scale=2; $total_without_rtk / $rtk_commands" | bc 2>/dev/null || echo "0")
82
- else
83
- cost_per_cmd_with="N/A"
84
- cost_per_cmd_without="N/A"
85
- fi
86
-
87
- # Format numbers
88
- format_number() {
89
- local num=$1
90
- if [ "$num" = "0" ] || [ "$num" = "N/A" ]; then
91
- echo "$num"
92
- else
93
- echo "$num" | numfmt --to=si 2>/dev/null || echo "$num"
94
- fi
95
- }
96
-
97
- # Display report
98
- cat << EOF
99
- ${GREEN}💰 Economic Impact Report - $CURRENT_MONTH${NC}
100
- ════════════════════════════════════════════════════════════════
101
-
102
- ${BLUE}Tokens Consumed (via Claude API):${NC}
103
- Input tokens: $(format_number $ccusage_input)
104
- Output tokens: $(format_number $ccusage_output)
105
- Total tokens: $(format_number $ccusage_total)
106
- ${RED}Actual cost: \$$ccusage_cost${NC}
107
-
108
- ${BLUE}Tokens Saved by rtk:${NC}
109
- Commands executed: $rtk_commands
110
- Input avoided: $(format_number $rtk_input) tokens
111
- Output generated: $(format_number $rtk_output) tokens
112
- Total saved: $(format_number $rtk_saved) tokens (${rtk_pct}% reduction)
113
- ${GREEN}Cost avoided: ~\$$saved_cost${NC}
114
-
115
- ${BLUE}Economic Analysis:${NC}
116
- Cost without rtk: \$$total_without_rtk (estimated)
117
- Cost with rtk: \$$ccusage_cost (actual)
118
- ${GREEN}Net savings: \$$saved_cost ($savings_pct%)${NC}
119
- ROI: ${GREEN}Infinite${NC} (rtk is free)
120
-
121
- ${BLUE}Efficiency Metrics:${NC}
122
- Cost per command: \$$cost_per_cmd_without → \$$cost_per_cmd_with
123
- Tokens per command: $(echo "scale=0; $rtk_input / $rtk_commands" | bc 2>/dev/null || echo "N/A") → $(echo "scale=0; $rtk_output / $rtk_commands" | bc 2>/dev/null || echo "N/A")
124
-
125
- ${BLUE}12-Month Projection:${NC}
126
- Annual savings: ~\$$(echo "scale=2; $saved_cost * 12" | bc 2>/dev/null || echo "0")
127
- Commands needed: $(echo "$rtk_commands * 12" | bc 2>/dev/null || echo "0") (at current rate)
128
-
129
- ════════════════════════════════════════════════════════════════
130
-
131
- ${YELLOW}Note:${NC} Cost estimates use \$0.0001/token average. Actual pricing varies by model.
132
- See ccusage for precise model-specific costs.
133
-
134
- ${GREEN}Recommendation:${NC} Focus rtk usage on high-frequency commands (git, grep, ls)
135
- for maximum cost reduction.
136
-
137
- EOF