zapmyco 0.1.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 shenjingnan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,149 @@
1
+ # ai-typescript-starter
2
+
3
+ [![CI](https://github.com/shenjingnan/ai-typescript-starter/actions/workflows/ci.yml/badge.svg)](https://github.com/shenjingnan/ai-typescript-starter/actions/workflows/ci.yml)
4
+ [![npm version](https://img.shields.io/npm/v/ai-typescript-starter.svg)](https://www.npmjs.com/package/ai-typescript-starter)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+
7
+ AI 原生的 TypeScript 启动模板,专为 AI 辅助开发时代打造。
8
+
9
+ ## 特性
10
+
11
+ - **现代技术栈**: TypeScript + Node.js 24+ + pnpm
12
+ - **构建工具**: tsdown - 基于 rolldown 的 TypeScript 打包器
13
+ - **测试框架**: Vitest - Vite 原生测试框架
14
+ - **代码质量**: Biome (Lint + Format) + cspell (拼写检查)
15
+ - **Git 工作流**: Husky + lint-staged + release-it
16
+ - **AI 集成**: 内置 CLAUDE.md 和 .claude/ 目录配置
17
+ - **CI/CD**: GitHub Actions 自动化测试和发布
18
+
19
+ ## 快速开始
20
+
21
+ ### 使用模板
22
+
23
+ 点击仓库页面的 "Use this template" 按钮创建新项目。
24
+
25
+ ### 安装
26
+
27
+ ```bash
28
+ # 克隆项目
29
+ git clone https://github.com/your-username/your-project.git
30
+ cd your-project
31
+
32
+ # 安装依赖
33
+ pnpm install
34
+ ```
35
+
36
+ ### 开发
37
+
38
+ ```bash
39
+ # 开发模式
40
+ pnpm run dev
41
+
42
+ # 构建
43
+ pnpm run build
44
+
45
+ # 测试
46
+ pnpm run test
47
+
48
+ # 代码检查
49
+ pnpm run lint
50
+
51
+ # 类型检查
52
+ pnpm run typecheck
53
+
54
+ # 完整检查
55
+ pnpm run check
56
+ ```
57
+
58
+ ## 项目结构
59
+
60
+ ```
61
+ ai-typescript-starter/
62
+ ├── .claude/ # Claude Code 配置
63
+ │ ├── commands/ # Slash 命令
64
+ │ └── skills/ # 技能定义
65
+ ├── .github/ # GitHub 配置
66
+ │ ├── workflows/ # CI/CD 工作流
67
+ │ └── ISSUE_TEMPLATE/ # Issue 模板
68
+ ├── docs/ # 文档
69
+ ├── examples/ # 示例代码
70
+ ├── src/ # 源代码
71
+ │ └── __tests__/ # 测试文件
72
+ ├── AGENTS.md # AI Agent 配置
73
+ └── dist/ # 构建产物
74
+ ```
75
+
76
+ ## 可用脚本
77
+
78
+ | 命令 | 说明 |
79
+ |------|------|
80
+ | `pnpm run build` | 构建项目 |
81
+ | `pnpm run dev` | 开发模式 (watch) |
82
+ | `pnpm run test` | 运行测试 |
83
+ | `pnpm run test:watch` | 测试监听模式 |
84
+ | `pnpm run test:coverage` | 测试覆盖率报告 |
85
+ | `pnpm run lint` | 代码检查 |
86
+ | `pnpm run lint:fix` | 自动修复代码问题 |
87
+ | `pnpm run format` | 格式化代码 |
88
+ | `pnpm run typecheck` | TypeScript 类型检查 |
89
+ | `pnpm run check` | 完整检查 (typecheck + lint) |
90
+ | `pnpm run check:fix` | 检查并修复 |
91
+ | `pnpm run spellcheck` | 拼写检查 |
92
+ | `pnpm run release` | 创建发布 |
93
+ | `pnpm run release:beta` | 发布 beta 预发布版本 |
94
+ | `pnpm run release:dry` | 发布干运行 (不实际发布) |
95
+ | `pnpm run release:patch` | 直接发布 patch 版本 |
96
+ | `pnpm run release:minor` | 直接发布 minor 版本 |
97
+ | `pnpm run release:major` | 直接发布 major 版本 |
98
+
99
+ ## AI 辅助开发
100
+
101
+ 本项目专为 AI 辅助开发设计,内置了完善的 AI 工程约束:
102
+
103
+ ### CLAUDE.md
104
+
105
+ 为 Claude Code 提供项目上下文和开发规范。
106
+
107
+ ### .claude/ 目录
108
+
109
+ - `commands/` - 自定义 Slash 命令 (`/build`, `/test`, `/lint`, `/typecheck`, `/spellcheck`, `/release`, `/commit-push-pr`)
110
+ - `skills/` - 项目技能定义 (`resolve-git-conflicts`, `fix-audit`, `project-context`, `update-readme`)
111
+
112
+ ## 代码风格
113
+
114
+ - 2 空格缩进
115
+ - 单引号
116
+ - 必须有分号
117
+ - 行宽 100 字符
118
+ - 禁止 `any` 类型 (warn)
119
+
120
+ ## 测试规范
121
+
122
+ - 测试文件放在 `src/__tests__/` 目录
123
+ - 测试覆盖率阈值: 80%
124
+ - 使用 Vitest 全局 API
125
+
126
+ ## 发布流程
127
+
128
+ 本项目使用 [release-it](https://github.com/release-it/release-it) 进行版本管理:
129
+
130
+ ```bash
131
+ pnpm run release
132
+ ```
133
+
134
+ 发布过程会自动:
135
+ 1. 更新版本号
136
+ 2. 更新 CHANGELOG.md
137
+ 3. 创建 Git tag
138
+ 4. 推送到远程仓库
139
+ 5. 创建 GitHub Release
140
+
141
+ ## 文档
142
+
143
+ - [架构文档](docs/architecture.md)
144
+ - [API 文档](docs/api.md)
145
+ - [贡献指南](docs/contributing.md)
146
+
147
+ ## 许可证
148
+
149
+ [MIT](LICENSE) © 2026 shenjingnan
@@ -0,0 +1,323 @@
1
+ import { EventEmitter } from "node:events";
2
+
3
+ //#region src/core/result/types.d.ts
4
+ /**
5
+ * 结果整合器类型定义
6
+ *
7
+ * 定义 Agent 执行结果的数据结构和最终输出格式。
8
+ */
9
+ /** 制品类型 */
10
+ type ArtifactType = 'pull-request' | 'file' | 'report' | 'comment' | 'url';
11
+ /**
12
+ * 制品(Agent 执行产生的有价值的产出)
13
+ *
14
+ * 例如:创建的 PR、生成的文件、分析报告等。
15
+ */
16
+ interface Artifact {
17
+ /** 制品类型 */
18
+ type: ArtifactType;
19
+ /** 制品引用(URL 或文件路径) */
20
+ reference: string;
21
+ /** 制品描述 */
22
+ description: string;
23
+ }
24
+ /** Token 使用量统计 */
25
+ interface TokenUsage {
26
+ inputTokens: number;
27
+ outputTokens: number;
28
+ totalTokens: number;
29
+ /** 估算成本(美元) */
30
+ estimatedCostUsd: number;
31
+ }
32
+ /** 任务错误信息 */
33
+ interface TaskError {
34
+ code: string;
35
+ message: string;
36
+ retryable: boolean;
37
+ details?: Record<string, unknown>;
38
+ }
39
+ /**
40
+ * 单个子任务的执行结果
41
+ *
42
+ * 每个 Agent 完成任务后返回此对象。
43
+ */
44
+ interface TaskResult {
45
+ /** 任务 ID */
46
+ taskId: string;
47
+ /** 执行状态 */
48
+ status: 'success' | 'failure' | 'partial';
49
+ /** 结构化输出 */
50
+ output: unknown;
51
+ /** 产生的制品列表 */
52
+ artifacts: Artifact[];
53
+ /** 执行耗时(毫秒) */
54
+ duration: number;
55
+ /** Token 消耗统计 */
56
+ tokenUsage: TokenUsage;
57
+ /** 错误信息(如果失败) */
58
+ error?: TaskError;
59
+ }
60
+ /**
61
+ * 最终整合结果
62
+ *
63
+ * 结果整合器将所有子任务的 TaskResult 合并为用户可理解的最终输出。
64
+ */
65
+ interface FinalResult {
66
+ /** 关联的 Goal ID */
67
+ goalId: string;
68
+ /** 整体状态 */
69
+ overallStatus: 'success' | 'partial-failure' | 'failure';
70
+ /** 人类可读的摘要(LLM 生成或模板化拼接) */
71
+ summary: string;
72
+ /** 各子任务结果 */
73
+ taskResults: TaskResult[];
74
+ /** 所有制品汇总 */
75
+ allArtifacts: Artifact[];
76
+ /** 总耗时(毫秒) */
77
+ totalDuration: number;
78
+ /** 总 Token 消耗 */
79
+ totalTokenUsage: TokenUsage;
80
+ /** 后续建议操作 */
81
+ nextSteps?: string[];
82
+ }
83
+ //#endregion
84
+ //#region src/protocol/capability.d.ts
85
+ /**
86
+ * Agent 能力声明
87
+ *
88
+ * 每个 Agent 通过 Capability 声明自己能做什么类型的任务。
89
+ * 调度器通过能力匹配将任务分发给合适的 Agent。
90
+ */
91
+ /** 能力类别 */
92
+ type CapabilityCategory = 'code-generation' | 'code-modification' | 'code-analysis' | 'code-review' | 'security-scan' | 'testing' | 'documentation' | 'research' | 'planning' | 'data-analysis' | 'chat' | 'generic';
93
+ /** Agent 能力声明 */
94
+ interface Capability {
95
+ /** 能力唯一标识符 */
96
+ id: string;
97
+ /** 能力名称 */
98
+ name: string;
99
+ /** 能力描述 */
100
+ description: string;
101
+ /** 能力类别 */
102
+ category: CapabilityCategory;
103
+ }
104
+ /** Agent 注册信息 */
105
+ interface AgentRegistration {
106
+ /** Agent 唯一标识 */
107
+ agentId: string;
108
+ /** Agent 显示名称 */
109
+ displayName: string;
110
+ /** Agent 声明的能力列表 */
111
+ capabilities: Capability[];
112
+ /** Agent 端点 URL(远程 Agent) */
113
+ endpoint?: string;
114
+ /** 当前状态 */
115
+ status: AgentRegistrationStatus;
116
+ /** 当前负载数 */
117
+ currentLoad: number;
118
+ /** 最大并发数 */
119
+ maxConcurrency: number;
120
+ }
121
+ /** Agent 注册状态 */
122
+ type AgentRegistrationStatus = 'online' | 'offline' | 'busy';
123
+ //#endregion
124
+ //#region src/core/aggregator/types.d.ts
125
+ /**
126
+ * 进度聚合器类型定义
127
+ *
128
+ * 实时收集各 Agent 的进度事件,统一推送给 UI 层。
129
+ */
130
+ /** 进度事件类型 */
131
+ type ProgressEventType = 'task:started' | 'task:progress' | 'task:output' | 'task:completed' | 'task:failed' | 'task:retrying';
132
+ /** 进度事件载荷 */
133
+ interface ProgressPayload {
134
+ /** 当前进度 0-100 */
135
+ percent?: number;
136
+ /** 当前步骤描述 */
137
+ message?: string;
138
+ /** 流式文本片段 */
139
+ textChunk?: string;
140
+ /** 错误信息 */
141
+ error?: string;
142
+ /** 制品引用(如 PR URL) */
143
+ artifactUrl?: string;
144
+ }
145
+ /**
146
+ * 进度事件
147
+ *
148
+ * Agent 在执行过程中发出的结构化进度信息。
149
+ */
150
+ interface ProgressEvent {
151
+ /** 事件 ID */
152
+ eventId: string;
153
+ /** 关联的任务 ID */
154
+ taskId: string;
155
+ /** 关联的 Agent ID */
156
+ agentId: string;
157
+ /** 事件类型 */
158
+ type: ProgressEventType;
159
+ /** 事件时间戳 */
160
+ timestamp: number;
161
+ /** 事件载荷 */
162
+ payload: ProgressPayload;
163
+ }
164
+ //#endregion
165
+ //#region src/core/intent/types.d.ts
166
+ /**
167
+ * 意图理解引擎类型定义
168
+ *
169
+ * 将用户的自然语言输入转化为结构化的 Goal 对象。
170
+ */
171
+ /** 用户目标的类型 */
172
+ type GoalType = 'code-review' | 'security-audit' | 'bug-fix' | 'feature-dev' | 'refactor' | 'test-generation' | 'doc-generation' | 'research' | 'planning' | 'data-analysis' | 'chat' | 'generic';
173
+ /** 项目上下文(自动收集) */
174
+ interface ProjectContext {
175
+ /** 项目根目录路径 */
176
+ rootPath: string;
177
+ /** 包管理器类型 */
178
+ packageManager: 'npm' | 'pnpm' | 'yarn' | 'bun' | 'unknown';
179
+ /** 检测到的框架/技术栈 */
180
+ techStack: string[];
181
+ /** git 分支信息 */
182
+ gitBranch?: string;
183
+ /** 是否有未提交的更改 */
184
+ hasUncommittedChanges?: boolean;
185
+ }
186
+ /** 目标约束条件 */
187
+ interface GoalConstraints {
188
+ /** 最大并行度(覆盖全局配置) */
189
+ maxParallelism?: number;
190
+ /** 是否允许修改文件 */
191
+ allowFileModification?: boolean;
192
+ /** 是否需要确认后执行 */
193
+ requireConfirmation?: boolean;
194
+ /** 超时时间(毫秒) */
195
+ timeout?: number;
196
+ }
197
+ /**
198
+ * 结构化目标
199
+ *
200
+ * 意图理解引擎的输出,是整个编排管线的输入。
201
+ */
202
+ interface Goal {
203
+ /** 目标唯一 ID */
204
+ id: string;
205
+ /** 目标类型 */
206
+ type: GoalType;
207
+ /** 目标描述(由引擎提炼) */
208
+ description: string;
209
+ /** 原始用户输入 */
210
+ rawInput: string;
211
+ /** 项目上下文(自动收集) */
212
+ context: ProjectContext;
213
+ /** 约束条件 */
214
+ constraints: GoalConstraints;
215
+ /** 引擎置信度 (0-1) */
216
+ confidence: number;
217
+ }
218
+ //#endregion
219
+ //#region src/core/task/types.d.ts
220
+ /** 子任务状态 */
221
+ type TaskStatus = 'pending' | 'ready' | 'running' | 'succeeded' | 'failed' | 'skipped' | 'cancelled';
222
+ /**
223
+ * 子任务定义
224
+ *
225
+ * 任务拆分器的输出单元,代表一个可独立执行的原子工作。
226
+ */
227
+ interface SubTask {
228
+ /** 任务 ID */
229
+ id: string;
230
+ /** 任务名称(简短,用于显示) */
231
+ name: string;
232
+ /** 任务详细描述(发给 Agent 的具体指令) */
233
+ description: string;
234
+ /** 所需的 Agent 能力 */
235
+ requiredCapability: Capability;
236
+ /** 依赖的任务 ID 列表 */
237
+ dependencies: string[];
238
+ /** 任务优先级(数值越小优先级越高) */
239
+ priority: number;
240
+ /** 预估 token 消耗(用于成本估算) */
241
+ estimatedTokens?: number;
242
+ /** 当前状态 */
243
+ status: TaskStatus;
244
+ /** 执行结果(完成后填充) */
245
+ result?: TaskResult;
246
+ }
247
+ /**
248
+ * 任务图(DAG)
249
+ *
250
+ * 描述子任务之间的依赖关系和执行拓扑。
251
+ */
252
+ interface TaskGraph {
253
+ /** 图 ID(关联到 Goal) */
254
+ goalId: string;
255
+ /** 所有节点 */
256
+ nodes: Map<string, SubTask>;
257
+ /** 有向边:依赖关系(from 依赖 to) */
258
+ edges: Array<{
259
+ from: string;
260
+ to: string;
261
+ }>;
262
+ /** 入口节点(无依赖的任务) */
263
+ entryNodes: string[];
264
+ /** 拓扑排序后的执行层级(同层可并行) */
265
+ layers: string[][];
266
+ }
267
+ //#endregion
268
+ //#region src/protocol/agent.d.ts
269
+ /** Agent 执行选项 */
270
+ interface AgentExecuteOptions {
271
+ /** 超时时间(毫秒) */
272
+ timeout: number;
273
+ /** 是否启用详细日志 */
274
+ verbose: boolean;
275
+ /** 自定义参数 */
276
+ params?: Record<string, unknown>;
277
+ }
278
+ /** Agent 执行请求 */
279
+ interface AgentExecuteRequest {
280
+ /** 任务 ID */
281
+ taskId: string;
282
+ /** 任务描述(来自 TaskDecomposer 的具体指令) */
283
+ taskDescription: string;
284
+ /** 上游任务的结果(作为上下文,有依赖时传入) */
285
+ upstreamResults?: TaskResult[];
286
+ /** 项目工作目录 */
287
+ workdir: string;
288
+ /** 执行配置 */
289
+ options: AgentExecuteOptions;
290
+ }
291
+ /** Agent 状态 */
292
+ type AgentStatus = 'online' | 'offline' | 'busy' | 'degraded';
293
+ /** 健康检查结果 */
294
+ interface AgentHealthStatus {
295
+ 是否健康: boolean;
296
+ latencyMs: number;
297
+ version: string;
298
+ details?: Record<string, unknown>;
299
+ }
300
+ /**
301
+ * Agent 统一接口 -- 所有 Agent 的契约
302
+ */
303
+ interface IAgent {
304
+ readonly agentId: string;
305
+ readonly displayName: string;
306
+ readonly capabilities: readonly Capability[];
307
+ readonly status: AgentStatus;
308
+ readonly currentLoad: number;
309
+ execute(request: AgentExecuteRequest): Promise<TaskResult>;
310
+ cancel(taskId: string): Promise<void>;
311
+ healthCheck(): Promise<AgentHealthStatus>;
312
+ }
313
+ /**
314
+ * 支持流式事件的 Agent 接口(推荐实现)
315
+ */
316
+ interface IStreamingAgent extends IAgent, EventEmitter {
317
+ readonly EVENT_PROGRESS: 'progress';
318
+ readonly EVENT_OUTPUT: 'output';
319
+ readonly EVENT_ERROR: 'error';
320
+ }
321
+ //#endregion
322
+ export { FinalResult as C, TokenUsage as E, ArtifactType as S, TaskResult as T, AgentRegistration as _, IAgent as a, CapabilityCategory as b, TaskGraph as c, GoalConstraints as d, GoalType as f, ProgressPayload as g, ProgressEventType as h, AgentStatus as i, TaskStatus as l, ProgressEvent as m, AgentExecuteRequest as n, IStreamingAgent as o, ProjectContext as p, AgentHealthStatus as r, SubTask as s, AgentExecuteOptions as t, Goal as u, AgentRegistrationStatus as v, TaskError as w, Artifact as x, Capability as y };
323
+ //# sourceMappingURL=agent-PR6zGvgA.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-PR6zGvgA.d.mts","names":[],"sources":["../src/core/result/types.ts","../src/protocol/capability.ts","../src/core/aggregator/types.ts","../src/core/intent/types.ts","../src/core/task/types.ts","../src/protocol/agent.ts"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { };