@lcvbeek/patina 0.2.0 → 0.4.0

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 (61) hide show
  1. package/README.md +211 -78
  2. package/dist/commands/apply.d.ts +5 -3
  3. package/dist/commands/apply.d.ts.map +1 -1
  4. package/dist/commands/apply.js +106 -71
  5. package/dist/commands/apply.js.map +1 -1
  6. package/dist/commands/capture.d.ts +2 -1
  7. package/dist/commands/capture.d.ts.map +1 -1
  8. package/dist/commands/capture.js +46 -32
  9. package/dist/commands/capture.js.map +1 -1
  10. package/dist/commands/ingest.d.ts.map +1 -1
  11. package/dist/commands/ingest.js +22 -9
  12. package/dist/commands/ingest.js.map +1 -1
  13. package/dist/commands/init.d.ts.map +1 -1
  14. package/dist/commands/init.js +33 -33
  15. package/dist/commands/init.js.map +1 -1
  16. package/dist/commands/layers.d.ts +5 -1
  17. package/dist/commands/layers.d.ts.map +1 -1
  18. package/dist/commands/layers.js +115 -76
  19. package/dist/commands/layers.js.map +1 -1
  20. package/dist/commands/onboard.d.ts +1 -1
  21. package/dist/commands/onboard.d.ts.map +1 -1
  22. package/dist/commands/onboard.js +90 -73
  23. package/dist/commands/onboard.js.map +1 -1
  24. package/dist/commands/reflect.d.ts +2 -0
  25. package/dist/commands/reflect.d.ts.map +1 -0
  26. package/dist/commands/reflect.js +95 -0
  27. package/dist/commands/reflect.js.map +1 -0
  28. package/dist/commands/run.d.ts +8 -6
  29. package/dist/commands/run.d.ts.map +1 -1
  30. package/dist/commands/run.js +170 -209
  31. package/dist/commands/run.js.map +1 -1
  32. package/dist/commands/status.d.ts.map +1 -1
  33. package/dist/commands/status.js +17 -25
  34. package/dist/commands/status.js.map +1 -1
  35. package/dist/index.js +50 -56
  36. package/dist/index.js.map +1 -1
  37. package/dist/lib/claude.d.ts.map +1 -1
  38. package/dist/lib/claude.js +35 -24
  39. package/dist/lib/claude.js.map +1 -1
  40. package/dist/lib/git.d.ts +2 -0
  41. package/dist/lib/git.d.ts.map +1 -0
  42. package/dist/lib/git.js +9 -0
  43. package/dist/lib/git.js.map +1 -0
  44. package/dist/lib/lint.js +14 -14
  45. package/dist/lib/metrics.d.ts +1 -1
  46. package/dist/lib/metrics.d.ts.map +1 -1
  47. package/dist/lib/metrics.js +9 -12
  48. package/dist/lib/metrics.js.map +1 -1
  49. package/dist/lib/parser.d.ts +7 -1
  50. package/dist/lib/parser.d.ts.map +1 -1
  51. package/dist/lib/parser.js +46 -37
  52. package/dist/lib/parser.js.map +1 -1
  53. package/dist/lib/questions.d.ts +14 -0
  54. package/dist/lib/questions.d.ts.map +1 -0
  55. package/dist/lib/questions.js +58 -0
  56. package/dist/lib/questions.js.map +1 -0
  57. package/dist/lib/storage.d.ts +85 -12
  58. package/dist/lib/storage.d.ts.map +1 -1
  59. package/dist/lib/storage.js +165 -57
  60. package/dist/lib/storage.js.map +1 -1
  61. package/package.json +6 -4
@@ -1,19 +1,33 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import readline from 'readline';
4
- import { LIVING_DOC_FILE, SPOKE_FILES, writeCycleFile, ensureSpokeFiles, } from '../lib/storage.js';
5
- import { callClaudeForJson } from '../lib/claude.js';
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import readline from "readline";
4
+ import { LIVING_DOC_FILE, SPOKE_FILES, writeCycleFile, ensureSpokeFiles } from "../lib/storage.js";
5
+ import { callClaudeForJson } from "../lib/claude.js";
6
6
  // ---------------------------------------------------------------------------
7
7
  // ANSI helpers
8
8
  // ---------------------------------------------------------------------------
9
9
  const isTTY = process.stdout.isTTY;
10
- function bold(s) { return isTTY ? `\x1b[1m${s}\x1b[0m` : s; }
11
- function dim(s) { return isTTY ? `\x1b[2m${s}\x1b[0m` : s; }
12
- function green(s) { return isTTY ? `\x1b[32m${s}\x1b[0m` : s; }
13
- function cyan(s) { return isTTY ? `\x1b[36m${s}\x1b[0m` : s; }
14
- function yellow(s) { return isTTY ? `\x1b[33m${s}\x1b[0m` : s; }
15
- function red(s) { return isTTY ? `\x1b[31m${s}\x1b[0m` : s; }
16
- function hr(len = 60) { return dim('─'.repeat(len)); }
10
+ function bold(s) {
11
+ return isTTY ? `\x1b[1m${s}\x1b[0m` : s;
12
+ }
13
+ function dim(s) {
14
+ return isTTY ? `\x1b[2m${s}\x1b[0m` : s;
15
+ }
16
+ function green(s) {
17
+ return isTTY ? `\x1b[32m${s}\x1b[0m` : s;
18
+ }
19
+ function cyan(s) {
20
+ return isTTY ? `\x1b[36m${s}\x1b[0m` : s;
21
+ }
22
+ function yellow(s) {
23
+ return isTTY ? `\x1b[33m${s}\x1b[0m` : s;
24
+ }
25
+ function red(s) {
26
+ return isTTY ? `\x1b[31m${s}\x1b[0m` : s;
27
+ }
28
+ function hr(len = 60) {
29
+ return dim("─".repeat(len));
30
+ }
17
31
  function section(title) {
18
32
  console.log(`\n${bold(title)}`);
19
33
  console.log(hr());
@@ -24,49 +38,49 @@ function section(title) {
24
38
  const QUESTIONS = [
25
39
  // Behavior Contract
26
40
  {
27
- key: 'agent_purpose',
28
- label: 'Behavior Contract',
29
- text: 'What does your AI agent primarily help you with? (one sentence)',
41
+ key: "agent_purpose",
42
+ label: "Behavior Contract",
43
+ text: "What does your AI agent primarily help you with? (one sentence)",
30
44
  },
31
45
  {
32
- key: 'always_do',
46
+ key: "always_do",
33
47
  label: null,
34
- text: 'What should it ALWAYS do in every session?',
48
+ text: "What should it ALWAYS do in every session?",
35
49
  },
36
50
  {
37
- key: 'never_do',
51
+ key: "never_do",
38
52
  label: null,
39
- text: 'What should it NEVER do, regardless of what you ask?',
53
+ text: "What should it NEVER do, regardless of what you ask?",
40
54
  },
41
55
  {
42
- key: 'tone',
56
+ key: "tone",
43
57
  label: null,
44
- text: 'How should it communicate? (e.g., direct and brief, explain its reasoning, lead with code)',
58
+ text: "How should it communicate? (e.g., direct and brief, explain its reasoning, lead with code)",
45
59
  },
46
60
  {
47
- key: 'confidence_threshold',
61
+ key: "confidence_threshold",
48
62
  label: null,
49
- text: 'When should it stop and ask rather than proceed?',
63
+ text: "When should it stop and ask rather than proceed?",
50
64
  },
51
65
  // Autonomy Map
52
66
  {
53
- key: 'auto_ok',
54
- label: 'Autonomy Map',
67
+ key: "auto_ok",
68
+ label: "Autonomy Map",
55
69
  text: "What's a task you'd trust it to handle fully automatically?",
56
70
  },
57
71
  {
58
- key: 'always_review',
72
+ key: "always_review",
59
73
  label: null,
60
74
  text: "What's a scenario that should ALWAYS require your explicit approval, no matter what?",
61
75
  },
62
76
  // Eval Framework
63
77
  {
64
- key: 'good_output',
65
- label: 'Eval Framework',
78
+ key: "good_output",
79
+ label: "Eval Framework",
66
80
  text: "What does good output look like for your most common task?",
67
81
  },
68
82
  {
69
- key: 'biggest_fear',
83
+ key: "biggest_fear",
70
84
  label: null,
71
85
  text: "What's your biggest fear — the thing you're most worried the agent might do wrong?",
72
86
  },
@@ -81,9 +95,9 @@ async function callClaude(prompt) {
81
95
  // Build synthesis prompt
82
96
  // ---------------------------------------------------------------------------
83
97
  export function buildPrompt(answers) {
84
- const qa = QUESTIONS.map((q) => `Q: ${q.text}\nA: ${answers[q.key] || '(no answer)'}`).join('\n\n');
98
+ const qa = QUESTIONS.map((q) => `Q: ${q.text}\nA: ${answers[q.key] || "(no answer)"}`).join("\n\n");
85
99
  return `You are helping a developer set up their team's AI operating agreements for the first time.
86
- Based on their answers below, produce a JSON object that populates three sections of their patina.md file.
100
+ Based on their answers below, produce a JSON object that populates three sections of their PATINA.md file.
87
101
 
88
102
  ${qa}
89
103
 
@@ -91,15 +105,15 @@ Respond with a JSON object matching this exact TypeScript type (raw JSON only, n
91
105
 
92
106
  {
93
107
  "summary": "2-3 sentences describing what was established",
94
- "behavior_contract_md": "Full markdown block for one agent behavior contract. Use this structure exactly:\\n\\n### [Agent name based on their purpose]\\n\\n**Always do:**\\n\\n- [rule]\\n\\n**Never do:**\\n\\n- [rule]\\n\\n**Tone:** [their style preference]\\n\\n**Stop and ask before:** [when to stop and ask]",
95
- "autonomy_map_rows_md": "One or more markdown table rows (no header) for their autonomy map. Bold any always-review rows. Use this column order: Scenario | L1 — Review all | L2/L3 — Smart | L4+ — Auto. Example row: | Single-file edit | Draft → review | Auto if clear | Auto |",
108
+ "behavior_contract_md": "Full markdown block for one agent behavior contract. Use this structure exactly:\\n\\n**Always do:**\\n\\n- [rule]\\n\\n**Never do:**\\n\\n- [rule]\\n\\n**Tone:** [their style preference]\\n\\n**Stop and ask before:** [when to stop and ask]",
109
+ "autonomy_map_rows_md": "One or more markdown table rows (no header) for their autonomy map. Bold any always-review rows. Use this column order: Scenario | L1 — Review all | L2 — Cautious | L3 — Smart default | L4+ — Auto. Example row: | Single-file edit | Draft → review | Auto if clear | Auto if clear | Auto |",
96
110
  "eval_rows_md": "One or more markdown table rows (no header) for their eval framework. Use this column order: Scenario | Input | Expected Output | Pass Threshold. Include a row for their biggest fear with 100% threshold."
97
111
  }
98
112
 
99
113
  Be specific and concrete — use their actual words where possible. Do not be generic.`;
100
114
  }
101
115
  // ---------------------------------------------------------------------------
102
- // Apply to patina.md
116
+ // Apply to PATINA.md
103
117
  // ---------------------------------------------------------------------------
104
118
  /**
105
119
  * Insert content before the next section boundary (--- or ## N.) after the
@@ -112,19 +126,19 @@ export function insertBeforeSectionEnd(content, sectionHeader, insertion) {
112
126
  const after = content.slice(idx + sectionHeader.length);
113
127
  const boundaryMatch = after.match(/\n---\n|\n## \d+\./);
114
128
  if (!boundaryMatch || boundaryMatch.index === undefined) {
115
- return content + '\n' + insertion + '\n';
129
+ return content + "\n" + insertion + "\n";
116
130
  }
117
131
  const insertAt = idx + sectionHeader.length + boundaryMatch.index;
118
- return content.slice(0, insertAt) + '\n' + insertion.trim() + '\n' + content.slice(insertAt);
132
+ return content.slice(0, insertAt) + "\n" + insertion.trim() + "\n" + content.slice(insertAt);
119
133
  }
120
134
  /**
121
- * Apply onboarding to the core patina.md (behavior contract only).
135
+ * Apply onboarding to the core PATINA.md (behavior contract only).
122
136
  * Autonomy and eval data go to spoke files separately.
123
137
  */
124
138
  export function applyOnboarding(content, response) {
125
139
  let result = content;
126
140
  // Replace Section 2 agent placeholder block with the generated behavior contract
127
- result = result.replace(/### General-purpose coding agent[\s\S]*?(?=<!-- Add more (contracts|profiles)|---\n\n## 3)/, `${response.behavior_contract_md.trim()}\n\n<!-- Add more contracts as needed -->\n\n`);
141
+ result = result.replace(/(\n## 2\. Behavior Contract\n\n)[\s\S]*?(?=\n## 3)/, `$1${response.behavior_contract_md.trim()}\n`);
128
142
  // Autonomy and eval rows go to spoke files — handled in applyOnboardingToSpokes()
129
143
  return result;
130
144
  }
@@ -134,39 +148,39 @@ export function applyOnboarding(content, response) {
134
148
  export function applyOnboardingToSpokes(cwd, response) {
135
149
  ensureSpokeFiles(cwd);
136
150
  // Append autonomy map rows to the spoke file
137
- const autonomyPath = path.join(cwd, SPOKE_FILES['autonomy-detail']);
138
- let autonomyContent = fs.readFileSync(autonomyPath, 'utf-8');
139
- autonomyContent = autonomyContent.trimEnd() + '\n' + response.autonomy_map_rows_md.trim() + '\n';
140
- fs.writeFileSync(autonomyPath, autonomyContent, 'utf-8');
151
+ const autonomyPath = path.join(cwd, SPOKE_FILES["autonomy-detail"]);
152
+ let autonomyContent = fs.readFileSync(autonomyPath, "utf-8");
153
+ autonomyContent = autonomyContent.trimEnd() + "\n" + response.autonomy_map_rows_md.trim() + "\n";
154
+ fs.writeFileSync(autonomyPath, autonomyContent, "utf-8");
141
155
  // Append eval framework rows to the spoke file
142
- const evalPath = path.join(cwd, SPOKE_FILES['eval-framework']);
143
- let evalContent = fs.readFileSync(evalPath, 'utf-8');
144
- evalContent = evalContent.trimEnd() + '\n' + response.eval_rows_md.trim() + '\n';
145
- fs.writeFileSync(evalPath, evalContent, 'utf-8');
156
+ const evalPath = path.join(cwd, SPOKE_FILES["eval-framework"]);
157
+ let evalContent = fs.readFileSync(evalPath, "utf-8");
158
+ evalContent = evalContent.trimEnd() + "\n" + response.eval_rows_md.trim() + "\n";
159
+ fs.writeFileSync(evalPath, evalContent, "utf-8");
146
160
  }
147
161
  // ---------------------------------------------------------------------------
148
162
  // Display
149
163
  // ---------------------------------------------------------------------------
150
164
  function displayResults(response) {
151
- section('Summary');
165
+ section("Summary");
152
166
  console.log(` ${response.summary}`);
153
- section('Behavior Contract');
154
- response.behavior_contract_md.split('\n').forEach((l) => console.log(` ${l}`));
155
- section('Autonomy Map rows');
156
- response.autonomy_map_rows_md.split('\n').forEach((l) => console.log(` ${green('+')} ${l}`));
157
- section('Eval Framework rows');
158
- response.eval_rows_md.split('\n').forEach((l) => console.log(` ${green('+')} ${l}`));
167
+ section("Behavior Contract");
168
+ response.behavior_contract_md.split("\n").forEach((l) => console.log(` ${l}`));
169
+ section("Autonomy Map rows");
170
+ response.autonomy_map_rows_md.split("\n").forEach((l) => console.log(` ${green("+")} ${l}`));
171
+ section("Eval Framework rows");
172
+ response.eval_rows_md.split("\n").forEach((l) => console.log(` ${green("+")} ${l}`));
159
173
  }
160
174
  // ---------------------------------------------------------------------------
161
175
  // Main
162
176
  // ---------------------------------------------------------------------------
163
177
  export async function onboardCommand(cwd) {
164
178
  const today = new Date().toISOString().slice(0, 10);
165
- console.log(`\n${bold('patina run')} — first cycle setup`);
179
+ console.log(`\n${bold("patina run")} — first cycle setup`);
166
180
  console.log(hr());
167
181
  console.log(dim(" No prior cycles found. Let's set up your AI operating agreements."));
168
- console.log(dim(' 9 questions across three frameworks (~10 min).'));
169
- console.log(dim(' Evals define what good means → Behavior contracts encode it → Autonomy map enforces it.'));
182
+ console.log(dim(" 9 questions across three frameworks (~10 min)."));
183
+ console.log(dim(" Evals define what good means → Behavior contracts encode it → Autonomy map enforces it."));
170
184
  console.log();
171
185
  const rl = readline.createInterface({
172
186
  input: process.stdin,
@@ -175,13 +189,13 @@ export async function onboardCommand(cwd) {
175
189
  });
176
190
  const ask = (question) => new Promise((resolve) => rl.question(question, (a) => resolve(a.trim())));
177
191
  const answers = {};
178
- let currentLabel = '';
192
+ let currentLabel = "";
179
193
  for (let i = 0; i < QUESTIONS.length; i++) {
180
194
  const q = QUESTIONS[i];
181
195
  if (q.label && q.label !== currentLabel) {
182
196
  currentLabel = q.label;
183
197
  console.log(`\n${bold(cyan(q.label))}`);
184
- console.log(dim(''.repeat(q.label.length)));
198
+ console.log(dim("".repeat(q.label.length)));
185
199
  }
186
200
  const prefix = `${dim(`[${i + 1}/${QUESTIONS.length}]`)} ${bold(q.text)}\n> `;
187
201
  answers[q.key] = await ask(prefix);
@@ -189,42 +203,45 @@ export async function onboardCommand(cwd) {
189
203
  }
190
204
  rl.close();
191
205
  console.log(hr());
192
- console.log(`\n${bold('Sending to Claude...')}`);
206
+ console.log(`\n${bold("Sending to Claude...")}`);
193
207
  let response;
194
208
  try {
195
209
  response = await callClaude(buildPrompt(answers));
196
210
  }
197
211
  catch (err) {
198
- console.error(`\n${red('Claude CLI call failed:')} ${err instanceof Error ? err.message : String(err)}`);
212
+ console.error(`\n${red("Claude CLI call failed:")} ${err instanceof Error ? err.message : String(err)}`);
199
213
  process.exit(1);
200
214
  }
201
- console.log(`\n${bold('Done.')}\n`);
215
+ console.log(`\n${bold("Done.")}\n`);
202
216
  displayResults(response);
203
217
  // Confirm before writing
204
- const confirmRl = readline.createInterface({ input: process.stdin, output: process.stdout });
218
+ const confirmRl = readline.createInterface({
219
+ input: process.stdin,
220
+ output: process.stdout,
221
+ });
205
222
  const ok = await new Promise((resolve) => {
206
223
  confirmRl.question(`\n${hr()}\nApply this to ${LIVING_DOC_FILE}? [y/N] `, (a) => {
207
224
  confirmRl.close();
208
- resolve(a.trim().toLowerCase().startsWith('y'));
225
+ resolve(a.trim().toLowerCase().startsWith("y"));
209
226
  });
210
227
  });
211
228
  if (!ok) {
212
- console.log(dim('Aborted. Run `patina run` to try again.'));
229
+ console.log(dim("Aborted. Run `patina run` to try again."));
213
230
  return;
214
231
  }
215
- // Read and populate patina.md
232
+ // Read and populate PATINA.md
216
233
  const livingDocPath = path.join(cwd, LIVING_DOC_FILE);
217
234
  if (!fs.existsSync(livingDocPath)) {
218
235
  console.error(red(`${LIVING_DOC_FILE} not found. Run \`patina init\` first.`));
219
236
  process.exit(1);
220
237
  }
221
- const original = fs.readFileSync(livingDocPath, 'utf-8');
238
+ const original = fs.readFileSync(livingDocPath, "utf-8");
222
239
  const populated = applyOnboarding(original, response);
223
240
  // Write autonomy and eval data to spoke files
224
241
  applyOnboardingToSpokes(cwd, response);
225
242
  // Update the "last updated" timestamp
226
243
  const dated = populated.replace(/> Last updated: .+/, `> Last updated: ${today}`);
227
- fs.writeFileSync(livingDocPath, dated, 'utf-8');
244
+ fs.writeFileSync(livingDocPath, dated, "utf-8");
228
245
  // Save cycle file
229
246
  const cycleContent = `# Onboarding Cycle — ${today}
230
247
 
@@ -246,8 +263,8 @@ ${response.behavior_contract_md}
246
263
 
247
264
  ## Autonomy Map (additions)
248
265
 
249
- | Scenario | L1 — Review all | L2/L3 — Smart | L4+ — Auto |
250
- |---|---|---|---|
266
+ | Scenario | L1 — Review all | L2 — Cautious | L3 — Smart default | L4+ — Auto |
267
+ |---|---|---|---|---|
251
268
  ${response.autonomy_map_rows_md}
252
269
 
253
270
  ---
@@ -262,14 +279,14 @@ ${response.eval_rows_md}
262
279
 
263
280
  ## Answers
264
281
 
265
- ${QUESTIONS.map((q) => `**${q.text}**\n\n${answers[q.key] || '_(no answer)_'}`).join('\n\n---\n\n')}
282
+ ${QUESTIONS.map((q) => `**${q.text}**\n\n${answers[q.key] || "_(no answer)_"}`).join("\n\n---\n\n")}
266
283
  `;
267
284
  writeCycleFile(today, cycleContent, cwd);
268
285
  console.log();
269
- console.log(green('') + ` Applied to ${bold(LIVING_DOC_FILE)}`);
270
- console.log(green('') + ` Cycle report saved to ${dim(`.patina/cycles/${today}.md`)}`);
286
+ console.log(green("") + ` Applied to ${bold(LIVING_DOC_FILE)}`);
287
+ console.log(green("") + ` Cycle report saved to ${dim(`.patina/cycles/${today}.md`)}`);
271
288
  console.log();
272
- console.log(dim('Your AI operating agreements are set. Run `patina run` after your next work cycle.'));
289
+ console.log(dim("Your AI operating agreements are set. Run `patina run` after your next work cycle."));
273
290
  console.log(dim(`Commit ${LIVING_DOC_FILE} to share with your team.`));
274
291
  console.log();
275
292
  }
@@ -1 +1 @@
1
- {"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function reflectCommand(): Promise<void>;
2
+ //# sourceMappingURL=reflect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../src/commands/reflect.ts"],"names":[],"mappings":"AA4DA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DpD"}
@@ -0,0 +1,95 @@
1
+ import readline from "readline";
2
+ import { assertInitialised, getLatestCycleDate, getDataDir, readAllSessions, writeReflection, } from "../lib/storage.js";
3
+ import { loadQuestions } from "../lib/questions.js";
4
+ import { getGitAuthor } from "../lib/git.js";
5
+ import { formatNumber } from "../lib/metrics.js";
6
+ // ---------------------------------------------------------------------------
7
+ // ANSI helpers
8
+ // ---------------------------------------------------------------------------
9
+ const isTTY = process.stdout.isTTY;
10
+ function bold(s) {
11
+ return isTTY ? `\x1b[1m${s}\x1b[0m` : s;
12
+ }
13
+ function dim(s) {
14
+ return isTTY ? `\x1b[2m${s}\x1b[0m` : s;
15
+ }
16
+ function cyan(s) {
17
+ return isTTY ? `\x1b[36m${s}\x1b[0m` : s;
18
+ }
19
+ function green(s) {
20
+ return isTTY ? `\x1b[32m${s}\x1b[0m` : s;
21
+ }
22
+ function hr(len = 60) {
23
+ return dim("─".repeat(len));
24
+ }
25
+ // ---------------------------------------------------------------------------
26
+ // Readline helpers
27
+ // ---------------------------------------------------------------------------
28
+ function createRL() {
29
+ return readline.createInterface({
30
+ input: process.stdin,
31
+ output: process.stdout,
32
+ terminal: isTTY,
33
+ });
34
+ }
35
+ async function prompt(rl, question) {
36
+ return new Promise((resolve) => {
37
+ rl.question(question, (answer) => {
38
+ resolve(answer.trim());
39
+ });
40
+ });
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // Command
44
+ // ---------------------------------------------------------------------------
45
+ export async function reflectCommand() {
46
+ assertInitialised();
47
+ const cwd = process.cwd();
48
+ const lastCycleDate = getLatestCycleDate(cwd);
49
+ // Show brief context so answers are grounded
50
+ const allSessions = readAllSessions(cwd);
51
+ const cycleSessions = lastCycleDate
52
+ ? allSessions.filter((s) => new Date(s.timestamp).getTime() > new Date(lastCycleDate + "T00:00:00Z").getTime())
53
+ : allSessions;
54
+ const totalTokens = cycleSessions.reduce((sum, s) => sum + s.estimated_tokens, 0);
55
+ console.log(`\n${bold("patina reflect")} — record your reflections for the next retro`);
56
+ console.log(hr());
57
+ if (lastCycleDate) {
58
+ console.log(` Since last cycle : ${cyan(lastCycleDate)}`);
59
+ }
60
+ console.log(` Sessions : ${bold(String(cycleSessions.length))}`);
61
+ console.log(` Tokens (est.) : ${bold(formatNumber(totalTokens))}`);
62
+ console.log();
63
+ console.log(dim("Answer each question. Your responses feed into the next patina run."));
64
+ console.log();
65
+ const questions = loadQuestions(cwd);
66
+ const rl = createRL();
67
+ const answers = {};
68
+ for (let i = 0; i < questions.length; i++) {
69
+ const q = questions[i];
70
+ const label = `${dim(`[${i + 1}/${questions.length}]`)} ${bold(q.text)}\n> `;
71
+ answers[q.key] = await prompt(rl, label);
72
+ console.log();
73
+ }
74
+ rl.close();
75
+ const ts = new Date().toISOString().replace(/[:.]/g, "-");
76
+ const rand = Math.random().toString(36).slice(2, 6);
77
+ const id = `${ts}-${rand}`;
78
+ const reflection = {
79
+ id,
80
+ author: getGitAuthor(),
81
+ timestamp: new Date().toISOString(),
82
+ cycleStart: lastCycleDate,
83
+ answers,
84
+ };
85
+ writeReflection(reflection, cwd);
86
+ const safeId = id.replace(/[^a-zA-Z0-9_-]/g, "_");
87
+ const dataDir = getDataDir(cwd);
88
+ console.log(hr());
89
+ console.log();
90
+ console.log(green("✓") + ` Reflection saved to ${dim(`${dataDir}/reflections/${safeId}.json`)}`);
91
+ console.log();
92
+ console.log(`Run ${cyan("`patina run`")} when ready to synthesise.`);
93
+ console.log();
94
+ }
95
+ //# sourceMappingURL=reflect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../src/commands/reflect.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { type Capture } from '../lib/storage.js';
2
- import type { SessionSummary } from '../lib/storage.js';
1
+ import { type Capture, type Reflection } from "../lib/storage.js";
2
+ import type { SessionSummary } from "../lib/storage.js";
3
3
  interface PatternEntry {
4
4
  pattern: string;
5
5
  frequency: string;
@@ -14,13 +14,13 @@ interface ProposedInstruction {
14
14
  rationale: string;
15
15
  diff: string;
16
16
  section: string;
17
- action?: 'add' | 'replace' | 'remove';
17
+ action?: "add" | "replace" | "remove";
18
18
  replaces?: string;
19
19
  }
20
20
  interface Opportunity {
21
21
  observation: string;
22
22
  suggestion: string;
23
- effort: 'low' | 'medium' | 'high';
23
+ effort: "low" | "medium" | "high";
24
24
  }
25
25
  export interface SynthesisResponse {
26
26
  cycle_summary: string;
@@ -36,17 +36,19 @@ export declare function buildSynthesisPrompt(params: {
36
36
  sessionCount: number;
37
37
  sessions: SessionSummary[];
38
38
  captures: Capture[];
39
- reflections: Record<string, string>;
39
+ reflections: Reflection[];
40
40
  livingDoc: string;
41
41
  lastCycleDate: string | null;
42
+ cwd?: string;
42
43
  }): string;
43
44
  export declare function buildCycleMarkdown(params: {
44
45
  date: string;
45
46
  cycleStart: string;
46
47
  cycleEnd: string;
47
- reflections: Record<string, string>;
48
+ reflections: Reflection[];
48
49
  synthesis: SynthesisResponse;
49
50
  sessions: SessionSummary[];
51
+ cwd?: string;
50
52
  }): string;
51
53
  export declare function runCommand(options?: {
52
54
  onboard?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAGA,OAAO,EAYL,KAAK,OAAO,EACb,MAAM,mBAAmB,CAAC;AAW3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAyFxD,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gBAAgB,EAAE,eAAe,CAAC;IAClC,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,WAAW,EAAE,WAAW,CAAC;CAC1B;AAqED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CA0B5E;AAMD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,MAAM,CA8FT;AAmFD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,GAAG,MAAM,CA+FT;AAMD,wBAAsB,UAAU,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA+LnF"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAcL,KAAK,OAAO,EACZ,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA6DxD,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gBAAgB,EAAE,eAAe,CAAC;IAClC,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,WAAW,EAAE,WAAW,CAAC;CAC1B;AA0CD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CA4B5E;AAoCD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAoGT;AAqFD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CA0HT;AAMD,wBAAsB,UAAU,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4InF"}