@doist/twist-cli 1.1.0 → 1.3.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/README.md CHANGED
@@ -24,16 +24,10 @@ This makes the `tw` command available globally.
24
24
 
25
25
  ## Setup
26
26
 
27
- Save your Twist API token:
27
+ Set up your Twist API token:
28
28
 
29
29
  ```bash
30
- tw login token "your-token"
31
- ```
32
-
33
- Alternatively, set via environment variable:
34
-
35
- ```bash
36
- export TWIST_API_TOKEN="your-token"
30
+ tw auth login
37
31
  ```
38
32
 
39
33
  ## Usage
@@ -31,6 +31,16 @@ vi.mock('../lib/pkce.js', () => ({
31
31
  vi.mock('open', () => ({
32
32
  default: vi.fn(),
33
33
  }));
34
+ // Mock readline for interactive token input
35
+ vi.mock('node:readline', () => ({
36
+ createInterface: vi.fn(() => {
37
+ const rl = {
38
+ question: vi.fn(),
39
+ close: vi.fn(),
40
+ };
41
+ return rl;
42
+ }),
43
+ }));
34
44
  // Mock chalk to avoid colors in tests
35
45
  vi.mock('chalk', () => ({
36
46
  default: {
@@ -41,6 +51,7 @@ vi.mock('chalk', () => ({
41
51
  dim: vi.fn((text) => text),
42
52
  },
43
53
  }));
54
+ import { createInterface } from 'node:readline';
44
55
  import open from 'open';
45
56
  import { registerAuthCommand } from '../commands/auth.js';
46
57
  import { getSessionUser } from '../lib/api.js';
@@ -48,6 +59,7 @@ import { clearApiToken, saveApiToken } from '../lib/auth.js';
48
59
  import { buildAuthorizationUrl, exchangeCodeForToken, registerDynamicClient } from '../lib/oauth.js';
49
60
  import { startCallbackServer } from '../lib/oauth-server.js';
50
61
  import { generateCodeChallenge, generateCodeVerifier, generateState } from '../lib/pkce.js';
62
+ const mockCreateInterface = vi.mocked(createInterface);
51
63
  const mockSaveApiToken = vi.mocked(saveApiToken);
52
64
  const mockClearApiToken = vi.mocked(clearApiToken);
53
65
  const mockGetSessionUser = vi.mocked(getSessionUser);
@@ -105,6 +117,42 @@ describe('auth command', () => {
105
117
  await program.parseAsync(['node', 'tw', 'auth', 'token', tokenWithWhitespace]);
106
118
  expect(mockSaveApiToken).toHaveBeenCalledWith(expectedToken);
107
119
  });
120
+ it('prompts interactively when no token argument given', async () => {
121
+ const program = createProgram();
122
+ const mockRl = {
123
+ question: vi.fn((_prompt, cb) => {
124
+ cb('interactive_token_456');
125
+ }),
126
+ close: vi.fn(),
127
+ _writeToOutput: vi.fn(),
128
+ };
129
+ mockCreateInterface.mockReturnValue(mockRl);
130
+ mockSaveApiToken.mockResolvedValue(undefined);
131
+ const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
132
+ await program.parseAsync(['node', 'tw', 'auth', 'token']);
133
+ expect(mockRl.question).toHaveBeenCalled();
134
+ expect(mockRl.close).toHaveBeenCalled();
135
+ expect(mockSaveApiToken).toHaveBeenCalledWith('interactive_token_456');
136
+ writeSpy.mockRestore();
137
+ });
138
+ it('shows error when interactive input is empty', async () => {
139
+ const program = createProgram();
140
+ const mockRl = {
141
+ question: vi.fn((_prompt, cb) => {
142
+ cb('');
143
+ }),
144
+ close: vi.fn(),
145
+ _writeToOutput: vi.fn(),
146
+ };
147
+ mockCreateInterface.mockReturnValue(mockRl);
148
+ const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
149
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
150
+ await program.parseAsync(['node', 'tw', 'auth', 'token']);
151
+ expect(mockSaveApiToken).not.toHaveBeenCalled();
152
+ expect(errorSpy).toHaveBeenCalledWith('Error:', 'No token provided');
153
+ writeSpy.mockRestore();
154
+ errorSpy.mockRestore();
155
+ });
108
156
  });
109
157
  describe('status subcommand', () => {
110
158
  it('shows authenticated status when logged in', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../src/__tests__/auth.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../src/__tests__/auth.test.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,9 @@ vi.mock('chalk', () => ({
11
11
  },
12
12
  }));
13
13
  import { registerSkillCommand } from '../commands/skill.js';
14
- import { ClaudeCodeInstaller } from '../lib/skills/claude-code.js';
15
14
  import { SKILL_CONTENT } from '../lib/skills/content.js';
16
- import { getInstaller, listAgentNames, listAgents } from '../lib/skills/index.js';
15
+ import { createInstaller } from '../lib/skills/create-installer.js';
16
+ import { getInstaller, listAgentNames, listAgents, skillInstallers } from '../lib/skills/index.js';
17
17
  function createProgram() {
18
18
  const program = new Command();
19
19
  program.exitOverride();
@@ -26,61 +26,101 @@ describe('skill registry', () => {
26
26
  expect(installer).not.toBeNull();
27
27
  expect(installer?.name).toBe('claude-code');
28
28
  });
29
+ it('returns codex installer', () => {
30
+ const installer = getInstaller('codex');
31
+ expect(installer).not.toBeNull();
32
+ expect(installer?.name).toBe('codex');
33
+ });
34
+ it('returns cursor installer', () => {
35
+ const installer = getInstaller('cursor');
36
+ expect(installer).not.toBeNull();
37
+ expect(installer?.name).toBe('cursor');
38
+ });
29
39
  it('returns null for unknown agent', () => {
30
40
  const installer = getInstaller('unknown-agent');
31
41
  expect(installer).toBeNull();
32
42
  });
33
- it('lists available agents', () => {
43
+ it('lists all available agents', () => {
34
44
  const names = listAgentNames();
35
45
  expect(names).toContain('claude-code');
46
+ expect(names).toContain('codex');
47
+ expect(names).toContain('cursor');
36
48
  });
37
49
  });
38
- describe('ClaudeCodeInstaller', () => {
50
+ describe('installer paths', () => {
51
+ const cases = [
52
+ { agent: 'claude-code', dir: '.claude', desc: 'Claude Code skill for Twist CLI' },
53
+ { agent: 'codex', dir: '.codex', desc: 'Codex skill for Twist CLI' },
54
+ { agent: 'cursor', dir: '.cursor', desc: 'Cursor skill for Twist CLI' },
55
+ ];
56
+ for (const { agent, dir, desc } of cases) {
57
+ describe(agent, () => {
58
+ const installer = skillInstallers[agent];
59
+ it('has correct name and description', () => {
60
+ expect(installer.name).toBe(agent);
61
+ expect(installer.description).toBe(desc);
62
+ });
63
+ it(`returns global path containing ${dir}/skills`, () => {
64
+ const globalPath = installer.getInstallPath({ local: false });
65
+ expect(globalPath).toContain(dir);
66
+ expect(globalPath).toContain('skills');
67
+ expect(globalPath).toContain('twist-cli');
68
+ expect(globalPath).toContain('SKILL.md');
69
+ });
70
+ it('returns local path containing cwd', () => {
71
+ const localPath = installer.getInstallPath({ local: true });
72
+ expect(localPath).toContain(dir);
73
+ expect(localPath).toContain('skills');
74
+ expect(localPath).toContain('twist-cli');
75
+ expect(localPath).toContain('SKILL.md');
76
+ expect(localPath).toContain(process.cwd());
77
+ });
78
+ });
79
+ }
80
+ });
81
+ describe('installer operations', () => {
39
82
  let testDir;
40
- let installer;
41
83
  const originalCwd = process.cwd();
42
84
  beforeEach(async () => {
43
85
  testDir = join(tmpdir(), `twist-cli-test-${Date.now()}`);
44
86
  await mkdir(testDir, { recursive: true });
45
87
  process.chdir(testDir);
46
- installer = new ClaudeCodeInstaller();
47
88
  });
48
89
  afterEach(async () => {
49
90
  process.chdir(originalCwd);
50
91
  await rm(testDir, { recursive: true, force: true });
51
92
  });
52
- it('returns correct local install path', () => {
53
- const path = installer.getInstallPath({ local: true });
54
- expect(path).toContain('.claude/skills/twist-cli/SKILL.md');
55
- expect(path).toContain('twist-cli-test-');
56
- });
57
- it('reports not installed initially (local)', async () => {
58
- const installed = await installer.isInstalled({ local: true });
59
- expect(installed).toBe(false);
60
- });
61
- it('installs skill locally', async () => {
93
+ it('installs and reads skill content', async () => {
94
+ const installer = skillInstallers['claude-code'];
62
95
  await installer.install({ local: true });
63
- const installed = await installer.isInstalled({ local: true });
64
- expect(installed).toBe(true);
65
96
  const skillPath = installer.getInstallPath({ local: true });
66
97
  const content = await readFile(skillPath, 'utf-8');
67
98
  expect(content).toBe(SKILL_CONTENT);
68
99
  });
100
+ it('reports not installed initially', async () => {
101
+ const installer = skillInstallers['codex'];
102
+ const installed = await installer.isInstalled({ local: true });
103
+ expect(installed).toBe(false);
104
+ });
69
105
  it('throws when installing without force if exists', async () => {
106
+ const installer = skillInstallers['cursor'];
70
107
  await installer.install({ local: true });
71
108
  await expect(installer.install({ local: true })).rejects.toThrow(/already installed.*Use --force/);
72
109
  });
73
110
  it('allows force install over existing', async () => {
111
+ const installer = skillInstallers['claude-code'];
74
112
  await installer.install({ local: true });
75
113
  await expect(installer.install({ local: true, force: true })).resolves.not.toThrow();
76
114
  });
77
115
  it('uninstalls skill', async () => {
116
+ const installer = skillInstallers['codex'];
78
117
  await installer.install({ local: true });
79
118
  await installer.uninstall({ local: true });
80
119
  const installed = await installer.isInstalled({ local: true });
81
120
  expect(installed).toBe(false);
82
121
  });
83
122
  it('throws when uninstalling non-existent skill', async () => {
123
+ const installer = skillInstallers['cursor'];
84
124
  await expect(installer.uninstall({ local: true })).rejects.toThrow(/not installed/);
85
125
  });
86
126
  });
@@ -98,14 +138,16 @@ describe('listAgents', () => {
98
138
  });
99
139
  it('returns agent info with installed status', async () => {
100
140
  const agents = await listAgents(true);
101
- expect(agents.length).toBeGreaterThan(0);
102
- const claudeCode = agents.find((a) => a.name === 'claude-code');
103
- expect(claudeCode).toBeDefined();
104
- expect(claudeCode?.installed).toBe(false);
105
- expect(claudeCode?.path).toBeNull();
141
+ expect(agents.length).toBe(3);
142
+ for (const name of ['claude-code', 'codex', 'cursor']) {
143
+ const agent = agents.find((a) => a.name === name);
144
+ expect(agent).toBeDefined();
145
+ expect(agent?.installed).toBe(false);
146
+ expect(agent?.path).toBeNull();
147
+ }
106
148
  });
107
149
  it('shows installed path when installed', async () => {
108
- const installer = new ClaudeCodeInstaller();
150
+ const installer = skillInstallers['claude-code'];
109
151
  await installer.install({ local: true });
110
152
  const agents = await listAgents(true);
111
153
  const claudeCode = agents.find((a) => a.name === 'claude-code');
@@ -145,8 +187,24 @@ describe('skill command', () => {
145
187
  const stats = await stat(skillPath);
146
188
  expect(stats.isFile()).toBe(true);
147
189
  });
190
+ it('installs codex agent locally', async () => {
191
+ const program = createProgram();
192
+ await program.parseAsync(['node', 'tw', 'skill', 'install', 'codex', '--local']);
193
+ expect(consoleSpy).toHaveBeenCalledWith('✓', expect.stringContaining('Installed'));
194
+ const skillPath = join(testDir, '.codex', 'skills', 'twist-cli', 'SKILL.md');
195
+ const stats = await stat(skillPath);
196
+ expect(stats.isFile()).toBe(true);
197
+ });
198
+ it('installs cursor agent locally', async () => {
199
+ const program = createProgram();
200
+ await program.parseAsync(['node', 'tw', 'skill', 'install', 'cursor', '--local']);
201
+ expect(consoleSpy).toHaveBeenCalledWith('✓', expect.stringContaining('Installed'));
202
+ const skillPath = join(testDir, '.cursor', 'skills', 'twist-cli', 'SKILL.md');
203
+ const stats = await stat(skillPath);
204
+ expect(stats.isFile()).toBe(true);
205
+ });
148
206
  it('uninstalls agent', async () => {
149
- const installer = new ClaudeCodeInstaller();
207
+ const installer = skillInstallers['claude-code'];
150
208
  await installer.install({ local: true });
151
209
  const program = createProgram();
152
210
  await program.parseAsync(['node', 'tw', 'skill', 'uninstall', 'claude-code', '--local']);
@@ -162,4 +220,14 @@ describe('skill command', () => {
162
220
  exitSpy.mockRestore();
163
221
  });
164
222
  });
223
+ describe('install detection', () => {
224
+ it('throws when agent directory does not exist', async () => {
225
+ const installer = createInstaller({
226
+ name: 'fake-agent',
227
+ description: 'Fake agent',
228
+ dirName: '.nonexistent-agent-dir-xyz',
229
+ });
230
+ await expect(installer.install({ local: false })).rejects.toThrow('fake-agent does not appear to be installed');
231
+ });
232
+ });
165
233
  //# sourceMappingURL=skill.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.test.js","sourceRoot":"","sources":["../../src/__tests__/skill.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill.test.js","sourceRoot":"","sources":["../../src/__tests__/skill.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgGnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAc1D"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8HnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAc1D"}
@@ -1,3 +1,4 @@
1
+ import { createInterface } from 'node:readline';
1
2
  import chalk from 'chalk';
2
3
  import open from 'open';
3
4
  import { getSessionUser } from '../lib/api.js';
@@ -55,7 +56,35 @@ async function loginWithOAuth() {
55
56
  console.log(chalk.dim('You can try manual authentication with `tw auth token <token>`'));
56
57
  }
57
58
  }
59
+ function promptHiddenInput(prompt) {
60
+ return new Promise((resolve) => {
61
+ const rl = createInterface({
62
+ input: process.stdin,
63
+ output: process.stdout,
64
+ });
65
+ // biome-ignore lint/suspicious/noExplicitAny: accessing private readline property
66
+ const origWrite = rl._writeToOutput;
67
+ rl._writeToOutput = (str) => {
68
+ if (str.includes(prompt)) {
69
+ origWrite.call(rl, prompt);
70
+ }
71
+ };
72
+ rl.question(prompt, (answer) => {
73
+ rl.close();
74
+ process.stdout.write('\n');
75
+ resolve(answer);
76
+ });
77
+ });
78
+ }
58
79
  async function loginWithToken(token) {
80
+ if (!token) {
81
+ token = await promptHiddenInput('API token: ');
82
+ if (!token.trim()) {
83
+ console.error(chalk.red('Error:'), 'No token provided');
84
+ process.exitCode = 1;
85
+ return;
86
+ }
87
+ }
59
88
  // Save token to config
60
89
  await saveApiToken(token.trim());
61
90
  console.log(chalk.green('✓'), 'API token saved successfully!');
@@ -84,7 +113,7 @@ export function registerAuthCommand(program) {
84
113
  auth.command('login')
85
114
  .description('Authenticate using OAuth (opens browser)')
86
115
  .action(loginWithOAuth);
87
- auth.command('token <token>')
116
+ auth.command('token [token]')
88
117
  .description('Save API token to config file (manual method)')
89
118
  .action(loginWithToken);
90
119
  auth.command('status').description('Show current authentication status').action(showStatus);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -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":"AAIA,OAAO,KAAK,EAAkB,cAAc,EAAoB,MAAM,YAAY,CAAA;AAElF,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,CA0DvE"}
@@ -0,0 +1,52 @@
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 { SKILL_CONTENT, SKILL_NAME } from './content.js';
5
+ export function createInstaller(config) {
6
+ function getInstallPath(options) {
7
+ const base = options.local ? process.cwd() : homedir();
8
+ return join(base, config.dirName, 'skills', SKILL_NAME, 'SKILL.md');
9
+ }
10
+ return {
11
+ name: config.name,
12
+ description: config.description,
13
+ getInstallPath,
14
+ async isInstalled(options) {
15
+ try {
16
+ await stat(getInstallPath(options));
17
+ return true;
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ },
23
+ async install(options) {
24
+ if (!options.local) {
25
+ const agentDir = join(homedir(), config.dirName);
26
+ try {
27
+ await stat(agentDir);
28
+ }
29
+ catch {
30
+ throw new Error(`${config.name} does not appear to be installed (${agentDir} not found)`);
31
+ }
32
+ }
33
+ const skillPath = getInstallPath(options);
34
+ const exists = await this.isInstalled(options);
35
+ if (exists && !options.force) {
36
+ throw new Error(`Skill already installed at ${skillPath}. Use --force to overwrite.`);
37
+ }
38
+ await mkdir(dirname(skillPath), { recursive: true });
39
+ await writeFile(skillPath, SKILL_CONTENT);
40
+ },
41
+ async uninstall(options) {
42
+ const skillPath = getInstallPath(options);
43
+ const exists = await this.isInstalled(options);
44
+ if (!exists) {
45
+ throw new Error(`Skill not installed at ${skillPath}`);
46
+ }
47
+ const skillDir = dirname(skillPath);
48
+ await rm(skillDir, { recursive: true });
49
+ },
50
+ };
51
+ }
52
+ //# 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,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AASxD,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,EAAE,CAAC;gBACjB,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,KAAK,CACX,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,KAAK,CACX,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,aAAa,CAAC,CAAA;QAC7C,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,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAA;YAC1D,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"}
@@ -1,4 +1,5 @@
1
1
  import type { AgentInfo, SkillInstaller } from './types.js';
2
+ export declare const skillInstallers: Record<string, SkillInstaller>;
2
3
  export declare function getInstaller(name: string): SkillInstaller | null;
3
4
  export declare function listAgentNames(): string[];
4
5
  export declare function listAgents(local: boolean): Promise<AgentInfo[]>;
@@ -1 +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;AAU3D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGhE;AAED,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAiBrE;AAED,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
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,CAgB1D,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,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
@@ -1,27 +1,35 @@
1
- import { ClaudeCodeInstaller, getSkillDescription } from './claude-code.js';
2
- const installers = {
3
- 'claude-code': () => new ClaudeCodeInstaller(),
4
- };
5
- const agentDescriptions = {
6
- 'claude-code': getSkillDescription(),
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 Twist CLI',
6
+ dirName: '.claude',
7
+ }),
8
+ codex: createInstaller({
9
+ name: 'codex',
10
+ description: 'Codex skill for Twist CLI',
11
+ dirName: '.codex',
12
+ }),
13
+ cursor: createInstaller({
14
+ name: 'cursor',
15
+ description: 'Cursor skill for Twist CLI',
16
+ dirName: '.cursor',
17
+ }),
7
18
  };
8
19
  export function getInstaller(name) {
9
- const factory = installers[name];
10
- return factory ? factory() : null;
20
+ return skillInstallers[name] ?? null;
11
21
  }
12
22
  export function listAgentNames() {
13
- return Object.keys(installers);
23
+ return Object.keys(skillInstallers);
14
24
  }
15
25
  export async function listAgents(local) {
16
26
  const agents = [];
17
27
  for (const name of listAgentNames()) {
18
- const installer = getInstaller(name);
19
- if (!installer)
20
- continue;
28
+ const installer = skillInstallers[name];
21
29
  const installed = await installer.isInstalled({ local });
22
30
  agents.push({
23
31
  name,
24
- description: agentDescriptions[name] || installer.description,
32
+ description: installer.description,
25
33
  installed,
26
34
  path: installed ? installer.getInstallPath({ local }) : null,
27
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAG3E,MAAM,UAAU,GAAyC;IACrD,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;CACjD,CAAA;AAED,MAAM,iBAAiB,GAA2B;IAC9C,aAAa,EAAE,mBAAmB,EAAE;CACvC,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAChC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,cAAc;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAClC,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,YAAY,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS;YAAE,SAAQ;QAExB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACxD,MAAM,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,WAAW;YAC7D,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"}
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;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doist/twist-cli",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "TypeScript CLI for Twist",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,15 +0,0 @@
1
- import type { InstallOptions, SkillInstaller, UninstallOptions } from './types.js';
2
- export declare class ClaudeCodeInstaller implements SkillInstaller {
3
- name: string;
4
- description: string;
5
- getInstallPath(options: {
6
- local?: boolean;
7
- }): string;
8
- isInstalled(options: {
9
- local?: boolean;
10
- }): Promise<boolean>;
11
- install(options: InstallOptions): Promise<void>;
12
- uninstall(options: UninstallOptions): Promise<void>;
13
- }
14
- export declare function getSkillDescription(): string;
15
- //# sourceMappingURL=claude-code.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAUlF,qBAAa,mBAAoB,YAAW,cAAc;IACtD,IAAI,SAAgB;IACpB,WAAW,SAAgD;IAE3D,cAAc,CAAC,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM;IAK9C,WAAW,CAAC,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3D,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAW5D;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
@@ -1,50 +0,0 @@
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 { SKILL_CONTENT, SKILL_DESCRIPTION, SKILL_NAME } from './content.js';
5
- function getGlobalSkillsDir() {
6
- return join(homedir(), '.claude', 'skills');
7
- }
8
- function getLocalSkillsDir() {
9
- return join(process.cwd(), '.claude', 'skills');
10
- }
11
- export class ClaudeCodeInstaller {
12
- name = 'claude-code';
13
- description = 'Claude Code skill for Twist CLI integration';
14
- getInstallPath(options) {
15
- const baseDir = options.local ? getLocalSkillsDir() : getGlobalSkillsDir();
16
- return join(baseDir, SKILL_NAME, 'SKILL.md');
17
- }
18
- async isInstalled(options) {
19
- const skillPath = this.getInstallPath(options);
20
- try {
21
- await stat(skillPath);
22
- return true;
23
- }
24
- catch {
25
- return false;
26
- }
27
- }
28
- async install(options) {
29
- const skillPath = this.getInstallPath(options);
30
- const exists = await this.isInstalled(options);
31
- if (exists && !options.force) {
32
- throw new Error(`Skill already installed at ${skillPath}. Use --force to overwrite.`);
33
- }
34
- await mkdir(dirname(skillPath), { recursive: true });
35
- await writeFile(skillPath, SKILL_CONTENT);
36
- }
37
- async uninstall(options) {
38
- const skillPath = this.getInstallPath(options);
39
- const exists = await this.isInstalled(options);
40
- if (!exists) {
41
- throw new Error(`Skill not installed at ${skillPath}`);
42
- }
43
- const skillDir = dirname(skillPath);
44
- await rm(skillDir, { recursive: true });
45
- }
46
- }
47
- export function getSkillDescription() {
48
- return SKILL_DESCRIPTION;
49
- }
50
- //# sourceMappingURL=claude-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/lib/skills/claude-code.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,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG3E,SAAS,kBAAkB;IACvB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,iBAAiB;IACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,OAAO,mBAAmB;IAC5B,IAAI,GAAG,aAAa,CAAA;IACpB,WAAW,GAAG,6CAA6C,CAAA;IAE3D,cAAc,CAAC,OAA4B;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC1E,OAAO,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA4B;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAAC,CAAA;YACrB,OAAO,IAAI,CAAA;QACf,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAA;QAChB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAE9C,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,6BAA6B,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,MAAM,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAA;QAC1D,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,CAAC;CACJ;AAED,MAAM,UAAU,mBAAmB;IAC/B,OAAO,iBAAiB,CAAA;AAC5B,CAAC"}