omnius 1.0.643 → 1.0.647

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.
@@ -0,0 +1,329 @@
1
+ # Ontology WorkGraph Review
2
+
3
+ Date: 2026-08-28
4
+
5
+ ## Objective
6
+
7
+ Use an ontological graph to control large and long tasks.
8
+ Make each work item, relation, claim, and evidence item addressable.
9
+ Keep one canonical graph across planning, execution, verification, and completion.
10
+
11
+ ## Reference boundary
12
+
13
+ The [Ontology Workbench](https://robit-man.github.io/ontology/) is the documentation and reference implementation.
14
+ Its [raw source](https://github.com/robit-man/ontology/blob/main/index.html) defines the contracts and behavior.
15
+
16
+ Use the implementation as a contract reference.
17
+ Do not copy its browser and IndexedDB monolith into Omnius.
18
+
19
+ ## Main conclusion
20
+
21
+ Omnius already has most required primitives.
22
+ They exist in separate models with different identifiers and completion rules.
23
+
24
+ Add a canonical `WorkGraph` projection.
25
+ Do not add another independent planner or evidence store.
26
+
27
+ The graph must join this chain:
28
+
29
+ ```text
30
+ objective
31
+ -> requirement
32
+ -> feature
33
+ -> component or module
34
+ -> task
35
+ -> artifact or mutation
36
+ -> claim
37
+ -> verification
38
+ -> evidence
39
+ ```
40
+
41
+ Relations must also represent dependencies, blockers, contradictions, and supersession.
42
+
43
+ ## Useful Ontology Workbench contracts
44
+
45
+ The reference separates four concerns:
46
+
47
+ - Type and schema definitions
48
+ - Mutable runtime instances
49
+ - Claims, evidence, and conflicts
50
+ - Objectives, plans, actions, approvals, and executions
51
+
52
+ The model proposes a revision-bound patch.
53
+ Deterministic code validates and applies the patch.
54
+ The code records an immutable revision receipt.
55
+
56
+ The reference also uses target-focused evidence collection.
57
+ It scans all target occurrences before it selects evidence.
58
+ It keeps varied semantic roles and document positions.
59
+ It also keeps supporting and contradicting evidence.
60
+
61
+ These contracts are more valuable than its first chunking algorithm.
62
+ Omnius already has stronger basic chunking, content hashes, staleness checks, and PDF coverage receipts.
63
+
64
+ ## Strong Omnius foundations
65
+
66
+ ### Work decomposition
67
+
68
+ - `todo-store.ts` has stable identifiers, parents, blockers, owners, dependencies, verifiers, and artifacts.
69
+ - `todoTruth.ts` derives hierarchy, open leaves, dependency state, and parent completion.
70
+ - `featurePlanner.ts` records paths, symbols, tests, evidence, questions, units, and return contracts.
71
+ - `featureNode.ts` provides recursive survey, plan, split, execute, verify, and eviction stages.
72
+
73
+ ### Completion and closure
74
+
75
+ - `completionLedger.ts` records claims, evidence roles, risks, critiques, unresolved items, and terminal receipts.
76
+ - `deliveryCoverage.ts` has versioned manifests and deterministic coverage evaluation.
77
+ - `integrationClosure.ts` already projects requirements, claims, paths, contracts, evidence, and blockers into a graph.
78
+ - `completion-evidence-gate.ts` requires independent evidence for high-risk claims.
79
+
80
+ ### Evidence and memory
81
+
82
+ - `evidenceLedger.ts` records content hashes, revisions, ranges, fidelity, mutations, and staleness.
83
+ - `contextMemoryLedger.ts` records authority, trust, temporal validity, relations, and dependency-closed transactions.
84
+ - `evidenceBranch.ts` validates selected ranges against presented windows and original source text.
85
+ - PDF receipts distinguish absence, incomplete coverage, truncation, and omitted pages.
86
+
87
+ ### Retrieval
88
+
89
+ - Hybrid retrieval combines lexical, vector, and graph candidates.
90
+ - The context assembler supports rank fusion, graph expansion, snippet packing, and request budgets.
91
+ - The memory ledger supports temporal and source-aware retrieval with explicit abstention.
92
+
93
+ ## Critical gaps
94
+
95
+ ### No canonical work identity
96
+
97
+ Tasks, todos, feature nodes, missions, claims, and memory records use separate identifiers.
98
+ They cannot form one durable requirement-to-evidence path.
99
+
100
+ ### Weak requirement identity
101
+
102
+ Many requirements and acceptance criteria remain unkeyed prose.
103
+ The integration graph creates one synthetic current-goal requirement.
104
+ Todos do not carry requirement and acceptance identifiers.
105
+
106
+ ### Isolated feature systems
107
+
108
+ The feature planner, feature tree, and mission artifacts have limited production wiring.
109
+ Their rich contracts do not control the main completion path.
110
+
111
+ ### Advisory completion evidence
112
+
113
+ The active completion gate records graph gaps but does not stop completion.
114
+ Final reconciliation does not revoke an accepted completion result.
115
+
116
+ Keep inferred work advisory.
117
+ Make explicit requirements and acceptance paths authoritative.
118
+
119
+ ### No world transaction boundary
120
+
121
+ `PatchProposal` does not include a base revision or expected source versions.
122
+ It also lacks typed semantic operations and a resulting revision receipt.
123
+
124
+ Current stale-write controls operate below the proposal contract.
125
+ The system cannot validate one proposal atomically against its observed world.
126
+
127
+ ### No first-class conflict object
128
+
129
+ Omnius can mark a claim as contradicted.
130
+ It cannot preserve two active incompatible claims in one conflict group.
131
+
132
+ Add subject, predicate, valid-time, alternatives, authority, confidence, and resolution rationale.
133
+
134
+ ### Incomplete evidence diversity
135
+
136
+ Several retrieval paths keep one occurrence per file or source.
137
+ Some structured reads select only leading rows or leading text.
138
+
139
+ This behavior can omit late updates, repeated events, and counterevidence.
140
+ It can also confuse an unobserved fact with an absent fact.
141
+
142
+ ### Fragmented source bindings
143
+
144
+ Each package uses a different locator and provenance shape.
145
+ Most general records support only line or character ranges.
146
+
147
+ Add page, sheet, row, heading, table, field, and JSON-path locators.
148
+
149
+ ## Canonical WorkGraph contract
150
+
151
+ Use these node kinds:
152
+
153
+ - `objective`
154
+ - `requirement`
155
+ - `feature`
156
+ - `component`
157
+ - `module`
158
+ - `task`
159
+ - `acceptance`
160
+ - `symbol`
161
+ - `artifact`
162
+ - `mutation`
163
+ - `claim`
164
+ - `verification`
165
+ - `evidence`
166
+ - `conflict`
167
+ - `blocker`
168
+
169
+ Use these core relations:
170
+
171
+ - `decomposes_to`
172
+ - `part_of`
173
+ - `depends_on`
174
+ - `satisfies`
175
+ - `implements`
176
+ - `modifies`
177
+ - `produces`
178
+ - `verified_by`
179
+ - `evidenced_by`
180
+ - `contradicts`
181
+ - `blocked_by`
182
+ - `supersedes`
183
+
184
+ Each node and relation must have a stable identifier.
185
+ Each inferred item must record its authority.
186
+ An inferred item remains advisory until code or a user adopts it.
187
+
188
+ Each action node must define these fields when they apply:
189
+
190
+ - Target references
191
+ - Inputs
192
+ - Preconditions
193
+ - Expected mutations
194
+ - Side effects
195
+ - Required authority
196
+ - Required approval
197
+ - Risk
198
+ - Verification contract
199
+
200
+ ## Shared evidence contract
201
+
202
+ Add one `SourceBinding` and `EvidenceRef` schema under `packages/schemas`.
203
+
204
+ The schema must include these fields:
205
+
206
+ - Evidence identifier
207
+ - Source identifier and URI
208
+ - Content hash and source revision
209
+ - Observation time and freshness
210
+ - Authority and confidence
211
+ - Typed locator and locator value
212
+ - Supporting or refuting polarity
213
+ - Coverage and truncation status
214
+ - State epoch
215
+
216
+ Use the same evidence identifier in retrieval, memory, claims, completion, and groundedness.
217
+ Validate each reference against the current source revision.
218
+
219
+ ## Revisioned world reducer
220
+
221
+ Add a pure reducer under `packages/orchestrator/src/operational-world/`.
222
+ Keep `AgenticRunner`, context systems, and the TUI as consumers.
223
+
224
+ The model can propose only a `WorldPatch`.
225
+ The patch must include `patchId`, `baseRevision`, and typed operations.
226
+
227
+ The reducer must do these checks:
228
+
229
+ 1. Verify the base revision.
230
+ 2. Validate every runtime schema.
231
+ 3. Verify every node, relation, claim, and evidence reference.
232
+ 4. Verify expected file hashes and read versions.
233
+ 5. Reject duplicate identifiers and dangling relations.
234
+ 6. Reject invalid cycles and temporal intervals.
235
+ 7. Preserve incompatible claims as a conflict.
236
+ 8. Apply operations in a deterministic order.
237
+ 9. Emit an immutable patch and revision receipt.
238
+
239
+ Use `integrationClosure.ts` as the first graph adapter.
240
+ Do not make its bounded display neighborhood the authoritative validation universe.
241
+
242
+ ## Large-document evidence pipeline
243
+
244
+ Use a source-aware decomposition tree.
245
+ Each child shard must retain its parent and exact locator.
246
+
247
+ Select shard boundaries by content type:
248
+
249
+ - Keep prose headings with their paragraphs.
250
+ - Keep JSON paths and array ranges.
251
+ - Repeat table headers for each table shard.
252
+ - Keep PDF page markers.
253
+ - Keep spreadsheet sheet and row markers.
254
+
255
+ If one extraction fails, subdivide only that shard.
256
+ Preserve the failed shard as unresolved evidence.
257
+ Do not discard it.
258
+
259
+ For a named target, use this retrieval sequence:
260
+
261
+ 1. Resolve exact target entities.
262
+ 2. Scan all target occurrences.
263
+ 3. Build section-bounded evidence windows.
264
+ 4. Classify each window by semantic role and polarity.
265
+ 5. Keep earliest and latest relevant evidence.
266
+ 6. Keep early, middle, and late document coverage.
267
+ 7. Expand one hop to co-referenced entities.
268
+ 8. Include supporting and contradicting evidence.
269
+ 9. Trim background evidence before target evidence.
270
+ 10. Emit a typed coverage receipt.
271
+
272
+ Pass one validated `ReasoningSlice` to the reasoner and critic.
273
+ Reject unknown citations and omitted requested targets before model criticism.
274
+
275
+ ## Completion invariant
276
+
277
+ Use this rule for authoritative work:
278
+
279
+ > Complete an objective only when every explicit requirement and acceptance path reaches fresh successful evidence after the last relevant mutation.
280
+
281
+ Do not let a model-created node silently expand the user's required scope.
282
+ Keep each inferred edge advisory until adoption.
283
+
284
+ ## Immediate correctness repairs
285
+
286
+ Repair these issues before authoritative graph gating:
287
+
288
+ - Call `verifyUnit` during the feature-node verify stage.
289
+ - Do not mark an exception fallback complete without evidence.
290
+ - Reject missing dependency identifiers and dependency cycles in RALPH plans.
291
+ - Do not serialize independent modules through artificial dependencies.
292
+ - Preserve feature decomposition fields when units become todos.
293
+ - Wire the existing retrieval provider into the production runner.
294
+ - Add free-form lexical retrieval to the context assembler.
295
+ - Remove one-occurrence limits for evidence-mode retrieval.
296
+
297
+ ## Rollout
298
+
299
+ ### Phase 1: Shared identity
300
+
301
+ Add shared work, relation, source-binding, evidence, conflict, and revision schemas.
302
+ Project current stores into stable graph identifiers.
303
+
304
+ ### Phase 2: Shadow world
305
+
306
+ Record proposed patches, validation results, revisions, and receipts.
307
+ Compare graph closure with current completion decisions.
308
+ Do not change completion behavior in this phase.
309
+
310
+ ### Phase 3: Retrieval and document evidence
311
+
312
+ Wire the existing retrieval systems into production context assembly.
313
+ Add evidence diversity, counterevidence, structural locators, and coverage receipts.
314
+
315
+ ### Phase 4: Authoritative explicit closure
316
+
317
+ Gate only explicit requirement and acceptance paths.
318
+ Keep inferred paths advisory.
319
+ Require fresh evidence after each relevant mutation.
320
+
321
+ ### Phase 5: Parallel long-horizon execution
322
+
323
+ Schedule ready leaves whose dependency paths are satisfied.
324
+ Assign ownership and authority to each leaf.
325
+ Commit graph patches through the revisioned reducer.
326
+ Reconcile conflicts before dependent work begins.
327
+
328
+ This design lets Omnius decompose extreme complexity into durable ontological work.
329
+ It also keeps progress, evidence, and completion lossless across long sessions.
@@ -27,7 +27,9 @@ Configuration is layered from environment, global user settings, project setting
27
27
  | `OMNIUS_SEMANTIC_AUDIO_AUTO_SETUP` | Set to `0` to disable CLAP setup specifically; JetPack default is enabled |
28
28
  | `OMNIUS_VISION_AUTO_SETUP` | Set to `0` to disable managed OpenCLIP provisioning on JetPack |
29
29
  | `OMNIUS_VISION_PYTHON` | Explicit vendor CUDA Python for the isolated OpenCLIP runtime |
30
+ | `OMNIUS_VISION_MIN_AVAILABLE_MB` | OpenCLIP-specific Jetson unified-memory admission threshold (default `8192`) |
30
31
  | `OMNIUS_NEMO_SPEECH_BIN` | Optional existing CUDA-enabled NeMo-Speech.cpp binary; otherwise live diarization builds the pinned source revision |
32
+ | `OMNIUS_DIAR_NVCC` | Optional absolute JetPack CUDA compiler; discovery otherwise checks `/usr/local/cuda-12.2/bin/nvcc` then `/usr/local/cuda/bin/nvcc` |
31
33
  | `OMNIUS_DIARIZATION_AUTO_SETUP` | Set to `0` to disable managed diarizer provisioning; live Sortformer defaults on for JetPack |
32
34
  | `OMNIUS_HF_TOKEN` | Setup-only Hugging Face token for gated Community-1 download; never persisted or passed to inference |
33
35
  | `OMNIUS_PYANNOTE_TERMS_ACCEPTED` | Set to `1` only after accepting Community-1 terms; permits gated daemon bootstrap when a token is present |
@@ -52,7 +54,8 @@ upstream provider credentials.
52
54
 
53
55
  Linux installations load optional daemon-only overrides from
54
56
  `~/.config/omnius/daemon.env`. The postinstall creates this file with mode
55
- `0600` and the systemd unit references it with an optional `EnvironmentFile`.
57
+ `0600` and creates or rewrites the systemd unit with
58
+ `EnvironmentFile=%h/.config/omnius/daemon.env`.
56
59
  This is the appropriate place for `OMNIUS_AUDIO_PYTHON` or a setup-only gated
57
60
  model token; credentials do not need to be embedded in the unit or sent in a
58
61
  REST request.
@@ -81,9 +81,10 @@ descriptive claims or invoke an LLM.
81
81
  First poll `GET /v1/vision/embed/readiness`. It is non-mutating and returns
82
82
  HTTP 503 until the isolated runtime and checksum-manifested weights are ready.
83
83
  Use the admin-scoped `POST /v1/vision/embed/setup` to create the
84
- `--system-site-packages` runtime under
85
- `~/.omnius/runtimes/vision/open-clip`, install pinned non-Torch dependencies,
86
- and fetch/verify the checkpoint from immutable revision
84
+ private runtime under `~/.omnius/runtimes/vision/open-clip` with
85
+ `include-system-site-packages = false`, link only the already-validated vendor
86
+ Torch provider, install the pinned non-Torch closure (including `wcwidth`), and
87
+ fetch/verify the checkpoint from immutable revision
87
88
  `1a25a446712ba5ee05982a381eed697ef9b435cf`. Setup is single-flight and
88
89
  daemon-bootstrapped by default on JetPack; set `OMNIUS_VISION_AUTO_SETUP=0`
89
90
  to disable it. Inference never installs packages or downloads artifacts, and
@@ -95,8 +96,10 @@ present in the compatible vendor stack or be supplied explicitly with the local
95
96
  `OMNIUS_VISION_TORCHVISION_WHEEL_SHA256`; generic PyPI Torch/torchvision is
96
97
  blocked. Bootstrap discovery may inspect the selected vendor interpreter, but
97
98
  the managed runtime installs its own pinned support closure and proves Torch,
98
- torchvision, and OpenCLIP with user-site packages disabled. On memory-constrained
99
- Jetson systems model loading and embedding fail with a typed 503 rather than
99
+ torchvision, and OpenCLIP with user-site packages disabled. OpenCLIP reports
100
+ its own `component: openclip` memory-admission result, governed by
101
+ `OMNIUS_VISION_MIN_AVAILABLE_MB`, rather than reusing CLAP telemetry. On
102
+ memory-constrained Jetson systems model loading and embedding fail with a typed 503 rather than
100
103
  evicting a resident ASR/Ollama model. Dependency and
101
104
  weight provisioning itself is allowed to finish under transient pressure;
102
105
  readiness separately reports `installed`, `weightsReady`,
@@ -280,7 +283,10 @@ startup provisions acoustic, speaker, and semantic roles by default; set
280
283
  `OMNIUS_SEMANTIC_AUDIO_AUTO_SETUP=0` to disable CLAP specifically.
281
284
 
282
285
  CLAP provisioning installs a checksum-locked CPython 3.10/aarch64 wheel
283
- closure and the immutable model revision without loading the model. It is
286
+ closure—including Pillow and the complete probed Transformers CLAP import
287
+ surface—inside a private venv with `include-system-site-packages = false`.
288
+ Only the validated vendor CUDA Torch site is linked explicitly. The immutable
289
+ model revision is provisioned without loading the model. It is
284
290
  allowed to finish while unified memory is busy. Worker activation and
285
291
  inference retain the 8 GiB admission gate and idle eviction, so setup cannot
286
292
  silently evict ASR, Ollama, or another CUDA workload.
@@ -344,8 +350,11 @@ exact remediation. Inference is likewise non-provisioning and returns typed
344
350
  `speaker_diarization_runtime_unavailable` until admin setup succeeds.
345
351
 
346
352
  Admin setup is asynchronous and single-flight. It returns HTTP 202 while it
347
- provisions, and readiness exposes the exact phase or terminal error. Existing
348
- ready workers return HTTP 200. Inference never performs these setup actions.
353
+ provisions, and readiness exposes `setup.stage`, `setup.failed_stage`, the
354
+ complete captured setup `stderr`, and the terminal error. Those diagnostics
355
+ are persisted under the managed runtime so they survive daemon restart.
356
+ Existing ready workers return HTTP 200. Inference never performs these setup
357
+ actions.
349
358
 
350
359
  On JetPack, live setup with an empty object downloads the immutable,
351
360
  checksum-pinned Q8 Sortformer artifact and builds NVIDIA NeMo-Speech.cpp at a
@@ -360,7 +369,9 @@ POST /v1/audio/diarization/live/setup
360
369
  The native build requires the JetPack CUDA compiler plus `git` and a C++17
361
370
  compiler. Omnius installs pinned CMake/Ninja only in its private build-tools
362
371
  venv and never invokes `sudo`; missing native prerequisites are reported by
363
- readiness for operator installation outside inference. Set
372
+ readiness for operator installation outside inference. CUDA compiler discovery
373
+ checks `OMNIUS_DIAR_NVCC`, `/usr/local/cuda-12.2/bin/nvcc`, then
374
+ `/usr/local/cuda/bin/nvcc`, and reports those exact locations when none exists. Set
364
375
  `OMNIUS_NEMO_SPEECH_BIN` to reuse a prebuilt CUDA-enabled binary.
365
376
 
366
377
  Managed Community-1 setup creates a separate CPU-only CPython environment, so