@agent-link/agent 0.1.299 → 0.1.301

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 (40) hide show
  1. package/dist/bootstrap-delegator.js +7 -1
  2. package/dist/bootstrap-delegator.js.map +1 -1
  3. package/dist/cli.js +55 -2
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config.d.ts +8 -0
  6. package/dist/config.js +3 -20
  7. package/dist/config.js.map +1 -1
  8. package/dist/connection.d.ts +20 -0
  9. package/dist/connection.js +38 -3
  10. package/dist/connection.js.map +1 -1
  11. package/dist/external-upgrade.d.ts +1 -0
  12. package/dist/external-upgrade.js +13 -7
  13. package/dist/external-upgrade.js.map +1 -1
  14. package/dist/index.js +126 -8
  15. package/dist/index.js.map +1 -1
  16. package/dist/launcher-manager.d.ts +7 -1
  17. package/dist/launcher-manager.js +36 -2
  18. package/dist/launcher-manager.js.map +1 -1
  19. package/dist/local-control.d.ts +3 -0
  20. package/dist/local-control.js.map +1 -1
  21. package/dist/process-identity.js +1 -1
  22. package/dist/process-identity.js.map +1 -1
  23. package/dist/upgrade-job.d.ts +25 -1
  24. package/dist/upgrade-job.js +89 -8
  25. package/dist/upgrade-job.js.map +1 -1
  26. package/dist/upgrade-lock.d.ts +2 -1
  27. package/dist/upgrade-lock.js +51 -6
  28. package/dist/upgrade-lock.js.map +1 -1
  29. package/dist/upgrade-operations.d.ts +20 -0
  30. package/dist/upgrade-operations.js +538 -0
  31. package/dist/upgrade-operations.js.map +1 -0
  32. package/dist/worker-host.d.ts +1 -0
  33. package/dist/worker-host.js +14 -1
  34. package/dist/worker-host.js.map +1 -1
  35. package/dist/worker-upgrade-cli-result.d.ts +10 -0
  36. package/dist/worker-upgrade-cli-result.js +38 -0
  37. package/dist/worker-upgrade-cli-result.js.map +1 -0
  38. package/launcher/launcher.cjs +518 -4
  39. package/package.json +1 -1
  40. package/worker/worker.cjs +730 -39
@@ -1 +1 @@
1
- {"version":3,"file":"external-upgrade.js","sourceRoot":"","sources":["../src/external-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,cAAc,EACd,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,GAE7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAM,CAAC;AACrC,MAAM,eAAe,GAA2C,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAqB7F,SAAS,aAAa,CAAC,IAAoB,EAAE,KAAqB;IAChE,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;WAChC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;WAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe,EAAE,MAAc;IAC7D,MAAM,MAAM,GAAG,iBAAiB,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAAa,EACb,QAAgD,EAChD,SAAiB,EACjB,KAA8C;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,IAAI,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,OAAqB,EAAE,MAAsB;IAKpE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/F,IACE,OAAO,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI;WAClC,OAAO,CAAC,YAAY,CAAC,eAAe,KAAK,MAAM,CAAC,OAAO,EAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClE,IAAI,CAAC,oBAAoB;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACnG,MAAM,cAAc,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAClD,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAA+B;IAE/B,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,2BAA2B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,UAAU,GAA4B,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAC7C,MAAM,sBAAsB,GAAG,iBAAiB,EAAE,CAAC;QACnD,IAAI,CAAC,eAAe,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,2BAA2B,CAAC,eAAe,CAAC,CAAC;QAC7C,2BAA2B,CAAC,sBAAsB,CAAC,CAAC;QACpD,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CACb,UAAU,eAAe,CAAC,OAAO,+BAA+B,eAAe,CAAC,OAAO,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/E,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,wBAAwB,CAAC;YACnC,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,UAAU,EAAE;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,eAAe,CAAC,OAAO;YACtC,aAAa,EAAE,eAAe,CAAC,OAAO;YACtC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;YAC7B,cAAc,EAAE,eAAe,CAAC,cAAc;YAC9C,gBAAgB,EAAE,uBAAuB,CAAC,eAAe,CAAC,UAAU,CAAC;YACrE,UAAU,EAAE;gBACV,GAAG,EAAE,OAAO,CAAC,GAAI;gBACjB,oBAAoB,EAAE,eAAe,CAAC,oBAAoB;gBAC1D,iBAAiB,EAAE,OAAO,CAAC,iBAAkB;gBAC7C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9E;YACD,YAAY,EAAE,QAAQ;YACtB,eAAe;YACf,eAAe;YACf,sBAAsB;YACtB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YAC3B,gBAAgB,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,CAAC,WAAW,EAAE;YACjF,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,IAAI,qBAAqB,EAAE,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;QACrG,MAAM,UAAU,GAAG,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;QAChF,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/D,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACvD,UAAU,GAAG,kBAAkB,CAAC;YAC9B,KAAK;YACL,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC;YACzC,UAAU;YACV,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;SAC/C,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3B,MAAM,UAAU,CAAC,OAAO,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAC7C,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,YAAY,CAChB,KAAK,EACL;YACE,cAAc;YACd,oBAAoB;YACpB,mBAAmB;YACnB,WAAW;YACX,iBAAiB;YACjB,gBAAgB;SACjB,EACD,OAAO,CAAC,gBAAgB,IAAI,MAAM,EAClC,KAAK,CACN,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,KAAK,KAAK;YACrD,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAC/B,CAAC,CAAC,MAAM,YAAY,CAClB,KAAK,EACL,CAAC,gBAAgB,CAAC,EAClB,OAAO,CAAC,oBAAoB,IAAI,MAAM,EACtC,KAAK,CACN,CAAC;QACJ,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,eAAe,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBACtB,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,0DAA0D,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBACD,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;YACD,IAAI,MAAM,CAAC;YACX,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,0BAA0B,EAAE,IAAI,oBAAoB,EAAE,CAAC,MAAM,CAAC;gBACzE,CAAC;gBAAC,OAAO,SAAS,EAAE,CAAC;oBACnB,IAAK,SAAmC,CAAC,IAAI,KAAK,QAAQ;wBAAE,MAAM,SAAS,CAAC;oBAC5E,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBACxC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;wBAAE,MAAM,SAAS,CAAC;oBAC9D,eAAe,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,IAAI,qBAAqB,GAAG,eAAe,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAChF,IACE,CAAC,qBAAqB;mBACnB,MAAM;mBACN,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,iBAAiB,CAAC,EACvE,CAAC;gBACD,MAAM,QAAQ,GAAG,yBAAyB,CACxC,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,oBAAoB,CAC5B,CAAC;gBACF,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACnE,qBAAqB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YACD,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC/B,IAAI,UAAU;wBAAE,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;oBAC9E,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,IAAI,UAAU;wBAAE,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC7E,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,IAAI,kBAAkB,GAAG,IAAI,CAAC;YAC9B,IAAK,YAAsC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9D,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBAC9C,kBAAkB,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC;gBAAC,MAAM,CAAC;oBACP,kBAAkB,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CACX,0DAA0D,KAAK,IAAI;sBAChE,YAAsB,CAAC,OAAO,CAClC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"external-upgrade.js","sourceRoot":"","sources":["../src/external-upgrade.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createRequire } from 'module';
2
- import { randomUUID } from 'crypto';
2
+ import { createHash, randomUUID } from 'crypto';
3
3
  /** Enable timestamped console output — call once at startup for daemon/log mode. */
4
4
  export function enableLogTimestamps() {
5
5
  for (const [method, level] of [['log', 'INFO'], ['warn', 'WARN'], ['error', 'ERROR'], ['info', 'INFO']]) {
@@ -10,16 +10,38 @@ export function enableLogTimestamps() {
10
10
  // Auto-enable timestamps when output is redirected (daemon mode / nohup)
11
11
  if (!process.stdout.isTTY)
12
12
  enableLogTimestamps();
13
- import { saveRuntimeState, clearRuntimePid, writePidFile, encodeBase64Url } from './config.js';
14
- import { beginShutdown, connect, disconnect, getConnectionStatus, getE2EKey, sendAndFlush, } from './connection.js';
13
+ import { saveRuntimeState, clearRuntimePid, writePidFile, encodeBase64Url, loadRuntimeState, } from './config.js';
14
+ import { beginShutdown, connectRelay, disconnect, getConnectionStatus, getE2EKey, initializeLocalConnection, sendAndFlush, } from './connection.js';
15
15
  import { shutdownScheduler } from './scheduler.js';
16
16
  import { createLocalControlService } from './local-control.js';
17
17
  import { startLocalControlServer } from './local-control-http.js';
18
18
  import { createShutdownCoordinator } from './shutdown-coordinator.js';
19
19
  import { authorizeWorkerUpgradeShutdown } from './worker-shutdown-authorization.js';
20
+ import { repairExternalUpgrade, resumeInterruptedUpgrade, runUpgradeRetention, } from './upgrade-operations.js';
21
+ import { loadExternalUpgradeJob } from './upgrade-job.js';
20
22
  const require = createRequire(import.meta.url);
21
23
  const qrcode = require('qrcode-terminal');
22
24
  const processInstanceId = randomUUID();
25
+ function validatedRestoredSessionRegistration(runtime, upgradeJobId) {
26
+ const registration = runtime?.sessionRegistration;
27
+ if (!runtime || !registration || !upgradeJobId || runtime.upgradeJobId !== upgradeJobId) {
28
+ return undefined;
29
+ }
30
+ try {
31
+ const job = loadExternalUpgradeJob(upgradeJobId);
32
+ const sessionUrlHash = createHash('sha256').update(runtime.sessionUrl).digest('hex');
33
+ if (registration.previousSessionId !== job.oldRuntime.sessionId
34
+ || registration.sessionId !== runtime.sessionId
35
+ || registration.sessionUrlHash !== sessionUrlHash
36
+ || !Number.isFinite(Date.parse(registration.registeredAt))) {
37
+ return undefined;
38
+ }
39
+ return registration;
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ }
23
45
  /** Highlight a URL with bold + underline ANSI codes if stdout supports color. */
24
46
  function highlightUrl(url) {
25
47
  if (!process.stdout.isTTY)
@@ -36,10 +58,8 @@ export async function start(config, daemon = false, pidFile, launchSpecPath, lau
36
58
  .replace(/^wss:/, 'https:')
37
59
  .replace(/^ws:/, 'http:');
38
60
  try {
39
- const sessionId = await connect(config);
40
- const e2eKey = getE2EKey();
41
- const e2eFragment = e2eKey ? `#/?k=${encodeBase64Url(e2eKey)}` : '';
42
- const sessionUrl = `${httpBase}/${config.entra ? 'ms' : 's'}/${sessionId}${e2eFragment}`;
61
+ const restoredRuntime = upgradeJobId ? loadRuntimeState() : null;
62
+ const restoredSessionRegistration = validatedRestoredSessionRegistration(restoredRuntime, upgradeJobId);
43
63
  const startedAt = new Date().toISOString();
44
64
  let controlServer = null;
45
65
  const shutdownCoordinator = createShutdownCoordinator({
@@ -78,7 +98,89 @@ export async function start(config, daemon = false, pidFile, launchSpecPath, lau
78
98
  requestShutdown: (request) => shutdownCoordinator.request(request),
79
99
  authorizeWorkerUpgradeShutdown,
80
100
  });
81
- controlServer = await startLocalControlServer(controlService);
101
+ initializeLocalConnection(config);
102
+ let recoveryTimer;
103
+ if (upgradeJobId) {
104
+ let resumeCooldownUntil = 0;
105
+ let recoveryBusy = false;
106
+ recoveryTimer = setInterval(async () => {
107
+ if (recoveryBusy)
108
+ return;
109
+ if (Date.now() < resumeCooldownUntil)
110
+ return;
111
+ recoveryBusy = true;
112
+ try {
113
+ if (loadExternalUpgradeJob(upgradeJobId).phase === 'repair-starting') {
114
+ await repairExternalUpgrade();
115
+ if (recoveryTimer)
116
+ clearInterval(recoveryTimer);
117
+ return;
118
+ }
119
+ const result = resumeInterruptedUpgrade(upgradeJobId);
120
+ if (result === 'terminal' && recoveryTimer)
121
+ clearInterval(recoveryTimer);
122
+ if (result === 'started')
123
+ resumeCooldownUntil = Date.now() + 15_000;
124
+ }
125
+ catch (error) {
126
+ console.warn(`[AgentLink] Upgrade recovery watchdog: ${error.message}`);
127
+ }
128
+ finally {
129
+ recoveryBusy = false;
130
+ }
131
+ }, 5000);
132
+ recoveryTimer.unref();
133
+ }
134
+ // An upgrade target must become locally observable even when the relay or
135
+ // Entra is unavailable. The preserved session is replaced after a
136
+ // successful registration, but is sufficient for mandatory local health.
137
+ if (upgradeJobId
138
+ && restoredRuntime?.sessionId
139
+ && restoredRuntime.sessionUrl
140
+ && restoredRuntime.server === config.server) {
141
+ controlServer = await startLocalControlServer(controlService);
142
+ saveRuntimeState({
143
+ pid: process.pid,
144
+ processInstanceId,
145
+ sessionId: restoredRuntime.sessionId,
146
+ sessionUrl: restoredRuntime.sessionUrl,
147
+ server: config.server,
148
+ name: config.name,
149
+ dir: config.dir,
150
+ startedAt,
151
+ agent: config.agent,
152
+ launchSpecPath,
153
+ launchSpecDigest,
154
+ upgradeJobId,
155
+ ...(restoredSessionRegistration
156
+ ? { sessionRegistration: restoredSessionRegistration }
157
+ : {}),
158
+ controlPlane: controlServer.discovery,
159
+ ...(process.env.AGENTLINK_VERSION_STORE_ACTIVE === '1'
160
+ && process.env.AGENTLINK_SELECTED_VERSION
161
+ ? {
162
+ versionStore: {
163
+ active: true,
164
+ selectedVersion: process.env.AGENTLINK_SELECTED_VERSION,
165
+ selectedIntegrity: process.env.AGENTLINK_SELECTED_INTEGRITY,
166
+ },
167
+ }
168
+ : {}),
169
+ });
170
+ }
171
+ const connection = connectRelay(config);
172
+ const sessionId = await connection;
173
+ const e2eKey = getE2EKey();
174
+ const e2eFragment = e2eKey ? `#/?k=${encodeBase64Url(e2eKey)}` : '';
175
+ const sessionUrl = `${httpBase}/${config.entra ? 'ms' : 's'}/${sessionId}${e2eFragment}`;
176
+ controlServer ??= await startLocalControlServer(controlService);
177
+ const sessionRegistration = getConnectionStatus().sessionRegistration
178
+ ?? (restoredSessionRegistration
179
+ && restoredSessionRegistration.sessionId === sessionId
180
+ && restoredSessionRegistration.sessionUrlHash
181
+ === createHash('sha256').update(sessionUrl).digest('hex')
182
+ ? restoredSessionRegistration
183
+ : null);
82
184
  // Persist runtime state so `agentlink status` can discover the exact process.
83
185
  saveRuntimeState({
84
186
  pid: process.pid,
@@ -93,6 +195,7 @@ export async function start(config, daemon = false, pidFile, launchSpecPath, lau
93
195
  launchSpecPath,
94
196
  launchSpecDigest,
95
197
  upgradeJobId,
198
+ ...(sessionRegistration ? { sessionRegistration } : {}),
96
199
  controlPlane: controlServer.discovery,
97
200
  ...(process.env.AGENTLINK_VERSION_STORE_ACTIVE === '1'
98
201
  && process.env.AGENTLINK_SELECTED_VERSION
@@ -100,10 +203,25 @@ export async function start(config, daemon = false, pidFile, launchSpecPath, lau
100
203
  versionStore: {
101
204
  active: true,
102
205
  selectedVersion: process.env.AGENTLINK_SELECTED_VERSION,
206
+ selectedIntegrity: process.env.AGENTLINK_SELECTED_INTEGRITY,
103
207
  },
104
208
  }
105
209
  : {}),
106
210
  });
211
+ const retentionTimer = setTimeout(() => {
212
+ const status = getConnectionStatus();
213
+ if (shutdownCoordinator.status().phase === 'idle'
214
+ && status.acceptingWork
215
+ && status.backendReady) {
216
+ try {
217
+ runUpgradeRetention();
218
+ }
219
+ catch (error) {
220
+ console.warn(`[AgentLink] Upgrade retention skipped: ${error.message}`);
221
+ }
222
+ }
223
+ }, 5000);
224
+ retentionTimer.unref();
107
225
  console.log('');
108
226
  console.log(`[AgentLink] Session URL: ${highlightUrl(sessionUrl)}`);
109
227
  qrcode.generate(sessionUrl, { small: true }, (code) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const LAUNCHER_PROTOCOL_VERSION = 1;
1
+ export declare const LAUNCHER_PROTOCOL_VERSION = 2;
2
2
  export declare function getLauncherDirectory(): string;
3
3
  export declare function getStableLauncherPath(): string;
4
4
  export declare function getLauncherProtocolPath(): string;
@@ -7,3 +7,9 @@ export declare function installStableLauncher(sourcePath?: string): string;
7
7
  export declare function validateStableLauncher(): string;
8
8
  export declare function getAdoptedLauncherPath(): string | null;
9
9
  export declare function runStableLauncher(launchSpecPath: string, launcherPath?: string): void;
10
+ export declare function spawnStableLauncher(launchSpecPath: string, options?: {
11
+ upgradeJobId?: string;
12
+ launcherPath?: string;
13
+ onSpawn?: (pid: number) => void;
14
+ recoveryOwner?: 'repair' | 'worker';
15
+ }): number;
@@ -1,10 +1,10 @@
1
1
  import { chmodSync, copyFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync, } from 'fs';
2
2
  import { dirname, join, resolve } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
- import { execFileSync } from 'child_process';
4
+ import { execFileSync, spawn } from 'child_process';
5
5
  import { CONFIG_DIR } from './config.js';
6
6
  import { isVersionStoreAdopted, loadAdoptionState, validateVersionInstallation, } from './version-store.js';
7
- export const LAUNCHER_PROTOCOL_VERSION = 1;
7
+ export const LAUNCHER_PROTOCOL_VERSION = 2;
8
8
  export function getLauncherDirectory() {
9
9
  return join(CONFIG_DIR, 'launcher');
10
10
  }
@@ -81,4 +81,38 @@ export function runStableLauncher(launchSpecPath, launcherPath = validateStableL
81
81
  env: { ...process.env, AGENTLINK_HOME: CONFIG_DIR },
82
82
  });
83
83
  }
84
+ export function spawnStableLauncher(launchSpecPath, options = {}) {
85
+ const launcherPath = options.launcherPath ?? validateStableLauncher();
86
+ const args = [
87
+ launcherPath,
88
+ 'start',
89
+ '--launch-spec',
90
+ resolve(launchSpecPath),
91
+ ...(options.upgradeJobId ? ['--upgrade-job', options.upgradeJobId] : []),
92
+ ];
93
+ const launcherEnvironment = {
94
+ ...process.env,
95
+ AGENTLINK_HOME: CONFIG_DIR,
96
+ };
97
+ delete launcherEnvironment.AGENTLINK_RECOVERY_OWNER;
98
+ delete launcherEnvironment.AGENTLINK_UPGRADE_JOB;
99
+ if (options.upgradeJobId) {
100
+ launcherEnvironment.AGENTLINK_UPGRADE_JOB = options.upgradeJobId;
101
+ if (options.recoveryOwner) {
102
+ launcherEnvironment.AGENTLINK_RECOVERY_OWNER = options.recoveryOwner;
103
+ }
104
+ }
105
+ const child = spawn(process.execPath, args, {
106
+ cwd: dirname(resolve(launchSpecPath)),
107
+ detached: true,
108
+ stdio: 'ignore',
109
+ windowsHide: true,
110
+ env: launcherEnvironment,
111
+ });
112
+ if (!child.pid)
113
+ throw new Error('Stable launcher did not return a process ID');
114
+ options.onSpawn?.(child.pid);
115
+ child.unref();
116
+ return child.pid;
117
+ }
84
118
  //# sourceMappingURL=launcher-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"launcher-manager.js","sourceRoot":"","sources":["../src/launcher-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launcher-manager.js","sourceRoot":"","sources":["../src/launcher-manager.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,9 @@ export interface ConnectionStatus {
28
28
  sessionId: string | null;
29
29
  workDir: string;
30
30
  backend: string;
31
+ backendReady?: boolean;
32
+ entraReady?: boolean;
33
+ sessionRestored?: boolean;
31
34
  conversations: number;
32
35
  }
33
36
  export interface LocalControlStatus {
@@ -1 +1 @@
1
- {"version":3,"file":"local-control.js","sourceRoot":"","sources":["../src/local-control.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,aAAa;IACb,aAAa;IACb,oBAAoB;IACpB,yBAAyB;CACjB,CAAC;AA2DX,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAExB;IACA;IAFlB,YACkB,MAAc,EACd,IAAY,EAC5B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAI5B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAkBD,MAAM,UAAU,yBAAyB,CAAC,IAA6B;IACrE,OAAO;QACL,MAAM;YACJ,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,yBAAyB;gBACrC,YAAY,EAAE,0BAA0B;aACzC,CAAC;QACJ,CAAC;QAED,MAAM;YACJ,OAAO;gBACL,UAAU,EAAE,yBAAyB;gBACrC,YAAY,EAAE,0BAA0B;gBACxC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAClC,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACtC,MAAM,EAAE;oBACN,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAC1B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;oBACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ;oBACpC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;oBACjC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI;oBACxC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAClD;aACF,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,OAAO;YACd,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC7E,MAAM,IAAI,iBAAiB,CACzB,GAAG,EACH,cAAc,EACd,gCAAgC,OAAO,CAAC,WAAW,sBAAsB,OAAO,CAAC,GAAG,EAAE,CACvF,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC;oBACzC,MAAM,IAAI,iBAAiB,CACzB,GAAG,EACH,+BAA+B,EAC/B,wDAAwD,CACzD,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,iBAAiB,CACzB,GAAG,EACH,yBAAyB,EACxB,KAAe,CAAC,OAAO,CACzB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"local-control.js","sourceRoot":"","sources":["../src/local-control.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,aAAa;IACb,aAAa;IACb,oBAAoB;IACpB,yBAAyB;CACjB,CAAC;AA8DX,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAExB;IACA;IAFlB,YACkB,MAAc,EACd,IAAY,EAC5B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAI5B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAkBD,MAAM,UAAU,yBAAyB,CAAC,IAA6B;IACrE,OAAO;QACL,MAAM;YACJ,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,yBAAyB;gBACrC,YAAY,EAAE,0BAA0B;aACzC,CAAC;QACJ,CAAC;QAED,MAAM;YACJ,OAAO;gBACL,UAAU,EAAE,yBAAyB;gBACrC,YAAY,EAAE,0BAA0B;gBACxC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAClC,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACtC,MAAM,EAAE;oBACN,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAC1B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;oBACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ;oBACpC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;oBACjC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI;oBACxC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAClD;aACF,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,OAAO;YACd,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC7E,MAAM,IAAI,iBAAiB,CACzB,GAAG,EACH,cAAc,EACd,gCAAgC,OAAO,CAAC,WAAW,sBAAsB,OAAO,CAAC,GAAG,EAAE,CACvF,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC;oBACzC,MAAM,IAAI,iBAAiB,CACzB,GAAG,EACH,+BAA+B,EAC/B,wDAAwD,CACzD,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,iBAAiB,CACzB,GAAG,EACH,yBAAyB,EACxB,KAAe,CAAC,OAAO,CACzB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -18,7 +18,7 @@ export function lookupProcessStartIdentity(pid, deps = {}) {
18
18
  const execFile = deps.execFile ?? ((file, args) => execFileSync(file, args, {
19
19
  encoding: 'utf8',
20
20
  windowsHide: true,
21
- timeout: 3000,
21
+ timeout: process.platform === 'win32' ? 10_000 : 3000,
22
22
  }));
23
23
  if (platform === 'linux') {
24
24
  let stat;
@@ -1 +1 @@
1
- {"version":3,"file":"process-identity.js","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-identity.js","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export interface UpgradeJob {
14
14
  error?: string;
15
15
  }
16
16
  export declare const EXTERNAL_UPGRADE_PROTOCOL_VERSION = 1;
17
- export type ExternalUpgradePhase = 'created' | 'worker-starting' | 'worker-ready' | 'shutdown-requested' | 'old-agent-stopped' | 'switching' | 'target-starting' | 'target-started' | 'failed';
17
+ export type ExternalUpgradePhase = 'created' | 'downloading' | 'verifying' | 'staging' | 'self-checking' | 'worker-starting' | 'worker-ready' | 'shutdown-requested' | 'old-agent-stopped' | 'switching' | 'target-starting' | 'target-local-health' | 'relay-pending' | 'rolling-back' | 'rollback-starting' | 'rollback-local-health' | 'repair-starting' | 'completed' | 'rolled-back' | 'repair-required' | 'failed';
18
18
  export interface ProcessIdentity {
19
19
  pid: number;
20
20
  processStartIdentity: string;
@@ -38,6 +38,18 @@ export interface ExternalUpgradeJob {
38
38
  worker?: ProcessIdentity & {
39
39
  protocolVersion: 1;
40
40
  };
41
+ targetLauncher?: ProcessIdentity;
42
+ rollbackLauncher?: ProcessIdentity;
43
+ targetRuntime?: ProcessIdentity & {
44
+ processInstanceId: string;
45
+ };
46
+ rollbackRuntime?: ProcessIdentity & {
47
+ processInstanceId: string;
48
+ };
49
+ repairLauncher?: ProcessIdentity;
50
+ repairRuntime?: ProcessIdentity & {
51
+ processInstanceId: string;
52
+ };
41
53
  restartOwner: 'worker';
42
54
  sourceSelection: VersionPointer;
43
55
  targetSelection: VersionPointer;
@@ -48,6 +60,8 @@ export interface ExternalUpgradeJob {
48
60
  updatedAt: string;
49
61
  error: string | null;
50
62
  }
63
+ export declare const EXTERNAL_TERMINAL_PHASES: readonly ExternalUpgradePhase[];
64
+ export declare function isExternalUpgradeTerminal(phase: ExternalUpgradePhase): boolean;
51
65
  export declare function getUpgradeRoot(): string;
52
66
  export declare function getExternalUpgradeJobDirectory(jobId: string): string;
53
67
  export declare function getExternalUpgradeJobPath(jobId: string): string;
@@ -70,7 +84,17 @@ export declare function createExternalUpgradeJob(input: Omit<ExternalUpgradeJob,
70
84
  export declare function loadExternalUpgradeJob(jobId: string): ExternalUpgradeJob;
71
85
  export declare function transitionExternalUpgradeJob(jobId: string, phase: ExternalUpgradePhase, options?: {
72
86
  worker?: ExternalUpgradeJob['worker'];
87
+ targetLauncher?: ExternalUpgradeJob['targetLauncher'];
88
+ rollbackLauncher?: ExternalUpgradeJob['rollbackLauncher'];
89
+ targetRuntime?: ExternalUpgradeJob['targetRuntime'];
90
+ rollbackRuntime?: ExternalUpgradeJob['rollbackRuntime'];
91
+ repairLauncher?: ExternalUpgradeJob['repairLauncher'];
92
+ repairRuntime?: ExternalUpgradeJob['repairRuntime'];
93
+ lockNonce?: string;
94
+ clearRepairLauncher?: boolean;
95
+ clearRepairRuntime?: boolean;
73
96
  error?: string | null;
74
97
  now?: Date;
75
98
  }): ExternalUpgradeJob;
76
99
  export declare function appendExternalUpgradeEvent(job: ExternalUpgradeJob, code: string, detail?: string): void;
100
+ export declare function markExternalUpgradeRepaired(jobId: string, now?: Date): ExternalUpgradeJob;
@@ -1,5 +1,5 @@
1
1
  import { appendFileSync, chmodSync, closeSync, existsSync, fsyncSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, writeFileSync, } from 'fs';
2
- import { dirname, join, resolve } from 'path';
2
+ import { dirname, isAbsolute, join, relative, resolve } from 'path';
3
3
  import { randomUUID } from 'crypto';
4
4
  import { CONFIG_DIR } from './config.js';
5
5
  import { validateVersionPointer, } from './version-store.js';
@@ -7,16 +7,37 @@ export const EXTERNAL_UPGRADE_PROTOCOL_VERSION = 1;
7
7
  const UPGRADE_DIR = join(CONFIG_DIR, 'upgrades');
8
8
  const JOB_ID = /^[a-zA-Z0-9-]{1,128}$/;
9
9
  const TRANSITIONS = {
10
- created: ['worker-starting', 'failed'],
10
+ created: ['downloading', 'worker-starting', 'failed'],
11
+ downloading: ['verifying', 'failed'],
12
+ verifying: ['staging', 'failed'],
13
+ staging: ['self-checking', 'failed'],
14
+ 'self-checking': ['worker-starting', 'failed'],
11
15
  'worker-starting': ['worker-ready', 'failed'],
12
16
  'worker-ready': ['shutdown-requested', 'failed'],
13
17
  'shutdown-requested': ['old-agent-stopped', 'failed'],
14
- 'old-agent-stopped': ['switching', 'failed'],
15
- switching: ['target-starting', 'failed'],
16
- 'target-starting': ['target-started', 'failed'],
17
- 'target-started': [],
18
+ 'old-agent-stopped': ['switching', 'rolling-back', 'repair-required'],
19
+ switching: ['target-starting', 'rolling-back', 'repair-required'],
20
+ 'target-starting': ['target-local-health', 'rolling-back', 'repair-required'],
21
+ 'target-local-health': ['relay-pending', 'completed', 'rolling-back', 'repair-required'],
22
+ 'relay-pending': ['completed', 'rolling-back', 'repair-required'],
23
+ 'rolling-back': ['rollback-starting', 'repair-required'],
24
+ 'rollback-starting': ['rollback-local-health', 'repair-required'],
25
+ 'rollback-local-health': ['rolled-back', 'repair-required'],
26
+ completed: [],
27
+ 'rolled-back': [],
28
+ 'repair-required': ['repair-starting'],
29
+ 'repair-starting': ['rolled-back', 'repair-required'],
18
30
  failed: [],
19
31
  };
32
+ export const EXTERNAL_TERMINAL_PHASES = [
33
+ 'completed',
34
+ 'rolled-back',
35
+ 'repair-required',
36
+ 'failed',
37
+ ];
38
+ export function isExternalUpgradeTerminal(phase) {
39
+ return EXTERNAL_TERMINAL_PHASES.includes(phase);
40
+ }
20
41
  function requireJobId(jobId) {
21
42
  if (!JOB_ID.test(jobId))
22
43
  throw new Error(`Invalid upgrade job ID: ${jobId}`);
@@ -151,6 +172,27 @@ export function validateExternalUpgradeJob(value) {
151
172
  if (worker && worker.protocolVersion !== EXTERNAL_UPGRADE_PROTOCOL_VERSION) {
152
173
  throw new Error('External upgrade worker protocolVersion is unsupported');
153
174
  }
175
+ const validateRuntimeIdentity = (value, field) => {
176
+ if (value === undefined)
177
+ return undefined;
178
+ const identity = validateProcessIdentity(value, field);
179
+ return {
180
+ ...identity,
181
+ processInstanceId: requireString(value.processInstanceId, `${field}.processInstanceId`),
182
+ };
183
+ };
184
+ const targetRuntime = validateRuntimeIdentity(job.targetRuntime, 'targetRuntime');
185
+ const rollbackRuntime = validateRuntimeIdentity(job.rollbackRuntime, 'rollbackRuntime');
186
+ const repairRuntime = validateRuntimeIdentity(job.repairRuntime, 'repairRuntime');
187
+ const targetLauncher = job.targetLauncher === undefined
188
+ ? undefined
189
+ : validateProcessIdentity(job.targetLauncher, 'targetLauncher');
190
+ const rollbackLauncher = job.rollbackLauncher === undefined
191
+ ? undefined
192
+ : validateProcessIdentity(job.rollbackLauncher, 'rollbackLauncher');
193
+ const repairLauncher = job.repairLauncher === undefined
194
+ ? undefined
195
+ : validateProcessIdentity(job.repairLauncher, 'repairLauncher');
154
196
  const error = job.error;
155
197
  if (error !== null && typeof error !== 'string') {
156
198
  throw new Error('External upgrade job error must be null or a string');
@@ -179,6 +221,12 @@ export function validateExternalUpgradeJob(value) {
179
221
  protocolVersion: 1,
180
222
  },
181
223
  } : {}),
224
+ ...(targetLauncher ? { targetLauncher } : {}),
225
+ ...(rollbackLauncher ? { rollbackLauncher } : {}),
226
+ ...(targetRuntime ? { targetRuntime } : {}),
227
+ ...(rollbackRuntime ? { rollbackRuntime } : {}),
228
+ ...(repairLauncher ? { repairLauncher } : {}),
229
+ ...(repairRuntime ? { repairRuntime } : {}),
182
230
  restartOwner: 'worker',
183
231
  sourceSelection: validateVersionPointer(job.sourceSelection),
184
232
  targetSelection: validateVersionPointer(job.targetSelection),
@@ -193,6 +241,11 @@ export function validateExternalUpgradeJob(value) {
193
241
  || validated.targetSelection.version !== validated.targetVersion) {
194
242
  throw new Error('External upgrade job selections do not match source/target versions');
195
243
  }
244
+ const launchSpecRelative = relative(validated.dataRoot, validated.launchSpecPath);
245
+ if (launchSpecRelative.startsWith('..')
246
+ || isAbsolute(launchSpecRelative)) {
247
+ throw new Error('External upgrade LaunchSpec must remain inside the data root');
248
+ }
196
249
  return validated;
197
250
  }
198
251
  export function createExternalUpgradeJob(input) {
@@ -233,13 +286,25 @@ export function transitionExternalUpgradeJob(jobId, phase, options = {}) {
233
286
  if (existing.phase !== phase && !TRANSITIONS[existing.phase].includes(phase)) {
234
287
  throw new Error(`Invalid external upgrade transition: ${existing.phase} -> ${phase}`);
235
288
  }
236
- const updated = validateExternalUpgradeJob({
289
+ const candidate = {
237
290
  ...existing,
238
291
  phase,
239
292
  ...(options.worker ? { worker: options.worker } : {}),
293
+ ...(options.targetLauncher ? { targetLauncher: options.targetLauncher } : {}),
294
+ ...(options.rollbackLauncher ? { rollbackLauncher: options.rollbackLauncher } : {}),
295
+ ...(options.targetRuntime ? { targetRuntime: options.targetRuntime } : {}),
296
+ ...(options.rollbackRuntime ? { rollbackRuntime: options.rollbackRuntime } : {}),
297
+ ...(options.repairLauncher ? { repairLauncher: options.repairLauncher } : {}),
298
+ ...(options.repairRuntime ? { repairRuntime: options.repairRuntime } : {}),
299
+ ...(options.lockNonce ? { lockNonce: options.lockNonce } : {}),
240
300
  ...(options.error !== undefined ? { error: options.error } : {}),
241
301
  updatedAt: (options.now ?? new Date()).toISOString(),
242
- });
302
+ };
303
+ if (options.clearRepairLauncher)
304
+ delete candidate.repairLauncher;
305
+ if (options.clearRepairRuntime)
306
+ delete candidate.repairRuntime;
307
+ const updated = validateExternalUpgradeJob(candidate);
243
308
  atomicWriteJson(getExternalUpgradeJobPath(jobId), updated);
244
309
  atomicWriteJson(join(UPGRADE_DIR, 'latest.json'), updated);
245
310
  appendExternalUpgradeEvent(updated, `phase-${phase}`);
@@ -269,4 +334,20 @@ export function appendExternalUpgradeEvent(job, code, detail) {
269
334
  mode: 0o600,
270
335
  });
271
336
  }
337
+ export function markExternalUpgradeRepaired(jobId, now = new Date()) {
338
+ const existing = loadExternalUpgradeJob(jobId);
339
+ if (existing.phase !== 'repair-starting') {
340
+ throw new Error('Only a repair-starting external upgrade can be marked repaired');
341
+ }
342
+ const updated = validateExternalUpgradeJob({
343
+ ...existing,
344
+ phase: 'rolled-back',
345
+ updatedAt: now.toISOString(),
346
+ error: null,
347
+ });
348
+ atomicWriteJson(getExternalUpgradeJobPath(jobId), updated);
349
+ atomicWriteJson(join(UPGRADE_DIR, 'latest.json'), updated);
350
+ appendExternalUpgradeEvent(updated, 'repair-completed');
351
+ return updated;
352
+ }
272
353
  //# sourceMappingURL=upgrade-job.js.map