@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.
- package/dist/commands/agreement.d.ts +3 -0
- package/dist/commands/agreement.d.ts.map +1 -0
- package/dist/commands/agreement.js +35 -0
- package/dist/commands/agreement.js.map +1 -0
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +39 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +47 -4
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/import.d.ts +3 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +59 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/jobs.d.ts +3 -0
- package/dist/commands/jobs.d.ts.map +1 -0
- package/dist/commands/jobs.js +105 -0
- package/dist/commands/jobs.js.map +1 -0
- package/dist/commands/label.d.ts +3 -0
- package/dist/commands/label.d.ts.map +1 -0
- package/dist/commands/label.js +67 -0
- package/dist/commands/label.js.map +1 -0
- package/dist/commands/models.d.ts.map +1 -1
- package/dist/commands/models.js +2 -1
- package/dist/commands/models.js.map +1 -1
- package/dist/commands/recode.d.ts +3 -0
- package/dist/commands/recode.d.ts.map +1 -0
- package/dist/commands/recode.js +60 -0
- package/dist/commands/recode.js.map +1 -0
- package/dist/commands/reindex.d.ts.map +1 -1
- package/dist/commands/reindex.js +6 -4
- package/dist/commands/reindex.js.map +1 -1
- package/dist/commands/rerun.d.ts +3 -0
- package/dist/commands/rerun.d.ts.map +1 -0
- package/dist/commands/rerun.js +91 -0
- package/dist/commands/rerun.js.map +1 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +2 -1
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/secrets.d.ts +3 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +143 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +90 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/transcribe.d.ts.map +1 -1
- package/dist/commands/transcribe.js +13 -2
- package/dist/commands/transcribe.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +29 -1
- package/dist/commands/validate.js.map +1 -1
- package/dist/engine.d.ts +23 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +32 -0
- package/dist/engine.js.map +1 -0
- package/dist/exporters/prov.d.ts +11 -0
- package/dist/exporters/prov.d.ts.map +1 -0
- package/dist/exporters/prov.js +151 -0
- package/dist/exporters/prov.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/agreement.d.ts +77 -0
- package/dist/lib/agreement.d.ts.map +1 -0
- package/dist/lib/agreement.js +261 -0
- package/dist/lib/agreement.js.map +1 -0
- package/dist/lib/artifacts.d.ts +32 -1
- package/dist/lib/artifacts.d.ts.map +1 -1
- package/dist/lib/artifacts.js +156 -22
- package/dist/lib/artifacts.js.map +1 -1
- package/dist/lib/config.d.ts +3 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/doctor.d.ts +3 -0
- package/dist/lib/doctor.d.ts.map +1 -1
- package/dist/lib/doctor.js +24 -1
- package/dist/lib/doctor.js.map +1 -1
- package/dist/lib/events.d.ts +34 -1
- package/dist/lib/events.d.ts.map +1 -1
- package/dist/lib/events.js +35 -1
- package/dist/lib/events.js.map +1 -1
- package/dist/lib/importTranscript.d.ts +16 -0
- package/dist/lib/importTranscript.d.ts.map +1 -0
- package/dist/lib/importTranscript.js +94 -0
- package/dist/lib/importTranscript.js.map +1 -0
- package/dist/lib/ingest.d.ts.map +1 -1
- package/dist/lib/ingest.js +12 -6
- package/dist/lib/ingest.js.map +1 -1
- package/dist/lib/journal.d.ts +13 -0
- package/dist/lib/journal.d.ts.map +1 -1
- package/dist/lib/journal.js +49 -2
- package/dist/lib/journal.js.map +1 -1
- package/dist/lib/legacyNative.d.ts +24 -0
- package/dist/lib/legacyNative.d.ts.map +1 -0
- package/dist/lib/legacyNative.js +51 -0
- package/dist/lib/legacyNative.js.map +1 -0
- package/dist/lib/provisionNative.js +1 -1
- package/dist/lib/provisionNative.js.map +1 -1
- package/dist/lib/queue.d.ts +25 -0
- package/dist/lib/queue.d.ts.map +1 -1
- package/dist/lib/queue.js +70 -3
- package/dist/lib/queue.js.map +1 -1
- package/dist/lib/reads.d.ts +24 -0
- package/dist/lib/reads.d.ts.map +1 -0
- package/dist/lib/reads.js +115 -0
- package/dist/lib/reads.js.map +1 -0
- package/dist/lib/recode.d.ts +19 -0
- package/dist/lib/recode.d.ts.map +1 -0
- package/dist/lib/recode.js +43 -0
- package/dist/lib/recode.js.map +1 -0
- package/dist/lib/rerun.d.ts +51 -0
- package/dist/lib/rerun.d.ts.map +1 -0
- package/dist/lib/rerun.js +166 -0
- package/dist/lib/rerun.js.map +1 -0
- package/dist/lib/retrieve.d.ts +8 -4
- package/dist/lib/retrieve.d.ts.map +1 -1
- package/dist/lib/retrieve.js +12 -2
- package/dist/lib/retrieve.js.map +1 -1
- package/dist/lib/schemas.generated.d.ts.map +1 -1
- package/dist/lib/schemas.generated.js +28 -0
- package/dist/lib/schemas.generated.js.map +1 -1
- package/dist/lib/secrets.d.ts +158 -0
- package/dist/lib/secrets.d.ts.map +1 -0
- package/dist/lib/secrets.js +507 -0
- package/dist/lib/secrets.js.map +1 -0
- package/dist/lib/seed.d.ts +5 -0
- package/dist/lib/seed.d.ts.map +1 -1
- package/dist/lib/seed.js +15 -2
- package/dist/lib/seed.js.map +1 -1
- package/dist/lib/session.d.ts +14 -0
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/session.js +47 -0
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/setup.d.ts +5 -0
- package/dist/lib/setup.d.ts.map +1 -1
- package/dist/lib/setup.js +69 -6
- package/dist/lib/setup.js.map +1 -1
- package/dist/lib/setupWizard.d.ts +51 -0
- package/dist/lib/setupWizard.d.ts.map +1 -0
- package/dist/lib/setupWizard.js +223 -0
- package/dist/lib/setupWizard.js.map +1 -0
- package/dist/lib/speakers.d.ts +41 -0
- package/dist/lib/speakers.d.ts.map +1 -0
- package/dist/lib/speakers.js +78 -0
- package/dist/lib/speakers.js.map +1 -0
- package/dist/lib/status.d.ts.map +1 -1
- package/dist/lib/status.js +21 -0
- package/dist/lib/status.js.map +1 -1
- package/dist/lib/userConfig.d.ts +22 -0
- package/dist/lib/userConfig.d.ts.map +1 -0
- package/dist/lib/userConfig.js +67 -0
- package/dist/lib/userConfig.js.map +1 -0
- package/dist/lib/validate.d.ts +18 -0
- package/dist/lib/validate.d.ts.map +1 -1
- package/dist/lib/validate.js +70 -1
- package/dist/lib/validate.js.map +1 -1
- package/dist/lib/version.d.ts +30 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +73 -0
- package/dist/lib/version.js.map +1 -0
- package/dist/llm/adapter.d.ts.map +1 -1
- package/dist/llm/adapter.js +2 -0
- package/dist/llm/adapter.js.map +1 -1
- package/dist/llm/providers/ollama.d.ts.map +1 -1
- package/dist/llm/providers/ollama.js +6 -0
- package/dist/llm/providers/ollama.js.map +1 -1
- package/dist/loops/ingest_watcher.d.ts.map +1 -1
- package/dist/loops/ingest_watcher.js +6 -3
- package/dist/loops/ingest_watcher.js.map +1 -1
- package/dist/loops/legacy_worker.d.ts +28 -1
- package/dist/loops/legacy_worker.d.ts.map +1 -1
- package/dist/loops/legacy_worker.js +81 -9
- package/dist/loops/legacy_worker.js.map +1 -1
- package/dist/loops/supervisor.d.ts +3 -0
- package/dist/loops/supervisor.d.ts.map +1 -1
- package/dist/loops/supervisor.js +11 -0
- package/dist/loops/supervisor.js.map +1 -1
- package/dist/loops/synthesis.d.ts.map +1 -1
- package/dist/loops/synthesis.js +15 -0
- package/dist/loops/synthesis.js.map +1 -1
- package/dist/loops/transcribe_worker.d.ts.map +1 -1
- package/dist/loops/transcribe_worker.js +2 -3
- package/dist/loops/transcribe_worker.js.map +1 -1
- package/dist/output.d.ts +13 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +22 -2
- package/dist/output.js.map +1 -1
- package/dist/render/human.d.ts +20 -0
- package/dist/render/human.d.ts.map +1 -0
- package/dist/render/human.js +54 -0
- package/dist/render/human.js.map +1 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +17 -2
- package/dist/router.js.map +1 -1
- package/package.json +12 -5
- package/templates/config.toml +6 -1
- package/transcriber/app/diarization.py +36 -6
- package/transcriber/app/legacy_cli.py +90 -0
- package/transcriber/app/pipeline.py +13 -7
- package/transcriber/app/prosody.py +5 -0
- package/transcriber/app/vad.py +82 -11
|
@@ -2,7 +2,9 @@ import { existsSync, readdirSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { CompostError, isCompostError } from '../errors.js';
|
|
4
4
|
import { isAppleSilicon, pickRuntime, resolveNativeRuntime } from '../lib/nativeRuntime.js';
|
|
5
|
+
import { HF_ALIASES, resolveSecret } from '../lib/secrets.js';
|
|
5
6
|
import { resolveSeedPath } from '../lib/seedResolve.js';
|
|
7
|
+
import { applySidecar } from '../lib/speakers.js';
|
|
6
8
|
import { transcribeNative } from '../lib/transcribeNative.js';
|
|
7
9
|
import { emit, emitError, getOutputOpts } from '../output.js';
|
|
8
10
|
import { writeTranscriptMd } from '../render/transcript_md.js';
|
|
@@ -56,15 +58,22 @@ export function registerTranscribe(program) {
|
|
|
56
58
|
'--python and --transcriber-dir (or set COMPOST_TRANSCRIBER_PYTHON / COMPOST_TRANSCRIBER_DIR), ' +
|
|
57
59
|
'or run `compost setup` to provision the native venv.');
|
|
58
60
|
}
|
|
61
|
+
// Resolve the HF token by the documented precedence (env > keychain >
|
|
62
|
+
// secrets.env) and pass it explicitly to the python subprocess, so a
|
|
63
|
+
// keychain-stored token works even though it isn't in process.env.
|
|
64
|
+
const hf = resolveSecret('HUGGINGFACE_TOKEN', { aliases: HF_ALIASES });
|
|
59
65
|
const resp = transcribeNative(seedPath, sessionId, source, {
|
|
60
66
|
python: native.python,
|
|
61
67
|
transcriberDir: native.transcriberDir,
|
|
62
68
|
engine: flags.engine ?? 'parakeet',
|
|
63
69
|
...(flags.model !== undefined ? { model: flags.model } : {}),
|
|
64
70
|
...(flags.language !== undefined ? { language: flags.language } : {}),
|
|
71
|
+
...(hf ? { env: { HUGGINGFACE_TOKEN: hf.value } } : {}),
|
|
65
72
|
});
|
|
66
|
-
if (existsSync(resp.transcript_path))
|
|
73
|
+
if (existsSync(resp.transcript_path)) {
|
|
74
|
+
applySidecar(resp.transcript_path); // re-apply persisted speaker names (#177)
|
|
67
75
|
writeTranscriptMd(resp.transcript_path);
|
|
76
|
+
}
|
|
68
77
|
emit({
|
|
69
78
|
status: resp.status,
|
|
70
79
|
command: 'transcribe',
|
|
@@ -83,8 +92,10 @@ export function registerTranscribe(program) {
|
|
|
83
92
|
}
|
|
84
93
|
const client = new TranscriberClient(flags.baseUrl !== undefined ? { baseUrl: flags.baseUrl } : {});
|
|
85
94
|
const resp = await client.transcribe(source, sessionId, seedPath, flags.language);
|
|
86
|
-
if (existsSync(resp.transcript_path))
|
|
95
|
+
if (existsSync(resp.transcript_path)) {
|
|
96
|
+
applySidecar(resp.transcript_path); // re-apply persisted speaker names (#177)
|
|
87
97
|
writeTranscriptMd(resp.transcript_path);
|
|
98
|
+
}
|
|
88
99
|
emit({
|
|
89
100
|
status: resp.status,
|
|
90
101
|
command: 'transcribe',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcribe.js","sourceRoot":"","sources":["../../src/commands/transcribe.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transcribe.js","sourceRoot":"","sources":["../../src/commands/transcribe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiBxC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqGvD"}
|
|
@@ -1,10 +1,38 @@
|
|
|
1
1
|
import { isCompostError } from '../errors.js';
|
|
2
|
-
import {
|
|
2
|
+
import { resolveSeedPath } from '../lib/seedResolve.js';
|
|
3
|
+
import { validateCues, validateEventsExport, validateFrames, validateSeed, validateTranscript, } from '../lib/validate.js';
|
|
3
4
|
import { emit, emitError, getOutputOpts } from '../output.js';
|
|
4
5
|
export function registerValidate(program) {
|
|
5
6
|
const validate = program
|
|
6
7
|
.command('validate')
|
|
7
8
|
.description('Validate JSON artifacts against compost schemas');
|
|
9
|
+
validate
|
|
10
|
+
.command('seed')
|
|
11
|
+
.description('Validate a whole seed: every transcript.json + normalized legacy + the event log (#174)')
|
|
12
|
+
.option('--seed <name>', 'Seed (default: the only seed under ./Seeds)')
|
|
13
|
+
.action((flags, cmd) => {
|
|
14
|
+
const out = getOutputOpts(cmd);
|
|
15
|
+
try {
|
|
16
|
+
const seedPath = resolveSeedPath(process.cwd(), flags.seed);
|
|
17
|
+
const result = validateSeed(seedPath);
|
|
18
|
+
emit({
|
|
19
|
+
status: result.ok ? 'ok' : 'invalid',
|
|
20
|
+
command: 'validate seed',
|
|
21
|
+
seed: result.seed,
|
|
22
|
+
transcripts_checked: result.transcripts.length,
|
|
23
|
+
transcripts_invalid: result.transcripts.filter((t) => !t.ok).length,
|
|
24
|
+
events: result.events,
|
|
25
|
+
invalid: result.transcripts.filter((t) => !t.ok),
|
|
26
|
+
}, out);
|
|
27
|
+
if (!result.ok)
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
if (isCompostError(err))
|
|
32
|
+
emitError(err, out);
|
|
33
|
+
throw err;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
8
36
|
validate
|
|
9
37
|
.command('transcript')
|
|
10
38
|
.description('Validate a transcript.json against transcript.schema.json (#5)')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAM7D,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,iDAAiD,CAAC,CAAA;IAEjE,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,yFAAyF,CAC1F;SACA,MAAM,CAAC,eAAe,EAAE,6CAA6C,CAAC;SACtE,MAAM,CAAC,CAAC,KAAgB,EAAE,GAAY,EAAE,EAAE;QACzC,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;YACrC,IAAI,CACF;gBACE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACpC,OAAO,EAAE,eAAe;gBACxB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,mBAAmB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;gBAC9C,mBAAmB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;gBACnE,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,EACD,GAAG,CACJ,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAC5C,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,QAAQ;SACL,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,gEAAgE,CAAC;SAC7E,QAAQ,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,CAAC,IAAY,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,CACF,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,MAAM,EAAE,EACnF,GAAG,CACJ,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAC5C,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8DAA8D,CAAC;SAC3E,QAAQ,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,CAAC,IAAY,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;YACxF,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAC5C,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qEAAqE,CAAC;SAClF,QAAQ,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,CAAC,IAAY,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;YAC1F,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAC5C,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4DAA4D,CAAC;SACzE,QAAQ,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,CAAC,IAAY,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;YAC1F,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAC5C,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
package/dist/engine.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public engine surface for in-process consumers (the Next.js web app, #119).
|
|
3
|
+
*
|
|
4
|
+
* The web UI reads via better-sqlite3 and performs every mutation through these
|
|
5
|
+
* functions — the SAME write+emit path the CLI uses — so files and provenance
|
|
6
|
+
* events never diverge between the two front-ends (ROADMAP: "mutations dispatch
|
|
7
|
+
* the CLI engine"). Nothing here is re-implemented in web/lib.
|
|
8
|
+
*
|
|
9
|
+
* Exposed as the `@they-juanreina/compost-cli/engine` subpath so importing the
|
|
10
|
+
* engine never drags in commander or the CLI program wiring.
|
|
11
|
+
*/
|
|
12
|
+
export { type Action, type ActorType, type Event, type EventInput, EventWriter, reduce, type Snapshot, SnapshotStore, } from '@they-juanreina/compost-provenance';
|
|
13
|
+
export type { Chunk, ChunkMetadata, ScoredChunk } from '@they-juanreina/compost-retrieval';
|
|
14
|
+
export { CompostError, type CompostErrorCode } from './errors.js';
|
|
15
|
+
export { type CreateCodeInput, type CreatedArtifact, type CreateHighlightInput, type CreateThemeInput, createCode, createHighlight, createTheme, defaultResearcherId, endorseArtifact, HUMAN_REF_RE, rejectArtifact, updateArtifact, } from './lib/artifacts.js';
|
|
16
|
+
export { type BlameEvent, type BlameResult, blame } from './lib/blame.js';
|
|
17
|
+
export { type AiInputBundle, type Author, artifactId, emitAgentCreate, emitCreate, emitEndorse, emitReject, emitUpdate, openSeedEvents, } from './lib/events.js';
|
|
18
|
+
export { agentsPath, type JournalSaveResult, type JournalVersion, parseVersions, readJournal, saveJournal, } from './lib/journal.js';
|
|
19
|
+
export { getArtifact, listArtifacts, type SnapshotView } from './lib/reads.js';
|
|
20
|
+
export { buildDenseRetriever, type LoadedCorpus, loadSeedCorpus, type RetrievalMode, type RetrieveResult, retrieveChunks, } from './lib/retrieve.js';
|
|
21
|
+
export { resolveSeedPath } from './lib/seedResolve.js';
|
|
22
|
+
export { getSession, listSessions, type SessionSummary, type SessionView, } from './lib/session.js';
|
|
23
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EACL,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,UAAU,EACf,WAAW,EACX,MAAM,EACN,KAAK,QAAQ,EACb,aAAa,GACd,MAAM,oCAAoC,CAAA;AAE3C,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE1F,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEjE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,UAAU,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEzE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE9E,OAAO,EACL,mBAAmB,EACnB,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAA"}
|
package/dist/engine.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public engine surface for in-process consumers (the Next.js web app, #119).
|
|
3
|
+
*
|
|
4
|
+
* The web UI reads via better-sqlite3 and performs every mutation through these
|
|
5
|
+
* functions — the SAME write+emit path the CLI uses — so files and provenance
|
|
6
|
+
* events never diverge between the two front-ends (ROADMAP: "mutations dispatch
|
|
7
|
+
* the CLI engine"). Nothing here is re-implemented in web/lib.
|
|
8
|
+
*
|
|
9
|
+
* Exposed as the `@they-juanreina/compost-cli/engine` subpath so importing the
|
|
10
|
+
* engine never drags in commander or the CLI program wiring.
|
|
11
|
+
*/
|
|
12
|
+
// ---- provenance primitives re-exported so web has a single engine import
|
|
13
|
+
export { EventWriter, reduce, SnapshotStore, } from '@they-juanreina/compost-provenance';
|
|
14
|
+
// ---- errors
|
|
15
|
+
export { CompostError } from './errors.js';
|
|
16
|
+
// ---- artifact writes: create / endorse / reject / update (#119, #121)
|
|
17
|
+
export { createCode, createHighlight, createTheme, defaultResearcherId, endorseArtifact, HUMAN_REF_RE, rejectArtifact, updateArtifact, } from './lib/artifacts.js';
|
|
18
|
+
// ---- blame: artifact lineage chain (#122)
|
|
19
|
+
export { blame } from './lib/blame.js';
|
|
20
|
+
// ---- low-level event helpers (for callers that compose their own writes)
|
|
21
|
+
export { artifactId, emitAgentCreate, emitCreate, emitEndorse, emitReject, emitUpdate, openSeedEvents, } from './lib/events.js';
|
|
22
|
+
// ---- prompt journal: AGENTS.md read/parse/save (#122)
|
|
23
|
+
export { agentsPath, parseVersions, readJournal, saveJournal, } from './lib/journal.js';
|
|
24
|
+
// ---- artifact reads: list / get current snapshots (#121 GET endpoints)
|
|
25
|
+
export { getArtifact, listArtifacts } from './lib/reads.js';
|
|
26
|
+
// ---- chat retrieval: hybrid BM25 + dense, no LLM call (#122)
|
|
27
|
+
export { buildDenseRetriever, loadSeedCorpus, retrieveChunks, } from './lib/retrieve.js';
|
|
28
|
+
// ---- seed resolution (path-traversal hardened, #211)
|
|
29
|
+
export { resolveSeedPath } from './lib/seedResolve.js';
|
|
30
|
+
// ---- session reads (#120)
|
|
31
|
+
export { getSession, listSessions, } from './lib/session.js';
|
|
32
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,2EAA2E;AAC3E,OAAO,EAKL,WAAW,EACX,MAAM,EAEN,aAAa,GACd,MAAM,oCAAoC,CAAA;AAG3C,cAAc;AACd,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAA;AACjE,wEAAwE;AACxE,OAAO,EAKL,UAAU,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,4CAA4C;AAC5C,OAAO,EAAqC,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACzE,2EAA2E;AAC3E,OAAO,EAGL,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,wDAAwD;AACxD,OAAO,EACL,UAAU,EAGV,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAA;AACzB,yEAAyE;AACzE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAqB,MAAM,gBAAgB,CAAA;AAC9E,+DAA+D;AAC/D,OAAO,EACL,mBAAmB,EAEnB,cAAc,EAGd,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,uDAAuD;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,4BAA4B;AAC5B,OAAO,EACL,UAAU,EACV,YAAY,GAGb,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ProvExport {
|
|
2
|
+
document: Record<string, unknown>;
|
|
3
|
+
entities: number;
|
|
4
|
+
activities: number;
|
|
5
|
+
agents: number;
|
|
6
|
+
inputs: number;
|
|
7
|
+
models: number;
|
|
8
|
+
tools: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function eventsToProvO(eventsDbPath: string): ProvExport;
|
|
11
|
+
//# sourceMappingURL=prov.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prov.d.ts","sourceRoot":"","sources":["../../src/exporters/prov.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAsBD,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAyH9D"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import Database from 'better-sqlite3';
|
|
3
|
+
import { CompostError } from '../errors.js';
|
|
4
|
+
const CONTEXT = {
|
|
5
|
+
prov: 'http://www.w3.org/ns/prov#',
|
|
6
|
+
compost: 'https://compost.dev/prov#',
|
|
7
|
+
provagent: 'https://compost.dev/prov-agent#',
|
|
8
|
+
xsd: 'http://www.w3.org/2001/XMLSchema#',
|
|
9
|
+
};
|
|
10
|
+
const ART = (id) => `compost:artifact/${id}`;
|
|
11
|
+
const EVT = (id) => `compost:event/${id}`;
|
|
12
|
+
const AGENT = (id) => `compost:agent/${encodeURIComponent(id)}`;
|
|
13
|
+
const INPUT = (id) => `compost:input/${id}`;
|
|
14
|
+
const MODEL = (m) => `compost:model/${encodeURIComponent(m)}`;
|
|
15
|
+
const TOOL = (id) => `compost:tool/${encodeURIComponent(id)}`;
|
|
16
|
+
function agentTypes(actorType) {
|
|
17
|
+
if (actorType === 'researcher')
|
|
18
|
+
return ['prov:Agent', 'prov:Person'];
|
|
19
|
+
if (actorType === 'ai')
|
|
20
|
+
return ['prov:Agent', 'prov:SoftwareAgent', 'provagent:AIAgent'];
|
|
21
|
+
return ['prov:Agent', 'prov:SoftwareAgent']; // agent
|
|
22
|
+
}
|
|
23
|
+
export function eventsToProvO(eventsDbPath) {
|
|
24
|
+
if (!existsSync(eventsDbPath)) {
|
|
25
|
+
throw new CompostError('FILE_NOT_FOUND', `No events.sqlite at ${eventsDbPath}`);
|
|
26
|
+
}
|
|
27
|
+
const db = new Database(eventsDbPath, { readonly: true, fileMustExist: true });
|
|
28
|
+
let rows;
|
|
29
|
+
try {
|
|
30
|
+
rows = db
|
|
31
|
+
.prepare('SELECT id, ts, artifact_kind, artifact_id, action, actor_type, actor_id, agent_name, agent_version, model, input_id, parent_event FROM events ORDER BY ts, rowid')
|
|
32
|
+
.all();
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
db.close();
|
|
36
|
+
}
|
|
37
|
+
const graph = [];
|
|
38
|
+
const artifacts = new Map(); // artifact_id → kind
|
|
39
|
+
const agents = new Map(); // actor_id → actor_type
|
|
40
|
+
const inputs = new Set();
|
|
41
|
+
const promptInputs = new Set(); // input bundles used by ai invocations
|
|
42
|
+
const aiArtifacts = new Set(); // artifacts generated by an ai invocation
|
|
43
|
+
const models = new Set();
|
|
44
|
+
const tools = new Map();
|
|
45
|
+
for (const e of rows) {
|
|
46
|
+
if (!artifacts.has(e.artifact_id))
|
|
47
|
+
artifacts.set(e.artifact_id, e.artifact_kind);
|
|
48
|
+
if (!agents.has(e.actor_id))
|
|
49
|
+
agents.set(e.actor_id, e.actor_type);
|
|
50
|
+
if (e.input_id !== null) {
|
|
51
|
+
inputs.add(e.input_id);
|
|
52
|
+
if (e.actor_type === 'ai')
|
|
53
|
+
promptInputs.add(e.input_id);
|
|
54
|
+
}
|
|
55
|
+
if (e.model !== null)
|
|
56
|
+
models.add(e.model);
|
|
57
|
+
if (e.actor_type === 'agent')
|
|
58
|
+
tools.set(e.actor_id, { name: e.agent_name, version: e.agent_version });
|
|
59
|
+
const generates = e.action === 'create' || e.action === 'link';
|
|
60
|
+
if (generates && e.actor_type === 'ai')
|
|
61
|
+
aiArtifacts.add(e.artifact_id);
|
|
62
|
+
const types = e.actor_type === 'ai' ? ['prov:Activity', 'provagent:AIModelInvocation'] : 'prov:Activity';
|
|
63
|
+
const activity = {
|
|
64
|
+
'@id': EVT(e.id),
|
|
65
|
+
'@type': types,
|
|
66
|
+
'prov:startedAtTime': { '@value': e.ts, '@type': 'xsd:dateTime' },
|
|
67
|
+
'prov:wasAssociatedWith': { '@id': AGENT(e.actor_id) },
|
|
68
|
+
'compost:action': e.action,
|
|
69
|
+
'compost:artifactKind': e.artifact_kind,
|
|
70
|
+
};
|
|
71
|
+
// create/link generate the entity; other actions use it.
|
|
72
|
+
const used = [];
|
|
73
|
+
if (generates) {
|
|
74
|
+
activity['prov:generated'] = { '@id': ART(e.artifact_id) };
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
used.push({ '@id': ART(e.artifact_id) });
|
|
78
|
+
}
|
|
79
|
+
if (e.input_id !== null)
|
|
80
|
+
used.push({ '@id': INPUT(e.input_id) });
|
|
81
|
+
if (e.actor_type === 'ai' && e.model !== null)
|
|
82
|
+
used.push({ '@id': MODEL(e.model) });
|
|
83
|
+
if (e.actor_type === 'agent')
|
|
84
|
+
used.push({ '@id': TOOL(e.actor_id) });
|
|
85
|
+
if (used.length === 1)
|
|
86
|
+
activity['prov:used'] = used[0];
|
|
87
|
+
else if (used.length > 1)
|
|
88
|
+
activity['prov:used'] = used;
|
|
89
|
+
if (e.parent_event !== null)
|
|
90
|
+
activity['prov:wasInformedBy'] = { '@id': EVT(e.parent_event) };
|
|
91
|
+
if (e.model !== null)
|
|
92
|
+
activity['compost:model'] = e.model;
|
|
93
|
+
graph.push(activity);
|
|
94
|
+
}
|
|
95
|
+
// Entities (artifacts). ai-generated artifacts are also provagent:ResponseData.
|
|
96
|
+
for (const [artifactId, kind] of artifacts) {
|
|
97
|
+
graph.push({
|
|
98
|
+
'@id': ART(artifactId),
|
|
99
|
+
'@type': aiArtifacts.has(artifactId)
|
|
100
|
+
? ['prov:Entity', 'provagent:ResponseData']
|
|
101
|
+
: 'prov:Entity',
|
|
102
|
+
'compost:kind': kind,
|
|
103
|
+
'compost:contentAddress': artifactId,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
// Agents.
|
|
107
|
+
for (const [actorId, actorType] of agents) {
|
|
108
|
+
graph.push({
|
|
109
|
+
'@id': AGENT(actorId),
|
|
110
|
+
'@type': agentTypes(actorType),
|
|
111
|
+
'compost:actorType': actorType,
|
|
112
|
+
'compost:actorId': actorId,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
// Input bundles. Those used by ai invocations are provagent:Prompt.
|
|
116
|
+
for (const inputId of inputs) {
|
|
117
|
+
graph.push({
|
|
118
|
+
'@id': INPUT(inputId),
|
|
119
|
+
'@type': promptInputs.has(inputId) ? ['prov:Entity', 'provagent:Prompt'] : 'prov:Entity',
|
|
120
|
+
'compost:kind': 'ai_input_bundle',
|
|
121
|
+
'compost:contentAddress': inputId,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// AI models referenced.
|
|
125
|
+
for (const model of models) {
|
|
126
|
+
graph.push({
|
|
127
|
+
'@id': MODEL(model),
|
|
128
|
+
'@type': ['prov:Entity', 'provagent:AIModel'],
|
|
129
|
+
'compost:model': model,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Agent tools (deterministic software actors invoked as tools).
|
|
133
|
+
for (const [actorId, meta] of tools) {
|
|
134
|
+
graph.push({
|
|
135
|
+
'@id': TOOL(actorId),
|
|
136
|
+
'@type': ['prov:Entity', 'provagent:AgentTool'],
|
|
137
|
+
'compost:agentName': meta.name,
|
|
138
|
+
'compost:agentVersion': meta.version,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
document: { '@context': CONTEXT, '@graph': graph },
|
|
143
|
+
entities: artifacts.size,
|
|
144
|
+
activities: rows.length,
|
|
145
|
+
agents: agents.size,
|
|
146
|
+
inputs: inputs.size,
|
|
147
|
+
models: models.size,
|
|
148
|
+
tools: tools.size,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=prov.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prov.js","sourceRoot":"","sources":["../../src/exporters/prov.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,wBAAsB,GAAG,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/E"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
import { loadSecretsEnv } from './lib/secrets.js';
|
|
1
2
|
import { buildProgram } from './router.js';
|
|
2
3
|
export async function run(argv = process.argv) {
|
|
4
|
+
// Load ~/.compost/secrets.env into the environment so file-stored secrets
|
|
5
|
+
// resolve everywhere an env var would (provider api_key_env, HUGGINGFACE_TOKEN,
|
|
6
|
+
// the native transcriber subprocess) without editing a shell profile. Env vars
|
|
7
|
+
// already set win; an insecure (group/world-readable) file is refused, not read.
|
|
8
|
+
loadSecretsEnv({ warn: (msg) => process.stderr.write(`${msg}\n`) });
|
|
3
9
|
const program = buildProgram();
|
|
4
10
|
await program.parseAsync(argv);
|
|
5
11
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAA0B,OAAO,CAAC,IAAI;IAC9D,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;IAC9B,MAAM,OAAO,CAAC,UAAU,CAAC,IAAgB,CAAC,CAAA;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAA0B,OAAO,CAAC,IAAI;IAC9D,0EAA0E;IAC1E,gFAAgF;IAChF,+EAA+E;IAC/E,iFAAiF;IACjF,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;IACnE,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;IAC9B,MAAM,OAAO,CAAC,UAAU,CAAC,IAAgB,CAAC,CAAA;AAC5C,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human↔machine intercoder agreement (§4).
|
|
3
|
+
*
|
|
4
|
+
* compost's *native* workflow produces endorse/reject decisions, which are
|
|
5
|
+
* reactive (the human sees the AI code first) — a κ computed on that violates κ's
|
|
6
|
+
* independence assumption. So legitimate agreement requires INDEPENDENT double
|
|
7
|
+
* coding: a researcher codes a sampled highlight set against the shared codebook
|
|
8
|
+
* WITHOUT seeing the machine's codes (`compost recode --blind`), and we compare
|
|
9
|
+
* those blind human codings to the machine codings on the doubly-coded units.
|
|
10
|
+
*
|
|
11
|
+
* A unit (highlight) can carry multiple codes, so we model each (unit, code) as a
|
|
12
|
+
* binary present/absent decision and compute, over the doubly-coded set:
|
|
13
|
+
* - Cohen's κ per code and pooled over all (unit, code) cells (2 coders),
|
|
14
|
+
* - Krippendorff's nominal α over the pooled cells (cross-check; handles the
|
|
15
|
+
* general case).
|
|
16
|
+
*/
|
|
17
|
+
export type Coder = 'human' | 'machine';
|
|
18
|
+
/** One coder asserting one code applies to one unit (highlight). */
|
|
19
|
+
export interface Coding {
|
|
20
|
+
coder: Coder;
|
|
21
|
+
unit: string;
|
|
22
|
+
code: string;
|
|
23
|
+
}
|
|
24
|
+
export interface KappaResult {
|
|
25
|
+
kappa: number | null;
|
|
26
|
+
po: number;
|
|
27
|
+
pe: number;
|
|
28
|
+
n: number;
|
|
29
|
+
}
|
|
30
|
+
export interface PerCodeAgreement {
|
|
31
|
+
code: string;
|
|
32
|
+
kappa: number | null;
|
|
33
|
+
support: number;
|
|
34
|
+
}
|
|
35
|
+
export interface AgreementReport {
|
|
36
|
+
status: 'ok' | 'insufficient';
|
|
37
|
+
doubly_coded_units: number;
|
|
38
|
+
codes: number;
|
|
39
|
+
per_code: PerCodeAgreement[];
|
|
40
|
+
pooled_kappa: number | null;
|
|
41
|
+
krippendorff_alpha: number | null;
|
|
42
|
+
interpretation: string;
|
|
43
|
+
excluded_unnamed_machine_codes: number;
|
|
44
|
+
note?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Cohen's κ for a single binary variable across paired ratings. */
|
|
47
|
+
export declare function cohensKappaBinary(a: boolean[], b: boolean[]): KappaResult;
|
|
48
|
+
/**
|
|
49
|
+
* Krippendorff's α (nominal metric) over a units × coders matrix. Cells may be
|
|
50
|
+
* null (a coder didn't code that unit). Units with fewer than two values are
|
|
51
|
+
* dropped (not pairable). General coincidence-matrix algorithm.
|
|
52
|
+
*/
|
|
53
|
+
export declare function krippendorffAlphaNominal(units: Array<Array<string | null>>): number | null;
|
|
54
|
+
export interface AgreementOptions {
|
|
55
|
+
/** Minimum doubly-coded units below which κ is statistical noise. */
|
|
56
|
+
minUnits?: number;
|
|
57
|
+
excludedUnnamedMachineCodes?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Compute agreement from a flat list of (coder, unit, code) codings. Only units
|
|
61
|
+
* coded by BOTH coders count (the doubly-coded set); the codebook is the union of
|
|
62
|
+
* codes either coder used on those units.
|
|
63
|
+
*/
|
|
64
|
+
export declare function computeAgreement(codings: Coding[], opts?: AgreementOptions): AgreementReport;
|
|
65
|
+
/**
|
|
66
|
+
* Extract codings from a seed's event log. Machine codings come from named `code`
|
|
67
|
+
* create events (actor ai/agent) via their `evidence` highlight ids; unnamed
|
|
68
|
+
* cluster codes (similarity-scanner `members`) have no shared label and are
|
|
69
|
+
* excluded (counted, never silently dropped). Human codings come from blind
|
|
70
|
+
* `coding` link events (actor researcher, payload.blind === true). Artifacts with
|
|
71
|
+
* a reject/unlink event are excluded.
|
|
72
|
+
*/
|
|
73
|
+
export declare function readCodings(eventsDbPath: string): {
|
|
74
|
+
codings: Coding[];
|
|
75
|
+
excludedUnnamedMachineCodes: number;
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=agreement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agreement.d.ts","sourceRoot":"","sources":["../../src/lib/agreement.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;AAEvC,oEAAoE;AACpE,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,IAAI,GAAG,cAAc,CAAA;IAC7B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,8BAA8B,EAAE,MAAM,CAAA;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAID,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,CAuBzE;AAID;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAiD1F;AAcD,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B,CAAC,EAAE,MAAM,CAAA;CACrC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,gBAAqB,GAAG,eAAe,CA8EhG;AAUD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG;IACjD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,2BAA2B,EAAE,MAAM,CAAA;CACpC,CAuDA"}
|