chore: audit public exports — #273

Closed
opened 2026-05-16 06:35:34 +00:00 by xiaoju · 1 comment
Owner

背景

Bundle 全部自包含后(#270),审计各 package 的 public API,识别未被其他 package import 的符号。

未被使用 ≠ 应该删除。这些是收敛候选,需逐个判断:

  • 是否为外部 bundle 作者需要的公共 API
  • 是否只在包内部使用
  • 是否为冗余 re-export

统计

总 export 外部使用 未使用 使用率
43 40 3 93%

未被外部 import 的符号(候选)

备注

目前从 全量 re-export protocol 的类型(包括 、 等)。需要先将 runtime 的 re-export 收窄为 curated subset,才能安全收敛 protocol 的导出。

依赖:先完成 runtime types.ts 改造 → 再收窄 protocol index.ts。

## 背景 Bundle 全部自包含后(#270),审计各 package 的 public API,识别未被其他 package import 的符号。 未被使用 ≠ 应该删除。这些是收敛候选,需逐个判断: - 是否为外部 bundle 作者需要的公共 API - 是否只在包内部使用 - 是否为冗余 re-export ## 统计 | 总 export | 外部使用 | 未使用 | 使用率 | |----------|---------|--------|-------| | 43 | 40 | 3 | 93% | ## 未被外部 import 的符号(候选) - [ ] - [ ] - [ ] ## 备注 目前从 全量 re-export protocol 的类型(包括 、 等)。需要先将 runtime 的 re-export 收窄为 curated subset,才能安全收敛 protocol 的导出。 依赖:先完成 runtime types.ts 改造 → 再收窄 protocol index.ts。
Author
Owner

\u53ef\u8fbe\u6027\u5206\u6790 \u2014 @uncaged/workflow-protocol\n\n### \u5305\u804c\u8d23\n\n**\u7c7b\u578b\u57fa\u5ea7 + \u534f\u8bae\u5e38\u91cf\u3002** \u5b9a\u4e49\u6574\u4e2a\u7cfb\u7edf\u7684\u5951\u7ea6\u7c7b\u578b\u3002\u6240\u6709\u5176\u4ed6\u5305\u7684\u7c7b\u578b\u6700\u7ec8\u6e90\u81ea\u8fd9\u91cc\u3002\n\n### \u53d7\u4f17\n\n\u6240\u6709\u5305\u90fd\u4f9d\u8d56 protocol\uff0c\u4f46\u76f4\u63a5\u9762\u5411\u7684\u53d7\u4f17\u662f bundle \u4f5c\u8005 \u548c \u7cfb\u7edf\u5185\u90e8\u3002\n\n### \u53ef\u8fbe\u6027\u5224\u5b9a\n\n\u4ece Worker \u5e94\u7528\u5165\u53e3\uff0c\u6cbf bundle \u4f5c\u8005\u7684\u5b9a\u5236\u6811\u5206\u6790\uff1a\n\n**\u2705 \u53ef\u8fbe \u2014 \u4fdd\u7559\uff1a**\n- RoleFn \u2014 bundle \u4f5c\u8005\u5b9e\u73b0 role \u7684\u7b7e\u540d\uff08Layer 1\uff09\n- RoleDefinition \u2014 WorkflowDefinition \u7684\u7ec4\u6210\u90e8\u5206\uff08Layer 1\uff09\n- ModeratorCondition \u2014 ModeratorTable \u7684 value \u7c7b\u578b\uff08Layer 1\uff09\n- ModeratorContext \u2014 ModeratorCondition \u51fd\u6570\u7684\u53c2\u6570\uff08Layer 1\uff09\n- FALLBACK \u2014 \u534f\u8bae\u5e38\u91cf\uff0c\u4e0e START/END \u540c\u7ea7\uff0c\u7528\u4e8e ModeratorTable\uff08Layer 1\uff09\n- WorkflowRoleDescriptor \u2014 WorkflowDescriptor \u7684\u7ec4\u6210\u90e8\u5206\uff08Layer 5\uff09\n- WorkflowRoleSchema \u2014 WorkflowRoleDescriptor \u7684\u7ec4\u6210\u90e8\u5206\uff08Layer 5\uff09\n- RoleOutput \u2014 AdapterFn \u8fd4\u56de\u503c\u7684\u7ec4\u6210\u90e8\u5206\uff0cagent \u5b9e\u73b0\u8005\u9700\u8981\uff08Layer 2-3\uff09\n\n**\u274c \u4e0d\u53ef\u8fbe \u2014 \u5185\u90e8\u5316\u5019\u9009\uff1a**\n- AdapterBinding \u2014 \u5185\u90e8\u7ed1\u5b9a\u7c7b\u578b\uff0c\u4e0d\u5728\u4efb\u4f55\u516c\u5171\u7b7e\u540d\u4e2d\n- AdvanceOutcome \u2014 engine \u5185\u90e8\u72b6\u6001\u673a\u63a8\u8fdb\u7ed3\u679c\n- AgentContext \u2014 \u88ab ThreadContext \u53d6\u4ee3\uff0c\u68c0\u67e5\u662f\u5426\u6b7b\u4ee3\u7801\n- AgentFn \u2014 \u540c\u4e0a\uff0c\u68c0\u67e5\u662f\u5426\u4e0e AdapterFn \u5197\u4f59\n- ExtractFn \u2014 engine \u5185\u90e8 extract \u673a\u5236\n- ExtractResult \u2014 \u540c\u4e0a\n- ResolvedModel \u2014 register/execute \u5185\u90e8\u7684\u6a21\u578b\u89e3\u6790\u7ed3\u679c\n- StartStep \u2014 engine \u5185\u90e8\u7c7b\u578b\n- WorkflowResult \u2014 engine \u5185\u90e8\u7c7b\u578b\uff08bundle \u4f5c\u8005\u770b\u5230\u7684\u662f WorkflowCompletion\uff09\n\n\u2014 \u5c0f\u6a58 \ud83c\udf4a\uff08NEKO Team\uff09

## \u53ef\u8fbe\u6027\u5206\u6790 \u2014 `@uncaged/workflow-protocol`\n\n### \u5305\u804c\u8d23\n\n**\u7c7b\u578b\u57fa\u5ea7 + \u534f\u8bae\u5e38\u91cf\u3002** \u5b9a\u4e49\u6574\u4e2a\u7cfb\u7edf\u7684\u5951\u7ea6\u7c7b\u578b\u3002\u6240\u6709\u5176\u4ed6\u5305\u7684\u7c7b\u578b\u6700\u7ec8\u6e90\u81ea\u8fd9\u91cc\u3002\n\n### \u53d7\u4f17\n\n\u6240\u6709\u5305\u90fd\u4f9d\u8d56 protocol\uff0c\u4f46\u76f4\u63a5\u9762\u5411\u7684\u53d7\u4f17\u662f **bundle \u4f5c\u8005** \u548c **\u7cfb\u7edf\u5185\u90e8**\u3002\n\n### \u53ef\u8fbe\u6027\u5224\u5b9a\n\n\u4ece Worker \u5e94\u7528\u5165\u53e3\uff0c\u6cbf bundle \u4f5c\u8005\u7684\u5b9a\u5236\u6811\u5206\u6790\uff1a\n\n**\u2705 \u53ef\u8fbe \u2014 \u4fdd\u7559\uff1a**\n- `RoleFn` \u2014 bundle \u4f5c\u8005\u5b9e\u73b0 role \u7684\u7b7e\u540d\uff08Layer 1\uff09\n- `RoleDefinition` \u2014 WorkflowDefinition \u7684\u7ec4\u6210\u90e8\u5206\uff08Layer 1\uff09\n- `ModeratorCondition` \u2014 ModeratorTable \u7684 value \u7c7b\u578b\uff08Layer 1\uff09\n- `ModeratorContext` \u2014 ModeratorCondition \u51fd\u6570\u7684\u53c2\u6570\uff08Layer 1\uff09\n- `FALLBACK` \u2014 \u534f\u8bae\u5e38\u91cf\uff0c\u4e0e START/END \u540c\u7ea7\uff0c\u7528\u4e8e ModeratorTable\uff08Layer 1\uff09\n- `WorkflowRoleDescriptor` \u2014 WorkflowDescriptor \u7684\u7ec4\u6210\u90e8\u5206\uff08Layer 5\uff09\n- `WorkflowRoleSchema` \u2014 WorkflowRoleDescriptor \u7684\u7ec4\u6210\u90e8\u5206\uff08Layer 5\uff09\n- `RoleOutput` \u2014 AdapterFn \u8fd4\u56de\u503c\u7684\u7ec4\u6210\u90e8\u5206\uff0cagent \u5b9e\u73b0\u8005\u9700\u8981\uff08Layer 2-3\uff09\n\n**\u274c \u4e0d\u53ef\u8fbe \u2014 \u5185\u90e8\u5316\u5019\u9009\uff1a**\n- `AdapterBinding` \u2014 \u5185\u90e8\u7ed1\u5b9a\u7c7b\u578b\uff0c\u4e0d\u5728\u4efb\u4f55\u516c\u5171\u7b7e\u540d\u4e2d\n- `AdvanceOutcome` \u2014 engine \u5185\u90e8\u72b6\u6001\u673a\u63a8\u8fdb\u7ed3\u679c\n- `AgentContext` \u2014 \u88ab `ThreadContext` \u53d6\u4ee3\uff0c\u68c0\u67e5\u662f\u5426\u6b7b\u4ee3\u7801\n- `AgentFn` \u2014 \u540c\u4e0a\uff0c\u68c0\u67e5\u662f\u5426\u4e0e `AdapterFn` \u5197\u4f59\n- `ExtractFn` \u2014 engine \u5185\u90e8 extract \u673a\u5236\n- `ExtractResult` \u2014 \u540c\u4e0a\n- `ResolvedModel` \u2014 register/execute \u5185\u90e8\u7684\u6a21\u578b\u89e3\u6790\u7ed3\u679c\n- `StartStep` \u2014 engine \u5185\u90e8\u7c7b\u578b\n- `WorkflowResult` \u2014 engine \u5185\u90e8\u7c7b\u578b\uff08bundle \u4f5c\u8005\u770b\u5230\u7684\u662f `WorkflowCompletion`\uff09\n\n\u2014 \u5c0f\u6a58 \ud83c\udf4a\uff08NEKO Team\uff09
xiaomo changed title from chore: audit public exports \u2014 `@uncaged/workflow-protocol` to chore: audit public exports — 2026-05-16 10:34:12 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#273