implto-tos-axi 0.1.1

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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +255 -0
  3. package/dist/bin/implto-tos-axi.d.ts +2 -0
  4. package/dist/bin/implto-tos-axi.js +16 -0
  5. package/dist/bin/implto-tos-axi.js.map +1 -0
  6. package/dist/src/auth/loopback.d.ts +29 -0
  7. package/dist/src/auth/loopback.js +110 -0
  8. package/dist/src/auth/loopback.js.map +1 -0
  9. package/dist/src/auth/open-browser.d.ts +9 -0
  10. package/dist/src/auth/open-browser.js +24 -0
  11. package/dist/src/auth/open-browser.js.map +1 -0
  12. package/dist/src/auth/provider.d.ts +39 -0
  13. package/dist/src/auth/provider.js +106 -0
  14. package/dist/src/auth/provider.js.map +1 -0
  15. package/dist/src/cli.d.ts +2 -0
  16. package/dist/src/cli.js +183 -0
  17. package/dist/src/cli.js.map +1 -0
  18. package/dist/src/commands/components.d.ts +40 -0
  19. package/dist/src/commands/components.js +417 -0
  20. package/dist/src/commands/components.js.map +1 -0
  21. package/dist/src/commands/context.d.ts +10 -0
  22. package/dist/src/commands/context.js +46 -0
  23. package/dist/src/commands/context.js.map +1 -0
  24. package/dist/src/commands/guide.d.ts +16 -0
  25. package/dist/src/commands/guide.js +203 -0
  26. package/dist/src/commands/guide.js.map +1 -0
  27. package/dist/src/commands/home.d.ts +9 -0
  28. package/dist/src/commands/home.js +33 -0
  29. package/dist/src/commands/home.js.map +1 -0
  30. package/dist/src/commands/init.d.ts +12 -0
  31. package/dist/src/commands/init.js +65 -0
  32. package/dist/src/commands/init.js.map +1 -0
  33. package/dist/src/commands/login.d.ts +13 -0
  34. package/dist/src/commands/login.js +137 -0
  35. package/dist/src/commands/login.js.map +1 -0
  36. package/dist/src/commands/tasks.d.ts +8 -0
  37. package/dist/src/commands/tasks.js +344 -0
  38. package/dist/src/commands/tasks.js.map +1 -0
  39. package/dist/src/commands/tools.d.ts +66 -0
  40. package/dist/src/commands/tools.js +401 -0
  41. package/dist/src/commands/tools.js.map +1 -0
  42. package/dist/src/commands/whoami.d.ts +5 -0
  43. package/dist/src/commands/whoami.js +66 -0
  44. package/dist/src/commands/whoami.js.map +1 -0
  45. package/dist/src/config/binding.d.ts +29 -0
  46. package/dist/src/config/binding.js +42 -0
  47. package/dist/src/config/binding.js.map +1 -0
  48. package/dist/src/config/credentials.d.ts +39 -0
  49. package/dist/src/config/credentials.js +62 -0
  50. package/dist/src/config/credentials.js.map +1 -0
  51. package/dist/src/config/profiles.d.ts +24 -0
  52. package/dist/src/config/profiles.js +64 -0
  53. package/dist/src/config/profiles.js.map +1 -0
  54. package/dist/src/errors.d.ts +21 -0
  55. package/dist/src/errors.js +40 -0
  56. package/dist/src/errors.js.map +1 -0
  57. package/dist/src/flags.d.ts +50 -0
  58. package/dist/src/flags.js +143 -0
  59. package/dist/src/flags.js.map +1 -0
  60. package/dist/src/index.d.ts +6 -0
  61. package/dist/src/index.js +7 -0
  62. package/dist/src/index.js.map +1 -0
  63. package/dist/src/mcp/client.d.ts +85 -0
  64. package/dist/src/mcp/client.js +130 -0
  65. package/dist/src/mcp/client.js.map +1 -0
  66. package/dist/src/output.d.ts +8 -0
  67. package/dist/src/output.js +2 -0
  68. package/dist/src/output.js.map +1 -0
  69. package/dist/src/resolve.d.ts +16 -0
  70. package/dist/src/resolve.js +48 -0
  71. package/dist/src/resolve.js.map +1 -0
  72. package/dist/src/scopes.d.ts +9 -0
  73. package/dist/src/scopes.js +16 -0
  74. package/dist/src/scopes.js.map +1 -0
  75. package/dist/src/session.d.ts +40 -0
  76. package/dist/src/session.js +75 -0
  77. package/dist/src/session.js.map +1 -0
  78. package/dist/src/skill.d.ts +32 -0
  79. package/dist/src/skill.js +149 -0
  80. package/dist/src/skill.js.map +1 -0
  81. package/dist/src/version.d.ts +5 -0
  82. package/dist/src/version.js +6 -0
  83. package/dist/src/version.js.map +1 -0
  84. package/package.json +70 -0
  85. package/skills/implto-tos-delivery/SKILL.md +45 -0
  86. package/skills/implto-tos-tasks/SKILL.md +48 -0
  87. package/skills/implto-tos-workspace/SKILL.md +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/commands/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAgB,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C;;;;;;;;GAQG;AACH,MAAM,MAAM,GAAG,aAAa,CAAC;AAE7B,MAAM,cAAc,GAAc;IAChC,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE,MAAM;KACpB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAc;IAC9C,GAAG,MAAM;IACT,GAAG,cAAc;IACjB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE;IACnF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,EAAE;IACzF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE,WAAW,EAAE,KAAK,EAAE;IAChG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE,WAAW,EAAE,MAAM,EAAE;CAC9F,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAc,EAAE,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;AAEjF,MAAM,CAAC,MAAM,sBAAsB,GAAc;IAC/C,GAAG,MAAM;IACT,GAAG,cAAc;IACjB,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE,MAAM;KACpB;IACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE,WAAW,EAAE,MAAM,EAAE;IAC9F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,EAAE;IAC3F,kBAAkB,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,MAAM;KACpB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,SAAS;KACnB;IACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,WAAW,EAAE,OAAO,EAAE;IACzF,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE,OAAO;QACpB,GAAG,EAAE,CAAC;KACP;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,MAAM;KACpB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,KAAK;KACnB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,IAAI;KACd;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAc,EAAE,GAAG,sBAAsB,EAAE,CAAC;AAEhF,MAAM,CAAC,MAAM,uBAAuB,GAAc;IAChD,GAAG,sBAAsB;IACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE;CACxE,CAAC;AAsBF,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,KAAK,GAAG,CAAC,IAA+B,EAAe,EAAE,CAC7D,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAuB;IAC7D,8EAA8E;IAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB;YACE,MAAM,IAAI,QAAQ,CAChB,GAAG,CAAC,CAAC,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC,CAAC,gCAAgC,EACvE,kBAAkB,EAClB,CAAC,oCAAoC,EAAE,kCAAkC,CAAC,CAC3E,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAA8B;IAChD,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAuB;QAC/C,GAAG,EAAE,KAAK,CAAC,KAAK,CAAuB;QACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAuB;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAgB,EAAE,WAAmB;IAChE,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAgB,CAAC;IACrF,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,SAAS,IAAI,CAAC,UAAgC,EAAE,MAAc;IAC5D,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACrD,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,UAAgC;IACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,iBAAiB,IAAI,IAAI,CAAC;QACxC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,uEAAuE;IACvE,4EAA4E;IAC5E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEhG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,KAAa,EAAE,IAAiB,EAAE,EAAE;QACjE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG;YACX,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnD,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE;SAC/B;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,wEAAwE;IACxE,2EAA2E;IAC3E,+BAA+B;IAC/B,KAAK,MAAM,IAAI,IAAI,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAuB;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAuB,CAAC,CAAC;IAChG,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAuB,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAuB,CAAC;IACvD,MAAM,MAAM,GAAI,KAAK,CAAC,QAAQ,CAAwB,EAAE,WAAW,EAAE,CAAC;IAEtE,MAAM,OAAO,GAAG,GAAG;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,iBAAiB,KAAK,QAAQ,CAAC;SAC5D,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,OAAO;QACR,CAAC,CAAC,SAAS,KAAK,OAAO;QACvB,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACtE;SACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,wEAAwE;QACxE,0EAA0E;QAC1E,WAAW;QACX,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,KAAK,IAAI,qBAAqB,OAAO,OAAO,CAAC,MAAM,sDAAsD,CAAC;IACtH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,MAAM,EAAE,CAAC,CAAC,mBAAmB,IAAI,EAAE;YACnC,OAAO,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;YAC5B,MAAM,EAAE,CAAC,CAAC,mBAAmB,IAAI,EAAE;YACnC,KAAK,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC;YACzB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC;SAC1C,CAAC,CAAC;QACH,IAAI,EAAE;YACJ,uCAAuC;YACvC,uCAAuC;YACvC,+DAA+D;SAChE;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAuB;IACzC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,6BAA6B,EAAE,kBAAkB,EAAE;YACpE,8CAA8C;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAuB,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAc,CAAC;IAEvF,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;QAC1B,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,EAAE;QACtC,MAAM,EAAE,SAAS,CAAC,mBAAmB,IAAI,EAAE;QAC3C,OAAO,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;QACpC,MAAM,EAAE,SAAS,CAAC,mBAAmB,IAAI,EAAE;QAC3C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC;QACjD,KAAK,EAAE,SAAS,CAAC,WAAW,IAAI,CAAC;QACjC,aAAa,EAAE,SAAS,CAAC,iBAAiB,IAAI,CAAC;QAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,EAAE,CAAC,CAAC,SAAS;YAClB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;SAC7B,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,CAAC,gBAAgB,IAAI,EAAE;QACzC,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;QACxC,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,IAAI,EAAE;YACJ,qCAAqC,SAAS,CAAC,IAAI,uBAAuB;YAC1E,qDAAqD,GAAG,SAAS,CAAC,EAAE;SACrE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAA8B;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAuB,CAAC;IAC7D,IAAI,IAAI;QAAE,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,OAAO,KAAK,CAAC,aAAa,CAAuB,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,QAAQ,CAAC,OAAgB,EAAE,WAAmB,EAAE,MAAc;IAC3E,IAAI,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,OAA4D,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,WAAW,EAAE,CAAC,CAGxF,CAAC;QACF,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAChB,yDACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,EACF,WAAW,EACX;YACE,0EAA0E;YAC1E,8BAA8B;SAC/B,CACF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAgB,EAAE,MAAc;IACvD,IAAI,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAEjD,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAgB,EAChB,WAAmB,EACnB,KAA8B,EAC9B,QAA8B;IAE9B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAuB,CAAC;IACrD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACtF,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAuB,CAAC;IACrD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;YAC9C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAuB,CAAC;IACvD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAuB,CAAC;IAC/D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;QACpC,CAAC;aAAM,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAmB,CAAC;YACtE,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAuB,CAAC;IACnD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/E,6EAA6E;IAC7E,yEAAyE;IACzE,6CAA6C;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAuB,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAE5D,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAuB,CAAC;IAC7D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IACpE,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAuB,CAAC;IACzD,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAEzF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAuB;IAC3C,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,QAAQ,CAAC,2BAA2B,EAAE,kBAAkB,EAAE;YAClE,kEAAkE;SACnE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAuB,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE3E,6EAA6E;IAC7E,2EAA2E;IAC3E,8DAA8D;IAC9D,MAAM,QAAQ,GAAI,MAAM,CAAC,mBAAmB,CAA+B,IAAI,IAAI,CAAC;IACpF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,QAAQ,CAC5F,CAAC;IACF,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,QAAQ,CAChB,IAAI,KAAK,CAAC,IAAI,oBACZ,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,kBACvE,GAAG,EACH,kBAAkB,EAClB;YACE,mCAAmC,KAAK,CAAC,IAAI,GAAG;YAChD,qCAAqC,KAAK,CAAC,IAAI,uBAAuB;SACvE,CACF,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACzD,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;QACtD,WAAW;QACX,IAAI;QACJ,GAAG,MAAM;KACV,CAAC,CAAc,CAAC;IAEjB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,MAAM,EAAE,OAAO,CAAC,mBAAmB,IAAI,aAAa;QACpD,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QAClC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;QACxB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE;YACJ,mCAAmC,OAAO,CAAC,IAAI,GAAG;YAClD,uCAAuC;SACxC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAuB;IAC3C,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,+BAA+B,EAAE,kBAAkB,EAAE;YACtE,kEAAkE;SACnE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAuB,CAAC,CAAC;IAChG,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAuB,CAAC;IACnD,IAAI,MAAM;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAEpC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,kBAAkB,EAAE;YAC3D,yCAAyC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE,kBAAkB,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;QACtD,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,GAAG,MAAM;KACV,CAAC,CAAc,CAAC;IAEjB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,MAAM,EAAE,OAAO,CAAC,mBAAmB,IAAI,aAAa;QACpD,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QAClC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC,IAAI,EAAE,CAAC,mCAAmC,OAAO,CAAC,IAAI,GAAG,CAAC;KAC3D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AxiRenderable } from "../output.js";
2
+ /**
3
+ * The one call to make at the start of a session.
4
+ *
5
+ * It answers the three things nothing else can be done without: which project
6
+ * this directory is, what the statuses are called and what their ids are, and
7
+ * who "me" is. Every other command takes names and resolves them against this,
8
+ * so an agent never has to carry an id around.
9
+ */
10
+ export declare function contextCommand(argv: readonly string[]): Promise<AxiRenderable>;
@@ -0,0 +1,46 @@
1
+ import { parseFlags } from "../flags.js";
2
+ import { openSession, requireBinding } from "../session.js";
3
+ import { PROFILE_FLAGS } from "./whoami.js";
4
+ /**
5
+ * The one call to make at the start of a session.
6
+ *
7
+ * It answers the three things nothing else can be done without: which project
8
+ * this directory is, what the statuses are called and what their ids are, and
9
+ * who "me" is. Every other command takes names and resolves them against this,
10
+ * so an agent never has to carry an id around.
11
+ */
12
+ export async function contextCommand(argv) {
13
+ const { flags } = parseFlags(argv, PROFILE_FLAGS);
14
+ const session = openSession({
15
+ profile: flags["profile"],
16
+ url: flags["url"],
17
+ mcpUrl: flags["mcp-url"],
18
+ });
19
+ const binding = requireBinding(session);
20
+ const [me, ctx] = (await Promise.all([
21
+ session.call("get_current_user"),
22
+ session.call("get_tasks_functionality_context", {
23
+ workspaceId: binding.workspaceId,
24
+ projectId: binding.projectId,
25
+ }),
26
+ ]));
27
+ const project = (ctx.projects ?? []).find((p) => p.id === binding.projectId);
28
+ return {
29
+ workspace: binding.workspaceName ?? binding.workspaceId,
30
+ project: binding.projectKey ?? binding.projectId,
31
+ profile: session.profile.name,
32
+ me: { email: me.email, assignee_field: me.assigneeField },
33
+ statuses: (project?.statuses ?? []).map((s) => ({
34
+ name: s.name,
35
+ closed: Boolean(s.isClosed),
36
+ })),
37
+ types: (project?.issueTypes ?? []).map((t) => t.name),
38
+ priorities: ["LOW", "MEDIUM", "HIGH", "URGENT"],
39
+ help: [
40
+ 'implto-tos-axi tasks search "<keywords>" --open',
41
+ "implto-tos-axi tasks mine --open",
42
+ "implto-tos-axi guide workflow",
43
+ ],
44
+ };
45
+ }
46
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAa5C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAuB;IAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,WAAW,CAAC;QAC1B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAuB;QAC/C,GAAG,EAAE,KAAK,CAAC,KAAK,CAAuB;QACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAuB;KAC/C,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE;YAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;KACH,CAAC,CAA6E,CAAC;IAEhF,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7E,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,WAAW;QACvD,OAAO,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS;QAChD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC7B,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,aAAa,EAAE;QACzD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;SAC5B,CAAC,CAAC;QACH,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;QAC/C,IAAI,EAAE;YACJ,iDAAiD;YACjD,kCAAkC;YAClC,+BAA+B;SAChC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { AxiRenderable } from "../output.js";
2
+ /**
3
+ * Guidance, a topic at a time.
4
+ *
5
+ * The cheapest way to make a CLI self-teaching: an agent pulls the one topic it
6
+ * needs instead of carrying a manual in every prompt. That is the same trade
7
+ * the whole tool exists for.
8
+ */
9
+ interface Topic {
10
+ summary: string;
11
+ guidance: string;
12
+ }
13
+ export declare const TOPICS: Record<string, Topic>;
14
+ export declare function guideCommand(argv: readonly string[]): AxiRenderable;
15
+ export declare function guideHelp(): string;
16
+ export {};
@@ -0,0 +1,203 @@
1
+ export const TOPICS = {
2
+ workflow: {
3
+ summary: "Match a change to a task, or file one, and close the loop",
4
+ guidance: [
5
+ "Once per session, in a repository that is bound:",
6
+ " implto-tos-axi context",
7
+ "It gives you the project, the status names, and which field assigns to you.",
8
+ "",
9
+ "Before starting work, look for the task that already covers it:",
10
+ ' implto-tos-axi tasks search "two or three words from the change" --open',
11
+ "Take the keywords from what the change does, not from the file names.",
12
+ "",
13
+ "If something looks like it, read it in full and confirm with the person:",
14
+ " implto-tos-axi tasks show TO-112",
15
+ "Ask them: is this the task, or should I open a new one? Do not decide alone.",
16
+ "",
17
+ "On yes:",
18
+ ' implto-tos-axi tasks update TO-112 --status "In Progress" --assign me',
19
+ "On no:",
20
+ ' implto-tos-axi tasks create "Imperative one-line title" --assign me \\',
21
+ " --description-file - # body on stdin",
22
+ "",
23
+ "When the work is done:",
24
+ ' implto-tos-axi tasks comment TO-112 "What changed, and the PR link"',
25
+ " implto-tos-axi tasks update TO-112 --status Done",
26
+ "",
27
+ "If the change introduced a deliverable the workspace does not record,",
28
+ "`guide components` is the same procedure for the component tree.",
29
+ ].join("\n"),
30
+ },
31
+ components: {
32
+ summary: "The deliverables tree: find one, create one, hang it in the right place",
33
+ guidance: [
34
+ "Components are what the workspace is delivering - services, modules,",
35
+ "APIs - in a parent-child tree. Tasks hang off them, so a component",
36
+ "that does not exist yet is a task with nowhere to go.",
37
+ "",
38
+ "See the shape before changing it:",
39
+ " implto-tos-axi components list --tree",
40
+ "",
41
+ "Then read the one you think you mean:",
42
+ ' implto-tos-axi components show "Billing API"',
43
+ "",
44
+ "Create the missing one under its parent:",
45
+ ' implto-tos-axi components create "Billing API" --parent Platform \\',
46
+ " --type API --estimate 40 --description-file -",
47
+ "",
48
+ "Connect one that is in the wrong place, or not connected at all:",
49
+ ' implto-tos-axi components update "Billing API" --parent "Payments"',
50
+ ' implto-tos-axi components update "Billing API" --system "Stripe"',
51
+ ' implto-tos-axi components update "Billing API" --parent none # top level',
52
+ "",
53
+ "Everything is matched by name, case-insensitively, and two matches is",
54
+ "an error naming both. Omitting a flag leaves that link alone; `none`",
55
+ "clears it.",
56
+ "",
57
+ "A component created in a bound checkout is linked to that checkout's",
58
+ "project. Pass --project none for one that belongs to no project, or",
59
+ "--project <key> for another.",
60
+ "",
61
+ "Delivery phases and per-phase estimates have no command of their own:",
62
+ " implto-tos-axi tools call list_phases",
63
+ " implto-tos-axi tools show set_component_phase_estimate",
64
+ "",
65
+ "Ask before creating. A deliverable somebody else already named, under",
66
+ "a different word, is worse than one that is missing.",
67
+ ].join("\n"),
68
+ },
69
+ tools: {
70
+ summary: "Reach any tool the server has, without carrying its schema",
71
+ guidance: [
72
+ "tasks and components are the two areas worth a command of their own.",
73
+ "Everything else - process maps, people, departments, org roles, the",
74
+ "systems a workspace uses, the client conversation - is reached by",
75
+ "asking the server what it has and calling it.",
76
+ "",
77
+ " implto-tos-axi tools The areas, and which you hold",
78
+ " implto-tos-axi tools domains organization What it covers, and its rules",
79
+ " implto-tos-axi tools list --domain organization",
80
+ " implto-tos-axi tools show create_person",
81
+ ' implto-tos-axi tools call create_person name="Ann Lee" email=ann@acme.com',
82
+ "",
83
+ "Read the area's rules before writing. They say which lookup to run",
84
+ "first, and ids from one workspace are never valid in another.",
85
+ "",
86
+ "Arguments are name=value pairs, typed against the tool's own schema:",
87
+ "a number arrives as a number, and a nullable field is cleared with",
88
+ "`field=null`. A misspelled one is refused here, naming the real ones,",
89
+ "rather than sent and ignored.",
90
+ "",
91
+ " key=@path read the value from a file (markdown bodies, mermaid)",
92
+ " key=@- read it from stdin",
93
+ " --json '{…}' pass a nested argument whole",
94
+ " --json-file the same, from a file",
95
+ "",
96
+ "workspaceId is filled in from the binding, or from --workspace <name>,",
97
+ "and the result says which one was used.",
98
+ "",
99
+ "An area missing from `tools` is one this credential was not granted.",
100
+ "Sign in again asking for it: login --scopes tasks,process_maps.",
101
+ ].join("\n"),
102
+ },
103
+ auth: {
104
+ summary: "Signing in, profiles, and the headless path",
105
+ guidance: [
106
+ "implto-tos-axi login Opens a browser against prod",
107
+ "implto-tos-axi login --profile dev Or dev, or local",
108
+ "",
109
+ "The browser path needs somebody at the keyboard. With no terminal",
110
+ "attached it refuses with NEEDS_HUMAN rather than opening a window",
111
+ "nobody will see: ask the person you are working for to run it.",
112
+ "",
113
+ "Headless, for CI or a container:",
114
+ " TOS_TOKEN=tos_… Set in the environment; outranks everything on disk",
115
+ " implto-tos-axi login --token tos_… Pastes a key and keeps it",
116
+ "Both come from Settings, Personal credentials, in the web app.",
117
+ "",
118
+ "Narrow what a credential may reach with --scopes tasks. It shrinks the",
119
+ "tool list too, which is the point.",
120
+ "",
121
+ "The credential lives in ~/.config/implto-tos-axi/credentials.json, mode",
122
+ "0600. `logout` removes it from this machine; revoking it for good is a",
123
+ "button on the settings page.",
124
+ ].join("\n"),
125
+ },
126
+ binding: {
127
+ summary: "How a directory knows which project it belongs to",
128
+ guidance: [
129
+ "implto-tos-axi init --workspace <name> --project <key>",
130
+ "writes .implto-tos.json in the current directory. Every task command",
131
+ "walks up from the working directory to find it, so it works from",
132
+ "anywhere in the tree.",
133
+ "",
134
+ "Commit it if the whole team uses this tool; gitignore it if it is just",
135
+ "you. The ids in it are authoritative and the names are for reading.",
136
+ "",
137
+ "Run init again with --force to rebind.",
138
+ ].join("\n"),
139
+ },
140
+ statuses: {
141
+ summary: "Status names, --open, and what closed means",
142
+ guidance: [
143
+ "Statuses are per project and are matched by name, case-insensitively,",
144
+ "so --status 'in progress' finds In Progress. Two matches is an error",
145
+ "naming both rather than a guess.",
146
+ "",
147
+ "--open means every status the project does not count as closed. It is",
148
+ "the right default when looking for work in flight.",
149
+ "",
150
+ "implto-tos-axi context lists them, with which ones are closed.",
151
+ ].join("\n"),
152
+ },
153
+ output: {
154
+ summary: "The output format and the exit codes",
155
+ guidance: [
156
+ "Every command prints TOON: compact, tabular where it can be, and",
157
+ "readable without a parser. Each payload ends with a `help` list naming",
158
+ "what to run next. The two commands whose content is prose rather than",
159
+ "data - `guide <topic>` and `components list --tree` - print plain text.",
160
+ "",
161
+ "Exit 0 succeeded. Exit 2 is the caller's mistake - a bad flag, a name",
162
+ "that matches nothing or matches several - so a script can tell it from",
163
+ "work that ran and failed. Everything else exits 1.",
164
+ "",
165
+ "Every error carries a code (AUTH_MISSING, NO_BINDING, AMBIGUOUS,",
166
+ "FORBIDDEN, NEEDS_HUMAN …) and the command that fixes it.",
167
+ ].join("\n"),
168
+ },
169
+ };
170
+ export function guideCommand(argv) {
171
+ const [topic] = argv;
172
+ if (!topic) {
173
+ return {
174
+ topics: Object.entries(TOPICS).map(([name, t]) => ({ topic: name, summary: t.summary })),
175
+ help: ["implto-tos-axi guide workflow"],
176
+ };
177
+ }
178
+ const found = TOPICS[topic];
179
+ if (!found) {
180
+ return {
181
+ error: `No guide called "${topic}".`,
182
+ topics: Object.keys(TOPICS),
183
+ };
184
+ }
185
+ // Prose, printed as prose. Everything else is TOON because it is data; a
186
+ // procedure rendered as one escaped string with \n in it is the format
187
+ // fighting the content, and it is read by whoever is about to follow it.
188
+ return `${topic} - ${found.summary}\n\n${found.guidance}\n`;
189
+ }
190
+ export function guideHelp() {
191
+ return `${[
192
+ "command: guide",
193
+ "description: Topic-sized guidance, pulled one topic at a time",
194
+ "",
195
+ "usage:",
196
+ " implto-tos-axi guide List the topics",
197
+ " implto-tos-axi guide <topic> Read one",
198
+ "",
199
+ "topics:",
200
+ ...Object.entries(TOPICS).map(([n, t]) => ` ${n.padEnd(10)} ${t.summary}`),
201
+ ].join("\n")}\n`;
202
+ }
203
+ //# sourceMappingURL=guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide.js","sourceRoot":"","sources":["../../../src/commands/guide.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { AxiRenderable } from "../output.js";
2
+ /**
3
+ * What a bare invocation shows: live state, never help text.
4
+ *
5
+ * An agent that runs the bin with no arguments should learn where it stands -
6
+ * signed in or not, bound or not - rather than read a menu it could have got
7
+ * from --help.
8
+ */
9
+ export declare function homeView(): AxiRenderable;
@@ -0,0 +1,33 @@
1
+ import { findBinding } from "../config/binding.js";
2
+ import { readCredential } from "../config/credentials.js";
3
+ import { envToken } from "../config/credentials.js";
4
+ import { DEFAULT_PROFILE } from "../config/profiles.js";
5
+ /**
6
+ * What a bare invocation shows: live state, never help text.
7
+ *
8
+ * An agent that runs the bin with no arguments should learn where it stands -
9
+ * signed in or not, bound or not - rather than read a menu it could have got
10
+ * from --help.
11
+ */
12
+ export function homeView() {
13
+ const found = findBinding();
14
+ const profile = found?.binding.profile ?? DEFAULT_PROFILE;
15
+ const credential = readCredential(profile);
16
+ const signedIn = Boolean(envToken() ?? credential?.staticToken ?? credential?.tokens?.access_token);
17
+ return {
18
+ profile,
19
+ signed_in_as: envToken() ? "(TOS_TOKEN)" : (credential?.email ?? null),
20
+ bound_to: found
21
+ ? `${found.binding.workspaceName ?? found.binding.workspaceId} / ${found.binding.projectKey ?? found.binding.projectId}`
22
+ : null,
23
+ binding_file: found?.path ?? null,
24
+ help: [
25
+ ...(signedIn ? [] : ["implto-tos-axi login"]),
26
+ ...(found
27
+ ? ["implto-tos-axi context"]
28
+ : ["implto-tos-axi init --workspace <name> --project <key>"]),
29
+ "implto-tos-axi guide workflow",
30
+ ],
31
+ };
32
+ }
33
+ //# sourceMappingURL=home.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home.js","sourceRoot":"","sources":["../../../src/commands/home.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;IAC1D,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,CACtB,QAAQ,EAAE,IAAI,UAAU,EAAE,WAAW,IAAI,UAAU,EAAE,MAAM,EAAE,YAAY,CAC1E,CAAC;IAEF,OAAO;QACL,OAAO;QACP,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI,IAAI,CAAC;QACtE,QAAQ,EAAE,KAAK;YACb,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;YACxH,CAAC,CAAC,IAAI;QACR,YAAY,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;QACjC,IAAI,EAAE;YACJ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAC7C,GAAG,CAAC,KAAK;gBACP,CAAC,CAAC,CAAC,wBAAwB,CAAC;gBAC5B,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC;YAC/D,+BAA+B;SAChC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type FlagSpecs } from "../flags.js";
2
+ import type { AxiRenderable } from "../output.js";
3
+ export declare const INIT_FLAGS: FlagSpecs;
4
+ /**
5
+ * Binds this working copy to a project.
6
+ *
7
+ * With no arguments it lists what the person can reach and exits 2, rather than
8
+ * prompting: a prompt is worthless to an agent, and a caller error is exactly
9
+ * what "you have to say which" is. The listing is in the error, so nothing has
10
+ * to be run twice to recover.
11
+ */
12
+ export declare function initCommand(argv: readonly string[]): Promise<AxiRenderable>;
@@ -0,0 +1,65 @@
1
+ import { parseFlags } from "../flags.js";
2
+ import { openSession } from "../session.js";
3
+ import { findBinding, writeBinding } from "../config/binding.js";
4
+ import { TosError } from "../errors.js";
5
+ import { pick } from "../resolve.js";
6
+ import { PROFILE_FLAGS } from "./whoami.js";
7
+ export const INIT_FLAGS = {
8
+ ...PROFILE_FLAGS,
9
+ workspace: { kind: "string", description: "Workspace name or id", placeholder: "name" },
10
+ project: { kind: "string", description: "Project key, name or id", placeholder: "key" },
11
+ force: { kind: "boolean", description: "Overwrite an existing binding" },
12
+ };
13
+ /**
14
+ * Binds this working copy to a project.
15
+ *
16
+ * With no arguments it lists what the person can reach and exits 2, rather than
17
+ * prompting: a prompt is worthless to an agent, and a caller error is exactly
18
+ * what "you have to say which" is. The listing is in the error, so nothing has
19
+ * to be run twice to recover.
20
+ */
21
+ export async function initCommand(argv) {
22
+ const { flags } = parseFlags(argv, INIT_FLAGS);
23
+ const session = openSession({
24
+ profile: flags["profile"],
25
+ url: flags["url"],
26
+ mcpUrl: flags["mcp-url"],
27
+ });
28
+ const existing = findBinding();
29
+ if (existing && !flags["force"]) {
30
+ throw new TosError(`Already bound, in ${existing.path}.`, "VALIDATION_ERROR", [
31
+ "implto-tos-axi init --force … # to rebind",
32
+ "implto-tos-axi context # to see the current binding",
33
+ ]);
34
+ }
35
+ const me = (await session.call("get_current_user"));
36
+ const wanted = flags["workspace"];
37
+ const wantedProject = flags["project"];
38
+ if (!wanted || !wantedProject) {
39
+ throw new TosError("Name the workspace and the project to bind to.", "VALIDATION_ERROR", [
40
+ "implto-tos-axi init --workspace <name> --project <key>",
41
+ ...me.workspaces.flatMap((w) => [
42
+ ` ${w.name}: ${w.projects.map((p) => p.key).join(", ") || "(no projects)"}`,
43
+ ]),
44
+ ]);
45
+ }
46
+ const workspace = pick(me.workspaces, wanted, (w) => [w.id, w.name]);
47
+ const project = pick(workspace.projects, wantedProject, (p) => [p.id, p.key, p.name]);
48
+ const path = writeBinding(process.cwd(), {
49
+ version: 1,
50
+ profile: session.profile.name,
51
+ workspaceId: workspace.id,
52
+ workspaceName: workspace.name,
53
+ projectId: project.id,
54
+ projectKey: project.key,
55
+ projectName: project.name,
56
+ });
57
+ return {
58
+ bound: path,
59
+ workspace: workspace.name,
60
+ project: `${project.key} - ${project.name}`,
61
+ profile: session.profile.name,
62
+ help: ["implto-tos-axi context", "implto-tos-axi tasks mine --open"],
63
+ };
64
+ }
65
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type FlagSpecs } from "../flags.js";
2
+ import type { AxiRenderable } from "../output.js";
3
+ export declare const LOGIN_FLAGS: FlagSpecs;
4
+ /**
5
+ * Two ways in, and the browser one is the ordinary one.
6
+ *
7
+ * `--token` exists for a machine nobody will ever open a browser on. It is also
8
+ * what the browser path degrades to: if there is no terminal attached, this
9
+ * refuses rather than opening a window nobody will see, because an agent
10
+ * waiting five minutes on a browser that never appeared is worse than an error
11
+ * naming the flag that would have worked.
12
+ */
13
+ export declare function loginCommand(argv: readonly string[]): Promise<AxiRenderable>;
@@ -0,0 +1,137 @@
1
+ import { auth } from "@modelcontextprotocol/sdk/client/auth.js";
2
+ import { MCP_SCOPES } from "../scopes.js";
3
+ import { parseFlags } from "../flags.js";
4
+ import { resolveProfile, PROFILE_NAMES } from "../config/profiles.js";
5
+ import { readCredential, writeCredential } from "../config/credentials.js";
6
+ import { startLoopback } from "../auth/loopback.js";
7
+ import { FileAuthProvider } from "../auth/provider.js";
8
+ import { callTool } from "../mcp/client.js";
9
+ import { TosError } from "../errors.js";
10
+ export const LOGIN_FLAGS = {
11
+ profile: {
12
+ kind: "string",
13
+ description: `Which deployment to sign in to: ${PROFILE_NAMES.join(", ")}`,
14
+ placeholder: "name",
15
+ example: "prod",
16
+ },
17
+ url: {
18
+ kind: "string",
19
+ description: "A deployment by address instead of a profile",
20
+ placeholder: "origin",
21
+ },
22
+ "mcp-url": {
23
+ kind: "string",
24
+ description: "The MCP endpoint, when it is not behind the site origin",
25
+ placeholder: "url",
26
+ },
27
+ token: {
28
+ kind: "string",
29
+ description: "Paste a personal key instead of opening a browser",
30
+ placeholder: "tos_…",
31
+ },
32
+ scopes: {
33
+ kind: "string",
34
+ description: `Areas to ask for (default all): ${MCP_SCOPES.join(",")}`,
35
+ placeholder: "a,b",
36
+ },
37
+ timeout: {
38
+ kind: "number",
39
+ description: "Seconds to wait for the browser",
40
+ example: 300,
41
+ min: 10,
42
+ max: 3600,
43
+ },
44
+ };
45
+ /**
46
+ * Two ways in, and the browser one is the ordinary one.
47
+ *
48
+ * `--token` exists for a machine nobody will ever open a browser on. It is also
49
+ * what the browser path degrades to: if there is no terminal attached, this
50
+ * refuses rather than opening a window nobody will see, because an agent
51
+ * waiting five minutes on a browser that never appeared is worse than an error
52
+ * naming the flag that would have worked.
53
+ */
54
+ export async function loginCommand(argv) {
55
+ const { flags } = parseFlags(argv, LOGIN_FLAGS);
56
+ const profile = resolveProfile({
57
+ profile: flags["profile"],
58
+ url: flags["url"],
59
+ mcpUrl: flags["mcp-url"],
60
+ });
61
+ const pasted = flags["token"];
62
+ if (pasted)
63
+ return signInWithKey(profile, pasted);
64
+ if (!process.stdout.isTTY && !process.env["TOS_AXI_ALLOW_BROWSER"]) {
65
+ throw new TosError("Signing in through the browser needs somebody at the keyboard.", "NEEDS_HUMAN", [
66
+ "Ask the person you are working for to run: implto-tos-axi login",
67
+ "Or paste a key: implto-tos-axi login --token tos_…",
68
+ "Or set TOS_TOKEN in the environment.",
69
+ ]);
70
+ }
71
+ const scope = (flags["scopes"] ?? MCP_SCOPES.join(" "))
72
+ .split(/[\s,]+/)
73
+ .filter(Boolean)
74
+ .join(" ");
75
+ const timeoutMs = (flags["timeout"] ?? 300) * 1000;
76
+ const loopback = await startLoopback({ issuer: profile.origin, timeoutMs });
77
+ const lines = [];
78
+ const provider = new FileAuthProvider(profile, loopback.redirectUri, loopback.state, `${scope} offline_access`, (url) => lines.push(`Opening ${url.toString()}`));
79
+ try {
80
+ // The SDK does discovery, registration and the authorization request; it
81
+ // answers REDIRECT once the browser has been sent somewhere.
82
+ const started = await auth(provider, { serverUrl: profile.mcpUrl, scope });
83
+ if (started !== "REDIRECT" && started !== "AUTHORIZED") {
84
+ throw new TosError(`Could not start the sign-in (${started}).`, "LOGIN_FAILED");
85
+ }
86
+ if (started === "REDIRECT") {
87
+ const { code } = await loopback.wait;
88
+ const finished = await auth(provider, {
89
+ serverUrl: profile.mcpUrl,
90
+ authorizationCode: code,
91
+ scope,
92
+ });
93
+ if (finished !== "AUTHORIZED") {
94
+ throw new TosError(`The sign-in did not complete (${finished}).`, "LOGIN_FAILED");
95
+ }
96
+ }
97
+ }
98
+ finally {
99
+ loopback.close();
100
+ }
101
+ const me = (await callTool({ mcpUrl: profile.mcpUrl, authProvider: provider, profile: profile.name }, "get_current_user"));
102
+ writeCredential(profile.name, {
103
+ ...(readCredential(profile.name) ?? { origin: profile.origin }),
104
+ origin: profile.origin,
105
+ mcpUrl: profile.mcpUrl,
106
+ userId: me.id,
107
+ email: me.email,
108
+ assigneeField: me.assigneeField,
109
+ });
110
+ return {
111
+ signed_in: me.email,
112
+ profile: profile.name,
113
+ server: profile.mcpUrl,
114
+ scopes: scope.split(" "),
115
+ help: ["implto-tos-axi init # bind this repository to a project", "implto-tos-axi context"],
116
+ };
117
+ }
118
+ /** A key from the settings page, validated before it is written down. */
119
+ async function signInWithKey(profile, token) {
120
+ const me = (await callTool({ mcpUrl: profile.mcpUrl, token, profile: profile.name }, "get_current_user"));
121
+ writeCredential(profile.name, {
122
+ origin: profile.origin,
123
+ mcpUrl: profile.mcpUrl,
124
+ staticToken: token,
125
+ userId: me.id,
126
+ email: me.email,
127
+ assigneeField: me.assigneeField,
128
+ });
129
+ return {
130
+ signed_in: me.email,
131
+ profile: profile.name,
132
+ server: profile.mcpUrl,
133
+ scopes: me.scopes,
134
+ help: ["implto-tos-axi init", "implto-tos-axi context"],
135
+ };
136
+ }
137
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type FlagSpecs } from "../flags.js";
2
+ import type { AxiRenderable } from "../output.js";
3
+ export declare const SEARCH_FLAGS: FlagSpecs;
4
+ export declare const SHOW_FLAGS: FlagSpecs;
5
+ export declare const CREATE_FLAGS: FlagSpecs;
6
+ export declare const UPDATE_FLAGS: FlagSpecs;
7
+ export declare const COMMENT_FLAGS: FlagSpecs;
8
+ export declare function tasksCommand(argv: readonly string[]): Promise<AxiRenderable>;