@waiaas/skills 2.9.0-rc.8 → 2.9.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waiaas/skills",
3
- "version": "2.9.0-rc.8",
3
+ "version": "2.9.0",
4
4
  "description": "WAIaaS skill files for AI agents - install via npx @waiaas/skills add <name>",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -3,7 +3,7 @@ name: "WAIaaS Actions"
3
3
  description: "Action Provider framework: list providers, execute DeFi actions through the 6-stage transaction pipeline"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, defi, actions, waiass, jupiter, 0x, swap, lifi, bridge, cross-chain, lido, jito, staking, liquid-staking, pendle, yield, pt, yt, drift, perp, perpetual, leverage, futures]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -3,7 +3,7 @@ name: "WAIaaS Admin"
3
3
  description: "Admin API: daemon status, kill switch, notifications, settings management, JWT rotation, shutdown, oracle status, API key management"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, admin, security, oracle, defi, waiass]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -325,7 +325,7 @@ curl -s -X POST http://localhost:3100/v1/admin/notifications/test \
325
325
  }
326
326
  ```
327
327
 
328
- > **ntfy channel:** In Admin UI, ntfy has its own section in Notifications Settings (separate from Other Channels). Per-app notification settings (Signing/Alerts toggles) are managed in Human Wallet Apps.
328
+ > **ntfy channel:** Per-wallet ntfy topics (sign_topic, notify_topic) are managed in Human Wallet Apps (`POST/PUT /v1/admin/wallet-apps`). The ntfy server URL is a shared global setting (`notifications.ntfy_server`).
329
329
 
330
330
  ### GET /v1/admin/notifications/log -- Query Delivery Logs
331
331
 
@@ -390,7 +390,6 @@ curl -s http://localhost:3100/v1/admin/settings \
390
390
  "notifications.telegram_chat_id": "123456789",
391
391
  "notifications.discord_webhook_url": false,
392
392
  "notifications.ntfy_server": "https://ntfy.sh",
393
- "notifications.ntfy_topic": "",
394
393
  "notifications.slack_webhook_url": false,
395
394
  "notifications.locale": "en",
396
395
  "notifications.rate_limit_rpm": "20"
@@ -467,7 +466,7 @@ curl -s http://localhost:3100/v1/admin/settings \
467
466
 
468
467
  | Category | Keys | Description |
469
468
  | --------------- | ------------------------------------------------------- | -------------------------------------- |
470
- | `notifications` | enabled, telegram_*, discord_*, ntfy_*, slack_*, locale, rate_limit_rpm | Notification channel configuration. |
469
+ | `notifications` | enabled, telegram_*, discord_*, ntfy_server, slack_*, locale, rate_limit_rpm | Notification channel configuration. |
471
470
  | `rpc` | solana_*, evm_* | Blockchain RPC endpoint URLs. |
472
471
  | `security` | max_sessions_*, max_pending_tx, rate_limit_*, policy_defaults_* | Security and rate limiting. |
473
472
  | `daemon` | log_level | Daemon runtime settings. |
@@ -529,7 +528,6 @@ Notifications:
529
528
  - `notifications.telegram_chat_id` -- Telegram chat ID
530
529
  - `notifications.discord_webhook_url` -- Discord webhook URL (credential, encrypted at rest)
531
530
  - `notifications.ntfy_server` -- ntfy server URL (default: "https://ntfy.sh")
532
- - `notifications.ntfy_topic` -- ntfy topic name
533
531
  - `notifications.slack_webhook_url` -- Slack webhook URL (credential, encrypted at rest)
534
532
  - `notifications.locale` -- Notification locale ("en", "ko", etc.)
535
533
  - `notifications.rate_limit_rpm` -- Notification rate limit (per minute)
@@ -878,7 +876,7 @@ If no key exists for the provider, returns 404 `ACTION_NOT_FOUND`.
878
876
 
879
877
  ## 8. Human Wallet Apps Management (v29.7)
880
878
 
881
- Manage Human Wallet Apps -- the wallet applications used by the human operator for signing requests and activity alerts. Apps are tied to ntfy notification topics (`waiaas-sign-{name}` for signing, `waiaas-notify-{name}` for alerts).
879
+ Manage Human Wallet Apps -- the wallet applications used by the human operator for signing requests and activity alerts. Each app has explicit `sign_topic` and `notify_topic` fields for ntfy push notifications (defaults: `waiaas-sign-{name}`, `waiaas-notify-{name}`). Topics are editable per-app.
882
880
 
883
881
  When a wallet preset (e.g., D'CENT) is applied to a wallet via `PUT /v1/wallets/{id}/owner`, the corresponding app is automatically registered in the wallet_apps registry.
884
882
 
@@ -903,6 +901,8 @@ curl -s http://localhost:3100/v1/admin/wallet-apps \
903
901
  "display_name": "D'CENT Wallet",
904
902
  "signing_enabled": true,
905
903
  "alerts_enabled": true,
904
+ "sign_topic": "waiaas-sign-dcent",
905
+ "notify_topic": "waiaas-notify-dcent",
906
906
  "used_by": [
907
907
  {"id": "<wallet-uuid>", "label": "my-wallet"}
908
908
  ],
@@ -920,6 +920,8 @@ curl -s http://localhost:3100/v1/admin/wallet-apps \
920
920
  | `display_name` | string | Human-readable display name. |
921
921
  | `signing_enabled` | boolean | Whether signing requests are routed to this app. |
922
922
  | `alerts_enabled` | boolean | Whether activity alerts are sent to this app. |
923
+ | `sign_topic` | string\|null | ntfy topic for signing requests (null = default `waiaas-sign-{name}`). |
924
+ | `notify_topic` | string\|null | ntfy topic for activity alerts (null = default `waiaas-notify-{name}`). |
923
925
  | `used_by` | array | Wallets using this app (`wallet_type` = app name). |
924
926
  | `created_at` | integer | Unix timestamp (seconds). |
925
927
  | `updated_at` | integer | Unix timestamp (seconds). |
@@ -932,7 +934,7 @@ Register a new wallet app manually.
932
934
  curl -s -X POST http://localhost:3100/v1/admin/wallet-apps \
933
935
  -H 'Content-Type: application/json' \
934
936
  -H 'X-Master-Password: <password>' \
935
- -d '{"name": "my-custom-wallet", "display_name": "My Custom Wallet"}'
937
+ -d '{"name": "my-custom-wallet", "display_name": "My Custom Wallet", "sign_topic": "custom-sign", "notify_topic": "custom-notify"}'
936
938
  ```
937
939
 
938
940
  **Request body:**
@@ -941,6 +943,8 @@ curl -s -X POST http://localhost:3100/v1/admin/wallet-apps \
941
943
  | ----- | ---- | -------- | ----------- |
942
944
  | `name` | string | Yes | Unique app identifier (lowercase, kebab-case). |
943
945
  | `display_name` | string | Yes | Human-readable display name. |
946
+ | `sign_topic` | string | No | ntfy topic for signing requests (auto-generates `waiaas-sign-{name}` if omitted). |
947
+ | `notify_topic` | string | No | ntfy topic for activity alerts (auto-generates `waiaas-notify-{name}` if omitted). |
944
948
 
945
949
  **Response (201):**
946
950
  ```json
@@ -951,6 +955,8 @@ curl -s -X POST http://localhost:3100/v1/admin/wallet-apps \
951
955
  "display_name": "My Custom Wallet",
952
956
  "signing_enabled": true,
953
957
  "alerts_enabled": true,
958
+ "sign_topic": "custom-sign",
959
+ "notify_topic": "custom-notify",
954
960
  "used_by": [],
955
961
  "created_at": 1707000000,
956
962
  "updated_at": 1707000000
@@ -960,15 +966,15 @@ curl -s -X POST http://localhost:3100/v1/admin/wallet-apps \
960
966
 
961
967
  Error: `WALLET_APP_DUPLICATE` (409) if an app with the same name already exists.
962
968
 
963
- ### PUT /v1/admin/wallet-apps/{id} -- Update App Toggles
969
+ ### PUT /v1/admin/wallet-apps/{id} -- Update Wallet App
964
970
 
965
- Toggle signing and/or alerts for a wallet app.
971
+ Update signing/alerts toggles and/or ntfy topics for a wallet app.
966
972
 
967
973
  ```bash
968
974
  curl -s -X PUT http://localhost:3100/v1/admin/wallet-apps/<app-uuid> \
969
975
  -H 'Content-Type: application/json' \
970
976
  -H 'X-Master-Password: <password>' \
971
- -d '{"signing_enabled": true, "alerts_enabled": false}'
977
+ -d '{"signing_enabled": true, "alerts_enabled": false, "sign_topic": "my-sign-topic"}'
972
978
  ```
973
979
 
974
980
  **Request body:**
@@ -977,6 +983,8 @@ curl -s -X PUT http://localhost:3100/v1/admin/wallet-apps/<app-uuid> \
977
983
  | ----- | ---- | -------- | ----------- |
978
984
  | `signing_enabled` | boolean | No | Enable/disable signing request routing. |
979
985
  | `alerts_enabled` | boolean | No | Enable/disable activity alert notifications. |
986
+ | `sign_topic` | string | No | Update ntfy signing request topic. |
987
+ | `notify_topic` | string | No | Update ntfy activity alert topic. |
980
988
 
981
989
  **Response (200):** Same schema as POST response (includes `used_by`).
982
990
 
@@ -3,7 +3,7 @@ name: "WAIaaS Policies"
3
3
  description: "Policy engine CRUD: 12 policy types for spending limits, whitelists, time restrictions, rate limits, token/contract/approve controls, network restrictions, x402 domain controls"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, policies, security, waiass]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -3,7 +3,7 @@ name: "WAIaaS Quickset"
3
3
  description: "End-to-end quickset: create wallet, session, check balance, send first transfer"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, solana, ethereum, quickset, quickstart, waiass]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -3,7 +3,7 @@ name: "WAIaaS Session Recovery"
3
3
  description: "Recover from expired or permanently expired session tokens"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, session, recovery, token, expired, waiass]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -3,7 +3,7 @@ name: "WAIaaS Setup"
3
3
  description: "Zero-state daemon setup: install CLI, initialize, start daemon, create wallet, configure session"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, solana, ethereum, setup, install, waiass]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl", "npm", "npx", "waiaas", "which"]
@@ -3,7 +3,7 @@ name: "WAIaaS Transactions"
3
3
  description: "All 5 transaction types (TRANSFER, TOKEN_TRANSFER, CONTRACT_CALL, APPROVE, BATCH) with lifecycle management"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, solana, ethereum, transactions, waiass]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -3,7 +3,7 @@ name: "WAIaaS Wallet Management"
3
3
  description: "Wallet CRUD, asset queries, session management, token registry, MCP provisioning, owner management"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, solana, ethereum, sessions, tokens, mcp, waiass]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]
@@ -1015,6 +1015,44 @@ const notification = parseNotification(base64urlEncodedString);
1015
1015
  // notification: { version, eventType, walletId, walletName, category, title, body, details?, timestamp }
1016
1016
  ```
1017
1017
 
1018
+ ## 14b. Wallet SDK: Push Relay Device Management
1019
+
1020
+ The `@waiaas/wallet-sdk` package provides helper functions for registering and managing devices with the Push Relay server.
1021
+
1022
+ ### registerDevice(pushRelayUrl, apiKey, opts)
1023
+
1024
+ Register a device for native push delivery via Push Relay.
1025
+
1026
+ ```typescript
1027
+ import { registerDevice } from '@waiaas/wallet-sdk';
1028
+
1029
+ const { subscriptionToken } = await registerDevice(
1030
+ 'https://your-push-relay:3200',
1031
+ 'your-secret-api-key',
1032
+ { walletName: 'my-wallet', pushToken: devicePushToken, platform: 'android' },
1033
+ );
1034
+ ```
1035
+
1036
+ ### unregisterDevice(pushRelayUrl, apiKey, pushToken)
1037
+
1038
+ Remove a device registration from Push Relay.
1039
+
1040
+ ```typescript
1041
+ import { unregisterDevice } from '@waiaas/wallet-sdk';
1042
+
1043
+ await unregisterDevice('https://your-push-relay:3200', 'your-secret-api-key', devicePushToken);
1044
+ ```
1045
+
1046
+ ### getSubscriptionToken(pushRelayUrl, apiKey, pushToken)
1047
+
1048
+ Look up the subscription token for a registered device. Returns `null` if not found.
1049
+
1050
+ ```typescript
1051
+ import { getSubscriptionToken } from '@waiaas/wallet-sdk';
1052
+
1053
+ const token = await getSubscriptionToken('https://your-push-relay:3200', 'your-secret-api-key', devicePushToken);
1054
+ ```
1055
+
1018
1056
  ### NotificationMessage Type
1019
1057
 
1020
1058
  ```typescript
@@ -3,7 +3,7 @@ name: "WAIaaS x402"
3
3
  description: "x402 auto-payment protocol: fetch URLs with automatic cryptocurrency payments"
4
4
  category: "api"
5
5
  tags: [wallet, blockchain, x402, payments, waiass]
6
- version: "2.9.0-rc.8"
6
+ version: "2.9.0"
7
7
  dispatch:
8
8
  kind: "tool"
9
9
  allowedCommands: ["curl"]