@waiaas/daemon 2.9.0-rc → 2.9.0-rc.10

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 (163) hide show
  1. package/dist/api/routes/actions.d.ts +1 -3
  2. package/dist/api/routes/actions.d.ts.map +1 -1
  3. package/dist/api/routes/actions.js +11 -4
  4. package/dist/api/routes/actions.js.map +1 -1
  5. package/dist/api/routes/admin.d.ts +0 -2
  6. package/dist/api/routes/admin.d.ts.map +1 -1
  7. package/dist/api/routes/admin.js +61 -39
  8. package/dist/api/routes/admin.js.map +1 -1
  9. package/dist/api/routes/connect-info.d.ts +2 -2
  10. package/dist/api/routes/connect-info.d.ts.map +1 -1
  11. package/dist/api/routes/connect-info.js +6 -5
  12. package/dist/api/routes/connect-info.js.map +1 -1
  13. package/dist/api/routes/defi-positions.d.ts +2 -1
  14. package/dist/api/routes/defi-positions.d.ts.map +1 -1
  15. package/dist/api/routes/defi-positions.js +43 -14
  16. package/dist/api/routes/defi-positions.js.map +1 -1
  17. package/dist/api/routes/index.d.ts +1 -0
  18. package/dist/api/routes/index.d.ts.map +1 -1
  19. package/dist/api/routes/index.js +1 -0
  20. package/dist/api/routes/index.js.map +1 -1
  21. package/dist/api/routes/mcp.d.ts.map +1 -1
  22. package/dist/api/routes/mcp.js +7 -8
  23. package/dist/api/routes/mcp.js.map +1 -1
  24. package/dist/api/routes/openapi-schemas.d.ts +312 -47
  25. package/dist/api/routes/openapi-schemas.d.ts.map +1 -1
  26. package/dist/api/routes/openapi-schemas.js +49 -2
  27. package/dist/api/routes/openapi-schemas.js.map +1 -1
  28. package/dist/api/routes/sessions.d.ts.map +1 -1
  29. package/dist/api/routes/sessions.js +31 -17
  30. package/dist/api/routes/sessions.js.map +1 -1
  31. package/dist/api/routes/wallet-apps.d.ts +17 -0
  32. package/dist/api/routes/wallet-apps.d.ts.map +1 -0
  33. package/dist/api/routes/wallet-apps.js +160 -0
  34. package/dist/api/routes/wallet-apps.js.map +1 -0
  35. package/dist/api/routes/wallets.d.ts +3 -0
  36. package/dist/api/routes/wallets.d.ts.map +1 -1
  37. package/dist/api/routes/wallets.js +6 -9
  38. package/dist/api/routes/wallets.js.map +1 -1
  39. package/dist/api/routes/x402.js +1 -1
  40. package/dist/api/routes/x402.js.map +1 -1
  41. package/dist/api/server.d.ts +0 -2
  42. package/dist/api/server.d.ts.map +1 -1
  43. package/dist/api/server.js +13 -4
  44. package/dist/api/server.js.map +1 -1
  45. package/dist/infrastructure/action/index.d.ts +0 -2
  46. package/dist/infrastructure/action/index.d.ts.map +1 -1
  47. package/dist/infrastructure/action/index.js +0 -1
  48. package/dist/infrastructure/action/index.js.map +1 -1
  49. package/dist/infrastructure/adapter-pool.d.ts +5 -4
  50. package/dist/infrastructure/adapter-pool.d.ts.map +1 -1
  51. package/dist/infrastructure/adapter-pool.js +13 -8
  52. package/dist/infrastructure/adapter-pool.js.map +1 -1
  53. package/dist/infrastructure/config/loader.d.ts +0 -15
  54. package/dist/infrastructure/config/loader.d.ts.map +1 -1
  55. package/dist/infrastructure/config/loader.js +0 -3
  56. package/dist/infrastructure/config/loader.js.map +1 -1
  57. package/dist/infrastructure/database/index.d.ts +1 -1
  58. package/dist/infrastructure/database/index.d.ts.map +1 -1
  59. package/dist/infrastructure/database/index.js +1 -1
  60. package/dist/infrastructure/database/index.js.map +1 -1
  61. package/dist/infrastructure/database/migrate.d.ts +2 -2
  62. package/dist/infrastructure/database/migrate.d.ts.map +1 -1
  63. package/dist/infrastructure/database/migrate.js +354 -25
  64. package/dist/infrastructure/database/migrate.js.map +1 -1
  65. package/dist/infrastructure/database/schema.d.ts +171 -80
  66. package/dist/infrastructure/database/schema.d.ts.map +1 -1
  67. package/dist/infrastructure/database/schema.js +17 -12
  68. package/dist/infrastructure/database/schema.js.map +1 -1
  69. package/dist/infrastructure/jwt/jwt-secret-manager.d.ts +1 -1
  70. package/dist/infrastructure/jwt/jwt-secret-manager.d.ts.map +1 -1
  71. package/dist/infrastructure/jwt/jwt-secret-manager.js +7 -4
  72. package/dist/infrastructure/jwt/jwt-secret-manager.js.map +1 -1
  73. package/dist/infrastructure/keystore/re-encrypt.d.ts +6 -3
  74. package/dist/infrastructure/keystore/re-encrypt.d.ts.map +1 -1
  75. package/dist/infrastructure/keystore/re-encrypt.js +10 -16
  76. package/dist/infrastructure/keystore/re-encrypt.js.map +1 -1
  77. package/dist/infrastructure/oracle/coingecko-platform-ids.js +1 -1
  78. package/dist/infrastructure/oracle/coingecko-platform-ids.js.map +1 -1
  79. package/dist/infrastructure/oracle/price-cache.d.ts +2 -2
  80. package/dist/infrastructure/oracle/price-cache.js +3 -3
  81. package/dist/infrastructure/oracle/price-cache.js.map +1 -1
  82. package/dist/infrastructure/oracle/pyth-feed-ids.d.ts +1 -1
  83. package/dist/infrastructure/oracle/pyth-feed-ids.js +5 -5
  84. package/dist/infrastructure/oracle/pyth-feed-ids.js.map +1 -1
  85. package/dist/infrastructure/settings/hot-reload.d.ts +9 -1
  86. package/dist/infrastructure/settings/hot-reload.d.ts.map +1 -1
  87. package/dist/infrastructure/settings/hot-reload.js +22 -22
  88. package/dist/infrastructure/settings/hot-reload.js.map +1 -1
  89. package/dist/infrastructure/settings/setting-keys.d.ts.map +1 -1
  90. package/dist/infrastructure/settings/setting-keys.js +25 -10
  91. package/dist/infrastructure/settings/setting-keys.js.map +1 -1
  92. package/dist/infrastructure/settings/settings-service.d.ts +21 -0
  93. package/dist/infrastructure/settings/settings-service.d.ts.map +1 -1
  94. package/dist/infrastructure/settings/settings-service.js +112 -0
  95. package/dist/infrastructure/settings/settings-service.js.map +1 -1
  96. package/dist/infrastructure/telegram/telegram-bot-service.d.ts +0 -2
  97. package/dist/infrastructure/telegram/telegram-bot-service.d.ts.map +1 -1
  98. package/dist/infrastructure/telegram/telegram-bot-service.js +5 -14
  99. package/dist/infrastructure/telegram/telegram-bot-service.js.map +1 -1
  100. package/dist/lifecycle/daemon.d.ts +2 -1
  101. package/dist/lifecycle/daemon.d.ts.map +1 -1
  102. package/dist/lifecycle/daemon.js +66 -20
  103. package/dist/lifecycle/daemon.js.map +1 -1
  104. package/dist/notifications/notification-service.d.ts.map +1 -1
  105. package/dist/notifications/notification-service.js +18 -1
  106. package/dist/notifications/notification-service.js.map +1 -1
  107. package/dist/pipeline/database-policy-engine.d.ts +58 -0
  108. package/dist/pipeline/database-policy-engine.d.ts.map +1 -1
  109. package/dist/pipeline/database-policy-engine.js +168 -4
  110. package/dist/pipeline/database-policy-engine.js.map +1 -1
  111. package/dist/pipeline/network-resolver.d.ts.map +1 -1
  112. package/dist/pipeline/network-resolver.js +7 -5
  113. package/dist/pipeline/network-resolver.js.map +1 -1
  114. package/dist/pipeline/stages.d.ts.map +1 -1
  115. package/dist/pipeline/stages.js.map +1 -1
  116. package/dist/services/incoming/__tests__/incoming-tx-monitor-service.test.js +3 -3
  117. package/dist/services/incoming/__tests__/incoming-tx-monitor-service.test.js.map +1 -1
  118. package/dist/services/incoming/__tests__/incoming-tx-workers.test.js +27 -27
  119. package/dist/services/incoming/__tests__/incoming-tx-workers.test.js.map +1 -1
  120. package/dist/services/incoming/__tests__/integration-wiring.test.js +4 -4
  121. package/dist/services/incoming/__tests__/integration-wiring.test.js.map +1 -1
  122. package/dist/services/incoming/incoming-tx-workers.js +2 -2
  123. package/dist/services/incoming/incoming-tx-workers.js.map +1 -1
  124. package/dist/services/monitoring/health-factor-monitor.d.ts.map +1 -1
  125. package/dist/services/monitoring/health-factor-monitor.js +13 -0
  126. package/dist/services/monitoring/health-factor-monitor.js.map +1 -1
  127. package/dist/services/monitoring/margin-monitor.d.ts +71 -0
  128. package/dist/services/monitoring/margin-monitor.d.ts.map +1 -0
  129. package/dist/services/monitoring/margin-monitor.js +259 -0
  130. package/dist/services/monitoring/margin-monitor.js.map +1 -0
  131. package/dist/services/monitoring/maturity-monitor.d.ts +58 -0
  132. package/dist/services/monitoring/maturity-monitor.d.ts.map +1 -0
  133. package/dist/services/monitoring/maturity-monitor.js +167 -0
  134. package/dist/services/monitoring/maturity-monitor.js.map +1 -0
  135. package/dist/services/signing-sdk/approval-channel-router.d.ts.map +1 -1
  136. package/dist/services/signing-sdk/approval-channel-router.js +17 -5
  137. package/dist/services/signing-sdk/approval-channel-router.js.map +1 -1
  138. package/dist/services/signing-sdk/channels/wallet-notification-channel.d.ts +15 -7
  139. package/dist/services/signing-sdk/channels/wallet-notification-channel.d.ts.map +1 -1
  140. package/dist/services/signing-sdk/channels/wallet-notification-channel.js +38 -36
  141. package/dist/services/signing-sdk/channels/wallet-notification-channel.js.map +1 -1
  142. package/dist/services/signing-sdk/preset-auto-setup.d.ts +3 -1
  143. package/dist/services/signing-sdk/preset-auto-setup.d.ts.map +1 -1
  144. package/dist/services/signing-sdk/preset-auto-setup.js +10 -1
  145. package/dist/services/signing-sdk/preset-auto-setup.js.map +1 -1
  146. package/dist/services/signing-sdk/sign-request-builder.d.ts +5 -2
  147. package/dist/services/signing-sdk/sign-request-builder.d.ts.map +1 -1
  148. package/dist/services/signing-sdk/sign-request-builder.js +12 -4
  149. package/dist/services/signing-sdk/sign-request-builder.js.map +1 -1
  150. package/dist/services/signing-sdk/sign-response-handler.js +2 -2
  151. package/dist/services/signing-sdk/sign-response-handler.js.map +1 -1
  152. package/dist/services/signing-sdk/wallet-app-service.d.ts +83 -0
  153. package/dist/services/signing-sdk/wallet-app-service.d.ts.map +1 -0
  154. package/dist/services/signing-sdk/wallet-app-service.js +161 -0
  155. package/dist/services/signing-sdk/wallet-app-service.js.map +1 -0
  156. package/package.json +5 -5
  157. package/public/admin/assets/index-DsBCb8P9.js +3 -0
  158. package/public/admin/index.html +1 -1
  159. package/dist/infrastructure/action/api-key-store.d.ts +0 -64
  160. package/dist/infrastructure/action/api-key-store.d.ts.map +0 -1
  161. package/dist/infrastructure/action/api-key-store.js +0 -136
  162. package/dist/infrastructure/action/api-key-store.js.map +0 -1
  163. package/public/admin/assets/index-ClljeO4N.js +0 -1
@@ -18,7 +18,6 @@ import type { IPolicyEngine } from '@waiaas/core';
18
18
  import type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
19
19
  import type { Database as SQLiteDatabase } from 'better-sqlite3';
20
20
  import type { ActionProviderRegistry } from '../../infrastructure/action/action-provider-registry.js';
21
- import type { ApiKeyStore } from '../../infrastructure/action/api-key-store.js';
22
21
  import type { AdapterPool } from '../../infrastructure/adapter-pool.js';
23
22
  import type { MasterPasswordRef } from '../middleware/master-auth.js';
24
23
  import type { DaemonConfig } from '../../infrastructure/config/loader.js';
@@ -32,7 +31,6 @@ import type { IPriceOracle } from '@waiaas/core';
32
31
  import type { SettingsService } from '../../infrastructure/settings/settings-service.js';
33
32
  export interface ActionRouteDeps {
34
33
  registry: ActionProviderRegistry;
35
- apiKeyStore: ApiKeyStore;
36
34
  db: BetterSQLite3Database<typeof schema>;
37
35
  adapterPool: AdapterPool;
38
36
  config: DaemonConfig;
@@ -47,7 +45,7 @@ export interface ActionRouteDeps {
47
45
  sqlite?: SQLiteDatabase;
48
46
  notificationService?: NotificationService;
49
47
  priceOracle?: IPriceOracle;
50
- settingsService?: SettingsService;
48
+ settingsService: SettingsService;
51
49
  }
52
50
  /**
53
51
  * Create action route sub-router.
@@ -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,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,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;AAavE,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,mFAAmF;IACnF,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,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;AAmGD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CA0R/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;AAEtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,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;AAavE,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,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,mFAAmF;IACnF,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,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,EAAE,eAAe,CAAC;CAClC;AAmGD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAkS/D"}
@@ -51,7 +51,7 @@ const ActionExecuteRequestSchema = z
51
51
  .object({
52
52
  params: z.record(z.unknown()).optional().default({}),
53
53
  network: z.string().optional(),
54
- walletId: z.string().uuid().optional().describe('Target wallet ID (optional -- defaults to session default wallet)'),
54
+ walletId: z.string().uuid().optional().describe('Target wallet ID (optional -- auto-resolved if session has single wallet)'),
55
55
  gasCondition: z.object({
56
56
  maxGasPrice: z.string().optional(),
57
57
  maxPriorityFee: z.string().optional(),
@@ -131,7 +131,7 @@ export function actionRoutes(deps) {
131
131
  chains: meta.chains,
132
132
  mcpExpose: meta.mcpExpose,
133
133
  requiresApiKey: meta.requiresApiKey,
134
- hasApiKey: deps.apiKeyStore.has(meta.name),
134
+ hasApiKey: deps.settingsService.hasApiKey(meta.name),
135
135
  actions: providerActions.map((a) => ({
136
136
  name: a.action.name,
137
137
  description: a.action.description,
@@ -163,7 +163,7 @@ export function actionRoutes(deps) {
163
163
  const sessionId = c.get('sessionId');
164
164
  // 3. Check API key requirement (after walletId resolution for notification context)
165
165
  if (entry.provider.metadata.requiresApiKey) {
166
- if (!deps.apiKeyStore.has(entry.provider.metadata.name)) {
166
+ if (!deps.settingsService.hasApiKey(entry.provider.metadata.name)) {
167
167
  // Fire notification before throwing error
168
168
  const adminPort = deps.config.daemon?.port ?? 3000;
169
169
  const adminUrl = `http://localhost:${adminPort}/admin`;
@@ -271,10 +271,17 @@ export function actionRoutes(deps) {
271
271
  await stage1Validate(ctx);
272
272
  // GAP-2 fix: Persist action provider metadata for staking position queries
273
273
  // (GET /v1/wallet/staking uses metadata LIKE '%providerKey%' to find staking txs)
274
+ // Merge with existing metadata to preserve originalRequest (#212)
275
+ const existingTx = await deps.db
276
+ .select({ metadata: transactions.metadata })
277
+ .from(transactions)
278
+ .where(eq(transactions.id, ctx.txId))
279
+ .get();
280
+ const existingMeta = existingTx?.metadata ? JSON.parse(existingTx.metadata) : {};
274
281
  await deps.db
275
282
  .update(transactions)
276
283
  .set({
277
- metadata: JSON.stringify({ provider, action }),
284
+ metadata: JSON.stringify({ ...existingMeta, provider, action }),
278
285
  })
279
286
  .where(eq(transactions.id, ctx.txId));
280
287
  pipelineResults.push({ id: ctx.txId, status: 'PENDING' });
@@ -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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"}
@@ -41,7 +41,6 @@ import type { NotificationService } from '../../notifications/notification-servi
41
41
  import type { DaemonConfig } from '../../infrastructure/config/loader.js';
42
42
  import type { SettingsService } from '../../infrastructure/settings/index.js';
43
43
  import type { AdapterPool } from '../../infrastructure/adapter-pool.js';
44
- import type { ApiKeyStore } from '../../infrastructure/action/api-key-store.js';
45
44
  import type { ActionProviderRegistry } from '../../infrastructure/action/action-provider-registry.js';
46
45
  import type { KillSwitchService } from '../../services/kill-switch-service.js';
47
46
  import type { VersionCheckService } from '../../infrastructure/version/version-check-service.js';
@@ -76,7 +75,6 @@ export interface AdminRouteDeps {
76
75
  coingeckoApiKeyConfigured: boolean;
77
76
  crossValidationThreshold: number;
78
77
  };
79
- apiKeyStore?: ApiKeyStore;
80
78
  actionProviderRegistry?: ActionProviderRegistry;
81
79
  forexRateService?: IForexRateService;
82
80
  sqlite?: SQLiteDatabase;
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ import { sql, desc, eq, and, isNull, gt, gte, lte, count as drizzleCount } from
35
35
  import { createHash } from 'node:crypto';
36
36
  import { WAIaaSError, getNetworksForEnvironment, formatAmount, BUILT_IN_RPC_DEFAULTS } from '@waiaas/core';
37
37
  import { CurrencyCodeSchema, formatRatePreview } from '@waiaas/core';
38
- import { wallets, sessions, sessionWallets, notificationLogs, policies, transactions, incomingTransactions, tokenRegistry } from '../../infrastructure/database/schema.js';
38
+ import { wallets, sessions, sessionWallets, notificationLogs, policies, transactions, incomingTransactions, tokenRegistry, walletApps } from '../../infrastructure/database/schema.js';
39
39
  import { generateId } from '../../infrastructure/database/id.js';
40
40
  import { buildConnectInfoPrompt } from './connect-info.js';
41
41
  import { getSettingDefinition } from '../../infrastructure/settings/index.js';
@@ -1139,11 +1139,19 @@ export function adminRoutes(deps) {
1139
1139
  enabled: !!((ss ? ss.get('notifications.discord_webhook_url') : deps.notificationConfig?.discord_webhook_url) &&
1140
1140
  channelNames.includes('discord')),
1141
1141
  },
1142
- {
1143
- name: 'ntfy',
1144
- enabled: !!((ss ? ss.get('notifications.ntfy_topic') : deps.notificationConfig?.ntfy_topic) &&
1145
- channelNames.includes('ntfy')),
1146
- },
1142
+ (() => {
1143
+ // v29.10+: ntfy topics are per-wallet in wallet_apps table, not global config
1144
+ const ntfyWalletCount = deps.db
1145
+ .select({ count: sql `count(*)` })
1146
+ .from(walletApps)
1147
+ .where(sql `${walletApps.signTopic} IS NOT NULL OR ${walletApps.notifyTopic} IS NOT NULL`)
1148
+ .get()?.count ?? 0;
1149
+ return {
1150
+ name: 'ntfy',
1151
+ enabled: ntfyWalletCount > 0,
1152
+ configuredWallets: ntfyWalletCount,
1153
+ };
1154
+ })(),
1147
1155
  {
1148
1156
  name: 'slack',
1149
1157
  enabled: !!((ss ? ss.get('notifications.slack_webhook_url') : deps.notificationConfig?.slack_webhook_url) &&
@@ -1396,23 +1404,21 @@ export function adminRoutes(deps) {
1396
1404
  // ---------------------------------------------------------------------------
1397
1405
  router.openapi(apiKeysListRoute, async (c) => {
1398
1406
  const registry = deps.actionProviderRegistry;
1399
- const store = deps.apiKeyStore;
1407
+ const ss = deps.settingsService;
1400
1408
  if (!registry) {
1401
1409
  return c.json({ keys: [] }, 200);
1402
1410
  }
1403
1411
  const providers = registry.listProviders();
1404
- const storedKeys = store ? store.listAll() : [];
1405
- const storedMap = new Map(storedKeys.map((k) => [k.providerName, k]));
1406
1412
  const keys = providers.map((p) => {
1407
- const stored = storedMap.get(p.name);
1413
+ const hasKey = ss ? ss.hasApiKey(p.name) : false;
1414
+ const maskedKey = ss ? ss.getApiKeyMasked(p.name) : null;
1415
+ const updatedAt = ss ? ss.getApiKeyUpdatedAt(p.name) : null;
1408
1416
  return {
1409
1417
  providerName: p.name,
1410
- hasKey: stored?.hasKey ?? false,
1411
- maskedKey: stored?.maskedKey ?? null,
1418
+ hasKey,
1419
+ maskedKey,
1412
1420
  requiresApiKey: p.requiresApiKey ?? false,
1413
- updatedAt: stored?.updatedAt
1414
- ? stored.updatedAt.toISOString()
1415
- : null,
1421
+ updatedAt: updatedAt instanceof Date ? updatedAt.toISOString() : null,
1416
1422
  };
1417
1423
  });
1418
1424
  return c.json({ keys }, 200);
@@ -1423,12 +1429,17 @@ export function adminRoutes(deps) {
1423
1429
  router.openapi(apiKeyPutRoute, async (c) => {
1424
1430
  const { provider } = c.req.valid('param');
1425
1431
  const body = c.req.valid('json');
1426
- if (!deps.apiKeyStore) {
1432
+ if (!deps.settingsService) {
1427
1433
  throw new WAIaaSError('ADAPTER_NOT_AVAILABLE', {
1428
- message: 'API key store not available',
1434
+ message: 'Settings service not available',
1429
1435
  });
1430
1436
  }
1431
- deps.apiKeyStore.set(provider, body.apiKey);
1437
+ const settingKey = `actions.${provider}_api_key`;
1438
+ deps.settingsService.setApiKey(provider, body.apiKey);
1439
+ // Trigger hot-reload so providers pick up the new key immediately
1440
+ if (deps.onSettingsChanged) {
1441
+ deps.onSettingsChanged([settingKey]);
1442
+ }
1432
1443
  return c.json({ success: true, providerName: provider }, 200);
1433
1444
  });
1434
1445
  // ---------------------------------------------------------------------------
@@ -1436,18 +1447,24 @@ export function adminRoutes(deps) {
1436
1447
  // ---------------------------------------------------------------------------
1437
1448
  router.openapi(apiKeyDeleteRoute, async (c) => {
1438
1449
  const { provider } = c.req.valid('param');
1439
- if (!deps.apiKeyStore) {
1450
+ if (!deps.settingsService) {
1440
1451
  throw new WAIaaSError('ADAPTER_NOT_AVAILABLE', {
1441
- message: 'API key store not available',
1452
+ message: 'Settings service not available',
1442
1453
  });
1443
1454
  }
1444
- const deleted = deps.apiKeyStore.delete(provider);
1445
- if (!deleted) {
1455
+ // Check if key exists before "deleting"
1456
+ if (!deps.settingsService.hasApiKey(provider)) {
1446
1457
  throw new WAIaaSError('ACTION_NOT_FOUND', {
1447
1458
  message: `No API key found for provider '${provider}'`,
1448
1459
  details: { providerName: provider },
1449
1460
  });
1450
1461
  }
1462
+ const settingKey = `actions.${provider}_api_key`;
1463
+ deps.settingsService.setApiKey(provider, '');
1464
+ // Trigger hot-reload
1465
+ if (deps.onSettingsChanged) {
1466
+ deps.onSettingsChanged([settingKey]);
1467
+ }
1451
1468
  return c.json({ success: true }, 200);
1452
1469
  });
1453
1470
  // ---------------------------------------------------------------------------
@@ -1920,11 +1937,10 @@ export function adminRoutes(deps) {
1920
1937
  throw new WAIaaSError('ADAPTER_NOT_AVAILABLE', { message: 'JWT signing not available' });
1921
1938
  }
1922
1939
  const body = c.req.valid('json');
1923
- const config = deps.daemonConfig;
1924
1940
  const nowSec = Math.floor(Date.now() / 1000);
1925
- const ttl = body.ttl ?? 86400;
1926
- const expiresAt = nowSec + ttl;
1927
- const absoluteExpiresAt = nowSec + config.security.session_absolute_lifetime;
1941
+ // v29.9: per-session TTL; omit = unlimited
1942
+ const ttl = body.ttl; // undefined = unlimited session
1943
+ const expiresAt = ttl !== undefined ? nowSec + ttl : 0; // 0 = unlimited
1928
1944
  // Get target wallets (with environment for prompt builder)
1929
1945
  let targetWallets;
1930
1946
  if (body.walletIds && body.walletIds.length > 0) {
@@ -1947,20 +1963,21 @@ export function adminRoutes(deps) {
1947
1963
  // Try to reuse an existing valid session covering all target wallets
1948
1964
  const defaultWallet = targetWallets[0];
1949
1965
  const targetWalletIds = targetWallets.map((w) => w.id);
1950
- const minRemainingTtl = Math.max(Math.floor(ttl * 0.1), 3600); // 10% of TTL or 1 hour
1951
- const minExpiresAt = new Date((nowSec + minRemainingTtl) * 1000);
1952
1966
  let sessionId;
1953
1967
  let sessionReused = false;
1954
1968
  let sessionsCreated = 1;
1955
1969
  let actualExpiresAt = expiresAt;
1956
- // Find active sessions that cover all target wallets with sufficient TTL
1970
+ // Find active sessions that cover all target wallets
1971
+ // For unlimited sessions, include those with expiresAt=0
1957
1972
  const candidateSessions = deps.db
1958
1973
  .select({
1959
1974
  id: sessions.id,
1960
1975
  expiresAt: sessions.expiresAt,
1961
1976
  })
1962
1977
  .from(sessions)
1963
- .where(and(isNull(sessions.revokedAt), gt(sessions.expiresAt, minExpiresAt)))
1978
+ .where(and(isNull(sessions.revokedAt), ttl !== undefined
1979
+ ? gt(sessions.expiresAt, new Date((nowSec + Math.max(Math.floor(ttl * 0.1), 3600)) * 1000))
1980
+ : sql `(${sessions.expiresAt} = 0 OR ${sessions.expiresAt} > ${nowSec})`))
1964
1981
  .all();
1965
1982
  let reusableSessionId = null;
1966
1983
  let reusableExpiresAt = 0;
@@ -1993,10 +2010,10 @@ export function adminRoutes(deps) {
1993
2010
  id: sessionId,
1994
2011
  tokenHash: '',
1995
2012
  expiresAt: new Date(expiresAt * 1000),
1996
- absoluteExpiresAt: new Date(absoluteExpiresAt * 1000),
2013
+ absoluteExpiresAt: new Date(0), // unlimited
1997
2014
  createdAt: new Date(nowSec * 1000),
1998
2015
  renewalCount: 0,
1999
- maxRenewals: config.security.session_max_renewals,
2016
+ maxRenewals: 0, // unlimited
2000
2017
  constraints: null,
2001
2018
  source: 'api',
2002
2019
  }).run();
@@ -2011,8 +2028,12 @@ export function adminRoutes(deps) {
2011
2028
  }
2012
2029
  void deps.notificationService?.notify('SESSION_CREATED', defaultWallet.id, { sessionId });
2013
2030
  }
2014
- // Sign JWT (new or re-signed for reused session)
2015
- const jwtPayload = { sub: sessionId, iat: nowSec, exp: actualExpiresAt };
2031
+ // Sign JWT (new or re-signed for reused session; unlimited sessions have no exp)
2032
+ const jwtPayload = {
2033
+ sub: sessionId,
2034
+ iat: nowSec,
2035
+ exp: actualExpiresAt > 0 ? actualExpiresAt : undefined,
2036
+ };
2016
2037
  const token = await deps.jwtSecretManager.signToken(jwtPayload);
2017
2038
  if (!sessionReused) {
2018
2039
  const tokenHash = createHash('sha256').update(token).digest('hex');
@@ -2048,18 +2069,19 @@ export function adminRoutes(deps) {
2048
2069
  // Setting key not found -- signing not available
2049
2070
  }
2050
2071
  }
2051
- if (deps.apiKeyStore) {
2072
+ if (deps.settingsService && deps.actionProviderRegistry) {
2052
2073
  try {
2053
- const keys = deps.apiKeyStore.listAll();
2054
- if (keys.some((k) => k.hasKey)) {
2074
+ const providers = deps.actionProviderRegistry.listProviders();
2075
+ const hasAnyKey = providers.some((p) => p.requiresApiKey && deps.settingsService.hasApiKey(p.name));
2076
+ if (hasAnyKey) {
2055
2077
  capabilities.push('actions');
2056
2078
  }
2057
2079
  }
2058
2080
  catch {
2059
- // API key store not available
2081
+ // Settings service not available
2060
2082
  }
2061
2083
  }
2062
- if (config.x402?.enabled === true) {
2084
+ if (deps.daemonConfig?.x402?.enabled === true) {
2063
2085
  capabilities.push('x402');
2064
2086
  }
2065
2087
  // Read default-deny toggles