shipmyagent 1.0.208 → 1.0.209
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/bin/main/model/CreateModel.d.ts.map +1 -1
- package/bin/main/model/CreateModel.js +20 -1
- package/bin/main/model/CreateModel.js.map +1 -1
- package/bin/main/server/commands/Index.js +1 -1
- package/bin/main/server/commands/Index.js.map +1 -1
- package/bin/main/server/commands/Init.d.ts.map +1 -1
- package/bin/main/server/commands/Init.js +315 -83
- package/bin/main/server/commands/Init.js.map +1 -1
- package/bin/main/server/commands/Restart.js +1 -1
- package/bin/main/server/commands/Restart.js.map +1 -1
- package/bin/main/server/commands/Start.js +1 -1
- package/bin/main/server/commands/Start.js.map +1 -1
- package/bin/main/server/constants/Ship.d.ts.map +1 -1
- package/bin/main/server/constants/Ship.js +0 -1
- package/bin/main/server/constants/Ship.js.map +1 -1
- package/bin/main/server/constants/ShipSchema.d.ts.map +1 -1
- package/bin/main/server/constants/ShipSchema.js +3 -1
- package/bin/main/server/constants/ShipSchema.js.map +1 -1
- package/bin/main/server/index.d.ts.map +1 -1
- package/bin/main/server/index.js +3 -1
- package/bin/main/server/index.js.map +1 -1
- package/bin/main/server/routes/services.d.ts.map +1 -1
- package/bin/main/server/routes/services.js +13 -2
- package/bin/main/server/routes/services.js.map +1 -1
- package/bin/main/types/ShipConfig.d.ts.map +1 -1
- package/bin/services/chat/PROMPT.txt +6 -1
- package/bin/services/chat/channels/BaseChatChannel.d.ts.map +1 -1
- package/bin/services/chat/channels/BaseChatChannel.js +57 -0
- package/bin/services/chat/channels/BaseChatChannel.js.map +1 -1
- package/bin/services/chat/channels/feishu/Auth.d.ts.map +1 -0
- package/bin/services/chat/channels/feishu/Auth.js +33 -0
- package/bin/services/chat/channels/feishu/Auth.js.map +1 -0
- package/bin/services/chat/channels/qq/Auth.d.ts.map +1 -0
- package/bin/services/chat/channels/qq/Auth.js +33 -0
- package/bin/services/chat/channels/qq/Auth.js.map +1 -0
- package/bin/services/chat/channels/telegram/Auth.d.ts.map +1 -0
- package/bin/services/chat/channels/telegram/Auth.js +34 -0
- package/bin/services/chat/channels/telegram/Auth.js.map +1 -0
- package/bin/services/chat/channels/telegram/Bot.d.ts.map +1 -1
- package/bin/services/chat/channels/telegram/Bot.js +2 -4
- package/bin/services/chat/channels/telegram/Bot.js.map +1 -1
- package/bin/services/chat/channels/telegram/PROMPT.txt +1 -0
- package/bin/services/chat/channels/telegram/Shared.d.ts.map +1 -1
- package/bin/services/chat/channels/telegram/Shared.js.map +1 -1
- package/bin/services/chat/types/ChatAuth.d.ts.map +1 -0
- package/bin/services/chat/types/ChatAuth.js +9 -0
- package/bin/services/chat/types/ChatAuth.js.map +1 -0
- package/package.json +3 -3
- package/src/services/chat/PROMPT.txt +6 -1
- package/src/services/chat/channels/telegram/PROMPT.txt +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateModel.d.ts","sourceRoot":"","sources":["../../../src/main/model/CreateModel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateModel.d.ts","sourceRoot":"","sources":["../../../src/main/model/CreateModel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoGF;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE;IACvC,MAAM,EAAE,UAAU,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;CACvD,GAAG,OAAO,CAAC,aAAa,CAAC,CAmJzB"}
|
|
@@ -33,6 +33,24 @@ function normalizeOptionalBaseUrl(value) {
|
|
|
33
33
|
.replace(/\/+$/, "");
|
|
34
34
|
return trimmed || undefined;
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* provider 默认 baseUrl。
|
|
38
|
+
*
|
|
39
|
+
* 关键点(中文)
|
|
40
|
+
* - 当 `ship.json.llm.providers.<id>.baseUrl` 省略时,按 provider type 自动补全。
|
|
41
|
+
* - 保持“只配置 provider type + apiKey + modelName”也能跑通常见 provider。
|
|
42
|
+
*/
|
|
43
|
+
function resolveProviderDefaultBaseUrl(providerType) {
|
|
44
|
+
if (providerType === "deepseek")
|
|
45
|
+
return "https://api.deepseek.com/v1";
|
|
46
|
+
if (providerType === "moonshot")
|
|
47
|
+
return "https://api.moonshot.cn/v1";
|
|
48
|
+
if (providerType === "xai")
|
|
49
|
+
return "https://api.x.ai/v1";
|
|
50
|
+
if (providerType === "openrouter")
|
|
51
|
+
return "https://openrouter.ai/api/v1";
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
36
54
|
function resolveEnvPlaceholder(value) {
|
|
37
55
|
if (!value)
|
|
38
56
|
return value;
|
|
@@ -140,7 +158,8 @@ export async function createModel(input) {
|
|
|
140
158
|
await logger.log("warn", "No LLM model name configured");
|
|
141
159
|
throw Error("No LLM model name configured");
|
|
142
160
|
}
|
|
143
|
-
const resolvedBaseUrl = normalizeOptionalBaseUrl(resolveEnvPlaceholder(selectedProviderConfig.baseUrl)
|
|
161
|
+
const resolvedBaseUrl = normalizeOptionalBaseUrl(resolveEnvPlaceholder(selectedProviderConfig.baseUrl) ||
|
|
162
|
+
resolveProviderDefaultBaseUrl(providerType));
|
|
144
163
|
let resolvedApiKey = resolveEnvPlaceholder(selectedProviderConfig.apiKey);
|
|
145
164
|
if (!resolvedApiKey) {
|
|
146
165
|
resolvedApiKey = resolveApiKeyFallback(providerType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateModel.js","sourceRoot":"","sources":["../../../src/main/model/CreateModel.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CreateModel.js","sourceRoot":"","sources":["../../../src/main/model/CreateModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ import { getServiceRootCommandNames, } from "../../service/Manager.js";
|
|
|
25
25
|
const __filename = fileURLToPath(import.meta.url);
|
|
26
26
|
const __dirname = dirname(__filename);
|
|
27
27
|
// 读取 package.json 版本号
|
|
28
|
-
const packageJson = JSON.parse(readFileSync(join(__dirname, "
|
|
28
|
+
const packageJson = JSON.parse(readFileSync(join(__dirname, "../../../../package.json"), "utf-8"));
|
|
29
29
|
const program = new Command();
|
|
30
30
|
function parsePort(value) {
|
|
31
31
|
const num = Number.parseInt(value, 10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../src/main/server/commands/Index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAElC,uBAAuB;AACvB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,sBAAsB;AACtB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../src/main/server/commands/Index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Init.d.ts","sourceRoot":"","sources":["../../../../src/main/server/commands/Init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"Init.d.ts","sourceRoot":"","sources":["../../../../src/main/server/commands/Init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmSH;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,GAAG,GAAE,MAAY,EACjB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CAokBf"}
|
|
@@ -21,7 +21,149 @@ import { SHIP_JSON_SCHEMA } from "../../../main/server/constants/ShipSchema.js";
|
|
|
21
21
|
import { DEFAULT_SHIP_JSON } from "../../../main/server/constants/Ship.js";
|
|
22
22
|
import { DEFAULT_PROFILE_MD_TEMPLATE, DEFAULT_SOUL_MD_TEMPLATE, DEFAULT_USER_MD_TEMPLATE, } from "../../prompts/common/InitPrompts.js";
|
|
23
23
|
import { renderTemplateVariables } from "../../../utils/Template.js";
|
|
24
|
-
|
|
24
|
+
const LLM_API_KEY_ENV_KEY = "LLM_API_KEY";
|
|
25
|
+
const LLM_MODEL_ENV_KEY = "LLM_MODEL";
|
|
26
|
+
const LLM_BASE_URL_ENV_KEY = "LLM_BASE_URL";
|
|
27
|
+
const INIT_PROVIDER_CHOICES = [
|
|
28
|
+
{ title: "OpenAI", value: "openai" },
|
|
29
|
+
{ title: "Anthropic", value: "anthropic" },
|
|
30
|
+
{ title: "DeepSeek", value: "deepseek" },
|
|
31
|
+
{ title: "Gemini", value: "gemini" },
|
|
32
|
+
{ title: "Open Compatible", value: "open-compatible" },
|
|
33
|
+
{ title: "Open Responses", value: "open-responses" },
|
|
34
|
+
{ title: "Moonshot (Kimi)", value: "moonshot" },
|
|
35
|
+
{ title: "xAI", value: "xai" },
|
|
36
|
+
{ title: "HuggingFace", value: "huggingface" },
|
|
37
|
+
{ title: "OpenRouter", value: "openrouter" },
|
|
38
|
+
];
|
|
39
|
+
const INIT_DEFAULT_MODEL_BY_PROVIDER = {
|
|
40
|
+
anthropic: "claude-sonnet-4-5",
|
|
41
|
+
openai: "gpt-4o-mini",
|
|
42
|
+
deepseek: "deepseek-chat",
|
|
43
|
+
gemini: "gemini-2.0-flash",
|
|
44
|
+
"open-compatible": "gpt-4o-mini",
|
|
45
|
+
"open-responses": "gpt-4.1-mini",
|
|
46
|
+
moonshot: "moonshot-v1-8k",
|
|
47
|
+
xai: "grok-3-mini",
|
|
48
|
+
huggingface: "meta-llama/Meta-Llama-3.1-8B-Instruct",
|
|
49
|
+
openrouter: "openai/gpt-4o-mini",
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* 解析 init 交互中的 provider type。
|
|
53
|
+
*
|
|
54
|
+
* 关键点(中文)
|
|
55
|
+
* - 非法输入回退到 `openai`,避免初始化中断。
|
|
56
|
+
*/
|
|
57
|
+
function resolveInitProviderType(input) {
|
|
58
|
+
const value = String(input || "").trim();
|
|
59
|
+
if (!value)
|
|
60
|
+
return "openai";
|
|
61
|
+
const found = INIT_PROVIDER_CHOICES.find((item) => item.value === value);
|
|
62
|
+
return found?.value || "openai";
|
|
63
|
+
}
|
|
64
|
+
function parseEnvKeys(content) {
|
|
65
|
+
const out = new Set();
|
|
66
|
+
for (const rawLine of content.split(/\r?\n/)) {
|
|
67
|
+
const line = String(rawLine || "").trim();
|
|
68
|
+
if (!line || line.startsWith("#"))
|
|
69
|
+
continue;
|
|
70
|
+
const matched = line.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*=/);
|
|
71
|
+
if (!matched)
|
|
72
|
+
continue;
|
|
73
|
+
out.add(matched[1]);
|
|
74
|
+
}
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
function parseEnvValueMap(content) {
|
|
78
|
+
const out = {};
|
|
79
|
+
for (const rawLine of content.split(/\r?\n/)) {
|
|
80
|
+
const line = String(rawLine || "").trim();
|
|
81
|
+
if (!line || line.startsWith("#"))
|
|
82
|
+
continue;
|
|
83
|
+
const matched = line.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/);
|
|
84
|
+
if (!matched)
|
|
85
|
+
continue;
|
|
86
|
+
out[matched[1]] = matched[2] ?? "";
|
|
87
|
+
}
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
90
|
+
function escapeRegExp(input) {
|
|
91
|
+
return input.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 仅向 env 文件追加缺失键(不覆盖已有键)。
|
|
95
|
+
*
|
|
96
|
+
* 关键点(中文)
|
|
97
|
+
* - 用户已有的 env 配置永远优先,不会被 init 覆盖。
|
|
98
|
+
* - 仅当键不存在时才追加,满足“原来有就跳过,原来没有就写入”。
|
|
99
|
+
*/
|
|
100
|
+
async function appendMissingEnvEntries(params) {
|
|
101
|
+
const filePath = String(params.filePath || "").trim();
|
|
102
|
+
if (!filePath)
|
|
103
|
+
return { appended: [], overwritten: [], skipped: [] };
|
|
104
|
+
const entries = Array.isArray(params.entries)
|
|
105
|
+
? params.entries.filter((item) => {
|
|
106
|
+
const key = String(item?.key || "").trim();
|
|
107
|
+
return Boolean(key);
|
|
108
|
+
})
|
|
109
|
+
: [];
|
|
110
|
+
if (entries.length === 0)
|
|
111
|
+
return { appended: [], overwritten: [], skipped: [] };
|
|
112
|
+
const overwriteKeys = params.overwriteKeys || new Set();
|
|
113
|
+
let existing = "";
|
|
114
|
+
if (await fs.pathExists(filePath)) {
|
|
115
|
+
existing = await fs.readFile(filePath, "utf-8");
|
|
116
|
+
}
|
|
117
|
+
const existingKeys = parseEnvKeys(existing);
|
|
118
|
+
const appendedEntries = [];
|
|
119
|
+
const skippedEntries = [];
|
|
120
|
+
const overwrittenEntries = [];
|
|
121
|
+
let nextContent = existing;
|
|
122
|
+
for (const entry of entries) {
|
|
123
|
+
if (!existingKeys.has(entry.key)) {
|
|
124
|
+
appendedEntries.push(entry);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (!overwriteKeys.has(entry.key)) {
|
|
128
|
+
skippedEntries.push(entry);
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const linePattern = new RegExp(`^${escapeRegExp(entry.key)}\\s*=.*$`, "gm");
|
|
132
|
+
if (linePattern.test(nextContent)) {
|
|
133
|
+
nextContent = nextContent.replace(linePattern, `${entry.key}=${entry.value}`);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
appendedEntries.push(entry);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
overwrittenEntries.push(entry);
|
|
140
|
+
}
|
|
141
|
+
if (appendedEntries.length > 0) {
|
|
142
|
+
const lines = [];
|
|
143
|
+
if (!nextContent.trim()) {
|
|
144
|
+
lines.push("# ShipMyAgent 环境变量");
|
|
145
|
+
}
|
|
146
|
+
lines.push("", `# ${params.sectionTitle}`);
|
|
147
|
+
for (const entry of appendedEntries) {
|
|
148
|
+
lines.push(`${entry.key}=${entry.value}`);
|
|
149
|
+
}
|
|
150
|
+
let chunk = lines.join("\n");
|
|
151
|
+
if (nextContent && !nextContent.endsWith("\n")) {
|
|
152
|
+
chunk = `\n${chunk}`;
|
|
153
|
+
}
|
|
154
|
+
nextContent = `${nextContent}${chunk}\n`;
|
|
155
|
+
}
|
|
156
|
+
if (appendedEntries.length > 0 ||
|
|
157
|
+
overwrittenEntries.length > 0 ||
|
|
158
|
+
!(await fs.pathExists(filePath))) {
|
|
159
|
+
await fs.writeFile(filePath, nextContent, "utf-8");
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
appended: appendedEntries.map((item) => item.key),
|
|
163
|
+
overwritten: overwrittenEntries.map((item) => item.key),
|
|
164
|
+
skipped: skippedEntries.map((item) => item.key),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
25
167
|
/**
|
|
26
168
|
* 获取用户级 `.ship/skills` 目录。
|
|
27
169
|
*/
|
|
@@ -33,7 +175,7 @@ function getUserShipSkillsDir() {
|
|
|
33
175
|
*/
|
|
34
176
|
function getBuiltInSkillsDirFromBin() {
|
|
35
177
|
// 关键点(中文)
|
|
36
|
-
// - 发布包中该文件在 `bin/main/commands/
|
|
178
|
+
// - 发布包中该文件在 `bin/main/server/commands/Init.js`
|
|
37
179
|
// - 内置 skills 会在 build 阶段复制到 `bin/services/skills/built-in`
|
|
38
180
|
const __filename = fileURLToPath(import.meta.url);
|
|
39
181
|
const __dirname = path.dirname(__filename);
|
|
@@ -104,11 +246,13 @@ async function syncClaudeSkillsToUserShipSkills() {
|
|
|
104
246
|
export async function initCommand(cwd = ".", options = {}) {
|
|
105
247
|
const projectRoot = path.resolve(cwd);
|
|
106
248
|
let allowOverwrite = Boolean(options.force);
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
const
|
|
249
|
+
const dotEnvPath = path.join(projectRoot, ".env");
|
|
250
|
+
const dotEnvExamplePath = path.join(projectRoot, ".env.example");
|
|
251
|
+
const existingDotEnvContent = (await fs.pathExists(dotEnvPath))
|
|
252
|
+
? await fs.readFile(dotEnvPath, "utf-8")
|
|
253
|
+
: "";
|
|
254
|
+
const existingDotEnvValues = parseEnvValueMap(existingDotEnvContent);
|
|
110
255
|
const TELEGRAM_BOT_TOKEN = "${TELEGRAM_BOT_TOKEN}";
|
|
111
|
-
const TELEGRAM_CHAT_ID = "${TELEGRAM_CHAT_ID}";
|
|
112
256
|
const FEISHU_APP_ID = "${FEISHU_APP_ID}";
|
|
113
257
|
const FEISHU_APP_SECRET = "${FEISHU_APP_SECRET}";
|
|
114
258
|
const QQ_APP_ID = "${QQ_APP_ID}";
|
|
@@ -136,7 +280,7 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
136
280
|
}
|
|
137
281
|
}
|
|
138
282
|
// Collect configuration information
|
|
139
|
-
//
|
|
283
|
+
// 交互采集(中文):provider type + apiKey + modelName + channels + 推荐 skills。
|
|
140
284
|
const response = (await prompts([
|
|
141
285
|
{
|
|
142
286
|
type: "text",
|
|
@@ -146,10 +290,38 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
146
290
|
},
|
|
147
291
|
{
|
|
148
292
|
type: "select",
|
|
149
|
-
name: "
|
|
150
|
-
message: "Select LLM
|
|
151
|
-
choices:
|
|
152
|
-
initial:
|
|
293
|
+
name: "providerType",
|
|
294
|
+
message: "Select LLM provider type",
|
|
295
|
+
choices: INIT_PROVIDER_CHOICES,
|
|
296
|
+
initial: 0,
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
type: "text",
|
|
300
|
+
name: "apiKey",
|
|
301
|
+
message: "Input API key",
|
|
302
|
+
initial: String(existingDotEnvValues[LLM_API_KEY_ENV_KEY] ||
|
|
303
|
+
process.env[LLM_API_KEY_ENV_KEY] ||
|
|
304
|
+
"").trim(),
|
|
305
|
+
validate: (value) => String(value || "").trim() ? true : "API key is required",
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
type: "text",
|
|
309
|
+
name: "modelName",
|
|
310
|
+
message: "Input model name",
|
|
311
|
+
initial: (prev, values) => {
|
|
312
|
+
const existingModelName = String(existingDotEnvValues[LLM_MODEL_ENV_KEY] || "").trim();
|
|
313
|
+
if (existingModelName)
|
|
314
|
+
return existingModelName;
|
|
315
|
+
const providerType = resolveInitProviderType(values.providerType);
|
|
316
|
+
return INIT_DEFAULT_MODEL_BY_PROVIDER[providerType];
|
|
317
|
+
},
|
|
318
|
+
validate: (value) => String(value || "").trim() ? true : "Model name is required",
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
type: "text",
|
|
322
|
+
name: "baseUrl",
|
|
323
|
+
message: "Input base URL (optional, press Enter to skip)",
|
|
324
|
+
initial: String(existingDotEnvValues[LLM_BASE_URL_ENV_KEY] || "").trim(),
|
|
153
325
|
},
|
|
154
326
|
{
|
|
155
327
|
// 关键交互: Chat channels 允许多选,未选择的就不写入 ship.json
|
|
@@ -192,6 +364,67 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
192
364
|
]));
|
|
193
365
|
// 关键点(中文):agent_name 同时用于 `ship.json.name` 与 init 模板变量渲染,避免两处来源不一致。
|
|
194
366
|
const agentName = String(response.name || "").trim() || path.basename(projectRoot);
|
|
367
|
+
const providerType = resolveInitProviderType(response.providerType);
|
|
368
|
+
const modelName = String(response.modelName || "").trim() ||
|
|
369
|
+
INIT_DEFAULT_MODEL_BY_PROVIDER[providerType];
|
|
370
|
+
let apiKey = String(response.apiKey || "").trim();
|
|
371
|
+
let resolvedModelName = modelName;
|
|
372
|
+
let resolvedBaseUrl = String(response.baseUrl || "").trim();
|
|
373
|
+
const overwriteEnvKeys = new Set();
|
|
374
|
+
const hasExistingApiKey = Object.prototype.hasOwnProperty.call(existingDotEnvValues, LLM_API_KEY_ENV_KEY);
|
|
375
|
+
const hasExistingModelName = Object.prototype.hasOwnProperty.call(existingDotEnvValues, LLM_MODEL_ENV_KEY);
|
|
376
|
+
const hasExistingBaseUrl = Object.prototype.hasOwnProperty.call(existingDotEnvValues, LLM_BASE_URL_ENV_KEY);
|
|
377
|
+
const existingApiKey = String(existingDotEnvValues[LLM_API_KEY_ENV_KEY] || "").trim();
|
|
378
|
+
const existingModelName = String(existingDotEnvValues[LLM_MODEL_ENV_KEY] || "").trim();
|
|
379
|
+
const existingBaseUrl = String(existingDotEnvValues[LLM_BASE_URL_ENV_KEY] || "").trim();
|
|
380
|
+
if (hasExistingApiKey && apiKey !== existingApiKey) {
|
|
381
|
+
const confirmOverwriteApiKey = (await prompts({
|
|
382
|
+
type: "confirm",
|
|
383
|
+
name: "overwrite",
|
|
384
|
+
message: `${LLM_API_KEY_ENV_KEY} already exists in .env. Overwrite it?`,
|
|
385
|
+
initial: false,
|
|
386
|
+
}));
|
|
387
|
+
if (confirmOverwriteApiKey.overwrite) {
|
|
388
|
+
overwriteEnvKeys.add(LLM_API_KEY_ENV_KEY);
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
apiKey = existingApiKey;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
if (hasExistingModelName && resolvedModelName !== existingModelName) {
|
|
395
|
+
const confirmOverwriteModel = (await prompts({
|
|
396
|
+
type: "confirm",
|
|
397
|
+
name: "overwrite",
|
|
398
|
+
message: `${LLM_MODEL_ENV_KEY} already exists in .env. Overwrite it?`,
|
|
399
|
+
initial: false,
|
|
400
|
+
}));
|
|
401
|
+
if (confirmOverwriteModel.overwrite) {
|
|
402
|
+
overwriteEnvKeys.add(LLM_MODEL_ENV_KEY);
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
resolvedModelName = existingModelName;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
// 关键点(中文)
|
|
409
|
+
// - baseUrl 允许留空(skip)。
|
|
410
|
+
// - 若已有值且用户输入了新值,则二次确认是否覆盖。
|
|
411
|
+
if (!resolvedBaseUrl) {
|
|
412
|
+
resolvedBaseUrl = existingBaseUrl;
|
|
413
|
+
}
|
|
414
|
+
else if (hasExistingBaseUrl && resolvedBaseUrl !== existingBaseUrl) {
|
|
415
|
+
const confirmOverwriteBaseUrl = (await prompts({
|
|
416
|
+
type: "confirm",
|
|
417
|
+
name: "overwrite",
|
|
418
|
+
message: `${LLM_BASE_URL_ENV_KEY} already exists in .env. Overwrite it?`,
|
|
419
|
+
initial: false,
|
|
420
|
+
}));
|
|
421
|
+
if (confirmOverwriteBaseUrl.overwrite) {
|
|
422
|
+
overwriteEnvKeys.add(LLM_BASE_URL_ENV_KEY);
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
resolvedBaseUrl = existingBaseUrl;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
195
428
|
const initTemplateVariables = {
|
|
196
429
|
agent_name: agentName,
|
|
197
430
|
};
|
|
@@ -231,24 +464,22 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
231
464
|
}
|
|
232
465
|
// Save ship.json
|
|
233
466
|
// Build LLM configuration
|
|
234
|
-
const selectedModel = resolveInitModel(response.model);
|
|
235
467
|
const activeModelId = "default";
|
|
236
468
|
const providerId = "default";
|
|
237
|
-
const useCustomModelName = selectedModel.useCustomModelName;
|
|
238
469
|
// 关键点(中文):init 默认生成“1 provider + 1 model”的多模型结构,后续用户可按需扩展。
|
|
239
470
|
const llmConfig = {
|
|
240
471
|
activeModel: activeModelId,
|
|
241
472
|
providers: {
|
|
242
473
|
[providerId]: {
|
|
243
|
-
type:
|
|
244
|
-
|
|
245
|
-
apiKey:
|
|
474
|
+
type: providerType,
|
|
475
|
+
baseUrl: `\${${LLM_BASE_URL_ENV_KEY}}`,
|
|
476
|
+
apiKey: `\${${LLM_API_KEY_ENV_KEY}}`,
|
|
246
477
|
},
|
|
247
478
|
},
|
|
248
479
|
models: {
|
|
249
480
|
[activeModelId]: {
|
|
250
481
|
provider: providerId,
|
|
251
|
-
name:
|
|
482
|
+
name: `\${${LLM_MODEL_ENV_KEY}}`,
|
|
252
483
|
temperature: 0.7,
|
|
253
484
|
},
|
|
254
485
|
},
|
|
@@ -259,8 +490,8 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
259
490
|
channelsConfig.telegram = {
|
|
260
491
|
enabled: true,
|
|
261
492
|
botToken: TELEGRAM_BOT_TOKEN,
|
|
262
|
-
//
|
|
263
|
-
|
|
493
|
+
// 关键点(中文):每个 channel 独立配置单值 auth_id,默认留空。
|
|
494
|
+
auth_id: "",
|
|
264
495
|
};
|
|
265
496
|
}
|
|
266
497
|
if (selectedChannels.has("feishu")) {
|
|
@@ -269,6 +500,7 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
269
500
|
appId: FEISHU_APP_ID,
|
|
270
501
|
appSecret: FEISHU_APP_SECRET,
|
|
271
502
|
domain: "https://open.feishu.cn",
|
|
503
|
+
auth_id: "",
|
|
272
504
|
};
|
|
273
505
|
}
|
|
274
506
|
if (selectedChannels.has("qq")) {
|
|
@@ -277,6 +509,7 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
277
509
|
appId: QQ_APP_ID,
|
|
278
510
|
appSecret: QQ_APP_SECRET,
|
|
279
511
|
sandbox: Boolean(response.qqSandbox),
|
|
512
|
+
auth_id: "",
|
|
280
513
|
};
|
|
281
514
|
}
|
|
282
515
|
const shipConfig = {
|
|
@@ -305,67 +538,65 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
305
538
|
};
|
|
306
539
|
await saveJson(shipJsonPath, shipConfig);
|
|
307
540
|
console.log(`✅ Created ship.json`);
|
|
308
|
-
// Create .env and .env.example
|
|
541
|
+
// Create .env and .env.example
|
|
309
542
|
// 关键点(中文)
|
|
310
|
-
// - `.env
|
|
311
|
-
// - `.env
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
"LLM_API_KEY=",
|
|
543
|
+
// - `.env` 写入真实值(仅追加缺失键,不覆盖已有键)
|
|
544
|
+
// - `.env.example` 写入示例值(便于团队同步所需变量)
|
|
545
|
+
const envRealEntries = [
|
|
546
|
+
{ key: LLM_API_KEY_ENV_KEY, value: apiKey },
|
|
547
|
+
{ key: LLM_MODEL_ENV_KEY, value: resolvedModelName },
|
|
548
|
+
{ key: LLM_BASE_URL_ENV_KEY, value: resolvedBaseUrl },
|
|
549
|
+
];
|
|
550
|
+
const envExampleEntries = [
|
|
551
|
+
{ key: LLM_API_KEY_ENV_KEY, value: "" },
|
|
552
|
+
{ key: LLM_MODEL_ENV_KEY, value: resolvedModelName },
|
|
553
|
+
{ key: LLM_BASE_URL_ENV_KEY, value: "" },
|
|
322
554
|
];
|
|
323
|
-
if (useCustomModelName) {
|
|
324
|
-
envLines.push("", "# Open-compatible / Open-responses model", "LLM_MODEL=", "LLM_BASE_URL=");
|
|
325
|
-
}
|
|
326
555
|
if (selectedChannels.has("telegram")) {
|
|
327
|
-
|
|
556
|
+
envRealEntries.push({ key: "TELEGRAM_BOT_TOKEN", value: "" }, { key: "TELEGRAM_AUTH_ID", value: "" });
|
|
557
|
+
envExampleEntries.push({ key: "TELEGRAM_BOT_TOKEN", value: "" }, { key: "TELEGRAM_AUTH_ID", value: "" });
|
|
328
558
|
}
|
|
329
559
|
if (selectedChannels.has("feishu")) {
|
|
330
|
-
|
|
560
|
+
envRealEntries.push({ key: "FEISHU_APP_ID", value: "" }, { key: "FEISHU_APP_SECRET", value: "" }, { key: "FEISHU_AUTH_ID", value: "" });
|
|
561
|
+
envExampleEntries.push({ key: "FEISHU_APP_ID", value: "" }, { key: "FEISHU_APP_SECRET", value: "" }, { key: "FEISHU_AUTH_ID", value: "" });
|
|
331
562
|
}
|
|
332
563
|
if (selectedChannels.has("qq")) {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
const
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
else
|
|
368
|
-
console.log("⏭️ Skipped
|
|
564
|
+
const qqSandbox = Boolean(response.qqSandbox) ? "true" : "false";
|
|
565
|
+
envRealEntries.push({ key: "QQ_APP_ID", value: "" }, { key: "QQ_APP_SECRET", value: "" }, { key: "QQ_SANDBOX", value: qqSandbox }, { key: "QQ_AUTH_ID", value: "" });
|
|
566
|
+
envExampleEntries.push({ key: "QQ_APP_ID", value: "" }, { key: "QQ_APP_SECRET", value: "" }, { key: "QQ_SANDBOX", value: qqSandbox }, { key: "QQ_AUTH_ID", value: "" });
|
|
567
|
+
}
|
|
568
|
+
const envResult = await appendMissingEnvEntries({
|
|
569
|
+
filePath: dotEnvPath,
|
|
570
|
+
sectionTitle: "ShipMyAgent Init",
|
|
571
|
+
entries: envRealEntries,
|
|
572
|
+
overwriteKeys: overwriteEnvKeys,
|
|
573
|
+
});
|
|
574
|
+
const envExampleResult = await appendMissingEnvEntries({
|
|
575
|
+
filePath: dotEnvExamplePath,
|
|
576
|
+
sectionTitle: "ShipMyAgent Init Example",
|
|
577
|
+
entries: envExampleEntries,
|
|
578
|
+
});
|
|
579
|
+
if (envResult.appended.length > 0 || envResult.overwritten.length > 0) {
|
|
580
|
+
const detail = [
|
|
581
|
+
envResult.appended.length > 0
|
|
582
|
+
? `added: ${envResult.appended.join(", ")}`
|
|
583
|
+
: "",
|
|
584
|
+
envResult.overwritten.length > 0
|
|
585
|
+
? `overwritten: ${envResult.overwritten.join(", ")}`
|
|
586
|
+
: "",
|
|
587
|
+
]
|
|
588
|
+
.filter(Boolean)
|
|
589
|
+
.join("; ");
|
|
590
|
+
console.log(`✅ Updated .env (${detail})`);
|
|
591
|
+
}
|
|
592
|
+
else {
|
|
593
|
+
console.log("⏭️ Skipped .env (required keys already exist)");
|
|
594
|
+
}
|
|
595
|
+
if (envExampleResult.appended.length > 0) {
|
|
596
|
+
console.log(`✅ Updated .env.example (added: ${envExampleResult.appended.join(", ")})`);
|
|
597
|
+
}
|
|
598
|
+
else {
|
|
599
|
+
console.log("⏭️ Skipped .env.example (required keys already exist)");
|
|
369
600
|
}
|
|
370
601
|
// Create .ship directory structure
|
|
371
602
|
const dirs = [
|
|
@@ -426,24 +657,22 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
426
657
|
await syncClaudeSkillsToUserShipSkills();
|
|
427
658
|
}
|
|
428
659
|
console.log("\n🎉 Initialization complete!\n");
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
console.log(`📦 Current model: ${activeProviderConfig.type} / ${activeModelConfig.name}`);
|
|
432
|
-
console.log(`🌐 API URL: ${activeProviderConfig.baseUrl || "-"}\n`);
|
|
660
|
+
console.log(`📦 Current model: ${providerType} / ${resolvedModelName}`);
|
|
661
|
+
console.log(`🌐 API URL: ${resolvedBaseUrl || "-"}\n`);
|
|
433
662
|
if (selectedChannels.has("feishu")) {
|
|
434
663
|
console.log("📱 Feishu chat channel enabled");
|
|
435
664
|
console.log(" Please configure FEISHU_APP_ID and FEISHU_APP_SECRET in ship.json (services.chat.channels.feishu)");
|
|
436
|
-
console.log("
|
|
665
|
+
console.log(" Optional auth: services.chat.channels.feishu.auth_id or FEISHU_AUTH_ID\n");
|
|
437
666
|
}
|
|
438
667
|
if (selectedChannels.has("telegram")) {
|
|
439
668
|
console.log("📱 Telegram chat channel enabled");
|
|
440
|
-
console.log(" Please configure TELEGRAM_BOT_TOKEN
|
|
441
|
-
console.log("
|
|
669
|
+
console.log(" Please configure TELEGRAM_BOT_TOKEN in ship.json (services.chat.channels.telegram)");
|
|
670
|
+
console.log(" Optional auth: services.chat.channels.telegram.auth_id or TELEGRAM_AUTH_ID\n");
|
|
442
671
|
}
|
|
443
672
|
if (selectedChannels.has("qq")) {
|
|
444
673
|
console.log("📱 QQ chat channel enabled");
|
|
445
674
|
console.log(" Please configure QQ_APP_ID and QQ_APP_SECRET in ship.json (services.chat.channels.qq)");
|
|
446
|
-
console.log("
|
|
675
|
+
console.log(" Optional auth: services.chat.channels.qq.auth_id or QQ_AUTH_ID\n");
|
|
447
676
|
console.log(" Optional: set QQ_SANDBOX=true to use sandbox environment\n");
|
|
448
677
|
}
|
|
449
678
|
const nextSteps = [
|
|
@@ -453,13 +682,16 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
453
682
|
"Edit ship.json to modify llm.activeModel / llm.models / llm.providers",
|
|
454
683
|
];
|
|
455
684
|
if (selectedChannels.has("telegram")) {
|
|
456
|
-
nextSteps.push("Configure services.chat.channels.telegram (Bot Token
|
|
685
|
+
nextSteps.push("Configure services.chat.channels.telegram (Bot Token)");
|
|
686
|
+
nextSteps.push("Optional: configure services.chat.channels.telegram.auth_id (or TELEGRAM_AUTH_ID)");
|
|
457
687
|
}
|
|
458
688
|
if (selectedChannels.has("feishu")) {
|
|
459
689
|
nextSteps.push("Configure services.chat.channels.feishu (App ID and App Secret)");
|
|
690
|
+
nextSteps.push("Optional: configure services.chat.channels.feishu.auth_id (or FEISHU_AUTH_ID)");
|
|
460
691
|
}
|
|
461
692
|
if (selectedChannels.has("qq")) {
|
|
462
693
|
nextSteps.push("Configure services.chat.channels.qq (App ID and App Secret)");
|
|
694
|
+
nextSteps.push("Optional: configure services.chat.channels.qq.auth_id (or QQ_AUTH_ID)");
|
|
463
695
|
}
|
|
464
696
|
nextSteps.push('Run "shipmyagent start" to start the agent');
|
|
465
697
|
console.log("Next steps:");
|
|
@@ -467,7 +699,7 @@ export async function initCommand(cwd = ".", options = {}) {
|
|
|
467
699
|
console.log(` ${idx + 1}. ${line}`);
|
|
468
700
|
}
|
|
469
701
|
console.log("");
|
|
470
|
-
console.log("💡 Tip: API Key
|
|
702
|
+
console.log("💡 Tip: 本次输入的 API Key 与 Model 已按“缺失才追加”策略写入 .env。\n");
|
|
471
703
|
console.log("To switch models or modify configuration, edit the llm field in ship.json directly.\n");
|
|
472
704
|
}
|
|
473
705
|
//# sourceMappingURL=Init.js.map
|