bb-cc-lite 0.1.0 → 0.1.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 (66) hide show
  1. package/README.md +45 -6
  2. package/assets/statusline-demo.gif +0 -0
  3. package/dist/baseline-builder.d.ts +13 -0
  4. package/dist/baseline-builder.js +666 -0
  5. package/dist/baseline-builder.js.map +1 -0
  6. package/dist/baseline.d.ts +113 -0
  7. package/dist/baseline.js +383 -0
  8. package/dist/baseline.js.map +1 -0
  9. package/dist/cli.js +41 -50
  10. package/dist/cli.js.map +1 -1
  11. package/dist/decision-presentation.d.ts +11 -0
  12. package/dist/decision-presentation.js +12 -0
  13. package/dist/decision-presentation.js.map +1 -0
  14. package/dist/doctor.d.ts +17 -0
  15. package/dist/doctor.js +161 -8
  16. package/dist/doctor.js.map +1 -1
  17. package/dist/event-store-persistence.d.ts +5 -0
  18. package/dist/event-store-persistence.js +172 -0
  19. package/dist/event-store-persistence.js.map +1 -0
  20. package/dist/event-store-queries.d.ts +9 -0
  21. package/dist/event-store-queries.js +51 -0
  22. package/dist/event-store-queries.js.map +1 -0
  23. package/dist/hook-payload.d.ts +3 -0
  24. package/dist/hook-payload.js +90 -0
  25. package/dist/hook-payload.js.map +1 -0
  26. package/dist/hook-summary.d.ts +12 -0
  27. package/dist/hook-summary.js +25 -0
  28. package/dist/hook-summary.js.map +1 -0
  29. package/dist/hooks.d.ts +2 -14
  30. package/dist/hooks.js +2 -126
  31. package/dist/hooks.js.map +1 -1
  32. package/dist/paths.d.ts +1 -0
  33. package/dist/paths.js +3 -0
  34. package/dist/paths.js.map +1 -1
  35. package/dist/renderer.d.ts +2 -2
  36. package/dist/renderer.js +15 -7
  37. package/dist/renderer.js.map +1 -1
  38. package/dist/session.d.ts +3 -0
  39. package/dist/session.js +9 -0
  40. package/dist/session.js.map +1 -0
  41. package/dist/settings.d.ts +2 -1
  42. package/dist/settings.js +23 -42
  43. package/dist/settings.js.map +1 -1
  44. package/dist/signals.d.ts +2 -1
  45. package/dist/signals.js +156 -6
  46. package/dist/signals.js.map +1 -1
  47. package/dist/statusline.d.ts +1 -0
  48. package/dist/statusline.js +34 -0
  49. package/dist/statusline.js.map +1 -0
  50. package/dist/store.d.ts +3 -10
  51. package/dist/store.js +3 -84
  52. package/dist/store.js.map +1 -1
  53. package/dist/tool-metadata.d.ts +8 -0
  54. package/dist/tool-metadata.js +52 -0
  55. package/dist/tool-metadata.js.map +1 -0
  56. package/dist/transcript-reader.d.ts +9 -0
  57. package/dist/transcript-reader.js +45 -0
  58. package/dist/transcript-reader.js.map +1 -0
  59. package/dist/transcript.d.ts +2 -3
  60. package/dist/transcript.js +54 -66
  61. package/dist/transcript.js.map +1 -1
  62. package/dist/types.d.ts +56 -0
  63. package/dist/why.d.ts +7 -0
  64. package/dist/why.js +32 -0
  65. package/dist/why.js.map +1 -0
  66. package/package.json +7 -7
package/dist/cli.js CHANGED
@@ -1,14 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { formatDoctorChecks, runDoctor } from "./doctor.js";
3
- import { mergeHookSummary, parseHookPayload } from "./hooks.js";
4
- import { hashValue } from "./paths.js";
5
- import { estimateCostUsd, loadPricing } from "./pricing.js";
6
- import { renderStatusLine } from "./renderer.js";
7
- import { decide } from "./signals.js";
2
+ import { buildPersonalBaseline, clearPersonalBaseline, formatDoctorChecks, PERSONAL_BASELINE_DISCLOSURE, runDoctor } from "./doctor.js";
3
+ import { parseHookPayload } from "./hook-payload.js";
8
4
  import { installStatusLine, uninstallStatusLine } from "./settings.js";
9
- import { parseStatusLineInput, readStdin, mergeUsage } from "./status-input.js";
10
- import { hookSummary, latestDecision, recordDecision, recordHookEvent } from "./store.js";
11
- import { parseTranscriptTail } from "./transcript.js";
5
+ import { readStdin } from "./status-input.js";
6
+ import { createStatusLine } from "./statusline.js";
7
+ import { recordHookEvent } from "./store.js";
8
+ import { formatWhy, getWhyDecision } from "./why.js";
12
9
  async function main() {
13
10
  const args = parseArgs(process.argv.slice(2));
14
11
  switch (args.command) {
@@ -18,6 +15,9 @@ async function main() {
18
15
  case "uninstall":
19
16
  await commandUninstall(args);
20
17
  break;
18
+ case "unlearn":
19
+ await commandUnlearn(args);
20
+ break;
21
21
  case "statusline":
22
22
  await commandStatusLine();
23
23
  break;
@@ -47,6 +47,7 @@ async function main() {
47
47
  }
48
48
  }
49
49
  async function commandInstall(args) {
50
+ const shouldLearn = !args.flags["no-learn"];
50
51
  const result = await installStatusLine({
51
52
  scope: scopeFlag(args),
52
53
  replace: Boolean(args.flags.replace),
@@ -58,9 +59,13 @@ async function commandInstall(args) {
58
59
  if (result.command) {
59
60
  console.log(`Command: ${result.command}`);
60
61
  }
61
- if (result.status === "skipped") {
62
- console.log(`Manual replace: bb-cc-lite install --scope ${result.target.scope} --replace`);
62
+ if (!shouldLearn) {
63
+ console.log("Skipped personal baseline learning because --no-learn was passed.");
64
+ return;
63
65
  }
66
+ console.log(PERSONAL_BASELINE_DISCLOSURE);
67
+ const baseline = await buildPersonalBaseline({ homeDir: stringFlag(args, "home") });
68
+ console.log(baseline.message);
64
69
  }
65
70
  async function commandUninstall(args) {
66
71
  const result = await uninstallStatusLine({
@@ -74,32 +79,14 @@ async function commandUninstall(args) {
74
79
  process.exitCode = 1;
75
80
  }
76
81
  }
82
+ async function commandUnlearn(args) {
83
+ await clearPersonalBaseline({ homeDir: stringFlag(args, "home") });
84
+ console.log("Cleared personal baseline.");
85
+ }
77
86
  async function commandStatusLine() {
78
87
  try {
79
88
  const raw = await readStdin();
80
- const input = parseStatusLineInput(raw);
81
- const sessionKey = hashValue(input.sessionId);
82
- const transcript = mergeHookSummary(await parseTranscriptTail(input.transcriptPath), sessionKey
83
- ? await hookSummary(sessionKey)
84
- : {
85
- failedToolResults: 0,
86
- toolCalls: 0,
87
- compactionEvents: 0,
88
- repeatedFailures: []
89
- });
90
- const usage = mergeUsage(input.usage, transcript.usage);
91
- if (input.costUsd === undefined) {
92
- const estimated = estimateCostUsd(input.model.id || input.model.displayName, usage, await loadPricing());
93
- if (estimated !== undefined) {
94
- input.costUsd = estimated;
95
- input.costSource = "estimated";
96
- }
97
- }
98
- const previous = sessionKey ? await latestDecision(sessionKey) : undefined;
99
- const decision = decide(input, transcript, { previous });
100
- await recordDecision(decision);
101
- const width = input.terminalWidth || process.stdout.columns;
102
- process.stdout.write(`${renderStatusLine(decision, width)}\n`);
89
+ process.stdout.write(`${await createStatusLine(raw, process.stdout.columns)}\n`);
103
90
  }
104
91
  catch {
105
92
  process.stdout.write("bb: Careful | statusline crashed | run bb-cc-lite doctor\n");
@@ -118,8 +105,7 @@ async function commandHook(args) {
118
105
  }
119
106
  }
120
107
  async function commandWhy(args) {
121
- const sessionKey = stringFlag(args, "session") ? hashValue(stringFlag(args, "session")) : undefined;
122
- const decision = await latestDecision(sessionKey);
108
+ const decision = await getWhyDecision({ sessionId: stringFlag(args, "session") });
123
109
  if (args.flags.json) {
124
110
  console.log(JSON.stringify(decision || null, null, 2));
125
111
  return;
@@ -136,23 +122,16 @@ async function commandDoctor(args) {
136
122
  projectDir: stringFlag(args, "project"),
137
123
  homeDir: stringFlag(args, "home"),
138
124
  transcriptPath: stringFlag(args, "transcript"),
139
- refreshPricing: Boolean(args.flags["refresh-pricing"])
125
+ refreshPricing: Boolean(args.flags["refresh-pricing"]),
126
+ buildBaseline: Boolean(args.flags["build-baseline"]),
127
+ showBaseline: Boolean(args.flags.baseline),
128
+ clearBaseline: Boolean(args.flags["clear-baseline"])
140
129
  });
141
130
  console.log(formatDoctorChecks(checks));
142
131
  if (checks.some((check) => check.level === "FAIL")) {
143
132
  process.exitCode = 1;
144
133
  }
145
134
  }
146
- function formatWhy(decision) {
147
- const cost = decision.costUsd === undefined
148
- ? ""
149
- : `\nCost evidence: ${decision.costSource === "estimated" ? "estimated " : ""}$${decision.costUsd.toFixed(4)}.`;
150
- return [
151
- `Last decision: ${decision.state}.`,
152
- `Reason: ${decision.primaryEvidence}. ${decision.impact}.`,
153
- `Next action: ${decision.action}.${cost}`
154
- ].join("\n");
155
- }
156
135
  function parseArgs(argv) {
157
136
  const [command = "help", ...rest] = argv;
158
137
  const flags = {};
@@ -194,11 +173,23 @@ function printHelp() {
194
173
  console.log(`bb-cc-lite
195
174
 
196
175
  Usage:
197
- bb-cc-lite install [--scope local|project|user] [--replace] [--hooks]
176
+ bb-cc-lite install [--scope local|project|user] [--hooks]
177
+ [--no-learn]
198
178
  bb-cc-lite statusline
199
- bb-cc-lite why [--json]
179
+ bb-cc-lite why [--session <id>] [--json]
200
180
  bb-cc-lite doctor [--scope local|project|user] [--transcript <path>] [--refresh-pricing]
201
- bb-cc-lite uninstall [--scope local|project|user]
181
+ [--baseline] [--build-baseline] [--clear-baseline]
182
+ bb-cc-lite unlearn
183
+ bb-cc-lite uninstall [--scope local|project|user] [--force]
184
+
185
+ Learning:
186
+ install builds a local personal baseline from Claude JSONL by default.
187
+ install replaces an existing Claude statusLine and backs it up for uninstall.
188
+ learning scans newest eligible JSONL first with capped 512 KiB tails and bounded reads.
189
+ --no-learn skips that scan.
190
+ doctor --baseline shows a safe aggregate summary, including recent and validation categories.
191
+ doctor --build-baseline refreshes the baseline.
192
+ doctor --clear-baseline and unlearn remove only the baseline.
202
193
  `);
203
194
  }
204
195
  main().catch((error) => {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,4BAA4B,EAC5B,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAsB,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQrD,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM;QACR,KAAK,WAAW;YACd,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM;QACR,KAAK,YAAY;YACf,MAAM,iBAAiB,EAAE,CAAC;YAC1B,MAAM;QACR,KAAK,KAAK;YACR,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,SAAS,EAAE,CAAC;YACZ,MAAM;QACR;YACE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClD,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAgB;IAC5C,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;QACrC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACpC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAChC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;QACvC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAgB;IAC9C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;QACvC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;QACtB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAChC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;QACvC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAgB;IAC5C,MAAM,qBAAqB,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAgB;IACzC,IAAI,CAAC;QACH,MAAM,iBAAiB,GACrB,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,mBAAmB,CAAC,CAAC;QACzG,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACrE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAgB;IACxC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,kGAAkG,CAAC,CAAC;QAChH,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAgB;IAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;QACtB,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;QACvC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;QACjC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC;QAC9C,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtD,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpD,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;KACrD,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACzC,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,IAAgB;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC;IACnD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,oCAAoC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,IAAY;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoBb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Decision, DecisionEvidence, DecisionState } from "./types.js";
2
+ export interface DecisionPresentation {
3
+ state: DecisionState;
4
+ diagnosis?: string;
5
+ baselineNote?: string;
6
+ primaryEvidence: string;
7
+ evidence: DecisionEvidence[];
8
+ impact: string;
9
+ action: string;
10
+ }
11
+ export declare function toDecisionPresentation(decision: Decision): DecisionPresentation;
@@ -0,0 +1,12 @@
1
+ export function toDecisionPresentation(decision) {
2
+ return {
3
+ state: decision.state,
4
+ diagnosis: decision.diagnosis,
5
+ baselineNote: decision.baselineNote,
6
+ primaryEvidence: decision.primaryEvidence,
7
+ evidence: decision.evidence,
8
+ impact: decision.impact,
9
+ action: decision.action
10
+ };
11
+ }
12
+ //# sourceMappingURL=decision-presentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-presentation.js","sourceRoot":"","sources":["../src/decision-presentation.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,sBAAsB,CAAC,QAAkB;IACvD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC"}
package/dist/doctor.d.ts CHANGED
@@ -5,11 +5,28 @@ export interface DoctorOptions {
5
5
  homeDir?: string;
6
6
  transcriptPath?: string;
7
7
  refreshPricing?: boolean;
8
+ showBaseline?: boolean;
9
+ clearBaseline?: boolean;
10
+ buildBaseline?: boolean;
11
+ appHomePath?: string;
8
12
  }
9
13
  export interface DoctorCheck {
10
14
  level: "OK" | "WARN" | "FAIL";
11
15
  name: string;
12
16
  message: string;
13
17
  }
18
+ export interface PersonalBaselineResult {
19
+ ok: boolean;
20
+ message: string;
21
+ }
22
+ export declare const PERSONAL_BASELINE_DISCLOSURE = "bb-cc-lite personalizes the statusline from your past Claude sessions by default.\n\nIt reads local Claude JSONL once.\nIt stores only counts, rates, weak outcome labels, pattern labels, recovery aggregates, and coarse categories.\nIt does not store prompts, assistant text, commands, command args, tool output, paths, file contents, transcript paths, workspace paths, raw session ids, or per-session rows.\n\nUse --no-learn to skip this.";
14
23
  export declare function runDoctor(options?: DoctorOptions): Promise<DoctorCheck[]>;
15
24
  export declare function formatDoctorChecks(checks: DoctorCheck[]): string;
25
+ export declare function buildPersonalBaseline(options?: {
26
+ homeDir?: string;
27
+ appHomePath?: string;
28
+ }): Promise<PersonalBaselineResult>;
29
+ export declare function clearPersonalBaseline(options?: {
30
+ homeDir?: string;
31
+ appHomePath?: string;
32
+ }): Promise<PersonalBaselineResult>;
package/dist/doctor.js CHANGED
@@ -1,35 +1,46 @@
1
1
  import { access } from "node:fs/promises";
2
2
  import { constants } from "node:fs";
3
- import { pricingCachePath } from "./paths.js";
3
+ import { join } from "node:path";
4
+ import { clearBaseline as clearBaselineFile, readBaseline, summarizeBaseline } from "./baseline.js";
5
+ import { buildBaseline } from "./baseline-builder.js";
6
+ import { baselinePath, pricingCachePath } from "./paths.js";
4
7
  import { refreshPricing } from "./pricing.js";
5
- import { hasBbHooks, isBbStatusLine, readHooks, readStatusLine, resolveSettingsTarget } from "./settings.js";
8
+ import { describeSettingsTarget, hasBbHooks, isBbStatusLine, readHooks, readStatusLine, resolveSettingsTarget } from "./settings.js";
9
+ export const PERSONAL_BASELINE_DISCLOSURE = `bb-cc-lite personalizes the statusline from your past Claude sessions by default.
10
+
11
+ It reads local Claude JSONL once.
12
+ It stores only counts, rates, weak outcome labels, pattern labels, recovery aggregates, and coarse categories.
13
+ It does not store prompts, assistant text, commands, command args, tool output, paths, file contents, transcript paths, workspace paths, raw session ids, or per-session rows.
14
+
15
+ Use --no-learn to skip this.`;
6
16
  export async function runDoctor(options = {}) {
7
17
  const checks = [];
8
18
  checks.push(checkNodeVersion());
9
19
  const target = resolveSettingsTarget(options);
20
+ const targetLabel = describeSettingsTarget(target);
10
21
  try {
11
22
  const statusLine = await readStatusLine(target.scope, target.projectDir, target.homeDir);
12
23
  if (statusLine && isBbStatusLine(statusLine)) {
13
- checks.push({ level: "OK", name: "settings", message: `bb-cc-lite statusLine is installed in ${target.settingsPath}` });
24
+ checks.push({ level: "OK", name: "settings", message: `bb-cc-lite statusLine is installed in ${targetLabel}` });
14
25
  }
15
26
  else if (statusLine) {
16
- checks.push({ level: "WARN", name: "settings", message: `custom statusLine is configured in ${target.settingsPath}` });
27
+ checks.push({ level: "WARN", name: "settings", message: `custom statusLine is configured in ${targetLabel}` });
17
28
  }
18
29
  else {
19
- checks.push({ level: "WARN", name: "settings", message: `no statusLine found in ${target.settingsPath}` });
30
+ checks.push({ level: "WARN", name: "settings", message: `no statusLine found in ${targetLabel}` });
20
31
  }
21
32
  }
22
33
  catch (error) {
23
34
  checks.push({
24
35
  level: "FAIL",
25
36
  name: "settings",
26
- message: error instanceof Error ? error.message : `could not read ${target.settingsPath}`
37
+ message: error instanceof Error ? error.message : `could not read ${targetLabel}`
27
38
  });
28
39
  }
29
40
  try {
30
41
  const hooks = await readHooks(target.scope, target.projectDir, target.homeDir);
31
42
  if (hasBbHooks(hooks, target.homeDir)) {
32
- checks.push({ level: "OK", name: "hooks", message: `optional bb-cc-lite hooks are installed in ${target.settingsPath}` });
43
+ checks.push({ level: "OK", name: "hooks", message: `optional bb-cc-lite hooks are installed in ${targetLabel}` });
33
44
  }
34
45
  else {
35
46
  checks.push({ level: "WARN", name: "hooks", message: "optional bb-cc-lite hooks are not installed; run install --hooks to enable faster telemetry" });
@@ -39,7 +50,7 @@ export async function runDoctor(options = {}) {
39
50
  checks.push({
40
51
  level: "FAIL",
41
52
  name: "hooks",
42
- message: error instanceof Error ? error.message : `could not read hooks from ${target.settingsPath}`
53
+ message: error instanceof Error ? error.message : `could not read hooks from ${targetLabel}`
43
54
  });
44
55
  }
45
56
  if (options.transcriptPath) {
@@ -59,6 +70,15 @@ export async function runDoctor(options = {}) {
59
70
  });
60
71
  }
61
72
  addAnthropicBaseUrlCheck(checks);
73
+ if (options.clearBaseline) {
74
+ await addClearBaselineCheck(checks, options);
75
+ }
76
+ if (options.buildBaseline) {
77
+ await addBuildBaselineCheck(checks, options);
78
+ }
79
+ if (options.showBaseline) {
80
+ await addBaselineSummaryCheck(checks, options);
81
+ }
62
82
  await addLiteLLMChecks(checks, options.refreshPricing || false);
63
83
  return checks;
64
84
  }
@@ -72,6 +92,139 @@ function checkNodeVersion() {
72
92
  }
73
93
  return { level: "FAIL", name: "node", message: `Node ${process.versions.node}; bb-cc-lite requires Node >=20` };
74
94
  }
95
+ async function addClearBaselineCheck(checks, options) {
96
+ await clearPersonalBaseline({ homeDir: options.homeDir, appHomePath: options.appHomePath });
97
+ checks.push({
98
+ level: "OK",
99
+ name: "baseline",
100
+ message: "cleared personal baseline"
101
+ });
102
+ }
103
+ async function addBuildBaselineCheck(checks, options) {
104
+ const result = await buildPersonalBaseline({ homeDir: options.homeDir, appHomePath: options.appHomePath });
105
+ checks.push({
106
+ level: result.ok ? "OK" : "WARN",
107
+ name: "baseline",
108
+ message: result.message.replaceAll("\n", " ")
109
+ });
110
+ }
111
+ async function addBaselineSummaryCheck(checks, options) {
112
+ const baseline = await readBaseline(baselineFilePath(options));
113
+ if (baseline) {
114
+ checks.push({
115
+ level: "OK",
116
+ name: "baseline",
117
+ message: formatBaselineSummaryMessage(baseline, summarizeBaseline(baseline))
118
+ });
119
+ return;
120
+ }
121
+ checks.push({
122
+ level: "WARN",
123
+ name: "baseline",
124
+ message: "no readable personal baseline found; run doctor --build-baseline to create one"
125
+ });
126
+ }
127
+ export async function buildPersonalBaseline(options = {}) {
128
+ try {
129
+ const baseline = await buildBaseline({ homeDir: options.homeDir, appHomePath: options.appHomePath });
130
+ return {
131
+ ok: true,
132
+ message: formatBuiltBaselineMessage(baseline)
133
+ };
134
+ }
135
+ catch {
136
+ return {
137
+ ok: false,
138
+ message: "could not build personal baseline"
139
+ };
140
+ }
141
+ }
142
+ export async function clearPersonalBaseline(options = {}) {
143
+ await clearBaselineFile(baselineFilePath(options));
144
+ return {
145
+ ok: true,
146
+ message: "cleared personal baseline"
147
+ };
148
+ }
149
+ function formatBuiltBaselineMessage(value) {
150
+ const sessionsSeen = sessionsSeenFrom(value);
151
+ return [
152
+ `Built personal baseline from ${sessionsSeen} sessions.`,
153
+ "Stored only counts, rates, weak outcome labels, pattern labels, recovery aggregates, and coarse categories.",
154
+ "No prompts, assistant text, commands, command args, outputs, paths, file contents, transcript paths, workspace paths, raw session ids, or per-session rows were stored."
155
+ ].join("\n");
156
+ }
157
+ function formatBaselineSummaryMessage(value, summary) {
158
+ const sessionsSeen = sessionsSeenFrom(value);
159
+ const filesScanned = filesScannedFrom(value);
160
+ const outcomeSummary = typeof summary === "string" && summary.startsWith("Personal baseline:")
161
+ ? `; ${summary.replace("Personal baseline:", "outcomes:").replace(/\.$/u, "")}`
162
+ : "";
163
+ const extendedSummary = extendedBaselineSummary(value);
164
+ return `personal baseline: ${sessionsSeen} sessions, ${filesScanned} transcript files; derived aggregate data only${outcomeSummary}${extendedSummary}`;
165
+ }
166
+ function extendedBaselineSummary(value) {
167
+ if (!value || typeof value !== "object") {
168
+ return "";
169
+ }
170
+ const baseline = value;
171
+ const parts = [];
172
+ const recent = baseline.recent;
173
+ if (recent &&
174
+ recent.windowKind === "newest_files" &&
175
+ typeof recent.sessionsSeen === "number" &&
176
+ typeof recent.windowSize === "number") {
177
+ parts.push(`recent newest_files window ${recent.sessionsSeen}/${recent.windowSize}`);
178
+ }
179
+ const validationCategories = baseline.validation ? Object.keys(baseline.validation).sort() : [];
180
+ if (validationCategories.length > 0) {
181
+ parts.push(`validation categories: ${validationCategories.join(", ")}`);
182
+ }
183
+ const toolCategories = baseline.toolCategories ? Object.keys(baseline.toolCategories).sort() : [];
184
+ if (toolCategories.length > 0) {
185
+ parts.push(`tool categories: ${toolCategories.join(", ")}`);
186
+ }
187
+ return parts.length > 0 ? `; ${parts.join("; ")}` : "";
188
+ }
189
+ function sessionsSeenFrom(value) {
190
+ if (!value || typeof value !== "object") {
191
+ return 0;
192
+ }
193
+ const nestedBaseline = value.baseline;
194
+ if (nestedBaseline) {
195
+ return sessionsSeenFrom(nestedBaseline);
196
+ }
197
+ const source = value.source;
198
+ if (source && typeof source === "object" && typeof source.sessionsSeen === "number") {
199
+ return source.sessionsSeen;
200
+ }
201
+ if (typeof value.sessionsSeen === "number") {
202
+ return value.sessionsSeen;
203
+ }
204
+ return 0;
205
+ }
206
+ function filesScannedFrom(value) {
207
+ if (!value || typeof value !== "object") {
208
+ return 0;
209
+ }
210
+ const nestedBaseline = value.baseline;
211
+ if (nestedBaseline) {
212
+ return filesScannedFrom(nestedBaseline);
213
+ }
214
+ const source = value.source;
215
+ if (source &&
216
+ typeof source === "object" &&
217
+ typeof source.transcriptFilesScanned === "number") {
218
+ return source.transcriptFilesScanned;
219
+ }
220
+ if (typeof value.transcriptFilesScanned === "number") {
221
+ return value.transcriptFilesScanned;
222
+ }
223
+ return 0;
224
+ }
225
+ function baselineFilePath(options) {
226
+ return options.appHomePath ? join(options.appHomePath, "baseline.json") : baselinePath(options.homeDir);
227
+ }
75
228
  async function addLiteLLMChecks(checks, shouldRefreshPricing) {
76
229
  try {
77
230
  await access(pricingCachePath(), constants.R_OK);
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { EventStoreData } from "./types.js";
2
+ export declare const STORE_LIMIT = 100;
3
+ export declare const HOOK_STORE_LIMIT = 500;
4
+ export declare function readStore(storePath?: string): Promise<EventStoreData>;
5
+ export declare function writeStore(store: EventStoreData, storePath: string): Promise<void>;