jarvis-agent-factory 4.3.7 → 4.4.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/README.md +15 -15
- package/dist/package.json +1 -1
- package/dist/src/cli/commands/deepinit.d.ts +2 -0
- package/dist/src/cli/commands/deepinit.js +98 -0
- package/dist/src/cli/commands/deepinit.js.map +1 -0
- package/dist/src/cli/index.js +1 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/utils/args.d.ts +9 -0
- package/dist/src/cli/utils/args.js +21 -1
- package/dist/src/cli/utils/args.js.map +1 -1
- package/dist/src/deepinit/generator.d.ts +79 -0
- package/dist/src/deepinit/generator.js +594 -0
- package/dist/src/deepinit/generator.js.map +1 -0
- package/dist/src/deepinit/index.d.ts +4 -0
- package/dist/src/deepinit/index.js +4 -0
- package/dist/src/deepinit/index.js.map +1 -0
- package/dist/src/deepinit/manifest.d.ts +43 -0
- package/dist/src/deepinit/manifest.js +198 -0
- package/dist/src/deepinit/manifest.js.map +1 -0
- package/dist/src/deepinit/scanner.d.ts +33 -0
- package/dist/src/deepinit/scanner.js +125 -0
- package/dist/src/deepinit/scanner.js.map +1 -0
- package/dist/src/engine/db.d.ts +1 -1
- package/dist/src/engine/db.js +1 -1
- package/dist/src/engine/gates.d.ts +7 -7
- package/dist/src/engine/gates.js +25 -25
- package/dist/src/engine/gates.js.map +1 -1
- package/dist/src/engine/server.js +134 -13
- package/dist/src/engine/server.js.map +1 -1
- package/dist/src/install.js +39 -0
- package/dist/src/install.js.map +1 -1
- package/dist/src/templates/deepinit/AGENTS.md.tmpl +33 -0
- package/dist/src/templates/deepinit/CLAUDE.md.tmpl +7 -0
- package/dist/src/templates/platforms/claude/agents/algorithm-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/android-dev-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/android-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/android-state-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/android-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/android-ui-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/api-contract-expert.md +4 -4
- package/dist/src/templates/platforms/claude/agents/api-test-expert.md +5 -4
- package/dist/src/templates/platforms/claude/agents/backend-api-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/backend-architect.md +2 -2
- package/dist/src/templates/platforms/claude/agents/backend-data-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/backend-dev-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/backend-logic-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/backend-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/backend-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/browser-test-expert.md +3 -3
- package/dist/src/templates/platforms/claude/agents/browser-use-expert.md +8 -6
- package/dist/src/templates/platforms/claude/agents/change-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/code-explore-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/database-architect.md +2 -2
- package/dist/src/templates/platforms/claude/agents/diff-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/docs-engineer.md +4 -4
- package/dist/src/templates/platforms/claude/agents/docs-research-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/e2e-test-expert.md +3 -3
- package/dist/src/templates/platforms/claude/agents/expo-dev-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/expo-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/expo-state-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/expo-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/expo-ui-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/external-resource-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/flutter-dev-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/flutter-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/flutter-state-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/flutter-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/flutter-ui-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/frontend-architect.md +2 -2
- package/dist/src/templates/platforms/claude/agents/frontend-dev-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/frontend-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/frontend-state-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/frontend-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/frontend-ui-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/infra-deploy-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/ios-dev-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/ios-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/ios-state-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/ios-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/ios-ui-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/perf-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/perf-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/planner.md +2 -2
- package/dist/src/templates/platforms/claude/agents/project-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/qa-review-expert.md +6 -6
- package/dist/src/templates/platforms/claude/agents/react-native-dev-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/react-native-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/react-native-state-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/react-native-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/react-native-ui-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/remediation-expert.md +5 -5
- package/dist/src/templates/platforms/claude/agents/remediation-planner.md +2 -2
- package/dist/src/templates/platforms/claude/agents/review-fix-optimize.md +2 -2
- package/dist/src/templates/platforms/claude/agents/review-only.md +2 -2
- package/dist/src/templates/platforms/claude/agents/security-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/skill-assignment-expert.md +8 -7
- package/dist/src/templates/platforms/claude/agents/taro-dev-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/taro-review-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/taro-state-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/taro-test-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/taro-ui-expert.md +2 -2
- package/dist/src/templates/platforms/claude/agents/task-design.md +2 -2
- package/dist/src/templates/platforms/claude/agents/test-doc-writer.md +3 -3
- package/dist/src/templates/platforms/claude/agents/test-executor.md +5 -4
- package/dist/src/templates/platforms/claude/commands/ask.md +14 -14
- package/dist/src/templates/platforms/claude/commands/auto.md +2 -2
- package/dist/src/templates/platforms/claude/commands/backend.md +50 -4
- package/dist/src/templates/platforms/claude/commands/browser.md +60 -0
- package/dist/src/templates/platforms/claude/commands/bug-fix.md +4 -2
- package/dist/src/templates/platforms/claude/commands/cancel.md +129 -0
- package/dist/src/templates/platforms/claude/commands/consult.md +50 -0
- package/dist/src/templates/platforms/claude/commands/debug.md +16 -3
- package/dist/src/templates/platforms/claude/commands/evaluate.md +15 -3
- package/dist/src/templates/platforms/claude/commands/frontend.md +50 -4
- package/dist/src/templates/platforms/claude/commands/hotfix.md +15 -3
- package/dist/src/templates/platforms/claude/commands/improve.md +6 -6
- package/dist/src/templates/platforms/claude/commands/jarvis.md +55 -10
- package/dist/src/templates/platforms/claude/commands/migrate.md +14 -2
- package/dist/src/templates/platforms/claude/commands/mobile.md +218 -0
- package/dist/src/templates/platforms/claude/commands/publish.md +3 -1
- package/dist/src/templates/platforms/claude/commands/refactor.md +6 -6
- package/dist/src/templates/platforms/claude/commands/release.md +14 -1
- package/dist/src/templates/platforms/claude/commands/research.md +6 -6
- package/dist/src/templates/platforms/claude/commands/review-fix.md +3 -1
- package/dist/src/templates/platforms/claude/commands/review.md +3 -1
- package/dist/src/templates/platforms/claude/commands/simplify.md +3 -3
- package/dist/src/templates/platforms/claude/commands/skill-flow.md +1 -1
- package/dist/src/templates/platforms/claude/commands/sync.md +5 -3
- package/dist/src/templates/platforms/claude/commands/task-design.md +92 -0
- package/dist/src/templates/platforms/claude/commands/test-e2e.md +2 -2
- package/dist/src/templates/platforms/claude/commands/test-integration.md +2 -2
- package/dist/src/templates/platforms/claude/commands/test-perf.md +2 -2
- package/dist/src/templates/platforms/claude/commands/test-security.md +2 -2
- package/dist/src/templates/platforms/claude/commands/test-unit.md +1 -1
- package/dist/src/templates/platforms/claude/commands/trace.md +6 -6
- package/dist/src/templates/platforms/claude/skills/agent-browser/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/behavioral-guidelines/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/browser-testing/SKILL.md +6 -6
- package/dist/src/templates/platforms/claude/skills/browser-use/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/browser-use/references/cdp-python.md +1 -1
- package/dist/src/templates/platforms/claude/skills/browser-use/references/multi-session.md +1 -1
- package/dist/src/templates/platforms/claude/skills/chinese-documentation/SKILL.md +4 -4
- package/dist/src/templates/platforms/claude/skills/code-quality-gate/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/code-review-and-quality/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/code-simplification/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/code-standards/SKILL.md +7 -7
- package/dist/src/templates/platforms/claude/skills/context-engineering/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/debugging-and-error-recovery/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/debugging-deep/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/documentation-and-adrs/SKILL.md +10 -10
- package/dist/src/templates/platforms/claude/skills/find-docs/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/find-skills/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/dist/src/templates/platforms/claude/skills/frontend-design/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/git-workflow-and-versioning/SKILL.md +2 -2
- package/dist/src/templates/platforms/claude/skills/idea-refine/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/incremental-implementation/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/jarvis-reference/SKILL.md +16 -24
- package/dist/src/templates/platforms/claude/skills/mcp-builder/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/perf-testing/SKILL.md +2 -2
- package/dist/src/templates/platforms/claude/skills/planning-and-task-breakdown/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/refactoring/SKILL.md +2 -2
- package/dist/src/templates/platforms/claude/skills/security-and-hardening/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/security-testing/SKILL.md +2 -2
- package/dist/src/templates/platforms/claude/skills/shipping-and-launch/SKILL.md +3 -3
- package/dist/src/templates/platforms/claude/skills/source-driven-development/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/spec-driven-development/SKILL.md +7 -7
- package/dist/src/templates/platforms/claude/skills/test-data-factory/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/test-driven-development/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/using-agent-skills/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/verification-before-completion/SKILL.md +2 -2
- package/dist/src/templates/platforms/claude/skills/writing-skills/SKILL.md +1 -1
- package/dist/src/templates/platforms/claude/skills/writing-skills/anthropic-best-practices.md +2 -2
- package/dist/src/templates/platforms/claude/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +1 -1
- package/dist/src/templates/platforms/claude/skills/writing-skills/persuasion-principles.md +1 -1
- package/dist/src/templates/platforms/claude/skills/writing-skills/testing-skills-with-subagents.md +1 -1
- package/dist/src/web/routes.js +12 -12
- package/dist/src/web/routes.js.map +1 -1
- package/dist/web/commands-reference.html +72 -137
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/src/templates/platforms/claude/commands/algorithm-expert.md +0 -47
- package/dist/src/templates/platforms/claude/commands/android.md +0 -163
- package/dist/src/templates/platforms/claude/commands/backend-architect.md +0 -47
- package/dist/src/templates/platforms/claude/commands/browser-explore.md +0 -159
- package/dist/src/templates/platforms/claude/commands/browser-test.md +0 -145
- package/dist/src/templates/platforms/claude/commands/expo.md +0 -167
- package/dist/src/templates/platforms/claude/commands/flutter.md +0 -168
- package/dist/src/templates/platforms/claude/commands/frontend-architect.md +0 -47
- package/dist/src/templates/platforms/claude/commands/ios.md +0 -164
- package/dist/src/templates/platforms/claude/commands/react-native.md +0 -168
- package/dist/src/templates/platforms/claude/commands/taro.md +0 -165
- package/dist/src/templates/platforms/claude/commands/task-bdd.md +0 -52
- package/dist/src/templates/platforms/claude/commands/task-ddd.md +0 -57
- package/dist/src/templates/platforms/claude/commands/task-tdd.md +0 -54
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Jarvis Agent Factory · 贾维斯智能体工厂
|
|
2
2
|
|
|
3
3
|
[](./LICENSE)
|
|
4
|
-
[](https://github.com/Wjl1224734792/Jarvis-Agent-Factory/releases)
|
|
5
5
|
[](https://www.npmjs.com/package/jarvis-agent-factory)
|
|
6
6
|
[](https://github.com/Wjl1224734792/visual-primitives-mcp)
|
|
7
7
|
<br>💡 **纯文本模型(如 DeepSeek)主力用户** → 搭配 [Visual Primitives MCP](https://github.com/Wjl1224734792/visual-primitives-mcp) 获得视觉理解能力
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
AI 编程助手配置集 + MCP 编排引擎。从想法到交付的完整软件开发流水线,<br>**仅支持 Claude Code**。
|
|
11
11
|
|
|
12
|
-
> **v4.
|
|
12
|
+
> **v4.4.0** — 新增 /cancel 取消指令,完善会话生命周期管理
|
|
13
13
|
|
|
14
14
|
## 快速开始
|
|
15
15
|
|
|
@@ -66,7 +66,7 @@ jarvis web # 启动 Web 面板(按需)
|
|
|
66
66
|
流水线各阶段智能产出物按 Gate 存入对应子目录,临时文件统一管理:
|
|
67
67
|
|
|
68
68
|
```
|
|
69
|
-
|
|
69
|
+
.jarvis/
|
|
70
70
|
├── tmp/ # 临时产物(截图、快照、导出的验证数据等,已 .gitignore 排除)
|
|
71
71
|
├── YYYY-MM-DD/ # ★ 日期分类目录(唯一合法格式)
|
|
72
72
|
│ ├── requirements/ # Gate A — 需求文档
|
|
@@ -81,15 +81,15 @@ docs/
|
|
|
81
81
|
|
|
82
82
|
| 目录 | 对应 Gate | 说明 |
|
|
83
83
|
|------|----------|------|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
84
|
+
| `.jarvis/tmp/` | 全部 | 过程临时产物,不入版本库 |
|
|
85
|
+
| `.jarvis/YYYY-MM-DD/requirements/` | Gate A | 需求澄清文档 |
|
|
86
|
+
| `.jarvis/YYYY-MM-DD/tasks/` | Gate B | 任务分解文档 |
|
|
87
|
+
| `.jarvis/YYYY-MM-DD/architecture/` | Gate B1 | 架构评审报告 |
|
|
88
|
+
| `.jarvis/YYYY-MM-DD/plans/` | Gate C | 执行计划 |
|
|
89
|
+
| `.jarvis/YYYY-MM-DD/implementation/` | Gate C-impl | 实现说明文档 |
|
|
90
|
+
| `.jarvis/YYYY-MM-DD/testing/` | Gate C2 | 测试用例与报告 |
|
|
91
|
+
| `.jarvis/YYYY-MM-DD/review/` | Gate D | 代码评审报告 |
|
|
92
|
+
| `.jarvis/YYYY-MM-DD/shipping/` | Gate E | 发布记录与版本日志 |
|
|
93
93
|
|
|
94
94
|
## 架构
|
|
95
95
|
|
|
@@ -175,7 +175,7 @@ GITHUB_TOKEN=xxx # GitHub 个人访问令牌(sync-github-releases 需要
|
|
|
175
175
|
| 流水线看板 | `#/dashboard` | 会话列表(任务名/指令标签/Gate状态)· MCP 平台接入状态 · 置顶/归档/删除 |
|
|
176
176
|
| 归档记录 | `#/archive` | 已归档运行记录 · 按任务名搜索过滤 · 恢复到看板 · 永久删除 |
|
|
177
177
|
| 智能体配置 | `#/agents` | MCP 接入指示 · Agent 搜索/筛选 · 模型/思考等级配置 · 文件同步 |
|
|
178
|
-
| 项目介绍 | `/commands-reference.html` | 项目概览 ·
|
|
178
|
+
| 项目介绍 | `/commands-reference.html` | 项目概览 · 31条指令流程详解 · 71个Agent目录 · 流水线架构 · 使用推荐 |
|
|
179
179
|
|
|
180
180
|
侧边栏实时显示 Claude Code 的 MCP 连接状态:绿点 = 已接入,灰点 = 未接入。
|
|
181
181
|
|
|
@@ -325,7 +325,7 @@ test-doc-writer → test-executor → remediation-expert
|
|
|
325
325
|
| | Claude Code |
|
|
326
326
|
|---|:--:|
|
|
327
327
|
| Agents | 71 |
|
|
328
|
-
| Commands |
|
|
328
|
+
| Commands | 30 |
|
|
329
329
|
| Skills | 35 |
|
|
330
330
|
| Pipeline | 15 条流水线(full/lite/frontend/backend/refactor/hotfix/migrate/evaluate/debug/research/release/ask/simplify/trace/improve) |
|
|
331
331
|
| 钩子 | settings.json |
|
|
@@ -368,7 +368,7 @@ test-doc-writer → test-executor → remediation-expert
|
|
|
368
368
|
|
|
369
369
|
## 命令流程图
|
|
370
370
|
|
|
371
|
-
每个 Claude Code 命令的完整介绍,包含项目概览、
|
|
371
|
+
每个 Claude Code 命令的完整介绍,包含项目概览、31条指令的详细流程(含 Gate 序列和 Agent spawn 关系)、71个智能体目录、流水线架构和使用推荐:[项目介绍页](https://github.com/Wjl1224734792/Jarvis-Agent-Factory/blob/main/web/public/commands-reference.html)
|
|
372
372
|
|
|
373
373
|
| 分类 | 命令 | 流程图 | Gate 序列 |
|
|
374
374
|
|------|------|--------|----------|
|
package/dist/package.json
CHANGED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { resolve, join } from 'node:path';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { scanDirectory, flattenTree, generateAll, generateAllParallel, generateAllSmart, writeDocs, generateIncremental, generateIncrementalParallel, validateHierarchy, scanDirectories, loadManifest, saveManifest, computeDiff, changedPaths, } from '../../deepinit/index.js';
|
|
4
|
+
export async function execute(opts, positional) {
|
|
5
|
+
const target = resolve(positional[1] || process.cwd());
|
|
6
|
+
const force = opts.yes || false;
|
|
7
|
+
const smart = opts.smart || false;
|
|
8
|
+
const parallel = opts.parallel !== false; // Default: parallel on
|
|
9
|
+
const jobs = typeof opts.jobs === 'number' ? opts.jobs : 0; // 0 = unlimited
|
|
10
|
+
if (!existsSync(target)) {
|
|
11
|
+
console.error(`\n❌ Target directory does not exist: ${target}`);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
const manifestPath = join(target, '.omc', 'deepinit-manifest.json');
|
|
15
|
+
const prevManifest = loadManifest(manifestPath);
|
|
16
|
+
const isFirstRun = !prevManifest;
|
|
17
|
+
console.log(`\n🔍 Scanning project tree: ${target}`);
|
|
18
|
+
const modeTags = [];
|
|
19
|
+
if (smart)
|
|
20
|
+
modeTags.push('smart dispatch');
|
|
21
|
+
if (parallel && !smart)
|
|
22
|
+
modeTags.push('parallel');
|
|
23
|
+
if (!parallel && !smart)
|
|
24
|
+
modeTags.push('sequential');
|
|
25
|
+
if (isFirstRun) {
|
|
26
|
+
console.log(` (first run — full generation, ${modeTags.join(' + ')})\n`);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
console.log(` (incremental — manifest from ${prevManifest.generatedAt}, ${modeTags.join(' + ')})\n`);
|
|
30
|
+
}
|
|
31
|
+
// 1. Scan directory tree
|
|
32
|
+
const root = scanDirectory(target);
|
|
33
|
+
if (!root) {
|
|
34
|
+
console.error('❌ No files found in target directory.');
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
const flat = flattenTree(root);
|
|
38
|
+
// 2. Scan manifest-structured directories for diff
|
|
39
|
+
const dirs = scanDirectories(target);
|
|
40
|
+
const diff = computeDiff(prevManifest?.directories ?? null, dirs);
|
|
41
|
+
const changed = new Set(changedPaths(diff));
|
|
42
|
+
// 3. Generate (full or incremental, smart/parallel/sequential)
|
|
43
|
+
let results;
|
|
44
|
+
if (isFirstRun || force) {
|
|
45
|
+
if (smart) {
|
|
46
|
+
results = generateAllSmart(flat, target);
|
|
47
|
+
}
|
|
48
|
+
else if (parallel) {
|
|
49
|
+
results = generateAllParallel(flat, target, jobs);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
results = generateAll(flat, target);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
if (parallel) {
|
|
57
|
+
results = generateIncrementalParallel(flat, changed, target, jobs);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
results = generateIncremental(flat, changed, target);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (results.length === 0 && !isFirstRun) {
|
|
64
|
+
console.log(' No directories changed since last run.');
|
|
65
|
+
console.log(`\n✅ DeepInit complete (nothing to update).\n`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
// 4. Write
|
|
69
|
+
const stats = writeDocs(results, { force });
|
|
70
|
+
// 5. Validate
|
|
71
|
+
const allDirs = flat.map(e => e.absPath);
|
|
72
|
+
const validation = validateHierarchy(target, allDirs.map(d => {
|
|
73
|
+
const rel = d.replace(target, '').replace(/^[/\\]/, '');
|
|
74
|
+
return rel || '.';
|
|
75
|
+
}));
|
|
76
|
+
// 6. Save manifest for next run
|
|
77
|
+
saveManifest(manifestPath, dirs);
|
|
78
|
+
// 7. Report
|
|
79
|
+
const dirCount = Object.keys(dirs).length;
|
|
80
|
+
const changedCount = diff.summary.added + diff.summary.modified + diff.summary.deleted;
|
|
81
|
+
console.log(` Written: ${stats.written} AGENTS.md${stats.skipped > 0 ? ` (${stats.skipped} skipped)` : ''}`);
|
|
82
|
+
console.log(` Manifest: ${dirCount} directories tracked`);
|
|
83
|
+
console.log(` Diff: +${diff.summary.added} ~${diff.summary.modified} -${diff.summary.deleted} =${diff.summary.unchanged} unchanged (${changedCount} affected)`);
|
|
84
|
+
if (smart) {
|
|
85
|
+
console.log(` Mode: smart dispatch (deep file analysis + project type detection)`);
|
|
86
|
+
}
|
|
87
|
+
else if (parallel) {
|
|
88
|
+
console.log(` Mode: parallel (by-depth grouping${jobs > 0 ? `, ${jobs} jobs` : ''})`);
|
|
89
|
+
}
|
|
90
|
+
if (!validation.valid) {
|
|
91
|
+
console.log(` ⚠ Validation: ${validation.issues.length} issues found`);
|
|
92
|
+
for (const issue of validation.issues.slice(0, 5)) {
|
|
93
|
+
console.log(` - ${issue}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
console.log(`\n✅ DeepInit complete.\n`);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=deepinit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepinit.js","sourceRoot":"","sources":["../../../../src/cli/commands/deepinit.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli/index.js
CHANGED
|
@@ -16,6 +16,7 @@ const COMMANDS = {
|
|
|
16
16
|
resolve: () => import('./commands/resolve.js'),
|
|
17
17
|
doctor: () => import('./commands/doctor.js'),
|
|
18
18
|
check: () => import('./commands/doctor.js'),
|
|
19
|
+
deepinit: () => import('./commands/deepinit.js'),
|
|
19
20
|
};
|
|
20
21
|
export async function run() {
|
|
21
22
|
const { opts, positional } = parseArgs(process.argv.slice(2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAgB,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK3D,MAAM,QAAQ,GAA6C;IACzD,IAAI,EAAK,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC3C,GAAG,EAAM,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC1C,MAAM,EAAG,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC7C,EAAE,EAAO,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC9C,MAAM,EAAG,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC9C,IAAI,EAAK,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC3C,MAAM,EAAG,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC7C,IAAI,EAAK,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC9C,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAgB,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK3D,MAAM,QAAQ,GAA6C;IACzD,IAAI,EAAK,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC3C,GAAG,EAAM,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC1C,MAAM,EAAG,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC7C,EAAE,EAAO,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC9C,MAAM,EAAG,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC9C,IAAI,EAAK,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC3C,MAAM,EAAG,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC7C,IAAI,EAAK,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC9C,MAAM,EAAI,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC9C,KAAK,EAAK,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC9C,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;CACjD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,SAAS;IACT,IAAI,IAAI,CAAC,IAAI,EAAK,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACzD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,KAAK,WAAW,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;QAC7B,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,eAAe,QAAQ,SAAS,CAAC,CAAC;QAChF,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IAEpC,8CAA8C;IAC9C,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC5D,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAC3B,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -7,6 +7,12 @@ export interface CliOpts {
|
|
|
7
7
|
globalExplicit: boolean;
|
|
8
8
|
help?: boolean;
|
|
9
9
|
version?: boolean;
|
|
10
|
+
/** DeepInit: 启用智能分派模式(深度文件分析 + 项目类型检测) */
|
|
11
|
+
smart?: boolean;
|
|
12
|
+
/** DeepInit: 禁用并行生成(默认启用) */
|
|
13
|
+
parallel?: boolean;
|
|
14
|
+
/** DeepInit: 并行任务数限制(0 = 无限制) */
|
|
15
|
+
jobs?: number;
|
|
10
16
|
}
|
|
11
17
|
/**
|
|
12
18
|
* 手动解析命令行参数(不引入 Commander.js,遵循 ADR-5)
|
|
@@ -16,6 +22,9 @@ export interface CliOpts {
|
|
|
16
22
|
* -g, --global 全局安装
|
|
17
23
|
* -h, --help 显示帮助
|
|
18
24
|
* -v, --version 显示版本
|
|
25
|
+
* --smart DeepInit 智能分派模式
|
|
26
|
+
* --no-parallel DeepInit 禁用并行生成
|
|
27
|
+
* --jobs <n> DeepInit 并行任务数限制
|
|
19
28
|
*
|
|
20
29
|
* @param raw - process.argv.slice(2) 原始参数数组
|
|
21
30
|
* @returns 解析后的选项和位置参数
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
* -g, --global 全局安装
|
|
7
7
|
* -h, --help 显示帮助
|
|
8
8
|
* -v, --version 显示版本
|
|
9
|
+
* --smart DeepInit 智能分派模式
|
|
10
|
+
* --no-parallel DeepInit 禁用并行生成
|
|
11
|
+
* --jobs <n> DeepInit 并行任务数限制
|
|
9
12
|
*
|
|
10
13
|
* @param raw - process.argv.slice(2) 原始参数数组
|
|
11
14
|
* @returns 解析后的选项和位置参数
|
|
@@ -13,7 +16,8 @@
|
|
|
13
16
|
export function parseArgs(raw) {
|
|
14
17
|
const opts = { yes: false, global: false, globalExplicit: false };
|
|
15
18
|
const positional = [];
|
|
16
|
-
for (
|
|
19
|
+
for (let i = 0; i < raw.length; i++) {
|
|
20
|
+
const a = raw[i];
|
|
17
21
|
if (a === '-y' || a === '--yes') {
|
|
18
22
|
opts.yes = true;
|
|
19
23
|
}
|
|
@@ -29,6 +33,22 @@ export function parseArgs(raw) {
|
|
|
29
33
|
opts.version = true;
|
|
30
34
|
return { opts, positional };
|
|
31
35
|
}
|
|
36
|
+
else if (a === '--smart') {
|
|
37
|
+
opts.smart = true;
|
|
38
|
+
}
|
|
39
|
+
else if (a === '--no-parallel') {
|
|
40
|
+
opts.parallel = false;
|
|
41
|
+
}
|
|
42
|
+
else if (a === '--jobs' && i + 1 < raw.length) {
|
|
43
|
+
const n = parseInt(raw[++i], 10);
|
|
44
|
+
if (!isNaN(n) && n > 0)
|
|
45
|
+
opts.jobs = n;
|
|
46
|
+
}
|
|
47
|
+
else if (a.startsWith('--jobs=')) {
|
|
48
|
+
const n = parseInt(a.slice(7), 10);
|
|
49
|
+
if (!isNaN(n) && n > 0)
|
|
50
|
+
opts.jobs = n;
|
|
51
|
+
}
|
|
32
52
|
else {
|
|
33
53
|
positional.push(a);
|
|
34
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../../src/cli/utils/args.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../../src/cli/utils/args.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CAAC,GAAa;IACrC,MAAM,IAAI,GAAY,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC3E,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAClB,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;aAAM,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,KAAK,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { DirEntry } from './scanner.js';
|
|
2
|
+
export interface GenContext {
|
|
3
|
+
entry: DirEntry;
|
|
4
|
+
rootDir: string;
|
|
5
|
+
now: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* 为单个目录生成 AGENTS.md 内容。
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateAgentsMd(entry: DirEntry, parentRel: string | null, ctx: GenContext): string;
|
|
11
|
+
/**
|
|
12
|
+
* 为单个目录生成 CLAUDE.md 内容(极简引导)。
|
|
13
|
+
* 仅当目录是根或包含 src/ 等关键目录时生成。
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateClaudeMd(entry: DirEntry, hasParentAgents: boolean, ctx: GenContext): string;
|
|
16
|
+
/**
|
|
17
|
+
* 生成整个目录树的文档文件(顺序模式,保证层级兼容)。
|
|
18
|
+
*/
|
|
19
|
+
export declare function generateAll(flatEntries: DirEntry[], rootDir: string): {
|
|
20
|
+
dir: string;
|
|
21
|
+
agents: string;
|
|
22
|
+
claude: string | null;
|
|
23
|
+
}[];
|
|
24
|
+
/**
|
|
25
|
+
* 并行生成整个目录树的文档文件。
|
|
26
|
+
* 按深度分层:同层目录并行处理,层间串行保证父子引用正确。
|
|
27
|
+
*/
|
|
28
|
+
export declare function generateAllParallel(flatEntries: DirEntry[], rootDir: string, concurrency?: number): {
|
|
29
|
+
dir: string;
|
|
30
|
+
agents: string;
|
|
31
|
+
claude: string | null;
|
|
32
|
+
}[];
|
|
33
|
+
/**
|
|
34
|
+
* 将生成的文档写入文件系统。
|
|
35
|
+
*/
|
|
36
|
+
export declare function writeDocs(results: {
|
|
37
|
+
dir: string;
|
|
38
|
+
agents: string;
|
|
39
|
+
claude: string | null;
|
|
40
|
+
}[], opts?: {
|
|
41
|
+
force?: boolean;
|
|
42
|
+
}): {
|
|
43
|
+
written: number;
|
|
44
|
+
skipped: number;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* 增量生成:基于 manifest diff 结果,仅重新生成变化目录的文档。
|
|
48
|
+
* 祖先级联已在 computeDiff 中处理——变化的祖先目录自动包含在 changedRelPaths 中。
|
|
49
|
+
*/
|
|
50
|
+
export declare function generateIncremental(flatEntries: DirEntry[], changedRelPaths: Set<string>, rootDir: string): {
|
|
51
|
+
dir: string;
|
|
52
|
+
agents: string;
|
|
53
|
+
claude: string | null;
|
|
54
|
+
}[];
|
|
55
|
+
/**
|
|
56
|
+
* 并行增量生成:按深度分层,同层并行处理变更目录。
|
|
57
|
+
*/
|
|
58
|
+
export declare function generateIncrementalParallel(flatEntries: DirEntry[], changedRelPaths: Set<string>, rootDir: string, concurrency?: number): {
|
|
59
|
+
dir: string;
|
|
60
|
+
agents: string;
|
|
61
|
+
claude: string | null;
|
|
62
|
+
}[];
|
|
63
|
+
/**
|
|
64
|
+
* 验证生成的 AGENTS.md 层级完整性。
|
|
65
|
+
* 检查:父级引用可解析、无孤儿文件、目录覆盖完整。
|
|
66
|
+
*/
|
|
67
|
+
export declare function validateHierarchy(rootDir: string, generatedDirs: string[]): {
|
|
68
|
+
valid: boolean;
|
|
69
|
+
issues: string[];
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Agent 智能分派模式:深度读取文件内容,检测项目类型,生成更精准的文档。
|
|
73
|
+
* 对应 OMC 的 explore agent(目录扫描)+ architect agent(文件分析)+ writer agent(内容生成)三层分派。
|
|
74
|
+
*/
|
|
75
|
+
export declare function generateAllSmart(flatEntries: DirEntry[], rootDir: string): {
|
|
76
|
+
dir: string;
|
|
77
|
+
agents: string;
|
|
78
|
+
claude: string | null;
|
|
79
|
+
}[];
|