arc402-cli 0.9.19 → 0.10.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/README.md +41 -2
- package/dist/abis.d.ts +1 -0
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +45 -14
- package/dist/abis.js.map +1 -1
- package/dist/bundler.d.ts +1 -1
- package/dist/bundler.d.ts.map +1 -1
- package/dist/bundler.js +61 -27
- package/dist/bundler.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -5
- package/dist/client.js.map +1 -1
- package/dist/coinbase-smart-wallet.js +4 -1
- package/dist/coinbase-smart-wallet.js.map +1 -1
- package/dist/commands/accept.js +28 -25
- package/dist/commands/accept.js.map +1 -1
- package/dist/commands/agent-handshake.js +18 -15
- package/dist/commands/agent-handshake.js.map +1 -1
- package/dist/commands/agent.js +104 -98
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/agreements.js +98 -62
- package/dist/commands/agreements.js.map +1 -1
- package/dist/commands/arbitrator.js +81 -45
- package/dist/commands/arbitrator.js.map +1 -1
- package/dist/commands/arena-handshake.d.ts.map +1 -1
- package/dist/commands/arena-handshake.js +35 -53
- package/dist/commands/arena-handshake.js.map +1 -1
- package/dist/commands/arena.js +18 -12
- package/dist/commands/arena.js.map +1 -1
- package/dist/commands/backup.js +36 -30
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/cancel.js +18 -15
- package/dist/commands/cancel.js.map +1 -1
- package/dist/commands/channel.js +81 -45
- package/dist/commands/channel.js.map +1 -1
- package/dist/commands/coldstart.js +34 -31
- package/dist/commands/coldstart.js.map +1 -1
- package/dist/commands/compute.d.ts +14 -0
- package/dist/commands/compute.d.ts.map +1 -0
- package/dist/commands/compute.js +466 -0
- package/dist/commands/compute.js.map +1 -0
- package/dist/commands/config.js +30 -24
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contract-interaction.js +15 -12
- package/dist/commands/contract-interaction.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +135 -98
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/deliver.js +76 -37
- package/dist/commands/deliver.js.map +1 -1
- package/dist/commands/discover.js +27 -24
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/dispute.js +110 -104
- package/dist/commands/dispute.js.map +1 -1
- package/dist/commands/doctor.js +55 -16
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/endpoint.js +95 -56
- package/dist/commands/endpoint.js.map +1 -1
- package/dist/commands/feed.js +18 -11
- package/dist/commands/feed.js.map +1 -1
- package/dist/commands/hire.js +40 -37
- package/dist/commands/hire.js.map +1 -1
- package/dist/commands/migrate.js +33 -30
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/negotiate.d.ts.map +1 -1
- package/dist/commands/negotiate.js +36 -34
- package/dist/commands/negotiate.js.map +1 -1
- package/dist/commands/openshell.js +104 -68
- package/dist/commands/openshell.js.map +1 -1
- package/dist/commands/owner.js +20 -17
- package/dist/commands/owner.js.map +1 -1
- package/dist/commands/policy.js +43 -41
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/relay.d.ts.map +1 -1
- package/dist/commands/relay.js +51 -18
- package/dist/commands/relay.js.map +1 -1
- package/dist/commands/remediate.js +23 -20
- package/dist/commands/remediate.js.map +1 -1
- package/dist/commands/reputation.js +27 -25
- package/dist/commands/reputation.js.map +1 -1
- package/dist/commands/setup.js +104 -65
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/trust.js +20 -17
- package/dist/commands/trust.js.map +1 -1
- package/dist/commands/verify.js +21 -18
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/wallet.d.ts.map +1 -1
- package/dist/commands/wallet.js +645 -679
- package/dist/commands/wallet.js.map +1 -1
- package/dist/commands/watch.js +36 -33
- package/dist/commands/watch.js.map +1 -1
- package/dist/commands/watchtower.js +73 -37
- package/dist/commands/watchtower.js.map +1 -1
- package/dist/commands/workroom.d.ts.map +1 -1
- package/dist/commands/workroom.js +282 -143
- package/dist/commands/workroom.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +71 -22
- package/dist/config.js.map +1 -1
- package/dist/daemon/compute-metering.d.ts +61 -0
- package/dist/daemon/compute-metering.d.ts.map +1 -0
- package/dist/daemon/compute-metering.js +299 -0
- package/dist/daemon/compute-metering.js.map +1 -0
- package/dist/daemon/compute-session.d.ts +100 -0
- package/dist/daemon/compute-session.d.ts.map +1 -0
- package/dist/daemon/compute-session.js +231 -0
- package/dist/daemon/compute-session.js.map +1 -0
- package/dist/daemon/config.d.ts +19 -1
- package/dist/daemon/config.d.ts.map +1 -1
- package/dist/daemon/config.js +90 -16
- package/dist/daemon/config.js.map +1 -1
- package/dist/daemon/credentials.d.ts +24 -0
- package/dist/daemon/credentials.d.ts.map +1 -0
- package/dist/daemon/credentials.js +80 -0
- package/dist/daemon/credentials.js.map +1 -0
- package/dist/daemon/delivery-client.d.ts +35 -0
- package/dist/daemon/delivery-client.d.ts.map +1 -0
- package/dist/daemon/delivery-client.js +231 -0
- package/dist/daemon/delivery-client.js.map +1 -0
- package/dist/daemon/file-delivery.d.ts +98 -0
- package/dist/daemon/file-delivery.d.ts.map +1 -0
- package/dist/daemon/file-delivery.js +461 -0
- package/dist/daemon/file-delivery.js.map +1 -0
- package/dist/daemon/hire-listener.d.ts +3 -3
- package/dist/daemon/hire-listener.d.ts.map +1 -1
- package/dist/daemon/hire-listener.js +47 -13
- package/dist/daemon/hire-listener.js.map +1 -1
- package/dist/daemon/index.d.ts +2 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +526 -53
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/job-lifecycle.d.ts +1 -1
- package/dist/daemon/job-lifecycle.d.ts.map +1 -1
- package/dist/daemon/job-lifecycle.js +51 -11
- package/dist/daemon/job-lifecycle.js.map +1 -1
- package/dist/daemon/notify.d.ts +1 -1
- package/dist/daemon/notify.d.ts.map +1 -1
- package/dist/daemon/notify.js +53 -19
- package/dist/daemon/notify.js.map +1 -1
- package/dist/daemon/token-metering.js +47 -8
- package/dist/daemon/token-metering.js.map +1 -1
- package/dist/daemon/userops.d.ts +2 -2
- package/dist/daemon/userops.d.ts.map +1 -1
- package/dist/daemon/userops.js +27 -23
- package/dist/daemon/userops.js.map +1 -1
- package/dist/daemon/wallet-monitor.d.ts +1 -1
- package/dist/daemon/wallet-monitor.d.ts.map +1 -1
- package/dist/daemon/wallet-monitor.js +12 -8
- package/dist/daemon/wallet-monitor.js.map +1 -1
- package/dist/daemon/worker-executor.d.ts +71 -0
- package/dist/daemon/worker-executor.d.ts.map +1 -0
- package/dist/daemon/worker-executor.js +382 -0
- package/dist/daemon/worker-executor.js.map +1 -0
- package/dist/drain-v4.js +64 -26
- package/dist/drain-v4.js.map +1 -1
- package/dist/endpoint-config.js +63 -20
- package/dist/endpoint-config.js.map +1 -1
- package/dist/endpoint-notify.d.ts.map +1 -1
- package/dist/endpoint-notify.js +49 -15
- package/dist/endpoint-notify.js.map +1 -1
- package/dist/index.js +50 -18
- package/dist/index.js.map +1 -1
- package/dist/openshell-runtime.d.ts.map +1 -1
- package/dist/openshell-runtime.js +82 -38
- package/dist/openshell-runtime.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +85 -78
- package/dist/program.js.map +1 -1
- package/dist/repl.js +31 -25
- package/dist/repl.js.map +1 -1
- package/dist/signing.js +6 -3
- package/dist/signing.js.map +1 -1
- package/dist/telegram-notify.js +40 -3
- package/dist/telegram-notify.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +56 -89
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Footer.js +7 -4
- package/dist/tui/Footer.js.map +1 -1
- package/dist/tui/Header.d.ts +1 -1
- package/dist/tui/Header.d.ts.map +1 -1
- package/dist/tui/Header.js +14 -9
- package/dist/tui/Header.js.map +1 -1
- package/dist/tui/InputLine.d.ts +2 -1
- package/dist/tui/InputLine.d.ts.map +1 -1
- package/dist/tui/InputLine.js +47 -97
- package/dist/tui/InputLine.js.map +1 -1
- package/dist/tui/Viewport.d.ts +1 -2
- package/dist/tui/Viewport.d.ts.map +1 -1
- package/dist/tui/Viewport.js +26 -6
- package/dist/tui/Viewport.js.map +1 -1
- package/dist/tui/WalletConnectPairing.js +19 -16
- package/dist/tui/WalletConnectPairing.js.map +1 -1
- package/dist/tui/components/Button.js +9 -6
- package/dist/tui/components/Button.js.map +1 -1
- package/dist/tui/components/CeremonyView.js +8 -5
- package/dist/tui/components/CeremonyView.js.map +1 -1
- package/dist/tui/components/CompletionDropdown.js +9 -6
- package/dist/tui/components/CompletionDropdown.js.map +1 -1
- package/dist/tui/components/ConfirmPrompt.js +8 -5
- package/dist/tui/components/ConfirmPrompt.js.map +1 -1
- package/dist/tui/components/CustomTextInput.js +14 -11
- package/dist/tui/components/CustomTextInput.js.map +1 -1
- package/dist/tui/components/InteractiveTable.js +12 -9
- package/dist/tui/components/InteractiveTable.js.map +1 -1
- package/dist/tui/components/StepSpinner.js +13 -10
- package/dist/tui/components/StepSpinner.js.map +1 -1
- package/dist/tui/components/Toast.js +12 -8
- package/dist/tui/components/Toast.js.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +21 -28
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/useChat.js +19 -13
- package/dist/tui/useChat.js.map +1 -1
- package/dist/tui/useCommand.d.ts +2 -3
- package/dist/tui/useCommand.d.ts.map +1 -1
- package/dist/tui/useCommand.js +24 -100
- package/dist/tui/useCommand.js.map +1 -1
- package/dist/tui/useNotifications.js +8 -5
- package/dist/tui/useNotifications.js.map +1 -1
- package/dist/tui/useScroll.d.ts.map +1 -1
- package/dist/tui/useScroll.js +12 -15
- package/dist/tui/useScroll.js.map +1 -1
- package/dist/ui/banner.d.ts +0 -12
- package/dist/ui/banner.d.ts.map +1 -1
- package/dist/ui/banner.js +19 -35
- package/dist/ui/banner.js.map +1 -1
- package/dist/ui/colors.js +19 -13
- package/dist/ui/colors.js.map +1 -1
- package/dist/ui/format.js +14 -6
- package/dist/ui/format.js.map +1 -1
- package/dist/ui/qr-render.js +11 -4
- package/dist/ui/qr-render.js.map +1 -1
- package/dist/ui/rpc-fallback.js +11 -6
- package/dist/ui/rpc-fallback.js.map +1 -1
- package/dist/ui/spinner.js +12 -6
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/tree.js +6 -3
- package/dist/ui/tree.js.map +1 -1
- package/dist/utils/format.js +41 -27
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/hash.js +42 -4
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/time.js +6 -2
- package/dist/utils/time.js.map +1 -1
- package/dist/wallet-router.d.ts +1 -1
- package/dist/wallet-router.d.ts.map +1 -1
- package/dist/wallet-router.js +19 -12
- package/dist/wallet-router.js.map +1 -1
- package/dist/walletconnect-session.d.ts +1 -1
- package/dist/walletconnect-session.d.ts.map +1 -1
- package/dist/walletconnect-session.js +11 -6
- package/dist/walletconnect-session.js.map +1 -1
- package/dist/walletconnect.d.ts +5 -6
- package/dist/walletconnect.d.ts.map +1 -1
- package/dist/walletconnect.js +35 -32
- package/dist/walletconnect.js.map +1 -1
- package/package.json +11 -10
- package/INK6-UX-SPEC.md +0 -446
- package/MIGRATION-SPEC.md +0 -108
- package/TUI-SPEC.md +0 -214
- package/scripts/authorize-machine-key.ts +0 -43
- package/scripts/drain-wallet.ts +0 -149
- package/scripts/execute-spend-only.ts +0 -81
- package/scripts/register-agent-userop.ts +0 -186
- package/src/abis.ts +0 -187
- package/src/bundler.ts +0 -235
- package/src/client.ts +0 -36
- package/src/coinbase-smart-wallet.ts +0 -51
- package/src/commands/accept.ts +0 -64
- package/src/commands/agent-handshake.ts +0 -72
- package/src/commands/agent.ts +0 -691
- package/src/commands/agreements.ts +0 -350
- package/src/commands/arbitrator.ts +0 -180
- package/src/commands/arena-handshake.ts +0 -274
- package/src/commands/arena.ts +0 -122
- package/src/commands/backup.ts +0 -117
- package/src/commands/cancel.ts +0 -35
- package/src/commands/channel.ts +0 -218
- package/src/commands/coldstart.ts +0 -165
- package/src/commands/config.ts +0 -68
- package/src/commands/contract-interaction.ts +0 -166
- package/src/commands/daemon.ts +0 -1054
- package/src/commands/deliver.ts +0 -148
- package/src/commands/discover.ts +0 -350
- package/src/commands/dispute.ts +0 -375
- package/src/commands/doctor.ts +0 -172
- package/src/commands/endpoint.ts +0 -620
- package/src/commands/feed.ts +0 -229
- package/src/commands/hire.ts +0 -245
- package/src/commands/migrate.ts +0 -177
- package/src/commands/negotiate.ts +0 -272
- package/src/commands/openshell.ts +0 -1055
- package/src/commands/owner.ts +0 -35
- package/src/commands/policy.ts +0 -263
- package/src/commands/relay.ts +0 -277
- package/src/commands/remediate.ts +0 -24
- package/src/commands/reputation.ts +0 -79
- package/src/commands/setup.ts +0 -343
- package/src/commands/trust.ts +0 -27
- package/src/commands/verify.ts +0 -91
- package/src/commands/wallet.ts +0 -3548
- package/src/commands/watch.ts +0 -220
- package/src/commands/watchtower.ts +0 -248
- package/src/commands/workroom.ts +0 -963
- package/src/config.ts +0 -220
- package/src/daemon/config.ts +0 -344
- package/src/daemon/hire-listener.ts +0 -226
- package/src/daemon/index.ts +0 -1089
- package/src/daemon/job-lifecycle.ts +0 -215
- package/src/daemon/notify.ts +0 -297
- package/src/daemon/token-metering.ts +0 -183
- package/src/daemon/userops.ts +0 -119
- package/src/daemon/wallet-monitor.ts +0 -90
- package/src/drain-v4.ts +0 -159
- package/src/endpoint-config.ts +0 -83
- package/src/endpoint-notify.ts +0 -134
- package/src/index.ts +0 -74
- package/src/openshell-runtime.ts +0 -281
- package/src/program.ts +0 -88
- package/src/repl.ts +0 -178
- package/src/signing.ts +0 -28
- package/src/telegram-notify.ts +0 -88
- package/src/tui/App.tsx +0 -263
- package/src/tui/Footer.tsx +0 -18
- package/src/tui/Header.tsx +0 -45
- package/src/tui/InputLine.tsx +0 -243
- package/src/tui/Viewport.tsx +0 -51
- package/src/tui/WalletConnectPairing.tsx +0 -114
- package/src/tui/components/Button.tsx +0 -38
- package/src/tui/components/CeremonyView.tsx +0 -39
- package/src/tui/components/CompletionDropdown.tsx +0 -56
- package/src/tui/components/ConfirmPrompt.tsx +0 -36
- package/src/tui/components/CustomTextInput.tsx +0 -132
- package/src/tui/components/InteractiveTable.tsx +0 -106
- package/src/tui/components/StepSpinner.tsx +0 -84
- package/src/tui/components/Toast.tsx +0 -59
- package/src/tui/index.tsx +0 -90
- package/src/tui/useChat.ts +0 -103
- package/src/tui/useCommand.ts +0 -238
- package/src/tui/useNotifications.ts +0 -28
- package/src/tui/useScroll.ts +0 -69
- package/src/ui/banner.ts +0 -78
- package/src/ui/colors.ts +0 -30
- package/src/ui/format.ts +0 -78
- package/src/ui/qr-render.ts +0 -92
- package/src/ui/rpc-fallback.ts +0 -59
- package/src/ui/spinner.ts +0 -56
- package/src/ui/tree.ts +0 -16
- package/src/utils/format.ts +0 -48
- package/src/utils/hash.ts +0 -5
- package/src/utils/time.ts +0 -15
- package/src/wallet-router.ts +0 -178
- package/src/walletconnect-session.ts +0 -27
- package/src/walletconnect.ts +0 -309
- package/test/time.test.js +0 -11
- package/tsconfig.json +0 -33
package/dist/daemon/config.d.ts
CHANGED
|
@@ -78,11 +78,29 @@ export interface DaemonConfig {
|
|
|
78
78
|
http_url: string;
|
|
79
79
|
http_auth_token: string;
|
|
80
80
|
};
|
|
81
|
+
compute: {
|
|
82
|
+
enabled: boolean;
|
|
83
|
+
gpu_spec: string;
|
|
84
|
+
rate_per_hour_wei: string;
|
|
85
|
+
max_concurrent_sessions: number;
|
|
86
|
+
metering_interval_seconds: number;
|
|
87
|
+
report_interval_minutes: number;
|
|
88
|
+
auto_accept_compute: boolean;
|
|
89
|
+
min_session_hours: number;
|
|
90
|
+
max_session_hours: number;
|
|
91
|
+
compute_agreement_address: string;
|
|
92
|
+
};
|
|
93
|
+
delivery: {
|
|
94
|
+
max_file_size_mb: number;
|
|
95
|
+
max_job_size_mb: number;
|
|
96
|
+
auto_download: boolean;
|
|
97
|
+
serve_files: boolean;
|
|
98
|
+
};
|
|
81
99
|
}
|
|
82
100
|
export declare function loadDaemonConfig(configPath?: string): DaemonConfig;
|
|
83
101
|
export declare function loadMachineKey(config: DaemonConfig): {
|
|
84
102
|
privateKey: string;
|
|
85
103
|
address: string;
|
|
86
104
|
};
|
|
87
|
-
export declare const TEMPLATE_DAEMON_TOML = "# ~/.arc402/daemon.toml\n# ARC-402 Daemon Configuration\n# Generated by: arc402 daemon init\n#\n# SECURITY: Never put private keys here. Use environment variables.\n\n[wallet]\ncontract_address = \"\" # ARC402Wallet contract address (required)\nowner_address = \"\" # Owner EOA address \u2014 for display and verification only\nmachine_key = \"env:ARC402_MACHINE_KEY\" # Machine key loaded from environment. NEVER hardcode here.\n\n[network]\nrpc_url = \"https://mainnet.base.org\" # Public Base RPC (default)\nchain_id = 8453 # Base mainnet. Use 84532 for Base Sepolia.\nentry_point = \"0x0000000071727De22E5E9d8BAf0edAc6f37da032\" # ERC-4337 EntryPoint v0.7\n\n[bundler]\nmode = \"external\" # external | arc402 | self\nendpoint = \"\" # Required when mode = external. Pimlico, Alchemy, etc.\nearn_fees = false # self mode only: bundle for other network agents\neth_float = \"0.01\" # Minimum ETH to maintain in bundler EOA for gas fronting\nsweep_threshold = \"0.005\" # Sweep fees to wallet when bundler EOA exceeds this (ETH)\nsweep_to = \"\" # Sweep destination. Defaults to wallet.contract_address.\nrpc_url = \"\" # self mode: private RPC. Defaults to network.rpc_url if empty.\n\n[relay]\nenabled = true\nlisten_port = 4402 # Port for incoming relay messages\nendpoint = \"\" # Your public URL \u2014 run: arc402 setup endpoint\n # Example: https://gigabrain.arc402.xyz\nmax_concurrent_agreements = 10 # Refuse new hire requests when this many are in-flight\npoll_interval_seconds = 2 # How often to poll relay for incoming messages\nrelay_url = \"\" # The relay to poll. Defaults to agent metadata relay if empty.\n\n[watchtower]\nenabled = true\npoll_interval_seconds = 60 # How often to poll chain for stale-close events\nchallenge_confirmation_blocks = 2 # Wait N block confirmations before accepting close as final\nexternal_watchtower_url = \"\" # Register open channels here as backup (Tier 2 watchtower)\nupdate_interval_states = 10 # Forward state to external watchtower every N state changes\n\n[policy]\nauto_accept = false # If true: auto-accept all hire requests within policy bounds\nmax_price_eth = \"0.1\" # Refuse any hire priced above this (ETH)\nallowed_capabilities = [] # Empty list = accept any capability. Non-empty = whitelist.\nrequire_min_trust_score = 50 # Refuse hirers whose wallet trust score is below this (0\u2013100)\nmin_hire_lead_time_seconds = 300 # Refuse hires with delivery deadline < this many seconds away\n\n[notifications]\ntelegram_bot_token = \"env:TELEGRAM_BOT_TOKEN\" # Load from env, not hardcoded\ntelegram_chat_id = \"env:TELEGRAM_CHAT_ID\" # Load from env, not hardcoded\nnotify_on_hire_request = true # Notify when a hire request arrives (pending approval)\nnotify_on_hire_accepted = true # Notify when daemon accepts a hire\nnotify_on_hire_rejected = true # Notify when daemon rejects a hire\nnotify_on_delivery = true # Notify when work is delivered and fulfill() submitted\nnotify_on_dispute = true # Notify when a dispute is raised (by either party)\nnotify_on_channel_challenge = true # Notify when watchtower submits a channel challenge\nnotify_on_low_balance = false # Disabled by default \u2014 enable if you want balance alerts\nlow_balance_threshold_eth = \"0.005\" # Balance alert threshold\n\n[notifications.discord]\nwebhook_url = \"\" # Discord channel webhook URL (leave empty to disable)\n\n[notifications.webhook]\nurl = \"\" # POST JSON {title, body, timestamp} to this URL (leave empty to disable)\n# headers = { Authorization = \"Bearer ...\" } # Optional headers\n\n[notifications.email]\nsmtp_host = \"\" # SMTP server hostname (leave empty to disable)\nsmtp_port = 587\nsmtp_user = \"\" # SMTP login / from address\nsmtp_pass = \"env:SMTP_PASS\" # Load from env, not hardcoded\nto = \"\" # Recipient address\n\n[work]\nhandler = \"noop\" # exec | http | noop\nexec_command = \"\" # called with agreementId and spec as args (exec mode)\nhttp_url = \"\" # POST {agreementId, specHash, deadline} as JSON (http mode)\nhttp_auth_token = \"env:WORKER_AUTH_TOKEN\"\n";
|
|
105
|
+
export declare const TEMPLATE_DAEMON_TOML = "# ~/.arc402/daemon.toml\n# ARC-402 Daemon Configuration\n# Generated by: arc402 daemon init\n#\n# SECURITY: Never put private keys here. Use environment variables.\n\n[wallet]\ncontract_address = \"\" # ARC402Wallet contract address (required)\nowner_address = \"\" # Owner EOA address \u2014 for display and verification only\nmachine_key = \"env:ARC402_MACHINE_KEY\" # Machine key loaded from environment. NEVER hardcode here.\n\n[network]\nrpc_url = \"https://mainnet.base.org\" # Public Base RPC (default)\nchain_id = 8453 # Base mainnet. Use 84532 for Base Sepolia.\nentry_point = \"0x0000000071727De22E5E9d8BAf0edAc6f37da032\" # ERC-4337 EntryPoint v0.7\n\n[bundler]\nmode = \"external\" # external | arc402 | self\nendpoint = \"\" # Required when mode = external. Pimlico, Alchemy, etc.\nearn_fees = false # self mode only: bundle for other network agents\neth_float = \"0.01\" # Minimum ETH to maintain in bundler EOA for gas fronting\nsweep_threshold = \"0.005\" # Sweep fees to wallet when bundler EOA exceeds this (ETH)\nsweep_to = \"\" # Sweep destination. Defaults to wallet.contract_address.\nrpc_url = \"\" # self mode: private RPC. Defaults to network.rpc_url if empty.\n\n[relay]\nenabled = true\nlisten_port = 4402 # Port for incoming relay messages\nendpoint = \"\" # Your public URL \u2014 run: arc402 setup endpoint\n # Example: https://gigabrain.arc402.xyz\nmax_concurrent_agreements = 10 # Refuse new hire requests when this many are in-flight\npoll_interval_seconds = 2 # How often to poll relay for incoming messages\nrelay_url = \"\" # The relay to poll. Defaults to agent metadata relay if empty.\n\n[watchtower]\nenabled = true\npoll_interval_seconds = 60 # How often to poll chain for stale-close events\nchallenge_confirmation_blocks = 2 # Wait N block confirmations before accepting close as final\nexternal_watchtower_url = \"\" # Register open channels here as backup (Tier 2 watchtower)\nupdate_interval_states = 10 # Forward state to external watchtower every N state changes\n\n[policy]\nauto_accept = false # If true: auto-accept all hire requests within policy bounds\nmax_price_eth = \"0.1\" # Refuse any hire priced above this (ETH)\nallowed_capabilities = [] # Empty list = accept any capability. Non-empty = whitelist.\nrequire_min_trust_score = 50 # Refuse hirers whose wallet trust score is below this (0\u2013100)\nmin_hire_lead_time_seconds = 300 # Refuse hires with delivery deadline < this many seconds away\n\n[notifications]\ntelegram_bot_token = \"env:TELEGRAM_BOT_TOKEN\" # Load from env, not hardcoded\ntelegram_chat_id = \"env:TELEGRAM_CHAT_ID\" # Load from env, not hardcoded\nnotify_on_hire_request = true # Notify when a hire request arrives (pending approval)\nnotify_on_hire_accepted = true # Notify when daemon accepts a hire\nnotify_on_hire_rejected = true # Notify when daemon rejects a hire\nnotify_on_delivery = true # Notify when work is delivered and fulfill() submitted\nnotify_on_dispute = true # Notify when a dispute is raised (by either party)\nnotify_on_channel_challenge = true # Notify when watchtower submits a channel challenge\nnotify_on_low_balance = false # Disabled by default \u2014 enable if you want balance alerts\nlow_balance_threshold_eth = \"0.005\" # Balance alert threshold\n\n[notifications.discord]\nwebhook_url = \"\" # Discord channel webhook URL (leave empty to disable)\n\n[notifications.webhook]\nurl = \"\" # POST JSON {title, body, timestamp} to this URL (leave empty to disable)\n# headers = { Authorization = \"Bearer ...\" } # Optional headers\n\n[notifications.email]\nsmtp_host = \"\" # SMTP server hostname (leave empty to disable)\nsmtp_port = 587\nsmtp_user = \"\" # SMTP login / from address\nsmtp_pass = \"env:SMTP_PASS\" # Load from env, not hardcoded\nto = \"\" # Recipient address\n\n[work]\nhandler = \"noop\" # exec | http | noop\nexec_command = \"\" # called with agreementId and spec as args (exec mode)\nhttp_url = \"\" # POST {agreementId, specHash, deadline} as JSON (http mode)\nhttp_auth_token = \"env:WORKER_AUTH_TOKEN\"\n\n[compute]\nenabled = false # Enable GPU compute rental\ngpu_spec = \"\" # GPU model identifier (e.g. nvidia-h100-80gb)\nrate_per_hour_wei = \"0\" # Wei per GPU-hour (0 = disabled)\nmax_concurrent_sessions = 1 # Usually 1 (one GPU per session)\nmetering_interval_seconds = 30 # nvidia-smi poll interval\nreport_interval_minutes = 15 # Usage report generation interval\nauto_accept_compute = false # Auto-accept compute proposals\nmin_session_hours = 1 # Minimum session duration\nmax_session_hours = 24 # Maximum session duration\n\n[delivery]\nmax_file_size_mb = 100 # Maximum size for a single uploaded file (MB)\nmax_job_size_mb = 500 # Maximum total size for all files in a job (MB)\nauto_download = true # Auto-download and verify files on delivery notification\nserve_files = true # Serve file endpoints (/job/:id/files, /job/:id/manifest)\n";
|
|
88
106
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/daemon/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/daemon/config.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/config.js
CHANGED
|
@@ -1,19 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.TEMPLATE_DAEMON_TOML = exports.DAEMON_SOCK = exports.DAEMON_DB = exports.DAEMON_LOG = exports.DAEMON_PID = exports.DAEMON_TOML = exports.DAEMON_DIR = void 0;
|
|
37
|
+
exports.loadDaemonConfig = loadDaemonConfig;
|
|
38
|
+
exports.loadMachineKey = loadMachineKey;
|
|
1
39
|
/**
|
|
2
40
|
* Daemon configuration loader.
|
|
3
41
|
* Parses ~/.arc402/daemon.toml, enforces env: prefix for secrets,
|
|
4
42
|
* resolves env: values from the environment.
|
|
5
43
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export const DAEMON_SOCK = path.join(DAEMON_DIR, "daemon.sock");
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const os = __importStar(require("os"));
|
|
47
|
+
const smol_toml_1 = require("smol-toml");
|
|
48
|
+
exports.DAEMON_DIR = path.join(os.homedir(), ".arc402");
|
|
49
|
+
exports.DAEMON_TOML = path.join(exports.DAEMON_DIR, "daemon.toml");
|
|
50
|
+
exports.DAEMON_PID = path.join(exports.DAEMON_DIR, "daemon.pid");
|
|
51
|
+
exports.DAEMON_LOG = path.join(exports.DAEMON_DIR, "daemon.log");
|
|
52
|
+
exports.DAEMON_DB = path.join(exports.DAEMON_DIR, "daemon.db");
|
|
53
|
+
exports.DAEMON_SOCK = path.join(exports.DAEMON_DIR, "daemon.sock");
|
|
17
54
|
function resolveEnvValue(value, field) {
|
|
18
55
|
if (!value.startsWith("env:"))
|
|
19
56
|
return value;
|
|
@@ -54,6 +91,8 @@ function withDefaults(raw) {
|
|
|
54
91
|
const notifWebhook = notif.webhook ?? {};
|
|
55
92
|
const notifEmail = notif.email ?? {};
|
|
56
93
|
const work = raw.work ?? {};
|
|
94
|
+
const compute = raw.compute ?? {};
|
|
95
|
+
const delivery = raw.delivery ?? {};
|
|
57
96
|
return {
|
|
58
97
|
wallet: {
|
|
59
98
|
contract_address: str(w.contract_address),
|
|
@@ -126,16 +165,34 @@ function withDefaults(raw) {
|
|
|
126
165
|
http_url: str(work.http_url),
|
|
127
166
|
http_auth_token: str(work.http_auth_token),
|
|
128
167
|
},
|
|
168
|
+
compute: {
|
|
169
|
+
enabled: bool(compute.enabled, false),
|
|
170
|
+
gpu_spec: str(compute.gpu_spec),
|
|
171
|
+
rate_per_hour_wei: str(compute.rate_per_hour_wei, "0"),
|
|
172
|
+
max_concurrent_sessions: num(compute.max_concurrent_sessions, 1),
|
|
173
|
+
metering_interval_seconds: num(compute.metering_interval_seconds, 30),
|
|
174
|
+
report_interval_minutes: num(compute.report_interval_minutes, 15),
|
|
175
|
+
auto_accept_compute: bool(compute.auto_accept_compute, false),
|
|
176
|
+
min_session_hours: num(compute.min_session_hours, 1),
|
|
177
|
+
max_session_hours: num(compute.max_session_hours, 24),
|
|
178
|
+
compute_agreement_address: str(compute.compute_agreement_address),
|
|
179
|
+
},
|
|
180
|
+
delivery: {
|
|
181
|
+
max_file_size_mb: num(delivery.max_file_size_mb, 100),
|
|
182
|
+
max_job_size_mb: num(delivery.max_job_size_mb, 500),
|
|
183
|
+
auto_download: bool(delivery.auto_download, true),
|
|
184
|
+
serve_files: bool(delivery.serve_files, true),
|
|
185
|
+
},
|
|
129
186
|
};
|
|
130
187
|
}
|
|
131
|
-
|
|
188
|
+
function loadDaemonConfig(configPath = exports.DAEMON_TOML) {
|
|
132
189
|
if (!fs.existsSync(configPath)) {
|
|
133
190
|
throw new Error(`daemon.toml not found at ${configPath}. Run: arc402 daemon init`);
|
|
134
191
|
}
|
|
135
192
|
const raw = fs.readFileSync(configPath, "utf-8");
|
|
136
193
|
let parsed;
|
|
137
194
|
try {
|
|
138
|
-
parsed =
|
|
195
|
+
parsed = (0, smol_toml_1.parse)(raw);
|
|
139
196
|
}
|
|
140
197
|
catch (err) {
|
|
141
198
|
throw new Error(`Failed to parse daemon.toml: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -164,7 +221,7 @@ export function loadDaemonConfig(configPath = DAEMON_TOML) {
|
|
|
164
221
|
config.work.http_auth_token = tryResolveEnvValue(config.work.http_auth_token);
|
|
165
222
|
return config;
|
|
166
223
|
}
|
|
167
|
-
|
|
224
|
+
function loadMachineKey(config) {
|
|
168
225
|
const envVarName = config.wallet.machine_key.startsWith("env:")
|
|
169
226
|
? config.wallet.machine_key.slice(4)
|
|
170
227
|
: "ARC402_MACHINE_KEY";
|
|
@@ -172,7 +229,7 @@ export function loadMachineKey(config) {
|
|
|
172
229
|
if (!privateKey) {
|
|
173
230
|
throw new Error(`Machine key not found. Set environment variable: ${envVarName}`);
|
|
174
231
|
}
|
|
175
|
-
|
|
232
|
+
const { ethers } = require("ethers");
|
|
176
233
|
let address;
|
|
177
234
|
try {
|
|
178
235
|
const w = new ethers.Wallet(privateKey);
|
|
@@ -183,7 +240,7 @@ export function loadMachineKey(config) {
|
|
|
183
240
|
}
|
|
184
241
|
return { privateKey, address };
|
|
185
242
|
}
|
|
186
|
-
|
|
243
|
+
exports.TEMPLATE_DAEMON_TOML = `# ~/.arc402/daemon.toml
|
|
187
244
|
# ARC-402 Daemon Configuration
|
|
188
245
|
# Generated by: arc402 daemon init
|
|
189
246
|
#
|
|
@@ -262,5 +319,22 @@ handler = "noop" # exec | http | noop
|
|
|
262
319
|
exec_command = "" # called with agreementId and spec as args (exec mode)
|
|
263
320
|
http_url = "" # POST {agreementId, specHash, deadline} as JSON (http mode)
|
|
264
321
|
http_auth_token = "env:WORKER_AUTH_TOKEN"
|
|
322
|
+
|
|
323
|
+
[compute]
|
|
324
|
+
enabled = false # Enable GPU compute rental
|
|
325
|
+
gpu_spec = "" # GPU model identifier (e.g. nvidia-h100-80gb)
|
|
326
|
+
rate_per_hour_wei = "0" # Wei per GPU-hour (0 = disabled)
|
|
327
|
+
max_concurrent_sessions = 1 # Usually 1 (one GPU per session)
|
|
328
|
+
metering_interval_seconds = 30 # nvidia-smi poll interval
|
|
329
|
+
report_interval_minutes = 15 # Usage report generation interval
|
|
330
|
+
auto_accept_compute = false # Auto-accept compute proposals
|
|
331
|
+
min_session_hours = 1 # Minimum session duration
|
|
332
|
+
max_session_hours = 24 # Maximum session duration
|
|
333
|
+
|
|
334
|
+
[delivery]
|
|
335
|
+
max_file_size_mb = 100 # Maximum size for a single uploaded file (MB)
|
|
336
|
+
max_job_size_mb = 500 # Maximum total size for all files in a job (MB)
|
|
337
|
+
auto_download = true # Auto-download and verify files on delivery notification
|
|
338
|
+
serve_files = true # Serve file endpoints (/job/:id/files, /job/:id/manifest)
|
|
265
339
|
`;
|
|
266
340
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/daemon/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/daemon/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface ProviderConfig {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
auth: string;
|
|
4
|
+
env?: string;
|
|
5
|
+
oauth_token_path?: string;
|
|
6
|
+
hosts: string[];
|
|
7
|
+
service_account_path?: string;
|
|
8
|
+
}
|
|
9
|
+
interface CredentialsConfig {
|
|
10
|
+
providers: Record<string, ProviderConfig>;
|
|
11
|
+
}
|
|
12
|
+
export declare const CREDENTIALS_PATH: string;
|
|
13
|
+
export declare function loadCredentials(): Promise<CredentialsConfig | null>;
|
|
14
|
+
export declare function getEnabledProviders(): Promise<Array<{
|
|
15
|
+
name: string;
|
|
16
|
+
env?: string;
|
|
17
|
+
hosts: string[];
|
|
18
|
+
auth: string;
|
|
19
|
+
hasKey: boolean;
|
|
20
|
+
}>>;
|
|
21
|
+
export declare function getDockerEnvFlags(): Promise<string[]>;
|
|
22
|
+
export declare function getProviderHosts(): Promise<string[]>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/daemon/credentials.ts"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC3C;AAED,eAAO,MAAM,gBAAgB,QAAmE,CAAC;AAEjG,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAKzE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC,CAaF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAS3D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAG1D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CREDENTIALS_PATH = void 0;
|
|
37
|
+
exports.loadCredentials = loadCredentials;
|
|
38
|
+
exports.getEnabledProviders = getEnabledProviders;
|
|
39
|
+
exports.getDockerEnvFlags = getDockerEnvFlags;
|
|
40
|
+
exports.getProviderHosts = getProviderHosts;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const os = __importStar(require("os"));
|
|
44
|
+
exports.CREDENTIALS_PATH = path.join(os.homedir(), ".arc402", "worker", "credentials.toml");
|
|
45
|
+
async function loadCredentials() {
|
|
46
|
+
if (!fs.existsSync(exports.CREDENTIALS_PATH))
|
|
47
|
+
return null;
|
|
48
|
+
const { parse } = await Promise.resolve().then(() => __importStar(require("smol-toml")));
|
|
49
|
+
const raw = fs.readFileSync(exports.CREDENTIALS_PATH, "utf-8");
|
|
50
|
+
return parse(raw);
|
|
51
|
+
}
|
|
52
|
+
async function getEnabledProviders() {
|
|
53
|
+
const creds = await loadCredentials();
|
|
54
|
+
if (!creds?.providers)
|
|
55
|
+
return [];
|
|
56
|
+
return Object.entries(creds.providers)
|
|
57
|
+
.filter(([_name, p]) => p.enabled)
|
|
58
|
+
.map(([name, p]) => ({
|
|
59
|
+
name,
|
|
60
|
+
env: p.env,
|
|
61
|
+
hosts: p.hosts || [],
|
|
62
|
+
auth: p.auth || "api_key",
|
|
63
|
+
hasKey: p.env ? !!process.env[p.env] : false,
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
async function getDockerEnvFlags() {
|
|
67
|
+
const providers = await getEnabledProviders();
|
|
68
|
+
const flags = [];
|
|
69
|
+
for (const p of providers) {
|
|
70
|
+
if (p.env && process.env[p.env]) {
|
|
71
|
+
flags.push("-e", `${p.env}=${process.env[p.env]}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return flags;
|
|
75
|
+
}
|
|
76
|
+
async function getProviderHosts() {
|
|
77
|
+
const providers = await getEnabledProviders();
|
|
78
|
+
return providers.flatMap(p => p.hosts);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/daemon/credentials.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,0CAKC;AAED,kDAmBC;AAED,8CASC;AAED,4CAGC;AA7DD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAeZ,QAAA,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAE1F,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,wBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,EAAE,KAAK,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,wBAAgB,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,GAAG,CAAiC,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,mBAAmB;IAOvC,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,SAAS;QAAE,OAAO,EAAE,CAAC;IAEjC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnB,IAAI;QACJ,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;QACzB,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;KAC7C,CAAC,CAAC,CAAC;AACR,CAAC;AAEM,KAAK,UAAU,iBAAiB;IACrC,MAAM,SAAS,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,gBAAgB;IACpC,MAAM,SAAS,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC9C,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface VerificationResult {
|
|
2
|
+
ok: boolean;
|
|
3
|
+
agreementId: string;
|
|
4
|
+
rootHashMatch: boolean;
|
|
5
|
+
fileResults: Array<{
|
|
6
|
+
name: string;
|
|
7
|
+
hashMatch: boolean;
|
|
8
|
+
expected: string;
|
|
9
|
+
actual: string;
|
|
10
|
+
}>;
|
|
11
|
+
error?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class DeliveryClient {
|
|
14
|
+
private readonly autoDownload;
|
|
15
|
+
log: (entry: Record<string, unknown>) => void;
|
|
16
|
+
constructor(opts?: {
|
|
17
|
+
autoDownload?: boolean;
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Handle an incoming delivery notification.
|
|
21
|
+
* If auto_download is true, downloads and verifies the files.
|
|
22
|
+
* Returns a VerificationResult.
|
|
23
|
+
*/
|
|
24
|
+
handleDeliveryNotification(params: {
|
|
25
|
+
agreementId: string;
|
|
26
|
+
deliverableHash: string;
|
|
27
|
+
filesUrl?: string;
|
|
28
|
+
}): Promise<VerificationResult | null>;
|
|
29
|
+
private deriveManifestUrl;
|
|
30
|
+
private downloadAndVerify;
|
|
31
|
+
private computeRootHash;
|
|
32
|
+
private fetchJson;
|
|
33
|
+
private fetchBytes;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=delivery-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-client.d.ts","sourceRoot":"","sources":["../../src/daemon/delivery-client.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAY;gBAE7C,IAAI,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO;IAIjD;;;;OAIG;IACG,0BAA0B,CAAC,MAAM,EAAE;QACvC,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA8EtC,OAAO,CAAC,iBAAiB;YAiBX,iBAAiB;IAuB/B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,SAAS;IA6BjB,OAAO,CAAC,UAAU;CAiCnB"}
|