@deeeed/metamask-harness 0.79.0 → 0.81.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/CHANGELOG.md +73 -0
- package/README.md +1 -1
- package/adapters/extension/ensure-browser.sh +2 -2
- package/adapters/extension/inject.mjs +0 -1
- package/adapters/extension/launch-browser.cjs +39 -613
- package/adapters/extension/readiness.mjs +2 -5
- package/adapters/extension/reattach.sh +2 -2
- package/adapters/extension/stamp-runtime-title.cjs +1 -1
- package/adapters/manifest.json +16 -64
- package/adapters/mobile/bridge-runtime/cdp-bridge.cjs +57 -1358
- package/adapters/mobile/bridge-runtime/teaching.cjs +20 -0
- package/adapters/mobile/inject.sh +16 -0
- package/adapters/mobile/launch-console-forwarder.cjs +1 -2
- package/adapters/mobile/open-device.sh +2 -2
- package/adapters/mobile/reload-app.mjs +4 -4
- package/adapters/mobile/reset-app-data.sh +1 -1
- package/adapters/mobile/start-console-forwarder.sh +3 -2
- package/adapters/mobile/start-metro.sh +17 -12
- package/adapters/mobile/wait-for-bridge.cjs +2 -2
- package/adapters/shared/harness-source-fingerprint.mjs +13 -8
- package/adapters/shared/open-debug.mjs +2 -2
- package/adapters/shared/sync-wallet-fixture.sh +8 -5
- package/adapters/terminal/cleanup.mjs +2 -1
- package/adapters/terminal/inject.mjs +2 -1
- package/adapters/terminal/launch.mjs +17 -13
- package/adapters/terminal/lib/mainnet-guard.mjs +9 -0
- package/adapters/terminal/lib/readiness.mjs +20 -12
- package/adapters/terminal/policy.mjs +35 -0
- package/adapters/terminal/verify.mjs +10 -3
- package/adapters/terminal/wallet-host.mjs +43 -225
- package/bin/mm-harness +9 -28
- package/dist/adapters/checkout-files.js +16 -0
- package/dist/adapters/console-capture.js +14 -1
- package/dist/adapters/core/actions.js +8 -4
- package/dist/adapters/core/overlay.js +1 -1
- package/dist/adapters/core/readiness.js +28 -1
- package/dist/adapters/core/run.js +2 -2
- package/dist/adapters/core/surface.js +16 -1
- package/dist/adapters/extension/actions.js +6 -2
- package/dist/adapters/extension/browser-pid.js +56 -0
- package/dist/adapters/extension/console-capture.js +1 -1
- package/dist/adapters/extension/doctor-checks.js +1 -1
- package/dist/adapters/extension/ensure-ready.js +5 -4
- package/dist/adapters/extension/extension-id.js +1 -1
- package/dist/adapters/extension/feature-flags.js +1 -1
- package/dist/adapters/extension/fixtures.js +1 -2
- package/dist/adapters/extension/launch.js +4 -5
- package/dist/adapters/extension/launched-browser.js +1 -2
- package/dist/adapters/extension/network-observer.js +14 -1
- package/dist/adapters/extension/overlay.js +1 -1
- package/dist/adapters/extension/product-config.js +1 -1
- package/dist/adapters/extension/readiness.js +1 -1
- package/dist/adapters/extension/reload.js +1 -1
- package/dist/adapters/extension/run.js +135 -14
- package/dist/adapters/extension/runtime-decision.js +2 -1
- package/dist/adapters/extension/runtime.js +9 -5
- package/dist/adapters/extension/surface.js +15 -2
- package/dist/adapters/extension/verify.js +2 -2
- package/dist/adapters/harness-freshness.js +2 -1
- package/dist/adapters/mobile/actions.js +4 -1
- package/dist/adapters/mobile/android-gfxinfo-performance.js +1 -3
- package/dist/adapters/mobile/app-identity.js +10 -0
- package/dist/adapters/mobile/doctor-checks.js +1 -1
- package/dist/adapters/mobile/fixtures.js +1 -1
- package/dist/adapters/mobile/launch.js +27 -28
- package/dist/adapters/mobile/lifecycle.js +1 -1
- package/dist/adapters/mobile/metro-env.js +9 -59
- package/dist/adapters/mobile/network-observer.js +68 -0
- package/dist/adapters/mobile/performance-observer.js +2 -4
- package/dist/adapters/mobile/prepare-target.js +1 -1
- package/dist/adapters/mobile/prepare.js +3 -4
- package/dist/adapters/mobile/provision.js +1 -1
- package/dist/adapters/mobile/readiness.js +1 -1
- package/dist/adapters/mobile/recording-target.js +15 -0
- package/dist/adapters/mobile/release-artifact-state.js +1 -1
- package/dist/adapters/mobile/reload.js +1 -1
- package/dist/adapters/mobile/run.js +39 -15
- package/dist/adapters/mobile/runtime-decision.js +2 -4
- package/dist/adapters/mobile/source-freshness.js +22 -126
- package/dist/adapters/mobile/surface.js +26 -3
- package/dist/adapters/mobile/ui.js +16 -5
- package/dist/adapters/mobile/verify.js +2 -3
- package/dist/adapters/performance/cdp-trace.js +1 -1
- package/dist/adapters/performance/device-platform.js +1 -1
- package/dist/adapters/perps-order-inputs.js +36 -0
- package/dist/adapters/proof-failure.js +11 -0
- package/dist/adapters/slot-ports.js +1 -1
- package/dist/adapters/surface.js +1 -0
- package/dist/adapters/terminal/actions.js +4 -1
- package/dist/adapters/terminal/console-capture.js +1 -1
- package/dist/adapters/terminal/doctor-checks.js +2 -0
- package/dist/adapters/terminal/launch.js +4 -1
- package/dist/adapters/terminal/overlay.js +8 -1
- package/dist/adapters/terminal/run.js +33 -5
- package/dist/adapters/terminal/surface.js +9 -1
- package/dist/adapters.js +27 -7
- package/dist/advisor-policy.js +1 -1
- package/dist/checkout-view.js +1 -2
- package/dist/cli.js +59 -21
- package/dist/command-contract.js +1 -26
- package/dist/commands/check.js +33 -10
- package/dist/commands/checklist.js +1 -1
- package/dist/commands/completion-candidates.js +6 -14
- package/dist/commands/config.js +2 -2
- package/dist/commands/core-readiness.js +12 -7
- package/dist/commands/debug.js +3 -3
- package/dist/commands/device-target.js +5 -5
- package/dist/commands/doctor.js +2 -14
- package/dist/commands/domain.js +2 -2
- package/dist/commands/ensure-ready.js +1 -7
- package/dist/commands/fixtures.js +5 -6
- package/dist/commands/help.js +3 -4
- package/dist/commands/launch/device.js +10 -17
- package/dist/commands/launch/extension.js +2 -8
- package/dist/commands/launch/mobile.js +1 -1
- package/dist/commands/logs.js +3 -3
- package/dist/commands/mobile-device-view.js +4 -2
- package/dist/commands/overlay.js +110 -0
- package/dist/commands/pin.js +1 -1
- package/dist/commands/pr-body.js +2 -2
- package/dist/commands/prepare.js +4 -9
- package/dist/commands/provision.js +3 -12
- package/dist/commands/recipe-advice.js +1 -2
- package/dist/commands/recipe-quality.js +2 -3
- package/dist/commands/resolve-extension.js +1 -7
- package/dist/commands/review.js +4 -4
- package/dist/commands/runtime-decision.js +1 -6
- package/dist/commands/runtime-health.js +1 -7
- package/dist/commands/runtime-launch.js +1 -13
- package/dist/commands/self-test.js +5 -8
- package/dist/commands/status-watch.js +1 -2
- package/dist/commands/status.js +2 -5
- package/dist/commands/task-init.js +2 -3
- package/dist/commands/tutorial.js +2 -2
- package/dist/commands/update.js +1 -1
- package/dist/completions-cache.js +1 -1
- package/dist/console-classifier.js +19 -0
- package/dist/doctor.js +2 -3
- package/dist/engine.js +57 -0
- package/dist/funding-execution-context.js +96 -1
- package/dist/host.js +32 -0
- package/dist/index.js +1 -6
- package/dist/live-tsx.js +49 -0
- package/dist/mm-harness-cli.js +4 -6
- package/dist/paths.js +34 -64
- package/dist/performance-observation.js +3 -5
- package/dist/progress.js +1 -1
- package/dist/recipe-assistance-context.js +6 -9
- package/dist/recipe-security.js +2 -59
- package/dist/review/knowledge.js +2 -2
- package/dist/runner.js +7 -4
- package/dist/runtime-context.js +1 -1
- package/dist/task-view.js +2 -3
- package/docs/CONTRIBUTING.md +5 -3
- package/docs/RECIPES.md +31 -3
- package/docs/cli-contract.md +2 -2
- package/docs/feature-guard.md +90 -0
- package/library/README.md +3 -1
- package/library/actions/core/perps/_controller.mjs +153 -134
- package/library/actions/core/perps/_rewards.mjs +186 -0
- package/library/actions/core/perps/close_positions.mjs +1 -1
- package/library/actions/core/perps/place_order.mjs +167 -45
- package/library/actions/core/perps/quote_fees.mjs +61 -0
- package/library/actions/core/wallet/list_accounts.mjs +14 -57
- package/library/actions/extension/feature_flags/state.mjs +1 -1
- package/library/actions/extension/perps/close_visible_position.mjs +5 -0
- package/library/actions/extension/perps/edit_margin.mjs +4 -0
- package/library/actions/extension/perps/mutation-receipt.mjs +95 -3
- package/library/actions/extension/perps/perps.mjs +320 -3
- package/library/actions/extension/perps/place_order.mjs +3 -1
- package/library/actions/extension/perps/update_position_tpsl.mjs +4 -0
- package/library/actions/extension/platform/cdp.mjs +73 -11
- package/library/actions/harness-exports.mjs +1 -6
- package/library/actions/mobile/app/network-control.mjs +6 -8
- package/library/actions/mobile/perps/perps.mjs +216 -11
- package/library/actions/mobile/perps/place_order.mjs +3 -1
- package/library/actions/mobile/perps/prepare_local_snapshot_endpoint.mjs +1 -1
- package/library/actions/mobile/platform/bridge.mjs +8 -8
- package/library/actions/mobile/platform/native-session-name.mjs +21 -1
- package/library/actions/mobile/platform/native-session.mjs +3 -4
- package/library/actions/mobile/platform/observe-ui.mjs +12 -6
- package/library/actions/mobile/ui/native-navigation.mjs +4 -3
- package/library/actions/mobile/wallet/native-ui.mjs +3 -2
- package/library/actions/shared/analytics/_adapter.mjs +1 -1
- package/library/actions/shared/console-findings.mjs +1 -1
- package/library/actions/shared/perps/order-policy.mjs +177 -0
- package/library/actions/shared/wallet/fixture-accounts.mjs +84 -0
- package/library/actions/terminal/app/launch.mjs +3 -2
- package/library/actions/terminal/platform/hud.mjs +2 -1
- package/library/actions/terminal/platform/page.mjs +2 -1
- package/library/actions/terminal/platform/runtime.mjs +2 -1
- package/library/actions/terminal/wallet/_signature-log.mjs +40 -161
- package/library/actions/terminal/wallet/assert_signatures.mjs +6 -12
- package/library/actions/terminal/wallet/read_signatures.mjs +10 -9
- package/library/manifests/core.action-manifest.json +87 -13
- package/library/manifests/extension.action-manifest.json +4 -0
- package/library/manifests/mobile.action-manifest.json +12 -0
- package/package.json +8 -9
- package/site/assets/help-recipes.json +1 -0
- package/adapters/extension/lib/slot-title.cjs +0 -292
- package/adapters/mobile/bridge-runtime/console-forwarder.cjs +0 -472
- package/adapters/mobile/bridge-runtime/lib/bridge-errors.cjs +0 -125
- package/adapters/mobile/bridge-runtime/lib/cdp-broker.cjs +0 -1055
- package/adapters/mobile/bridge-runtime/lib/cdp-eval.cjs +0 -110
- package/adapters/mobile/bridge-runtime/lib/config.cjs +0 -61
- package/adapters/mobile/bridge-runtime/lib/console-format.cjs +0 -53
- package/adapters/mobile/bridge-runtime/lib/devtools-proxy.cjs +0 -177
- package/adapters/mobile/bridge-runtime/lib/issue-capture.cjs +0 -446
- package/adapters/mobile/bridge-runtime/lib/match-bridge-target.cjs +0 -84
- package/adapters/mobile/bridge-runtime/lib/target-discovery.cjs +0 -403
- package/adapters/mobile/bridge-runtime/lib/ws-client.cjs +0 -116
- package/adapters/mobile/coalesce-metro-log.cjs +0 -24
- package/adapters/mobile/launch-metro.cjs +0 -77
- package/adapters/mobile/metro-config.cjs +0 -98
- package/adapters/mobile/metro-log-generation.cjs +0 -106
- package/adapters/terminal/lib/origin.mjs +0 -30
- package/adapters/terminal/lib/page-script.mjs +0 -246
- package/adapters/terminal/lib/strict-wallet.mjs +0 -138
- package/dist/adapters/mobile/frame-metrics.js +0 -118
- package/dist/adapters/mobile/video-recorder.js +0 -289
- package/dist/artifact-files.js +0 -92
- package/dist/checkout-lock.js +0 -149
- package/dist/cli-color.js +0 -98
- package/dist/command-journal.js +0 -308
- package/dist/commands/call.js +0 -685
- package/dist/commands/last.js +0 -60
- package/dist/commands/launch/index.js +0 -109
- package/dist/commands/list-executables.js +0 -247
- package/dist/commands/manifest.js +0 -488
- package/dist/commands/parse-args.js +0 -279
- package/dist/commands/reload.js +0 -41
- package/dist/commands/run-engine.js +0 -1340
- package/dist/commands/run-report.js +0 -241
- package/dist/commands/run.js +0 -751
- package/dist/commands/shared.js +0 -323
- package/dist/commands/stop.js +0 -60
- package/dist/devices.js +0 -100
- package/dist/discovery.js +0 -15
- package/dist/execution-provenance.js +0 -332
- package/dist/harness.js +0 -451
- package/dist/heal-bounds.js +0 -137
- package/dist/json-stream.js +0 -60
- package/dist/leaf-invoke.js +0 -19
- package/dist/library-provenance.js +0 -33
- package/dist/live-adapter-contract.js +0 -380
- package/dist/metamask-action-validation.js +0 -68
- package/dist/network-observation.js +0 -290
- package/dist/recording-target.js +0 -120
- package/dist/run-diagnostics.js +0 -364
- package/dist/run-recording.js +0 -481
- package/dist/runtime-proof.js +0 -90
- package/library/actions/mobile/platform/tool-paths.mjs +0 -123
|
@@ -22,10 +22,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
22
22
|
|
|
23
23
|
const require = createRequire(import.meta.url);
|
|
24
24
|
const scriptDir = path.dirname(fileURLToPath(import.meta.url));
|
|
25
|
-
const {
|
|
26
|
-
readSlotId: readSlotIdFromLib,
|
|
27
|
-
buildStampExpression,
|
|
28
|
-
} = require(path.join(scriptDir, 'lib/slot-title.cjs'));
|
|
25
|
+
const { readSlotId: readSlotIdFromLib, buildStampExpression } = require('@farmslot/adapter-web/slot-title');
|
|
29
26
|
|
|
30
27
|
function pathDefault(key) {
|
|
31
28
|
for (const candidate of [
|
|
@@ -434,7 +431,7 @@ async function inspectCdp(target, cdpPort, expectedExtensionId, expectedServiceW
|
|
|
434
431
|
const stampedTitle = await cdpEvaluate(
|
|
435
432
|
target,
|
|
436
433
|
pageTarget.webSocketDebuggerUrl,
|
|
437
|
-
buildStampExpression(slotId),
|
|
434
|
+
buildStampExpression(slotId, 'MetaMask'),
|
|
438
435
|
);
|
|
439
436
|
if (typeof stampedTitle === 'string') {
|
|
440
437
|
ui.title = stampedTitle;
|
|
@@ -120,7 +120,7 @@ let chromium; try { chromium = require('@playwright/test').chromium; } catch { c
|
|
|
120
120
|
const fs = require('node:fs');
|
|
121
121
|
const path = require('node:path');
|
|
122
122
|
const { extensionIdFromManifestFile } = require('node:module').createRequire(`${process.env.SCRIPT_DIR}/`)('@farmslot/adapter-web/extension-id');
|
|
123
|
-
const { readSlotId, applyPersistentSlotTitle } = require(
|
|
123
|
+
const { readSlotId, applyPersistentSlotTitle } = require('node:module').createRequire(`${process.env.SCRIPT_DIR}/`)('@farmslot/adapter-web/slot-title');
|
|
124
124
|
const { evaluatePageViaCdp } = require('node:module').createRequire(`${process.env.SCRIPT_DIR}/`)('@farmslot/adapter-web/playwright-cdp');
|
|
125
125
|
|
|
126
126
|
const port = process.env.CDP_PORT;
|
|
@@ -194,7 +194,7 @@ async function connect() {
|
|
|
194
194
|
|
|
195
195
|
async function stampSlotTitle(page) {
|
|
196
196
|
if (!slotId || !page) return;
|
|
197
|
-
await evaluatePageViaCdp(page, applyPersistentSlotTitle, slotId).catch(() => {
|
|
197
|
+
await evaluatePageViaCdp(page, applyPersistentSlotTitle, { slotId, defaultTitle: 'MetaMask' }).catch(() => {
|
|
198
198
|
// Best-effort operator affordance; reload success is verified by CDP state.
|
|
199
199
|
});
|
|
200
200
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
const fs = require('node:fs');
|
|
5
5
|
const path = require('node:path');
|
|
6
6
|
|
|
7
|
-
const { readSlotId } = require('
|
|
7
|
+
const { readSlotId } = require('@farmslot/adapter-web/slot-title');
|
|
8
8
|
|
|
9
9
|
function stampRuntimeTitles({ target, runtimeDist, runtimeDir = process.env.RECIPE_RUNTIME_DIR || 'temp/recipe/runtime' }) {
|
|
10
10
|
const slotId = readSlotId(target, runtimeDir);
|
package/adapters/manifest.json
CHANGED
|
@@ -34,38 +34,6 @@
|
|
|
34
34
|
"inputs": "--port --out --err",
|
|
35
35
|
"outputs": "collector PID on stdout; exit 0 launched / 1 spawn failed / 2 bad args"
|
|
36
36
|
},
|
|
37
|
-
{
|
|
38
|
-
"id": "mobile/launch-metro",
|
|
39
|
-
"entry": "adapters/mobile/launch-metro.cjs",
|
|
40
|
-
"kind": "node",
|
|
41
|
-
"purpose": "Launch Metro detached from the invoking process group so the runtime survives command cleanup.",
|
|
42
|
-
"inputs": "--target --port --log --pid-file --build-env --runner [--workers] [--clear]",
|
|
43
|
-
"outputs": "Metro PID/launch metadata and redirected log; exit 0/1/2"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"id": "mobile/metro-log-generation",
|
|
47
|
-
"entry": "adapters/mobile/metro-log-generation.cjs",
|
|
48
|
-
"kind": "module",
|
|
49
|
-
"purpose": "Rotate one Metro generation, retain bounded archives, and publish launch evidence.",
|
|
50
|
-
"inputs": "runtime directory, Metro port, rotation reason; env MM_HARNESS_METRO_LOG_ARCHIVE_COUNT, MM_HARNESS_METRO_LOG_ARCHIVE_BYTES",
|
|
51
|
-
"outputs": "metro.log, archived logs, metro-generation.json"
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"id": "mobile/coalesce-metro-log",
|
|
55
|
-
"entry": "adapters/mobile/coalesce-metro-log.cjs",
|
|
56
|
-
"kind": "module",
|
|
57
|
-
"purpose": "Coalesce repetitive Metro percentage progress while preserving diagnostics.",
|
|
58
|
-
"inputs": "Metro output on stdin",
|
|
59
|
-
"outputs": "errors, completion, and timestamped meaningful progress on stdout"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"id": "mobile/metro-config",
|
|
63
|
-
"entry": "adapters/mobile/metro-config.cjs",
|
|
64
|
-
"kind": "module",
|
|
65
|
-
"purpose": "Preserve the product Metro config while excluding the checkout-local temp tree owned by harness evidence and runtime state.",
|
|
66
|
-
"inputs": "base Metro config; env MM_HARNESS_METRO_PROJECT_ROOT, MM_HARNESS_METRO_BASE_CONFIG",
|
|
67
|
-
"outputs": "merged Metro config with resolver.blockList for <projectRoot>/temp"
|
|
68
|
-
},
|
|
69
37
|
{
|
|
70
38
|
"id": "mobile/stop-metro",
|
|
71
39
|
"entry": "adapters/mobile/stop-metro.sh",
|
|
@@ -278,8 +246,8 @@
|
|
|
278
246
|
"id": "extension/launch-browser",
|
|
279
247
|
"entry": "adapters/extension/launch-browser.cjs",
|
|
280
248
|
"kind": "node",
|
|
281
|
-
"purpose": "Low-level spawn primitive: detached Chrome with isolated profile, CDP on 127.0.0.1, unpacked dist.",
|
|
282
|
-
"inputs": "--cdp-port --chrome-bin --profile --extension-dir --chrome-log --chrome-pid [--browser-resolution]",
|
|
249
|
+
"purpose": "Low-level spawn primitive: @farmslot/adapter-web launchBrowser with MetaMask's build lock, home page and title: detached Chrome with isolated profile, CDP on 127.0.0.1, unpacked dist.",
|
|
250
|
+
"inputs": "--cdp-port --chrome-bin --profile --extension-dir --chrome-log --chrome-pid [--browser-resolution] [--start-url] [--stop-only 1] [--reset-profile 1]",
|
|
283
251
|
"outputs": "pid file + append-log + <runtime>/browser-resolution.json; exit 0 / non-zero"
|
|
284
252
|
},
|
|
285
253
|
{
|
|
@@ -620,15 +588,15 @@
|
|
|
620
588
|
"entry": "adapters/terminal/launch.mjs",
|
|
621
589
|
"kind": "node",
|
|
622
590
|
"purpose": "Start or reuse the Web Terminal slot browser (Chrome for Testing unless TERMINAL_CHROME_BIN; MetaMask extension with the fixture imported, or the injected strict wallet) and its wallet host. On macOS the browser starts through LaunchServices with no startup window; in testnet mode the venue SDK's mainnet hosts are unresolvable for the whole browser.",
|
|
623
|
-
"inputs": "--target --cdp-port --app-port [--signer extension|injected] [--account] [--fresh-profile] [--headless|--headful] [--slow-mo] [--network mainnet --mainnet-confirmation REAL_FUNDS] [--json]; env TERMINAL_CHROME_BIN, TERMINAL_EXTENSION_DIR, TERMINAL_EXTENSION_CHECKOUT, RECIPE_WALLET_FIXTURE, TERMINAL_HEADLESS, TERMINAL_SLOW_MO, TERMINAL_WINDOW, TERMINAL_SCREEN",
|
|
591
|
+
"inputs": "--target --cdp-port --app-port --policy-module [--signer extension|injected] [--account] [--fresh-profile] [--headless|--headful] [--slow-mo] [--network mainnet --mainnet-confirmation REAL_FUNDS] [--json]; env TERMINAL_CHROME_BIN, TERMINAL_EXTENSION_DIR, TERMINAL_EXTENSION_CHECKOUT, RECIPE_WALLET_FIXTURE, TERMINAL_HEADLESS, TERMINAL_SLOW_MO, TERMINAL_WINDOW, TERMINAL_SCREEN",
|
|
624
592
|
"outputs": "<runtime>/terminal/browser.json + pid/log files; JSON on stdout; exit 0/1/2"
|
|
625
593
|
},
|
|
626
594
|
{
|
|
627
595
|
"id": "terminal/wallet-host",
|
|
628
596
|
"entry": "adapters/terminal/wallet-host.mjs",
|
|
629
597
|
"kind": "node",
|
|
630
|
-
"purpose": "Long-running CDP observer: opens the app tab blank, hooks it once per target, navigates it to the app and verifies the log binding before ready; logs every wallet request from the app top frame and every MetaMask confirmation shown; answers the injected strict wallet in injected mode (other frames and blank popups get 4100).",
|
|
631
|
-
"inputs": "--cdp-port --runtime-dir --signer --app-origin [--extension-id] [--target --account --start-chain] [--browser-app <.app>]",
|
|
598
|
+
"purpose": "Long-running CDP observer: opens the app tab blank, hooks it once per target, navigates it to the app and verifies the log binding before ready; logs every wallet request from the app top frame and every MetaMask confirmation shown; answers the injected strict wallet in injected mode (other frames and blank popups get 4100). The page script, the frame judgement and the strict wallet are @farmslot/adapter-web/dapp's; the host passes the testnet policy and the injected wallet's identity.",
|
|
599
|
+
"inputs": "--cdp-port --runtime-dir --signer --app-origin --policy-module [--extension-id] [--target --account --start-chain] [--browser-app <.app>]",
|
|
632
600
|
"outputs": "<runtime>/terminal/wallet-requests.jsonl, wallet-host.ready"
|
|
633
601
|
},
|
|
634
602
|
{
|
|
@@ -660,7 +628,7 @@
|
|
|
660
628
|
"entry": "adapters/terminal/verify.mjs",
|
|
661
629
|
"kind": "node",
|
|
662
630
|
"purpose": "Read-only terminal slot readiness: checkout, deps, dev server, forced testnet, fixture, browser start probe, extension copy, CDP port.",
|
|
663
|
-
"inputs": "--target [--cdp-port] [--watcher-port] [--signer] [--account] [--json]",
|
|
631
|
+
"inputs": "--policy-module --target [--cdp-port] [--watcher-port] [--signer] [--account] [--json]",
|
|
664
632
|
"outputs": "readiness report; exit 0 ready / 1 not ready"
|
|
665
633
|
},
|
|
666
634
|
{
|
|
@@ -671,22 +639,6 @@
|
|
|
671
639
|
"inputs": "CdpClient.connect(url)",
|
|
672
640
|
"outputs": "send/on"
|
|
673
641
|
},
|
|
674
|
-
{
|
|
675
|
-
"id": "terminal/lib-page-script",
|
|
676
|
-
"entry": "adapters/terminal/lib/page-script.mjs",
|
|
677
|
-
"kind": "lib",
|
|
678
|
-
"purpose": "Page script source: wallet request logging and the injected strict provider (EIP-6963 io.metamask).",
|
|
679
|
-
"inputs": "pageScriptSource({ signer, appOrigin })",
|
|
680
|
-
"outputs": "script source string"
|
|
681
|
-
},
|
|
682
|
-
{
|
|
683
|
-
"id": "terminal/lib-strict-wallet",
|
|
684
|
-
"entry": "adapters/terminal/lib/strict-wallet.mjs",
|
|
685
|
-
"kind": "lib",
|
|
686
|
-
"purpose": "EIP-1193 strict test wallet enforcing typed-data chainId == active chain.",
|
|
687
|
-
"inputs": "createStrictWallet({ account, chainId })",
|
|
688
|
-
"outputs": "request()"
|
|
689
|
-
},
|
|
690
642
|
{
|
|
691
643
|
"id": "terminal/lib-processes",
|
|
692
644
|
"entry": "adapters/terminal/lib/processes.mjs",
|
|
@@ -700,7 +652,7 @@
|
|
|
700
652
|
"entry": "adapters/terminal/lib/readiness.mjs",
|
|
701
653
|
"kind": "lib",
|
|
702
654
|
"purpose": "Terminal slot readiness checks shared by verify, doctor and the surface.",
|
|
703
|
-
"inputs": "terminalReadiness({ target, appPort, cdpPort, signer }), assertLaunchNetwork(target, { network, mainnetConfirmation }), devServerTestnetDiagnostic(target, { appPort }) (advisory)",
|
|
655
|
+
"inputs": "terminalReadiness({ policy, target, appPort, cdpPort, signer }), assertLaunchNetwork(target, { network, mainnetConfirmation }), devServerTestnetDiagnostic(target, { appPort, variable }) (advisory)",
|
|
704
656
|
"outputs": "checks[]"
|
|
705
657
|
},
|
|
706
658
|
{
|
|
@@ -719,22 +671,22 @@
|
|
|
719
671
|
"inputs": "nextHudState, hudRenderExpression",
|
|
720
672
|
"outputs": "HUD state, expression source"
|
|
721
673
|
},
|
|
722
|
-
{
|
|
723
|
-
"id": "terminal/lib-origin",
|
|
724
|
-
"entry": "adapters/terminal/lib/origin.mjs",
|
|
725
|
-
"kind": "lib",
|
|
726
|
-
"purpose": "Exact app-origin and app top-frame checks for targets, wallet requests and log entries.",
|
|
727
|
-
"inputs": "isAppUrl(url, appOrigin), isAppTopFrameContext(context, { targetId, appOrigin })",
|
|
728
|
-
"outputs": "boolean"
|
|
729
|
-
},
|
|
730
674
|
{
|
|
731
675
|
"id": "terminal/lib-mainnet-guard",
|
|
732
676
|
"entry": "adapters/terminal/lib/mainnet-guard.mjs",
|
|
733
677
|
"kind": "lib",
|
|
734
678
|
"purpose": "Testnet enforcement: the venue endpoint hosts (from the venue SDK, @metamask/perps-controller and the app source in the checkout), the browser's host-resolver block, and the mainnet typed-data classifier used by the page script and the wallet host.",
|
|
735
|
-
"inputs": "venueHosts(checkout), hostResolverRules(hosts), isMainnetVenueUrl(url, hosts), mainnetTypedDataReason(data)",
|
|
679
|
+
"inputs": "venueHosts(checkout), hostResolverRules(hosts), isMainnetVenueUrl(url, hosts), mainnetTypedDataReason(data), TESTNET_TYPED_DATA_POLICY",
|
|
736
680
|
"outputs": "host list, launch switch, refusal reason"
|
|
737
681
|
},
|
|
682
|
+
{
|
|
683
|
+
"id": "terminal/policy",
|
|
684
|
+
"entry": "adapters/terminal/policy.mjs",
|
|
685
|
+
"kind": "lib",
|
|
686
|
+
"purpose": "The Web Terminal's venue policy: blocked and served venue hosts, link hosts, the launch probe, the testnet typed-data refusal, the start page, the injected wallet's start chain, the checkout dependencies and the dev-server testnet variable. launch, verify, doctor and the wallet host take it as an argument (--policy-module for the leaf processes).",
|
|
687
|
+
"inputs": "policy.venueHosts(checkout)",
|
|
688
|
+
"outputs": "policy"
|
|
689
|
+
},
|
|
738
690
|
{
|
|
739
691
|
"id": "terminal/surface",
|
|
740
692
|
"entry": "src/adapters/terminal/surface.ts",
|