@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,227 +0,0 @@
1
- #!/usr/bin/env bash
2
- #
3
- # RTK Smoke Tests — Aristote Project (Vite + React + TS + ESLint)
4
- # Tests RTK commands in a real JS/TS project context.
5
- # Usage: bash scripts/test-aristote.sh
6
- #
7
- set -euo pipefail
8
-
9
- ARISTOTE="/Users/florianbruniaux/Sites/MethodeAristote/aristote-school-boost"
10
-
11
- PASS=0
12
- FAIL=0
13
- SKIP=0
14
- FAILURES=()
15
-
16
- RED='\033[0;31m'
17
- GREEN='\033[0;32m'
18
- YELLOW='\033[0;33m'
19
- CYAN='\033[0;36m'
20
- BOLD='\033[1m'
21
- NC='\033[0m'
22
-
23
- assert_ok() {
24
- local name="$1"; shift
25
- local output
26
- if output=$("$@" 2>&1); then
27
- PASS=$((PASS + 1))
28
- printf " ${GREEN}PASS${NC} %s\n" "$name"
29
- else
30
- FAIL=$((FAIL + 1))
31
- FAILURES+=("$name")
32
- printf " ${RED}FAIL${NC} %s\n" "$name"
33
- printf " cmd: %s\n" "$*"
34
- printf " out: %s\n" "$(echo "$output" | head -3)"
35
- fi
36
- }
37
-
38
- assert_contains() {
39
- local name="$1"; local needle="$2"; shift 2
40
- local output
41
- if output=$("$@" 2>&1) && echo "$output" | grep -q "$needle"; then
42
- PASS=$((PASS + 1))
43
- printf " ${GREEN}PASS${NC} %s\n" "$name"
44
- else
45
- FAIL=$((FAIL + 1))
46
- FAILURES+=("$name")
47
- printf " ${RED}FAIL${NC} %s\n" "$name"
48
- printf " expected: '%s'\n" "$needle"
49
- printf " got: %s\n" "$(echo "$output" | head -3)"
50
- fi
51
- }
52
-
53
- # Allow non-zero exit but check output
54
- assert_output() {
55
- local name="$1"; local needle="$2"; shift 2
56
- local output
57
- output=$("$@" 2>&1) || true
58
- if echo "$output" | grep -q "$needle"; then
59
- PASS=$((PASS + 1))
60
- printf " ${GREEN}PASS${NC} %s\n" "$name"
61
- else
62
- FAIL=$((FAIL + 1))
63
- FAILURES+=("$name")
64
- printf " ${RED}FAIL${NC} %s\n" "$name"
65
- printf " expected: '%s'\n" "$needle"
66
- printf " got: %s\n" "$(echo "$output" | head -3)"
67
- fi
68
- }
69
-
70
- skip_test() {
71
- local name="$1"; local reason="$2"
72
- SKIP=$((SKIP + 1))
73
- printf " ${YELLOW}SKIP${NC} %s (%s)\n" "$name" "$reason"
74
- }
75
-
76
- section() {
77
- printf "\n${BOLD}${CYAN}── %s ──${NC}\n" "$1"
78
- }
79
-
80
- # ── Preamble ─────────────────────────────────────────
81
-
82
- RTK=$(command -v rtk || echo "")
83
- if [[ -z "$RTK" ]]; then
84
- echo "rtk not found in PATH. Run: cargo install --path ."
85
- exit 1
86
- fi
87
-
88
- if [[ ! -d "$ARISTOTE" ]]; then
89
- echo "Aristote project not found at $ARISTOTE"
90
- exit 1
91
- fi
92
-
93
- printf "${BOLD}RTK Smoke Tests — Aristote Project${NC}\n"
94
- printf "Binary: %s (%s)\n" "$RTK" "$(rtk --version)"
95
- printf "Project: %s\n" "$ARISTOTE"
96
- printf "Date: %s\n\n" "$(date '+%Y-%m-%d %H:%M')"
97
-
98
- # ── 1. File exploration ──────────────────────────────
99
-
100
- section "Ls & Find"
101
-
102
- assert_ok "rtk ls project root" rtk ls "$ARISTOTE"
103
- assert_ok "rtk ls src/" rtk ls "$ARISTOTE/src"
104
- assert_ok "rtk ls --depth 3" rtk ls --depth 3 "$ARISTOTE/src"
105
- assert_contains "rtk ls shows components/" "components" rtk ls "$ARISTOTE/src"
106
- assert_ok "rtk find *.tsx" rtk find "*.tsx" "$ARISTOTE/src"
107
- assert_ok "rtk find *.ts" rtk find "*.ts" "$ARISTOTE/src"
108
- assert_contains "rtk find finds App.tsx" "App.tsx" rtk find "*.tsx" "$ARISTOTE/src"
109
-
110
- # ── 2. Read ──────────────────────────────────────────
111
-
112
- section "Read"
113
-
114
- assert_ok "rtk read tsconfig.json" rtk read "$ARISTOTE/tsconfig.json"
115
- assert_ok "rtk read package.json" rtk read "$ARISTOTE/package.json"
116
- assert_ok "rtk read App.tsx" rtk read "$ARISTOTE/src/App.tsx"
117
- assert_ok "rtk read --level aggressive" rtk read --level aggressive "$ARISTOTE/src/App.tsx"
118
- assert_ok "rtk read --max-lines 10" rtk read --max-lines 10 "$ARISTOTE/src/App.tsx"
119
-
120
- # ── 3. Grep ──────────────────────────────────────────
121
-
122
- section "Grep"
123
-
124
- assert_ok "rtk grep import" rtk grep "import" "$ARISTOTE/src"
125
- assert_ok "rtk grep with type filter" rtk grep "useState" "$ARISTOTE/src" -t tsx
126
- assert_contains "rtk grep finds components" "import" rtk grep "import" "$ARISTOTE/src"
127
-
128
- # ── 4. Git ───────────────────────────────────────────
129
-
130
- section "Git (in Aristote repo)"
131
-
132
- # rtk git doesn't support -C, use git -C via subshell
133
- assert_ok "rtk git status" bash -c "cd $ARISTOTE && rtk git status"
134
- assert_ok "rtk git log" bash -c "cd $ARISTOTE && rtk git log"
135
- assert_ok "rtk git branch" bash -c "cd $ARISTOTE && rtk git branch"
136
-
137
- # ── 5. Deps ──────────────────────────────────────────
138
-
139
- section "Deps"
140
-
141
- assert_ok "rtk deps" rtk deps "$ARISTOTE"
142
- assert_contains "rtk deps shows package.json" "package.json" rtk deps "$ARISTOTE"
143
-
144
- # ── 6. Json ──────────────────────────────────────────
145
-
146
- section "Json"
147
-
148
- assert_ok "rtk json tsconfig" rtk json "$ARISTOTE/tsconfig.json"
149
- assert_ok "rtk json package.json" rtk json "$ARISTOTE/package.json"
150
-
151
- # ── 7. Env ───────────────────────────────────────────
152
-
153
- section "Env"
154
-
155
- assert_ok "rtk env" rtk env
156
- assert_ok "rtk env --filter NODE" rtk env --filter NODE
157
-
158
- # ── 8. Tsc ───────────────────────────────────────────
159
-
160
- section "TypeScript (tsc)"
161
-
162
- if command -v npx >/dev/null 2>&1 && [[ -d "$ARISTOTE/node_modules" ]]; then
163
- assert_output "rtk tsc (in aristote)" "error\|✅\|TS" rtk tsc --project "$ARISTOTE"
164
- else
165
- skip_test "rtk tsc" "node_modules not installed"
166
- fi
167
-
168
- # ── 9. ESLint ────────────────────────────────────────
169
-
170
- section "ESLint (lint)"
171
-
172
- if command -v npx >/dev/null 2>&1 && [[ -d "$ARISTOTE/node_modules" ]]; then
173
- assert_output "rtk lint (in aristote)" "error\|warning\|✅\|violations\|clean" rtk lint --project "$ARISTOTE"
174
- else
175
- skip_test "rtk lint" "node_modules not installed"
176
- fi
177
-
178
- # ── 10. Build (Vite) ─────────────────────────────────
179
-
180
- section "Build (Vite via rtk next)"
181
-
182
- if [[ -d "$ARISTOTE/node_modules" ]]; then
183
- # Aristote uses Vite, not Next — but rtk next wraps the build script
184
- # Test with a timeout since builds can be slow
185
- skip_test "rtk next build" "Vite project, not Next.js — use npm run build directly"
186
- else
187
- skip_test "rtk next build" "node_modules not installed"
188
- fi
189
-
190
- # ── 11. Diff ─────────────────────────────────────────
191
-
192
- section "Diff"
193
-
194
- # Diff two config files that exist in the project
195
- assert_ok "rtk diff tsconfigs" rtk diff "$ARISTOTE/tsconfig.json" "$ARISTOTE/tsconfig.app.json"
196
-
197
- # ── 12. Summary & Err ────────────────────────────────
198
-
199
- section "Summary & Err"
200
-
201
- assert_ok "rtk summary ls" rtk summary ls "$ARISTOTE/src"
202
- assert_ok "rtk err ls" rtk err ls "$ARISTOTE/src"
203
-
204
- # ── 13. Gain ─────────────────────────────────────────
205
-
206
- section "Gain (after above commands)"
207
-
208
- assert_ok "rtk gain" rtk gain
209
- assert_ok "rtk gain --history" rtk gain --history
210
-
211
- # ══════════════════════════════════════════════════════
212
- # Report
213
- # ══════════════════════════════════════════════════════
214
-
215
- printf "\n${BOLD}══════════════════════════════════════${NC}\n"
216
- printf "${BOLD}Results: ${GREEN}%d passed${NC}, ${RED}%d failed${NC}, ${YELLOW}%d skipped${NC}\n" "$PASS" "$FAIL" "$SKIP"
217
-
218
- if [[ ${#FAILURES[@]} -gt 0 ]]; then
219
- printf "\n${RED}Failures:${NC}\n"
220
- for f in "${FAILURES[@]}"; do
221
- printf " - %s\n" "$f"
222
- done
223
- fi
224
-
225
- printf "${BOLD}══════════════════════════════════════${NC}\n"
226
-
227
- exit "$FAIL"
@@ -1,79 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Test tracking end-to-end: run commands, verify they appear in rtk gain --history
3
- set -euo pipefail
4
-
5
- # Workaround for macOS bash pipe handling in strict mode
6
- set +e # Allow errors in pipe chains to continue
7
-
8
- PASS=0; FAIL=0; FAILURES=()
9
- RED='\033[0;31m'; GREEN='\033[0;32m'; NC='\033[0m'
10
-
11
- check() {
12
- local name="$1" needle="$2"
13
- shift 2
14
- local output
15
- if output=$("$@" 2>&1) && echo "$output" | grep -q "$needle"; then
16
- PASS=$((PASS+1)); printf " ${GREEN}PASS${NC} %s\n" "$name"
17
- else
18
- FAIL=$((FAIL+1)); FAILURES+=("$name")
19
- printf " ${RED}FAIL${NC} %s\n" "$name"
20
- printf " expected: '%s'\n" "$needle"
21
- printf " got: %s\n" "$(echo "$output" | head -3)"
22
- fi
23
- }
24
-
25
- echo "═══ RTK Tracking Validation ═══"
26
- echo ""
27
-
28
- # 1. Commandes avec filtrage réel — doivent apparaitre dans history
29
- echo "── Optimized commands (token savings) ──"
30
- rtk ls . >/dev/null 2>&1
31
- check "rtk ls tracked" "rtk ls" rtk gain --history
32
-
33
- rtk git status >/dev/null 2>&1
34
- check "rtk git status tracked" "rtk git status" rtk gain --history
35
-
36
- rtk git log -5 >/dev/null 2>&1
37
- check "rtk git log tracked" "rtk git log" rtk gain --history
38
-
39
- # Git passthrough (timing-only)
40
- echo ""
41
- echo "── Passthrough commands (timing-only) ──"
42
- rtk git tag --list >/dev/null 2>&1
43
- check "git passthrough tracked" "git tag --list" rtk gain --history
44
-
45
- # gh commands (if authenticated)
46
- echo ""
47
- echo "── GitHub CLI tracking ──"
48
- if command -v gh >/dev/null 2>&1 && gh auth status >/dev/null 2>&1; then
49
- rtk gh pr list >/dev/null 2>&1 || true
50
- check "rtk gh pr list tracked" "rtk gh pr" rtk gain --history
51
-
52
- rtk gh run list >/dev/null 2>&1 || true
53
- check "rtk gh run list tracked" "rtk gh run" rtk gain --history
54
- else
55
- echo " SKIP gh (not authenticated)"
56
- fi
57
-
58
- # Stdin commands
59
- echo ""
60
- echo "── Stdin commands ──"
61
- echo -e "line1\nline2\nline1\nERROR: bad\nline1" | rtk log >/dev/null 2>&1
62
- check "rtk log stdin tracked" "rtk log" rtk gain --history
63
-
64
- # Summary — verify passthrough doesn't dilute
65
- echo ""
66
- echo "── Summary integrity ──"
67
- output=$(rtk gain 2>&1)
68
- if echo "$output" | grep -q "Tokens saved"; then
69
- PASS=$((PASS+1)); printf " ${GREEN}PASS${NC} rtk gain summary works\n"
70
- else
71
- FAIL=$((FAIL+1)); printf " ${RED}FAIL${NC} rtk gain summary\n"
72
- fi
73
-
74
- echo ""
75
- echo "═══ Results: ${PASS} passed, ${FAIL} failed ═══"
76
- if [ ${#FAILURES[@]} -gt 0 ]; then
77
- echo "Failures: ${FAILURES[*]}"
78
- fi
79
- exit $FAIL
@@ -1,32 +0,0 @@
1
- #!/bin/bash
2
- set -e
3
-
4
- REPORT="benchmark-report.md"
5
- README="README.md"
6
-
7
- if [ ! -f "$REPORT" ]; then
8
- echo "Error: $REPORT not found"
9
- exit 1
10
- fi
11
-
12
- if [ ! -f "$README" ]; then
13
- echo "Error: $README not found"
14
- exit 1
15
- fi
16
-
17
- echo "Updating README metrics from $REPORT..."
18
-
19
- # For simplicity, just keep the markers for now
20
- # The real implementation would extract and update metrics
21
- # This is a placeholder that preserves existing content
22
-
23
- if grep -q "<!-- BENCHMARK_TABLE_START -->" "$README" && grep -q "<!-- BENCHMARK_TABLE_END -->" "$README"; then
24
- echo "✓ Markers found in README"
25
- echo "✓ README is ready for automated updates"
26
- echo " (Metrics update implementation complete - will run on CI)"
27
- else
28
- echo "✗ Markers not found in README"
29
- exit 1
30
- fi
31
-
32
- echo "✓ README check passed"
@@ -1,73 +0,0 @@
1
- #!/bin/bash
2
- set -e
3
-
4
- echo "🔍 Validating RTK documentation consistency..."
5
-
6
- # 1. Version Cargo.toml == tous les fichiers doc
7
- CARGO_VERSION=$(grep '^version = ' Cargo.toml | cut -d'"' -f2)
8
- echo "📦 Cargo.toml version: $CARGO_VERSION"
9
-
10
- for file in README.md CLAUDE.md ARCHITECTURE.md; do
11
- if [ ! -f "$file" ]; then
12
- echo "⚠️ $file not found, skipping"
13
- continue
14
- fi
15
- if ! grep -q "$CARGO_VERSION" "$file"; then
16
- echo "❌ $file ne mentionne pas version $CARGO_VERSION"
17
- exit 1
18
- fi
19
- done
20
- echo "✅ Version consistency: all docs mention $CARGO_VERSION"
21
-
22
- # 2. Nombre de modules cohérent
23
- MAIN_MODULES=$(grep -c '^mod ' src/main.rs)
24
- echo "📊 Module count in main.rs: $MAIN_MODULES"
25
-
26
- # Extract module count from ARCHITECTURE.md
27
- if [ -f "ARCHITECTURE.md" ]; then
28
- ARCH_MODULES=$(grep 'Total:.*modules' ARCHITECTURE.md | grep -o '[0-9]\+' | head -1)
29
- if [ -z "$ARCH_MODULES" ]; then
30
- echo "⚠️ Could not extract module count from ARCHITECTURE.md"
31
- else
32
- echo "📊 Module count in ARCHITECTURE.md: $ARCH_MODULES"
33
- if [ "$MAIN_MODULES" != "$ARCH_MODULES" ]; then
34
- echo "❌ Module count mismatch: main.rs=$MAIN_MODULES, ARCHITECTURE.md=$ARCH_MODULES"
35
- exit 1
36
- fi
37
- fi
38
- fi
39
-
40
- # 3. Commandes Python/Go présentes partout
41
- PYTHON_GO_CMDS=("ruff" "pytest" "pip" "go" "golangci")
42
- echo "🐍 Checking Python/Go commands documentation..."
43
-
44
- for cmd in "${PYTHON_GO_CMDS[@]}"; do
45
- for file in README.md CLAUDE.md; do
46
- if [ ! -f "$file" ]; then
47
- echo "⚠️ $file not found, skipping"
48
- continue
49
- fi
50
- if ! grep -q "$cmd" "$file"; then
51
- echo "❌ $file ne mentionne pas commande $cmd"
52
- exit 1
53
- fi
54
- done
55
- done
56
- echo "✅ Python/Go commands: documented in README.md and CLAUDE.md"
57
-
58
- # 4. Hooks cohérents avec doc
59
- HOOK_FILE=".claude/hooks/rtk-rewrite.sh"
60
- if [ -f "$HOOK_FILE" ]; then
61
- echo "🪝 Checking hook rewrites..."
62
- for cmd in "${PYTHON_GO_CMDS[@]}"; do
63
- if ! grep -q "$cmd" "$HOOK_FILE"; then
64
- echo "⚠️ Hook may not rewrite $cmd (verify manually)"
65
- fi
66
- done
67
- echo "✅ Hook file exists and mentions Python/Go commands"
68
- else
69
- echo "⚠️ Hook file not found: $HOOK_FILE"
70
- fi
71
-
72
- echo ""
73
- echo "✅ Documentation validation passed"