agent-relay 2.0.23 → 2.0.25

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 (168) hide show
  1. package/dist/src/cli/index.js +160 -17
  2. package/package.json +18 -52
  3. package/packages/api-types/package.json +1 -1
  4. package/packages/bridge/package.json +8 -8
  5. package/packages/cli-tester/package.json +1 -1
  6. package/packages/config/package.json +2 -2
  7. package/packages/continuity/package.json +1 -1
  8. package/packages/daemon/package.json +12 -12
  9. package/packages/hooks/package.json +4 -4
  10. package/packages/mcp/package.json +2 -2
  11. package/packages/memory/package.json +2 -2
  12. package/packages/policy/package.json +2 -2
  13. package/packages/protocol/package.json +1 -1
  14. package/packages/resiliency/package.json +1 -1
  15. package/packages/sdk/package.json +2 -2
  16. package/packages/spawner/package.json +1 -1
  17. package/packages/state/package.json +1 -1
  18. package/packages/storage/package.json +2 -2
  19. package/packages/telemetry/package.json +1 -1
  20. package/packages/trajectory/package.json +2 -2
  21. package/packages/user-directory/package.json +2 -2
  22. package/packages/utils/package.json +1 -1
  23. package/packages/wrapper/package.json +6 -6
  24. package/deploy/init-db.sql +0 -5
  25. package/deploy/scripts/setup-fly-workspaces.sh +0 -69
  26. package/deploy/scripts/setup-railway.sh +0 -75
  27. package/dist/src/cloud/index.d.ts +0 -8
  28. package/dist/src/cloud/index.js +0 -8
  29. package/packages/cloud/dist/api/admin.d.ts +0 -8
  30. package/packages/cloud/dist/api/admin.js +0 -225
  31. package/packages/cloud/dist/api/auth.d.ts +0 -20
  32. package/packages/cloud/dist/api/auth.js +0 -138
  33. package/packages/cloud/dist/api/billing.d.ts +0 -7
  34. package/packages/cloud/dist/api/billing.js +0 -564
  35. package/packages/cloud/dist/api/cli-pty-runner.d.ts +0 -53
  36. package/packages/cloud/dist/api/cli-pty-runner.js +0 -175
  37. package/packages/cloud/dist/api/codex-auth-helper.d.ts +0 -21
  38. package/packages/cloud/dist/api/codex-auth-helper.js +0 -327
  39. package/packages/cloud/dist/api/consensus.d.ts +0 -13
  40. package/packages/cloud/dist/api/consensus.js +0 -261
  41. package/packages/cloud/dist/api/coordinators.d.ts +0 -8
  42. package/packages/cloud/dist/api/coordinators.js +0 -750
  43. package/packages/cloud/dist/api/daemons.d.ts +0 -12
  44. package/packages/cloud/dist/api/daemons.js +0 -535
  45. package/packages/cloud/dist/api/email-auth.d.ts +0 -11
  46. package/packages/cloud/dist/api/email-auth.js +0 -347
  47. package/packages/cloud/dist/api/generic-webhooks.d.ts +0 -8
  48. package/packages/cloud/dist/api/generic-webhooks.js +0 -129
  49. package/packages/cloud/dist/api/git.d.ts +0 -8
  50. package/packages/cloud/dist/api/git.js +0 -269
  51. package/packages/cloud/dist/api/github-app.d.ts +0 -11
  52. package/packages/cloud/dist/api/github-app.js +0 -223
  53. package/packages/cloud/dist/api/middleware/planLimits.d.ts +0 -43
  54. package/packages/cloud/dist/api/middleware/planLimits.js +0 -202
  55. package/packages/cloud/dist/api/monitoring.d.ts +0 -11
  56. package/packages/cloud/dist/api/monitoring.js +0 -578
  57. package/packages/cloud/dist/api/nango-auth.d.ts +0 -9
  58. package/packages/cloud/dist/api/nango-auth.js +0 -741
  59. package/packages/cloud/dist/api/onboarding.d.ts +0 -15
  60. package/packages/cloud/dist/api/onboarding.js +0 -679
  61. package/packages/cloud/dist/api/policy.d.ts +0 -8
  62. package/packages/cloud/dist/api/policy.js +0 -229
  63. package/packages/cloud/dist/api/provider-env.d.ts +0 -26
  64. package/packages/cloud/dist/api/provider-env.js +0 -141
  65. package/packages/cloud/dist/api/providers.d.ts +0 -7
  66. package/packages/cloud/dist/api/providers.js +0 -574
  67. package/packages/cloud/dist/api/repos.d.ts +0 -8
  68. package/packages/cloud/dist/api/repos.js +0 -577
  69. package/packages/cloud/dist/api/sessions.d.ts +0 -11
  70. package/packages/cloud/dist/api/sessions.js +0 -302
  71. package/packages/cloud/dist/api/teams.d.ts +0 -7
  72. package/packages/cloud/dist/api/teams.js +0 -281
  73. package/packages/cloud/dist/api/test-helpers.d.ts +0 -10
  74. package/packages/cloud/dist/api/test-helpers.js +0 -745
  75. package/packages/cloud/dist/api/usage.d.ts +0 -7
  76. package/packages/cloud/dist/api/usage.js +0 -111
  77. package/packages/cloud/dist/api/webhooks.d.ts +0 -8
  78. package/packages/cloud/dist/api/webhooks.js +0 -645
  79. package/packages/cloud/dist/api/workspaces.d.ts +0 -25
  80. package/packages/cloud/dist/api/workspaces.js +0 -1799
  81. package/packages/cloud/dist/billing/index.d.ts +0 -9
  82. package/packages/cloud/dist/billing/index.js +0 -9
  83. package/packages/cloud/dist/billing/plans.d.ts +0 -39
  84. package/packages/cloud/dist/billing/plans.js +0 -245
  85. package/packages/cloud/dist/billing/service.d.ts +0 -80
  86. package/packages/cloud/dist/billing/service.js +0 -388
  87. package/packages/cloud/dist/billing/types.d.ts +0 -141
  88. package/packages/cloud/dist/billing/types.js +0 -7
  89. package/packages/cloud/dist/config.d.ts +0 -5
  90. package/packages/cloud/dist/config.js +0 -5
  91. package/packages/cloud/dist/db/bulk-ingest.d.ts +0 -89
  92. package/packages/cloud/dist/db/bulk-ingest.js +0 -268
  93. package/packages/cloud/dist/db/drizzle.d.ts +0 -290
  94. package/packages/cloud/dist/db/drizzle.js +0 -1422
  95. package/packages/cloud/dist/db/index.d.ts +0 -56
  96. package/packages/cloud/dist/db/index.js +0 -70
  97. package/packages/cloud/dist/db/schema.d.ts +0 -5117
  98. package/packages/cloud/dist/db/schema.js +0 -656
  99. package/packages/cloud/dist/index.d.ts +0 -11
  100. package/packages/cloud/dist/index.js +0 -38
  101. package/packages/cloud/dist/provisioner/index.d.ts +0 -207
  102. package/packages/cloud/dist/provisioner/index.js +0 -2118
  103. package/packages/cloud/dist/server.d.ts +0 -17
  104. package/packages/cloud/dist/server.js +0 -2055
  105. package/packages/cloud/dist/services/auto-scaler.d.ts +0 -152
  106. package/packages/cloud/dist/services/auto-scaler.js +0 -439
  107. package/packages/cloud/dist/services/capacity-manager.d.ts +0 -148
  108. package/packages/cloud/dist/services/capacity-manager.js +0 -449
  109. package/packages/cloud/dist/services/ci-agent-spawner.d.ts +0 -49
  110. package/packages/cloud/dist/services/ci-agent-spawner.js +0 -373
  111. package/packages/cloud/dist/services/cloud-message-bus.d.ts +0 -28
  112. package/packages/cloud/dist/services/cloud-message-bus.js +0 -19
  113. package/packages/cloud/dist/services/compute-enforcement.d.ts +0 -57
  114. package/packages/cloud/dist/services/compute-enforcement.js +0 -175
  115. package/packages/cloud/dist/services/coordinator.d.ts +0 -62
  116. package/packages/cloud/dist/services/coordinator.js +0 -389
  117. package/packages/cloud/dist/services/index.d.ts +0 -17
  118. package/packages/cloud/dist/services/index.js +0 -25
  119. package/packages/cloud/dist/services/intro-expiration.d.ts +0 -60
  120. package/packages/cloud/dist/services/intro-expiration.js +0 -252
  121. package/packages/cloud/dist/services/mention-handler.d.ts +0 -65
  122. package/packages/cloud/dist/services/mention-handler.js +0 -405
  123. package/packages/cloud/dist/services/nango.d.ts +0 -219
  124. package/packages/cloud/dist/services/nango.js +0 -424
  125. package/packages/cloud/dist/services/persistence.d.ts +0 -131
  126. package/packages/cloud/dist/services/persistence.js +0 -200
  127. package/packages/cloud/dist/services/planLimits.d.ts +0 -147
  128. package/packages/cloud/dist/services/planLimits.js +0 -335
  129. package/packages/cloud/dist/services/presence-registry.d.ts +0 -56
  130. package/packages/cloud/dist/services/presence-registry.js +0 -91
  131. package/packages/cloud/dist/services/scaling-orchestrator.d.ts +0 -159
  132. package/packages/cloud/dist/services/scaling-orchestrator.js +0 -502
  133. package/packages/cloud/dist/services/scaling-policy.d.ts +0 -121
  134. package/packages/cloud/dist/services/scaling-policy.js +0 -415
  135. package/packages/cloud/dist/services/ssh-security.d.ts +0 -31
  136. package/packages/cloud/dist/services/ssh-security.js +0 -63
  137. package/packages/cloud/dist/services/workspace-keepalive.d.ts +0 -76
  138. package/packages/cloud/dist/services/workspace-keepalive.js +0 -234
  139. package/packages/cloud/dist/shims/consensus.d.ts +0 -23
  140. package/packages/cloud/dist/shims/consensus.js +0 -5
  141. package/packages/cloud/dist/webhooks/index.d.ts +0 -24
  142. package/packages/cloud/dist/webhooks/index.js +0 -29
  143. package/packages/cloud/dist/webhooks/parsers/github.d.ts +0 -8
  144. package/packages/cloud/dist/webhooks/parsers/github.js +0 -234
  145. package/packages/cloud/dist/webhooks/parsers/index.d.ts +0 -23
  146. package/packages/cloud/dist/webhooks/parsers/index.js +0 -30
  147. package/packages/cloud/dist/webhooks/parsers/linear.d.ts +0 -9
  148. package/packages/cloud/dist/webhooks/parsers/linear.js +0 -258
  149. package/packages/cloud/dist/webhooks/parsers/slack.d.ts +0 -9
  150. package/packages/cloud/dist/webhooks/parsers/slack.js +0 -214
  151. package/packages/cloud/dist/webhooks/responders/github.d.ts +0 -8
  152. package/packages/cloud/dist/webhooks/responders/github.js +0 -73
  153. package/packages/cloud/dist/webhooks/responders/index.d.ts +0 -23
  154. package/packages/cloud/dist/webhooks/responders/index.js +0 -30
  155. package/packages/cloud/dist/webhooks/responders/linear.d.ts +0 -9
  156. package/packages/cloud/dist/webhooks/responders/linear.js +0 -149
  157. package/packages/cloud/dist/webhooks/responders/slack.d.ts +0 -20
  158. package/packages/cloud/dist/webhooks/responders/slack.js +0 -178
  159. package/packages/cloud/dist/webhooks/router.d.ts +0 -25
  160. package/packages/cloud/dist/webhooks/router.js +0 -504
  161. package/packages/cloud/dist/webhooks/rules-engine.d.ts +0 -24
  162. package/packages/cloud/dist/webhooks/rules-engine.js +0 -287
  163. package/packages/cloud/dist/webhooks/types.d.ts +0 -186
  164. package/packages/cloud/dist/webhooks/types.js +0 -8
  165. package/packages/cloud/package.json +0 -60
  166. package/scripts/run-migrations.js +0 -43
  167. package/scripts/setup-stripe-products.ts +0 -312
  168. package/scripts/verify-schema.js +0 -134
@@ -26,12 +26,12 @@ import fs from 'node:fs';
26
26
  import path from 'node:path';
27
27
  import readline from 'node:readline';
28
28
  import { promisify } from 'node:util';
29
- import { exec } from 'node:child_process';
29
+ import { exec, spawn as spawnProcess } from 'node:child_process';
30
30
  import { fileURLToPath } from 'node:url';
31
31
  const RELAY_DASHBOARD_REPO = 'https://github.com/AgentWorkforce/relay-dashboard';
32
32
  /**
33
33
  * Prompt user to choose how to handle missing dashboard package.
34
- * Returns: 'install' | 'skip'
34
+ * Returns: 'npx' | 'install' | 'skip'
35
35
  */
36
36
  async function promptDashboardInstall() {
37
37
  const rl = readline.createInterface({
@@ -39,17 +39,21 @@ async function promptDashboardInstall() {
39
39
  output: process.stdout,
40
40
  });
41
41
  console.log(`
42
- The web dashboard is now an external package.
42
+ The web dashboard requires @agent-relay/dashboard-server package.
43
43
 
44
44
  How would you like to proceed?
45
- 1. View installation instructions for relay-dashboard
46
- 2. Skip and continue without dashboard
45
+ 1. Start with npx (recommended - auto-installs temporarily)
46
+ 2. View installation instructions
47
+ 3. Skip and continue without dashboard
47
48
  `);
48
49
  return new Promise((resolve) => {
49
- rl.question('Choose [1/2]: ', (answer) => {
50
+ rl.question('Choose [1/2/3]: ', (answer) => {
50
51
  rl.close();
51
52
  const choice = answer.trim();
52
53
  if (choice === '1') {
54
+ resolve('npx');
55
+ }
56
+ else if (choice === '2') {
53
57
  resolve('install');
54
58
  }
55
59
  else {
@@ -59,25 +63,68 @@ How would you like to proceed?
59
63
  });
60
64
  }
61
65
  /**
62
- * Show instructions for installing the external relay-dashboard package.
66
+ * Show instructions for installing the external dashboard package.
63
67
  */
64
68
  function showDashboardInstallInstructions() {
65
69
  console.log(`
66
- To install the relay-dashboard, visit:
67
-
68
- ${RELAY_DASHBOARD_REPO}
70
+ To install the dashboard, run:
69
71
 
70
- Install via npm:
72
+ npm install @agent-relay/dashboard-server @agent-relay/dashboard
71
73
 
72
- npm install -g relay-dashboard
74
+ Then restart with:
73
75
 
74
- Then start the dashboard alongside the daemon:
76
+ agent-relay up --dashboard
75
77
 
76
- relay-dashboard --port 3888
77
-
78
- See the repository README for full configuration options.
78
+ For more options, see: ${RELAY_DASHBOARD_REPO}
79
79
  `);
80
80
  }
81
+ /**
82
+ * Start dashboard via npx (downloads and runs if not installed).
83
+ * Returns the spawned child process and port.
84
+ */
85
+ function startDashboardViaNpx(options) {
86
+ console.log('Starting dashboard via npx (this may take a moment on first run)...');
87
+ const dashboardProcess = spawnProcess('npx', [
88
+ '--yes',
89
+ '@agent-relay/dashboard-server',
90
+ '--integrated',
91
+ '--port', String(options.port),
92
+ '--data-dir', options.dataDir,
93
+ '--team-dir', options.teamDir,
94
+ '--project-root', options.projectRoot,
95
+ ], {
96
+ stdio: ['ignore', 'pipe', 'pipe'],
97
+ env: {
98
+ ...process.env,
99
+ // Pass any additional env vars needed
100
+ },
101
+ });
102
+ // Forward dashboard output with prefix
103
+ dashboardProcess.stdout?.on('data', (data) => {
104
+ const lines = data.toString().split('\n').filter(Boolean);
105
+ for (const line of lines) {
106
+ // Don't duplicate the "Dashboard:" line
107
+ if (!line.includes('Dashboard:')) {
108
+ console.log(`[dashboard] ${line}`);
109
+ }
110
+ }
111
+ });
112
+ dashboardProcess.stderr?.on('data', (data) => {
113
+ const lines = data.toString().split('\n').filter(Boolean);
114
+ for (const line of lines) {
115
+ console.error(`[dashboard] ${line}`);
116
+ }
117
+ });
118
+ dashboardProcess.on('error', (err) => {
119
+ console.error('Failed to start dashboard via npx:', err.message);
120
+ });
121
+ dashboardProcess.on('exit', (code) => {
122
+ if (code !== 0 && code !== null) {
123
+ console.error(`Dashboard process exited with code ${code}`);
124
+ }
125
+ });
126
+ return { process: dashboardProcess, port: options.port };
127
+ }
81
128
  dotenvConfig();
82
129
  const DEFAULT_DASHBOARD_PORT = process.env.AGENT_RELAY_DASHBOARD_PORT || '3888';
83
130
  // Read version from package.json
@@ -488,7 +535,103 @@ program
488
535
  try {
489
536
  await daemon.start();
490
537
  console.log('Daemon started.');
491
- const dashboardPort = undefined;
538
+ let dashboardPort = undefined;
539
+ // Try to start dashboard if --dashboard flag is set OR if package is available (auto-detect)
540
+ // --no-dashboard explicitly disables dashboard
541
+ const wantsDashboard = options.dashboard !== false;
542
+ const dashboardRequested = options.dashboard === true;
543
+ if (wantsDashboard) {
544
+ const port = parseInt(options.port, 10);
545
+ try {
546
+ // Dynamic import - works with both local packages and npm installed
547
+ // Use string variable to prevent TypeScript from requiring the module at compile time
548
+ const moduleName = '@agent-relay/dashboard-server';
549
+ const dashboardServer = await import(/* webpackIgnore: true */ moduleName);
550
+ const { startDashboard } = dashboardServer;
551
+ dashboardPort = await startDashboard({
552
+ port,
553
+ dataDir: paths.dataDir,
554
+ teamDir: paths.teamDir,
555
+ projectRoot: paths.projectRoot,
556
+ enableSpawner: true,
557
+ onMarkSpawning: (name) => daemon.markSpawning(name),
558
+ onClearSpawning: (name) => daemon.clearSpawning(name),
559
+ });
560
+ console.log(`Dashboard: http://localhost:${dashboardPort}`);
561
+ // Hook daemon log output to dashboard WebSocket broadcast
562
+ daemon.onLogOutput = (agentName, data) => {
563
+ const broadcast = global.__broadcastLogOutput;
564
+ if (broadcast) {
565
+ broadcast(agentName, data);
566
+ }
567
+ };
568
+ }
569
+ catch (err) {
570
+ if (err.code === 'ERR_MODULE_NOT_FOUND' || err.code === 'MODULE_NOT_FOUND') {
571
+ // Dashboard package not installed
572
+ if (dashboardRequested) {
573
+ // User explicitly asked for dashboard but it's not installed
574
+ // Only prompt interactively if stdin is a TTY (not in Docker/CI)
575
+ if (process.stdin.isTTY) {
576
+ console.log('');
577
+ const action = await promptDashboardInstall();
578
+ if (action === 'npx') {
579
+ // Start dashboard via npx
580
+ const { process: dashboardProcess, port: npxPort } = startDashboardViaNpx({
581
+ port,
582
+ dataDir: paths.dataDir,
583
+ teamDir: paths.teamDir,
584
+ projectRoot: paths.projectRoot,
585
+ });
586
+ dashboardPort = npxPort;
587
+ // Clean up dashboard process on exit
588
+ const cleanupDashboard = () => {
589
+ if (dashboardProcess && !dashboardProcess.killed) {
590
+ dashboardProcess.kill('SIGTERM');
591
+ }
592
+ };
593
+ process.on('SIGINT', cleanupDashboard);
594
+ process.on('SIGTERM', cleanupDashboard);
595
+ process.on('exit', cleanupDashboard);
596
+ // Wait a moment for dashboard to start
597
+ await new Promise(resolve => setTimeout(resolve, 2000));
598
+ console.log(`Dashboard: http://localhost:${dashboardPort}`);
599
+ }
600
+ else if (action === 'install') {
601
+ showDashboardInstallInstructions();
602
+ }
603
+ }
604
+ else {
605
+ // Non-interactive: try npx automatically
606
+ console.log('Dashboard package not installed. Starting via npx...');
607
+ const { process: dashboardProcess, port: npxPort } = startDashboardViaNpx({
608
+ port,
609
+ dataDir: paths.dataDir,
610
+ teamDir: paths.teamDir,
611
+ projectRoot: paths.projectRoot,
612
+ });
613
+ dashboardPort = npxPort;
614
+ // Clean up dashboard process on exit
615
+ const cleanupDashboard = () => {
616
+ if (dashboardProcess && !dashboardProcess.killed) {
617
+ dashboardProcess.kill('SIGTERM');
618
+ }
619
+ };
620
+ process.on('SIGINT', cleanupDashboard);
621
+ process.on('SIGTERM', cleanupDashboard);
622
+ process.on('exit', cleanupDashboard);
623
+ // Wait a moment for dashboard to start
624
+ await new Promise(resolve => setTimeout(resolve, 3000));
625
+ console.log(`Dashboard: http://localhost:${dashboardPort}`);
626
+ }
627
+ }
628
+ // Silent if user didn't explicitly request dashboard
629
+ }
630
+ else {
631
+ console.error('Failed to start dashboard:', err.message);
632
+ }
633
+ }
634
+ }
492
635
  // Determine if we should auto-spawn agents
493
636
  // --spawn: force spawn
494
637
  // --no-spawn: never spawn
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-relay",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Real-time agent-to-agent communication system",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -17,8 +17,8 @@
17
17
  "scripts": {
18
18
  "postinstall": "npm rebuild better-sqlite3 && node scripts/postinstall.js",
19
19
  "build": "npm run clean && npm run build:rust && turbo run build --filter='./packages/*' && tsc",
20
- "build:sequential": "npm run clean && npm run build:rust && npm run build:protocol && npm run build:config && npm run build:storage && npm run build:state && npm run build:policy && npm run build:trajectory && npm run build:hooks && npm run build:memory && npm run build:utils && npm run build:continuity && npm run build:resiliency && npm run build:user-directory && npm run build:wrapper && npm run build:mcp && npm run build:bridge && npm run build:telemetry && npm run build:cloud && npm run build:daemon && npm run build:sdk && npm run build:api-types && npm run build:spawner && tsc",
21
- "build:workspace": "npm run clean && npm run build:rust && npm run build:protocol && npm run build:config && npm run build:storage && npm run build:state && npm run build:policy && npm run build:trajectory && npm run build:hooks && npm run build:memory && npm run build:utils && npm run build:continuity && npm run build:resiliency && npm run build:user-directory && npm run build:wrapper && npm run build:mcp && npm run build:bridge && npm run build:telemetry && npm run build:cloud && npm run build:daemon && npm run build:sdk && npm run build:api-types && npm run build:spawner && tsc",
20
+ "build:sequential": "npm run clean && npm run build:rust && npm run build:protocol && npm run build:config && npm run build:storage && npm run build:state && npm run build:policy && npm run build:trajectory && npm run build:hooks && npm run build:memory && npm run build:utils && npm run build:continuity && npm run build:resiliency && npm run build:user-directory && npm run build:wrapper && npm run build:mcp && npm run build:bridge && npm run build:telemetry && npm run build:daemon && npm run build:sdk && npm run build:api-types && npm run build:spawner && tsc",
21
+ "build:workspace": "npm run clean && npm run build:rust && npm run build:protocol && npm run build:config && npm run build:storage && npm run build:state && npm run build:policy && npm run build:trajectory && npm run build:hooks && npm run build:memory && npm run build:utils && npm run build:continuity && npm run build:resiliency && npm run build:user-directory && npm run build:wrapper && npm run build:mcp && npm run build:bridge && npm run build:telemetry && npm run build:daemon && npm run build:sdk && npm run build:api-types && npm run build:spawner && tsc",
22
22
  "build:packages": "turbo run build --filter='./packages/*'",
23
23
  "build:packages:watch": "turbo run build --filter='./packages/*' --watch",
24
24
  "build:mcp": "cd packages/mcp && npm run build",
@@ -36,7 +36,6 @@
36
36
  "build:resiliency": "cd packages/resiliency && npm run build",
37
37
  "build:user-directory": "cd packages/user-directory && npm run build",
38
38
  "build:wrapper": "cd packages/wrapper && npm run build",
39
- "build:cloud": "cd packages/cloud && npm run build",
40
39
  "build:daemon": "cd packages/daemon && npm run build",
41
40
  "build:sdk": "cd packages/sdk && npm run build",
42
41
  "build:api-types": "cd packages/api-types && npm run build",
@@ -54,30 +53,11 @@
54
53
  "daemon": "node packages/daemon/dist/server.js",
55
54
  "pretest": "npm run build",
56
55
  "test": "vitest run",
57
- "test:integration": "vitest run test/cloud/*.integration.test.ts",
58
- "test:qa": "./scripts/run-cloud-qa.sh",
59
- "qa": "./scripts/manual-qa.sh",
60
- "qa:stop": "./scripts/manual-qa.sh --stop",
61
56
  "pretest:coverage": "npm run build",
62
57
  "test:coverage": "vitest run --coverage",
63
58
  "test:watch": "vitest",
64
59
  "lint": "eslint src --ext .ts",
65
60
  "clean": "rm -rf dist && find packages -maxdepth 2 -name dist -type d -exec rm -rf {} + 2>/dev/null || true",
66
- "db:generate": "drizzle-kit generate",
67
- "db:migrate": "drizzle-kit migrate",
68
- "db:migrate:run": "node scripts/run-migrations.js",
69
- "db:migrate:verify": "node scripts/verify-schema.js",
70
- "db:push": "drizzle-kit push",
71
- "db:studio": "drizzle-kit studio",
72
- "stripe:setup": "npx tsx scripts/setup-stripe-products.ts",
73
- "stripe:setup:dry": "npx tsx scripts/setup-stripe-products.ts --dry-run",
74
- "services:up": "docker compose -f docker-compose.dev.yml up -d postgres redis && echo '✓ Postgres and Redis running'",
75
- "services:down": "docker compose -f docker-compose.dev.yml down",
76
- "services:logs": "docker compose -f docker-compose.dev.yml logs -f postgres redis",
77
- "cloud:setup": "./scripts/cloud-setup.sh",
78
- "cloud:api": "WORKSPACE_IMAGE=relay-workspace:local WORKSPACE_DEV_MOUNT=true node -r dotenv/config packages/cloud/dist/index.js",
79
- "precloud": "./scripts/cloud-setup.sh --skip-data",
80
- "cloud": "npm run cloud:api",
81
61
  "docs:dev": "cd docs && npm run dev",
82
62
  "cli-tester:start": "cd packages/cli-tester && ./scripts/start.sh",
83
63
  "cli-tester:start:clean": "cd packages/cli-tester && ./scripts/start.sh --clean",
@@ -107,41 +87,31 @@
107
87
  },
108
88
  "homepage": "https://github.com/AgentWorkforce/relay#readme",
109
89
  "dependencies": {
110
- "@agent-relay/bridge": "2.0.23",
111
- "@agent-relay/config": "2.0.23",
112
- "@agent-relay/continuity": "2.0.23",
113
- "@agent-relay/daemon": "2.0.23",
114
- "@agent-relay/hooks": "2.0.23",
115
- "@agent-relay/mcp": "2.0.23",
116
- "@agent-relay/protocol": "2.0.23",
117
- "@agent-relay/resiliency": "2.0.23",
118
- "@agent-relay/sdk": "2.0.23",
119
- "@agent-relay/storage": "2.0.23",
120
- "@agent-relay/telemetry": "2.0.23",
121
- "@agent-relay/trajectory": "2.0.23",
122
- "@agent-relay/user-directory": "2.0.23",
123
- "@agent-relay/utils": "2.0.23",
124
- "@agent-relay/wrapper": "2.0.23",
125
- "@nangohq/node": "^0.69.20",
126
- "@types/jsonwebtoken": "^9.0.10",
90
+ "@agent-relay/bridge": "2.0.25",
91
+ "@agent-relay/config": "2.0.25",
92
+ "@agent-relay/continuity": "2.0.25",
93
+ "@agent-relay/daemon": "2.0.25",
94
+ "@agent-relay/hooks": "2.0.25",
95
+ "@agent-relay/mcp": "2.0.25",
96
+ "@agent-relay/protocol": "2.0.25",
97
+ "@agent-relay/resiliency": "2.0.25",
98
+ "@agent-relay/sdk": "2.0.25",
99
+ "@agent-relay/storage": "2.0.25",
100
+ "@agent-relay/telemetry": "2.0.25",
101
+ "@agent-relay/trajectory": "2.0.25",
102
+ "@agent-relay/user-directory": "2.0.25",
103
+ "@agent-relay/utils": "2.0.25",
104
+ "@agent-relay/wrapper": "2.0.25",
127
105
  "agent-trajectories": "^0.2.3",
128
106
  "better-sqlite3": "^12.6.2",
129
107
  "chokidar": "^5.0.0",
130
108
  "commander": "^12.1.0",
131
109
  "compare-versions": "^6.1.1",
132
- "connect-redis": "^9.0.0",
133
110
  "cors": "^2.8.5",
134
111
  "dotenv": "^17.2.3",
135
- "drizzle-orm": "^0.45.1",
136
112
  "express": "^5.2.1",
137
- "express-session": "^1.18.2",
138
- "helmet": "^8.1.0",
139
113
  "http-proxy-middleware": "^3.0.5",
140
- "jsonwebtoken": "^9.0.3",
141
- "pg": "^8.16.3",
142
- "redis": "^5.10.0",
143
114
  "ssh2": "^1.17.0",
144
- "stripe": "^20.1.0",
145
115
  "uuid": "^10.0.0",
146
116
  "ws": "^8.18.3"
147
117
  },
@@ -152,10 +122,7 @@
152
122
  "@types/better-sqlite3": "^7.6.13",
153
123
  "@types/cors": "^2.8.19",
154
124
  "@types/express": "^5.0.6",
155
- "@types/express-session": "^1.18.2",
156
- "@types/helmet": "^0.0.48",
157
125
  "@types/node": "^22.19.3",
158
- "@types/pg": "^8.16.0",
159
126
  "@types/ssh2": "^1.15.5",
160
127
  "@types/uuid": "^10.0.0",
161
128
  "@types/ws": "^8.18.1",
@@ -163,7 +130,6 @@
163
130
  "@typescript-eslint/parser": "^8.18.2",
164
131
  "@vitest/coverage-v8": "^2.1.8",
165
132
  "concurrently": "^9.2.1",
166
- "drizzle-kit": "^0.31.8",
167
133
  "esbuild": "^0.27.2",
168
134
  "eslint": "^8.57.1",
169
135
  "jsdom": "^25.0.1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/api-types",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Shared API types and Zod schemas for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/bridge",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Multi-project bridge client utilities for Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,13 +22,13 @@
22
22
  "test:watch": "vitest"
23
23
  },
24
24
  "dependencies": {
25
- "@agent-relay/protocol": "2.0.23",
26
- "@agent-relay/config": "2.0.23",
27
- "@agent-relay/utils": "2.0.23",
28
- "@agent-relay/policy": "2.0.23",
29
- "@agent-relay/user-directory": "2.0.23",
30
- "@agent-relay/wrapper": "2.0.23",
31
- "@agent-relay/mcp": "2.0.23"
25
+ "@agent-relay/protocol": "2.0.25",
26
+ "@agent-relay/config": "2.0.25",
27
+ "@agent-relay/utils": "2.0.25",
28
+ "@agent-relay/policy": "2.0.25",
29
+ "@agent-relay/user-directory": "2.0.25",
30
+ "@agent-relay/wrapper": "2.0.25",
31
+ "@agent-relay/mcp": "2.0.25"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/cli-tester",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Manual interactive testing for CLI authentication flows",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/config",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Shared configuration schemas and loaders for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -83,7 +83,7 @@
83
83
  "test:watch": "vitest"
84
84
  },
85
85
  "dependencies": {
86
- "@agent-relay/protocol": "2.0.23",
86
+ "@agent-relay/protocol": "2.0.25",
87
87
  "zod": "^3.23.8",
88
88
  "zod-to-json-schema": "^3.23.1"
89
89
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/continuity",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Session continuity manager for Relay (ledgers, handoffs, resume)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/daemon",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Relay daemon server - agent coordination and message routing",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,17 +22,17 @@
22
22
  "test:watch": "vitest"
23
23
  },
24
24
  "dependencies": {
25
- "@agent-relay/protocol": "2.0.23",
26
- "@agent-relay/config": "2.0.23",
27
- "@agent-relay/storage": "2.0.23",
28
- "@agent-relay/bridge": "2.0.23",
29
- "@agent-relay/utils": "2.0.23",
30
- "@agent-relay/policy": "2.0.23",
31
- "@agent-relay/memory": "2.0.23",
32
- "@agent-relay/resiliency": "2.0.23",
33
- "@agent-relay/user-directory": "2.0.23",
34
- "@agent-relay/wrapper": "2.0.23",
35
- "@agent-relay/telemetry": "2.0.23",
25
+ "@agent-relay/protocol": "2.0.25",
26
+ "@agent-relay/config": "2.0.25",
27
+ "@agent-relay/storage": "2.0.25",
28
+ "@agent-relay/bridge": "2.0.25",
29
+ "@agent-relay/utils": "2.0.25",
30
+ "@agent-relay/policy": "2.0.25",
31
+ "@agent-relay/memory": "2.0.25",
32
+ "@agent-relay/resiliency": "2.0.25",
33
+ "@agent-relay/user-directory": "2.0.25",
34
+ "@agent-relay/wrapper": "2.0.25",
35
+ "@agent-relay/telemetry": "2.0.25",
36
36
  "ws": "^8.18.3",
37
37
  "better-sqlite3": "^12.6.2",
38
38
  "pg": "^8.16.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/hooks",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Hook emitter, registry, and trajectory hooks for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -37,9 +37,9 @@
37
37
  "test:watch": "vitest"
38
38
  },
39
39
  "dependencies": {
40
- "@agent-relay/protocol": "2.0.23",
41
- "@agent-relay/config": "2.0.23",
42
- "@agent-relay/trajectory": "2.0.23"
40
+ "@agent-relay/protocol": "2.0.25",
41
+ "@agent-relay/config": "2.0.25",
42
+ "@agent-relay/trajectory": "2.0.25"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/mcp",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "MCP server for Agent Relay - native messaging tools for AI agents in Claude, Cursor, and VS Code",
5
5
  "author": "Agent Workforce Inc.",
6
6
  "license": "Apache-2.0",
@@ -47,7 +47,7 @@
47
47
  "prepublishOnly": "npm run clean && npm run build && npm test"
48
48
  },
49
49
  "dependencies": {
50
- "@agent-relay/config": "2.0.23",
50
+ "@agent-relay/config": "2.0.25",
51
51
  "@modelcontextprotocol/sdk": "^1.0.0",
52
52
  "smol-toml": "^1.6.0",
53
53
  "zod": "^3.23.8"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/memory",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Semantic memory storage and retrieval system for agent-relay with multiple backend support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "test:watch": "vitest"
23
23
  },
24
24
  "dependencies": {
25
- "@agent-relay/hooks": "2.0.23"
25
+ "@agent-relay/hooks": "2.0.25"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/policy",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Agent policy management with multi-level fallback (repo, local PRPM, cloud workspace)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "test:watch": "vitest"
23
23
  },
24
24
  "dependencies": {
25
- "@agent-relay/config": "2.0.23"
25
+ "@agent-relay/config": "2.0.25"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/protocol",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Wire protocol types and framing for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/resiliency",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Health monitoring, logging, metrics, and crash resilience utilities for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/sdk",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Lightweight SDK for agent-to-agent communication via Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -55,7 +55,7 @@
55
55
  "access": "public"
56
56
  },
57
57
  "dependencies": {
58
- "@agent-relay/protocol": "2.0.23"
58
+ "@agent-relay/protocol": "2.0.25"
59
59
  },
60
60
  "engines": {
61
61
  "node": ">=18.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/spawner",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Agent spawning types and utilities for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/state",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Agent state persistence for non-hook CLIs (Codex, Gemini, etc.)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/storage",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Storage adapters and interfaces for Relay message/session persistence",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -56,7 +56,7 @@
56
56
  }
57
57
  },
58
58
  "dependencies": {
59
- "@agent-relay/protocol": "2.0.23"
59
+ "@agent-relay/protocol": "2.0.25"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/telemetry",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Anonymous telemetry for Agent Relay usage analytics",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/trajectory",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "description": "Trajectory integration utilities (trail/PDERO) for Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "test:watch": "vitest"
23
23
  },
24
24
  "dependencies": {
25
- "@agent-relay/config": "2.0.23"
25
+ "@agent-relay/config": "2.0.25"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",