@doist/twist-cli 2.24.1 → 2.26.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/commands/channel.d.ts.map +1 -1
  3. package/dist/commands/channel.js +142 -20
  4. package/dist/commands/channel.js.map +1 -1
  5. package/dist/commands/doctor.d.ts +9 -0
  6. package/dist/commands/doctor.d.ts.map +1 -0
  7. package/dist/commands/doctor.js +325 -0
  8. package/dist/commands/doctor.js.map +1 -0
  9. package/dist/commands/update/action.d.ts +0 -1
  10. package/dist/commands/update/action.d.ts.map +1 -1
  11. package/dist/commands/update/action.js +5 -39
  12. package/dist/commands/update/action.js.map +1 -1
  13. package/dist/index.js +7 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/lib/api.d.ts +1 -0
  16. package/dist/lib/api.d.ts.map +1 -1
  17. package/dist/lib/api.js +6 -2
  18. package/dist/lib/api.js.map +1 -1
  19. package/dist/lib/auth.d.ts +10 -0
  20. package/dist/lib/auth.d.ts.map +1 -1
  21. package/dist/lib/auth.js +45 -0
  22. package/dist/lib/auth.js.map +1 -1
  23. package/dist/lib/config.d.ts +1 -0
  24. package/dist/lib/config.d.ts.map +1 -1
  25. package/dist/lib/config.js +42 -0
  26. package/dist/lib/config.js.map +1 -1
  27. package/dist/lib/errors.d.ts +1 -1
  28. package/dist/lib/errors.d.ts.map +1 -1
  29. package/dist/lib/errors.js.map +1 -1
  30. package/dist/lib/permissions.d.ts.map +1 -1
  31. package/dist/lib/permissions.js +1 -0
  32. package/dist/lib/permissions.js.map +1 -1
  33. package/dist/lib/skills/content.d.ts +1 -1
  34. package/dist/lib/skills/content.d.ts.map +1 -1
  35. package/dist/lib/skills/content.js +15 -1
  36. package/dist/lib/skills/content.js.map +1 -1
  37. package/dist/lib/update.d.ts +17 -0
  38. package/dist/lib/update.d.ts.map +1 -0
  39. package/dist/lib/update.js +49 -0
  40. package/dist/lib/update.js.map +1 -0
  41. package/package.json +1 -1
@@ -16,6 +16,7 @@ tw auth logout # Remove saved token and auth metadata
16
16
  tw workspaces # List available workspaces
17
17
  tw workspace use <ref> # Set current workspace
18
18
  tw completion install # Install shell completions
19
+ tw doctor # Diagnose CLI setup and environment issues
19
20
  tw update # Update CLI to latest version
20
21
  tw changelog # Show recent changelog entries
21
22
  \`\`\`
@@ -165,13 +166,18 @@ tw search "query" --cursor <cur> # Pagination cursor
165
166
  tw user # Show current user info
166
167
  tw users # List workspace users
167
168
  tw users --search <text> # Filter by name/email
168
- tw channels # List workspace channels
169
+ tw channels # List active joined workspace channels
170
+ tw channels --state all # Include archived joined channels too
171
+ tw channels --scope discoverable # Active public channels you can see but have not joined
172
+ tw channels --scope public --state all --json # All visible public channels, with joined status
169
173
  tw groups # List workspace groups
170
174
  tw groups --search "frontend" # Filter groups by name (case-insensitive)
171
175
  tw groups --json # JSON output
172
176
  tw groups --json --full # Include all fields in JSON output
173
177
  \`\`\`
174
178
 
179
+ If a channel is not found in \`tw channels\`, widen with broader listings such as \`tw channels --scope public\`, then \`tw channels --scope public --state all\`. Check \`tw channels --help\` for other available filters.
180
+
175
181
  ## Away Status
176
182
 
177
183
  \`\`\`bash
@@ -203,6 +209,14 @@ tw completion install fish
203
209
  tw completion uninstall # Remove completions
204
210
  \`\`\`
205
211
 
212
+ ### Diagnostics
213
+
214
+ \`\`\`bash
215
+ tw doctor # Run local + network diagnostics
216
+ tw doctor --offline # Skip Twist and npm network checks
217
+ tw doctor --json # JSON output with per-check results
218
+ \`\`\`
219
+
206
220
  ### Update
207
221
 
208
222
  \`\`\`bash
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAA;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,4CAA4C,CAAA;AAE7E,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkS5B,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;QAC1B,UAAU;eACH,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;EAG9C,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAA;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,4CAA4C,CAAA;AAE7E,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgT5B,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;QAC1B,UAAU;eACH,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;EAG9C,aAAa,EAAE,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { type UpdateChannel } from './config.js';
2
+ export declare const PACKAGE_NAME = "@doist/twist-cli";
3
+ interface ParsedVersion {
4
+ major: number;
5
+ minor: number;
6
+ patch: number;
7
+ prerelease: string | undefined;
8
+ }
9
+ export declare function getInstallTag(channel: UpdateChannel): string;
10
+ export declare function normalizeUpdateChannel(channel: unknown): UpdateChannel;
11
+ export declare function parseVersion(version: string): ParsedVersion;
12
+ export declare function compareVersions(a: string, b: string): number;
13
+ export declare function isNewer(current: string, candidate: string): boolean;
14
+ export declare function fetchLatestVersion(channel: UpdateChannel): Promise<string>;
15
+ export declare function getConfiguredUpdateChannel(): Promise<UpdateChannel>;
16
+ export {};
17
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/lib/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3D,eAAO,MAAM,YAAY,qBAAqB,CAAA;AAO9C,UAAU,aAAa;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAE5D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAItE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAI3D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB5D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhF;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,aAAa,CAAC,CAGzE"}
@@ -0,0 +1,49 @@
1
+ import { getConfig } from './config.js';
2
+ export const PACKAGE_NAME = '@doist/twist-cli';
3
+ const VALID_UPDATE_CHANNELS = new Set(['stable', 'pre-release']);
4
+ export function getInstallTag(channel) {
5
+ return channel === 'pre-release' ? 'next' : 'latest';
6
+ }
7
+ export function normalizeUpdateChannel(channel) {
8
+ return typeof channel === 'string' && VALID_UPDATE_CHANNELS.has(channel)
9
+ ? channel
10
+ : 'stable';
11
+ }
12
+ export function parseVersion(version) {
13
+ const [core, ...rest] = version.replace(/^v/, '').split('-');
14
+ const [major, minor, patch] = core.split('.').map(Number);
15
+ return { major, minor, patch, prerelease: rest.length > 0 ? rest.join('-') : undefined };
16
+ }
17
+ export function compareVersions(a, b) {
18
+ const left = parseVersion(a);
19
+ const right = parseVersion(b);
20
+ for (const key of ['major', 'minor', 'patch']) {
21
+ if (left[key] !== right[key])
22
+ return left[key] > right[key] ? 1 : -1;
23
+ }
24
+ if (!left.prerelease && right.prerelease)
25
+ return 1;
26
+ if (left.prerelease && !right.prerelease)
27
+ return -1;
28
+ if (left.prerelease && right.prerelease) {
29
+ return left.prerelease.localeCompare(right.prerelease, undefined, { numeric: true });
30
+ }
31
+ return 0;
32
+ }
33
+ export function isNewer(current, candidate) {
34
+ return compareVersions(candidate, current) > 0;
35
+ }
36
+ export async function fetchLatestVersion(channel) {
37
+ const url = `https://registry.npmjs.org/${PACKAGE_NAME}/${getInstallTag(channel)}`;
38
+ const response = await fetch(url);
39
+ if (!response.ok) {
40
+ throw new Error(`Registry returned ${response.status}`);
41
+ }
42
+ const data = (await response.json());
43
+ return data.version;
44
+ }
45
+ export async function getConfiguredUpdateChannel() {
46
+ const config = await getConfig();
47
+ return normalizeUpdateChannel(config.updateChannel);
48
+ }
49
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/lib/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doist/twist-cli",
3
- "version": "2.24.1",
3
+ "version": "2.26.0",
4
4
  "description": "TypeScript CLI for Twist",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",