zcode-acp-server 0.1.0 → 0.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 +98 -1
- package/README.zh-CN.md +81 -1
- package/dist/backend/client.d.ts +12 -4
- package/dist/backend/client.d.ts.map +1 -1
- package/dist/backend/client.js +72 -7
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/credentials.d.ts.map +1 -1
- package/dist/backend/credentials.js +2 -1
- package/dist/backend/credentials.js.map +1 -1
- package/dist/backend/listener.d.ts +12 -4
- package/dist/backend/listener.d.ts.map +1 -1
- package/dist/backend/listener.js +68 -12
- package/dist/backend/listener.js.map +1 -1
- package/dist/backend/types.d.ts +1 -1
- package/dist/backend/types.d.ts.map +1 -1
- package/dist/bin/quota.d.ts +54 -0
- package/dist/bin/quota.d.ts.map +1 -0
- package/dist/bin/quota.js +333 -0
- package/dist/bin/quota.js.map +1 -0
- package/dist/config/auto-compact.d.ts +23 -0
- package/dist/config/auto-compact.d.ts.map +1 -0
- package/dist/config/auto-compact.js +67 -0
- package/dist/config/auto-compact.js.map +1 -0
- package/dist/config/mcp-discovery.d.ts +34 -0
- package/dist/config/mcp-discovery.d.ts.map +1 -0
- package/dist/config/mcp-discovery.js +153 -0
- package/dist/config/mcp-discovery.js.map +1 -0
- package/dist/config/model-cache.d.ts +12 -1
- package/dist/config/model-cache.d.ts.map +1 -1
- package/dist/config/model-cache.js +30 -8
- package/dist/config/model-cache.js.map +1 -1
- package/dist/config/options.d.ts +87 -9
- package/dist/config/options.d.ts.map +1 -1
- package/dist/config/options.js +248 -45
- package/dist/config/options.js.map +1 -1
- package/dist/config/plugin-commands.d.ts +24 -0
- package/dist/config/plugin-commands.d.ts.map +1 -0
- package/dist/config/plugin-commands.js +107 -0
- package/dist/config/plugin-commands.js.map +1 -0
- package/dist/config/provider-registry.d.ts +60 -0
- package/dist/config/provider-registry.d.ts.map +1 -0
- package/dist/config/provider-registry.js +128 -0
- package/dist/config/provider-registry.js.map +1 -0
- package/dist/config/runtime-model.d.ts +54 -18
- package/dist/config/runtime-model.d.ts.map +1 -1
- package/dist/config/runtime-model.js +105 -61
- package/dist/config/runtime-model.js.map +1 -1
- package/dist/config/skill-discovery.d.ts +35 -0
- package/dist/config/skill-discovery.d.ts.map +1 -0
- package/dist/config/skill-discovery.js +188 -0
- package/dist/config/skill-discovery.js.map +1 -0
- package/dist/handlers/background-tasks.d.ts +72 -0
- package/dist/handlers/background-tasks.d.ts.map +1 -0
- package/dist/handlers/background-tasks.js +330 -0
- package/dist/handlers/background-tasks.js.map +1 -0
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +134 -22
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/extensions.d.ts +15 -0
- package/dist/handlers/extensions.d.ts.map +1 -1
- package/dist/handlers/extensions.js +43 -27
- package/dist/handlers/extensions.js.map +1 -1
- package/dist/handlers/io.d.ts +11 -2
- package/dist/handlers/io.d.ts.map +1 -1
- package/dist/handlers/io.js +51 -7
- package/dist/handlers/io.js.map +1 -1
- package/dist/handlers/server-requests.d.ts +20 -4
- package/dist/handlers/server-requests.d.ts.map +1 -1
- package/dist/handlers/server-requests.js +293 -63
- package/dist/handlers/server-requests.js.map +1 -1
- package/dist/handlers/session.d.ts +113 -10
- package/dist/handlers/session.d.ts.map +1 -1
- package/dist/handlers/session.js +876 -220
- package/dist/handlers/session.js.map +1 -1
- package/dist/handlers/slash.d.ts +14 -0
- package/dist/handlers/slash.d.ts.map +1 -1
- package/dist/handlers/slash.js +80 -6
- package/dist/handlers/slash.js.map +1 -1
- package/dist/index.js +38 -4
- package/dist/index.js.map +1 -1
- package/dist/interaction/adapter.d.ts +19 -33
- package/dist/interaction/adapter.d.ts.map +1 -1
- package/dist/interaction/adapter.js +80 -79
- package/dist/interaction/adapter.js.map +1 -1
- package/dist/lazy-sessions.d.ts +35 -0
- package/dist/lazy-sessions.d.ts.map +1 -0
- package/dist/lazy-sessions.js +98 -0
- package/dist/lazy-sessions.js.map +1 -0
- package/dist/quota/cache.d.ts +18 -0
- package/dist/quota/cache.d.ts.map +1 -0
- package/dist/quota/cache.js +32 -0
- package/dist/quota/cache.js.map +1 -0
- package/dist/quota/client.d.ts +30 -0
- package/dist/quota/client.d.ts.map +1 -0
- package/dist/quota/client.js +57 -0
- package/dist/quota/client.js.map +1 -0
- package/dist/quota/color.d.ts +58 -0
- package/dist/quota/color.d.ts.map +1 -0
- package/dist/quota/color.js +95 -0
- package/dist/quota/color.js.map +1 -0
- package/dist/quota/combined.d.ts +66 -0
- package/dist/quota/combined.d.ts.map +1 -0
- package/dist/quota/combined.js +179 -0
- package/dist/quota/combined.js.map +1 -0
- package/dist/quota/format.d.ts +105 -0
- package/dist/quota/format.d.ts.map +1 -0
- package/dist/quota/format.js +219 -0
- package/dist/quota/format.js.map +1 -0
- package/dist/quota/index.d.ts +23 -0
- package/dist/quota/index.d.ts.map +1 -0
- package/dist/quota/index.js +42 -0
- package/dist/quota/index.js.map +1 -0
- package/dist/quota/opencode-go/cache.d.ts +17 -0
- package/dist/quota/opencode-go/cache.d.ts.map +1 -0
- package/dist/quota/opencode-go/cache.js +31 -0
- package/dist/quota/opencode-go/cache.js.map +1 -0
- package/dist/quota/opencode-go/client.d.ts +28 -0
- package/dist/quota/opencode-go/client.d.ts.map +1 -0
- package/dist/quota/opencode-go/client.js +48 -0
- package/dist/quota/opencode-go/client.js.map +1 -0
- package/dist/quota/opencode-go/config.d.ts +37 -0
- package/dist/quota/opencode-go/config.d.ts.map +1 -0
- package/dist/quota/opencode-go/config.js +58 -0
- package/dist/quota/opencode-go/config.js.map +1 -0
- package/dist/quota/opencode-go/format.d.ts +36 -0
- package/dist/quota/opencode-go/format.d.ts.map +1 -0
- package/dist/quota/opencode-go/format.js +87 -0
- package/dist/quota/opencode-go/format.js.map +1 -0
- package/dist/quota/opencode-go/index.d.ts +30 -0
- package/dist/quota/opencode-go/index.d.ts.map +1 -0
- package/dist/quota/opencode-go/index.js +108 -0
- package/dist/quota/opencode-go/index.js.map +1 -0
- package/dist/quota/opencode-go/parse.d.ts +41 -0
- package/dist/quota/opencode-go/parse.d.ts.map +1 -0
- package/dist/quota/opencode-go/parse.js +75 -0
- package/dist/quota/opencode-go/parse.js.map +1 -0
- package/dist/quota/opencode-go/types.d.ts +48 -0
- package/dist/quota/opencode-go/types.d.ts.map +1 -0
- package/dist/quota/opencode-go/types.js +11 -0
- package/dist/quota/opencode-go/types.js.map +1 -0
- package/dist/quota/parse.d.ts +33 -0
- package/dist/quota/parse.d.ts.map +1 -0
- package/dist/quota/parse.js +200 -0
- package/dist/quota/parse.js.map +1 -0
- package/dist/quota/types.d.ts +72 -0
- package/dist/quota/types.d.ts.map +1 -0
- package/dist/quota/types.js +10 -0
- package/dist/quota/types.js.map +1 -0
- package/dist/server.d.ts +104 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +119 -2
- package/dist/server.js.map +1 -1
- package/dist/tasks-index.d.ts +14 -4
- package/dist/tasks-index.d.ts.map +1 -1
- package/dist/tasks-index.js +145 -46
- package/dist/tasks-index.js.map +1 -1
- package/dist/translators/event-translator.d.ts +33 -0
- package/dist/translators/event-translator.d.ts.map +1 -1
- package/dist/translators/event-translator.js +101 -0
- package/dist/translators/event-translator.js.map +1 -1
- package/dist/translators/index.d.ts +1 -1
- package/dist/translators/index.d.ts.map +1 -1
- package/dist/translators/index.js +1 -1
- package/dist/translators/index.js.map +1 -1
- package/dist/translators/projection-differ.d.ts +8 -0
- package/dist/translators/projection-differ.d.ts.map +1 -1
- package/dist/translators/projection-differ.js +19 -9
- package/dist/translators/projection-differ.js.map +1 -1
- package/dist/translators/tool-helpers.d.ts +28 -0
- package/dist/translators/tool-helpers.d.ts.map +1 -1
- package/dist/translators/tool-helpers.js +104 -0
- package/dist/translators/tool-helpers.js.map +1 -1
- package/dist/translators/types.d.ts +38 -1
- package/dist/translators/types.d.ts.map +1 -1
- package/dist/translators/types.js.map +1 -1
- package/dist/utils.d.ts +35 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +52 -4
- package/dist/utils.js.map +1 -1
- package/docs/ARCHITECTURE.md +96 -38
- package/docs/BACKLOG.md +57 -0
- package/docs/DEVELOPMENT.md +5 -0
- package/docs/PROTOCOL.md +270 -5
- package/docs/TROUBLESHOOTING.md +98 -14
- package/docs/agents/domain.md +51 -0
- package/docs/agents/issue-tracker.md +22 -0
- package/docs/agents/triage-labels.md +15 -0
- package/package.json +6 -5
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
### Backend fails to start
|
|
6
6
|
|
|
7
7
|
**Symptom:**
|
|
8
|
+
|
|
8
9
|
```
|
|
9
10
|
[zcode-acp] backend: started zcode app-server (pid=12345)
|
|
10
11
|
[zcode-acp] backend: reader exited (stdout closed)
|
|
@@ -13,12 +14,14 @@
|
|
|
13
14
|
**Troubleshooting steps:**
|
|
14
15
|
|
|
15
16
|
1. Check the ZCode CLI version:
|
|
17
|
+
|
|
16
18
|
```bash
|
|
17
19
|
zcode --version
|
|
18
20
|
```
|
|
19
21
|
- Must be >= 0.14.8
|
|
20
22
|
|
|
21
23
|
2. Check whether `zcode` is on PATH:
|
|
24
|
+
|
|
22
25
|
```bash
|
|
23
26
|
which zcode
|
|
24
27
|
```
|
|
@@ -31,22 +34,60 @@
|
|
|
31
34
|
- Confirm a `provider` is enabled
|
|
32
35
|
- Confirm `models` are defined
|
|
33
36
|
|
|
37
|
+
### Authentication / credential errors (401, provider auth failed)
|
|
38
|
+
|
|
39
|
+
**Symptom:** turns fail with authentication errors (e.g. `401`, `provider auth failed`, `invalid api key`), or `~/.zcode/v2/config.json` is missing.
|
|
40
|
+
|
|
41
|
+
**Why:** This bridge advertises agent-managed auth — it reads the GLM API key from `~/.zcode/v2/config.json` and forwards it to the ZCode subprocess. No editor-side API key or environment variable is involved. If the credentials file is absent, empty, or carries an expired/invalid key, every turn will fail at the first model call.
|
|
42
|
+
|
|
43
|
+
**Troubleshooting steps:**
|
|
44
|
+
|
|
45
|
+
1. Confirm the credentials file exists and has an enabled provider:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
cat ~/.zcode/v2/config.json
|
|
49
|
+
```
|
|
50
|
+
- There must be a `provider` entry with `"enabled": true`
|
|
51
|
+
- Its `options.apiKey` must be present and non-empty
|
|
52
|
+
|
|
53
|
+
2. If the file is missing or the key is stale, **install and log into the ZCode desktop app** — it writes a fresh `config.json` with a valid enabled provider. There is no manual API-key configuration in the editor.
|
|
54
|
+
|
|
55
|
+
3. If you need to override the key/base URL without touching `config.json`, set `ZCODE_BASE_URL` and provide the key via the provider config (see `src/backend/credentials.ts` for the merge order).
|
|
56
|
+
|
|
34
57
|
### session/subscribe fails
|
|
35
58
|
|
|
36
59
|
**Symptom:**
|
|
60
|
+
|
|
37
61
|
```
|
|
38
|
-
session/subscribe failed
|
|
62
|
+
session/subscribe failed: <backend error message> [(code <N>)]
|
|
39
63
|
```
|
|
40
64
|
|
|
65
|
+
The error message carries the backend's real failure reason. It is **no longer**
|
|
66
|
+
a hardcoded version string — read the message text to identify the root cause.
|
|
67
|
+
|
|
68
|
+
**Common causes:**
|
|
69
|
+
|
|
70
|
+
| Message fragment | Cause |
|
|
71
|
+
| -------------------------------- | -------------------------------------------------------------------------- |
|
|
72
|
+
| `reader exited (backend dead)` | The zcode subprocess crashed/exited. Restart the editor session. |
|
|
73
|
+
| `timeout` | The per-attempt 10s subscribe deadline elapsed. The bridge retries transient timeouts up to 3× (the backend can be briefly busy finalising a cancelled turn after a preempt / `session/stop`); if all retries fail, the backend was unresponsive for ~30s. |
|
|
74
|
+
| `pipe broken` | The stdin pipe to the zcode subprocess broke (process died mid-write). |
|
|
75
|
+
| `method not found (code -32601)` | The CLI genuinely is too old (< 0.14.8). Upgrade. |
|
|
76
|
+
| session-level business error | The target session no longer exists or was evicted. |
|
|
77
|
+
|
|
41
78
|
**Troubleshooting steps:**
|
|
42
79
|
|
|
43
|
-
1.
|
|
80
|
+
1. **Read the error message** — the fragment identifies the cause (table above).
|
|
81
|
+
|
|
82
|
+
2. If the message indicates `method not found`, confirm ZCode CLI >= 0.14.8:
|
|
83
|
+
|
|
44
84
|
```bash
|
|
45
85
|
zcode --version
|
|
46
86
|
```
|
|
47
87
|
|
|
48
|
-
|
|
88
|
+
3. If the version is correct but it still fails, check whether the zcode
|
|
49
89
|
app-server supports subscribe:
|
|
90
|
+
|
|
50
91
|
```bash
|
|
51
92
|
cd /path/to/project
|
|
52
93
|
zcode app-server --stdio
|
|
@@ -54,7 +95,7 @@ session/subscribe failed (ZCode CLI 0.14.8+ required)
|
|
|
54
95
|
{ "id": 1, "method": "session/subscribe", "params": { "sessionId": "test", "deliveryKind": "desktop-continuous", "includeSnapshot": true, "afterSeq": 0 } }
|
|
55
96
|
```
|
|
56
97
|
|
|
57
|
-
|
|
98
|
+
4. Check whether other zcode processes are running:
|
|
58
99
|
```bash
|
|
59
100
|
ps aux | grep zcode
|
|
60
101
|
killall -9 zcode # caution: this kills all zcode processes
|
|
@@ -67,6 +108,7 @@ session/subscribe failed (ZCode CLI 0.14.8+ required)
|
|
|
67
108
|
**Troubleshooting steps:**
|
|
68
109
|
|
|
69
110
|
1. Confirm the client declares `terminal_output`:
|
|
111
|
+
|
|
70
112
|
```typescript
|
|
71
113
|
// should be present in clientCapabilities:
|
|
72
114
|
{ "_meta": { "terminal_output": true } }
|
|
@@ -87,9 +129,11 @@ session/subscribe failed (ZCode CLI 0.14.8+ required)
|
|
|
87
129
|
**Troubleshooting steps:**
|
|
88
130
|
|
|
89
131
|
1. Check whether `EventStreamListener` subscribed successfully:
|
|
132
|
+
|
|
90
133
|
```
|
|
91
134
|
[zcode-acp] backend: started zcode app-server (pid=12345)
|
|
92
135
|
```
|
|
136
|
+
|
|
93
137
|
If this log is missing, the backend did not start.
|
|
94
138
|
|
|
95
139
|
2. Check whether `session/event` pushes arrive:
|
|
@@ -106,6 +150,7 @@ session/subscribe failed (ZCode CLI 0.14.8+ required)
|
|
|
106
150
|
**Troubleshooting steps:**
|
|
107
151
|
|
|
108
152
|
1. Check whether zcode sent an interaction request:
|
|
153
|
+
|
|
109
154
|
```
|
|
110
155
|
[zcode-acp] -> interaction/requestPermission (zcode_id=100)
|
|
111
156
|
```
|
|
@@ -120,6 +165,43 @@ session/subscribe failed (ZCode CLI 0.14.8+ required)
|
|
|
120
165
|
- `⚠ elicitation/create failed: ...` → the client does not support it or the request failed
|
|
121
166
|
- `⚠ request_permission failed: ...` → the fallback path failed
|
|
122
167
|
|
|
168
|
+
### Turn fails with `model_request_failed` / network error
|
|
169
|
+
|
|
170
|
+
**Symptom:** A turn ends with an error like `model_request_failed` / "Network
|
|
171
|
+
connection failed for the provider request" / "Turn execution failed". Instead
|
|
172
|
+
of stopping the session, the bridge retries transient failures automatically.
|
|
173
|
+
|
|
174
|
+
**What happens:**
|
|
175
|
+
|
|
176
|
+
When the ZCode backend emits `turn.failed` with a transient cause (provider
|
|
177
|
+
network blip, rate limit, brief outage), the bridge retries the turn up to
|
|
178
|
+
**5 times** (6 total attempts) with exponential backoff capped at 4s
|
|
179
|
+
(1s / 2s / 4s / 4s / 4s). Each retry re-sends the prompt and surfaces a
|
|
180
|
+
`[网络异常,正在重试 (n/5)…]` hint so the user knows the turn is being retried
|
|
181
|
+
rather than hanging.
|
|
182
|
+
|
|
183
|
+
Transient errors are identified by the nested `error.cause.code`
|
|
184
|
+
(`model_request_failed`, `provider_not_configured`, `rate_limit`, `timeout`,
|
|
185
|
+
`ECONNRESET`, etc.) or by network/connection/timeout keywords in
|
|
186
|
+
`error.cause.message`. Non-transient failures (e.g. `prompt is running`) still
|
|
187
|
+
surface as hard errors immediately.
|
|
188
|
+
|
|
189
|
+
After retries are exhausted, the bridge **degrades gracefully**: it emits a
|
|
190
|
+
user-visible `[请求失败:…。会话仍可用,请重新发送消息重试。]` message and returns
|
|
191
|
+
`end_turn`, so the session stays usable — resend the message to try again.
|
|
192
|
+
|
|
193
|
+
**Debugging:**
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
ZCODE_ACP_DEBUG=1
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Look for `[retry] transient turn failed, re-sending (attempt N/6)` lines to
|
|
200
|
+
confirm the retry path is active. If transient failures persist across all
|
|
201
|
+
retries, the underlying provider/network issue needs investigation (see
|
|
202
|
+
[Authentication / credential errors](#authentication--credential-errors-401-provider-auth-failed)
|
|
203
|
+
and check the provider endpoint reachability).
|
|
204
|
+
|
|
123
205
|
### `/` completion menu is empty
|
|
124
206
|
|
|
125
207
|
**Symptom:** Typing `/` shows no command completion.
|
|
@@ -147,6 +229,7 @@ session/subscribe failed (ZCode CLI 0.14.8+ required)
|
|
|
147
229
|
- backend reader death
|
|
148
230
|
|
|
149
231
|
2. Manually inspect zombie processes:
|
|
232
|
+
|
|
150
233
|
```bash
|
|
151
234
|
ps aux | grep zcode
|
|
152
235
|
killall -9 zcode # cleanup
|
|
@@ -197,6 +280,7 @@ session/subscribe failed (ZCode CLI 0.14.8+ required)
|
|
|
197
280
|
|
|
198
281
|
2. If the lock is still stuck on an older bridge, the zcode subprocess must be
|
|
199
282
|
killed manually:
|
|
283
|
+
|
|
200
284
|
```bash
|
|
201
285
|
ps aux | grep zcode
|
|
202
286
|
killall -9 zcode # caution: kills all zcode processes
|
|
@@ -239,13 +323,13 @@ export function log(msg: string): void {
|
|
|
239
323
|
|
|
240
324
|
### Common log patterns
|
|
241
325
|
|
|
242
|
-
| Log
|
|
243
|
-
|
|
244
|
-
| `backend: started zcode app-server (pid=...)` | Backend started successfully
|
|
245
|
-
| `backend: reader exited (...)`
|
|
246
|
-
| `session/new -> sess_xxx`
|
|
247
|
-
| `[event] turn.started`
|
|
248
|
-
| `[event] turn.completed (resultType=...)`
|
|
249
|
-
| `-> interaction/... (zcode_id=...)`
|
|
250
|
-
| `<- replied to zcode (N request(s))`
|
|
251
|
-
| `⚠ ...`
|
|
326
|
+
| Log | Meaning |
|
|
327
|
+
| --------------------------------------------- | ------------------------------------------------ |
|
|
328
|
+
| `backend: started zcode app-server (pid=...)` | Backend started successfully |
|
|
329
|
+
| `backend: reader exited (...)` | Backend reader exited (backend may have crashed) |
|
|
330
|
+
| `session/new -> sess_xxx` | New session created successfully |
|
|
331
|
+
| `[event] turn.started` | Turn started |
|
|
332
|
+
| `[event] turn.completed (resultType=...)` | Turn completed |
|
|
333
|
+
| `-> interaction/... (zcode_id=...)` | Interaction request received |
|
|
334
|
+
| `<- replied to zcode (N request(s))` | Interaction request replied |
|
|
335
|
+
| `⚠ ...` | Warning / error |
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Domain Docs
|
|
2
|
+
|
|
3
|
+
How engineering skills should consume this repo's domain documentation when exploring the codebase.
|
|
4
|
+
|
|
5
|
+
## Before exploring, read these
|
|
6
|
+
|
|
7
|
+
- **`CONTEXT.md`** at the repo root, or
|
|
8
|
+
- **`CONTEXT-MAP.md`** at the repo root (if it exists) — it points to one `CONTEXT.md` per context. Read each file relevant to the current topic.
|
|
9
|
+
- **`docs/adr/`** — read ADRs related to the area you are about to work on. In multi-context repos, also check `src/<context>/docs/adr/` for context-scoped decisions.
|
|
10
|
+
|
|
11
|
+
If these files don't exist, **continue silently**. Don't flag the absence; don't proactively suggest creating them. The producer skill (`/grill-with-docs`) will lazily create them when terms or decisions are actually resolved.
|
|
12
|
+
|
|
13
|
+
## File structure
|
|
14
|
+
|
|
15
|
+
Single-context repo (most repos):
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/
|
|
19
|
+
├── CONTEXT.md
|
|
20
|
+
├── docs/adr/
|
|
21
|
+
│ ├── 0001-event-sourced-orders.md
|
|
22
|
+
│ └── 0002-postgres-for-write-model.md
|
|
23
|
+
└── src/
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Multi-context repo (root has `CONTEXT-MAP.md`):
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
/
|
|
30
|
+
├── CONTEXT-MAP.md
|
|
31
|
+
├── docs/adr/ ← system-wide decisions
|
|
32
|
+
└── src/
|
|
33
|
+
├── ordering/
|
|
34
|
+
│ ├── CONTEXT.md
|
|
35
|
+
│ └── docs/adr/ ← context-specific decisions
|
|
36
|
+
└── billing/
|
|
37
|
+
├── CONTEXT.md
|
|
38
|
+
└── docs/adr/
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Use the glossary's vocabulary
|
|
42
|
+
|
|
43
|
+
When your output names a domain concept (issue title, refactor proposal, hypothesis, test name), use the term defined in `CONTEXT.md`. Don't drift to synonyms the glossary explicitly avoids.
|
|
44
|
+
|
|
45
|
+
If the concept you need isn't in the glossary yet, that's a signal: either you're inventing language the project doesn't use (reconsider), or there's a genuine gap (note it for `/grill-with-docs`).
|
|
46
|
+
|
|
47
|
+
## Flag ADR conflicts
|
|
48
|
+
|
|
49
|
+
If your output contradicts an existing ADR, call it out explicitly rather than silently overriding:
|
|
50
|
+
|
|
51
|
+
> _Contradicts ADR-0007 (event-sourced orders) — but worth reopening because…_
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Issue tracker: GitHub
|
|
2
|
+
|
|
3
|
+
This repo's issues and PRDs live in GitHub issues. All operations use the `gh` CLI.
|
|
4
|
+
|
|
5
|
+
## Conventions
|
|
6
|
+
|
|
7
|
+
- **Create an issue**: `gh issue create --title "..." --body "..."`. Use a heredoc for multi-line bodies.
|
|
8
|
+
- **Read an issue**: `gh issue view <number> --comments`, filter comments with `jq`, and fetch labels at the same time.
|
|
9
|
+
- **List issues**: `gh issue list --state open --json number,title,body,labels,comments --jq '[.[] | {number, title, body, labels: [.labels[].name], comments: [.comments[].body]}]'`, add `--label` and `--state` filters as needed.
|
|
10
|
+
- **Comment on an issue**: `gh issue comment <number> --body "..."`
|
|
11
|
+
- **Apply / remove labels**: `gh issue edit <number> --add-label "..."` / `--remove-label "..."`
|
|
12
|
+
- **Close**: `gh issue close <number> --comment "..."`
|
|
13
|
+
|
|
14
|
+
The repo is inferred from `git remote -v`; when running inside a clone, `gh` handles this automatically.
|
|
15
|
+
|
|
16
|
+
## When a skill says "publish to the issue tracker"
|
|
17
|
+
|
|
18
|
+
Create a GitHub issue.
|
|
19
|
+
|
|
20
|
+
## When a skill says "fetch the relevant ticket"
|
|
21
|
+
|
|
22
|
+
Run `gh issue view <number> --comments`.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Triage Labels
|
|
2
|
+
|
|
3
|
+
Skills use five canonical triage roles. This file maps those roles to the actual label strings used in this repo's issue tracker.
|
|
4
|
+
|
|
5
|
+
| Label in mattpocock/skills | Label in our tracker | Meaning |
|
|
6
|
+
| -------------------------- | -------------------- | ---------------------------------------- |
|
|
7
|
+
| `needs-triage` | `needs-triage` | Maintainer needs to evaluate this issue |
|
|
8
|
+
| `needs-info` | `needs-info` | Waiting on reporter for more information |
|
|
9
|
+
| `ready-for-agent` | `ready-for-agent` | Fully specified, ready for an AFK agent |
|
|
10
|
+
| `ready-for-human` | `ready-for-human` | Requires human implementation |
|
|
11
|
+
| `wontfix` | `wontfix` | Will not be actioned |
|
|
12
|
+
|
|
13
|
+
When a skill refers to a role (e.g. "apply the AFK-ready triage label"), use the corresponding label string from this table.
|
|
14
|
+
|
|
15
|
+
Edit the right column to match the vocabulary you actually use.
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zcode-acp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Agent Client Protocol (ACP) server bridging headless ZCode to editors like Zed and JetBrains.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"author": "ZCode ACP Server Contributors",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
|
-
"url": "https://github.com/
|
|
10
|
+
"url": "https://github.com/william0wang/zcode-acp.git"
|
|
11
11
|
},
|
|
12
|
-
"homepage": "https://github.com/
|
|
12
|
+
"homepage": "https://github.com/william0wang/zcode-acp#readme",
|
|
13
13
|
"bugs": {
|
|
14
|
-
"url": "https://github.com/
|
|
14
|
+
"url": "https://github.com/william0wang/zcode-acp/issues"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
17
|
"acp",
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"zcode"
|
|
24
24
|
],
|
|
25
25
|
"bin": {
|
|
26
|
-
"zcode-acp-server": "dist/index.js"
|
|
26
|
+
"zcode-acp-server": "dist/index.js",
|
|
27
|
+
"zcode-quota": "dist/bin/quota.js"
|
|
27
28
|
},
|
|
28
29
|
"main": "dist/index.js",
|
|
29
30
|
"types": "dist/index.d.ts",
|