@they-juanreina/compost-cli 0.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/bin/compost.js +7 -0
  4. package/dist/commands/_stub.d.ts +9 -0
  5. package/dist/commands/_stub.d.ts.map +1 -0
  6. package/dist/commands/_stub.js +27 -0
  7. package/dist/commands/_stub.js.map +1 -0
  8. package/dist/commands/blame.d.ts +3 -0
  9. package/dist/commands/blame.d.ts.map +1 -0
  10. package/dist/commands/blame.js +31 -0
  11. package/dist/commands/blame.js.map +1 -0
  12. package/dist/commands/chat.d.ts +8 -0
  13. package/dist/commands/chat.d.ts.map +1 -0
  14. package/dist/commands/chat.js +99 -0
  15. package/dist/commands/chat.js.map +1 -0
  16. package/dist/commands/code.d.ts +3 -0
  17. package/dist/commands/code.d.ts.map +1 -0
  18. package/dist/commands/code.js +70 -0
  19. package/dist/commands/code.js.map +1 -0
  20. package/dist/commands/config.d.ts +3 -0
  21. package/dist/commands/config.d.ts.map +1 -0
  22. package/dist/commands/config.js +76 -0
  23. package/dist/commands/config.js.map +1 -0
  24. package/dist/commands/create.d.ts +20 -0
  25. package/dist/commands/create.d.ts.map +1 -0
  26. package/dist/commands/create.js +148 -0
  27. package/dist/commands/create.js.map +1 -0
  28. package/dist/commands/endorse.d.ts +3 -0
  29. package/dist/commands/endorse.d.ts.map +1 -0
  30. package/dist/commands/endorse.js +31 -0
  31. package/dist/commands/endorse.js.map +1 -0
  32. package/dist/commands/evals.d.ts +3 -0
  33. package/dist/commands/evals.d.ts.map +1 -0
  34. package/dist/commands/evals.js +54 -0
  35. package/dist/commands/evals.js.map +1 -0
  36. package/dist/commands/export.d.ts +3 -0
  37. package/dist/commands/export.d.ts.map +1 -0
  38. package/dist/commands/export.js +54 -0
  39. package/dist/commands/export.js.map +1 -0
  40. package/dist/commands/ingest.d.ts +3 -0
  41. package/dist/commands/ingest.d.ts.map +1 -0
  42. package/dist/commands/ingest.js +26 -0
  43. package/dist/commands/ingest.js.map +1 -0
  44. package/dist/commands/init.d.ts +3 -0
  45. package/dist/commands/init.d.ts.map +1 -0
  46. package/dist/commands/init.js +51 -0
  47. package/dist/commands/init.js.map +1 -0
  48. package/dist/commands/migrate.d.ts +3 -0
  49. package/dist/commands/migrate.d.ts.map +1 -0
  50. package/dist/commands/migrate.js +28 -0
  51. package/dist/commands/migrate.js.map +1 -0
  52. package/dist/commands/models.d.ts +3 -0
  53. package/dist/commands/models.d.ts.map +1 -0
  54. package/dist/commands/models.js +32 -0
  55. package/dist/commands/models.js.map +1 -0
  56. package/dist/commands/query.d.ts +3 -0
  57. package/dist/commands/query.d.ts.map +1 -0
  58. package/dist/commands/query.js +13 -0
  59. package/dist/commands/query.js.map +1 -0
  60. package/dist/commands/reindex.d.ts +3 -0
  61. package/dist/commands/reindex.d.ts.map +1 -0
  62. package/dist/commands/reindex.js +53 -0
  63. package/dist/commands/reindex.js.map +1 -0
  64. package/dist/commands/rescan.d.ts +3 -0
  65. package/dist/commands/rescan.d.ts.map +1 -0
  66. package/dist/commands/rescan.js +60 -0
  67. package/dist/commands/rescan.js.map +1 -0
  68. package/dist/commands/saturate.d.ts +3 -0
  69. package/dist/commands/saturate.d.ts.map +1 -0
  70. package/dist/commands/saturate.js +35 -0
  71. package/dist/commands/saturate.js.map +1 -0
  72. package/dist/commands/search.d.ts +3 -0
  73. package/dist/commands/search.d.ts.map +1 -0
  74. package/dist/commands/search.js +52 -0
  75. package/dist/commands/search.js.map +1 -0
  76. package/dist/commands/serve.d.ts +3 -0
  77. package/dist/commands/serve.d.ts.map +1 -0
  78. package/dist/commands/serve.js +9 -0
  79. package/dist/commands/serve.js.map +1 -0
  80. package/dist/commands/session.d.ts +3 -0
  81. package/dist/commands/session.d.ts.map +1 -0
  82. package/dist/commands/session.js +25 -0
  83. package/dist/commands/session.js.map +1 -0
  84. package/dist/commands/setup.d.ts +3 -0
  85. package/dist/commands/setup.d.ts.map +1 -0
  86. package/dist/commands/setup.js +38 -0
  87. package/dist/commands/setup.js.map +1 -0
  88. package/dist/commands/snap.d.ts +3 -0
  89. package/dist/commands/snap.d.ts.map +1 -0
  90. package/dist/commands/snap.js +27 -0
  91. package/dist/commands/snap.js.map +1 -0
  92. package/dist/commands/status.d.ts +3 -0
  93. package/dist/commands/status.d.ts.map +1 -0
  94. package/dist/commands/status.js +26 -0
  95. package/dist/commands/status.js.map +1 -0
  96. package/dist/commands/synthesize.d.ts +3 -0
  97. package/dist/commands/synthesize.d.ts.map +1 -0
  98. package/dist/commands/synthesize.js +13 -0
  99. package/dist/commands/synthesize.js.map +1 -0
  100. package/dist/commands/tag.d.ts +3 -0
  101. package/dist/commands/tag.d.ts.map +1 -0
  102. package/dist/commands/tag.js +46 -0
  103. package/dist/commands/tag.js.map +1 -0
  104. package/dist/commands/transcribe.d.ts +3 -0
  105. package/dist/commands/transcribe.d.ts.map +1 -0
  106. package/dist/commands/transcribe.js +110 -0
  107. package/dist/commands/transcribe.js.map +1 -0
  108. package/dist/commands/validate.d.ts +3 -0
  109. package/dist/commands/validate.d.ts.map +1 -0
  110. package/dist/commands/validate.js +81 -0
  111. package/dist/commands/validate.js.map +1 -0
  112. package/dist/commands/watch.d.ts +3 -0
  113. package/dist/commands/watch.d.ts.map +1 -0
  114. package/dist/commands/watch.js +50 -0
  115. package/dist/commands/watch.js.map +1 -0
  116. package/dist/errors.d.ts +9 -0
  117. package/dist/errors.d.ts.map +1 -0
  118. package/dist/errors.js +12 -0
  119. package/dist/errors.js.map +1 -0
  120. package/dist/exporters/csv.d.ts +8 -0
  121. package/dist/exporters/csv.d.ts.map +1 -0
  122. package/dist/exporters/csv.js +44 -0
  123. package/dist/exporters/csv.js.map +1 -0
  124. package/dist/exporters/eaf.d.ts +3 -0
  125. package/dist/exporters/eaf.d.ts.map +1 -0
  126. package/dist/exporters/eaf.js +91 -0
  127. package/dist/exporters/eaf.js.map +1 -0
  128. package/dist/exporters/html.d.ts +8 -0
  129. package/dist/exporters/html.d.ts.map +1 -0
  130. package/dist/exporters/html.js +47 -0
  131. package/dist/exporters/html.js.map +1 -0
  132. package/dist/exporters/md.d.ts +3 -0
  133. package/dist/exporters/md.d.ts.map +1 -0
  134. package/dist/exporters/md.js +43 -0
  135. package/dist/exporters/md.js.map +1 -0
  136. package/dist/exporters/pdf.d.ts +9 -0
  137. package/dist/exporters/pdf.d.ts.map +1 -0
  138. package/dist/exporters/pdf.js +40 -0
  139. package/dist/exporters/pdf.js.map +1 -0
  140. package/dist/exporters/report.d.ts +43 -0
  141. package/dist/exporters/report.d.ts.map +1 -0
  142. package/dist/exporters/report.js +49 -0
  143. package/dist/exporters/report.js.map +1 -0
  144. package/dist/index.d.ts +2 -0
  145. package/dist/index.d.ts.map +1 -0
  146. package/dist/index.js +6 -0
  147. package/dist/index.js.map +1 -0
  148. package/dist/legacy_client.d.ts +38 -0
  149. package/dist/legacy_client.d.ts.map +1 -0
  150. package/dist/legacy_client.js +44 -0
  151. package/dist/legacy_client.js.map +1 -0
  152. package/dist/lib/answerSchema.d.ts +2 -0
  153. package/dist/lib/answerSchema.d.ts.map +1 -0
  154. package/dist/lib/answerSchema.js +27 -0
  155. package/dist/lib/answerSchema.js.map +1 -0
  156. package/dist/lib/artifacts.d.ts +64 -0
  157. package/dist/lib/artifacts.d.ts.map +1 -0
  158. package/dist/lib/artifacts.js +254 -0
  159. package/dist/lib/artifacts.js.map +1 -0
  160. package/dist/lib/blame.d.ts +30 -0
  161. package/dist/lib/blame.d.ts.map +1 -0
  162. package/dist/lib/blame.js +164 -0
  163. package/dist/lib/blame.js.map +1 -0
  164. package/dist/lib/canonicalSessions.d.ts +24 -0
  165. package/dist/lib/canonicalSessions.d.ts.map +1 -0
  166. package/dist/lib/canonicalSessions.js +48 -0
  167. package/dist/lib/canonicalSessions.js.map +1 -0
  168. package/dist/lib/chat.d.ts +24 -0
  169. package/dist/lib/chat.d.ts.map +1 -0
  170. package/dist/lib/chat.js +50 -0
  171. package/dist/lib/chat.js.map +1 -0
  172. package/dist/lib/config.d.ts +45 -0
  173. package/dist/lib/config.d.ts.map +1 -0
  174. package/dist/lib/config.js +143 -0
  175. package/dist/lib/config.js.map +1 -0
  176. package/dist/lib/dispatch.d.ts +10 -0
  177. package/dist/lib/dispatch.d.ts.map +1 -0
  178. package/dist/lib/dispatch.js +31 -0
  179. package/dist/lib/dispatch.js.map +1 -0
  180. package/dist/lib/doctor.d.ts +19 -0
  181. package/dist/lib/doctor.d.ts.map +1 -0
  182. package/dist/lib/doctor.js +43 -0
  183. package/dist/lib/doctor.js.map +1 -0
  184. package/dist/lib/events.d.ts +42 -0
  185. package/dist/lib/events.d.ts.map +1 -0
  186. package/dist/lib/events.js +57 -0
  187. package/dist/lib/events.js.map +1 -0
  188. package/dist/lib/export.d.ts +14 -0
  189. package/dist/lib/export.d.ts.map +1 -0
  190. package/dist/lib/export.js +36 -0
  191. package/dist/lib/export.js.map +1 -0
  192. package/dist/lib/ingest.d.ts +21 -0
  193. package/dist/lib/ingest.d.ts.map +1 -0
  194. package/dist/lib/ingest.js +68 -0
  195. package/dist/lib/ingest.js.map +1 -0
  196. package/dist/lib/journal.d.ts +23 -0
  197. package/dist/lib/journal.d.ts.map +1 -0
  198. package/dist/lib/journal.js +95 -0
  199. package/dist/lib/journal.js.map +1 -0
  200. package/dist/lib/migrate.d.ts +29 -0
  201. package/dist/lib/migrate.d.ts.map +1 -0
  202. package/dist/lib/migrate.js +117 -0
  203. package/dist/lib/migrate.js.map +1 -0
  204. package/dist/lib/nativeRuntime.d.ts +46 -0
  205. package/dist/lib/nativeRuntime.d.ts.map +1 -0
  206. package/dist/lib/nativeRuntime.js +61 -0
  207. package/dist/lib/nativeRuntime.js.map +1 -0
  208. package/dist/lib/provisionNative.d.ts +46 -0
  209. package/dist/lib/provisionNative.d.ts.map +1 -0
  210. package/dist/lib/provisionNative.js +105 -0
  211. package/dist/lib/provisionNative.js.map +1 -0
  212. package/dist/lib/queue.d.ts +36 -0
  213. package/dist/lib/queue.d.ts.map +1 -0
  214. package/dist/lib/queue.js +102 -0
  215. package/dist/lib/queue.js.map +1 -0
  216. package/dist/lib/retrieve.d.ts +51 -0
  217. package/dist/lib/retrieve.d.ts.map +1 -0
  218. package/dist/lib/retrieve.js +92 -0
  219. package/dist/lib/retrieve.js.map +1 -0
  220. package/dist/lib/saturate.d.ts +21 -0
  221. package/dist/lib/saturate.d.ts.map +1 -0
  222. package/dist/lib/saturate.js +132 -0
  223. package/dist/lib/saturate.js.map +1 -0
  224. package/dist/lib/schemas.generated.d.ts +15 -0
  225. package/dist/lib/schemas.generated.d.ts.map +1 -0
  226. package/dist/lib/schemas.generated.js +975 -0
  227. package/dist/lib/schemas.generated.js.map +1 -0
  228. package/dist/lib/seed.d.ts +16 -0
  229. package/dist/lib/seed.d.ts.map +1 -0
  230. package/dist/lib/seed.js +64 -0
  231. package/dist/lib/seed.js.map +1 -0
  232. package/dist/lib/seedResolve.d.ts +6 -0
  233. package/dist/lib/seedResolve.d.ts.map +1 -0
  234. package/dist/lib/seedResolve.js +27 -0
  235. package/dist/lib/seedResolve.js.map +1 -0
  236. package/dist/lib/session.d.ts +19 -0
  237. package/dist/lib/session.d.ts.map +1 -0
  238. package/dist/lib/session.js +61 -0
  239. package/dist/lib/session.js.map +1 -0
  240. package/dist/lib/setup.d.ts +44 -0
  241. package/dist/lib/setup.d.ts.map +1 -0
  242. package/dist/lib/setup.js +249 -0
  243. package/dist/lib/setup.js.map +1 -0
  244. package/dist/lib/snap.d.ts +15 -0
  245. package/dist/lib/snap.d.ts.map +1 -0
  246. package/dist/lib/snap.js +115 -0
  247. package/dist/lib/snap.js.map +1 -0
  248. package/dist/lib/status.d.ts +39 -0
  249. package/dist/lib/status.d.ts.map +1 -0
  250. package/dist/lib/status.js +174 -0
  251. package/dist/lib/status.js.map +1 -0
  252. package/dist/lib/tagcode.d.ts +26 -0
  253. package/dist/lib/tagcode.d.ts.map +1 -0
  254. package/dist/lib/tagcode.js +231 -0
  255. package/dist/lib/tagcode.js.map +1 -0
  256. package/dist/lib/templates.d.ts +3 -0
  257. package/dist/lib/templates.d.ts.map +1 -0
  258. package/dist/lib/templates.js +21 -0
  259. package/dist/lib/templates.js.map +1 -0
  260. package/dist/lib/transcribeNative.d.ts +44 -0
  261. package/dist/lib/transcribeNative.d.ts.map +1 -0
  262. package/dist/lib/transcribeNative.js +53 -0
  263. package/dist/lib/transcribeNative.js.map +1 -0
  264. package/dist/lib/transcript.d.ts +68 -0
  265. package/dist/lib/transcript.d.ts.map +1 -0
  266. package/dist/lib/transcript.js +10 -0
  267. package/dist/lib/transcript.js.map +1 -0
  268. package/dist/lib/validate.d.ts +16 -0
  269. package/dist/lib/validate.d.ts.map +1 -0
  270. package/dist/lib/validate.js +155 -0
  271. package/dist/lib/validate.js.map +1 -0
  272. package/dist/llm/adapter.d.ts +33 -0
  273. package/dist/llm/adapter.d.ts.map +1 -0
  274. package/dist/llm/adapter.js +106 -0
  275. package/dist/llm/adapter.js.map +1 -0
  276. package/dist/llm/http.d.ts +9 -0
  277. package/dist/llm/http.d.ts.map +1 -0
  278. package/dist/llm/http.js +56 -0
  279. package/dist/llm/http.js.map +1 -0
  280. package/dist/llm/providers/anthropic.d.ts +14 -0
  281. package/dist/llm/providers/anthropic.d.ts.map +1 -0
  282. package/dist/llm/providers/anthropic.js +66 -0
  283. package/dist/llm/providers/anthropic.js.map +1 -0
  284. package/dist/llm/providers/lmstudio.d.ts +7 -0
  285. package/dist/llm/providers/lmstudio.d.ts.map +1 -0
  286. package/dist/llm/providers/lmstudio.js +8 -0
  287. package/dist/llm/providers/lmstudio.js.map +1 -0
  288. package/dist/llm/providers/ollama.d.ts +12 -0
  289. package/dist/llm/providers/ollama.d.ts.map +1 -0
  290. package/dist/llm/providers/ollama.js +87 -0
  291. package/dist/llm/providers/ollama.js.map +1 -0
  292. package/dist/llm/providers/openai.d.ts +7 -0
  293. package/dist/llm/providers/openai.d.ts.map +1 -0
  294. package/dist/llm/providers/openai.js +8 -0
  295. package/dist/llm/providers/openai.js.map +1 -0
  296. package/dist/llm/providers/openai_compatible.d.ts +18 -0
  297. package/dist/llm/providers/openai_compatible.d.ts.map +1 -0
  298. package/dist/llm/providers/openai_compatible.js +70 -0
  299. package/dist/llm/providers/openai_compatible.js.map +1 -0
  300. package/dist/llm/types.d.ts +60 -0
  301. package/dist/llm/types.d.ts.map +1 -0
  302. package/dist/llm/types.js +2 -0
  303. package/dist/llm/types.js.map +1 -0
  304. package/dist/logging.d.ts +22 -0
  305. package/dist/logging.d.ts.map +1 -0
  306. package/dist/logging.js +58 -0
  307. package/dist/logging.js.map +1 -0
  308. package/dist/loops/embed_worker.d.ts +44 -0
  309. package/dist/loops/embed_worker.d.ts.map +1 -0
  310. package/dist/loops/embed_worker.js +144 -0
  311. package/dist/loops/embed_worker.js.map +1 -0
  312. package/dist/loops/eval_grader.d.ts +19 -0
  313. package/dist/loops/eval_grader.d.ts.map +1 -0
  314. package/dist/loops/eval_grader.js +22 -0
  315. package/dist/loops/eval_grader.js.map +1 -0
  316. package/dist/loops/ingest_watcher.d.ts +17 -0
  317. package/dist/loops/ingest_watcher.d.ts.map +1 -0
  318. package/dist/loops/ingest_watcher.js +66 -0
  319. package/dist/loops/ingest_watcher.js.map +1 -0
  320. package/dist/loops/legacy_worker.d.ts +26 -0
  321. package/dist/loops/legacy_worker.d.ts.map +1 -0
  322. package/dist/loops/legacy_worker.js +102 -0
  323. package/dist/loops/legacy_worker.js.map +1 -0
  324. package/dist/loops/supervisor.d.ts +71 -0
  325. package/dist/loops/supervisor.d.ts.map +1 -0
  326. package/dist/loops/supervisor.js +122 -0
  327. package/dist/loops/supervisor.js.map +1 -0
  328. package/dist/loops/synthesis.d.ts +31 -0
  329. package/dist/loops/synthesis.d.ts.map +1 -0
  330. package/dist/loops/synthesis.js +71 -0
  331. package/dist/loops/synthesis.js.map +1 -0
  332. package/dist/loops/transcribe_worker.d.ts +22 -0
  333. package/dist/loops/transcribe_worker.d.ts.map +1 -0
  334. package/dist/loops/transcribe_worker.js +77 -0
  335. package/dist/loops/transcribe_worker.js.map +1 -0
  336. package/dist/output.d.ts +8 -0
  337. package/dist/output.d.ts.map +1 -0
  338. package/dist/output.js +26 -0
  339. package/dist/output.js.map +1 -0
  340. package/dist/render/transcript_md.d.ts +5 -0
  341. package/dist/render/transcript_md.d.ts.map +1 -0
  342. package/dist/render/transcript_md.js +14 -0
  343. package/dist/render/transcript_md.js.map +1 -0
  344. package/dist/router.d.ts +3 -0
  345. package/dist/router.d.ts.map +1 -0
  346. package/dist/router.js +68 -0
  347. package/dist/router.js.map +1 -0
  348. package/dist/transcriber_client.d.ts +42 -0
  349. package/dist/transcriber_client.d.ts.map +1 -0
  350. package/dist/transcriber_client.js +72 -0
  351. package/dist/transcriber_client.js.map +1 -0
  352. package/package.json +45 -0
  353. package/templates/AGENTS.md +25 -0
  354. package/templates/config.toml +56 -0
  355. package/templates/sample-seed/codebook/desire-for-manual-override.md +8 -0
  356. package/templates/sample-seed/codebook/distrust-of-automation.md +8 -0
  357. package/templates/sample-seed/highlights/H-001.md +9 -0
  358. package/templates/sample-seed/highlights/H-002.md +9 -0
  359. package/templates/sample-seed/seed.md +17 -0
  360. package/templates/sample-seed/sessions/S001/transcript.json +74 -0
  361. package/templates/sample-seed/synthesis/themes/control-earns-trust.md +13 -0
  362. package/templates/seed.md +21 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.generated.js","sourceRoot":"","sources":["../../src/lib/schemas.generated.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface InitOptions {
2
+ cwd?: string;
3
+ force?: boolean;
4
+ now?: () => Date;
5
+ /** Unpack the bundled sample seed (a redacted single-session corpus). */
6
+ fromSample?: boolean;
7
+ }
8
+ export interface InitResult {
9
+ seed_name: string;
10
+ path: string;
11
+ created_at: string;
12
+ files: string[];
13
+ directories: string[];
14
+ }
15
+ export declare function initSeed(name: string, opts?: InitOptions): InitResult;
16
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/lib/seed.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IAChB,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,UAAU,CAqDzE"}
@@ -0,0 +1,64 @@
1
+ import { cpSync, existsSync, mkdirSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { CompostError } from '../errors.js';
5
+ import { loadTemplate, render } from './templates.js';
6
+ const __dirname = dirname(fileURLToPath(import.meta.url));
7
+ // templates/ is a sibling of src/ and dist/ (lib/ → ../../templates).
8
+ const SAMPLE_SEED_DIR = join(__dirname, '..', '..', 'templates', 'sample-seed');
9
+ const SEED_DIRECTORIES = [
10
+ 'plan',
11
+ 'sessions',
12
+ 'sessions/_inbox',
13
+ 'glossary',
14
+ 'highlights',
15
+ 'codebook',
16
+ 'synthesis',
17
+ 'exports',
18
+ 'legacy',
19
+ '.compost',
20
+ '.compost/logs',
21
+ '.compost/work',
22
+ ];
23
+ export function initSeed(name, opts = {}) {
24
+ if (!/^[a-z0-9][a-z0-9_-]*$/i.test(name)) {
25
+ throw new CompostError('INVALID_INPUT', `Seed name must be alphanumeric with - or _ (got "${name}")`);
26
+ }
27
+ const cwd = opts.cwd ?? process.cwd();
28
+ const force = opts.force === true;
29
+ const now = (opts.now ?? (() => new Date()))();
30
+ const seedPath = resolve(cwd, 'Seeds', name);
31
+ const createdAt = now.toISOString();
32
+ if (existsSync(seedPath) && !force) {
33
+ throw new CompostError('INVALID_INPUT', `Seed already exists at ${seedPath}. Use --force to overwrite.`);
34
+ }
35
+ const createdDirs = [];
36
+ for (const dir of SEED_DIRECTORIES) {
37
+ const abs = join(seedPath, dir);
38
+ mkdirSync(abs, { recursive: true });
39
+ createdDirs.push(dir);
40
+ }
41
+ const vars = { seed_name: name, created_at: createdAt };
42
+ const files = [
43
+ { path: 'seed.md', content: render(loadTemplate('seed.md'), vars) },
44
+ { path: '.compost/AGENTS.md', content: render(loadTemplate('AGENTS.md'), vars) },
45
+ { path: '.compost/config.toml', content: render(loadTemplate('config.toml'), vars) },
46
+ ];
47
+ for (const file of files) {
48
+ writeFileSync(join(seedPath, file.path), file.content, 'utf8');
49
+ }
50
+ // --from-sample: overlay the bundled sample corpus (sessions, highlights,
51
+ // codes, theme) on top of the fresh scaffold. seed.md is replaced by the
52
+ // sample's own.
53
+ if (opts.fromSample === true) {
54
+ cpSync(SAMPLE_SEED_DIR, seedPath, { recursive: true });
55
+ }
56
+ return {
57
+ seed_name: name,
58
+ path: seedPath,
59
+ created_at: createdAt,
60
+ files: files.map((f) => f.path),
61
+ directories: createdDirs,
62
+ };
63
+ }
64
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/lib/seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Resolve a seed directory path. If `seed` is given, use Seeds/<seed>.
3
+ * Otherwise require exactly one seed under ./Seeds and return it.
4
+ */
5
+ export declare function resolveSeedPath(cwd: string, seed?: string): string;
6
+ //# sourceMappingURL=seedResolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seedResolve.d.ts","sourceRoot":"","sources":["../../src/lib/seedResolve.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAsBlE"}
@@ -0,0 +1,27 @@
1
+ import { existsSync, readdirSync, statSync } from 'node:fs';
2
+ import { join, resolve } from 'node:path';
3
+ import { CompostError } from '../errors.js';
4
+ /**
5
+ * Resolve a seed directory path. If `seed` is given, use Seeds/<seed>.
6
+ * Otherwise require exactly one seed under ./Seeds and return it.
7
+ */
8
+ export function resolveSeedPath(cwd, seed) {
9
+ const root = resolve(cwd, 'Seeds');
10
+ if (!existsSync(root)) {
11
+ throw new CompostError('NOT_IN_SEED', `No Seeds/ directory at ${root}`);
12
+ }
13
+ if (seed !== undefined) {
14
+ const p = join(root, seed);
15
+ if (!existsSync(p))
16
+ throw new CompostError('NOT_IN_SEED', `Seed "${seed}" not found under ${root}`);
17
+ return p;
18
+ }
19
+ const entries = readdirSync(root).filter((e) => !e.startsWith('.') && statSync(join(root, e)).isDirectory());
20
+ if (entries.length === 0)
21
+ throw new CompostError('NOT_IN_SEED', `No seeds under ${root}`);
22
+ if (entries.length > 1) {
23
+ throw new CompostError('INVALID_INPUT', `Multiple seeds under ${root} (${entries.join(', ')}). Pass --seed <name>.`);
24
+ }
25
+ return join(root, entries[0]);
26
+ }
27
+ //# sourceMappingURL=seedResolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seedResolve.js","sourceRoot":"","sources":["../../src/lib/seedResolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,IAAa;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,0BAA0B,IAAI,EAAE,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,SAAS,IAAI,qBAAqB,IAAI,EAAE,CAAC,CAAA;QACjF,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACnE,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAA;IACzF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,wBAAwB,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAC5E,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAA;AAChC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface SessionView {
2
+ session_id: string;
3
+ seed: string;
4
+ transcript_path: string;
5
+ transcript: unknown;
6
+ frames: Array<{
7
+ id: string;
8
+ at_ms: number;
9
+ trigger: string;
10
+ path: string;
11
+ }>;
12
+ }
13
+ /**
14
+ * Read a session's transcript.json plus a derived frame index. Used by the
15
+ * `compost session` command and the `compost_get_session` MCP tool so the host
16
+ * agent can pull a full session into context.
17
+ */
18
+ export declare function getSession(seedPath: string, sessionId: string): SessionView;
19
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CA8B3E"}
@@ -0,0 +1,61 @@
1
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { CompostError } from '../errors.js';
4
+ /**
5
+ * Read a session's transcript.json plus a derived frame index. Used by the
6
+ * `compost session` command and the `compost_get_session` MCP tool so the host
7
+ * agent can pull a full session into context.
8
+ */
9
+ export function getSession(seedPath, sessionId) {
10
+ if (!/^[A-Za-z0-9_-]+$/.test(sessionId)) {
11
+ throw new CompostError('INVALID_INPUT', `Invalid session id: ${JSON.stringify(sessionId)}`);
12
+ }
13
+ const dir = join(seedPath, 'sessions', sessionId);
14
+ if (!existsSync(dir)) {
15
+ throw new CompostError('FILE_NOT_FOUND', `No session "${sessionId}" under ${seedPath}/sessions`);
16
+ }
17
+ const transcriptPath = join(dir, 'transcript.json');
18
+ if (!existsSync(transcriptPath)) {
19
+ throw new CompostError('FILE_NOT_FOUND', `Session "${sessionId}" has no transcript.json yet (still queued or transcribing?)`);
20
+ }
21
+ let transcript;
22
+ try {
23
+ transcript = JSON.parse(readFileSync(transcriptPath, 'utf8'));
24
+ }
25
+ catch (err) {
26
+ throw new CompostError('INVALID_INPUT', `Failed to parse ${transcriptPath}: ${String(err)}`);
27
+ }
28
+ return {
29
+ session_id: sessionId,
30
+ seed: seedPath.split('/').pop() ?? 'seed',
31
+ transcript_path: transcriptPath,
32
+ transcript,
33
+ frames: deriveFrameIndex(transcript, dir),
34
+ };
35
+ }
36
+ /**
37
+ * Build a frame index from the transcript's frames[] (preferred) or, as a
38
+ * fallback, from the on-disk frames/ directory. Kept lightweight — the player
39
+ * UI (v0.2) reads richer metadata; agents just need id/at_ms/trigger/path.
40
+ */
41
+ function deriveFrameIndex(transcript, sessionDir) {
42
+ const fromTranscript = transcript.frames;
43
+ if (Array.isArray(fromTranscript)) {
44
+ return fromTranscript
45
+ .filter((f) => typeof f === 'object' && f !== null)
46
+ .map((f) => ({
47
+ id: String(f.id ?? ''),
48
+ at_ms: typeof f.at_ms === 'number' ? f.at_ms : 0,
49
+ trigger: String(f.trigger ?? 'unknown'),
50
+ path: String(f.path ?? ''),
51
+ }));
52
+ }
53
+ // Fallback: list JPGs in frames/ if the transcript predates frame capture.
54
+ const framesDir = join(sessionDir, 'frames');
55
+ if (!existsSync(framesDir))
56
+ return [];
57
+ return readdirSync(framesDir)
58
+ .filter((f) => /\.(jpg|jpeg|png)$/i.test(f))
59
+ .map((f) => ({ id: f, at_ms: 0, trigger: 'on-disk', path: join('frames', f) }));
60
+ }
61
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { FetchLike } from '../llm/types.js';
2
+ export type CheckStatus = 'ok' | 'warn' | 'fail';
3
+ export interface SetupCheck {
4
+ /** Stable id, e.g. "ollama", "pyannote-license". */
5
+ id: string;
6
+ /** Human one-liner. */
7
+ label: string;
8
+ status: CheckStatus;
9
+ /** What we observed. */
10
+ detail: string;
11
+ /** Copy-pasteable command(s) to fix it, or null when ok. */
12
+ fix: string | null;
13
+ }
14
+ export interface SetupReport {
15
+ schema_version: '1.0';
16
+ ready: boolean;
17
+ checks: SetupCheck[];
18
+ }
19
+ export interface SetupDeps {
20
+ cwd?: string;
21
+ fetchImpl?: FetchLike;
22
+ /** Injectable command runner (for docker/ollama CLI probes + tests). */
23
+ exec?: (cmd: string, args: string[]) => Promise<{
24
+ stdout: string;
25
+ ok: boolean;
26
+ }>;
27
+ env?: NodeJS.ProcessEnv;
28
+ /** Ollama base URL (default http://localhost:11434). */
29
+ ollamaUrl?: string;
30
+ /** Transcriber base URL (default http://localhost:7862). */
31
+ transcriberUrl?: string;
32
+ /** Embedding models the embed-worker needs present in Ollama. */
33
+ requiredOllamaModels?: string[];
34
+ /** Override Apple-Silicon detection (tests). Defaults to the host arch. */
35
+ appleSilicon?: boolean;
36
+ }
37
+ /**
38
+ * Run every prerequisite probe and return a checklist. Read-only: probes,
39
+ * never installs. The `/compost-setup` skill reads this JSON and offers to run
40
+ * the `fix` commands with the researcher's confirmation — the CLI stays
41
+ * deterministic and side-effect-free so it's safe for agents and CI.
42
+ */
43
+ export declare function runSetup(deps?: SetupDeps): Promise<SetupReport>;
44
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAKhD,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;AAEhD,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,CAAA;IACnB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,4DAA4D;IAC5D,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,KAAK,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,wEAAwE;IACxE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iEAAiE;IACjE,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAgBD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,GAAE,SAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CA8NzE"}
@@ -0,0 +1,249 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { existsSync, readdirSync } from 'node:fs';
3
+ import { join, resolve } from 'node:path';
4
+ import { promisify } from 'node:util';
5
+ import { resolveFetch } from '../llm/http.js';
6
+ import { isAppleSilicon, resolveNativeRuntime } from './nativeRuntime.js';
7
+ const execFileAsync = promisify(execFile);
8
+ const PYANNOTE_GATED_REPOS = ['pyannote/speaker-diarization-3.1', 'pyannote/segmentation-3.0'];
9
+ const DEFAULT_REQUIRED_MODELS = ['bge-m3'];
10
+ const defaultExec = async (cmd, args) => {
11
+ try {
12
+ const { stdout } = await execFileAsync(cmd, args, { timeout: 5000 });
13
+ return { stdout, ok: true };
14
+ }
15
+ catch (err) {
16
+ const e = err;
17
+ return { stdout: e.stdout ?? '', ok: false };
18
+ }
19
+ };
20
+ /**
21
+ * Run every prerequisite probe and return a checklist. Read-only: probes,
22
+ * never installs. The `/compost-setup` skill reads this JSON and offers to run
23
+ * the `fix` commands with the researcher's confirmation — the CLI stays
24
+ * deterministic and side-effect-free so it's safe for agents and CI.
25
+ */
26
+ export async function runSetup(deps = {}) {
27
+ const cwd = deps.cwd ?? process.cwd();
28
+ const env = deps.env ?? process.env;
29
+ const fetchImpl = resolveFetch(deps.fetchImpl);
30
+ const exec = deps.exec ?? defaultExec;
31
+ const ollamaUrl = (deps.ollamaUrl ?? 'http://localhost:11434').replace(/\/$/, '');
32
+ const transcriberUrl = (deps.transcriberUrl ?? 'http://localhost:7862').replace(/\/$/, '');
33
+ const requiredModels = deps.requiredOllamaModels ?? DEFAULT_REQUIRED_MODELS;
34
+ const checks = [];
35
+ // 1. Ollama reachable + 2. required models present (one probe, two checks).
36
+ let ollamaTags = null;
37
+ try {
38
+ const res = await fetchImpl(`${ollamaUrl}/api/tags`, { method: 'GET' });
39
+ if (res.ok) {
40
+ const json = (await res.json());
41
+ ollamaTags = (json.models ?? []).map((m) => m.name ?? '');
42
+ }
43
+ }
44
+ catch {
45
+ ollamaTags = null;
46
+ }
47
+ if (ollamaTags === null) {
48
+ checks.push({
49
+ id: 'ollama',
50
+ label: 'Ollama running',
51
+ status: 'fail',
52
+ detail: `No response at ${ollamaUrl}/api/tags`,
53
+ fix: 'Install from ollama.com, then run `ollama serve` (or open the app).',
54
+ });
55
+ }
56
+ else {
57
+ checks.push({
58
+ id: 'ollama',
59
+ label: 'Ollama running',
60
+ status: 'ok',
61
+ detail: `${ollamaTags.length} models installed`,
62
+ fix: null,
63
+ });
64
+ for (const model of requiredModels) {
65
+ const present = ollamaTags.some((t) => t === model || t.startsWith(`${model}:`));
66
+ checks.push(present
67
+ ? {
68
+ id: `model:${model}`,
69
+ label: `Model ${model}`,
70
+ status: 'ok',
71
+ detail: 'installed',
72
+ fix: null,
73
+ }
74
+ : {
75
+ id: `model:${model}`,
76
+ label: `Model ${model}`,
77
+ status: 'fail',
78
+ detail: 'not installed (embeddings will fail)',
79
+ fix: `ollama pull ${model}`,
80
+ });
81
+ }
82
+ }
83
+ // 3. Docker / OrbStack.
84
+ const docker = await exec('docker', ['info', '--format', '{{.ServerVersion}}']);
85
+ checks.push(docker.ok
86
+ ? {
87
+ id: 'docker',
88
+ label: 'Docker/OrbStack',
89
+ status: 'ok',
90
+ detail: `daemon ${docker.stdout.trim()}`,
91
+ fix: null,
92
+ }
93
+ : {
94
+ id: 'docker',
95
+ label: 'Docker/OrbStack',
96
+ status: 'warn',
97
+ detail: 'daemon unreachable (only the cross-platform transcription fallback needs it)',
98
+ fix: 'Install OrbStack (orbstack.dev) or Docker Desktop, then start it.',
99
+ });
100
+ // 4. Transcriber container.
101
+ let transcriberOk = false;
102
+ try {
103
+ const res = await fetchImpl(`${transcriberUrl}/health`, { method: 'GET' });
104
+ transcriberOk = res.ok;
105
+ }
106
+ catch {
107
+ transcriberOk = false;
108
+ }
109
+ checks.push(transcriberOk
110
+ ? {
111
+ id: 'transcriber',
112
+ label: 'Transcriber service',
113
+ status: 'ok',
114
+ detail: `healthy at ${transcriberUrl}`,
115
+ fix: null,
116
+ }
117
+ : {
118
+ id: 'transcriber',
119
+ label: 'Transcriber service',
120
+ status: 'warn',
121
+ detail: 'not reachable (cross-platform fallback; native is the default on Apple Silicon)',
122
+ fix: 'docker compose -f transcriber/compose.yaml up --build -d',
123
+ });
124
+ // 4b. Native transcription (Apple Silicon, #176) — the default fast path.
125
+ if (deps.appleSilicon ?? isAppleSilicon()) {
126
+ const native = resolveNativeRuntime({ env });
127
+ if (native === null) {
128
+ checks.push({
129
+ id: 'native-transcribe',
130
+ label: 'Native transcription',
131
+ status: 'warn',
132
+ detail: 'no native venv resolved (Apple Silicon runs ~20× faster than the Docker fallback)',
133
+ fix: 'compost setup --provision-native (or set COMPOST_TRANSCRIBER_PYTHON + COMPOST_TRANSCRIBER_DIR)',
134
+ });
135
+ }
136
+ else {
137
+ const probe = await exec(native.python, ['-c', 'import parakeet_mlx, pyannote.audio']);
138
+ checks.push(probe.ok
139
+ ? {
140
+ id: 'native-transcribe',
141
+ label: 'Native transcription',
142
+ status: 'ok',
143
+ detail: `parakeet-mlx + pyannote ready (${native.python})`,
144
+ fix: null,
145
+ }
146
+ : {
147
+ id: 'native-transcribe',
148
+ label: 'Native transcription',
149
+ status: 'warn',
150
+ detail: `venv at ${native.python} is missing deps (parakeet-mlx / pyannote)`,
151
+ fix: `${native.python} -m pip install parakeet-mlx pyannote.audio silero-vad`,
152
+ });
153
+ }
154
+ }
155
+ // 5. HuggingFace token present.
156
+ const hfToken = env.HUGGINGFACE_TOKEN || env.HF_TOKEN;
157
+ if (!hfToken) {
158
+ checks.push({
159
+ id: 'hf-token',
160
+ label: 'HuggingFace token',
161
+ status: 'warn',
162
+ detail: 'HUGGINGFACE_TOKEN not set (needed for pyannote diarization)',
163
+ fix: 'Create a token at hf.co/settings/tokens, then export HUGGINGFACE_TOKEN=hf_…',
164
+ });
165
+ }
166
+ else {
167
+ checks.push({
168
+ id: 'hf-token',
169
+ label: 'HuggingFace token',
170
+ status: 'ok',
171
+ detail: 'set',
172
+ fix: null,
173
+ });
174
+ // 6. pyannote license — must be a FILE fetch, not a metadata ping (the
175
+ // /api/models endpoint returns 200 even when the license isn't accepted).
176
+ for (const repo of PYANNOTE_GATED_REPOS) {
177
+ let accepted = false;
178
+ try {
179
+ const res = await fetchImpl(`https://huggingface.co/${repo}/resolve/main/config.yaml`, {
180
+ method: 'GET',
181
+ headers: { Authorization: `Bearer ${hfToken}` },
182
+ });
183
+ accepted = res.ok;
184
+ }
185
+ catch {
186
+ accepted = false;
187
+ }
188
+ checks.push(accepted
189
+ ? {
190
+ id: `pyannote:${repo}`,
191
+ label: `pyannote license: ${repo}`,
192
+ status: 'ok',
193
+ detail: 'accepted',
194
+ fix: null,
195
+ }
196
+ : {
197
+ id: `pyannote:${repo}`,
198
+ label: `pyannote license: ${repo}`,
199
+ status: 'warn',
200
+ detail: 'license not accepted (403 on the gated model file)',
201
+ fix: `Accept at https://huggingface.co/${repo} (logged in as the token's account)`,
202
+ });
203
+ }
204
+ }
205
+ // 7. Seeds/ directory present.
206
+ const seedsDir = resolve(cwd, 'Seeds');
207
+ checks.push(existsSync(seedsDir)
208
+ ? { id: 'seeds', label: 'Seeds/ directory', status: 'ok', detail: seedsDir, fix: null }
209
+ : {
210
+ id: 'seeds',
211
+ label: 'Seeds/ directory',
212
+ status: 'warn',
213
+ detail: `No Seeds/ under ${cwd}`,
214
+ fix: 'compost init <name> (or run from a directory that has a Seeds/ tree)',
215
+ });
216
+ // 8. config.toml parses for at least one seed (best-effort; skipped if no Seeds).
217
+ if (existsSync(seedsDir)) {
218
+ const anyConfig = firstSeedConfig(seedsDir);
219
+ checks.push(anyConfig
220
+ ? { id: 'config', label: 'config.toml', status: 'ok', detail: anyConfig, fix: null }
221
+ : {
222
+ id: 'config',
223
+ label: 'config.toml',
224
+ status: 'warn',
225
+ detail: 'no seed has a .compost/config.toml yet',
226
+ fix: 'compost init <name> (scaffolds .compost/config.toml)',
227
+ });
228
+ }
229
+ const ready = checks.every((c) => c.status !== 'fail');
230
+ return { schema_version: '1.0', ready, checks };
231
+ }
232
+ function firstSeedConfig(seedsDir) {
233
+ // Cheap: return the path of the first seed config we find; full parse is the
234
+ // `compost config show` command's job.
235
+ try {
236
+ for (const entry of readdirSync(seedsDir)) {
237
+ if (entry.startsWith('.'))
238
+ continue;
239
+ const cfg = join(seedsDir, entry, '.compost', 'config.toml');
240
+ if (existsSync(cfg))
241
+ return cfg;
242
+ }
243
+ }
244
+ catch {
245
+ // ignore
246
+ }
247
+ return null;
248
+ }
249
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface SnapResult {
2
+ session_id: string;
3
+ frame_id: string;
4
+ at_ms: number;
5
+ path: string;
6
+ existed: boolean;
7
+ }
8
+ /** Parse mm:ss, hh:mm:ss, or raw ms (integer) into milliseconds. */
9
+ export declare function parseTimestamp(input: string): number;
10
+ export type Runner = (cmd: string, args: string[]) => string;
11
+ export interface SnapOptions {
12
+ runner?: Runner;
13
+ }
14
+ export declare function snap(seedPath: string, sessionId: string, at: string, opts?: SnapOptions): SnapResult;
15
+ //# sourceMappingURL=snap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../../src/lib/snap.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAKD,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBpD;AA+BD,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;AAI5D,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,IAAI,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,WAAgB,GACrB,UAAU,CAyCZ"}