coolbox 0.2.1 → 0.2.3
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/actions.js +17 -0
- package/dist/actions.js.map +1 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +21 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.js +38 -6
- package/dist/index.js.map +1 -1
- package/dist/menu.js +4 -15
- package/dist/menu.js.map +1 -1
- package/dist/runner.js +3 -1
- package/dist/runner.js.map +1 -1
- package/dist/scripts/install-pi-agent.sh +25 -0
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/actions.js
CHANGED
|
@@ -2,9 +2,11 @@ export const groups = [
|
|
|
2
2
|
{ label: '🔧 系统管理', name: 'system' },
|
|
3
3
|
{ label: '🐳 容器', name: 'container' },
|
|
4
4
|
{ label: '🌐 网络', name: 'network' },
|
|
5
|
+
{ label: '🤖 AI 工具', name: 'ai' },
|
|
5
6
|
];
|
|
6
7
|
export const actions = [
|
|
7
8
|
{
|
|
9
|
+
id: 1,
|
|
8
10
|
name: '重装 Linux 系统',
|
|
9
11
|
description: '通过 bin456789/reinstall 一键重装操作系统(将清空所有数据)',
|
|
10
12
|
type: 'remote',
|
|
@@ -21,6 +23,7 @@ export const actions = [
|
|
|
21
23
|
},
|
|
22
24
|
},
|
|
23
25
|
{
|
|
26
|
+
id: 2,
|
|
24
27
|
name: '设置 Swap',
|
|
25
28
|
description: '通过 spiritLHLS/addswap 一键设置交换空间',
|
|
26
29
|
type: 'remote',
|
|
@@ -29,6 +32,7 @@ export const actions = [
|
|
|
29
32
|
group: 'system',
|
|
30
33
|
},
|
|
31
34
|
{
|
|
35
|
+
id: 3,
|
|
32
36
|
name: '设置系统国内镜像源',
|
|
33
37
|
description: '通过 LinuxMirrors 一键更换系统软件源',
|
|
34
38
|
type: 'remote',
|
|
@@ -37,6 +41,7 @@ export const actions = [
|
|
|
37
41
|
group: 'system',
|
|
38
42
|
},
|
|
39
43
|
{
|
|
44
|
+
id: 4,
|
|
40
45
|
name: '安装 Docker 并设置国内镜像源',
|
|
41
46
|
description: '通过 LinuxMirrors 一键安装 Docker 并配置国内镜像加速',
|
|
42
47
|
type: 'remote',
|
|
@@ -45,11 +50,23 @@ export const actions = [
|
|
|
45
50
|
group: 'container',
|
|
46
51
|
},
|
|
47
52
|
{
|
|
53
|
+
id: 5,
|
|
48
54
|
name: '开启 BBR',
|
|
49
55
|
description: '开启 BBR 拥塞控制算法以提升网络传输性能',
|
|
50
56
|
type: 'local',
|
|
51
57
|
command: 'enable-bbr.sh',
|
|
52
58
|
group: 'network',
|
|
53
59
|
},
|
|
60
|
+
{
|
|
61
|
+
id: 6,
|
|
62
|
+
name: '安装 PI Coding Agent',
|
|
63
|
+
description: '安装 PI Coding Agent 及飞书集成,并配置模型',
|
|
64
|
+
type: 'local',
|
|
65
|
+
command: 'install-pi-agent.sh',
|
|
66
|
+
group: 'ai',
|
|
67
|
+
params: [
|
|
68
|
+
{ name: 'api-key', message: '请输入 API Key' },
|
|
69
|
+
],
|
|
70
|
+
},
|
|
54
71
|
];
|
|
55
72
|
//# sourceMappingURL=actions.js.map
|
package/dist/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;IACrC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;IACrC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IACnC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,0DAA0D;QACnE,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mDAAmD,EAAE;SAClF;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,kEAAkE;YAC5E,aAAa,EAAE,yEAAyE;SACzF;KACF;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gCAAgC;QAC7C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,yIAAyI;QAClJ,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,mDAAmD;QAC5D,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qDAAqD;QAC9D,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,WAAW;KACnB;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wBAAwB;QACrC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,gCAAgC;QAC7C,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,qBAAqB;QAC9B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE;SAC5C;KACF;CACF,CAAC"}
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { input, confirm } from '@inquirer/prompts';
|
|
2
|
+
export async function collectParams(action) {
|
|
3
|
+
const values = {};
|
|
4
|
+
if (!action.params)
|
|
5
|
+
return values;
|
|
6
|
+
for (const param of action.params) {
|
|
7
|
+
const value = await input({
|
|
8
|
+
message: param.message,
|
|
9
|
+
});
|
|
10
|
+
values[param.name] = value.trim();
|
|
11
|
+
}
|
|
12
|
+
return values;
|
|
13
|
+
}
|
|
14
|
+
export async function confirmDangerous(actionName) {
|
|
15
|
+
const answer = await confirm({
|
|
16
|
+
message: `⚠️ "${actionName}" 为危险操作,确认执行吗?(y/n)`,
|
|
17
|
+
default: false,
|
|
18
|
+
});
|
|
19
|
+
return answer;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,OAAO,EAAE,QAAQ,UAAU,qBAAqB;QAChD,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,47 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { showMenu } from './menu.js';
|
|
3
|
-
|
|
3
|
+
import { actions } from './actions.js';
|
|
4
|
+
import { runAction } from './runner.js';
|
|
5
|
+
import { collectParams, confirmDangerous } from './cli.js';
|
|
6
|
+
const VERSION = '0.2.1';
|
|
4
7
|
const BANNER = `
|
|
5
8
|
╔═══════════════════════════════════╗
|
|
6
9
|
║ ⚡ CoolBox (快工具箱) v${VERSION} ║
|
|
7
10
|
║ Linux 服务器运维工具箱 ║
|
|
8
11
|
╚═══════════════════════════════════╝
|
|
9
12
|
`;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
async function main() {
|
|
14
|
+
const args = process.argv.slice(2);
|
|
15
|
+
// npx coolbox <id> — 非交互式直接执行
|
|
16
|
+
if (args.length > 0) {
|
|
17
|
+
const id = Number(args[0]);
|
|
18
|
+
const action = actions.find((a) => a.id === id);
|
|
19
|
+
if (!action || isNaN(id)) {
|
|
20
|
+
console.error(`❌ 未找到编号为 "${args[0]}" 的操作。`);
|
|
21
|
+
console.error(' 可用操作:');
|
|
22
|
+
for (const a of actions) {
|
|
23
|
+
console.error(` [${a.id}] ${a.name}`);
|
|
24
|
+
}
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
// 危险操作二次确认
|
|
28
|
+
if (action.dangerous) {
|
|
29
|
+
const confirmed = await confirmDangerous(action.name);
|
|
30
|
+
if (!confirmed) {
|
|
31
|
+
console.log('已取消操作。');
|
|
32
|
+
process.exit(0);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const paramValues = await collectParams(action);
|
|
36
|
+
const result = await runAction(action, paramValues);
|
|
37
|
+
process.exit(result.exitCode ?? 1);
|
|
38
|
+
}
|
|
39
|
+
// npx coolbox — 交互式菜单
|
|
40
|
+
console.log(BANNER);
|
|
41
|
+
showMenu().catch((err) => {
|
|
42
|
+
console.error('发生错误:', err);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
main();
|
|
15
47
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE3D,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,MAAM,GAAG;;0BAEW,OAAO;;;CAGhC,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,8BAA8B;IAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,WAAW;QACX,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpB,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/menu.js
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import { select,
|
|
1
|
+
import { select, confirm } from '@inquirer/prompts';
|
|
2
2
|
import { actions, groups } from './actions.js';
|
|
3
3
|
import { runAction } from './runner.js';
|
|
4
4
|
import { confirmDangerous } from './confirm.js';
|
|
5
|
-
|
|
6
|
-
const values = {};
|
|
7
|
-
if (!action.params)
|
|
8
|
-
return values;
|
|
9
|
-
for (const param of action.params) {
|
|
10
|
-
const value = await input({
|
|
11
|
-
message: param.message,
|
|
12
|
-
});
|
|
13
|
-
values[param.name] = value.trim();
|
|
14
|
-
}
|
|
15
|
-
return values;
|
|
16
|
-
}
|
|
5
|
+
import { collectParams } from './cli.js';
|
|
17
6
|
async function executeAction(action) {
|
|
18
7
|
// 危险操作二次确认
|
|
19
8
|
if (action.dangerous) {
|
|
@@ -28,7 +17,7 @@ async function executeAction(action) {
|
|
|
28
17
|
// 准备提示
|
|
29
18
|
console.log('');
|
|
30
19
|
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
31
|
-
console.log(` 📋 即将执行: ${action.name}`);
|
|
20
|
+
console.log(` 📋 即将执行: [${action.id}] ${action.name}`);
|
|
32
21
|
if (action.description) {
|
|
33
22
|
console.log(` ${action.description}`);
|
|
34
23
|
}
|
|
@@ -70,7 +59,7 @@ async function showGroupActions(groupName, groupLabel) {
|
|
|
70
59
|
const groupActions = actions.filter((a) => a.group === groupName);
|
|
71
60
|
while (true) {
|
|
72
61
|
const choices = groupActions.map((action) => ({
|
|
73
|
-
name: action.name
|
|
62
|
+
name: `[${action.id}] ${action.name}`,
|
|
74
63
|
value: action.name,
|
|
75
64
|
description: action.description,
|
|
76
65
|
}));
|
package/dist/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.js
CHANGED
|
@@ -41,7 +41,9 @@ function resolveCommand(action, paramValues) {
|
|
|
41
41
|
}
|
|
42
42
|
if (action.type === 'local') {
|
|
43
43
|
const scriptPath = join(__dirname, 'scripts', action.command);
|
|
44
|
-
|
|
44
|
+
const args = Object.values(paramValues).map((v) => `"${v}"`).join(' ');
|
|
45
|
+
cmd = `bash "${scriptPath}" ${args}`;
|
|
46
|
+
return cmd;
|
|
45
47
|
}
|
|
46
48
|
for (const [key, value] of Object.entries(paramValues)) {
|
|
47
49
|
cmd = cmd.replace(`{${key}}`, value);
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,SAAS,MAAM;IACb,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAS,OAAO;IACd,OAAO,UAAU,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW;IAClB,IAAI,MAAM,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,EAAE;QAAE,OAAO,MAAM,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,WAAmC;IACzE,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAEzB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QAClF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,GAAG,GAAG,SAAS,UAAU,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# 安装 PI Coding Agent 及飞书集成,并配置模型
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
API_KEY="$1"
|
|
7
|
+
|
|
8
|
+
if [ -z "$API_KEY" ]; then
|
|
9
|
+
echo "错误: 未提供 API Key"
|
|
10
|
+
exit 1
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
echo "正在安装 @earendil-works/pi-coding-agent..."
|
|
14
|
+
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
|
|
15
|
+
|
|
16
|
+
echo "正在安装 pi-feishu..."
|
|
17
|
+
npm install -g pi-feishu
|
|
18
|
+
|
|
19
|
+
echo "正在配置模型..."
|
|
20
|
+
mkdir -p ~/.pi/agent
|
|
21
|
+
cat > ~/.pi/agent/models.json <<PINOTEEOF
|
|
22
|
+
{"providers":{"cpa":{"baseUrl":"https://cpa.ktsee.eu.org","api":"anthropic-messages","apiKey":"${API_KEY}","models":[{"id":"deepseek-v4-flash","name":"deepseek-v4-flash","reasoning":true,"contextWindow":200000,"maxTokens":100000}]}}}
|
|
23
|
+
PINOTEEOF
|
|
24
|
+
|
|
25
|
+
echo "✅ PI Coding Agent 安装配置完成!"
|
package/dist/types.d.ts
CHANGED