@clawpump/claw-agent 0.1.7 → 0.1.9
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/agent/.mailmap +4 -0
- package/agent/apps/desktop/README.md +3 -3
- package/agent/apps/desktop/assets/icon.icns +0 -0
- package/agent/apps/desktop/assets/icon.ico +0 -0
- package/agent/apps/desktop/assets/icon.png +0 -0
- package/agent/apps/desktop/electron/backend-ready.cjs +2 -2
- package/agent/apps/desktop/electron/dashboard-token.cjs +3 -3
- package/agent/apps/desktop/electron/hardening.cjs +1 -1
- package/agent/apps/desktop/electron/main.cjs +65 -65
- package/agent/apps/desktop/index.html +1 -1
- package/agent/apps/desktop/package.json +11 -11
- package/agent/apps/desktop/public/apple-touch-icon.png +0 -0
- package/agent/apps/desktop/public/claw-mark.png +0 -0
- package/agent/apps/desktop/scripts/set-exe-identity.cjs +2 -2
- package/agent/apps/desktop/src/app/chat/composer/controls.tsx +2 -0
- package/agent/apps/desktop/src/app/chat/composer/index.tsx +10 -0
- package/agent/apps/desktop/src/app/chat/composer/pod-credits.tsx +49 -0
- package/agent/apps/desktop/src/app/chat/index.tsx +1 -1
- package/agent/apps/desktop/src/app/chat/sidebar/index.tsx +4 -2
- package/agent/apps/desktop/src/app/desktop-controller.tsx +18 -0
- package/agent/apps/desktop/src/app/gateway/hooks/use-gateway-request.ts +1 -1
- package/agent/apps/desktop/src/app/messaging/index.tsx +5 -5
- package/agent/apps/desktop/src/app/routes.ts +9 -1
- package/agent/apps/desktop/src/app/session/hooks/use-message-stream.ts +3 -3
- package/agent/apps/desktop/src/app/settings/constants.ts +5 -5
- package/agent/apps/desktop/src/app/settings/model-settings.tsx +1 -1
- package/agent/apps/desktop/src/app/settings/providers-settings.tsx +46 -1
- package/agent/apps/desktop/src/app/settings/uninstall-section.tsx +5 -5
- package/agent/apps/desktop/src/app/types.ts +9 -1
- package/agent/apps/desktop/src/app/wallet/index.tsx +244 -0
- package/agent/apps/desktop/src/app/x402/index.tsx +162 -0
- package/agent/apps/desktop/src/components/assistant-ui/thread.tsx +1 -1
- package/agent/apps/desktop/src/components/brand-mark.tsx +2 -2
- package/agent/apps/desktop/src/components/chat/intro-copy.jsonl +6 -6
- package/agent/apps/desktop/src/components/chat/intro.tsx +4 -4
- package/agent/apps/desktop/src/components/model-picker.tsx +64 -4
- package/agent/apps/desktop/src/components/pod-setup-dialog.tsx +227 -0
- package/agent/apps/desktop/src/hermes.ts +109 -3
- package/agent/apps/desktop/src/i18n/en.ts +80 -78
- package/agent/apps/desktop/src/i18n/ja.ts +82 -82
- package/agent/apps/desktop/src/i18n/runtime.test.ts +2 -2
- package/agent/apps/desktop/src/i18n/zh-hant.ts +82 -82
- package/agent/apps/desktop/src/i18n/zh.ts +87 -87
- package/agent/apps/desktop/src/lib/desktop-fs.ts +1 -1
- package/agent/apps/desktop/src/lib/desktop-slash-commands.ts +4 -4
- package/agent/apps/desktop/src/store/composer.ts +7 -0
- package/agent/apps/desktop/src/store/onboarding.ts +5 -5
- package/agent/apps/desktop/src/themes/presets.ts +54 -54
- package/agent/cli.py +184 -10
- package/agent/hermes_cli/distribution.py +188 -8
- package/agent/hermes_cli/providers.py +29 -0
- package/agent/hermes_cli/web_server.py +403 -34
- package/agent/plugins/model-providers/usepod/__init__.py +7 -1
- package/agent/scripts/release.py +1 -0
- package/agent/web/public/claw-logo.png +0 -0
- package/agent/web/src/App.tsx +6 -4
- package/agent/web/src/components/ChatSidebar.tsx +5 -0
- package/agent/web/src/components/ModelPickerDialog.tsx +28 -1
- package/agent/web/src/components/PodCredits.tsx +57 -0
- package/agent/web/src/components/PodSetupDialog.tsx +240 -0
- package/agent/web/src/lib/api.ts +135 -0
- package/agent/web/src/pages/AgentMailPage.tsx +684 -0
- package/agent/web/src/pages/WalletPage.tsx +53 -5
- package/package.json +1 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useNavigate } from "react-router-dom";
|
|
3
|
+
import { Check, Coins, Copy, RefreshCw, Send, Wallet, X } from "lucide-react";
|
|
3
4
|
import { api } from "@/lib/api";
|
|
4
5
|
import type { AgentWalletBalance } from "@/lib/api";
|
|
5
6
|
import { Button } from "@nous-research/ui/ui/components/button";
|
|
7
|
+
import { Badge } from "@nous-research/ui/ui/components/badge";
|
|
6
8
|
import { Spinner } from "@nous-research/ui/ui/components/spinner";
|
|
7
9
|
import {
|
|
8
10
|
Card,
|
|
@@ -11,6 +13,23 @@ import {
|
|
|
11
13
|
CardTitle,
|
|
12
14
|
} from "@nous-research/ui/ui/components/card";
|
|
13
15
|
|
|
16
|
+
function AgentAvatar({ url }: { url?: string | null }) {
|
|
17
|
+
// ``url`` is a signed avatar URL when the agent has one, else null → fall
|
|
18
|
+
// back to the ClawPump claw so every card shows a real logo.
|
|
19
|
+
return (
|
|
20
|
+
<img
|
|
21
|
+
src={url || "/claw-logo.png"}
|
|
22
|
+
alt=""
|
|
23
|
+
className="h-7 w-7 shrink-0 rounded-full border border-border bg-background object-cover"
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function tokenizePrompt(w: AgentWalletBalance): string {
|
|
29
|
+
const name = w.name || w.agent_id;
|
|
30
|
+
return `Launch a ClawPump token for my agent "${name}" (agent_id ${w.agent_id}). Ask me for the ticker/symbol and any details you need, then launch it.`;
|
|
31
|
+
}
|
|
32
|
+
|
|
14
33
|
/* ── Token logos (inline SVG, no network) ─────────────────────────────── */
|
|
15
34
|
|
|
16
35
|
function SolLogo({ className = "h-5 w-5" }: { className?: string }) {
|
|
@@ -277,6 +296,7 @@ export default function WalletPage() {
|
|
|
277
296
|
const [loading, setLoading] = useState(true);
|
|
278
297
|
const [error, setError] = useState<string | null>(null);
|
|
279
298
|
const [transfer, setTransfer] = useState<AgentWalletBalance | null>(null);
|
|
299
|
+
const navigate = useNavigate();
|
|
280
300
|
|
|
281
301
|
const load = useCallback(() => {
|
|
282
302
|
setLoading(true);
|
|
@@ -296,6 +316,7 @@ export default function WalletPage() {
|
|
|
296
316
|
}, []);
|
|
297
317
|
|
|
298
318
|
useEffect(() => {
|
|
319
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
299
320
|
load();
|
|
300
321
|
}, [load]);
|
|
301
322
|
|
|
@@ -334,13 +355,27 @@ export default function WalletPage() {
|
|
|
334
355
|
</CardContent>
|
|
335
356
|
</Card>
|
|
336
357
|
) : (
|
|
337
|
-
<div className="
|
|
358
|
+
<div className="grid gap-3 sm:grid-cols-2">
|
|
338
359
|
{wallets.map((w) => (
|
|
339
360
|
<Card key={w.agent_id}>
|
|
340
361
|
<CardHeader className="flex flex-row items-center justify-between gap-2 pb-2">
|
|
341
|
-
<
|
|
342
|
-
{w.
|
|
343
|
-
|
|
362
|
+
<div className="flex min-w-0 items-center gap-2">
|
|
363
|
+
<AgentAvatar url={w.avatar_url} />
|
|
364
|
+
<CardTitle className="truncate text-sm font-semibold">
|
|
365
|
+
{w.name || shortAddress(w.agent_id)}
|
|
366
|
+
</CardTitle>
|
|
367
|
+
{w.token_mint && (
|
|
368
|
+
<a
|
|
369
|
+
href={`https://solscan.io/token/${w.token_mint}`}
|
|
370
|
+
target="_blank"
|
|
371
|
+
rel="noreferrer"
|
|
372
|
+
title={w.token_mint}
|
|
373
|
+
className="shrink-0"
|
|
374
|
+
>
|
|
375
|
+
<Badge tone="success">tokenized</Badge>
|
|
376
|
+
</a>
|
|
377
|
+
)}
|
|
378
|
+
</div>
|
|
344
379
|
{w.wallet_address && (
|
|
345
380
|
<Button
|
|
346
381
|
outlined
|
|
@@ -383,6 +418,19 @@ export default function WalletPage() {
|
|
|
383
418
|
</div>
|
|
384
419
|
</div>
|
|
385
420
|
</div>
|
|
421
|
+
{!w.token_mint && (
|
|
422
|
+
<Button
|
|
423
|
+
outlined
|
|
424
|
+
size="sm"
|
|
425
|
+
className="w-full"
|
|
426
|
+
onClick={() =>
|
|
427
|
+
navigate(`/chat?prompt=${encodeURIComponent(tokenizePrompt(w))}`)
|
|
428
|
+
}
|
|
429
|
+
prefix={<Coins className="h-4 w-4" />}
|
|
430
|
+
>
|
|
431
|
+
Tokenize this agent
|
|
432
|
+
</Button>
|
|
433
|
+
)}
|
|
386
434
|
</CardContent>
|
|
387
435
|
</Card>
|
|
388
436
|
))}
|