@cr8rcho/alkahest 0.1.59 → 0.1.60
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.ko.md +24 -20
- package/README.md +25 -21
- package/dist/cli.js +1 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/scan.d.ts +3 -4
- package/dist/commands/scan.js +5 -6
- package/dist/commands/scan.js.map +1 -1
- package/dist/core/emit.d.ts +5 -3
- package/dist/core/emit.js +5 -8
- package/dist/core/emit.js.map +1 -1
- package/dist/core/pipeline.js +1 -2
- package/dist/core/pipeline.js.map +1 -1
- package/dist/core/types.d.ts +4 -4
- package/dist/core/types.js +3 -3
- package/dist/mcp/server.js +11 -11
- package/dist/mcp/server.js.map +1 -1
- package/package.json +2 -2
- package/dist/assets/dashboard.html +0 -806
- package/dist/commands/view.d.ts +0 -6
- package/dist/commands/view.js +0 -21
- package/dist/commands/view.js.map +0 -1
- package/dist/core/dashboard.d.ts +0 -9
- package/dist/core/dashboard.js +0 -20
- package/dist/core/dashboard.js.map +0 -1
- package/dist/core/serve.d.ts +0 -5
- package/dist/core/serve.js +0 -52
- package/dist/core/serve.js.map +0 -1
package/README.ko.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
> 코드에서 제품을 역으로 복원해, 사람이 제품 결정을 내리게 한다.
|
|
6
6
|
|
|
7
7
|
UI 코드베이스를 **정적 분석**해 **제품 지도(Product Map)** 를 만드는 CLI입니다.
|
|
8
|
-
화면을 노드로, 화면 간 이동과 화면이 부르는 API/데이터 호출을 엣지로 뽑아내, 인터랙티브
|
|
8
|
+
화면을 노드로, 화면 간 이동과 화면이 부르는 API/데이터 호출을 엣지로 뽑아내, **호스팅 뷰어([alkahest.app](https://alkahest.app))** 의 인터랙티브 그래프로 보여주고 PRD·요구사항 작성을 돕습니다. 스캔은 로컬에서 무료로 돌지만, **지도를 보는 곳은 호스팅 뷰어**입니다 — 가입해 토큰을 만들고 `publish` 하면 공유 링크가 나옵니다.
|
|
9
9
|
|
|
10
10
|
플랫폼은 **어댑터로 확장**합니다 — **현재 21개**: React(Next.js·React Router·Remix), Vue(Nuxt·Vue Router), Angular, Svelte, Astro, React Native, SwiftUI/UIKit, Jetpack Compose, Flutter, 서버사이드 Django/Flask/Rails(+ 순수 HTML). 데이터 모델이 플랫폼 무관이라 새 프레임워크는 어댑터 하나만 추가하면 됩니다.
|
|
11
11
|
|
|
@@ -50,16 +50,21 @@ cd alkahest-cli && npm install && npm run build && npm link
|
|
|
50
50
|
|
|
51
51
|
## 빠른 시작 (Claude Code)
|
|
52
52
|
|
|
53
|
-
Claude Code 사용자가 0부터
|
|
53
|
+
Claude Code 사용자가 0부터 호스팅 뷰어에서 그래프 + PRD를 공유하기까지:
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
56
|
# 1. alkahest 설치: npm i -g @cr8rcho/alkahest (또는 위처럼 소스 빌드 후 `npm link`)
|
|
57
57
|
|
|
58
58
|
# 2. 내 프로젝트 루트에서 제품 지도 생성
|
|
59
59
|
cd ~/my-next-app
|
|
60
|
-
alkahest scan # → .alkahest/map.json
|
|
60
|
+
alkahest scan # → .alkahest/map.json
|
|
61
61
|
|
|
62
|
-
# 3.
|
|
62
|
+
# 3. publish — 지도가 "보이는 것"이 되는 순간
|
|
63
|
+
# (alkahest.app 가입 → Account → Create token)
|
|
64
|
+
alkahest login --token alk_xxxxx
|
|
65
|
+
alkahest publish # → https://alkahest.app/p/<project> (공유 링크, 보는 데 로그인 불필요)
|
|
66
|
+
|
|
67
|
+
# 4. Claude Code에 MCP 서버 등록 (project 스코프 = .mcp.json으로 공유)
|
|
63
68
|
claude mcp add alkahest -s project -- alkahest mcp
|
|
64
69
|
# 연결 확인: `claude` 실행 후 `/mcp` → 목록에 "alkahest" 표시
|
|
65
70
|
```
|
|
@@ -74,21 +79,20 @@ claude mcp add alkahest -s project -- alkahest mcp
|
|
|
74
79
|
→ Claude가 get_screen / who_calls 로 구조를 읽고,
|
|
75
80
|
각 PRD를 작성해 set_prd 로 map.json에 저장.
|
|
76
81
|
|
|
77
|
-
나: "
|
|
78
|
-
→
|
|
79
|
-
방금
|
|
82
|
+
나: "publish 해줘"
|
|
83
|
+
→ Claude가 publish를 호출하고 링크를 돌려줌. 열어서 화면 노드를
|
|
84
|
+
클릭하면 패널에 방금 쓴 Summary + PRD가 보임.
|
|
80
85
|
```
|
|
81
86
|
|
|
82
|
-
요약: **scan → MCP 등록 → Claude에게
|
|
87
|
+
요약: **scan → publish → MCP 등록 → Claude에게 요청.** 키 없음 — 글은 Claude가 쓰고, alkahest가 `map.json`에 저장하고, publish 할 때마다 호스팅 뷰어가 최신을 렌더합니다.
|
|
83
88
|
|
|
84
89
|
## 사용법
|
|
85
90
|
|
|
86
91
|
분석할 프로젝트 루트에서 실행하면, 그 프로젝트 안 `.alkahest/` 에 산출물이 생깁니다.
|
|
87
92
|
|
|
88
93
|
```bash
|
|
89
|
-
alkahest scan # 분석 → .alkahest/map.json
|
|
94
|
+
alkahest scan # 분석 → .alkahest/map.json (기본: 증분)
|
|
90
95
|
alkahest scan --full # 기준선 무시하고 전체 재스캔
|
|
91
|
-
alkahest view # 대시보드를 로컬 서버로 열기 (2-레이어 그래프)
|
|
92
96
|
alkahest hook install # 커밋·머지 시 scan 자동 실행 (diff 자동 갱신)
|
|
93
97
|
alkahest mcp # MCP 서버 실행 (에이전트가 제품 지도를 질의, 키 불필요)
|
|
94
98
|
alkahest login # publish 토큰 저장 (alkahest.app → Account → Create token)
|
|
@@ -107,7 +111,9 @@ alkahest notes delete <slug> # 노트를 휴지통으로 (소프트 삭제; -
|
|
|
107
111
|
alkahest update # 최신 GitHub 릴리스로 업데이트 (--check: 확인만)
|
|
108
112
|
```
|
|
109
113
|
|
|
110
|
-
###
|
|
114
|
+
### 지도 조작 (호스팅 뷰어)
|
|
115
|
+
|
|
116
|
+
발행한 지도는 `alkahest.app/p/<project>/<map>` 에서:
|
|
111
117
|
|
|
112
118
|
- **force-directed 레이아웃** — 노드가 연결 관계에 따라 자연스럽게 자리잡습니다. 시드 고정이라 매번 같은 배치.
|
|
113
119
|
- **시작점**은 라벨 앞 `▶` 로 표시 (앱 진입점 / 루트 라우트)
|
|
@@ -144,8 +150,8 @@ claude mcp add alkahest -s project -- alkahest mcp
|
|
|
144
150
|
| `overview` | 전체 화면·리소스 목록 한눈에 |
|
|
145
151
|
| `get_screen` | 한 화면의 전체 구조(기능·이동·호출·소스) |
|
|
146
152
|
| `who_calls` | 특정 API/리소스를 부르는 화면들 (변경 영향) |
|
|
147
|
-
| `set_summary` | 화면에 한 줄 요약 저장 →
|
|
148
|
-
| `set_prd` | 화면에 PRD/요구사항 마크다운 저장 → 패널에 렌더 |
|
|
153
|
+
| `set_summary` | 화면에 한 줄 요약 저장 → publish 후 호스팅 뷰어 패널에 표시 |
|
|
154
|
+
| `set_prd` | 화면에 PRD/요구사항 마크다운 저장 → publish 후 패널에 렌더 |
|
|
149
155
|
| `publish` | 지도를 hosted 뷰어에 올려 공유 링크 생성 (토큰 필요, 아래 참고) |
|
|
150
156
|
| `comments` | 발행된 지도에 달린 댓글 목록 — 각 댓글에 코드 위치를 조인: 화면 댓글 → 소스 파일/라우트 + 화면 요소(라인 번호), 리소스 댓글 → 그 엔드포인트를 부르는 화면들(파일+라인). 피드백을 에디터 안에서 처리 가능 (토큰 필요) |
|
|
151
157
|
| `resolve_comment` | 처리한 댓글을 resolve(또는 reopen) (토큰 필요) |
|
|
@@ -166,7 +172,7 @@ claude mcp add alkahest -s project -- alkahest mcp
|
|
|
166
172
|
| `map_note` | 풀의 노트를 노트 맵에 올리거나 `remove` 로 내리기 — 노트 맵은 프로젝트 노트 풀을 보는 렌즈라 한 노트가 여러 맵에 동시에 올라갈 수 있고, 맵에서 내려도 노트 자체는 삭제되지 않음 (토큰 필요) |
|
|
167
173
|
| `check_version` | 설치 버전 vs 최신 GitHub 릴리스 보고 (에이전트가 `alkahest update` 안내 가능) |
|
|
168
174
|
|
|
169
|
-
에이전트는 `get_screen` / `who_calls` 로 읽고 `set_summary` / `set_prd` 로 써넣습니다. 둘 다 `map.json`에
|
|
175
|
+
에이전트는 `get_screen` / `who_calls` 로 읽고 `set_summary` / `set_prd` 로 써넣습니다. 둘 다 `map.json`에 기록되며, publish 하면 호스팅 지도가 최신을 반영합니다.
|
|
170
176
|
|
|
171
177
|
**에이전트에서 publish (선택).** `scan`·읽기·쓰기는 키가 필요 없지만, `publish`는 지도를 계정에 업로드하므로 토큰이 필요합니다. **alkahest.app → Account → Create token** 에서 토큰을 받아 MCP 설정에 넣어주세요:
|
|
172
178
|
|
|
@@ -198,11 +204,10 @@ claude mcp add alkahest -s project \
|
|
|
198
204
|
|
|
199
205
|
```
|
|
200
206
|
.alkahest/
|
|
201
|
-
|
|
202
|
-
└─ index.html # 자기완결 인터랙티브 대시보드 (외부 의존성/네트워크 없음)
|
|
207
|
+
└─ map.json # 표준 ProductMap (모든 출력의 원천)
|
|
203
208
|
```
|
|
204
209
|
|
|
205
|
-
`
|
|
210
|
+
`map.json`이 스캔의 유일한 산출물입니다 — `publish`가 업로드하는 것도(소스 코드는 절대 기기를 떠나지 않음), MCP 도구가 읽고 쓰는 것도 이 파일입니다. `.alkahest/` 는 `.gitignore` 에 추가하길 권장합니다.
|
|
206
211
|
|
|
207
212
|
## 증분 + 자동 갱신
|
|
208
213
|
|
|
@@ -241,6 +246,5 @@ npm run typecheck
|
|
|
241
246
|
|
|
242
247
|
## License
|
|
243
248
|
|
|
244
|
-
MIT — [LICENSE](./LICENSE) 참조. 이 저장소
|
|
245
|
-
|
|
246
|
-
별도의 비공개 코드베이스입니다.
|
|
249
|
+
MIT — [LICENSE](./LICENSE) 참조. 이 저장소 전체(스캐너·어댑터·MCP 서버)가 대상입니다.
|
|
250
|
+
alkahest.app 호스팅 서비스는 — 지도 뷰어를 포함해 — 별도의 비공개 코드베이스입니다.
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
> Reverse-engineer the product from the code, so people can make product decisions.
|
|
6
6
|
|
|
7
7
|
Alkahest is a CLI that **statically analyzes** a UI codebase and builds a **Product Map**.
|
|
8
|
-
It extracts screens as nodes, and the navigation between screens plus the API/data calls each screen makes as edges — then
|
|
8
|
+
It extracts screens as nodes, and the navigation between screens plus the API/data calls each screen makes as edges — then draws it as an interactive graph on the **hosted viewer ([alkahest.app](https://alkahest.app))** and helps you write PRDs and requirements. Scanning is local and free; **viewing a map happens on the hosted viewer** — sign up, create a token, and `publish` for a shareable link.
|
|
9
9
|
|
|
10
10
|
Platforms are **pluggable via adapters** — **21 today** across React (Next.js, React Router, Remix), Vue (Nuxt, Vue Router), Angular, Svelte, Astro, React Native, SwiftUI/UIKit, Jetpack Compose, Flutter, and server-rendered Django/Flask/Rails (+ plain HTML). The data model is platform-agnostic, so a new framework is just a new adapter.
|
|
11
11
|
|
|
@@ -50,16 +50,21 @@ cd alkahest-cli && npm install && npm run build && npm link
|
|
|
50
50
|
|
|
51
51
|
## Quickstart (Claude Code)
|
|
52
52
|
|
|
53
|
-
The full flow for a Claude Code user, from zero to a graph + PRDs
|
|
53
|
+
The full flow for a Claude Code user, from zero to a shared graph + PRDs on the hosted viewer:
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
56
|
# 1. Install alkahest: npm i -g @cr8rcho/alkahest (or build from source above + `npm link`)
|
|
57
57
|
|
|
58
58
|
# 2. In your project root, build the product map
|
|
59
59
|
cd ~/my-next-app
|
|
60
|
-
alkahest scan # → .alkahest/map.json
|
|
60
|
+
alkahest scan # → .alkahest/map.json
|
|
61
61
|
|
|
62
|
-
# 3.
|
|
62
|
+
# 3. Publish it — this is where the map becomes viewable
|
|
63
|
+
# (sign up at alkahest.app → Account → Create token)
|
|
64
|
+
alkahest login --token alk_xxxxx
|
|
65
|
+
alkahest publish # → https://alkahest.app/p/<project> (shareable, no login to view)
|
|
66
|
+
|
|
67
|
+
# 4. Register the MCP server with Claude Code (project scope = shared via .mcp.json)
|
|
63
68
|
claude mcp add alkahest -s project -- alkahest mcp
|
|
64
69
|
# verify it's connected: run `claude` then `/mcp` → "alkahest" should be listed
|
|
65
70
|
```
|
|
@@ -74,21 +79,20 @@ You: "Write a PRD for the checkout screen and the cart screen."
|
|
|
74
79
|
→ Claude calls get_screen / who_calls to read the structure,
|
|
75
80
|
writes each PRD, and calls set_prd to save it into map.json.
|
|
76
81
|
|
|
77
|
-
You: "
|
|
78
|
-
→
|
|
79
|
-
shows
|
|
82
|
+
You: "publish it"
|
|
83
|
+
→ Claude calls publish and returns the link. Open it — click a
|
|
84
|
+
screen node and the panel shows the Summary + PRD it just wrote.
|
|
80
85
|
```
|
|
81
86
|
|
|
82
|
-
That's it: **scan → register MCP → ask Claude
|
|
87
|
+
That's it: **scan → publish → register MCP → ask Claude.** No API key — Claude does the writing, alkahest stores it in `map.json`, and the hosted viewer renders it after each publish.
|
|
83
88
|
|
|
84
89
|
## Usage
|
|
85
90
|
|
|
86
91
|
Run it from the root of the project you want to analyze; outputs land in that project's `.alkahest/` folder.
|
|
87
92
|
|
|
88
93
|
```bash
|
|
89
|
-
alkahest scan # analyze → .alkahest/map.json
|
|
94
|
+
alkahest scan # analyze → .alkahest/map.json (incremental by default)
|
|
90
95
|
alkahest scan --full # ignore the baseline and rescan everything
|
|
91
|
-
alkahest view # open the dashboard via a local server (two-layer graph)
|
|
92
96
|
alkahest hook install # run scan automatically on commit/merge (diff-driven refresh)
|
|
93
97
|
alkahest mcp # run the MCP server (agents query the product map; no key)
|
|
94
98
|
alkahest login # save your publish token (Account → Create token on alkahest.app)
|
|
@@ -128,7 +132,9 @@ alkahest update # update to the latest GitHub release (--check to only ch
|
|
|
128
132
|
> matches this one and asks before overwriting. CI / non-interactive runs stop with the candidates and
|
|
129
133
|
> point you at `--slug` rather than guessing.
|
|
130
134
|
|
|
131
|
-
###
|
|
135
|
+
### Map interactions (hosted viewer)
|
|
136
|
+
|
|
137
|
+
Your published map at `alkahest.app/p/<project>/<map>`:
|
|
132
138
|
|
|
133
139
|
- **Force-directed layout** — nodes settle naturally by their connections. A fixed seed keeps the layout the same every time.
|
|
134
140
|
- **Start point** is marked with a `▶` prefix on its label (app entry point / root route).
|
|
@@ -165,8 +171,8 @@ Or add it to any MCP-capable agent's config directly:
|
|
|
165
171
|
| `overview` | list all screens & resources at a glance |
|
|
166
172
|
| `get_screen` | one screen's full structure (features, navigation, calls, source) |
|
|
167
173
|
| `who_calls` | which screens call a given API/resource (impact analysis) |
|
|
168
|
-
| `set_summary` | save a one-line summary onto a screen → shown in the
|
|
169
|
-
| `set_prd` | save a PRD/requirements markdown onto a screen → rendered in the panel |
|
|
174
|
+
| `set_summary` | save a one-line summary onto a screen → shown in the hosted viewer's panel after publish |
|
|
175
|
+
| `set_prd` | save a PRD/requirements markdown onto a screen → rendered in the panel after publish |
|
|
170
176
|
| `publish` | upload the map to the hosted viewer → shareable link (needs a token, see below) |
|
|
171
177
|
| `comments` | list comments left on the published map, each joined to where to act: a screen comment → its source file/route + on-screen elements with line numbers; a resource comment → the screens that call that endpoint (file + line). Lets the agent address feedback in-editor (needs a token) |
|
|
172
178
|
| `resolve_comment` | mark a map comment resolved (or reopen) after addressing it (needs a token) |
|
|
@@ -187,7 +193,7 @@ Or add it to any MCP-capable agent's config directly:
|
|
|
187
193
|
| `map_note` | place a pool note on a note map, or take it off with `remove` — note maps are lenses over the project's note pool, so a note can sit on several maps; removing it from one never deletes the note (needs a token) |
|
|
188
194
|
| `check_version` | report installed vs latest GitHub release (so the agent can suggest `alkahest update`) |
|
|
189
195
|
|
|
190
|
-
The agent reads with `get_screen` / `who_calls` and writes back with `set_summary` / `set_prd`; both write into `map.json`
|
|
196
|
+
The agent reads with `get_screen` / `who_calls` and writes back with `set_summary` / `set_prd`; both write into `map.json` — publish and the hosted map reflects the latest.
|
|
191
197
|
|
|
192
198
|
**Publishing from the agent (optional).** `scan` / read / write-back need no key. `publish` does — it uploads the map to your account on the hosted viewer. Get a token at **alkahest.app → Account → Create token**, then put it in the MCP config so the server can authenticate:
|
|
193
199
|
|
|
@@ -219,11 +225,10 @@ The token is all you need — the CLI defaults to the hosted service (alkahest.a
|
|
|
219
225
|
|
|
220
226
|
```
|
|
221
227
|
.alkahest/
|
|
222
|
-
|
|
223
|
-
└─ index.html # self-contained interactive dashboard (no external deps / network)
|
|
228
|
+
└─ map.json # the canonical ProductMap (source of every output)
|
|
224
229
|
```
|
|
225
230
|
|
|
226
|
-
`
|
|
231
|
+
`map.json` is the only artifact the scan produces — it's what `publish` uploads (source code never leaves the machine) and what the MCP tools read and write. Add `.alkahest/` to your `.gitignore`.
|
|
227
232
|
|
|
228
233
|
## Incremental & auto-refresh
|
|
229
234
|
|
|
@@ -263,7 +268,6 @@ The single source of truth for the design is [`ALKAHEST.md`](./ALKAHEST.md).
|
|
|
263
268
|
|
|
264
269
|
## License
|
|
265
270
|
|
|
266
|
-
MIT — see [LICENSE](./LICENSE). This covers everything in this repository
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
closed codebase.
|
|
271
|
+
MIT — see [LICENSE](./LICENSE). This covers everything in this repository
|
|
272
|
+
(the scanner, the adapters, and the MCP server). The hosted service at
|
|
273
|
+
alkahest.app — including the map viewer — is a separate, closed codebase.
|
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import { scan } from "./commands/scan.js";
|
|
5
|
-
import { view } from "./commands/view.js";
|
|
6
5
|
import { mcp } from "./commands/mcp.js";
|
|
7
6
|
import { hook } from "./commands/hook.js";
|
|
8
7
|
import { publish } from "./commands/publish.js";
|
|
@@ -24,19 +23,13 @@ program
|
|
|
24
23
|
.version(pkg.version);
|
|
25
24
|
program
|
|
26
25
|
.command("scan")
|
|
27
|
-
.description("Analyze a project → .alkahest/map.json
|
|
26
|
+
.description("Analyze a project → .alkahest/map.json (incremental by default; view via 'publish')")
|
|
28
27
|
.argument("[path]", "project path to analyze", ".")
|
|
29
28
|
.option("--full", "ignore the baseline and rescan everything", false)
|
|
30
|
-
.option("--open", "open the dashboard right after scanning", false)
|
|
31
29
|
.action(async (path, opts) => {
|
|
32
30
|
await scan(path, opts);
|
|
33
31
|
await maybeNotifyUpdate();
|
|
34
32
|
});
|
|
35
|
-
program
|
|
36
|
-
.command("view")
|
|
37
|
-
.description("open the .alkahest/ dashboard via a local server")
|
|
38
|
-
.argument("[path]", "project path", ".")
|
|
39
|
-
.action((path) => view(path));
|
|
40
33
|
program
|
|
41
34
|
.command("login")
|
|
42
35
|
.description("save your personal publish token (from the web app) so 'publish' can authenticate")
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/scan.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
export interface ScanOptions {
|
|
2
2
|
/** Ignore the baseline and rescan everything (ALKAHEST.md §10) */
|
|
3
3
|
full: boolean;
|
|
4
|
-
/** Open the dashboard right after scanning */
|
|
5
|
-
open: boolean;
|
|
6
4
|
}
|
|
7
5
|
/**
|
|
8
|
-
* Analyze → `.alkahest/map.json`
|
|
9
|
-
*
|
|
6
|
+
* Analyze → `.alkahest/map.json` (ALKAHEST.md §4). The core pipeline lives in
|
|
7
|
+
* runScan; this only adds logging. Viewing the map happens on the hosted viewer:
|
|
8
|
+
* run `alkahest publish` (token from the web app) for a shareable link.
|
|
10
9
|
*/
|
|
11
10
|
export declare function scan(path: string, options: ScanOptions): Promise<void>;
|
package/dist/commands/scan.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { relative, resolve } from "node:path";
|
|
2
2
|
import { runScan } from "../core/pipeline.js";
|
|
3
|
-
import { serveDashboard } from "../core/serve.js";
|
|
4
3
|
/**
|
|
5
|
-
* Analyze → `.alkahest/map.json`
|
|
6
|
-
*
|
|
4
|
+
* Analyze → `.alkahest/map.json` (ALKAHEST.md §4). The core pipeline lives in
|
|
5
|
+
* runScan; this only adds logging. Viewing the map happens on the hosted viewer:
|
|
6
|
+
* run `alkahest publish` (token from the web app) for a shareable link.
|
|
7
7
|
*/
|
|
8
8
|
export async function scan(path, options) {
|
|
9
9
|
const projectRoot = resolve(path);
|
|
@@ -19,11 +19,10 @@ export async function scan(path, options) {
|
|
|
19
19
|
console.log(` framework=${map.meta.framework} router=${map.meta.router} screens=${map.screens.length} · ${mode}`);
|
|
20
20
|
const unresolvedNav = map.transitions.filter((t) => t.to === null).length;
|
|
21
21
|
const unresolvedCall = map.calls.filter((c) => c.to === null).length;
|
|
22
|
-
console.log(` → ${relative(projectRoot, outFile) || outFile}
|
|
22
|
+
console.log(` → ${relative(projectRoot, outFile) || outFile}`);
|
|
23
23
|
console.log(` screens=${map.screens.length} resources=${map.resources.length} ` +
|
|
24
24
|
`transitions=${map.transitions.length}(unresolved ${unresolvedNav}) ` +
|
|
25
25
|
`calls=${map.calls.length}(unresolved ${unresolvedCall})`);
|
|
26
|
-
|
|
27
|
-
await serveDashboard(projectRoot);
|
|
26
|
+
console.log(` view it on the hosted viewer: alkahest publish (token: alkahest.app → Account)`);
|
|
28
27
|
}
|
|
29
28
|
//# sourceMappingURL=scan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAO9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAY,EAAE,OAAoB;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,qBAAqB,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,KAAK,CAAC,MAAM,eAAe,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9G,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IAEnH,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CACT,aAAa,GAAG,CAAC,OAAO,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;QAClE,eAAe,GAAG,CAAC,WAAW,CAAC,MAAM,eAAe,aAAa,IAAI;QACrE,SAAS,GAAG,CAAC,KAAK,CAAC,MAAM,eAAe,cAAc,GAAG,CAC5D,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;AACnG,CAAC"}
|
package/dist/core/emit.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { ProductMap } from "./types.js";
|
|
2
2
|
/** Output folder name (ALKAHEST.md §5). */
|
|
3
3
|
export declare const OUTPUT_DIR = ".alkahest";
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Serializes the ProductMap to `<projectRoot>/.alkahest/map.json`. Returns the path.
|
|
6
|
+
* This is the only local artifact — the map is VIEWED on the hosted viewer via `publish`
|
|
7
|
+
* (the local dashboard/`view` path was removed; maps live on alkahest.app).
|
|
8
|
+
*/
|
|
5
9
|
export declare function emitMap(projectRoot: string, map: ProductMap): string;
|
|
6
|
-
/** Generates the self-contained dashboard at `<projectRoot>/.alkahest/index.html`. Returns the path. */
|
|
7
|
-
export declare function emitDashboard(projectRoot: string, map: ProductMap): string;
|
package/dist/core/emit.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { renderDashboard } from "./dashboard.js";
|
|
4
3
|
/** Output folder name (ALKAHEST.md §5). */
|
|
5
4
|
export const OUTPUT_DIR = ".alkahest";
|
|
6
5
|
function ensureDir(projectRoot) {
|
|
@@ -8,16 +7,14 @@ function ensureDir(projectRoot) {
|
|
|
8
7
|
mkdirSync(dir, { recursive: true });
|
|
9
8
|
return dir;
|
|
10
9
|
}
|
|
11
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Serializes the ProductMap to `<projectRoot>/.alkahest/map.json`. Returns the path.
|
|
12
|
+
* This is the only local artifact — the map is VIEWED on the hosted viewer via `publish`
|
|
13
|
+
* (the local dashboard/`view` path was removed; maps live on alkahest.app).
|
|
14
|
+
*/
|
|
12
15
|
export function emitMap(projectRoot, map) {
|
|
13
16
|
const file = join(ensureDir(projectRoot), "map.json");
|
|
14
17
|
writeFileSync(file, JSON.stringify(map, null, 2) + "\n");
|
|
15
18
|
return file;
|
|
16
19
|
}
|
|
17
|
-
/** Generates the self-contained dashboard at `<projectRoot>/.alkahest/index.html`. Returns the path. */
|
|
18
|
-
export function emitDashboard(projectRoot, map) {
|
|
19
|
-
const file = join(ensureDir(projectRoot), "index.html");
|
|
20
|
-
writeFileSync(file, renderDashboard(map));
|
|
21
|
-
return file;
|
|
22
|
-
}
|
|
23
20
|
//# sourceMappingURL=emit.js.map
|
package/dist/core/emit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/core/emit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/core/emit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC,SAAS,SAAS,CAAC,WAAmB;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,WAAmB,EAAE,GAAe;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;IACtD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/core/pipeline.js
CHANGED
|
@@ -3,7 +3,7 @@ import { join } from "node:path";
|
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import { selectAdapter } from "./adapters/index.js";
|
|
5
5
|
import { buildMap, screenFromRaw, resolveTransitions, resolveContains, resolveCalls, assembleMap, isExternalUrl, } from "./resolve.js";
|
|
6
|
-
import { emitMap,
|
|
6
|
+
import { emitMap, OUTPUT_DIR } from "./emit.js";
|
|
7
7
|
import { hashContent } from "./hash.js";
|
|
8
8
|
const require = createRequire(import.meta.url);
|
|
9
9
|
const pkg = require("../../package.json");
|
|
@@ -32,7 +32,6 @@ export function runScan(projectRoot, options = {}) {
|
|
|
32
32
|
? incrementalBuild(adapter, files, hashes, prev, projectRoot)
|
|
33
33
|
: fullBuild(adapter, files, hashes, projectRoot);
|
|
34
34
|
const outFile = emitMap(projectRoot, result.map);
|
|
35
|
-
emitDashboard(projectRoot, result.map);
|
|
36
35
|
return { ...result, outFile };
|
|
37
36
|
}
|
|
38
37
|
/** A dep can vanish between discover and hash (deleted component); treat it as empty, not fatal. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAA0D,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EACL,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Alkahest core data model — the implementation of ALKAHEST.md §3.
|
|
3
3
|
*
|
|
4
|
-
* `map.json` is the canonical serialization of ProductMap; the
|
|
5
|
-
* and
|
|
6
|
-
* ALKAHEST.md first.
|
|
4
|
+
* `map.json` is the canonical serialization of ProductMap; the hosted viewer
|
|
5
|
+
* (via publish) and the MCP tools all read this structure. If the model changes,
|
|
6
|
+
* update ALKAHEST.md first.
|
|
7
7
|
*/
|
|
8
8
|
/** A source code location — clickable to jump in an editor. */
|
|
9
9
|
export interface SourceLoc {
|
|
@@ -38,7 +38,7 @@ export interface Screen {
|
|
|
38
38
|
title: string;
|
|
39
39
|
/** Agent-written one-liner "what the user does on this screen" — empty until set via MCP */
|
|
40
40
|
summary: string;
|
|
41
|
-
/** Agent-written PRD/requirements markdown for this screen — empty until set via MCP. Shown in the
|
|
41
|
+
/** Agent-written PRD/requirements markdown for this screen — empty until set via MCP. Shown in the hosted viewer's panel. */
|
|
42
42
|
prd?: string;
|
|
43
43
|
features: Feature[];
|
|
44
44
|
/** Names of the main components used on this screen */
|
package/dist/core/types.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Alkahest core data model — the implementation of ALKAHEST.md §3.
|
|
3
3
|
*
|
|
4
|
-
* `map.json` is the canonical serialization of ProductMap; the
|
|
5
|
-
* and
|
|
6
|
-
* ALKAHEST.md first.
|
|
4
|
+
* `map.json` is the canonical serialization of ProductMap; the hosted viewer
|
|
5
|
+
* (via publish) and the MCP tools all read this structure. If the model changes,
|
|
6
|
+
* update ALKAHEST.md first.
|
|
7
7
|
*/
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=types.js.map
|
package/dist/mcp/server.js
CHANGED
|
@@ -3,7 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { createRequire } from "node:module";
|
|
5
5
|
import { runScan, loadOrScan, loadMap } from "../core/pipeline.js";
|
|
6
|
-
import { emitMap
|
|
6
|
+
import { emitMap } from "../core/emit.js";
|
|
7
7
|
import { publishMap } from "../core/publish.js";
|
|
8
8
|
import { pullComments, resolveComment, enrichComments, postComment, resolveNode, fileCommentsIssue } from "../core/comments.js";
|
|
9
9
|
import { pullIssues, createIssue, updateIssue, deriveIssueStates, terminalStatuses, pullIssueComments, postIssueComment, resolveIssueComment, mapIssue, } from "../core/issues.js";
|
|
@@ -26,8 +26,9 @@ export function buildServer() {
|
|
|
26
26
|
const rootOf = (path) => resolve(path ?? process.cwd());
|
|
27
27
|
server.registerTool("scan", {
|
|
28
28
|
title: "Scan project",
|
|
29
|
-
description: "Statically analyze a React/Next project to create/update a product map (.alkahest/map.json
|
|
30
|
-
"Extracts screens, transitions between screens, and the API/data calls each screen makes. Returns a result summary (counts)."
|
|
29
|
+
description: "Statically analyze a React/Next project to create/update a product map (.alkahest/map.json). " +
|
|
30
|
+
"Extracts screens, transitions between screens, and the API/data calls each screen makes. Returns a result summary (counts). " +
|
|
31
|
+
"The map is viewed on the hosted viewer — run the publish tool for a shareable link.",
|
|
31
32
|
inputSchema: { path: z.string().optional().describe("Project root (default: cwd)") },
|
|
32
33
|
}, async ({ path }) => {
|
|
33
34
|
const result = runScan(rootOf(path));
|
|
@@ -103,11 +104,11 @@ export function buildServer() {
|
|
|
103
104
|
.map((c) => ({ screen: c.from, via: c.trigger, loc: c.loc })),
|
|
104
105
|
})));
|
|
105
106
|
});
|
|
106
|
-
// ---- write-back tools: the agent saves its prose into map.json
|
|
107
|
+
// ---- write-back tools: the agent saves its prose into map.json; publish shows it on the hosted viewer ----
|
|
107
108
|
server.registerTool("set_summary", {
|
|
108
109
|
title: "Set screen summary",
|
|
109
|
-
description: "Save a one-line, PM-friendly summary ('what the user does here') onto a screen in map.json
|
|
110
|
-
"
|
|
110
|
+
description: "Save a one-line, PM-friendly summary ('what the user does here') onto a screen in map.json — it appears " +
|
|
111
|
+
"in the screen's panel on the hosted viewer after the next publish. Write the summary yourself from get_screen data.",
|
|
111
112
|
inputSchema: {
|
|
112
113
|
screen: z.string().describe("screen id / route / title"),
|
|
113
114
|
summary: z.string().describe("a 1-2 sentence summary in the user's language"),
|
|
@@ -116,8 +117,8 @@ export function buildServer() {
|
|
|
116
117
|
}, async ({ screen, summary, path }) => writeField(rootOf(path), screen, (s) => { s.summary = summary; }));
|
|
117
118
|
server.registerTool("set_prd", {
|
|
118
119
|
title: "Set screen PRD",
|
|
119
|
-
description: "Save a PRD/requirements markdown onto a screen in map.json
|
|
120
|
-
"
|
|
120
|
+
description: "Save a PRD/requirements markdown onto a screen in map.json — it appears in the screen's panel on the " +
|
|
121
|
+
"hosted viewer (rendered) after the next publish. Write the PRD yourself from get_screen / who_calls data.",
|
|
121
122
|
inputSchema: {
|
|
122
123
|
screen: z.string().describe("screen id / route / title"),
|
|
123
124
|
prd: z.string().describe("PRD/requirements as markdown"),
|
|
@@ -1109,7 +1110,7 @@ function text(t) {
|
|
|
1109
1110
|
function json(obj) {
|
|
1110
1111
|
return { content: [{ type: "text", text: JSON.stringify(obj, null, 2) }] };
|
|
1111
1112
|
}
|
|
1112
|
-
/** Load map.json, mutate the matched screen, then re-emit map.json
|
|
1113
|
+
/** Load map.json, mutate the matched screen, then re-emit map.json. */
|
|
1113
1114
|
function writeField(root, screenArg, mutate) {
|
|
1114
1115
|
const map = loadMap(root);
|
|
1115
1116
|
if (!map)
|
|
@@ -1119,8 +1120,7 @@ function writeField(root, screenArg, mutate) {
|
|
|
1119
1120
|
return text(`Screen not found: ${screenArg}`);
|
|
1120
1121
|
mutate(s);
|
|
1121
1122
|
emitMap(root, map);
|
|
1122
|
-
|
|
1123
|
-
return text(`Saved to ${s.id}. Dashboard updated.`);
|
|
1123
|
+
return text(`Saved to ${s.id}. Publish to update the hosted map.`);
|
|
1124
1124
|
}
|
|
1125
1125
|
function matchScreen(map, arg) {
|
|
1126
1126
|
const norm = (s) => s.toLowerCase().replace(/^\/+|\/+$/g, "");
|