@mison/ling 1.1.0 → 1.2.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/.agents/rules/GEMINI.md +17 -0
- package/.agents/skills/clean-code/SKILL.md +24 -14
- package/.agents/skills/doc.md +9 -5
- package/CHANGELOG.md +34 -1
- package/README.md +138 -195
- package/bin/adapters/gemini.js +6 -2
- package/bin/core/generator.js +1 -0
- package/bin/interactive.js +6 -4
- package/bin/ling-cli.js +893 -170
- package/bin/utils.js +52 -9
- package/docs/PLAN.md +21 -17
- package/docs/TECH.md +40 -13
- package/package.json +1 -1
- package/scripts/ci-verify.js +4 -1
- package/scripts/health-check.js +4 -13
- package/tests/cli-smoke.test.js +115 -0
- package/tests/global-sync.test.js +15 -2
- package/tests/spec-init-doctor.test.js +233 -0
- package/tests/spec-profile.test.js +84 -0
- package/tests/standards-compliance.test.js +31 -0
- package/.agents/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-310.pyc +0 -0
package/bin/interactive.js
CHANGED
|
@@ -22,7 +22,7 @@ function isInteractiveTerminal() {
|
|
|
22
22
|
/**
|
|
23
23
|
* Prompt user to select targets from a list.
|
|
24
24
|
* Supports multiple selection by comma separated numbers or names.
|
|
25
|
-
* Currently
|
|
25
|
+
* Currently supports 'gemini', 'antigravity', and 'codex'.
|
|
26
26
|
* @param {object} options CLI options
|
|
27
27
|
* @returns {Promise<string[]>} List of selected targets
|
|
28
28
|
*/
|
|
@@ -40,7 +40,8 @@ async function selectTargets(options) {
|
|
|
40
40
|
try {
|
|
41
41
|
console.log("\n[select] 请选择要安装的目标 (多选请用逗号分隔):");
|
|
42
42
|
console.log(" 1. Gemini (适用于 Cursor/VSCode)");
|
|
43
|
-
console.log(" 2.
|
|
43
|
+
console.log(" 2. Antigravity (独立体系,项目级复用 .agent)");
|
|
44
|
+
console.log(" 3. Codex (兼容性增强版)");
|
|
44
45
|
|
|
45
46
|
const answer = await askQuestion(rl, "\n请输入序号或名称(必填): ");
|
|
46
47
|
const input = answer.trim();
|
|
@@ -55,11 +56,12 @@ async function selectTargets(options) {
|
|
|
55
56
|
for (const part of parts) {
|
|
56
57
|
const p = part.toLowerCase();
|
|
57
58
|
if (p === "1" || p === "gemini") selection.push("gemini");
|
|
58
|
-
else if (p === "2" || p === "
|
|
59
|
+
else if (p === "2" || p === "antigravity") selection.push("antigravity");
|
|
60
|
+
else if (p === "3" || p === "codex") selection.push("codex");
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
if (selection.length === 0) {
|
|
62
|
-
throw new Error("无效的目标选择,请输入 1 / 2 / gemini / codex(可多选)");
|
|
64
|
+
throw new Error("无效的目标选择,请输入 1 / 2 / 3 / gemini / antigravity / codex(可多选)");
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
return [...new Set(selection)];
|