agent-relay 8.9.2 → 9.1.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 (38) hide show
  1. package/dist/cli/agent-relay-mcp.d.ts +9 -0
  2. package/dist/cli/agent-relay-mcp.d.ts.map +1 -1
  3. package/dist/cli/agent-relay-mcp.js +17 -2
  4. package/dist/cli/agent-relay-mcp.js.map +1 -1
  5. package/dist/cli/bootstrap.js +1 -1
  6. package/dist/cli/commands/core.d.ts +0 -2
  7. package/dist/cli/commands/core.d.ts.map +1 -1
  8. package/dist/cli/commands/core.js +1 -74
  9. package/dist/cli/commands/core.js.map +1 -1
  10. package/dist/cli/commands/fleet.d.ts.map +1 -1
  11. package/dist/cli/commands/fleet.js +3 -3
  12. package/dist/cli/commands/fleet.js.map +1 -1
  13. package/dist/cli/commands/integration.d.ts.map +1 -1
  14. package/dist/cli/commands/integration.js +27 -0
  15. package/dist/cli/commands/integration.js.map +1 -1
  16. package/dist/cli/commands/local-agent.d.ts +1 -2
  17. package/dist/cli/commands/local-agent.d.ts.map +1 -1
  18. package/dist/cli/commands/local-agent.js +1 -2
  19. package/dist/cli/commands/local-agent.js.map +1 -1
  20. package/dist/cli/lib/broker-lifecycle.d.ts +8 -7
  21. package/dist/cli/lib/broker-lifecycle.d.ts.map +1 -1
  22. package/dist/cli/lib/broker-lifecycle.js +63 -223
  23. package/dist/cli/lib/broker-lifecycle.js.map +1 -1
  24. package/dist/cli/lib/core-maintenance.d.ts.map +1 -1
  25. package/dist/cli/lib/core-maintenance.js +4 -52
  26. package/dist/cli/lib/core-maintenance.js.map +1 -1
  27. package/dist/cli/lib/fleet-sidecar.d.ts +1 -3
  28. package/dist/cli/lib/fleet-sidecar.d.ts.map +1 -1
  29. package/dist/cli/lib/fleet-sidecar.js +1 -5
  30. package/dist/cli/lib/fleet-sidecar.js.map +1 -1
  31. package/dist/cli/telemetry/events.d.ts +3 -3
  32. package/dist/cli/telemetry/events.d.ts.map +1 -1
  33. package/dist/index.cjs +119 -113
  34. package/package.json +8 -8
  35. package/dist/cli/lib/broker-dashboard.d.ts +0 -12
  36. package/dist/cli/lib/broker-dashboard.d.ts.map +0 -1
  37. package/dist/cli/lib/broker-dashboard.js +0 -431
  38. package/dist/cli/lib/broker-dashboard.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"local-agent.js","sourceRoot":"","sources":["../../../src/cli/commands/local-agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,GAExB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAErF,iFAAiF;AAEjF,uDAAuD;AACvD,MAAM,gBAAgB,GAAgD;IACpE,KAAK,EAAE,2BAA2B;IAClC,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,QAAgB,EAChB,IAAY,EACZ,IAAwB,EACxB,KAAyB;IAEzB,IAAI,KAAK,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO;QACL,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC3C,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KACzC,CAAC;AACJ,CAAC;AAKD,0FAA0F;AAC1F,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,IAAgB,EAChB,OAAmE;IAEnE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,KAAK,aAAa;YAChB,OAAO,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,KAAK,OAAO,CAAC;QACb;YACE,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAsBD,SAAS,YAAY,CAAC,YAA6C,EAAE;IACnE,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QACpE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,kBAAkB,EAAE,0BAA0B;QAC9C,kBAAkB,EAAE,eAAe;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACjD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACrD,IAAI,EAAE,WAAW;QACjB,GAAG,SAAS;KACa,CAAC;IAC5B,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,IAAY,EAAE,OAAuC,EAAE,EAAE;QACpF,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,EAAE;YAClD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,sFAAsF;gBACpF,2EAA2E,CAC9E,CAAC;QACJ,CAAC;QACD,OAAO,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,GAAG,CAChB,IAA4B,EAC5B,EAAkD;IAElD,IAAI,MAAuC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,IAA4B,EAC5B,OAAuC,EACvC,EAAkD;IAElD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,OAAO,OAAO;SACX,MAAM,CAAC,oBAAoB,EAAE,kEAAkE,CAAC;SAChG,MAAM,CAAC,iBAAiB,EAAE,qEAAqE,CAAC;SAChG,MAAM,CAAC,mBAAmB,EAAE,wEAAwE,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA6B;IAC1D,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,MAAM,EAAE,IAAI,CAAC,MAA4B;QACzC,QAAQ,EAAE,IAAI,CAAC,QAA8B;KAC9C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAc,EACd,YAA6C,EAAE;IAE/C,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC;IAE7F,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CACP,YAAY,EACZ,+FAA+F,CAChG;SACA,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;SAChE,MAAM,CAAC,0BAA0B,EAAE,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC;SACnE,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;SAC3C,MAAM,CAAC,cAAc,EAAE,yCAAyC,CAAC;SACjE,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,EAAE,aAAa,CAAC;SACxF,MAAM,CAAC,mBAAmB,EAAE,6DAA6D,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAA6B,EAAE,EAAE;QAChE,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;YACvD,IACE,SAAS;gBACT,SAAS,KAAK,aAAa;gBAC3B,SAAS,KAAK,WAAW;gBACzB,SAAS,KAAK,WAAW,EACzB,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,uBAAuB,SAAS,6CAA6C,CAAC,CAAC;gBAC1F,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAI,IAAI,CAAC,IAA2B,IAAI,QAAQ,CAAC;YAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,QAAQ,EACR,QAAQ,EACR,IAAI,CAAC,IAA0B,EAC/B,IAAI,CAAC,KAA2B,CACjC,CAAC;YACF,MAAM,oBAAoB,CAAC,MAAM,EAAE;gBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAG,IAAI,CAAC,QAAiC,IAAI,CAAC,SAAS,CAAC;gBAChE,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAyB;gBACnC,SAAS,EACP,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,SAAqD;gBAClG,aAAa,EAAE,IAAI,CAAC,aAAoC;aACzD,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,iCAAiC,CAAC;SAC9C,QAAQ,CACP,YAAY,EACZ,+FAA+F,CAChG;SACA,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;SAChE,MAAM,CAAC,eAAe,EAAE,yCAAyC,EAAE,OAAO,CAAC;SAC3E,MAAM,CAAC,0BAA0B,EAAE,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC;SACnE,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;SAC3C,MAAM,CAAC,cAAc,EAAE,yCAAyC,CAAC;SACjE,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,EAAE,aAAa,CAAC;SACxF,MAAM,CAAC,mBAAmB,EAAE,6DAA6D,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAgC,EAAE,EAAE;QACnE,MAAM,IAAI,GAAI,OAAO,CAAC,IAAe,IAAI,OAAO,CAAC;QACjD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAClE,IAAI,CAAC,KAAK,CAAC,wBAAwB,IAAI,+CAA+C,CAAC,CAAC;YACxF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAA+B,CAAC;QAC1D,IACE,SAAS;YACT,SAAS,KAAK,aAAa;YAC3B,SAAS,KAAK,WAAW;YACzB,SAAS,KAAK,WAAW,EACzB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,uBAAuB,SAAS,6CAA6C,CAAC,CAAC;YAC1F,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAI,OAAO,CAAC,IAA2B,IAAI,QAAQ,CAAC;QAClE,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,QAAQ,EACR,QAAQ,EACR,OAAO,CAAC,IAA0B,EAClC,OAAO,CAAC,KAA2B,CACpC,CAAC;QACF,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC/B,MAAM,oBAAoB,CAAC,MAAM,EAAE;gBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAG,OAAO,CAAC,QAAiC,IAAI,CAAC,SAAS,CAAC;gBACnE,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,GAAG,EAAE,OAAO,CAAC,GAAyB;gBACtC,SAAS,EACP,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,SAAqD;gBAClG,aAAa,EAAE,OAAO,CAAC,aAAoC;aAC5D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,IAAI,KAAK,QAAQ,iBAAiB,IAAI,IAAI,QAAQ,GAAG,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QACH,sEAAsE;QACtE,4DAA4D;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAkB,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC/B,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,yEAAyE,CAAC;SACtF,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;SAChC,QAAQ,CAAC,SAAS,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,KAAa,EAAE,EAAE;QAC5C,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC/B,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,8CAA8C,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sEAAsE,CAAC;SACnF,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;SAChC,MAAM,CAAC,eAAe,EAAE,4BAA4B,EAAE,MAAM,CAAC;SAC7D,MAAM,CAAC,oBAAoB,EAAE,kEAAkE,CAAC;SAChG,MAAM,CAAC,iBAAiB,EAAE,qEAAqE,CAAC;SAChG,MAAM,CAAC,mBAAmB,EAAE,wEAAwE,CAAC;SACrG,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAgC,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAI,OAAO,CAAC,IAAe,IAAI,MAAM,CAAC;QAChD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAClE,IAAI,CAAC,KAAK,CAAC,wBAAwB,IAAI,+CAA+C,CAAC,CAAC;YACxF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;YACzC,SAAS,EAAE,OAAO,CAAC,SAA+B;YAClD,MAAM,EAAE,OAAO,CAAC,MAA4B;YAC5C,QAAQ,EAAE,OAAO,CAAC,QAA8B;SACjD,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,oDAAoD,CAAC,CAAC;IAE3G,gBAAgB,CACd,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,qDAAqD,CAAC;SAClE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CACpC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAA6B,EAAE,EAAE;QAC7D,MAAM,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,gBAAgB,CACd,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yDAAyD,CAAC;SACtE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CACpC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAA6B,EAAE,EAAE;QAC7D,MAAM,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACvE,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAClG,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,gBAAgB,CACd,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4DAA4D,CAAC;SACzE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CACpC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAA6B,EAAE,EAAE;QAC7D,MAAM,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACvE,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACjG,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,gBAAgB,EAAE,0CAA0C,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC5C,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC/B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO;YACT,CAAC;YACD,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;gBACH,kEAAkE;gBAClE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"local-agent.js","sourceRoot":"","sources":["../../../src/cli/commands/local-agent.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,8 @@
1
1
  import type { CoreDependencies, CoreProjectPaths, CoreRelay } from '../commands/core.js';
2
2
  type UpOptions = {
3
- dashboard?: boolean;
4
- port?: string;
5
3
  spawn?: boolean;
6
4
  background?: boolean;
7
- foreground?: boolean;
8
5
  verbose?: boolean;
9
- dashboardPath?: string;
10
- reuseExistingBroker?: boolean;
11
6
  workspaceKey?: string;
12
7
  stateDir?: string;
13
8
  brokerName?: string;
@@ -50,8 +45,14 @@ export declare function describeError(err: unknown): string;
50
45
  */
51
46
  export declare function classifyBrokerStartError(err: unknown): string;
52
47
  /** Exported for testing. */
53
- export declare function classifyBrokerStartStage(err: unknown, message: string, wantsDashboard: boolean): string;
54
- export declare function startBrokerWithPortFallback(paths: CoreProjectPaths, dashboardPort: number, deps: CoreDependencies, brokerName?: string): Promise<{
48
+ export declare function classifyBrokerStartStage(_err: unknown, message: string): string;
49
+ /**
50
+ * The broker base port. `AGENT_RELAY_BROKER_PORT` overrides the default so
51
+ * multiple brokers can run side by side (e.g. in tests); the broker HTTP API
52
+ * binds near `basePort + 1` with fallback scanning.
53
+ */
54
+ export declare function resolveBrokerBasePort(deps: Pick<CoreDependencies, 'env'>): number;
55
+ export declare function startBrokerWithPortFallback(paths: CoreProjectPaths, basePort: number, deps: CoreDependencies, brokerName?: string): Promise<{
55
56
  relay: CoreRelay;
56
57
  apiPort: number;
57
58
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"broker-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/broker-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAoB7B,KAAK,SAAS,GAAG;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAWF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAwDD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAE7E;AAcD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAuBlD;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU7D;AAED,4BAA4B;AAC5B,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,MAAM,CAQvG;AAwBD,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gBAAgB,EACvB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,gBAAgB,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAWhD;AAyfD,wBAAsB,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuX5F;AAGD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkHhG;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAkDf"}
1
+ {"version":3,"file":"broker-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/broker-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAW7B,KAAK,SAAS,GAAG;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAWF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAwDD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAE7E;AAcD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAuBlD;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU7D;AAED,4BAA4B;AAC5B,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO/E;AAwBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,GAAG,MAAM,CAGjF;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,gBAAgB,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAWhD;AAidD,wBAAsB,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoM5F;AAGD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkHhG;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAkDf"}
@@ -2,13 +2,12 @@ import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { HarnessDriverClient } from '@agent-relay/harness-driver';
4
4
  import { track } from '../telemetry/index.js';
5
- import { getDefaultDashboardRelayUrl, isDebugLikeLoggingEnabled, normalizeDashboardPath, resolveDashboardPortWithFallback, resolveDashboardRelayUrl, startDashboardWithFallback, waitForDashboard, } from './broker-dashboard.js';
6
5
  import { buildBundledAgentRelayMcpCommand } from './agent-relay-mcp-command.js';
7
6
  import { errorClassName } from './telemetry-helpers.js';
8
7
  import { createImplicitLocalFleetNode, fleetStatusPath, startFleetSidecar, } from './fleet-sidecar.js';
9
8
  const MAX_API_PORT_ATTEMPTS = 25;
10
- const MAX_DASHBOARD_PORT_ATTEMPTS = 25;
11
9
  const MAX_PORT = 65535;
10
+ const DEFAULT_BROKER_BASE_PORT = 3888;
12
11
  /** The broker writes this file with URL, port, API key, and PID. */
13
12
  const CONNECTION_FILENAME = 'connection.json';
14
13
  const STATUS_POLL_INTERVAL_MS = 500;
@@ -112,9 +111,7 @@ export function classifyBrokerStartError(err) {
112
111
  return errorClassName(err) ?? 'Error';
113
112
  }
114
113
  /** Exported for testing. */
115
- export function classifyBrokerStartStage(err, message, wantsDashboard) {
116
- if (errorCode(err) === 'EADDRINUSE' && wantsDashboard)
117
- return 'dashboard_port';
114
+ export function classifyBrokerStartStage(_err, message) {
118
115
  if (isBrokerAlreadyRunningError(message))
119
116
  return 'already_running';
120
117
  if (/fetch failed/i.test(message))
@@ -143,11 +140,20 @@ async function resolveApiPortWithFallback(startApiPort, maxAttempts, deps) {
143
140
  }
144
141
  throw new Error(`Failed to find an available API port near ${startApiPort}.`);
145
142
  }
146
- export async function startBrokerWithPortFallback(paths, dashboardPort, deps, brokerName) {
143
+ /**
144
+ * The broker base port. `AGENT_RELAY_BROKER_PORT` overrides the default so
145
+ * multiple brokers can run side by side (e.g. in tests); the broker HTTP API
146
+ * binds near `basePort + 1` with fallback scanning.
147
+ */
148
+ export function resolveBrokerBasePort(deps) {
149
+ const raw = Number.parseInt(deps.env.AGENT_RELAY_BROKER_PORT ?? '', 10);
150
+ return Number.isFinite(raw) && raw > 0 ? raw : DEFAULT_BROKER_BASE_PORT;
151
+ }
152
+ export async function startBrokerWithPortFallback(paths, basePort, deps, brokerName) {
147
153
  // Resolve a free API port BEFORE spawning the broker. This avoids
148
154
  // spawning (and flocking) multiple --persist brokers during retry,
149
155
  // which caused stale-flock "already running" errors.
150
- const startApiPort = dashboardPort + 1;
156
+ const startApiPort = basePort + 1;
151
157
  const apiPort = await resolveApiPortWithFallback(startApiPort, MAX_API_PORT_ATTEMPTS, deps);
152
158
  const candidate = await deps.createRelay(paths.projectRoot, apiPort, brokerName);
153
159
  await candidate.getStatus();
@@ -162,19 +168,28 @@ function startImplicitLocalFleetSidecar(paths, relay, options, deps, teamsConfig
162
168
  deps.warn('Fleet local node skipped: broker connection file was not available.');
163
169
  return undefined;
164
170
  }
165
- const node = createImplicitLocalFleetNode({
166
- paths,
167
- teamsConfig,
168
- name: options.brokerName ?? (path.basename(paths.projectRoot) || 'local-node'),
169
- });
170
- return startFleetSidecar({
171
- definition: node,
172
- connection: { url: conn.url, apiKey: conn.api_key },
173
- workspaceKey: relay.workspaceKey,
174
- statusPath: fleetStatusPath(paths),
175
- reconnect: true,
176
- warn: (message) => deps.warn(message),
177
- });
171
+ // The implicit local fleet node is best-effort: it lets this broker advertise
172
+ // itself as a fleet node, but the broker is already up and usable without it.
173
+ // Never let a sidecar setup failure abort `up`.
174
+ try {
175
+ const node = createImplicitLocalFleetNode({
176
+ paths,
177
+ teamsConfig,
178
+ name: options.brokerName ?? (path.basename(paths.projectRoot) || 'local-node'),
179
+ });
180
+ return startFleetSidecar({
181
+ definition: node,
182
+ connection: { url: conn.url, apiKey: conn.api_key },
183
+ workspaceKey: relay.workspaceKey,
184
+ statusPath: fleetStatusPath(paths),
185
+ reconnect: true,
186
+ warn: (message) => deps.warn(message),
187
+ });
188
+ }
189
+ catch (err) {
190
+ deps.warn(`Fleet local node skipped: ${toErrorMessage(err)}`);
191
+ return undefined;
192
+ }
178
193
  }
179
194
  function isBrokerAlreadyRunningError(message) {
180
195
  return /another broker instance is already running in this directory/i.test(message);
@@ -245,17 +260,19 @@ function isBrokerExecutableCommand(command) {
245
260
  const basename = commandExecutableBasename(command);
246
261
  return basename === 'agent-relay-broker' || basename.startsWith('agent-relay-broker-');
247
262
  }
248
- function isForegroundBrokerCliCommand(command) {
263
+ function isAttachedBrokerCliCommand(command) {
249
264
  if (command.includes('agent-relay-mcp')) {
250
265
  return false;
251
266
  }
252
- if (!/(?:^|\s)up(?:\s|$)/.test(command) || !/(?:^|\s)--foreground(?:\s|=|$)/.test(command)) {
267
+ // The attached `up` process holds the broker. Skip the transient
268
+ // `up --background` launcher, which exits as soon as the child is ready.
269
+ if (!/(?:^|\s)up(?:\s|$)/.test(command) || /(?:^|\s)--background(?:\s|=|$)/.test(command)) {
253
270
  return false;
254
271
  }
255
272
  return /(?:^|\s)(?:\S*agent-relay(?:\.js)?|\S*agent-relay-[^\s]+)(?:\s|$)/.test(command);
256
273
  }
257
274
  function isBrokerProcessCommand(command) {
258
- return isBrokerExecutableCommand(command) || isForegroundBrokerCliCommand(command);
275
+ return isBrokerExecutableCommand(command) || isAttachedBrokerCliCommand(command);
259
276
  }
260
277
  function escapeRegExp(value) {
261
278
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@@ -438,10 +455,7 @@ function cleanupBrokerFiles(paths, deps) {
438
455
  }
439
456
  }
440
457
  function childUpArgsForDetachedStart(options, deps) {
441
- const args = cliUserArgs(deps).filter((arg) => !['--background', '--foreground'].some((name) => matchesCliOption(arg, name)));
442
- if (options.dashboard === false && !args.includes('--no-dashboard')) {
443
- args.push('--no-dashboard');
444
- }
458
+ const args = cliUserArgs(deps).filter((arg) => !matchesCliOption(arg, '--background'));
445
459
  if (options.stateDir && !hasCliOption(args, '--state-dir')) {
446
460
  args.push('--state-dir', path.resolve(options.stateDir));
447
461
  }
@@ -454,9 +468,6 @@ function childUpArgsForDetachedStart(options, deps) {
454
468
  if (options.verbose === true && !args.includes('--verbose')) {
455
469
  args.push('--verbose');
456
470
  }
457
- if (options.dashboard === false && !args.includes('--foreground')) {
458
- args.push('--foreground');
459
- }
460
471
  return args;
461
472
  }
462
473
  function cliUserArgs(deps) {
@@ -530,50 +541,13 @@ async function waitForBrokerReadiness(paths, deps, waitMs, requireApi) {
530
541
  }
531
542
  return latest;
532
543
  }
533
- async function discoverExistingBrokerApiPort(preferredApiPort, maxAttempts, deps) {
534
- const attempts = Math.max(1, maxAttempts);
535
- for (let attempt = 0; attempt < attempts; attempt += 1) {
536
- const candidatePort = preferredApiPort + attempt;
537
- if (candidatePort > MAX_PORT) {
538
- return preferredApiPort;
539
- }
540
- try {
541
- const response = await fetch(`http://localhost:${candidatePort}/health`);
542
- if (response.ok) {
543
- if (attempt > 0) {
544
- deps.warn(`Detected existing broker API on port ${candidatePort}.`);
545
- }
546
- return candidatePort;
547
- }
548
- }
549
- catch {
550
- // Keep scanning.
551
- }
552
- }
553
- return preferredApiPort;
554
- }
555
- async function shutdownUpResources(relay, dashboardProcess, dataDir, deps, ownsBroker) {
556
- if (dashboardProcess && !dashboardProcess.killed) {
557
- try {
558
- dashboardProcess.kill('SIGTERM');
559
- }
560
- catch {
561
- // Best-effort cleanup.
562
- }
563
- }
544
+ async function shutdownUpResources(relay, dataDir, deps) {
564
545
  await relay.shutdown().catch(() => undefined);
565
- if (ownsBroker) {
566
- safeUnlink(path.join(dataDir, CONNECTION_FILENAME), deps);
567
- }
546
+ safeUnlink(path.join(dataDir, CONNECTION_FILENAME), deps);
568
547
  }
569
548
  // eslint-disable-next-line complexity
570
549
  export async function runUpCommand(options, deps) {
571
550
  ensureBundledAgentRelayMcpCommand(deps);
572
- if (options.background && options.foreground) {
573
- deps.error('Cannot use --background and --foreground together.');
574
- deps.exit(1);
575
- return;
576
- }
577
551
  const paths = deps.getProjectPaths();
578
552
  // --state-dir overrides where the broker writes state / connection files
579
553
  if (options.stateDir) {
@@ -581,7 +555,7 @@ export async function runUpCommand(options, deps) {
581
555
  paths.dataDir = resolved;
582
556
  deps.env.AGENT_RELAY_STATE_DIR = resolved;
583
557
  }
584
- if (options.background || (options.dashboard === false && !options.foreground)) {
558
+ if (options.background) {
585
559
  const preflight = await recoverHalfStartedBroker(paths, deps);
586
560
  if (preflight === 'running') {
587
561
  const pid = readBrokerPid(paths.dataDir, deps);
@@ -647,23 +621,11 @@ export async function runUpCommand(options, deps) {
647
621
  deps.exit(0);
648
622
  return;
649
623
  }
650
- const wantsDashboard = options.dashboard !== false;
651
- const requestedDashboardPort = Number.parseInt(options.port ?? '3888', 10) || 3888;
652
- const shouldReuseExistingBroker = options.reuseExistingBroker === true;
653
- const dashboardPort = wantsDashboard
654
- ? await resolveDashboardPortWithFallback(requestedDashboardPort, MAX_DASHBOARD_PORT_ATTEMPTS, deps)
655
- : requestedDashboardPort;
656
- if (wantsDashboard && dashboardPort !== requestedDashboardPort) {
657
- deps.warn(`Requested dashboard port ${requestedDashboardPort} is already in use; active dashboard will run on ${dashboardPort}.`);
658
- }
624
+ const basePort = resolveBrokerBasePort(deps);
659
625
  deps.fs.mkdirSync(paths.dataDir, { recursive: true });
660
- let existingPid = readBrokerPid(paths.dataDir, deps);
661
- let ownsBroker = true;
626
+ const existingPid = readBrokerPid(paths.dataDir, deps);
662
627
  let relay = null;
663
- let apiPort = dashboardPort + 1;
664
- let dashboardProcess;
665
628
  let fleetSidecar;
666
- const dashboardVerbose = Boolean(options.verbose) || isDebugLikeLoggingEnabled(deps);
667
629
  let shuttingDown = false;
668
630
  let sigintCount = 0;
669
631
  let shutdownPromise;
@@ -676,7 +638,7 @@ export async function runUpCommand(options, deps) {
676
638
  else {
677
639
  shutdownPromise = (async () => {
678
640
  await fleetSidecar?.stop();
679
- await shutdownUpResources(relay, dashboardProcess, paths.dataDir, deps, ownsBroker);
641
+ await shutdownUpResources(relay, paths.dataDir, deps);
680
642
  })();
681
643
  }
682
644
  }
@@ -685,93 +647,12 @@ export async function runUpCommand(options, deps) {
685
647
  try {
686
648
  if (existingPid !== null) {
687
649
  if (isProcessRunning(existingPid, deps)) {
688
- if (!shouldReuseExistingBroker || !wantsDashboard) {
689
- deps.error(`Broker already running for this project (pid: ${existingPid}).`);
690
- deps.error('Run `agent-relay status` to inspect it, then `agent-relay down` to stop it.');
691
- deps.exit(1);
692
- return;
693
- }
694
- apiPort = await discoverExistingBrokerApiPort(Math.max(1, apiPort), MAX_API_PORT_ATTEMPTS, deps);
695
- const reusableRelay = await deps.createRelay(paths.projectRoot, apiPort);
696
- try {
697
- await reusableRelay.getStatus();
698
- }
699
- catch {
700
- await reusableRelay.shutdown().catch(() => undefined);
701
- deps.warn(`Broker already running for this project (pid: ${existingPid}), but API port ${apiPort} is not responding.`);
702
- deps.warn('Treating this as stale broker state and starting a fresh broker.');
703
- safeUnlink(path.join(paths.dataDir, CONNECTION_FILENAME), deps);
704
- existingPid = null;
705
- }
706
- if (existingPid === null) {
707
- // fallthrough and start a fresh broker
708
- }
709
- else {
710
- relay = reusableRelay;
711
- ownsBroker = false;
712
- const dashboardRelayUrl = resolveDashboardRelayUrl(apiPort, deps);
713
- const expectedRelayUrl = getDefaultDashboardRelayUrl(apiPort);
714
- if (deps.env.RELAY_DASHBOARD_RELAY_URL &&
715
- deps.env.RELAY_DASHBOARD_RELAY_URL.trim() !== '' &&
716
- deps.env.RELAY_DASHBOARD_RELAY_URL.trim() !== expectedRelayUrl) {
717
- deps.warn(`RELAY_DASHBOARD_RELAY_URL is set to ${deps.env.RELAY_DASHBOARD_RELAY_URL.trim()}, ` +
718
- `but this session computed ${expectedRelayUrl}.`);
719
- }
720
- deps.log(`Relay API: ${dashboardRelayUrl}`);
721
- if (dashboardVerbose) {
722
- deps.log(`[dashboard] relay target resolved from config: ${dashboardRelayUrl}`);
723
- }
724
- deps.log(`Project: ${paths.projectRoot}`);
725
- deps.log('Mode: broker (stdio)');
726
- deps.log(`Workspace Key: ${relay.workspaceKey ?? 'unknown'}`);
727
- deps.log('Broker already running for this project; reusing existing broker.');
728
- if (wantsDashboard) {
729
- const brokerConn = readBrokerConnectionFromFs(deps.fs, paths.dataDir);
730
- const dashboardStart = await startDashboardWithFallback(paths, dashboardPort, apiPort, deps, dashboardVerbose, relay?.workspaceKey, brokerConn?.api_key);
731
- dashboardProcess = dashboardStart.process;
732
- const startedDashboardPort = dashboardStart.port;
733
- if (startedDashboardPort === null) {
734
- deps.warn('Dashboard failed to start. Check dashboard error logs above.');
735
- }
736
- else {
737
- if (startedDashboardPort !== dashboardPort) {
738
- deps.warn(`Dashboard port ${dashboardPort} was already in use, so dashboard started on ${startedDashboardPort}`);
739
- }
740
- const dashboardPath = normalizeDashboardPath(options.dashboardPath);
741
- const dashboardUrl = dashboardPath
742
- ? `http://localhost:${startedDashboardPort}${dashboardPath}`
743
- : `http://localhost:${startedDashboardPort}`;
744
- deps.log(`Dashboard: ${dashboardUrl}`);
745
- waitForDashboard(startedDashboardPort, dashboardProcess, deps, () => shuttingDown).catch(() => { });
746
- }
747
- }
748
- fleetSidecar = startImplicitLocalFleetSidecar(paths, relay, options, deps);
749
- deps.onSignal('SIGINT', async () => {
750
- sigintCount += 1;
751
- if (shuttingDown) {
752
- if (sigintCount >= 2) {
753
- deps.warn('Force exiting...');
754
- deps.exit(130);
755
- }
756
- return;
757
- }
758
- deps.log('\nStopping...');
759
- await shutdownOnce();
760
- deps.exit(0);
761
- });
762
- deps.onSignal('SIGTERM', async () => {
763
- if (shuttingDown) {
764
- return;
765
- }
766
- await shutdownOnce();
767
- deps.exit(0);
768
- });
769
- await deps.holdOpen();
770
- return;
771
- }
650
+ deps.error(`Broker already running for this project (pid: ${existingPid}).`);
651
+ deps.error('Run `agent-relay status` to inspect it, then `agent-relay down` to stop it.');
652
+ deps.exit(1);
653
+ return;
772
654
  }
773
655
  safeUnlink(path.join(paths.dataDir, CONNECTION_FILENAME), deps);
774
- existingPid = null;
775
656
  }
776
657
  // If a workspace key was explicitly provided, inject it into the environment
777
658
  // for both current tools and older compatibility paths.
@@ -782,63 +663,25 @@ export async function runUpCommand(options, deps) {
782
663
  // Kill any orphaned broker processes for this project that lost their PID
783
664
  // files (e.g. user deleted .agentworkforce/relay/ while broker was running).
784
665
  await killOrphanedBrokerProcesses(paths.projectRoot, deps);
785
- const started = await startBrokerWithPortFallback(paths, dashboardPort, deps, options.brokerName);
666
+ const started = await startBrokerWithPortFallback(paths, basePort, deps, options.brokerName);
786
667
  relay = started.relay;
787
- apiPort = started.apiPort;
788
- const dashboardRelayUrl = resolveDashboardRelayUrl(apiPort, deps);
789
- const expectedRelayUrl = getDefaultDashboardRelayUrl(apiPort);
790
- if (deps.env.RELAY_DASHBOARD_RELAY_URL &&
791
- deps.env.RELAY_DASHBOARD_RELAY_URL.trim() !== '' &&
792
- deps.env.RELAY_DASHBOARD_RELAY_URL.trim() !== expectedRelayUrl) {
793
- deps.warn(`RELAY_DASHBOARD_RELAY_URL is set to ${deps.env.RELAY_DASHBOARD_RELAY_URL.trim()}, ` +
794
- `but this session computed ${expectedRelayUrl}.`);
795
- }
796
- deps.log(`Relay API: ${dashboardRelayUrl}`);
797
- if (dashboardVerbose) {
798
- deps.log(`[dashboard] relay target resolved from config: ${dashboardRelayUrl}`);
799
- }
668
+ deps.log(`Relay API: http://localhost:${started.apiPort}`);
800
669
  deps.log(`Project: ${paths.projectRoot}`);
801
670
  deps.log('Mode: broker (stdio)');
802
671
  deps.log(`Workspace Key: ${relay.workspaceKey ?? 'unknown'}`);
803
672
  deps.log('Broker started.');
804
- if (wantsDashboard) {
805
- const brokerConn = readBrokerConnectionFromFs(deps.fs, paths.dataDir);
806
- const dashboardStart = await startDashboardWithFallback(paths, dashboardPort, apiPort, deps, dashboardVerbose, relay?.workspaceKey, brokerConn?.api_key);
807
- dashboardProcess = dashboardStart.process;
808
- const startedDashboardPort = dashboardStart.port;
809
- if (startedDashboardPort === null) {
810
- deps.warn('Dashboard failed to start. Check dashboard error logs above.');
811
- }
812
- else {
813
- if (startedDashboardPort !== dashboardPort) {
814
- deps.warn(`Dashboard port ${dashboardPort} was already in use, so dashboard started on ${startedDashboardPort}`);
815
- }
816
- const dashboardPath = normalizeDashboardPath(options.dashboardPath);
817
- const dashboardUrl = dashboardPath
818
- ? `http://localhost:${startedDashboardPort}${dashboardPath}`
819
- : `http://localhost:${startedDashboardPort}`;
820
- deps.log(`Dashboard: ${dashboardUrl}`);
821
- // Verify the dashboard is actually reachable (non-blocking)
822
- waitForDashboard(startedDashboardPort, dashboardProcess, deps, () => shuttingDown).catch(() => { });
823
- }
824
- }
825
673
  const teamsConfig = deps.loadTeamsConfig(paths.projectRoot);
826
674
  fleetSidecar = startImplicitLocalFleetSidecar(paths, relay, options, deps, teamsConfig);
827
675
  const shouldSpawn = options.spawn === true ? true : options.spawn === false ? false : Boolean(teamsConfig?.autoSpawn);
828
676
  if (shouldSpawn && teamsConfig && teamsConfig.agents.length > 0) {
829
- if (wantsDashboard) {
830
- deps.warn('Warning: auto-spawn from teams.json is skipped when dashboard mode manages the broker');
831
- }
832
- else {
833
- for (const agent of teamsConfig.agents) {
834
- await relay.spawn({
835
- name: agent.name,
836
- cli: agent.cli,
837
- channels: ['general'],
838
- task: agent.task ?? '',
839
- team: teamsConfig.team,
840
- });
841
- }
677
+ for (const agent of teamsConfig.agents) {
678
+ await relay.spawn({
679
+ name: agent.name,
680
+ cli: agent.cli,
681
+ channels: ['general'],
682
+ task: agent.task ?? '',
683
+ team: teamsConfig.team,
684
+ });
842
685
  }
843
686
  }
844
687
  else if (options.spawn === true && !teamsConfig) {
@@ -869,15 +712,12 @@ export async function runUpCommand(options, deps) {
869
712
  catch (err) {
870
713
  await shutdownOnce();
871
714
  const message = toErrorMessage(err);
872
- const stage = classifyBrokerStartStage(err, message, wantsDashboard);
715
+ const stage = classifyBrokerStartStage(err, message);
873
716
  track('broker_start_failed', {
874
717
  stage,
875
718
  error_class: classifyBrokerStartError(err),
876
719
  });
877
- if (errorCode(err) === 'EADDRINUSE' && wantsDashboard) {
878
- deps.error(`Dashboard port ${dashboardPort} is already in use.`);
879
- }
880
- else if (isBrokerAlreadyRunningError(message)) {
720
+ if (isBrokerAlreadyRunningError(message)) {
881
721
  reportAlreadyRunningError(message, paths.dataDir, deps);
882
722
  }
883
723
  else {