@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,6 +1,53 @@
1
1
  import { existsSync, readdirSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { CompostError } from '../errors.js';
4
+ /**
5
+ * List a seed's sessions with lightweight counts for the seed home page and the
6
+ * sessions API. Cheap: parses each transcript.json only for top-level counts,
7
+ * tolerates sessions still queued/transcribing (has_transcript=false). Sorted
8
+ * by session id so the listing is stable.
9
+ */
10
+ export function listSessions(seedPath) {
11
+ const dir = join(seedPath, 'sessions');
12
+ if (!existsSync(dir))
13
+ return [];
14
+ const ids = readdirSync(dir, { withFileTypes: true })
15
+ .filter((e) => e.isDirectory() && !e.name.startsWith('_') && !e.name.startsWith('.'))
16
+ .map((e) => e.name)
17
+ .sort();
18
+ return ids.map((session_id) => {
19
+ const transcriptPath = join(dir, session_id, 'transcript.json');
20
+ if (!existsSync(transcriptPath)) {
21
+ return {
22
+ session_id,
23
+ has_transcript: false,
24
+ utterance_count: 0,
25
+ frame_count: 0,
26
+ duration_ms: null,
27
+ };
28
+ }
29
+ try {
30
+ const t = JSON.parse(readFileSync(transcriptPath, 'utf8'));
31
+ return {
32
+ session_id,
33
+ has_transcript: true,
34
+ utterance_count: Array.isArray(t.utterances) ? t.utterances.length : 0,
35
+ frame_count: Array.isArray(t.frames) ? t.frames.length : 0,
36
+ duration_ms: typeof t.duration_ms === 'number' ? t.duration_ms : null,
37
+ };
38
+ }
39
+ catch {
40
+ // Malformed transcript: list the session but mark it as not-yet-readable.
41
+ return {
42
+ session_id,
43
+ has_transcript: false,
44
+ utterance_count: 0,
45
+ frame_count: 0,
46
+ duration_ms: null,
47
+ };
48
+ }
49
+ });
50
+ }
4
51
  /**
5
52
  * Read a session's transcript.json plus a derived frame index. Used by the
6
53
  * `compost session` command and the `compost_get_session` MCP tool so the host
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { FetchLike } from '../llm/types.js';
2
+ import { type KeychainBackend } from './secrets.js';
2
3
  export type CheckStatus = 'ok' | 'warn' | 'fail';
3
4
  export interface SetupCheck {
4
5
  /** Stable id, e.g. "ollama", "pyannote-license". */
@@ -33,6 +34,10 @@ export interface SetupDeps {
33
34
  requiredOllamaModels?: string[];
34
35
  /** Override Apple-Silicon detection (tests). Defaults to the host arch. */
35
36
  appleSilicon?: boolean;
37
+ /** `~/.compost` root override for the secrets perms audit (tests). */
38
+ home?: string;
39
+ /** Keychain backend for HF-token resolution; `null` forces file-only (tests). */
40
+ keychain?: KeychainBackend | null;
36
41
  }
37
42
  /**
38
43
  * Run every prerequisite probe and return a checklist. Read-only: probes,
@@ -1 +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,CAkPzE"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAiC,KAAK,eAAe,EAAiB,MAAM,cAAc,CAAA;AAKjG,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;IACtB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CAClC;AAgBD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,GAAE,SAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAyTzE"}
package/dist/lib/setup.js CHANGED
@@ -4,6 +4,8 @@ import { join, resolve } from 'node:path';
4
4
  import { promisify } from 'node:util';
5
5
  import { resolveFetch } from '../llm/http.js';
6
6
  import { diagnoseNativeRuntime, isAppleSilicon, resolveNativeRuntime } from './nativeRuntime.js';
7
+ import { auditSecretsPerms, HF_ALIASES, resolveSecret } from './secrets.js';
8
+ import { checkVersionStatus, UPGRADE_COMMAND } from './version.js';
7
9
  const execFileAsync = promisify(execFile);
8
10
  const PYANNOTE_GATED_REPOS = ['pyannote/speaker-diarization-3.1', 'pyannote/segmentation-3.0'];
9
11
  const DEFAULT_REQUIRED_MODELS = ['bge-m3'];
@@ -32,6 +34,28 @@ export async function runSetup(deps = {}) {
32
34
  const transcriberUrl = (deps.transcriberUrl ?? 'http://localhost:7862').replace(/\/$/, '');
33
35
  const requiredModels = deps.requiredOllamaModels ?? DEFAULT_REQUIRED_MODELS;
34
36
  const checks = [];
37
+ // 0. Is this install current? An outdated CLI misses bundled components and
38
+ // produces failures that look like machine problems (#245 — a field user on
39
+ // an old rc spent a session debugging exactly that). Best-effort: the check
40
+ // is silently skipped offline or when the registry doesn't answer fast.
41
+ const version = await checkVersionStatus(deps.fetchImpl !== undefined ? { fetchImpl: deps.fetchImpl } : {});
42
+ if (version !== null) {
43
+ checks.push(version.behind
44
+ ? {
45
+ id: 'version',
46
+ label: 'CLI version',
47
+ status: 'warn',
48
+ detail: `${version.current} installed, ${version.latest} available — old versions miss bundled components`,
49
+ fix: UPGRADE_COMMAND,
50
+ }
51
+ : {
52
+ id: 'version',
53
+ label: 'CLI version',
54
+ status: 'ok',
55
+ detail: `${version.current} (latest)`,
56
+ fix: null,
57
+ });
58
+ }
35
59
  // 1. Ollama reachable + 2. required models present (one probe, two checks).
36
60
  let ollamaTags = null;
37
61
  try {
@@ -173,15 +197,39 @@ export async function runSetup(deps = {}) {
173
197
  });
174
198
  }
175
199
  }
176
- // 5. HuggingFace token present.
177
- const hfToken = env.HUGGINGFACE_TOKEN || env.HF_TOKEN;
178
- if (!hfToken) {
200
+ // 4c. Derived: is ANY ingest engine available? Document ingest (PDF/DOCX/…)
201
+ // rides the same engine as transcription, so a machine with neither the
202
+ // native runtime nor the Docker service cannot process a single inbox file —
203
+ // that is a FAIL, not an accumulation of warns (#242). The individual checks
204
+ // above stay warn-level because either one alone is sufficient.
205
+ const nativeOk = checks.some((c) => c.id === 'native-transcribe' && c.status === 'ok');
206
+ if (!transcriberOk && !nativeOk) {
207
+ checks.push({
208
+ id: 'ingest-engine',
209
+ label: 'Ingest engine',
210
+ status: 'fail',
211
+ detail: 'no transcription engine available — audio AND document (PDF/DOCX/…) ingest will fail',
212
+ fix: (deps.appleSilicon ?? isAppleSilicon())
213
+ ? 'compost setup (guided; or compost setup --provision-native)'
214
+ : 'compost setup (guided; or start the Docker transcriber)',
215
+ });
216
+ }
217
+ // 5. HuggingFace token present. Resolved by the documented precedence:
218
+ // env > OS keychain > ~/.compost/secrets.env (0600). A keychain- or
219
+ // file-stored token counts as "set" here just like an exported env var.
220
+ const secretsDeps = {
221
+ env,
222
+ ...(deps.home !== undefined ? { home: deps.home } : {}),
223
+ ...(deps.keychain !== undefined ? { keychain: deps.keychain } : {}),
224
+ };
225
+ const hf = resolveSecret('HUGGINGFACE_TOKEN', { ...secretsDeps, aliases: HF_ALIASES });
226
+ if (!hf) {
179
227
  checks.push({
180
228
  id: 'hf-token',
181
229
  label: 'HuggingFace token',
182
230
  status: 'warn',
183
- detail: 'HUGGINGFACE_TOKEN not set (needed for pyannote diarization)',
184
- fix: 'Create a token at hf.co/settings/tokens, then export HUGGINGFACE_TOKEN=hf_…',
231
+ detail: 'not set in env, keychain, or ~/.compost/secrets.env (needed for pyannote diarization)',
232
+ fix: 'compost secrets set HUGGINGFACE_TOKEN (or export HUGGINGFACE_TOKEN=hf_…)',
185
233
  });
186
234
  }
187
235
  else {
@@ -189,9 +237,10 @@ export async function runSetup(deps = {}) {
189
237
  id: 'hf-token',
190
238
  label: 'HuggingFace token',
191
239
  status: 'ok',
192
- detail: 'set',
240
+ detail: `set (source: ${hf.source})`,
193
241
  fix: null,
194
242
  });
243
+ const hfToken = hf.value;
195
244
  // 6. pyannote license — must be a FILE fetch, not a metadata ping (the
196
245
  // /api/models endpoint returns 200 even when the license isn't accepted).
197
246
  for (const repo of PYANNOTE_GATED_REPOS) {
@@ -247,6 +296,20 @@ export async function runSetup(deps = {}) {
247
296
  fix: 'compost init <name> (scaffolds .compost/config.toml)',
248
297
  });
249
298
  }
299
+ // 9. Secret-file permissions. A group/world-readable token file is a real
300
+ // leak, but with a one-line fix — surface it as a warn (the startup
301
+ // autoloader independently *refuses* to read an insecure secrets.env). Only
302
+ // emitted when there's something to flag; POSIX-only (Windows uses ACLs).
303
+ const permIssues = auditSecretsPerms(secretsDeps);
304
+ for (const issue of permIssues) {
305
+ checks.push({
306
+ id: `secret-perms:${issue.path}`,
307
+ label: 'Secret file permissions',
308
+ status: 'warn',
309
+ detail: `${issue.path} is ${issue.mode} — ${issue.detail}`,
310
+ fix: issue.fix,
311
+ });
312
+ }
250
313
  const ready = checks.every((c) => c.status !== 'fail');
251
314
  return { schema_version: '1.0', ready, checks };
252
315
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { FetchLike } from '../llm/types.js';
2
+ import { provisionNativeVenv } from './provisionNative.js';
3
+ import { setSecret } from './secrets.js';
4
+ import { runSetup, type SetupReport } from './setup.js';
5
+ import { saveUserConfig } from './userConfig.js';
6
+ /** Per-task routes the wizard writes for each chat-model choice. The local
7
+ * default matches the seed template's quick_chat model; the cloud routes keep
8
+ * the template's synthesis model and add a fast model for the local tasks. */
9
+ export declare const LOCAL_CHAT_MODEL = "llama3.1:8b";
10
+ export declare const CLOUD_FAST_MODEL = "anthropic:claude-haiku-4-5";
11
+ export declare const CLOUD_SYNTHESIS_MODEL = "anthropic:claude-opus-4-7";
12
+ export interface WizardIO {
13
+ say(text: string): void;
14
+ /** Yes/no with a default. */
15
+ confirm(question: string, def: boolean): Promise<boolean>;
16
+ /** Free-text with a default shown in brackets. */
17
+ ask(question: string, def?: string): Promise<string>;
18
+ /** Input that must not echo (tokens, API keys). Empty string = skipped. */
19
+ askHidden(question: string): Promise<string>;
20
+ }
21
+ export interface WizardDeps {
22
+ io: WizardIO;
23
+ cwd?: string;
24
+ env?: NodeJS.ProcessEnv;
25
+ appleSilicon?: boolean;
26
+ fetchImpl?: FetchLike;
27
+ /** Diagnostic pass (injectable for tests). */
28
+ check?: typeof runSetup;
29
+ /** Run a streaming shell command the user just confirmed (install, pull). */
30
+ run?: (cmd: string, args: string[]) => {
31
+ ok: boolean;
32
+ };
33
+ provision?: typeof provisionNativeVenv;
34
+ storeSecret?: typeof setSecret;
35
+ saveDefaults?: typeof saveUserConfig;
36
+ /** Existing seed dirs whose config.toml the wizard offers to update. */
37
+ listSeeds?: () => string[];
38
+ }
39
+ export interface WizardResult {
40
+ report: SetupReport;
41
+ actions: string[];
42
+ }
43
+ /**
44
+ * Guided setup: walk every fixable gap with a per-step confirmed fix, collect
45
+ * the secrets the pipeline needs (HF token, optional LLM key), and let the
46
+ * user pick how `compost chat` should run on this machine. Every mutation is
47
+ * proposed before it runs; declining any step just moves on. The non-TTY
48
+ * `compost setup` diagnostic is unchanged — this runs only at a terminal.
49
+ */
50
+ export declare function runSetupWizard(deps: WizardDeps): Promise<WizardResult>;
51
+ //# sourceMappingURL=setupWizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupWizard.d.ts","sourceRoot":"","sources":["../../src/lib/setupWizard.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAmB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD;;8EAE8E;AAC9E,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAC7C,eAAO,MAAM,gBAAgB,+BAA+B,CAAA;AAC5D,eAAO,MAAM,qBAAqB,8BAA8B,CAAA;AAIhE,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzD,kDAAkD;IAClD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,2EAA2E;IAC3E,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,QAAQ,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,QAAQ,CAAA;IACvB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAA;IACtD,SAAS,CAAC,EAAE,OAAO,mBAAmB,CAAA;IACtC,WAAW,CAAC,EAAE,OAAO,SAAS,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,cAAc,CAAA;IACpC,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAA;IACnB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAqBD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CA4N5E"}
@@ -0,0 +1,223 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { resolveFetch } from '../llm/http.js';
4
+ import { loadConfig, saveConfig, setConfigValue } from './config.js';
5
+ import { diagnoseNativeRuntime, isAppleSilicon } from './nativeRuntime.js';
6
+ import { provisionNativeVenv } from './provisionNative.js';
7
+ import { setSecret } from './secrets.js';
8
+ import { runSetup } from './setup.js';
9
+ import { saveUserConfig } from './userConfig.js';
10
+ /** Per-task routes the wizard writes for each chat-model choice. The local
11
+ * default matches the seed template's quick_chat model; the cloud routes keep
12
+ * the template's synthesis model and add a fast model for the local tasks. */
13
+ export const LOCAL_CHAT_MODEL = 'llama3.1:8b';
14
+ export const CLOUD_FAST_MODEL = 'anthropic:claude-haiku-4-5';
15
+ export const CLOUD_SYNTHESIS_MODEL = 'anthropic:claude-opus-4-7';
16
+ const PYANNOTE_GATED_REPOS = ['pyannote/speaker-diarization-3.1', 'pyannote/segmentation-3.0'];
17
+ function checkById(report, id) {
18
+ return report.checks.find((c) => c.id === id);
19
+ }
20
+ function notOk(report, id) {
21
+ const c = checkById(report, id);
22
+ return c !== undefined && c.status !== 'ok';
23
+ }
24
+ function statusGlyph(c) {
25
+ return c.status === 'ok' ? '✓' : c.status === 'warn' ? '!' : '✗';
26
+ }
27
+ function printReport(io, report) {
28
+ for (const c of report.checks) {
29
+ io.say(` ${statusGlyph(c)} ${c.label} — ${c.detail}`);
30
+ }
31
+ }
32
+ /**
33
+ * Guided setup: walk every fixable gap with a per-step confirmed fix, collect
34
+ * the secrets the pipeline needs (HF token, optional LLM key), and let the
35
+ * user pick how `compost chat` should run on this machine. Every mutation is
36
+ * proposed before it runs; declining any step just moves on. The non-TTY
37
+ * `compost setup` diagnostic is unchanged — this runs only at a terminal.
38
+ */
39
+ export async function runSetupWizard(deps) {
40
+ const io = deps.io;
41
+ const cwd = deps.cwd ?? process.cwd();
42
+ const env = deps.env ?? process.env;
43
+ const apple = deps.appleSilicon ?? isAppleSilicon();
44
+ const check = deps.check ?? runSetup;
45
+ const run = deps.run ?? (() => ({ ok: false }));
46
+ const provision = deps.provision ?? provisionNativeVenv;
47
+ const storeSecret = deps.storeSecret ?? setSecret;
48
+ const saveDefaults = deps.saveDefaults ?? saveUserConfig;
49
+ const fetchImpl = resolveFetch(deps.fetchImpl);
50
+ const actions = [];
51
+ io.say('compost setup — guided');
52
+ io.say(`platform: ${process.platform}/${process.arch}${apple ? ' (native transcription)' : ' (Docker transcription fallback)'}`);
53
+ io.say('');
54
+ let report = await check({ cwd, env });
55
+ printReport(io, report);
56
+ io.say('');
57
+ // ── Outdated install: fix this first — everything else may be its symptom ─
58
+ if (notOk(report, 'version')) {
59
+ const detail = checkById(report, 'version')?.detail ?? '';
60
+ io.say(`This install is outdated (${detail}).`);
61
+ if (await io.confirm('Upgrade now (npm install -g @they-juanreina/compost-cli@latest)?', true)) {
62
+ const ok = run('npm', ['install', '-g', '@they-juanreina/compost-cli@latest']).ok;
63
+ actions.push(ok ? 'upgraded CLI — rerun `compost setup` on the new version' : 'upgrade failed');
64
+ if (ok) {
65
+ io.say('Upgraded. Rerun `compost setup` so the new version takes it from here.');
66
+ return { report, actions };
67
+ }
68
+ }
69
+ }
70
+ // ── Ollama: the embeddings (and optionally chat) engine ──────────────────
71
+ if (notOk(report, 'ollama')) {
72
+ io.say('Ollama powers search embeddings and local chat. It is not running.');
73
+ const brewAvailable = process.platform === 'darwin' && run('which', ['brew']).ok;
74
+ if (brewAvailable) {
75
+ if (await io.confirm('Install and start Ollama via Homebrew (brew install ollama)?', true)) {
76
+ const installed = run('brew', ['install', 'ollama']).ok;
77
+ const started = installed && run('brew', ['services', 'start', 'ollama']).ok;
78
+ actions.push(started ? 'installed + started Ollama' : 'Ollama install attempted — check output above');
79
+ }
80
+ }
81
+ else {
82
+ io.say('Install it from https://ollama.com/download, then open the app (or run `ollama serve`).');
83
+ }
84
+ }
85
+ // ── Embedding model ───────────────────────────────────────────────────────
86
+ if (notOk(report, 'model:bge-m3')) {
87
+ if (await io.confirm('Pull the embedding model bge-m3 (~1.2 GB)?', true)) {
88
+ const ok = run('ollama', ['pull', 'bge-m3']).ok;
89
+ actions.push(ok ? 'pulled bge-m3' : 'bge-m3 pull failed — is Ollama running?');
90
+ }
91
+ }
92
+ // ── Transcription engine (also required for PDF/document ingest) ─────────
93
+ if (apple && notOk(report, 'native-transcribe')) {
94
+ io.say('');
95
+ io.say('Transcription runs natively on Apple Silicon (the same engine also ingests PDFs and documents).');
96
+ if (await io.confirm('Provision the native engine now (downloads ~1 GB of Python wheels, a few minutes)?', true)) {
97
+ try {
98
+ const result = provision({});
99
+ actions.push(`native engine: ${result.status}`);
100
+ }
101
+ catch (err) {
102
+ io.say(` provisioning failed: ${err instanceof Error ? err.message : err}`);
103
+ actions.push('native provisioning failed');
104
+ }
105
+ }
106
+ }
107
+ else if (!apple && notOk(report, 'transcriber')) {
108
+ const transcriberDir = diagnoseNativeRuntime({ env }).transcriberDir;
109
+ if (transcriberDir !== undefined && existsSync(join(transcriberDir, 'compose.yaml'))) {
110
+ io.say('');
111
+ io.say('Transcription (and PDF/document ingest) runs in Docker on this platform.');
112
+ if (await io.confirm('Build and start the transcriber container (first build downloads several GB)?', true)) {
113
+ const ok = run('docker', [
114
+ 'compose',
115
+ '-f',
116
+ join(transcriberDir, 'compose.yaml'),
117
+ 'up',
118
+ '--build',
119
+ '-d',
120
+ ]).ok;
121
+ actions.push(ok ? 'transcriber container started' : 'docker compose failed — is Docker running?');
122
+ }
123
+ }
124
+ else {
125
+ io.say('Could not locate the bundled transcriber sources — reinstall @they-juanreina/compost-cli.');
126
+ }
127
+ }
128
+ // ── HuggingFace token (audio diarization only) ────────────────────────────
129
+ if (notOk(report, 'hf-token')) {
130
+ io.say('');
131
+ io.say('Audio transcription labels who is speaking (diarization), which needs a free HuggingFace account:');
132
+ io.say(' 1. Token: https://hf.co/settings/tokens (a "read" token is enough)');
133
+ io.say(' 2. Licenses: accept on BOTH model pages, logged in as the same account —');
134
+ for (const repo of PYANNOTE_GATED_REPOS)
135
+ io.say(` https://huggingface.co/${repo}`);
136
+ io.say('PDF and document ingest do not need this — Enter skips, and `compost setup` can add it later.');
137
+ const token = (await io.askHidden('HuggingFace token (hidden, Enter to skip): ')).trim();
138
+ if (token !== '') {
139
+ const stored = storeSecret('HUGGINGFACE_TOKEN', token);
140
+ actions.push(`HF token stored in ${stored.stored_in}`);
141
+ for (const repo of PYANNOTE_GATED_REPOS) {
142
+ let accepted = false;
143
+ try {
144
+ const res = await fetchImpl(`https://huggingface.co/${repo}/resolve/main/config.yaml`, {
145
+ method: 'GET',
146
+ headers: { Authorization: `Bearer ${token}` },
147
+ });
148
+ accepted = res.ok;
149
+ }
150
+ catch {
151
+ accepted = false;
152
+ }
153
+ io.say(accepted
154
+ ? ` ✓ license accepted: ${repo}`
155
+ : ` ! license NOT accepted yet: https://huggingface.co/${repo}`);
156
+ }
157
+ }
158
+ }
159
+ // ── Chat model: how should `compost chat` answer on this machine? ────────
160
+ io.say('');
161
+ io.say('`compost chat` answers questions from your transcripts. Pick how it should run:');
162
+ io.say(` [1] local — pull ${LOCAL_CHAT_MODEL} (~5 GB) and run offline via Ollama`);
163
+ io.say(' [2] cloud — use an Anthropic API key (best quality; sends excerpts to the API)');
164
+ io.say(' [3] skip for now');
165
+ const choice = (await io.ask('Choice', '1')).trim();
166
+ let routes = null;
167
+ if (choice === '1') {
168
+ const model = (await io.ask('Local model to pull', LOCAL_CHAT_MODEL)).trim() || LOCAL_CHAT_MODEL;
169
+ const ok = run('ollama', ['pull', model]).ok;
170
+ if (ok) {
171
+ routes = {
172
+ quick_chat: `ollama:${model}`,
173
+ verification: `ollama:${model}`,
174
+ synthesis: `ollama:${model}`,
175
+ };
176
+ actions.push(`chat: local via ollama:${model}`);
177
+ io.say(' (cloud-quality synthesis can be added any time: rerun `compost setup` and pick cloud.)');
178
+ }
179
+ else {
180
+ io.say(` pull failed — is Ollama running? Rerun \`compost setup\` to retry.`);
181
+ }
182
+ }
183
+ else if (choice === '2') {
184
+ const key = (await io.askHidden('Anthropic API key (hidden): ')).trim();
185
+ if (key !== '') {
186
+ const stored = storeSecret('ANTHROPIC_API_KEY', key);
187
+ routes = {
188
+ quick_chat: CLOUD_FAST_MODEL,
189
+ verification: CLOUD_FAST_MODEL,
190
+ synthesis: CLOUD_SYNTHESIS_MODEL,
191
+ };
192
+ actions.push(`chat: cloud (key in ${stored.stored_in})`);
193
+ }
194
+ }
195
+ if (routes !== null) {
196
+ const path = saveDefaults({ defaults: routes }, env);
197
+ io.say(` routing saved to ${path} — new seeds inherit it automatically.`);
198
+ const seeds = (deps.listSeeds ?? (() => []))();
199
+ for (const seedPath of seeds) {
200
+ if (await io.confirm(`Update model routing in the existing seed ${seedPath}?`, true)) {
201
+ const raw = loadConfig(seedPath).raw;
202
+ for (const [task, route] of Object.entries(routes)) {
203
+ setConfigValue(raw, `defaults.${task}`, route);
204
+ }
205
+ saveConfig(seedPath, raw);
206
+ actions.push(`updated routing: ${seedPath}`);
207
+ }
208
+ }
209
+ }
210
+ // ── Re-check and summarize ────────────────────────────────────────────────
211
+ io.say('');
212
+ report = await check({ cwd, env });
213
+ printReport(io, report);
214
+ io.say('');
215
+ io.say(report.ready
216
+ ? 'Ready. Next steps:'
217
+ : 'Some checks still need attention (see above). Next steps:');
218
+ io.say(' compost init <study-name> # create a study');
219
+ io.say(' open Seeds/<study-name>/sessions/_inbox # drop a recording or PDF in');
220
+ io.say(' compost watch --once # process it');
221
+ return { report, actions };
222
+ }
223
+ //# sourceMappingURL=setupWizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupWizard.js","sourceRoot":"","sources":["../../src/lib/setupWizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { Transcript, TranscriptSpeaker } from './transcript.js';
2
+ /**
3
+ * Speaker labeling (#177). Diarization emits cluster ids (S0, S1, … — pyannote's
4
+ * SPEAKER_NN canonicalized to the schema's S{n} form) with name == id; this maps
5
+ * them to real names. The map is applied to transcript.json
6
+ * AND persisted to a `speakers.json` sidecar next to it, so re-transcription
7
+ * re-applies the names (diarization cluster ids are stable per session).
8
+ */
9
+ export type SpeakerType = TranscriptSpeaker['type'];
10
+ export interface SpeakerLabel {
11
+ name?: string;
12
+ type?: SpeakerType;
13
+ }
14
+ export type SpeakerMap = Record<string, SpeakerLabel>;
15
+ export declare function sidecarPath(seedPath: string, session: string): string;
16
+ /** Apply a label map to a transcript's speakers[] in place. Returns the cluster
17
+ * ids that matched a real speaker and the map keys that matched none. */
18
+ export declare function applyLabels(transcript: Transcript, map: SpeakerMap): {
19
+ applied: string[];
20
+ unmatched: string[];
21
+ };
22
+ export declare function readSidecar(path: string): SpeakerMap;
23
+ export interface LabelResult {
24
+ session: string;
25
+ applied: string[];
26
+ unmatched: string[];
27
+ transcript_path: string;
28
+ sidecar_path: string;
29
+ }
30
+ /**
31
+ * Label a session's speakers: apply the map to transcript.json, then merge it
32
+ * into the persisted speakers.json sidecar so it survives re-transcription.
33
+ */
34
+ export declare function labelSession(seedPath: string, session: string, map: SpeakerMap): LabelResult;
35
+ /**
36
+ * Re-apply a session's persisted speaker labels to a freshly-written
37
+ * transcript.json (called from the transcribe finalize step). No-op when there
38
+ * is no sidecar. Returns the cluster ids relabeled.
39
+ */
40
+ export declare function applySidecar(transcriptJsonPath: string): string[];
41
+ //# sourceMappingURL=speakers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speakers.d.ts","sourceRoot":"","sources":["../../src/lib/speakers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEpE;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAEnD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAErD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAMD;yEACyE;AACzE,wBAAgB,WAAW,CACzB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,GACd;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAY5C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAQpD;AAMD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,WAAW,CAiB5F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAE,CAUjE"}