@astroanywhere/agent 0.2.4 → 0.2.6
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.
- package/README.md +200 -15
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +127 -21
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +23 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +15 -2
- package/dist/commands/stop.js.map +1 -1
- package/dist/lib/display.d.ts +1 -1
- package/dist/lib/display.d.ts.map +1 -1
- package/dist/lib/display.js +5 -0
- package/dist/lib/display.js.map +1 -1
- package/dist/lib/openclaw-bridge.d.ts +39 -7
- package/dist/lib/openclaw-bridge.d.ts.map +1 -1
- package/dist/lib/openclaw-bridge.js +256 -40
- package/dist/lib/openclaw-bridge.js.map +1 -1
- package/dist/lib/openclaw-gateway.d.ts +52 -0
- package/dist/lib/openclaw-gateway.d.ts.map +1 -0
- package/dist/lib/openclaw-gateway.js +116 -0
- package/dist/lib/openclaw-gateway.js.map +1 -0
- package/dist/lib/providers.d.ts.map +1 -1
- package/dist/lib/providers.js +6 -37
- package/dist/lib/providers.js.map +1 -1
- package/dist/lib/ssh-discovery.d.ts +3 -1
- package/dist/lib/ssh-discovery.d.ts.map +1 -1
- package/dist/lib/ssh-discovery.js +34 -24
- package/dist/lib/ssh-discovery.js.map +1 -1
- package/dist/lib/ssh-installer.d.ts +26 -0
- package/dist/lib/ssh-installer.d.ts.map +1 -1
- package/dist/lib/ssh-installer.js +126 -4
- package/dist/lib/ssh-installer.js.map +1 -1
- package/dist/lib/task-executor.d.ts +11 -0
- package/dist/lib/task-executor.d.ts.map +1 -1
- package/dist/lib/task-executor.js +111 -25
- package/dist/lib/task-executor.js.map +1 -1
- package/dist/lib/websocket-client.d.ts +3 -0
- package/dist/lib/websocket-client.d.ts.map +1 -1
- package/dist/lib/websocket-client.js +6 -0
- package/dist/lib/websocket-client.js.map +1 -1
- package/dist/providers/claude-sdk-adapter.d.ts.map +1 -1
- package/dist/providers/claude-sdk-adapter.js +18 -0
- package/dist/providers/claude-sdk-adapter.js.map +1 -1
- package/dist/providers/index.d.ts +3 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +9 -3
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openclaw-adapter.d.ts +21 -29
- package/dist/providers/openclaw-adapter.d.ts.map +1 -1
- package/dist/providers/openclaw-adapter.js +147 -385
- package/dist/providers/openclaw-adapter.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-discovery.js","sourceRoot":"","sources":["../../src/lib/ssh-discovery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,0EAA0E;AAC1E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY,EAAE,YAAY,EAAE,eAAe;IAC3C,gBAAgB,EAAE,mBAAmB;IACrC,mBAAmB,EAAE,yBAAyB;CAC/C,CAAC,CAAC;AAEH;;GAEG;AACH,KAAK,UAAU,cAAc;IAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,4CAA4C,aAAa,EAAE,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,IAAI,WAAW,GAAmB,IAAI,CAAC;QACvC,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE5B,gCAAgC;YAChC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YAED,uBAAuB;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,GAAG,EAAE,WAAW,EAAE,CAAC;YAEpC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,8BAA8B;gBAC9B,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC9C,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,WAAW,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBACxE,OAAO,CAAC,GAAG,CAAC,+CAA+C,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;wBACzG,YAAY,EAAE,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACxB,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAC7F,CAAC;gBACH,CAAC;gBAED,MAAM,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAExC,iDAAiD;gBACjD,IACE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACzB,WAAW,KAAK,WAAW;oBAC3B,WAAW,KAAK,WAAW,EAC3B,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,gDAAgD,WAAW,EAAE,CAAC,CAAC;oBAC3E,YAAY,EAAE,CAAC;oBACf,WAAW,GAAG,IAAI,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,WAAW,GAAG;oBACZ,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,WAAW,EAAE,4BAA4B;iBACpD,CAAC;YACJ,CAAC;iBAAM,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;gBAChC,QAAQ,QAAQ,EAAE,CAAC;oBACjB,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,mEAAmE;wBACnE,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBAC3D,MAAM;oBACR,CAAC;oBACD,KAAK,MAAM;wBACT,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;wBAChC,MAAM;oBACR,KAAK,MAAM;wBACT,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC9C,MAAM;oBACR,KAAK,cAAc;wBACjB,WAAW,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;wBAChE,MAAM;oBACR,KAAK,WAAW;wBACd,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;wBACrC,MAAM;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,WAAW,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,+CAA+C,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACzG,YAAY,EAAE,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,MAAM,yBAAyB,YAAY,uBAAuB,CAAC,CAAC;QAChH,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4CAA4C;QAC5C,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,+CAA+C,aAAa,EAAE,CAAC,CAAC;YAC5E,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QAClE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB;IAClC,MAAM,KAAK,GAAc,EAAE,CAAC;IAE5B,gFAAgF;IAChF,MAAM,iBAAiB,GAAG;QACxB,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC;QACrE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,6BAA6B,EAAE,YAAY,CAAC;QACxF,IAAI,CACF,OAAO,EAAE,EACT,SAAS,EACT,qBAAqB,EACrB,MAAM,EACN,MAAM,EACN,eAAe,EACf,6BAA6B,EAC7B,YAAY,CACb;QACD,IAAI,CACF,OAAO,EAAE,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,eAAe,EACf,6BAA6B,EAC7B,YAAY,CACb;KACF,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;YAEnD,0CAA0C;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACjC,KAAK,CAAC,IAAI,CAAC;4BACT,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,YAAY,EAAE,KAAK,CAAC,YAAY;yBACjC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;gBAC9C,uBAAuB;gBACvB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACrE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;wBAC5C,KAAK,CAAC,IAAI,CAAC;4BACT,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;YAC5D,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAMD;;GAEG;AACH,KAAK,UAAU,eAAe;IAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,oEAAoE;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,qDAAqD;YACrD,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,iDAAiD;gBACjD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;gBAEpD,kCAAkC;gBAClC,IACE,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC;oBACtC,QAAQ,KAAK,WAAW;oBACxB,QAAQ,KAAK,WAAW,EACxB,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,uCAAuC;gBACvC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBAED,kBAAkB;gBAClB,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAChD,SAAS;gBACX,CAAC;gBAED,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,gDAAgD;IAEzF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,iDAAiD,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,QAAQ,uBAAuB,CAAC,CAAC;YAClH,SAAS;QACX,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC;YACd,GAAG,IAAI;YACP,MAAM,EAAE,YAAY;SACrB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,CAAC,MAAM,wBAAwB,CAAC,CAAC;IAEhF,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACpD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACnE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC;gBACd,GAAG,IAAI;gBACP,MAAM,EAAE,eAAe;aACxB,CAAC,CAAC;YACH,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,WAAW,uBAAuB,CAAC,CAAC;IAEzE,gEAAgE;IAChE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,MAAM,eAAe,EAAE,CAAC;IAC/C,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAClE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,QAAQ;gBACR,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;YACH,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,eAAe,gCAAgC,CAAC,CAAC;IAEtF,OAAO,CAAC,GAAG,CAAC,uCAAuC,UAAU,CAAC,MAAM,qBAAqB,CAAC,CAAC;IAC3F,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAuB;IAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IAE/C,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAA2B;QAC3C,YAAY,EAAE,kCAAkC;QAChD,eAAe,EAAE,0BAA0B;QAC3C,aAAa,EAAE,mBAAmB;KACnC,CAAC;IAEF,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAE3D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAE3E,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAoB,EAAE,OAAgB;IACpE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnB,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ssh-discovery.js","sourceRoot":"","sources":["../../src/lib/ssh-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,32 @@ import type { DiscoveredHost } from '../types.js';
|
|
|
11
11
|
* Returns the first non-internal IPv4 address found.
|
|
12
12
|
*/
|
|
13
13
|
export declare function detectLocalIP(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Return the ControlPath for a given host.
|
|
16
|
+
*
|
|
17
|
+
* Uses a truncated SHA-256 hash of user@hostname:port to keep the path
|
|
18
|
+
* well under the Unix domain socket limit (104 bytes on macOS, 108 on Linux).
|
|
19
|
+
* Result: ~/.ssh/astro-sockets/<16-char hex hash> (total ~50 bytes)
|
|
20
|
+
*/
|
|
21
|
+
export declare function controlSocketPath(host: DiscoveredHost): string;
|
|
22
|
+
/**
|
|
23
|
+
* Check whether a ControlMaster session already exists for this host.
|
|
24
|
+
*/
|
|
25
|
+
export declare function hasControlMaster(host: DiscoveredHost): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Establish an interactive SSH ControlMaster session.
|
|
28
|
+
*
|
|
29
|
+
* Spawns an SSH process with stdio inherited so the user can
|
|
30
|
+
* complete interactive authentication (password, 2FA/Duo push, etc.).
|
|
31
|
+
* The session persists in the background for 10 minutes via ControlPersist.
|
|
32
|
+
*
|
|
33
|
+
* Returns true if the master session was established successfully.
|
|
34
|
+
*/
|
|
35
|
+
export declare function establishControlMaster(host: DiscoveredHost): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* Tear down a ControlMaster session for a host.
|
|
38
|
+
*/
|
|
39
|
+
export declare function teardownControlMaster(host: DiscoveredHost): Promise<void>;
|
|
14
40
|
/**
|
|
15
41
|
* SSH to a host and check whether Node.js ≥ 18 is available.
|
|
16
42
|
* Handles HPC module systems (Lmod, Environment Modules), NVM, and common paths.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-installer.d.ts","sourceRoot":"","sources":["../../src/lib/ssh-installer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"ssh-installer.d.ts","sourceRoot":"","sources":["../../src/lib/ssh-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
* installs via npm, and pushes pre-provisioned tokens so the
|
|
6
6
|
* remote host skips its own device auth entirely.
|
|
7
7
|
*/
|
|
8
|
-
import { execFile as execFileCb } from 'node:child_process';
|
|
8
|
+
import { execFile as execFileCb, spawn } from 'node:child_process';
|
|
9
9
|
import { promisify } from 'node:util';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { createHash } from 'node:crypto';
|
|
11
|
+
import { networkInterfaces, homedir } from 'node:os';
|
|
12
|
+
import { resolve, dirname, join } from 'node:path';
|
|
12
13
|
import { fileURLToPath } from 'node:url';
|
|
14
|
+
import { mkdir } from 'node:fs/promises';
|
|
13
15
|
const execFile = promisify(execFileCb);
|
|
14
16
|
// ============================================================================
|
|
15
17
|
// Network helpers
|
|
@@ -32,6 +34,118 @@ export function detectLocalIP() {
|
|
|
32
34
|
return '127.0.0.1';
|
|
33
35
|
}
|
|
34
36
|
// ============================================================================
|
|
37
|
+
// SSH ControlMaster — persistent multiplexed connections for 2FA hosts
|
|
38
|
+
// ============================================================================
|
|
39
|
+
/**
|
|
40
|
+
* Directory for SSH control sockets managed by astro-agent.
|
|
41
|
+
*/
|
|
42
|
+
const CONTROL_SOCKET_DIR = join(homedir(), '.ssh', 'astro-sockets');
|
|
43
|
+
/**
|
|
44
|
+
* Return the ControlPath for a given host.
|
|
45
|
+
*
|
|
46
|
+
* Uses a truncated SHA-256 hash of user@hostname:port to keep the path
|
|
47
|
+
* well under the Unix domain socket limit (104 bytes on macOS, 108 on Linux).
|
|
48
|
+
* Result: ~/.ssh/astro-sockets/<16-char hex hash> (total ~50 bytes)
|
|
49
|
+
*/
|
|
50
|
+
export function controlSocketPath(host) {
|
|
51
|
+
const user = host.user ?? 'default';
|
|
52
|
+
const port = host.port ?? 22;
|
|
53
|
+
const key = `${user}@${host.hostname}:${port}`;
|
|
54
|
+
const hash = createHash('sha256').update(key).digest('hex').slice(0, 16);
|
|
55
|
+
return join(CONTROL_SOCKET_DIR, hash);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Check whether a ControlMaster session already exists for this host.
|
|
59
|
+
*/
|
|
60
|
+
export async function hasControlMaster(host) {
|
|
61
|
+
const socketPath = controlSocketPath(host);
|
|
62
|
+
try {
|
|
63
|
+
const target = host.user ? `${host.user}@${host.hostname}` : host.hostname;
|
|
64
|
+
const args = ['-o', `ControlPath=${socketPath}`, '-O', 'check', target];
|
|
65
|
+
if (host.port && host.port !== 22)
|
|
66
|
+
args.unshift('-p', String(host.port));
|
|
67
|
+
await execFile('ssh', args, { timeout: 5000 });
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Establish an interactive SSH ControlMaster session.
|
|
76
|
+
*
|
|
77
|
+
* Spawns an SSH process with stdio inherited so the user can
|
|
78
|
+
* complete interactive authentication (password, 2FA/Duo push, etc.).
|
|
79
|
+
* The session persists in the background for 10 minutes via ControlPersist.
|
|
80
|
+
*
|
|
81
|
+
* Returns true if the master session was established successfully.
|
|
82
|
+
*/
|
|
83
|
+
export async function establishControlMaster(host) {
|
|
84
|
+
// Ensure the socket directory exists with restricted permissions
|
|
85
|
+
await mkdir(CONTROL_SOCKET_DIR, { recursive: true, mode: 0o700 });
|
|
86
|
+
const socketPath = controlSocketPath(host);
|
|
87
|
+
const target = host.user ? `${host.user}@${host.hostname}` : host.hostname;
|
|
88
|
+
const args = [];
|
|
89
|
+
if (host.port && host.port !== 22)
|
|
90
|
+
args.push('-p', String(host.port));
|
|
91
|
+
if (host.identityFile)
|
|
92
|
+
args.push('-i', host.identityFile);
|
|
93
|
+
if (host.proxyJump)
|
|
94
|
+
args.push('-J', host.proxyJump);
|
|
95
|
+
args.push('-o', `ControlMaster=yes`, '-o', `ControlPath=${socketPath}`, '-o', `ControlPersist=600`, // 10 minutes
|
|
96
|
+
'-o', 'ConnectTimeout=30', '-N', // no remote command — just hold the session
|
|
97
|
+
target);
|
|
98
|
+
const AUTH_TIMEOUT_MS = 120_000; // 2 minutes for user to complete 2FA
|
|
99
|
+
return new Promise((resolve) => {
|
|
100
|
+
const child = spawn('ssh', args, {
|
|
101
|
+
stdio: 'inherit', // user sees 2FA prompts, enters password, etc.
|
|
102
|
+
});
|
|
103
|
+
let settled = false;
|
|
104
|
+
const finish = (result) => {
|
|
105
|
+
if (!settled) {
|
|
106
|
+
settled = true;
|
|
107
|
+
resolve(result);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
const timer = setTimeout(() => {
|
|
111
|
+
child.kill('SIGTERM');
|
|
112
|
+
finish(false);
|
|
113
|
+
}, AUTH_TIMEOUT_MS);
|
|
114
|
+
child.on('close', async (code) => {
|
|
115
|
+
clearTimeout(timer);
|
|
116
|
+
// -N + ControlPersist means SSH exits 0 after backgrounding the master
|
|
117
|
+
if (code === 0) {
|
|
118
|
+
finish(true);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
// Check if master established despite non-zero exit (can happen with -N)
|
|
122
|
+
const running = await hasControlMaster(host);
|
|
123
|
+
finish(running);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
child.on('error', () => {
|
|
127
|
+
clearTimeout(timer);
|
|
128
|
+
finish(false);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Tear down a ControlMaster session for a host.
|
|
134
|
+
*/
|
|
135
|
+
export async function teardownControlMaster(host) {
|
|
136
|
+
const socketPath = controlSocketPath(host);
|
|
137
|
+
const target = host.user ? `${host.user}@${host.hostname}` : host.hostname;
|
|
138
|
+
try {
|
|
139
|
+
const args = ['-o', `ControlPath=${socketPath}`, '-O', 'exit', target];
|
|
140
|
+
if (host.port && host.port !== 22)
|
|
141
|
+
args.unshift('-p', String(host.port));
|
|
142
|
+
await execFile('ssh', args, { timeout: 5000 });
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Socket may already be gone
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// ============================================================================
|
|
35
149
|
// Remote checks
|
|
36
150
|
// ============================================================================
|
|
37
151
|
/**
|
|
@@ -240,7 +354,12 @@ export function buildSshArgs(host, command) {
|
|
|
240
354
|
if (host.proxyJump) {
|
|
241
355
|
args.push('-J', host.proxyJump);
|
|
242
356
|
}
|
|
243
|
-
//
|
|
357
|
+
// ControlPath enables multiplexing: if a master session exists, SSH routes
|
|
358
|
+
// through it without re-authenticating, so BatchMode=yes is fine — the auth
|
|
359
|
+
// already happened on the master. If no master exists, BatchMode=yes ensures
|
|
360
|
+
// SSH fails fast instead of hanging on a password/2FA prompt.
|
|
361
|
+
const socketPath = controlSocketPath(host);
|
|
362
|
+
args.push('-o', `ControlPath=${socketPath}`);
|
|
244
363
|
args.push('-o', 'BatchMode=yes', '-o', 'ConnectTimeout=10');
|
|
245
364
|
const target = host.user ? `${host.user}@${host.hostname}` : host.hostname;
|
|
246
365
|
args.push(target, command);
|
|
@@ -257,6 +376,9 @@ function buildScpArgs(host, localPath, remotePath) {
|
|
|
257
376
|
if (host.proxyJump) {
|
|
258
377
|
args.push('-o', `ProxyJump=${host.proxyJump}`);
|
|
259
378
|
}
|
|
379
|
+
// Route through ControlMaster socket if available (supports 2FA hosts)
|
|
380
|
+
const socketPath = controlSocketPath(host);
|
|
381
|
+
args.push('-o', `ControlPath=${socketPath}`);
|
|
260
382
|
args.push('-o', 'BatchMode=yes', '-o', 'ConnectTimeout=10');
|
|
261
383
|
const target = host.user ? `${host.user}@${host.hostname}` : host.hostname;
|
|
262
384
|
args.push(localPath, `${target}:${remotePath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-installer.js","sourceRoot":"","sources":["../../src/lib/ssh-installer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAEvC,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC,OAAO,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,wBAAwB,GAAG;IAC/B,4CAA4C;IAC5C,2CAA2C;IAC3C,+CAA+C;IAC/C,mDAAmD;IACnD,kCAAkC;IAClC,8CAA8C;IAC9C,iDAAiD;IACjD,4CAA4C;IAC5C,iCAAiC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,QAAQ;IACR,MAAM;IACN,WAAW;IACX,WAAW;IACX,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,eAAe;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,uBAAuB;IACvB,qCAAqC;IACrC,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAoB;IAEpB,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,WAAW,GAAkB,IAAI,CAAC;IAEtC,SAAS,YAAY,CAAC,MAAc;QAClC,0EAA0E;QAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,GAAG,CAAC;QACpC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,2DAA2D;IAC3D,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE;gBAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACtG,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,oEAAoE;IACpE,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,qBAAqB,CAAC,GAAG,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,kDAAkD,CAAC,aAAa,CACxF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,UAAU,KAAK,cAAc,EAAE,CAAC;QAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACjC,iDAAiD;YACjD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC;QAClF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,mEAAmE;YACnE,MAAM,GAAG,GAAG,qBAAqB,QAAQ,6DAA6D,CAAC;YACvG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACjC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,QAAQ,EAAE,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,gFAAgF;IAChF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,kFAAkF,CAAC;QAC/F,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACjC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AACpD,CAAC;AAgBD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAoB,EACpB,UAAkC;IAElC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACvF,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAErC,cAAc;IACd,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpF,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE;QACxF,GAAG,EAAE,cAAc;KACpB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;IAE3D,2BAA2B;IAC3B,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IACjE,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE/B,iEAAiE;IACjE,oFAAoF;IACpF,8DAA8D;IAC9D,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,cAAc,CAAC;IACjC,MAAM,OAAO,CAAC,IAAI,EAAE,YAAY,SAAS,aAAa,SAAS,uDAAuD,SAAS,wBAAwB,CAAC,CAAC;IAEzJ,2EAA2E;IAC3E,MAAM,MAAM,GAAG,GAAG,SAAS,MAAM,CAAC;IAClC,MAAM,UAAU,GAAG,gBAAgB,MAAM,SAAS,CAAC;IACnD,iGAAiG;IACjG,MAAM,aAAa,GAAG,sCAAsC,CAAC;IAC7D,MAAM,SAAS,GAAG;QAChB,cAAc,aAAa,wCAAwC,aAAa,oBAAoB;QACpG,cAAc,aAAa,yCAAyC,aAAa,qBAAqB;KACvG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACf,MAAM,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE/B,mEAAmE;IACnE,GAAG,CAAC,oBAAoB,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,CACX,IAAI,EACJ,GAAG,UAAU,6DAA6D,MAAM,YAAY,QAAQ,EAAE,CACvG,CAAC;IAEF,+DAA+D;IAC/D,GAAG,CAAC,yBAAyB,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,MAAM;QACN,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,OAAO;QACP,SAAS;KACV,CAAC,CAAC;IACH,oFAAoF;IACpF,MAAM,SAAS,GAAG,GAAG,UAAU,0CAA0C;QACvE,4DAA4D;QAC5D,kCAAkC,CAAC;IACrC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,OAAO,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEnE,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,gBAAgB,CAAC,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,UAAU,YAAY,CAAC,IAAoB,EAAE,OAAe;IAChE,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAAoB,EAAE,SAAiB,EAAE,UAAkB;IAC/E,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;IAEhD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAoB,EACpB,OAAe;IAEf,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AA8BD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAuB,EACvB,UAA8B,EAAE,EAChC,UAAgD;IAEhD,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,6EAA6E;QAC7E,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,qCAAqC,CAAC,CAAC;QACtD,MAAM,OAAO,CAAC,IAAI,EAAE,kDAAkD,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9C,gDAAgD;QAChD,oFAAoF;QACpF,MAAM,QAAQ,GAAG,8BAA8B,CAAC;QAChD,MAAM,KAAK,GAAa,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,iBAAiB;YAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,GAAG,QAAQ,UAAU,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAExD,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,CACX,IAAI,EACJ,+EAA+E,QAAQ,qDAAqD,CAC7I,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,kEAAkE;QACpE,CAAC;QAED,kFAAkF;QAClF,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;QAC/C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAC9B,IAAI,EACJ,mFAAmF,CACpF,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;gBACpD,uFAAuF;gBACvF,IAAI,WAA0C,CAAC;gBAC/C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,2DAA2D;oBACrH,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC;wBACH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,gDAAgD,CAAC,CAAC;wBACrG,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;4BACtB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAsB,CAAC;4BACjE,MAAM;wBACR,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,mCAAmC;oBACrC,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,wDAAwD,CAAC,CAAC;oBAC1G,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,gCAAgC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,6CAA6C,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC1G,CAAC;gBAAC,MAAM,CAAC;oBACP,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,uCAAuC,CAAC,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ssh-installer.js","sourceRoot":"","sources":["../../src/lib/ssh-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { Task, HpcCapability } from '../types.js';
|
|
8
8
|
import type { WebSocketClient } from './websocket-client.js';
|
|
9
|
+
import type { OpenClawBridge } from './openclaw-bridge.js';
|
|
9
10
|
export interface TaskExecutorOptions {
|
|
10
11
|
wsClient: WebSocketClient;
|
|
11
12
|
maxConcurrentTasks?: number;
|
|
@@ -35,9 +36,17 @@ export declare class TaskExecutor {
|
|
|
35
36
|
private gitAvailable;
|
|
36
37
|
private hpcCapability;
|
|
37
38
|
private branchLockManager;
|
|
39
|
+
/** Per-directory lock for serializing tasks on non-git directories (no worktree isolation). */
|
|
40
|
+
private directoryLockManager;
|
|
41
|
+
private openclawBridge;
|
|
38
42
|
private tasksByDirectory;
|
|
39
43
|
private pendingSafetyChecks;
|
|
40
44
|
constructor(options: TaskExecutorOptions);
|
|
45
|
+
/**
|
|
46
|
+
* Inject the OpenClaw bridge for task execution delegation.
|
|
47
|
+
* If an OpenClawAdapter is already cached, wire the bridge to it immediately.
|
|
48
|
+
*/
|
|
49
|
+
setOpenClawBridge(bridge: OpenClawBridge): void;
|
|
41
50
|
/**
|
|
42
51
|
* Submit a task for execution (with safety checks)
|
|
43
52
|
*/
|
|
@@ -115,6 +124,8 @@ export declare class TaskExecutor {
|
|
|
115
124
|
* Check if a git repo has any commits.
|
|
116
125
|
*/
|
|
117
126
|
private repoHasCommits;
|
|
127
|
+
/** Resolve a canonical directory key for task tracking (matches lock keys). */
|
|
128
|
+
private canonicalDirKey;
|
|
118
129
|
/**
|
|
119
130
|
* Track task by directory for parallel execution safety
|
|
120
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/lib/task-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/lib/task-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* and streaming output back over WebSocket
|
|
6
6
|
*/
|
|
7
7
|
import { homedir } from 'node:os';
|
|
8
|
+
import { realpathSync } from 'node:fs';
|
|
9
|
+
import { resolve } from 'node:path';
|
|
8
10
|
import { execFile as execFileCb } from 'node:child_process';
|
|
9
11
|
import { promisify } from 'node:util';
|
|
10
12
|
import { createProviderAdapter } from '../providers/index.js';
|
|
@@ -114,6 +116,19 @@ async function tryPreMergeRebase(workdir, targetBranch, isRemote) {
|
|
|
114
116
|
return { rebased: false };
|
|
115
117
|
}
|
|
116
118
|
}
|
|
119
|
+
/** Resolve a canonical absolute path for a directory (follows symlinks, normalizes). */
|
|
120
|
+
function canonicalDirPath(workdir) {
|
|
121
|
+
try {
|
|
122
|
+
return realpathSync(workdir);
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return resolve(workdir);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/** Canonicalize a directory path for use as a lock key. */
|
|
129
|
+
function canonicalDirLockKey(workdir) {
|
|
130
|
+
return `dir::${canonicalDirPath(workdir)}`;
|
|
131
|
+
}
|
|
117
132
|
export class TaskExecutor {
|
|
118
133
|
wsClient;
|
|
119
134
|
runningTasks = new Map();
|
|
@@ -131,6 +146,9 @@ export class TaskExecutor {
|
|
|
131
146
|
gitAvailable = false;
|
|
132
147
|
hpcCapability;
|
|
133
148
|
branchLockManager = new BranchLockManager();
|
|
149
|
+
/** Per-directory lock for serializing tasks on non-git directories (no worktree isolation). */
|
|
150
|
+
directoryLockManager = new BranchLockManager();
|
|
151
|
+
openclawBridge = null;
|
|
134
152
|
// Safety tracking
|
|
135
153
|
tasksByDirectory = new Map(); // workdir -> taskIds
|
|
136
154
|
pendingSafetyChecks = new Map(); // taskId -> pending check
|
|
@@ -155,6 +173,19 @@ export class TaskExecutor {
|
|
|
155
173
|
});
|
|
156
174
|
console.log('[executor] Tip: Filter logs for a specific task with: npx @astroanywhere/agent logs -f | grep "taskId"');
|
|
157
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Inject the OpenClaw bridge for task execution delegation.
|
|
178
|
+
* If an OpenClawAdapter is already cached, wire the bridge to it immediately.
|
|
179
|
+
*/
|
|
180
|
+
setOpenClawBridge(bridge) {
|
|
181
|
+
this.openclawBridge = bridge;
|
|
182
|
+
// Wire to existing cached adapter if present
|
|
183
|
+
const cached = this.adapters.get('openclaw');
|
|
184
|
+
if (cached instanceof OpenClawAdapter) {
|
|
185
|
+
cached.setBridge(bridge);
|
|
186
|
+
console.log('[executor] OpenClaw bridge wired to existing adapter');
|
|
187
|
+
}
|
|
188
|
+
}
|
|
158
189
|
/**
|
|
159
190
|
* Submit a task for execution (with safety checks)
|
|
160
191
|
*/
|
|
@@ -168,9 +199,18 @@ export class TaskExecutor {
|
|
|
168
199
|
: resolveWorkingDirectory(task.workingDirectory),
|
|
169
200
|
};
|
|
170
201
|
// Determine if worktree isolation will be used for this task.
|
|
202
|
+
// Check git availability early: non-git directories cannot use git worktrees,
|
|
203
|
+
// so willUseWorktree must be false for them. Without this, the safety check
|
|
204
|
+
// thinks worktree isolation is active and allows parallel execution, but
|
|
205
|
+
// prepareTaskWorkspace() later falls back to direct in-place execution —
|
|
206
|
+
// causing file conflicts when multiple tasks run on the same non-git directory.
|
|
207
|
+
const isGitDir = !isTextOnlyTask && normalizedTask.workingDirectory && this.gitAvailable
|
|
208
|
+
? await isGitRepo(normalizedTask.workingDirectory)
|
|
209
|
+
: false;
|
|
171
210
|
const willUseWorktree = this.useWorktree
|
|
172
211
|
&& normalizedTask.useWorktree !== false
|
|
173
|
-
&& normalizedTask.deliveryMode !== 'direct'
|
|
212
|
+
&& normalizedTask.deliveryMode !== 'direct'
|
|
213
|
+
&& (isGitDir || normalizedTask.deliveryMode === 'copy');
|
|
174
214
|
if (!isTextOnlyTask && task.skipSafetyCheck) {
|
|
175
215
|
// Server already approved safety for this directory — skip the prompt.
|
|
176
216
|
// Still need to handle init-git if directory isn't a git repo.
|
|
@@ -193,13 +233,16 @@ export class TaskExecutor {
|
|
|
193
233
|
const safetyCheck = await this.performSafetyCheck(normalizedTask, willUseWorktree);
|
|
194
234
|
// Handle safety tiers
|
|
195
235
|
if (safetyCheck.tier === WorkdirSafetyTier.UNSAFE) {
|
|
196
|
-
//
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
236
|
+
// QUEUE: serial execution required (non-git parallel, or git + uncommitted + no worktree).
|
|
237
|
+
// Instead of failing, queue the task and execute it once the current task
|
|
238
|
+
// in this directory completes. Track it so further tasks also queue behind it.
|
|
239
|
+
console.log(`[executor] Task ${normalizedTask.id}: queued for serial execution (${safetyCheck.parallelTaskCount} active in dir)`);
|
|
240
|
+
this.trackTaskDirectory(normalizedTask);
|
|
241
|
+
this.taskQueue.push(normalizedTask);
|
|
242
|
+
const reason = safetyCheck.isGitRepo
|
|
243
|
+
? 'uncommitted changes without worktree isolation'
|
|
244
|
+
: 'non-git directory';
|
|
245
|
+
this.wsClient.sendTaskStatus(normalizedTask.id, 'queued', 0, `Waiting for ${safetyCheck.parallelTaskCount} task(s) in this directory to complete (serial execution: ${reason})`);
|
|
203
246
|
return;
|
|
204
247
|
}
|
|
205
248
|
if (safetyCheck.tier === WorkdirSafetyTier.RISKY && !this.allowNonGit) {
|
|
@@ -250,7 +293,9 @@ export class TaskExecutor {
|
|
|
250
293
|
// Check queue
|
|
251
294
|
const queueIndex = this.taskQueue.findIndex((t) => t.id === taskId);
|
|
252
295
|
if (queueIndex >= 0) {
|
|
296
|
+
const task = this.taskQueue[queueIndex];
|
|
253
297
|
this.taskQueue.splice(queueIndex, 1);
|
|
298
|
+
this.untrackTaskDirectory(task);
|
|
254
299
|
this.wsClient.sendTaskResult({
|
|
255
300
|
taskId,
|
|
256
301
|
status: 'cancelled',
|
|
@@ -359,8 +404,11 @@ export class TaskExecutor {
|
|
|
359
404
|
});
|
|
360
405
|
}
|
|
361
406
|
this.taskQueue = [];
|
|
362
|
-
//
|
|
407
|
+
// Clear directory tracking so stale entries don't inflate parallel task counts
|
|
408
|
+
this.tasksByDirectory.clear();
|
|
409
|
+
// Release all locks to unblock any waiting tasks
|
|
363
410
|
this.branchLockManager.releaseAll();
|
|
411
|
+
this.directoryLockManager.releaseAll();
|
|
364
412
|
// Stop job monitor
|
|
365
413
|
this.jobMonitor.stop();
|
|
366
414
|
}
|
|
@@ -735,23 +783,29 @@ export class TaskExecutor {
|
|
|
735
783
|
return false;
|
|
736
784
|
}
|
|
737
785
|
}
|
|
786
|
+
/** Resolve a canonical directory key for task tracking (matches lock keys). */
|
|
787
|
+
canonicalDirKey(workdir) {
|
|
788
|
+
return canonicalDirPath(workdir);
|
|
789
|
+
}
|
|
738
790
|
/**
|
|
739
791
|
* Track task by directory for parallel execution safety
|
|
740
792
|
*/
|
|
741
793
|
trackTaskDirectory(task) {
|
|
742
|
-
const
|
|
794
|
+
const key = this.canonicalDirKey(task.workingDirectory);
|
|
795
|
+
const tasks = this.tasksByDirectory.get(key) || new Set();
|
|
743
796
|
tasks.add(task.id);
|
|
744
|
-
this.tasksByDirectory.set(
|
|
797
|
+
this.tasksByDirectory.set(key, tasks);
|
|
745
798
|
}
|
|
746
799
|
/**
|
|
747
800
|
* Untrack task from directory
|
|
748
801
|
*/
|
|
749
802
|
untrackTaskDirectory(task) {
|
|
750
|
-
const
|
|
803
|
+
const key = this.canonicalDirKey(task.workingDirectory);
|
|
804
|
+
const tasks = this.tasksByDirectory.get(key);
|
|
751
805
|
if (tasks) {
|
|
752
806
|
tasks.delete(task.id);
|
|
753
807
|
if (tasks.size === 0) {
|
|
754
|
-
this.tasksByDirectory.delete(
|
|
808
|
+
this.tasksByDirectory.delete(key);
|
|
755
809
|
}
|
|
756
810
|
}
|
|
757
811
|
}
|
|
@@ -759,7 +813,8 @@ export class TaskExecutor {
|
|
|
759
813
|
* Get count of active tasks in a directory
|
|
760
814
|
*/
|
|
761
815
|
getActiveTasksInDirectory(workdir) {
|
|
762
|
-
const
|
|
816
|
+
const key = this.canonicalDirKey(workdir);
|
|
817
|
+
const tasks = this.tasksByDirectory.get(key);
|
|
763
818
|
return tasks ? tasks.size : 0;
|
|
764
819
|
}
|
|
765
820
|
async executeTask(task, useSandbox = false) {
|
|
@@ -1273,6 +1328,13 @@ export class TaskExecutor {
|
|
|
1273
1328
|
// and re-execution will create a fresh worktree if needed.
|
|
1274
1329
|
if (this.preserveWorktrees) {
|
|
1275
1330
|
console.log(`[executor] Task ${task.id}: worktree preserved (debug mode)`);
|
|
1331
|
+
// Still release directory locks even in debug mode to avoid deadlocks.
|
|
1332
|
+
// Git worktree paths set branchName and are preserved for inspection.
|
|
1333
|
+
// Lock-only paths (direct, non-git fallback) and copy worktrees don't
|
|
1334
|
+
// set branchName — always clean those up.
|
|
1335
|
+
if (!prepared.branchName) {
|
|
1336
|
+
await prepared.cleanup({ keepBranch });
|
|
1337
|
+
}
|
|
1276
1338
|
}
|
|
1277
1339
|
else {
|
|
1278
1340
|
await prepared.cleanup({ keepBranch });
|
|
@@ -1307,10 +1369,17 @@ export class TaskExecutor {
|
|
|
1307
1369
|
console.warn(`[executor] Task ${task.id}: worktree disabled (executor-level), using raw workdir: ${task.workingDirectory}`);
|
|
1308
1370
|
return { workingDirectory: task.workingDirectory, cleanup: async () => { } };
|
|
1309
1371
|
}
|
|
1310
|
-
// Direct delivery mode: skip worktree, work in-place
|
|
1372
|
+
// Direct delivery mode: skip worktree, work in-place.
|
|
1373
|
+
// Acquire directory lock to serialize tasks on the same directory.
|
|
1311
1374
|
if (task.deliveryMode === 'direct') {
|
|
1312
|
-
|
|
1313
|
-
|
|
1375
|
+
const lockKey = canonicalDirLockKey(task.workingDirectory);
|
|
1376
|
+
console.log(`[executor] Task ${task.id}: direct delivery mode, acquiring directory lock`);
|
|
1377
|
+
const lockHandle = await this.directoryLockManager.acquire(lockKey, task.id);
|
|
1378
|
+
console.log(`[executor] Task ${task.id}: directory lock acquired, using raw workdir: ${task.workingDirectory}`);
|
|
1379
|
+
return {
|
|
1380
|
+
workingDirectory: task.workingDirectory,
|
|
1381
|
+
cleanup: async () => { lockHandle.release(); },
|
|
1382
|
+
};
|
|
1314
1383
|
}
|
|
1315
1384
|
// Copy delivery mode: copy project to worktree dir (non-git)
|
|
1316
1385
|
if (task.deliveryMode === 'copy') {
|
|
@@ -1329,16 +1398,33 @@ export class TaskExecutor {
|
|
|
1329
1398
|
}
|
|
1330
1399
|
catch (error) {
|
|
1331
1400
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
1332
|
-
console.error(`[executor] Task ${task.id}: copy worktree failed: ${errorMsg},
|
|
1333
|
-
|
|
1401
|
+
console.error(`[executor] Task ${task.id}: copy worktree failed: ${errorMsg}, falling back to locked direct execution`);
|
|
1402
|
+
const lockKey = canonicalDirLockKey(task.workingDirectory);
|
|
1403
|
+
const lockHandle = await this.directoryLockManager.acquire(lockKey, task.id);
|
|
1404
|
+
return {
|
|
1405
|
+
workingDirectory: task.workingDirectory,
|
|
1406
|
+
cleanup: async () => { lockHandle.release(); },
|
|
1407
|
+
};
|
|
1334
1408
|
}
|
|
1335
1409
|
}
|
|
1336
1410
|
// Non-git directory: fall back to direct execution (no worktree possible).
|
|
1337
|
-
//
|
|
1338
|
-
//
|
|
1411
|
+
// Acquire a per-directory lock to serialize tasks — without git worktree
|
|
1412
|
+
// isolation, concurrent modification of the same files causes conflicts.
|
|
1339
1413
|
if (this.gitAvailable && !(await isGitRepo(task.workingDirectory))) {
|
|
1340
|
-
|
|
1341
|
-
|
|
1414
|
+
const lockKey = canonicalDirLockKey(task.workingDirectory);
|
|
1415
|
+
console.log(`[executor] Task ${task.id}: not a git repo, acquiring directory lock for ${task.workingDirectory}`);
|
|
1416
|
+
stream.stdout(`[astro] Non-git directory — waiting for exclusive access...\n`);
|
|
1417
|
+
const lockHandle = await this.directoryLockManager.acquire(lockKey, task.id);
|
|
1418
|
+
const cleanup = async () => { lockHandle.release(); };
|
|
1419
|
+
try {
|
|
1420
|
+
console.log(`[executor] Task ${task.id}: directory lock acquired, proceeding with direct execution`);
|
|
1421
|
+
stream.stdout(`[astro] Directory lock acquired, working directly on files.\n`);
|
|
1422
|
+
}
|
|
1423
|
+
catch (err) {
|
|
1424
|
+
await cleanup();
|
|
1425
|
+
throw err;
|
|
1426
|
+
}
|
|
1427
|
+
return { workingDirectory: task.workingDirectory, cleanup };
|
|
1342
1428
|
}
|
|
1343
1429
|
// Untracked subdirectory of a parent repo: the workdir inherits a git repo
|
|
1344
1430
|
// from a parent directory but has zero tracked files in it. This happens when
|
|
@@ -1466,8 +1552,8 @@ export class TaskExecutor {
|
|
|
1466
1552
|
if (cached) {
|
|
1467
1553
|
return cached;
|
|
1468
1554
|
}
|
|
1469
|
-
// Create new adapter — pass pre-classified HPC capability to avoid runtime detection
|
|
1470
|
-
const adapter = createProviderAdapter(type, this.hpcCapability);
|
|
1555
|
+
// Create new adapter — pass pre-classified HPC capability and bridge to avoid runtime detection
|
|
1556
|
+
const adapter = createProviderAdapter(type, this.hpcCapability, this.openclawBridge);
|
|
1471
1557
|
if (!adapter) {
|
|
1472
1558
|
return null;
|
|
1473
1559
|
}
|