@agentxv2/gateway 0.1.1
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/.env.example +53 -0
- package/db/migrations/001_init.sql +117 -0
- package/db/migrations/002_agents.sql +20 -0
- package/db/migrations/003_a2a_results.sql +23 -0
- package/deploy/.env.deploy.example +23 -0
- package/deploy/add_swap_build.py +45 -0
- package/deploy/build_and_deploy.py +110 -0
- package/deploy/build_deploy_a2a.py +190 -0
- package/deploy/build_no_lint.py +52 -0
- package/deploy/build_on_fe.py +86 -0
- package/deploy/build_on_gw.py +98 -0
- package/deploy/build_prod.py +54 -0
- package/deploy/check_bal.py +31 -0
- package/deploy/check_code.py +47 -0
- package/deploy/check_deploy.sh +20 -0
- package/deploy/check_docs.py +16 -0
- package/deploy/check_frontend.py +42 -0
- package/deploy/check_frontend2.py +35 -0
- package/deploy/check_pks.py +34 -0
- package/deploy/check_status.py +32 -0
- package/deploy/check_v2.py +8 -0
- package/deploy/clean_install.py +28 -0
- package/deploy/deploy_a2a.py +58 -0
- package/deploy/deploy_a2a.sh +33 -0
- package/deploy/deploy_a2a_bg.sh +40 -0
- package/deploy/deploy_a2a_v2.py +151 -0
- package/deploy/deploy_a2a_v2.sh +36 -0
- package/deploy/deploy_bin.py +64 -0
- package/deploy/deploy_config.py +34 -0
- package/deploy/deploy_final.py +42 -0
- package/deploy/deploy_frontend.py +108 -0
- package/deploy/deploy_mcp.py +108 -0
- package/deploy/deploy_now.py +49 -0
- package/deploy/deploy_push_all.py +128 -0
- package/deploy/deploy_script.py +64 -0
- package/deploy/deploy_sep_a2a.sh +18 -0
- package/deploy/dev_mode.py +51 -0
- package/deploy/diag.py +12 -0
- package/deploy/diff_test.py +22 -0
- package/deploy/final_check.py +33 -0
- package/deploy/final_deploy.py +50 -0
- package/deploy/final_fix.py +54 -0
- package/deploy/final_push.py +114 -0
- package/deploy/find_frontend.py +38 -0
- package/deploy/fix_a2a.py +43 -0
- package/deploy/fix_and_build.py +77 -0
- package/deploy/fix_and_verify.py +56 -0
- package/deploy/fix_build.py +51 -0
- package/deploy/forge_deploy.py +67 -0
- package/deploy/full_push.py +101 -0
- package/deploy/full_push2.py +106 -0
- package/deploy/go_prod.py +59 -0
- package/deploy/gw_deploy.py +133 -0
- package/deploy/gw_final.py +206 -0
- package/deploy/gw_restart.py +28 -0
- package/deploy/gw_status.py +18 -0
- package/deploy/inline_build.py +99 -0
- package/deploy/one_shot.py +84 -0
- package/deploy/ox_deploy.py +32 -0
- package/deploy/pg_setup.py +36 -0
- package/deploy/prod_deploy.py +126 -0
- package/deploy/prod_final.py +140 -0
- package/deploy/prod_go.py +61 -0
- package/deploy/prod_one_shot.py +139 -0
- package/deploy/prod_setup.sh +62 -0
- package/deploy/prod_v2.py +91 -0
- package/deploy/prod_v3.py +103 -0
- package/deploy/push_docs.py +93 -0
- package/deploy/push_mcp.py +66 -0
- package/deploy/push_mcp_doc.py +28 -0
- package/deploy/push_v063.py +80 -0
- package/deploy/push_v2.py +71 -0
- package/deploy/qcheck.py +13 -0
- package/deploy/qcheck2.py +18 -0
- package/deploy/quick_check.py +8 -0
- package/deploy/rebuild.py +47 -0
- package/deploy/rebuild_frontend.py +44 -0
- package/deploy/restart.py +28 -0
- package/deploy/restore_frontend.py +42 -0
- package/deploy/restore_frontend2.py +41 -0
- package/deploy/restore_gateway.py +34 -0
- package/deploy/restore_quick.py +33 -0
- package/deploy/run_bash.py +19 -0
- package/deploy/run_sep.py +20 -0
- package/deploy/sdk_upgrade.py +50 -0
- package/deploy/server_prepare.py +41 -0
- package/deploy/server_setup.py +41 -0
- package/deploy/ssh_check.py +14 -0
- package/deploy/ssh_push.py +24 -0
- package/deploy/start_deploy.py +35 -0
- package/deploy/start_frontend.py +12 -0
- package/deploy/start_v2.py +29 -0
- package/deploy/stat.py +18 -0
- package/deploy/tail_log.py +11 -0
- package/deploy/update_env.py +32 -0
- package/deploy/upload_and_start.py +107 -0
- package/deploy/verify_a2a.py +13 -0
- package/deploy/verify_mcp.py +37 -0
- package/deploy/verify_sdk.py +21 -0
- package/dist/config.d.ts +26 -0
- package/dist/config.js +41 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +149 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/crypto.d.ts +2 -0
- package/dist/lib/crypto.js +43 -0
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/db.d.ts +3 -0
- package/dist/lib/db.js +26 -0
- package/dist/lib/db.js.map +1 -0
- package/dist/lib/ethers-utils.d.ts +60 -0
- package/dist/lib/ethers-utils.js +186 -0
- package/dist/lib/ethers-utils.js.map +1 -0
- package/dist/middleware/adminAuth.d.ts +2 -0
- package/dist/middleware/adminAuth.js +31 -0
- package/dist/middleware/adminAuth.js.map +1 -0
- package/dist/middleware/auth.d.ts +22 -0
- package/dist/middleware/auth.js +192 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +36 -0
- package/dist/middleware/error-handler.js +100 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/rate-limiter.d.ts +5 -0
- package/dist/middleware/rate-limiter.js +107 -0
- package/dist/middleware/rate-limiter.js.map +1 -0
- package/dist/routes/a2a.d.ts +2 -0
- package/dist/routes/a2a.js +84 -0
- package/dist/routes/a2a.js.map +1 -0
- package/dist/routes/admin.d.ts +2 -0
- package/dist/routes/admin.js +180 -0
- package/dist/routes/admin.js.map +1 -0
- package/dist/routes/agents.d.ts +2 -0
- package/dist/routes/agents.js +43 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/chat.d.ts +2 -0
- package/dist/routes/chat.js +183 -0
- package/dist/routes/chat.js.map +1 -0
- package/dist/routes/history.d.ts +2 -0
- package/dist/routes/history.js +92 -0
- package/dist/routes/history.js.map +1 -0
- package/dist/routes/mcp.d.ts +13 -0
- package/dist/routes/mcp.js +513 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/tenant.d.ts +2 -0
- package/dist/routes/tenant.js +154 -0
- package/dist/routes/tenant.js.map +1 -0
- package/dist/services/a2a-worker.d.ts +7 -0
- package/dist/services/a2a-worker.js +406 -0
- package/dist/services/a2a-worker.js.map +1 -0
- package/dist/services/agent-indexer.d.ts +4 -0
- package/dist/services/agent-indexer.js +124 -0
- package/dist/services/agent-indexer.js.map +1 -0
- package/e2e_wallet.js +175 -0
- package/ecosystem.config.js +17 -0
- package/package.json +33 -0
- package/src/config.ts +47 -0
- package/src/index.ts +143 -0
- package/src/lib/crypto.ts +44 -0
- package/src/lib/db.ts +25 -0
- package/src/lib/ethers-utils.ts +229 -0
- package/src/middleware/adminAuth.ts +34 -0
- package/src/middleware/auth.ts +244 -0
- package/src/middleware/error-handler.ts +109 -0
- package/src/middleware/rate-limiter.ts +115 -0
- package/src/routes/a2a.ts +97 -0
- package/src/routes/admin.ts +219 -0
- package/src/routes/agents.ts +52 -0
- package/src/routes/chat.ts +219 -0
- package/src/routes/history.ts +114 -0
- package/src/routes/mcp.ts +567 -0
- package/src/routes/tenant.ts +196 -0
- package/src/services/a2a-worker.ts +486 -0
- package/src/services/agent-indexer.ts +127 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
|
|
3
|
+
transport = paramiko.Transport(('43.156.78.59', 22))
|
|
4
|
+
transport.connect(username='ubuntu', password='Asdf1234!')
|
|
5
|
+
sftp = paramiko.SFTPClient.from_transport(transport)
|
|
6
|
+
sftp.put(r'c:\Users\apply\Downloads\code\agentx\extracted\Agentx\gateway\deploy\deploy_sep_a2a.sh', '/tmp/deploy_sep_a2a.sh')
|
|
7
|
+
sftp.close()
|
|
8
|
+
transport.close()
|
|
9
|
+
|
|
10
|
+
c = paramiko.SSHClient()
|
|
11
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
12
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=30)
|
|
13
|
+
stdin, stdout, stderr = c.exec_command('chmod +x /tmp/deploy_sep_a2a.sh && bash /tmp/deploy_sep_a2a.sh 2>&1', timeout=600)
|
|
14
|
+
out = stdout.read().decode()
|
|
15
|
+
err = stderr.read().decode()
|
|
16
|
+
ec = stdout.channel.recv_exit_status()
|
|
17
|
+
print(out[-2000:])
|
|
18
|
+
if err: print("E:", err[-500:])
|
|
19
|
+
print(f"\nExit code: {ec}")
|
|
20
|
+
c.close()
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import paramiko, base64, time
|
|
2
|
+
|
|
3
|
+
c = paramiko.SSHClient()
|
|
4
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
5
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=30)
|
|
6
|
+
|
|
7
|
+
def run(cmd, timeout=600):
|
|
8
|
+
print(f"> {cmd[:120]}")
|
|
9
|
+
stdin, stdout, stderr = c.exec_command(cmd, timeout=timeout)
|
|
10
|
+
out = stdout.read().decode()
|
|
11
|
+
err = stderr.read().decode()
|
|
12
|
+
ec = stdout.channel.recv_exit_status()
|
|
13
|
+
if out: print(out[-400:])
|
|
14
|
+
if err: print("E:", err[-300:])
|
|
15
|
+
return ec, out, err
|
|
16
|
+
|
|
17
|
+
# 1. Update package.json version to 0.6.2
|
|
18
|
+
with open(r'c:\Users\apply\Downloads\code\agentx\extracted\Agentx\frontend\package.json', 'r') as f:
|
|
19
|
+
pkg = f.read()
|
|
20
|
+
b64 = base64.b64encode(pkg.encode()).decode()
|
|
21
|
+
run(f"echo '{b64}' | base64 -d > /home/ubuntu/agentx-platform/package.json && echo 'pkg updated'")
|
|
22
|
+
|
|
23
|
+
# 2. Kill current server
|
|
24
|
+
run("fuser -k 8080/tcp 2>/dev/null; pkill -f 'next' 2>/dev/null; sleep 2; echo cleaned")
|
|
25
|
+
|
|
26
|
+
# 3. Install updated SDK
|
|
27
|
+
print("\n=== npm install @agentxv2/sdk@0.6.2 ===")
|
|
28
|
+
run("cd /home/ubuntu/agentx-platform && npm install @agentxv2/sdk@0.6.2 2>&1 | tail -5", timeout=120)
|
|
29
|
+
|
|
30
|
+
# 4. Build
|
|
31
|
+
print("\n=== next build ===")
|
|
32
|
+
ec, out, err = run(
|
|
33
|
+
"cd /home/ubuntu/agentx-platform && NODE_OPTIONS='--max-old-space-size=1536' npx next build 2>&1 | tail -20",
|
|
34
|
+
timeout=600
|
|
35
|
+
)
|
|
36
|
+
print(f"\nBuild exit: {ec}")
|
|
37
|
+
if ec != 0:
|
|
38
|
+
print("BUILD FAILED")
|
|
39
|
+
c.close()
|
|
40
|
+
exit(1)
|
|
41
|
+
|
|
42
|
+
# 5. Start
|
|
43
|
+
print("\n=== Start ===")
|
|
44
|
+
run("cd /home/ubuntu/agentx-platform && nohup npx next start -p 8080 > /tmp/fe-062.log 2>&1 &", timeout=5)
|
|
45
|
+
time.sleep(5)
|
|
46
|
+
run("ss -tlnp | grep 8080", timeout=10)
|
|
47
|
+
run("curl -sI http://localhost:8080/ 2>&1 | head -3", timeout=10)
|
|
48
|
+
|
|
49
|
+
c.close()
|
|
50
|
+
print("\n✅ Done")
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
import os, sys
|
|
3
|
+
|
|
4
|
+
host = '101.33.109.117'
|
|
5
|
+
user = 'ubuntu'
|
|
6
|
+
password = 'Asdf1234!'
|
|
7
|
+
|
|
8
|
+
client = paramiko.SSHClient()
|
|
9
|
+
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
10
|
+
client.connect(host, username=user, password=password)
|
|
11
|
+
|
|
12
|
+
def run(cmd):
|
|
13
|
+
print(f"> {cmd}")
|
|
14
|
+
stdin, stdout, stderr = client.exec_command(cmd)
|
|
15
|
+
out = stdout.read().decode()
|
|
16
|
+
err = stderr.read().decode()
|
|
17
|
+
ec = stdout.channel.recv_exit_status()
|
|
18
|
+
if out: print(out)
|
|
19
|
+
if err: print("ERR:", err[:500])
|
|
20
|
+
return ec, out, err
|
|
21
|
+
|
|
22
|
+
# 1. Install PM2
|
|
23
|
+
print("\n=== Installing PM2 ===")
|
|
24
|
+
run("sudo npm install -g pm2 2>&1")
|
|
25
|
+
|
|
26
|
+
# 2. Create PostgreSQL user + database
|
|
27
|
+
print("\n=== Setting up PostgreSQL ===")
|
|
28
|
+
run("sudo -u postgres psql -c \"CREATE USER agentx WITH PASSWORD 'AgentX2024!';\" 2>&1 || echo 'user may exist'")
|
|
29
|
+
run("sudo -u postgres psql -c \"CREATE DATABASE agentx_gateway OWNER agentx;\" 2>&1 || echo 'db may exist'")
|
|
30
|
+
run("sudo -u postgres psql -c \"GRANT ALL PRIVILEGES ON DATABASE agentx_gateway TO agentx;\" 2>&1")
|
|
31
|
+
|
|
32
|
+
# 3. Create app directory
|
|
33
|
+
print("\n=== Creating directories ===")
|
|
34
|
+
run("mkdir -p ~/agentx-gateway && echo ok")
|
|
35
|
+
|
|
36
|
+
# 4. Generate secrets
|
|
37
|
+
print("\n=== Generating secrets ===")
|
|
38
|
+
run("openssl rand -hex 32 > /tmp/jwt_secret.txt && openssl rand -hex 32 > /tmp/master_key.txt && echo 'Secrets generated'")
|
|
39
|
+
|
|
40
|
+
client.close()
|
|
41
|
+
print("\nDone. Server prepared.")
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
host = '101.33.109.117'
|
|
5
|
+
user = 'ubuntu'
|
|
6
|
+
password = 'Asdf1234!'
|
|
7
|
+
|
|
8
|
+
key_dir = r'C:\Users\apply\AppData\Local\Temp\tmpxp9fg0pi'
|
|
9
|
+
with open(os.path.join(key_dir, 'id_rsa.pub')) as f:
|
|
10
|
+
pubkey = f.read().strip()
|
|
11
|
+
|
|
12
|
+
client = paramiko.SSHClient()
|
|
13
|
+
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
14
|
+
client.connect(host, username=user, password=password)
|
|
15
|
+
|
|
16
|
+
cmd = f'mkdir -p ~/.ssh && echo "{pubkey}" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'
|
|
17
|
+
stdin, stdout, stderr = client.exec_command(cmd)
|
|
18
|
+
stdout.channel.recv_exit_status()
|
|
19
|
+
|
|
20
|
+
stdin, stdout, stderr = client.exec_command(
|
|
21
|
+
'echo "===OS===" && cat /etc/os-release | head -4 && '
|
|
22
|
+
'echo "===NODE===" && node -v 2>/dev/null || echo "NO_NODE" && '
|
|
23
|
+
'echo "===NPM===" && npm -v 2>/dev/null || echo "NO_NPM" && '
|
|
24
|
+
'echo "===PSQL===" && psql --version 2>/dev/null || echo "NO_PSQL" && '
|
|
25
|
+
'echo "===REDIS===" && redis-cli --version 2>/dev/null || echo "NO_REDIS" && '
|
|
26
|
+
'echo "===PM2===" && pm2 -v 2>/dev/null || echo "NO_PM2" && '
|
|
27
|
+
'echo "===GIT===" && git --version 2>/dev/null || echo "NO_GIT" && '
|
|
28
|
+
'echo "===DISK===" && df -h / | tail -1 && '
|
|
29
|
+
'echo "===MEM===" && free -h | head -2 && '
|
|
30
|
+
'echo "===PORTS===" && ss -tlnp 2>/dev/null | head -20 && '
|
|
31
|
+
'echo "===DOCKER===" && docker --version 2>/dev/null || echo "NO_DOCKER" && '
|
|
32
|
+
'echo "===UFW===" && sudo ufw status 2>/dev/null || echo "NO_UFW"'
|
|
33
|
+
)
|
|
34
|
+
out = stdout.read().decode()
|
|
35
|
+
err = stderr.read().decode()
|
|
36
|
+
|
|
37
|
+
client.close()
|
|
38
|
+
|
|
39
|
+
print(out)
|
|
40
|
+
if err:
|
|
41
|
+
print("STDERR:", err)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
|
|
3
|
+
c = paramiko.SSHClient()
|
|
4
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
5
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=15)
|
|
6
|
+
|
|
7
|
+
# Check SSH keys and git config
|
|
8
|
+
stdin, stdout, stderr = c.exec_command(
|
|
9
|
+
"ls -la ~/.ssh/ 2>/dev/null; echo '===GIT==='; git config --global -l 2>/dev/null; "
|
|
10
|
+
"echo '===SSH_TEST==='; ssh -T git@github.com 2>&1 | head -3"
|
|
11
|
+
)
|
|
12
|
+
print(stdout.read().decode())
|
|
13
|
+
|
|
14
|
+
c.close()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
|
|
3
|
+
c = paramiko.SSHClient()
|
|
4
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
5
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=15)
|
|
6
|
+
|
|
7
|
+
push = '''#!/bin/bash
|
|
8
|
+
set -e
|
|
9
|
+
cd /tmp/agentx-push
|
|
10
|
+
git remote set-url origin git@github.com:sftgroup/Agentx.git
|
|
11
|
+
git push origin main 2>&1
|
|
12
|
+
echo "PUSH_OK"
|
|
13
|
+
'''
|
|
14
|
+
|
|
15
|
+
import base64
|
|
16
|
+
b64 = base64.b64encode(push.encode()).decode()
|
|
17
|
+
stdin, stdout, stderr = c.exec_command(
|
|
18
|
+
f"echo '{b64}' | base64 -d | bash 2>&1"
|
|
19
|
+
)
|
|
20
|
+
out = stdout.read().decode()
|
|
21
|
+
err = stderr.read().decode()
|
|
22
|
+
print(out)
|
|
23
|
+
if err: print("E:", err[-300:])
|
|
24
|
+
c.close()
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
|
|
3
|
+
transport = paramiko.Transport(('43.156.78.59', 22))
|
|
4
|
+
transport.connect(username='ubuntu', password='Asdf1234!')
|
|
5
|
+
sftp = paramiko.SFTPClient.from_transport(transport)
|
|
6
|
+
sftp.put(r'c:\Users\apply\Downloads\code\agentx\extracted\Agentx\gateway\deploy\deploy_a2a_bg.sh', '/tmp/deploy_a2a_bg.sh')
|
|
7
|
+
sftp.close()
|
|
8
|
+
transport.close()
|
|
9
|
+
|
|
10
|
+
c = paramiko.SSHClient()
|
|
11
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
12
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=15)
|
|
13
|
+
|
|
14
|
+
# First test cast abi-encode
|
|
15
|
+
stdin, stdout, stderr = c.exec_command(
|
|
16
|
+
"export PATH=$HOME/.foundry/bin:$PATH && "
|
|
17
|
+
"cast abi-encode 'constructor(address)' 0xe94ad380d3F8d08a7590eda0C84f354a93F96e5F 2>&1",
|
|
18
|
+
timeout=15
|
|
19
|
+
)
|
|
20
|
+
out = stdout.read().decode().strip()
|
|
21
|
+
err = stderr.read().decode().strip()
|
|
22
|
+
print(f"cast abi-encode test: {out}")
|
|
23
|
+
if err: print(f"err: {err}")
|
|
24
|
+
|
|
25
|
+
# Start deploy in background
|
|
26
|
+
print("\n=== Starting background deploy ===")
|
|
27
|
+
stdin, stdout, stderr = c.exec_command(
|
|
28
|
+
"chmod +x /tmp/deploy_a2a_bg.sh && nohup bash /tmp/deploy_a2a_bg.sh &>/dev/null & echo 'PID='$!",
|
|
29
|
+
timeout=10
|
|
30
|
+
)
|
|
31
|
+
print(stdout.read().decode().strip())
|
|
32
|
+
|
|
33
|
+
c.close()
|
|
34
|
+
print("\nDeploy running in background on server...")
|
|
35
|
+
print("Will check results in a moment")
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
|
|
3
|
+
host_f = '43.156.78.59'
|
|
4
|
+
c = paramiko.SSHClient()
|
|
5
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
6
|
+
c.connect(host_f, username='ubuntu', password='Asdf1234!', timeout=10)
|
|
7
|
+
|
|
8
|
+
ch = c.get_transport().open_session()
|
|
9
|
+
ch.exec_command("cd ~/agentx-platform && NODE_OPTIONS='--max-old-space-size=512' nohup npx next dev -p 8080 -H 0.0.0.0 > /tmp/n8080.log 2>&1 &")
|
|
10
|
+
ch.recv_exit_status()
|
|
11
|
+
print("Started next dev")
|
|
12
|
+
c.close()
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
|
|
3
|
+
transport = paramiko.Transport(('43.156.78.59', 22))
|
|
4
|
+
transport.connect(username='ubuntu', password='Asdf1234!')
|
|
5
|
+
sftp = paramiko.SFTPClient.from_transport(transport)
|
|
6
|
+
sftp.put(r'c:\Users\apply\Downloads\code\agentx\extracted\Agentx\gateway\deploy\deploy_a2a_v2.sh', '/tmp/deploy_a2a_v2.sh')
|
|
7
|
+
sftp.close()
|
|
8
|
+
transport.close()
|
|
9
|
+
|
|
10
|
+
c = paramiko.SSHClient()
|
|
11
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
12
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=15)
|
|
13
|
+
|
|
14
|
+
# Check OxaChain balance
|
|
15
|
+
stdin, stdout, stderr = c.exec_command(
|
|
16
|
+
"export PATH=$HOME/.foundry/bin:$PATH && "
|
|
17
|
+
"cast balance 0x4F7744F97AaC9Ad7f0a67de75b149aDb87464103 --rpc-url http://43.156.99.215:18545 2>&1",
|
|
18
|
+
timeout=15
|
|
19
|
+
)
|
|
20
|
+
ox_bal = stdout.read().decode().strip()
|
|
21
|
+
print(f"OxaChain L1 balance: {ox_bal} wei")
|
|
22
|
+
|
|
23
|
+
# Start deploy
|
|
24
|
+
stdin, stdout, stderr = c.exec_command(
|
|
25
|
+
"chmod +x /tmp/deploy_a2a_v2.sh && nohup bash /tmp/deploy_a2a_v2.sh &>/dev/null & echo 'PID='$!",
|
|
26
|
+
timeout=10
|
|
27
|
+
)
|
|
28
|
+
print(stdout.read().decode().strip())
|
|
29
|
+
c.close()
|
package/deploy/stat.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
c = paramiko.SSHClient()
|
|
3
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
4
|
+
c.connect('43.156.225.164', username='ubuntu', password='Asdf1234!', timeout=10)
|
|
5
|
+
|
|
6
|
+
stdin, stdout, stderr = c.exec_command("tail -8 /tmp/agentx-deploy.log 2>/dev/null")
|
|
7
|
+
print("LOG:", stdout.read().decode()[:500])
|
|
8
|
+
|
|
9
|
+
stdin, stdout, stderr = c.exec_command("ps aux | grep -v grep | grep -E 'next|npm' | head -3")
|
|
10
|
+
print("PROC:", stdout.read().decode()[:300])
|
|
11
|
+
|
|
12
|
+
stdin, stdout, stderr = c.exec_command("ss -tlnp | grep 3000 || echo NO_PORT")
|
|
13
|
+
print("PORT:", stdout.read().decode()[:200])
|
|
14
|
+
|
|
15
|
+
stdin, stdout, stderr = c.exec_command("ls /home/ubuntu/agentx-platform/.next/BUILD_ID 2>/dev/null && echo BUILD_OK || echo NO_BUILD")
|
|
16
|
+
print("BUILD:", stdout.read().decode()[:200])
|
|
17
|
+
|
|
18
|
+
c.close()
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import paramiko, time
|
|
2
|
+
time.sleep(30)
|
|
3
|
+
c = paramiko.SSHClient()
|
|
4
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
5
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=10)
|
|
6
|
+
stdin, stdout, stderr = c.exec_command('cat /tmp/a2a_deploy.log 2>/dev/null || echo NO_LOG')
|
|
7
|
+
out = stdout.read().decode()
|
|
8
|
+
err = stderr.read().decode()
|
|
9
|
+
print(out)
|
|
10
|
+
if err: print("E:", err[-300:])
|
|
11
|
+
c.close()
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
import base64
|
|
3
|
+
import time
|
|
4
|
+
|
|
5
|
+
c = paramiko.SSHClient()
|
|
6
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
7
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=30)
|
|
8
|
+
|
|
9
|
+
# Upload updated .env.production
|
|
10
|
+
with open(r'c:\Users\apply\Downloads\code\agentx\extracted\Agentx\frontend\.env.production', 'r') as f:
|
|
11
|
+
env = f.read()
|
|
12
|
+
b64 = base64.b64encode(env.encode()).decode()
|
|
13
|
+
|
|
14
|
+
stdin, stdout, stderr = c.exec_command(
|
|
15
|
+
f"echo '{b64}' | base64 -d > /home/ubuntu/agentx-platform/.env.production && echo 'env updated' && wc -c /home/ubuntu/agentx-platform/.env.production"
|
|
16
|
+
)
|
|
17
|
+
print(stdout.read().decode().strip())
|
|
18
|
+
|
|
19
|
+
# Verify the A2A address in .env
|
|
20
|
+
stdin, stdout, stderr = c.exec_command(
|
|
21
|
+
"grep A2A_PROTOCOL /home/ubuntu/agentx-platform/.env.production"
|
|
22
|
+
)
|
|
23
|
+
print(stdout.read().decode().strip())
|
|
24
|
+
|
|
25
|
+
# Check balance after deploy
|
|
26
|
+
stdin, stdout, stderr = c.exec_command(
|
|
27
|
+
"export PATH=$HOME/.foundry/bin:$PATH && cast balance 0x4F7744F97AaC9Ad7f0a67de75b149aDb87464103 --rpc-url http://43.156.99.215:18545 2>&1"
|
|
28
|
+
)
|
|
29
|
+
print(f"OxaChain balance: {stdout.read().decode().strip()}")
|
|
30
|
+
|
|
31
|
+
c.close()
|
|
32
|
+
print("\nNow building...")
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
import os, sys
|
|
3
|
+
|
|
4
|
+
host = '101.33.109.117'
|
|
5
|
+
user = 'ubuntu'
|
|
6
|
+
password = 'Asdf1234!'
|
|
7
|
+
|
|
8
|
+
gateway_src = r'c:\Users\apply\Downloads\code\agentx\extracted\Agentx\gateway'
|
|
9
|
+
|
|
10
|
+
client = paramiko.SSHClient()
|
|
11
|
+
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
12
|
+
client.connect(host, username=user, password=password)
|
|
13
|
+
|
|
14
|
+
sftp = client.open_sftp()
|
|
15
|
+
|
|
16
|
+
def upload_dir(local_dir, remote_dir):
|
|
17
|
+
for root, dirs, files in os.walk(local_dir):
|
|
18
|
+
# Skip node_modules, dist, .git
|
|
19
|
+
dirs[:] = [d for d in dirs if d not in ('node_modules', 'dist', '.git', '__pycache__', 'deploy')]
|
|
20
|
+
|
|
21
|
+
rel_path = os.path.relpath(root, local_dir)
|
|
22
|
+
remote_path = os.path.join(remote_dir, rel_path).replace('\\', '/')
|
|
23
|
+
|
|
24
|
+
# Create remote directory
|
|
25
|
+
try:
|
|
26
|
+
sftp.stat(remote_path)
|
|
27
|
+
except FileNotFoundError:
|
|
28
|
+
try:
|
|
29
|
+
sftp.mkdir(remote_path)
|
|
30
|
+
except:
|
|
31
|
+
pass
|
|
32
|
+
|
|
33
|
+
for file in files:
|
|
34
|
+
local_file = os.path.join(root, file)
|
|
35
|
+
remote_file = os.path.join(remote_path, file).replace('\\', '/')
|
|
36
|
+
print(f" Uploading: {rel_path}/{file}")
|
|
37
|
+
try:
|
|
38
|
+
sftp.put(local_file, remote_file)
|
|
39
|
+
except Exception as e:
|
|
40
|
+
print(f" ERROR: {e}")
|
|
41
|
+
|
|
42
|
+
print("Uploading gateway source code...")
|
|
43
|
+
remote_dir = '/home/ubuntu/agentx-gateway'
|
|
44
|
+
upload_dir(gateway_src, remote_dir)
|
|
45
|
+
|
|
46
|
+
sftp.close()
|
|
47
|
+
|
|
48
|
+
# Now run setup commands
|
|
49
|
+
def run(cmd):
|
|
50
|
+
print(f"> {cmd}")
|
|
51
|
+
stdin, stdout, stderr = client.exec_command(cmd)
|
|
52
|
+
out = stdout.read().decode()
|
|
53
|
+
err = stderr.read().decode()
|
|
54
|
+
stdout.channel.recv_exit_status()
|
|
55
|
+
if out: print(out)
|
|
56
|
+
if err: print("ERR:", err[:300])
|
|
57
|
+
return out
|
|
58
|
+
|
|
59
|
+
# Read secrets
|
|
60
|
+
print("\n=== Reading secrets ===")
|
|
61
|
+
stdin, stdout, stderr = client.exec_command("cat /tmp/jwt_secret.txt")
|
|
62
|
+
jwt_secret = stdout.read().decode().strip()
|
|
63
|
+
stdin, stdout, stderr = client.exec_command("cat /tmp/master_key.txt")
|
|
64
|
+
master_key = stdout.read().decode().strip()
|
|
65
|
+
|
|
66
|
+
# Create .env
|
|
67
|
+
env_content = f"""PORT=3090
|
|
68
|
+
NODE_ENV=production
|
|
69
|
+
DATABASE_URL=postgresql://agentx:AgentX2024!@localhost:5432/agentx_gateway
|
|
70
|
+
REDIS_URL=redis://localhost:6379
|
|
71
|
+
JWT_SECRET={jwt_secret}
|
|
72
|
+
MASTER_ENCRYPTION_KEY={master_key}
|
|
73
|
+
SESSION_TTL_SEC=86400
|
|
74
|
+
CORS_ORIGIN=*
|
|
75
|
+
"""
|
|
76
|
+
print("\n=== Writing .env ===")
|
|
77
|
+
stdin, stdout, stderr = client.exec_command(f"cat > ~/agentx-gateway/.env << 'ENVEOF'\n{env_content}\nENVEOF")
|
|
78
|
+
stdout.channel.recv_exit_status()
|
|
79
|
+
print("Done")
|
|
80
|
+
|
|
81
|
+
# Run migration
|
|
82
|
+
print("\n=== Running database migration ===")
|
|
83
|
+
run("sudo -u postgres psql -d agentx_gateway -f ~/agentx-gateway/db/migrations/001_init.sql")
|
|
84
|
+
|
|
85
|
+
# Install npm dependencies
|
|
86
|
+
print("\n=== Installing npm dependencies ===")
|
|
87
|
+
run("cd ~/agentx-gateway && npm install --production 2>&1")
|
|
88
|
+
|
|
89
|
+
# Build TypeScript
|
|
90
|
+
print("\n=== Building ===")
|
|
91
|
+
run("cd ~/agentx-gateway && npx tsc 2>&1")
|
|
92
|
+
|
|
93
|
+
# Create logs directory
|
|
94
|
+
run("mkdir -p ~/agentx-gateway/logs")
|
|
95
|
+
|
|
96
|
+
# Start with PM2
|
|
97
|
+
print("\n=== Starting with PM2 ===")
|
|
98
|
+
run("cd ~/agentx-gateway && pm2 start ecosystem.config.js 2>&1")
|
|
99
|
+
run("pm2 save 2>&1")
|
|
100
|
+
|
|
101
|
+
# Verify
|
|
102
|
+
print("\n=== Verifying ===")
|
|
103
|
+
run("sleep 2 && curl -s http://localhost:3090/api/v1/health 2>&1")
|
|
104
|
+
run("pm2 status 2>&1")
|
|
105
|
+
|
|
106
|
+
client.close()
|
|
107
|
+
print("\n=== Deployment Complete ===")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import paramiko, base64
|
|
2
|
+
c = paramiko.SSHClient()
|
|
3
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
4
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=10)
|
|
5
|
+
|
|
6
|
+
script = 'export PATH=$HOME/.foundry/bin:$PATH; cast call 0xeA90077ff0B01c7D43472f42ae5bC89d06760D5f "getUserTasks(address)(uint256[])" 0x4F7744F97AaC9Ad7f0a67de75b149aDb87464103 --rpc-url https://ethereum-sepolia-rpc.publicnode.com 2>&1; echo "---"; cast call 0xeA90077ff0B01c7D43472f42ae5bC89d06760D5f "getAllSkills()(tuple(uint256,string,string,string,string,string[],uint256,bool,uint256)[])" --rpc-url https://ethereum-sepolia-rpc.publicnode.com 2>&1 | head -3'
|
|
7
|
+
b64 = base64.b64encode(script.encode()).decode()
|
|
8
|
+
stdin, stdout, stderr = c.exec_command(f'echo "{b64}"|base64 -d|bash 2>&1')
|
|
9
|
+
out = stdout.read().decode()
|
|
10
|
+
err = stderr.read().decode()
|
|
11
|
+
print(out)
|
|
12
|
+
if err: print("E:", err[-500:])
|
|
13
|
+
c.close()
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
|
|
3
|
+
c = paramiko.SSHClient()
|
|
4
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
5
|
+
c.connect('43.156.225.164', username='ubuntu', password='Asdf1234!', timeout=10)
|
|
6
|
+
|
|
7
|
+
# Test tools/list
|
|
8
|
+
import json
|
|
9
|
+
stdin, stdout, stderr = c.exec_command(
|
|
10
|
+
'curl -s -X POST http://localhost:3090/mcp -H "Content-Type: application/json" -d \'{"jsonrpc":"2.0","id":1,"method":"tools/list"}\''
|
|
11
|
+
)
|
|
12
|
+
data = json.loads(stdout.read().decode())
|
|
13
|
+
tools = data.get('result', {}).get('tools', [])
|
|
14
|
+
print(f"MCP tools/list: {len(tools)} tools")
|
|
15
|
+
for t in tools[:5]:
|
|
16
|
+
print(f" - {t['name']}")
|
|
17
|
+
print(f" - ... ({len(tools)-5} more)")
|
|
18
|
+
|
|
19
|
+
# Test tools/call
|
|
20
|
+
stdin, stdout, stderr = c.exec_command(
|
|
21
|
+
'curl -s -X POST http://localhost:3090/mcp -H "Content-Type: application/json" -d \'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"agentx_gateway_health","arguments":{}}}\''
|
|
22
|
+
)
|
|
23
|
+
data = json.loads(stdout.read().decode())
|
|
24
|
+
content = data.get('result', {}).get('content', [])
|
|
25
|
+
if content:
|
|
26
|
+
print(f"\nMCP tools/call (health): {content[0].get('text', '')[:200]}")
|
|
27
|
+
else:
|
|
28
|
+
print(f"\nMCP tools/call result: {data}")
|
|
29
|
+
|
|
30
|
+
# Test initialize
|
|
31
|
+
stdin, stdout, stderr = c.exec_command(
|
|
32
|
+
'curl -s -X POST http://localhost:3090/mcp -H "Content-Type: application/json" -d \'{"jsonrpc":"2.0","id":3,"method":"initialize","params":{"protocolVersion":"2024-11-05"}}\''
|
|
33
|
+
)
|
|
34
|
+
data = json.loads(stdout.read().decode())
|
|
35
|
+
print(f"\nMCP initialize: server={data.get('result',{}).get('serverInfo',{}).get('name')}")
|
|
36
|
+
|
|
37
|
+
c.close()
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import paramiko
|
|
2
|
+
|
|
3
|
+
c = paramiko.SSHClient()
|
|
4
|
+
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
5
|
+
c.connect('43.156.78.59', username='ubuntu', password='Asdf1234!', timeout=10)
|
|
6
|
+
|
|
7
|
+
# Check port
|
|
8
|
+
stdin, stdout, stderr = c.exec_command("ss -tlnp | grep 8080")
|
|
9
|
+
print("PORT:", stdout.read().decode().strip())
|
|
10
|
+
|
|
11
|
+
# Check SDK version
|
|
12
|
+
stdin, stdout, stderr = c.exec_command(
|
|
13
|
+
"cat /home/ubuntu/agentx-platform/node_modules/@agentxv2/sdk/package.json | python3 -c \"import sys,json; print(json.load(sys.stdin)['version'])\""
|
|
14
|
+
)
|
|
15
|
+
print("SDK:", stdout.read().decode().strip())
|
|
16
|
+
|
|
17
|
+
# HTTP check
|
|
18
|
+
stdin, stdout, stderr = c.exec_command("curl -sI http://localhost:8080/ 2>&1 | head -2")
|
|
19
|
+
print("HTTP:", stdout.read().decode().strip())
|
|
20
|
+
|
|
21
|
+
c.close()
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const config: {
|
|
2
|
+
port: number;
|
|
3
|
+
nodeEnv: string;
|
|
4
|
+
databaseUrl: string;
|
|
5
|
+
redisUrl: string;
|
|
6
|
+
jwtSecret: string;
|
|
7
|
+
masterEncryptionKey: string;
|
|
8
|
+
sessionTtlSec: number;
|
|
9
|
+
rpcUrl: string;
|
|
10
|
+
rpcUrlOxaChain: string;
|
|
11
|
+
chainId: number;
|
|
12
|
+
chainIdOxaChain: number;
|
|
13
|
+
identityRegistry: string;
|
|
14
|
+
identityRegistryOxaChain: string;
|
|
15
|
+
subscriptionManager: string;
|
|
16
|
+
subscriptionManagerOxaChain: string;
|
|
17
|
+
a2aProtocol: string;
|
|
18
|
+
a2aProtocolOxaChain: string;
|
|
19
|
+
reputationRegistry: string;
|
|
20
|
+
reputationRegistryOxaChain: string;
|
|
21
|
+
configurationRegistry: string;
|
|
22
|
+
configurationRegistryOxaChain: string;
|
|
23
|
+
multiEndpoint: string;
|
|
24
|
+
multiEndpointOxaChain: string;
|
|
25
|
+
a2aWorkerPrivateKey: string;
|
|
26
|
+
};
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// AgentX Gateway — Configuration
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.config = void 0;
|
|
10
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
11
|
+
dotenv_1.default.config();
|
|
12
|
+
exports.config = {
|
|
13
|
+
port: parseInt(process.env.PORT || '3090', 10),
|
|
14
|
+
nodeEnv: process.env.NODE_ENV || 'development',
|
|
15
|
+
databaseUrl: process.env.DATABASE_URL || 'postgresql://localhost:5432/agentx_gateway',
|
|
16
|
+
redisUrl: process.env.REDIS_URL || 'redis://localhost:6379',
|
|
17
|
+
jwtSecret: process.env.JWT_SECRET || 'dev-secret-change-me',
|
|
18
|
+
masterEncryptionKey: process.env.MASTER_ENCRYPTION_KEY || '',
|
|
19
|
+
sessionTtlSec: parseInt(process.env.SESSION_TTL_SEC || '86400', 10),
|
|
20
|
+
// MCP / On-chain read — Dual-chain
|
|
21
|
+
// Sepolia
|
|
22
|
+
rpcUrl: process.env.RPC_URL || 'https://ethereum-sepolia-rpc.publicnode.com',
|
|
23
|
+
rpcUrlOxaChain: process.env.RPC_URL_OXACHAIN || 'https://rpc-oxa.0xainet.top',
|
|
24
|
+
chainId: parseInt(process.env.CHAIN_ID || '11155111', 10),
|
|
25
|
+
chainIdOxaChain: parseInt(process.env.CHAIN_ID_OXACHAIN || '19505', 10),
|
|
26
|
+
identityRegistry: process.env.IDENTITY_REGISTRY || '0xe94ad380d3F8d08a7590eda0C84f354a93F96e5F',
|
|
27
|
+
identityRegistryOxaChain: process.env.IDENTITY_REGISTRY_OXACHAIN || '0xbf5F9db266c8c97E3334466C88597Eb758AfE212',
|
|
28
|
+
subscriptionManager: process.env.SUBSCRIPTION_MANAGER || '0xC15fE80b9d800abb72121F353a6ae6d6E9077E63',
|
|
29
|
+
subscriptionManagerOxaChain: process.env.SUBSCRIPTION_MANAGER_OXACHAIN || '0x019AC9d945467478Dd371CDbD70cb2f325800E6B',
|
|
30
|
+
a2aProtocol: process.env.A2A_PROTOCOL || '0x309C7447d89f3087A9924BB686d88df020F7e9cB',
|
|
31
|
+
a2aProtocolOxaChain: process.env.A2A_PROTOCOL_OXACHAIN || '0x7F42a7dC4A0F3C107664C3750bE1B5B6fa6BEb86',
|
|
32
|
+
reputationRegistry: process.env.REPUTATION_REGISTRY || '0xeb6B410ea71b8d9dA0c96f6A91d35027CE143DC9',
|
|
33
|
+
reputationRegistryOxaChain: process.env.REPUTATION_REGISTRY_OXACHAIN || '0x6a18C2664E1b42063860d864b6448b824d7B843F',
|
|
34
|
+
configurationRegistry: process.env.CONFIGURATION_REGISTRY || '0x68DcE00e4C9077c94BC68016cD14B09557faEA6c',
|
|
35
|
+
configurationRegistryOxaChain: process.env.CONFIGURATION_REGISTRY_OXACHAIN || '0x07280674ccc2898Fd038A9e3C22005CA83ffD2F8',
|
|
36
|
+
multiEndpoint: process.env.MULTI_ENDPOINT || '0xEB5e866f186d4B73F97aa0d70B86f2C6e2e21Cb7',
|
|
37
|
+
multiEndpointOxaChain: process.env.MULTI_ENDPOINT_OXACHAIN || '0xB361d04F49000013FC131D3C59C41c8486C64f8c',
|
|
38
|
+
// A2A Worker wallet (for creating sub-tasks on-chain during multi-agent orchestration)
|
|
39
|
+
a2aWorkerPrivateKey: process.env.A2A_WORKER_PRIVATE_KEY || '',
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;;;;;;AAE9E,oDAA2B;AAC3B,gBAAM,CAAC,MAAM,EAAE,CAAA;AAEF,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;IAE9C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,4CAA4C;IACrF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,wBAAwB;IAE3D,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,sBAAsB;IAC3D,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;IAE5D,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,EAAE,EAAE,CAAC;IAEnE,mCAAmC;IACnC,UAAU;IACV,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,6CAA6C;IAC5E,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,6BAA6B;IAC7E,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,UAAU,EAAE,EAAE,CAAC;IACzD,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,EAAE,EAAE,CAAC;IAEvE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,4CAA4C;IAC/F,wBAAwB,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,4CAA4C;IAEhH,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,4CAA4C;IACrG,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,4CAA4C;IAEtH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,4CAA4C;IACrF,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,4CAA4C;IAEtG,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,4CAA4C;IACnG,0BAA0B,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,4CAA4C;IAEpH,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,4CAA4C;IACzG,6BAA6B,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,4CAA4C;IAE1H,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,4CAA4C;IACzF,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,4CAA4C;IAE1G,uFAAuF;IACvF,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;CAC9D,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|