ai-spector 0.8.7 → 0.8.16

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 CHANGED
@@ -1,57 +1,139 @@
1
1
  # AI Spector
2
2
 
3
- Documentation workflow in **Cursor**: traceability graph, SRS / basic / detail design. **Describe what you need in chat** — skills route the agent, which runs `ai-spector` CLI. You usually do not run CLI yourself.
3
+ Documentation workflow in **Cursor** or **Claude Code**: traceability graph, SRS, basic design, and UI prototypes (static HTML or SPA static build). **Describe what you need in chat** — skills route the agent, which runs `ai-spector` CLI or MCP tools. You usually do not run CLI yourself.
4
4
 
5
- **Needs:** Node 20+, [Cursor](https://cursor.com), [uv](https://docs.astral.sh/uv/) (Graphify MCP after `init`).
5
+ **Needs:** Node 20+, Git, [Cursor](https://cursor.com) and/or [Claude Code](https://docs.anthropic.com/en/docs/claude-code), Python 3.11+ *(optional CocoIndex semantic search)*.
6
+
7
+ **Course (step-by-step):** [docs/course/README.md](docs/course/README.md)
8
+
9
+ **Tiếng Việt:** [README.vi.md](README.vi.md)
10
+
11
+ ---
6
12
 
7
13
  ## Setup (once)
8
14
 
9
- **In Cursor:** ask **"setup ai-spector project"** (agent runs the setup skill).
15
+ ### Prerequisites
16
+
17
+ | Requirement | Check |
18
+ |-------------|-------|
19
+ | Node.js ≥ 20 | `node --version` |
20
+ | Git repository | `git status` |
21
+ | Cursor and/or Claude Code | IDE open in project root |
22
+ | Python ≥ 3.11 *(optional)* | only for CocoIndex semantic search |
23
+
24
+ ---
10
25
 
11
- **CLI:**
26
+ ### Step 1 — Scaffold *(only CLI step)*
27
+
28
+ Run once at your project root. On the **first** run, pass `--registry` so `npx` can download the package from the internal Verdaccio registry (`http://10.101.0.239:4873`). No `npm login` required.
12
29
 
13
30
  ```bash
14
- npm install -D ai-spector
15
- npx ai-spector setup # guided wizard
16
- npx ai-spector setup -y -l en,jp # non-interactive
17
- npx ai-spector setup --check # audit checklist
31
+ npx ai-spector@latest init --registry http://10.101.0.239:4873
18
32
  ```
19
33
 
20
- 1. Open the project in Cursor reload **MCP** enable **all** skills under `.cursor/skills/`.
21
- 2. Put source material in `docs/data-source/`.
34
+ The wizard prompts for editor (Cursor, Claude Code, or both), languages, git hook, and optional CocoIndex.
22
35
 
23
- Re-init scaffold: `npx ai-spector init --force` or `npx ai-spector setup -y --force`. After upgrading: `npx ai-spector sync-cursor`.
36
+ This creates:
24
37
 
25
- ## Workflow
38
+ - `.ai-spector/` — config, graph, templates
39
+ - `docs/data-source/`, `docs/srs/`, `docs/basic-design/`
40
+ - **Cursor:** `.cursor/` — skills, rules, `mcp.json`
41
+ - **Claude Code:** `CLAUDE.md` + `.claude/skills/` + `.mcp.json`
42
+ - Pre-commit hook (when git is available)
26
43
 
27
- See `.cursor/WORKFLOW.md` after `init`. Enable all skills under `.cursor/skills/`.
44
+ ---
28
45
 
29
- ### First run (natural language)
46
+ ### Step 2 Finish setup in chat
47
+
48
+ Open the project in **Cursor** or **Claude Code** and say:
30
49
 
31
50
  ```text
32
- “analyze the data source”
33
- “validate the graph”
34
- “generate the SRS”
35
- “refresh the index”
51
+ setup ai-spector project
36
52
  ```
37
53
 
38
- Then: “generate basic design” “generate detail design” as needed.
54
+ The agent installs the npm dependency (if needed), verifies the checklist, offers CocoIndex, and reminds you what is left to do manually.
39
55
 
40
- HTML prototype:
56
+ ---
41
57
 
42
- ```bash
43
- npx ai-spector prototype themes
58
+ ### Step 3 — Enable the agent *(manual, one-time)*
59
+
60
+ **Cursor**
61
+
62
+ 1. **Settings → Rules → Agent Skills** — enable **all** folders under `.cursor/skills/` (see `.cursor/skills/README.md`)
63
+ 2. **Reload MCP** — `.cursor/mcp.json` registers the `ai-spector` MCP server
64
+
65
+ **Claude Code**
66
+
67
+ 1. Skills load automatically from `.claude/skills/` (see `CLAUDE.md`)
68
+ 2. **Reload MCP** — `.mcp.json` registers the `ai-spector` MCP server
69
+
70
+ ---
71
+
72
+ ### Step 4 — Add source material
73
+
74
+ Drop requirements docs, meeting notes, user stories, or any input into `docs/data-source/`. Supported formats: `.md`, `.txt`, `.pdf`.
75
+
76
+ ---
77
+
78
+ ### Step 5 — Start the pipeline
79
+
80
+ In chat:
81
+
82
+ ```text
83
+ analyze my data source
44
84
  ```
45
85
 
46
- Ask in chat: **“generate HTML prototype”** if no theme is saved, the agent recommends 3 themes, opens previews in your browser, and waits for you to pick. Or name one upfront: “prototype with stripe theme”.
86
+ Then continue in chat as neededsee [Workflow](#workflow) below.
47
87
 
48
- ```bash
49
- npx ai-spector prototype auth --username demo --password '<secret>' # once per project
50
- npx ai-spector prototype preview stripe --open # optional: preview yourself
51
- npx ai-spector prototype setup --theme vercel # after you choose
88
+ ---
89
+
90
+ ### Optional CocoIndex semantic search
91
+
92
+ Enables `docs_search` and `graph_query_fuzzy` MCP tools. Requires Python ≥ 3.11.
93
+
94
+ In chat:
95
+
96
+ ```text
97
+ enable CocoIndex for this project
52
98
  ```
53
99
 
54
- Then ask: “generate HTML prototype for all screens” `npx ai-spector prototype manifest` → `prototype validate --strict`.
100
+ See [docs/setup-guide.md](docs/setup-guide.md) for Postgres / OpenAI embedding options.
101
+
102
+ ---
103
+
104
+ ### Add another editor later
105
+
106
+ In chat:
107
+
108
+ ```text
109
+ add Claude Code support to ai-spector
110
+ sync ai-spector cursor skills
111
+ ```
112
+
113
+ After upgrading ai-spector, say **"sync ai-spector cursor skills"** in chat.
114
+
115
+ ---
116
+
117
+ ## Workflow
118
+
119
+ See `.cursor/WORKFLOW.md` (Cursor) or `CLAUDE.md` (Claude Code) after `init`.
120
+
121
+ ### First run
122
+
123
+ Say in chat:
124
+
125
+ ```text
126
+ “analyze the data source”
127
+ “validate the graph”
128
+ “generate the SRS”
129
+ “refresh the index”
130
+ ```
131
+
132
+ Then: **“generate basic design”** as needed.
133
+
134
+ **Prototype** — static HTML (default) or SPA (React/Vue/etc. built to static files in `prototype/dist/`). Say **“generate prototype”** or **“generate HTML prototype”** for plain HTML; **“generate prototype with Vue”** (or React) for SPA. If no theme is saved, the agent recommends 3 themes, opens previews, and waits for you to pick. Or name one upfront: **“prototype with stripe theme”**.
135
+
136
+ Then: **“generate prototype for all screens”**. For SPA, run the framework build and `npx ai-spector prototype sync`.
55
137
 
56
138
  ### Day to day
57
139
 
@@ -60,9 +142,11 @@ Then ask: “generate HTML prototype for all screens” → `npx ai-spector prot
60
142
  | New or changed data source | “analyze data source” |
61
143
  | Check graph | “validate the graph” |
62
144
  | Regenerate docs | “generate SRS”, “generate basic design”, … |
63
- | HTML prototype | “generate prototype with stripe theme” |
145
+ | Prototype (HTML or SPA) | “generate prototype”, “generate prototype with Vue”, “prototype with stripe theme” |
64
146
  | Choose a theme | “help me pick a prototype theme”, “show me theme options” |
65
147
  | After doc edits | “re-index the graph” |
148
+ | Multi-language sync | “add language vi”, “resolve translations”, “translation status” — [Work 10](docs/course/10-multi-language.md) |
149
+ | Custom templates | “set up template pack”, “template list”, `generate <pack-name>` — [Work 17](docs/course/17-custom-template-packs.md) |
66
150
  | What to redo | “what’s the impact of my changes” |
67
151
  | Review comments | “resolve comments” |
68
152
  | Explore graph | “visualize the graph” |
@@ -71,25 +155,50 @@ Then ask: “generate HTML prototype for all screens” → `npx ai-spector prot
71
155
 
72
156
  ```text
73
157
  docs/data-source/ → analyze → validate graph → generate SRS → index
74
- → generate basic design → generate detail design
75
- → prototype setup → generate HTML screens
158
+ → generate basic design
159
+ → prototype setup → generate screens (HTML or SPA build)
76
160
  ```
77
161
 
162
+ ---
163
+
78
164
  ## CLI (optional)
79
165
 
80
- For scripts or debugging: `npx ai-spector index`, `graph validate`, `graph visualize --open`, `graph impact --git`, `prototype auth|themes|preview|setup|manifest|validate`. See `npx ai-spector --help`.
166
+ For scripts or debugging only: `npx ai-spector index`, `graph validate`, `graph visualize --open`, `graph impact --git`, `prototype auth|themes|preview|setup|manifest|validate`. See `npx ai-spector --help`.
167
+
168
+ ---
81
169
 
82
170
  ## If something breaks
83
171
 
84
172
  | Issue | Fix |
85
173
  |-------|-----|
86
- | Graphify / MCP | Install `uv`, reload MCP `.cursor/commands/_cli-failures.md` |
87
- | Validate errors after edits | `/index` |
88
- | Old slash commands | `npx ai-spector sync-cursor` |
174
+ | MCP tools unavailable | Reload MCP; confirm `.cursor/mcp.json` or `.mcp.json` has `ai-spector` server |
175
+ | Setup incomplete | In chat: **“check ai-spector setup”** |
176
+ | Skills not routing (Cursor) | Re-enable all folders under `.cursor/skills/` in Settings → Rules |
177
+ | Validate errors after edits | In chat: **“re-index the graph”** |
178
+ | Pre-commit hook missing | In chat: **“install ai-spector git hook”** |
179
+ | Agent stuck on CLI error | `.cursor/skills/ai-spector/references/cli-failures.md` |
180
+
181
+ ---
182
+
183
+ ## Node SDK
184
+
185
+ For **scripts, CI, or custom backends** that call the same operations as the CLI and MCP server:
186
+
187
+ - **[SDK guide](docs/sdk.md)** — install, entry points, examples, API reference
188
+
189
+ ```bash
190
+ npm install ai-spector
191
+ ```
192
+
193
+ ```ts
194
+ import { runIndex, runGraphImpact, validateGraph } from "ai-spector";
195
+ ```
196
+
197
+ ---
89
198
 
90
199
  ## Web / graph SDK
91
200
 
92
- For **browser or custom dashboards** (not the Cursor CLI), use the read-only npm package **`ai-spector-graph`**. Your backend serves repo JSON; the frontend loads it into `ProjectSession`.
201
+ For **browser or custom dashboards** (not the Cursor/Claude CLI), use the read-only npm package **`ai-spector-graph`**. Your backend serves repo JSON; the frontend loads it into `ProjectSession`.
93
202
 
94
203
  - **[Integration guide](docs/ai-spector-graph-integration-guide.md)** — architecture, API examples, React, recipes
95
204
  - **[API reference](docs/ai-spector-graph.md)** — types and exports
@@ -98,6 +207,8 @@ For **browser or custom dashboards** (not the Cursor CLI), use the read-only npm
98
207
  npm install ai-spector-graph
99
208
  ```
100
209
 
210
+ ---
211
+
101
212
  ## Develop
102
213
 
103
214
  ```bash
package/README.vi.md ADDED
@@ -0,0 +1,218 @@
1
+ # AI Spector
2
+
3
+ Công cụ làm tài liệu phần mềm trên **Cursor** hoặc **Claude Code**: sơ đồ liên kết, SRS, basic design và prototype UI (HTML tĩnh hoặc SPA build ra file tĩnh). **Bạn chỉ cần nói trong chat** — agent sẽ tự chạy lệnh `ai-spector` hoặc MCP. Thường bạn không cần gõ lệnh terminal.
4
+
5
+ **Cần có:** Node 20+, Git, [Cursor](https://cursor.com) và/hoặc [Claude Code](https://docs.anthropic.com/en/docs/claude-code), Python 3.11+ *(không bắt buộc — dùng cho tìm kiếm thông minh với CocoIndex)*.
6
+
7
+ Hướng dẫn chi tiết: [docs/setup-guide.md](docs/setup-guide.md)
8
+
9
+ **English:** [README.md](README.md)
10
+
11
+ ---
12
+
13
+ ## Cài đặt (làm một lần)
14
+
15
+ ### Cần chuẩn bị gì
16
+
17
+ | Cần có | Cách kiểm tra |
18
+ |--------|---------------|
19
+ | Node.js ≥ 20 | `node --version` |
20
+ | Git | `git status` |
21
+ | Cursor và/hoặc Claude Code | Mở IDE ở thư mục gốc project |
22
+ | Python ≥ 3.11 *(không bắt buộc)* | chỉ cần nếu bật CocoIndex |
23
+
24
+ ---
25
+
26
+ ### Bước 1 — Khởi tạo project *(bước duy nhất cần gõ lệnh)*
27
+
28
+ Chạy một lần ở thư mục gốc project. **Lần đầu** cần thêm `--registry` để `npx` tải gói từ registry nội bộ (`http://10.101.0.239:4873`). **Không cần** `npm login`.
29
+
30
+ ```bash
31
+ npx ai-spector@latest init --registry http://10.101.0.239:4873
32
+ ```
33
+
34
+ Lệnh sẽ hỏi: dùng Cursor, Claude Code hay cả hai; ngôn ngữ tài liệu; git hook; và có bật CocoIndex không.
35
+
36
+ Sau khi chạy xong sẽ có:
37
+
38
+ - `.ai-spector/` — cấu hình, sơ đồ, mẫu tài liệu
39
+ - `docs/data-source/`, `docs/srs/`, `docs/basic-design/`
40
+ - **Cursor:** `.cursor/` — skills, rules, `mcp.json`
41
+ - **Claude Code:** `CLAUDE.md` + `.claude/skills/` + `.mcp.json`
42
+ - Hook git trước khi commit *(nếu project có git)*
43
+
44
+ ---
45
+
46
+ ### Bước 2 — Hoàn tất setup trong chat
47
+
48
+ Mở project bằng **Cursor** hoặc **Claude Code**, rồi gõ:
49
+
50
+ ```text
51
+ setup ai-spector project
52
+ ```
53
+
54
+ Agent sẽ cài gói npm (nếu thiếu), kiểm tra xem còn thiếu gì, hỏi bạn có muốn bật CocoIndex không, và nhắc các bước còn lại.
55
+
56
+ ---
57
+
58
+ ### Bước 3 — Bật skills *(làm tay một lần)*
59
+
60
+ **Cursor**
61
+
62
+ 1. Vào **Settings → Rules → Agent Skills** — bật **hết** các thư mục trong `.cursor/skills/` (xem `.cursor/skills/README.md`)
63
+ 2. **Reload MCP** — file `.cursor/mcp.json` đã cấu hình sẵn server `ai-spector`
64
+
65
+ **Claude Code**
66
+
67
+ 1. Skills tự load từ `.claude/skills/` (xem `CLAUDE.md`)
68
+ 2. **Reload MCP** — file `.mcp.json` đã cấu hình sẵn server `ai-spector`
69
+
70
+ ---
71
+
72
+ ### Bước 4 — Thêm tài liệu đầu vào
73
+
74
+ Copy file yêu cầu, biên bản họp, user story… vào `docs/data-source/`. Hỗ trợ: `.md`, `.txt`, `.pdf`.
75
+
76
+ ---
77
+
78
+ ### Bước 5 — Bắt đầu làm việc
79
+
80
+ Trong chat, gõ:
81
+
82
+ ```text
83
+ analyze my data source
84
+ ```
85
+
86
+ Các bước tiếp theo cũng nói trong chat — xem [Quy trình làm việc](#quy-trình-làm-việc) bên dưới.
87
+
88
+ ---
89
+
90
+ ### Tùy chọn — Bật CocoIndex (tìm kiếm thông minh)
91
+
92
+ Giúp agent tìm tài liệu và sơ đồ theo nghĩa, không chỉ theo từ khóa. Cần Python ≥ 3.11.
93
+
94
+ Trong chat:
95
+
96
+ ```text
97
+ enable CocoIndex for this project
98
+ ```
99
+
100
+ Xem thêm [docs/setup-guide.md](docs/setup-guide.md) nếu muốn dùng Postgres hoặc OpenAI embedding.
101
+
102
+ ---
103
+
104
+ ### Thêm editor khác sau này
105
+
106
+ Trong chat:
107
+
108
+ ```text
109
+ add Claude Code support to ai-spector
110
+ sync ai-spector cursor skills
111
+ ```
112
+
113
+ Sau khi nâng cấp ai-spector, gõ **"sync ai-spector cursor skills"** trong chat.
114
+
115
+ ---
116
+
117
+ ## Quy trình làm việc
118
+
119
+ Sau khi `init`, xem thêm `.cursor/WORKFLOW.md` (Cursor) hoặc `CLAUDE.md` (Claude Code).
120
+
121
+ ### Lần đầu chạy
122
+
123
+ Gõ trong chat:
124
+
125
+ ```text
126
+ “analyze the data source”
127
+ “validate the graph”
128
+ “generate the SRS”
129
+ “refresh the index”
130
+ ```
131
+
132
+ Tiếp theo: **“generate basic design”** khi cần.
133
+
134
+ **Prototype** — HTML tĩnh (mặc định) hoặc SPA (React/Vue/… build ra `prototype/dist/`). Gõ **“generate prototype”** hoặc **“generate HTML prototype”** cho HTML; **“generate prototype with Vue”** (hoặc React) cho SPA. Nếu chưa chọn theme, agent gợi ý 3 theme, mở xem trên trình duyệt, rồi chờ bạn chọn. Hoặc nói luôn: **“prototype with stripe theme”**.
135
+
136
+ Sau đó: **“generate prototype for all screens”**. Với SPA, chạy build framework rồi `npx ai-spector prototype sync`.
137
+
138
+ ### Dùng hàng ngày
139
+
140
+ | Khi nào | Gõ trong chat (ví dụ) |
141
+ |---------|------------------------|
142
+ | Có tài liệu nguồn mới hoặc sửa | “analyze data source” |
143
+ | Kiểm tra sơ đồ | “validate the graph” |
144
+ | Tạo lại tài liệu | “generate SRS”, “generate basic design”, … |
145
+ | Prototype (HTML hoặc SPA) | “generate prototype”, “generate prototype with Vue”, “prototype with stripe theme” |
146
+ | Chọn theme | “help me pick a prototype theme”, “show me theme options” |
147
+ | Vừa sửa tài liệu xong | “re-index the graph” |
148
+ | Đồng bộ đa ngôn ngữ | “add language vi”, “resolve translations”, “translation status” — [Work 10](docs/course/10-multi-language.md) |
149
+ | Template tùy chỉnh | “set up template pack”, “template list”, `generate <pack-name>` — [Work 17](docs/course/17-custom-template-packs.md) |
150
+ | Xem phần nào bị ảnh hưởng | “what’s the impact of my changes” |
151
+ | Xử lý comment | “resolve comments” |
152
+ | Xem sơ đồ trực quan | “visualize the graph” |
153
+
154
+ ### Quy trình thường gặp
155
+
156
+ ```text
157
+ docs/data-source/ → analyze → validate graph → generate SRS → index
158
+ → generate basic design
159
+ → prototype setup → generate screens (HTML hoặc SPA build)
160
+ ```
161
+
162
+ ---
163
+
164
+ ## CLI (nếu cần)
165
+
166
+ Chỉ dùng khi viết script hoặc debug: `npx ai-spector index`, `graph validate`, `graph visualize --open`, `graph impact --git`, `prototype auth|themes|preview|setup|manifest|validate`. Gõ `npx ai-spector --help` để xem đầy đủ.
167
+
168
+ ---
169
+
170
+ ## Gặp lỗi thì làm gì
171
+
172
+ | Lỗi | Cách xử lý |
173
+ |-----|------------|
174
+ | MCP không chạy | Reload MCP; kiểm tra `.cursor/mcp.json` hoặc `.mcp.json` có server `ai-spector` |
175
+ | Setup chưa xong | Trong chat: **“check ai-spector setup”** |
176
+ | Agent không hiểu lệnh (Cursor) | Bật lại hết thư mục trong `.cursor/skills/` ở Settings → Rules |
177
+ | Validate báo lỗi sau khi sửa | Trong chat: **“re-index the graph”** |
178
+ | Thiếu hook git | Trong chat: **“install ai-spector git hook”** |
179
+ | Agent bị kẹt vì lỗi CLI | Xem `.cursor/skills/ai-spector/references/cli-failures.md` |
180
+
181
+ ---
182
+
183
+ ## Node SDK
184
+
185
+ Dùng khi bạn viết **script, CI, hoặc backend tùy chỉnh** — cùng các thao tác typed như CLI và MCP:
186
+
187
+ - **[Hướng dẫn SDK](docs/sdk.md)** — cài đặt, entry points, ví dụ, tham chiếu API
188
+
189
+ ```bash
190
+ npm install ai-spector
191
+ ```
192
+
193
+ ```ts
194
+ import { runIndex, runGraphImpact, validateGraph } from "ai-spector";
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Web / graph SDK
200
+
201
+ Dùng khi bạn muốn **hiển thị sơ đồ trên web hoặc dashboard riêng** (không qua Cursor/Claude). Cài gói **`ai-spector-graph`**, backend trả JSON từ repo, frontend load vào `ProjectSession`.
202
+
203
+ - **[Hướng dẫn tích hợp](docs/ai-spector-graph-integration-guide.md)** — kiến trúc, ví dụ API, React
204
+ - **[Tham chiếu API](docs/ai-spector-graph.md)** — types và exports
205
+
206
+ ```bash
207
+ npm install ai-spector-graph
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Phát triển (cho người đóng góp code)
213
+
214
+ ```bash
215
+ npm install && npm run build && npm test
216
+ ```
217
+
218
+ MIT — [LICENSE](LICENSE).
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/core/prototype/validate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,YAAY,CAAC;AASrE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,wBAAwB,EAAE,CAAC,CA+IrC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAOhF"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/core/prototype/validate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,YAAY,CAAC;AASrE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,wBAAwB,EAAE,CAAC,CA2JrC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAOhF"}
@@ -105,6 +105,17 @@ export async function validatePrototype(opts) {
105
105
  // SPA mode: validate the single build entrypoint (replaces per-screen HTML checks above).
106
106
  if (buildMode === "spa") {
107
107
  const buildDest = opts.config.buildDest?.trim() || `${opts.config.prototypeDir}/dist`;
108
+ const allowedPrefixes = [
109
+ `${opts.config.prototypeDir}/dist`,
110
+ `${opts.config.prototypeDir}/out`,
111
+ ];
112
+ if (!allowedPrefixes.some((p) => buildDest === p || buildDest.startsWith(p + "/"))) {
113
+ issues.push({
114
+ severity: "error",
115
+ code: "SPA_BUILD_DEST_INVALID",
116
+ message: `SPA buildDest must be under ${opts.config.prototypeDir}/dist or ${opts.config.prototypeDir}/out (got: "${buildDest}") — update prototype.buildDest in docflow.config.json`,
117
+ });
118
+ }
108
119
  const indexPath = join(opts.projectRoot, buildDest, "index.html");
109
120
  if (!(await pathExists(indexPath))) {
110
121
  issues.push({
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/core/prototype/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/core/prototype/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-spector",
3
- "version": "0.8.7",
3
+ "version": "0.8.16",
4
4
  "description": "Cursor-first documentation workflow: traceability graph, SRS/basic/detail design templates, and ai-spector CLI",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -34,6 +34,7 @@
34
34
  "scaffold",
35
35
  "assets",
36
36
  "README.md",
37
+ "README.vi.md",
37
38
  "LICENSE"
38
39
  ],
39
40
  "exports": {
@@ -63,7 +64,9 @@
63
64
  "graph:visualize": "node dist/cli.js -r example graph visualize --open",
64
65
  "ai-spector": "node dist/cli.js",
65
66
  "themes:install-previews": "node dist/cli.js prototype install-previews",
66
- "themes:preview": "node dist/cli.js prototype preview"
67
+ "themes:preview": "node dist/cli.js prototype preview",
68
+ "deploy": "bash scripts/deploy.sh",
69
+ "deploy:npm": "bash scripts/deploy.sh --npm"
67
70
  },
68
71
  "dependencies": {
69
72
  "@modelcontextprotocol/sdk": "^1.29.0",