@harness-nexus/cli 0.1.0-alpha.2 → 0.1.0-alpha.3

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 (64) hide show
  1. package/dist/daemon/acp/adapters.d.ts.map +1 -1
  2. package/dist/daemon/acp/adapters.js +9 -3
  3. package/dist/daemon/acp/adapters.js.map +1 -1
  4. package/dist/daemon/acp/agent-connection.d.ts +30 -1
  5. package/dist/daemon/acp/agent-connection.d.ts.map +1 -1
  6. package/dist/daemon/acp/agent-connection.js +59 -6
  7. package/dist/daemon/acp/agent-connection.js.map +1 -1
  8. package/dist/daemon/chat.d.ts +9 -1
  9. package/dist/daemon/chat.d.ts.map +1 -1
  10. package/dist/daemon/chat.js +642 -37
  11. package/dist/daemon/chat.js.map +1 -1
  12. package/dist/daemon/client.d.ts +10 -2
  13. package/dist/daemon/client.d.ts.map +1 -1
  14. package/dist/daemon/client.js +99 -23
  15. package/dist/daemon/client.js.map +1 -1
  16. package/dist/daemon/config-view.d.ts +42 -0
  17. package/dist/daemon/config-view.d.ts.map +1 -0
  18. package/dist/daemon/config-view.js +159 -0
  19. package/dist/daemon/config-view.js.map +1 -0
  20. package/dist/daemon/dsh-sessions.d.ts +161 -0
  21. package/dist/daemon/dsh-sessions.d.ts.map +1 -0
  22. package/dist/daemon/dsh-sessions.js +674 -0
  23. package/dist/daemon/dsh-sessions.js.map +1 -0
  24. package/dist/daemon/dsh-tap/index.mjs +99 -0
  25. package/dist/daemon/dsh-tap-listener.d.ts +62 -0
  26. package/dist/daemon/dsh-tap-listener.d.ts.map +1 -0
  27. package/dist/daemon/dsh-tap-listener.js +196 -0
  28. package/dist/daemon/dsh-tap-listener.js.map +1 -0
  29. package/dist/daemon/jobs.d.ts +8 -5
  30. package/dist/daemon/jobs.d.ts.map +1 -1
  31. package/dist/daemon/jobs.js +28 -8
  32. package/dist/daemon/jobs.js.map +1 -1
  33. package/dist/daemon/runtime-config.d.ts +34 -0
  34. package/dist/daemon/runtime-config.d.ts.map +1 -0
  35. package/dist/daemon/runtime-config.js +343 -0
  36. package/dist/daemon/runtime-config.js.map +1 -0
  37. package/dist/daemon/runtime.d.ts +49 -0
  38. package/dist/daemon/runtime.d.ts.map +1 -0
  39. package/dist/daemon/runtime.js +218 -0
  40. package/dist/daemon/runtime.js.map +1 -0
  41. package/dist/daemon/sessions.d.ts +21 -0
  42. package/dist/daemon/sessions.d.ts.map +1 -0
  43. package/dist/daemon/sessions.js +125 -0
  44. package/dist/daemon/sessions.js.map +1 -0
  45. package/dist/daemon/workspace.d.ts +3 -0
  46. package/dist/daemon/workspace.d.ts.map +1 -0
  47. package/dist/daemon/workspace.js +27 -0
  48. package/dist/daemon/workspace.js.map +1 -0
  49. package/dist/install/adapters/deepseek.d.ts +4 -0
  50. package/dist/install/adapters/deepseek.d.ts.map +1 -1
  51. package/dist/install/adapters/deepseek.js +4 -2
  52. package/dist/install/adapters/deepseek.js.map +1 -1
  53. package/dist/inventory/common.d.ts +2 -0
  54. package/dist/inventory/common.d.ts.map +1 -1
  55. package/dist/inventory/common.js.map +1 -1
  56. package/dist/inventory/runtime.d.ts +40 -0
  57. package/dist/inventory/runtime.d.ts.map +1 -0
  58. package/dist/inventory/runtime.js +114 -0
  59. package/dist/inventory/runtime.js.map +1 -0
  60. package/dist/inventory/scanners/claude-code.d.ts +2 -0
  61. package/dist/inventory/scanners/claude-code.d.ts.map +1 -1
  62. package/dist/inventory/scanners/claude-code.js +103 -39
  63. package/dist/inventory/scanners/claude-code.js.map +1 -1
  64. package/package.json +6 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsh-sessions.js","sourceRoot":"","sources":["../../src/daemon/dsh-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,8CAA8C;AAC9C,MAAM,UAAU,GAAG,aAAa,CAAC;AAIjC,qEAAqE;AACrE,MAAM,UAAU,UAAU;IACxB,MAAM,EAAE,GAAI,IAAyD,CAAC,kBAAkB,CAAC;IACzF,OAAO,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YACvC,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,KAAK,GAAG,CAAC,CAAC;YACV,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,UAAwB,EACxB,UAAU,GAAG,KAAK;IAElB,MAAM,OAAO,GAA8B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5E,OAAO,CAAC,IAAI,CAAC,MAAiC,CAAC,CAAC;oBAChD,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;wBAAE,OAAO,OAAO,CAAC;gBACnD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAqBD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,UAAwB,EACxB,QAAQ,GAAG,EAAE,GAAG,IAAI;IAEpB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxE,IAAI,MAAM,GAAqB,IAAI,CAAC;IACpC,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,mEAAmE;IACnE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;gBACtD,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC/C,MAAM,GAAG,CAAc,CAAC,CAAC,wCAAwC;gBACnE,CAAC;qBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,eAAe,EAAE,CAAC;oBACzC,MAAM,CAAC,GAAI,CAAC,CAAC,MAAM,CAAyC,EAAE,CAAC,OAAO,CAAC,CAAC;oBACxE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;wBAAE,KAAK,GAAG,CAAC,CAAC;gBACnD,CAAC;qBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,gBAAgB,EAAE,CAAC;oBAC1C,MAAM,GAAG,GAAI,CAAC,CAAC,MAAM,CAAyC,EAAE,CAAC,QAAQ,CAAC,CAAC;oBAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5E,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5E,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;wBAAE,KAAK,GAAG,CAAC,CAAC;gBACnD,CAAC;qBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,qBAAqB,EAAE,CAAC;oBAC/C,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO;YAAE,MAAM;IAC5E,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAC/B,4EAA4E,CAC7E,CAAC;IACF,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IAChF,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,EAAa,EACb,UAAwB,EACxB,OAAiC,EAAE;IAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;IACpC,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,yCAAyC;IACtD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBAAE,MAAM;YAC7B,wEAAwE;YACxE,wEAAwE;YACxE,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,IAAI,GAAG,GAAG,WAAW,IAAI,IAAI,IAAI,EAAE,qBAAqB,CAAC;YAC/D,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC;gBACH,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACvE,uEAAuE;YACvE,qEAAqE;YACrE,oEAAoE;YACpE,gEAAgE;YAChE,wEAAwE;YACxE,qDAAqD;YACrD,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS;YAC9B,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvF,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,CAAC;gBAAE,SAAS;YACjF,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,CAAC,CAAC;YACd,CAAC;YACD,GAAG,CAAC,IAAI,CAAC;gBACP,SAAS,EAAE,EAAE;gBACb,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,KAAK;gBACL,KAAK;gBACL,SAAS,EACP,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;oBACvE,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;oBAC1C,CAAC,CAAC,IAAI;gBACV,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAoB,EAAU,EAAE,CAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IACtE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC;AACb,CAAC;AAMD,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAsB,EAAE,CAClD,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3D,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B,SAAS,OAAO,CAAC,GAAY,EAAE,GAAW;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,gFAAgF;AAChF,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+FAA+F;AAC/F,SAAS,cAAc,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa;IACnE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE;YACJ,UAAU,EAAE,MAAM;YAClB,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,EAAE,aAAa;YACrB,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,SAAS;gBACpC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,IAAI,CAA4B,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAS,eAAe,CAAC,OAA6B;IACpD,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACrF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE;YACJ,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,WAAW;YACnB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAS,OAAO,CAAC,IAAmB;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzF,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CAAC,GAAY;IAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzE,OAAO;QACL,IAAI,EAAE,OAAO;QACb,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,MAAM,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,OAAO,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC;AAuBD,MAAM,UAAU,mBAAmB;IACjC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,MAAM,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC7B,QAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,KAAK,aAAa,CAAC;YACnB,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,OAAO,CACnB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAChE,OAAO,CACR,CAAC;gBACF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;oBAAE,OAAO,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,GAAG,KAAK,IAAI;oBAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3C,OAAO;oBACL;wBACE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;wBAC9E,KAAK;qBACN;iBACF,CAAC;YACJ,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,sEAAsE;gBACtE,qEAAqE;gBACrE,oDAAoD;gBACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,OAAO,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChF,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,GACR,KAAK,CAAC,MAAM,CAAC,KAAK,YAAY;oBAC5B,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,iBAAiB;wBACnC,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,IAAI,CAAC;gBACb,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,GAAG,KAAK,IAAI;oBAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,GAAG,GAAsB,EAAE,CAAC;gBAClC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAS,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;oBACtF,MAAM,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAClE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3B,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;4BAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gCAAE,SAAS;4BAClC,MAAM,KAAK,GAAG,QAAyB,CAAC;4BACxC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW;gCAAE,SAAS;4BACxE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;4BAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gCACtC,GAAG,CAAC,IAAI,CAAC;oCACP,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;oCACvE,KAAK,EAAE,IAAI;iCACZ,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxC,IAAI,KAAK,KAAK,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC9E,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAS,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtF,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACvC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YACD;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAwB;IACtD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,MAAM,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC5B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,MAAM;gBACpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAAE,SAAS;oBAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,QAAQ,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;oBACjF,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM;wBAAE,SAAS;oBAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAS,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtF,MAAM,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAAE,MAAM;gBACnC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBAAE,SAAS;oBAClC,MAAM,KAAK,GAAG,QAAyB,CAAC;oBACxC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;wBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;wBAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;4BACtC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC/E,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;wBACpC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;wBAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;4BACtC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC/E,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;wBACzC,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC7E,IAAI,KAAK,KAAK,IAAI;4BAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC9E,IAAI,KAAK,KAAK,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzD,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAS,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtF,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACvC,IAAI,KAAK,KAAK,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzD,MAAM;YACR,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,+DAA+D;gBAC/D,sDAAsD;gBACtD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,KAAK,KAAK,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzD,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,QAAQ,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnF,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;qBACxE;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD;gBACE,MAAM,CAAC,gEAAgE;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/E,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0DAA0D;AAE1D,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,SAAiB,EACjB,OAAmC;IAEnC,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,IAAI,IAAI,SAAS,qBAAqB,CAAC;QAC3E,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,WAAW,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;YAC/C,OAAO,SAAS,CAAC,CAAC,2DAA2D;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAsBD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,cAAc;IAUN;IACA;IACA;IACA;IACA;IAbX,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,GAA0B,IAAI,CAAC;IACpC,OAAO,GAAG,KAAK,CAAC;IAChB,MAAM,GAAG,CAAC,CAAC;IACF,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAChD,6DAA6D;IACrD,aAAa,GAAG,CAAC,CAAC;IAE1B,YACmB,IAAY,EACZ,EAAU,EACV,UAAwB,EACxB,OAAyC,EACzC,OAAoB,EAAE;QAJtB,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAQ;QACV,eAAU,GAAV,UAAU,CAAc;QACxB,YAAO,GAAP,OAAO,CAAkC;QACzC,SAAI,GAAJ,IAAI,CAAkB;IACtC,CAAC;IAEJ;;;;4EAIwE;IACxE,KAAK,CAAC,mBAAmB,GAAG,KAAK;QAC/B,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACvB,CAAC;IAED,yEAAyE;IACzE,gBAAgB,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;IACrC,CAAC;IAED,2DAA2D;IAC3D,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAEO,IAAI;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACjD,IAAI,KAAa,CAAC;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,KAAK;QACX,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,CAAC,gCAAgC;gBACpE,mEAAmE;gBACnE,kEAAkE;gBAClE,oEAAoE;gBACpE,MAAM,MAAM,GAAG,8BAA8B,IAAI,CAAC,MAAM,qBAAqB,CAAC;gBAC9E,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,IAAI,KAAc,CAAC;YACnB,IAAI,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAClE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,99 @@
1
+ // Harness Nexus dsh event tap (Phase 9 W7.1).
2
+ // docs/design/phase-9-w7.1-dsh-event-tap.md
3
+ //
4
+ // A ZERO-DEPENDENCY cordis plugin, insert-mounted at SPAWN TIME via
5
+ // `dsh --patch <yml>` (the daemon renders the patch next to this file's
6
+ // absolute path — it never touches ~/.dsh). It subscribes dsh's in-process
7
+ // session event bus and forwards every event — verbatim, for ALL sessions —
8
+ // as JSON lines to the daemon's localhost TapListener (HNX_TAP_PORT /
9
+ // HNX_TAP_TOKEN ride the child env). The DAEMON filters by session id; this
10
+ // plugin stays deliberately dumb.
11
+ //
12
+ // Constraints (spike-verified — see the design doc §Spike results):
13
+ // - dsh's stdio belongs to the ACP JSON-RPC protocol: this file NEVER writes
14
+ // to stdout/stderr, and swallows its own errors — a broken tap must
15
+ // degrade to the daemon's transcript-tail fallback, never break the agent.
16
+ // - Bus events arrive zero-latency in the verbatim SessionEvent envelope
17
+ // (`{type, seq, time, data}`) — the same shape the file tail parses, so
18
+ // both sources feed one mapper. Persistence packing (`text-chunks` rows)
19
+ // never appears on the bus.
20
+ // - Depends ONLY on the `apply(ctx)` / `ctx.on` / `ctx.effect` surface —
21
+ // the same surface the reference bridge uses in production.
22
+
23
+ import { connect as netConnect } from 'node:net'
24
+
25
+ export const name = 'harness-nexus-tap'
26
+
27
+ // The listener is up before the spawn, so retries only cover transient
28
+ // localhost hiccups and a daemon-side decision timeout — bounded, then the
29
+ // tap goes dormant (the daemon will not reopen this port).
30
+ const RECONNECT_BASE_MS = 100
31
+ const RECONNECT_MAX_MS = 2000
32
+ const RECONNECT_ATTEMPTS = 10
33
+
34
+ export function apply(ctx) {
35
+ const port = Number(process.env.HNX_TAP_PORT)
36
+ const token = process.env.HNX_TAP_TOKEN
37
+ if (!Number.isInteger(port) || port <= 0 || typeof token !== 'string' || token === '') {
38
+ return // not spawned by the hnx daemon — stay inert
39
+ }
40
+
41
+ let socket = null
42
+ let writable = false
43
+ let stopped = false
44
+ let rejected = false
45
+ let attempts = 0
46
+ let retryTimer = null
47
+
48
+ const offEvent = ctx.on('session/event', (session, event) => {
49
+ if (stopped || !writable || socket === null) return
50
+ let line
51
+ try {
52
+ line = JSON.stringify({ type: 'event', sessionId: session?.id, event })
53
+ } catch {
54
+ return // unserializable event — skip rather than break the turn
55
+ }
56
+ socket.write(`${line}\n`)
57
+ })
58
+
59
+ const connect = () => {
60
+ if (stopped) return
61
+ const s = netConnect(port, '127.0.0.1')
62
+ socket = s
63
+ writable = false
64
+ s.on('connect', () => {
65
+ attempts = 0
66
+ writable = true
67
+ s.write(`${JSON.stringify({ type: 'hello', token, pid: process.pid })}\n`)
68
+ })
69
+ s.on('data', (buf) => {
70
+ try {
71
+ if (JSON.parse(String(buf))?.type === 'reject') {
72
+ // Wrong token: the port belongs to something else — never retry.
73
+ rejected = true
74
+ s.destroy()
75
+ }
76
+ } catch {
77
+ // not the reject line — ignore (the listener speaks only on reject)
78
+ }
79
+ })
80
+ s.on('error', () => {}) // ECONNREFUSED etc — the close handler retries
81
+ s.on('close', () => {
82
+ if (socket === s) socket = null
83
+ writable = false
84
+ if (stopped || rejected || attempts >= RECONNECT_ATTEMPTS) return
85
+ const delay = Math.min(RECONNECT_BASE_MS * 2 ** attempts, RECONNECT_MAX_MS)
86
+ attempts += 1
87
+ retryTimer = setTimeout(connect, delay)
88
+ })
89
+ }
90
+
91
+ ctx.effect(() => () => {
92
+ stopped = true
93
+ offEvent()
94
+ if (retryTimer !== null) clearTimeout(retryTimer)
95
+ socket?.destroy()
96
+ })
97
+
98
+ connect()
99
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Daemon side of the dsh in-process event tap (Phase 9 W7.1).
3
+ * docs/design/phase-9-w7.1-dsh-event-tap.md
4
+ *
5
+ * `dsh --patch` insert-mounts the zero-dep plugin shipped at
6
+ * `daemon/dsh-tap/index.mjs`; the plugin dials back this localhost listener
7
+ * (one per chat channel: ephemeral port, one-time token) and streams dsh's
8
+ * in-process `session/event` bus as JSON lines — zero latency, verbatim
9
+ * `SessionEvent` envelopes, no persistence encoding involved. The events
10
+ * feed the SAME `createDshLiveMapper` the transcript tail uses (chat.ts),
11
+ * so the wire's committed chunks stay suppressed exactly as in the tail
12
+ * path. Everything here is best-effort by construction: any failure (old
13
+ * dsh without `--patch`, plugin load error, listen failure) degrades to
14
+ * the W7 file tail — worst case equals the shipped behavior.
15
+ */
16
+ /** Absolute path of the shipped tap plugin (dist in builds, src under tsx dev). */
17
+ export declare function tapPluginPath(): string;
18
+ /**
19
+ * Render the spawn-time overlay that insert-mounts the tap plugin, into the
20
+ * daemon's config dir (`~/.hnx/dsh-tap.patch.yml`) — NEVER into `~/.dsh`
21
+ * (the user's home patch is their surface; W3 owns its marked region). The
22
+ * same file serves every channel: the per-channel port/token ride env, not
23
+ * the patch. Null on any write failure — the caller then skips the tap.
24
+ */
25
+ export declare function writeTapPatch(home: string, pluginPath: string): string | null;
26
+ /** Whether the tap plugin asset actually exists (guards broken installs). */
27
+ export declare function tapPluginAvailable(): boolean;
28
+ export interface TapListenerEvents {
29
+ /** Every bus event of every session — the daemon filters by acp session id. */
30
+ onEvent: (sessionId: string, event: Record<string, unknown>) => void;
31
+ /** A post-handshake socket loss: the tap is dead (committed-only ensues). */
32
+ onLoss?: () => void;
33
+ }
34
+ /**
35
+ * The localhost JSON-line endpoint the dsh tap plugin dials. Line protocol:
36
+ * the plugin's first line must be `{"type":"hello","token","pid"}` — a token
37
+ * mismatch gets a `{"type":"reject"}` and the socket destroyed (the plugin
38
+ * then stops; the port is not its listener). Every later line is
39
+ * `{"type":"event","sessionId","event"}`. `waitHello(deadlineAt)` is the
40
+ * handshake race: true once a valid hello landed, false past the deadline
41
+ * or after `close()` — the caller treats false as "no tap, fall back".
42
+ */
43
+ export declare class TapListener {
44
+ private readonly events;
45
+ readonly token: string;
46
+ private readonly server;
47
+ private socket;
48
+ private closed;
49
+ private helloSeen;
50
+ private readonly helloWaiters;
51
+ private constructor();
52
+ static create(events: TapListenerEvents): Promise<TapListener>;
53
+ /** The ephemeral port the plugin dials (0 before `create` resolves). */
54
+ get port(): number;
55
+ /** Resolves on a valid hello (true) or the deadline / close (false). */
56
+ waitHello(deadlineAt: number): Promise<boolean>;
57
+ /** Destroy the socket and stop listening (idempotent). */
58
+ close(): void;
59
+ private onConnection;
60
+ private onLine;
61
+ }
62
+ //# sourceMappingURL=dsh-tap-listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsh-tap-listener.d.ts","sourceRoot":"","sources":["../../src/daemon/dsh-tap-listener.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AAEH,mFAAmF;AACnF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmB7E;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C;AAED,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IAWpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAEjE,OAAO;WAQM,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAcpE,wEAAwE;IACxE,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,wEAAwE;IACxE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe/C,0DAA0D;IAC1D,KAAK,IAAI,IAAI;IAUb,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,MAAM;CA8Bf"}
@@ -0,0 +1,196 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
3
+ import { createServer } from 'node:net';
4
+ import { join } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ /**
7
+ * Daemon side of the dsh in-process event tap (Phase 9 W7.1).
8
+ * docs/design/phase-9-w7.1-dsh-event-tap.md
9
+ *
10
+ * `dsh --patch` insert-mounts the zero-dep plugin shipped at
11
+ * `daemon/dsh-tap/index.mjs`; the plugin dials back this localhost listener
12
+ * (one per chat channel: ephemeral port, one-time token) and streams dsh's
13
+ * in-process `session/event` bus as JSON lines — zero latency, verbatim
14
+ * `SessionEvent` envelopes, no persistence encoding involved. The events
15
+ * feed the SAME `createDshLiveMapper` the transcript tail uses (chat.ts),
16
+ * so the wire's committed chunks stay suppressed exactly as in the tail
17
+ * path. Everything here is best-effort by construction: any failure (old
18
+ * dsh without `--patch`, plugin load error, listen failure) degrades to
19
+ * the W7 file tail — worst case equals the shipped behavior.
20
+ */
21
+ /** Absolute path of the shipped tap plugin (dist in builds, src under tsx dev). */
22
+ export function tapPluginPath() {
23
+ return fileURLToPath(new URL('./dsh-tap/index.mjs', import.meta.url));
24
+ }
25
+ /**
26
+ * Render the spawn-time overlay that insert-mounts the tap plugin, into the
27
+ * daemon's config dir (`~/.hnx/dsh-tap.patch.yml`) — NEVER into `~/.dsh`
28
+ * (the user's home patch is their surface; W3 owns its marked region). The
29
+ * same file serves every channel: the per-channel port/token ride env, not
30
+ * the patch. Null on any write failure — the caller then skips the tap.
31
+ */
32
+ export function writeTapPatch(home, pluginPath) {
33
+ const body = [
34
+ '# Harness Nexus dsh event tap — spawn-time overlay (regenerated per boot,',
35
+ '# safe to delete). Applied ONLY via `dsh --patch` on processes the hnx',
36
+ '# daemon spawns; never merged into ~/.dsh.',
37
+ '- insert:',
38
+ ' - id: hnx-tap',
39
+ ` name: ${JSON.stringify(pluginPath)}`,
40
+ '',
41
+ ].join('\n');
42
+ try {
43
+ const dir = join(home, '.hnx');
44
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
45
+ const path = join(dir, 'dsh-tap.patch.yml');
46
+ writeFileSync(path, body, { mode: 0o600 });
47
+ return path;
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
53
+ /** Whether the tap plugin asset actually exists (guards broken installs). */
54
+ export function tapPluginAvailable() {
55
+ try {
56
+ return existsSync(tapPluginPath());
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ /**
63
+ * The localhost JSON-line endpoint the dsh tap plugin dials. Line protocol:
64
+ * the plugin's first line must be `{"type":"hello","token","pid"}` — a token
65
+ * mismatch gets a `{"type":"reject"}` and the socket destroyed (the plugin
66
+ * then stops; the port is not its listener). Every later line is
67
+ * `{"type":"event","sessionId","event"}`. `waitHello(deadlineAt)` is the
68
+ * handshake race: true once a valid hello landed, false past the deadline
69
+ * or after `close()` — the caller treats false as "no tap, fall back".
70
+ */
71
+ export class TapListener {
72
+ events;
73
+ token;
74
+ server;
75
+ socket = null;
76
+ closed = false;
77
+ helloSeen = false;
78
+ helloWaiters = new Set();
79
+ constructor(token, events) {
80
+ this.events = events;
81
+ this.token = token;
82
+ this.server = createServer((s) => this.onConnection(s));
83
+ }
84
+ static async create(events) {
85
+ const listener = new TapListener(randomBytes(24).toString('base64url'), events);
86
+ await new Promise((resolve, reject) => {
87
+ const onError = (e) => reject(e);
88
+ listener.server.once('error', onError);
89
+ listener.server.listen(0, '127.0.0.1', () => {
90
+ listener.server.off('error', onError);
91
+ resolve();
92
+ });
93
+ });
94
+ if (listener.port === 0)
95
+ throw new Error('tap listener has no port');
96
+ return listener;
97
+ }
98
+ /** The ephemeral port the plugin dials (0 before `create` resolves). */
99
+ get port() {
100
+ const addr = this.server.address();
101
+ return typeof addr === 'object' && addr !== null ? addr.port : 0;
102
+ }
103
+ /** Resolves on a valid hello (true) or the deadline / close (false). */
104
+ waitHello(deadlineAt) {
105
+ if (this.helloSeen)
106
+ return Promise.resolve(true);
107
+ if (this.closed)
108
+ return Promise.resolve(false);
109
+ return new Promise((resolve) => {
110
+ const settled = (ok) => {
111
+ clearTimeout(timer);
112
+ this.helloWaiters.delete(settled);
113
+ resolve(ok);
114
+ };
115
+ this.helloWaiters.add(settled);
116
+ const timer = setTimeout(() => settled(this.helloSeen), Math.max(0, deadlineAt - Date.now()));
117
+ timer.unref?.();
118
+ });
119
+ }
120
+ /** Destroy the socket and stop listening (idempotent). */
121
+ close() {
122
+ if (this.closed)
123
+ return;
124
+ this.closed = true;
125
+ this.socket?.destroy();
126
+ this.socket = null;
127
+ this.server.close();
128
+ for (const w of this.helloWaiters)
129
+ w(false);
130
+ this.helloWaiters.clear();
131
+ }
132
+ onConnection(sock) {
133
+ if (this.closed || this.socket !== null) {
134
+ // One plugin per listener; a stray second connection is not ours.
135
+ sock.destroy();
136
+ return;
137
+ }
138
+ this.socket = sock;
139
+ let buffer = '';
140
+ sock.on('data', (chunk) => {
141
+ buffer += chunk.toString('utf8');
142
+ let nl;
143
+ while ((nl = buffer.indexOf('\n')) !== -1) {
144
+ const line = buffer.slice(0, nl);
145
+ buffer = buffer.slice(nl + 1);
146
+ this.onLine(sock, line);
147
+ if (this.socket !== sock)
148
+ return; // destroyed mid-parse
149
+ }
150
+ });
151
+ sock.on('close', () => {
152
+ if (this.socket !== sock)
153
+ return;
154
+ this.socket = null;
155
+ if (this.helloSeen && !this.closed)
156
+ this.events.onLoss?.();
157
+ });
158
+ sock.on('error', () => { }); // close follows; the loss path handles it
159
+ }
160
+ onLine(sock, line) {
161
+ const trimmed = line.trim();
162
+ if (trimmed === '')
163
+ return;
164
+ let msg;
165
+ try {
166
+ msg = JSON.parse(trimmed);
167
+ }
168
+ catch {
169
+ return; // noise on the wire — skip
170
+ }
171
+ const m = msg;
172
+ if (!this.helloSeen) {
173
+ if (m.type === 'hello' && m.token === this.token) {
174
+ this.helloSeen = true;
175
+ for (const w of this.helloWaiters)
176
+ w(true);
177
+ this.helloWaiters.clear();
178
+ }
179
+ else {
180
+ // Not our plugin (port collision) — reject so it stops retrying.
181
+ sock.write(`${JSON.stringify({ type: 'reject' })}\n`);
182
+ sock.destroy();
183
+ if (this.socket === sock)
184
+ this.socket = null;
185
+ }
186
+ return;
187
+ }
188
+ if (m.type === 'event' && typeof m.sessionId === 'string' && m.sessionId !== '') {
189
+ const event = (m.event ?? {});
190
+ if (event !== null && typeof event === 'object' && !Array.isArray(event)) {
191
+ this.events.onEvent(m.sessionId, event);
192
+ }
193
+ }
194
+ }
195
+ }
196
+ //# sourceMappingURL=dsh-tap-listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsh-tap-listener.js","sourceRoot":"","sources":["../../src/daemon/dsh-tap-listener.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,17 @@
1
1
  import type { Socket } from 'socket.io-client';
2
2
  /**
3
- * Daemon-side job executor (Phase 8 C4). docs/design/phase-8-c4.md.
3
+ * Daemon-side job executor (Phase 8 C4 + Phase 9 W2).
4
+ * docs/design/phase-8-c4.md · phase-9-harness-runtime.md.
4
5
  *
5
6
  * A deploy job is the 3.3 pipeline with a different trigger: fetch the
6
7
  * resolved bundle with the machine PAT (`GET /api/client/deploy-bundle` —
7
8
  * machine PAT exception #2), plan, apply + ledger, reporting `job:progress`
8
- * per phase and one terminal `job:result`. Plans are idempotent overwrites,
9
- * so a redelivered job (server recovered it after a disconnect) simply
10
- * re-runs. `scan`/`import` job types are reserved by the protocol C3's
11
- * interactive flows handle them; arriving here they settle as unsupported.
9
+ * per phase and one terminal `job:result`. A harness job (W2) runs the
10
+ * runtime install/upgrade/pin command table instead. Plans are idempotent
11
+ * overwrites, so a redelivered job (server recovered it after a disconnect)
12
+ * simply re-runs. `scan`/`import` job types are reserved by the protocol —
13
+ * C3's interactive flows handle them; arriving here they settle as
14
+ * unsupported.
12
15
  */
13
16
  export interface JobExecutorOptions {
14
17
  server: string;
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/daemon/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAW/C;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAqBhF"}
1
+ {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/daemon/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAc/C;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAuChF"}
@@ -1,7 +1,9 @@
1
- import { jobDispatchEventSchema, deployResultDataSchema, } from '@harness-nexus/shared';
1
+ import { jobDispatchEventSchema, harnessJobPayloadSchema, deployResultDataSchema, } from '@harness-nexus/shared';
2
2
  import { HarnessNexusClient } from '@harness-nexus/sdk';
3
3
  import { planInstall } from '../install/planner.js';
4
4
  import { applyInstall } from '../install/installer.js';
5
+ import { runHarnessJob } from './runtime.js';
6
+ import { runApplyConfigJob } from './runtime-config.js';
5
7
  export function attachJobHandlers(socket, opts) {
6
8
  socket.on('job:dispatch', (payload, ack) => {
7
9
  const parsed = jobDispatchEventSchema.safeParse(payload);
@@ -13,15 +15,33 @@ export function attachJobHandlers(socket, opts) {
13
15
  // "with the daemon", the terminal result arrives separately.
14
16
  ack?.({ accepted: true });
15
17
  const job = parsed.data.job;
16
- if (job.type !== 'deploy') {
17
- socket.emit('job:result', {
18
- jobId: job.id,
19
- ok: false,
20
- error: `job type '${job.type}' is not supported by this daemon`,
21
- });
18
+ if (job.type === 'deploy') {
19
+ void runDeploy(socket, opts, job);
22
20
  return;
23
21
  }
24
- void runDeploy(socket, opts, job);
22
+ if (job.type === 'harness') {
23
+ const parsed = harnessJobPayloadSchema.safeParse(job.payload);
24
+ if (!parsed.success) {
25
+ // Old daemons settle unknown ACTIONS the same way — one shared answer.
26
+ socket.emit('job:result', {
27
+ jobId: job.id,
28
+ ok: false,
29
+ error: 'harness payload invalid (upgrade hnx on the machine)',
30
+ });
31
+ return;
32
+ }
33
+ if (parsed.data.action === 'apply-config') {
34
+ void runApplyConfigJob(socket, opts, job);
35
+ return;
36
+ }
37
+ void runHarnessJob(socket, job);
38
+ return;
39
+ }
40
+ socket.emit('job:result', {
41
+ jobId: job.id,
42
+ ok: false,
43
+ error: `job type '${job.type}' is not supported by this daemon`,
44
+ });
25
45
  });
26
46
  }
27
47
  async function runDeploy(socket, opts, job) {
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/daemon/jobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/daemon/jobs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { Socket } from 'socket.io-client';
2
+ import { type JobView, type RuntimeConfigSpec } from '@harness-nexus/shared';
3
+ /**
4
+ * Set TOP-LEVEL `key = "value"` pairs in a TOML document, preserving every
5
+ * other byte. Only the region before the first `[section]` header is ours to
6
+ * edit (a `model` inside a section belongs to that section); missing keys are
7
+ * appended to that region. JSON string escaping is valid TOML basic-string
8
+ * escaping.
9
+ */
10
+ export declare function mergeTomlRootKeys(existing: string, values: Record<string, string>): string;
11
+ /** Replace (or append) one `KEY=VALUE` line in a dotenv document, preserving the rest. */
12
+ export declare function mergeEnvLine(existing: string, key: string, value: string): string;
13
+ /**
14
+ * Strip a marked block (full-line comment markers) from a document. Returns
15
+ * the remainder with collapsed surrounding blank lines. A base that is JUST
16
+ * an empty placeholder (`[]` / `{}`) is treated as empty — appending entries
17
+ * after it would produce two YAML documents (a boot-time parse error).
18
+ */
19
+ export declare function stripMarkedBlock(existing: string, begin: string, end: string): string;
20
+ /** The per-target native writer — pure file surgery, no I/O beyond the harness homes. */
21
+ export declare function applyRuntimeConfig(target: 'claude-code' | 'codex' | 'deepseek', spec: RuntimeConfigSpec, secret: string, homeDir: string): {
22
+ files: string[];
23
+ };
24
+ /**
25
+ * The `apply-config` harness job executor: fetch the resolved bundle with the
26
+ * machine PAT (REST — the secret never rides the job), write the native slots,
27
+ * settle via `job:result`. No runtime re-probe (config files aren't in the
28
+ * snapshot); the redacted read-back viewer is W4.
29
+ */
30
+ export declare function runApplyConfigJob(socket: Socket, opts: {
31
+ server: string;
32
+ token: string;
33
+ }, job: JobView, homeDir?: string): Promise<void>;
34
+ //# sourceMappingURL=runtime-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../../src/daemon/runtime-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAgG/B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAgC1F;AAkCD,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjF;AAgBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAarF;AA+GD,yFAAyF;AACzF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,GAAG,OAAO,GAAG,UAAU,EAC5C,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAcrB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACvC,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,MAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}