@xihe-lab/tapd-core 2.0.2 → 2.1.0-rc.1
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/registry/toolsets.d.ts +45 -0
- package/dist/registry/toolsets.d.ts.map +1 -0
- package/dist/registry/toolsets.js +153 -0
- package/dist/registry/toolsets.js.map +1 -0
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export type { BatchDegradedResult } from './tools/utility.js';
|
|
|
6
6
|
export { allTools } from './tools/index.js';
|
|
7
7
|
export { ToolRegistry, type Entry, type ExecContext, type AuditEvent, type CliErrorCode, type ExecResult, type DerivedCommand, } from './registry/registry.js';
|
|
8
8
|
export { resolveWrite } from './registry/write-policy.js';
|
|
9
|
+
export { DEFAULT_TOOLSETS, TOOLSET_DEFINITIONS, resolveStartupTools, toolsetOf, type ResolveStartupToolsResult, type ToolsetDefinition, } from './registry/toolsets.js';
|
|
9
10
|
export { buildAdvisorIndex, recommend, type AdvisorEntry, type AdvisorHit, } from './advisor/index.js';
|
|
10
11
|
export { deriveCommand, type DerivedCommandParts } from './registry/derive-command.js';
|
|
11
12
|
export { MANUAL_CLI_META, EXPLICIT_WRITE } from './registry/cli-meta.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,eAAe,EACf,KAAK,UAAU,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,eAAe,EACf,KAAK,UAAU,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { CACHE_TTL_MS, cacheStats, invalidateCache, } from './cache/read-cache.j
|
|
|
4
4
|
export { allTools } from './tools/index.js';
|
|
5
5
|
export { ToolRegistry, } from './registry/registry.js';
|
|
6
6
|
export { resolveWrite } from './registry/write-policy.js';
|
|
7
|
+
export { DEFAULT_TOOLSETS, TOOLSET_DEFINITIONS, resolveStartupTools, toolsetOf, } from './registry/toolsets.js';
|
|
7
8
|
export { buildAdvisorIndex, recommend, } from './advisor/index.js';
|
|
8
9
|
export { deriveCommand } from './registry/derive-command.js';
|
|
9
10
|
export { MANUAL_CLI_META, EXPLICIT_WRITE } from './registry/cli-meta.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GAMvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,YAAY,GAOb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,SAAS,GAGV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAA4B,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,GAQX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAA+D,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAyB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GAMvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,YAAY,GAOb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,GAGV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,SAAS,GAGV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAA4B,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,GAQX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAA+D,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAyB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P1-1/P1-2(迭代 1139814312001000122 · FSD §3.4):工具集模型。
|
|
3
|
+
*
|
|
4
|
+
* 216 个工具按 27 个域分组(域文件一一对应,每工具必属一域,单测锚定),
|
|
5
|
+
* 支持按域裁剪 MCP 启动注册面:
|
|
6
|
+
* - 默认集 = 工作台 8 域 85 工具(workspace/iteration/user/story/bug/task/comment/utility)
|
|
7
|
+
* - `TAPD_TOOLSETS=<域,…>`:在默认集之上追加域;`all` = 全量兜底;未知域告警忽略
|
|
8
|
+
* - `TAPD_TOOLS=<工具,…>`:白名单回补(并集语义,`tapd_` 前缀可省略)
|
|
9
|
+
*
|
|
10
|
+
* core 是库:非法输入只进 warnings 数组,由调用方决定输出渠道(不写 stderr)。
|
|
11
|
+
* 默认挂载 ~20k token(-55%)的目标即由此模型 + mcp 侧 discover 元工具实现。
|
|
12
|
+
*/
|
|
13
|
+
import type { ToolDef } from '../types.js';
|
|
14
|
+
/** 工具集定义(FSD §3.4 形状):id / 展示名 / 成员工具名列表 */
|
|
15
|
+
export interface ToolsetDefinition {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly label: string;
|
|
18
|
+
readonly tools: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
/** 全部工具集定义(27 域, discover 元工具据此枚举路由) */
|
|
21
|
+
export declare const TOOLSET_DEFINITIONS: readonly ToolsetDefinition[];
|
|
22
|
+
/**
|
|
23
|
+
* 默认工具集:工作台 8 域(85 工具)。未设 TAPD_TOOLSETS/TAPD_TOOLS 时
|
|
24
|
+
* MCP 启动只注册这些域;其余域经 tapd_discover_tools 按需激活。
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_TOOLSETS: readonly string[];
|
|
27
|
+
/** 查询工具所属工具集 id;未知工具返回 undefined */
|
|
28
|
+
export declare function toolsetOf(toolName: string): string | undefined;
|
|
29
|
+
/** resolveStartupTools 的返回形状 */
|
|
30
|
+
export interface ResolveStartupToolsResult {
|
|
31
|
+
/** 启动即注册的工具(保持 allTools 定义顺序,确定性输出) */
|
|
32
|
+
readonly tools: readonly ToolDef[];
|
|
33
|
+
/** 生效的工具集 id(TOOLSET_DEFINITIONS 顺序;含默认集,已去重) */
|
|
34
|
+
readonly toolsets: readonly string[];
|
|
35
|
+
/** 非法输入告警(未知域/未知工具);调用方决定输出渠道 */
|
|
36
|
+
readonly warnings: readonly string[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 解析启动注册面(P1-2):默认集恒在,TAPD_TOOLSETS 追加域(`all` 全量),
|
|
40
|
+
* TAPD_TOOLS 白名单回补,并集语义。未知输入告警忽略,不抛错。
|
|
41
|
+
*
|
|
42
|
+
* @param env 环境变量来源(默认 process.env;测试注入用)
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveStartupTools(env?: Record<string, string | undefined>): ResolveStartupToolsResult;
|
|
45
|
+
//# sourceMappingURL=toolsets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolsets.d.ts","sourceRoot":"","sources":["../../src/registry/toolsets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA8B3C,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAuCD,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAE3D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAS7C,CAAC;AAaF,oCAAoC;AACpC,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,gCAAgC;AAChC,MAAM,WAAW,yBAAyB;IACxC,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAQD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,yBAAyB,CAsC3B"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P1-1/P1-2(迭代 1139814312001000122 · FSD §3.4):工具集模型。
|
|
3
|
+
*
|
|
4
|
+
* 216 个工具按 27 个域分组(域文件一一对应,每工具必属一域,单测锚定),
|
|
5
|
+
* 支持按域裁剪 MCP 启动注册面:
|
|
6
|
+
* - 默认集 = 工作台 8 域 85 工具(workspace/iteration/user/story/bug/task/comment/utility)
|
|
7
|
+
* - `TAPD_TOOLSETS=<域,…>`:在默认集之上追加域;`all` = 全量兜底;未知域告警忽略
|
|
8
|
+
* - `TAPD_TOOLS=<工具,…>`:白名单回补(并集语义,`tapd_` 前缀可省略)
|
|
9
|
+
*
|
|
10
|
+
* core 是库:非法输入只进 warnings 数组,由调用方决定输出渠道(不写 stderr)。
|
|
11
|
+
* 默认挂载 ~20k token(-55%)的目标即由此模型 + mcp 侧 discover 元工具实现。
|
|
12
|
+
*/
|
|
13
|
+
import { allTools } from '../tools/index.js';
|
|
14
|
+
import { workspaceTools } from '../tools/workspace.js';
|
|
15
|
+
import { iterationTools } from '../tools/iteration.js';
|
|
16
|
+
import { userTools } from '../tools/user.js';
|
|
17
|
+
import { storyTools } from '../tools/story.js';
|
|
18
|
+
import { bugTools } from '../tools/bug.js';
|
|
19
|
+
import { taskTools } from '../tools/task.js';
|
|
20
|
+
import { commentTools } from '../tools/comment.js';
|
|
21
|
+
import { utilityTools } from '../tools/utility.js';
|
|
22
|
+
import { timesheetTools } from '../tools/timesheet.js';
|
|
23
|
+
import { workflowTools } from '../tools/workflow.js';
|
|
24
|
+
import { settingsTools } from '../tools/settings.js';
|
|
25
|
+
import { testTools } from '../tools/test.js';
|
|
26
|
+
import { wikiTools } from '../tools/wiki.js';
|
|
27
|
+
import { releaseTools } from '../tools/release.js';
|
|
28
|
+
import { attachmentTools } from '../tools/attachment.js';
|
|
29
|
+
import { miniItemTools } from '../tools/mini-item.js';
|
|
30
|
+
import { miniWorkspaceTools } from '../tools/mini-workspace.js';
|
|
31
|
+
import { miniCommentTools } from '../tools/mini-comment.js';
|
|
32
|
+
import { changeTools } from '../tools/changes.js';
|
|
33
|
+
import { customFieldTools } from '../tools/custom-fields.js';
|
|
34
|
+
import { relationTools } from '../tools/relations.js';
|
|
35
|
+
import { boardTools } from '../tools/board.js';
|
|
36
|
+
import { sourceTools } from '../tools/source.js';
|
|
37
|
+
import { programTools } from '../tools/program.js';
|
|
38
|
+
import { reportTools } from '../tools/report.js';
|
|
39
|
+
import { imageTools } from '../tools/image.js';
|
|
40
|
+
import { mediaTools } from '../tools/media.js';
|
|
41
|
+
/** 域 → 工具集注册表(顺序即 discover 展示顺序;新增域文件须在此登记,漏登即测试红) */
|
|
42
|
+
const DOMAIN_SOURCES = [
|
|
43
|
+
{ id: 'workspace', label: '工作空间', tools: workspaceTools },
|
|
44
|
+
{ id: 'iteration', label: '迭代', tools: iterationTools },
|
|
45
|
+
{ id: 'user', label: '用户', tools: userTools },
|
|
46
|
+
{ id: 'story', label: '需求', tools: storyTools },
|
|
47
|
+
{ id: 'bug', label: '缺陷', tools: bugTools },
|
|
48
|
+
{ id: 'task', label: '任务', tools: taskTools },
|
|
49
|
+
{ id: 'comment', label: '评论', tools: commentTools },
|
|
50
|
+
{ id: 'utility', label: '工具箱(富文本/批量)', tools: utilityTools },
|
|
51
|
+
{ id: 'timesheet', label: '工时', tools: timesheetTools },
|
|
52
|
+
{ id: 'workflow', label: '工作流', tools: workflowTools },
|
|
53
|
+
{ id: 'settings', label: '项目设置', tools: settingsTools },
|
|
54
|
+
{ id: 'test', label: '测试(用例/计划)', tools: testTools },
|
|
55
|
+
{ id: 'wiki', label: '知识库', tools: wikiTools },
|
|
56
|
+
{ id: 'release', label: '发布计划', tools: releaseTools },
|
|
57
|
+
{ id: 'attachment', label: '附件', tools: attachmentTools },
|
|
58
|
+
{ id: 'mini-item', label: '轻协作工作项', tools: miniItemTools },
|
|
59
|
+
{ id: 'mini-workspace', label: '轻协作项目', tools: miniWorkspaceTools },
|
|
60
|
+
{ id: 'mini-comment', label: '轻协作评论', tools: miniCommentTools },
|
|
61
|
+
{ id: 'changes', label: '变更历史', tools: changeTools },
|
|
62
|
+
{ id: 'custom-fields', label: '自定义字段', tools: customFieldTools },
|
|
63
|
+
{ id: 'relations', label: '需求前后置关系', tools: relationTools },
|
|
64
|
+
{ id: 'board', label: '看板', tools: boardTools },
|
|
65
|
+
{ id: 'source', label: '代码提交', tools: sourceTools },
|
|
66
|
+
{ id: 'program', label: '项目集', tools: programTools },
|
|
67
|
+
{ id: 'report', label: '报表', tools: reportTools },
|
|
68
|
+
{ id: 'image', label: '图片', tools: imageTools },
|
|
69
|
+
{ id: 'media', label: '媒体素材', tools: mediaTools },
|
|
70
|
+
];
|
|
71
|
+
/** 全部工具集定义(27 域, discover 元工具据此枚举路由) */
|
|
72
|
+
export const TOOLSET_DEFINITIONS = DOMAIN_SOURCES.map(({ id, label, tools }) => ({ id, label, tools: tools.map((t) => t.name) }));
|
|
73
|
+
/**
|
|
74
|
+
* 默认工具集:工作台 8 域(85 工具)。未设 TAPD_TOOLSETS/TAPD_TOOLS 时
|
|
75
|
+
* MCP 启动只注册这些域;其余域经 tapd_discover_tools 按需激活。
|
|
76
|
+
*/
|
|
77
|
+
export const DEFAULT_TOOLSETS = [
|
|
78
|
+
'workspace',
|
|
79
|
+
'iteration',
|
|
80
|
+
'user',
|
|
81
|
+
'story',
|
|
82
|
+
'bug',
|
|
83
|
+
'task',
|
|
84
|
+
'comment',
|
|
85
|
+
'utility',
|
|
86
|
+
];
|
|
87
|
+
const TOOLSET_BY_ID = new Map(TOOLSET_DEFINITIONS.map((d) => [d.id, d]));
|
|
88
|
+
/** 工具名 → 所属工具集 id(全覆盖唯一性由单测锚定) */
|
|
89
|
+
const TOOLSET_OF = new Map();
|
|
90
|
+
for (const def of TOOLSET_DEFINITIONS) {
|
|
91
|
+
for (const name of def.tools)
|
|
92
|
+
TOOLSET_OF.set(name, def.id);
|
|
93
|
+
}
|
|
94
|
+
/** 全量工具名集合(env 白名单与测试使用) */
|
|
95
|
+
const ALL_TOOL_NAMES = new Set(TOOLSET_OF.keys());
|
|
96
|
+
/** 查询工具所属工具集 id;未知工具返回 undefined */
|
|
97
|
+
export function toolsetOf(toolName) {
|
|
98
|
+
return TOOLSET_OF.get(toolName);
|
|
99
|
+
}
|
|
100
|
+
/** env 白名单条目归一:小写化,`tapd_` 前缀可省略 */
|
|
101
|
+
function normalizeToolName(token) {
|
|
102
|
+
const raw = token.trim().toLowerCase();
|
|
103
|
+
return raw.startsWith('tapd_') ? raw : `tapd_${raw}`;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 解析启动注册面(P1-2):默认集恒在,TAPD_TOOLSETS 追加域(`all` 全量),
|
|
107
|
+
* TAPD_TOOLS 白名单回补,并集语义。未知输入告警忽略,不抛错。
|
|
108
|
+
*
|
|
109
|
+
* @param env 环境变量来源(默认 process.env;测试注入用)
|
|
110
|
+
*/
|
|
111
|
+
export function resolveStartupTools(env = process.env) {
|
|
112
|
+
const warnings = [];
|
|
113
|
+
const rawToolsets = (env.TAPD_TOOLSETS ?? '').trim();
|
|
114
|
+
const rawTools = (env.TAPD_TOOLS ?? '').trim();
|
|
115
|
+
const activeIds = new Set(DEFAULT_TOOLSETS);
|
|
116
|
+
for (const token of rawToolsets.split(/[,\s]+/).filter(Boolean)) {
|
|
117
|
+
const id = token.toLowerCase();
|
|
118
|
+
if (id === 'all') {
|
|
119
|
+
for (const def of TOOLSET_DEFINITIONS)
|
|
120
|
+
activeIds.add(def.id);
|
|
121
|
+
}
|
|
122
|
+
else if (TOOLSET_BY_ID.has(id)) {
|
|
123
|
+
activeIds.add(id);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
const available = TOOLSET_DEFINITIONS.map((d) => d.id).join(', ');
|
|
127
|
+
warnings.push(`TAPD_TOOLSETS: 未知工具集「${token}」已忽略(可用值: ${available},或 all)`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const extraTools = new Set();
|
|
131
|
+
for (const token of rawTools.split(/[,\s]+/).filter(Boolean)) {
|
|
132
|
+
const name = normalizeToolName(token);
|
|
133
|
+
if (ALL_TOOL_NAMES.has(name)) {
|
|
134
|
+
extraTools.add(name);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
warnings.push(`TAPD_TOOLS: 未知工具「${token}」已忽略`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const selectedNames = new Set();
|
|
141
|
+
for (const def of TOOLSET_DEFINITIONS) {
|
|
142
|
+
if (!activeIds.has(def.id))
|
|
143
|
+
continue;
|
|
144
|
+
for (const name of def.tools)
|
|
145
|
+
selectedNames.add(name);
|
|
146
|
+
}
|
|
147
|
+
for (const name of extraTools)
|
|
148
|
+
selectedNames.add(name);
|
|
149
|
+
const tools = allTools.filter((t) => selectedNames.has(t.name));
|
|
150
|
+
const toolsets = TOOLSET_DEFINITIONS.filter((d) => activeIds.has(d.id)).map((d) => d.id);
|
|
151
|
+
return { tools, toolsets, warnings };
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=toolsets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolsets.js","sourceRoot":"","sources":["../../src/registry/toolsets.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xihe-lab/tapd-core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.1.0-rc.1",
|
|
4
4
|
"description": "Shared kernel for TAPD tools: tool definitions, TapdClient and registry, shared by CLI and MCP entries",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc -p tsconfig.build.json",
|
|
18
18
|
"type-check": "tsc --noEmit",
|
|
19
|
-
"test": "tsx src/registry/long-id-guard.test.ts && tsx src/registry/registry.test.ts && tsx src/registry/mention-guard.test.ts && tsx src/config/config.test.ts && tsx src/schema/export.test.ts && tsx src/advisor/advisor.test.ts && tsx src/tools/md-to-html.test.ts && tsx src/registry/richtext.test.ts && tsx src/tools/attachment.test.ts && tsx src/tools/richtext-wiring.test.ts && tsx src/tools/param-translation.test.ts && tsx src/schema/slim.test.ts",
|
|
19
|
+
"test": "tsx src/registry/long-id-guard.test.ts && tsx src/registry/registry.test.ts && tsx src/registry/mention-guard.test.ts && tsx src/config/config.test.ts && tsx src/schema/export.test.ts && tsx src/advisor/advisor.test.ts && tsx src/tools/md-to-html.test.ts && tsx src/registry/richtext.test.ts && tsx src/tools/attachment.test.ts && tsx src/tools/richtext-wiring.test.ts && tsx src/tools/param-translation.test.ts && tsx src/schema/slim.test.ts && tsx src/registry/toolsets.test.ts",
|
|
20
20
|
"debug:commands": "tsx src/registry/debug-commands.ts",
|
|
21
21
|
"measure:payload": "tsx scripts/measure-tool-payload.ts"
|
|
22
22
|
},
|