@agentuity/cli 0.0.110 → 0.0.111
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/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +19 -4
- package/dist/cli.js.map +1 -1
- package/dist/cmd/build/vite/agent-discovery.d.ts +1 -1
- package/dist/cmd/build/vite/agent-discovery.d.ts.map +1 -1
- package/dist/cmd/build/vite/agent-discovery.js +3 -3
- package/dist/cmd/build/vite/agent-discovery.js.map +1 -1
- package/dist/cmd/build/vite/index.js +1 -1
- package/dist/cmd/build/vite/index.js.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.js +1 -1
- package/dist/cmd/build/vite/metadata-generator.js.map +1 -1
- package/dist/cmd/build/vite/registry-generator.d.ts +1 -1
- package/dist/cmd/build/vite/registry-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/registry-generator.js +70 -23
- package/dist/cmd/build/vite/registry-generator.js.map +1 -1
- package/dist/cmd/build/vite/route-discovery.d.ts +6 -0
- package/dist/cmd/build/vite/route-discovery.d.ts.map +1 -1
- package/dist/cmd/build/vite/route-discovery.js +19 -0
- package/dist/cmd/build/vite/route-discovery.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +1 -1
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +63 -1
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/create.js +18 -0
- package/dist/cmd/cloud/sandbox/create.js.map +1 -1
- package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/delete.js +2 -6
- package/dist/cmd/cloud/sandbox/delete.js.map +1 -1
- package/dist/cmd/cloud/sandbox/download.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/download.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/download.js +89 -0
- package/dist/cmd/cloud/sandbox/download.js.map +1 -0
- package/dist/cmd/cloud/sandbox/env.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/env.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/env.js +90 -0
- package/dist/cmd/cloud/sandbox/env.js.map +1 -0
- package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/get.js +5 -0
- package/dist/cmd/cloud/sandbox/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/index.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/index.js +14 -0
- package/dist/cmd/cloud/sandbox/index.js.map +1 -1
- package/dist/cmd/cloud/sandbox/ls.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/ls.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/ls.js +119 -0
- package/dist/cmd/cloud/sandbox/ls.js.map +1 -0
- package/dist/cmd/cloud/sandbox/mkdir.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/mkdir.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/mkdir.js +59 -0
- package/dist/cmd/cloud/sandbox/mkdir.js.map +1 -0
- package/dist/cmd/cloud/sandbox/rm.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/rm.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/rm.js +45 -0
- package/dist/cmd/cloud/sandbox/rm.js.map +1 -0
- package/dist/cmd/cloud/sandbox/rmdir.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/rmdir.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/rmdir.js +59 -0
- package/dist/cmd/cloud/sandbox/rmdir.js.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/create.js +0 -2
- package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/get.js +0 -2
- package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/list.js +0 -3
- package/dist/cmd/cloud/sandbox/snapshot/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/upload.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/upload.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/upload.js +77 -0
- package/dist/cmd/cloud/sandbox/upload.js.map +1 -0
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +17 -8
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/dev/sync.d.ts.map +1 -1
- package/dist/cmd/dev/sync.js +8 -14
- package/dist/cmd/dev/sync.js.map +1 -1
- package/dist/cmd/git/account/add.d.ts +17 -0
- package/dist/cmd/git/account/add.d.ts.map +1 -0
- package/dist/cmd/git/account/add.js +244 -0
- package/dist/cmd/git/account/add.js.map +1 -0
- package/dist/cmd/git/account/index.d.ts +3 -0
- package/dist/cmd/git/account/index.d.ts.map +1 -0
- package/dist/cmd/git/account/index.js +11 -0
- package/dist/cmd/git/account/index.js.map +1 -0
- package/dist/cmd/git/account/list.d.ts +2 -0
- package/dist/cmd/git/account/list.d.ts.map +1 -0
- package/dist/cmd/git/account/list.js +111 -0
- package/dist/cmd/git/account/list.js.map +1 -0
- package/dist/cmd/git/account/remove.d.ts +2 -0
- package/dist/cmd/git/account/remove.d.ts.map +1 -0
- package/dist/cmd/git/account/remove.js +171 -0
- package/dist/cmd/git/account/remove.js.map +1 -0
- package/dist/cmd/git/index.d.ts +3 -0
- package/dist/cmd/git/index.d.ts.map +1 -0
- package/dist/cmd/git/index.js +19 -0
- package/dist/cmd/git/index.js.map +1 -0
- package/dist/cmd/git/link.d.ts +32 -0
- package/dist/cmd/git/link.d.ts.map +1 -0
- package/dist/cmd/git/link.js +357 -0
- package/dist/cmd/git/link.js.map +1 -0
- package/dist/cmd/git/list.d.ts +2 -0
- package/dist/cmd/git/list.d.ts.map +1 -0
- package/dist/cmd/git/list.js +137 -0
- package/dist/cmd/git/list.js.map +1 -0
- package/dist/cmd/git/status.d.ts +2 -0
- package/dist/cmd/git/status.d.ts.map +1 -0
- package/dist/cmd/git/status.js +119 -0
- package/dist/cmd/git/status.js.map +1 -0
- package/dist/cmd/git/unlink.d.ts +2 -0
- package/dist/cmd/git/unlink.d.ts.map +1 -0
- package/dist/cmd/git/unlink.js +98 -0
- package/dist/cmd/git/unlink.js.map +1 -0
- package/dist/cmd/index.d.ts.map +1 -1
- package/dist/cmd/index.js +2 -0
- package/dist/cmd/index.js.map +1 -1
- package/dist/cmd/integration/api.d.ts +61 -0
- package/dist/cmd/integration/api.d.ts.map +1 -0
- package/dist/cmd/integration/api.js +176 -0
- package/dist/cmd/integration/api.js.map +1 -0
- package/dist/cmd/integration/github/connect.d.ts +2 -0
- package/dist/cmd/integration/github/connect.d.ts.map +1 -0
- package/dist/cmd/integration/github/connect.js +197 -0
- package/dist/cmd/integration/github/connect.js.map +1 -0
- package/dist/cmd/integration/github/disconnect.d.ts +2 -0
- package/dist/cmd/integration/github/disconnect.d.ts.map +1 -0
- package/dist/cmd/integration/github/disconnect.js +121 -0
- package/dist/cmd/integration/github/disconnect.js.map +1 -0
- package/dist/cmd/integration/github/index.d.ts +2 -0
- package/dist/cmd/integration/github/index.d.ts.map +1 -0
- package/dist/cmd/integration/github/index.js +21 -0
- package/dist/cmd/integration/github/index.js.map +1 -0
- package/dist/cmd/integration/index.d.ts +2 -0
- package/dist/cmd/integration/index.d.ts.map +1 -0
- package/dist/cmd/integration/index.js +16 -0
- package/dist/cmd/integration/index.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +24 -0
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +2 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -0
- package/dist/errors.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -1
- package/package.json +6 -6
- package/src/cli.ts +20 -4
- package/src/cmd/build/vite/agent-discovery.ts +4 -4
- package/src/cmd/build/vite/index.ts +1 -1
- package/src/cmd/build/vite/metadata-generator.ts +1 -1
- package/src/cmd/build/vite/registry-generator.ts +78 -24
- package/src/cmd/build/vite/route-discovery.ts +20 -0
- package/src/cmd/build/vite/vite-builder.ts +1 -1
- package/src/cmd/cloud/deploy.ts +78 -1
- package/src/cmd/cloud/sandbox/create.ts +22 -0
- package/src/cmd/cloud/sandbox/delete.ts +2 -6
- package/src/cmd/cloud/sandbox/download.ts +96 -0
- package/src/cmd/cloud/sandbox/env.ts +104 -0
- package/src/cmd/cloud/sandbox/get.ts +5 -0
- package/src/cmd/cloud/sandbox/index.ts +14 -0
- package/src/cmd/cloud/sandbox/ls.ts +126 -0
- package/src/cmd/cloud/sandbox/mkdir.ts +65 -0
- package/src/cmd/cloud/sandbox/rm.ts +51 -0
- package/src/cmd/cloud/sandbox/rmdir.ts +65 -0
- package/src/cmd/cloud/sandbox/snapshot/create.ts +0 -2
- package/src/cmd/cloud/sandbox/snapshot/get.ts +0 -2
- package/src/cmd/cloud/sandbox/snapshot/list.ts +0 -3
- package/src/cmd/cloud/sandbox/upload.ts +83 -0
- package/src/cmd/dev/index.ts +32 -19
- package/src/cmd/dev/sync.ts +26 -30
- package/src/cmd/git/account/add.ts +317 -0
- package/src/cmd/git/account/index.ts +12 -0
- package/src/cmd/git/account/list.ts +139 -0
- package/src/cmd/git/account/remove.ts +212 -0
- package/src/cmd/git/index.ts +20 -0
- package/src/cmd/git/link.ts +468 -0
- package/src/cmd/git/list.ts +161 -0
- package/src/cmd/git/status.ts +144 -0
- package/src/cmd/git/unlink.ts +117 -0
- package/src/cmd/index.ts +2 -0
- package/src/cmd/integration/api.ts +379 -0
- package/src/cmd/integration/github/connect.ts +242 -0
- package/src/cmd/integration/github/disconnect.ts +149 -0
- package/src/cmd/integration/github/index.ts +21 -0
- package/src/cmd/integration/index.ts +16 -0
- package/src/config.ts +34 -0
- package/src/errors.ts +7 -0
- package/src/types.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cmd/git/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC7C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACzE,YAAY,EAAE,CAAC;SACb,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC7B,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAC1C,CAAC,CACF;SACA,QAAQ,CAAC,2BAA2B,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACvE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAClE,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CACzE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;IAChD,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,mDAAmD;IAChE,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACxD,MAAM,EAAE;QACP,QAAQ,EAAE,oBAAoB;KAC9B;IACD,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;YACjC,WAAW,EAAE,wCAAwC;SACrD;QACD;YACC,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC;YACxC,WAAW,EAAE,2BAA2B;SACxC;KACD;IAED,KAAK,CAAC,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAEpD,IAAI,CAAC;YACJ,8BAA8B;YAC9B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC;gBACnC,OAAO,EAAE,+BAA+B;gBACxC,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;aACpE,CAAC,CAAC;YAEH,gCAAgC;YAChC,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC;gBACvC,OAAO,EAAE,4BAA4B;gBACrC,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;aACpE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG;gBACd,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChD,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;oBACtC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;iBACtC,CAAC,CAAC;gBACH,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,aAAa,EAAE,aAAa,CAAC,aAAa;aAC1C,CAAC;YAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,MAAM,CAAC;YACf,CAAC;YAED,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YACvC,GAAG,CAAC,OAAO,EAAE,CAAC;YAEd,sBAAsB;YACtB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7D,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,OAAO,CAAC,GAAG,CACV,KAAK,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,kBAAkB,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CACrI,CAAC;gBACF,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;oBAClD,MAAM,SAAS,GAAG,WAAW,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC3E,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,iBAAiB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtF,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CACV,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAC5E,CAAC;YACH,CAAC;YAED,GAAG,CAAC,OAAO,EAAE,CAAC;YAEd,iBAAiB;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5D,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CACV,KAAK,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,sBAAsB,CAAC,EAAE,CACxG,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,eAAe,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnD,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,CAAC,GAAG,CACV,oBAAoB,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CACpG,CAAC;gBACF,OAAO,CAAC,GAAG,CACV,wBAAwB,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAC3G,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;YACjF,CAAC;YAED,GAAG,CAAC,OAAO,EAAE,CAAC;YAEd,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,MAAM,CAAC,KAAK,CAClB,iCAAiC,EACjC,KAAK,EACL,SAAS,CAAC,kBAAkB,CAC5B,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unlink.d.ts","sourceRoot":"","sources":["../../../src/cmd/git/unlink.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,gBAAgB,sCAoG3B,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { createSubcommand } from '../../types';
|
|
2
|
+
import * as tui from '../../tui';
|
|
3
|
+
import { getCommand } from '../../command-prefix';
|
|
4
|
+
import { ErrorCode } from '../../errors';
|
|
5
|
+
import { getProjectGithubStatus, unlinkProjectFromRepo } from '../integration/api';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
const UnlinkOptionsSchema = z.object({
|
|
8
|
+
confirm: z.boolean().optional().describe('Skip confirmation prompt'),
|
|
9
|
+
});
|
|
10
|
+
const UnlinkResponseSchema = z.object({
|
|
11
|
+
unlinked: z.boolean().describe('Whether the project was unlinked'),
|
|
12
|
+
repoFullName: z.string().optional().describe('Repository that was unlinked'),
|
|
13
|
+
});
|
|
14
|
+
export const unlinkSubcommand = createSubcommand({
|
|
15
|
+
name: 'unlink',
|
|
16
|
+
description: 'Unlink a project from its GitHub repository',
|
|
17
|
+
tags: ['mutating', 'destructive'],
|
|
18
|
+
idempotent: false,
|
|
19
|
+
requires: { auth: true, apiClient: true, project: true },
|
|
20
|
+
schema: {
|
|
21
|
+
options: UnlinkOptionsSchema,
|
|
22
|
+
response: UnlinkResponseSchema,
|
|
23
|
+
},
|
|
24
|
+
examples: [
|
|
25
|
+
{
|
|
26
|
+
command: getCommand('git unlink'),
|
|
27
|
+
description: 'Unlink current project from GitHub',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
command: getCommand('git unlink --confirm'),
|
|
31
|
+
description: 'Unlink without confirmation prompt',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
command: getCommand('--json git unlink --confirm'),
|
|
35
|
+
description: 'Unlink and return JSON result',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
async handler(ctx) {
|
|
39
|
+
const { logger, apiClient, project, opts, options } = ctx;
|
|
40
|
+
try {
|
|
41
|
+
// Check current status
|
|
42
|
+
const status = await tui.spinner({
|
|
43
|
+
message: 'Checking current status...',
|
|
44
|
+
clearOnSuccess: true,
|
|
45
|
+
callback: () => getProjectGithubStatus(apiClient, project.projectId),
|
|
46
|
+
});
|
|
47
|
+
if (!status.linked) {
|
|
48
|
+
if (!options.json) {
|
|
49
|
+
tui.newline();
|
|
50
|
+
tui.info('This project is not linked to a GitHub repository.');
|
|
51
|
+
}
|
|
52
|
+
return { unlinked: false };
|
|
53
|
+
}
|
|
54
|
+
if (!opts.confirm) {
|
|
55
|
+
tui.newline();
|
|
56
|
+
console.log(`Currently linked to: ${tui.bold(status.repoFullName ?? 'Unknown')}`);
|
|
57
|
+
console.log(` Branch: ${status.branch ?? 'default'}`);
|
|
58
|
+
if (status.directory) {
|
|
59
|
+
console.log(` Directory: ${status.directory}`);
|
|
60
|
+
}
|
|
61
|
+
console.log(` Auto-deploy: ${status.autoDeploy ? 'enabled' : 'disabled'}`);
|
|
62
|
+
console.log(` Preview deploys: ${status.previewDeploy ? 'enabled' : 'disabled'}`);
|
|
63
|
+
tui.newline();
|
|
64
|
+
const confirmed = await tui.confirm(`Are you sure you want to unlink from ${tui.bold(status.repoFullName ?? 'this repository')}?`);
|
|
65
|
+
if (!confirmed) {
|
|
66
|
+
tui.info('Cancelled');
|
|
67
|
+
return { unlinked: false };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
await tui.spinner({
|
|
71
|
+
message: 'Unlinking repository...',
|
|
72
|
+
clearOnSuccess: true,
|
|
73
|
+
callback: () => unlinkProjectFromRepo(apiClient, project.projectId),
|
|
74
|
+
});
|
|
75
|
+
if (!options.json) {
|
|
76
|
+
tui.newline();
|
|
77
|
+
tui.success(`Unlinked from ${tui.bold(status.repoFullName ?? 'repository')}`);
|
|
78
|
+
tui.newline();
|
|
79
|
+
console.log('Automatic deployments have been disabled for this project.');
|
|
80
|
+
}
|
|
81
|
+
return { unlinked: true, repoFullName: status.repoFullName };
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
// Handle user cancellation
|
|
85
|
+
const isCancel = error === '' ||
|
|
86
|
+
(error instanceof Error &&
|
|
87
|
+
(error.message === '' || error.message === 'User cancelled'));
|
|
88
|
+
if (isCancel) {
|
|
89
|
+
tui.newline();
|
|
90
|
+
tui.info('Cancelled');
|
|
91
|
+
return { unlinked: false };
|
|
92
|
+
}
|
|
93
|
+
logger.trace(error);
|
|
94
|
+
return logger.fatal('Failed to unlink repository: %s', error, ErrorCode.INTEGRATION_FAILED);
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=unlink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unlink.js","sourceRoot":"","sources":["../../../src/cmd/git/unlink.ts"],"names":[],"mappings":"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"}
|
package/dist/cmd/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA4DrE"}
|
package/dist/cmd/index.js
CHANGED
|
@@ -7,7 +7,9 @@ export async function discoverCommands() {
|
|
|
7
7
|
import('./build').then((m) => m.command),
|
|
8
8
|
import('./cloud').then((m) => m.command),
|
|
9
9
|
import('./dev').then((m) => m.command),
|
|
10
|
+
import('./git').then((m) => m.gitCommand),
|
|
10
11
|
import('./help').then((m) => m.command),
|
|
12
|
+
import('./integration').then((m) => m.command),
|
|
11
13
|
import('./profile').then((m) => m.command),
|
|
12
14
|
import('./project').then((m) => m.command),
|
|
13
15
|
import('./repl').then((m) => m.command),
|
package/dist/cmd/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { APIClient } from '../../api';
|
|
2
|
+
export interface GithubIntegration {
|
|
3
|
+
id: string;
|
|
4
|
+
githubAccountName: string;
|
|
5
|
+
githubAccountType: 'user' | 'org';
|
|
6
|
+
connectedBy: string;
|
|
7
|
+
connectedAt: string;
|
|
8
|
+
}
|
|
9
|
+
export interface GithubIntegrationStartResult {
|
|
10
|
+
shortId: string;
|
|
11
|
+
}
|
|
12
|
+
export interface GithubIntegrationStatusResult {
|
|
13
|
+
connected: boolean;
|
|
14
|
+
integrations: GithubIntegration[];
|
|
15
|
+
}
|
|
16
|
+
export declare function startGithubIntegration(apiClient: APIClient, orgId: string): Promise<GithubIntegrationStartResult>;
|
|
17
|
+
export declare function getGithubIntegrationStatus(apiClient: APIClient, orgId: string): Promise<GithubIntegrationStatusResult>;
|
|
18
|
+
export interface GithubDisconnectResult {
|
|
19
|
+
disconnected: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function disconnectGithubIntegration(apiClient: APIClient, orgId: string, integrationId: string): Promise<GithubDisconnectResult>;
|
|
22
|
+
export interface ExistingGithubIntegration {
|
|
23
|
+
id: string;
|
|
24
|
+
integrationId: string | null;
|
|
25
|
+
orgId: string;
|
|
26
|
+
orgName: string;
|
|
27
|
+
githubAccountName: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function getExistingGithubIntegrations(apiClient: APIClient, excludeOrgId?: string): Promise<ExistingGithubIntegration[]>;
|
|
30
|
+
export declare function copyGithubIntegration(apiClient: APIClient, fromOrgId: string, toOrgId: string): Promise<boolean>;
|
|
31
|
+
export declare function pollForGithubIntegration(apiClient: APIClient, orgId: string, initialCount: number, timeoutMs?: number): Promise<GithubIntegrationStatusResult>;
|
|
32
|
+
export interface GithubRepo {
|
|
33
|
+
id: number;
|
|
34
|
+
name: string;
|
|
35
|
+
fullName: string;
|
|
36
|
+
private: boolean;
|
|
37
|
+
defaultBranch: string;
|
|
38
|
+
integrationId: string;
|
|
39
|
+
}
|
|
40
|
+
export declare function listGithubRepos(apiClient: APIClient, orgId: string, integrationId?: string): Promise<GithubRepo[]>;
|
|
41
|
+
export interface LinkProjectOptions {
|
|
42
|
+
projectId: string;
|
|
43
|
+
repoFullName: string;
|
|
44
|
+
branch: string;
|
|
45
|
+
autoDeploy: boolean;
|
|
46
|
+
previewDeploy: boolean;
|
|
47
|
+
directory?: string;
|
|
48
|
+
integrationId?: string;
|
|
49
|
+
}
|
|
50
|
+
export declare function linkProjectToRepo(apiClient: APIClient, options: LinkProjectOptions): Promise<boolean>;
|
|
51
|
+
export declare function unlinkProjectFromRepo(apiClient: APIClient, projectId: string): Promise<boolean>;
|
|
52
|
+
export interface ProjectGithubStatus {
|
|
53
|
+
linked: boolean;
|
|
54
|
+
repoFullName?: string;
|
|
55
|
+
branch?: string;
|
|
56
|
+
autoDeploy?: boolean;
|
|
57
|
+
previewDeploy?: boolean;
|
|
58
|
+
directory?: string;
|
|
59
|
+
}
|
|
60
|
+
export declare function getProjectGithubStatus(apiClient: APIClient, projectId: string): Promise<ProjectGithubStatus>;
|
|
61
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/cmd/integration/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { APIResponseSchema } from '@agentuity/server';
|
|
3
|
+
import { StructuredError } from '@agentuity/core';
|
|
4
|
+
const GithubStartDataSchema = z.object({
|
|
5
|
+
shortId: z.string(),
|
|
6
|
+
});
|
|
7
|
+
const GithubIntegrationSchema = z.object({
|
|
8
|
+
id: z.string(),
|
|
9
|
+
githubAccountName: z.string(),
|
|
10
|
+
githubAccountType: z.enum(['user', 'org']),
|
|
11
|
+
connectedBy: z.string(),
|
|
12
|
+
connectedAt: z.string(),
|
|
13
|
+
});
|
|
14
|
+
const GithubStatusDataSchema = z.object({
|
|
15
|
+
connected: z.boolean(),
|
|
16
|
+
integrations: z.array(GithubIntegrationSchema).optional(),
|
|
17
|
+
});
|
|
18
|
+
const GithubIntegrationStartError = StructuredError('GithubIntegrationStartError', 'Error starting GitHub integration flow');
|
|
19
|
+
export async function startGithubIntegration(apiClient, orgId) {
|
|
20
|
+
const resp = await apiClient.get(`/cli/github/start?orgId=${encodeURIComponent(orgId)}`, APIResponseSchema(GithubStartDataSchema));
|
|
21
|
+
if (!resp.success) {
|
|
22
|
+
throw new GithubIntegrationStartError();
|
|
23
|
+
}
|
|
24
|
+
if (!resp.data) {
|
|
25
|
+
throw new GithubIntegrationStartError();
|
|
26
|
+
}
|
|
27
|
+
return { shortId: resp.data.shortId };
|
|
28
|
+
}
|
|
29
|
+
const GithubIntegrationStatusError = StructuredError('GithubIntegrationStatusError', 'Error checking GitHub integration status');
|
|
30
|
+
export async function getGithubIntegrationStatus(apiClient, orgId) {
|
|
31
|
+
const resp = await apiClient.get(`/cli/github/status?orgId=${encodeURIComponent(orgId)}`, APIResponseSchema(GithubStatusDataSchema));
|
|
32
|
+
if (!resp.success) {
|
|
33
|
+
throw new GithubIntegrationStatusError();
|
|
34
|
+
}
|
|
35
|
+
if (!resp.data) {
|
|
36
|
+
throw new GithubIntegrationStatusError();
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
connected: resp.data.connected,
|
|
40
|
+
integrations: resp.data.integrations ?? [],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const GithubDisconnectDataSchema = z.object({
|
|
44
|
+
disconnected: z.boolean(),
|
|
45
|
+
});
|
|
46
|
+
const GithubDisconnectError = StructuredError('GithubDisconnectError', 'Error disconnecting GitHub integration');
|
|
47
|
+
export async function disconnectGithubIntegration(apiClient, orgId, integrationId) {
|
|
48
|
+
const resp = await apiClient.delete(`/cli/github/disconnect?orgId=${encodeURIComponent(orgId)}&integrationId=${encodeURIComponent(integrationId)}`, APIResponseSchema(GithubDisconnectDataSchema));
|
|
49
|
+
if (!resp.success) {
|
|
50
|
+
throw new GithubDisconnectError();
|
|
51
|
+
}
|
|
52
|
+
if (!resp.data) {
|
|
53
|
+
throw new GithubDisconnectError();
|
|
54
|
+
}
|
|
55
|
+
return { disconnected: resp.data.disconnected };
|
|
56
|
+
}
|
|
57
|
+
// Existing integrations
|
|
58
|
+
const GithubExistingIntegrationSchema = z.object({
|
|
59
|
+
id: z.string(),
|
|
60
|
+
integrationId: z.string().nullable(),
|
|
61
|
+
orgId: z.string(),
|
|
62
|
+
orgName: z.string(),
|
|
63
|
+
githubAccountName: z.string(),
|
|
64
|
+
});
|
|
65
|
+
const GithubExistingDataSchema = z.object({
|
|
66
|
+
integrations: z.array(GithubExistingIntegrationSchema),
|
|
67
|
+
});
|
|
68
|
+
const GithubExistingError = StructuredError('GithubExistingError', 'Error fetching existing GitHub integrations');
|
|
69
|
+
export async function getExistingGithubIntegrations(apiClient, excludeOrgId) {
|
|
70
|
+
const query = excludeOrgId ? `?excludeOrgId=${encodeURIComponent(excludeOrgId)}` : '';
|
|
71
|
+
const resp = await apiClient.get(`/cli/github/existing${query}`, APIResponseSchema(GithubExistingDataSchema));
|
|
72
|
+
if (!resp.success || !resp.data) {
|
|
73
|
+
throw new GithubExistingError();
|
|
74
|
+
}
|
|
75
|
+
return resp.data.integrations;
|
|
76
|
+
}
|
|
77
|
+
// Copy integration
|
|
78
|
+
const GithubCopyDataSchema = z.object({
|
|
79
|
+
copied: z.boolean(),
|
|
80
|
+
});
|
|
81
|
+
const GithubCopyError = StructuredError('GithubCopyError', 'Error copying GitHub integration');
|
|
82
|
+
export async function copyGithubIntegration(apiClient, fromOrgId, toOrgId) {
|
|
83
|
+
const resp = await apiClient.post('/cli/github/copy', { fromOrgId, toOrgId }, APIResponseSchema(GithubCopyDataSchema));
|
|
84
|
+
if (!resp.success || !resp.data) {
|
|
85
|
+
throw new GithubCopyError();
|
|
86
|
+
}
|
|
87
|
+
return resp.data.copied;
|
|
88
|
+
}
|
|
89
|
+
// Polling
|
|
90
|
+
const PollForGithubIntegrationError = StructuredError('PollForGithubIntegrationError');
|
|
91
|
+
const PollForGithubIntegrationTimeout = StructuredError('PollForGithubIntegrationTimeout', 'Timed out waiting for GitHub integration. Aborting.');
|
|
92
|
+
export async function pollForGithubIntegration(apiClient, orgId, initialCount, timeoutMs = 600000 // 10 minutes
|
|
93
|
+
) {
|
|
94
|
+
const started = Date.now();
|
|
95
|
+
let delay = 2000; // Start with 2 seconds
|
|
96
|
+
const maxDelay = 10000; // Cap at 10 seconds
|
|
97
|
+
while (Date.now() - started < timeoutMs) {
|
|
98
|
+
const resp = await apiClient.get(`/cli/github/status?orgId=${encodeURIComponent(orgId)}`, APIResponseSchema(GithubStatusDataSchema));
|
|
99
|
+
if (!resp.success || !resp.data) {
|
|
100
|
+
throw new PollForGithubIntegrationError();
|
|
101
|
+
}
|
|
102
|
+
const currentCount = resp.data.integrations?.length ?? 0;
|
|
103
|
+
if (currentCount > initialCount) {
|
|
104
|
+
return {
|
|
105
|
+
connected: true,
|
|
106
|
+
integrations: resp.data.integrations ?? [],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
await Bun.sleep(delay);
|
|
110
|
+
delay = Math.min(delay * 1.5, maxDelay);
|
|
111
|
+
}
|
|
112
|
+
throw new PollForGithubIntegrationTimeout();
|
|
113
|
+
}
|
|
114
|
+
// Project linking
|
|
115
|
+
const GithubRepoSchema = z.object({
|
|
116
|
+
id: z.number(),
|
|
117
|
+
name: z.string(),
|
|
118
|
+
fullName: z.string(),
|
|
119
|
+
private: z.boolean(),
|
|
120
|
+
defaultBranch: z.string(),
|
|
121
|
+
integrationId: z.string(),
|
|
122
|
+
});
|
|
123
|
+
const GithubReposDataSchema = z.object({
|
|
124
|
+
repos: z.array(GithubRepoSchema),
|
|
125
|
+
});
|
|
126
|
+
const GithubReposError = StructuredError('GithubReposError', 'Error fetching GitHub repositories');
|
|
127
|
+
export async function listGithubRepos(apiClient, orgId, integrationId) {
|
|
128
|
+
let url = `/cli/github/repos?orgId=${encodeURIComponent(orgId)}`;
|
|
129
|
+
if (integrationId) {
|
|
130
|
+
url += `&integrationId=${encodeURIComponent(integrationId)}`;
|
|
131
|
+
}
|
|
132
|
+
const resp = await apiClient.get(url, APIResponseSchema(GithubReposDataSchema));
|
|
133
|
+
if (!resp.success || !resp.data) {
|
|
134
|
+
throw new GithubReposError();
|
|
135
|
+
}
|
|
136
|
+
return resp.data.repos;
|
|
137
|
+
}
|
|
138
|
+
const ProjectLinkDataSchema = z.object({
|
|
139
|
+
linked: z.boolean(),
|
|
140
|
+
});
|
|
141
|
+
const ProjectLinkError = StructuredError('ProjectLinkError', 'Error linking project to repository');
|
|
142
|
+
export async function linkProjectToRepo(apiClient, options) {
|
|
143
|
+
const resp = await apiClient.post('/cli/github/link', options, APIResponseSchema(ProjectLinkDataSchema));
|
|
144
|
+
if (!resp.success || !resp.data) {
|
|
145
|
+
throw new ProjectLinkError();
|
|
146
|
+
}
|
|
147
|
+
return resp.data.linked;
|
|
148
|
+
}
|
|
149
|
+
const ProjectUnlinkDataSchema = z.object({
|
|
150
|
+
unlinked: z.boolean(),
|
|
151
|
+
});
|
|
152
|
+
const ProjectUnlinkError = StructuredError('ProjectUnlinkError', 'Error unlinking project from repository');
|
|
153
|
+
export async function unlinkProjectFromRepo(apiClient, projectId) {
|
|
154
|
+
const resp = await apiClient.delete(`/cli/github/unlink?projectId=${encodeURIComponent(projectId)}`, APIResponseSchema(ProjectUnlinkDataSchema));
|
|
155
|
+
if (!resp.success || !resp.data) {
|
|
156
|
+
throw new ProjectUnlinkError();
|
|
157
|
+
}
|
|
158
|
+
return resp.data.unlinked;
|
|
159
|
+
}
|
|
160
|
+
const ProjectGithubStatusSchema = z.object({
|
|
161
|
+
linked: z.boolean(),
|
|
162
|
+
repoFullName: z.string().optional(),
|
|
163
|
+
branch: z.string().optional(),
|
|
164
|
+
autoDeploy: z.boolean().optional(),
|
|
165
|
+
previewDeploy: z.boolean().optional(),
|
|
166
|
+
directory: z.string().optional(),
|
|
167
|
+
});
|
|
168
|
+
const ProjectGithubStatusError = StructuredError('ProjectGithubStatusError', 'Error fetching project GitHub status');
|
|
169
|
+
export async function getProjectGithubStatus(apiClient, projectId) {
|
|
170
|
+
const resp = await apiClient.get(`/cli/github/project-status?projectId=${encodeURIComponent(projectId)}`, APIResponseSchema(ProjectGithubStatusSchema));
|
|
171
|
+
if (!resp.success || !resp.data) {
|
|
172
|
+
throw new ProjectGithubStatusError();
|
|
173
|
+
}
|
|
174
|
+
return resp.data;
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/cmd/integration/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../../src/cmd/integration/github/connect.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,iBAAiB,yCAkO5B,CAAC"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { createSubcommand } from '../../../types';
|
|
2
|
+
import * as tui from '../../../tui';
|
|
3
|
+
import { getCommand } from '../../../command-prefix';
|
|
4
|
+
import { getAPIBaseURL } from '../../../api';
|
|
5
|
+
import { ErrorCode } from '../../../errors';
|
|
6
|
+
import { listOrganizations } from '@agentuity/server';
|
|
7
|
+
import enquirer from 'enquirer';
|
|
8
|
+
import { startGithubIntegration, pollForGithubIntegration, getGithubIntegrationStatus, getExistingGithubIntegrations, copyGithubIntegration, } from '../api';
|
|
9
|
+
export const connectSubcommand = createSubcommand({
|
|
10
|
+
name: 'connect',
|
|
11
|
+
description: 'Connect your GitHub account to enable automatic deployments',
|
|
12
|
+
tags: ['mutating', 'creates-resource', 'slow', 'api-intensive'],
|
|
13
|
+
idempotent: false,
|
|
14
|
+
requires: { auth: true, apiClient: true },
|
|
15
|
+
examples: [
|
|
16
|
+
{
|
|
17
|
+
command: getCommand('integration github connect'),
|
|
18
|
+
description: 'Connect GitHub to your organization',
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
async handler(ctx) {
|
|
22
|
+
const { logger, apiClient } = ctx;
|
|
23
|
+
try {
|
|
24
|
+
// Fetch organizations
|
|
25
|
+
const orgs = await tui.spinner({
|
|
26
|
+
message: 'Fetching organizations...',
|
|
27
|
+
clearOnSuccess: true,
|
|
28
|
+
callback: () => listOrganizations(apiClient),
|
|
29
|
+
});
|
|
30
|
+
if (orgs.length === 0) {
|
|
31
|
+
tui.fatal('No organizations found for your account');
|
|
32
|
+
}
|
|
33
|
+
// Check GitHub status for each org
|
|
34
|
+
const orgStatuses = await tui.spinner({
|
|
35
|
+
message: 'Checking GitHub integration status...',
|
|
36
|
+
clearOnSuccess: true,
|
|
37
|
+
callback: async () => {
|
|
38
|
+
const statuses = await Promise.all(orgs.map(async (org) => {
|
|
39
|
+
const status = await getGithubIntegrationStatus(apiClient, org.id);
|
|
40
|
+
return {
|
|
41
|
+
...org,
|
|
42
|
+
connected: status.connected,
|
|
43
|
+
integrations: status.integrations,
|
|
44
|
+
};
|
|
45
|
+
}));
|
|
46
|
+
return statuses;
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
// Sort orgs alphabetically
|
|
50
|
+
const sortedOrgs = [...orgStatuses].sort((a, b) => a.name.localeCompare(b.name));
|
|
51
|
+
// Build choices showing integration count
|
|
52
|
+
const choices = sortedOrgs.map((org) => {
|
|
53
|
+
const count = org.integrations.length;
|
|
54
|
+
const suffix = count > 0 ? tui.muted(` (${count} GitHub account${count > 1 ? 's' : ''})`) : '';
|
|
55
|
+
return {
|
|
56
|
+
name: org.name,
|
|
57
|
+
message: `${org.name}${suffix}`,
|
|
58
|
+
value: org.id,
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
// Show picker
|
|
62
|
+
const response = await enquirer.prompt({
|
|
63
|
+
type: 'select',
|
|
64
|
+
name: 'orgName',
|
|
65
|
+
message: 'Select an organization to connect',
|
|
66
|
+
choices,
|
|
67
|
+
result(name) {
|
|
68
|
+
// @ts-expect-error - this.map exists at runtime
|
|
69
|
+
return this.map(name)[name];
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
const orgId = response.orgName;
|
|
73
|
+
const selectedOrg = sortedOrgs.find((o) => o.id === orgId);
|
|
74
|
+
const orgDisplay = selectedOrg ? selectedOrg.name : orgId;
|
|
75
|
+
const initialCount = selectedOrg?.integrations.length ?? 0;
|
|
76
|
+
// Check if user has existing GitHub integrations in other orgs
|
|
77
|
+
const existingIntegrations = await tui.spinner({
|
|
78
|
+
message: 'Checking for existing GitHub connections...',
|
|
79
|
+
clearOnSuccess: true,
|
|
80
|
+
callback: () => getExistingGithubIntegrations(apiClient, orgId),
|
|
81
|
+
});
|
|
82
|
+
// Filter out integrations already connected to target org
|
|
83
|
+
const alreadyConnectedNames = new Set(selectedOrg?.integrations.map((i) => i.githubAccountName) ?? []);
|
|
84
|
+
const availableIntegrations = existingIntegrations.filter((i) => !alreadyConnectedNames.has(i.githubAccountName));
|
|
85
|
+
if (availableIntegrations.length > 0) {
|
|
86
|
+
tui.newline();
|
|
87
|
+
// Build checkbox choices
|
|
88
|
+
const integrationChoices = availableIntegrations.map((i) => ({
|
|
89
|
+
name: i.id,
|
|
90
|
+
message: `${i.githubAccountName} ${tui.muted(`(from ${i.orgName})`)}`,
|
|
91
|
+
}));
|
|
92
|
+
console.log(tui.muted('Press enter with none selected to connect a new account'));
|
|
93
|
+
tui.newline();
|
|
94
|
+
const selectResponse = await enquirer.prompt({
|
|
95
|
+
type: 'multiselect',
|
|
96
|
+
name: 'integrationIds',
|
|
97
|
+
message: 'Select GitHub accounts to connect',
|
|
98
|
+
choices: integrationChoices,
|
|
99
|
+
});
|
|
100
|
+
if (selectResponse.integrationIds.length > 0) {
|
|
101
|
+
const selectedIntegrations = availableIntegrations.filter((i) => selectResponse.integrationIds.includes(i.id));
|
|
102
|
+
const accountNames = selectedIntegrations.map((i) => i.githubAccountName).join(', ');
|
|
103
|
+
// Confirm
|
|
104
|
+
const confirmResponse = await enquirer.prompt({
|
|
105
|
+
type: 'confirm',
|
|
106
|
+
name: 'confirm',
|
|
107
|
+
message: `Connect ${tui.bold(accountNames)} to ${tui.bold(orgDisplay)}?`,
|
|
108
|
+
initial: true,
|
|
109
|
+
});
|
|
110
|
+
if (confirmResponse.confirm) {
|
|
111
|
+
await tui.spinner({
|
|
112
|
+
message: `Copying ${selectedIntegrations.length} GitHub connection${selectedIntegrations.length > 1 ? 's' : ''}...`,
|
|
113
|
+
clearOnSuccess: true,
|
|
114
|
+
callback: async () => {
|
|
115
|
+
for (const integration of selectedIntegrations) {
|
|
116
|
+
await copyGithubIntegration(apiClient, integration.orgId, orgId);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
tui.newline();
|
|
121
|
+
tui.success(`GitHub connected to ${tui.bold(orgDisplay)}`);
|
|
122
|
+
tui.newline();
|
|
123
|
+
console.log('You can now link repositories to your projects for automatic deployments.');
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const startResult = await tui.spinner({
|
|
129
|
+
message: 'Getting GitHub authorization URL...',
|
|
130
|
+
clearOnSuccess: true,
|
|
131
|
+
callback: () => startGithubIntegration(apiClient, orgId),
|
|
132
|
+
});
|
|
133
|
+
if (!startResult) {
|
|
134
|
+
tui.error('Failed to get GitHub authorization URL');
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const { shortId } = startResult;
|
|
138
|
+
const apiBaseUrl = getAPIBaseURL(ctx.config);
|
|
139
|
+
const url = `${apiBaseUrl}/github/connect/${shortId}`;
|
|
140
|
+
const copied = await tui.copyToClipboard(url);
|
|
141
|
+
tui.newline();
|
|
142
|
+
if (copied) {
|
|
143
|
+
console.log('GitHub authorization URL copied to clipboard! Open it in your browser:');
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
console.log('Open this URL in your browser to authorize GitHub access:');
|
|
147
|
+
}
|
|
148
|
+
tui.newline();
|
|
149
|
+
console.log(` ${tui.link(url)}`);
|
|
150
|
+
tui.newline();
|
|
151
|
+
console.log(tui.muted('Press Enter to open in your browser, or Ctrl+C to cancel'));
|
|
152
|
+
tui.newline();
|
|
153
|
+
const result = await tui.spinner({
|
|
154
|
+
type: 'countdown',
|
|
155
|
+
message: 'Waiting for GitHub authorization',
|
|
156
|
+
timeoutMs: 600000, // 10 minutes
|
|
157
|
+
clearOnSuccess: true,
|
|
158
|
+
onEnterPress: () => {
|
|
159
|
+
const platform = process.platform;
|
|
160
|
+
if (platform === 'win32') {
|
|
161
|
+
Bun.spawn(['cmd', '/c', 'start', '', url], {
|
|
162
|
+
stdout: 'ignore',
|
|
163
|
+
stderr: 'ignore',
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
const command = platform === 'darwin' ? 'open' : 'xdg-open';
|
|
168
|
+
Bun.spawn([command, url], { stdout: 'ignore', stderr: 'ignore' });
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
callback: async () => {
|
|
172
|
+
return await pollForGithubIntegration(apiClient, orgId, initialCount);
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
tui.newline();
|
|
176
|
+
if (result.connected) {
|
|
177
|
+
tui.success(`GitHub connected to ${tui.bold(orgDisplay)}`);
|
|
178
|
+
tui.newline();
|
|
179
|
+
console.log('You can now link repositories to your projects for automatic deployments.');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
// Handle user cancellation (Ctrl+C) - enquirer throws empty string or Error with empty message
|
|
184
|
+
const isCancel = error === '' ||
|
|
185
|
+
(error instanceof Error &&
|
|
186
|
+
(error.message === '' || error.message === 'User cancelled'));
|
|
187
|
+
if (isCancel) {
|
|
188
|
+
tui.newline();
|
|
189
|
+
tui.info('Cancelled');
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
logger.trace(error);
|
|
193
|
+
logger.fatal('GitHub integration failed: %s', error, ErrorCode.INTEGRATION_FAILED);
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=connect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../../src/cmd/integration/github/connect.ts"],"names":[],"mappings":"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"}
|