@doist/comms-cli 0.0.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +165 -29
- package/dist/commands/account/index.d.ts +3 -0
- package/dist/commands/account/index.d.ts.map +1 -0
- package/dist/commands/account/index.js +104 -0
- package/dist/commands/account/index.js.map +1 -0
- package/dist/commands/auth/helpers.d.ts +22 -0
- package/dist/commands/auth/helpers.d.ts.map +1 -0
- package/dist/commands/auth/helpers.js +29 -0
- package/dist/commands/auth/helpers.js.map +1 -0
- package/dist/commands/auth/index.d.ts +3 -0
- package/dist/commands/auth/index.d.ts.map +1 -0
- package/dist/commands/auth/index.js +32 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/auth/login.d.ts +4 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +29 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +11 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +16 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/status.d.ts +16 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +102 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/auth/store-wrap.d.ts +4 -0
- package/dist/commands/auth/store-wrap.d.ts.map +1 -0
- package/dist/commands/auth/store-wrap.js +24 -0
- package/dist/commands/auth/store-wrap.js.map +1 -0
- package/dist/commands/auth/token.d.ts +2 -0
- package/dist/commands/auth/token.d.ts.map +1 -0
- package/dist/commands/auth/token.js +56 -0
- package/dist/commands/auth/token.js.map +1 -0
- package/dist/commands/changelog.d.ts +3 -0
- package/dist/commands/changelog.d.ts.map +1 -0
- package/dist/commands/changelog.js +16 -0
- package/dist/commands/changelog.js.map +1 -0
- package/dist/commands/channel/create.d.ts +11 -0
- package/dist/commands/channel/create.d.ts.map +1 -0
- package/dist/commands/channel/create.js +35 -0
- package/dist/commands/channel/create.js.map +1 -0
- package/dist/commands/channel/helpers.d.ts +9 -0
- package/dist/commands/channel/helpers.d.ts.map +1 -0
- package/dist/commands/channel/helpers.js +51 -0
- package/dist/commands/channel/helpers.js.map +1 -0
- package/dist/commands/channel/index.d.ts +3 -0
- package/dist/commands/channel/index.d.ts.map +1 -0
- package/dist/commands/channel/index.js +104 -0
- package/dist/commands/channel/index.js.map +1 -0
- package/dist/commands/channel/list.d.ts +8 -0
- package/dist/commands/channel/list.d.ts.map +1 -0
- package/dist/commands/channel/list.js +144 -0
- package/dist/commands/channel/list.js.map +1 -0
- package/dist/commands/channel/threads.d.ts +11 -0
- package/dist/commands/channel/threads.d.ts.map +1 -0
- package/dist/commands/channel/threads.js +100 -0
- package/dist/commands/channel/threads.js.map +1 -0
- package/dist/commands/channel/update.d.ts +12 -0
- package/dist/commands/channel/update.d.ts.map +1 -0
- package/dist/commands/channel/update.js +84 -0
- package/dist/commands/channel/update.js.map +1 -0
- package/dist/commands/comment/delete.d.ts +5 -0
- package/dist/commands/comment/delete.d.ts.map +1 -0
- package/dist/commands/comment/delete.js +33 -0
- package/dist/commands/comment/delete.js.map +1 -0
- package/dist/commands/comment/index.d.ts +3 -0
- package/dist/commands/comment/index.d.ts.map +1 -0
- package/dist/commands/comment/index.js +49 -0
- package/dist/commands/comment/index.js.map +1 -0
- package/dist/commands/comment/update.d.ts +5 -0
- package/dist/commands/comment/update.d.ts.map +1 -0
- package/dist/commands/comment/update.js +37 -0
- package/dist/commands/comment/update.js.map +1 -0
- package/dist/commands/comment/view.d.ts +3 -0
- package/dist/commands/comment/view.d.ts.map +1 -0
- package/dist/commands/comment/view.js +31 -0
- package/dist/commands/comment/view.js.map +1 -0
- package/dist/commands/completion/helpers.d.ts +14 -0
- package/dist/commands/completion/helpers.d.ts.map +1 -0
- package/dist/commands/completion/helpers.js +37 -0
- package/dist/commands/completion/helpers.js.map +1 -0
- package/dist/commands/completion/index.d.ts +3 -0
- package/dist/commands/completion/index.d.ts.map +1 -0
- package/dist/commands/completion/index.js +22 -0
- package/dist/commands/completion/index.js.map +1 -0
- package/dist/commands/completion/install.d.ts +2 -0
- package/dist/commands/completion/install.d.ts.map +1 -0
- package/dist/commands/completion/install.js +19 -0
- package/dist/commands/completion/install.js.map +1 -0
- package/dist/commands/completion/server.d.ts +3 -0
- package/dist/commands/completion/server.d.ts.map +1 -0
- package/dist/commands/completion/server.js +35 -0
- package/dist/commands/completion/server.js.map +1 -0
- package/dist/commands/completion/uninstall.d.ts +2 -0
- package/dist/commands/completion/uninstall.d.ts.map +1 -0
- package/dist/commands/completion/uninstall.js +19 -0
- package/dist/commands/completion/uninstall.js.map +1 -0
- package/dist/commands/config/index.d.ts +3 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +29 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/set.d.ts +3 -0
- package/dist/commands/config/set.d.ts.map +1 -0
- package/dist/commands/config/set.js +41 -0
- package/dist/commands/config/set.js.map +1 -0
- package/dist/commands/config/view.d.ts +6 -0
- package/dist/commands/config/view.d.ts.map +1 -0
- package/dist/commands/config/view.js +121 -0
- package/dist/commands/config/view.js.map +1 -0
- package/dist/commands/conversation/done.d.ts +3 -0
- package/dist/commands/conversation/done.d.ts.map +1 -0
- package/dist/commands/conversation/done.js +23 -0
- package/dist/commands/conversation/done.js.map +1 -0
- package/dist/commands/conversation/helpers.d.ts +28 -0
- package/dist/commands/conversation/helpers.d.ts.map +1 -0
- package/dist/commands/conversation/helpers.js +119 -0
- package/dist/commands/conversation/helpers.js.map +1 -0
- package/dist/commands/conversation/index.d.ts +3 -0
- package/dist/commands/conversation/index.d.ts.map +1 -0
- package/dist/commands/conversation/index.js +107 -0
- package/dist/commands/conversation/index.js.map +1 -0
- package/dist/commands/conversation/mute.d.ts +3 -0
- package/dist/commands/conversation/mute.d.ts.map +1 -0
- package/dist/commands/conversation/mute.js +30 -0
- package/dist/commands/conversation/mute.js.map +1 -0
- package/dist/commands/conversation/reply.d.ts +3 -0
- package/dist/commands/conversation/reply.d.ts.map +1 -0
- package/dist/commands/conversation/reply.js +37 -0
- package/dist/commands/conversation/reply.js.map +1 -0
- package/dist/commands/conversation/unmute.d.ts +3 -0
- package/dist/commands/conversation/unmute.d.ts.map +1 -0
- package/dist/commands/conversation/unmute.js +28 -0
- package/dist/commands/conversation/unmute.js.map +1 -0
- package/dist/commands/conversation/unread.d.ts +3 -0
- package/dist/commands/conversation/unread.d.ts.map +1 -0
- package/dist/commands/conversation/unread.js +56 -0
- package/dist/commands/conversation/unread.js.map +1 -0
- package/dist/commands/conversation/view.d.ts +3 -0
- package/dist/commands/conversation/view.d.ts.map +1 -0
- package/dist/commands/conversation/view.js +77 -0
- package/dist/commands/conversation/view.js.map +1 -0
- package/dist/commands/conversation/with.d.ts +3 -0
- package/dist/commands/conversation/with.d.ts.map +1 -0
- package/dist/commands/conversation/with.js +48 -0
- package/dist/commands/conversation/with.js.map +1 -0
- package/dist/commands/doctor.d.ts +9 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +325 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/groups/create.d.ts +8 -0
- package/dist/commands/groups/create.d.ts.map +1 -0
- package/dist/commands/groups/create.js +27 -0
- package/dist/commands/groups/create.js.map +1 -0
- package/dist/commands/groups/delete.d.ts +7 -0
- package/dist/commands/groups/delete.d.ts.map +1 -0
- package/dist/commands/groups/delete.js +30 -0
- package/dist/commands/groups/delete.js.map +1 -0
- package/dist/commands/groups/index.d.ts +3 -0
- package/dist/commands/groups/index.d.ts.map +1 -0
- package/dist/commands/groups/index.js +98 -0
- package/dist/commands/groups/index.js.map +1 -0
- package/dist/commands/groups/list.d.ts +7 -0
- package/dist/commands/groups/list.d.ts.map +1 -0
- package/dist/commands/groups/list.js +42 -0
- package/dist/commands/groups/list.js.map +1 -0
- package/dist/commands/groups/members.d.ts +4 -0
- package/dist/commands/groups/members.d.ts.map +1 -0
- package/dist/commands/groups/members.js +90 -0
- package/dist/commands/groups/members.js.map +1 -0
- package/dist/commands/groups/rename.d.ts +3 -0
- package/dist/commands/groups/rename.d.ts.map +1 -0
- package/dist/commands/groups/rename.js +28 -0
- package/dist/commands/groups/rename.js.map +1 -0
- package/dist/commands/groups/view.d.ts +7 -0
- package/dist/commands/groups/view.d.ts.map +1 -0
- package/dist/commands/groups/view.js +52 -0
- package/dist/commands/groups/view.js.map +1 -0
- package/dist/commands/inbox.d.ts +3 -0
- package/dist/commands/inbox.d.ts.map +1 -0
- package/dist/commands/inbox.js +147 -0
- package/dist/commands/inbox.js.map +1 -0
- package/dist/commands/mentions.d.ts +3 -0
- package/dist/commands/mentions.d.ts.map +1 -0
- package/dist/commands/mentions.js +23 -0
- package/dist/commands/mentions.js.map +1 -0
- package/dist/commands/msg/delete.d.ts +5 -0
- package/dist/commands/msg/delete.d.ts.map +1 -0
- package/dist/commands/msg/delete.js +31 -0
- package/dist/commands/msg/delete.js.map +1 -0
- package/dist/commands/msg/index.d.ts +3 -0
- package/dist/commands/msg/index.d.ts.map +1 -0
- package/dist/commands/msg/index.js +47 -0
- package/dist/commands/msg/index.js.map +1 -0
- package/dist/commands/msg/update.d.ts +5 -0
- package/dist/commands/msg/update.d.ts.map +1 -0
- package/dist/commands/msg/update.js +37 -0
- package/dist/commands/msg/update.js.map +1 -0
- package/dist/commands/msg/view.d.ts +3 -0
- package/dist/commands/msg/view.d.ts.map +1 -0
- package/dist/commands/msg/view.js +31 -0
- package/dist/commands/msg/view.js.map +1 -0
- package/dist/commands/react.d.ts +3 -0
- package/dist/commands/react.d.ts.map +1 -0
- package/dist/commands/react.js +149 -0
- package/dist/commands/react.js.map +1 -0
- package/dist/commands/search.d.ts +3 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +30 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/skill/index.d.ts +3 -0
- package/dist/commands/skill/index.d.ts.map +1 -0
- package/dist/commands/skill/index.js +29 -0
- package/dist/commands/skill/index.js.map +1 -0
- package/dist/commands/skill/install.d.ts +3 -0
- package/dist/commands/skill/install.d.ts.map +1 -0
- package/dist/commands/skill/install.js +16 -0
- package/dist/commands/skill/install.js.map +1 -0
- package/dist/commands/skill/list.d.ts +6 -0
- package/dist/commands/skill/list.d.ts.map +1 -0
- package/dist/commands/skill/list.js +22 -0
- package/dist/commands/skill/list.js.map +1 -0
- package/dist/commands/skill/uninstall.d.ts +3 -0
- package/dist/commands/skill/uninstall.d.ts.map +1 -0
- package/dist/commands/skill/uninstall.js +15 -0
- package/dist/commands/skill/uninstall.js.map +1 -0
- package/dist/commands/skill/update.d.ts +3 -0
- package/dist/commands/skill/update.d.ts.map +1 -0
- package/dist/commands/skill/update.js +37 -0
- package/dist/commands/skill/update.js.map +1 -0
- package/dist/commands/thread/create.d.ts +8 -0
- package/dist/commands/thread/create.d.ts.map +1 -0
- package/dist/commands/thread/create.js +70 -0
- package/dist/commands/thread/create.js.map +1 -0
- package/dist/commands/thread/delete.d.ts +7 -0
- package/dist/commands/thread/delete.d.ts.map +1 -0
- package/dist/commands/thread/delete.js +38 -0
- package/dist/commands/thread/delete.js.map +1 -0
- package/dist/commands/thread/helpers.d.ts +24 -0
- package/dist/commands/thread/helpers.d.ts.map +1 -0
- package/dist/commands/thread/helpers.js +45 -0
- package/dist/commands/thread/helpers.js.map +1 -0
- package/dist/commands/thread/index.d.ts +3 -0
- package/dist/commands/thread/index.d.ts.map +1 -0
- package/dist/commands/thread/index.js +134 -0
- package/dist/commands/thread/index.js.map +1 -0
- package/dist/commands/thread/mutate.d.ts +5 -0
- package/dist/commands/thread/mutate.d.ts.map +1 -0
- package/dist/commands/thread/mutate.js +23 -0
- package/dist/commands/thread/mutate.js.map +1 -0
- package/dist/commands/thread/mute.d.ts +8 -0
- package/dist/commands/thread/mute.d.ts.map +1 -0
- package/dist/commands/thread/mute.js +63 -0
- package/dist/commands/thread/mute.js.map +1 -0
- package/dist/commands/thread/rename.d.ts +3 -0
- package/dist/commands/thread/rename.d.ts.map +1 -0
- package/dist/commands/thread/rename.js +29 -0
- package/dist/commands/thread/rename.js.map +1 -0
- package/dist/commands/thread/reply.d.ts +9 -0
- package/dist/commands/thread/reply.d.ts.map +1 -0
- package/dist/commands/thread/reply.js +85 -0
- package/dist/commands/thread/reply.js.map +1 -0
- package/dist/commands/thread/update.d.ts +5 -0
- package/dist/commands/thread/update.d.ts.map +1 -0
- package/dist/commands/thread/update.js +45 -0
- package/dist/commands/thread/update.js.map +1 -0
- package/dist/commands/thread/view.d.ts +9 -0
- package/dist/commands/thread/view.d.ts.map +1 -0
- package/dist/commands/thread/view.js +171 -0
- package/dist/commands/thread/view.js.map +1 -0
- package/dist/commands/update/index.d.ts +3 -0
- package/dist/commands/update/index.d.ts.map +1 -0
- package/dist/commands/update/index.js +14 -0
- package/dist/commands/update/index.js.map +1 -0
- package/dist/commands/user.d.ts +3 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +90 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/view.d.ts +3 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +68 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/commands/workspace.d.ts +3 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +56 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +190 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +35 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +306 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auth-constants.d.ts +3 -0
- package/dist/lib/auth-constants.d.ts.map +1 -0
- package/dist/lib/auth-constants.js +3 -0
- package/dist/lib/auth-constants.js.map +1 -0
- package/dist/lib/auth-pages.d.ts +3 -0
- package/dist/lib/auth-pages.d.ts.map +1 -0
- package/dist/lib/auth-pages.js +707 -0
- package/dist/lib/auth-pages.js.map +1 -0
- package/dist/lib/auth-provider.d.ts +74 -0
- package/dist/lib/auth-provider.d.ts.map +1 -0
- package/dist/lib/auth-provider.js +238 -0
- package/dist/lib/auth-provider.js.map +1 -0
- package/dist/lib/auth.d.ts +39 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +57 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/comms-account.d.ts +22 -0
- package/dist/lib/comms-account.d.ts.map +1 -0
- package/dist/lib/comms-account.js +23 -0
- package/dist/lib/comms-account.js.map +1 -0
- package/dist/lib/completion.d.ts +31 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/completion.js +173 -0
- package/dist/lib/completion.js.map +1 -0
- package/dist/lib/config.d.ts +61 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +184 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/dates.d.ts +3 -0
- package/dist/lib/dates.d.ts.map +1 -0
- package/dist/lib/dates.js +44 -0
- package/dist/lib/dates.js.map +1 -0
- package/dist/lib/errors.d.ts +28 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +34 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/global-args.d.ts +52 -0
- package/dist/lib/global-args.d.ts.map +1 -0
- package/dist/lib/global-args.js +124 -0
- package/dist/lib/global-args.js.map +1 -0
- package/dist/lib/input.d.ts +3 -0
- package/dist/lib/input.d.ts.map +1 -0
- package/dist/lib/input.js +80 -0
- package/dist/lib/input.js.map +1 -0
- package/dist/lib/markdown.d.ts +3 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +15 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/options.d.ts +16 -0
- package/dist/lib/options.d.ts.map +1 -0
- package/dist/lib/options.js +2 -0
- package/dist/lib/options.js.map +1 -0
- package/dist/lib/output.d.ts +41 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +184 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/permissions.d.ts +4 -0
- package/dist/lib/permissions.d.ts.map +1 -0
- package/dist/lib/permissions.js +41 -0
- package/dist/lib/permissions.js.map +1 -0
- package/dist/lib/progress.d.ts +29 -0
- package/dist/lib/progress.d.ts.map +1 -0
- package/dist/lib/progress.js +86 -0
- package/dist/lib/progress.js.map +1 -0
- package/dist/lib/public-channels.d.ts +4 -0
- package/dist/lib/public-channels.d.ts.map +1 -0
- package/dist/lib/public-channels.js +32 -0
- package/dist/lib/public-channels.js.map +1 -0
- package/dist/lib/refs.d.ts +62 -0
- package/dist/lib/refs.d.ts.map +1 -0
- package/dist/lib/refs.js +378 -0
- package/dist/lib/refs.js.map +1 -0
- package/dist/lib/search-api.d.ts +25 -0
- package/dist/lib/search-api.d.ts.map +1 -0
- package/dist/lib/search-api.js +93 -0
- package/dist/lib/search-api.js.map +1 -0
- package/dist/lib/search-helpers.d.ts +32 -0
- package/dist/lib/search-helpers.d.ts.map +1 -0
- package/dist/lib/search-helpers.js +183 -0
- package/dist/lib/search-helpers.js.map +1 -0
- package/dist/lib/skills/content.d.ts +8 -0
- package/dist/lib/skills/content.d.ts.map +1 -0
- package/dist/lib/skills/content.js +410 -0
- package/dist/lib/skills/content.js.map +1 -0
- package/dist/lib/skills/create-installer.d.ts +9 -0
- package/dist/lib/skills/create-installer.d.ts.map +1 -0
- package/dist/lib/skills/create-installer.js +65 -0
- package/dist/lib/skills/create-installer.js.map +1 -0
- package/dist/lib/skills/index.d.ts +7 -0
- package/dist/lib/skills/index.d.ts.map +1 -0
- package/dist/lib/skills/index.js +54 -0
- package/dist/lib/skills/index.js.map +1 -0
- package/dist/lib/skills/types.d.ts +30 -0
- package/dist/lib/skills/types.d.ts.map +1 -0
- package/dist/lib/skills/types.js +2 -0
- package/dist/lib/skills/types.js.map +1 -0
- package/dist/lib/skills/update-installed.d.ts +9 -0
- package/dist/lib/skills/update-installed.d.ts.map +1 -0
- package/dist/lib/skills/update-installed.js +20 -0
- package/dist/lib/skills/update-installed.js.map +1 -0
- package/dist/lib/spinner.d.ts +3 -0
- package/dist/lib/spinner.d.ts.map +1 -0
- package/dist/lib/spinner.js +10 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/threads.d.ts +4 -0
- package/dist/lib/threads.d.ts.map +1 -0
- package/dist/lib/threads.js +6 -0
- package/dist/lib/threads.js.map +1 -0
- package/dist/lib/update.d.ts +13 -0
- package/dist/lib/update.d.ts.map +1 -0
- package/dist/lib/update.js +23 -0
- package/dist/lib/update.js.map +1 -0
- package/dist/lib/user-records.d.ts +15 -0
- package/dist/lib/user-records.d.ts.map +1 -0
- package/dist/lib/user-records.js +84 -0
- package/dist/lib/user-records.js.map +1 -0
- package/dist/lib/validation.d.ts +2 -0
- package/dist/lib/validation.d.ts.map +1 -0
- package/dist/lib/validation.js +7 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/postinstall.d.ts +2 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +4 -0
- package/dist/postinstall.js.map +1 -0
- package/package.json +77 -8
- package/scripts/check-skill-sync.js +40 -0
- package/scripts/postinstall.js +12 -0
- package/scripts/sync-skill.js +29 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
import packageJson from '../../../package.json' with { type: 'json' };
|
|
2
|
+
export const SKILL_NAME = 'comms-cli';
|
|
3
|
+
export const SKILL_DESCRIPTION = 'Comms messaging CLI. View and respond to inbox threads, channel threads, direct messages, mentions, and group conversations; search, react, archive, mute, and manage workspaces. Use when the user mentions Comms, asks about their inbox, mentions, threads, DMs, channels, or wants to read or send Comms messages.';
|
|
4
|
+
export const SKILL_AUTHOR = 'Doist';
|
|
5
|
+
export const SKILL_LICENSE = 'MIT';
|
|
6
|
+
export const SKILL_VERSION = packageJson.version;
|
|
7
|
+
export const SKILL_CONTENT = `# Comms CLI (tdc)
|
|
8
|
+
|
|
9
|
+
Access Comms messaging via the \`tdc\` CLI. Use when the user asks about their Comms workspaces, threads, messages, or wants to interact with Comms in any way.
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
\`\`\`bash
|
|
14
|
+
tdc auth login # OAuth login (opens browser, read-write)
|
|
15
|
+
tdc auth login --read-only # OAuth login with read-only scope
|
|
16
|
+
tdc auth login --callback-port <n># Override the local OAuth callback port (default 8766)
|
|
17
|
+
tdc auth login --json # Emit a JSON envelope for scripted / agent use
|
|
18
|
+
tdc auth login --ndjson # Emit an NDJSON envelope for scripted / agent use
|
|
19
|
+
tdc auth token # Save API token manually (prompts securely; scope unknown, assumed write-capable)
|
|
20
|
+
tdc auth status # Verify authentication + show mode
|
|
21
|
+
tdc auth status --json # Full status payload as JSON (--ndjson also supported)
|
|
22
|
+
tdc auth status --user <ref> # Target a specific stored account (id, id:<n>, or display name)
|
|
23
|
+
tdc --user <ref> auth <status|logout|token view> # Equivalent to passing --user after the subcommand; other commands accept the flag but ignore it
|
|
24
|
+
tdc auth logout # Remove saved token and auth metadata
|
|
25
|
+
tdc auth logout --json # Emits \`{"ok": true}\` (--ndjson is silent)
|
|
26
|
+
tdc auth logout --user <ref> # Target a specific stored account; mismatched ref errors with ACCOUNT_NOT_FOUND
|
|
27
|
+
tdc auth token view # Print the saved token to stdout (pipe-safe; refuses if COMMS_API_TOKEN is set)
|
|
28
|
+
tdc auth token view --user <ref> # Print the saved token for a specific stored account
|
|
29
|
+
tdc account [list|current|use <ref>|remove <ref>] # Manage stored accounts; all support --json/--ndjson
|
|
30
|
+
# current's payload is {id, label, authMode, authScope, source:"config"} | {source:"env"} | {source:"token-only"}
|
|
31
|
+
tdc auth login # Re-running auth login with a different OAuth grant adds a NEW account; default stays pinned unless none was set
|
|
32
|
+
tdc workspaces # List available workspaces
|
|
33
|
+
tdc workspace use <ref> # Set current workspace
|
|
34
|
+
tdc completion install # Install shell completions
|
|
35
|
+
tdc config view # Show the current CLI configuration file (token masked)
|
|
36
|
+
tdc config set <key> <value> # Set a user preference (e.g. unarchive-new-threads true)
|
|
37
|
+
tdc doctor # Diagnose CLI setup and environment issues
|
|
38
|
+
tdc update # Update CLI to latest version
|
|
39
|
+
tdc changelog # Show recent changelog entries
|
|
40
|
+
\`\`\`
|
|
41
|
+
|
|
42
|
+
Stored auth uses the system credential manager when available. If secure storage is unavailable, \`tdc\` warns and falls back to \`~/.config/comms-cli/config.json\`. \`COMMS_API_TOKEN\` always takes priority over the stored token.
|
|
43
|
+
|
|
44
|
+
In read-only mode (\`tdc auth login --read-only\`), commands that modify Comms data (reply, archive, react, delete, etc.) are blocked by the CLI. Externally provided tokens (\`COMMS_API_TOKEN\` or \`tdc auth token\`) are treated as unknown scope and assumed write-capable.
|
|
45
|
+
|
|
46
|
+
## View by URL
|
|
47
|
+
|
|
48
|
+
\`\`\`bash
|
|
49
|
+
tdc view <url> # View any Comms entity by URL
|
|
50
|
+
\`\`\`
|
|
51
|
+
|
|
52
|
+
Routes automatically based on URL structure:
|
|
53
|
+
- Message URL → \`tdc msg view\`
|
|
54
|
+
- Conversation URL → \`tdc conversation view\`
|
|
55
|
+
- Thread+comment URL → \`tdc thread view\` (comment ID extracted from URL)
|
|
56
|
+
- Thread URL → \`tdc thread view\`
|
|
57
|
+
|
|
58
|
+
All target command flags pass through (e.g. \`--json\`, \`--raw\`, \`--full\`).
|
|
59
|
+
|
|
60
|
+
## Inbox
|
|
61
|
+
|
|
62
|
+
\`\`\`bash
|
|
63
|
+
tdc inbox # Show inbox threads
|
|
64
|
+
tdc inbox --unread # Only unread threads
|
|
65
|
+
tdc inbox --archive-filter all # Show active + done threads
|
|
66
|
+
tdc inbox --archive-filter archived # Show only done threads
|
|
67
|
+
tdc inbox --channel <filter> # Filter by channel name (fuzzy)
|
|
68
|
+
tdc inbox --since <date> # Filter by date (ISO format)
|
|
69
|
+
tdc inbox --limit <n> # Max items (default: 50)
|
|
70
|
+
\`\`\`
|
|
71
|
+
|
|
72
|
+
## Threads
|
|
73
|
+
|
|
74
|
+
\`\`\`bash
|
|
75
|
+
tdc thread <thread-ref> # View thread (shorthand for view)
|
|
76
|
+
tdc thread view <thread-ref> # View thread with comments
|
|
77
|
+
tdc thread view <ref> --comment <id> # View a specific comment
|
|
78
|
+
tdc thread view <url-with-/c/id> # Comment ID extracted from URL
|
|
79
|
+
tdc thread view <ref> --unread # Show only unread comments
|
|
80
|
+
tdc thread view <ref> --context 3 # Include 3 read comments before unread
|
|
81
|
+
tdc thread view <ref> --limit 20 # Limit number of comments
|
|
82
|
+
tdc thread view <ref> --since <date> # Comments newer than date
|
|
83
|
+
tdc thread view <ref> --raw # Show raw markdown
|
|
84
|
+
tdc thread create <channel-ref> "Title" "content" # Create a new thread
|
|
85
|
+
tdc thread create <channel-ref> "Title" "content" --json # Create and return as JSON
|
|
86
|
+
tdc thread create <channel-ref> "Title" "content" --json --full # Include all thread fields
|
|
87
|
+
tdc thread create <channel-ref> "Title" "content" --notify 123,456 # Notify specific users
|
|
88
|
+
tdc thread create <channel-ref> "Title" "content" --unarchive # Land thread in author's Inbox (overrides default Comms auto-archive)
|
|
89
|
+
tdc thread create <channel-ref> "Title" "content" --no-unarchive # Force archive even when userSettings.unarchiveNewThreads=true
|
|
90
|
+
tdc thread create <channel-ref> "Title" "content" --dry-run # Preview without posting
|
|
91
|
+
tdc thread reply <ref> "content" # Post a comment (notifies EVERYONE_IN_THREAD by default)
|
|
92
|
+
tdc thread reply <ref> "content" --notify EVERYONE # Notify all workspace members
|
|
93
|
+
tdc thread reply <ref> "content" --notify 123,id:456 # Notify specific user IDs
|
|
94
|
+
tdc thread reply <ref> "content" --json # Post and return comment as JSON
|
|
95
|
+
tdc thread reply <ref> "content" --json --full # Include all comment fields
|
|
96
|
+
tdc thread reply <ref> "content" --close # Reply and close the thread
|
|
97
|
+
tdc thread reply <ref> "content" --reopen # Reply and reopen a closed thread
|
|
98
|
+
tdc thread done <ref> # Archive thread (mark done)
|
|
99
|
+
tdc thread done <ref> --json # Archive and return status as JSON
|
|
100
|
+
tdc thread mute <ref> # Mute thread for 60 minutes (default)
|
|
101
|
+
tdc thread mute <ref> --minutes 480 # Mute for custom duration
|
|
102
|
+
tdc thread mute <ref> --json # Mute and return { id, mutedUntil } as JSON
|
|
103
|
+
tdc thread mute <ref> --json --full # Mute and return full thread as JSON
|
|
104
|
+
tdc thread unmute <ref> # Unmute a muted thread
|
|
105
|
+
tdc thread unmute <ref> --json # Unmute and return { id, mutedUntil } as JSON
|
|
106
|
+
tdc thread delete <ref> # Preview thread deletion (requires --yes to execute)
|
|
107
|
+
tdc thread delete <ref> --yes # Permanently delete a thread
|
|
108
|
+
tdc thread delete <ref> --yes --json # Delete and return status as JSON
|
|
109
|
+
tdc thread rename <ref> "New title" # Rename a thread (change its title)
|
|
110
|
+
tdc thread rename <ref> "New title" --json # Rename and return { id, title } as JSON
|
|
111
|
+
tdc thread rename <ref> "New title" --json --full # Rename and return full thread as JSON
|
|
112
|
+
tdc thread update <ref> "New body" # Update a thread's body (the first post)
|
|
113
|
+
echo "New body" | tdc thread update <ref> # Update body from stdin
|
|
114
|
+
tdc thread update <ref> "New body" --dry-run # Preview without updating
|
|
115
|
+
tdc thread update <ref> "New body" --json # Update and return { id, content } as JSON
|
|
116
|
+
tdc thread update <ref> "New body" --json --full # Update and return full thread as JSON
|
|
117
|
+
\`\`\`
|
|
118
|
+
|
|
119
|
+
Default \`--notify\` for reply is EVERYONE_IN_THREAD, which may notify more people than intended. Before posting, confirm with the user whether specific people should be notified instead (via \`--notify <user-ids>\`). Options: EVERYONE, EVERYONE_IN_THREAD, or comma-separated ID refs.
|
|
120
|
+
|
|
121
|
+
\`--notify\` automatically resolves IDs: group IDs are routed to the \`groups\` API field, user IDs to \`recipients\`. No special syntax needed.
|
|
122
|
+
|
|
123
|
+
## Thread Comments
|
|
124
|
+
|
|
125
|
+
\`\`\`bash
|
|
126
|
+
tdc comment <comment-ref> # View a comment (shorthand for view)
|
|
127
|
+
tdc comment view <comment-ref> # View a single thread comment
|
|
128
|
+
tdc comment view <comment-ref> --raw # Show raw markdown
|
|
129
|
+
tdc comment view <comment-ref> --json # Output as JSON
|
|
130
|
+
tdc comment view <comment-ref> --ndjson # Output as newline-delimited JSON
|
|
131
|
+
tdc comment view <comment-ref> --json --full # Include all fields in JSON output
|
|
132
|
+
tdc comment update <comment-ref> "new content" # Update a thread comment
|
|
133
|
+
tdc comment update <comment-ref> "content" --json # Update and return updated comment as JSON
|
|
134
|
+
tdc comment update <comment-ref> "content" --json --full # Include all comment fields
|
|
135
|
+
tdc comment delete <comment-ref> # Delete a thread comment
|
|
136
|
+
tdc comment delete <comment-ref> --json # Delete and return status as JSON
|
|
137
|
+
\`\`\`
|
|
138
|
+
|
|
139
|
+
## Conversations (DMs/Groups)
|
|
140
|
+
|
|
141
|
+
\`\`\`bash
|
|
142
|
+
tdc conversation unread # List unread conversations
|
|
143
|
+
tdc conversation <conversation-ref> # View conversation (shorthand for view)
|
|
144
|
+
tdc conversation view <conversation-ref> # View conversation messages
|
|
145
|
+
tdc conversation with <user-ref> # Find your 1:1 DM with a user
|
|
146
|
+
tdc conversation with <user-ref> --snippet # Include the latest message preview
|
|
147
|
+
tdc conversation with <user-ref> --include-groups # List any conversations with that user
|
|
148
|
+
tdc conversation reply <ref> "content" # Send a message
|
|
149
|
+
tdc conversation reply <ref> "content" --json # Send and return message as JSON
|
|
150
|
+
tdc conversation reply <ref> "content" --json --full # Include all message fields
|
|
151
|
+
tdc conversation done <ref> # Archive conversation
|
|
152
|
+
tdc conversation done <ref> --json # Archive and return status as JSON
|
|
153
|
+
tdc conversation mute <ref> # Mute conversation for 60 minutes (default)
|
|
154
|
+
tdc conversation mute <ref> --minutes 480 # Mute for custom duration
|
|
155
|
+
tdc conversation mute <ref> --json # Mute and return { id, mutedUntil } as JSON
|
|
156
|
+
tdc conversation mute <ref> --json --full # Mute and return full conversation as JSON
|
|
157
|
+
tdc conversation unmute <ref> # Unmute a muted conversation
|
|
158
|
+
tdc conversation unmute <ref> --json # Unmute and return { id, mutedUntil } as JSON
|
|
159
|
+
\`\`\`
|
|
160
|
+
|
|
161
|
+
Alias: \`tdc convo\` works the same as \`tdc conversation\`.
|
|
162
|
+
|
|
163
|
+
## Conversation Messages
|
|
164
|
+
|
|
165
|
+
\`\`\`bash
|
|
166
|
+
tdc msg <message-ref> # View a message (shorthand for view)
|
|
167
|
+
tdc msg view <message-ref> # View a single conversation message
|
|
168
|
+
tdc msg update <ref> "content" # Edit a conversation message
|
|
169
|
+
tdc msg update <ref> "content" --json # Edit and return updated message as JSON
|
|
170
|
+
tdc msg update <ref> "content" --json --full # Include all message fields
|
|
171
|
+
tdc msg delete <ref> # Delete a conversation message
|
|
172
|
+
tdc msg delete <ref> --json # Delete and return status as JSON
|
|
173
|
+
\`\`\`
|
|
174
|
+
|
|
175
|
+
Alias: \`tdc message\` works the same as \`tdc msg\`.
|
|
176
|
+
|
|
177
|
+
## Search
|
|
178
|
+
|
|
179
|
+
\`\`\`bash
|
|
180
|
+
tdc mentions # Show content mentioning current user
|
|
181
|
+
tdc mentions --since 2026-04-01 --all # Fetch every mention since a date
|
|
182
|
+
tdc mentions --type threads --json # Limit mentions to threads
|
|
183
|
+
tdc search "query" # Search content
|
|
184
|
+
tdc search "query" --type threads # Filter: threads, messages, or all
|
|
185
|
+
tdc search "query" --author <ref> # Filter by author
|
|
186
|
+
tdc search "query" --to <ref> # Messages sent to user
|
|
187
|
+
tdc search "query" --title-only # Search thread titles only
|
|
188
|
+
tdc search "query" --mention-me # Results mentioning current user
|
|
189
|
+
tdc search "query" --conversation <refs> # Limit to conversations (comma-separated refs)
|
|
190
|
+
tdc search "query" --since <date> # Content from date
|
|
191
|
+
tdc search "query" --until <date> # Content until date
|
|
192
|
+
tdc search "query" --channel <refs> # Filter by channel refs (comma-separated)
|
|
193
|
+
tdc search "query" --limit <n> # Max results (default: 50)
|
|
194
|
+
tdc search "query" --cursor <cur> # Pagination cursor
|
|
195
|
+
tdc search "query" --all # Fetch all result pages
|
|
196
|
+
\`\`\`
|
|
197
|
+
|
|
198
|
+
## Users, Channels & Groups
|
|
199
|
+
|
|
200
|
+
\`\`\`bash
|
|
201
|
+
tdc user # Show current user info
|
|
202
|
+
tdc user --json # JSON output
|
|
203
|
+
tdc user --json --full # Include all fields in JSON output
|
|
204
|
+
tdc users # List workspace users
|
|
205
|
+
tdc users --search <text> # Filter by name/email
|
|
206
|
+
tdc channels # List active joined workspace channels (alias of: tdc channel list)
|
|
207
|
+
tdc channels --state all # Include archived joined channels too
|
|
208
|
+
tdc channels --scope discoverable # Active public channels you can see but have not joined
|
|
209
|
+
tdc channels --scope public --state all --json # All visible public channels, with joined status
|
|
210
|
+
tdc channel create "Engineering" # Create a channel in the current workspace
|
|
211
|
+
tdc channel create "Leadership Team" --private --users id:10,id:20 # Create private channel with initial members
|
|
212
|
+
tdc channel create "Product" --workspace "Doist" --description "Product discussions" --json # Create and return channel as JSON
|
|
213
|
+
tdc channel update <channel-ref> "New name" # Rename a channel
|
|
214
|
+
tdc channel update <ref> --name "New name" # Rename with an explicit flag
|
|
215
|
+
tdc channel update <ref> --description "Team discussions" # Update channel description
|
|
216
|
+
tdc channel update <ref> --clear-description # Clear channel description
|
|
217
|
+
tdc channel update <ref> --public # Make a channel public (--private makes it private)
|
|
218
|
+
tdc channel update <ref> --description "Team discussions" --json --full # Update and return all channel fields
|
|
219
|
+
tdc channel threads <channel-ref> # List threads in a channel (fuzzy name, id:, numeric ID, or URL)
|
|
220
|
+
tdc channel threads "general" --unread # Only unread threads
|
|
221
|
+
tdc channel threads <ref> --archive-filter all # Include archived threads (active|archived|all)
|
|
222
|
+
tdc channel threads <ref> --since 2026-01-01 # Filter by last-updated date (ISO)
|
|
223
|
+
tdc channel threads <ref> --limit 20 # Max threads per page (default: 50)
|
|
224
|
+
tdc channel threads <ref> --limit 20 --cursor <cursor-from-prev> # Paginate
|
|
225
|
+
tdc channel threads <ref> --json # { results, nextCursor } with isUnread + url
|
|
226
|
+
tdc groups # List workspace groups
|
|
227
|
+
tdc groups --search "frontend" # Filter groups by name (case-insensitive)
|
|
228
|
+
tdc groups --json # JSON output
|
|
229
|
+
tdc groups --json --full # Include all fields in JSON output
|
|
230
|
+
tdc groups view <group-ref> # Show group with member details
|
|
231
|
+
tdc groups view <ref> --json # JSON output with id, name, workspaceId, members
|
|
232
|
+
tdc groups view <ref> --json --full # Include all fields in JSON output
|
|
233
|
+
tdc groups create "Name" # Create a new group
|
|
234
|
+
tdc groups create "Name" --users alice@doist.com,bob@doist.com # Create with members
|
|
235
|
+
tdc groups create "Name" --json # Output created group as JSON
|
|
236
|
+
tdc groups rename <group-ref> "New name" # Rename a group
|
|
237
|
+
tdc groups rename <ref> "Name" --json # Output renamed group as JSON
|
|
238
|
+
tdc groups delete <group-ref> --yes # Delete a group (requires --yes)
|
|
239
|
+
tdc groups delete <ref> --dry-run # Preview deletion
|
|
240
|
+
tdc groups add-user <group-ref> user1 user2 # Add users to a group
|
|
241
|
+
tdc groups add-user <ref> a@d.com,b@d.com # Comma-separated refs
|
|
242
|
+
tdc groups add-user <ref> id:123 --json # Output result as JSON
|
|
243
|
+
tdc groups remove-user <group-ref> user1 user2 # Remove users from a group
|
|
244
|
+
tdc groups remove-user <ref> id:123,id:456 # Comma-separated ID refs
|
|
245
|
+
\`\`\`
|
|
246
|
+
|
|
247
|
+
If a channel is not found in \`tdc channels\`, widen with broader listings such as \`tdc channels --scope public\`, then \`tdc channels --scope public --state all\`. Check \`tdc channels --help\` for other available filters.
|
|
248
|
+
|
|
249
|
+
\`tdc channel threads\` returns every thread in the channel; pagination filters (\`--limit\`, \`--cursor\`, \`--since\`, \`--until\`, \`--unread\`) are applied client-side after fetch. \`--archive-filter\` is applied server-side. Results are sorted newest-first by last activity. In \`--json\` / \`--ndjson\`, the response includes a \`nextCursor\` string (opaque) you can pass via \`--cursor\` to fetch the next page; NDJSON emits the cursor as a final \`{ "_meta": true, "nextCursor": "..." }\` line.
|
|
250
|
+
|
|
251
|
+
## Reactions
|
|
252
|
+
|
|
253
|
+
\`\`\`bash
|
|
254
|
+
tdc react thread <ref> 👍 # Add reaction to thread
|
|
255
|
+
tdc react comment <ref> +1 # Add reaction (shortcode)
|
|
256
|
+
tdc react message <ref> heart # Add reaction to DM message
|
|
257
|
+
tdc react thread <ref> 👍 --json # Output result as JSON
|
|
258
|
+
tdc unreact thread <ref> 👍 # Remove reaction
|
|
259
|
+
tdc unreact thread <ref> 👍 --json # Output result as JSON
|
|
260
|
+
\`\`\`
|
|
261
|
+
|
|
262
|
+
Supported shortcodes: +1, -1, heart, tada, smile, laughing, thinking, fire, check, x, eyes, pray, clap, rocket, wave
|
|
263
|
+
|
|
264
|
+
## Shell Completions
|
|
265
|
+
|
|
266
|
+
\`\`\`bash
|
|
267
|
+
tdc completion install # Install tab completions (prompts for shell)
|
|
268
|
+
tdc completion install bash # Install for specific shell
|
|
269
|
+
tdc completion install zsh
|
|
270
|
+
tdc completion install fish
|
|
271
|
+
tdc completion uninstall # Remove completions
|
|
272
|
+
\`\`\`
|
|
273
|
+
|
|
274
|
+
### Diagnostics
|
|
275
|
+
|
|
276
|
+
\`\`\`bash
|
|
277
|
+
tdc doctor # Run local + network diagnostics
|
|
278
|
+
tdc doctor --offline # Skip Comms and npm network checks
|
|
279
|
+
tdc doctor --json # JSON output with per-check results
|
|
280
|
+
\`\`\`
|
|
281
|
+
|
|
282
|
+
### Configuration
|
|
283
|
+
|
|
284
|
+
\`\`\`bash
|
|
285
|
+
tdc config view # Pretty-printed config, token masked, labels actual token source
|
|
286
|
+
tdc config view --json # Raw JSON, token masked
|
|
287
|
+
tdc config view --show-token # Include the full token
|
|
288
|
+
tdc config set unarchive-new-threads true # Persist: always unarchive new threads so they land in your Inbox
|
|
289
|
+
tdc config set unarchive-new-threads false # Persist: keep Comms's default (thread auto-archived for author)
|
|
290
|
+
\`\`\`
|
|
291
|
+
|
|
292
|
+
User preferences are stored under \`userSettings\` in the config file. Currently supported keys: \`unarchive-new-threads\`. The flag on \`tdc thread create\` (\`--unarchive\` / \`--no-unarchive\`) overrides this default per-invocation.
|
|
293
|
+
|
|
294
|
+
### Update
|
|
295
|
+
|
|
296
|
+
\`\`\`bash
|
|
297
|
+
tdc update # Update CLI to latest version
|
|
298
|
+
tdc update --check # Check for updates without installing, show channel
|
|
299
|
+
tdc update --check --json # Same, JSON envelope
|
|
300
|
+
tdc update --check --ndjson # Same, newline-delimited JSON envelope
|
|
301
|
+
tdc update --channel # Show current update channel
|
|
302
|
+
tdc update switch --stable # Switch to stable release channel
|
|
303
|
+
tdc update switch --pre-release # Switch to pre-release (next) channel
|
|
304
|
+
tdc update switch --pre-release --json # Same, JSON envelope
|
|
305
|
+
tdc update switch --pre-release --ndjson # Same, newline-delimited JSON envelope
|
|
306
|
+
\`\`\`
|
|
307
|
+
|
|
308
|
+
### Changelog
|
|
309
|
+
\`\`\`bash
|
|
310
|
+
tdc changelog # Show last 5 versions
|
|
311
|
+
tdc changelog -n 3 # Show last 3 versions
|
|
312
|
+
tdc changelog --count 10 # Show last 10 versions
|
|
313
|
+
\`\`\`
|
|
314
|
+
|
|
315
|
+
## Global Options
|
|
316
|
+
|
|
317
|
+
\`\`\`bash
|
|
318
|
+
--no-spinner # Disable loading animations
|
|
319
|
+
--progress-jsonl # Machine-readable progress events (JSONL to stderr)
|
|
320
|
+
--progress-jsonl=<path> # Same, but write events to <path> instead of stderr
|
|
321
|
+
--progress-jsonl <path> # Same as above (space-separated form also accepted)
|
|
322
|
+
--accessible # Add text labels to color-coded output (also: TDC_ACCESSIBLE=1)
|
|
323
|
+
--non-interactive # Disable interactive prompts (auto-detected when stdin is not a TTY)
|
|
324
|
+
--interactive # Force interactive mode even when stdin is not a TTY
|
|
325
|
+
\`\`\`
|
|
326
|
+
|
|
327
|
+
## Output Formats
|
|
328
|
+
|
|
329
|
+
All list/view commands support:
|
|
330
|
+
|
|
331
|
+
\`\`\`bash
|
|
332
|
+
--json # Output as JSON
|
|
333
|
+
--ndjson # Output as newline-delimited JSON (for streaming)
|
|
334
|
+
--full # Include all fields (default shows essential fields only)
|
|
335
|
+
\`\`\`
|
|
336
|
+
|
|
337
|
+
## Dry Run
|
|
338
|
+
|
|
339
|
+
Mutating commands accept \`--dry-run\` to preview the operation without making the change. Where a command performs pre-flight validation (e.g. fetching the target thread to check channel access or ownership), those checks still run in dry-run — only the mutating write is skipped. Commands that have no pre-flight validation parse the reference and print the preview without hitting the API. The preview is structured:
|
|
340
|
+
|
|
341
|
+
\`\`\`
|
|
342
|
+
[dry-run] Would <action>:
|
|
343
|
+
<Key>: <resolved value>
|
|
344
|
+
...
|
|
345
|
+
Run without --dry-run to execute.
|
|
346
|
+
\`\`\`
|
|
347
|
+
|
|
348
|
+
## Reference System
|
|
349
|
+
|
|
350
|
+
Commands accept flexible references:
|
|
351
|
+
- **Numeric IDs**: \`123\` or \`id:123\`
|
|
352
|
+
- **Comms URLs**: Full \`https://comms.todoist.com/...\` URLs (parsed automatically)
|
|
353
|
+
- **Fuzzy names**: For workspaces/users - \`"My Workspace"\` or partial matches
|
|
354
|
+
|
|
355
|
+
## Piping Content
|
|
356
|
+
|
|
357
|
+
Commands that accept content (\`thread create\`, \`thread reply\`, \`comment update\`, \`conversation reply\`, \`msg update\`) auto-detect piped stdin:
|
|
358
|
+
|
|
359
|
+
\`\`\`bash
|
|
360
|
+
cat notes.md | tdc thread reply <ref>
|
|
361
|
+
tdc thread create <channel-ref> "Title" < body.md
|
|
362
|
+
echo "Quick reply" | tdc conversation reply <ref>
|
|
363
|
+
\`\`\`
|
|
364
|
+
|
|
365
|
+
If no content argument is provided and no stdin is piped, the CLI opens \`$EDITOR\` for interactive input. In non-TTY environments (e.g. when called by an agent or in a pipeline), the editor is automatically skipped and the command fails fast with an actionable error message. Use \`--non-interactive\` to force this behavior even in a TTY, or \`--interactive\` to override auto-detection.
|
|
366
|
+
|
|
367
|
+
## Common Workflows
|
|
368
|
+
|
|
369
|
+
**View by URL (auto-routes to the right command):**
|
|
370
|
+
\`\`\`bash
|
|
371
|
+
tdc view https://comms.todoist.com/a/1585/ch/100/t/200 # View thread
|
|
372
|
+
tdc view https://comms.todoist.com/a/1585/ch/100/t/200/c/300 # View comment
|
|
373
|
+
tdc view https://comms.todoist.com/a/1585/msg/400 # View conversation
|
|
374
|
+
tdc view https://comms.todoist.com/a/1585/msg/400/m/500 --json # View message as JSON
|
|
375
|
+
\`\`\`
|
|
376
|
+
|
|
377
|
+
**Check inbox and respond:**
|
|
378
|
+
\`\`\`bash
|
|
379
|
+
tdc inbox --unread --json
|
|
380
|
+
tdc thread view <id> --unread
|
|
381
|
+
tdc thread reply <id> "Thanks, I'll look into this."
|
|
382
|
+
tdc thread done <id>
|
|
383
|
+
\`\`\`
|
|
384
|
+
|
|
385
|
+
**Search and review:**
|
|
386
|
+
\`\`\`bash
|
|
387
|
+
tdc mentions --since 2026-04-01 --all --json
|
|
388
|
+
tdc search "deployment" --type threads --json
|
|
389
|
+
tdc thread view <thread-id>
|
|
390
|
+
\`\`\`
|
|
391
|
+
|
|
392
|
+
**Check DMs:**
|
|
393
|
+
\`\`\`bash
|
|
394
|
+
tdc conversation unread --json
|
|
395
|
+
tdc conversation view <conversation-id>
|
|
396
|
+
tdc conversation with "Alice Example"
|
|
397
|
+
tdc conversation reply <id> "Got it, thanks!"
|
|
398
|
+
\`\`\`
|
|
399
|
+
`;
|
|
400
|
+
export const SKILL_FILE_CONTENT = `---
|
|
401
|
+
name: ${SKILL_NAME}
|
|
402
|
+
description: ${JSON.stringify(SKILL_DESCRIPTION)}
|
|
403
|
+
license: ${SKILL_LICENSE}
|
|
404
|
+
metadata:
|
|
405
|
+
author: ${SKILL_AUTHOR}
|
|
406
|
+
version: ${JSON.stringify(SKILL_VERSION)}
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
${SKILL_CONTENT}`;
|
|
410
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAErE,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAA;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAC1B,wTAAwT,CAAA;AAE5T,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAA;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAA;AAElC,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAA;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwY5B,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;QAC1B,UAAU;eACH,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;WACrC,aAAa;;YAEZ,YAAY;aACX,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;;;EAGxC,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SkillInstaller } from './types.js';
|
|
2
|
+
interface InstallerConfig {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
dirName: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function createInstaller(config: InstallerConfig): SkillInstaller;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=create-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-installer.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,cAAc,EAAmC,MAAM,YAAY,CAAA;AAEjG,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CA2EvE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { mkdir, rm, stat, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { CliError } from '../errors.js';
|
|
5
|
+
import { SKILL_FILE_CONTENT, SKILL_NAME } from './content.js';
|
|
6
|
+
export function createInstaller(config) {
|
|
7
|
+
function getInstallPath(options) {
|
|
8
|
+
const base = options.local ? process.cwd() : homedir();
|
|
9
|
+
return join(base, config.dirName, 'skills', SKILL_NAME, 'SKILL.md');
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
name: config.name,
|
|
13
|
+
description: config.description,
|
|
14
|
+
getInstallPath,
|
|
15
|
+
async isInstalled(options) {
|
|
16
|
+
try {
|
|
17
|
+
await stat(getInstallPath(options));
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
async install(options) {
|
|
25
|
+
if (!options.local && config.dirName !== '.agents') {
|
|
26
|
+
const agentDir = join(homedir(), config.dirName);
|
|
27
|
+
try {
|
|
28
|
+
await stat(agentDir);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
throw new CliError('NOT_INSTALLED', `${config.name} does not appear to be installed (${agentDir} not found)`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const skillPath = getInstallPath(options);
|
|
35
|
+
const exists = await this.isInstalled(options);
|
|
36
|
+
if (exists && !options.force) {
|
|
37
|
+
throw new CliError('ALREADY_INSTALLED', `Skill already installed at ${skillPath}. Use --force to overwrite.`);
|
|
38
|
+
}
|
|
39
|
+
await mkdir(dirname(skillPath), { recursive: true });
|
|
40
|
+
await writeFile(skillPath, SKILL_FILE_CONTENT);
|
|
41
|
+
},
|
|
42
|
+
async update(options) {
|
|
43
|
+
const skillPath = getInstallPath(options);
|
|
44
|
+
const exists = await this.isInstalled(options);
|
|
45
|
+
if (!exists) {
|
|
46
|
+
throw new CliError('NOT_INSTALLED', `Skill not installed at ${skillPath}`, [
|
|
47
|
+
`Run: tdc skill install ${config.name}`,
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
await writeFile(skillPath, SKILL_FILE_CONTENT);
|
|
51
|
+
},
|
|
52
|
+
async uninstall(options) {
|
|
53
|
+
const skillPath = getInstallPath(options);
|
|
54
|
+
const exists = await this.isInstalled(options);
|
|
55
|
+
if (!exists) {
|
|
56
|
+
throw new CliError('NOT_INSTALLED', `Skill not installed at ${skillPath}`, [
|
|
57
|
+
`Run: tdc skill install ${config.name}`,
|
|
58
|
+
]);
|
|
59
|
+
}
|
|
60
|
+
const skillDir = dirname(skillPath);
|
|
61
|
+
await rm(skillDir, { recursive: true });
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=create-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-installer.js","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAS7D,MAAM,UAAU,eAAe,CAAC,MAAuB;IACnD,SAAS,cAAc,CAAC,OAA4B;QAChD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;QACtD,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IACvE,CAAC;IAED,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAE/B,cAAc;QAEd,KAAK,CAAC,WAAW,CAAC,OAA4B;YAC1C,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;gBACnC,OAAO,IAAI,CAAA;YACf,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAA;YAChB,CAAC;QACL,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,OAAuB;YACjC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBAChD,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACL,MAAM,IAAI,QAAQ,CACd,eAAe,EACf,GAAG,MAAM,CAAC,IAAI,qCAAqC,QAAQ,aAAa,CAC3E,CAAA;gBACL,CAAC;YACL,CAAC;YAED,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAE9C,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,QAAQ,CACd,mBAAmB,EACnB,8BAA8B,SAAS,6BAA6B,CACvE,CAAA;YACL,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACpD,MAAM,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;QAClD,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAsB;YAC/B,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,0BAA0B,SAAS,EAAE,EAAE;oBACvE,0BAA0B,MAAM,CAAC,IAAI,EAAE;iBAC1C,CAAC,CAAA;YACN,CAAC;YAED,MAAM,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;QAClD,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,OAAyB;YACrC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,0BAA0B,SAAS,EAAE,EAAE;oBACvE,0BAA0B,MAAM,CAAC,IAAI,EAAE;iBAC1C,CAAC,CAAA;YACN,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AgentInfo, SkillInstaller } from './types.js';
|
|
2
|
+
export declare const skillInstallers: Record<string, SkillInstaller>;
|
|
3
|
+
export declare function getInstaller(name: string): SkillInstaller | null;
|
|
4
|
+
export declare function listAgentNames(): string[];
|
|
5
|
+
export declare function listAgents(local: boolean): Promise<AgentInfo[]>;
|
|
6
|
+
export type { AgentInfo, InstallOptions, SkillInstaller, UninstallOptions, UpdateOptions, } from './types.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA+B1D,CAAA;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAEhE;AAED,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAerE;AAED,YAAY,EACR,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,GAChB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createInstaller } from './create-installer.js';
|
|
2
|
+
export const skillInstallers = {
|
|
3
|
+
'claude-code': createInstaller({
|
|
4
|
+
name: 'claude-code',
|
|
5
|
+
description: 'Claude Code skill for Comms CLI',
|
|
6
|
+
dirName: '.claude',
|
|
7
|
+
}),
|
|
8
|
+
codex: createInstaller({
|
|
9
|
+
name: 'codex',
|
|
10
|
+
description: 'Codex skill for Comms CLI',
|
|
11
|
+
dirName: '.codex',
|
|
12
|
+
}),
|
|
13
|
+
cursor: createInstaller({
|
|
14
|
+
name: 'cursor',
|
|
15
|
+
description: 'Cursor skill for Comms CLI',
|
|
16
|
+
dirName: '.cursor',
|
|
17
|
+
}),
|
|
18
|
+
gemini: createInstaller({
|
|
19
|
+
name: 'gemini',
|
|
20
|
+
description: 'Gemini CLI skill for Comms CLI',
|
|
21
|
+
dirName: '.gemini',
|
|
22
|
+
}),
|
|
23
|
+
pi: createInstaller({
|
|
24
|
+
name: 'pi',
|
|
25
|
+
description: 'Pi skill for Comms CLI',
|
|
26
|
+
dirName: '.pi',
|
|
27
|
+
}),
|
|
28
|
+
universal: createInstaller({
|
|
29
|
+
name: 'universal',
|
|
30
|
+
description: 'Universal agent skill for Comms CLI',
|
|
31
|
+
dirName: '.agents',
|
|
32
|
+
}),
|
|
33
|
+
};
|
|
34
|
+
export function getInstaller(name) {
|
|
35
|
+
return skillInstallers[name] ?? null;
|
|
36
|
+
}
|
|
37
|
+
export function listAgentNames() {
|
|
38
|
+
return Object.keys(skillInstallers);
|
|
39
|
+
}
|
|
40
|
+
export async function listAgents(local) {
|
|
41
|
+
const agents = [];
|
|
42
|
+
for (const name of listAgentNames()) {
|
|
43
|
+
const installer = skillInstallers[name];
|
|
44
|
+
const installed = await installer.isInstalled({ local });
|
|
45
|
+
agents.push({
|
|
46
|
+
name,
|
|
47
|
+
description: installer.description,
|
|
48
|
+
installed,
|
|
49
|
+
path: installed ? installer.getInstallPath({ local }) : null,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return agents;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC3D,aAAa,EAAE,eAAe,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,KAAK,EAAE,eAAe,CAAC;QACnB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,QAAQ;KACpB,CAAC;IACF,MAAM,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,MAAM,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,EAAE,EAAE,eAAe,CAAC;QAChB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,wBAAwB;QACrC,OAAO,EAAE,KAAK;KACjB,CAAC;IACF,SAAS,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,SAAS;KACrB,CAAC;CACL,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACrC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,cAAc;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAc;IAC3C,MAAM,MAAM,GAAgB,EAAE,CAAA;IAE9B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACxD,MAAM,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,SAAS;YACT,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;SAC/D,CAAC,CAAA;IACN,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface InstallOptions {
|
|
2
|
+
local?: boolean;
|
|
3
|
+
force?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface UninstallOptions {
|
|
6
|
+
local?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface UpdateOptions {
|
|
9
|
+
local?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface SkillInstaller {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
install(options: InstallOptions): Promise<void>;
|
|
15
|
+
update(options: UpdateOptions): Promise<void>;
|
|
16
|
+
uninstall(options: UninstallOptions): Promise<void>;
|
|
17
|
+
isInstalled(options: {
|
|
18
|
+
local?: boolean;
|
|
19
|
+
}): Promise<boolean>;
|
|
20
|
+
getInstallPath(options: {
|
|
21
|
+
local?: boolean;
|
|
22
|
+
}): string;
|
|
23
|
+
}
|
|
24
|
+
export interface AgentInfo {
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
installed: boolean;
|
|
28
|
+
path: string | null;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,WAAW,CAAC,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D,cAAc,CAAC,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAA;CACvD;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/skills/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-installed.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/update-installed.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,OAAO,CAAC,eAAe,CAAC,CAkB3B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { skillInstallers } from './index.js';
|
|
2
|
+
export async function updateAllInstalledSkills(options) {
|
|
3
|
+
const result = { updated: [], skipped: [], errors: [] };
|
|
4
|
+
for (const [name, installer] of Object.entries(skillInstallers)) {
|
|
5
|
+
try {
|
|
6
|
+
const installed = await installer.isInstalled(options);
|
|
7
|
+
if (!installed) {
|
|
8
|
+
result.skipped.push(name);
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
await installer.update(options);
|
|
12
|
+
result.updated.push(name);
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
result.errors.push(`${name}: ${err.message}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=update-installed.js.map
|