arc402-cli 0.7.5 → 0.8.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/MIGRATION-SPEC.md +108 -0
- package/dist/abis.js +14 -17
- 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 +27 -61
- 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 +5 -9
- package/dist/client.js.map +1 -1
- package/dist/coinbase-smart-wallet.js +1 -4
- package/dist/coinbase-smart-wallet.js.map +1 -1
- package/dist/commands/accept.js +25 -28
- package/dist/commands/accept.js.map +1 -1
- package/dist/commands/agent-handshake.js +15 -18
- package/dist/commands/agent-handshake.js.map +1 -1
- package/dist/commands/agent.js +98 -104
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/agreements.js +62 -98
- package/dist/commands/agreements.js.map +1 -1
- package/dist/commands/arbitrator.js +45 -81
- package/dist/commands/arbitrator.js.map +1 -1
- package/dist/commands/arena-handshake.js +27 -30
- package/dist/commands/arena-handshake.js.map +1 -1
- package/dist/commands/arena.js +12 -18
- package/dist/commands/arena.js.map +1 -1
- package/dist/commands/backup.js +30 -36
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/cancel.js +15 -18
- package/dist/commands/cancel.js.map +1 -1
- package/dist/commands/channel.js +45 -81
- package/dist/commands/channel.js.map +1 -1
- package/dist/commands/coldstart.js +31 -34
- package/dist/commands/coldstart.js.map +1 -1
- package/dist/commands/config.js +23 -29
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contract-interaction.js +12 -15
- package/dist/commands/contract-interaction.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +98 -135
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/deliver.js +37 -76
- package/dist/commands/deliver.js.map +1 -1
- package/dist/commands/discover.js +24 -27
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/dispute.js +104 -110
- package/dist/commands/dispute.js.map +1 -1
- package/dist/commands/doctor.js +16 -55
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/endpoint.js +56 -95
- package/dist/commands/endpoint.js.map +1 -1
- package/dist/commands/feed.js +11 -18
- package/dist/commands/feed.js.map +1 -1
- package/dist/commands/hire.js +37 -40
- package/dist/commands/hire.js.map +1 -1
- package/dist/commands/migrate.js +30 -33
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/negotiate.d.ts.map +1 -1
- package/dist/commands/negotiate.js +34 -36
- package/dist/commands/negotiate.js.map +1 -1
- package/dist/commands/openshell.js +68 -104
- package/dist/commands/openshell.js.map +1 -1
- package/dist/commands/owner.js +17 -20
- package/dist/commands/owner.js.map +1 -1
- package/dist/commands/policy.js +41 -43
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/relay.d.ts.map +1 -1
- package/dist/commands/relay.js +18 -51
- package/dist/commands/relay.js.map +1 -1
- package/dist/commands/remediate.js +20 -23
- package/dist/commands/remediate.js.map +1 -1
- package/dist/commands/reputation.js +25 -27
- package/dist/commands/reputation.js.map +1 -1
- package/dist/commands/setup.js +65 -104
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/trust.js +17 -20
- package/dist/commands/trust.js.map +1 -1
- package/dist/commands/verify.js +18 -21
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/wallet.js +619 -625
- package/dist/commands/wallet.js.map +1 -1
- package/dist/commands/watch.js +33 -36
- package/dist/commands/watch.js.map +1 -1
- package/dist/commands/watchtower.js +37 -73
- package/dist/commands/watchtower.js.map +1 -1
- package/dist/commands/workroom.d.ts.map +1 -1
- package/dist/commands/workroom.js +138 -171
- package/dist/commands/workroom.js.map +1 -1
- package/dist/config.js +21 -65
- package/dist/config.js.map +1 -1
- package/dist/daemon/config.d.ts.map +1 -1
- package/dist/daemon/config.js +16 -53
- package/dist/daemon/config.js.map +1 -1
- 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 +13 -47
- package/dist/daemon/hire-listener.js.map +1 -1
- package/dist/daemon/index.d.ts +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +50 -88
- 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 +11 -51
- 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 +19 -53
- package/dist/daemon/notify.js.map +1 -1
- package/dist/daemon/token-metering.js +8 -47
- 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 +23 -27
- 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 +8 -12
- package/dist/daemon/wallet-monitor.js.map +1 -1
- package/dist/drain-v4.js +26 -64
- package/dist/drain-v4.js.map +1 -1
- package/dist/endpoint-config.js +20 -63
- package/dist/endpoint-config.js.map +1 -1
- package/dist/endpoint-notify.js +9 -48
- package/dist/endpoint-notify.js.map +1 -1
- package/dist/index.js +16 -50
- package/dist/index.js.map +1 -1
- package/dist/openshell-runtime.d.ts.map +1 -1
- package/dist/openshell-runtime.js +38 -82
- package/dist/openshell-runtime.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +77 -83
- package/dist/program.js.map +1 -1
- package/dist/repl.js +25 -31
- package/dist/repl.js.map +1 -1
- package/dist/signing.js +3 -6
- package/dist/signing.js.map +1 -1
- package/dist/telegram-notify.js +3 -40
- package/dist/telegram-notify.js.map +1 -1
- package/dist/tui/App.d.ts +1 -9
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +47 -65
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Footer.js +4 -7
- package/dist/tui/Footer.js.map +1 -1
- package/dist/tui/Header.d.ts +1 -2
- package/dist/tui/Header.d.ts.map +1 -1
- package/dist/tui/Header.js +8 -14
- package/dist/tui/Header.js.map +1 -1
- package/dist/tui/InputLine.js +17 -23
- package/dist/tui/InputLine.js.map +1 -1
- package/dist/tui/Viewport.d.ts +5 -4
- package/dist/tui/Viewport.d.ts.map +1 -1
- package/dist/tui/Viewport.js +20 -13
- package/dist/tui/Viewport.js.map +1 -1
- package/dist/tui/WalletConnectPairing.d.ts +23 -0
- package/dist/tui/WalletConnectPairing.d.ts.map +1 -0
- package/dist/tui/WalletConnectPairing.js +75 -0
- package/dist/tui/WalletConnectPairing.js.map +1 -0
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +14 -21
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/useChat.js +13 -19
- package/dist/tui/useChat.js.map +1 -1
- package/dist/tui/useCommand.d.ts +2 -7
- package/dist/tui/useCommand.d.ts.map +1 -1
- package/dist/tui/useCommand.js +77 -165
- package/dist/tui/useCommand.js.map +1 -1
- package/dist/tui/useScroll.js +9 -12
- package/dist/tui/useScroll.js.map +1 -1
- package/dist/ui/banner.js +12 -19
- package/dist/ui/banner.js.map +1 -1
- package/dist/ui/colors.js +13 -19
- package/dist/ui/colors.js.map +1 -1
- package/dist/ui/format.js +6 -14
- package/dist/ui/format.js.map +1 -1
- package/dist/ui/spinner.js +6 -12
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/tree.js +3 -6
- package/dist/ui/tree.js.map +1 -1
- package/dist/utils/format.js +27 -41
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/hash.js +4 -42
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/time.js +2 -6
- 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 +12 -19
- 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 +6 -11
- package/dist/walletconnect-session.js.map +1 -1
- package/dist/walletconnect.d.ts +6 -1
- package/dist/walletconnect.d.ts.map +1 -1
- package/dist/walletconnect.js +32 -35
- package/dist/walletconnect.js.map +1 -1
- package/package.json +7 -6
- package/src/bundler.ts +1 -1
- package/src/client.ts +1 -1
- package/src/commands/accept.ts +7 -7
- package/src/commands/agent-handshake.ts +4 -4
- package/src/commands/agent.ts +9 -9
- package/src/commands/agreements.ts +8 -8
- package/src/commands/arbitrator.ts +5 -5
- package/src/commands/arena-handshake.ts +6 -6
- package/src/commands/arena.ts +2 -2
- package/src/commands/backup.ts +1 -1
- package/src/commands/cancel.ts +6 -6
- package/src/commands/channel.ts +6 -6
- package/src/commands/coldstart.ts +5 -5
- package/src/commands/config.ts +2 -2
- package/src/commands/contract-interaction.ts +2 -2
- package/src/commands/daemon.ts +14 -11
- package/src/commands/deliver.ts +9 -9
- package/src/commands/discover.ts +5 -5
- package/src/commands/dispute.ts +7 -7
- package/src/commands/doctor.ts +2 -2
- package/src/commands/endpoint.ts +6 -6
- package/src/commands/feed.ts +1 -1
- package/src/commands/hire.ts +10 -10
- package/src/commands/migrate.ts +7 -7
- package/src/commands/negotiate.ts +6 -5
- package/src/commands/openshell.ts +4 -4
- package/src/commands/owner.ts +5 -5
- package/src/commands/policy.ts +5 -5
- package/src/commands/relay.ts +5 -1
- package/src/commands/remediate.ts +5 -5
- package/src/commands/reputation.ts +6 -6
- package/src/commands/setup.ts +1 -1
- package/src/commands/trust.ts +6 -6
- package/src/commands/verify.ts +6 -6
- package/src/commands/wallet.ts +15 -15
- package/src/commands/watch.ts +3 -3
- package/src/commands/watchtower.ts +6 -6
- package/src/commands/workroom.ts +14 -10
- package/src/daemon/config.ts +2 -1
- package/src/daemon/hire-listener.ts +3 -3
- package/src/daemon/index.ts +10 -9
- package/src/daemon/job-lifecycle.ts +1 -1
- package/src/daemon/notify.ts +4 -4
- package/src/daemon/userops.ts +4 -4
- package/src/daemon/wallet-monitor.ts +2 -2
- package/src/endpoint-notify.ts +1 -1
- package/src/index.ts +8 -7
- package/src/openshell-runtime.ts +5 -1
- package/src/program.ts +36 -36
- package/src/repl.ts +3 -3
- package/src/tui/App.tsx +26 -47
- package/src/tui/Header.tsx +3 -10
- package/src/tui/InputLine.tsx +1 -1
- package/src/tui/Viewport.tsx +22 -18
- package/src/tui/WalletConnectPairing.tsx +131 -0
- package/src/tui/index.tsx +7 -8
- package/src/tui/useChat.ts +1 -1
- package/src/tui/useCommand.ts +86 -183
- package/src/ui/banner.ts +2 -2
- package/src/ui/tree.ts +1 -1
- package/src/wallet-router.ts +2 -2
- package/src/walletconnect-session.ts +1 -1
- package/src/walletconnect.ts +20 -5
- package/tsconfig.json +16 -7
|
@@ -1,43 +1,3 @@
|
|
|
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.generateReceipt = generateReceipt;
|
|
37
|
-
exports.extractLearnings = extractLearnings;
|
|
38
|
-
exports.createJobDirectory = createJobDirectory;
|
|
39
|
-
exports.cleanJobDirectory = cleanJobDirectory;
|
|
40
|
-
exports.computePolicyHash = computePolicyHash;
|
|
41
1
|
/**
|
|
42
2
|
* ARC-402 Job Lifecycle — Post-delivery processing.
|
|
43
3
|
*
|
|
@@ -49,11 +9,11 @@ exports.computePolicyHash = computePolicyHash;
|
|
|
49
9
|
*
|
|
50
10
|
* These functions are called by the daemon after a successful delivery.
|
|
51
11
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
12
|
+
import * as fs from "fs";
|
|
13
|
+
import * as path from "path";
|
|
14
|
+
import * as os from "os";
|
|
15
|
+
import * as crypto from "crypto";
|
|
16
|
+
import { readUsageReport } from "./token-metering.js";
|
|
57
17
|
const ARC402_DIR = path.join(os.homedir(), ".arc402");
|
|
58
18
|
const RECEIPTS_DIR = path.join(ARC402_DIR, "receipts");
|
|
59
19
|
const WORKER_DIR = path.join(ARC402_DIR, "worker");
|
|
@@ -63,7 +23,7 @@ const JOBS_DIR = path.join(ARC402_DIR, "jobs");
|
|
|
63
23
|
/**
|
|
64
24
|
* Generate and persist an execution receipt after job delivery.
|
|
65
25
|
*/
|
|
66
|
-
function generateReceipt(params) {
|
|
26
|
+
export function generateReceipt(params) {
|
|
67
27
|
fs.mkdirSync(RECEIPTS_DIR, { recursive: true });
|
|
68
28
|
// Compute policy hash
|
|
69
29
|
let policyHash = "0x0";
|
|
@@ -77,7 +37,7 @@ function generateReceipt(params) {
|
|
|
77
37
|
const completed = new Date(params.completedAt).getTime();
|
|
78
38
|
const wallClockSeconds = Math.max(0, Math.floor((completed - started) / 1000));
|
|
79
39
|
// Read token usage report (if the worker wrote one)
|
|
80
|
-
const tokenUsage =
|
|
40
|
+
const tokenUsage = readUsageReport(params.agreementId);
|
|
81
41
|
const receipt = {
|
|
82
42
|
schema: "arc402.execution-receipt.v1",
|
|
83
43
|
agreement_id: params.agreementId,
|
|
@@ -111,7 +71,7 @@ function generateReceipt(params) {
|
|
|
111
71
|
* 2. Updates the cumulative learnings.md
|
|
112
72
|
* 3. Updates the worker config (job count, earnings)
|
|
113
73
|
*/
|
|
114
|
-
function extractLearnings(params) {
|
|
74
|
+
export function extractLearnings(params) {
|
|
115
75
|
fs.mkdirSync(WORKER_MEMORY_DIR, { recursive: true });
|
|
116
76
|
const now = new Date().toISOString();
|
|
117
77
|
const dateStr = now.split("T")[0];
|
|
@@ -171,7 +131,7 @@ Hash: ${params.deliverableHash}
|
|
|
171
131
|
* Create an isolated job directory for a specific agreement.
|
|
172
132
|
* Returns the path to the job workspace.
|
|
173
133
|
*/
|
|
174
|
-
function createJobDirectory(agreementId) {
|
|
134
|
+
export function createJobDirectory(agreementId) {
|
|
175
135
|
const jobDir = path.join(JOBS_DIR, `agreement-${agreementId}`);
|
|
176
136
|
fs.mkdirSync(jobDir, { recursive: true });
|
|
177
137
|
return jobDir;
|
|
@@ -180,7 +140,7 @@ function createJobDirectory(agreementId) {
|
|
|
180
140
|
* Clean up a job directory after settlement.
|
|
181
141
|
* Preserves the receipt and job memory — only removes working files.
|
|
182
142
|
*/
|
|
183
|
-
function cleanJobDirectory(agreementId) {
|
|
143
|
+
export function cleanJobDirectory(agreementId) {
|
|
184
144
|
const jobDir = path.join(JOBS_DIR, `agreement-${agreementId}`);
|
|
185
145
|
if (fs.existsSync(jobDir)) {
|
|
186
146
|
fs.rmSync(jobDir, { recursive: true, force: true });
|
|
@@ -191,7 +151,7 @@ function cleanJobDirectory(agreementId) {
|
|
|
191
151
|
* Compute the SHA-256 hash of the current workroom policy.
|
|
192
152
|
* This hash can be registered in AgentRegistry for verifiability.
|
|
193
153
|
*/
|
|
194
|
-
function computePolicyHash(policyFilePath) {
|
|
154
|
+
export function computePolicyHash(policyFilePath) {
|
|
195
155
|
const policyPath = policyFilePath ?? path.join(ARC402_DIR, "openshell-policy.yaml");
|
|
196
156
|
if (!fs.existsSync(policyPath))
|
|
197
157
|
return "0x0";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-lifecycle.js","sourceRoot":"","sources":["../../src/daemon/job-lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"job-lifecycle.js","sourceRoot":"","sources":["../../src/daemon/job-lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/notify.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DaemonConfig } from "./config";
|
|
1
|
+
import type { DaemonConfig } from "./config.js";
|
|
2
2
|
export type NotifyEvent = "hire_request" | "hire_accepted" | "hire_rejected" | "delivery" | "dispute" | "channel_challenge" | "low_balance" | "daemon_started" | "daemon_stopped";
|
|
3
3
|
export interface NotificationChannel {
|
|
4
4
|
send(title: string, body: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/daemon/notify.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/daemon/notify.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/notify.js
CHANGED
|
@@ -1,46 +1,9 @@
|
|
|
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.Notifier = exports.EmailChannel = exports.WebhookChannel = exports.DiscordChannel = exports.TelegramChannel = void 0;
|
|
37
|
-
exports.buildNotifier = buildNotifier;
|
|
38
1
|
/**
|
|
39
2
|
* Multi-channel notification module for daemon events.
|
|
40
3
|
* Supports Telegram, Discord webhooks, generic webhooks, and email (via nodemailer).
|
|
41
4
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
5
|
+
import * as https from "https";
|
|
6
|
+
import * as http from "http";
|
|
44
7
|
// ─── HTTP helper ──────────────────────────────────────────────────────────────
|
|
45
8
|
function httpPost(url, payload, extraHeaders) {
|
|
46
9
|
return new Promise((resolve, reject) => {
|
|
@@ -74,7 +37,9 @@ function httpPost(url, payload, extraHeaders) {
|
|
|
74
37
|
});
|
|
75
38
|
}
|
|
76
39
|
// ─── Telegram channel ─────────────────────────────────────────────────────────
|
|
77
|
-
class TelegramChannel {
|
|
40
|
+
export class TelegramChannel {
|
|
41
|
+
botToken;
|
|
42
|
+
chatId;
|
|
78
43
|
constructor(botToken, chatId) {
|
|
79
44
|
this.botToken = botToken;
|
|
80
45
|
this.chatId = chatId;
|
|
@@ -112,9 +77,9 @@ class TelegramChannel {
|
|
|
112
77
|
});
|
|
113
78
|
}
|
|
114
79
|
}
|
|
115
|
-
exports.TelegramChannel = TelegramChannel;
|
|
116
80
|
// ─── Discord channel ──────────────────────────────────────────────────────────
|
|
117
|
-
class DiscordChannel {
|
|
81
|
+
export class DiscordChannel {
|
|
82
|
+
webhookUrl;
|
|
118
83
|
constructor(webhookUrl) {
|
|
119
84
|
this.webhookUrl = webhookUrl;
|
|
120
85
|
}
|
|
@@ -123,9 +88,10 @@ class DiscordChannel {
|
|
|
123
88
|
await httpPost(this.webhookUrl, JSON.stringify({ content }), {});
|
|
124
89
|
}
|
|
125
90
|
}
|
|
126
|
-
exports.DiscordChannel = DiscordChannel;
|
|
127
91
|
// ─── Generic webhook channel ──────────────────────────────────────────────────
|
|
128
|
-
class WebhookChannel {
|
|
92
|
+
export class WebhookChannel {
|
|
93
|
+
url;
|
|
94
|
+
headers;
|
|
129
95
|
constructor(url, headers = {}) {
|
|
130
96
|
this.url = url;
|
|
131
97
|
this.headers = headers;
|
|
@@ -134,20 +100,20 @@ class WebhookChannel {
|
|
|
134
100
|
await httpPost(this.url, JSON.stringify({ title, body, timestamp: new Date().toISOString() }), this.headers);
|
|
135
101
|
}
|
|
136
102
|
}
|
|
137
|
-
exports.WebhookChannel = WebhookChannel;
|
|
138
103
|
// ─── Email channel (optional — requires nodemailer) ───────────────────────────
|
|
139
|
-
class EmailChannel {
|
|
104
|
+
export class EmailChannel {
|
|
105
|
+
cfg;
|
|
140
106
|
constructor(cfg) {
|
|
141
107
|
this.cfg = cfg;
|
|
142
108
|
}
|
|
143
109
|
async send(title, body) {
|
|
144
110
|
// nodemailer is an optional runtime dependency — load via require to skip
|
|
145
111
|
// compile-time module resolution. Throws a clear message if not installed.
|
|
146
|
-
// eslint-disable-next-line @typescript-eslint/no-
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
147
113
|
let nodemailer;
|
|
148
114
|
try {
|
|
149
|
-
//
|
|
150
|
-
nodemailer =
|
|
115
|
+
// @ts-expect-error nodemailer is an optional dependency
|
|
116
|
+
nodemailer = await import("nodemailer");
|
|
151
117
|
}
|
|
152
118
|
catch {
|
|
153
119
|
throw new Error("nodemailer is not installed. Run: npm install nodemailer");
|
|
@@ -167,9 +133,10 @@ class EmailChannel {
|
|
|
167
133
|
});
|
|
168
134
|
}
|
|
169
135
|
}
|
|
170
|
-
exports.EmailChannel = EmailChannel;
|
|
171
136
|
// ─── Notifier ─────────────────────────────────────────────────────────────────
|
|
172
|
-
class Notifier {
|
|
137
|
+
export class Notifier {
|
|
138
|
+
channels;
|
|
139
|
+
notifyFlags;
|
|
173
140
|
constructor(channels, flags = {}) {
|
|
174
141
|
this.channels = channels;
|
|
175
142
|
this.notifyFlags = {
|
|
@@ -240,9 +207,8 @@ class Notifier {
|
|
|
240
207
|
await this.send("daemon_stopped", "ARC-402 Daemon Stopped", "");
|
|
241
208
|
}
|
|
242
209
|
}
|
|
243
|
-
exports.Notifier = Notifier;
|
|
244
210
|
// ─── Factory ──────────────────────────────────────────────────────────────────
|
|
245
|
-
function buildNotifier(config) {
|
|
211
|
+
export function buildNotifier(config) {
|
|
246
212
|
const notif = config.notifications;
|
|
247
213
|
const channels = [];
|
|
248
214
|
if (notif.telegram_bot_token && notif.telegram_chat_id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/daemon/notify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/daemon/notify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +1,3 @@
|
|
|
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.getUsageReportPath = getUsageReportPath;
|
|
37
|
-
exports.prepareUsageReport = prepareUsageReport;
|
|
38
|
-
exports.readUsageReport = readUsageReport;
|
|
39
|
-
exports.formatUsageReport = formatUsageReport;
|
|
40
1
|
/**
|
|
41
2
|
* ARC-402 Token Usage Metering
|
|
42
3
|
*
|
|
@@ -59,9 +20,9 @@ exports.formatUsageReport = formatUsageReport;
|
|
|
59
20
|
* is responsible for reporting its own usage. OpenClaw agents can do this
|
|
60
21
|
* natively via session metadata.
|
|
61
22
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
23
|
+
import * as fs from "fs";
|
|
24
|
+
import * as path from "path";
|
|
25
|
+
import * as os from "os";
|
|
65
26
|
const ARC402_DIR = path.join(os.homedir(), ".arc402");
|
|
66
27
|
const JOBS_DIR = path.join(ARC402_DIR, "jobs");
|
|
67
28
|
// ─── Known model pricing (USD per 1M tokens, as of 2026-03) ──────────────────
|
|
@@ -83,21 +44,21 @@ const MODEL_PRICING = {
|
|
|
83
44
|
};
|
|
84
45
|
function estimateCost(model, inputTokens, outputTokens) {
|
|
85
46
|
const pricing = MODEL_PRICING[model] ?? MODEL_PRICING["default"];
|
|
86
|
-
return (inputTokens * pricing.input + outputTokens * pricing.output) /
|
|
47
|
+
return (inputTokens * pricing.input + outputTokens * pricing.output) / 1_000_000;
|
|
87
48
|
}
|
|
88
49
|
// ─── Usage report path ────────────────────────────────────────────────────────
|
|
89
50
|
/**
|
|
90
51
|
* Get the path where the worker should write token usage for an agreement.
|
|
91
52
|
* The daemon sets this as an env var before calling exec_command.
|
|
92
53
|
*/
|
|
93
|
-
function getUsageReportPath(agreementId) {
|
|
54
|
+
export function getUsageReportPath(agreementId) {
|
|
94
55
|
return path.join(JOBS_DIR, `agreement-${agreementId}`, "token-usage.jsonl");
|
|
95
56
|
}
|
|
96
57
|
/**
|
|
97
58
|
* Create the parent directory and return the path.
|
|
98
59
|
* Called by the daemon before spawning the worker.
|
|
99
60
|
*/
|
|
100
|
-
function prepareUsageReport(agreementId) {
|
|
61
|
+
export function prepareUsageReport(agreementId) {
|
|
101
62
|
const reportPath = getUsageReportPath(agreementId);
|
|
102
63
|
fs.mkdirSync(path.dirname(reportPath), { recursive: true });
|
|
103
64
|
return reportPath;
|
|
@@ -107,7 +68,7 @@ function prepareUsageReport(agreementId) {
|
|
|
107
68
|
* Read the token usage report for an agreement and aggregate totals.
|
|
108
69
|
* Returns null if no report exists.
|
|
109
70
|
*/
|
|
110
|
-
function readUsageReport(agreementId) {
|
|
71
|
+
export function readUsageReport(agreementId) {
|
|
111
72
|
const reportPath = getUsageReportPath(agreementId);
|
|
112
73
|
if (!fs.existsSync(reportPath))
|
|
113
74
|
return null;
|
|
@@ -159,7 +120,7 @@ function readUsageReport(agreementId) {
|
|
|
159
120
|
/**
|
|
160
121
|
* Format token usage for CLI display.
|
|
161
122
|
*/
|
|
162
|
-
function formatUsageReport(usage) {
|
|
123
|
+
export function formatUsageReport(usage) {
|
|
163
124
|
const lines = [];
|
|
164
125
|
lines.push(`Token Usage`);
|
|
165
126
|
lines.push(`───────────`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-metering.js","sourceRoot":"","sources":["../../src/daemon/token-metering.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token-metering.js","sourceRoot":"","sources":["../../src/daemon/token-metering.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/userops.d.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Wraps protocol calls (accept, fulfill) into ERC-4337 UserOperations.
|
|
4
4
|
*/
|
|
5
5
|
import { ethers } from "ethers";
|
|
6
|
-
import type { UserOperation } from "../bundler";
|
|
7
|
-
import type { DaemonConfig } from "./config";
|
|
6
|
+
import type { UserOperation } from "../bundler.js";
|
|
7
|
+
import type { DaemonConfig } from "./config.js";
|
|
8
8
|
export declare function encodeWalletCall(target: string, innerCalldata: string, value?: bigint): string;
|
|
9
9
|
export declare function buildAcceptCalldata(serviceAgreementAddress: string, agreementId: string, walletAddress: string): string;
|
|
10
10
|
export declare function buildFulfillCalldata(serviceAgreementAddress: string, agreementId: string, deliveryHash: string, walletAddress: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userops.d.ts","sourceRoot":"","sources":["../../src/daemon/userops.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"userops.d.ts","sourceRoot":"","sources":["../../src/daemon/userops.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAYhD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,KAAK,SAAY,GAChB,MAAM,CASR;AAED,wBAAgB,mBAAmB,CACjC,uBAAuB,EAAE,MAAM,EAC/B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,MAAM,CAGR;AAED,wBAAgB,oBAAoB,CAClC,uBAAuB,EAAE,MAAM,EAC/B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,MAAM,CAGR;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ;IAarD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAwB3E,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CActC"}
|
package/dist/daemon/userops.js
CHANGED
|
@@ -1,63 +1,60 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UserOpsManager = void 0;
|
|
4
|
-
exports.encodeWalletCall = encodeWalletCall;
|
|
5
|
-
exports.buildAcceptCalldata = buildAcceptCalldata;
|
|
6
|
-
exports.buildFulfillCalldata = buildFulfillCalldata;
|
|
7
1
|
/**
|
|
8
2
|
* UserOperation builder and submitter for the ARC-402 daemon.
|
|
9
3
|
* Wraps protocol calls (accept, fulfill) into ERC-4337 UserOperations.
|
|
10
4
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
import { ethers } from "ethers";
|
|
6
|
+
import { BundlerClient } from "../bundler.js";
|
|
7
|
+
import { ARC402_WALLET_EXECUTE_ABI } from "../abis.js";
|
|
14
8
|
// ServiceAgreement calldata encoders
|
|
15
|
-
const SA_IFACE = new
|
|
9
|
+
const SA_IFACE = new ethers.Interface([
|
|
16
10
|
"function accept(uint256 agreementId) external",
|
|
17
11
|
"function fulfill(uint256 agreementId, bytes32 actualDeliverablesHash) external",
|
|
18
12
|
]);
|
|
19
13
|
// ARC402Wallet.executeContractCall param type
|
|
20
|
-
const WALLET_EXEC_IFACE = new
|
|
21
|
-
function encodeWalletCall(target, innerCalldata, value = BigInt(0)) {
|
|
14
|
+
const WALLET_EXEC_IFACE = new ethers.Interface(ARC402_WALLET_EXECUTE_ABI);
|
|
15
|
+
export function encodeWalletCall(target, innerCalldata, value = BigInt(0)) {
|
|
22
16
|
return WALLET_EXEC_IFACE.encodeFunctionData("executeContractCall", [{
|
|
23
17
|
target,
|
|
24
18
|
data: innerCalldata,
|
|
25
19
|
value,
|
|
26
20
|
minReturnValue: BigInt(0),
|
|
27
21
|
maxApprovalAmount: BigInt(0),
|
|
28
|
-
approvalToken:
|
|
22
|
+
approvalToken: ethers.ZeroAddress,
|
|
29
23
|
}]);
|
|
30
24
|
}
|
|
31
|
-
function buildAcceptCalldata(serviceAgreementAddress, agreementId, walletAddress) {
|
|
25
|
+
export function buildAcceptCalldata(serviceAgreementAddress, agreementId, walletAddress) {
|
|
32
26
|
const inner = SA_IFACE.encodeFunctionData("accept", [BigInt(agreementId)]);
|
|
33
27
|
return encodeWalletCall(serviceAgreementAddress, inner);
|
|
34
28
|
}
|
|
35
|
-
function buildFulfillCalldata(serviceAgreementAddress, agreementId, deliveryHash, walletAddress) {
|
|
29
|
+
export function buildFulfillCalldata(serviceAgreementAddress, agreementId, deliveryHash, walletAddress) {
|
|
36
30
|
const inner = SA_IFACE.encodeFunctionData("fulfill", [BigInt(agreementId), deliveryHash]);
|
|
37
31
|
return encodeWalletCall(serviceAgreementAddress, inner);
|
|
38
32
|
}
|
|
39
|
-
class UserOpsManager {
|
|
33
|
+
export class UserOpsManager {
|
|
34
|
+
bundlerClient;
|
|
35
|
+
provider;
|
|
36
|
+
config;
|
|
40
37
|
constructor(config, provider) {
|
|
41
38
|
this.config = config;
|
|
42
39
|
this.provider = provider;
|
|
43
40
|
const bundlerUrl = config.bundler.endpoint || "https://api.pimlico.io/v2/base/rpc";
|
|
44
|
-
this.bundlerClient = new
|
|
41
|
+
this.bundlerClient = new BundlerClient(bundlerUrl, config.network.entry_point, config.network.chain_id);
|
|
45
42
|
}
|
|
46
43
|
async buildUserOp(callData, senderWallet) {
|
|
47
|
-
const entryPointContract = new
|
|
44
|
+
const entryPointContract = new ethers.Contract(this.config.network.entry_point, ["function getNonce(address sender, uint192 key) external view returns (uint256)"], this.provider);
|
|
48
45
|
const nonce = await entryPointContract.getNonce(senderWallet, 0);
|
|
49
46
|
const feeData = await this.provider.getFeeData();
|
|
50
|
-
const maxFeePerGas = feeData.maxFeePerGas ?? BigInt(
|
|
51
|
-
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? BigInt(
|
|
47
|
+
const maxFeePerGas = feeData.maxFeePerGas ?? BigInt(1_000_000_000);
|
|
48
|
+
const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas ?? BigInt(100_000_000);
|
|
52
49
|
return {
|
|
53
50
|
sender: senderWallet,
|
|
54
|
-
nonce:
|
|
51
|
+
nonce: ethers.toBeHex(nonce),
|
|
55
52
|
callData,
|
|
56
|
-
callGasLimit:
|
|
57
|
-
verificationGasLimit:
|
|
58
|
-
preVerificationGas:
|
|
59
|
-
maxFeePerGas:
|
|
60
|
-
maxPriorityFeePerGas:
|
|
53
|
+
callGasLimit: ethers.toBeHex(300_000),
|
|
54
|
+
verificationGasLimit: ethers.toBeHex(150_000),
|
|
55
|
+
preVerificationGas: ethers.toBeHex(50_000),
|
|
56
|
+
maxFeePerGas: ethers.toBeHex(maxFeePerGas),
|
|
57
|
+
maxPriorityFeePerGas: ethers.toBeHex(maxPriorityFeePerGas),
|
|
61
58
|
signature: "0x",
|
|
62
59
|
};
|
|
63
60
|
}
|
|
@@ -84,5 +81,4 @@ class UserOpsManager {
|
|
|
84
81
|
}
|
|
85
82
|
}
|
|
86
83
|
}
|
|
87
|
-
exports.UserOpsManager = UserOpsManager;
|
|
88
84
|
//# sourceMappingURL=userops.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userops.js","sourceRoot":"","sources":["../../src/daemon/userops.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"userops.js","sourceRoot":"","sources":["../../src/daemon/userops.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Steps 4 and 5 of the daemon startup sequence (Spec 32 §3).
|
|
4
4
|
*/
|
|
5
5
|
import { ethers } from "ethers";
|
|
6
|
-
import type { DaemonConfig } from "./config";
|
|
6
|
+
import type { DaemonConfig } from "./config.js";
|
|
7
7
|
export interface WalletStatus {
|
|
8
8
|
contractAddress: string;
|
|
9
9
|
ownerAddress: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-monitor.d.ts","sourceRoot":"","sources":["../../src/daemon/wallet-monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"wallet-monitor.d.ts","sourceRoot":"","sources":["../../src/daemon/wallet-monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,YAAY,CAAC,CA0DvB;AAED,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,GACxB,OAAO,CAAC,MAAM,CAAC,CAGjB"}
|