compass-st 1.1.2 → 1.2.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 CHANGED
@@ -1,8 +1,26 @@
1
1
  # Compass
2
2
 
3
- AI-powered toolkit for Product Owners & Product Managers.
3
+ [![npm version](https://img.shields.io/npm/v/compass-st.svg?color=cb3837&logo=npm)](https://www.npmjs.com/package/compass-st)
4
+ [![npm downloads](https://img.shields.io/npm/dm/compass-st.svg?color=cb3837)](https://www.npmjs.com/package/compass-st)
5
+ [![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
+ [![platforms](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg)]()
7
+ [![node](https://img.shields.io/badge/node-%E2%89%A516-brightgreen.svg)](https://nodejs.org)
4
8
 
5
- Tell Compass what you need it figures out the rest.
9
+ > AI command library for Product Owners & Product Managers.
10
+ > Brief what you need — Compass drafts PRDs, epics, and stories with parallel AI Colleagues.
11
+
12
+ ---
13
+
14
+ ## Why Compass
15
+
16
+ Writing product documentation — PRDs, epics, user stories — is mechanical work that blocks the interesting decisions. Compass hands that work to AI Colleagues with opinionated workflows, Silver-Tiger-style folder structure, and a project registry that survives every new session and IDE restart.
17
+
18
+ - **One brief → full deliverables.** `/compass:brief "2FA for login"` → research + PRD + stories, in parallel.
19
+ - **Session-proof.** Switch IDEs, close your laptop, change shells — `compass-cli project resolve` always knows which project you're on.
20
+ - **Validator gate.** `compass-cli validate prd` blocks delivery on bad flows or dangling cross-references.
21
+ - **Silver Tiger domains.** `ard`, `platform`, `communication`, `internal`, `access`, `ai` — built-in; drop config into `CLAUDE.md` and every PO workflow inherits the domain context.
22
+
23
+ ---
6
24
 
7
25
  ## Install
8
26
 
@@ -10,96 +28,152 @@ Tell Compass what you need — it figures out the rest.
10
28
  npx compass-st
11
29
  ```
12
30
 
13
- Or via curl:
31
+ **Requires:** macOS or Linux, Node ≥ 16. Rust toolchain is optional — without it the markdown workflows still work; with it you also get the `compass-cli` binary (validators, project registry, memory).
32
+
33
+ ---
34
+
35
+ ## Quick start
14
36
 
15
37
  ```bash
16
- curl -fsSL https://raw.githubusercontent.com/mrmandovn/compass/main/bootstrap.sh | bash
38
+ /compass:init # first-time: global prefs, then create project
39
+ /compass:brief "add 2FA" # kick off the full PO pipeline
40
+ /compass:plan # review the DAG
41
+ /compass:run # Colleagues execute in parallel
42
+ /compass:check # validate + deliver to Jira / Confluence
17
43
  ```
18
44
 
19
- *macOS / Linux*
45
+ `/compass:project list` shows every registered project; `/compass:project use <path>` switches the active one. Commands run from **any cwd** — the active project is remembered in `~/.compass/projects.json`.
46
+
47
+ ---
20
48
 
21
- ## Get started
49
+ ## Pipeline
22
50
 
23
51
  ```
24
- /compass:init # one-time setup
25
- /compass:brief <task> # describe what you need
52
+ ┌──────────┐ ┌────────┐ ┌───────┐ ┌────────┐
53
+ brief │ plan │ │ run │ → │ check │
54
+ └──────────┘ └────────┘ └───────┘ └────────┘
55
+ │ │ │ │
56
+ clarify + DAG of wave wave-by-wave validator
57
+ Colleague + budget parallel + deliver
58
+ selection Colleagues
26
59
  ```
27
60
 
28
- ## How it works
61
+ Each Colleague runs in a fresh context with a strict `context_pointers` file list — no context rot, no scope creep.
29
62
 
30
- 1. `/compass:brief` — Describe what you need
31
- 2. `/compass:plan` — Review the execution plan
32
- 3. `/compass:run` — Colleagues work in parallel
33
- 4. `/compass:check` — Validate and deliver
63
+ ---
34
64
 
35
65
  ## Commands
36
66
 
37
- ### Workflow
38
- | Command | What it does |
39
- |---------|-------------|
40
- | `brief` | Describe what you need — Compass picks Colleagues |
41
- | `plan` | Review execution plan |
42
- | `run` | Execute with parallel Colleagues |
43
- | `check` | Validate outputs, deliver to Jira/Confluence |
44
-
45
- ### Individual
46
- | Command | What it does |
47
- |---------|-------------|
48
- | `prd` | Write a PRD (no code) |
49
- | `story` | User Story + AC (Given/When/Then) |
50
- | `research` | Competitive, market, user feedback, tech eval |
51
- | `ideate` | Brainstorm 5-10 ideas |
67
+ ### Pipeline
68
+
69
+ | Command | Action |
70
+ |---|---|
71
+ | `brief <task>` | Clarify scope, pick Colleagues, write session context |
72
+ | `plan` | Emit `plan.json` DAG with budgets and dependencies |
73
+ | `run` | Execute wave-by-wave with parallel Colleagues |
74
+ | `check` | Validate outputs, deliver to integrations |
75
+
76
+ ### Artifacts
77
+
78
+ | Command | Action |
79
+ |---|---|
80
+ | `prd` | Write a PRD following the 11-section template |
81
+ | `story` | User Stories + AC in Given/When/Then |
82
+ | `epic` | Scaffold an epic folder + `user-stories/` + `tasks/` |
83
+ | `research` | Competitive / market / user / tech research |
84
+ | `ideate` | Brainstorm 5–10 feature ideas |
52
85
  | `prioritize` | Score backlog (RICE / MoSCoW / Kano) |
53
- | `prototype` | UI prototype with UI/UX Pro Max |
54
- | `epic` | Create epic from PRD |
55
- | `feedback` | Quick feedback collection |
56
- | `roadmap` | Product roadmap with gantt |
86
+ | `prototype` | UI prototype via Figma integration |
87
+ | `roadmap` | Product roadmap with Gantt |
57
88
  | `sprint` | Sprint planning by capacity |
58
89
  | `release` | Generate release notes |
59
- | `status` | Project dashboard |
60
- | `undo` | Restore previous version |
90
+ | `feedback` | Structured user-feedback rollup |
91
+
92
+ ### Project + setup
61
93
 
62
- ### Setup
63
- | Command | What it does |
64
- |---------|-------------|
65
- | `init` | Set up project |
66
- | `setup` | Manage integrations (Jira, Figma, Confluence, Vercel) |
67
- | `update` | Update Compass |
68
- | `help` | Show commands |
94
+ | Command | Action |
95
+ |---|---|
96
+ | `init` | First-time global wizard → create project → update config |
97
+ | `project list\|use <path>` | Inspect or switch the active project |
98
+ | `setup` | Configure Jira / Figma / Confluence / Vercel |
99
+ | `status` | Session + project health |
100
+ | `migrate` | Migrate v0.x state to v1.0 (idempotent) |
101
+ | `update` / `help` / `undo` | Self-update, help, restore previous artifact |
102
+
103
+ ---
69
104
 
70
105
  ## AI Colleagues
71
106
 
72
107
  | Colleague | Role |
73
- |-----------|------|
74
- | Research Aggregator | User feedback, competitive intel |
75
- | Market Analyst | Market sizing, competitors |
76
- | Product Writer | Write PRD |
77
- | Story Breaker | Break PRD into stories |
78
- | Prioritizer | Score backlog |
79
- | Consistency Reviewer | Cross-doc validation |
80
- | UX Reviewer | User flows, UX consistency |
81
- | Stakeholder Communicator | Executive summaries |
108
+ |---|---|
109
+ | Research Aggregator | User feedback, competitive intel, tech eval |
110
+ | Market Analyst | Market sizing, competitor landscape |
111
+ | Product Writer | PRD author — follows the 11-section template exactly |
112
+ | Story Breaker | PRD user stories with AC |
113
+ | Backlog Prioritizer | Score and rank backlog |
114
+ | Consistency Reviewer | Cross-doc validation, TBD hunt |
115
+ | UX Reviewer | User flows, UX consistency, accessibility |
116
+ | Stakeholder Communicator | Executive summaries, release notes |
117
+
118
+ ---
119
+
120
+ ## Architecture highlights (v1.1.x)
121
+
122
+ - **Global project registry** at `~/.compass/projects.json` — every workflow resolves via `compass-cli project resolve`; no more "No compass config found" on fresh sessions.
123
+ - **Per-task `context_pointers`** in `plan.json` — strict file scope per Colleague, enforced by validator.
124
+ - **PRD taste rules** `R-FLOW` (ordered numeric lists in User Flows) + `R-XREF` (every `[LINK-…]` resolves) — block delivery on bad specs.
125
+ - **Durable project memory** `.compass/.state/project-memory.json` — FIFO 10 sessions with aggregate preservation across rotation.
126
+ - **Silver Tiger domains** — `ard | platform | communication | internal | access | ai` written directly into `CLAUDE.md`, so Claude Code auto-loads domain context every turn.
127
+ - **Owner-only perms** on `~/.compass/` (0o700) — registry + global config protected on shared hosts.
128
+
129
+ ---
82
130
 
83
131
  ## Compatibility
84
132
 
85
- Works with any AI model. Install puts commands in `~/.claude/commands/` which both Claude Code and OpenCode read.
133
+ Commands live in `~/.claude/commands/compass/`, which both Claude Code and OpenCode read. Install also symlinks `compass-cli` into a PATH directory (prefers `~/.local/bin`, falls back to `/usr/local/bin` or `/opt/homebrew/bin`).
134
+
135
+ For other AI hosts, paste a workflow directly:
136
+
137
+ ```bash
138
+ cat ~/.compass/core/workflows/brief.md
139
+ ```
86
140
 
87
- Paste workflow into any AI: `cat ~/.compass/core/workflows/brief.md`
141
+ Tested with Claude Opus/Sonnet, GPT-4, Gemini, GLM, DeepSeek, Qwen.
88
142
 
89
- Tested with: Claude, GPT, Gemini, GLM, DeepSeek, Qwen.
143
+ ---
90
144
 
91
145
  ## Update
92
146
 
93
147
  ```bash
94
- cd ~/.compass && git fetch origin main && git reset --hard origin/main
148
+ npx compass-st
95
149
  ```
96
150
 
151
+ Re-running the installer is idempotent: it pulls the latest source into `~/.compass/`, rebuilds the CLI, and preserves your `~/.compass/projects.json` + `~/.compass/global-config.json` across the update.
152
+
153
+ ---
154
+
97
155
  ## Uninstall
98
156
 
99
157
  ```bash
100
- rm -rf ~/.compass ~/.claude/commands/compass
158
+ npx compass-st --uninstall # removes commands, keeps ~/.compass/ source
159
+ rm -rf ~/.compass # remove everything (and user-level state)
101
160
  ```
102
161
 
162
+ ---
163
+
164
+ ## Contributing
165
+
166
+ Bug reports + pull requests welcome at [mrmandovn/compass](https://github.com/mrmandovn/compass/issues).
167
+
168
+ Development:
169
+
170
+ ```bash
171
+ git clone https://github.com/mrmandovn/compass.git ~/.compass
172
+ cd ~/.compass/cli && cargo build --release && cargo test
173
+ ```
174
+
175
+ ---
176
+
103
177
  ## License
104
178
 
105
- MIT
179
+ [MIT](LICENSE) © Mando
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.2
1
+ 1.2.0
package/bin/install CHANGED
@@ -47,9 +47,6 @@ if (hasHelp) {
47
47
  npx compass-st --local Install to ./.claude/ only
48
48
  npx compass-st --uninstall Remove Compass
49
49
  npx compass-st --help Show this help
50
-
51
- ${bold('ALTERNATIVE')}
52
- curl -fsSL https://raw.githubusercontent.com/mrmandovn/compass/main/bootstrap.sh | bash
53
50
  `);
54
51
  process.exit(0);
55
52
  }
package/cli/Cargo.lock CHANGED
@@ -11,6 +11,18 @@ dependencies = [
11
11
  "memchr",
12
12
  ]
13
13
 
14
+ [[package]]
15
+ name = "anyhow"
16
+ version = "1.0.102"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
19
+
20
+ [[package]]
21
+ name = "bitflags"
22
+ version = "2.11.1"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
25
+
14
26
  [[package]]
15
27
  name = "block-buffer"
16
28
  version = "0.10.4"
@@ -28,7 +40,7 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
28
40
 
29
41
  [[package]]
30
42
  name = "compass-cli"
31
- version = "1.1.2"
43
+ version = "1.2.0"
32
44
  dependencies = [
33
45
  "fs2",
34
46
  "hex",
@@ -36,6 +48,7 @@ dependencies = [
36
48
  "serde",
37
49
  "serde_json",
38
50
  "sha2",
51
+ "tempfile",
39
52
  ]
40
53
 
41
54
  [[package]]
@@ -67,6 +80,34 @@ dependencies = [
67
80
  "crypto-common",
68
81
  ]
69
82
 
83
+ [[package]]
84
+ name = "equivalent"
85
+ version = "1.0.2"
86
+ source = "registry+https://github.com/rust-lang/crates.io-index"
87
+ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
88
+
89
+ [[package]]
90
+ name = "errno"
91
+ version = "0.3.14"
92
+ source = "registry+https://github.com/rust-lang/crates.io-index"
93
+ checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
94
+ dependencies = [
95
+ "libc",
96
+ "windows-sys",
97
+ ]
98
+
99
+ [[package]]
100
+ name = "fastrand"
101
+ version = "2.4.1"
102
+ source = "registry+https://github.com/rust-lang/crates.io-index"
103
+ checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
104
+
105
+ [[package]]
106
+ name = "foldhash"
107
+ version = "0.1.5"
108
+ source = "registry+https://github.com/rust-lang/crates.io-index"
109
+ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
110
+
70
111
  [[package]]
71
112
  name = "fs2"
72
113
  version = "0.4.3"
@@ -87,30 +128,116 @@ dependencies = [
87
128
  "version_check",
88
129
  ]
89
130
 
131
+ [[package]]
132
+ name = "getrandom"
133
+ version = "0.4.2"
134
+ source = "registry+https://github.com/rust-lang/crates.io-index"
135
+ checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
136
+ dependencies = [
137
+ "cfg-if",
138
+ "libc",
139
+ "r-efi",
140
+ "wasip2",
141
+ "wasip3",
142
+ ]
143
+
144
+ [[package]]
145
+ name = "hashbrown"
146
+ version = "0.15.5"
147
+ source = "registry+https://github.com/rust-lang/crates.io-index"
148
+ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
149
+ dependencies = [
150
+ "foldhash",
151
+ ]
152
+
153
+ [[package]]
154
+ name = "hashbrown"
155
+ version = "0.17.0"
156
+ source = "registry+https://github.com/rust-lang/crates.io-index"
157
+ checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51"
158
+
159
+ [[package]]
160
+ name = "heck"
161
+ version = "0.5.0"
162
+ source = "registry+https://github.com/rust-lang/crates.io-index"
163
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
164
+
90
165
  [[package]]
91
166
  name = "hex"
92
167
  version = "0.4.3"
93
168
  source = "registry+https://github.com/rust-lang/crates.io-index"
94
169
  checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
95
170
 
171
+ [[package]]
172
+ name = "id-arena"
173
+ version = "2.3.0"
174
+ source = "registry+https://github.com/rust-lang/crates.io-index"
175
+ checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
176
+
177
+ [[package]]
178
+ name = "indexmap"
179
+ version = "2.14.0"
180
+ source = "registry+https://github.com/rust-lang/crates.io-index"
181
+ checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
182
+ dependencies = [
183
+ "equivalent",
184
+ "hashbrown 0.17.0",
185
+ "serde",
186
+ "serde_core",
187
+ ]
188
+
96
189
  [[package]]
97
190
  name = "itoa"
98
191
  version = "1.0.18"
99
192
  source = "registry+https://github.com/rust-lang/crates.io-index"
100
193
  checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
101
194
 
195
+ [[package]]
196
+ name = "leb128fmt"
197
+ version = "0.1.0"
198
+ source = "registry+https://github.com/rust-lang/crates.io-index"
199
+ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
200
+
102
201
  [[package]]
103
202
  name = "libc"
104
203
  version = "0.2.184"
105
204
  source = "registry+https://github.com/rust-lang/crates.io-index"
106
205
  checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af"
107
206
 
207
+ [[package]]
208
+ name = "linux-raw-sys"
209
+ version = "0.12.1"
210
+ source = "registry+https://github.com/rust-lang/crates.io-index"
211
+ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
212
+
213
+ [[package]]
214
+ name = "log"
215
+ version = "0.4.29"
216
+ source = "registry+https://github.com/rust-lang/crates.io-index"
217
+ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
218
+
108
219
  [[package]]
109
220
  name = "memchr"
110
221
  version = "2.8.0"
111
222
  source = "registry+https://github.com/rust-lang/crates.io-index"
112
223
  checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
113
224
 
225
+ [[package]]
226
+ name = "once_cell"
227
+ version = "1.21.4"
228
+ source = "registry+https://github.com/rust-lang/crates.io-index"
229
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
230
+
231
+ [[package]]
232
+ name = "prettyplease"
233
+ version = "0.2.37"
234
+ source = "registry+https://github.com/rust-lang/crates.io-index"
235
+ checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
236
+ dependencies = [
237
+ "proc-macro2",
238
+ "syn",
239
+ ]
240
+
114
241
  [[package]]
115
242
  name = "proc-macro2"
116
243
  version = "1.0.106"
@@ -129,6 +256,12 @@ dependencies = [
129
256
  "proc-macro2",
130
257
  ]
131
258
 
259
+ [[package]]
260
+ name = "r-efi"
261
+ version = "6.0.0"
262
+ source = "registry+https://github.com/rust-lang/crates.io-index"
263
+ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
264
+
132
265
  [[package]]
133
266
  name = "regex"
134
267
  version = "1.12.3"
@@ -158,6 +291,25 @@ version = "0.8.10"
158
291
  source = "registry+https://github.com/rust-lang/crates.io-index"
159
292
  checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
160
293
 
294
+ [[package]]
295
+ name = "rustix"
296
+ version = "1.1.4"
297
+ source = "registry+https://github.com/rust-lang/crates.io-index"
298
+ checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
299
+ dependencies = [
300
+ "bitflags",
301
+ "errno",
302
+ "libc",
303
+ "linux-raw-sys",
304
+ "windows-sys",
305
+ ]
306
+
307
+ [[package]]
308
+ name = "semver"
309
+ version = "1.0.28"
310
+ source = "registry+https://github.com/rust-lang/crates.io-index"
311
+ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
312
+
161
313
  [[package]]
162
314
  name = "serde"
163
315
  version = "1.0.228"
@@ -223,6 +375,19 @@ dependencies = [
223
375
  "unicode-ident",
224
376
  ]
225
377
 
378
+ [[package]]
379
+ name = "tempfile"
380
+ version = "3.27.0"
381
+ source = "registry+https://github.com/rust-lang/crates.io-index"
382
+ checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
383
+ dependencies = [
384
+ "fastrand",
385
+ "getrandom",
386
+ "once_cell",
387
+ "rustix",
388
+ "windows-sys",
389
+ ]
390
+
226
391
  [[package]]
227
392
  name = "typenum"
228
393
  version = "1.19.0"
@@ -235,12 +400,70 @@ version = "1.0.24"
235
400
  source = "registry+https://github.com/rust-lang/crates.io-index"
236
401
  checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
237
402
 
403
+ [[package]]
404
+ name = "unicode-xid"
405
+ version = "0.2.6"
406
+ source = "registry+https://github.com/rust-lang/crates.io-index"
407
+ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
408
+
238
409
  [[package]]
239
410
  name = "version_check"
240
411
  version = "0.9.5"
241
412
  source = "registry+https://github.com/rust-lang/crates.io-index"
242
413
  checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
243
414
 
415
+ [[package]]
416
+ name = "wasip2"
417
+ version = "1.0.2+wasi-0.2.9"
418
+ source = "registry+https://github.com/rust-lang/crates.io-index"
419
+ checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
420
+ dependencies = [
421
+ "wit-bindgen",
422
+ ]
423
+
424
+ [[package]]
425
+ name = "wasip3"
426
+ version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
427
+ source = "registry+https://github.com/rust-lang/crates.io-index"
428
+ checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
429
+ dependencies = [
430
+ "wit-bindgen",
431
+ ]
432
+
433
+ [[package]]
434
+ name = "wasm-encoder"
435
+ version = "0.244.0"
436
+ source = "registry+https://github.com/rust-lang/crates.io-index"
437
+ checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
438
+ dependencies = [
439
+ "leb128fmt",
440
+ "wasmparser",
441
+ ]
442
+
443
+ [[package]]
444
+ name = "wasm-metadata"
445
+ version = "0.244.0"
446
+ source = "registry+https://github.com/rust-lang/crates.io-index"
447
+ checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
448
+ dependencies = [
449
+ "anyhow",
450
+ "indexmap",
451
+ "wasm-encoder",
452
+ "wasmparser",
453
+ ]
454
+
455
+ [[package]]
456
+ name = "wasmparser"
457
+ version = "0.244.0"
458
+ source = "registry+https://github.com/rust-lang/crates.io-index"
459
+ checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
460
+ dependencies = [
461
+ "bitflags",
462
+ "hashbrown 0.15.5",
463
+ "indexmap",
464
+ "semver",
465
+ ]
466
+
244
467
  [[package]]
245
468
  name = "winapi"
246
469
  version = "0.3.9"
@@ -263,6 +486,109 @@ version = "0.4.0"
263
486
  source = "registry+https://github.com/rust-lang/crates.io-index"
264
487
  checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
265
488
 
489
+ [[package]]
490
+ name = "windows-link"
491
+ version = "0.2.1"
492
+ source = "registry+https://github.com/rust-lang/crates.io-index"
493
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
494
+
495
+ [[package]]
496
+ name = "windows-sys"
497
+ version = "0.61.2"
498
+ source = "registry+https://github.com/rust-lang/crates.io-index"
499
+ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
500
+ dependencies = [
501
+ "windows-link",
502
+ ]
503
+
504
+ [[package]]
505
+ name = "wit-bindgen"
506
+ version = "0.51.0"
507
+ source = "registry+https://github.com/rust-lang/crates.io-index"
508
+ checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
509
+ dependencies = [
510
+ "wit-bindgen-rust-macro",
511
+ ]
512
+
513
+ [[package]]
514
+ name = "wit-bindgen-core"
515
+ version = "0.51.0"
516
+ source = "registry+https://github.com/rust-lang/crates.io-index"
517
+ checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
518
+ dependencies = [
519
+ "anyhow",
520
+ "heck",
521
+ "wit-parser",
522
+ ]
523
+
524
+ [[package]]
525
+ name = "wit-bindgen-rust"
526
+ version = "0.51.0"
527
+ source = "registry+https://github.com/rust-lang/crates.io-index"
528
+ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
529
+ dependencies = [
530
+ "anyhow",
531
+ "heck",
532
+ "indexmap",
533
+ "prettyplease",
534
+ "syn",
535
+ "wasm-metadata",
536
+ "wit-bindgen-core",
537
+ "wit-component",
538
+ ]
539
+
540
+ [[package]]
541
+ name = "wit-bindgen-rust-macro"
542
+ version = "0.51.0"
543
+ source = "registry+https://github.com/rust-lang/crates.io-index"
544
+ checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
545
+ dependencies = [
546
+ "anyhow",
547
+ "prettyplease",
548
+ "proc-macro2",
549
+ "quote",
550
+ "syn",
551
+ "wit-bindgen-core",
552
+ "wit-bindgen-rust",
553
+ ]
554
+
555
+ [[package]]
556
+ name = "wit-component"
557
+ version = "0.244.0"
558
+ source = "registry+https://github.com/rust-lang/crates.io-index"
559
+ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
560
+ dependencies = [
561
+ "anyhow",
562
+ "bitflags",
563
+ "indexmap",
564
+ "log",
565
+ "serde",
566
+ "serde_derive",
567
+ "serde_json",
568
+ "wasm-encoder",
569
+ "wasm-metadata",
570
+ "wasmparser",
571
+ "wit-parser",
572
+ ]
573
+
574
+ [[package]]
575
+ name = "wit-parser"
576
+ version = "0.244.0"
577
+ source = "registry+https://github.com/rust-lang/crates.io-index"
578
+ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
579
+ dependencies = [
580
+ "anyhow",
581
+ "id-arena",
582
+ "indexmap",
583
+ "log",
584
+ "semver",
585
+ "serde",
586
+ "serde_derive",
587
+ "serde_json",
588
+ "unicode-xid",
589
+ "wasmparser",
590
+ ]
591
+
266
592
  [[package]]
267
593
  name = "zmij"
268
594
  version = "1.0.21"
package/cli/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "compass-cli"
3
- version = "1.1.2"
3
+ version = "1.2.0"
4
4
  edition = "2021"
5
5
  description = "CLI for Compass — PO/PM AI Toolkit"
6
6
  license = "MIT"
@@ -14,6 +14,9 @@ hex = "0.4"
14
14
  regex = "1"
15
15
  fs2 = "0.4"
16
16
 
17
+ [dev-dependencies]
18
+ tempfile = "3"
19
+
17
20
  [[bin]]
18
21
  name = "compass-cli"
19
22
  path = "src/main.rs"