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 +130 -56
- package/VERSION +1 -1
- package/bin/install +0 -3
- package/cli/Cargo.lock +327 -1
- package/cli/Cargo.toml +4 -1
- package/cli/src/cmd/hook.rs +263 -3
- package/cli/src/cmd/version.rs +2 -2
- package/cli/tests/e2e_check_validates_prd.rs +104 -0
- package/cli/tests/e2e_common.rs +217 -0
- package/cli/tests/e2e_cross_cwd.rs +91 -0
- package/cli/tests/e2e_fallback.rs +175 -0
- package/cli/tests/e2e_migrate_v05.rs +299 -0
- package/cli/tests/e2e_no_shell_remains.rs +53 -0
- package/cli/tests/e2e_run_missing_context.rs +129 -0
- package/cli/tests/e2e_smart_init.rs +194 -0
- package/cli/tests/e2e_v1_smoke.rs +261 -0
- package/core/colleagues/manifest.json +1 -1
- package/core/manifest.json +1 -1
- package/core/workflows/update.md +5 -5
- package/package.json +1 -1
- package/bootstrap.sh +0 -95
- package/core/hooks/context-monitor.sh +0 -5
- package/core/hooks/manifest-tracker.sh +0 -62
- package/core/hooks/statusline.sh +0 -12
- package/core/hooks/update-checker.sh +0 -24
package/README.md
CHANGED
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
# Compass
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/compass-st)
|
|
4
|
+
[](https://www.npmjs.com/package/compass-st)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[]()
|
|
7
|
+
[](https://nodejs.org)
|
|
4
8
|
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
49
|
+
## Pipeline
|
|
22
50
|
|
|
23
51
|
```
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
61
|
+
Each Colleague runs in a fresh context with a strict `context_pointers` file list — no context rot, no scope creep.
|
|
29
62
|
|
|
30
|
-
|
|
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
|
-
###
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
|
49
|
-
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
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
|
|
54
|
-
| `
|
|
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
|
-
| `
|
|
60
|
-
|
|
90
|
+
| `feedback` | Structured user-feedback rollup |
|
|
91
|
+
|
|
92
|
+
### Project + setup
|
|
61
93
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
| `
|
|
66
|
-
| `setup` |
|
|
67
|
-
| `
|
|
68
|
-
| `
|
|
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,
|
|
76
|
-
| Product Writer |
|
|
77
|
-
| Story Breaker |
|
|
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
|
-
|
|
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
|
-
|
|
141
|
+
Tested with Claude Opus/Sonnet, GPT-4, Gemini, GLM, DeepSeek, Qwen.
|
|
88
142
|
|
|
89
|
-
|
|
143
|
+
---
|
|
90
144
|
|
|
91
145
|
## Update
|
|
92
146
|
|
|
93
147
|
```bash
|
|
94
|
-
|
|
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
|
-
|
|
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
|
+
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.
|
|
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.
|
|
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"
|