@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.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/bin/compost.js +7 -0
- package/dist/commands/_stub.d.ts +9 -0
- package/dist/commands/_stub.d.ts.map +1 -0
- package/dist/commands/_stub.js +27 -0
- package/dist/commands/_stub.js.map +1 -0
- package/dist/commands/blame.d.ts +3 -0
- package/dist/commands/blame.d.ts.map +1 -0
- package/dist/commands/blame.js +31 -0
- package/dist/commands/blame.js.map +1 -0
- package/dist/commands/chat.d.ts +8 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +99 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/code.d.ts +3 -0
- package/dist/commands/code.d.ts.map +1 -0
- package/dist/commands/code.js +70 -0
- package/dist/commands/code.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +76 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/create.d.ts +20 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +148 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/endorse.d.ts +3 -0
- package/dist/commands/endorse.d.ts.map +1 -0
- package/dist/commands/endorse.js +31 -0
- package/dist/commands/endorse.js.map +1 -0
- package/dist/commands/evals.d.ts +3 -0
- package/dist/commands/evals.d.ts.map +1 -0
- package/dist/commands/evals.js +54 -0
- package/dist/commands/evals.js.map +1 -0
- package/dist/commands/export.d.ts +3 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +54 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/ingest.d.ts +3 -0
- package/dist/commands/ingest.d.ts.map +1 -0
- package/dist/commands/ingest.js +26 -0
- package/dist/commands/ingest.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +51 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +28 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/models.d.ts +3 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +32 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/query.d.ts +3 -0
- package/dist/commands/query.d.ts.map +1 -0
- package/dist/commands/query.js +13 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/reindex.d.ts +3 -0
- package/dist/commands/reindex.d.ts.map +1 -0
- package/dist/commands/reindex.js +53 -0
- package/dist/commands/reindex.js.map +1 -0
- package/dist/commands/rescan.d.ts +3 -0
- package/dist/commands/rescan.d.ts.map +1 -0
- package/dist/commands/rescan.js +60 -0
- package/dist/commands/rescan.js.map +1 -0
- package/dist/commands/saturate.d.ts +3 -0
- package/dist/commands/saturate.d.ts.map +1 -0
- package/dist/commands/saturate.js +35 -0
- package/dist/commands/saturate.js.map +1 -0
- package/dist/commands/search.d.ts +3 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +52 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/serve.d.ts +3 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +9 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/session.d.ts +3 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +25 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +38 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/snap.d.ts +3 -0
- package/dist/commands/snap.d.ts.map +1 -0
- package/dist/commands/snap.js +27 -0
- package/dist/commands/snap.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +26 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/synthesize.d.ts +3 -0
- package/dist/commands/synthesize.d.ts.map +1 -0
- package/dist/commands/synthesize.js +13 -0
- package/dist/commands/synthesize.js.map +1 -0
- package/dist/commands/tag.d.ts +3 -0
- package/dist/commands/tag.d.ts.map +1 -0
- package/dist/commands/tag.js +46 -0
- package/dist/commands/tag.js.map +1 -0
- package/dist/commands/transcribe.d.ts +3 -0
- package/dist/commands/transcribe.d.ts.map +1 -0
- package/dist/commands/transcribe.js +110 -0
- package/dist/commands/transcribe.js.map +1 -0
- package/dist/commands/validate.d.ts +3 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +81 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/watch.d.ts +3 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +50 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +12 -0
- package/dist/errors.js.map +1 -0
- package/dist/exporters/csv.d.ts +8 -0
- package/dist/exporters/csv.d.ts.map +1 -0
- package/dist/exporters/csv.js +44 -0
- package/dist/exporters/csv.js.map +1 -0
- package/dist/exporters/eaf.d.ts +3 -0
- package/dist/exporters/eaf.d.ts.map +1 -0
- package/dist/exporters/eaf.js +91 -0
- package/dist/exporters/eaf.js.map +1 -0
- package/dist/exporters/html.d.ts +8 -0
- package/dist/exporters/html.d.ts.map +1 -0
- package/dist/exporters/html.js +47 -0
- package/dist/exporters/html.js.map +1 -0
- package/dist/exporters/md.d.ts +3 -0
- package/dist/exporters/md.d.ts.map +1 -0
- package/dist/exporters/md.js +43 -0
- package/dist/exporters/md.js.map +1 -0
- package/dist/exporters/pdf.d.ts +9 -0
- package/dist/exporters/pdf.d.ts.map +1 -0
- package/dist/exporters/pdf.js +40 -0
- package/dist/exporters/pdf.js.map +1 -0
- package/dist/exporters/report.d.ts +43 -0
- package/dist/exporters/report.d.ts.map +1 -0
- package/dist/exporters/report.js +49 -0
- package/dist/exporters/report.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/legacy_client.d.ts +38 -0
- package/dist/legacy_client.d.ts.map +1 -0
- package/dist/legacy_client.js +44 -0
- package/dist/legacy_client.js.map +1 -0
- package/dist/lib/answerSchema.d.ts +2 -0
- package/dist/lib/answerSchema.d.ts.map +1 -0
- package/dist/lib/answerSchema.js +27 -0
- package/dist/lib/answerSchema.js.map +1 -0
- package/dist/lib/artifacts.d.ts +64 -0
- package/dist/lib/artifacts.d.ts.map +1 -0
- package/dist/lib/artifacts.js +254 -0
- package/dist/lib/artifacts.js.map +1 -0
- package/dist/lib/blame.d.ts +30 -0
- package/dist/lib/blame.d.ts.map +1 -0
- package/dist/lib/blame.js +164 -0
- package/dist/lib/blame.js.map +1 -0
- package/dist/lib/canonicalSessions.d.ts +24 -0
- package/dist/lib/canonicalSessions.d.ts.map +1 -0
- package/dist/lib/canonicalSessions.js +48 -0
- package/dist/lib/canonicalSessions.js.map +1 -0
- package/dist/lib/chat.d.ts +24 -0
- package/dist/lib/chat.d.ts.map +1 -0
- package/dist/lib/chat.js +50 -0
- package/dist/lib/chat.js.map +1 -0
- package/dist/lib/config.d.ts +45 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +143 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/dispatch.d.ts +10 -0
- package/dist/lib/dispatch.d.ts.map +1 -0
- package/dist/lib/dispatch.js +31 -0
- package/dist/lib/dispatch.js.map +1 -0
- package/dist/lib/doctor.d.ts +19 -0
- package/dist/lib/doctor.d.ts.map +1 -0
- package/dist/lib/doctor.js +43 -0
- package/dist/lib/doctor.js.map +1 -0
- package/dist/lib/events.d.ts +42 -0
- package/dist/lib/events.d.ts.map +1 -0
- package/dist/lib/events.js +57 -0
- package/dist/lib/events.js.map +1 -0
- package/dist/lib/export.d.ts +14 -0
- package/dist/lib/export.d.ts.map +1 -0
- package/dist/lib/export.js +36 -0
- package/dist/lib/export.js.map +1 -0
- package/dist/lib/ingest.d.ts +21 -0
- package/dist/lib/ingest.d.ts.map +1 -0
- package/dist/lib/ingest.js +68 -0
- package/dist/lib/ingest.js.map +1 -0
- package/dist/lib/journal.d.ts +23 -0
- package/dist/lib/journal.d.ts.map +1 -0
- package/dist/lib/journal.js +95 -0
- package/dist/lib/journal.js.map +1 -0
- package/dist/lib/migrate.d.ts +29 -0
- package/dist/lib/migrate.d.ts.map +1 -0
- package/dist/lib/migrate.js +117 -0
- package/dist/lib/migrate.js.map +1 -0
- package/dist/lib/nativeRuntime.d.ts +46 -0
- package/dist/lib/nativeRuntime.d.ts.map +1 -0
- package/dist/lib/nativeRuntime.js +61 -0
- package/dist/lib/nativeRuntime.js.map +1 -0
- package/dist/lib/provisionNative.d.ts +46 -0
- package/dist/lib/provisionNative.d.ts.map +1 -0
- package/dist/lib/provisionNative.js +105 -0
- package/dist/lib/provisionNative.js.map +1 -0
- package/dist/lib/queue.d.ts +36 -0
- package/dist/lib/queue.d.ts.map +1 -0
- package/dist/lib/queue.js +102 -0
- package/dist/lib/queue.js.map +1 -0
- package/dist/lib/retrieve.d.ts +51 -0
- package/dist/lib/retrieve.d.ts.map +1 -0
- package/dist/lib/retrieve.js +92 -0
- package/dist/lib/retrieve.js.map +1 -0
- package/dist/lib/saturate.d.ts +21 -0
- package/dist/lib/saturate.d.ts.map +1 -0
- package/dist/lib/saturate.js +132 -0
- package/dist/lib/saturate.js.map +1 -0
- package/dist/lib/schemas.generated.d.ts +15 -0
- package/dist/lib/schemas.generated.d.ts.map +1 -0
- package/dist/lib/schemas.generated.js +975 -0
- package/dist/lib/schemas.generated.js.map +1 -0
- package/dist/lib/seed.d.ts +16 -0
- package/dist/lib/seed.d.ts.map +1 -0
- package/dist/lib/seed.js +64 -0
- package/dist/lib/seed.js.map +1 -0
- package/dist/lib/seedResolve.d.ts +6 -0
- package/dist/lib/seedResolve.d.ts.map +1 -0
- package/dist/lib/seedResolve.js +27 -0
- package/dist/lib/seedResolve.js.map +1 -0
- package/dist/lib/session.d.ts +19 -0
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/lib/session.js +61 -0
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/setup.d.ts +44 -0
- package/dist/lib/setup.d.ts.map +1 -0
- package/dist/lib/setup.js +249 -0
- package/dist/lib/setup.js.map +1 -0
- package/dist/lib/snap.d.ts +15 -0
- package/dist/lib/snap.d.ts.map +1 -0
- package/dist/lib/snap.js +115 -0
- package/dist/lib/snap.js.map +1 -0
- package/dist/lib/status.d.ts +39 -0
- package/dist/lib/status.d.ts.map +1 -0
- package/dist/lib/status.js +174 -0
- package/dist/lib/status.js.map +1 -0
- package/dist/lib/tagcode.d.ts +26 -0
- package/dist/lib/tagcode.d.ts.map +1 -0
- package/dist/lib/tagcode.js +231 -0
- package/dist/lib/tagcode.js.map +1 -0
- package/dist/lib/templates.d.ts +3 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +21 -0
- package/dist/lib/templates.js.map +1 -0
- package/dist/lib/transcribeNative.d.ts +44 -0
- package/dist/lib/transcribeNative.d.ts.map +1 -0
- package/dist/lib/transcribeNative.js +53 -0
- package/dist/lib/transcribeNative.js.map +1 -0
- package/dist/lib/transcript.d.ts +68 -0
- package/dist/lib/transcript.d.ts.map +1 -0
- package/dist/lib/transcript.js +10 -0
- package/dist/lib/transcript.js.map +1 -0
- package/dist/lib/validate.d.ts +16 -0
- package/dist/lib/validate.d.ts.map +1 -0
- package/dist/lib/validate.js +155 -0
- package/dist/lib/validate.js.map +1 -0
- package/dist/llm/adapter.d.ts +33 -0
- package/dist/llm/adapter.d.ts.map +1 -0
- package/dist/llm/adapter.js +106 -0
- package/dist/llm/adapter.js.map +1 -0
- package/dist/llm/http.d.ts +9 -0
- package/dist/llm/http.d.ts.map +1 -0
- package/dist/llm/http.js +56 -0
- package/dist/llm/http.js.map +1 -0
- package/dist/llm/providers/anthropic.d.ts +14 -0
- package/dist/llm/providers/anthropic.d.ts.map +1 -0
- package/dist/llm/providers/anthropic.js +66 -0
- package/dist/llm/providers/anthropic.js.map +1 -0
- package/dist/llm/providers/lmstudio.d.ts +7 -0
- package/dist/llm/providers/lmstudio.d.ts.map +1 -0
- package/dist/llm/providers/lmstudio.js +8 -0
- package/dist/llm/providers/lmstudio.js.map +1 -0
- package/dist/llm/providers/ollama.d.ts +12 -0
- package/dist/llm/providers/ollama.d.ts.map +1 -0
- package/dist/llm/providers/ollama.js +87 -0
- package/dist/llm/providers/ollama.js.map +1 -0
- package/dist/llm/providers/openai.d.ts +7 -0
- package/dist/llm/providers/openai.d.ts.map +1 -0
- package/dist/llm/providers/openai.js +8 -0
- package/dist/llm/providers/openai.js.map +1 -0
- package/dist/llm/providers/openai_compatible.d.ts +18 -0
- package/dist/llm/providers/openai_compatible.d.ts.map +1 -0
- package/dist/llm/providers/openai_compatible.js +70 -0
- package/dist/llm/providers/openai_compatible.js.map +1 -0
- package/dist/llm/types.d.ts +60 -0
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +2 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/logging.d.ts +22 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +58 -0
- package/dist/logging.js.map +1 -0
- package/dist/loops/embed_worker.d.ts +44 -0
- package/dist/loops/embed_worker.d.ts.map +1 -0
- package/dist/loops/embed_worker.js +144 -0
- package/dist/loops/embed_worker.js.map +1 -0
- package/dist/loops/eval_grader.d.ts +19 -0
- package/dist/loops/eval_grader.d.ts.map +1 -0
- package/dist/loops/eval_grader.js +22 -0
- package/dist/loops/eval_grader.js.map +1 -0
- package/dist/loops/ingest_watcher.d.ts +17 -0
- package/dist/loops/ingest_watcher.d.ts.map +1 -0
- package/dist/loops/ingest_watcher.js +66 -0
- package/dist/loops/ingest_watcher.js.map +1 -0
- package/dist/loops/legacy_worker.d.ts +26 -0
- package/dist/loops/legacy_worker.d.ts.map +1 -0
- package/dist/loops/legacy_worker.js +102 -0
- package/dist/loops/legacy_worker.js.map +1 -0
- package/dist/loops/supervisor.d.ts +71 -0
- package/dist/loops/supervisor.d.ts.map +1 -0
- package/dist/loops/supervisor.js +122 -0
- package/dist/loops/supervisor.js.map +1 -0
- package/dist/loops/synthesis.d.ts +31 -0
- package/dist/loops/synthesis.d.ts.map +1 -0
- package/dist/loops/synthesis.js +71 -0
- package/dist/loops/synthesis.js.map +1 -0
- package/dist/loops/transcribe_worker.d.ts +22 -0
- package/dist/loops/transcribe_worker.d.ts.map +1 -0
- package/dist/loops/transcribe_worker.js +77 -0
- package/dist/loops/transcribe_worker.js.map +1 -0
- package/dist/output.d.ts +8 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +26 -0
- package/dist/output.js.map +1 -0
- package/dist/render/transcript_md.d.ts +5 -0
- package/dist/render/transcript_md.d.ts.map +1 -0
- package/dist/render/transcript_md.js +14 -0
- package/dist/render/transcript_md.js.map +1 -0
- package/dist/router.d.ts +3 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +68 -0
- package/dist/router.js.map +1 -0
- package/dist/transcriber_client.d.ts +42 -0
- package/dist/transcriber_client.d.ts.map +1 -0
- package/dist/transcriber_client.js +72 -0
- package/dist/transcriber_client.js.map +1 -0
- package/package.json +45 -0
- package/templates/AGENTS.md +25 -0
- package/templates/config.toml +56 -0
- package/templates/sample-seed/codebook/desire-for-manual-override.md +8 -0
- package/templates/sample-seed/codebook/distrust-of-automation.md +8 -0
- package/templates/sample-seed/highlights/H-001.md +9 -0
- package/templates/sample-seed/highlights/H-002.md +9 -0
- package/templates/sample-seed/seed.md +17 -0
- package/templates/sample-seed/sessions/S001/transcript.json +74 -0
- package/templates/sample-seed/synthesis/themes/control-earns-trust.md +13 -0
- 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"}
|
package/dist/lib/seed.js
ADDED
|
@@ -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"}
|