dsh-himarket 0.1.1 → 0.1.4
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/lib/client.js +132 -5
- package/lib/himarket-client.d.ts +54 -0
- package/lib/himarket-client.js +180 -0
- package/lib/himarket-client.js.map +1 -1
- package/lib/index.js +133 -1
- package/lib/index.js.map +1 -1
- package/lib/preset.d.ts +37 -0
- package/lib/preset.js +103 -0
- package/lib/preset.js.map +1 -0
- package/lib/publish.d.ts +34 -0
- package/lib/publish.js +125 -0
- package/lib/publish.js.map +1 -0
- package/lib/settings.d.ts +11 -1
- package/lib/settings.js +10 -1
- package/lib/settings.js.map +1 -1
- package/lib/skill.d.ts +7 -1
- package/lib/skill.js +25 -3
- package/lib/skill.js.map +1 -1
- package/lib/tools.d.ts +2 -1
- package/lib/tools.js +25 -1
- package/lib/tools.js.map +1 -1
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -65,7 +65,21 @@ var zh = {
|
|
|
65
65
|
installed: "\u5DF2\u88C5",
|
|
66
66
|
empty: "\u6682\u65E0\u6570\u636E\uFF0C\u8BF7\u5148\u300C\u540C\u6B65\u300D\u6216\u68C0\u67E5\u8D26\u53F7\u662F\u5426\u5DF2\u8BA2\u9605/\u4E0A\u67B6\u3002",
|
|
67
67
|
error: "\u51FA\u9519\u4E86",
|
|
68
|
-
ok: "\u5B8C\u6210"
|
|
68
|
+
ok: "\u5B8C\u6210",
|
|
69
|
+
publishTitle: "\u2463 \u53D1\u5E03\u6211\u7684\u5C97\u4F4D\u5230\u5E02\u573A",
|
|
70
|
+
publishHint: "\u628A\u672C\u673A\u5DF2\u8FED\u4EE3\u4F18\u5316\u7684\u6570\u5B57\u5458\u5DE5\u5C97\u4F4D\uFF08preset \u4EBA\u8BBE + \u5C97\u4F4D\u6280\u80FD\uFF09\u6253\u5305\u4E0A\u67B6\uFF0C\u4F9B\u540C\u4E8B\u540C\u6B65\u5B89\u88C5\u3002\u53D1\u5E03\u8D70\u5305\u88C5\u5C42\uFF08\u4F01\u4E1A\u7EDF\u4E00\u901A\u9053\uFF0C\u81EA\u52A8\u767B\u8BB0\u5F52\u5C5E/\u6765\u6E90\uFF09\uFF0C\u8BF7\u5148\u586B\u597D\u4E0A\u65B9\u5305\u88C5\u5C42\u5730\u5740\u3002",
|
|
71
|
+
publish: "\u53D1\u5E03",
|
|
72
|
+
publishing: "\u53D1\u5E03\u4E2D",
|
|
73
|
+
gatewayLabel: "\u5305\u88C5\u5C42\u5730\u5740",
|
|
74
|
+
gatewayPlaceholder: "\u5982 http://ai-job.ict.cmcc\uFF0C\u53D1\u5E03\u4E0E\u6765\u6E90\u6807\u7B7E\u90FD\u8D70\u5B83",
|
|
75
|
+
sourceOfficial: "\u4F01\u4E1A\u53D1\u5E03",
|
|
76
|
+
sourceCommunity: "\u5458\u5DE5\u5171\u5EFA",
|
|
77
|
+
filterAll: "\u5168\u90E8",
|
|
78
|
+
filterOfficial: "\u4F01\u4E1A\u53D1\u5E03",
|
|
79
|
+
filterCommunity: "\u5458\u5DE5\u5171\u5EFA",
|
|
80
|
+
overrideTag: "\u5458\u5DE5\u6539\u8FDB\u7248",
|
|
81
|
+
overrideOf: "\u8986\u76D6",
|
|
82
|
+
overriddenHint: "\u6709\u5458\u5DE5\u6539\u8FDB\u7248\uFF08\u5B98\u65B9\u9ED8\u8BA4\uFF0C\u53EF\u9009\u7528\u6539\u8FDB\u7248\uFF09"
|
|
69
83
|
};
|
|
70
84
|
var en = {
|
|
71
85
|
tab: "HiMarket",
|
|
@@ -85,7 +99,21 @@ var en = {
|
|
|
85
99
|
installed: "Installed",
|
|
86
100
|
empty: "Nothing yet. Sync first, or check subscriptions/published items.",
|
|
87
101
|
error: "Error",
|
|
88
|
-
ok: "Done"
|
|
102
|
+
ok: "Done",
|
|
103
|
+
publishTitle: "4. Publish My Job to Market",
|
|
104
|
+
publishHint: "Package your locally iterated digital-employee job (preset persona + job skill) and publish it for colleagues to install. Publishing goes through the gateway (enterprise channel, records ownership/source automatically). Fill in the gateway URL above first.",
|
|
105
|
+
publish: "Publish",
|
|
106
|
+
publishing: "Publishing",
|
|
107
|
+
gatewayLabel: "Gateway URL",
|
|
108
|
+
gatewayPlaceholder: "e.g. http://ai-job.ict.cmcc; publishing and source tags go through it",
|
|
109
|
+
sourceOfficial: "Official",
|
|
110
|
+
sourceCommunity: "Community",
|
|
111
|
+
filterAll: "All",
|
|
112
|
+
filterOfficial: "Official",
|
|
113
|
+
filterCommunity: "Community",
|
|
114
|
+
overrideTag: "Community Fork",
|
|
115
|
+
overrideOf: "of",
|
|
116
|
+
overriddenHint: "has community forks (official default; fork optional)"
|
|
89
117
|
};
|
|
90
118
|
var CSS = [
|
|
91
119
|
".hm_section{width:100%;max-width:760px;display:flex;flex-direction:column;gap:14px;color:var(--dsw-alias-label-primary)}",
|
|
@@ -105,7 +133,14 @@ var CSS = [
|
|
|
105
133
|
".hm_name{font-size:13px;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}",
|
|
106
134
|
".hm_desc{font-size:12px;color:var(--dsw-alias-label-tertiary);margin:0}",
|
|
107
135
|
".hm_tag{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);border-radius:999px;padding:1px 8px;font-size:11px;line-height:16px;flex:none}",
|
|
108
|
-
".hm_tag[data-ok=true]{border-color:var(--dsw-alias-state-success-primary);color:var(--dsw-alias-state-success-primary)}"
|
|
136
|
+
".hm_tag[data-ok=true]{border-color:var(--dsw-alias-state-success-primary);color:var(--dsw-alias-state-success-primary)}",
|
|
137
|
+
".hm_tag[data-source=official]{border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-alias-state-business-primary)}",
|
|
138
|
+
".hm_tag[data-source=community]{border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary)}",
|
|
139
|
+
".hm_btn[data-active=true]{background:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary);color:#fff}",
|
|
140
|
+
".hm_overrides{margin-top:4px;padding:6px 8px;background:var(--dsw-alias-bg-layer-2);border-radius:8px;display:grid;gap:6px}",
|
|
141
|
+
".hm_overrides .hm_desc{margin:0 0 2px 0}",
|
|
142
|
+
".hm_overrides .hm_list{gap:4px}",
|
|
143
|
+
".hm_overrides .hm_item{padding:6px 8px}"
|
|
109
144
|
].join("\n");
|
|
110
145
|
function injectCss() {
|
|
111
146
|
const tagId = "dsh-himarket/client.css";
|
|
@@ -131,11 +166,14 @@ function HimarketTab(props) {
|
|
|
131
166
|
const [baseUrl, setBaseUrl] = import_react.default.useState("");
|
|
132
167
|
const [username, setUsername] = import_react.default.useState("");
|
|
133
168
|
const [password, setPassword] = import_react.default.useState("");
|
|
169
|
+
const [gatewayUrl, setGatewayUrl] = import_react.default.useState("");
|
|
170
|
+
const [sourceFilter, setSourceFilter] = import_react.default.useState("ALL");
|
|
134
171
|
const refresh = import_react.default.useCallback(function() {
|
|
135
172
|
call("/himarket/state").then(function(data2) {
|
|
136
173
|
setState({ status: "ready", data: data2 });
|
|
137
174
|
if (data2 && data2.baseUrl) setBaseUrl(data2.baseUrl);
|
|
138
175
|
if (data2 && data2.username) setUsername(data2.username);
|
|
176
|
+
if (data2 && data2.gatewayUrl) setGatewayUrl(data2.gatewayUrl);
|
|
139
177
|
}, function(err) {
|
|
140
178
|
setState({ status: "error", error: err.message });
|
|
141
179
|
});
|
|
@@ -145,7 +183,8 @@ function HimarketTab(props) {
|
|
|
145
183
|
}, [refresh]);
|
|
146
184
|
function saveConfig() {
|
|
147
185
|
setBusy(true);
|
|
148
|
-
|
|
186
|
+
var patch = { baseUrl, username, password, gatewayUrl };
|
|
187
|
+
call("/himarket/save-config", patch).then(
|
|
149
188
|
function() {
|
|
150
189
|
setMessage(t("saved"));
|
|
151
190
|
setBusy(false);
|
|
@@ -180,6 +219,18 @@ function HimarketTab(props) {
|
|
|
180
219
|
setBusy(false);
|
|
181
220
|
});
|
|
182
221
|
}
|
|
222
|
+
function publishMyJob(job) {
|
|
223
|
+
setBusy(true);
|
|
224
|
+
setMessage(t("publishing") + "\uFF1A" + job);
|
|
225
|
+
call("/himarket/publish-job", { job }).then(function(data2) {
|
|
226
|
+
setMessage(data2.summary || t("ok"));
|
|
227
|
+
setBusy(false);
|
|
228
|
+
refresh();
|
|
229
|
+
}, function(err) {
|
|
230
|
+
setMessage(t("error") + "\uFF1A" + err.message);
|
|
231
|
+
setBusy(false);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
183
234
|
const data = state.status === "ready" ? state.data : null;
|
|
184
235
|
const mcpServers = data && data.mcpServers || [];
|
|
185
236
|
const activeNames = data && data.activeMcpNames || [];
|
|
@@ -189,6 +240,55 @@ function HimarketTab(props) {
|
|
|
189
240
|
const name = skill && skill.name;
|
|
190
241
|
return installedSkills.indexOf(name) >= 0;
|
|
191
242
|
}
|
|
243
|
+
function sourceTag(item) {
|
|
244
|
+
if (!item) return null;
|
|
245
|
+
const src = item.source;
|
|
246
|
+
if (src === "OFFICIAL") {
|
|
247
|
+
return el(
|
|
248
|
+
"span",
|
|
249
|
+
{ className: "hm_tag", "data-source": "official", title: item.overriddenBy && item.overriddenBy.length > 0 ? t("overriddenHint") : void 0 },
|
|
250
|
+
t("sourceOfficial")
|
|
251
|
+
);
|
|
252
|
+
}
|
|
253
|
+
if (src === "COMMUNITY") {
|
|
254
|
+
const txt = item.overrides ? t("overrideTag") + "\xB7" + t("overrideOf") + " " + item.overrides : t("sourceCommunity");
|
|
255
|
+
return el("span", { className: "hm_tag", "data-source": "community" }, txt);
|
|
256
|
+
}
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
function overrideBlock(item) {
|
|
260
|
+
if (!item || !item.overriddenBy || item.overriddenBy.length === 0) return null;
|
|
261
|
+
const hint = item.source === "OFFICIAL" ? t("overriddenHint") : t("overrideTag") + "\uFF1A" + item.overriddenBy.length;
|
|
262
|
+
return el(
|
|
263
|
+
"div",
|
|
264
|
+
{ className: "hm_overrides" },
|
|
265
|
+
el("p", { className: "hm_desc" }, hint),
|
|
266
|
+
el(
|
|
267
|
+
"ul",
|
|
268
|
+
{ className: "hm_list" },
|
|
269
|
+
item.overriddenBy.map(function(o) {
|
|
270
|
+
const done = installedSkills.indexOf(o.name) >= 0;
|
|
271
|
+
return el(
|
|
272
|
+
"li",
|
|
273
|
+
{ className: "hm_item", key: o.productId || o.name },
|
|
274
|
+
el(
|
|
275
|
+
"div",
|
|
276
|
+
{ className: "hm_itemTop" },
|
|
277
|
+
el("span", { className: "hm_name" }, o.name + "\uFF08" + o.publisher + "\uFF09"),
|
|
278
|
+
el("span", { className: "hm_tag", "data-source": "community" }, t("overrideTag")),
|
|
279
|
+
el(
|
|
280
|
+
"button",
|
|
281
|
+
{ className: "hm_btn", type: "button", disabled: busy || done, onClick: function() {
|
|
282
|
+
installSkill(o.productId);
|
|
283
|
+
} },
|
|
284
|
+
done ? t("installed") : t("install")
|
|
285
|
+
)
|
|
286
|
+
)
|
|
287
|
+
);
|
|
288
|
+
})
|
|
289
|
+
)
|
|
290
|
+
);
|
|
291
|
+
}
|
|
192
292
|
return el(
|
|
193
293
|
"div",
|
|
194
294
|
{ className: "hm_section" },
|
|
@@ -213,6 +313,12 @@ function HimarketTab(props) {
|
|
|
213
313
|
el("label", null, t("passwordLabel")),
|
|
214
314
|
el("input", { className: "hm_input", type: "password", placeholder: t("passwordPlaceholder"), value: password, onChange: (e) => setPassword(e.target.value) })
|
|
215
315
|
),
|
|
316
|
+
el(
|
|
317
|
+
"div",
|
|
318
|
+
{ className: "hm_field" },
|
|
319
|
+
el("label", null, t("gatewayLabel")),
|
|
320
|
+
el("input", { className: "hm_input", type: "text", placeholder: t("gatewayPlaceholder"), value: gatewayUrl, onChange: (e) => setGatewayUrl(e.target.value) })
|
|
321
|
+
),
|
|
216
322
|
el(
|
|
217
323
|
"div",
|
|
218
324
|
{ className: "hm_row" },
|
|
@@ -225,6 +331,7 @@ function HimarketTab(props) {
|
|
|
225
331
|
"ul",
|
|
226
332
|
{ className: "hm_list" },
|
|
227
333
|
mcpServers.map((mm) => {
|
|
334
|
+
if (sourceFilter !== "ALL" && (mm.source || "COMMUNITY") !== sourceFilter) return null;
|
|
228
335
|
const active = activeNames.indexOf(mm.name) >= 0;
|
|
229
336
|
return el(
|
|
230
337
|
"li",
|
|
@@ -233,6 +340,7 @@ function HimarketTab(props) {
|
|
|
233
340
|
"div",
|
|
234
341
|
{ className: "hm_itemTop" },
|
|
235
342
|
el("span", { className: "hm_name" }, mm.name),
|
|
343
|
+
sourceTag(mm),
|
|
236
344
|
el("span", { className: "hm_tag", "data-ok": active ? "true" : void 0 }, active ? "\u5DF2\u63A5\u5165" : "\u672A\u8FDE\u63A5")
|
|
237
345
|
),
|
|
238
346
|
mm.description ? el("p", { className: "hm_desc" }, mm.description) : null
|
|
@@ -240,10 +348,18 @@ function HimarketTab(props) {
|
|
|
240
348
|
})
|
|
241
349
|
),
|
|
242
350
|
el("h3", null, t("skillTitle")),
|
|
351
|
+
el(
|
|
352
|
+
"div",
|
|
353
|
+
{ className: "hm_row" },
|
|
354
|
+
el("button", { className: "hm_btn", type: "button", "data-active": sourceFilter === "ALL" ? "true" : void 0, onClick: () => setSourceFilter("ALL") }, t("filterAll")),
|
|
355
|
+
el("button", { className: "hm_btn", type: "button", "data-active": sourceFilter === "OFFICIAL" ? "true" : void 0, onClick: () => setSourceFilter("OFFICIAL") }, t("filterOfficial")),
|
|
356
|
+
el("button", { className: "hm_btn", type: "button", "data-active": sourceFilter === "COMMUNITY" ? "true" : void 0, onClick: () => setSourceFilter("COMMUNITY") }, t("filterCommunity"))
|
|
357
|
+
),
|
|
243
358
|
publishedSkills.length === 0 ? el("p", { className: "hm_message" }, t("empty")) : el(
|
|
244
359
|
"ul",
|
|
245
360
|
{ className: "hm_list" },
|
|
246
361
|
publishedSkills.map((sk) => {
|
|
362
|
+
if (sourceFilter !== "ALL" && (sk.source || "COMMUNITY") !== sourceFilter) return null;
|
|
247
363
|
const done = isInstalled(sk);
|
|
248
364
|
return el(
|
|
249
365
|
"li",
|
|
@@ -252,12 +368,23 @@ function HimarketTab(props) {
|
|
|
252
368
|
"div",
|
|
253
369
|
{ className: "hm_itemTop" },
|
|
254
370
|
el("span", { className: "hm_name" }, sk.name),
|
|
371
|
+
sourceTag(sk),
|
|
255
372
|
el("button", { className: "hm_btn", type: "button", disabled: busy || done, onClick: () => installSkill(sk.productId) }, done ? t("installed") : t("install"))
|
|
256
373
|
),
|
|
257
|
-
sk.description ? el("p", { className: "hm_desc" }, sk.description) : null
|
|
374
|
+
sk.description ? el("p", { className: "hm_desc" }, sk.description) : null,
|
|
375
|
+
overrideBlock(sk)
|
|
258
376
|
);
|
|
259
377
|
})
|
|
260
378
|
),
|
|
379
|
+
el("h3", null, t("publishTitle")),
|
|
380
|
+
el("p", { className: "hm_message" }, t("publishHint")),
|
|
381
|
+
el(
|
|
382
|
+
"div",
|
|
383
|
+
{ className: "hm_row" },
|
|
384
|
+
["pm", "dev", "qa", "leader", "newbie", "secretary", "general"].map(function(j) {
|
|
385
|
+
return el("button", { className: "hm_btn", type: "button", disabled: busy, key: j, onClick: () => publishMyJob(j) }, t("publish") + "\uFF1A" + j);
|
|
386
|
+
})
|
|
387
|
+
),
|
|
261
388
|
state.status === "error" ? el("p", { className: "hm_message", "data-error": "true" }, t("error") + "\uFF1A" + state.error) : null
|
|
262
389
|
);
|
|
263
390
|
}
|
package/lib/himarket-client.d.ts
CHANGED
|
@@ -17,6 +17,16 @@ export interface SubscribedMcp {
|
|
|
17
17
|
url: string;
|
|
18
18
|
transportType: string;
|
|
19
19
|
description: string;
|
|
20
|
+
/** 来源标签(由包装层网关注入):OFFICIAL=企业发布,COMMUNITY=员工共建。 */
|
|
21
|
+
source?: 'OFFICIAL' | 'COMMUNITY';
|
|
22
|
+
/** 覆盖的官方产品名(社区覆盖版指向它);空=独立产品。 */
|
|
23
|
+
overrides?: string;
|
|
24
|
+
/** 覆盖本产品的社区版列表(官方产品才有)。 */
|
|
25
|
+
overriddenBy?: Array<{
|
|
26
|
+
productId: string;
|
|
27
|
+
name: string;
|
|
28
|
+
publisher: string;
|
|
29
|
+
}>;
|
|
20
30
|
}
|
|
21
31
|
/** 单个已发布 Skill(market-skills 条目)。 */
|
|
22
32
|
export interface PublishedSkill {
|
|
@@ -24,6 +34,16 @@ export interface PublishedSkill {
|
|
|
24
34
|
name: string;
|
|
25
35
|
description: string;
|
|
26
36
|
skillTags: string[];
|
|
37
|
+
/** 来源标签(由包装层网关注入):OFFICIAL=企业发布,COMMUNITY=员工共建。 */
|
|
38
|
+
source?: 'OFFICIAL' | 'COMMUNITY';
|
|
39
|
+
/** 覆盖的官方产品名(社区覆盖版指向它);空=独立产品。 */
|
|
40
|
+
overrides?: string;
|
|
41
|
+
/** 覆盖本产品的社区版列表(官方产品才有)。 */
|
|
42
|
+
overriddenBy?: Array<{
|
|
43
|
+
productId: string;
|
|
44
|
+
name: string;
|
|
45
|
+
publisher: string;
|
|
46
|
+
}>;
|
|
27
47
|
}
|
|
28
48
|
export declare class HimarketError extends Error {
|
|
29
49
|
}
|
|
@@ -35,17 +55,30 @@ export declare class HimarketClient {
|
|
|
35
55
|
private readonly baseUrl;
|
|
36
56
|
private readonly username;
|
|
37
57
|
private readonly password;
|
|
58
|
+
/** 管理员账号(/admins/login 用,默认 admin);与开发者账号区分。 */
|
|
59
|
+
private readonly adminUsername;
|
|
60
|
+
private readonly adminPassword;
|
|
61
|
+
/** 开发者 token(/developers/login),sync/install 用。 */
|
|
38
62
|
private token;
|
|
63
|
+
/** 管理员 token(/admins/login),publish 用。 */
|
|
64
|
+
private adminToken;
|
|
39
65
|
private fetchFn;
|
|
40
66
|
constructor(opts: {
|
|
41
67
|
baseUrl: string;
|
|
42
68
|
username: string;
|
|
43
69
|
password: string;
|
|
70
|
+
adminUsername?: string;
|
|
71
|
+
adminPassword?: string;
|
|
44
72
|
token?: string;
|
|
73
|
+
adminToken?: string;
|
|
45
74
|
fetchFn?: typeof fetch;
|
|
46
75
|
});
|
|
47
76
|
get hasToken(): boolean;
|
|
48
77
|
get currentToken(): string;
|
|
78
|
+
/** 是否已缓存管理员 token(发布前判断)。 */
|
|
79
|
+
adminTokenMissing(): boolean;
|
|
80
|
+
/** 返回缓存的管理员 token(供发布后回写 settings)。 */
|
|
81
|
+
cachedAdminToken(): string;
|
|
49
82
|
/** 登录并缓存 token;返回 access_token。 */
|
|
50
83
|
login(): Promise<string>;
|
|
51
84
|
/** 拉取已订阅(且已批准)的 MCP 列表 + 认证头。 */
|
|
@@ -57,6 +90,27 @@ export declare class HimarketClient {
|
|
|
57
90
|
listPublishedSkills(): Promise<PublishedSkill[]>;
|
|
58
91
|
/** 下载 Skill ZIP,返回字节。 */
|
|
59
92
|
downloadSkill(productId: string): Promise<Uint8Array>;
|
|
93
|
+
/** 管理员登录并缓存 token;返回 access_token。publish 系列走管理员端点。 */
|
|
94
|
+
loginAdmin(): Promise<string>;
|
|
95
|
+
/**
|
|
96
|
+
* 发布一个岗位包 / 技能包 ZIP 到 HiMarket(管理员端点):
|
|
97
|
+
* 确保分类存在 → 建/复用产品 → 上传 zip → 发布最新 draft 版本 online → 发布到门户。
|
|
98
|
+
* 契约与 dsh-job-market/scripts/publish-job.mjs 一致(已实测跑通)。
|
|
99
|
+
*
|
|
100
|
+
* @param name 产品名(岗位 id,如 pm/dev;HiMarket 产品名唯一)
|
|
101
|
+
* @param zipBuffer 打包好的 zip 字节
|
|
102
|
+
* @param opts.portalId 发布到的门户 ID(可选,缺省跳过门户发布)
|
|
103
|
+
* @param opts.categoryName 分类名,默认「数字员工岗位」
|
|
104
|
+
*/
|
|
105
|
+
publishSkillPackage(name: string, zipBuffer: Uint8Array, opts?: {
|
|
106
|
+
portalId?: string;
|
|
107
|
+
categoryName?: string;
|
|
108
|
+
}): Promise<{
|
|
109
|
+
productId: string;
|
|
110
|
+
version: string;
|
|
111
|
+
}>;
|
|
112
|
+
/** 管理员端点通用请求:带 401 自动重登一次;解析 {code,data} 包装。 */
|
|
113
|
+
private adminRequest;
|
|
60
114
|
/** 通用请求:带 401 自动重登一次;解析 {code,data} 包装。 */
|
|
61
115
|
private request;
|
|
62
116
|
}
|
package/lib/himarket-client.js
CHANGED
|
@@ -29,13 +29,22 @@ export class HimarketClient {
|
|
|
29
29
|
baseUrl;
|
|
30
30
|
username;
|
|
31
31
|
password;
|
|
32
|
+
/** 管理员账号(/admins/login 用,默认 admin);与开发者账号区分。 */
|
|
33
|
+
adminUsername;
|
|
34
|
+
adminPassword;
|
|
35
|
+
/** 开发者 token(/developers/login),sync/install 用。 */
|
|
32
36
|
token;
|
|
37
|
+
/** 管理员 token(/admins/login),publish 用。 */
|
|
38
|
+
adminToken;
|
|
33
39
|
fetchFn;
|
|
34
40
|
constructor(opts) {
|
|
35
41
|
this.baseUrl = normalizeBaseUrl(opts.baseUrl);
|
|
36
42
|
this.username = opts.username;
|
|
37
43
|
this.password = opts.password;
|
|
44
|
+
this.adminUsername = opts.adminUsername ?? 'admin';
|
|
45
|
+
this.adminPassword = opts.adminPassword ?? '';
|
|
38
46
|
this.token = opts.token ?? '';
|
|
47
|
+
this.adminToken = opts.adminToken ?? '';
|
|
39
48
|
this.fetchFn = opts.fetchFn ?? globalThis.fetch;
|
|
40
49
|
}
|
|
41
50
|
get hasToken() {
|
|
@@ -44,6 +53,14 @@ export class HimarketClient {
|
|
|
44
53
|
get currentToken() {
|
|
45
54
|
return this.token;
|
|
46
55
|
}
|
|
56
|
+
/** 是否已缓存管理员 token(发布前判断)。 */
|
|
57
|
+
adminTokenMissing() {
|
|
58
|
+
return this.adminToken === '';
|
|
59
|
+
}
|
|
60
|
+
/** 返回缓存的管理员 token(供发布后回写 settings)。 */
|
|
61
|
+
cachedAdminToken() {
|
|
62
|
+
return this.adminToken;
|
|
63
|
+
}
|
|
47
64
|
/** 登录并缓存 token;返回 access_token。 */
|
|
48
65
|
async login() {
|
|
49
66
|
const wrapped = await this.request('/developers/login', {
|
|
@@ -97,6 +114,159 @@ export class HimarketClient {
|
|
|
97
114
|
throw new HimarketError('下载到的技能包为空');
|
|
98
115
|
return buf;
|
|
99
116
|
}
|
|
117
|
+
/** 管理员登录并缓存 token;返回 access_token。publish 系列走管理员端点。 */
|
|
118
|
+
async loginAdmin() {
|
|
119
|
+
const wrapped = await this.request('/admins/login', {
|
|
120
|
+
method: 'POST',
|
|
121
|
+
body: JSON.stringify({ username: this.adminUsername, password: this.adminPassword }),
|
|
122
|
+
auth: false,
|
|
123
|
+
});
|
|
124
|
+
const token = wrapped.access_token;
|
|
125
|
+
if (token === undefined || token === '') {
|
|
126
|
+
throw new HimarketError('管理员登录成功但未返回 access_token');
|
|
127
|
+
}
|
|
128
|
+
this.adminToken = token;
|
|
129
|
+
return token;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* 发布一个岗位包 / 技能包 ZIP 到 HiMarket(管理员端点):
|
|
133
|
+
* 确保分类存在 → 建/复用产品 → 上传 zip → 发布最新 draft 版本 online → 发布到门户。
|
|
134
|
+
* 契约与 dsh-job-market/scripts/publish-job.mjs 一致(已实测跑通)。
|
|
135
|
+
*
|
|
136
|
+
* @param name 产品名(岗位 id,如 pm/dev;HiMarket 产品名唯一)
|
|
137
|
+
* @param zipBuffer 打包好的 zip 字节
|
|
138
|
+
* @param opts.portalId 发布到的门户 ID(可选,缺省跳过门户发布)
|
|
139
|
+
* @param opts.categoryName 分类名,默认「数字员工岗位」
|
|
140
|
+
*/
|
|
141
|
+
async publishSkillPackage(name, zipBuffer, opts = {}) {
|
|
142
|
+
if (this.adminToken === '')
|
|
143
|
+
await this.loginAdmin();
|
|
144
|
+
// 1. 确保分类存在(幂等)
|
|
145
|
+
const catName = opts.categoryName ?? '数字员工岗位';
|
|
146
|
+
const cats = await this.adminRequest('/product-categories?size=100');
|
|
147
|
+
const catList = cats.content ?? [];
|
|
148
|
+
let catId = catList.find((c) => c.name === catName)?.categoryId ?? '';
|
|
149
|
+
if (catId === '') {
|
|
150
|
+
const created = await this.adminRequest('/product-categories', {
|
|
151
|
+
method: 'POST',
|
|
152
|
+
body: JSON.stringify({ name: catName, description: '可安装的数字员工岗位包:含岗位 preset 与岗位专项技能' }),
|
|
153
|
+
});
|
|
154
|
+
catId = created.categoryId ?? '';
|
|
155
|
+
if (catId === '')
|
|
156
|
+
throw new HimarketError('创建分类失败');
|
|
157
|
+
}
|
|
158
|
+
// 2. 建/复用产品(按 name 幂等)
|
|
159
|
+
const prods = await this.adminRequest(`/products?type=AGENT_SKILL&size=200`);
|
|
160
|
+
const prodList = prods.content ?? [];
|
|
161
|
+
let productId = prodList.find((p) => p.name === name)?.productId ?? '';
|
|
162
|
+
if (productId === '') {
|
|
163
|
+
const created = await this.adminRequest('/products', {
|
|
164
|
+
method: 'POST',
|
|
165
|
+
body: JSON.stringify({
|
|
166
|
+
name,
|
|
167
|
+
description: `[岗位包] ${name} 数字员工岗位`,
|
|
168
|
+
type: 'AGENT_SKILL',
|
|
169
|
+
document: `# ${name} 数字员工岗位包`,
|
|
170
|
+
autoApprove: true,
|
|
171
|
+
categories: [catId],
|
|
172
|
+
}),
|
|
173
|
+
});
|
|
174
|
+
productId = created.productId ?? '';
|
|
175
|
+
if (productId === '')
|
|
176
|
+
throw new HimarketError('创建产品失败');
|
|
177
|
+
}
|
|
178
|
+
// 3. 上传 zip(multipart/form-data: file=@zip)
|
|
179
|
+
// 文件名带时间戳:HiMarket 服务端对「同产品 + 同文件名」的上传可能判重跳过
|
|
180
|
+
// (不生成新 draft → 内容不更新)。加时间戳保证每次都是新文件名,强制服务端建新版本。
|
|
181
|
+
const uploadBody = new FormData();
|
|
182
|
+
const stamp = new Date().toISOString().replace(/[-:T]/g, '').slice(0, 14);
|
|
183
|
+
uploadBody.append('file', new Blob([zipBuffer], { type: 'application/zip' }), `${name}-${stamp}.zip`);
|
|
184
|
+
const uploadUrl = `${this.baseUrl}${API_PREFIX}/skills/${encodeURIComponent(productId)}/package`;
|
|
185
|
+
const uploadRes = await this.fetchFn(uploadUrl, {
|
|
186
|
+
method: 'POST',
|
|
187
|
+
headers: { Authorization: `Bearer ${this.adminToken}` },
|
|
188
|
+
body: uploadBody,
|
|
189
|
+
});
|
|
190
|
+
if (!uploadRes.ok) {
|
|
191
|
+
const body = await uploadRes.text().catch(() => '');
|
|
192
|
+
throw new HimarketError(`上传技能包失败(HTTP ${uploadRes.status})${body.slice(0, 200)}`);
|
|
193
|
+
}
|
|
194
|
+
const uploadJson = (await uploadRes.json().catch(() => ({ code: 'PARSE_ERROR' })));
|
|
195
|
+
if (uploadJson.code !== undefined && uploadJson.code !== 'SUCCESS') {
|
|
196
|
+
throw new HimarketError(uploadJson.message ?? '上传技能包失败');
|
|
197
|
+
}
|
|
198
|
+
// 4. 发布最新 draft 版本为 online(force)
|
|
199
|
+
// 服务端契约(SkillServiceImpl):uploadPackage 只把 zip 覆盖进 Nacos skill draft,
|
|
200
|
+
// **不会**自动在 Product 版本列表建记录。要生成可发布的版本,必须显式
|
|
201
|
+
// POST /{productId}/draft(body { baseVersion, version })创建版本记录,
|
|
202
|
+
// 再 PATCH 该 version 为 online。漏掉 createDraft 会导致:上传内容已更新但版本列表
|
|
203
|
+
// 无新 draft → 旧版本仍被下载(本 bug 曾致 secretary 更新不生效)。
|
|
204
|
+
const versions = await this.adminRequest(`/skills/${encodeURIComponent(productId)}/versions`);
|
|
205
|
+
const vlist = Array.isArray(versions) ? versions : versions;
|
|
206
|
+
const sorted = [...vlist].sort((a, b) => String(b.version).localeCompare(String(a.version)));
|
|
207
|
+
const latestOnline = [...sorted].reverse().find((v) => v.status === 'online');
|
|
208
|
+
const draft = [...sorted].reverse().find((v) => v.status === 'draft');
|
|
209
|
+
let ver = draft?.version !== undefined ? String(draft.version) : undefined;
|
|
210
|
+
if (ver === undefined) {
|
|
211
|
+
// 没有 draft 版本记录 → 显式创建一个(baseVersion=当前最高 online;version=next 递增)。
|
|
212
|
+
const baseVersion = latestOnline?.version !== undefined ? String(latestOnline.version) : undefined;
|
|
213
|
+
const nextVersion = bumpVersion(baseVersion);
|
|
214
|
+
this.adminRequest(`/skills/${encodeURIComponent(productId)}/draft`, {
|
|
215
|
+
method: 'POST',
|
|
216
|
+
body: JSON.stringify({
|
|
217
|
+
...(baseVersion !== undefined ? { baseVersion } : {}),
|
|
218
|
+
version: nextVersion,
|
|
219
|
+
}),
|
|
220
|
+
});
|
|
221
|
+
ver = nextVersion;
|
|
222
|
+
}
|
|
223
|
+
const pubResp = await this.adminRequest(`/skills/${encodeURIComponent(productId)}/versions/${encodeURIComponent(ver)}`, {
|
|
224
|
+
method: 'PATCH',
|
|
225
|
+
body: JSON.stringify({ status: 'online', force: true, updateLatestLabel: true }),
|
|
226
|
+
});
|
|
227
|
+
if (pubResp.code !== undefined && pubResp.code !== 'SUCCESS') {
|
|
228
|
+
throw new HimarketError(`发布版本失败:${pubResp.message ?? ver}`);
|
|
229
|
+
}
|
|
230
|
+
// 5. 发布到门户(可选)
|
|
231
|
+
if (opts.portalId !== undefined && opts.portalId.trim() !== '') {
|
|
232
|
+
await this.adminRequest(`/products/${encodeURIComponent(productId)}/publications`, {
|
|
233
|
+
method: 'POST',
|
|
234
|
+
body: JSON.stringify({ portalId: opts.portalId }),
|
|
235
|
+
}).catch((e) => {
|
|
236
|
+
// 门户发布失败不阻断主流程(warn 级)。
|
|
237
|
+
throw new HimarketError(`已发布版本,但发布到门户失败:${e instanceof Error ? e.message : String(e)}`);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
return { productId, version: ver };
|
|
241
|
+
}
|
|
242
|
+
/** 管理员端点通用请求:带 401 自动重登一次;解析 {code,data} 包装。 */
|
|
243
|
+
async adminRequest(path, opts = {}) {
|
|
244
|
+
const doFetch = async () => {
|
|
245
|
+
const res = await this.fetchFn(this.baseUrl + API_PREFIX + path, {
|
|
246
|
+
method: opts.method ?? 'GET',
|
|
247
|
+
headers: {
|
|
248
|
+
'Content-Type': 'application/json',
|
|
249
|
+
...(this.adminToken !== '' ? { Authorization: `Bearer ${this.adminToken}` } : {}),
|
|
250
|
+
},
|
|
251
|
+
...(opts.body !== undefined ? { body: opts.body } : {}),
|
|
252
|
+
});
|
|
253
|
+
return res;
|
|
254
|
+
};
|
|
255
|
+
let res = await doFetch();
|
|
256
|
+
if (res.status === 401) {
|
|
257
|
+
await this.loginAdmin();
|
|
258
|
+
res = await doFetch();
|
|
259
|
+
}
|
|
260
|
+
if (!res.ok) {
|
|
261
|
+
const body = await res.text().catch(() => '');
|
|
262
|
+
throw new HimarketError(`HiMarket 管理端请求失败(HTTP ${res.status})${body.slice(0, 200)}`);
|
|
263
|
+
}
|
|
264
|
+
const wrapped = (await res.json().catch(() => ({ code: 'PARSE_ERROR' })));
|
|
265
|
+
if (wrapped.code !== undefined && wrapped.code !== 'SUCCESS') {
|
|
266
|
+
throw new HimarketError(wrapped.message ?? `HiMarket 返回错误码 ${wrapped.code}`);
|
|
267
|
+
}
|
|
268
|
+
return (wrapped.data ?? wrapped);
|
|
269
|
+
}
|
|
100
270
|
/** 通用请求:带 401 自动重登一次;解析 {code,data} 包装。 */
|
|
101
271
|
async request(path, opts) {
|
|
102
272
|
const doFetch = async () => {
|
|
@@ -126,4 +296,14 @@ export class HimarketClient {
|
|
|
126
296
|
return (wrapped.data ?? wrapped);
|
|
127
297
|
}
|
|
128
298
|
}
|
|
299
|
+
/** semver 递增:0.0.1 → 0.0.2;无 base 时返回 0.0.1。 */
|
|
300
|
+
function bumpVersion(base) {
|
|
301
|
+
if (base === undefined || base.trim() === '')
|
|
302
|
+
return '0.0.1';
|
|
303
|
+
const parts = base.trim().split('.').map((p) => parseInt(p, 10) || 0);
|
|
304
|
+
while (parts.length < 3)
|
|
305
|
+
parts.push(0);
|
|
306
|
+
const patch = (parts[2] ?? 0) + 1;
|
|
307
|
+
return `${parts[0] ?? 0}.${parts[1] ?? 0}.${patch}`;
|
|
308
|
+
}
|
|
129
309
|
//# sourceMappingURL=himarket-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"himarket-client.js","sourceRoot":"","sources":["../src/himarket-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"himarket-client.js","sourceRoot":"","sources":["../src/himarket-client.ts"],"names":[],"mappings":"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"}
|