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.
Files changed (188) hide show
  1. package/README.md +98 -1
  2. package/README.zh-CN.md +81 -1
  3. package/dist/backend/client.d.ts +12 -4
  4. package/dist/backend/client.d.ts.map +1 -1
  5. package/dist/backend/client.js +72 -7
  6. package/dist/backend/client.js.map +1 -1
  7. package/dist/backend/credentials.d.ts.map +1 -1
  8. package/dist/backend/credentials.js +2 -1
  9. package/dist/backend/credentials.js.map +1 -1
  10. package/dist/backend/listener.d.ts +12 -4
  11. package/dist/backend/listener.d.ts.map +1 -1
  12. package/dist/backend/listener.js +68 -12
  13. package/dist/backend/listener.js.map +1 -1
  14. package/dist/backend/types.d.ts +1 -1
  15. package/dist/backend/types.d.ts.map +1 -1
  16. package/dist/bin/quota.d.ts +54 -0
  17. package/dist/bin/quota.d.ts.map +1 -0
  18. package/dist/bin/quota.js +333 -0
  19. package/dist/bin/quota.js.map +1 -0
  20. package/dist/config/auto-compact.d.ts +23 -0
  21. package/dist/config/auto-compact.d.ts.map +1 -0
  22. package/dist/config/auto-compact.js +67 -0
  23. package/dist/config/auto-compact.js.map +1 -0
  24. package/dist/config/mcp-discovery.d.ts +34 -0
  25. package/dist/config/mcp-discovery.d.ts.map +1 -0
  26. package/dist/config/mcp-discovery.js +153 -0
  27. package/dist/config/mcp-discovery.js.map +1 -0
  28. package/dist/config/model-cache.d.ts +12 -1
  29. package/dist/config/model-cache.d.ts.map +1 -1
  30. package/dist/config/model-cache.js +30 -8
  31. package/dist/config/model-cache.js.map +1 -1
  32. package/dist/config/options.d.ts +87 -9
  33. package/dist/config/options.d.ts.map +1 -1
  34. package/dist/config/options.js +248 -45
  35. package/dist/config/options.js.map +1 -1
  36. package/dist/config/plugin-commands.d.ts +24 -0
  37. package/dist/config/plugin-commands.d.ts.map +1 -0
  38. package/dist/config/plugin-commands.js +107 -0
  39. package/dist/config/plugin-commands.js.map +1 -0
  40. package/dist/config/provider-registry.d.ts +60 -0
  41. package/dist/config/provider-registry.d.ts.map +1 -0
  42. package/dist/config/provider-registry.js +128 -0
  43. package/dist/config/provider-registry.js.map +1 -0
  44. package/dist/config/runtime-model.d.ts +54 -18
  45. package/dist/config/runtime-model.d.ts.map +1 -1
  46. package/dist/config/runtime-model.js +105 -61
  47. package/dist/config/runtime-model.js.map +1 -1
  48. package/dist/config/skill-discovery.d.ts +35 -0
  49. package/dist/config/skill-discovery.d.ts.map +1 -0
  50. package/dist/config/skill-discovery.js +188 -0
  51. package/dist/config/skill-discovery.js.map +1 -0
  52. package/dist/handlers/background-tasks.d.ts +72 -0
  53. package/dist/handlers/background-tasks.d.ts.map +1 -0
  54. package/dist/handlers/background-tasks.js +330 -0
  55. package/dist/handlers/background-tasks.js.map +1 -0
  56. package/dist/handlers/dispatch.d.ts.map +1 -1
  57. package/dist/handlers/dispatch.js +134 -22
  58. package/dist/handlers/dispatch.js.map +1 -1
  59. package/dist/handlers/extensions.d.ts +15 -0
  60. package/dist/handlers/extensions.d.ts.map +1 -1
  61. package/dist/handlers/extensions.js +43 -27
  62. package/dist/handlers/extensions.js.map +1 -1
  63. package/dist/handlers/io.d.ts +11 -2
  64. package/dist/handlers/io.d.ts.map +1 -1
  65. package/dist/handlers/io.js +51 -7
  66. package/dist/handlers/io.js.map +1 -1
  67. package/dist/handlers/server-requests.d.ts +20 -4
  68. package/dist/handlers/server-requests.d.ts.map +1 -1
  69. package/dist/handlers/server-requests.js +293 -63
  70. package/dist/handlers/server-requests.js.map +1 -1
  71. package/dist/handlers/session.d.ts +113 -10
  72. package/dist/handlers/session.d.ts.map +1 -1
  73. package/dist/handlers/session.js +876 -220
  74. package/dist/handlers/session.js.map +1 -1
  75. package/dist/handlers/slash.d.ts +14 -0
  76. package/dist/handlers/slash.d.ts.map +1 -1
  77. package/dist/handlers/slash.js +80 -6
  78. package/dist/handlers/slash.js.map +1 -1
  79. package/dist/index.js +38 -4
  80. package/dist/index.js.map +1 -1
  81. package/dist/interaction/adapter.d.ts +19 -33
  82. package/dist/interaction/adapter.d.ts.map +1 -1
  83. package/dist/interaction/adapter.js +80 -79
  84. package/dist/interaction/adapter.js.map +1 -1
  85. package/dist/lazy-sessions.d.ts +35 -0
  86. package/dist/lazy-sessions.d.ts.map +1 -0
  87. package/dist/lazy-sessions.js +98 -0
  88. package/dist/lazy-sessions.js.map +1 -0
  89. package/dist/quota/cache.d.ts +18 -0
  90. package/dist/quota/cache.d.ts.map +1 -0
  91. package/dist/quota/cache.js +32 -0
  92. package/dist/quota/cache.js.map +1 -0
  93. package/dist/quota/client.d.ts +30 -0
  94. package/dist/quota/client.d.ts.map +1 -0
  95. package/dist/quota/client.js +57 -0
  96. package/dist/quota/client.js.map +1 -0
  97. package/dist/quota/color.d.ts +58 -0
  98. package/dist/quota/color.d.ts.map +1 -0
  99. package/dist/quota/color.js +95 -0
  100. package/dist/quota/color.js.map +1 -0
  101. package/dist/quota/combined.d.ts +66 -0
  102. package/dist/quota/combined.d.ts.map +1 -0
  103. package/dist/quota/combined.js +179 -0
  104. package/dist/quota/combined.js.map +1 -0
  105. package/dist/quota/format.d.ts +105 -0
  106. package/dist/quota/format.d.ts.map +1 -0
  107. package/dist/quota/format.js +219 -0
  108. package/dist/quota/format.js.map +1 -0
  109. package/dist/quota/index.d.ts +23 -0
  110. package/dist/quota/index.d.ts.map +1 -0
  111. package/dist/quota/index.js +42 -0
  112. package/dist/quota/index.js.map +1 -0
  113. package/dist/quota/opencode-go/cache.d.ts +17 -0
  114. package/dist/quota/opencode-go/cache.d.ts.map +1 -0
  115. package/dist/quota/opencode-go/cache.js +31 -0
  116. package/dist/quota/opencode-go/cache.js.map +1 -0
  117. package/dist/quota/opencode-go/client.d.ts +28 -0
  118. package/dist/quota/opencode-go/client.d.ts.map +1 -0
  119. package/dist/quota/opencode-go/client.js +48 -0
  120. package/dist/quota/opencode-go/client.js.map +1 -0
  121. package/dist/quota/opencode-go/config.d.ts +37 -0
  122. package/dist/quota/opencode-go/config.d.ts.map +1 -0
  123. package/dist/quota/opencode-go/config.js +58 -0
  124. package/dist/quota/opencode-go/config.js.map +1 -0
  125. package/dist/quota/opencode-go/format.d.ts +36 -0
  126. package/dist/quota/opencode-go/format.d.ts.map +1 -0
  127. package/dist/quota/opencode-go/format.js +87 -0
  128. package/dist/quota/opencode-go/format.js.map +1 -0
  129. package/dist/quota/opencode-go/index.d.ts +30 -0
  130. package/dist/quota/opencode-go/index.d.ts.map +1 -0
  131. package/dist/quota/opencode-go/index.js +108 -0
  132. package/dist/quota/opencode-go/index.js.map +1 -0
  133. package/dist/quota/opencode-go/parse.d.ts +41 -0
  134. package/dist/quota/opencode-go/parse.d.ts.map +1 -0
  135. package/dist/quota/opencode-go/parse.js +75 -0
  136. package/dist/quota/opencode-go/parse.js.map +1 -0
  137. package/dist/quota/opencode-go/types.d.ts +48 -0
  138. package/dist/quota/opencode-go/types.d.ts.map +1 -0
  139. package/dist/quota/opencode-go/types.js +11 -0
  140. package/dist/quota/opencode-go/types.js.map +1 -0
  141. package/dist/quota/parse.d.ts +33 -0
  142. package/dist/quota/parse.d.ts.map +1 -0
  143. package/dist/quota/parse.js +200 -0
  144. package/dist/quota/parse.js.map +1 -0
  145. package/dist/quota/types.d.ts +72 -0
  146. package/dist/quota/types.d.ts.map +1 -0
  147. package/dist/quota/types.js +10 -0
  148. package/dist/quota/types.js.map +1 -0
  149. package/dist/server.d.ts +104 -0
  150. package/dist/server.d.ts.map +1 -1
  151. package/dist/server.js +119 -2
  152. package/dist/server.js.map +1 -1
  153. package/dist/tasks-index.d.ts +14 -4
  154. package/dist/tasks-index.d.ts.map +1 -1
  155. package/dist/tasks-index.js +145 -46
  156. package/dist/tasks-index.js.map +1 -1
  157. package/dist/translators/event-translator.d.ts +33 -0
  158. package/dist/translators/event-translator.d.ts.map +1 -1
  159. package/dist/translators/event-translator.js +101 -0
  160. package/dist/translators/event-translator.js.map +1 -1
  161. package/dist/translators/index.d.ts +1 -1
  162. package/dist/translators/index.d.ts.map +1 -1
  163. package/dist/translators/index.js +1 -1
  164. package/dist/translators/index.js.map +1 -1
  165. package/dist/translators/projection-differ.d.ts +8 -0
  166. package/dist/translators/projection-differ.d.ts.map +1 -1
  167. package/dist/translators/projection-differ.js +19 -9
  168. package/dist/translators/projection-differ.js.map +1 -1
  169. package/dist/translators/tool-helpers.d.ts +28 -0
  170. package/dist/translators/tool-helpers.d.ts.map +1 -1
  171. package/dist/translators/tool-helpers.js +104 -0
  172. package/dist/translators/tool-helpers.js.map +1 -1
  173. package/dist/translators/types.d.ts +38 -1
  174. package/dist/translators/types.d.ts.map +1 -1
  175. package/dist/translators/types.js.map +1 -1
  176. package/dist/utils.d.ts +35 -6
  177. package/dist/utils.d.ts.map +1 -1
  178. package/dist/utils.js +52 -4
  179. package/dist/utils.js.map +1 -1
  180. package/docs/ARCHITECTURE.md +96 -38
  181. package/docs/BACKLOG.md +57 -0
  182. package/docs/DEVELOPMENT.md +5 -0
  183. package/docs/PROTOCOL.md +270 -5
  184. package/docs/TROUBLESHOOTING.md +98 -14
  185. package/docs/agents/domain.md +51 -0
  186. package/docs/agents/issue-tracker.md +22 -0
  187. package/docs/agents/triage-labels.md +15 -0
  188. package/package.json +6 -5
@@ -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 (ZCode CLI 0.14.8+ required)
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. Confirm ZCode CLI >= 0.14.8:
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
- 2. If the version is correct but it still fails, check whether the zcode
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
- 3. Check whether other zcode processes are running:
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 | Meaning |
243
- |------|------|
244
- | `backend: started zcode app-server (pid=...)` | Backend started successfully |
245
- | `backend: reader exited (...)` | Backend reader exited (backend may have crashed) |
246
- | `session/new -> sess_xxx` | New session created successfully |
247
- | `[event] turn.started` | Turn started |
248
- | `[event] turn.completed (resultType=...)` | Turn completed |
249
- | `-> interaction/... (zcode_id=...)` | Interaction request received |
250
- | `<- replied to zcode (N request(s))` | Interaction request replied |
251
- | `⚠ ...` | Warning / error |
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.1.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/zcode-org/zcode-acp-server.git"
10
+ "url": "https://github.com/william0wang/zcode-acp.git"
11
11
  },
12
- "homepage": "https://github.com/zcode-org/zcode-acp-server#readme",
12
+ "homepage": "https://github.com/william0wang/zcode-acp#readme",
13
13
  "bugs": {
14
- "url": "https://github.com/zcode-org/zcode-acp-server/issues"
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",