@hasna/terminal 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/cli.js +64 -16
  2. package/package.json +1 -1
  3. package/src/ai.ts +8 -0
  4. package/src/cli.tsx +57 -18
  5. package/src/output-processor.ts +6 -1
  6. package/src/output-store.ts +58 -12
  7. package/src/tool-profiles.ts +139 -0
  8. package/temp/rtk/.claude/agents/code-reviewer.md +0 -221
  9. package/temp/rtk/.claude/agents/debugger.md +0 -519
  10. package/temp/rtk/.claude/agents/rtk-testing-specialist.md +0 -461
  11. package/temp/rtk/.claude/agents/rust-rtk.md +0 -511
  12. package/temp/rtk/.claude/agents/technical-writer.md +0 -355
  13. package/temp/rtk/.claude/commands/diagnose.md +0 -352
  14. package/temp/rtk/.claude/commands/test-routing.md +0 -362
  15. package/temp/rtk/.claude/hooks/bash/pre-commit-format.sh +0 -16
  16. package/temp/rtk/.claude/hooks/rtk-rewrite.sh +0 -70
  17. package/temp/rtk/.claude/hooks/rtk-suggest.sh +0 -152
  18. package/temp/rtk/.claude/rules/cli-testing.md +0 -526
  19. package/temp/rtk/.claude/skills/issue-triage/SKILL.md +0 -348
  20. package/temp/rtk/.claude/skills/issue-triage/templates/issue-comment.md +0 -134
  21. package/temp/rtk/.claude/skills/performance.md +0 -435
  22. package/temp/rtk/.claude/skills/pr-triage/SKILL.md +0 -315
  23. package/temp/rtk/.claude/skills/pr-triage/templates/review-comment.md +0 -71
  24. package/temp/rtk/.claude/skills/repo-recap.md +0 -206
  25. package/temp/rtk/.claude/skills/rtk-tdd/SKILL.md +0 -78
  26. package/temp/rtk/.claude/skills/rtk-tdd/references/testing-patterns.md +0 -124
  27. package/temp/rtk/.claude/skills/security-guardian.md +0 -503
  28. package/temp/rtk/.claude/skills/ship.md +0 -404
  29. package/temp/rtk/.github/workflows/benchmark.yml +0 -34
  30. package/temp/rtk/.github/workflows/dco-check.yaml +0 -12
  31. package/temp/rtk/.github/workflows/release-please.yml +0 -51
  32. package/temp/rtk/.github/workflows/release.yml +0 -343
  33. package/temp/rtk/.github/workflows/security-check.yml +0 -135
  34. package/temp/rtk/.github/workflows/validate-docs.yml +0 -78
  35. package/temp/rtk/.release-please-manifest.json +0 -3
  36. package/temp/rtk/ARCHITECTURE.md +0 -1491
  37. package/temp/rtk/CHANGELOG.md +0 -640
  38. package/temp/rtk/CLAUDE.md +0 -605
  39. package/temp/rtk/CONTRIBUTING.md +0 -199
  40. package/temp/rtk/Cargo.lock +0 -1668
  41. package/temp/rtk/Cargo.toml +0 -64
  42. package/temp/rtk/Formula/rtk.rb +0 -43
  43. package/temp/rtk/INSTALL.md +0 -390
  44. package/temp/rtk/LICENSE +0 -21
  45. package/temp/rtk/README.md +0 -386
  46. package/temp/rtk/README_es.md +0 -159
  47. package/temp/rtk/README_fr.md +0 -197
  48. package/temp/rtk/README_ja.md +0 -159
  49. package/temp/rtk/README_ko.md +0 -159
  50. package/temp/rtk/README_zh.md +0 -167
  51. package/temp/rtk/ROADMAP.md +0 -15
  52. package/temp/rtk/SECURITY.md +0 -217
  53. package/temp/rtk/TEST_EXEC_TIME.md +0 -102
  54. package/temp/rtk/build.rs +0 -57
  55. package/temp/rtk/docs/AUDIT_GUIDE.md +0 -432
  56. package/temp/rtk/docs/FEATURES.md +0 -1410
  57. package/temp/rtk/docs/TROUBLESHOOTING.md +0 -309
  58. package/temp/rtk/docs/filter-workflow.md +0 -102
  59. package/temp/rtk/docs/images/gain-dashboard.jpg +0 -0
  60. package/temp/rtk/docs/tracking.md +0 -583
  61. package/temp/rtk/hooks/opencode-rtk.ts +0 -39
  62. package/temp/rtk/hooks/rtk-awareness.md +0 -29
  63. package/temp/rtk/hooks/rtk-rewrite.sh +0 -61
  64. package/temp/rtk/hooks/test-rtk-rewrite.sh +0 -442
  65. package/temp/rtk/install.sh +0 -124
  66. package/temp/rtk/release-please-config.json +0 -10
  67. package/temp/rtk/scripts/benchmark.sh +0 -592
  68. package/temp/rtk/scripts/check-installation.sh +0 -162
  69. package/temp/rtk/scripts/install-local.sh +0 -37
  70. package/temp/rtk/scripts/rtk-economics.sh +0 -137
  71. package/temp/rtk/scripts/test-all.sh +0 -561
  72. package/temp/rtk/scripts/test-aristote.sh +0 -227
  73. package/temp/rtk/scripts/test-tracking.sh +0 -79
  74. package/temp/rtk/scripts/update-readme-metrics.sh +0 -32
  75. package/temp/rtk/scripts/validate-docs.sh +0 -73
  76. package/temp/rtk/src/aws_cmd.rs +0 -880
  77. package/temp/rtk/src/binlog.rs +0 -1645
  78. package/temp/rtk/src/cargo_cmd.rs +0 -1727
  79. package/temp/rtk/src/cc_economics.rs +0 -1157
  80. package/temp/rtk/src/ccusage.rs +0 -340
  81. package/temp/rtk/src/config.rs +0 -187
  82. package/temp/rtk/src/container.rs +0 -855
  83. package/temp/rtk/src/curl_cmd.rs +0 -134
  84. package/temp/rtk/src/deps.rs +0 -268
  85. package/temp/rtk/src/diff_cmd.rs +0 -367
  86. package/temp/rtk/src/discover/mod.rs +0 -274
  87. package/temp/rtk/src/discover/provider.rs +0 -388
  88. package/temp/rtk/src/discover/registry.rs +0 -2022
  89. package/temp/rtk/src/discover/report.rs +0 -202
  90. package/temp/rtk/src/discover/rules.rs +0 -667
  91. package/temp/rtk/src/display_helpers.rs +0 -402
  92. package/temp/rtk/src/dotnet_cmd.rs +0 -1771
  93. package/temp/rtk/src/dotnet_format_report.rs +0 -133
  94. package/temp/rtk/src/dotnet_trx.rs +0 -593
  95. package/temp/rtk/src/env_cmd.rs +0 -204
  96. package/temp/rtk/src/filter.rs +0 -462
  97. package/temp/rtk/src/filters/README.md +0 -52
  98. package/temp/rtk/src/filters/ansible-playbook.toml +0 -34
  99. package/temp/rtk/src/filters/basedpyright.toml +0 -47
  100. package/temp/rtk/src/filters/biome.toml +0 -45
  101. package/temp/rtk/src/filters/brew-install.toml +0 -37
  102. package/temp/rtk/src/filters/composer-install.toml +0 -40
  103. package/temp/rtk/src/filters/df.toml +0 -16
  104. package/temp/rtk/src/filters/dotnet-build.toml +0 -64
  105. package/temp/rtk/src/filters/du.toml +0 -16
  106. package/temp/rtk/src/filters/fail2ban-client.toml +0 -15
  107. package/temp/rtk/src/filters/gcc.toml +0 -49
  108. package/temp/rtk/src/filters/gcloud.toml +0 -22
  109. package/temp/rtk/src/filters/hadolint.toml +0 -24
  110. package/temp/rtk/src/filters/helm.toml +0 -29
  111. package/temp/rtk/src/filters/iptables.toml +0 -27
  112. package/temp/rtk/src/filters/jj.toml +0 -28
  113. package/temp/rtk/src/filters/jq.toml +0 -24
  114. package/temp/rtk/src/filters/make.toml +0 -41
  115. package/temp/rtk/src/filters/markdownlint.toml +0 -24
  116. package/temp/rtk/src/filters/mix-compile.toml +0 -27
  117. package/temp/rtk/src/filters/mix-format.toml +0 -15
  118. package/temp/rtk/src/filters/mvn-build.toml +0 -44
  119. package/temp/rtk/src/filters/oxlint.toml +0 -43
  120. package/temp/rtk/src/filters/ping.toml +0 -63
  121. package/temp/rtk/src/filters/pio-run.toml +0 -40
  122. package/temp/rtk/src/filters/poetry-install.toml +0 -50
  123. package/temp/rtk/src/filters/pre-commit.toml +0 -35
  124. package/temp/rtk/src/filters/ps.toml +0 -16
  125. package/temp/rtk/src/filters/quarto-render.toml +0 -41
  126. package/temp/rtk/src/filters/rsync.toml +0 -48
  127. package/temp/rtk/src/filters/shellcheck.toml +0 -27
  128. package/temp/rtk/src/filters/shopify-theme.toml +0 -29
  129. package/temp/rtk/src/filters/skopeo.toml +0 -45
  130. package/temp/rtk/src/filters/sops.toml +0 -16
  131. package/temp/rtk/src/filters/ssh.toml +0 -44
  132. package/temp/rtk/src/filters/stat.toml +0 -34
  133. package/temp/rtk/src/filters/swift-build.toml +0 -41
  134. package/temp/rtk/src/filters/systemctl-status.toml +0 -33
  135. package/temp/rtk/src/filters/terraform-plan.toml +0 -35
  136. package/temp/rtk/src/filters/tofu-fmt.toml +0 -16
  137. package/temp/rtk/src/filters/tofu-init.toml +0 -38
  138. package/temp/rtk/src/filters/tofu-plan.toml +0 -35
  139. package/temp/rtk/src/filters/tofu-validate.toml +0 -17
  140. package/temp/rtk/src/filters/trunk-build.toml +0 -39
  141. package/temp/rtk/src/filters/ty.toml +0 -50
  142. package/temp/rtk/src/filters/uv-sync.toml +0 -37
  143. package/temp/rtk/src/filters/xcodebuild.toml +0 -99
  144. package/temp/rtk/src/filters/yamllint.toml +0 -25
  145. package/temp/rtk/src/find_cmd.rs +0 -598
  146. package/temp/rtk/src/format_cmd.rs +0 -386
  147. package/temp/rtk/src/gain.rs +0 -723
  148. package/temp/rtk/src/gh_cmd.rs +0 -1651
  149. package/temp/rtk/src/git.rs +0 -2012
  150. package/temp/rtk/src/go_cmd.rs +0 -592
  151. package/temp/rtk/src/golangci_cmd.rs +0 -254
  152. package/temp/rtk/src/grep_cmd.rs +0 -288
  153. package/temp/rtk/src/gt_cmd.rs +0 -810
  154. package/temp/rtk/src/hook_audit_cmd.rs +0 -283
  155. package/temp/rtk/src/hook_check.rs +0 -171
  156. package/temp/rtk/src/init.rs +0 -1859
  157. package/temp/rtk/src/integrity.rs +0 -537
  158. package/temp/rtk/src/json_cmd.rs +0 -231
  159. package/temp/rtk/src/learn/detector.rs +0 -628
  160. package/temp/rtk/src/learn/mod.rs +0 -119
  161. package/temp/rtk/src/learn/report.rs +0 -184
  162. package/temp/rtk/src/lint_cmd.rs +0 -694
  163. package/temp/rtk/src/local_llm.rs +0 -316
  164. package/temp/rtk/src/log_cmd.rs +0 -248
  165. package/temp/rtk/src/ls.rs +0 -324
  166. package/temp/rtk/src/main.rs +0 -2482
  167. package/temp/rtk/src/mypy_cmd.rs +0 -389
  168. package/temp/rtk/src/next_cmd.rs +0 -241
  169. package/temp/rtk/src/npm_cmd.rs +0 -236
  170. package/temp/rtk/src/parser/README.md +0 -267
  171. package/temp/rtk/src/parser/error.rs +0 -46
  172. package/temp/rtk/src/parser/formatter.rs +0 -336
  173. package/temp/rtk/src/parser/mod.rs +0 -311
  174. package/temp/rtk/src/parser/types.rs +0 -119
  175. package/temp/rtk/src/pip_cmd.rs +0 -302
  176. package/temp/rtk/src/playwright_cmd.rs +0 -479
  177. package/temp/rtk/src/pnpm_cmd.rs +0 -573
  178. package/temp/rtk/src/prettier_cmd.rs +0 -221
  179. package/temp/rtk/src/prisma_cmd.rs +0 -482
  180. package/temp/rtk/src/psql_cmd.rs +0 -382
  181. package/temp/rtk/src/pytest_cmd.rs +0 -384
  182. package/temp/rtk/src/read.rs +0 -217
  183. package/temp/rtk/src/rewrite_cmd.rs +0 -50
  184. package/temp/rtk/src/ruff_cmd.rs +0 -402
  185. package/temp/rtk/src/runner.rs +0 -271
  186. package/temp/rtk/src/summary.rs +0 -297
  187. package/temp/rtk/src/tee.rs +0 -405
  188. package/temp/rtk/src/telemetry.rs +0 -248
  189. package/temp/rtk/src/toml_filter.rs +0 -1655
  190. package/temp/rtk/src/tracking.rs +0 -1416
  191. package/temp/rtk/src/tree.rs +0 -209
  192. package/temp/rtk/src/tsc_cmd.rs +0 -259
  193. package/temp/rtk/src/utils.rs +0 -432
  194. package/temp/rtk/src/verify_cmd.rs +0 -47
  195. package/temp/rtk/src/vitest_cmd.rs +0 -385
  196. package/temp/rtk/src/wc_cmd.rs +0 -401
  197. package/temp/rtk/src/wget_cmd.rs +0 -260
  198. package/temp/rtk/tests/fixtures/dotnet/build_failed.txt +0 -11
  199. package/temp/rtk/tests/fixtures/dotnet/format_changes.json +0 -31
  200. package/temp/rtk/tests/fixtures/dotnet/format_empty.json +0 -1
  201. package/temp/rtk/tests/fixtures/dotnet/format_success.json +0 -12
  202. package/temp/rtk/tests/fixtures/dotnet/test_failed.txt +0 -18
@@ -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"