omnius 1.0.892 → 1.0.893

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,127 @@
1
+ # Connection and task recovery
2
+
3
+ Read this guide only for an observed connection, command, approval or provider
4
+ blocker. Keep the user's target and question in view. Explain what prevented the
5
+ operation and the next useful step; after repair, continue the investigation.
6
+
7
+ Commands below use an installed `rea`. If none is available, use the package
8
+ invocation in `SKILL.md` when acquiring REA is authorized. Follow the connected
9
+ server's schemas and the installed CLI's help rather than assuming repository
10
+ main and an older release expose the same arguments.
11
+
12
+ ## Choose the remedy from the observed failure
13
+
14
+ | Observation | Meaning and next step |
15
+ | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
16
+ | No REA tools in the active session | Inspect registration with `rea doctor --client codex --json`. A skill installation alone does not register MCP. |
17
+ | Missing, malformed or stale registration | Prepare a scoped setup plan; apply only authorized changes with backups. |
18
+ | Aligned registration, but no connected tools | Restart/reconnect the client. Doctor checks registration; it cannot establish the current agent's connection. Inspect the client's launch error if reconnection fails. |
19
+ | `MCP tool call requires approval, but approval policy is never` | Codex rejected the call before REA executed it. Do not install an engine or repeat setup to solve this client-policy decision. See the approval section below. |
20
+ | REA returns `provider_unavailable` or an unavailable tool entry | Read that operation's provider diagnostics or `binary_session.result.tool_availability`. Expand each group's tool names and inherit the shared client requirements unless overridden. Use the operation's availability, reason, and remediation; a complete tool catalog does not imply every operation is available. |
21
+ | `rea` is missing in a child shell, or Node is incompatible | Inspect the actual shell PATH and launcher/runtime. A prefix installation may be absent from a login shell's PATH; this does not establish a broken MCP registration. |
22
+
23
+ If the client cannot launch its shell/sandbox helper or read the installed skill,
24
+ inspect its launch diagnostic. For example, Codex can refuse helper aliases when
25
+ CODEX_HOME is under `/tmp`; use an authorized profile outside the OS temporary
26
+ directory. REA setup cannot repair the client's executor. Preserve the sandbox
27
+ instead of silently disabling it to make an analysis command work.
28
+
29
+ Static JavaScript and ordinary ZIP inventory need neither Hopper nor Ghidra.
30
+ HAR inspection is offline and does not require a live browser. Native
31
+ decompilation, Android analysis and firmware extraction have their own
32
+ bring-your-own prerequisites. Use supported inventory/static evidence when it
33
+ answers part of the question, and name the unavailable evidence separately.
34
+ Do not substitute another target. Label observations from ordinary shell tools
35
+ as such; only actual REA output supplies REA Evidence.
36
+
37
+ ## Repair registration when needed
38
+
39
+ For Codex:
40
+
41
+ ```bash
42
+ rea doctor --client codex --json
43
+ rea setup --client codex --dry-run --json
44
+ ```
45
+
46
+ Use the current supported client's ID: `claude_code`, `claude_desktop`, `codex`,
47
+ `cursor`, `gemini_cli`, `windsurf`, `devin`, `opencode`, `antigravity`,
48
+ `copilot_cli`, `commandcode`, `qwen_code`, `vscode`, `trae`, `grok_build`, `omp`, `pi`,
49
+ `hermes`, `qoder`, `droid`, `zcode`, `dsh`, or `grok_bot`. If unknown, inspect `doctor --json` before choosing a
50
+ scope. `grok_bot` uses a chat registration step rather than local `mcp.json`.
51
+ For unsupported clients, use version-pinned manual stdio registration or CLI.
52
+
53
+ Show the plan's exact paths, backups, changes and bundled-skill replacement.
54
+ Obtain approval for writes when that concrete scope is not already authorized,
55
+ then apply the same scope with `rea setup --client codex --yes`. Add
56
+ `--install-hopper` only when separately needed and explicitly approved. Do not
57
+ install or upgrade unrelated prerequisites. Restart/reconnect, verify tools
58
+ actually appear, and resume the original task. If they remain absent, inspect
59
+ the launch failure rather than looping through setup.
60
+
61
+ ## Codex tool approval is separate from REA readiness
62
+
63
+ REA tools have no permission-grant handshake. Codex can still require approval
64
+ because an operation creates owned resources, launches a helper or has cleanup
65
+ effects. An advertised tool or successful doctor result does not override that
66
+ client policy. `workspace-write` alone does not resolve an MCP approval
67
+ rejection, and `approval_policy = "never"` does not mean every MCP tool is
68
+ preapproved.
69
+
70
+ When interactive approval is available, use the client's approval flow for the
71
+ requested operation. In an unattended run, continue through an authorized CLI
72
+ workflow if the execution environment permits it, or report the blocked
73
+ operation and the approval needed to proceed. Do not retry the same rejected
74
+ call, silently broaden approvals, or rewrite MCP effects as read-only.
75
+
76
+ For an operator who explicitly wants to preapprove named operations in a
77
+ disposable Codex profile, current Codex supports per-tool configuration. For
78
+ example, opening and closing an analysis session can be scoped independently:
79
+
80
+ ```toml
81
+ [mcp_servers.rea.tools.open_binary]
82
+ approval_mode = "approve"
83
+
84
+ [mcp_servers.rea.tools.close_binary]
85
+ approval_mode = "approve"
86
+ ```
87
+
88
+ Use the actual server ID and only the operations whose effects were approved;
89
+ this example does not approve inspection, extraction or runtime execution.
90
+ Show the proposed config edit and preserve unrelated entries and backups before
91
+ writing. Managed policy can constrain client settings. Consult the
92
+ [Codex configuration reference](https://learn.chatgpt.com/docs/config-file/config-reference)
93
+ for the installed client's supported settings. This is an optional recovery
94
+ choice, not a prerequisite for every REA task.
95
+
96
+ ## Continue through an installed CLI
97
+
98
+ Check the command environment only if the launcher fails:
99
+
100
+ ```bash
101
+ command -v rea
102
+ command -v node
103
+ node --version
104
+ rea --version
105
+ ```
106
+
107
+ Use the public launcher at its known installation path with a supported existing
108
+ Node on PATH when the child shell loses a prefix installation. Avoid internal
109
+ `dist/cli.js` entrypoints or global toolchain changes. MCP may have its own valid
110
+ launcher even when a shell cannot resolve `rea`.
111
+
112
+ For a user-supplied JavaScript tree or ASAR, select output files in the authorized
113
+ workspace and save complete Evidence before reading a view:
114
+
115
+ ```bash
116
+ rea analyze-javascript-application /absolute/path/to/app --json > app-evidence.json
117
+ jq -c '{source: {kind: "inline", evidence: .}, view: {kind: "summary"}}' app-evidence.json > app-view.json
118
+ rea inspect-analysis-view app-view.json
119
+ ```
120
+
121
+ These commands do not register MCP or install an analysis engine. CLI JavaScript
122
+ JSON is complete and can be very large; redirect it rather than loading it into
123
+ context. Use an existing JSON processor if `jq` is absent, without installing
124
+ one just for this recipe. Inspect a module page or item using the same inline
125
+ source and the [JavaScript recipes](javascript-applications.md). Preserve graph
126
+ coverage, limitations and unknowns. Native CLI analysis still requires its
127
+ selected engine, and all CLI operations retain the host's execution permissions.
@@ -0,0 +1,71 @@
1
+ # Evidence, comparison, and verification workflows
2
+
3
+ Evidence-producing tools return the complete Evidence record directly in MCP
4
+ `structuredContent` and CLI JSON. Read `normalized_result` for operation data,
5
+ and cite `evidence_id` when another tool or your explanation needs a stable
6
+ reference. Preserve authority, limitations, coverage, and residual unknowns. If a result
7
+ is incomplete or paginated, continue only when the remaining data matters to
8
+ the task; do not fetch a bundle or resource merely to read a result already
9
+ returned inline. When complete `inspect_binary_layout` or
10
+ `analyze_javascript_application` Evidence is already retained, call
11
+ `inspect_analysis_view` for a summary, one section/symbol/module, or a stable
12
+ page instead of repeating the producer.
13
+
14
+ Completed `inspect_artifact` inventory also supports a summary and
15
+ `view: {kind: "inventory", collection: "occurrences", logical_paths: ["package.json", "main.js"]}`.
16
+ Omit `logical_paths` to page all available occurrences; `[]` selects none.
17
+ Other inventory collections are `nodes`, `edges` and
18
+ `integrity_contradictions`. Keep `source_complete` separate from page exhaustion:
19
+ a missing match in partial source Evidence does not establish absence. Use the
20
+ returned parent Evidence ID for subsequent views and export before closing the
21
+ session when the source must survive it.
22
+ When `tools/list` advertises `inspect_artifact.detail`, request `"summary"` to
23
+ retain its complete source and receive that view immediately. Without that
24
+ advertised choice, keep the existing complete call. CLI inspection returns
25
+ portable complete Evidence; save it before projecting a selected inline view.
26
+
27
+ Use `record_unknown` to track unresolved questions in the user's investigation
28
+ and name the authority or environment still required. Supply supporting and
29
+ contradicting evidence IDs. It updates the session registry directly.
30
+ Use `update_unknown` with the current revision; reread after a stale revision
31
+ instead of retrying blindly. Only qualifying observed evidence can verify a
32
+ resolution.
33
+
34
+ Use comparisons with complete, compatible page sets when claiming equivalence
35
+ or absence:
36
+
37
+ - `compare_artifacts` compares inventory pages by occurrence path, content,
38
+ metadata, and graph relations.
39
+ - `compare_functions` compares explicit function Evidence, not fuzzy
40
+ whole-binary matches.
41
+ - `compare_bundles` compares canonical bundle membership and unknown history.
42
+ - `find_changed_behavior` combines existing comparisons; static differences
43
+ remain candidates, not causal proof.
44
+ - `build_call_path` needs explicit function dossiers from one artifact/provider;
45
+ an incomplete frontier makes absence unknown.
46
+ - `correlate_static_and_runtime` uses explicit mappings; matching patterns are
47
+ hypotheses, not causality.
48
+ - `verify_reconstruction` evaluates a finite typed specification. A pass covers
49
+ only declared comparable claims, not global equivalence.
50
+
51
+ Process captures are opt-in behavioral evidence, not a security sandbox. V3
52
+ captures cannot be upgraded to V4; rerun the original scenario. Distinguish root
53
+ exit from descendant settlement and require freshness when the task needs it.
54
+ A timed-out target that must write a final report needs `finalization_ms`: REA
55
+ sends SIGTERM to the captured root, keeps observing, and sends SIGKILL once
56
+ only if the target has not exited by the end of the interval.
57
+ `exit.finalization.signals` lists each attempt with its delivery result; the
58
+ observed exit signal stays in `exit.signal`, `exit.code` is null for every
59
+ deadline exit, and the code of a finalizer that exited on its own is in
60
+ `exit.finalization.exit_code` (null on a signal exit or when no exit was
61
+ observed).
62
+
63
+ Use `inspect_analysis_view` with `view: {kind: "api-surface"}` on retained
64
+ `inspect_web_network_capture` HAR Evidence to group observed request lines by
65
+ method, origin and path template. Format matches are inferences, not handler
66
+ identity or schemas. Group pages cite parent record ordinals; consult record
67
+ coverage and exclusions before claiming completeness. No requests are replayed.
68
+ When the connected schema advertises `include_query_parameter_names`, select
69
+ it in the view for distinct observed names with original record ordinals. Query
70
+ values are omitted; the names establish neither required parameters nor a
71
+ complete server schema. Keep the original parent Evidence for exact URLs.
@@ -0,0 +1,218 @@
1
+ # JavaScript and Electron application artifacts
2
+
3
+ For captured or bundled JavaScript that needs readable source recovery, use
4
+ `recover_javascript_sources` with an absolute `path` and absent
5
+ `output_directory`. Supply related runtime/shared/lazy files in
6
+ `additional_paths` when advertised, then analyze the returned `analysis_input`
7
+ directory together. Each input retains its own snapshot, digest and byte-range
8
+ provenance; inputs and recovered code are never executed. Recovery requires a
9
+ caller-supplied Wakaru on Linux x64; see [the recovery guide](https://github.com/morluto/rea/blob/main/docs/javascript-recovery.md).
10
+
11
+ Use `analyze_javascript_application` directly on the operator-supplied ASAR or
12
+ extracted tree. When the question concerns known source paths and the connected
13
+ schema advertises `source_paths`, select exact inventoried paths such as
14
+ `["package.json", "main.js", "preload.js"]`. Include supporting manifests or
15
+ source maps explicitly; dependencies are not implicitly analyzed. REA retains
16
+ the complete artifact inventory and identity but reads source text and analyzes
17
+ only selected files. The result and summary record `source_selection`; files
18
+ outside scope and their relationships remain unknown, so partial application
19
+ coverage does not mean the selected source failed. Use repeated `--source-path`
20
+ on either static application CLI route. Omit the selection when the question
21
+ requires complete application analysis. `detail: "summary"` reduces delivery
22
+ and does not by itself reduce analysis work.
23
+
24
+ Exact `#alias` specifiers resolve through the importer's
25
+ enclosing package `imports` map to package-local files; nested `node_modules`
26
+ packages use their own map. Wildcard, recursive, and external-package import
27
+ targets stay unresolved with that limitation. When size is unknown or large and the connected schema advertises
28
+ `detail`, request `detail: "summary"`. This returns an `inspect_analysis_view`
29
+ Evidence record with a distinct ID and a `normalized_result.parent_evidence_id`
30
+ for the complete retained application analysis. Source-map contents are part of
31
+ that static analysis. Read findings, coverage, limitations and unknowns, then
32
+ follow a specific unanswered question. Older servers without `detail` return
33
+ the complete application Evidence inline when it fits.
34
+
35
+ When the connected schema advertises `max_heap_mb` and `analysis_timeout_ms`,
36
+ these select the isolated source analyzer's old-space heap and per-source
37
+ deadline. Defaults are 1024 MiB and 300000 ms. They do not change the MCP
38
+ process heap. A Bun-hosted REA does not enforce the heap choice; on Windows it
39
+ instead limits the analyzer's committed memory to that choice plus a 512 MiB
40
+ runtime reserve.
41
+ Resource-limited analyses preserve completed static facts and
42
+ report partial semantic coverage with specific unknown scopes; this does not
43
+ mean the source is malformed. Inspect those limits before retrying a source.
44
+ When expanded relationships exceed the parent's available memory, inspect the
45
+ file's modules item view for retained `static_analysis` and
46
+ `semantic_module_analysis`. Their facts remain available even when graph links
47
+ are unknown. Cumulative result exhaustion can stop analysis before every file
48
+ is examined; the inventory and remaining unknown scopes distinguish that case.
49
+ Timeout or cancellation after source analysis begins retains partial Evidence
50
+ in the same session. A returned `error.details.partial_observation` reference
51
+ can be supplied directly to `inspect_analysis_view`. If the SDK cancels locally, retrieve its recorded ID from
52
+ the Evidence bundle before inspecting the partial analysis.
53
+
54
+ ## Read a module without repeating analysis
55
+
56
+ Use the actual returned parent ID, on the same connection, as `source.evidence_id`.
57
+ The following IDs are placeholders to replace with returned values. When the
58
+ module's node ID is not already known, page identities before selecting an item.
59
+ Pages return only node IDs, paths and roles; choose a useful page size and follow
60
+ `coverage.next_offset` when another page matters:
61
+
62
+ ```json
63
+ {
64
+ "source": {
65
+ "kind": "retained-evidence",
66
+ "evidence_id": "ev_ACTUAL_PARENT_ID"
67
+ },
68
+ "view": { "kind": "page", "collection": "modules", "offset": 0, "limit": 16 }
69
+ }
70
+ ```
71
+
72
+ Select the relevant page entry by its exact `node_id` and recorded role:
73
+
74
+ ```json
75
+ {
76
+ "source": {
77
+ "kind": "retained-evidence",
78
+ "evidence_id": "ev_ACTUAL_PARENT_ID"
79
+ },
80
+ "view": {
81
+ "kind": "item",
82
+ "collection": "modules",
83
+ "selector": { "node_id": "jag_node_ACTUAL_NODE_ID" }
84
+ }
85
+ }
86
+ ```
87
+
88
+ Module pages include asset, bundled and source module roles, so one path can
89
+ identify several entries. Use `selector.path` only when uniqueness is established;
90
+ the returned node ID avoids needing a complete inventory to prove uniqueness. On ambiguity,
91
+ select the matching node ID from the page or the error's candidates. Follow
92
+ `next_offset` when another page matters. An item exposes that module node's
93
+ recorded observations, identity, hashes, exports and source ranges; it does not
94
+ include every child syntax observation, related edge or original source file.
95
+ An absent item fact is not evidence of absence from the whole application.
96
+
97
+ For canonical identities and retained source-range counts, use a typed reference
98
+ page instead of reading every full item:
99
+
100
+ ```json
101
+ {
102
+ "source": {
103
+ "kind": "retained-evidence",
104
+ "evidence_id": "ev_ACTUAL_PARENT_ID"
105
+ },
106
+ "view": {
107
+ "kind": "javascript",
108
+ "collection": "modules",
109
+ "projection": "references",
110
+ "where": { "path": "main.js", "kind": "javascript-module" },
111
+ "offset": 0,
112
+ "limit": 16
113
+ }
114
+ }
115
+ ```
116
+
117
+ Filters match exact retained strings; omit a filter to include all values, use
118
+ `path: null` for unavailable paths, and `path: ""` for a recorded empty path.
119
+ Rows preserve canonical `identity` and distinct observation support states in
120
+ `basis`. `retained_source_range_count` counts retained source-range observations,
121
+ not runtime imports or unique reference sites. Use a row's `node_id` with the item
122
+ view above for exact locations and full supporting observations. Follow
123
+ `coverage.next_offset`; page exhaustion describes matching retained rows only.
124
+ Check `source_coverage` for source selection, partial/unknown graph coverage and
125
+ unknown counts before drawing a negative conclusion.
126
+
127
+ ## Trace only the remaining question
128
+
129
+ Use `trace_application_feature` on the parent application Evidence for one
130
+ literal node ID, route, string, API, IPC channel, module, or native export.
131
+ Select `incoming` for relationships leading to the seed, `outgoing` for those
132
+ leaving it, and `both` when the question needs both. Trace traversal includes
133
+ containment relationships, so even a narrow seed can expand many nodes; a
134
+ bidirectional trace can reach unrelated sibling modules. A module item or page
135
+ is preferable when its observations already answer the question. Do not treat
136
+ all reached nodes as participants in the feature.
137
+
138
+ Reuse retained parent Evidence when the server advertises it, or supply complete
139
+ Evidence inline. Include Hopper or Ghidra Evidence only when its artifact digest
140
+ matches exactly.
141
+
142
+ ## Recover an oversized display
143
+
144
+ An oversized response reports `resource_constraint` and
145
+ `details.resource: "transport"`. Reuse
146
+ `details.reported_limits.evidence_reference` with `inspect_analysis_view` for a
147
+ summary, one module, or a stable page of module identities.
148
+ `export_evidence_bundle` writes the complete canonical session to a
149
+ caller-selected file. These workflows keep the original Evidence and coverage;
150
+ a broad follow-up can also exceed framing.
151
+
152
+ A client can truncate a successful result inside its text envelope without a
153
+ REA `resource_constraint`. Treat a truncation notice or incomplete JSON as a
154
+ display limitation; do not claim the full record was examined. Reuse the known
155
+ parent ID for smaller views, or export complete Evidence to a selected file
156
+ while the session remains open. If the parent ID was lost from the preview,
157
+ use the prior analysis summary or explicit ledger entries to recover it; do
158
+ not invent an ID or rerun analysis just to reproduce the same display.
159
+
160
+ BrowserWindow preferences, preload and contextBridge surfaces, IPC
161
+ registrations, utility processes, and native binding requests are static syntax
162
+ observations. Only a unique exact literal IPC channel match supports an inferred
163
+ pairing. Dynamic or ambiguous channels remain unresolved. A requested `.node`
164
+ member is not a verified native export. Never claim runtime reachability,
165
+ registration, defaults, or policy enforcement from static analysis.
166
+
167
+ For version comparison, analyze each version once, then call
168
+ `compare_application_versions`. Accept only its digest, source-map, structural
169
+ fingerprint, or non-module semantic matches. Module ordinals and minified names
170
+ are not persistent identity. Report added or removed only with complete
171
+ opposite-side coverage; otherwise report unknown.
172
+
173
+ When the question asks how one exact exported callable's returned object shape
174
+ changed, analyze each version once and then call
175
+ `compare_javascript_export_shapes` with explicit module paths and export names.
176
+ Use the returned IDs on the same connection, or complete inline Evidence
177
+ records, from both analysis calls. Accept variant
178
+ pairing only through the tool's unique exact literal discriminant. Read
179
+ `property_inventories` and each change's `presence` before treating `unknown` as
180
+ "the name was not observed": inventories list observed property names even when
181
+ values stay unknown, with a `source_range` for each paired or unpaired variant.
182
+ Array holes and mutation-invalidated slots are not observed properties.
183
+ Complete parent coverage reports presence-only
184
+ `added`/`removed` independently of unresolved values. Cite the
185
+ comparison Evidence and report JSON Pointer changes; dynamic values, ambiguous
186
+ variants, and incomplete parent-property coverage stay unknown. This is static
187
+ inference, not runtime behavior. When runtime semantics are needed, run
188
+ behavioral probes against the relevant application versions and capture them
189
+ through the available browser, Electron, or process workflows.
190
+
191
+ ## Reusing application Evidence
192
+
193
+ When advertised by the connected server, application trace and compare tools
194
+ accept complete inline Evidence or
195
+ `{"kind":"retained-evidence","evidence_id":"ev_<64 lowercase hex characters>"}`
196
+ for their application input (`application`, or `left`/`right`). `inspect_analysis_view`
197
+ uses the same retained-reference form in `source`, or portable inline Evidence,
198
+ to project a summary, module page, or one module with its recorded observations.
199
+ This notation is
200
+ a template: replace it with the actual returned ID. Versions before 4.1.0 accept only full
201
+ inline Evidence. Use the exact ID
202
+ returned by the producer on the same MCP connection. Resolution does not run
203
+ analysis or select a provider; findings remain inline. Native observation
204
+ arrays still take full Evidence. `close_binary` clears retained references;
205
+ export a bundle before closing, or supply portable inline Evidence in another
206
+ connection. A missing reference includes its ID and recovery guidance.
207
+
208
+ For exact file/native metadata or processing gaps, use
209
+ `view: {kind: "javascript-facts", where: {paths: ["package.json"]}, property_keys: ["name", "operation", "analysis_status"], limit: 32}`.
210
+ Rows retain canonical node/observation identity and original Evidence. Paths
211
+ match Evidence artifact-path/source-range locations; missing properties remain
212
+ omitted and source coverage stays separate from page exhaustion. Batch paths and
213
+ select only needed property keys; complete Evidence remains accessible by export.
214
+ If names are unknown, opt into `include_available_property_keys: true`; it lists
215
+ the original keys per returned observation without unselected values. Keep each
216
+ row's node/observation identity paired when composing facts.
217
+ These rows select application-graph observations; semantic relationships and
218
+ semantic unknown records remain in the complete parent Evidence and trace tools.