wjx-cli 0.1.9 → 0.1.11
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 +887 -889
- package/bundled/wjx-cli-expert.md +102 -0
- package/bundled/wjx-cli-use/SKILL.md +111 -0
- package/bundled/wjx-cli-use/references/analytics-commands.md +159 -0
- package/bundled/wjx-cli-use/references/contacts-commands.md +330 -0
- package/bundled/wjx-cli-use/references/dsl-syntax.md +160 -0
- package/bundled/wjx-cli-use/references/question-types.md +102 -0
- package/bundled/wjx-cli-use/references/response-commands.md +164 -0
- package/bundled/wjx-cli-use/references/survey-commands.md +194 -0
- package/dist/commands/init.js +10 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/reference.js +358 -334
- package/dist/commands/reference.js.map +1 -1
- package/dist/commands/response.js +13 -19
- package/dist/commands/response.js.map +1 -1
- package/dist/commands/skill.d.ts +2 -0
- package/dist/commands/skill.js +46 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/survey.js +13 -5
- package/dist/commands/survey.js.map +1 -1
- package/dist/commands/update.d.ts +2 -0
- package/dist/commands/update.js +76 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/user-system.js +4 -27
- package/dist/commands/user-system.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/command-helpers.d.ts +2 -0
- package/dist/lib/command-helpers.js +2 -1
- package/dist/lib/command-helpers.js.map +1 -1
- package/dist/lib/install-skill.d.ts +23 -0
- package/dist/lib/install-skill.js +96 -0
- package/dist/lib/install-skill.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, copyFileSync, readdirSync } from "node:fs";
|
|
2
|
+
import { join, dirname } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { stderr } from "node:process";
|
|
5
|
+
import { createRequire } from "node:module";
|
|
6
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
+
const __dirname = dirname(__filename);
|
|
8
|
+
/** Resolve the bundled/ directory shipped with the wjx-cli package. */
|
|
9
|
+
function getBundledDir() {
|
|
10
|
+
// dist/lib/install-skill.js → ../../bundled
|
|
11
|
+
return join(__dirname, "..", "..", "bundled");
|
|
12
|
+
}
|
|
13
|
+
/** Get the current package version. */
|
|
14
|
+
export function getVersion() {
|
|
15
|
+
const require = createRequire(import.meta.url);
|
|
16
|
+
const { version } = require("../../package.json");
|
|
17
|
+
return version;
|
|
18
|
+
}
|
|
19
|
+
/** Recursively copy a directory. */
|
|
20
|
+
function copyDirSync(src, dest) {
|
|
21
|
+
const copied = [];
|
|
22
|
+
mkdirSync(dest, { recursive: true });
|
|
23
|
+
for (const entry of readdirSync(src, { withFileTypes: true })) {
|
|
24
|
+
const srcPath = join(src, entry.name);
|
|
25
|
+
const destPath = join(dest, entry.name);
|
|
26
|
+
if (entry.isDirectory()) {
|
|
27
|
+
copied.push(...copyDirSync(srcPath, destPath));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
copyFileSync(srcPath, destPath);
|
|
31
|
+
copied.push(destPath);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return copied;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Install wjx-cli-use skill files and agent definition to the target directory.
|
|
38
|
+
*
|
|
39
|
+
* @param targetDir - Project root directory (e.g. process.cwd())
|
|
40
|
+
* @param options - force: overwrite existing; silent: no stderr output
|
|
41
|
+
*/
|
|
42
|
+
export function installSkill(targetDir, options = {}) {
|
|
43
|
+
const { force = false, silent = false } = options;
|
|
44
|
+
const version = getVersion();
|
|
45
|
+
const bundledDir = getBundledDir();
|
|
46
|
+
if (!existsSync(bundledDir)) {
|
|
47
|
+
const msg = "找不到 bundled 目录,安装可能不完整";
|
|
48
|
+
return { status: "error", version, files: [], message: msg };
|
|
49
|
+
}
|
|
50
|
+
const agentSrc = join(bundledDir, "wjx-cli-expert.md");
|
|
51
|
+
const skillSrc = join(bundledDir, "wjx-cli-use");
|
|
52
|
+
const agentDest = join(targetDir, ".claude", "agents", "wjx-cli-expert.md");
|
|
53
|
+
const skillDest = join(targetDir, "wjx-skills", "wjx-cli-use");
|
|
54
|
+
const agentExists = existsSync(agentDest);
|
|
55
|
+
const skillExists = existsSync(join(skillDest, "SKILL.md"));
|
|
56
|
+
const isUpdate = agentExists || skillExists;
|
|
57
|
+
if (isUpdate && !force) {
|
|
58
|
+
const msg = "技能已安装,使用 --force 覆盖或运行 skill update";
|
|
59
|
+
if (!silent)
|
|
60
|
+
stderr.write(`${msg}\n`);
|
|
61
|
+
return { status: "skipped", version, files: [], message: msg };
|
|
62
|
+
}
|
|
63
|
+
const files = [];
|
|
64
|
+
// Copy agent definition
|
|
65
|
+
mkdirSync(dirname(agentDest), { recursive: true });
|
|
66
|
+
copyFileSync(agentSrc, agentDest);
|
|
67
|
+
files.push(agentDest);
|
|
68
|
+
// Copy skill files
|
|
69
|
+
files.push(...copyDirSync(skillSrc, skillDest));
|
|
70
|
+
const status = isUpdate ? "updated" : "installed";
|
|
71
|
+
const action = isUpdate ? "已更新" : "已安装";
|
|
72
|
+
const msg = `${action} wjx-cli-use 技能 (v${version})`;
|
|
73
|
+
if (!silent) {
|
|
74
|
+
stderr.write(`${msg}:\n`);
|
|
75
|
+
stderr.write(` .claude/agents/wjx-cli-expert.md\n`);
|
|
76
|
+
stderr.write(` wjx-skills/wjx-cli-use/ (${files.length - 1} files)\n`);
|
|
77
|
+
}
|
|
78
|
+
return { status, version, files, message: msg };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Update existing skill files. Returns error if not installed yet.
|
|
82
|
+
*/
|
|
83
|
+
export function updateSkill(targetDir, options = {}) {
|
|
84
|
+
const { silent = false } = options;
|
|
85
|
+
const version = getVersion();
|
|
86
|
+
const agentDest = join(targetDir, ".claude", "agents", "wjx-cli-expert.md");
|
|
87
|
+
const skillDest = join(targetDir, "wjx-skills", "wjx-cli-use", "SKILL.md");
|
|
88
|
+
if (!existsSync(agentDest) && !existsSync(skillDest)) {
|
|
89
|
+
const msg = "技能尚未安装,请先运行 wjx skill install";
|
|
90
|
+
if (!silent)
|
|
91
|
+
stderr.write(`${msg}\n`);
|
|
92
|
+
return { status: "error", version, files: [], message: msg };
|
|
93
|
+
}
|
|
94
|
+
return installSkill(targetDir, { force: true, silent });
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=install-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-skill.js","sourceRoot":"","sources":["../../src/lib/install-skill.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wjx-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "问卷星 (Wenjuanxing) CLI — AI Agent 原生命令行工具",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"wjx": "dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
-
"dist"
|
|
10
|
+
"dist",
|
|
11
|
+
"bundled"
|
|
11
12
|
],
|
|
12
13
|
"engines": {
|
|
13
14
|
"node": ">=20"
|