@waiaas/daemon 2.4.0-rc.8 → 2.4.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.
Files changed (75) hide show
  1. package/dist/api/helpers/resolve-wallet-id.d.ts +38 -0
  2. package/dist/api/helpers/resolve-wallet-id.d.ts.map +1 -0
  3. package/dist/api/helpers/resolve-wallet-id.js +71 -0
  4. package/dist/api/helpers/resolve-wallet-id.js.map +1 -0
  5. package/dist/api/middleware/owner-auth.js +2 -2
  6. package/dist/api/middleware/owner-auth.js.map +1 -1
  7. package/dist/api/middleware/session-auth.d.ts +3 -1
  8. package/dist/api/middleware/session-auth.d.ts.map +1 -1
  9. package/dist/api/middleware/session-auth.js +5 -3
  10. package/dist/api/middleware/session-auth.js.map +1 -1
  11. package/dist/api/routes/actions.d.ts.map +1 -1
  12. package/dist/api/routes/actions.js +4 -2
  13. package/dist/api/routes/actions.js.map +1 -1
  14. package/dist/api/routes/admin.d.ts.map +1 -1
  15. package/dist/api/routes/admin.js +91 -41
  16. package/dist/api/routes/admin.js.map +1 -1
  17. package/dist/api/routes/connect-info.d.ts +54 -0
  18. package/dist/api/routes/connect-info.d.ts.map +1 -0
  19. package/dist/api/routes/connect-info.js +211 -0
  20. package/dist/api/routes/connect-info.js.map +1 -0
  21. package/dist/api/routes/index.d.ts +1 -0
  22. package/dist/api/routes/index.d.ts.map +1 -1
  23. package/dist/api/routes/index.js +1 -0
  24. package/dist/api/routes/index.js.map +1 -1
  25. package/dist/api/routes/mcp.d.ts.map +1 -1
  26. package/dist/api/routes/mcp.js +11 -4
  27. package/dist/api/routes/mcp.js.map +1 -1
  28. package/dist/api/routes/openapi-schemas.d.ts +266 -14
  29. package/dist/api/routes/openapi-schemas.d.ts.map +1 -1
  30. package/dist/api/routes/openapi-schemas.js +69 -3
  31. package/dist/api/routes/openapi-schemas.js.map +1 -1
  32. package/dist/api/routes/sessions.d.ts +15 -5
  33. package/dist/api/routes/sessions.d.ts.map +1 -1
  34. package/dist/api/routes/sessions.js +384 -63
  35. package/dist/api/routes/sessions.js.map +1 -1
  36. package/dist/api/routes/transactions.d.ts.map +1 -1
  37. package/dist/api/routes/transactions.js +15 -17
  38. package/dist/api/routes/transactions.js.map +1 -1
  39. package/dist/api/routes/wallet.d.ts.map +1 -1
  40. package/dist/api/routes/wallet.js +5 -4
  41. package/dist/api/routes/wallet.js.map +1 -1
  42. package/dist/api/routes/wallets.d.ts.map +1 -1
  43. package/dist/api/routes/wallets.js +60 -12
  44. package/dist/api/routes/wallets.js.map +1 -1
  45. package/dist/api/routes/wc.d.ts.map +1 -1
  46. package/dist/api/routes/wc.js +3 -5
  47. package/dist/api/routes/wc.js.map +1 -1
  48. package/dist/api/routes/x402.d.ts.map +1 -1
  49. package/dist/api/routes/x402.js +5 -4
  50. package/dist/api/routes/x402.js.map +1 -1
  51. package/dist/api/server.d.ts.map +1 -1
  52. package/dist/api/server.js +15 -0
  53. package/dist/api/server.js.map +1 -1
  54. package/dist/infrastructure/database/index.d.ts +1 -1
  55. package/dist/infrastructure/database/index.d.ts.map +1 -1
  56. package/dist/infrastructure/database/index.js +1 -1
  57. package/dist/infrastructure/database/index.js.map +1 -1
  58. package/dist/infrastructure/database/migrate.d.ts +2 -2
  59. package/dist/infrastructure/database/migrate.d.ts.map +1 -1
  60. package/dist/infrastructure/database/migrate.js +149 -8
  61. package/dist/infrastructure/database/migrate.js.map +1 -1
  62. package/dist/infrastructure/database/schema.d.ts +82 -20
  63. package/dist/infrastructure/database/schema.d.ts.map +1 -1
  64. package/dist/infrastructure/database/schema.js +20 -5
  65. package/dist/infrastructure/database/schema.js.map +1 -1
  66. package/dist/infrastructure/telegram/telegram-bot-service.d.ts.map +1 -1
  67. package/dist/infrastructure/telegram/telegram-bot-service.js +8 -4
  68. package/dist/infrastructure/telegram/telegram-bot-service.js.map +1 -1
  69. package/dist/services/autostop-service.d.ts.map +1 -1
  70. package/dist/services/autostop-service.js +2 -1
  71. package/dist/services/autostop-service.js.map +1 -1
  72. package/package.json +4 -4
  73. package/public/admin/assets/index-i7xhksGh.js +1 -0
  74. package/public/admin/index.html +1 -1
  75. package/public/admin/assets/index-_4M4gzVz.js +0 -1
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Wallet ID resolution helper: resolves walletId from request parameters with 3-priority fallback.
3
+ *
4
+ * Priority order:
5
+ * 1. bodyWalletId (explicit POST/PUT body parameter)
6
+ * 2. c.req.query('walletId') (GET/DELETE query parameter)
7
+ * 3. c.get('defaultWalletId') (session-auth middleware default wallet)
8
+ *
9
+ * After resolution, validates that the session has access to the wallet
10
+ * by checking session_wallets junction table.
11
+ *
12
+ * @see Phase 211 -- API wallet selection
13
+ */
14
+ import type { Context } from 'hono';
15
+ import type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
16
+ /**
17
+ * Resolve wallet ID from request context with 3-priority fallback + session access check.
18
+ *
19
+ * @param c - Hono request context (must have sessionId and defaultWalletId set by sessionAuth)
20
+ * @param db - Drizzle database instance
21
+ * @param bodyWalletId - Optional walletId from request body (highest priority)
22
+ * @returns Resolved wallet ID string
23
+ * @throws WAIaaSError('WALLET_ACCESS_DENIED') if session does not have access to the wallet
24
+ */
25
+ export declare function resolveWalletId(c: Context, db: BetterSQLite3Database<any>, bodyWalletId?: string): string;
26
+ /**
27
+ * Verify that a session has access to a specific wallet via session_wallets junction table.
28
+ *
29
+ * Used when the walletId comes from a different source (e.g., transaction record)
30
+ * rather than from request parameters.
31
+ *
32
+ * @param sessionId - Session ID to check
33
+ * @param walletId - Wallet ID to verify access for
34
+ * @param db - Drizzle database instance
35
+ * @throws WAIaaSError('WALLET_ACCESS_DENIED') if session does not have access to the wallet
36
+ */
37
+ export declare function verifyWalletAccess(sessionId: string, walletId: string, db: BetterSQLite3Database<any>): void;
38
+ //# sourceMappingURL=resolve-wallet-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-wallet-id.d.ts","sourceRoot":"","sources":["../../../src/api/helpers/resolve-wallet-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKxE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,OAAO,EACV,EAAE,EAAE,qBAAqB,CAAC,GAAG,CAAC,EAC9B,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAiCR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAC7B,IAAI,CAeN"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Wallet ID resolution helper: resolves walletId from request parameters with 3-priority fallback.
3
+ *
4
+ * Priority order:
5
+ * 1. bodyWalletId (explicit POST/PUT body parameter)
6
+ * 2. c.req.query('walletId') (GET/DELETE query parameter)
7
+ * 3. c.get('defaultWalletId') (session-auth middleware default wallet)
8
+ *
9
+ * After resolution, validates that the session has access to the wallet
10
+ * by checking session_wallets junction table.
11
+ *
12
+ * @see Phase 211 -- API wallet selection
13
+ */
14
+ import { eq, and } from 'drizzle-orm';
15
+ import { WAIaaSError } from '@waiaas/core';
16
+ import { sessionWallets } from '../../infrastructure/database/schema.js';
17
+ /**
18
+ * Resolve wallet ID from request context with 3-priority fallback + session access check.
19
+ *
20
+ * @param c - Hono request context (must have sessionId and defaultWalletId set by sessionAuth)
21
+ * @param db - Drizzle database instance
22
+ * @param bodyWalletId - Optional walletId from request body (highest priority)
23
+ * @returns Resolved wallet ID string
24
+ * @throws WAIaaSError('WALLET_ACCESS_DENIED') if session does not have access to the wallet
25
+ */
26
+ export function resolveWalletId(c, db, bodyWalletId) {
27
+ // Priority 1: explicit body parameter
28
+ // Priority 2: query parameter
29
+ // Priority 3: default wallet from session-auth middleware
30
+ const walletId = bodyWalletId ||
31
+ c.req.query('walletId') ||
32
+ c.get('defaultWalletId');
33
+ if (!walletId) {
34
+ throw new WAIaaSError('WALLET_ACCESS_DENIED', {
35
+ message: 'No wallet ID provided and no default wallet available',
36
+ });
37
+ }
38
+ // Verify session has access to this wallet via session_wallets junction table
39
+ const sessionId = c.get('sessionId');
40
+ const link = db
41
+ .select()
42
+ .from(sessionWallets)
43
+ .where(and(eq(sessionWallets.sessionId, sessionId), eq(sessionWallets.walletId, walletId)))
44
+ .get();
45
+ if (!link) {
46
+ throw new WAIaaSError('WALLET_ACCESS_DENIED');
47
+ }
48
+ return walletId;
49
+ }
50
+ /**
51
+ * Verify that a session has access to a specific wallet via session_wallets junction table.
52
+ *
53
+ * Used when the walletId comes from a different source (e.g., transaction record)
54
+ * rather than from request parameters.
55
+ *
56
+ * @param sessionId - Session ID to check
57
+ * @param walletId - Wallet ID to verify access for
58
+ * @param db - Drizzle database instance
59
+ * @throws WAIaaSError('WALLET_ACCESS_DENIED') if session does not have access to the wallet
60
+ */
61
+ export function verifyWalletAccess(sessionId, walletId, db) {
62
+ const link = db
63
+ .select()
64
+ .from(sessionWallets)
65
+ .where(and(eq(sessionWallets.sessionId, sessionId), eq(sessionWallets.walletId, walletId)))
66
+ .get();
67
+ if (!link) {
68
+ throw new WAIaaSError('WALLET_ACCESS_DENIED');
69
+ }
70
+ }
71
+ //# sourceMappingURL=resolve-wallet-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-wallet-id.js","sourceRoot":"","sources":["../../../src/api/helpers/resolve-wallet-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,CAAU,EACV,EAA8B,EAC9B,YAAqB;IAErB,sCAAsC;IACtC,8BAA8B;IAC9B,0DAA0D;IAC1D,MAAM,QAAQ,GACZ,YAAY;QACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,GAAG,CAAC,iBAA0B,CAAwB,CAAC;IAE5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE;YAC5C,OAAO,EAAE,uDAAuD;SACjE,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAoB,CAAW,CAAC;IACxD,MAAM,IAAI,GAAG,EAAE;SACZ,MAAM,EAAE;SACR,IAAI,CAAC,cAAc,CAAC;SACpB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,EACvC,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACtC,CACF;SACA,GAAG,EAAE,CAAC;IAET,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,QAAgB,EAChB,EAA8B;IAE9B,MAAM,IAAI,GAAG,EAAE;SACZ,MAAM,EAAE;SACR,IAAI,CAAC,cAAc,CAAC;SACpB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,EACvC,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACtC,CACF;SACA,GAAG,EAAE,CAAC;IAET,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
@@ -46,10 +46,10 @@ export function createOwnerAuth(deps) {
46
46
  });
47
47
  }
48
48
  // Look up wallet to verify owner_address match.
49
- // Prefer walletId from sessionAuth context (set on /v1/transactions/* routes)
49
+ // Prefer defaultWalletId from sessionAuth context (set on /v1/transactions/* routes)
50
50
  // over c.req.param('id') which is the TRANSACTION ID on /v1/transactions/:id/*.
51
51
  // For direct wallet routes like /v1/wallets/:id/*, c.req.param('id') IS the wallet ID.
52
- const walletId = c.get('walletId') || c.req.param('id');
52
+ const walletId = c.get('defaultWalletId') || c.req.param('id');
53
53
  if (!walletId) {
54
54
  throw new WAIaaSError('WALLET_NOT_FOUND', {
55
55
  message: 'Wallet ID required for owner authentication',
@@ -1 +1 @@
1
- {"version":3,"file":"owner-auth.js","sourceRoot":"","sources":["../../../src/api/middleware/owner-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"owner-auth.js","sourceRoot":"","sources":["../../../src/api/middleware/owner-auth.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@
4
4
  * Validates Authorization header format (Bearer wai_sess_...),
5
5
  * verifies JWT via JwtSecretManager (supports dual-key rotation),
6
6
  * checks session existence and revocation in SQLite,
7
- * and sets sessionId/walletId on Hono context.
7
+ * and sets sessionId/defaultWalletId on Hono context.
8
+ *
9
+ * v26.4: defaultWalletId만 설정. walletId는 resolveWalletId()로 결정.
8
10
  *
9
11
  * Factory pattern: createSessionAuth(deps) returns middleware.
10
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"session-auth.d.ts","sourceRoot":"","sources":["../../../src/api/middleware/session-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,MAAM,yCAAyC,CAAC;AAOvE,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;CAC1C;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,+DAoCtD"}
1
+ {"version":3,"file":"session-auth.d.ts","sourceRoot":"","sources":["../../../src/api/middleware/session-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,MAAM,yCAAyC,CAAC;AAOvE,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;CAC1C;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,+DAoCtD"}
@@ -4,7 +4,9 @@
4
4
  * Validates Authorization header format (Bearer wai_sess_...),
5
5
  * verifies JWT via JwtSecretManager (supports dual-key rotation),
6
6
  * checks session existence and revocation in SQLite,
7
- * and sets sessionId/walletId on Hono context.
7
+ * and sets sessionId/defaultWalletId on Hono context.
8
+ *
9
+ * v26.4: defaultWalletId만 설정. walletId는 resolveWalletId()로 결정.
8
10
  *
9
11
  * Factory pattern: createSessionAuth(deps) returns middleware.
10
12
  *
@@ -42,9 +44,9 @@ export function createSessionAuth(deps) {
42
44
  if (session.revokedAt !== null) {
43
45
  throw new WAIaaSError('SESSION_REVOKED');
44
46
  }
45
- // 5. Set context variables
47
+ // 5. Set context variables (defaultWalletId only; walletId resolved via resolveWalletId)
46
48
  c.set('sessionId', payload.sub);
47
- c.set('walletId', payload.wlt);
49
+ c.set('defaultWalletId', payload.wlt);
48
50
  await next();
49
51
  });
50
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-auth.js","sourceRoot":"","sources":["../../../src/api/middleware/session-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAWnE,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,iBAAiB,CAAC,IAAqB;IACrD,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACxC,kCAAkC;QAClC,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE;gBACrC,OAAO,EAAE,4EAA4E;aACtF,CAAC,CAAC;QACL,CAAC;QAED,yDAAyD;QACzD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEjD,iEAAiE;QACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE/D,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;aACpB,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;aACnC,GAAG,EAAE,CAAC;QAET,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC;QAED,2BAA2B;QAC3B,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"session-auth.js","sourceRoot":"","sources":["../../../src/api/middleware/session-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAWnE,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,iBAAiB,CAAC,IAAqB;IACrD,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACxC,kCAAkC;QAClC,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE;gBACrC,OAAO,EAAE,4EAA4E;aACtF,CAAC,CAAC;QACL,CAAC;QAED,yDAAyD;QACzD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEjD,iEAAiE;QACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE/D,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;aACpB,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;aACnC,GAAG,EAAE,CAAC;QAET,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC;QAED,yFAAyF;QACzF,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/api/routes/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAA2C,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,KAAK,MAAM,MAAM,yCAAyC,CAAC;AAYvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAWzF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AA6FD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAwN/D"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/api/routes/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAA2C,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,KAAK,MAAM,MAAM,yCAAyC,CAAC;AAYvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAYzF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AA8FD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAwN/D"}
@@ -21,6 +21,7 @@ import { wallets, transactions } from '../../infrastructure/database/schema.js';
21
21
  import { stage1Validate, stage2Auth, stage3Policy, stage4Wait, stage5Execute, stage6Confirm, } from '../../pipeline/stages.js';
22
22
  import { resolveNetwork } from '../../pipeline/network-resolver.js';
23
23
  import { TxSendResponseSchema, buildErrorResponses, openApiValidationHook, } from './openapi-schemas.js';
24
+ import { resolveWalletId } from '../helpers/resolve-wallet-id.js';
24
25
  // ---------------------------------------------------------------------------
25
26
  // OpenAPI Response Schemas
26
27
  // ---------------------------------------------------------------------------
@@ -50,6 +51,7 @@ const ActionExecuteRequestSchema = z
50
51
  .object({
51
52
  params: z.record(z.unknown()).optional().default({}),
52
53
  network: z.string().optional(),
54
+ walletId: z.string().uuid().optional().describe('Target wallet ID (optional -- defaults to session default wallet)'),
53
55
  })
54
56
  .openapi('ActionExecuteRequest');
55
57
  // ---------------------------------------------------------------------------
@@ -160,8 +162,8 @@ export function actionRoutes(deps) {
160
162
  });
161
163
  }
162
164
  }
163
- // 3. Extract session context (set by sessionAuth middleware)
164
- const walletId = c.get('walletId');
165
+ // 3. Resolve walletId from body.walletId > query > defaultWalletId
166
+ const walletId = resolveWalletId(c, deps.db, body.walletId);
165
167
  const sessionId = c.get('sessionId');
166
168
  // 4. Look up wallet
167
169
  const wallet = await deps.db.select().from(wallets).where(eq(wallets.id, walletId)).get();
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/api/routes/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/api/routes/actions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKjE,OAAO,KAAK,EAAyE,YAAY,EAAE,iBAAiB,EAAgB,MAAM,cAAc,CAAC;AAEzJ,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,gDAAgD,CAAC;AAGnG,OAAO,KAAK,KAAK,MAAM,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AA8BjG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,kBAAkB,EAAE,MAAM,eAAe,CAAC;IAC1C,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,kBAAkB,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,YAAY,CAAC,EAAE;QAAE,yBAAyB,EAAE,OAAO,CAAC;QAAC,wBAAwB,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAClD;AAkmBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,CAstC7D"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKjE,OAAO,KAAK,EAAyE,YAAY,EAAE,iBAAiB,EAAgB,MAAM,cAAc,CAAC;AAEzJ,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,gDAAgD,CAAC;AAInG,OAAO,KAAK,KAAK,MAAM,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AA8BjG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,kBAAkB,EAAE,MAAM,eAAe,CAAC;IAC1C,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,kBAAkB,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,YAAY,CAAC,EAAE;QAAE,yBAAyB,EAAE,OAAO,CAAC;QAAC,wBAAwB,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAClD;AAkmBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,CA0wC7D"}
@@ -32,8 +32,9 @@ import { writeFile, rename, mkdir } from 'node:fs/promises';
32
32
  import { join, dirname } from 'node:path';
33
33
  import { WAIaaSError, getDefaultNetwork, getNetworksForEnvironment } from '@waiaas/core';
34
34
  import { CurrencyCodeSchema, formatRatePreview } from '@waiaas/core';
35
- import { wallets, sessions, notificationLogs, policies, transactions } from '../../infrastructure/database/schema.js';
35
+ import { wallets, sessions, sessionWallets, notificationLogs, policies, transactions } from '../../infrastructure/database/schema.js';
36
36
  import { generateId } from '../../infrastructure/database/id.js';
37
+ import { buildConnectInfoPrompt } from './connect-info.js';
37
38
  import { getSettingDefinition } from '../../infrastructure/settings/index.js';
38
39
  import { resolveRpcUrl } from '../../infrastructure/adapter-pool.js';
39
40
  import { AdminStatusResponseSchema, KillSwitchResponseSchema, KillSwitchActivateResponseSchema, KillSwitchEscalateResponseSchema, RecoverResponseSchema, KillSwitchRecoverRequestSchema, ShutdownResponseSchema, RotateSecretResponseSchema, NotificationStatusResponseSchema, NotificationTestRequestSchema, NotificationTestResponseSchema, NotificationLogResponseSchema, SettingsResponseSchema, SettingsUpdateRequestSchema, SettingsUpdateResponseSchema, TestRpcRequestSchema, TestRpcResponseSchema, OracleStatusResponseSchema, AgentPromptRequestSchema, AgentPromptResponseSchema, buildErrorResponses, openApiValidationHook, } from './openapi-schemas.js';
@@ -1421,13 +1422,16 @@ export function adminRoutes(deps) {
1421
1422
  const token = await deps.jwtSecretManager.signToken(jwtPayload);
1422
1423
  const tokenHash = createHash('sha256').update(token).digest('hex');
1423
1424
  deps.db.insert(sessions).values({
1424
- id: sessionId, walletId, tokenHash,
1425
+ id: sessionId, tokenHash,
1425
1426
  expiresAt: new Date(expiresAt * 1000),
1426
1427
  absoluteExpiresAt: new Date(absoluteExpiresAt * 1000),
1427
1428
  createdAt: new Date(nowSec * 1000),
1428
1429
  renewalCount: 0, maxRenewals: config.security.session_max_renewals,
1429
1430
  constraints: null, source: 'api',
1430
1431
  }).run();
1432
+ deps.db.insert(sessionWallets).values({
1433
+ sessionId, walletId, isDefault: true, createdAt: new Date(nowSec * 1000),
1434
+ }).run();
1431
1435
  void deps.notificationService?.notify('SESSION_CREATED', walletId, { sessionId });
1432
1436
  results.push({ walletId, walletName: wallet.name, sessionId, token });
1433
1437
  }
@@ -1475,13 +1479,16 @@ export function adminRoutes(deps) {
1475
1479
  const token = await deps.jwtSecretManager.signToken(jwtPayload);
1476
1480
  const tokenHash = createHash('sha256').update(token).digest('hex');
1477
1481
  deps.db.insert(sessions).values({
1478
- id: sessionId, walletId, tokenHash,
1482
+ id: sessionId, tokenHash,
1479
1483
  expiresAt: new Date(expiresAt * 1000),
1480
1484
  absoluteExpiresAt: new Date(absoluteExpiresAt * 1000),
1481
1485
  createdAt: new Date(nowSec * 1000),
1482
1486
  renewalCount: 0, maxRenewals: config.security.session_max_renewals,
1483
1487
  constraints: null, source: 'mcp',
1484
1488
  }).run();
1489
+ deps.db.insert(sessionWallets).values({
1490
+ sessionId, walletId, isDefault: true, createdAt: new Date(nowSec * 1000),
1491
+ }).run();
1485
1492
  // Write token file
1486
1493
  const tokenPath = join(deps.dataDir, 'mcp-tokens', walletId);
1487
1494
  const tmpPath = `${tokenPath}.tmp`;
@@ -1542,13 +1549,13 @@ export function adminRoutes(deps) {
1542
1549
  const ttl = body.ttl ?? 86400;
1543
1550
  const expiresAt = nowSec + ttl;
1544
1551
  const absoluteExpiresAt = nowSec + config.security.session_absolute_lifetime;
1545
- // Get target wallets
1552
+ // Get target wallets (with environment for prompt builder)
1546
1553
  let targetWallets;
1547
1554
  if (body.walletIds && body.walletIds.length > 0) {
1548
1555
  targetWallets = body.walletIds
1549
1556
  .map((wid) => deps.db.select().from(wallets).where(eq(wallets.id, wid)).get())
1550
1557
  .filter((w) => w != null && w.status === 'ACTIVE')
1551
- .map((w) => ({ id: w.id, name: w.name, chain: w.chain, defaultNetwork: w.defaultNetwork }));
1558
+ .map((w) => ({ id: w.id, name: w.name, chain: w.chain, environment: w.environment, publicKey: w.publicKey, defaultNetwork: w.defaultNetwork }));
1552
1559
  }
1553
1560
  else {
1554
1561
  targetWallets = deps.db
@@ -1556,54 +1563,97 @@ export function adminRoutes(deps) {
1556
1563
  .from(wallets)
1557
1564
  .where(eq(wallets.status, 'ACTIVE'))
1558
1565
  .all()
1559
- .map((w) => ({ id: w.id, name: w.name, chain: w.chain, defaultNetwork: w.defaultNetwork }));
1566
+ .map((w) => ({ id: w.id, name: w.name, chain: w.chain, environment: w.environment, publicKey: w.publicKey, defaultNetwork: w.defaultNetwork }));
1560
1567
  }
1561
1568
  if (targetWallets.length === 0) {
1562
1569
  return c.json({ prompt: '', walletCount: 0, sessionsCreated: 0, expiresAt }, 201);
1563
1570
  }
1564
- // Create sessions and build prompt
1565
- const lines = [];
1566
- const host = c.req.header('Host') ?? 'localhost:3100';
1567
- const protocol = c.req.header('X-Forwarded-Proto') ?? 'http';
1568
- const baseUrl = `${protocol}://${host}`;
1569
- lines.push('[WAIaaS Connection]');
1570
- lines.push(`- URL: ${baseUrl}`);
1571
- lines.push('');
1572
- lines.push('Wallets:');
1573
- let sessionsCreated = 0;
1571
+ // Create a single multi-wallet session (one sessionId, one token)
1572
+ const defaultWallet = targetWallets[0];
1573
+ const sessionId = generateId();
1574
+ const jwtPayload = { sub: sessionId, wlt: defaultWallet.id, iat: nowSec, exp: expiresAt };
1575
+ const token = await deps.jwtSecretManager.signToken(jwtPayload);
1576
+ const tokenHash = createHash('sha256').update(token).digest('hex');
1577
+ deps.db.insert(sessions).values({
1578
+ id: sessionId,
1579
+ tokenHash,
1580
+ expiresAt: new Date(expiresAt * 1000),
1581
+ absoluteExpiresAt: new Date(absoluteExpiresAt * 1000),
1582
+ createdAt: new Date(nowSec * 1000),
1583
+ renewalCount: 0,
1584
+ maxRenewals: config.security.session_max_renewals,
1585
+ constraints: null,
1586
+ source: 'api',
1587
+ }).run();
1588
+ // Insert N rows into session_wallets (first wallet is default)
1574
1589
  for (let i = 0; i < targetWallets.length; i++) {
1575
1590
  const w = targetWallets[i];
1576
- const sessionId = generateId();
1577
- const jwtPayload = { sub: sessionId, wlt: w.id, iat: nowSec, exp: expiresAt };
1578
- const token = await deps.jwtSecretManager.signToken(jwtPayload);
1579
- const tokenHash = createHash('sha256').update(token).digest('hex');
1580
- deps.db.insert(sessions).values({
1581
- id: sessionId,
1591
+ deps.db.insert(sessionWallets).values({
1592
+ sessionId,
1582
1593
  walletId: w.id,
1583
- tokenHash,
1584
- expiresAt: new Date(expiresAt * 1000),
1585
- absoluteExpiresAt: new Date(absoluteExpiresAt * 1000),
1594
+ isDefault: i === 0,
1586
1595
  createdAt: new Date(nowSec * 1000),
1587
- renewalCount: 0,
1588
- maxRenewals: config.security.session_max_renewals,
1589
- constraints: null,
1590
- source: 'api',
1591
1596
  }).run();
1592
- void deps.notificationService?.notify('SESSION_CREATED', w.id, { sessionId });
1593
- sessionsCreated++;
1594
- const network = w.defaultNetwork ?? w.chain;
1595
- lines.push(`${i + 1}. ${w.name} (${w.id}) \u2014 ${network}`);
1596
- lines.push(` Session: ${token}`);
1597
1597
  }
1598
- lines.push('');
1599
- lines.push('When the session expires (401 Unauthorized),');
1600
- lines.push('renew with POST /v1/wallets/{walletId}/sessions/{sessionId}/renew.');
1601
- lines.push('');
1602
- lines.push('Connect to WAIaaS wallets using the above information to check balances and manage assets.');
1598
+ void deps.notificationService?.notify('SESSION_CREATED', defaultWallet.id, { sessionId });
1599
+ // Query per-wallet policies for prompt builder
1600
+ const promptWallets = targetWallets.map((w) => {
1601
+ const walletPolicies = deps.db
1602
+ .select({ type: policies.type })
1603
+ .from(policies)
1604
+ .where(and(eq(policies.walletId, w.id), eq(policies.enabled, true)))
1605
+ .all();
1606
+ return {
1607
+ name: w.name,
1608
+ chain: w.chain,
1609
+ environment: w.environment,
1610
+ address: w.publicKey,
1611
+ defaultNetwork: w.defaultNetwork,
1612
+ policies: walletPolicies,
1613
+ };
1614
+ });
1615
+ // Compute capabilities dynamically (same logic as connect-info)
1616
+ const capabilities = ['transfer', 'token_transfer', 'balance', 'assets'];
1617
+ if (deps.settingsService) {
1618
+ try {
1619
+ if (deps.settingsService.get('signing_sdk.enabled') === 'true') {
1620
+ capabilities.push('sign');
1621
+ }
1622
+ }
1623
+ catch {
1624
+ // Setting key not found -- signing not available
1625
+ }
1626
+ }
1627
+ if (deps.apiKeyStore) {
1628
+ try {
1629
+ const keys = deps.apiKeyStore.listAll();
1630
+ if (keys.some((k) => k.hasKey)) {
1631
+ capabilities.push('actions');
1632
+ }
1633
+ }
1634
+ catch {
1635
+ // API key store not available
1636
+ }
1637
+ }
1638
+ if (config.x402?.enabled === true) {
1639
+ capabilities.push('x402');
1640
+ }
1641
+ // Build prompt using shared prompt builder
1642
+ const host = c.req.header('Host') ?? 'localhost:3100';
1643
+ const protocol = c.req.header('X-Forwarded-Proto') ?? 'http';
1644
+ const baseUrl = `${protocol}://${host}`;
1645
+ const prompt = buildConnectInfoPrompt({
1646
+ wallets: promptWallets,
1647
+ capabilities,
1648
+ baseUrl,
1649
+ version: deps.version,
1650
+ });
1651
+ // Append session token so the agent can start using it immediately
1652
+ const fullPrompt = `${prompt}\n\nSession Token: ${token}\nSession ID: ${sessionId}`;
1603
1653
  return c.json({
1604
- prompt: lines.join('\n'),
1654
+ prompt: fullPrompt,
1605
1655
  walletCount: targetWallets.length,
1606
- sessionsCreated,
1656
+ sessionsCreated: 1,
1607
1657
  expiresAt,
1608
1658
  }, 201);
1609
1659
  });