@they-juanreina/compost-cli 0.1.2 → 0.1.3

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 (209) hide show
  1. package/dist/commands/agreement.d.ts +3 -0
  2. package/dist/commands/agreement.d.ts.map +1 -0
  3. package/dist/commands/agreement.js +35 -0
  4. package/dist/commands/agreement.js.map +1 -0
  5. package/dist/commands/create.d.ts +1 -0
  6. package/dist/commands/create.d.ts.map +1 -1
  7. package/dist/commands/create.js +39 -1
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/commands/export.d.ts.map +1 -1
  10. package/dist/commands/export.js +47 -4
  11. package/dist/commands/export.js.map +1 -1
  12. package/dist/commands/import.d.ts +3 -0
  13. package/dist/commands/import.d.ts.map +1 -0
  14. package/dist/commands/import.js +59 -0
  15. package/dist/commands/import.js.map +1 -0
  16. package/dist/commands/init.d.ts.map +1 -1
  17. package/dist/commands/init.js +1 -0
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/jobs.d.ts +3 -0
  20. package/dist/commands/jobs.d.ts.map +1 -0
  21. package/dist/commands/jobs.js +105 -0
  22. package/dist/commands/jobs.js.map +1 -0
  23. package/dist/commands/label.d.ts +3 -0
  24. package/dist/commands/label.d.ts.map +1 -0
  25. package/dist/commands/label.js +67 -0
  26. package/dist/commands/label.js.map +1 -0
  27. package/dist/commands/models.d.ts.map +1 -1
  28. package/dist/commands/models.js +2 -1
  29. package/dist/commands/models.js.map +1 -1
  30. package/dist/commands/recode.d.ts +3 -0
  31. package/dist/commands/recode.d.ts.map +1 -0
  32. package/dist/commands/recode.js +60 -0
  33. package/dist/commands/recode.js.map +1 -0
  34. package/dist/commands/reindex.d.ts.map +1 -1
  35. package/dist/commands/reindex.js +6 -4
  36. package/dist/commands/reindex.js.map +1 -1
  37. package/dist/commands/rerun.d.ts +3 -0
  38. package/dist/commands/rerun.d.ts.map +1 -0
  39. package/dist/commands/rerun.js +91 -0
  40. package/dist/commands/rerun.js.map +1 -0
  41. package/dist/commands/search.d.ts.map +1 -1
  42. package/dist/commands/search.js +2 -1
  43. package/dist/commands/search.js.map +1 -1
  44. package/dist/commands/secrets.d.ts +3 -0
  45. package/dist/commands/secrets.d.ts.map +1 -0
  46. package/dist/commands/secrets.js +143 -0
  47. package/dist/commands/secrets.js.map +1 -0
  48. package/dist/commands/setup.d.ts.map +1 -1
  49. package/dist/commands/setup.js +90 -1
  50. package/dist/commands/setup.js.map +1 -1
  51. package/dist/commands/status.d.ts.map +1 -1
  52. package/dist/commands/status.js +2 -1
  53. package/dist/commands/status.js.map +1 -1
  54. package/dist/commands/transcribe.d.ts.map +1 -1
  55. package/dist/commands/transcribe.js +13 -2
  56. package/dist/commands/transcribe.js.map +1 -1
  57. package/dist/commands/validate.d.ts.map +1 -1
  58. package/dist/commands/validate.js +29 -1
  59. package/dist/commands/validate.js.map +1 -1
  60. package/dist/engine.d.ts +23 -0
  61. package/dist/engine.d.ts.map +1 -0
  62. package/dist/engine.js +32 -0
  63. package/dist/engine.js.map +1 -0
  64. package/dist/exporters/prov.d.ts +11 -0
  65. package/dist/exporters/prov.d.ts.map +1 -0
  66. package/dist/exporters/prov.js +151 -0
  67. package/dist/exporters/prov.js.map +1 -0
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +6 -0
  70. package/dist/index.js.map +1 -1
  71. package/dist/lib/agreement.d.ts +77 -0
  72. package/dist/lib/agreement.d.ts.map +1 -0
  73. package/dist/lib/agreement.js +261 -0
  74. package/dist/lib/agreement.js.map +1 -0
  75. package/dist/lib/artifacts.d.ts +32 -1
  76. package/dist/lib/artifacts.d.ts.map +1 -1
  77. package/dist/lib/artifacts.js +156 -22
  78. package/dist/lib/artifacts.js.map +1 -1
  79. package/dist/lib/config.d.ts +3 -0
  80. package/dist/lib/config.d.ts.map +1 -1
  81. package/dist/lib/config.js.map +1 -1
  82. package/dist/lib/doctor.d.ts +3 -0
  83. package/dist/lib/doctor.d.ts.map +1 -1
  84. package/dist/lib/doctor.js +24 -1
  85. package/dist/lib/doctor.js.map +1 -1
  86. package/dist/lib/events.d.ts +34 -1
  87. package/dist/lib/events.d.ts.map +1 -1
  88. package/dist/lib/events.js +35 -1
  89. package/dist/lib/events.js.map +1 -1
  90. package/dist/lib/importTranscript.d.ts +16 -0
  91. package/dist/lib/importTranscript.d.ts.map +1 -0
  92. package/dist/lib/importTranscript.js +94 -0
  93. package/dist/lib/importTranscript.js.map +1 -0
  94. package/dist/lib/ingest.d.ts.map +1 -1
  95. package/dist/lib/ingest.js +12 -6
  96. package/dist/lib/ingest.js.map +1 -1
  97. package/dist/lib/journal.d.ts +13 -0
  98. package/dist/lib/journal.d.ts.map +1 -1
  99. package/dist/lib/journal.js +49 -2
  100. package/dist/lib/journal.js.map +1 -1
  101. package/dist/lib/legacyNative.d.ts +24 -0
  102. package/dist/lib/legacyNative.d.ts.map +1 -0
  103. package/dist/lib/legacyNative.js +51 -0
  104. package/dist/lib/legacyNative.js.map +1 -0
  105. package/dist/lib/provisionNative.js +1 -1
  106. package/dist/lib/provisionNative.js.map +1 -1
  107. package/dist/lib/queue.d.ts +25 -0
  108. package/dist/lib/queue.d.ts.map +1 -1
  109. package/dist/lib/queue.js +70 -3
  110. package/dist/lib/queue.js.map +1 -1
  111. package/dist/lib/reads.d.ts +24 -0
  112. package/dist/lib/reads.d.ts.map +1 -0
  113. package/dist/lib/reads.js +115 -0
  114. package/dist/lib/reads.js.map +1 -0
  115. package/dist/lib/recode.d.ts +19 -0
  116. package/dist/lib/recode.d.ts.map +1 -0
  117. package/dist/lib/recode.js +43 -0
  118. package/dist/lib/recode.js.map +1 -0
  119. package/dist/lib/rerun.d.ts +51 -0
  120. package/dist/lib/rerun.d.ts.map +1 -0
  121. package/dist/lib/rerun.js +166 -0
  122. package/dist/lib/rerun.js.map +1 -0
  123. package/dist/lib/retrieve.d.ts +8 -4
  124. package/dist/lib/retrieve.d.ts.map +1 -1
  125. package/dist/lib/retrieve.js +12 -2
  126. package/dist/lib/retrieve.js.map +1 -1
  127. package/dist/lib/schemas.generated.d.ts.map +1 -1
  128. package/dist/lib/schemas.generated.js +28 -0
  129. package/dist/lib/schemas.generated.js.map +1 -1
  130. package/dist/lib/secrets.d.ts +158 -0
  131. package/dist/lib/secrets.d.ts.map +1 -0
  132. package/dist/lib/secrets.js +507 -0
  133. package/dist/lib/secrets.js.map +1 -0
  134. package/dist/lib/seed.d.ts +5 -0
  135. package/dist/lib/seed.d.ts.map +1 -1
  136. package/dist/lib/seed.js +15 -2
  137. package/dist/lib/seed.js.map +1 -1
  138. package/dist/lib/session.d.ts +14 -0
  139. package/dist/lib/session.d.ts.map +1 -1
  140. package/dist/lib/session.js +47 -0
  141. package/dist/lib/session.js.map +1 -1
  142. package/dist/lib/setup.d.ts +5 -0
  143. package/dist/lib/setup.d.ts.map +1 -1
  144. package/dist/lib/setup.js +69 -6
  145. package/dist/lib/setup.js.map +1 -1
  146. package/dist/lib/setupWizard.d.ts +51 -0
  147. package/dist/lib/setupWizard.d.ts.map +1 -0
  148. package/dist/lib/setupWizard.js +223 -0
  149. package/dist/lib/setupWizard.js.map +1 -0
  150. package/dist/lib/speakers.d.ts +41 -0
  151. package/dist/lib/speakers.d.ts.map +1 -0
  152. package/dist/lib/speakers.js +78 -0
  153. package/dist/lib/speakers.js.map +1 -0
  154. package/dist/lib/status.d.ts.map +1 -1
  155. package/dist/lib/status.js +21 -0
  156. package/dist/lib/status.js.map +1 -1
  157. package/dist/lib/userConfig.d.ts +22 -0
  158. package/dist/lib/userConfig.d.ts.map +1 -0
  159. package/dist/lib/userConfig.js +67 -0
  160. package/dist/lib/userConfig.js.map +1 -0
  161. package/dist/lib/validate.d.ts +18 -0
  162. package/dist/lib/validate.d.ts.map +1 -1
  163. package/dist/lib/validate.js +70 -1
  164. package/dist/lib/validate.js.map +1 -1
  165. package/dist/lib/version.d.ts +30 -0
  166. package/dist/lib/version.d.ts.map +1 -0
  167. package/dist/lib/version.js +73 -0
  168. package/dist/lib/version.js.map +1 -0
  169. package/dist/llm/adapter.d.ts.map +1 -1
  170. package/dist/llm/adapter.js +2 -0
  171. package/dist/llm/adapter.js.map +1 -1
  172. package/dist/llm/providers/ollama.d.ts.map +1 -1
  173. package/dist/llm/providers/ollama.js +6 -0
  174. package/dist/llm/providers/ollama.js.map +1 -1
  175. package/dist/loops/ingest_watcher.d.ts.map +1 -1
  176. package/dist/loops/ingest_watcher.js +6 -3
  177. package/dist/loops/ingest_watcher.js.map +1 -1
  178. package/dist/loops/legacy_worker.d.ts +28 -1
  179. package/dist/loops/legacy_worker.d.ts.map +1 -1
  180. package/dist/loops/legacy_worker.js +81 -9
  181. package/dist/loops/legacy_worker.js.map +1 -1
  182. package/dist/loops/supervisor.d.ts +3 -0
  183. package/dist/loops/supervisor.d.ts.map +1 -1
  184. package/dist/loops/supervisor.js +11 -0
  185. package/dist/loops/supervisor.js.map +1 -1
  186. package/dist/loops/synthesis.d.ts.map +1 -1
  187. package/dist/loops/synthesis.js +15 -0
  188. package/dist/loops/synthesis.js.map +1 -1
  189. package/dist/loops/transcribe_worker.d.ts.map +1 -1
  190. package/dist/loops/transcribe_worker.js +2 -3
  191. package/dist/loops/transcribe_worker.js.map +1 -1
  192. package/dist/output.d.ts +13 -1
  193. package/dist/output.d.ts.map +1 -1
  194. package/dist/output.js +22 -2
  195. package/dist/output.js.map +1 -1
  196. package/dist/render/human.d.ts +20 -0
  197. package/dist/render/human.d.ts.map +1 -0
  198. package/dist/render/human.js +54 -0
  199. package/dist/render/human.js.map +1 -0
  200. package/dist/router.d.ts.map +1 -1
  201. package/dist/router.js +17 -2
  202. package/dist/router.js.map +1 -1
  203. package/package.json +12 -5
  204. package/templates/config.toml +6 -1
  205. package/transcriber/app/diarization.py +36 -6
  206. package/transcriber/app/legacy_cli.py +90 -0
  207. package/transcriber/app/pipeline.py +13 -7
  208. package/transcriber/app/prosody.py +5 -0
  209. package/transcriber/app/vad.py +82 -11
@@ -0,0 +1,261 @@
1
+ import { existsSync } from 'node:fs';
2
+ import Database from 'better-sqlite3';
3
+ import { CompostError } from '../errors.js';
4
+ // ---------------------------------------------------------------- κ (binary)
5
+ /** Cohen's κ for a single binary variable across paired ratings. */
6
+ export function cohensKappaBinary(a, b) {
7
+ if (a.length !== b.length)
8
+ throw new Error('cohensKappaBinary: rating arrays differ in length');
9
+ const n = a.length;
10
+ if (n === 0)
11
+ return { kappa: null, po: 0, pe: 0, n: 0 };
12
+ let n11 = 0;
13
+ let n00 = 0;
14
+ let aTrue = 0;
15
+ let bTrue = 0;
16
+ for (let i = 0; i < n; i++) {
17
+ if (a[i])
18
+ aTrue++;
19
+ if (b[i])
20
+ bTrue++;
21
+ if (a[i] && b[i])
22
+ n11++;
23
+ if (!a[i] && !b[i])
24
+ n00++;
25
+ }
26
+ const po = (n11 + n00) / n;
27
+ const pYesA = aTrue / n;
28
+ const pYesB = bTrue / n;
29
+ const pe = pYesA * pYesB + (1 - pYesA) * (1 - pYesB);
30
+ if (1 - pe === 0) {
31
+ // Degenerate: both marginals saturated. κ is conventionally 1 iff perfect.
32
+ return { kappa: po === 1 ? 1 : 0, po, pe, n };
33
+ }
34
+ return { kappa: (po - pe) / (1 - pe), po, pe, n };
35
+ }
36
+ // ------------------------------------------------- Krippendorff α (nominal)
37
+ /**
38
+ * Krippendorff's α (nominal metric) over a units × coders matrix. Cells may be
39
+ * null (a coder didn't code that unit). Units with fewer than two values are
40
+ * dropped (not pairable). General coincidence-matrix algorithm.
41
+ */
42
+ export function krippendorffAlphaNominal(units) {
43
+ // Coincidence matrix o[c][k] and value marginals.
44
+ const o = new Map();
45
+ const bump = (c, k, by) => {
46
+ if (!o.has(c))
47
+ o.set(c, new Map());
48
+ const row = o.get(c);
49
+ row.set(k, (row.get(k) ?? 0) + by);
50
+ };
51
+ for (const unit of units) {
52
+ const vals = unit.filter((v) => v !== null);
53
+ const m = vals.length;
54
+ if (m < 2)
55
+ continue;
56
+ for (let i = 0; i < m; i++) {
57
+ for (let j = 0; j < m; j++) {
58
+ if (i === j)
59
+ continue;
60
+ bump(vals[i], vals[j], 1 / (m - 1));
61
+ }
62
+ }
63
+ }
64
+ const values = [...o.keys()];
65
+ let n = 0;
66
+ const marginal = new Map();
67
+ for (const c of values) {
68
+ let rowSum = 0;
69
+ for (const k of values)
70
+ rowSum += o.get(c)?.get(k) ?? 0;
71
+ marginal.set(c, rowSum);
72
+ n += rowSum;
73
+ }
74
+ if (n < 2)
75
+ return null;
76
+ // Observed disagreement (nominal δ = 1 when c≠k).
77
+ let Do = 0;
78
+ for (const c of values) {
79
+ for (const k of values) {
80
+ if (c === k)
81
+ continue;
82
+ Do += o.get(c)?.get(k) ?? 0;
83
+ }
84
+ }
85
+ Do /= n;
86
+ // Expected disagreement.
87
+ let De = 0;
88
+ for (const c of values) {
89
+ for (const k of values) {
90
+ if (c === k)
91
+ continue;
92
+ De += marginal.get(c) * marginal.get(k);
93
+ }
94
+ }
95
+ De /= n * (n - 1);
96
+ if (De === 0)
97
+ return Do === 0 ? 1 : 0;
98
+ return 1 - Do / De;
99
+ }
100
+ // ------------------------------------------------------- agreement over codings
101
+ function landisKoch(k) {
102
+ if (k === null)
103
+ return 'undefined';
104
+ if (k < 0)
105
+ return 'poor (worse than chance)';
106
+ if (k <= 0.2)
107
+ return 'slight';
108
+ if (k <= 0.4)
109
+ return 'fair';
110
+ if (k <= 0.6)
111
+ return 'moderate';
112
+ if (k <= 0.8)
113
+ return 'substantial';
114
+ return 'almost perfect';
115
+ }
116
+ /**
117
+ * Compute agreement from a flat list of (coder, unit, code) codings. Only units
118
+ * coded by BOTH coders count (the doubly-coded set); the codebook is the union of
119
+ * codes either coder used on those units.
120
+ */
121
+ export function computeAgreement(codings, opts = {}) {
122
+ const minUnits = opts.minUnits ?? 10;
123
+ const excluded = opts.excludedUnnamedMachineCodes ?? 0;
124
+ const byCoderUnit = {
125
+ human: new Map(),
126
+ machine: new Map(),
127
+ };
128
+ const allCodes = new Set();
129
+ for (const { coder, unit, code } of codings) {
130
+ if (!byCoderUnit[coder].has(unit))
131
+ byCoderUnit[coder].set(unit, new Set());
132
+ byCoderUnit[coder].get(unit)?.add(code);
133
+ allCodes.add(code);
134
+ }
135
+ const doublyCoded = [...byCoderUnit.human.keys()].filter((u) => byCoderUnit.machine.has(u)).sort();
136
+ const codes = [...allCodes].sort();
137
+ const base = {
138
+ doubly_coded_units: doublyCoded.length,
139
+ codes: codes.length,
140
+ excluded_unnamed_machine_codes: excluded,
141
+ };
142
+ if (doublyCoded.length < minUnits) {
143
+ return {
144
+ status: 'insufficient',
145
+ ...base,
146
+ per_code: [],
147
+ pooled_kappa: null,
148
+ krippendorff_alpha: null,
149
+ interpretation: 'undefined',
150
+ note: `Only ${doublyCoded.length} doubly-coded unit(s); need ≥ ${minUnits} for a meaningful κ. Code more highlights with \`compost recode --blind\`.`,
151
+ };
152
+ }
153
+ const has = (coder, unit, code) => byCoderUnit[coder].get(unit)?.has(code) ?? false;
154
+ // Per-code binary κ.
155
+ const perCode = [];
156
+ for (const code of codes) {
157
+ const a = [];
158
+ const b = [];
159
+ let support = 0;
160
+ for (const u of doublyCoded) {
161
+ const h = has('human', u, code);
162
+ const m = has('machine', u, code);
163
+ a.push(h);
164
+ b.push(m);
165
+ if (h || m)
166
+ support++;
167
+ }
168
+ perCode.push({ code, kappa: cohensKappaBinary(a, b).kappa, support });
169
+ }
170
+ // Pooled κ over every (unit, code) cell, and α as a cross-check on the same cells.
171
+ const pooledA = [];
172
+ const pooledB = [];
173
+ const alphaUnits = [];
174
+ for (const u of doublyCoded) {
175
+ for (const code of codes) {
176
+ const h = has('human', u, code);
177
+ const m = has('machine', u, code);
178
+ pooledA.push(h);
179
+ pooledB.push(m);
180
+ alphaUnits.push([h ? 'present' : 'absent', m ? 'present' : 'absent']);
181
+ }
182
+ }
183
+ const pooled = cohensKappaBinary(pooledA, pooledB).kappa;
184
+ return {
185
+ status: 'ok',
186
+ ...base,
187
+ per_code: perCode,
188
+ pooled_kappa: pooled,
189
+ krippendorff_alpha: krippendorffAlphaNominal(alphaUnits),
190
+ interpretation: landisKoch(pooled),
191
+ };
192
+ }
193
+ /**
194
+ * Extract codings from a seed's event log. Machine codings come from named `code`
195
+ * create events (actor ai/agent) via their `evidence` highlight ids; unnamed
196
+ * cluster codes (similarity-scanner `members`) have no shared label and are
197
+ * excluded (counted, never silently dropped). Human codings come from blind
198
+ * `coding` link events (actor researcher, payload.blind === true). Artifacts with
199
+ * a reject/unlink event are excluded.
200
+ */
201
+ export function readCodings(eventsDbPath) {
202
+ if (!existsSync(eventsDbPath)) {
203
+ throw new CompostError('FILE_NOT_FOUND', `No events.sqlite at ${eventsDbPath}`);
204
+ }
205
+ const db = new Database(eventsDbPath, { readonly: true, fileMustExist: true });
206
+ try {
207
+ const archived = new Set(db
208
+ .prepare("SELECT DISTINCT artifact_id FROM events WHERE action IN ('reject','unlink')")
209
+ .all().map((r) => r.artifact_id));
210
+ const codings = [];
211
+ let excludedUnnamed = 0;
212
+ const machineRows = db
213
+ .prepare("SELECT artifact_id, actor_type, payload FROM events WHERE action='create' AND artifact_kind='code' AND actor_type IN ('ai','agent')")
214
+ .all();
215
+ for (const row of machineRows) {
216
+ if (archived.has(row.artifact_id))
217
+ continue;
218
+ const p = safeParse(row.payload);
219
+ const code = typeof p.name === 'string' ? p.name : undefined;
220
+ const units = (p.evidence ?? p.members);
221
+ if (code === undefined) {
222
+ if (Array.isArray(units) && units.length > 0)
223
+ excludedUnnamed++;
224
+ continue;
225
+ }
226
+ if (!Array.isArray(units))
227
+ continue;
228
+ for (const u of units) {
229
+ if (typeof u === 'string')
230
+ codings.push({ coder: 'machine', unit: u, code });
231
+ }
232
+ }
233
+ const humanRows = db
234
+ .prepare("SELECT artifact_id, actor_type, payload FROM events WHERE action='link' AND artifact_kind='coding' AND actor_type='researcher'")
235
+ .all();
236
+ for (const row of humanRows) {
237
+ if (archived.has(row.artifact_id))
238
+ continue;
239
+ const p = safeParse(row.payload);
240
+ if (p.blind !== true)
241
+ continue;
242
+ if (typeof p.code === 'string' && typeof p.highlight === 'string') {
243
+ codings.push({ coder: 'human', unit: p.highlight, code: p.code });
244
+ }
245
+ }
246
+ return { codings, excludedUnnamedMachineCodes: excludedUnnamed };
247
+ }
248
+ finally {
249
+ db.close();
250
+ }
251
+ }
252
+ function safeParse(s) {
253
+ try {
254
+ const v = JSON.parse(s);
255
+ return v !== null && typeof v === 'object' ? v : {};
256
+ }
257
+ catch {
258
+ return {};
259
+ }
260
+ }
261
+ //# sourceMappingURL=agreement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agreement.js","sourceRoot":"","sources":["../../src/lib/agreement.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import Database from 'better-sqlite3';
2
- import { type Author } from './events.js';
2
+ import { type AiInputBundle, type Author } from './events.js';
3
3
  export interface CreatedArtifact {
4
4
  id: string;
5
5
  artifact_id: string;
@@ -12,6 +12,7 @@ export interface CreateHighlightInput {
12
12
  span: [number, number];
13
13
  text: string;
14
14
  author: Author;
15
+ inputs?: AiInputBundle;
15
16
  }
16
17
  export declare function createHighlight(seedPath: string, input: CreateHighlightInput): CreatedArtifact;
17
18
  export interface CreateCodeInput {
@@ -19,6 +20,7 @@ export interface CreateCodeInput {
19
20
  definition: string;
20
21
  evidence?: string[];
21
22
  author: Author;
23
+ inputs?: AiInputBundle;
22
24
  }
23
25
  export declare function createCode(seedPath: string, input: CreateCodeInput): CreatedArtifact;
24
26
  export interface CreateThemeInput {
@@ -26,6 +28,7 @@ export interface CreateThemeInput {
26
28
  summary: string;
27
29
  codes?: string[];
28
30
  author: Author;
31
+ inputs?: AiInputBundle;
29
32
  }
30
33
  export declare function createTheme(seedPath: string, input: CreateThemeInput): CreatedArtifact;
31
34
  interface CreateEventRow {
@@ -58,6 +61,34 @@ export declare function endorseArtifact(seedPath: string, artifactRef: string, r
58
61
  parent_event_id: string;
59
62
  already_endorsed?: true;
60
63
  };
64
+ /**
65
+ * Resolve an artifact ref to its create event, then emit a researcher reject
66
+ * chaining the artifact's latest event. Reject archives (current_state is
67
+ * preserved for audit) — the three-actor model's "delete", where nothing is
68
+ * ever truly removed. Idempotent: a second reject by the same researcher is a
69
+ * no-op returning the existing reject.
70
+ */
71
+ export declare function rejectArtifact(seedPath: string, artifactRef: string, researcherId: string, note?: string): {
72
+ artifact_id: string;
73
+ reject_event_id: string;
74
+ parent_event_id: string;
75
+ already_rejected?: true;
76
+ };
77
+ /**
78
+ * Resolve an artifact ref, then emit a field-level update chaining the latest
79
+ * event. The event log records `{ field, before, after }` so blame shows what
80
+ * changed. `before` is best-effort context for the audit trail; the reducer
81
+ * applies only `after`.
82
+ */
83
+ export declare function updateArtifact(seedPath: string, artifactRef: string, patch: {
84
+ field: string;
85
+ before?: unknown;
86
+ after: unknown;
87
+ }, author: Author): {
88
+ artifact_id: string;
89
+ update_event_id: string;
90
+ parent_event_id: string;
91
+ };
61
92
  /** Read the configured researcher identity: COMPOST_USER env, else fallback. */
62
93
  export declare function defaultResearcherId(): string;
63
94
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/lib/artifacts.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAGrC,OAAO,EAAE,KAAK,MAAM,EAAuD,MAAM,aAAa,CAAA;AAE9F,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AA8ED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,eAAe,CA+B9F;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,eAAe,CA2BpF;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,eAAe,CA4BtF;AAID,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,QAA2B,CAAA;AAEpD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,GAAG,EAAE,MAAM,GACV,CAAC,cAAc,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAOxD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,IAAI,CAAA;CACxB,CAmFA;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/lib/artifacts.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, readdirSync, rmSync, writeFileSync } from 'node:
2
2
  import { join } from 'node:path';
3
3
  import Database from 'better-sqlite3';
4
4
  import { CompostError } from '../errors.js';
5
- import { artifactId, emitCreate, emitEndorse, openSeedEvents } from './events.js';
5
+ import { artifactId, emitCreate, emitEndorse, emitReject, emitUpdate, openSeedEvents, } from './events.js';
6
6
  // ---------------------------------------------------------------- helpers
7
7
  /** Next sequential H-NNN in highlights/, scanning existing files. */
8
8
  function nextHighlightId(dir) {
@@ -96,6 +96,7 @@ export function createHighlight(seedPath, input) {
96
96
  artifactKind: 'highlight',
97
97
  initialState,
98
98
  author: input.author,
99
+ ...(input.inputs !== undefined ? { inputs: input.inputs } : {}),
99
100
  });
100
101
  return { id, artifact_id: sha, path, event_id };
101
102
  }
@@ -122,6 +123,7 @@ export function createCode(seedPath, input) {
122
123
  artifactKind: 'code',
123
124
  initialState,
124
125
  author: input.author,
126
+ ...(input.inputs !== undefined ? { inputs: input.inputs } : {}),
125
127
  });
126
128
  return { id, artifact_id: sha, path, event_id };
127
129
  }
@@ -149,6 +151,7 @@ export function createTheme(seedPath, input) {
149
151
  artifactKind: 'theme',
150
152
  initialState,
151
153
  author: input.author,
154
+ ...(input.inputs !== undefined ? { inputs: input.inputs } : {}),
152
155
  });
153
156
  return { id, artifact_id: sha, path, event_id };
154
157
  }
@@ -171,6 +174,46 @@ export function tryResolveHumanRef(db, ref) {
171
174
  .prepare("SELECT id, artifact_kind, artifact_id FROM events WHERE action = 'create' AND json_extract(payload, '$.id') = ? ORDER BY ts, rowid LIMIT 1")
172
175
  .get(ref);
173
176
  }
177
+ /**
178
+ * Resolve an artifact ref (human id, full/prefix SHA, or `latest:<kind>=<seed>`)
179
+ * to its create event row. Shared by endorse/reject/update so every mutation
180
+ * path accepts the same refs `compost create`/blame print (#168). Throws
181
+ * INVALID_INPUT only when the ref is neither human-, SHA-, nor latest-shaped;
182
+ * returns undefined when it's well-shaped but matches no create event (callers
183
+ * raise a clearer FILE_NOT_FOUND).
184
+ */
185
+ function findCreateEvent(db, artifactRef) {
186
+ const human = tryResolveHumanRef(db, artifactRef);
187
+ if (human !== undefined)
188
+ return human;
189
+ const latest = /^latest:(\w+)=(.+)$/.exec(artifactRef);
190
+ if (latest) {
191
+ const kind = latest[1];
192
+ return db
193
+ .prepare("SELECT id, artifact_kind, artifact_id FROM events WHERE artifact_kind = ? AND action = 'create' ORDER BY ts DESC, rowid DESC LIMIT 1")
194
+ .get(kind);
195
+ }
196
+ if (/^[a-f0-9]{8,64}$/i.test(artifactRef)) {
197
+ return db
198
+ .prepare("SELECT id, artifact_kind, artifact_id FROM events WHERE artifact_id LIKE ? AND action = 'create' ORDER BY ts, rowid LIMIT 1")
199
+ .get(`${artifactRef.toLowerCase()}%`);
200
+ }
201
+ if (!HUMAN_REF_RE.test(artifactRef)) {
202
+ // Not human-shaped, not SHA-shaped, not latest: → user typed something
203
+ // unparseable. (Human-shaped refs that didn't resolve return undefined so
204
+ // callers raise FILE_NOT_FOUND with a clearer message.)
205
+ throw new CompostError('INVALID_INPUT', `Invalid artifact ref "${artifactRef}". Use the id from \`compost create\` (e.g. C-slug, H-001), a SHA256 prefix, or latest:<kind>=<seed>.`);
206
+ }
207
+ return undefined;
208
+ }
209
+ /** Latest event id on an artifact's timeline — the parent a new reject/update
210
+ * event chains to (vs endorse, which chains to create for #168 round-tripping). */
211
+ function latestEventId(db, artifactId) {
212
+ const row = db
213
+ .prepare('SELECT id FROM events WHERE artifact_id = ? ORDER BY ts DESC, rowid DESC LIMIT 1')
214
+ .get(artifactId);
215
+ return row?.id;
216
+ }
174
217
  /**
175
218
  * Resolve an artifact ref (human id, full/prefix SHA, or `latest:<kind>=<seed>`)
176
219
  * to its create event, then emit a researcher endorse chaining it. Mirrors
@@ -188,27 +231,7 @@ export function endorseArtifact(seedPath, artifactRef, researcherId) {
188
231
  // connection once and avoid a stat/open dance.
189
232
  let existingEndorse;
190
233
  try {
191
- createRow = tryResolveHumanRef(db, artifactRef);
192
- if (createRow === undefined) {
193
- const latest = /^latest:(\w+)=(.+)$/.exec(artifactRef);
194
- if (latest) {
195
- const kind = latest[1];
196
- createRow = db
197
- .prepare("SELECT id, artifact_kind, artifact_id FROM events WHERE artifact_kind = ? AND action = 'create' ORDER BY ts DESC, rowid DESC LIMIT 1")
198
- .get(kind);
199
- }
200
- else if (/^[a-f0-9]{8,64}$/i.test(artifactRef)) {
201
- createRow = db
202
- .prepare("SELECT id, artifact_kind, artifact_id FROM events WHERE artifact_id LIKE ? AND action = 'create' ORDER BY ts, rowid LIMIT 1")
203
- .get(`${artifactRef.toLowerCase()}%`);
204
- }
205
- else if (!HUMAN_REF_RE.test(artifactRef)) {
206
- // Not human-shaped, not SHA-shaped, not latest: → user typed something
207
- // unparseable. (Human-shaped refs that didn't resolve fall through to
208
- // the FILE_NOT_FOUND below with a clearer message.)
209
- throw new CompostError('INVALID_INPUT', `Invalid artifact ref "${artifactRef}". Use the id from \`compost create\` (e.g. C-slug, H-001), a SHA256 prefix, or latest:<kind>=<seed>.`);
210
- }
211
- }
234
+ createRow = findCreateEvent(db, artifactRef);
212
235
  if (createRow !== undefined) {
213
236
  existingEndorse = db
214
237
  .prepare("SELECT id, parent_event FROM events WHERE artifact_id = ? AND action = 'endorse' AND actor_id = ? ORDER BY ts, rowid LIMIT 1")
@@ -247,6 +270,117 @@ export function endorseArtifact(seedPath, artifactRef, researcherId) {
247
270
  events.close();
248
271
  }
249
272
  }
273
+ /**
274
+ * Resolve an artifact ref to its create event, then emit a researcher reject
275
+ * chaining the artifact's latest event. Reject archives (current_state is
276
+ * preserved for audit) — the three-actor model's "delete", where nothing is
277
+ * ever truly removed. Idempotent: a second reject by the same researcher is a
278
+ * no-op returning the existing reject.
279
+ */
280
+ export function rejectArtifact(seedPath, artifactRef, researcherId, note) {
281
+ const eventsDb = join(seedPath, '.compost', 'events.sqlite');
282
+ if (!existsSync(eventsDb)) {
283
+ throw new CompostError('FILE_NOT_FOUND', `No events.sqlite in seed; nothing to reject.`);
284
+ }
285
+ const db = new Database(eventsDb, { readonly: true, fileMustExist: true });
286
+ let resolved;
287
+ let existingReject;
288
+ try {
289
+ const createRow = findCreateEvent(db, artifactRef);
290
+ if (createRow !== undefined) {
291
+ existingReject = db
292
+ .prepare("SELECT id, parent_event FROM events WHERE artifact_id = ? AND action = 'reject' AND actor_id = ? ORDER BY ts, rowid LIMIT 1")
293
+ .get(createRow.artifact_id, researcherId);
294
+ resolved = {
295
+ createRow,
296
+ parentEventId: latestEventId(db, createRow.artifact_id) ?? createRow.id,
297
+ };
298
+ }
299
+ }
300
+ finally {
301
+ db.close();
302
+ }
303
+ if (resolved === undefined) {
304
+ throw new CompostError('FILE_NOT_FOUND', `No create event found for ref "${artifactRef}".`);
305
+ }
306
+ const { createRow, parentEventId } = resolved;
307
+ if (existingReject !== undefined) {
308
+ return {
309
+ artifact_id: createRow.artifact_id,
310
+ reject_event_id: existingReject.id,
311
+ parent_event_id: existingReject.parent_event ?? createRow.id,
312
+ already_rejected: true,
313
+ };
314
+ }
315
+ const events = openSeedEvents(seedPath);
316
+ try {
317
+ const reject = emitReject(events, {
318
+ artifactKind: createRow.artifact_kind,
319
+ artifactId: createRow.artifact_id,
320
+ parentEventId,
321
+ researcherId,
322
+ ...(note !== undefined ? { note } : {}),
323
+ });
324
+ return {
325
+ artifact_id: createRow.artifact_id,
326
+ reject_event_id: reject.id,
327
+ parent_event_id: parentEventId,
328
+ };
329
+ }
330
+ finally {
331
+ events.close();
332
+ }
333
+ }
334
+ /**
335
+ * Resolve an artifact ref, then emit a field-level update chaining the latest
336
+ * event. The event log records `{ field, before, after }` so blame shows what
337
+ * changed. `before` is best-effort context for the audit trail; the reducer
338
+ * applies only `after`.
339
+ */
340
+ export function updateArtifact(seedPath, artifactRef, patch, author) {
341
+ const eventsDb = join(seedPath, '.compost', 'events.sqlite');
342
+ if (!existsSync(eventsDb)) {
343
+ throw new CompostError('FILE_NOT_FOUND', `No events.sqlite in seed; nothing to update.`);
344
+ }
345
+ const db = new Database(eventsDb, { readonly: true, fileMustExist: true });
346
+ let resolved;
347
+ try {
348
+ const createRow = findCreateEvent(db, artifactRef);
349
+ if (createRow !== undefined) {
350
+ resolved = {
351
+ createRow,
352
+ parentEventId: latestEventId(db, createRow.artifact_id) ?? createRow.id,
353
+ };
354
+ }
355
+ }
356
+ finally {
357
+ db.close();
358
+ }
359
+ if (resolved === undefined) {
360
+ throw new CompostError('FILE_NOT_FOUND', `No create event found for ref "${artifactRef}".`);
361
+ }
362
+ const { createRow, parentEventId } = resolved;
363
+ const events = openSeedEvents(seedPath);
364
+ try {
365
+ const update = emitUpdate(events, {
366
+ artifactKind: createRow.artifact_kind,
367
+ artifactId: createRow.artifact_id,
368
+ parentEventId,
369
+ author,
370
+ field: patch.field,
371
+ before: patch.before,
372
+ after: patch.after,
373
+ });
374
+ return {
375
+ artifact_id: createRow.artifact_id,
376
+ update_event_id: update.id,
377
+ parent_event_id: parentEventId,
378
+ };
379
+ }
380
+ finally {
381
+ events.close();
382
+ }
383
+ }
250
384
  /** Read the configured researcher identity: COMPOST_USER env, else fallback. */
251
385
  export function defaultResearcherId() {
252
386
  return process.env.COMPOST_USER || process.env.USER || 'researcher';
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/lib/artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/lib/artifacts.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  export interface ProviderSettings {
2
2
  base_url?: string;
3
3
  api_key_env?: string;
4
+ /** Per-request timeout override (ms). Large local models can need more than
5
+ * the 120s default just to load into memory. */
6
+ timeout_ms?: number;
4
7
  }
5
8
  export interface CompostConfig {
6
9
  providers: Record<string, ProviderSettings>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B;AASD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAU3D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAM1D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ9F;AAED;0DAC0D;AAC1D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CASjF;AAED,gEAAgE;AAChE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AAE1E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAA0B,GAC/B,IAAI,CAeN;AAsDD,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAG/E;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAS7E"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;oDACgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B;AASD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAU3D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAM1D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ9F;AAED;0DAC0D;AAC1D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CASjF;AAED,gEAAgE;AAChE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AAE1E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAA0B,GAC/B,IAAI,CAeN;AAsDD,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAG/E;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAS7E"}