{"_id":"@abgov/adsp-cli","_rev":"17-d674a919b017cd27e5928fb7627033b9","name":"@abgov/adsp-cli","dist-tags":{"latest":"1.11.0"},"versions":{"0.0.1":{"name":"@abgov/adsp-cli","version":"0.0.1","license":"Apache-2.0","_id":"@abgov/adsp-cli@0.0.1","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"74b058df7948ae052891496029ac0f3a0b89f913","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-0.0.1.tgz","fileCount":38,"integrity":"sha512-+P6nuLhZ9iJxzJSjyFuT5WB3XQFGxwNAz/KfyZHpfTAG9oiL5gWoRfLHqpf5TNAMsv6fQx5ZCX+FYqwgxeRvsA==","signatures":[{"sig":"MEQCIA5XeFsED+PCwtlGXZJhgIkBLjbeIlS/VptyeLTuKEMvAiAwIOjzPflHxUGXIKpFTfIdxiyZ6A+EPl5hqIaGNTj0Xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84463},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"c6c9e6b9bd00b52b511dcb994b9022ed386bbf02","_npmUser":{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.8.0","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_0.0.1_1783457358321_0.7910011300551687","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@abgov/adsp-cli","version":"1.0.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.0.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"b353750d2a8064da8e35d95cfa4943ef0631de63","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.0.0.tgz","fileCount":38,"integrity":"sha512-TMkv65g3j4n6sWESb69wJEXVnBN2MZAgv7SP0vR+8Y72yL0K3i6Tf8VfsRXqMGLeVTJ57frz+KZpXH5gYmJWhg==","signatures":[{"sig":"MEUCIHNruWGZZUoKeIOL6FKzpb0ivrB/RwVC5nybjoy7Hc+lAiEAhxhJMuOm288Y95a7bGGWK3TE6ta5hkmRYfMT+IZjqLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79337},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"7c99923f4cb24293d55cdc4b7d6fe753e59d29c8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.0.0_1783475382853_0.05924423351221675","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@abgov/adsp-cli","version":"1.1.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.1.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"eea7cabe01a51e684725a7c4380f87e2db2dfbed","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.1.0.tgz","fileCount":38,"integrity":"sha512-1YuL3mqGr1wJixjgMRUSEA6Q368Sagyt7Lraq8RFUOvC5HafZZFgDpV68vk4kELZPxkH9oXFxkBz1nrNdfY8eg==","signatures":[{"sig":"MEUCIQCrjWbPW12kACU3e+B081oj4jJMXyAbf+76de1ErKWn6gIgVte07NvBE6rr+E/HkmNo/KSor3jUvSj8RcAgEwvEnrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84147},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"a7efa07d22b04074c62d71949ad103bc9d9ad87b","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.1.0_1783525027132_0.8207954794898757","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@abgov/adsp-cli","version":"1.1.1","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.1.1","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"0d08e3d2d321c776a3f78aa22c03bc6f572e7a70","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.1.1.tgz","fileCount":38,"integrity":"sha512-yovakZjCEJc+5F7CBp3AFkjm5uRchwEbZS7zJRL8+6mQXy1auEfccgE6O9nU2VTYCHXjD9YilPU21lCf19RbMA==","signatures":[{"sig":"MEUCIFYirY4VeL+TPdsoyEY3xOl7Iov5bEdF3nJNCutk+dujAiEAoR9JhEFi252UIosJ7KtWwUMm5JxDOvm6qSkMrkflG2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84491},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"4d221282aaab5a3a21cdb9f5a960464bccc984e6","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.1.1_1783529755456_0.1164178271136489","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@abgov/adsp-cli","version":"1.2.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.2.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"8d2e630ee7267a3db8134bce67ca8f8ed6efb8f9","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.2.0.tgz","fileCount":38,"integrity":"sha512-JfJIXRRGTsMAQ4wwFxNx+e3J82RLqaWZbN4gWmCCTWT5CAsjBTlnjDrjRHa400PKUElaj+kONDSgO09srJyOfA==","signatures":[{"sig":"MEYCIQC+Q8Qs5ZIKIRnP1G3uFFWrkD6otwfhOJB76SILF4/DQAIhAPeIM/yrmKzq7y5t+QaljJQpWjnX2qY94kjTPGWi67/P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85927},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"241d8fa0a4cd11940585610a4bef25ca92627400","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.2.0_1784558492585_0.7456456448724673","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@abgov/adsp-cli","version":"1.3.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.3.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"d0aa799305f40281991a3a99eb7cafbac4ed0fd6","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.3.0.tgz","fileCount":38,"integrity":"sha512-+UYPwZ5ARraSTVzWRbX4zXc4Vsb8E/EqhcIJ5sdO6s66Kz2FRRdB+X3J1K/nPTB5EDi3gp1FANPz2MgAC8/ojA==","signatures":[{"sig":"MEYCIQD+dZrHPOGJuyyERLMduchlCSx+GDni90SaHuqDWMtMhAIhAKSkJozKX499NIU+L2kK4/iAVAcMvrD7STtVLmpUkVhX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87309},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ce84075041c1cda2f3c27a26b8c81910de31ddd2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.3.0_1784647669994_0.5396403964494954","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@abgov/adsp-cli","version":"1.4.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.4.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"2457f9a8e7fd2f68fd40230b41741ce70c5bab65","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.4.0.tgz","fileCount":38,"integrity":"sha512-m1qpc9S8BK2ZOYycQTo3VnrObBECHJUgBgJPqrDJPtZq80UzbvhAqcV4SCvpgyLKj+1CrB/NiYs1iHnFdP4YGg==","signatures":[{"sig":"MEUCIF43y03j6HIgvDzMUPYxRVKsy6hgsbpJ3BAFx/67id++AiEAyO2vftjms2mhHUfP1RF0LLyQgHqeweyUFA1Z0SAGWog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99630},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"a1fdcd4deaefc9bde1108bdd72f3085ed790d922","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.4.0_1784660326031_0.9052904707965965","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@abgov/adsp-cli","version":"1.5.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.5.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"faa17f0f4b744c7f9731beab640ee185c1cb4624","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.5.0.tgz","fileCount":38,"integrity":"sha512-DNB6TdNlicMPZfSGhEdkAgQZAExnV8L56UtH9q4TSCKzOBL4rktrxvZqHg55OX4HVCs0nUIcygeGrm8ZCghZzg==","signatures":[{"sig":"MEUCIQDzlERHDy/cgN+KCdRQ8SbI/BuJLbGxS8anysHfTOLsvwIgbNAF+lpPkqLJ1Nq2znVjGg+b4VmaVVg7lqSDJ2+OSjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99630},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"813cb678891e28cf6ee0066498302eb66248289f","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.5.0_1784733248296_0.39970026918494916","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@abgov/adsp-cli","version":"1.5.1","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.5.1","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"946aae59203855241881dc00a5460217d2e235fd","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.5.1.tgz","fileCount":38,"integrity":"sha512-9JGe5D8QPP7dOz7jYFTqxB69sA7QzdVyAJ4IR/0I+Prm10otbhC5ZTjWJqsF+Vll0JRUEy48aPiJ9Y5+PBinAw==","signatures":[{"sig":"MEUCIQDiVaj/fIoFPf5cMGkEiWytThodG9foWkzgGVVvR8c81wIgYTubz6qgzoMX9FWBUHhAkgBj32GnVKoHlUlza/9DFVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100339},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"4d552502a796b50eddf8f9022e8ddb426bd58049","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.5.1_1784852084405_0.11347456914371246","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@abgov/adsp-cli","version":"1.5.2","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.5.2","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"a1d759e53de76118b4a74480f6ed38a673f7f547","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.5.2.tgz","fileCount":38,"integrity":"sha512-O2VyNZBoCcSr+D82YsszKSg7M0kKAuj3SiJ2Hii+5XYhyqbk6bD0cPFFPDUKtwBiNvffgfCalGUDg9Lj0qbkUA==","signatures":[{"sig":"MEUCIDFFKYYtqiEPaVz0Qyws87NXvg8DQZmH83jgsMkOklxWAiEA8ggOSCpvQ1WIdzlcH2D4a0U2QZh4RlRvvfW40KZp0uM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101125},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"9802f01cf46d54dc5b98f041911a8db122da04b9","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.5.2_1784856733204_0.9349140973581991","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@abgov/adsp-cli","version":"1.6.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.6.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"ed0ca9b068318904d4056be5c39a03316c6313d9","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.6.0.tgz","fileCount":38,"integrity":"sha512-jBh3t5aPGJ3EVc9E5UW9fJQsLKL2ExmEfmwIZaHSzCdkiNmy6NzXxH0rACjFSChStVVGRszQx3UV8neAKQKoiA==","signatures":[{"sig":"MEYCIQDfU/a0LhNB/VWJO+gKLwljR9OXI9ge/bz8tSAuro9TKQIhAJSCL6L1wOZkNPcSnhiqj5hENHvG6HFt/wWmuARK6+9J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101747},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"6c821a6536c65f192727d58d23be91d2c766cb67","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.6.0_1785272148400_0.665609556407746","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@abgov/adsp-cli","version":"1.7.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.7.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"e77a6621037d74c0e3b790fc6db4d9c183e5d9b1","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.7.0.tgz","fileCount":38,"integrity":"sha512-bvyJufTDxh0o9iDWsbaBj0zjhPKp9/UGmJ8htUi3Pv1y/sjNkRDgiisAmU+/SuM/edXq/Iah9DPvx0tax9wN0w==","signatures":[{"sig":"MEYCIQCH4Um3W51pGN28r0Iv9NvcCDlVeB5RVLeI+1jznXDdGwIhAIa3Izc6Jb+nLBHbSYyXVVO7OBPQP095HPHsR+XsujcG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116128},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"329f0ab9e194d461e94aa8843c004a231dc73352","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.7.0_1785353433272_0.2799090650357714","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@abgov/adsp-cli","version":"1.8.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.8.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"50ddc8bcfd186bc8d806317e8d0b9b068e89e340","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.8.0.tgz","fileCount":41,"integrity":"sha512-nJphvfqHJCgKBKzWeNS+ChhB4ED6HDK0oFIRvPuEaDYTFssrXLiNCXj1SlSM6ZlVINeB0w7A6ic0eYQcr3Bcjw==","signatures":[{"sig":"MEUCIFve41PY9s8fopPm8YHkwlKZMqnjWaMTDHrX+y9L4LhkAiEA4IYuHpQRwN3miYfKLMRzX9iLPObyh9oBipH1x7DA6HY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":120222},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"d7971e48311bd5e9d8500d1660fa117be78bcf38","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.8.0_1785356777552_0.4258318016711933","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@abgov/adsp-cli","version":"1.9.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.9.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"7082f672bc4d875435e4e940aaa3c8259ec6a4bc","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.9.0.tgz","fileCount":41,"integrity":"sha512-mzh4KHI+dHv+tEa8/Rsm6cqxg8umiNG3WoGSNtnN+tu30bLT6M9S/sq37loNcyVeYuEqj2RIH7b+u8s4OXYpxQ==","signatures":[{"sig":"MEUCIQCpW7HOX0g5pHTWvFRgOcw3XIb2OREE7nmX6/DDLZSqEQIgaU0CRwtrnnEnUnwYtiM7FicZL2/NuMRDKZmkk1kz/pk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129040},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"64343b4023c7fa00621cfe8e1b276f9cc04816ea","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.11.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.9.0_1785770784907_0.5349318390982309","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@abgov/adsp-cli","version":"1.10.0","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.10.0","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"c45de7f510e3797a73bf451ab3efa4925102df59","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.10.0.tgz","fileCount":41,"integrity":"sha512-yhzB+WmCKMmlV1XVseVEC3b8mEZA7NIsGQvd++553VKVRUKqcKlne+46tszeke7xOQcEcrZERn05e+TOab12Cg==","signatures":[{"sig":"MEYCIQCsfW2U/CTwwZz/IbF0JCYClDpCfrdMU1dzIrPo62/ffQIhAIbjzzMYUgwyNBOn7EMwNgOoCVLWmWNManHMORZY7/oQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":137672},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"04276601813b6cfae2cf216989b1b790a7ec9772","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.19.0","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.10.0_1787190475184_0.9049296399149915","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@abgov/adsp-cli","version":"1.10.1","license":"Apache-2.0","_id":"@abgov/adsp-cli@1.10.1","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"bin":{"adsp":"src/main.js"},"dist":{"shasum":"0c1b97d15c42c502a87e1aee17463d3aef27c220","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.10.1.tgz","fileCount":41,"integrity":"sha512-GDj+JSoemMzvzFcBfFQbAQgWzSzfYh2YWFSGmSzVPQo8djv59urZZFEuPfbBLlbFMWt8SwTsbY7/JQyA0JOkZg==","signatures":[{"sig":"MEUCIQCs6r+xqS7jV7E5XxY8rm+BkebEBKGLveXRwDjdbk1+ZgIgKwiRXe/2mrbi7NoJ0PoBidCaS2QgOGXtZ7ZjXmvtf5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":137672},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"e5034d538f532d946c70e9e12695b3b1ab3923f9","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.19.0","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adsp-cli_1.10.1_1787591358179_0.18274574114631115","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"_id":"@abgov/adsp-cli@1.11.0","bin":{"adsp":"src/main.js"},"bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"dist":{"shasum":"9767d303e2c8928af9f1ac930bf5aa7d06ba95f9","tarball":"https://registry.npmjs.org/@abgov/adsp-cli/-/adsp-cli-1.11.0.tgz","fileCount":41,"integrity":"sha512-6LWsSVOoTbUfBwToiXvsHq7nX3JgP430S/20SiLM/qnC/DTxbr3+uyED0BShNdj/pKcsUyKl8jEmzlNT/tPrsw==","signatures":[{"sig":"MEUCIQDHIZw/eVqyPVIHsfguR9M2/31sopMQDvpz0h6bPRcP5gIgKqy5rZ7Kzr7GFZUwRxrUQhzkbWJlNOYVcMCtg9xkT78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDw0EVZluDERhnXAJSkhfPCX7etdsAaXSodgsGzAWnDsQIhAKfLg1/7V5GOhStlNWzvVOCtk77uZq3/fI2tqFLIJqKE"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abgov%2fadsp-cli@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":137693},"main":"./src/index.js","name":"@abgov/adsp-cli","type":"commonjs","types":"./src/index.d.ts","gitHead":"2c0ab5402e41f995677a60deca0db90ed0f870c8","license":"Apache-2.0","version":"1.11.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:afb2744b-e438-4430-9abf-023d69c88f47"}},"homepage":"https://github.com/GovAlta/adsp-monorepo#readme","repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"_npmVersion":"11.19.1","description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","directories":{},"maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"_nodeVersion":"24.20.0","dependencies":{"open":"^8.4.0","tslib":"^2.3.0","express":"^4.22.1","enquirer":"^2.3.6","jwt-decode":"^3.1.2","simple-oauth2":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adsp-cli_1.11.0_1788551146705_0.4646912504421603"}}},"time":{"created":"2026-07-07T20:49:18.139Z","modified":"2026-09-04T19:45:47.173Z","0.0.1":"2026-07-07T20:49:18.455Z","1.0.0":"2026-07-08T01:49:42.991Z","1.1.0":"2026-07-08T15:37:07.277Z","1.1.1":"2026-07-08T16:55:55.644Z","1.2.0":"2026-07-20T14:41:32.702Z","1.3.0":"2026-07-21T15:27:50.129Z","1.4.0":"2026-07-21T18:58:46.171Z","1.5.0":"2026-07-22T15:14:08.450Z","1.5.1":"2026-07-24T00:14:44.563Z","1.5.2":"2026-07-24T01:32:13.346Z","1.6.0":"2026-07-28T20:55:48.565Z","1.7.0":"2026-07-29T19:30:33.420Z","1.8.0":"2026-07-29T20:26:17.690Z","1.9.0":"2026-08-03T15:26:25.048Z","1.10.0":"2026-08-20T01:47:55.341Z","1.10.1":"2026-08-24T17:09:18.328Z","1.11.0":"2026-09-04T19:45:46.800Z"},"bugs":{"url":"https://github.com/GovAlta/adsp-monorepo/issues"},"license":"Apache-2.0","homepage":"https://github.com/GovAlta/adsp-monorepo#readme","repository":{"url":"git+https://github.com/GovAlta/adsp-monorepo.git","type":"git"},"description":"Government of Alberta - CLI and client library for authenticating against ADSP and calling its live APIs.","maintainers":[{"name":"dio.ting.zuge","email":"ting.zuge@gov.ab.ca"},{"name":"dustin.nielsen","email":"dustin.nielsen@gov.ab.ca"},{"name":"abgov-chris-olsen","email":"chris.olsen@gov.ab.ca"}],"readme":"# @abgov/adsp-cli\n\nA CLI and client library for authenticating against ADSP and calling its live APIs. Built to be reusable — not tied\nto any one consumer's purpose (currently `@abgov/adsp-sdk-mcp-server`'s `list_service_roles` tool; designed\ngenerically enough that other ADSP developer tooling, e.g. the `nx-adsp` Nx plugin's own duplicate login/token-cache\nimplementation, could adopt it as a distinct follow-up).\n\n## CLI vs. library: division of responsibility\n\nThis package is used two different ways by two different processes, coupled only through files on disk — they never\ninvoke each other directly:\n\n- **The `adsp` binary** (from this package — `npx @abgov/adsp-cli login`, run once by a human in a terminal) does\n  exactly one job as far as login goes: resolve a tenant realm (see below), run an interactive browser OAuth2 flow\n  against Keycloak for it, cache the resulting token in `~/.adsp-cli/token-cache.json`, and persist the realm itself\n  as the current context in `~/.adsp-cli/config.json`. This is the only place an interactive, potentially slow (up\n  to 120s) wait happens; its other commands (see below) never block on user interaction.\n  - For CI pipelines there is a non-interactive variant: `adsp login --ci` uses the client credentials grant instead\n    of a browser flow (see [CI / non-interactive login](#ci--non-interactive-login)).\n- **Library consumers** (e.g. an MCP server tool handler, which must never block on user interaction) call\n  `getAccessToken()` — a fast, non-interactive function that reads/refreshes the cache, and also auto-acquires via\n  client credentials when `ADSP_CLIENT_ID`/`ADSP_CLIENT_SECRET` env vars are set — to get a token, then call\n  `getServiceUrls()`/`getConfiguration()` themselves to actually talk to ADSP.\n\n`loginInteractive` (the browser-opening function) is intentionally **not** part of the public API — only the CLI\nentry (`src/main.ts`) calls it. A library consumer that needs a token should always call `getAccessToken()` and\nhandle its `'not-authenticated'` result by telling the user to run `adsp login`, not by trying to log in itself.\n\n## Logging in: three ways to resolve a realm\n\n```bash\nnpx @abgov/adsp-cli login --realm my-tenant-realm   # you already know your realm\nnpx @abgov/adsp-cli login --tenant \"My Tenant\"      # you know your tenant's display name, not its realm\nnpx @abgov/adsp-cli login                           # you know neither — logs into `core`, lists every\n                                                     # tenant, and prompts you to pick one interactively\n```\n\n(`npx @abgov/adsp-cli ...` works without any install step; if you `npm i -g @abgov/adsp-cli` instead, the installed\ncommand is just `adsp` — e.g. `adsp login`, `adsp status`.)\n\nWhichever mode resolves the realm, `login` persists it to `~/.adsp-cli/config.json` — so nothing downstream needs\n`ADSP_TENANT_REALM` set at all for the common case. That env var still works as an **override** (e.g. CI, or\nswitching between multiple tenant contexts without re-running `login`), it's just no longer required.\n\nRunning `login` with no args again later is safe and cheap: if the persisted realm already has a valid cached\ntoken, it returns immediately — no core-realm login, no tenant listing, no prompt.\n\n## CI / non-interactive login\n\nFor pipelines and scripts that can't drive a browser, use the `--ci` flag with the `client_credentials` grant:\n\n```bash\nnpx @abgov/adsp-cli login --ci --tenant \"My Tenant\" \\\n  --client-id adsp-cli-ci \\\n  --client-secret \"$ADSP_CI_SECRET\"\n```\n\n`--tenant` is required (realm-by-name lookup — no prior login needed). `--client-id` and `--client-secret` can\nalso be supplied via environment variables so secrets don't appear on the command line:\n\n```bash\nexport ADSP_CLIENT_ID=adsp-cli-ci\nexport ADSP_CLIENT_SECRET=\"$ADSP_CI_SECRET\"\nnpx @abgov/adsp-cli login --ci --tenant \"My Tenant\"\n```\n\n**Skipping `adsp login` entirely** — if `ADSP_CLIENT_ID`, `ADSP_CLIENT_SECRET`, and `ADSP_TENANT_REALM` (or a\npreviously-persisted realm from an earlier `login`) are all set, `getAccessToken()` acquires a token\nautomatically via client credentials. This means CI jobs can call ADSP APIs without any `adsp login` step at all:\n\n```bash\nexport ADSP_TENANT_REALM=my-tenant-realm\nexport ADSP_CLIENT_ID=adsp-cli-ci\nexport ADSP_CLIENT_SECRET=\"$ADSP_CI_SECRET\"\n# Any command that calls getAccessToken() (e.g. `adsp token`, `adsp service-roles`)\n# will acquire a token transparently — no login required.\nadsp token\n```\n\n### The `adsp-cli-ci` confidential client\n\nEvery tenant realm is bootstrapped with an `adsp-cli-ci` confidential Keycloak client. It is **disabled by default**\n— a tenant admin must explicitly enable it and generate a client secret via the Keycloak admin console before it can\nbe used. Its service account is pre-granted the same roles available to interactive `adsp-cli` users\n(`configuration-admin` on configuration-service and `agent-user` on agent-service). The client does not support\nthe browser/interactive flow — it is restricted to the client credentials grant only.\n\nTo enable it: log in to the Keycloak admin console for your realm → Clients → `adsp-cli-ci` → Settings → toggle\n*Enabled* on → Credentials tab → regenerate the client secret. Distribute the secret to your CI environment\n(e.g. as a GitHub Actions secret or an OpenShift secret). The client ID is always `adsp-cli-ci`.\n\n## Creating a new tenant\n\nWhen the no-args `login` mode prompts you to pick a tenant, it also offers a `+ Create a new tenant` choice —\nin every environment including `prod`, but only for an account that can actually create one: your core-realm\nroles must include `beta-tester` or `tenant-service-admin` (the same roles tenant-management-api's `POST\n/tenants` requires), and — unless you're a `tenant-service-admin` — you must not already own a tenant (the\ntenant service allows only one per admin email). Picking it prompts for a name (letters, numbers, spaces, and\nunderscores; 1-50 characters), creates the tenant, and waits for its realm to finish provisioning before\ncontinuing the login as that tenant. A name that's already taken re-prompts for a different name rather than\nfailing outright.\n\n## Requesting additional scopes\n\n`login` always requests the `email` scope; pass `--scope <name>` (repeatable) to additionally request one or more\noptional OAuth scopes, e.g. the `adsp-cli-admin` client scope (see Security below) that a consumer like `nx-adsp`\nwould request for its Keycloak-admin provisioning commands:\n\n```bash\nnpx @abgov/adsp-cli login --scope adsp-cli-admin\n```\n\n`--scope` can be combined with `--realm`/`--tenant`. The token cache is scope-aware: a cached token is only reused\nif it already covers everything being requested (a subset check, not exact match — a token cached with *more*\nscopes than currently needed still counts). So `login --scope adsp-cli-admin` always gets you a token that actually\nhas that scope — either by reusing an earlier elevated login, or by triggering a fresh browser round-trip if the\ncached token doesn't cover it yet. A later plain `login` (no `--scope`) is unaffected either way, since the base\n`email` scope it needs is always covered by any cached token.\n\n## Selecting an environment\n\n`login --env <dev|test|prod>` picks which ADSP environment to talk to and persists it to\n`~/.adsp-cli/config.json`, mirroring how the realm is persisted — so `ADSP_ENV` is an optional **override** (e.g.\nCI, or a one-off run) rather than something you need to set every session:\n\n```bash\nnpx @abgov/adsp-cli login --env dev --tenant \"My Tenant\"\n```\n\nAny of `--realm`/`--tenant`/`--scope`/`--env` skips the no-args \"reuse a cached token\" short-circuit, so an explicit\nenvironment request always resolves rather than silently returning whatever happens to be cached. Omitting `--env`\non a later login preserves whatever environment was persisted by an earlier one — it's never reset to the default\njust because a login didn't mention it. `adsp-cli status` reports the currently-resolved environment and where it\ncame from (`ADSP_ENV`, persisted login, or the `prod` default).\n\n## Security\n\n`login` authenticates against a public, secret-less Keycloak client (PKCE-only, consent required on every login),\nprovisioned automatically for new tenant realms. The resulting token is scoped to the minimum roles this CLI\nactually needs, not a user's full role set — so a cached token sitting in `~/.adsp-cli/token-cache.json` can't be\nused for anything beyond what this tool itself does, even if that file were somehow exposed. See\n[`apps/tenant-management-api/src/keycloak/configuration.ts`](https://github.com/GovAlta/adsp-monorepo/blob/main/apps/tenant-management-api/src/keycloak/configuration.ts)\nin the [adsp-monorepo](https://github.com/GovAlta/adsp-monorepo) repo for the exact client configuration.\n\nTenants created before this client existed, and the Keycloak `core` realm used by the no-args `login` mode, need\nan equivalent client added by hand — see\n[`docs/core-realm-setup.md`](https://github.com/GovAlta/adsp-monorepo/blob/main/libs/adsp-cli/docs/core-realm-setup.md)\nfor the one-time manual setup steps. `--realm`/`--tenant` logins are unaffected either way — they never touch `core`.\n\n## Commands\n\n| Command | Auth required | Description |\n|---|---|---|\n| `login [--realm <realm> \\| --tenant <name>] [--scope <name>]... [--env <dev\\|test\\|prod>]` | Interactive (opens a browser) | See above. |\n| `login --ci --tenant <name> [--client-id <id>] [--client-secret <secret>] [--env <dev\\|test\\|prod>]` | Client credentials (no browser) | Non-interactive CI login. `--client-id`/`--client-secret` can also be set via `ADSP_CLIENT_ID`/`ADSP_CLIENT_SECRET` env vars. See [CI / non-interactive login](#ci--non-interactive-login). |\n| `status` | No | Prints the current environment and realm (and where each came from — `ADSP_ENV`/`ADSP_TENANT_REALM`, persisted login, or default), the tenant's display name when known, and the cached token's state (`valid` / `expired` / `missing`). Read-only — no network calls. |\n| `logout` | No | Clears `~/.adsp-cli/config.json` and `~/.adsp-cli/token-cache.json`. Safe to run when already logged out. |\n| `token` | Yes (`getAccessToken()`) | Prints the raw access token to stdout — refreshed first if expired, same as any other command. Handy for scripting, e.g. `curl -H \"Authorization: Bearer $(adsp token)\" ...`. |\n| `tenants [name]` | No (with `name`) / core-realm session (without) | With a name: anonymous exact-name lookup, no login needed. Without: lists every tenant — requires a cached core-realm token (established by a prior no-args `login`); this command never triggers an interactive login itself. |\n| `service-roles` | Yes (`getAccessToken()`) | Prints the same data as `@abgov/adsp-sdk-mcp-server`'s `list_service_roles` tool — every platform service's registered RBAC role, read live from tenant-service configuration. |\n| `directory register --service <name> --url <url>` | Yes (`getAccessToken()`) | Registers a service entry in the ADSP directory under the current tenant's namespace (derived from the login session). Skips silently if the entry already exists — register-once semantics, no overwrite. Requires the `directory-admin` role (tenant admins have it automatically). |\n| `delete-tenant <name>` | Core-realm session with `tenant-service-admin` role | Permanently deletes a tenant and its Keycloak realm. Prompts for confirmation by re-typing the tenant name before proceeding. |\n| `help`, `--help`, `-h` | No | Prints a full command/flag reference and exits 0 (distinct from the \"Unknown command\" error path, which exits 1). |\n\n## Environment variables\n\n| Variable | Required | Purpose |\n|---|---|---|\n| `ADSP_TENANT_REALM` | No | Override for the realm resolved by the last `login` (persisted config). Required only if you've never run `login` and don't want to. |\n| `ADSP_ENV` | No (default `prod`) | Override for the environment resolved by the last `login --env` (persisted config) — `dev` \\| `test` \\| `prod`, selects preset `accessServiceUrl`/`directoryServiceUrl`. Required only if you've never run `login --env` and don't want to. |\n| `ADSP_ACCESS_SERVICE_URL` | No | Overrides the preset access-service (Keycloak) URL for the selected environment. |\n| `ADSP_DIRECTORY_SERVICE_URL` | No | Overrides the preset directory-service URL for the selected environment. |\n| `ADSP_ACCESS_TOKEN` | No | Escape hatch — if set, `getAccessToken()` returns it directly, skipping cache/login/realm-resolution entirely. |\n| `ADSP_CLIENT_ID` | No | Client ID for the CI client credentials grant. When set alongside `ADSP_CLIENT_SECRET` and a resolvable realm, `getAccessToken()` acquires a fresh token automatically without any `adsp login` step. Also used as the fallback for `adsp login --ci` when `--client-id` is not provided on the command line. |\n| `ADSP_CLIENT_SECRET` | No | Client secret for the CI client credentials grant. See `ADSP_CLIENT_ID` above. Never log or commit this value. |\n\n## Library usage\n\n```typescript\nimport { getAccessToken, getDirectoryServiceUrl, getServiceUrls, getConfiguration, getServiceRoles, registerDirectoryService } from '@abgov/adsp-cli';\n\nconst result = await getAccessToken();\nif (result.status !== 'ok') {\n  // 'not-authenticated' — tell the user to run `npx @abgov/adsp-cli login`\n  // (or set ADSP_CLIENT_ID + ADSP_CLIENT_SECRET for a CI environment)\n  throw new Error('Not authenticated');\n}\n\nconst directoryServiceUrl = getDirectoryServiceUrl();\nconst serviceUrls = await getServiceUrls(directoryServiceUrl);\n\n// Or, for the common \"which roles can I assign\" case directly:\nconst roles = await getServiceRoles(result.token, directoryServiceUrl);\n\n// Register a service entry in the directory (register-once — skips on 409):\nconst outcome = await registerDirectoryService(directoryServiceUrl, 'my-tenant', 'my-service', 'https://my-service.example.com', result.token);\n// outcome: 'registered' | 'exists'\n```\n\n`getAccessToken()` checks in priority order: `ADSP_ACCESS_TOKEN` env var → valid cached token → token refresh →\nclient credentials (when `ADSP_CLIENT_ID` + `ADSP_CLIENT_SECRET` are set). It never opens a browser.\n\nFor CI scripts that want to explicitly pre-warm the token cache (e.g. at the start of a job, before a series\nof commands), `loginWithClientCredentials` is exported:\n\n```typescript\nimport { loginWithClientCredentials } from '@abgov/adsp-cli';\n\nawait loginWithClientCredentials({\n  tenant: 'My Tenant',\n  clientId: process.env.ADSP_CLIENT_ID,\n  clientSecret: process.env.ADSP_CLIENT_SECRET,\n  // env: 'prod', // optional; defaults to persisted config or 'prod'\n});\n// Subsequent getAccessToken() calls will be cache hits for the rest of this process.\n```\n\n`getStatus()` (same function backing the `status` command) is also exported, for consumers that want the\ncurrent realm/tenant name/environment without shelling out — e.g. generator templates that need to embed which\ntenant/realm they were scaffolded against:\n\n```typescript\nimport { getStatus } from '@abgov/adsp-cli';\n\nconst { realm, tenantName, env } = getStatus();\n```\n","readmeFilename":"README.md"}