enigma-memory 0.1.0
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/LICENSE +55 -0
- package/README.md +379 -0
- package/apps/cli/bin/enigma.mjs +1117 -0
- package/apps/desktop/src/app.js +1327 -0
- package/apps/desktop/src/index.html +1373 -0
- package/apps/desktop/src/styles.css +386 -0
- package/apps/gateway/bin/enigma-gateway.mjs +52 -0
- package/apps/gateway/src/server.mjs +1403 -0
- package/apps/native-host/README.md +265 -0
- package/apps/native-host/bin/enigma-native-host.mjs +499 -0
- package/apps/native-host/manifests/com.enigma.native_host.chrome.json +9 -0
- package/apps/native-host/manifests/com.enigma.native_host.edge.json +9 -0
- package/apps/native-host/manifests/com.enigma.native_host.firefox.json +9 -0
- package/apps/relay/bin/enigma-relay.mjs +52 -0
- package/apps/relay/src/server.mjs +1571 -0
- package/apps/verifier/bin/enigma-verify.mjs +240 -0
- package/deploy/docker-compose.production.example.yml +150 -0
- package/deploy/kubernetes/enigma-backend.example.yaml +580 -0
- package/package.json +196 -0
- package/packages/adapters/PACKAGE_CONTRACT.md +47 -0
- package/packages/adapters/src/index.js +183 -0
- package/packages/boundary/src/index.js +468 -0
- package/packages/connectors/src/index.js +533 -0
- package/packages/core/src/index.js +766 -0
- package/packages/enterprise/src/index.js +505 -0
- package/packages/importers/src/index.js +1083 -0
- package/packages/mcp-server/bin/enigma-mcp.mjs +19 -0
- package/packages/mcp-server/src/index.js +1185 -0
- package/packages/mesh/src/index.js +531 -0
- package/packages/metering/PACKAGE_CONTRACT.md +20 -0
- package/packages/metering/src/index.js +246 -0
- package/packages/optimizer/src/index.js +707 -0
- package/packages/passport/src/index.js +651 -0
- package/packages/settlement/PACKAGE_CONTRACT.md +28 -0
- package/packages/settlement/src/index.js +369 -0
- package/packages/storage/PACKAGE_CONTRACT.md +23 -0
- package/packages/storage/src/index.js +392 -0
- package/packages/vault/src/index.js +904 -0
- package/scripts/build-ai-orchestration-plan.mjs +248 -0
- package/scripts/build-cloudflare-pages-release-packet.mjs +287 -0
- package/scripts/build-cloudflare-token-policy.mjs +239 -0
- package/scripts/build-cloudflare-token-request.mjs +314 -0
- package/scripts/build-demo-assets.mjs +263 -0
- package/scripts/build-edge-backend-workers.mjs +353 -0
- package/scripts/build-goal-completion-audit.mjs +398 -0
- package/scripts/build-hosted-probe-worker.mjs +191 -0
- package/scripts/build-operator-acceptance-packet.mjs +254 -0
- package/scripts/build-operator-evidence-starter.mjs +525 -0
- package/scripts/build-production-backend-env-kit.mjs +384 -0
- package/scripts/build-production-dependency-report.mjs +369 -0
- package/scripts/build-production-handoff-packet.mjs +475 -0
- package/scripts/build-production-readiness-manifest.mjs +209 -0
- package/scripts/build-production-status-board.mjs +297 -0
- package/scripts/build-production-storage-migration.mjs +86 -0
- package/scripts/build-production-workplan.mjs +371 -0
- package/scripts/build-review-packet.mjs +594 -0
- package/scripts/check.mjs +419 -0
- package/scripts/cloudflare-ops.mjs +1672 -0
- package/scripts/cloudflare-secret-env.mjs +128 -0
- package/scripts/collect-hosted-backend-live-evidence.mjs +263 -0
- package/scripts/infrastructure-readiness.mjs +944 -0
- package/scripts/install-enigma-local.mjs +270 -0
- package/scripts/memory-optimization-benchmark.mjs +242 -0
- package/scripts/monitor-live-endpoints.mjs +358 -0
- package/scripts/release-audit.mjs +5588 -0
- package/scripts/release-provenance.mjs +250 -0
- package/scripts/run-backend-readiness-smoke.mjs +220 -0
- package/scripts/validate-backup-restore-drill.mjs +166 -0
- package/scripts/validate-cloudflare-credentials.mjs +112 -0
- package/scripts/validate-cloudflare-worker-inspect.mjs +179 -0
- package/scripts/validate-domain-tls.mjs +248 -0
- package/scripts/validate-hosted-backend-live.mjs +319 -0
- package/scripts/validate-incident-drill.mjs +221 -0
- package/scripts/validate-kms-custody.mjs +235 -0
- package/scripts/validate-legal-compliance-approval.mjs +274 -0
- package/scripts/validate-monitoring-alerting.mjs +263 -0
- package/scripts/validate-network-access-policy.mjs +285 -0
- package/scripts/validate-operator-acceptance.mjs +298 -0
- package/scripts/validate-production-manifests.mjs +325 -0
- package/scripts/validate-public-site-security.mjs +252 -0
- package/scripts/validate-security-threat-model.mjs +285 -0
- package/scripts/validate-service-settlement.mjs +256 -0
- package/scripts/validate-support-sla.mjs +190 -0
- package/scripts/validate-tenant-policy-approval.mjs +228 -0
- package/scripts/validate-usage-metering.mjs +224 -0
- package/scripts/validate-whitepaper-claims.mjs +166 -0
- package/specs/boundary-manifest-v1.schema.json +35 -0
- package/specs/capsule-v1.schema.json +55 -0
- package/specs/claim-boundary-manifest-v1.schema.json +22 -0
- package/specs/connector-profile-v1.schema.json +62 -0
- package/specs/deletion-tombstone-v1.schema.json +26 -0
- package/specs/enterprise-policy-v1.schema.json +59 -0
- package/specs/gateway-request-v1.schema.json +32 -0
- package/specs/goal-completion-audit-v1.schema.json +70 -0
- package/specs/hosted-backend-live-evidence-v1.schema.json +147 -0
- package/specs/import-report-v1.schema.json +214 -0
- package/specs/infrastructure-readiness-manifest-v1.schema.json +130 -0
- package/specs/memory-event-v1.schema.json +42 -0
- package/specs/mesh-node-v1.schema.json +126 -0
- package/specs/passport-v1.schema.json +50 -0
- package/specs/production-handoff-packet-v1.schema.json +149 -0
- package/specs/receipt-v1.schema.json +61 -0
- package/specs/relay-record-v1.schema.json +43 -0
- package/specs/state-checkpoint-v1.schema.json +37 -0
- package/specs/trust-bundle-v1.schema.json +56 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# Enigma native messaging host
|
|
2
|
+
|
|
3
|
+
This directory contains install assets for registering the Enigma browser-extension native messaging host.
|
|
4
|
+
|
|
5
|
+
The host name is always:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
com.enigma.native_host
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The browser extension uses this host for local, explicit, user-approved context requests. The host runs on the user's machine, reads the local Enigma bundle selected by `ENIGMA_BUNDLE`, and returns transient context plus receipt metadata to the extension. It must not put raw memory plaintext in receipt objects, relay records, witness checkpoints, SIEM events, or public proof artifacts.
|
|
12
|
+
|
|
13
|
+
## Trust boundary and non-claims
|
|
14
|
+
|
|
15
|
+
- The native host is inside the local device trust boundary. Any process that can replace the host executable, wrapper, manifest, or `ENIGMA_BUNDLE` path can change what the extension receives.
|
|
16
|
+
- The extension does not use browser sync storage (`chrome.storage.sync`) at all. Keep raw memory in the local Enigma bundle; browser records are limited to target metadata, insertion counts, timestamps, and receipt metadata.
|
|
17
|
+
- The extension requires explicit user approval before inserting returned context into a provider page.
|
|
18
|
+
- Provider-native memory is cache only. The local Enigma bundle remains canonical.
|
|
19
|
+
- Enigma can verify Enigma-controlled vault state and receipts. It cannot prove that a closed provider deleted hidden copies, disabled personalization, or made a model forget.
|
|
20
|
+
|
|
21
|
+
## Files
|
|
22
|
+
|
|
23
|
+
- `manifests/com.enigma.native_host.chrome.json` — Chrome native-host manifest template.
|
|
24
|
+
- `manifests/com.enigma.native_host.edge.json` — Microsoft Edge native-host manifest template.
|
|
25
|
+
- `manifests/com.enigma.native_host.firefox.json` — Firefox native-host manifest template.
|
|
26
|
+
|
|
27
|
+
The CLI manifest generator and install-plan preview are the recommended path because they render browser-specific JSON and manual install targets from explicit arguments. The checked-in templates remain valid manual fallbacks when you need to inspect or construct a manifest by hand.
|
|
28
|
+
|
|
29
|
+
## Prerequisites
|
|
30
|
+
|
|
31
|
+
1. Install Enigma so `enigma-native-host` is available, or build/use the repository host executable.
|
|
32
|
+
2. Create a local bundle and use an absolute path for it:
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
mkdir -p "$HOME/.enigma"
|
|
36
|
+
enigma init --bundle "$HOME/.enigma/bundle.json" --subject local-user --display-name "Local user"
|
|
37
|
+
export ENIGMA_BUNDLE="$HOME/.enigma/bundle.json"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Windows PowerShell:
|
|
41
|
+
|
|
42
|
+
```powershell
|
|
43
|
+
New-Item -ItemType Directory -Force "$HOME\.enigma"
|
|
44
|
+
enigma init --bundle "$HOME\.enigma\bundle.json" --subject local-user --display-name "Local user"
|
|
45
|
+
[Environment]::SetEnvironmentVariable('ENIGMA_BUNDLE', "$HOME\.enigma\bundle.json", 'User')
|
|
46
|
+
$env:ENIGMA_BUNDLE="$HOME\.enigma\bundle.json"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
3. Resolve the absolute path to the host executable. Native messaging manifests do not expand `~`, `$HOME`, `%USERPROFILE%`, shell aliases, or `PATH` lookups. Use the full executable path, for example:
|
|
50
|
+
|
|
51
|
+
- macOS/Linux: `/Users/REPLACE_WITH_USER/.npm-global/bin/enigma-native-host` or `/usr/local/bin/enigma-native-host`
|
|
52
|
+
- Windows: `C:\\Users\\REPLACE_WITH_USER\\AppData\\Roaming\\npm\\enigma-native-host.cmd`
|
|
53
|
+
|
|
54
|
+
Useful checks: `command -v enigma-native-host` on macOS/Linux, or `(Get-Command enigma-native-host.cmd).Source` in Windows PowerShell. If you use a wrapper to set `ENIGMA_BUNDLE`, resolve the wrapper's absolute path instead.
|
|
55
|
+
|
|
56
|
+
4. If your browser does not inherit the `ENIGMA_BUNDLE` user environment, create a small local wrapper that sets `ENIGMA_BUNDLE` and then execs the absolute `enigma-native-host` path. Point the manifest `path` to that wrapper. Keep the wrapper owner-writable only.
|
|
57
|
+
|
|
58
|
+
## Generate a manifest
|
|
59
|
+
|
|
60
|
+
Use the CLI generator instead of hand-editing JSON:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
enigma native-host manifest \
|
|
64
|
+
--browser chrome \
|
|
65
|
+
--host-path "/absolute/path/to/enigma-native-host" \
|
|
66
|
+
--extension-id "REPLACE_WITH_CHROME_EXTENSION_ID" \
|
|
67
|
+
--out ./com.enigma.native_host.json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Windows PowerShell example:
|
|
71
|
+
|
|
72
|
+
```powershell
|
|
73
|
+
enigma native-host manifest `
|
|
74
|
+
--browser edge `
|
|
75
|
+
--host-path "C:\Users\REPLACE_WITH_USER\AppData\Roaming\npm\enigma-native-host.cmd" `
|
|
76
|
+
--extension-id "REPLACE_WITH_EDGE_EXTENSION_ID" `
|
|
77
|
+
--out .\com.enigma.native_host.json
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Use `--browser chrome`, `--browser edge`, or `--browser firefox`. `--host-path` must be an absolute path to the host executable or to a local wrapper that sets `ENIGMA_BUNDLE` and then launches `enigma-native-host`; native messaging manifests do not expand `~`, `$HOME`, `%USERPROFILE%`, shell aliases, `PATH`, or command arguments. Without `--out`, the generator prints manifest JSON to stdout. With `--out`, it writes the manifest file and reports `{ ok, path }`. It does not copy the manifest into browser directories and does not write Windows registry keys.
|
|
81
|
+
|
|
82
|
+
Find the extension ID before running the command. Chrome and Edge native-host manifests require the 32-character lowercase ID shown by the browser:
|
|
83
|
+
|
|
84
|
+
- Chrome: open `chrome://extensions`, enable Developer mode, load `enigma/apps/browser-extension` unpacked, open the Enigma card details, and copy the ID.
|
|
85
|
+
- Edge: open `edge://extensions`, enable Developer mode, load `enigma/apps/browser-extension` unpacked, open the Enigma card details, and copy the ID.
|
|
86
|
+
- Firefox: open `about:debugging#/runtime/this-firefox`, load the extension temporarily, and use the listed extension ID. For repeatable development, set a stable `browser_specific_settings.gecko.id` in the extension manifest or use the ID assigned by the signed build, then pass the same value to `--extension-id`.
|
|
87
|
+
|
|
88
|
+
Keep `ENIGMA_BUNDLE` configured for the browser-launched process. GUI-launched browsers may not inherit shell environment variables; when in doubt, point `--host-path` at a wrapper that sets `ENIGMA_BUNDLE` to an absolute bundle path before launching the host.
|
|
89
|
+
|
|
90
|
+
## Preview the install plan
|
|
91
|
+
|
|
92
|
+
Before copying manifests or changing registry/profile state, run the safe planner with the generated manifest's absolute path:
|
|
93
|
+
|
|
94
|
+
```sh
|
|
95
|
+
enigma native-host install-plan \
|
|
96
|
+
--browser chrome \
|
|
97
|
+
--manifest "/absolute/path/to/com.enigma.native_host.json"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Windows PowerShell example:
|
|
101
|
+
|
|
102
|
+
```powershell
|
|
103
|
+
enigma native-host install-plan `
|
|
104
|
+
--browser edge `
|
|
105
|
+
--manifest "C:\Users\REPLACE_WITH_USER\AppData\Local\Enigma\NativeMessagingHosts\com.enigma.native_host.json"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Use `--browser chrome`, `--browser edge`, or `--browser firefox`. The optional `--os windows|macos|linux` and `--home <absolute path>` flags let an operator preview another user's or platform's per-user target paths without touching that machine. `--manifest` and `--home` must be absolute paths.
|
|
109
|
+
|
|
110
|
+
The planner prints JSON fields including `manifest_source`, `target_manifest_paths`, `manual_steps`, `registry_command_preview`, `firefox_manifest_directory`, and `writes_performed: false`. It does not create directories, copy manifest files, write browser profile files, or write Windows registry keys. Treat every path and command as an operator checklist: copy `manifest_source` to a listed `target_manifest_paths` entry yourself, and on Windows Chrome/Edge review and run the displayed `reg add ...` command only when you are ready to register the host.
|
|
111
|
+
|
|
112
|
+
The planner is a preflight only. Native registration is still not complete until the user or enterprise operator performs the copy/registry/profile steps and then verifies the browser can launch `com.enigma.native_host`.
|
|
113
|
+
|
|
114
|
+
## Manual template fallback
|
|
115
|
+
|
|
116
|
+
If you cannot use the generator, copy the template for your browser to a working file named `com.enigma.native_host.json`, then replace:
|
|
117
|
+
|
|
118
|
+
- `path` with the absolute executable or wrapper path.
|
|
119
|
+
- Chrome `REPLACE_WITH_CHROME_EXTENSION_ID` with the unpacked Chrome extension ID from `chrome://extensions` > Enigma > Details.
|
|
120
|
+
- Edge `REPLACE_WITH_EDGE_EXTENSION_ID` with the unpacked Edge extension ID from `edge://extensions` > Enigma > Details.
|
|
121
|
+
- Firefox `REPLACE_WITH_FIREFOX_EXTENSION_ID` with the Firefox add-on ID from `about:debugging#/runtime/this-firefox`, a stable development `browser_specific_settings.gecko.id`, or the installed/signed add-on ID.
|
|
122
|
+
|
|
123
|
+
Do not add arguments to `path`; browsers launch native messaging hosts through stdio using the executable path only.
|
|
124
|
+
|
|
125
|
+
## Install locations
|
|
126
|
+
|
|
127
|
+
### Chrome
|
|
128
|
+
|
|
129
|
+
macOS per-user:
|
|
130
|
+
|
|
131
|
+
```sh
|
|
132
|
+
mkdir -p "$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts"
|
|
133
|
+
cp com.enigma.native_host.json "$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.enigma.native_host.json"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
macOS all users:
|
|
137
|
+
|
|
138
|
+
```sh
|
|
139
|
+
sudo mkdir -p "/Library/Google/Chrome/NativeMessagingHosts"
|
|
140
|
+
sudo cp com.enigma.native_host.json "/Library/Google/Chrome/NativeMessagingHosts/com.enigma.native_host.json"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Linux per-user:
|
|
144
|
+
|
|
145
|
+
```sh
|
|
146
|
+
mkdir -p "$HOME/.config/google-chrome/NativeMessagingHosts"
|
|
147
|
+
cp com.enigma.native_host.json "$HOME/.config/google-chrome/NativeMessagingHosts/com.enigma.native_host.json"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Linux all users:
|
|
151
|
+
|
|
152
|
+
```sh
|
|
153
|
+
sudo mkdir -p /etc/opt/chrome/native-messaging-hosts
|
|
154
|
+
sudo cp com.enigma.native_host.json /etc/opt/chrome/native-messaging-hosts/com.enigma.native_host.json
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Windows per-user registry entry:
|
|
158
|
+
|
|
159
|
+
```powershell
|
|
160
|
+
$manifestDir='C:\Users\REPLACE_WITH_USER\AppData\Local\Enigma\NativeMessagingHosts'
|
|
161
|
+
$manifest=Join-Path $manifestDir 'com.enigma.native_host.json'
|
|
162
|
+
New-Item -ItemType Directory -Force $manifestDir | Out-Null
|
|
163
|
+
Copy-Item .\com.enigma.native_host.json $manifest -Force
|
|
164
|
+
New-Item -Path 'HKCU:\Software\Google\Chrome\NativeMessagingHosts\com.enigma.native_host' -Force | Out-Null
|
|
165
|
+
Set-Item -Path 'HKCU:\Software\Google\Chrome\NativeMessagingHosts\com.enigma.native_host' -Value $manifest
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Use `HKLM:\Software\Google\Chrome\NativeMessagingHosts\com.enigma.native_host` for an all-users install.
|
|
169
|
+
|
|
170
|
+
### Microsoft Edge
|
|
171
|
+
|
|
172
|
+
macOS per-user:
|
|
173
|
+
|
|
174
|
+
```sh
|
|
175
|
+
mkdir -p "$HOME/Library/Application Support/Microsoft Edge/NativeMessagingHosts"
|
|
176
|
+
cp com.enigma.native_host.json "$HOME/Library/Application Support/Microsoft Edge/NativeMessagingHosts/com.enigma.native_host.json"
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
macOS all users:
|
|
180
|
+
|
|
181
|
+
```sh
|
|
182
|
+
sudo mkdir -p "/Library/Microsoft/Edge/NativeMessagingHosts"
|
|
183
|
+
sudo cp com.enigma.native_host.json "/Library/Microsoft/Edge/NativeMessagingHosts/com.enigma.native_host.json"
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Linux per-user:
|
|
187
|
+
|
|
188
|
+
```sh
|
|
189
|
+
mkdir -p "$HOME/.config/microsoft-edge/NativeMessagingHosts"
|
|
190
|
+
cp com.enigma.native_host.json "$HOME/.config/microsoft-edge/NativeMessagingHosts/com.enigma.native_host.json"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Linux all users:
|
|
194
|
+
|
|
195
|
+
```sh
|
|
196
|
+
sudo mkdir -p /etc/opt/edge/native-messaging-hosts
|
|
197
|
+
sudo cp com.enigma.native_host.json /etc/opt/edge/native-messaging-hosts/com.enigma.native_host.json
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Windows per-user registry entry:
|
|
201
|
+
|
|
202
|
+
```powershell
|
|
203
|
+
$manifestDir='C:\Users\REPLACE_WITH_USER\AppData\Local\Enigma\NativeMessagingHosts'
|
|
204
|
+
$manifest=Join-Path $manifestDir 'com.enigma.native_host.json'
|
|
205
|
+
New-Item -ItemType Directory -Force $manifestDir | Out-Null
|
|
206
|
+
Copy-Item .\com.enigma.native_host.json $manifest -Force
|
|
207
|
+
New-Item -Path 'HKCU:\Software\Microsoft\Edge\NativeMessagingHosts\com.enigma.native_host' -Force | Out-Null
|
|
208
|
+
Set-Item -Path 'HKCU:\Software\Microsoft\Edge\NativeMessagingHosts\com.enigma.native_host' -Value $manifest
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Use `HKLM:\Software\Microsoft\Edge\NativeMessagingHosts\com.enigma.native_host` for an all-users install.
|
|
212
|
+
|
|
213
|
+
### Firefox
|
|
214
|
+
|
|
215
|
+
macOS per-user:
|
|
216
|
+
|
|
217
|
+
```sh
|
|
218
|
+
mkdir -p "$HOME/Library/Application Support/Mozilla/NativeMessagingHosts"
|
|
219
|
+
cp com.enigma.native_host.json "$HOME/Library/Application Support/Mozilla/NativeMessagingHosts/com.enigma.native_host.json"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
macOS all users:
|
|
223
|
+
|
|
224
|
+
```sh
|
|
225
|
+
sudo mkdir -p "/Library/Application Support/Mozilla/NativeMessagingHosts"
|
|
226
|
+
sudo cp com.enigma.native_host.json "/Library/Application Support/Mozilla/NativeMessagingHosts/com.enigma.native_host.json"
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Linux per-user:
|
|
230
|
+
|
|
231
|
+
```sh
|
|
232
|
+
mkdir -p "$HOME/.mozilla/native-messaging-hosts"
|
|
233
|
+
cp com.enigma.native_host.json "$HOME/.mozilla/native-messaging-hosts/com.enigma.native_host.json"
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Linux all users:
|
|
237
|
+
|
|
238
|
+
```sh
|
|
239
|
+
sudo mkdir -p /usr/lib/mozilla/native-messaging-hosts
|
|
240
|
+
sudo cp com.enigma.native_host.json /usr/lib/mozilla/native-messaging-hosts/com.enigma.native_host.json
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Windows per-user registry entry:
|
|
244
|
+
|
|
245
|
+
```powershell
|
|
246
|
+
$manifestDir='C:\Users\REPLACE_WITH_USER\AppData\Local\Enigma\NativeMessagingHosts'
|
|
247
|
+
$manifest=Join-Path $manifestDir 'com.enigma.native_host.json'
|
|
248
|
+
New-Item -ItemType Directory -Force $manifestDir | Out-Null
|
|
249
|
+
Copy-Item .\com.enigma.native_host.json $manifest -Force
|
|
250
|
+
New-Item -Path 'HKCU:\Software\Mozilla\NativeMessagingHosts\com.enigma.native_host' -Force | Out-Null
|
|
251
|
+
Set-Item -Path 'HKCU:\Software\Mozilla\NativeMessagingHosts\com.enigma.native_host' -Value $manifest
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Use `HKLM:\Software\Mozilla\NativeMessagingHosts\com.enigma.native_host` for an all-users install.
|
|
255
|
+
|
|
256
|
+
## Load the extension
|
|
257
|
+
|
|
258
|
+
1. Install the native host manifest for the browser you are testing.
|
|
259
|
+
2. Open the browser extension management page.
|
|
260
|
+
3. Enable developer mode.
|
|
261
|
+
4. Load `enigma/apps/browser-extension` as an unpacked extension.
|
|
262
|
+
5. Confirm the extension ID matches the manifest allowlist.
|
|
263
|
+
6. Visit a supported provider page and use the Enigma control. The extension asks the native host for local context only after the user clicks the request control, and it inserts only after the user approves insertion.
|
|
264
|
+
|
|
265
|
+
If the browser reports that the host is not found, re-check the manifest install location, registry key, manifest filename, host `name`, absolute executable path, executable permissions, and extension ID allowlist.
|