@tankpkg/cli 0.6.3 → 0.7.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/dist/commands/upgrade.js +9 -5
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/lib/agents.d.ts +2 -2
- package/dist/lib/agents.js +38 -16
- package/dist/lib/agents.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/upgrade.js
CHANGED
|
@@ -21,7 +21,7 @@ function resolveCurrentBinary() {
|
|
|
21
21
|
}
|
|
22
22
|
export async function upgradeCommand(opts) {
|
|
23
23
|
const currentBinaryPath = resolveCurrentBinary();
|
|
24
|
-
if (currentBinaryPath.includes('/Cellar/') || currentBinaryPath.includes('/homebrew/')) {
|
|
24
|
+
if (process.platform !== 'win32' && (currentBinaryPath.includes('/Cellar/') || currentBinaryPath.includes('/homebrew/'))) {
|
|
25
25
|
console.log(chalk.yellow('Tank was installed via Homebrew. Run `brew upgrade tank` instead.'));
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
@@ -43,9 +43,9 @@ export async function upgradeCommand(opts) {
|
|
|
43
43
|
console.log(chalk.green(`✓ Already on latest version: ${VERSION}`));
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
const platform = process.platform === 'darwin' ? 'darwin' : 'linux';
|
|
46
|
+
const platform = process.platform === 'win32' ? 'windows' : process.platform === 'darwin' ? 'darwin' : 'linux';
|
|
47
47
|
const arch = process.arch === 'arm64' ? 'arm64' : 'x64';
|
|
48
|
-
const binaryName = `tank-${platform}-${arch}`;
|
|
48
|
+
const binaryName = `tank-${platform}-${arch}${process.platform === 'win32' ? '.exe' : ''}`;
|
|
49
49
|
if (opts?.dryRun) {
|
|
50
50
|
console.log(`Would upgrade tank ${VERSION} → ${targetVersion}`);
|
|
51
51
|
return;
|
|
@@ -94,9 +94,13 @@ export async function upgradeCommand(opts) {
|
|
|
94
94
|
console.log(chalk.red('Checksum mismatch. Aborting for security.'));
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
if (process.platform !== 'win32') {
|
|
98
|
+
fs.chmodSync(tmpBin, 0o755);
|
|
99
|
+
}
|
|
98
100
|
fs.copyFileSync(tmpBin, currentBinaryPath);
|
|
99
|
-
|
|
101
|
+
if (process.platform !== 'win32') {
|
|
102
|
+
fs.chmodSync(currentBinaryPath, 0o755);
|
|
103
|
+
}
|
|
100
104
|
console.log(chalk.green(`✓ Upgraded tank ${VERSION} → ${targetVersion}`));
|
|
101
105
|
console.log(chalk.gray(`Release notes: https://github.com/tankpkg/tank/releases/tag/v${targetVersion}`));
|
|
102
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAQpD,SAAS,cAAc,CAAC,gBAAwB,EAAE,cAAsB;IACtE,IAAI,gBAAgB,KAAK,cAAc,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,KAAK,gBAAgB,CAAC;AAC/E,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAqB;IACxD,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IACjD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/agents.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ export interface AgentInfo {
|
|
|
6
6
|
interface AgentDefinition {
|
|
7
7
|
id: string;
|
|
8
8
|
name: string;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/** Returns possible config directories in priority order. First is the default. */
|
|
10
|
+
configDirs: (homedir: string) => string[];
|
|
11
11
|
}
|
|
12
12
|
export declare const SUPPORTED_AGENTS: AgentDefinition[];
|
|
13
13
|
export declare function getSupportedAgents(homedir?: string): AgentInfo[];
|
package/dist/lib/agents.js
CHANGED
|
@@ -2,58 +2,80 @@ import path from 'node:path';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
const resolveHomedir = (homedir) => homedir ?? os.homedir();
|
|
5
|
+
const isWindows = process.platform === 'win32';
|
|
5
6
|
export const SUPPORTED_AGENTS = [
|
|
6
7
|
{
|
|
7
8
|
id: 'claude',
|
|
8
9
|
name: 'Claude Code',
|
|
9
|
-
|
|
10
|
-
configDir: (homedir) => path.join(homedir, '.claude'),
|
|
10
|
+
configDirs: (homedir) => [path.join(homedir, '.claude')],
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
id: 'opencode',
|
|
14
14
|
name: 'OpenCode',
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
configDirs: (homedir) => {
|
|
16
|
+
const dirs = [path.join(homedir, '.config', 'opencode')];
|
|
17
|
+
if (isWindows) {
|
|
18
|
+
const appData = process.env.APPDATA;
|
|
19
|
+
if (appData)
|
|
20
|
+
dirs.push(path.join(appData, 'opencode'));
|
|
21
|
+
}
|
|
22
|
+
return dirs;
|
|
23
|
+
},
|
|
17
24
|
},
|
|
18
25
|
{
|
|
19
26
|
id: 'cursor',
|
|
20
27
|
name: 'Cursor',
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
configDirs: (homedir) => {
|
|
29
|
+
const dirs = [path.join(homedir, '.cursor')];
|
|
30
|
+
if (isWindows) {
|
|
31
|
+
const appData = process.env.APPDATA;
|
|
32
|
+
if (appData)
|
|
33
|
+
dirs.push(path.join(appData, 'Cursor'));
|
|
34
|
+
}
|
|
35
|
+
return dirs;
|
|
36
|
+
},
|
|
23
37
|
},
|
|
24
38
|
{
|
|
25
39
|
id: 'codex',
|
|
26
40
|
name: 'Codex',
|
|
27
|
-
|
|
28
|
-
configDir: (homedir) => path.join(homedir, '.codex'),
|
|
41
|
+
configDirs: (homedir) => [path.join(homedir, '.codex')],
|
|
29
42
|
},
|
|
30
43
|
{
|
|
31
44
|
id: 'openclaw',
|
|
32
45
|
name: 'OpenClaw',
|
|
33
|
-
|
|
34
|
-
configDir: (homedir) => path.join(homedir, '.openclaw'),
|
|
46
|
+
configDirs: (homedir) => [path.join(homedir, '.openclaw')],
|
|
35
47
|
},
|
|
36
48
|
{
|
|
37
49
|
id: 'universal',
|
|
38
50
|
name: 'Universal',
|
|
39
|
-
|
|
40
|
-
configDir: (homedir) => path.join(homedir, '.agents'),
|
|
51
|
+
configDirs: (homedir) => [path.join(homedir, '.agents')],
|
|
41
52
|
},
|
|
42
53
|
];
|
|
54
|
+
/**
|
|
55
|
+
* Returns the first existing config directory for an agent,
|
|
56
|
+
* or the first (default) directory if none exist.
|
|
57
|
+
*/
|
|
58
|
+
function resolveConfigDir(agent, homedir) {
|
|
59
|
+
const dirs = agent.configDirs(homedir);
|
|
60
|
+
return dirs.find((d) => fs.existsSync(d)) ?? dirs[0];
|
|
61
|
+
}
|
|
62
|
+
function isAgentInstalled(agent, homedir) {
|
|
63
|
+
return agent.configDirs(homedir).some((d) => fs.existsSync(d));
|
|
64
|
+
}
|
|
43
65
|
export function getSupportedAgents(homedir) {
|
|
44
66
|
const resolved = resolveHomedir(homedir);
|
|
45
67
|
return SUPPORTED_AGENTS.map((agent) => ({
|
|
46
68
|
id: agent.id,
|
|
47
69
|
name: agent.name,
|
|
48
|
-
skillsDir:
|
|
70
|
+
skillsDir: path.join(resolveConfigDir(agent, resolved), 'skills'),
|
|
49
71
|
}));
|
|
50
72
|
}
|
|
51
73
|
export function detectInstalledAgents(homedir) {
|
|
52
74
|
const resolved = resolveHomedir(homedir);
|
|
53
|
-
return SUPPORTED_AGENTS.filter((agent) =>
|
|
75
|
+
return SUPPORTED_AGENTS.filter((agent) => isAgentInstalled(agent, resolved)).map((agent) => ({
|
|
54
76
|
id: agent.id,
|
|
55
77
|
name: agent.name,
|
|
56
|
-
skillsDir:
|
|
78
|
+
skillsDir: path.join(resolveConfigDir(agent, resolved), 'skills'),
|
|
57
79
|
}));
|
|
58
80
|
}
|
|
59
81
|
export function getAgentSkillDir(agentId, homedir) {
|
|
@@ -62,7 +84,7 @@ export function getAgentSkillDir(agentId, homedir) {
|
|
|
62
84
|
if (!agent) {
|
|
63
85
|
return null;
|
|
64
86
|
}
|
|
65
|
-
return
|
|
87
|
+
return path.join(resolveConfigDir(agent, resolved), 'skills');
|
|
66
88
|
}
|
|
67
89
|
export function getSymlinkName(skillName) {
|
|
68
90
|
const match = skillName.match(/^@([^/]+)\/(.+)$/);
|
package/dist/lib/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AAezB,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAU,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,aAAa;QACnB,
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"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"}
|