@coldtea/abide 0.0.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.
- package/LICENSE +21 -0
- package/README.md +10 -0
- package/dist/abide-hook.d.ts +2 -0
- package/dist/abide-hook.d.ts.map +1 -0
- package/dist/abide-hook.js +23 -0
- package/dist/abide-hook.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +64 -0
- package/dist/bin.js.map +1 -0
- package/dist/commands/audit.d.ts +3 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +79 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/bench.d.ts +3 -0
- package/dist/commands/bench.d.ts.map +1 -0
- package/dist/commands/bench.js +206 -0
- package/dist/commands/bench.js.map +1 -0
- package/dist/commands/calibrate.d.ts +3 -0
- package/dist/commands/calibrate.d.ts.map +1 -0
- package/dist/commands/calibrate.js +159 -0
- package/dist/commands/calibrate.js.map +1 -0
- package/dist/commands/check.d.ts +3 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +106 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/compile.d.ts +3 -0
- package/dist/commands/compile.d.ts.map +1 -0
- package/dist/commands/compile.js +116 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +93 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +58 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/replay.d.ts +4 -0
- package/dist/commands/replay.d.ts.map +1 -0
- package/dist/commands/replay.js +118 -0
- package/dist/commands/replay.js.map +1 -0
- package/dist/commands/report.d.ts +5 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +78 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/rubric.d.ts +3 -0
- package/dist/commands/rubric.d.ts.map +1 -0
- package/dist/commands/rubric.js +40 -0
- package/dist/commands/rubric.js.map +1 -0
- package/dist/commands/uninstall.d.ts +2 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +31 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/hooks/postToolUse.d.ts +3 -0
- package/dist/hooks/postToolUse.d.ts.map +1 -0
- package/dist/hooks/postToolUse.js +145 -0
- package/dist/hooks/postToolUse.js.map +1 -0
- package/dist/hooks/sessionStart.d.ts +11 -0
- package/dist/hooks/sessionStart.d.ts.map +1 -0
- package/dist/hooks/sessionStart.js +83 -0
- package/dist/hooks/sessionStart.js.map +1 -0
- package/dist/hooks/stop.d.ts +26 -0
- package/dist/hooks/stop.d.ts.map +1 -0
- package/dist/hooks/stop.js +227 -0
- package/dist/hooks/stop.js.map +1 -0
- package/dist/hooks/turnStart.d.ts +8 -0
- package/dist/hooks/turnStart.d.ts.map +1 -0
- package/dist/hooks/turnStart.js +40 -0
- package/dist/hooks/turnStart.js.map +1 -0
- package/dist/lib/applyPatch.d.ts +22 -0
- package/dist/lib/applyPatch.d.ts.map +1 -0
- package/dist/lib/applyPatch.js +63 -0
- package/dist/lib/applyPatch.js.map +1 -0
- package/dist/lib/audit.d.ts +40 -0
- package/dist/lib/audit.d.ts.map +1 -0
- package/dist/lib/audit.js +215 -0
- package/dist/lib/audit.js.map +1 -0
- package/dist/lib/band.d.ts +20 -0
- package/dist/lib/band.d.ts.map +1 -0
- package/dist/lib/band.js +40 -0
- package/dist/lib/band.js.map +1 -0
- package/dist/lib/calibration.d.ts +13 -0
- package/dist/lib/calibration.d.ts.map +1 -0
- package/dist/lib/calibration.js +25 -0
- package/dist/lib/calibration.js.map +1 -0
- package/dist/lib/checkRunner.d.ts +34 -0
- package/dist/lib/checkRunner.d.ts.map +1 -0
- package/dist/lib/checkRunner.js +76 -0
- package/dist/lib/checkRunner.js.map +1 -0
- package/dist/lib/claude.d.ts +4 -0
- package/dist/lib/claude.d.ts.map +1 -0
- package/dist/lib/claude.js +28 -0
- package/dist/lib/claude.js.map +1 -0
- package/dist/lib/compilePrompt.d.ts +22 -0
- package/dist/lib/compilePrompt.d.ts.map +1 -0
- package/dist/lib/compilePrompt.js +33 -0
- package/dist/lib/compilePrompt.js.map +1 -0
- package/dist/lib/constants.d.ts +33 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +33 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/coverage.d.ts +7 -0
- package/dist/lib/coverage.d.ts.map +1 -0
- package/dist/lib/coverage.js +17 -0
- package/dist/lib/coverage.js.map +1 -0
- package/dist/lib/credentials.d.ts +27 -0
- package/dist/lib/credentials.d.ts.map +1 -0
- package/dist/lib/credentials.js +89 -0
- package/dist/lib/credentials.js.map +1 -0
- package/dist/lib/diff.d.ts +30 -0
- package/dist/lib/diff.d.ts.map +1 -0
- package/dist/lib/diff.js +139 -0
- package/dist/lib/diff.js.map +1 -0
- package/dist/lib/events.d.ts +5 -0
- package/dist/lib/events.d.ts.map +1 -0
- package/dist/lib/events.js +38 -0
- package/dist/lib/events.js.map +1 -0
- package/dist/lib/git.d.ts +37 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +163 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/hookRunner.d.ts +10 -0
- package/dist/lib/hookRunner.d.ts.map +1 -0
- package/dist/lib/hookRunner.js +52 -0
- package/dist/lib/hookRunner.js.map +1 -0
- package/dist/lib/hosts.d.ts +20 -0
- package/dist/lib/hosts.d.ts.map +1 -0
- package/dist/lib/hosts.js +101 -0
- package/dist/lib/hosts.js.map +1 -0
- package/dist/lib/jev.d.ts +24 -0
- package/dist/lib/jev.d.ts.map +1 -0
- package/dist/lib/jev.js +169 -0
- package/dist/lib/jev.js.map +1 -0
- package/dist/lib/lintConfig.d.ts +3 -0
- package/dist/lib/lintConfig.d.ts.map +1 -0
- package/dist/lib/lintConfig.js +55 -0
- package/dist/lib/lintConfig.js.map +1 -0
- package/dist/lib/loadRules.d.ts +12 -0
- package/dist/lib/loadRules.d.ts.map +1 -0
- package/dist/lib/loadRules.js +31 -0
- package/dist/lib/loadRules.js.map +1 -0
- package/dist/lib/opencodePlugin.d.ts +10 -0
- package/dist/lib/opencodePlugin.d.ts.map +1 -0
- package/dist/lib/opencodePlugin.js +36 -0
- package/dist/lib/opencodePlugin.js.map +1 -0
- package/dist/lib/output.d.ts +6 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +35 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/packageRoot.d.ts +12 -0
- package/dist/lib/packageRoot.d.ts.map +1 -0
- package/dist/lib/packageRoot.js +50 -0
- package/dist/lib/packageRoot.js.map +1 -0
- package/dist/lib/paths.d.ts +24 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +75 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/reason.d.ts +11 -0
- package/dist/lib/reason.d.ts.map +1 -0
- package/dist/lib/reason.js +31 -0
- package/dist/lib/reason.js.map +1 -0
- package/dist/lib/regularFile.d.ts +26 -0
- package/dist/lib/regularFile.d.ts.map +1 -0
- package/dist/lib/regularFile.js +77 -0
- package/dist/lib/regularFile.js.map +1 -0
- package/dist/lib/replay.d.ts +74 -0
- package/dist/lib/replay.d.ts.map +1 -0
- package/dist/lib/replay.js +250 -0
- package/dist/lib/replay.js.map +1 -0
- package/dist/lib/replayCodex.d.ts +6 -0
- package/dist/lib/replayCodex.d.ts.map +1 -0
- package/dist/lib/replayCodex.js +132 -0
- package/dist/lib/replayCodex.js.map +1 -0
- package/dist/lib/replayOpencode.d.ts +15 -0
- package/dist/lib/replayOpencode.d.ts.map +1 -0
- package/dist/lib/replayOpencode.js +154 -0
- package/dist/lib/replayOpencode.js.map +1 -0
- package/dist/lib/rubricFile.d.ts +31 -0
- package/dist/lib/rubricFile.d.ts.map +1 -0
- package/dist/lib/rubricFile.js +75 -0
- package/dist/lib/rubricFile.js.map +1 -0
- package/dist/lib/scope.d.ts +4 -0
- package/dist/lib/scope.d.ts.map +1 -0
- package/dist/lib/scope.js +14 -0
- package/dist/lib/scope.js.map +1 -0
- package/dist/lib/session.d.ts +48 -0
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/lib/session.js +182 -0
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/settings.d.ts +26 -0
- package/dist/lib/settings.d.ts.map +1 -0
- package/dist/lib/settings.js +104 -0
- package/dist/lib/settings.js.map +1 -0
- package/dist/lib/sources.d.ts +28 -0
- package/dist/lib/sources.d.ts.map +1 -0
- package/dist/lib/sources.js +137 -0
- package/dist/lib/sources.js.map +1 -0
- package/dist/lib/stdin.d.ts +3 -0
- package/dist/lib/stdin.d.ts.map +1 -0
- package/dist/lib/stdin.js +24 -0
- package/dist/lib/stdin.js.map +1 -0
- package/dist/lib/transcript.d.ts +3 -0
- package/dist/lib/transcript.d.ts.map +1 -0
- package/dist/lib/transcript.js +57 -0
- package/dist/lib/transcript.js.map +1 -0
- package/dist/lib/ui.d.ts +8 -0
- package/dist/lib/ui.d.ts.map +1 -0
- package/dist/lib/ui.js +34 -0
- package/dist/lib/ui.js.map +1 -0
- package/dist/ui/components/Buckets.d.ts +6 -0
- package/dist/ui/components/Buckets.d.ts.map +1 -0
- package/dist/ui/components/Buckets.js +11 -0
- package/dist/ui/components/Buckets.js.map +1 -0
- package/dist/ui/components/Callout.d.ts +11 -0
- package/dist/ui/components/Callout.d.ts.map +1 -0
- package/dist/ui/components/Callout.js +10 -0
- package/dist/ui/components/Callout.js.map +1 -0
- package/dist/ui/components/Checklist.d.ts +10 -0
- package/dist/ui/components/Checklist.d.ts.map +1 -0
- package/dist/ui/components/Checklist.js +8 -0
- package/dist/ui/components/Checklist.js.map +1 -0
- package/dist/ui/components/Columns.d.ts +28 -0
- package/dist/ui/components/Columns.d.ts.map +1 -0
- package/dist/ui/components/Columns.js +20 -0
- package/dist/ui/components/Columns.js.map +1 -0
- package/dist/ui/components/Header.d.ts +9 -0
- package/dist/ui/components/Header.d.ts.map +1 -0
- package/dist/ui/components/Header.js +7 -0
- package/dist/ui/components/Header.js.map +1 -0
- package/dist/ui/components/Live.d.ts +16 -0
- package/dist/ui/components/Live.d.ts.map +1 -0
- package/dist/ui/components/Live.js +40 -0
- package/dist/ui/components/Live.js.map +1 -0
- package/dist/ui/components/RuleTable.d.ts +15 -0
- package/dist/ui/components/RuleTable.d.ts.map +1 -0
- package/dist/ui/components/RuleTable.js +81 -0
- package/dist/ui/components/RuleTable.js.map +1 -0
- package/dist/ui/components/Section.d.ts +10 -0
- package/dist/ui/components/Section.d.ts.map +1 -0
- package/dist/ui/components/Section.js +8 -0
- package/dist/ui/components/Section.js.map +1 -0
- package/dist/ui/components/Verdicts.d.ts +9 -0
- package/dist/ui/components/Verdicts.d.ts.map +1 -0
- package/dist/ui/components/Verdicts.js +12 -0
- package/dist/ui/components/Verdicts.js.map +1 -0
- package/dist/ui/render.d.ts +20 -0
- package/dist/ui/render.d.ts.map +1 -0
- package/dist/ui/render.js +32 -0
- package/dist/ui/render.js.map +1 -0
- package/dist/ui/theme.d.ts +37 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +63 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/ui/views/AuditView.d.ts +18 -0
- package/dist/ui/views/AuditView.d.ts.map +1 -0
- package/dist/ui/views/AuditView.js +48 -0
- package/dist/ui/views/AuditView.js.map +1 -0
- package/dist/ui/views/BenchView.d.ts +33 -0
- package/dist/ui/views/BenchView.d.ts.map +1 -0
- package/dist/ui/views/BenchView.js +19 -0
- package/dist/ui/views/BenchView.js.map +1 -0
- package/dist/ui/views/CalibrateView.d.ts +26 -0
- package/dist/ui/views/CalibrateView.d.ts.map +1 -0
- package/dist/ui/views/CalibrateView.js +42 -0
- package/dist/ui/views/CalibrateView.js.map +1 -0
- package/dist/ui/views/CheckView.d.ts +19 -0
- package/dist/ui/views/CheckView.d.ts.map +1 -0
- package/dist/ui/views/CheckView.js +15 -0
- package/dist/ui/views/CheckView.js.map +1 -0
- package/dist/ui/views/ErrorView.d.ts +4 -0
- package/dist/ui/views/ErrorView.d.ts.map +1 -0
- package/dist/ui/views/ErrorView.js +26 -0
- package/dist/ui/views/ErrorView.js.map +1 -0
- package/dist/ui/views/HelpView.d.ts +2 -0
- package/dist/ui/views/HelpView.d.ts.map +1 -0
- package/dist/ui/views/HelpView.js +25 -0
- package/dist/ui/views/HelpView.js.map +1 -0
- package/dist/ui/views/InitView.d.ts +27 -0
- package/dist/ui/views/InitView.d.ts.map +1 -0
- package/dist/ui/views/InitView.js +24 -0
- package/dist/ui/views/InitView.js.map +1 -0
- package/dist/ui/views/ReplayView.d.ts +16 -0
- package/dist/ui/views/ReplayView.d.ts.map +1 -0
- package/dist/ui/views/ReplayView.js +44 -0
- package/dist/ui/views/ReplayView.js.map +1 -0
- package/dist/ui/views/ReportView.d.ts +14 -0
- package/dist/ui/views/ReportView.d.ts.map +1 -0
- package/dist/ui/views/ReportView.js +86 -0
- package/dist/ui/views/ReportView.js.map +1 -0
- package/dist/ui/views/RubricView.d.ts +18 -0
- package/dist/ui/views/RubricView.d.ts.map +1 -0
- package/dist/ui/views/RubricView.js +18 -0
- package/dist/ui/views/RubricView.js.map +1 -0
- package/opencode/abide.mjs +246 -0
- package/package.json +50 -0
- package/skills/abide-compile/SKILL.md +173 -0
- package/src/abide-hook.ts +23 -0
- package/src/bin.ts +64 -0
- package/src/commands/audit.ts +97 -0
- package/src/commands/bench.ts +226 -0
- package/src/commands/calibrate.ts +165 -0
- package/src/commands/check.ts +114 -0
- package/src/commands/compile.ts +127 -0
- package/src/commands/init.ts +109 -0
- package/src/commands/login.ts +61 -0
- package/src/commands/replay.ts +148 -0
- package/src/commands/report.ts +83 -0
- package/src/commands/rubric.ts +45 -0
- package/src/commands/uninstall.ts +33 -0
- package/src/hooks/postToolUse.ts +171 -0
- package/src/hooks/sessionStart.ts +100 -0
- package/src/hooks/stop.ts +275 -0
- package/src/hooks/turnStart.ts +36 -0
- package/src/lib/applyPatch.ts +75 -0
- package/src/lib/audit.ts +265 -0
- package/src/lib/band.ts +49 -0
- package/src/lib/calibration.ts +35 -0
- package/src/lib/checkRunner.ts +124 -0
- package/src/lib/claude.ts +35 -0
- package/src/lib/compilePrompt.ts +67 -0
- package/src/lib/constants.ts +39 -0
- package/src/lib/coverage.ts +21 -0
- package/src/lib/credentials.ts +104 -0
- package/src/lib/diff.ts +209 -0
- package/src/lib/events.ts +34 -0
- package/src/lib/git.ts +206 -0
- package/src/lib/hookRunner.ts +55 -0
- package/src/lib/hosts.ts +112 -0
- package/src/lib/jev.ts +223 -0
- package/src/lib/lintConfig.ts +53 -0
- package/src/lib/loadRules.ts +39 -0
- package/src/lib/opencodePlugin.ts +38 -0
- package/src/lib/output.ts +44 -0
- package/src/lib/packageRoot.ts +48 -0
- package/src/lib/paths.ts +96 -0
- package/src/lib/reason.ts +46 -0
- package/src/lib/regularFile.ts +96 -0
- package/src/lib/replay.ts +314 -0
- package/src/lib/replayCodex.ts +130 -0
- package/src/lib/replayOpencode.ts +186 -0
- package/src/lib/rubricFile.ts +99 -0
- package/src/lib/scope.ts +18 -0
- package/src/lib/session.ts +223 -0
- package/src/lib/settings.ts +112 -0
- package/src/lib/sources.ts +154 -0
- package/src/lib/stdin.ts +23 -0
- package/src/lib/transcript.ts +49 -0
- package/src/lib/ui.ts +38 -0
- package/src/ui/components/Buckets.tsx +30 -0
- package/src/ui/components/Callout.tsx +26 -0
- package/src/ui/components/Checklist.tsx +29 -0
- package/src/ui/components/Columns.tsx +62 -0
- package/src/ui/components/Header.tsx +35 -0
- package/src/ui/components/Live.tsx +73 -0
- package/src/ui/components/RuleTable.tsx +94 -0
- package/src/ui/components/Section.tsx +24 -0
- package/src/ui/components/Verdicts.tsx +40 -0
- package/src/ui/render.tsx +51 -0
- package/src/ui/theme.ts +65 -0
- package/src/ui/views/AuditView.tsx +140 -0
- package/src/ui/views/BenchView.tsx +87 -0
- package/src/ui/views/CalibrateView.tsx +108 -0
- package/src/ui/views/CheckView.tsx +56 -0
- package/src/ui/views/ErrorView.tsx +32 -0
- package/src/ui/views/HelpView.tsx +51 -0
- package/src/ui/views/InitView.tsx +103 -0
- package/src/ui/views/ReplayView.tsx +100 -0
- package/src/ui/views/ReportView.tsx +225 -0
- package/src/ui/views/RubricView.tsx +82 -0
package/dist/ui/theme.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** Coldtea's palette, as a terminal can show it. Truecolor where available; chalk degrades the rest. */
|
|
2
|
+
export const palette = {
|
|
3
|
+
teal: "#3da5a8",
|
|
4
|
+
tealLight: "#58c4c8",
|
|
5
|
+
sage: "#5cbd68",
|
|
6
|
+
ceramic: "#d8c4a0",
|
|
7
|
+
ceramicWarm: "#c4a46e",
|
|
8
|
+
amber: "#d49a50",
|
|
9
|
+
amberBright: "#e0ac62",
|
|
10
|
+
rose: "#c9627d",
|
|
11
|
+
plum: "#a468c2",
|
|
12
|
+
indigo: "#6876d8",
|
|
13
|
+
copper: "#b97b47",
|
|
14
|
+
mist: "#8d96a3",
|
|
15
|
+
ash: "#5a6370",
|
|
16
|
+
cloud: "#cdd3dc",
|
|
17
|
+
paper: "#f0ece6",
|
|
18
|
+
};
|
|
19
|
+
export const toneColor = {
|
|
20
|
+
accent: palette.teal,
|
|
21
|
+
ok: palette.sage,
|
|
22
|
+
warn: palette.amber,
|
|
23
|
+
bad: palette.rose,
|
|
24
|
+
info: palette.indigo,
|
|
25
|
+
muted: palette.mist,
|
|
26
|
+
text: palette.cloud,
|
|
27
|
+
highlight: palette.ceramic,
|
|
28
|
+
};
|
|
29
|
+
export const glyph = {
|
|
30
|
+
dot: "●",
|
|
31
|
+
ring: "○",
|
|
32
|
+
check: "✓",
|
|
33
|
+
cross: "✗",
|
|
34
|
+
arrow: "→",
|
|
35
|
+
bar: "▎",
|
|
36
|
+
dotSep: "·",
|
|
37
|
+
ellipsis: "…",
|
|
38
|
+
};
|
|
39
|
+
/** Cuts a string to fit, keeping the tail readable when the head is the boring part. */
|
|
40
|
+
export const truncate = (value, max, keep = "head") => {
|
|
41
|
+
if (max <= 1)
|
|
42
|
+
return value.slice(0, Math.max(0, max));
|
|
43
|
+
if (value.length <= max)
|
|
44
|
+
return value;
|
|
45
|
+
return keep === "head"
|
|
46
|
+
? `${value.slice(0, max - 1)}${glyph.ellipsis}`
|
|
47
|
+
: `${glyph.ellipsis}${value.slice(value.length - max + 1)}`;
|
|
48
|
+
};
|
|
49
|
+
/** A probability as a small bar: filled tenths, in the band's colour. */
|
|
50
|
+
export const meter = (probability, width = 10) => {
|
|
51
|
+
const filled = Math.round(Math.min(1, Math.max(0, probability)) * width);
|
|
52
|
+
return `${"█".repeat(filled)}${"░".repeat(width - filled)}`;
|
|
53
|
+
};
|
|
54
|
+
/** Globs as a person reads them: a list of whole-tree extension globs becomes `ts, tsx`; anything else stays a glob. */
|
|
55
|
+
export const scopeLabel = (scope) => {
|
|
56
|
+
if (scope === undefined)
|
|
57
|
+
return "everywhere";
|
|
58
|
+
const extensions = scope.map((g) => /^\*\*\/\*\.([A-Za-z0-9]+)$/.exec(g)?.[1]);
|
|
59
|
+
if (extensions.every((e) => e !== undefined))
|
|
60
|
+
return extensions.join(", ");
|
|
61
|
+
return scope.join(", ");
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AuditFileResult, RuleTally } from "../../lib/audit.js";
|
|
2
|
+
export type AuditData = {
|
|
3
|
+
root: string;
|
|
4
|
+
files: number;
|
|
5
|
+
skipped: {
|
|
6
|
+
tooBig: string[];
|
|
7
|
+
outOfScope: number;
|
|
8
|
+
};
|
|
9
|
+
results: AuditFileResult[];
|
|
10
|
+
tallies: RuleTally[];
|
|
11
|
+
spendUsd: number;
|
|
12
|
+
elapsedMs: number;
|
|
13
|
+
all: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare function AuditView({ data }: {
|
|
16
|
+
data: AuditData;
|
|
17
|
+
}): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=AuditView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/AuditView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAQrE,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAKF,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,+BAmHtD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { ms, usd } from "../../lib/ui.js";
|
|
4
|
+
import { Callout } from "../components/Callout.js";
|
|
5
|
+
import { Columns } from "../components/Columns.js";
|
|
6
|
+
import { Header } from "../components/Header.js";
|
|
7
|
+
import { Section } from "../components/Section.js";
|
|
8
|
+
import { glyph, meter, palette } from "../theme.js";
|
|
9
|
+
const worst = (r) => [...r.verdicts].sort((a, b) => b.probability - a.probability)[0];
|
|
10
|
+
export function AuditView({ data }) {
|
|
11
|
+
const broken = data.results.filter((r) => r.verdicts.some((v) => v.band === "act"));
|
|
12
|
+
const flaggedOnly = data.results.filter((r) => !r.verdicts.some((v) => v.band === "act") && r.verdicts.some((v) => v.band === "flag"));
|
|
13
|
+
const failed = data.results.filter((r) => r.error !== undefined);
|
|
14
|
+
const rows = data.tallies.filter((t) => data.all || t.broken.length + t.flagged.length > 0);
|
|
15
|
+
const fileRows = [...broken, ...(data.all ? flaggedOnly : [])].sort((a, b) => (worst(b)?.probability ?? 0) - (worst(a)?.probability ?? 0));
|
|
16
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "audit", where: data.root, note: `${data.files} files judged ${glyph.dotSep} ${ms(data.elapsedMs)} ${glyph.dotSep} about ${usd(data.spendUsd)}` }), _jsx(Section, { title: "By rule", aside: rows.length === 0
|
|
17
|
+
? "nothing broken"
|
|
18
|
+
: `${rows.length} ${rows.length === 1 ? "rule" : "rules"} with something to look at`, children: rows.length === 0 ? (_jsxs(Text, { color: palette.sage, children: [glyph.check, " No file breaks a rule above the act line."] })) : (_jsx(Columns, { indent: 2, columns: [
|
|
19
|
+
{ key: "rule", label: "rule", width: 34 },
|
|
20
|
+
{ key: "broken", label: "broken", width: 7, align: "right" },
|
|
21
|
+
{ key: "flagged", label: "uncertain", width: 9, align: "right" },
|
|
22
|
+
{ key: "checked", label: "of", width: 5, align: "right" },
|
|
23
|
+
{ key: "example", label: "for example", keep: "tail" },
|
|
24
|
+
], rows: rows.map((t) => ({
|
|
25
|
+
rule: {
|
|
26
|
+
text: t.ruleId,
|
|
27
|
+
color: t.broken.length > 0 ? palette.cloud : palette.mist,
|
|
28
|
+
bold: t.broken.length > 0,
|
|
29
|
+
},
|
|
30
|
+
broken: {
|
|
31
|
+
text: String(t.broken.length),
|
|
32
|
+
color: t.broken.length > 0 ? palette.rose : palette.ash,
|
|
33
|
+
bold: t.broken.length > 0,
|
|
34
|
+
},
|
|
35
|
+
flagged: {
|
|
36
|
+
text: String(t.flagged.length),
|
|
37
|
+
color: t.flagged.length > 0 ? palette.amber : palette.ash,
|
|
38
|
+
},
|
|
39
|
+
checked: { text: String(t.checked), color: palette.ash },
|
|
40
|
+
example: { text: t.broken[0] ?? t.flagged[0] ?? "", color: palette.mist },
|
|
41
|
+
})) })) }), fileRows.length > 0 ? (_jsxs(Section, { title: "By file", aside: `${broken.length} ${broken.length === 1 ? "file breaks" : "files break"} a rule ${glyph.dotSep} ${flaggedOnly.length} uncertain only`, children: [fileRows.slice(0, data.all ? fileRows.length : 40).map((r) => {
|
|
42
|
+
const top = worst(r);
|
|
43
|
+
const acts = r.verdicts.filter((v) => v.band === "act").map((v) => v.ruleId);
|
|
44
|
+
const flags = r.verdicts.filter((v) => v.band === "flag").map((v) => v.ruleId);
|
|
45
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: acts.length ? palette.rose : palette.amber, children: meter(top?.probability ?? 0, 6) }), _jsxs(Text, { color: palette.cloud, bold: acts.length > 0, children: [" ", r.file] })] }), _jsx(Box, { paddingLeft: 8, children: _jsxs(Text, { color: palette.ash, wrap: "truncate-end", children: [acts.length ? acts.join(", ") : "", acts.length && flags.length ? " " : "", flags.length ? `uncertain: ${flags.join(", ")}` : ""] }) })] }, r.file));
|
|
46
|
+
}), !data.all && fileRows.length > 40 ? (_jsxs(Text, { color: palette.ash, children: [fileRows.length - 40, " more. Pass --all to list them."] })) : null] })) : null, failed.length > 0 ? (_jsx(Callout, { tone: "warn", title: `${failed.length} ${failed.length === 1 ? "file was" : "files were"} judged only in part, or not at all`, children: failed.slice(0, 5).map((r) => (_jsxs(Text, { color: palette.mist, children: [r.file, " ", _jsx(Text, { color: palette.ash, children: r.error })] }, r.file))) })) : null, data.skipped.tooBig.length + data.skipped.outOfScope > 0 ? (_jsxs(Text, { color: palette.ash, children: ["Skipped ", data.skipped.outOfScope, " ", data.skipped.outOfScope === 1 ? "file" : "files", " no rule applies to", data.skipped.tooBig.length ? ` and ${data.skipped.tooBig.length} too big to send` : "", ". Turn-phase rules do not apply to an audit."] })) : null] }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=AuditView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditView.js","sourceRoot":"","sources":["../../../src/ui/views/AuditView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type BenchRow = {
|
|
2
|
+
what: string;
|
|
3
|
+
median: number;
|
|
4
|
+
p90: number;
|
|
5
|
+
};
|
|
6
|
+
export type BenchData = {
|
|
7
|
+
root: string;
|
|
8
|
+
runs: number;
|
|
9
|
+
activeModelRules: number;
|
|
10
|
+
rows: BenchRow[];
|
|
11
|
+
tokens: {
|
|
12
|
+
small: number;
|
|
13
|
+
large: number;
|
|
14
|
+
};
|
|
15
|
+
cost: {
|
|
16
|
+
small: number;
|
|
17
|
+
large: number;
|
|
18
|
+
};
|
|
19
|
+
perTurn: {
|
|
20
|
+
latencyMs: number;
|
|
21
|
+
costUsd: number;
|
|
22
|
+
};
|
|
23
|
+
sessions: {
|
|
24
|
+
count: number;
|
|
25
|
+
medianChecks: number;
|
|
26
|
+
medianLatencyMs: number;
|
|
27
|
+
medianCostUsd: number;
|
|
28
|
+
} | null;
|
|
29
|
+
};
|
|
30
|
+
export declare function BenchView({ data }: {
|
|
31
|
+
data: BenchData;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=BenchView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BenchView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/BenchView.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AACrE,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,+BA8DtD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { Columns } from "../components/Columns.js";
|
|
4
|
+
import { Header } from "../components/Header.js";
|
|
5
|
+
import { Section } from "../components/Section.js";
|
|
6
|
+
import { ms, usd } from "../../lib/ui.js";
|
|
7
|
+
import { glyph, palette } from "../theme.js";
|
|
8
|
+
export function BenchView({ data }) {
|
|
9
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "bench", where: data.root, note: `${data.activeModelRules} active model rules ${glyph.dotSep} ${data.runs} runs each` }), _jsx(Section, { title: "Latency", children: _jsx(Columns, { indent: 2, columns: [
|
|
10
|
+
{ key: "what", label: "" },
|
|
11
|
+
{ key: "median", label: "median", width: 8, align: "right" },
|
|
12
|
+
{ key: "p90", label: "p90", width: 8, align: "right" },
|
|
13
|
+
], rows: data.rows.map((r) => ({
|
|
14
|
+
what: { text: r.what, color: palette.cloud },
|
|
15
|
+
median: { text: ms(r.median), color: palette.ceramic, bold: true },
|
|
16
|
+
p90: { text: ms(r.p90), color: palette.mist },
|
|
17
|
+
})) }) }), _jsxs(Section, { title: "Spend", children: [_jsxs(Text, { color: palette.cloud, children: ["input tokens per edit ", _jsx(Text, { color: palette.ceramic, children: data.tokens.small }), " small", " ", _jsx(Text, { color: palette.ash, children: glyph.dotSep }), " ", _jsx(Text, { color: palette.ceramic, children: data.tokens.large }), " large"] }), _jsxs(Text, { color: palette.cloud, children: ["per edit ", _jsx(Text, { color: palette.ceramic, children: usd(data.cost.small) }), " small", " ", _jsx(Text, { color: palette.ash, children: glyph.dotSep }), " ", _jsx(Text, { color: palette.ceramic, children: usd(data.cost.large) }), " large"] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: palette.cloud, children: ["A 15 edit turn here: about", " ", _jsx(Text, { color: palette.ceramic, children: ms(data.perTurn.latencyMs) }), " of waiting and", " ", _jsx(Text, { color: palette.ceramic, children: usd(data.perTurn.costUsd) }), ", before repairs."] }) })] }), _jsx(Section, { title: "Real sessions", aside: data.sessions ? `${data.sessions.count} recorded` : "none yet", children: data.sessions ? (_jsxs(Text, { color: palette.cloud, children: ["median per session ", _jsx(Text, { color: palette.ceramic, children: data.sessions.medianChecks }), " ", "checks ", _jsx(Text, { color: palette.ash, children: glyph.dotSep }), " ", _jsx(Text, { color: palette.ceramic, children: ms(data.sessions.medianLatencyMs) }), " of hook time", " ", _jsx(Text, { color: palette.ash, children: glyph.dotSep }), " ", _jsx(Text, { color: palette.ceramic, children: usd(data.sessions.medianCostUsd) })] })) : (_jsx(Text, { color: palette.ash, children: "The figures above are measured; per-session numbers appear once the hooks have run here." })) })] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=BenchView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BenchView.js","sourceRoot":"","sources":["../../../src/ui/views/BenchView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CalibrationVerdict } from "@coldtea/abide-schema";
|
|
2
|
+
export type CalibrateRow = {
|
|
3
|
+
id: string;
|
|
4
|
+
when: string;
|
|
5
|
+
states: number;
|
|
6
|
+
median: number;
|
|
7
|
+
min: number;
|
|
8
|
+
max: number;
|
|
9
|
+
fired: number;
|
|
10
|
+
verdict: CalibrationVerdict;
|
|
11
|
+
};
|
|
12
|
+
export type CalibrateData = {
|
|
13
|
+
root: string;
|
|
14
|
+
file: string;
|
|
15
|
+
hunks: number;
|
|
16
|
+
commits: number;
|
|
17
|
+
calls: number;
|
|
18
|
+
spendUsd: number;
|
|
19
|
+
rows: CalibrateRow[];
|
|
20
|
+
weak: string[];
|
|
21
|
+
noisy: string[];
|
|
22
|
+
};
|
|
23
|
+
export declare function CalibrateView({ data }: {
|
|
24
|
+
data: CalibrateData;
|
|
25
|
+
}): import("react").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=CalibrateView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalibrateView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/CalibrateView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAQhE,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAWF,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,+BAmE9D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { Callout } from "../components/Callout.js";
|
|
4
|
+
import { Columns } from "../components/Columns.js";
|
|
5
|
+
import { Header } from "../components/Header.js";
|
|
6
|
+
import { Section } from "../components/Section.js";
|
|
7
|
+
import { usd } from "../../lib/ui.js";
|
|
8
|
+
import { glyph, meter, palette } from "../theme.js";
|
|
9
|
+
const verdictColor = (v) => v === "decisive"
|
|
10
|
+
? palette.sage
|
|
11
|
+
: v === "weak"
|
|
12
|
+
? palette.amber
|
|
13
|
+
: v === "noisy"
|
|
14
|
+
? palette.rose
|
|
15
|
+
: palette.ash;
|
|
16
|
+
export function CalibrateView({ data }) {
|
|
17
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "calibrate", where: data.root, note: `${data.rows.length} rules ${glyph.dotSep} ${data.hunks} hunks and ${data.commits} commits from git history` }), _jsx(Section, { title: "Rules", aside: `${data.calls} calls ${glyph.dotSep} about ${usd(data.spendUsd)}`, children: _jsx(Columns, { indent: 2, columns: [
|
|
18
|
+
{ key: "id", label: "rule", width: 34 },
|
|
19
|
+
{ key: "when", label: "when", width: 4 },
|
|
20
|
+
{ key: "states", label: "states", width: 6, align: "right" },
|
|
21
|
+
{ key: "median", label: "median", width: 12 },
|
|
22
|
+
{ key: "range", label: "min max", width: 11 },
|
|
23
|
+
{ key: "fired", label: "fired", width: 5, align: "right" },
|
|
24
|
+
{ key: "verdict", label: "verdict" },
|
|
25
|
+
], rows: data.rows.map((r) => ({
|
|
26
|
+
id: { text: r.id, color: palette.cloud },
|
|
27
|
+
when: { text: r.when, color: r.when === "turn" ? palette.plum : palette.mist },
|
|
28
|
+
states: { text: String(r.states), color: palette.mist },
|
|
29
|
+
median: {
|
|
30
|
+
text: `${meter(r.median, 6)} ${r.median.toFixed(2)}`,
|
|
31
|
+
color: verdictColor(r.verdict),
|
|
32
|
+
},
|
|
33
|
+
range: { text: `${r.min.toFixed(2)} ${r.max.toFixed(2)}`, color: palette.ash },
|
|
34
|
+
fired: { text: String(r.fired), color: r.fired > 0 ? palette.rose : palette.ash },
|
|
35
|
+
verdict: {
|
|
36
|
+
text: r.verdict,
|
|
37
|
+
color: verdictColor(r.verdict),
|
|
38
|
+
bold: r.verdict !== "decisive" && r.verdict !== "skipped",
|
|
39
|
+
},
|
|
40
|
+
})) }) }), data.weak.length > 0 ? (_jsxs(Callout, { tone: "warn", title: `${data.weak.length} ${data.weak.length === 1 ? "rule" : "rules"} never answered near 0 or near 1 and will not run`, children: [_jsx(Text, { color: palette.cloud, children: data.weak.join(", ") }), _jsx(Text, { color: palette.mist, children: "Likely badly worded. Run abide tune to rewrite them." })] })) : null, data.noisy.length > 0 ? (_jsxs(Callout, { tone: "bad", title: `${data.noisy.length} ${data.noisy.length === 1 ? "rule fired" : "rules fired"} on most historic hunks and will not run`, children: [_jsx(Text, { color: palette.cloud, children: data.noisy.join(", ") }), _jsx(Text, { color: palette.mist, children: "Too broad. Narrow the scope or the wording." })] })) : null, data.weak.length + data.noisy.length === 0 ? (_jsxs(Text, { color: palette.sage, children: [glyph.check, " Every rule is decisive on this repository's history."] })) : null, _jsxs(Text, { color: palette.ash, children: ["wrote ", data.file] })] }));
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=CalibrateView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalibrateView.js","sourceRoot":"","sources":["../../../src/ui/views/CalibrateView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Verdict } from "@coldtea/abide-schema";
|
|
2
|
+
export type CheckSection = {
|
|
3
|
+
phase: "edit" | "turn";
|
|
4
|
+
files: string[];
|
|
5
|
+
modelRules: number;
|
|
6
|
+
calls: number;
|
|
7
|
+
latencyMs: number;
|
|
8
|
+
verdicts: Verdict[];
|
|
9
|
+
};
|
|
10
|
+
export type CheckData = {
|
|
11
|
+
root: string;
|
|
12
|
+
sections: CheckSection[];
|
|
13
|
+
spendUsd: number;
|
|
14
|
+
all: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare function CheckView({ data }: {
|
|
17
|
+
data: CheckData;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=CheckView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/CheckView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAOrD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnG,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,+BAoCtD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { Header } from "../components/Header.js";
|
|
4
|
+
import { Section } from "../components/Section.js";
|
|
5
|
+
import { Verdicts } from "../components/Verdicts.js";
|
|
6
|
+
import { ms, usd } from "../../lib/ui.js";
|
|
7
|
+
import { glyph, palette } from "../theme.js";
|
|
8
|
+
export function CheckView({ data }) {
|
|
9
|
+
const acts = data.sections.flatMap((s) => s.verdicts).filter((v) => v.band === "act").length;
|
|
10
|
+
const flags = data.sections.flatMap((s) => s.verdicts).filter((v) => v.band === "flag").length;
|
|
11
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "check", where: data.root }), data.sections.map((s, i) => (_jsx(Section, { title: s.phase === "edit"
|
|
12
|
+
? (s.files[0] ?? "")
|
|
13
|
+
: `turn ${glyph.dotSep} ${s.files.length} ${s.files.length === 1 ? "file" : "files"}`, aside: `${s.modelRules} rules ${glyph.dotSep} ${s.calls} ${s.calls === 1 ? "call" : "calls"} ${glyph.dotSep} ${ms(s.latencyMs)}`, children: _jsx(Verdicts, { verdicts: s.verdicts, all: data.all }) }, i))), _jsxs(Box, { children: [_jsx(Text, { color: acts > 0 ? palette.rose : palette.sage, bold: true, children: acts > 0 ? `${glyph.cross} ${acts} to repair` : `${glyph.check} nothing to repair` }), flags > 0 ? (_jsxs(Text, { color: palette.amber, children: [" ", glyph.dot, " ", flags, " uncertain"] })) : null, _jsxs(Text, { color: palette.ash, children: [" ", glyph.dotSep, " about ", usd(data.spendUsd)] })] })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=CheckView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckView.js","sourceRoot":"","sources":["../../../src/ui/views/CheckView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAa7C,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAuB;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;IAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC/F,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAI,EAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,KAAC,OAAO,IAEN,KAAK,EACH,CAAC,CAAC,KAAK,KAAK,MAAM;oBAChB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACpB,CAAC,CAAC,QAAQ,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,EAEzF,KAAK,EAAE,GAAG,CAAC,CAAC,UAAU,UAAU,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,YAEhI,KAAC,QAAQ,IAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAI,IAR5C,CAAC,CASE,CACX,CAAC,EACF,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,kBACtD,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,oBAAoB,GAC9E,EACN,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACX,MAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,KAAK,aACvB,GAAG,EACH,KAAK,CAAC,GAAG,OAAG,KAAK,kBACb,CACR,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,GAAG,aACrB,GAAG,EACH,KAAK,CAAC,MAAM,aAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IACnC,IACH,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/ErrorView.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,+BAWtD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from "ink";
|
|
3
|
+
import { isAbideError } from "@coldtea/abide-schema";
|
|
4
|
+
import { Callout } from "../components/Callout.js";
|
|
5
|
+
import { palette } from "../theme.js";
|
|
6
|
+
/** Our own sentence for each failure; the machine's detail sits under it, dimmed. */
|
|
7
|
+
const TITLES = {
|
|
8
|
+
NO_API_KEY: "No API key, so nothing can be checked",
|
|
9
|
+
NO_INSTRUCTION_FILES: "No instruction files here, so there is nothing to compile",
|
|
10
|
+
RUBRIC_INVALID: "The rubric could not be read",
|
|
11
|
+
RUBRIC_MISSING: "No rubric yet",
|
|
12
|
+
SETTINGS_INVALID: "The settings file could not be changed",
|
|
13
|
+
GIT_UNAVAILABLE: "Git history is not readable here",
|
|
14
|
+
CLAUDE_UNAVAILABLE: "Claude Code did not finish the turn",
|
|
15
|
+
HOST_UNKNOWN: "That is not an agent abide knows",
|
|
16
|
+
HOST_NOT_FOUND: "No supported agent was found on this machine",
|
|
17
|
+
CHECK_TIMEOUT: "Jev did not answer in time",
|
|
18
|
+
CHECK_FAILED: "Jev refused the check",
|
|
19
|
+
};
|
|
20
|
+
export function ErrorView({ error }) {
|
|
21
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
22
|
+
if (!isAbideError(error))
|
|
23
|
+
return _jsx(Callout, { tone: "bad", title: detail });
|
|
24
|
+
return (_jsxs(Callout, { tone: "bad", title: TITLES[error.code], children: [_jsx(Text, { color: palette.mist, wrap: "wrap", children: detail }), _jsx(Text, { color: palette.ash, children: error.code })] }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ErrorView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorView.js","sourceRoot":"","sources":["../../../src/ui/views/ErrorView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAuB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,qFAAqF;AACrF,MAAM,MAAM,GAAmC;IAC7C,UAAU,EAAE,uCAAuC;IACnD,oBAAoB,EAAE,2DAA2D;IACjF,cAAc,EAAE,8BAA8B;IAC9C,cAAc,EAAE,eAAe;IAC/B,gBAAgB,EAAE,wCAAwC;IAC1D,eAAe,EAAE,kCAAkC;IACnD,kBAAkB,EAAE,qCAAqC;IACzD,YAAY,EAAE,kCAAkC;IAChD,cAAc,EAAE,8CAA8C;IAC9D,aAAa,EAAE,4BAA4B;IAC3C,YAAY,EAAE,uBAAuB;CACtC,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAsB;IACrD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,KAAC,OAAO,IAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAE,MAAM,GAAI,CAAC;IACvE,OAAO,CACL,MAAC,OAAO,IAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAC3C,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAC,MAAM,YACnC,MAAM,GACF,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,GAAG,YAAG,KAAK,CAAC,IAAI,GAAQ,IACrC,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/HelpView.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,QAAQ,gCA4BvB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { Header } from "../components/Header.js";
|
|
4
|
+
import { palette } from "../theme.js";
|
|
5
|
+
const COMMANDS = [
|
|
6
|
+
["login [--gateway]", "store your TypeSafe key in ~/.abide/.env, owner-only"],
|
|
7
|
+
["init [agent] [--project]", "hook into claude, codex, opencode, or every one found here"],
|
|
8
|
+
["compile", "compile the rubric now, in a headless Claude Code turn"],
|
|
9
|
+
["tune [--global]", "rewrite rules that never fire, with their statistics attached"],
|
|
10
|
+
["rubric validate [--global]", "check .abide/rubric.json and fill in source hashes"],
|
|
11
|
+
["calibrate [--global]", "test every rule against this repo's recent history"],
|
|
12
|
+
["check [paths] [--all]", "check uncommitted changes the way the hooks would"],
|
|
13
|
+
["audit [paths] [--all]", "judge every file in scope as if just written; what breaks which rule"],
|
|
14
|
+
["report", "what is compiled, what fired, what never fires"],
|
|
15
|
+
[
|
|
16
|
+
"replay <agent>",
|
|
17
|
+
"judge past claude, codex or opencode sessions in this repo as if abide had been installed",
|
|
18
|
+
],
|
|
19
|
+
["bench [--runs N]", "latency and spend, measured on this machine"],
|
|
20
|
+
["uninstall [agent] [--project]", "remove the hooks from one agent, or all"],
|
|
21
|
+
];
|
|
22
|
+
export function HelpView() {
|
|
23
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "help", note: "Enforce your own AGENTS.md rules on every edit a coding agent makes." }), COMMANDS.map(([name, what]) => (_jsxs(Box, { children: [_jsx(Box, { width: 30, children: _jsx(Text, { color: palette.cloud, bold: true, children: name }) }), _jsx(Text, { color: palette.mist, children: what })] }, name))), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: palette.ash, children: "--json prints machine-readable output on report, check, audit, bench and calibrate." }), _jsx(Text, { color: palette.ash, children: "Key: abide login, or TYPESAFE_AI_API_KEY (or AI_GATEWAY_API_KEY) in the environment or a .env at the repo root." })] })] }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=HelpView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpView.js","sourceRoot":"","sources":["../../../src/ui/views/HelpView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,QAAQ,GAAuB;IACnC,CAAC,mBAAmB,EAAE,sDAAsD,CAAC;IAC7E,CAAC,0BAA0B,EAAE,4DAA4D,CAAC;IAC1F,CAAC,SAAS,EAAE,wDAAwD,CAAC;IACrE,CAAC,iBAAiB,EAAE,+DAA+D,CAAC;IACpF,CAAC,4BAA4B,EAAE,oDAAoD,CAAC;IACpF,CAAC,sBAAsB,EAAE,oDAAoD,CAAC;IAC9E,CAAC,uBAAuB,EAAE,mDAAmD,CAAC;IAC9E,CAAC,uBAAuB,EAAE,sEAAsE,CAAC;IACjG,CAAC,QAAQ,EAAE,gDAAgD,CAAC;IAC5D;QACE,gBAAgB;QAChB,2FAA2F;KAC5F;IACD,CAAC,kBAAkB,EAAE,6CAA6C,CAAC;IACnE,CAAC,+BAA+B,EAAE,yCAAyC,CAAC;CAC7E,CAAC;AAEF,MAAM,UAAU,QAAQ;IACtB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,MAAM,IACL,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,sEAAsE,GAC3E,EACD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAC9B,MAAC,GAAG,eACF,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,kBAC7B,IAAI,GACA,GACH,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,IAAI,YAAG,IAAI,GAAQ,KANhC,IAAI,CAOR,CACP,CAAC,EACF,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,GAAG,oGAEjB,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,GAAG,gIAGjB,IACH,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Step } from "../components/Checklist.js";
|
|
2
|
+
export type InitData = {
|
|
3
|
+
kind: "no-key";
|
|
4
|
+
root: string;
|
|
5
|
+
} | {
|
|
6
|
+
kind: "no-sources";
|
|
7
|
+
root: string;
|
|
8
|
+
} | {
|
|
9
|
+
kind: "installed";
|
|
10
|
+
root: string;
|
|
11
|
+
steps: Step[];
|
|
12
|
+
hosts: string[];
|
|
13
|
+
afterwards: string[];
|
|
14
|
+
sources: {
|
|
15
|
+
path: string;
|
|
16
|
+
scope: string;
|
|
17
|
+
global: boolean;
|
|
18
|
+
}[];
|
|
19
|
+
rubric: {
|
|
20
|
+
path: string;
|
|
21
|
+
rules: number;
|
|
22
|
+
} | null;
|
|
23
|
+
};
|
|
24
|
+
export declare function InitView({ data }: {
|
|
25
|
+
data: InitData;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=InitView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/InitView.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAIlE,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC5D,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAChD,CAAC;AAEN,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,+BAkFpD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { assertNever } from "@coldtea/abide-schema";
|
|
4
|
+
import { Callout } from "../components/Callout.js";
|
|
5
|
+
import { Checklist } from "../components/Checklist.js";
|
|
6
|
+
import { Header } from "../components/Header.js";
|
|
7
|
+
import { palette, scopeLabel } from "../theme.js";
|
|
8
|
+
export function InitView({ data }) {
|
|
9
|
+
switch (data.kind) {
|
|
10
|
+
case "no-key":
|
|
11
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "init", where: data.root }), _jsxs(Callout, { tone: "warn", title: "No API key found, so abide has nothing to check with", children: [_jsxs(Text, { color: palette.cloud, children: ["Get a TypeSafe key at typesafe.ai, then run", " ", _jsx(Text, { color: palette.ceramic, children: "abide login" }), " and paste it."] }), _jsx(Text, { color: palette.mist, children: "Or put TYPESAFE_AI_API_KEY (or a Vercel AI_GATEWAY_API_KEY) in the environment or a .env at the repo root." }), _jsx(Text, { color: palette.ash, children: "Never a flag. It is never logged." })] })] }));
|
|
12
|
+
case "no-sources":
|
|
13
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "init", where: data.root }), _jsx(Callout, { tone: "warn", title: "Found 0 instruction files, so there are 0 rules", children: _jsx(Text, { color: palette.cloud, children: "Add an AGENTS.md and run abide init again. Abide ships no rules of its own." }) })] }));
|
|
14
|
+
case "installed":
|
|
15
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "init", where: data.root }), _jsx(Checklist, { steps: data.steps }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: palette.mist, children: "Instruction files" }), data.sources.map((s) => (_jsxs(Box, { children: [_jsxs(Text, { color: palette.cloud, children: [" ", s.path] }), _jsxs(Text, { color: palette.ash, children: [" ", s.global
|
|
16
|
+
? "global, every repo"
|
|
17
|
+
: s.scope === "**/*"
|
|
18
|
+
? "everywhere in this repo"
|
|
19
|
+
: `applies to ${scopeLabel([s.scope])}`] })] }, s.path)))] }), _jsx(Box, { marginTop: 1, children: data.rubric ? (_jsx(Callout, { tone: "ok", title: `Rubric present: ${data.rubric.rules} rules`, children: _jsxs(Text, { color: palette.mist, children: [data.rubric.path, ". It is rehashed at the start of every session."] }) })) : (_jsxs(Callout, { tone: "accent", title: `Next: start ${data.hosts.join(" or ")} in this repo`, children: [_jsx(Text, { color: palette.cloud, children: "The first turn compiles the rubric, on your own subscription." }), _jsxs(Text, { color: palette.mist, children: ["To compile right now instead: ", _jsx(Text, { color: palette.ceramic, children: "abide compile" })] })] })) }), data.afterwards.map((line) => (_jsx(Text, { color: palette.amber, children: line }, line))), _jsx(Text, { color: palette.ash, children: "Later: abide report shows what fired, abide bench measures latency and spend here." })] }));
|
|
20
|
+
default:
|
|
21
|
+
return assertNever(data);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=InitView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitView.js","sourceRoot":"","sources":["../../../src/ui/views/InitView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DriftRow, ReplayResult, RuleTally } from "../../lib/replay.js";
|
|
2
|
+
export type ReplayData = {
|
|
3
|
+
root: string;
|
|
4
|
+
host: string;
|
|
5
|
+
sessions: number;
|
|
6
|
+
edits: number;
|
|
7
|
+
result: ReplayResult;
|
|
8
|
+
drift: DriftRow[];
|
|
9
|
+
tallies: RuleTally[];
|
|
10
|
+
spendUsd: number;
|
|
11
|
+
elapsedMs: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function ReplayView({ data }: {
|
|
14
|
+
data: ReplayData;
|
|
15
|
+
}): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=ReplayView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplayView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/ReplayView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAO7E,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,+BA6ExD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { ms, usd } from "../../lib/ui.js";
|
|
4
|
+
import { Columns } from "../components/Columns.js";
|
|
5
|
+
import { Header } from "../components/Header.js";
|
|
6
|
+
import { Section } from "../components/Section.js";
|
|
7
|
+
import { glyph, palette } from "../theme.js";
|
|
8
|
+
const percent = (rate) => `${Math.round(rate * 100)}%`;
|
|
9
|
+
export function ReplayView({ data }) {
|
|
10
|
+
const judged = data.result.edits.filter((e) => e.error === undefined);
|
|
11
|
+
const broken = judged.filter((e) => e.verdicts.some((v) => v.band === "act"));
|
|
12
|
+
const failed = data.result.edits.filter((e) => e.error !== undefined);
|
|
13
|
+
const brokenTurns = data.result.turns.filter((t) => t.verdicts.some((v) => v.band === "act"));
|
|
14
|
+
const rows = data.tallies.filter((t) => t.broken + t.flagged > 0);
|
|
15
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { command: "replay", where: data.root, note: `${data.host} ${glyph.dotSep} ${data.sessions} sessions ${glyph.dotSep} ${judged.length} edits judged ${glyph.dotSep} ${ms(data.elapsedMs)} ${glyph.dotSep} about ${usd(data.spendUsd)}` }), _jsx(Section, { title: "What abide would have caught", aside: `${broken.length} of ${judged.length} edits, ${brokenTurns.length} of ${data.result.turns.length} turns`, children: _jsx(Columns, { indent: 2, columns: [
|
|
16
|
+
{ key: "label", label: "when", width: 20 },
|
|
17
|
+
{ key: "edits", label: "edits", width: 6, align: "right" },
|
|
18
|
+
{ key: "broken", label: "broken", width: 7, align: "right" },
|
|
19
|
+
{ key: "rate", label: "rate", width: 6, align: "right" },
|
|
20
|
+
], rows: data.drift.map((d) => ({
|
|
21
|
+
label: { text: d.label, color: palette.cloud },
|
|
22
|
+
edits: { text: String(d.edits), color: palette.mist },
|
|
23
|
+
broken: { text: String(d.broken), color: d.broken > 0 ? palette.rose : palette.mist },
|
|
24
|
+
rate: { text: percent(d.rate), color: palette.cloud, bold: true },
|
|
25
|
+
})) }) }), _jsx(Section, { title: "By rule", aside: rows.length === 0 ? "nothing fired" : `${rows.length} rules fired`, children: rows.length === 0 ? (_jsxs(Text, { color: palette.sage, children: [glyph.check, " No edit or turn broke a rule above the act line."] })) : (_jsx(Columns, { indent: 2, columns: [
|
|
26
|
+
{ key: "rule", label: "rule", width: 34 },
|
|
27
|
+
{ key: "phase", label: "phase", width: 5 },
|
|
28
|
+
{ key: "broken", label: "broken", width: 7, align: "right" },
|
|
29
|
+
{ key: "flagged", label: "uncertain", width: 9, align: "right" },
|
|
30
|
+
{ key: "of", label: "of", width: 6, align: "right" },
|
|
31
|
+
{ key: "example", label: "for example", keep: "tail" },
|
|
32
|
+
], rows: rows.map((t) => ({
|
|
33
|
+
rule: { text: t.rule, color: palette.cloud, bold: true },
|
|
34
|
+
phase: { text: t.phase, color: palette.mist },
|
|
35
|
+
broken: { text: String(t.broken), color: t.broken > 0 ? palette.rose : palette.mist },
|
|
36
|
+
flagged: {
|
|
37
|
+
text: String(t.flagged),
|
|
38
|
+
color: t.flagged > 0 ? palette.amber : palette.mist,
|
|
39
|
+
},
|
|
40
|
+
of: { text: String(t.of), color: palette.ash },
|
|
41
|
+
example: { text: t.example, color: palette.ash },
|
|
42
|
+
})) })) }), failed.length > 0 ? (_jsxs(Text, { color: palette.amber, children: [failed.length, " edits could not be judged: ", failed[0]?.error] })) : null, _jsx(Text, { color: palette.ash, children: "Jev is the judge here, so this is what abide would have flagged, not ground truth. Shell-made changes are not in a transcript and were not judged." })] }));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=ReplayView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplayView.js","sourceRoot":"","sources":["../../../src/ui/views/ReplayView.tsx"],"names":[],"mappings":"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"}
|