@they-juanreina/compost-cli 0.1.2 → 0.1.4

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 (313) 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/backup.d.ts +3 -0
  6. package/dist/commands/backup.d.ts.map +1 -0
  7. package/dist/commands/backup.js +31 -0
  8. package/dist/commands/backup.js.map +1 -0
  9. package/dist/commands/chat.d.ts.map +1 -1
  10. package/dist/commands/chat.js +3 -2
  11. package/dist/commands/chat.js.map +1 -1
  12. package/dist/commands/create.d.ts +1 -0
  13. package/dist/commands/create.d.ts.map +1 -1
  14. package/dist/commands/create.js +39 -1
  15. package/dist/commands/create.js.map +1 -1
  16. package/dist/commands/export.d.ts.map +1 -1
  17. package/dist/commands/export.js +47 -4
  18. package/dist/commands/export.js.map +1 -1
  19. package/dist/commands/import.d.ts +3 -0
  20. package/dist/commands/import.d.ts.map +1 -0
  21. package/dist/commands/import.js +64 -0
  22. package/dist/commands/import.js.map +1 -0
  23. package/dist/commands/ingest.d.ts.map +1 -1
  24. package/dist/commands/ingest.js +1 -0
  25. package/dist/commands/ingest.js.map +1 -1
  26. package/dist/commands/init.d.ts.map +1 -1
  27. package/dist/commands/init.js +2 -0
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/jobs.d.ts +3 -0
  30. package/dist/commands/jobs.d.ts.map +1 -0
  31. package/dist/commands/jobs.js +105 -0
  32. package/dist/commands/jobs.js.map +1 -0
  33. package/dist/commands/label.d.ts +3 -0
  34. package/dist/commands/label.d.ts.map +1 -0
  35. package/dist/commands/label.js +67 -0
  36. package/dist/commands/label.js.map +1 -0
  37. package/dist/commands/models.d.ts.map +1 -1
  38. package/dist/commands/models.js +2 -1
  39. package/dist/commands/models.js.map +1 -1
  40. package/dist/commands/recode.d.ts +3 -0
  41. package/dist/commands/recode.d.ts.map +1 -0
  42. package/dist/commands/recode.js +60 -0
  43. package/dist/commands/recode.js.map +1 -0
  44. package/dist/commands/reindex.d.ts.map +1 -1
  45. package/dist/commands/reindex.js +19 -7
  46. package/dist/commands/reindex.js.map +1 -1
  47. package/dist/commands/rerun.d.ts +3 -0
  48. package/dist/commands/rerun.d.ts.map +1 -0
  49. package/dist/commands/rerun.js +91 -0
  50. package/dist/commands/rerun.js.map +1 -0
  51. package/dist/commands/search.d.ts.map +1 -1
  52. package/dist/commands/search.js +12 -1
  53. package/dist/commands/search.js.map +1 -1
  54. package/dist/commands/secrets.d.ts +3 -0
  55. package/dist/commands/secrets.d.ts.map +1 -0
  56. package/dist/commands/secrets.js +145 -0
  57. package/dist/commands/secrets.js.map +1 -0
  58. package/dist/commands/setup.d.ts.map +1 -1
  59. package/dist/commands/setup.js +95 -2
  60. package/dist/commands/setup.js.map +1 -1
  61. package/dist/commands/setupItem.d.ts +26 -0
  62. package/dist/commands/setupItem.d.ts.map +1 -0
  63. package/dist/commands/setupItem.js +145 -0
  64. package/dist/commands/setupItem.js.map +1 -0
  65. package/dist/commands/status.d.ts.map +1 -1
  66. package/dist/commands/status.js +2 -1
  67. package/dist/commands/status.js.map +1 -1
  68. package/dist/commands/transcribe.d.ts.map +1 -1
  69. package/dist/commands/transcribe.js +32 -4
  70. package/dist/commands/transcribe.js.map +1 -1
  71. package/dist/commands/validate.d.ts.map +1 -1
  72. package/dist/commands/validate.js +29 -1
  73. package/dist/commands/validate.js.map +1 -1
  74. package/dist/commands/watch.d.ts.map +1 -1
  75. package/dist/commands/watch.js +53 -6
  76. package/dist/commands/watch.js.map +1 -1
  77. package/dist/engine.d.ts +23 -0
  78. package/dist/engine.d.ts.map +1 -0
  79. package/dist/engine.js +32 -0
  80. package/dist/engine.js.map +1 -0
  81. package/dist/errors.d.ts +5 -1
  82. package/dist/errors.d.ts.map +1 -1
  83. package/dist/errors.js +6 -0
  84. package/dist/errors.js.map +1 -1
  85. package/dist/exporters/pdf.d.ts.map +1 -1
  86. package/dist/exporters/pdf.js +2 -1
  87. package/dist/exporters/pdf.js.map +1 -1
  88. package/dist/exporters/prov.d.ts +11 -0
  89. package/dist/exporters/prov.d.ts.map +1 -0
  90. package/dist/exporters/prov.js +151 -0
  91. package/dist/exporters/prov.js.map +1 -0
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +6 -0
  94. package/dist/index.js.map +1 -1
  95. package/dist/legacy_client.d.ts.map +1 -1
  96. package/dist/legacy_client.js +2 -1
  97. package/dist/legacy_client.js.map +1 -1
  98. package/dist/lib/agreement.d.ts +77 -0
  99. package/dist/lib/agreement.d.ts.map +1 -0
  100. package/dist/lib/agreement.js +261 -0
  101. package/dist/lib/agreement.js.map +1 -0
  102. package/dist/lib/artifacts.d.ts +35 -2
  103. package/dist/lib/artifacts.d.ts.map +1 -1
  104. package/dist/lib/artifacts.js +158 -29
  105. package/dist/lib/artifacts.js.map +1 -1
  106. package/dist/lib/backup.d.ts +37 -0
  107. package/dist/lib/backup.d.ts.map +1 -0
  108. package/dist/lib/backup.js +57 -0
  109. package/dist/lib/backup.js.map +1 -0
  110. package/dist/lib/childEnv.d.ts +13 -0
  111. package/dist/lib/childEnv.d.ts.map +1 -0
  112. package/dist/lib/childEnv.js +45 -0
  113. package/dist/lib/childEnv.js.map +1 -0
  114. package/dist/lib/config.d.ts +3 -0
  115. package/dist/lib/config.d.ts.map +1 -1
  116. package/dist/lib/config.js.map +1 -1
  117. package/dist/lib/doctor.d.ts +3 -0
  118. package/dist/lib/doctor.d.ts.map +1 -1
  119. package/dist/lib/doctor.js +24 -1
  120. package/dist/lib/doctor.js.map +1 -1
  121. package/dist/lib/events.d.ts +44 -1
  122. package/dist/lib/events.d.ts.map +1 -1
  123. package/dist/lib/events.js +55 -2
  124. package/dist/lib/events.js.map +1 -1
  125. package/dist/lib/importTranscript.d.ts +16 -0
  126. package/dist/lib/importTranscript.d.ts.map +1 -0
  127. package/dist/lib/importTranscript.js +94 -0
  128. package/dist/lib/importTranscript.js.map +1 -0
  129. package/dist/lib/ingest.d.ts.map +1 -1
  130. package/dist/lib/ingest.js +12 -6
  131. package/dist/lib/ingest.js.map +1 -1
  132. package/dist/lib/journal.d.ts +13 -4
  133. package/dist/lib/journal.d.ts.map +1 -1
  134. package/dist/lib/journal.js +53 -16
  135. package/dist/lib/journal.js.map +1 -1
  136. package/dist/lib/legacyNative.d.ts +17 -0
  137. package/dist/lib/legacyNative.d.ts.map +1 -0
  138. package/dist/lib/legacyNative.js +38 -0
  139. package/dist/lib/legacyNative.js.map +1 -0
  140. package/dist/lib/migrate.d.ts.map +1 -1
  141. package/dist/lib/migrate.js +9 -2
  142. package/dist/lib/migrate.js.map +1 -1
  143. package/dist/lib/nativeRuntime.d.ts +31 -0
  144. package/dist/lib/nativeRuntime.d.ts.map +1 -1
  145. package/dist/lib/nativeRuntime.js +38 -0
  146. package/dist/lib/nativeRuntime.js.map +1 -1
  147. package/dist/lib/pathSafe.d.ts +8 -0
  148. package/dist/lib/pathSafe.d.ts.map +1 -0
  149. package/dist/lib/pathSafe.js +12 -0
  150. package/dist/lib/pathSafe.js.map +1 -0
  151. package/dist/lib/provisionNative.d.ts.map +1 -1
  152. package/dist/lib/provisionNative.js +7 -3
  153. package/dist/lib/provisionNative.js.map +1 -1
  154. package/dist/lib/queue.d.ts +25 -0
  155. package/dist/lib/queue.d.ts.map +1 -1
  156. package/dist/lib/queue.js +70 -3
  157. package/dist/lib/queue.js.map +1 -1
  158. package/dist/lib/reads.d.ts +24 -0
  159. package/dist/lib/reads.d.ts.map +1 -0
  160. package/dist/lib/reads.js +115 -0
  161. package/dist/lib/reads.js.map +1 -0
  162. package/dist/lib/recode.d.ts +19 -0
  163. package/dist/lib/recode.d.ts.map +1 -0
  164. package/dist/lib/recode.js +43 -0
  165. package/dist/lib/recode.js.map +1 -0
  166. package/dist/lib/redact.d.ts +7 -0
  167. package/dist/lib/redact.d.ts.map +1 -0
  168. package/dist/lib/redact.js +45 -0
  169. package/dist/lib/redact.js.map +1 -0
  170. package/dist/lib/rerun.d.ts +51 -0
  171. package/dist/lib/rerun.d.ts.map +1 -0
  172. package/dist/lib/rerun.js +160 -0
  173. package/dist/lib/rerun.js.map +1 -0
  174. package/dist/lib/retrieve.d.ts +8 -4
  175. package/dist/lib/retrieve.d.ts.map +1 -1
  176. package/dist/lib/retrieve.js +14 -3
  177. package/dist/lib/retrieve.js.map +1 -1
  178. package/dist/lib/saturate.js +3 -3
  179. package/dist/lib/saturate.js.map +1 -1
  180. package/dist/lib/schemas.generated.d.ts.map +1 -1
  181. package/dist/lib/schemas.generated.js +28 -0
  182. package/dist/lib/schemas.generated.js.map +1 -1
  183. package/dist/lib/secrets.d.ts +158 -0
  184. package/dist/lib/secrets.d.ts.map +1 -0
  185. package/dist/lib/secrets.js +514 -0
  186. package/dist/lib/secrets.js.map +1 -0
  187. package/dist/lib/seed.d.ts +5 -0
  188. package/dist/lib/seed.d.ts.map +1 -1
  189. package/dist/lib/seed.js +15 -2
  190. package/dist/lib/seed.js.map +1 -1
  191. package/dist/lib/seedResolve.d.ts +5 -0
  192. package/dist/lib/seedResolve.d.ts.map +1 -1
  193. package/dist/lib/seedResolve.js +12 -3
  194. package/dist/lib/seedResolve.js.map +1 -1
  195. package/dist/lib/session.d.ts +14 -0
  196. package/dist/lib/session.d.ts.map +1 -1
  197. package/dist/lib/session.js +53 -4
  198. package/dist/lib/session.js.map +1 -1
  199. package/dist/lib/sessionId.d.ts +9 -0
  200. package/dist/lib/sessionId.d.ts.map +1 -0
  201. package/dist/lib/sessionId.js +37 -0
  202. package/dist/lib/sessionId.js.map +1 -0
  203. package/dist/lib/setup.d.ts +9 -0
  204. package/dist/lib/setup.d.ts.map +1 -1
  205. package/dist/lib/setup.js +97 -29
  206. package/dist/lib/setup.js.map +1 -1
  207. package/dist/lib/setupItem.d.ts +99 -0
  208. package/dist/lib/setupItem.d.ts.map +1 -0
  209. package/dist/lib/setupItem.js +262 -0
  210. package/dist/lib/setupItem.js.map +1 -0
  211. package/dist/lib/setupWizard.d.ts +53 -0
  212. package/dist/lib/setupWizard.d.ts.map +1 -0
  213. package/dist/lib/setupWizard.js +347 -0
  214. package/dist/lib/setupWizard.js.map +1 -0
  215. package/dist/lib/snap.d.ts.map +1 -1
  216. package/dist/lib/snap.js +5 -0
  217. package/dist/lib/snap.js.map +1 -1
  218. package/dist/lib/speakers.d.ts +41 -0
  219. package/dist/lib/speakers.d.ts.map +1 -0
  220. package/dist/lib/speakers.js +78 -0
  221. package/dist/lib/speakers.js.map +1 -0
  222. package/dist/lib/status.d.ts.map +1 -1
  223. package/dist/lib/status.js +21 -0
  224. package/dist/lib/status.js.map +1 -1
  225. package/dist/lib/stdin.d.ts +5 -0
  226. package/dist/lib/stdin.d.ts.map +1 -0
  227. package/dist/lib/stdin.js +12 -0
  228. package/dist/lib/stdin.js.map +1 -0
  229. package/dist/lib/transcribeNative.d.ts +4 -9
  230. package/dist/lib/transcribeNative.d.ts.map +1 -1
  231. package/dist/lib/transcribeNative.js +11 -26
  232. package/dist/lib/transcribeNative.js.map +1 -1
  233. package/dist/lib/userConfig.d.ts +22 -0
  234. package/dist/lib/userConfig.d.ts.map +1 -0
  235. package/dist/lib/userConfig.js +67 -0
  236. package/dist/lib/userConfig.js.map +1 -0
  237. package/dist/lib/validate.d.ts +18 -0
  238. package/dist/lib/validate.d.ts.map +1 -1
  239. package/dist/lib/validate.js +71 -1
  240. package/dist/lib/validate.js.map +1 -1
  241. package/dist/lib/version.d.ts +30 -0
  242. package/dist/lib/version.d.ts.map +1 -0
  243. package/dist/lib/version.js +65 -0
  244. package/dist/lib/version.js.map +1 -0
  245. package/dist/llm/adapter.d.ts +5 -0
  246. package/dist/llm/adapter.d.ts.map +1 -1
  247. package/dist/llm/adapter.js +27 -8
  248. package/dist/llm/adapter.js.map +1 -1
  249. package/dist/llm/http.d.ts +22 -1
  250. package/dist/llm/http.d.ts.map +1 -1
  251. package/dist/llm/http.js +52 -30
  252. package/dist/llm/http.js.map +1 -1
  253. package/dist/llm/providers/anthropic.d.ts.map +1 -1
  254. package/dist/llm/providers/anthropic.js +6 -9
  255. package/dist/llm/providers/anthropic.js.map +1 -1
  256. package/dist/llm/providers/ollama.d.ts.map +1 -1
  257. package/dist/llm/providers/ollama.js +8 -7
  258. package/dist/llm/providers/ollama.js.map +1 -1
  259. package/dist/llm/providers/openai_compatible.d.ts.map +1 -1
  260. package/dist/llm/providers/openai_compatible.js +2 -7
  261. package/dist/llm/providers/openai_compatible.js.map +1 -1
  262. package/dist/logging.d.ts.map +1 -1
  263. package/dist/logging.js +3 -1
  264. package/dist/logging.js.map +1 -1
  265. package/dist/loops/embed_worker.d.ts +3 -0
  266. package/dist/loops/embed_worker.d.ts.map +1 -1
  267. package/dist/loops/embed_worker.js +11 -4
  268. package/dist/loops/embed_worker.js.map +1 -1
  269. package/dist/loops/ingest_watcher.d.ts.map +1 -1
  270. package/dist/loops/ingest_watcher.js +6 -3
  271. package/dist/loops/ingest_watcher.js.map +1 -1
  272. package/dist/loops/legacy_worker.d.ts +28 -1
  273. package/dist/loops/legacy_worker.d.ts.map +1 -1
  274. package/dist/loops/legacy_worker.js +91 -10
  275. package/dist/loops/legacy_worker.js.map +1 -1
  276. package/dist/loops/supervisor.d.ts +7 -0
  277. package/dist/loops/supervisor.d.ts.map +1 -1
  278. package/dist/loops/supervisor.js +17 -2
  279. package/dist/loops/supervisor.js.map +1 -1
  280. package/dist/loops/synthesis.d.ts.map +1 -1
  281. package/dist/loops/synthesis.js +15 -0
  282. package/dist/loops/synthesis.js.map +1 -1
  283. package/dist/loops/transcribe_worker.d.ts +3 -0
  284. package/dist/loops/transcribe_worker.d.ts.map +1 -1
  285. package/dist/loops/transcribe_worker.js +15 -7
  286. package/dist/loops/transcribe_worker.js.map +1 -1
  287. package/dist/output.d.ts +13 -1
  288. package/dist/output.d.ts.map +1 -1
  289. package/dist/output.js +27 -6
  290. package/dist/output.js.map +1 -1
  291. package/dist/render/glyphs.d.ts +30 -0
  292. package/dist/render/glyphs.d.ts.map +1 -0
  293. package/dist/render/glyphs.js +38 -0
  294. package/dist/render/glyphs.js.map +1 -0
  295. package/dist/render/human.d.ts +22 -0
  296. package/dist/render/human.d.ts.map +1 -0
  297. package/dist/render/human.js +62 -0
  298. package/dist/render/human.js.map +1 -0
  299. package/dist/router.d.ts.map +1 -1
  300. package/dist/router.js +32 -4
  301. package/dist/router.js.map +1 -1
  302. package/dist/transcriber_client.d.ts.map +1 -1
  303. package/dist/transcriber_client.js +2 -1
  304. package/dist/transcriber_client.js.map +1 -1
  305. package/package.json +12 -5
  306. package/templates/AGENTS.md +1 -1
  307. package/templates/config.toml +6 -1
  308. package/transcriber/app/diarization.py +36 -6
  309. package/transcriber/app/legacy_cli.py +90 -0
  310. package/transcriber/app/pipeline.py +13 -7
  311. package/transcriber/app/prosody.py +5 -0
  312. package/transcriber/app/transcribe_cli.py +15 -1
  313. package/transcriber/app/vad.py +82 -11
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/lib/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/lib/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Read all of stdin to a string — used for piped secret values (e.g. a token
2
+ * fed via `printf %s "$TOKEN" | compost …`) so they never land in shell
3
+ * history. Returns '' when stdin is an interactive TTY (nothing piped). */
4
+ export declare function readStdin(): Promise<string>;
5
+ //# sourceMappingURL=stdin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.d.ts","sourceRoot":"","sources":["../../src/lib/stdin.ts"],"names":[],"mappings":"AAAA;;2EAE2E;AAC3E,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAKjD"}
@@ -0,0 +1,12 @@
1
+ /** Read all of stdin to a string — used for piped secret values (e.g. a token
2
+ * fed via `printf %s "$TOKEN" | compost …`) so they never land in shell
3
+ * history. Returns '' when stdin is an interactive TTY (nothing piped). */
4
+ export async function readStdin() {
5
+ if (process.stdin.isTTY)
6
+ return '';
7
+ const chunks = [];
8
+ for await (const chunk of process.stdin)
9
+ chunks.push(Buffer.from(chunk));
10
+ return Buffer.concat(chunks).toString('utf8');
11
+ }
12
+ //# sourceMappingURL=stdin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.js","sourceRoot":"","sources":["../../src/lib/stdin.ts"],"names":[],"mappings":"AAAA;;2EAE2E;AAC3E,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAClC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACxE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC"}
@@ -1,11 +1,4 @@
1
- import { type SpawnSyncReturns } from 'node:child_process';
2
- /** Injectable spawn surface (real `spawnSync` in prod; a fake in tests). */
3
- export type SpawnImpl = (cmd: string, args: string[], opts: {
4
- cwd: string;
5
- env: NodeJS.ProcessEnv;
6
- encoding: 'utf8';
7
- maxBuffer: number;
8
- }) => Pick<SpawnSyncReturns<string>, 'status' | 'stdout' | 'stderr' | 'error'>;
1
+ import { type SpawnImpl } from './nativeRuntime.js';
9
2
  /**
10
3
  * Native (host) transcription path (#176): shell out to the transcriber
11
4
  * package's `app.transcribe_cli` running in a host Python venv, so Apple-Silicon
@@ -24,7 +17,9 @@ export interface NativeTranscribeOptions {
24
17
  model?: string;
25
18
  /** Optional language hint (recorded; Parakeet v3 auto-detects). */
26
19
  language?: string;
27
- /** Extra env (e.g. HUGGINGFACE_TOKEN for pyannote). Merged over process.env. */
20
+ /** Extra env (e.g. HUGGINGFACE_TOKEN for pyannote). Layered over a *scrubbed*
21
+ * process.env — the child gets PATH/locale/etc. and only the secrets passed
22
+ * here, never the parent's other tokens (LLM API keys). */
28
23
  env?: NodeJS.ProcessEnv;
29
24
  /** Injectable spawn (tests). Defaults to node:child_process spawnSync. */
30
25
  spawnImpl?: SpawnImpl;
@@ -1 +1 @@
1
- {"version":3,"file":"transcribeNative.d.ts","sourceRoot":"","sources":["../../src/lib/transcribeNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAa,MAAM,oBAAoB,CAAA;AAIrE,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAC/E,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;AAE7E;;;;;;GAMG;AAEH,MAAM,WAAW,uBAAuB;IACtC,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;iCAEiC;AACjC,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,uBAAuB,GAC5B,sBAAsB,CAqDxB"}
1
+ {"version":3,"file":"transcribeNative.d.ts","sourceRoot":"","sources":["../../src/lib/transcribeNative.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;;;;GAMG;AAEH,MAAM,WAAW,uBAAuB;IACtC,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;+DAE2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;iCAEiC;AACjC,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,uBAAuB,GAC5B,sBAAsB,CAgCxB"}
@@ -1,5 +1,6 @@
1
- import { spawnSync } from 'node:child_process';
2
1
  import { CompostError } from '../errors.js';
2
+ import { childEnv } from './childEnv.js';
3
+ import { runNativeCli } from './nativeRuntime.js';
3
4
  /** Run the native transcriber entrypoint synchronously and return its parsed
4
5
  * JSON result. Throws a CompostError on spawn failure, non-zero exit, or a
5
6
  * `status: "failed"` payload. */
@@ -20,33 +21,17 @@ export function transcribeNative(seedPath, sessionId, sourcePath, opts) {
20
21
  args.push('--model', opts.model);
21
22
  if (opts.language)
22
23
  args.push('--language', opts.language);
23
- const spawn = opts.spawnImpl ?? spawnSync;
24
- const res = spawn(opts.python, args, {
24
+ const { parsed, status, stderr } = runNativeCli(opts.python, args, {
25
25
  cwd: opts.transcriberDir,
26
- env: { ...process.env, ...opts.env },
27
- encoding: 'utf8',
28
- maxBuffer: 64 * 1024 * 1024,
26
+ // Scrub LLM/other secrets from the inherited env; re-add only what the
27
+ // caller passed (the HF token for pyannote) — least privilege (#236).
28
+ env: childEnv(opts.env),
29
+ label: 'transcriber',
30
+ startHint: 'Run `compost setup` to provision the native transcription venv.',
31
+ ...(opts.spawnImpl ? { spawnImpl: opts.spawnImpl } : {}),
29
32
  });
30
- if (res.error) {
31
- throw new CompostError('PROVIDER_ERROR', `native transcriber failed to start (${opts.python}): ${res.error.message}. ` +
32
- 'Run `compost setup` to provision the native transcription venv.');
33
- }
34
- // The entrypoint prints exactly one JSON line; take the last non-empty line.
35
- const lastLine = (res.stdout || '').trim().split('\n').filter(Boolean).pop() ?? '';
36
- let parsed;
37
- try {
38
- // JSON.parse succeeds on primitives (null, 123, "s"); require an object so a
39
- // stray non-object line surfaces as the CompostError below, not a raw TypeError.
40
- const value = JSON.parse(lastLine);
41
- if (typeof value !== 'object' || value === null)
42
- throw new Error('not a JSON object');
43
- parsed = value;
44
- }
45
- catch {
46
- throw new CompostError('PROVIDER_ERROR', `native transcriber produced no parseable result. stderr: ${(res.stderr || '').slice(-400)}`);
47
- }
48
- if (res.status !== 0 || parsed.status === 'failed') {
49
- throw new CompostError('PROVIDER_ERROR', `native transcription failed: ${parsed.error ?? (res.stderr || '').slice(-400)}`);
33
+ if (status !== 0 || parsed.status === 'failed') {
34
+ throw new CompostError('PROVIDER_ERROR', `native transcription failed: ${parsed.error ?? stderr.slice(-400)}`);
50
35
  }
51
36
  return parsed;
52
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transcribeNative.js","sourceRoot":"","sources":["../../src/lib/transcribeNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AA2C3C;;iCAEiC;AACjC,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,IAA6B;IAE7B,MAAM,IAAI,GAAG;QACX,IAAI;QACJ,oBAAoB;QACpB,aAAa;QACb,QAAQ;QACR,cAAc;QACd,SAAS;QACT,eAAe;QACf,UAAU;QACV,UAAU;QACV,IAAI,CAAC,MAAM;KACZ,CAAA;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAChD,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEzD,MAAM,KAAK,GAAc,IAAI,CAAC,SAAS,IAAK,SAAkC,CAAA;IAC9E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;QACnC,GAAG,EAAE,IAAI,CAAC,cAAc;QACxB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;QACpC,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAC5B,CAAC,CAAA;IAEF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,IAAI,YAAY,CACpB,gBAAgB,EAChB,uCAAuC,IAAI,CAAC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI;YAC3E,iEAAiE,CACpE,CAAA;IACH,CAAC;IACD,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;IAClF,IAAI,MAA8B,CAAA;IAClC,IAAI,CAAC;QACH,6EAA6E;QAC7E,iFAAiF;QACjF,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACrF,MAAM,GAAG,KAA+B,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,YAAY,CACpB,gBAAgB,EAChB,4DAA4D,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAC7F,CAAA;IACH,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnD,MAAM,IAAI,YAAY,CACpB,gBAAgB,EAChB,gCAAgC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CACjF,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"transcribeNative.js","sourceRoot":"","sources":["../../src/lib/transcribeNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAA;AAsCjE;;iCAEiC;AACjC,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,IAA6B;IAE7B,MAAM,IAAI,GAAG;QACX,IAAI;QACJ,oBAAoB;QACpB,aAAa;QACb,QAAQ;QACR,cAAc;QACd,SAAS;QACT,eAAe;QACf,UAAU;QACV,UAAU;QACV,IAAI,CAAC,MAAM;KACZ,CAAA;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAChD,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEzD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAyB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;QACzF,GAAG,EAAE,IAAI,CAAC,cAAc;QACxB,uEAAuE;QACvE,sEAAsE;QACtE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,iEAAiE;QAC5E,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC,CAAA;IACF,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/C,MAAM,IAAI,YAAY,CACpB,gBAAgB,EAChB,gCAAgC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CACrE,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * User-level config at `~/.compost/config.toml`: machine-wide answers the
3
+ * setup wizard collects once (model routing, provider tweaks) so every seed
4
+ * scaffolded afterwards inherits them instead of the template's guesses.
5
+ * Seeds stay the source of truth — this file is only an overlay applied at
6
+ * `compost init` time, never read at run time, so a shared seed behaves the
7
+ * same on every machine.
8
+ */
9
+ export interface UserConfig {
10
+ defaults?: Record<string, string>;
11
+ providers?: Record<string, Record<string, unknown>>;
12
+ }
13
+ export declare function userConfigPath(env?: NodeJS.ProcessEnv): string;
14
+ export declare function loadUserConfig(env?: NodeJS.ProcessEnv): UserConfig | null;
15
+ /** Merge new values into the user config on disk and return its path. */
16
+ export declare function saveUserConfig(update: UserConfig, env?: NodeJS.ProcessEnv): string;
17
+ /** Overlay the user config onto a freshly-rendered seed config.toml. Comments
18
+ * in the template are lost for the overridden file — acceptable at scaffold
19
+ * time, where the researcher hasn't edited anything yet. Returns the input
20
+ * unchanged when there's nothing to overlay. */
21
+ export declare function applyUserConfig(seedConfigToml: string, user: UserConfig | null): string;
22
+ //# sourceMappingURL=userConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userConfig.d.ts","sourceRoot":"","sources":["../../src/lib/userConfig.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACpD;AAED,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG3E;AAED,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,UAAU,GAAG,IAAI,CAiBtF;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAa/F;AAED;;;gDAGgD;AAChD,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,CAgBvF"}
@@ -0,0 +1,67 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+ import { parse as parseToml, stringify as stringifyToml } from 'smol-toml';
5
+ export function userConfigPath(env = process.env) {
6
+ const home = env.COMPOST_HOME ?? join(homedir(), '.compost');
7
+ return join(home, 'config.toml');
8
+ }
9
+ export function loadUserConfig(env = process.env) {
10
+ const path = userConfigPath(env);
11
+ if (!existsSync(path))
12
+ return null;
13
+ try {
14
+ const parsed = parseToml(readFileSync(path, 'utf8'));
15
+ const out = {};
16
+ if (typeof parsed.defaults === 'object' && parsed.defaults !== null) {
17
+ out.defaults = parsed.defaults;
18
+ }
19
+ if (typeof parsed.providers === 'object' && parsed.providers !== null) {
20
+ out.providers = parsed.providers;
21
+ }
22
+ return out;
23
+ }
24
+ catch {
25
+ // A hand-edited broken file must not take `compost init` down with it.
26
+ return null;
27
+ }
28
+ }
29
+ /** Merge new values into the user config on disk and return its path. */
30
+ export function saveUserConfig(update, env = process.env) {
31
+ const path = userConfigPath(env);
32
+ const existing = loadUserConfig(env) ?? {};
33
+ const merged = {
34
+ defaults: { ...existing.defaults, ...update.defaults },
35
+ providers: { ...existing.providers, ...update.providers },
36
+ };
37
+ const doc = {};
38
+ if (merged.defaults && Object.keys(merged.defaults).length > 0)
39
+ doc.defaults = merged.defaults;
40
+ if (merged.providers && Object.keys(merged.providers).length > 0)
41
+ doc.providers = merged.providers;
42
+ mkdirSync(dirname(path), { recursive: true });
43
+ writeFileSync(path, `${stringifyToml(doc)}\n`, 'utf8');
44
+ return path;
45
+ }
46
+ /** Overlay the user config onto a freshly-rendered seed config.toml. Comments
47
+ * in the template are lost for the overridden file — acceptable at scaffold
48
+ * time, where the researcher hasn't edited anything yet. Returns the input
49
+ * unchanged when there's nothing to overlay. */
50
+ export function applyUserConfig(seedConfigToml, user) {
51
+ if (user === null || (user.defaults === undefined && user.providers === undefined)) {
52
+ return seedConfigToml;
53
+ }
54
+ const doc = parseToml(seedConfigToml);
55
+ if (user.defaults) {
56
+ doc.defaults = { ...doc.defaults, ...user.defaults };
57
+ }
58
+ if (user.providers) {
59
+ const providers = { ...doc.providers };
60
+ for (const [name, settings] of Object.entries(user.providers)) {
61
+ providers[name] = { ...providers[name], ...settings };
62
+ }
63
+ doc.providers = providers;
64
+ }
65
+ return `${stringifyToml(doc)}\n`;
66
+ }
67
+ //# sourceMappingURL=userConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userConfig.js","sourceRoot":"","sources":["../../src/lib/userConfig.ts"],"names":[],"mappings":"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"}
@@ -12,5 +12,23 @@ export declare function validateEventsExport(path: string): ValidateResult;
12
12
  * (sanity check of its own shape).
13
13
  */
14
14
  export declare function validateCues(path: string): ValidateResult;
15
+ export interface SeedEventsResult {
16
+ ok: boolean;
17
+ checked: number;
18
+ errors: unknown;
19
+ }
20
+ export interface SeedValidateResult {
21
+ ok: boolean;
22
+ seed: string;
23
+ transcripts: ValidateResult[];
24
+ events: SeedEventsResult | null;
25
+ }
26
+ /**
27
+ * Whole-seed validation (#174): validate every session transcript.json and every
28
+ * normalized legacy/*.json against the transcript schema (which already enforces
29
+ * cue kinds and frame triggers via its enums), plus every provenance event in
30
+ * .compost/events.sqlite. Aggregates to a single ok.
31
+ */
32
+ export declare function validateSeed(seedPath: string): SeedValidateResult;
15
33
  export declare function validateFrames(path: string): ValidateResult;
16
34
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/lib/validate.ts"],"names":[],"mappings":"AAyDA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB;AAaD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAU/D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAwBjE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAuCzD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAqC3D"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/lib/validate.ts"],"names":[],"mappings":"AA4DA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB;AAaD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAU/D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAwBjE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAuCzD;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAChC;AAiCD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAsBjE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAqC3D"}
@@ -1,7 +1,10 @@
1
- import { existsSync, readFileSync } from 'node:fs';
1
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
2
3
  import { Ajv2020 } from 'ajv/dist/2020.js';
3
4
  import addFormatsImport from 'ajv-formats';
5
+ import Database from 'better-sqlite3';
4
6
  import { CompostError } from '../errors.js';
7
+ import { eventsDbPath } from './events.js';
5
8
  import { CUES_TAXONOMY, EVENTS_SCHEMA, FRAMES_TAXONOMY, TRANSCRIPT_SCHEMA, } from './schemas.generated.js';
6
9
  const addFormats = addFormatsImport.default ??
7
10
  addFormatsImport;
@@ -118,6 +121,73 @@ export function validateCues(path) {
118
121
  errors: errors.length === 0 ? null : errors,
119
122
  };
120
123
  }
124
+ /** Validate every event row in a seed's .compost/events.sqlite against the
125
+ * events schema. Null columns are stripped (the schema's optional fields are
126
+ * typed strings, and rows carry NULLs for absent ones); payload is parsed and
127
+ * always kept (it is required). Returns null when there is no event log. */
128
+ function validateSeedEvents(dbPath) {
129
+ if (!existsSync(dbPath))
130
+ return null;
131
+ const db = new Database(dbPath, { readonly: true, fileMustExist: true });
132
+ try {
133
+ const rows = db.prepare('SELECT * FROM events').all();
134
+ const v = getEventsValidator();
135
+ const errors = [];
136
+ for (const [i, row] of rows.entries()) {
137
+ const clean = {};
138
+ for (const [k, val] of Object.entries(row)) {
139
+ if (k === 'payload')
140
+ continue;
141
+ if (val !== null)
142
+ clean[k] = val;
143
+ }
144
+ clean.payload =
145
+ typeof row.payload === 'string' ? JSON.parse(row.payload) : (row.payload ?? null);
146
+ if (!v.fn(clean))
147
+ errors.push({ index: i, id: row.id, errors: v.errors() });
148
+ }
149
+ return {
150
+ ok: errors.length === 0,
151
+ checked: rows.length,
152
+ errors: errors.length === 0 ? null : errors,
153
+ };
154
+ }
155
+ finally {
156
+ db.close();
157
+ }
158
+ }
159
+ /**
160
+ * Whole-seed validation (#174): validate every session transcript.json and every
161
+ * normalized legacy/*.json against the transcript schema (which already enforces
162
+ * cue kinds and frame triggers via its enums), plus every provenance event in
163
+ * .compost/events.sqlite. Aggregates to a single ok.
164
+ */
165
+ export function validateSeed(seedPath) {
166
+ if (!existsSync(seedPath)) {
167
+ throw new CompostError('FILE_NOT_FOUND', `No such seed directory: ${seedPath}`);
168
+ }
169
+ const transcripts = [];
170
+ const sessionsDir = join(seedPath, 'sessions');
171
+ if (existsSync(sessionsDir)) {
172
+ for (const entry of readdirSync(sessionsDir)) {
173
+ if (entry === '_inbox' || entry.startsWith('.'))
174
+ continue;
175
+ const tp = join(sessionsDir, entry, 'transcript.json');
176
+ if (existsSync(tp))
177
+ transcripts.push(validateTranscript(tp));
178
+ }
179
+ }
180
+ const legacyDir = join(seedPath, 'legacy');
181
+ if (existsSync(legacyDir)) {
182
+ for (const f of readdirSync(legacyDir)) {
183
+ if (f.endsWith('.json'))
184
+ transcripts.push(validateTranscript(join(legacyDir, f)));
185
+ }
186
+ }
187
+ const events = validateSeedEvents(eventsDbPath(seedPath));
188
+ const ok = transcripts.every((t) => t.ok) && (events === null || events.ok);
189
+ return { ok, seed: seedPath, transcripts, events };
190
+ }
121
191
  export function validateFrames(path) {
122
192
  const data = readJson(path);
123
193
  const taxonomy = getFramesTaxonomy();
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/lib/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/lib/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { FetchLike } from '../llm/types.js';
2
+ export declare const PACKAGE_NAME = "@they-juanreina/compost-cli";
3
+ export declare const UPGRADE_COMMAND = "npm install -g @they-juanreina/compost-cli@latest";
4
+ /** The version of the running CLI, read from the package manifest (single
5
+ * source of truth — works for src/lib and dist/lib alike, both two levels
6
+ * below the package root). */
7
+ export declare function currentCliVersion(): string;
8
+ /**
9
+ * Semver-ish comparison sufficient for our own release stream: numeric
10
+ * major.minor.patch, with any prerelease ordering BELOW its release
11
+ * (`0.1.0-rc.2 < 0.1.0 < 0.1.2`). Returns <0, 0, >0 like a comparator.
12
+ */
13
+ export declare function compareVersions(a: string, b: string): number;
14
+ export interface VersionStatus {
15
+ current: string;
16
+ latest: string;
17
+ behind: boolean;
18
+ }
19
+ /**
20
+ * Best-effort staleness probe against the npm registry (#245). Returns null on
21
+ * ANY failure — offline machines and registry hiccups must never degrade
22
+ * `compost setup`, they just skip the check. The timeout is deliberately
23
+ * short: this is a courtesy warning, not a gate.
24
+ */
25
+ export declare function checkVersionStatus(deps: {
26
+ fetchImpl?: FetchLike;
27
+ current?: string;
28
+ timeoutMs?: number;
29
+ }): Promise<VersionStatus | null>;
30
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAIhD,eAAO,MAAM,YAAY,gCAAgC,CAAA;AACzD,eAAO,MAAM,eAAe,sDAA0C,CAAA;AAEtE;;8BAE8B;AAC9B,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB5D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiBhC"}
@@ -0,0 +1,65 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { fetchWithTimeout, resolveFetch } from '../llm/http.js';
5
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ export const PACKAGE_NAME = '@they-juanreina/compost-cli';
7
+ export const UPGRADE_COMMAND = `npm install -g ${PACKAGE_NAME}@latest`;
8
+ /** The version of the running CLI, read from the package manifest (single
9
+ * source of truth — works for src/lib and dist/lib alike, both two levels
10
+ * below the package root). */
11
+ export function currentCliVersion() {
12
+ const manifest = JSON.parse(readFileSync(join(__dirname, '..', '..', 'package.json'), 'utf8'));
13
+ return manifest.version ?? '0.0.0';
14
+ }
15
+ /**
16
+ * Semver-ish comparison sufficient for our own release stream: numeric
17
+ * major.minor.patch, with any prerelease ordering BELOW its release
18
+ * (`0.1.0-rc.2 < 0.1.0 < 0.1.2`). Returns <0, 0, >0 like a comparator.
19
+ */
20
+ export function compareVersions(a, b) {
21
+ const parse = (v) => {
22
+ const [core = '', ...preParts] = v.replace(/^v/, '').split('-');
23
+ return {
24
+ nums: core.split('.').map((n) => Number.parseInt(n, 10) || 0),
25
+ pre: preParts.join('-'),
26
+ };
27
+ };
28
+ const pa = parse(a);
29
+ const pb = parse(b);
30
+ for (let i = 0; i < 3; i++) {
31
+ const diff = (pa.nums[i] ?? 0) - (pb.nums[i] ?? 0);
32
+ if (diff !== 0)
33
+ return diff;
34
+ }
35
+ if (pa.pre === pb.pre)
36
+ return 0;
37
+ if (pa.pre === '')
38
+ return 1; // release > its prereleases
39
+ if (pb.pre === '')
40
+ return -1;
41
+ return pa.pre < pb.pre ? -1 : 1;
42
+ }
43
+ /**
44
+ * Best-effort staleness probe against the npm registry (#245). Returns null on
45
+ * ANY failure — offline machines and registry hiccups must never degrade
46
+ * `compost setup`, they just skip the check. The timeout is deliberately
47
+ * short: this is a courtesy warning, not a gate.
48
+ */
49
+ export async function checkVersionStatus(deps) {
50
+ const fetchImpl = resolveFetch(deps.fetchImpl);
51
+ const current = deps.current ?? currentCliVersion();
52
+ try {
53
+ const res = await fetchWithTimeout(fetchImpl, `https://registry.npmjs.org/-/package/${PACKAGE_NAME}/dist-tags`, { method: 'GET' }, deps.timeoutMs ?? 2500);
54
+ if (!res.ok)
55
+ return null;
56
+ const tags = (await res.json());
57
+ if (typeof tags.latest !== 'string')
58
+ return null;
59
+ return { current, latest: tags.latest, behind: compareVersions(current, tags.latest) < 0 };
60
+ }
61
+ catch {
62
+ return null;
63
+ }
64
+ }
65
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,11 @@ export declare class LLMAdapter {
22
22
  maxTokens?: number;
23
23
  }): Promise<ChatResponse>;
24
24
  embed(task: string, input: string[]): Promise<EmbedResponse>;
25
+ /** Turn a 401/403 from a key-requiring provider into an actionable
26
+ * PROVIDER_AUTH error (the key is present but rejected — revoked/expired/wrong
27
+ * scope), instead of a raw `POST … → 401` string surfacing as code INTERNAL.
28
+ * Mirrors the HF-token UX. Non-auth errors pass through unchanged. */
29
+ private tagAuthError;
25
30
  /** Fail fast with an actionable message when a task routes to a key-requiring
26
31
  * provider whose key isn't set — instead of a raw 401 from the HTTP layer. A
27
32
  * provider needs a key iff it declares `api_key_env` in [providers] (local
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/llm/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAA+C,MAAM,kBAAkB,CAAA;AAKlG,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,qBAAa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAGrC,MAAM,EAAE,aAAa,EACrB,IAAI,GAAE,cAAmB;IAG5C,4DAA4D;IAC5D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAiCnC,4EAA4E;IAC5E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAQxD,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACzF,OAAO,CAAC,YAAY,CAAC;IAMlB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAMlE;;;gDAG4C;IAC5C,OAAO,CAAC,oBAAoB;IAW5B,oFAAoF;IAC9E,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CA0B3D"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/llm/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAA+C,MAAM,kBAAkB,CAAA;AAMlG,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,qBAAa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAGrC,MAAM,EAAE,aAAa,EACrB,IAAI,GAAE,cAAmB;IAG5C,4DAA4D;IAC5D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAmCnC,4EAA4E;IAC5E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAQxD,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACzF,OAAO,CAAC,YAAY,CAAC;IAUlB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAUlE;;;0EAGsE;IACtE,OAAO,CAAC,YAAY;IAUpB;;;gDAG4C;IAC5C,OAAO,CAAC,oBAAoB;IAW5B,oFAAoF;IAC9E,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAqB3D"}
@@ -1,5 +1,6 @@
1
1
  import { CompostError } from '../errors.js';
2
2
  import { parseRoute, providerApiKey, providerBaseUrl } from '../lib/config.js';
3
+ import { failedHealth, HttpError } from './http.js';
3
4
  import { AnthropicProvider } from './providers/anthropic.js';
4
5
  import { LMStudioProvider } from './providers/lmstudio.js';
5
6
  import { OllamaProvider } from './providers/ollama.js';
@@ -19,9 +20,11 @@ export class LLMAdapter {
19
20
  return cached;
20
21
  const baseUrl = providerBaseUrl(this.config, name);
21
22
  const apiKey = providerApiKey(this.config, name);
23
+ const timeoutMs = this.config.providers[name]?.timeout_ms;
22
24
  const cfg = {
23
25
  baseUrl,
24
26
  ...(apiKey !== undefined ? { apiKey } : {}),
27
+ ...(timeoutMs !== undefined ? { timeoutMs } : {}),
25
28
  ...(this.opts.fetchImpl ? { fetchImpl: this.opts.fetchImpl } : {}),
26
29
  };
27
30
  let provider;
@@ -55,12 +58,33 @@ export class LLMAdapter {
55
58
  async chat(task, messages, extra = {}) {
56
59
  const { provider, model } = this.resolveTask(task);
57
60
  this.assertProviderHasKey(task, provider);
58
- return this.getProvider(provider).chat({ model, messages, ...extra });
61
+ try {
62
+ return await this.getProvider(provider).chat({ model, messages, ...extra });
63
+ }
64
+ catch (err) {
65
+ throw this.tagAuthError(err, provider);
66
+ }
59
67
  }
60
68
  async embed(task, input) {
61
69
  const { provider, model } = this.resolveTask(task);
62
70
  this.assertProviderHasKey(task, provider);
63
- return this.getProvider(provider).embed({ model, input });
71
+ try {
72
+ return await this.getProvider(provider).embed({ model, input });
73
+ }
74
+ catch (err) {
75
+ throw this.tagAuthError(err, provider);
76
+ }
77
+ }
78
+ /** Turn a 401/403 from a key-requiring provider into an actionable
79
+ * PROVIDER_AUTH error (the key is present but rejected — revoked/expired/wrong
80
+ * scope), instead of a raw `POST … → 401` string surfacing as code INTERNAL.
81
+ * Mirrors the HF-token UX. Non-auth errors pass through unchanged. */
82
+ tagAuthError(err, provider) {
83
+ if (!(err instanceof HttpError) || (err.status !== 401 && err.status !== 403))
84
+ return err;
85
+ const envName = this.config.providers[provider]?.api_key_env;
86
+ const renew = envName ? `renew it and update ${envName}` : `renew the ${provider} API key`;
87
+ return new CompostError('PROVIDER_AUTH', `${provider} rejected the API key (HTTP ${err.status}) — it is revoked, expired, or lacks the required scope. ${renew}, or route to a local model (e.g. \`compost chat --task quick_chat\`).`);
64
88
  }
65
89
  /** Fail fast with an actionable message when a task routes to a key-requiring
66
90
  * provider whose key isn't set — instead of a raw 401 from the HTTP layer. A
@@ -92,12 +116,7 @@ export class LLMAdapter {
92
116
  out[name] = await this.getProvider(name).health();
93
117
  }
94
118
  catch (err) {
95
- out[name] = {
96
- ok: false,
97
- latency_ms: 0,
98
- model_list: [],
99
- error: err instanceof Error ? err.message : String(err),
100
- };
119
+ out[name] = failedHealth(err);
101
120
  }
102
121
  }));
103
122
  return out;