@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
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAA;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAa3C,MAAM,iBAAiB,GAA2B;IAChD,MAAM,EAAE,wBAAwB;IAChC,QAAQ,EAAE,0BAA0B;IACpC,MAAM,EAAE,2BAA2B;IACnC,SAAS,EAAE,2BAA2B;CACvC,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,MAA+B,CAAA;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,QAAQ,CAA4B,CAAA;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,6BAA6B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAClF,CAAC;IACD,MAAM,SAAS,GAAI,MAAM,CAAC,SAA8C,IAAI,EAAE,CAAA;IAC9E,MAAM,QAAQ,GAAI,MAAM,CAAC,QAAmC,IAAI,EAAE,CAAA;IAClE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;IAC5D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,qBAAqB,UAAU,EAAE,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAqB,EAAE,YAAoB;IACzE,OAAO,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,QAAQ,IAAI,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;AAC1F,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,YAAoB;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,WAAW,CAAA;IAC3D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC3C,gFAAgF;IAChF,gFAAgF;IAChF,6BAA6B;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACzD,CAAC;AAED;0DAC0D;AAC1D,MAAM,UAAU,cAAc,CAAC,GAA4B,EAAE,GAAW;IACtE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,MAAM,GAAY,GAAG,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,SAAS,CAAA;QACnE,MAAM,GAAI,MAAkC,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;IAC5C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAC5B,GAA4B,EAC5B,GAAW,EACX,KAAa,EACb,OAAwB,QAAQ;IAEhC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,MAAM,GAA4B,GAAG,CAAA;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAW,CAAA;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3F,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,IAAI,CAA4B,CAAA;IAClD,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAW,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,IAAqB;IACvD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,KAAK,CAAA;QACd,KAAK,MAAM;YACT,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAA;YACjC,IAAI,KAAK,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAA;YACnC,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,+CAA+C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACvE,CAAA;QACH,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,uCAAuC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC/D,CAAA;YACH,CAAC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1D,CAAA;YACH,CAAC;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,+CAA+C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACvE,CAAA;YACH,CAAC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1D,CAAA;YACH,CAAC;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QACD,KAAK,MAAM;YACT,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,8BAA8B,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC3F,CAAC;IACL,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,GAA4B;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;IAC5D,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;AACvD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CACpB,cAAc,EACd,kBAAkB,KAAK,wDAAwD,CAChF,CAAA;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAA;AACvE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@ export interface DoctorReport {
13
13
  schema_version: '1.0';
14
14
  providers: Record<string, ProviderHealth>;
15
15
  tasks: TaskReport[];
16
+ /** Bidirectional reconcile (#175): models a provider has pulled but no
17
+ * `[defaults]` route uses. Informational — not an error. Keyed by provider. */
18
+ unused_models: Record<string, string[]>;
16
19
  ok: boolean;
17
20
  }
18
21
  export declare function runDoctor(adapter: LLMAdapter, config: CompostConfig): Promise<DoctorReport>;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,IAAI,GAAG,eAAe,GAAG,eAAe,GAAG,YAAY,CAAA;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,KAAK,CAAA;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACzC,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,EAAE,EAAE,OAAO,CAAA;CACZ;AAUD,wBAAsB,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAmCjG"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,IAAI,GAAG,eAAe,GAAG,eAAe,GAAG,YAAY,CAAA;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,KAAK,CAAA;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACzC,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB;mFAC+E;IAC/E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACvC,EAAE,EAAE,OAAO,CAAA;CACZ;AAUD,wBAAsB,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA0DjG"}
@@ -9,6 +9,19 @@ export async function runDoctor(adapter, config) {
9
9
  const providers = await adapter.healthAll();
10
10
  const tasks = [];
11
11
  let ok = true;
12
+ // Configured model per provider, for the pulled-but-unused reconcile below.
13
+ const configuredByProvider = new Map();
14
+ for (const route of Object.values(config.defaults)) {
15
+ try {
16
+ const { provider, model } = parseRoute(route);
17
+ if (!configuredByProvider.has(provider))
18
+ configuredByProvider.set(provider, new Set());
19
+ configuredByProvider.get(provider)?.add(model);
20
+ }
21
+ catch {
22
+ // unroutable — handled per-task below
23
+ }
24
+ }
12
25
  for (const [task, route] of Object.entries(config.defaults)) {
13
26
  let provider = '';
14
27
  let model = '';
@@ -38,6 +51,16 @@ export async function runDoctor(adapter, config) {
38
51
  }
39
52
  tasks.push({ task, route, provider, model, status: 'ok' });
40
53
  }
41
- return { schema_version: '1.0', providers, tasks, ok };
54
+ // Reconcile the other direction: models a provider has pulled but nothing routes to.
55
+ const unused_models = {};
56
+ for (const [provider, health] of Object.entries(providers)) {
57
+ if (!health.ok || health.model_list.length === 0)
58
+ continue;
59
+ const configured = configuredByProvider.get(provider) ?? new Set();
60
+ const unused = health.model_list.filter((m) => !configured.has(m) && ![...configured].some((c) => m === c || m.startsWith(`${c}:`)));
61
+ if (unused.length > 0)
62
+ unused_models[provider] = unused;
63
+ }
64
+ return { schema_version: '1.0', providers, tasks, unused_models, ok };
42
65
  }
43
66
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAkBxC,uFAAuF;AACvF,SAAS,YAAY,CAAC,MAAkC,EAAE,KAAa;IACrE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,KAAK,CAAA;IACpD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CACvE,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAmB,EAAE,MAAqB;IACxE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAA;IAC3C,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,IAAI,EAAE,GAAG,IAAI,CAAA;IAEb,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAChC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;YAC1E,EAAE,GAAG,KAAK,CAAA;YACV,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;YACrE,EAAE,GAAG,KAAK,CAAA;YACV,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAe,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;YACpF,IAAI,QAAQ,KAAK,QAAQ;gBAAE,MAAM,CAAC,UAAU,GAAG,eAAe,KAAK,EAAE,CAAA;YACrE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClB,EAAE,GAAG,KAAK,CAAA;YACV,SAAQ;QACV,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAqBxC,uFAAuF;AACvF,SAAS,YAAY,CAAC,MAAkC,EAAE,KAAa;IACrE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,KAAK,CAAA;IACpD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CACvE,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAmB,EAAE,MAAqB;IACxE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAA;IAC3C,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,IAAI,EAAE,GAAG,IAAI,CAAA;IAEb,4EAA4E;IAC5E,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;YACtF,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAChC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;YAC1E,EAAE,GAAG,KAAK,CAAA;YACV,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;YACrE,EAAE,GAAG,KAAK,CAAA;YACV,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAe,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;YACpF,IAAI,QAAQ,KAAK,QAAQ;gBAAE,MAAM,CAAC,UAAU,GAAG,eAAe,KAAK,EAAE,CAAA;YACrE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClB,EAAE,GAAG,KAAK,CAAA;YACV,SAAQ;QACV,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,qFAAqF;IACrF,MAAM,aAAa,GAA6B,EAAE,CAAA;IAClD,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAC1D,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;QAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAC5F,CAAA;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;IACzD,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,CAAA;AACvE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type Event, EventWriter } from '@they-juanreina/compost-provenance';
1
+ import { type AiInputBundle, type Event, EventWriter } from '@they-juanreina/compost-provenance';
2
2
  /** Open an EventWriter on a seed's .compost/events.sqlite. */
3
3
  export declare function openSeedEvents(seedPath: string): EventWriter;
4
4
  /** Content-address an artifact's initial state (SHA256 of canonical JSON). */
@@ -10,6 +10,10 @@ export declare function emitAgentCreate(writer: EventWriter, params: {
10
10
  agentName: string;
11
11
  agentVersion: string;
12
12
  batchId?: string;
13
+ /** Reconstructable inputs to this (deterministic) operation. When provided,
14
+ * persisted via recordInputs and linked as the event's input_id so the
15
+ * artifact can be regenerated by `compost rerun`. */
16
+ inputs?: AiInputBundle;
13
17
  }): Event;
14
18
  /**
15
19
  * Author of a researcher- or AI-created artifact. A direct CLI invocation is a
@@ -30,7 +34,14 @@ export declare function emitCreate(writer: EventWriter, params: {
30
34
  artifactKind: string;
31
35
  initialState: Record<string, unknown>;
32
36
  author: Author;
37
+ /** Best-effort captured inputs for an AI create (the host agent may pass them
38
+ * via `compost create --inputs-file`). When provided, persisted and linked as
39
+ * the event's input_id; absent → only prompt_hash survives, as before. */
40
+ inputs?: AiInputBundle;
33
41
  }): Event;
42
+ /** Re-export so call sites can build bundles without importing the provenance
43
+ * package directly. */
44
+ export type { AiInputBundle };
34
45
  /** Emit a researcher `endorse` event chaining the artifact's create event.
35
46
  * Promotes an AI `[draft]` to endorsed (snapshot author becomes hybrid). */
36
47
  export declare function emitEndorse(writer: EventWriter, params: {
@@ -39,4 +50,26 @@ export declare function emitEndorse(writer: EventWriter, params: {
39
50
  parentEventId: string;
40
51
  researcherId: string;
41
52
  }): Event;
53
+ /** Emit a researcher `reject` event chaining the artifact's latest event.
54
+ * Archives the artifact (current_state preserved for audit) — the "delete" of
55
+ * the three-actor model, where nothing is ever truly deleted. */
56
+ export declare function emitReject(writer: EventWriter, params: {
57
+ artifactKind: string;
58
+ artifactId: string;
59
+ parentEventId: string;
60
+ researcherId: string;
61
+ note?: string;
62
+ }): Event;
63
+ /** Emit a researcher `update` event chaining the artifact's latest event. The
64
+ * payload is a field-level patch `{ field, before, after }` (the reducer applies
65
+ * only `after`) so the event log records what changed, not just the new state. */
66
+ export declare function emitUpdate(writer: EventWriter, params: {
67
+ artifactKind: string;
68
+ artifactId: string;
69
+ parentEventId: string;
70
+ author: Author;
71
+ field: string;
72
+ before: unknown;
73
+ after: unknown;
74
+ }): Event;
42
75
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,KAAK,EAAmB,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAE7F,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAE5D;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GACA,KAAK,CAaP;AAED;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;6DAE6D;AAC7D,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtF,KAAK,CAaP;AAED;4EAC4E;AAC5E,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB,GACA,KAAK,CAUP"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,KAAK,EAEV,WAAW,EACZ,MAAM,oCAAoC,CAAA;AAE3C,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAE5D;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;yDAEqD;IACrD,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB,GACA,KAAK,CAeP;AAED;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;6DAE6D;AAC7D,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,MAAM,EAAE,MAAM,CAAA;IACd;;8EAE0E;IAC1E,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB,GACA,KAAK,CAeP;AAED;uBACuB;AACvB,YAAY,EAAE,aAAa,EAAE,CAAA;AAE7B;4EAC4E;AAC5E,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB,GACA,KAAK,CAUP;AAED;;iEAEiE;AACjE,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,GACA,KAAK,CAUP;AAED;;kFAEkF;AAClF,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;CACf,GACA,KAAK,CAYP"}
@@ -1,6 +1,6 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { join } from 'node:path';
3
- import { EventWriter } from '@they-juanreina/compost-provenance';
3
+ import { EventWriter, } from '@they-juanreina/compost-provenance';
4
4
  /** Open an EventWriter on a seed's .compost/events.sqlite. */
5
5
  export function openSeedEvents(seedPath) {
6
6
  return new EventWriter({ dbPath: join(seedPath, '.compost', 'events.sqlite') });
@@ -11,6 +11,7 @@ export function artifactId(initialState) {
11
11
  }
12
12
  /** Emit an agent-authored `create` event (used by ingest + ingest-watcher). */
13
13
  export function emitAgentCreate(writer, params) {
14
+ const input_id = params.inputs !== undefined ? writer.recordInputs(params.inputs) : undefined;
14
15
  const input = {
15
16
  artifact_kind: params.artifactKind,
16
17
  artifact_id: artifactId(params.initialState),
@@ -20,6 +21,7 @@ export function emitAgentCreate(writer, params) {
20
21
  agent_name: params.agentName,
21
22
  agent_version: params.agentVersion,
22
23
  payload: params.initialState,
24
+ ...(input_id !== undefined ? { input_id } : {}),
23
25
  ...(params.batchId !== undefined ? { batch_id: params.batchId } : {}),
24
26
  };
25
27
  return writer.appendEvent(input);
@@ -29,6 +31,7 @@ export function emitAgentCreate(writer, params) {
29
31
  * lives in initialState.id so blame can map between them. */
30
32
  export function emitCreate(writer, params) {
31
33
  const { author } = params;
34
+ const input_id = params.inputs !== undefined ? writer.recordInputs(params.inputs) : undefined;
32
35
  const input = {
33
36
  artifact_kind: params.artifactKind,
34
37
  artifact_id: artifactId(params.initialState),
@@ -38,6 +41,7 @@ export function emitCreate(writer, params) {
38
41
  payload: params.initialState,
39
42
  ...(author.model !== undefined ? { model: author.model } : {}),
40
43
  ...(author.promptHash !== undefined ? { prompt_hash: author.promptHash } : {}),
44
+ ...(input_id !== undefined ? { input_id } : {}),
41
45
  };
42
46
  return writer.appendEvent(input);
43
47
  }
@@ -54,4 +58,34 @@ export function emitEndorse(writer, params) {
54
58
  payload: { endorsed: true },
55
59
  });
56
60
  }
61
+ /** Emit a researcher `reject` event chaining the artifact's latest event.
62
+ * Archives the artifact (current_state preserved for audit) — the "delete" of
63
+ * the three-actor model, where nothing is ever truly deleted. */
64
+ export function emitReject(writer, params) {
65
+ return writer.appendEvent({
66
+ artifact_kind: params.artifactKind,
67
+ artifact_id: params.artifactId,
68
+ action: 'reject',
69
+ actor_type: 'researcher',
70
+ actor_id: params.researcherId,
71
+ parent_event: params.parentEventId,
72
+ payload: params.note !== undefined ? { note: params.note } : { rejected: true },
73
+ });
74
+ }
75
+ /** Emit a researcher `update` event chaining the artifact's latest event. The
76
+ * payload is a field-level patch `{ field, before, after }` (the reducer applies
77
+ * only `after`) so the event log records what changed, not just the new state. */
78
+ export function emitUpdate(writer, params) {
79
+ return writer.appendEvent({
80
+ artifact_kind: params.artifactKind,
81
+ artifact_id: params.artifactId,
82
+ action: 'update',
83
+ actor_type: params.author.actorType,
84
+ actor_id: params.author.actorId,
85
+ parent_event: params.parentEventId,
86
+ payload: { field: params.field, before: params.before, after: params.after },
87
+ ...(params.author.model !== undefined ? { model: params.author.model } : {}),
88
+ ...(params.author.promptHash !== undefined ? { prompt_hash: params.author.promptHash } : {}),
89
+ });
90
+ }
57
91
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAA+B,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAE7F,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,CAAC,CAAA;AACjF,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,YAAqB;IAC9C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAChF,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAC7B,MAAmB,EACnB,MAMC;IAED,MAAM,KAAK,GAAe;QACxB,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;QAC5C,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,OAAO;QACnB,QAAQ,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE;QACtD,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,OAAO,EAAE,MAAM,CAAC,YAAY;QAC5B,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtE,CAAA;IACD,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAeD;;6DAE6D;AAC7D,MAAM,UAAU,UAAU,CACxB,MAAmB,EACnB,MAAuF;IAEvF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACzB,MAAM,KAAK,GAAe;QACxB,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;QAC5C,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,QAAQ,EAAE,MAAM,CAAC,OAAO;QACxB,OAAO,EAAE,MAAM,CAAC,YAAY;QAC5B,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAA;IACD,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED;4EAC4E;AAC5E,MAAM,UAAU,WAAW,CACzB,MAAmB,EACnB,MAKC;IAED,OAAO,MAAM,CAAC,WAAW,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,MAAM,CAAC,YAAY;QAC7B,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Transcript } from './transcript.js';
2
+ /**
3
+ * Import an existing speaker + timestamp text transcript (#172) into compost's
4
+ * transcript schema. Recognizes the common shapes:
5
+ * [00:01:23] Name: text [01:23] Name: text
6
+ * 00:01:23 Name: text
7
+ * Name (01:23): text
8
+ * A line with no leading speaker/timestamp continues the previous utterance.
9
+ */
10
+ export interface ImportOptions {
11
+ sessionId: string;
12
+ source?: string;
13
+ language?: string;
14
+ }
15
+ export declare function parseTextTranscript(raw: string, opts: ImportOptions): Transcript;
16
+ //# sourceMappingURL=importTranscript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importTranscript.d.ts","sourceRoot":"","sources":["../../src/lib/importTranscript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,iBAAiB,CAAA;AAEzF;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA6CD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,UAAU,CA8DhF"}
@@ -0,0 +1,94 @@
1
+ import { CompostError } from '../errors.js';
2
+ // [ts] Name: text | ts Name: text | Name (ts): text
3
+ const BRACKET_RE = /^\[(\d{1,2}:)?(\d{1,2}):(\d{2})(?:\.\d+)?\]\s*([^:]{1,80}?):\s*(.*)$/;
4
+ const BARE_RE = /^(\d{1,2}:)?(\d{1,2}):(\d{2})\s+([^:]{1,80}?):\s*(.*)$/;
5
+ const PAREN_RE = /^([^:(]{1,80}?)\s*\((\d{1,2}:)?(\d{1,2}):(\d{2})\):\s*(.*)$/;
6
+ function toMs(h, m, s) {
7
+ const hours = h ? Number.parseInt(h, 10) : 0;
8
+ return (hours * 3600 + Number.parseInt(m, 10) * 60 + Number.parseInt(s, 10)) * 1000;
9
+ }
10
+ function parseLine(line) {
11
+ let m = BRACKET_RE.exec(line);
12
+ if (m)
13
+ return {
14
+ ms: toMs(m[1], m[2], m[3]),
15
+ speaker: m[4].trim(),
16
+ text: m[5].trim(),
17
+ };
18
+ m = BARE_RE.exec(line);
19
+ if (m)
20
+ return {
21
+ ms: toMs(m[1], m[2], m[3]),
22
+ speaker: m[4].trim(),
23
+ text: m[5].trim(),
24
+ };
25
+ m = PAREN_RE.exec(line);
26
+ if (m)
27
+ return {
28
+ ms: toMs(m[2], m[3], m[4]),
29
+ speaker: m[1].trim(),
30
+ text: m[5].trim(),
31
+ };
32
+ return null;
33
+ }
34
+ const TAIL_MS = 2000;
35
+ export function parseTextTranscript(raw, opts) {
36
+ const lines = raw.split(/\r?\n/);
37
+ const parsed = [];
38
+ for (const line of lines) {
39
+ if (line.trim() === '')
40
+ continue;
41
+ const hit = parseLine(line);
42
+ if (hit !== null) {
43
+ parsed.push(hit);
44
+ }
45
+ else if (parsed.length > 0) {
46
+ // Continuation of the previous utterance.
47
+ const prev = parsed[parsed.length - 1];
48
+ prev.text = `${prev.text} ${line.trim()}`.trim();
49
+ }
50
+ // A non-matching line before any speaker line is ignored (header/preamble).
51
+ }
52
+ if (parsed.length === 0) {
53
+ throw new CompostError('INVALID_INPUT', 'No "Name: text" lines with timestamps recognized. Expected e.g. "[00:01:23] Juan: ..." or "Juan (01:23): ...".');
54
+ }
55
+ // Assign stable speaker ids in first-seen order; first speaker = moderator.
56
+ const speakerId = new Map();
57
+ const speakers = [];
58
+ for (const p of parsed) {
59
+ if (!speakerId.has(p.speaker)) {
60
+ const id = `S${speakerId.size + 1}`;
61
+ speakerId.set(p.speaker, id);
62
+ speakers.push({
63
+ id,
64
+ name: p.speaker,
65
+ type: speakers.length === 0 ? 'moderator' : 'participant',
66
+ });
67
+ }
68
+ }
69
+ const utterances = parsed.map((p, i) => {
70
+ const next = parsed[i + 1];
71
+ const end_ms = next ? Math.max(next.ms, p.ms + 1) : p.ms + TAIL_MS;
72
+ return {
73
+ id: `U-${String(i + 1).padStart(4, '0')}`,
74
+ speaker_id: speakerId.get(p.speaker),
75
+ turn: i + 1,
76
+ start_ms: p.ms,
77
+ end_ms,
78
+ text: p.text,
79
+ };
80
+ });
81
+ return {
82
+ schema_version: '1.0',
83
+ kind: 'session',
84
+ session_id: opts.sessionId,
85
+ source: opts.source ?? `imported:${opts.sessionId}`,
86
+ language: opts.language ?? 'und',
87
+ duration_ms: utterances[utterances.length - 1]?.end_ms ?? 0,
88
+ modality: ['audio'],
89
+ speakers,
90
+ utterances,
91
+ provenance: { transcriber: 'compost-import@0.1.0' },
92
+ };
93
+ }
94
+ //# sourceMappingURL=importTranscript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importTranscript.js","sourceRoot":"","sources":["../../src/lib/importTranscript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/lib/ingest.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AA4CD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAwCzE"}
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/lib/ingest.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AA4CD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CA8CzE"}
@@ -1,9 +1,9 @@
1
1
  import { existsSync, lstatSync, readdirSync } from 'node:fs';
2
- import { join } from 'node:path';
2
+ import { join, resolve } from 'node:path';
3
3
  import { CompostError } from '../errors.js';
4
4
  import { classify } from './dispatch.js';
5
5
  import { emitAgentCreate, openSeedEvents } from './events.js';
6
- import { JobQueue, stateDbPath } from './queue.js';
6
+ import { JobQueue, stateDbPath, toSeedRelative } from './queue.js';
7
7
  const AGENT_NAME = 'ingest';
8
8
  const AGENT_VERSION = '0.1.0';
9
9
  /**
@@ -55,9 +55,12 @@ function walk(path) {
55
55
  * Each newly-queued file emits an agent-authored `create` event.
56
56
  */
57
57
  export function ingestPath(seedPath, target) {
58
- if (!existsSync(target))
58
+ // Resolve against cwd FIRST: a cwd-relative target stored verbatim would be
59
+ // re-rooted under the seed by the workers (#240) and never found.
60
+ const absTarget = resolve(target);
61
+ if (!existsSync(absTarget))
59
62
  throw new CompostError('FILE_NOT_FOUND', `No such path: ${target}`);
60
- const { files, symlinksSkipped } = walk(target);
63
+ const { files, symlinksSkipped } = walk(absTarget);
61
64
  const queue = new JobQueue(stateDbPath(seedPath));
62
65
  const events = openSeedEvents(seedPath);
63
66
  try {
@@ -71,12 +74,15 @@ export function ingestPath(seedPath, target) {
71
74
  unsupported.push(file);
72
75
  continue;
73
76
  }
74
- const { id, inserted } = queue.enqueue(d.kind, file, { category: d.category, ext: d.ext });
77
+ // Seed-relative for in-seed files (survives a seed move, #240); files
78
+ // outside the seed stay absolute — they're machine-pinned regardless.
79
+ const stored = toSeedRelative(seedPath, file);
80
+ const { id, inserted } = queue.enqueue(d.kind, stored, { category: d.category, ext: d.ext });
75
81
  if (inserted) {
76
82
  queued += 1;
77
83
  emitAgentCreate(events, {
78
84
  artifactKind: 'ingest_job',
79
- initialState: { source_path: file, kind: d.kind, category: d.category },
85
+ initialState: { source_path: stored, kind: d.kind, category: d.category },
80
86
  agentName: AGENT_NAME,
81
87
  agentVersion: AGENT_VERSION,
82
88
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/lib/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/lib/ingest.ts"],"names":[],"mappings":"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"}
@@ -20,4 +20,17 @@ export declare function diffLines(a: string, b: string): DiffLine[];
20
20
  export declare function agentsPath(seedPath: string): string;
21
21
  export declare function readJournal(seedPath: string): string;
22
22
  export declare function saveJournalVersion(seedPath: string, ts: string): void;
23
+ export type JournalSaveMode = 'git' | 'append';
24
+ export interface JournalSaveResult {
25
+ mode: JournalSaveMode;
26
+ versions: number;
27
+ }
28
+ /**
29
+ * Save a new working draft of the seed's AGENTS.md and snapshot the prior one.
30
+ * When the seed lives inside a git work tree the snapshot is a commit; otherwise
31
+ * the prior draft is recorded as a timestamped inline version so history is
32
+ * never lost. The new draft always becomes the top section either way, so the
33
+ * version/diff UI keeps working. `ts` is supplied by the caller (no clock here).
34
+ */
35
+ export declare function saveJournal(seedPath: string, newDraft: string, ts: string): JournalSaveResult;
23
36
  //# sourceMappingURL=journal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/lib/journal.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED;mDACmD;AACnD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,CAqB5F;AAED;gFACgF;AAChF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuC1D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrE"}
1
+ {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/lib/journal.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED;mDACmD;AACnD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,CAqB5F;AAED;gFACgF;AAChF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuC1D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrE;AAyBD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAA;AAE9C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,iBAAiB,CAoB7F"}
@@ -1,5 +1,6 @@
1
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { join } from 'node:path';
1
+ import { spawnSync } from 'node:child_process';
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
3
4
  // Prompt-journal version/diff logic (#62). The seed's .compost/AGENTS.md is
4
5
  // the prompt journal loops read. When git is initialized the web UI commits on
5
6
  // save; otherwise we append a timestamped version section so history is never
@@ -101,4 +102,50 @@ export function saveJournalVersion(seedPath, ts) {
101
102
  return;
102
103
  writeFileSync(p, appendVersion(readFileSync(p, 'utf8'), ts), 'utf8');
103
104
  }
105
+ /** Compose an AGENTS.md from a working draft + recorded inline versions. The
106
+ * inverse of parseVersions, so save → load round-trips. */
107
+ function composeJournal(draft, versions) {
108
+ const head = `${draft.trimEnd()}\n`;
109
+ if (versions.length === 0)
110
+ return head;
111
+ const body = versions
112
+ .map((v) => `\n<!-- compost:version ${v.ts} -->\n${v.body.trimEnd()}\n`)
113
+ .join('');
114
+ return `${head}${body}`;
115
+ }
116
+ function isGitWorkTree(dir) {
117
+ const r = spawnSync('git', ['-C', dir, 'rev-parse', '--is-inside-work-tree'], {
118
+ encoding: 'utf8',
119
+ });
120
+ return r.status === 0 && r.stdout.trim() === 'true';
121
+ }
122
+ function gitCommitFile(dir, file, message) {
123
+ spawnSync('git', ['-C', dir, 'add', '--', file], { encoding: 'utf8' });
124
+ spawnSync('git', ['-C', dir, 'commit', '-m', message, '--', file], { encoding: 'utf8' });
125
+ }
126
+ /**
127
+ * Save a new working draft of the seed's AGENTS.md and snapshot the prior one.
128
+ * When the seed lives inside a git work tree the snapshot is a commit; otherwise
129
+ * the prior draft is recorded as a timestamped inline version so history is
130
+ * never lost. The new draft always becomes the top section either way, so the
131
+ * version/diff UI keeps working. `ts` is supplied by the caller (no clock here).
132
+ */
133
+ export function saveJournal(seedPath, newDraft, ts) {
134
+ const p = agentsPath(seedPath);
135
+ mkdirSync(dirname(p), { recursive: true });
136
+ const prior = existsSync(p) ? readFileSync(p, 'utf8') : '';
137
+ const { draft: priorDraft, versions } = parseVersions(prior);
138
+ if (isGitWorkTree(seedPath)) {
139
+ // Git is the history store: write the new draft (preserving any pre-existing
140
+ // inline versions for back-compat) and commit.
141
+ writeFileSync(p, composeJournal(newDraft, versions), 'utf8');
142
+ gitCommitFile(seedPath, p, `journal: update AGENTS.md @ ${ts}`);
143
+ return { mode: 'git', versions: versions.length };
144
+ }
145
+ // Gitless: snapshot the prior draft as a timestamped inline version (newest
146
+ // first), then set the new draft on top.
147
+ const nextVersions = priorDraft.trim().length > 0 ? [{ ts, body: priorDraft }, ...versions] : versions;
148
+ writeFileSync(p, composeJournal(newDraft, nextVersions), 'utf8');
149
+ return { mode: 'append', versions: nextVersions.length };
150
+ }
104
151
  //# sourceMappingURL=journal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/lib/journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/lib/journal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type SpawnSyncReturns } from 'node:child_process';
2
+ import type { LegacyIngestRequest, LegacyIngestResponse } from '../legacy_client.js';
3
+ /** Injectable spawn surface (real `spawnSync` in prod; a fake in tests). */
4
+ export type SpawnImpl = (cmd: string, args: string[], opts: {
5
+ cwd: string;
6
+ env: NodeJS.ProcessEnv;
7
+ encoding: 'utf8';
8
+ maxBuffer: number;
9
+ }) => Pick<SpawnSyncReturns<string>, 'status' | 'stdout' | 'stderr' | 'error'>;
10
+ export interface NativeLegacyOptions {
11
+ /** Path to a Python (3.11+) interpreter in a venv with the [legacy] deps. */
12
+ python: string;
13
+ /** Directory containing the `app` package (the transcriber/ root). */
14
+ transcriberDir: string;
15
+ spawnImpl?: SpawnImpl;
16
+ }
17
+ /**
18
+ * Native (host) legacy-ingest path (#184): shell out to `app.legacy_cli` so
19
+ * PDF/DOCX/PPTX/CSV/XLSX/TXT ingest works without the Docker transcriber. Returns
20
+ * the same shape as the `/legacy-ingest` route, so the legacy-worker is agnostic
21
+ * to which path ran. Throws CompostError on spawn failure / non-zero exit.
22
+ */
23
+ export declare function legacyIngestNative(req: LegacyIngestRequest, opts: NativeLegacyOptions): LegacyIngestResponse;
24
+ //# sourceMappingURL=legacyNative.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyNative.d.ts","sourceRoot":"","sources":["../../src/lib/legacyNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAa,MAAM,oBAAoB,CAAA;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAEpF,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,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,mBAAmB,GACxB,oBAAoB,CA+CtB"}