@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.
Files changed (64) hide show
  1. package/agent/.mailmap +4 -0
  2. package/agent/apps/desktop/README.md +3 -3
  3. package/agent/apps/desktop/assets/icon.icns +0 -0
  4. package/agent/apps/desktop/assets/icon.ico +0 -0
  5. package/agent/apps/desktop/assets/icon.png +0 -0
  6. package/agent/apps/desktop/electron/backend-ready.cjs +2 -2
  7. package/agent/apps/desktop/electron/dashboard-token.cjs +3 -3
  8. package/agent/apps/desktop/electron/hardening.cjs +1 -1
  9. package/agent/apps/desktop/electron/main.cjs +65 -65
  10. package/agent/apps/desktop/index.html +1 -1
  11. package/agent/apps/desktop/package.json +11 -11
  12. package/agent/apps/desktop/public/apple-touch-icon.png +0 -0
  13. package/agent/apps/desktop/public/claw-mark.png +0 -0
  14. package/agent/apps/desktop/scripts/set-exe-identity.cjs +2 -2
  15. package/agent/apps/desktop/src/app/chat/composer/controls.tsx +2 -0
  16. package/agent/apps/desktop/src/app/chat/composer/index.tsx +10 -0
  17. package/agent/apps/desktop/src/app/chat/composer/pod-credits.tsx +49 -0
  18. package/agent/apps/desktop/src/app/chat/index.tsx +1 -1
  19. package/agent/apps/desktop/src/app/chat/sidebar/index.tsx +4 -2
  20. package/agent/apps/desktop/src/app/desktop-controller.tsx +18 -0
  21. package/agent/apps/desktop/src/app/gateway/hooks/use-gateway-request.ts +1 -1
  22. package/agent/apps/desktop/src/app/messaging/index.tsx +5 -5
  23. package/agent/apps/desktop/src/app/routes.ts +9 -1
  24. package/agent/apps/desktop/src/app/session/hooks/use-message-stream.ts +3 -3
  25. package/agent/apps/desktop/src/app/settings/constants.ts +5 -5
  26. package/agent/apps/desktop/src/app/settings/model-settings.tsx +1 -1
  27. package/agent/apps/desktop/src/app/settings/providers-settings.tsx +46 -1
  28. package/agent/apps/desktop/src/app/settings/uninstall-section.tsx +5 -5
  29. package/agent/apps/desktop/src/app/types.ts +9 -1
  30. package/agent/apps/desktop/src/app/wallet/index.tsx +244 -0
  31. package/agent/apps/desktop/src/app/x402/index.tsx +162 -0
  32. package/agent/apps/desktop/src/components/assistant-ui/thread.tsx +1 -1
  33. package/agent/apps/desktop/src/components/brand-mark.tsx +2 -2
  34. package/agent/apps/desktop/src/components/chat/intro-copy.jsonl +6 -6
  35. package/agent/apps/desktop/src/components/chat/intro.tsx +4 -4
  36. package/agent/apps/desktop/src/components/model-picker.tsx +64 -4
  37. package/agent/apps/desktop/src/components/pod-setup-dialog.tsx +227 -0
  38. package/agent/apps/desktop/src/hermes.ts +109 -3
  39. package/agent/apps/desktop/src/i18n/en.ts +80 -78
  40. package/agent/apps/desktop/src/i18n/ja.ts +82 -82
  41. package/agent/apps/desktop/src/i18n/runtime.test.ts +2 -2
  42. package/agent/apps/desktop/src/i18n/zh-hant.ts +82 -82
  43. package/agent/apps/desktop/src/i18n/zh.ts +87 -87
  44. package/agent/apps/desktop/src/lib/desktop-fs.ts +1 -1
  45. package/agent/apps/desktop/src/lib/desktop-slash-commands.ts +4 -4
  46. package/agent/apps/desktop/src/store/composer.ts +7 -0
  47. package/agent/apps/desktop/src/store/onboarding.ts +5 -5
  48. package/agent/apps/desktop/src/themes/presets.ts +54 -54
  49. package/agent/cli.py +184 -10
  50. package/agent/hermes_cli/distribution.py +188 -8
  51. package/agent/hermes_cli/providers.py +29 -0
  52. package/agent/hermes_cli/web_server.py +403 -34
  53. package/agent/plugins/model-providers/usepod/__init__.py +7 -1
  54. package/agent/scripts/release.py +1 -0
  55. package/agent/web/public/claw-logo.png +0 -0
  56. package/agent/web/src/App.tsx +6 -4
  57. package/agent/web/src/components/ChatSidebar.tsx +5 -0
  58. package/agent/web/src/components/ModelPickerDialog.tsx +28 -1
  59. package/agent/web/src/components/PodCredits.tsx +57 -0
  60. package/agent/web/src/components/PodSetupDialog.tsx +240 -0
  61. package/agent/web/src/lib/api.ts +135 -0
  62. package/agent/web/src/pages/AgentMailPage.tsx +684 -0
  63. package/agent/web/src/pages/WalletPage.tsx +53 -5
  64. package/package.json +1 -1
@@ -1,8 +1,10 @@
1
1
  import { useCallback, useEffect, useState } from "react";
2
- import { Check, Copy, RefreshCw, Send, Wallet, X } from "lucide-react";
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="space-y-3">
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
- <CardTitle className="truncate text-sm font-semibold">
342
- {w.name || shortAddress(w.agent_id)}
343
- </CardTitle>
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
  ))}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clawpump/claw-agent",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },