@weibaohui/experts-management 0.1.2 → 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/README.md +3 -1
- package/client/bundle.js +8 -3
- package/client/index.js +8 -3
- package/docs/demo.gif +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
[](https://github.com/topics/dsh-plugin)
|
|
4
4
|
[](https://www.npmjs.com/package/@weibaohui/experts-management)
|
|
5
5
|
|
|
6
|
-
**专家市场插件**:管理 ntd 格式的专家与专家团队(单个专家 / 多人团队),浏览安装 50+ 内置专家;每个专家注册为「仅用户可调用」的技能,在对话输入框输入 `/expert
|
|
6
|
+
**专家市场插件**:管理 ntd 格式的专家与专家团队(单个专家 / 多人团队),浏览安装 50+ 内置专家;每个专家注册为「仅用户可调用」的技能,在对话输入框输入 `/expert-名称`(或点 composer 工具行的「+专家」按钮)即可以该专家的身份执行任务。
|
|
7
|
+
|
|
8
|
+

|
|
7
9
|
|
|
8
10
|
## 核心功能
|
|
9
11
|
|
package/client/bundle.js
CHANGED
|
@@ -132,6 +132,7 @@ window.__ModuleLoader__.load({
|
|
|
132
132
|
loadFailed: '加载失败',
|
|
133
133
|
noDescription: '暂无描述',
|
|
134
134
|
avatarLoadFailed: '头像加载失败',
|
|
135
|
+
menuGroup: '专家',
|
|
135
136
|
pickExpert: '+专家',
|
|
136
137
|
pickExpertTitle: '选择一位专家,以该专家的身份执行本条任务',
|
|
137
138
|
}
|
|
@@ -196,6 +197,7 @@ window.__ModuleLoader__.load({
|
|
|
196
197
|
loadFailed: 'Load failed',
|
|
197
198
|
noDescription: 'No description',
|
|
198
199
|
avatarLoadFailed: 'Avatar failed to load',
|
|
200
|
+
menuGroup: 'Experts',
|
|
199
201
|
pickExpert: '+ Expert',
|
|
200
202
|
pickExpertTitle: 'Pick an expert to handle this message in their persona',
|
|
201
203
|
}
|
|
@@ -321,8 +323,10 @@ window.__ModuleLoader__.load({
|
|
|
321
323
|
return expertRoster
|
|
322
324
|
}
|
|
323
325
|
|
|
324
|
-
/** InputTriggerSource(ui-skill 同构):pick 落 `/expert-<name> ` 字面量,宿主手势边界注入角色。
|
|
325
|
-
|
|
326
|
+
/** InputTriggerSource(ui-skill 同构):pick 落 `/expert-<name> ` 字面量,宿主手势边界注入角色。
|
|
327
|
+
* 候选声明 section 取代源标题行——slash.menu 命名空间已被宿主注册,无法叠加本地化。 */
|
|
328
|
+
function makeExpertSource(t) {
|
|
329
|
+
const tt = t || ((key) => EN[key] ?? key)
|
|
326
330
|
return {
|
|
327
331
|
trigger: '/',
|
|
328
332
|
name: EXPERT_SOURCE_NAME,
|
|
@@ -331,6 +335,7 @@ window.__ModuleLoader__.load({
|
|
|
331
335
|
const rows = (await fetchRoster()) || []
|
|
332
336
|
if (signal && signal.aborted) return []
|
|
333
337
|
return rows.filter((r) => r.name.startsWith(String(query || ''))).slice(0, 80)
|
|
338
|
+
.map((r) => ({ ...r, section: tt('menuGroup') }))
|
|
334
339
|
},
|
|
335
340
|
warm() { void fetchRoster() },
|
|
336
341
|
lexicon() {
|
|
@@ -720,7 +725,7 @@ window.__ModuleLoader__.load({
|
|
|
720
725
|
ctx.inject(['inputTriggers', 'sessions'], (scope) => {
|
|
721
726
|
composerScope = scope
|
|
722
727
|
if (scope && scope.inputTriggers && typeof scope.inputTriggers.registerSource === 'function') {
|
|
723
|
-
ctx.effect(() => scope.inputTriggers.registerSource(makeExpertSource()), 'experts-management: expert trigger source')
|
|
728
|
+
ctx.effect(() => scope.inputTriggers.registerSource(makeExpertSource(t)), 'experts-management: expert trigger source')
|
|
724
729
|
}
|
|
725
730
|
})
|
|
726
731
|
}
|
package/client/index.js
CHANGED
|
@@ -122,6 +122,7 @@ const ZH = {
|
|
|
122
122
|
loadFailed: '加载失败',
|
|
123
123
|
noDescription: '暂无描述',
|
|
124
124
|
avatarLoadFailed: '头像加载失败',
|
|
125
|
+
menuGroup: '专家',
|
|
125
126
|
pickExpert: '+专家',
|
|
126
127
|
pickExpertTitle: '选择一位专家,以该专家的身份执行本条任务',
|
|
127
128
|
}
|
|
@@ -186,6 +187,7 @@ const EN = {
|
|
|
186
187
|
loadFailed: 'Load failed',
|
|
187
188
|
noDescription: 'No description',
|
|
188
189
|
avatarLoadFailed: 'Avatar failed to load',
|
|
190
|
+
menuGroup: 'Experts',
|
|
189
191
|
pickExpert: '+ Expert',
|
|
190
192
|
pickExpertTitle: 'Pick an expert to handle this message in their persona',
|
|
191
193
|
}
|
|
@@ -311,8 +313,10 @@ async function fetchRoster(force) {
|
|
|
311
313
|
return expertRoster
|
|
312
314
|
}
|
|
313
315
|
|
|
314
|
-
/** InputTriggerSource(ui-skill 同构):pick 落 `/expert-<name> ` 字面量,宿主手势边界注入角色。
|
|
315
|
-
|
|
316
|
+
/** InputTriggerSource(ui-skill 同构):pick 落 `/expert-<name> ` 字面量,宿主手势边界注入角色。
|
|
317
|
+
* 候选声明 section 取代源标题行——slash.menu 命名空间已被宿主注册,无法叠加本地化。 */
|
|
318
|
+
function makeExpertSource(t) {
|
|
319
|
+
const tt = t || ((key) => EN[key] ?? key)
|
|
316
320
|
return {
|
|
317
321
|
trigger: '/',
|
|
318
322
|
name: EXPERT_SOURCE_NAME,
|
|
@@ -321,6 +325,7 @@ function makeExpertSource() {
|
|
|
321
325
|
const rows = (await fetchRoster()) || []
|
|
322
326
|
if (signal && signal.aborted) return []
|
|
323
327
|
return rows.filter((r) => r.name.startsWith(String(query || ''))).slice(0, 80)
|
|
328
|
+
.map((r) => ({ ...r, section: tt('menuGroup') }))
|
|
324
329
|
},
|
|
325
330
|
warm() { void fetchRoster() },
|
|
326
331
|
lexicon() {
|
|
@@ -710,7 +715,7 @@ module.exports = {
|
|
|
710
715
|
ctx.inject(['inputTriggers', 'sessions'], (scope) => {
|
|
711
716
|
composerScope = scope
|
|
712
717
|
if (scope && scope.inputTriggers && typeof scope.inputTriggers.registerSource === 'function') {
|
|
713
|
-
ctx.effect(() => scope.inputTriggers.registerSource(makeExpertSource()), 'experts-management: expert trigger source')
|
|
718
|
+
ctx.effect(() => scope.inputTriggers.registerSource(makeExpertSource(t)), 'experts-management: expert trigger source')
|
|
714
719
|
}
|
|
715
720
|
})
|
|
716
721
|
}
|
package/docs/demo.gif
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weibaohui/experts-management",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "dsh 插件 · 专家市场:管理 ntd 格式的专家与专家团队(plugin.json + Agent MD + 技能集),浏览/安装 50+ 内置专家市场;每个专家注册为「仅用户可调用」的技能,在对话输入框用 /expert-名称 即可以该专家的身份执行任务(宿主确定性注入角色定义与技能清单,不占用模型目录 token)。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|