cjm-transcript-decomp-core 0.0.1__tar.gz → 0.0.2__tar.gz
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.
- {cjm_transcript_decomp_core-0.0.1/cjm_transcript_decomp_core.egg-info → cjm_transcript_decomp_core-0.0.2}/PKG-INFO +4 -46
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/README.md +2 -44
- cjm_transcript_decomp_core-0.0.2/cjm_transcript_decomp_core/__init__.py +1 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core/pipeline.py +16 -3
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2/cjm_transcript_decomp_core.egg-info}/PKG-INFO +4 -46
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core.egg-info/requires.txt +1 -1
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/pyproject.toml +1 -1
- cjm_transcript_decomp_core-0.0.1/cjm_transcript_decomp_core/__init__.py +0 -1
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/LICENSE +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/MANIFEST.in +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core/alignment.py +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core/cli.py +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core/graph.py +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core/models.py +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core.egg-info/SOURCES.txt +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core.egg-info/dependency_links.txt +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core.egg-info/entry_points.txt +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/cjm_transcript_decomp_core.egg-info/top_level.txt +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/setup.cfg +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/tests/test_alignment.py +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/tests/test_cli.py +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/tests/test_graph.py +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/tests/test_models.py +0 -0
- {cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/tests/test_pipeline.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cjm-transcript-decomp-core
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.2
|
|
4
4
|
Summary: A frontend-agnostic core for the transcript decomposition workflow — composes isolated capability workers (forced alignment, VAD, graph storage) into a headless pipeline that decomposes transcription run manifests into a VAD-aligned context-graph spine with traceable provenance, and a CLI as its first driver.
|
|
5
5
|
Author-email: "Christian J. Mills" <9126128+cj-mills@users.noreply.github.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -13,7 +13,7 @@ License-File: LICENSE
|
|
|
13
13
|
Requires-Dist: cjm_substrate>=0.0.51
|
|
14
14
|
Requires-Dist: cjm_context_graph_primitives>=0.0.12
|
|
15
15
|
Requires-Dist: cjm_capability_primitives>=0.0.10
|
|
16
|
-
Requires-Dist: cjm-context-graph-layer>=0.0.
|
|
16
|
+
Requires-Dist: cjm-context-graph-layer>=0.0.10
|
|
17
17
|
Requires-Dist: cjm-transcript-graph-schema>=0.0.7
|
|
18
18
|
Dynamic: license-file
|
|
19
19
|
|
|
@@ -26,15 +26,10 @@ A frontend-agnostic core for the transcript decomposition workflow — composes
|
|
|
26
26
|
## Modules
|
|
27
27
|
|
|
28
28
|
- **`cjm_transcript_decomp_core.alignment`** — Pure forced-alignment logic (no capability calls): map FA words back to character spans in the original text, assign words to VAD chunks by timestamp, and build one text segment per VAD chunk. Extracted from the page-centric ForcedAlignmentService (Tier-1 logic).
|
|
29
|
-
- **`cjm_transcript_decomp_core.cli`** — The CLI driver — the decomposition core's first (and currently only) frontend.
|
|
29
|
+
- **`cjm_transcript_decomp_core.cli`** — The CLI driver — the decomposition core's first (and currently only) frontend.
|
|
30
30
|
- **`cjm_transcript_decomp_core.graph`** — Graph-spine EXTENSION + skeptical-lens verification (stage 5, CR-18 revolution 2). Decomp no longer creates a Document: it RECOMPUTES the transcription-emitted root's deterministic node ids from the consumed manifest (no search), verifies the root exists, and attaches the fine Segment spine under the existing AudioSegment nodes — PART_OF to the owning rendition, STARTS_WITH per rendition (the coarse-seam jump anchor), source-wide NEXT. Each Segment carries the audio TimeSlice ref plus per-transcriber CharSlice refs into the Transcript nodes (the D4/P10 framing, finally expressible). Commit goes through the layer's idempotent extend_graph.
|
|
31
31
|
- **`cjm_transcript_decomp_core.models`** — Lean data shapes for the transcript-decomposition pipeline: in-core mirrors of the forced-alignment / VAD / text DTOs (no FastHTML deps), run configuration, the committed graph-segment carrier, and the decomposition run manifest (proto-bundle).
|
|
32
32
|
- **`cjm_transcript_decomp_core.pipeline`** — The headless decomposition pipeline (stage 5: decomp is an EXTENDER). Load a transcription run manifest, verify the transcription-emitted graph root exists (the graph begins at transcription), then per source per pipeline-segment run VAD + per-transcriber forced alignment, build one aligned segment per VAD chunk with per-transcriber text variants, and attach the fine spine under the existing AudioSegment nodes via the layer's idempotent extend_graph — with HITL approval seams between alignment, commit, and the next source.
|
|
33
|
-
- **`tests.test_alignment`** — Tests for cjm_transcript_decomp_core.alignment — pure forced-alignment logic.
|
|
34
|
-
- **`tests.test_graph`** — Tests for cjm_transcript_decomp_core.graph — fine-spine extension payload.
|
|
35
|
-
- **`tests.test_models`** — Tests for cjm_transcript_decomp_core.models — decomposition data shapes.
|
|
36
|
-
- **`tests_manual.measure_cold_fanout_overlap_e2e`** — Cold-run M×(VAD ∥ T×FA) fan-out overlap measurement (stage-5 closeout;
|
|
37
|
-
- **`tests_manual.validate_stage7_volume_journal_e2e`** — Stage-7 stress part 6 — volume regression on the REAL corpus.
|
|
38
33
|
|
|
39
34
|
## API
|
|
40
35
|
|
|
@@ -83,43 +78,6 @@ A frontend-agnostic core for the transcript decomposition workflow — composes
|
|
|
83
78
|
- `submit_and_wait` _function_ — Submit one capability job, wait for it, and return its result (raise on failure).
|
|
84
79
|
- `vad_chunks_from_result` _function_ — Normalize a typed VAD result into segment-local VAD chunks.
|
|
85
80
|
|
|
86
|
-
### `tests.test_alignment`
|
|
87
|
-
|
|
88
|
-
- `test_assign_words_to_chunks_by_timestamp` _function_
|
|
89
|
-
- `test_build_segments_per_chunk` _function_
|
|
90
|
-
- `test_empty_chunk_yields_empty_segment_warning` _function_
|
|
91
|
-
- `test_map_fa_words_to_text_spans` _function_
|
|
92
|
-
|
|
93
|
-
### `tests.test_graph`
|
|
94
|
-
|
|
95
|
-
- `test_edge_topology_spans_coarse_boundary` _function_
|
|
96
|
-
- `test_extension_payload_deterministic_ids` _function_
|
|
97
|
-
- `test_preprocessed_manifest_distinct_renditions_same_boundaries` _function_
|
|
98
|
-
- `test_provenance_refs_and_text_from` _function_
|
|
99
|
-
- `test_resolve_root_ids_recomputation` _function_
|
|
100
|
-
|
|
101
|
-
### `tests.test_models`
|
|
102
|
-
|
|
103
|
-
- `test_faword_from_wire_tolerates_extra_keys` _function_
|
|
104
|
-
- `test_manifest_save_round_trip` _function_
|
|
105
|
-
- `test_manifest_shape_and_run_id` _function_
|
|
106
|
-
- `test_stage5_segment_shape` _function_
|
|
107
|
-
- `test_vad_chunk_duration` _function_
|
|
108
|
-
|
|
109
|
-
### `tests_manual.measure_cold_fanout_overlap_e2e`
|
|
110
|
-
|
|
111
|
-
- `lane_intervals` _function_ — (start, end) UTC intervals for completed jobs of one instance.
|
|
112
|
-
- `main` _function_
|
|
113
|
-
- `merge` _function_ — Merge overlapping intervals so a side can't double-count itself.
|
|
114
|
-
- `overlap_seconds` _function_ — Total seconds where any interval of A overlaps any interval of B.
|
|
115
|
-
- `self_overlap_max` _function_ — Max simultaneously in-flight jobs within one lane + seconds at depth >= 2.
|
|
116
|
-
|
|
117
|
-
### `tests_manual.validate_stage7_volume_journal_e2e`
|
|
118
|
-
|
|
119
|
-
- `checkpoint_copy` _function_ — Checkpoint-then-copy (the stage-3 G3 backup discipline — never copy
|
|
120
|
-
- `journal_rows` _function_
|
|
121
|
-
- `main` _function_
|
|
122
|
-
|
|
123
81
|
## Dependencies
|
|
124
82
|
|
|
125
|
-
**Depends on:** `cjm-substrate`
|
|
83
|
+
**Depends on:** `cjm-capability-primitives`, `cjm-context-graph-layer`, `cjm-context-graph-primitives`, `cjm-substrate`, `cjm-transcript-graph-schema`
|
|
@@ -7,15 +7,10 @@ A frontend-agnostic core for the transcript decomposition workflow — composes
|
|
|
7
7
|
## Modules
|
|
8
8
|
|
|
9
9
|
- **`cjm_transcript_decomp_core.alignment`** — Pure forced-alignment logic (no capability calls): map FA words back to character spans in the original text, assign words to VAD chunks by timestamp, and build one text segment per VAD chunk. Extracted from the page-centric ForcedAlignmentService (Tier-1 logic).
|
|
10
|
-
- **`cjm_transcript_decomp_core.cli`** — The CLI driver — the decomposition core's first (and currently only) frontend.
|
|
10
|
+
- **`cjm_transcript_decomp_core.cli`** — The CLI driver — the decomposition core's first (and currently only) frontend.
|
|
11
11
|
- **`cjm_transcript_decomp_core.graph`** — Graph-spine EXTENSION + skeptical-lens verification (stage 5, CR-18 revolution 2). Decomp no longer creates a Document: it RECOMPUTES the transcription-emitted root's deterministic node ids from the consumed manifest (no search), verifies the root exists, and attaches the fine Segment spine under the existing AudioSegment nodes — PART_OF to the owning rendition, STARTS_WITH per rendition (the coarse-seam jump anchor), source-wide NEXT. Each Segment carries the audio TimeSlice ref plus per-transcriber CharSlice refs into the Transcript nodes (the D4/P10 framing, finally expressible). Commit goes through the layer's idempotent extend_graph.
|
|
12
12
|
- **`cjm_transcript_decomp_core.models`** — Lean data shapes for the transcript-decomposition pipeline: in-core mirrors of the forced-alignment / VAD / text DTOs (no FastHTML deps), run configuration, the committed graph-segment carrier, and the decomposition run manifest (proto-bundle).
|
|
13
13
|
- **`cjm_transcript_decomp_core.pipeline`** — The headless decomposition pipeline (stage 5: decomp is an EXTENDER). Load a transcription run manifest, verify the transcription-emitted graph root exists (the graph begins at transcription), then per source per pipeline-segment run VAD + per-transcriber forced alignment, build one aligned segment per VAD chunk with per-transcriber text variants, and attach the fine spine under the existing AudioSegment nodes via the layer's idempotent extend_graph — with HITL approval seams between alignment, commit, and the next source.
|
|
14
|
-
- **`tests.test_alignment`** — Tests for cjm_transcript_decomp_core.alignment — pure forced-alignment logic.
|
|
15
|
-
- **`tests.test_graph`** — Tests for cjm_transcript_decomp_core.graph — fine-spine extension payload.
|
|
16
|
-
- **`tests.test_models`** — Tests for cjm_transcript_decomp_core.models — decomposition data shapes.
|
|
17
|
-
- **`tests_manual.measure_cold_fanout_overlap_e2e`** — Cold-run M×(VAD ∥ T×FA) fan-out overlap measurement (stage-5 closeout;
|
|
18
|
-
- **`tests_manual.validate_stage7_volume_journal_e2e`** — Stage-7 stress part 6 — volume regression on the REAL corpus.
|
|
19
14
|
|
|
20
15
|
## API
|
|
21
16
|
|
|
@@ -64,43 +59,6 @@ A frontend-agnostic core for the transcript decomposition workflow — composes
|
|
|
64
59
|
- `submit_and_wait` _function_ — Submit one capability job, wait for it, and return its result (raise on failure).
|
|
65
60
|
- `vad_chunks_from_result` _function_ — Normalize a typed VAD result into segment-local VAD chunks.
|
|
66
61
|
|
|
67
|
-
### `tests.test_alignment`
|
|
68
|
-
|
|
69
|
-
- `test_assign_words_to_chunks_by_timestamp` _function_
|
|
70
|
-
- `test_build_segments_per_chunk` _function_
|
|
71
|
-
- `test_empty_chunk_yields_empty_segment_warning` _function_
|
|
72
|
-
- `test_map_fa_words_to_text_spans` _function_
|
|
73
|
-
|
|
74
|
-
### `tests.test_graph`
|
|
75
|
-
|
|
76
|
-
- `test_edge_topology_spans_coarse_boundary` _function_
|
|
77
|
-
- `test_extension_payload_deterministic_ids` _function_
|
|
78
|
-
- `test_preprocessed_manifest_distinct_renditions_same_boundaries` _function_
|
|
79
|
-
- `test_provenance_refs_and_text_from` _function_
|
|
80
|
-
- `test_resolve_root_ids_recomputation` _function_
|
|
81
|
-
|
|
82
|
-
### `tests.test_models`
|
|
83
|
-
|
|
84
|
-
- `test_faword_from_wire_tolerates_extra_keys` _function_
|
|
85
|
-
- `test_manifest_save_round_trip` _function_
|
|
86
|
-
- `test_manifest_shape_and_run_id` _function_
|
|
87
|
-
- `test_stage5_segment_shape` _function_
|
|
88
|
-
- `test_vad_chunk_duration` _function_
|
|
89
|
-
|
|
90
|
-
### `tests_manual.measure_cold_fanout_overlap_e2e`
|
|
91
|
-
|
|
92
|
-
- `lane_intervals` _function_ — (start, end) UTC intervals for completed jobs of one instance.
|
|
93
|
-
- `main` _function_
|
|
94
|
-
- `merge` _function_ — Merge overlapping intervals so a side can't double-count itself.
|
|
95
|
-
- `overlap_seconds` _function_ — Total seconds where any interval of A overlaps any interval of B.
|
|
96
|
-
- `self_overlap_max` _function_ — Max simultaneously in-flight jobs within one lane + seconds at depth >= 2.
|
|
97
|
-
|
|
98
|
-
### `tests_manual.validate_stage7_volume_journal_e2e`
|
|
99
|
-
|
|
100
|
-
- `checkpoint_copy` _function_ — Checkpoint-then-copy (the stage-3 G3 backup discipline — never copy
|
|
101
|
-
- `journal_rows` _function_
|
|
102
|
-
- `main` _function_
|
|
103
|
-
|
|
104
62
|
## Dependencies
|
|
105
63
|
|
|
106
|
-
**Depends on:** `cjm-substrate`
|
|
64
|
+
**Depends on:** `cjm-capability-primitives`, `cjm-context-graph-layer`, `cjm-context-graph-primitives`, `cjm-substrate`, `cjm-transcript-graph-schema`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.0.2"
|
|
@@ -10,7 +10,8 @@ from typing import Any, Dict, List, Optional, Tuple
|
|
|
10
10
|
from cjm_capability_primitives.forced_alignment import ForcedAlignResult
|
|
11
11
|
from cjm_capability_primitives.vad import VADResult
|
|
12
12
|
from cjm_context_graph_layer.declare import Derivation, derivation_to_graph
|
|
13
|
-
from cjm_context_graph_layer.
|
|
13
|
+
from cjm_context_graph_layer.journal import journal_extend, sidecar_journal_path
|
|
14
|
+
from cjm_context_graph_layer.ops import graph_task
|
|
14
15
|
from cjm_substrate.core.empirical_store import compute_config_hash
|
|
15
16
|
from cjm_substrate.core.journal_store import JournalEvent, SubstrateEventType
|
|
16
17
|
from cjm_substrate.core.manager import CapabilityManager
|
|
@@ -380,6 +381,10 @@ async def run_decomp(
|
|
|
380
381
|
capabilities=collect_capability_info(manager, [cfg.vad_capability, cfg.fa_capability, cfg.graph_capability]),
|
|
381
382
|
)
|
|
382
383
|
vad_config_hash = str((manifest.capabilities.get(cfg.vad_capability) or {}).get("config_hash") or "")
|
|
384
|
+
# Pipeline writes append through to the graph db's SIDECAR journal (DEC ccbab9f5 /
|
|
385
|
+
# finding 4219da27): unjournaled ingestion would erode db-rebuildability.
|
|
386
|
+
graph_db_path = (manifest.capabilities.get(cfg.graph_capability) or {}).get("db_path")
|
|
387
|
+
graph_journal_path = sidecar_journal_path(str(graph_db_path)) if graph_db_path else None
|
|
383
388
|
|
|
384
389
|
sources = src.get("sources", []) or []
|
|
385
390
|
status = "completed"
|
|
@@ -419,7 +424,12 @@ async def run_decomp(
|
|
|
419
424
|
status = "aborted"
|
|
420
425
|
break
|
|
421
426
|
|
|
422
|
-
res = await
|
|
427
|
+
res = await journal_extend(queue, cfg.graph_capability, nodes, edges,
|
|
428
|
+
journal_path=graph_journal_path, verb="spine-extension",
|
|
429
|
+
actor="pipeline:cjm-transcript-decomp-core", run=run_id,
|
|
430
|
+
args={"source_id": ids["source"],
|
|
431
|
+
"segments": len(ids["segments"]),
|
|
432
|
+
"text_from": text_from})
|
|
423
433
|
logger.info(f"[src {i}] extension: +{res.nodes_added} node(s) "
|
|
424
434
|
f"({res.nodes_verified} verified present), +{res.edges_added} edge(s) "
|
|
425
435
|
f"({res.edges_existing} existing)")
|
|
@@ -431,7 +441,10 @@ async def run_decomp(
|
|
|
431
441
|
"text_from": text_from},
|
|
432
442
|
)
|
|
433
443
|
dn, de = derivation_to_graph(d)
|
|
434
|
-
await
|
|
444
|
+
await journal_extend(queue, cfg.graph_capability, [dn], de,
|
|
445
|
+
journal_path=graph_journal_path, verb="derivation",
|
|
446
|
+
actor="pipeline:cjm-transcript-decomp-core", run=run_id,
|
|
447
|
+
args={"method": "alignment-fold/v1"})
|
|
435
448
|
|
|
436
449
|
# Fine spine hangs under the run's renditions — verify scopes there.
|
|
437
450
|
vr = await verify_source(queue, cfg.graph_capability, ids["source"], ids["renditions"])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cjm-transcript-decomp-core
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.2
|
|
4
4
|
Summary: A frontend-agnostic core for the transcript decomposition workflow — composes isolated capability workers (forced alignment, VAD, graph storage) into a headless pipeline that decomposes transcription run manifests into a VAD-aligned context-graph spine with traceable provenance, and a CLI as its first driver.
|
|
5
5
|
Author-email: "Christian J. Mills" <9126128+cj-mills@users.noreply.github.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -13,7 +13,7 @@ License-File: LICENSE
|
|
|
13
13
|
Requires-Dist: cjm_substrate>=0.0.51
|
|
14
14
|
Requires-Dist: cjm_context_graph_primitives>=0.0.12
|
|
15
15
|
Requires-Dist: cjm_capability_primitives>=0.0.10
|
|
16
|
-
Requires-Dist: cjm-context-graph-layer>=0.0.
|
|
16
|
+
Requires-Dist: cjm-context-graph-layer>=0.0.10
|
|
17
17
|
Requires-Dist: cjm-transcript-graph-schema>=0.0.7
|
|
18
18
|
Dynamic: license-file
|
|
19
19
|
|
|
@@ -26,15 +26,10 @@ A frontend-agnostic core for the transcript decomposition workflow — composes
|
|
|
26
26
|
## Modules
|
|
27
27
|
|
|
28
28
|
- **`cjm_transcript_decomp_core.alignment`** — Pure forced-alignment logic (no capability calls): map FA words back to character spans in the original text, assign words to VAD chunks by timestamp, and build one text segment per VAD chunk. Extracted from the page-centric ForcedAlignmentService (Tier-1 logic).
|
|
29
|
-
- **`cjm_transcript_decomp_core.cli`** — The CLI driver — the decomposition core's first (and currently only) frontend.
|
|
29
|
+
- **`cjm_transcript_decomp_core.cli`** — The CLI driver — the decomposition core's first (and currently only) frontend.
|
|
30
30
|
- **`cjm_transcript_decomp_core.graph`** — Graph-spine EXTENSION + skeptical-lens verification (stage 5, CR-18 revolution 2). Decomp no longer creates a Document: it RECOMPUTES the transcription-emitted root's deterministic node ids from the consumed manifest (no search), verifies the root exists, and attaches the fine Segment spine under the existing AudioSegment nodes — PART_OF to the owning rendition, STARTS_WITH per rendition (the coarse-seam jump anchor), source-wide NEXT. Each Segment carries the audio TimeSlice ref plus per-transcriber CharSlice refs into the Transcript nodes (the D4/P10 framing, finally expressible). Commit goes through the layer's idempotent extend_graph.
|
|
31
31
|
- **`cjm_transcript_decomp_core.models`** — Lean data shapes for the transcript-decomposition pipeline: in-core mirrors of the forced-alignment / VAD / text DTOs (no FastHTML deps), run configuration, the committed graph-segment carrier, and the decomposition run manifest (proto-bundle).
|
|
32
32
|
- **`cjm_transcript_decomp_core.pipeline`** — The headless decomposition pipeline (stage 5: decomp is an EXTENDER). Load a transcription run manifest, verify the transcription-emitted graph root exists (the graph begins at transcription), then per source per pipeline-segment run VAD + per-transcriber forced alignment, build one aligned segment per VAD chunk with per-transcriber text variants, and attach the fine spine under the existing AudioSegment nodes via the layer's idempotent extend_graph — with HITL approval seams between alignment, commit, and the next source.
|
|
33
|
-
- **`tests.test_alignment`** — Tests for cjm_transcript_decomp_core.alignment — pure forced-alignment logic.
|
|
34
|
-
- **`tests.test_graph`** — Tests for cjm_transcript_decomp_core.graph — fine-spine extension payload.
|
|
35
|
-
- **`tests.test_models`** — Tests for cjm_transcript_decomp_core.models — decomposition data shapes.
|
|
36
|
-
- **`tests_manual.measure_cold_fanout_overlap_e2e`** — Cold-run M×(VAD ∥ T×FA) fan-out overlap measurement (stage-5 closeout;
|
|
37
|
-
- **`tests_manual.validate_stage7_volume_journal_e2e`** — Stage-7 stress part 6 — volume regression on the REAL corpus.
|
|
38
33
|
|
|
39
34
|
## API
|
|
40
35
|
|
|
@@ -83,43 +78,6 @@ A frontend-agnostic core for the transcript decomposition workflow — composes
|
|
|
83
78
|
- `submit_and_wait` _function_ — Submit one capability job, wait for it, and return its result (raise on failure).
|
|
84
79
|
- `vad_chunks_from_result` _function_ — Normalize a typed VAD result into segment-local VAD chunks.
|
|
85
80
|
|
|
86
|
-
### `tests.test_alignment`
|
|
87
|
-
|
|
88
|
-
- `test_assign_words_to_chunks_by_timestamp` _function_
|
|
89
|
-
- `test_build_segments_per_chunk` _function_
|
|
90
|
-
- `test_empty_chunk_yields_empty_segment_warning` _function_
|
|
91
|
-
- `test_map_fa_words_to_text_spans` _function_
|
|
92
|
-
|
|
93
|
-
### `tests.test_graph`
|
|
94
|
-
|
|
95
|
-
- `test_edge_topology_spans_coarse_boundary` _function_
|
|
96
|
-
- `test_extension_payload_deterministic_ids` _function_
|
|
97
|
-
- `test_preprocessed_manifest_distinct_renditions_same_boundaries` _function_
|
|
98
|
-
- `test_provenance_refs_and_text_from` _function_
|
|
99
|
-
- `test_resolve_root_ids_recomputation` _function_
|
|
100
|
-
|
|
101
|
-
### `tests.test_models`
|
|
102
|
-
|
|
103
|
-
- `test_faword_from_wire_tolerates_extra_keys` _function_
|
|
104
|
-
- `test_manifest_save_round_trip` _function_
|
|
105
|
-
- `test_manifest_shape_and_run_id` _function_
|
|
106
|
-
- `test_stage5_segment_shape` _function_
|
|
107
|
-
- `test_vad_chunk_duration` _function_
|
|
108
|
-
|
|
109
|
-
### `tests_manual.measure_cold_fanout_overlap_e2e`
|
|
110
|
-
|
|
111
|
-
- `lane_intervals` _function_ — (start, end) UTC intervals for completed jobs of one instance.
|
|
112
|
-
- `main` _function_
|
|
113
|
-
- `merge` _function_ — Merge overlapping intervals so a side can't double-count itself.
|
|
114
|
-
- `overlap_seconds` _function_ — Total seconds where any interval of A overlaps any interval of B.
|
|
115
|
-
- `self_overlap_max` _function_ — Max simultaneously in-flight jobs within one lane + seconds at depth >= 2.
|
|
116
|
-
|
|
117
|
-
### `tests_manual.validate_stage7_volume_journal_e2e`
|
|
118
|
-
|
|
119
|
-
- `checkpoint_copy` _function_ — Checkpoint-then-copy (the stage-3 G3 backup discipline — never copy
|
|
120
|
-
- `journal_rows` _function_
|
|
121
|
-
- `main` _function_
|
|
122
|
-
|
|
123
81
|
## Dependencies
|
|
124
82
|
|
|
125
|
-
**Depends on:** `cjm-substrate`
|
|
83
|
+
**Depends on:** `cjm-capability-primitives`, `cjm-context-graph-layer`, `cjm-context-graph-primitives`, `cjm-substrate`, `cjm-transcript-graph-schema`
|
|
@@ -14,7 +14,7 @@ classifiers = [
|
|
|
14
14
|
"Programming Language :: Python :: 3",
|
|
15
15
|
"Programming Language :: Python :: 3 :: Only",
|
|
16
16
|
]
|
|
17
|
-
dependencies = ['cjm_substrate>=0.0.51', 'cjm_context_graph_primitives>=0.0.12', 'cjm_capability_primitives>=0.0.10', 'cjm-context-graph-layer>=0.0.
|
|
17
|
+
dependencies = ['cjm_substrate>=0.0.51', 'cjm_context_graph_primitives>=0.0.12', 'cjm_capability_primitives>=0.0.10', 'cjm-context-graph-layer>=0.0.10', 'cjm-transcript-graph-schema>=0.0.7']
|
|
18
18
|
|
|
19
19
|
[project.urls]
|
|
20
20
|
Repository = "https://github.com/cj-mills/cjm-transcript-decomp-core"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.0.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/tests/test_alignment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cjm_transcript_decomp_core-0.0.1 → cjm_transcript_decomp_core-0.0.2}/tests/test_pipeline.py
RENAMED
|
File without changes
|