omnius 1.0.676 → 1.0.678
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/.aiwg/addons/omnius-docs/skills/omnius-tools-docs/SKILL.md +5 -5
- package/README.md +6 -5
- package/dist/index.js +872 -134
- package/docs/ADJUDICATION.md +41 -9
- package/docs/DISCOVERY.json +36 -18
- package/docs/DISCOVERY.md +2 -2
- package/docs/discovery/agent-map.json +1 -1
- package/docs/discovery/catalog-overrides.json +11 -7
- package/docs/guides/tools-and-web-search.md +17 -8
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/docs/ADJUDICATION.md
CHANGED
|
@@ -15,18 +15,45 @@ The host validates all identifiers, citations, panel results, and the verdict.
|
|
|
15
15
|
The tool holds the case when it cannot validate the required quorum or final
|
|
16
16
|
contract. It does not guess a result.
|
|
17
17
|
|
|
18
|
+
## Clean-context purpose
|
|
19
|
+
|
|
20
|
+
The main agent context can contain old plans, persuasive language, stale
|
|
21
|
+
assumptions, and momentum from work that happened before the current decision.
|
|
22
|
+
`adjudicate` does not pass that transcript into the panel. The parent must first
|
|
23
|
+
freeze one explicit admissible record. Each constituent starts in a fresh
|
|
24
|
+
context and receives only its assignment, the relevant record subset, and the
|
|
25
|
+
decision rules. The judge receives the immutable record and validated public
|
|
26
|
+
findings. It does not receive the parent's accumulated narrative.
|
|
27
|
+
|
|
28
|
+
This boundary reduces anchoring and accidental context contamination. It does
|
|
29
|
+
not guarantee an unbiased decision. Record selection, question framing,
|
|
30
|
+
decision rules, and model behavior can still influence the result. The receipt
|
|
31
|
+
makes those inputs, exclusions, validation failures, findings, and dissent
|
|
32
|
+
auditable instead of hiding them in the parent context.
|
|
33
|
+
|
|
18
34
|
## Availability
|
|
19
35
|
|
|
20
|
-
`adjudicate` is an agent-bound tool in
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
36
|
+
`adjudicate` is an agent-bound tool in each top-level full-agent path:
|
|
37
|
+
|
|
38
|
+
| Surface | Execution | Progress projection |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| Interactive `omnius` TUI | Yes | Specialized streamed adjudication block |
|
|
41
|
+
| One-shot `omnius "<task>"` | Yes | Ordinary tool events and final result |
|
|
42
|
+
| `POST /v1/run` | Yes, subject to the selected tool profile | Run events and final result |
|
|
43
|
+
| Default full-agent `POST /v1/chat` | Yes, subject to the selected tool profile | Chat/run events and final result |
|
|
25
44
|
|
|
26
|
-
The
|
|
45
|
+
The tool is intentionally unavailable to child agents. This prevents nested
|
|
46
|
+
panels, recursive terminal projections, and unbounded inference fan-out.
|
|
47
|
+
Constituents are isolated tools-free inference contexts inside the
|
|
48
|
+
adjudication engine. They are not `full_sub_agent` workers, so an empty
|
|
49
|
+
sub-agent activity list does not indicate that panel fan-out was skipped.
|
|
50
|
+
|
|
51
|
+
The daemon direct-tool registry, `/v1/chat/completions` bounded mini-loop,
|
|
52
|
+
Telegram runners, and voice-call runners do not expose the native tool. Do not
|
|
27
53
|
infer `GET /v1/tools/adjudicate` or
|
|
28
|
-
`POST /v1/tools/adjudicate/call` from the tool name.
|
|
29
|
-
|
|
54
|
+
`POST /v1/tools/adjudicate/call` from the tool name. A caller-supplied OpenAI
|
|
55
|
+
tool with the same name is not the native Omnius implementation. Use
|
|
56
|
+
`omnius show tool.adjudicate` for the static discovery contract.
|
|
30
57
|
|
|
31
58
|
## When to use it
|
|
32
59
|
|
|
@@ -36,7 +63,7 @@ Use `adjudicate` when all of these conditions are true:
|
|
|
36
63
|
- Two or more outcomes remain materially plausible.
|
|
37
64
|
- The decision affects the next action.
|
|
38
65
|
- The available evidence conflicts or supports different risk tradeoffs.
|
|
39
|
-
- A fresh,
|
|
66
|
+
- A fresh, evidence-scoped context can assess the decision more reliably than the
|
|
40
67
|
main loop's large working context.
|
|
41
68
|
|
|
42
69
|
Do not use it for an ordinary implementation choice, a factual lookup, or a
|
|
@@ -174,6 +201,11 @@ The host rejects unknown IDs and incomplete evidence coverage. It retries one
|
|
|
174
201
|
time with validation codes only. The invalid model output is not added to the
|
|
175
202
|
repair prompt.
|
|
176
203
|
|
|
204
|
+
Planner, constituent, and judge requests use strict provider JSON Schemas.
|
|
205
|
+
When a visible response still fails host validation, the receipt retains
|
|
206
|
+
bounded field-level issue codes, a response hash, and a content-free top-level
|
|
207
|
+
shape summary. It does not retain the rejected response body.
|
|
208
|
+
|
|
177
209
|
### 3. Constituent fan-out
|
|
178
210
|
|
|
179
211
|
The host runs assignments with bounded concurrency. Each constituent gets a
|
package/docs/DISCOVERY.json
CHANGED
|
@@ -36087,7 +36087,7 @@
|
|
|
36087
36087
|
"id": "tool.adjudicate",
|
|
36088
36088
|
"kind": "tool",
|
|
36089
36089
|
"title": "Evidence-bound adjudication",
|
|
36090
|
-
"summary": "Resolve one genuine decision impasse through
|
|
36090
|
+
"summary": "Resolve one genuine decision impasse outside the accumulated parent narrative through a frozen evidence record, fresh scoped constituent review, host-validated citations and quorum, a final judge, and a durable verdict receipt.",
|
|
36091
36091
|
"aliases": [
|
|
36092
36092
|
"adjudicate",
|
|
36093
36093
|
"adjudication",
|
|
@@ -36114,19 +36114,35 @@
|
|
|
36114
36114
|
],
|
|
36115
36115
|
"direct_callable": false,
|
|
36116
36116
|
"use_when": [
|
|
36117
|
-
"
|
|
36117
|
+
"A top-level full agent has one exact unresolved decision with at least two materially plausible outcomes",
|
|
36118
36118
|
"The admissible evidence supports conflicting conclusions or risk tradeoffs",
|
|
36119
|
-
"The decision changes the next action and benefits from
|
|
36119
|
+
"The decision changes the next action and benefits from fresh evidence-scoped review that reduces parent-context anchoring",
|
|
36120
|
+
"The caller can make record selection and framing explicit and auditable"
|
|
36120
36121
|
],
|
|
36121
36122
|
"avoid_when": [
|
|
36122
36123
|
"The question is an ordinary implementation choice, factual lookup, or substitute for gathering missing evidence",
|
|
36123
|
-
"The caller is a child agent, daemon direct-tool client,
|
|
36124
|
+
"The caller is a child agent, daemon direct-tool client, bounded /v1/chat/completions loop, Telegram runner, or voice-call runner"
|
|
36124
36125
|
],
|
|
36125
36126
|
"interfaces": [
|
|
36126
36127
|
{
|
|
36127
36128
|
"type": "tui-agent-tool",
|
|
36128
36129
|
"target": "omnius",
|
|
36129
|
-
"description": "
|
|
36130
|
+
"description": "Top-level interactive agent with the specialized streamed adjudication block"
|
|
36131
|
+
},
|
|
36132
|
+
{
|
|
36133
|
+
"type": "cli-agent-tool",
|
|
36134
|
+
"target": "omnius \"<task>\"",
|
|
36135
|
+
"description": "Top-level one-shot agent with ordinary tool events"
|
|
36136
|
+
},
|
|
36137
|
+
{
|
|
36138
|
+
"type": "agent-run",
|
|
36139
|
+
"target": "POST /v1/run",
|
|
36140
|
+
"description": "Spawned top-level full agent; subject to the active tool profile"
|
|
36141
|
+
},
|
|
36142
|
+
{
|
|
36143
|
+
"type": "agent-chat",
|
|
36144
|
+
"target": "POST /v1/chat",
|
|
36145
|
+
"description": "Default full-agent chat mode; subject to the active tool profile"
|
|
36130
36146
|
}
|
|
36131
36147
|
],
|
|
36132
36148
|
"references": [
|
|
@@ -36164,15 +36180,15 @@
|
|
|
36164
36180
|
"expected": "Parallel constituent streams, judge synthesis, and a durable receipt complete without loading a real model"
|
|
36165
36181
|
},
|
|
36166
36182
|
{
|
|
36167
|
-
"check": "Inspect the
|
|
36168
|
-
"expected": "
|
|
36183
|
+
"check": "Inspect the parent-runner and child-agent tool registration tests",
|
|
36184
|
+
"expected": "Top-level full agents keep adjudicate inline and host scope enforcement excludes it from child runners"
|
|
36169
36185
|
}
|
|
36170
36186
|
],
|
|
36171
36187
|
"failure_modes": [
|
|
36172
36188
|
{
|
|
36173
36189
|
"symptom": "A caller attempts /v1/tools/adjudicate/call",
|
|
36174
36190
|
"likely_cause": "Static tool discovery was mistaken for daemon direct-tool exposure",
|
|
36175
|
-
"recovery": "Use
|
|
36191
|
+
"recovery": "Use a top-level TUI, one-shot CLI, /v1/run, or default full-agent /v1/chat path"
|
|
36176
36192
|
},
|
|
36177
36193
|
{
|
|
36178
36194
|
"symptom": "The case returns held instead of a verdict",
|
|
@@ -44127,7 +44143,7 @@
|
|
|
44127
44143
|
"id": "workflow.evidence-bound-adjudication",
|
|
44128
44144
|
"kind": "workflow",
|
|
44129
44145
|
"title": "Resolve an evidence-bound decision impasse",
|
|
44130
|
-
"summary": "
|
|
44146
|
+
"summary": "Freeze one exact decision record outside the accumulated parent narrative, run fresh evidence-scoped constituent review, validate citations and quorum, synthesize a verdict through a final judge, and preserve an auditable durable receipt without granting the panel tools or mutation authority.",
|
|
44131
44147
|
"aliases": [
|
|
44132
44148
|
"adjudicate impasse",
|
|
44133
44149
|
"impartial review",
|
|
@@ -44141,7 +44157,8 @@
|
|
|
44141
44157
|
"judge",
|
|
44142
44158
|
"verdict",
|
|
44143
44159
|
"dissent",
|
|
44144
|
-
"receipt"
|
|
44160
|
+
"receipt",
|
|
44161
|
+
"anchoring"
|
|
44145
44162
|
],
|
|
44146
44163
|
"maturity": "stable",
|
|
44147
44164
|
"layer": "orchestration",
|
|
@@ -44151,7 +44168,7 @@
|
|
|
44151
44168
|
"interactive-user"
|
|
44152
44169
|
],
|
|
44153
44170
|
"prerequisites": [
|
|
44154
|
-
"Top-level
|
|
44171
|
+
"Top-level full-agent TUI, one-shot CLI, /v1/run, or default /v1/chat path",
|
|
44155
44172
|
"One exact unresolved decision",
|
|
44156
44173
|
"At least two allowed outcomes",
|
|
44157
44174
|
"Caller-supplied admissible evidence"
|
|
@@ -44180,7 +44197,7 @@
|
|
|
44180
44197
|
},
|
|
44181
44198
|
{
|
|
44182
44199
|
"step": "3",
|
|
44183
|
-
"action": "Run tools-free constituent assessments in fresh scoped contexts
|
|
44200
|
+
"action": "Run tools-free constituent assessments in fresh scoped contexts that do not receive the parent transcript.",
|
|
44184
44201
|
"expected": "Public findings cite only assigned evidence"
|
|
44185
44202
|
},
|
|
44186
44203
|
{
|
|
@@ -44190,18 +44207,19 @@
|
|
|
44190
44207
|
},
|
|
44191
44208
|
{
|
|
44192
44209
|
"step": "5",
|
|
44193
|
-
"action": "Have the judge apply the burden and rules, preserve material dissent, and select an allowed outcome or insufficient_evidence.",
|
|
44210
|
+
"action": "Have the judge apply the burden and rules to the immutable record and validated findings, preserve material dissent, and select an allowed outcome or insufficient_evidence.",
|
|
44194
44211
|
"expected": "A host-validated verdict or held case"
|
|
44195
44212
|
},
|
|
44196
44213
|
{
|
|
44197
44214
|
"step": "6",
|
|
44198
|
-
"action": "Inspect the
|
|
44199
|
-
"expected": "The decision
|
|
44215
|
+
"action": "Inspect the available run events and durable receipt before acting on the decision.",
|
|
44216
|
+
"expected": "The decision and remaining framing risks are traceable to the admitted record, validated findings, and receipt hashes"
|
|
44200
44217
|
}
|
|
44201
44218
|
],
|
|
44202
44219
|
"avoid_when": [
|
|
44203
44220
|
"Using adjudication to replace normal judgment, gather evidence, or let a child agent spawn nested panels",
|
|
44204
|
-
"
|
|
44221
|
+
"Treating clean contexts as a guarantee against biased record selection, framing, rules, or model behavior",
|
|
44222
|
+
"Inferring a direct registry, /v1/chat/completions, Telegram, voice, or child-agent exposure that is not registered"
|
|
44205
44223
|
],
|
|
44206
44224
|
"verification": [
|
|
44207
44225
|
{
|
|
@@ -44221,8 +44239,8 @@
|
|
|
44221
44239
|
},
|
|
44222
44240
|
{
|
|
44223
44241
|
"symptom": "A direct REST call is attempted",
|
|
44224
|
-
"likely_cause": "Agent-bound
|
|
44225
|
-
"recovery": "
|
|
44242
|
+
"likely_cause": "Agent-bound full-agent exposure was confused with direct registry exposure",
|
|
44243
|
+
"recovery": "Use top-level TUI, one-shot CLI, /v1/run, or default full-agent /v1/chat"
|
|
44226
44244
|
}
|
|
44227
44245
|
],
|
|
44228
44246
|
"source_of_truth": [
|
package/docs/DISCOVERY.md
CHANGED
|
@@ -648,7 +648,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
648
648
|
|
|
649
649
|
| ID | Title | Summary |
|
|
650
650
|
| --- | --- | --- |
|
|
651
|
-
| `tool.adjudicate` | Evidence-bound adjudication | Resolve one genuine decision impasse through
|
|
651
|
+
| `tool.adjudicate` | Evidence-bound adjudication | Resolve one genuine decision impasse outside the accumulated parent narrative through a frozen evidence record, fresh scoped constituent review, host-validated citations and quorum, a final judge, and a durable verdict receipt. |
|
|
652
652
|
| `tool.agenda` | Agenda | agenda is a directly callable Omnius tool. |
|
|
653
653
|
| `tool.agent` | Agent | agent is a directly callable Omnius tool. |
|
|
654
654
|
| `tool.aiwg-health` | Aiwg Health | aiwg_health is a directly callable Omnius tool. |
|
|
@@ -794,7 +794,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
794
794
|
| `workflow.daemon-tray-update` | Operate daemon, tray, and updates | Ensure one current daemon owns the service port, start the tray against it, install updates through the real global npm flow, stream progress, restart components, and verify the target runtime. |
|
|
795
795
|
| `workflow.debug-runtime` | Debug an Omnius runtime failure | Diagnose from identity and ownership outward: version, health, port/process, live contract, status/events, state scope, logs/evidence, then the owning module. |
|
|
796
796
|
| `workflow.direct-tool-call` | Call a directly exposed tool | Inspect live metadata, confirm direct-call exposure and safety, submit the exact schema, and verify the tool result. |
|
|
797
|
-
| `workflow.evidence-bound-adjudication` | Resolve an evidence-bound decision impasse |
|
|
797
|
+
| `workflow.evidence-bound-adjudication` | Resolve an evidence-bound decision impasse | Freeze one exact decision record outside the accumulated parent narrative, run fresh evidence-scoped constituent review, validate citations and quorum, synthesize a verdict through a final judge, and preserve an auditable durable receipt without granting the panel tools or mutation authority. |
|
|
798
798
|
| `workflow.extend-omnius` | Extend or modify Omnius safely | Locate the owning layer/module and canonical registry, change the smallest source boundary, update discovery/docs/contracts, and run targeted plus freshness tests. |
|
|
799
799
|
| `workflow.provider-selection` | Select an inference provider and model | Resolve an explicit provider protocol, credentials, endpoint, and model; verify live reachability and hardware placement for local inference. |
|
|
800
800
|
| `workflow.publish-package` | Build and publish the Omnius package | Follow the repository Minimal Publish SOP: clean all workspaces, rebuild, bundle publish/, inspect a local-cache tarball, patch-bump, publish only from publish/, and verify npm metadata. |
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
{"id":"workflow.stateful-chat","kind":"workflow","title":"Use stateful daemon chat","summary":"Create or select a real chat session, send conversational turns, and load its history without treating control commands such as /quit as chats.","aliases":["chat sessions","history"],"keywords":["session","conversation","history"],"maturity":"stable","layer":"memory","audiences":["integrator","service-agent"],"workflow":[{"step":"1","action":"List or create sessions through the documented chat/session routes.","interface":"GET /v1/chats and chat creation route"},{"step":"2","action":"Send user content through POST /v1/chat with the selected session identity.","interface":"POST /v1/chat"},{"step":"3","action":"Load message history when selecting the session and distinguish UI/control events from conversational turns.","expected":"The selected chat displays its saved conversation"}],"verification":[{"check":"Reload the selected session","expected":"History is restored and control-only commands are absent from the chat list"}],"failure_modes":[{"symptom":"Chats named quit or duplicate Last task summaries appear","likely_cause":"Control/task metadata was projected as a chat session","recovery":"Use the canonical session registry and filter non-conversational control records"}],"source_of_truth":["packages/cli/src/api/chat-session.ts","packages/cli/src/api/session-summary.ts","packages/cli/src/api/web-ui.ts"]},
|
|
111
111
|
{"id":"workflow.direct-tool-call","kind":"workflow","title":"Call a directly exposed tool","summary":"Inspect live metadata, confirm direct-call exposure and safety, submit the exact schema, and verify the tool result.","aliases":["tool REST call"],"keywords":["direct_callable","schema"],"maturity":"stable","layer":"execution","audiences":["integrator","service-agent"],"workflow":[{"step":"1","action":"Inspect the tool metadata and direct_callable flag.","interface":"GET /v1/tools/{name}","expected":"A rest-call interface is explicitly present"},{"step":"2","action":"Validate arguments against the returned parameter schema and call the exact route.","interface":"POST /v1/tools/{name}/call"},{"step":"3","action":"Inspect the structured output and any side effects.","expected":"Tool-specific verified result"}],"avoid_when":["The tool is agent-bound, unavailable, profile-gated, or lacks a rest-call interface"],"verification":[{"check":"Metadata, schema, and result all agree","expected":"No inferred route or unvalidated arguments"}],"failure_modes":[{"symptom":"Direct call returns not found or not callable","likely_cause":"The route was inferred or live exposure changed","recovery":"Re-read GET /v1/tools/{name}; use an agent-bound workflow when no rest-call interface exists"}],"source_of_truth":["packages/cli/src/api/direct-tool-registry.ts","packages/execution/src/tools/tool-manifest.ts"]},
|
|
112
112
|
{"id":"workflow.agent-bound-tools","kind":"workflow","title":"Use agent-bound tools such as web_search","summary":"Offer a non-direct tool to an Omnius agent loop through run/chat instead of inventing a direct REST call.","aliases":["web search","daemon tools"],"keywords":["agent loop","web_search","tool exposure"],"maturity":"stable","layer":"execution","audiences":["integrator","coding-agent"],"workflow":[{"step":"1","action":"Inspect live tool metadata, security classification, availability, and schema.","interface":"GET /v1/tools/web_search"},{"step":"2","action":"Offer the tool through an agent-capable surface and a compatible tool profile.","interface":"POST /v1/run or POST /v1/chat/completions with agent_loop=true"},{"step":"3","action":"Require source/provenance verification appropriate to the research task.","expected":"The agent executes the bound tool and returns evidence"}],"avoid_when":["Calling POST /v1/tools/web_search/call unless live metadata explicitly adds direct exposure"],"verification":[{"check":"Inspect run/chat tool events and returned source evidence","expected":"The intended tool actually ran and its claims are traceable"}],"failure_modes":[{"symptom":"Direct tool URL is missing","likely_cause":"The tool is intentionally agent-bound","recovery":"Use /v1/run or agent-loop chat with the tool offered"}],"source_of_truth":["docs/guides/tools-and-web-search.md","packages/execution/src/tools/web-search.ts"]},
|
|
113
|
-
{"id":"workflow.evidence-bound-adjudication","kind":"workflow","title":"Resolve an evidence-bound decision impasse","summary":"
|
|
113
|
+
{"id":"workflow.evidence-bound-adjudication","kind":"workflow","title":"Resolve an evidence-bound decision impasse","summary":"Freeze one exact decision record outside the accumulated parent narrative, run fresh evidence-scoped constituent review, validate citations and quorum, synthesize a verdict through a final judge, and preserve an auditable durable receipt without granting the panel tools or mutation authority.","aliases":["adjudicate impasse","impartial review","decision court","constituent panel"],"keywords":["evidence","arguments","quorum","judge","verdict","dissent","receipt","anchoring"],"maturity":"stable","layer":"orchestration","audiences":["coding-agent","maintainer","interactive-user"],"prerequisites":["Top-level full-agent TUI, one-shot CLI, /v1/run, or default /v1/chat path","One exact unresolved decision","At least two allowed outcomes","Caller-supplied admissible evidence"],"inputs":["question","allowed outcomes","evidence","optional arguments, decision rules, burden, constituents, and quorum"],"outputs":["validated findings","verdict or held status","durable receipt"],"workflow":[{"step":"1","action":"Confirm that a genuine impasse exists and submit an immutable record with stable evidence and argument IDs.","expected":"Host admission succeeds and creates a record hash"},{"step":"2","action":"Frame or validate distinct constituent assignments with explicit evidence subsets.","expected":"Every admitted evidence item is covered without unknown IDs"},{"step":"3","action":"Run tools-free constituent assessments in fresh scoped contexts that do not receive the parent transcript.","expected":"Public findings cite only assigned evidence"},{"step":"4","action":"Validate findings and require quorum before invoking the judge.","expected":"Invalid findings cannot create facts or satisfy quorum"},{"step":"5","action":"Have the judge apply the burden and rules to the immutable record and validated findings, preserve material dissent, and select an allowed outcome or insufficient_evidence.","expected":"A host-validated verdict or held case"},{"step":"6","action":"Inspect the available run events and durable receipt before acting on the decision.","expected":"The decision and remaining framing risks are traceable to the admitted record, validated findings, and receipt hashes"}],"avoid_when":["Using adjudication to replace normal judgment, gather evidence, or let a child agent spawn nested panels","Treating clean contexts as a guarantee against biased record selection, framing, rules, or model behavior","Inferring a direct registry, /v1/chat/completions, Telegram, voice, or child-agent exposure that is not registered"],"verification":[{"check":"Run pnpm harness:adjudication","expected":"The deterministic panel overlaps constituent work, streams attributed assessments, synthesizes a verdict, and persists a receipt"},{"check":"Inspect .omnius/adjudications/<case-id>/<run>/receipt.json","expected":"Hashes, quorum, validation failures, elapsed time, and final status are present"}],"failure_modes":[{"symptom":"The case is held before judgment","likely_cause":"The record, framing, findings, or quorum failed host validation","recovery":"Use receipt validation codes to correct the admissible record; do not guess an outcome"},{"symptom":"A direct REST call is attempted","likely_cause":"Agent-bound full-agent exposure was confused with direct registry exposure","recovery":"Use top-level TUI, one-shot CLI, /v1/run, or default full-agent /v1/chat"}],"source_of_truth":["docs/ADJUDICATION.md","packages/orchestrator/src/adjudication.ts","packages/cli/src/tui/interactive.ts","scripts/adjudication-impasse-harness.mjs"],"related":["tool.adjudicate","layer.orchestration","layer.observability","module.orchestrator","guide.adjudication-uppercase"]},
|
|
114
114
|
{"id":"workflow.provider-selection","kind":"workflow","title":"Select an inference provider and model","summary":"Resolve an explicit provider protocol, credentials, endpoint, and model; verify live reachability and hardware placement for local inference.","aliases":["BYOI","model selection"],"keywords":["provider","endpoint","protocol"],"maturity":"stable","layer":"inference","audiences":["operator","integrator","coding-agent"],"workflow":[{"step":"1","action":"Discover and expand the provider descriptor; do not infer protocol from a label or API key."},{"step":"2","action":"Configure endpoint/protocol/credential using the documented scope."},{"step":"3","action":"For local model work, perform the required hardware preflight before any token-generating request."},{"step":"4","action":"Verify the selected provider and exact model through live metadata."}],"verification":[{"check":"Live model/provider status matches the intended endpoint, protocol, and hardware","expected":"No silent fallback"}],"failure_modes":[{"symptom":"Model listing works but inference fails or uses the wrong protocol","likely_cause":"Endpoint display label was used instead of the provider descriptor","recovery":"Resolve the stable provider ID/protocol and re-test the exact endpoint before execution"}],"source_of_truth":["packages/backend-vllm/src/providerRegistry.ts","docs/guides/bring-your-own-inference.md"]},
|
|
115
115
|
{"id":"workflow.voice-asr-tts","kind":"workflow","title":"Select and use ASR/TTS engines","summary":"Discover installed and supported ASR/TTS systems, perform managed setup when needed, activate one exact engine/model/device, and use the documented REST or TUI surface.","aliases":["speech","voice engines"],"keywords":["ASR","TTS","VibeVoice","transcribe_cli","LuxTTS"],"maturity":"stable","layer":"media","audiences":["integrator","operator","user"],"workflow":[{"step":"1","action":"List engines/models and inspect status before activation.","interface":"GET /v1/asr/engines; GET /v1/asr/status; voice model routes"},{"step":"2","action":"Run explicit managed setup for missing runtimes/weights and an exact accelerator when required."},{"step":"3","action":"Activate the selected engine/model and verify active status."},{"step":"4","action":"Transcribe or synthesize through the OpenAPI-documented route and validate the output artifact."}],"verification":[{"check":"Status reports the requested active engine/model/device and a small non-live test succeeds","expected":"No interpreter override or fallback to a different engine"}],"failure_modes":[{"symptom":"transcribe_cli is missing although a managed environment exists","likely_cause":"TRANSCRIBE_PYTHON points at an older Whisper environment","recovery":"Use the canonical managed transcribe runtime selection and re-check ASR status"}],"source_of_truth":["packages/execution/src/asr/registry.ts","packages/execution/src/transcribe-python-runtime.ts","packages/cli/src/api/voice-runtime.ts"]},
|
|
116
116
|
{"id":"workflow.daemon-tray-update","kind":"workflow","title":"Operate daemon, tray, and updates","summary":"Ensure one current daemon owns the service port, start the tray against it, install updates through the real global npm flow, stream progress, restart components, and verify the target runtime.","aliases":["update Omnius","indicator update"],"keywords":["npm global","restart","version"],"maturity":"stable","layer":"operations","audiences":["operator","coding-agent"],"workflow":[{"step":"1","action":"Read installed and running identities from /version; diagnose port ownership before restart."},{"step":"2","action":"Start/reclaim the daemon through its managed lifecycle and confirm health."},{"step":"3","action":"Start the indicator and require daemon-online state before enabling service actions."},{"step":"4","action":"Run the update service, stream its live progress, restart the daemon/indicator, and compare /version with the target."}],"verification":[{"check":"Installed package, daemon /version, and indicator version all equal the update target","expected":"Verified target runtime, not merely queued or process-started"}],"failure_modes":[{"symptom":"UI remains on updating/queued","likely_cause":"The update worker was never executed or progress was not connected","recovery":"Inspect update job status/log stream and fail explicitly if no worker owns it"},{"symptom":"Restart verification fails","likely_cause":"Old daemon retained port ownership or new runtime did not become ready","recovery":"Resolve exact port PID, preserve unrelated processes, restart, then verify /health and /version"}],"source_of_truth":["packages/cli/src/update-service.ts","packages/cli/src/update-worker.ts","packages/cli/src/daemon.ts","packages/cli/src/tray.ts"]},
|
|
@@ -432,7 +432,7 @@
|
|
|
432
432
|
"id": "tool.adjudicate",
|
|
433
433
|
"kind": "tool",
|
|
434
434
|
"title": "Evidence-bound adjudication",
|
|
435
|
-
"summary": "Resolve one genuine decision impasse through
|
|
435
|
+
"summary": "Resolve one genuine decision impasse outside the accumulated parent narrative through a frozen evidence record, fresh scoped constituent review, host-validated citations and quorum, a final judge, and a durable verdict receipt.",
|
|
436
436
|
"aliases": ["adjudicate", "adjudication", "decision impasse", "impartial decision", "evidence-bound decision"],
|
|
437
437
|
"keywords": ["agent-bound", "impasse", "evidence", "constituents", "quorum", "judge", "verdict", "dissent"],
|
|
438
438
|
"maturity": "stable",
|
|
@@ -440,16 +440,20 @@
|
|
|
440
440
|
"audiences": ["coding-agent", "maintainer", "interactive-user"],
|
|
441
441
|
"direct_callable": false,
|
|
442
442
|
"use_when": [
|
|
443
|
-
"
|
|
443
|
+
"A top-level full agent has one exact unresolved decision with at least two materially plausible outcomes",
|
|
444
444
|
"The admissible evidence supports conflicting conclusions or risk tradeoffs",
|
|
445
|
-
"The decision changes the next action and benefits from
|
|
445
|
+
"The decision changes the next action and benefits from fresh evidence-scoped review that reduces parent-context anchoring",
|
|
446
|
+
"The caller can make record selection and framing explicit and auditable"
|
|
446
447
|
],
|
|
447
448
|
"avoid_when": [
|
|
448
449
|
"The question is an ordinary implementation choice, factual lookup, or substitute for gathering missing evidence",
|
|
449
|
-
"The caller is a child agent, daemon direct-tool client,
|
|
450
|
+
"The caller is a child agent, daemon direct-tool client, bounded /v1/chat/completions loop, Telegram runner, or voice-call runner"
|
|
450
451
|
],
|
|
451
452
|
"interfaces": [
|
|
452
|
-
{"type": "tui-agent-tool", "target": "omnius", "description": "
|
|
453
|
+
{"type": "tui-agent-tool", "target": "omnius", "description": "Top-level interactive agent with the specialized streamed adjudication block"},
|
|
454
|
+
{"type": "cli-agent-tool", "target": "omnius \"<task>\"", "description": "Top-level one-shot agent with ordinary tool events"},
|
|
455
|
+
{"type": "agent-run", "target": "POST /v1/run", "description": "Spawned top-level full agent; subject to the active tool profile"},
|
|
456
|
+
{"type": "agent-chat", "target": "POST /v1/chat", "description": "Default full-agent chat mode; subject to the active tool profile"}
|
|
453
457
|
],
|
|
454
458
|
"references": [
|
|
455
459
|
{"type": "guide", "target": "docs/ADJUDICATION.md", "relation": "canonical-guide"},
|
|
@@ -460,10 +464,10 @@
|
|
|
460
464
|
"related": ["workflow.evidence-bound-adjudication", "layer.orchestration", "layer.observability", "module.orchestrator", "guide.adjudication-uppercase"],
|
|
461
465
|
"verification": [
|
|
462
466
|
{"check": "Run pnpm harness:adjudication", "expected": "Parallel constituent streams, judge synthesis, and a durable receipt complete without loading a real model"},
|
|
463
|
-
{"check": "Inspect the
|
|
467
|
+
{"check": "Inspect the parent-runner and child-agent tool registration tests", "expected": "Top-level full agents keep adjudicate inline and host scope enforcement excludes it from child runners"}
|
|
464
468
|
],
|
|
465
469
|
"failure_modes": [
|
|
466
|
-
{"symptom": "A caller attempts /v1/tools/adjudicate/call", "likely_cause": "Static tool discovery was mistaken for daemon direct-tool exposure", "recovery": "Use
|
|
470
|
+
{"symptom": "A caller attempts /v1/tools/adjudicate/call", "likely_cause": "Static tool discovery was mistaken for daemon direct-tool exposure", "recovery": "Use a top-level TUI, one-shot CLI, /v1/run, or default full-agent /v1/chat path"},
|
|
467
471
|
{"symptom": "The case returns held instead of a verdict", "likely_cause": "Admission, citation validation, quorum, or final verdict validation failed", "recovery": "Inspect the receipt and provide a corrected admissible record; do not infer a decision"}
|
|
468
472
|
],
|
|
469
473
|
"source_of_truth": ["docs/ADJUDICATION.md", "packages/orchestrator/src/adjudication.ts", "packages/cli/src/tui/interactive.ts"]
|
|
@@ -85,19 +85,28 @@ origin, network/off-device policy, and risk.
|
|
|
85
85
|
See [Tools, MCP, Hooks, Agents, And Code Graph](../rest/endpoints/tools.md) for
|
|
86
86
|
the complete REST contract.
|
|
87
87
|
|
|
88
|
-
## `adjudicate` Is A Top-Level
|
|
88
|
+
## `adjudicate` Is A Top-Level Full-Agent Tool
|
|
89
89
|
|
|
90
90
|
`adjudicate` resolves a genuine decision impasse through an isolated,
|
|
91
|
-
evidence-scoped panel and final judge. It is agent-bound, but
|
|
92
|
-
|
|
93
|
-
agent
|
|
94
|
-
|
|
91
|
+
evidence-scoped panel and final judge. It is agent-bound, but it is not a
|
|
92
|
+
daemon direct tool. The interactive TUI, one-shot CLI, `POST /v1/run`, and the
|
|
93
|
+
default full-agent `POST /v1/chat` path receive it. REST execution remains
|
|
94
|
+
subject to the active full-agent tool profile.
|
|
95
|
+
|
|
96
|
+
The parent freezes an admissible record before deliberation. Fresh constituent
|
|
97
|
+
contexts receive only assigned evidence and rules, and the judge receives the
|
|
98
|
+
record plus validated findings instead of the parent transcript. This reduces
|
|
99
|
+
anchoring from accumulated working context. It does not erase bias from record
|
|
100
|
+
selection or framing, which remain visible in the durable receipt.
|
|
95
101
|
|
|
96
102
|
The tool is intentionally excluded from sub-agents. This prevents nested
|
|
97
103
|
adjudication panels, recursive live blocks, and unbounded inference fan-out.
|
|
98
|
-
It is also absent from the daemon direct-tool registry
|
|
99
|
-
|
|
100
|
-
|
|
104
|
+
It is also absent from the daemon direct-tool registry, the bounded
|
|
105
|
+
`/v1/chat/completions` mini-loop, Telegram, and voice-call agents. Do not infer
|
|
106
|
+
`GET /v1/tools/adjudicate`, `POST /v1/tools/adjudicate/call`, or a Telegram
|
|
107
|
+
tool route from its catalog entry. Only the interactive TUI renders the
|
|
108
|
+
specialized streamed adjudication block. Headless and REST full-agent paths
|
|
109
|
+
use ordinary run/tool events and still persist the same receipt artifacts.
|
|
101
110
|
|
|
102
111
|
Use these offline discovery commands:
|
|
103
112
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.678",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.678",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|