@brunyee-studio/onus-cli 2.30.0 → 2.31.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 +20 -1
- package/dist/bin.js +568 -9
- package/dist/{chunk-HJQGUY5T.js → chunk-35HNSEP2.js} +427 -1
- package/dist/{client-QNEDGCP7.js → client-R7T5S6RN.js} +1 -1
- package/dist/index.d.ts +1748 -3
- package/dist/index.js +1353 -1
- package/package.json +1 -1
- package/skills/onus-cli/SKILL.md +96 -2
package/package.json
CHANGED
package/skills/onus-cli/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: onus-cli
|
|
3
|
-
description: Work with Onus issue tracking through the onus CLI — authenticate, fetch teams/projects/issues, create and update issues, manage comments, labels, relations, and attachments. Use when the user asks to find, list, create, update, comment on, or organize Onus issues, projects, or teams.
|
|
3
|
+
description: Work with Onus issue tracking through the onus CLI — authenticate, fetch teams/projects/issues, create and update issues, manage comments, labels, relations, and attachments, and consult the knowledge base (kb). Use when the user asks to find, list, create, update, comment on, or organize Onus issues, projects, or teams, or to read KB docs.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Onus CLI
|
|
@@ -16,11 +16,17 @@ onus auth status # check current auth state
|
|
|
16
16
|
ONUS_TOKEN=<token> onus me --json # or auth via env var (ONUS_TOKEN / ONUS_API_KEY)
|
|
17
17
|
onus --token <token> me --json # or per-invocation override
|
|
18
18
|
onus --api-url <url> … # custom API base URL
|
|
19
|
+
onus auth logout # clear stored credentials
|
|
19
20
|
```
|
|
20
21
|
|
|
22
|
+
Explicit token overrides (`--token` or `ONUS_TOKEN` / `ONUS_API_KEY`) take
|
|
23
|
+
precedence over stored credentials and **fail hard with exit 3** when the API
|
|
24
|
+
rejects them — they are never silently rescued by the stored session.
|
|
25
|
+
Transparent refresh on 401 applies only to the stored config-file session.
|
|
26
|
+
|
|
21
27
|
## Golden rules
|
|
22
28
|
|
|
23
|
-
- **Starting work on an issue: transition it to `in_progress`
|
|
29
|
+
- **Starting work on an issue: transition it to `in_progress` and make sure it has an owner — you.** As soon as you pick up an issue to implement it — before writing any code — resolve your user id (`onus me --json` → `.id`), then run `onus issue update <ref> --status in_progress --assignee <userId> --json`. Self-assign only when the issue is unassigned or already assigned to you; if someone else is the assignee, leave them in place and say so. No update needed if `onus issue get <ref> --json` already shows the status is `in_progress` or `done` — but if it is `in_progress` while unassigned, still assign it to yourself.
|
|
24
30
|
- Add `--json` to every command you intend to parse.
|
|
25
31
|
- Multi-line text (issue descriptions, comment bodies, agent context) goes through the field's file flag — `--description-file`, `--body-file`, `--agent-context-file` — never inline in the shell command. See "Long text via file input" below.
|
|
26
32
|
- Whenever referencing an Onus issue in any response, include its link: `https://onus.brunyeestudio.com/team/{TEAM}/issues/{NUM}` where `{TEAM}` is the team key (the tag before the dash in the ref, e.g. `ONUS`) and `{NUM}` is the issue number (the number after the dash). Example: for ref `ONUS-1`, `TEAM = ONUS`, `NUM = 1` → https://onus.brunyeestudio.com/team/ONUS/issues/1
|
|
@@ -44,8 +50,10 @@ onus label list --json # workspace labels (for --label ids)
|
|
|
44
50
|
```bash
|
|
45
51
|
onus issue list --json
|
|
46
52
|
onus issue list --team ONUS --status in_progress --json
|
|
53
|
+
onus issue list --priority high --team ONUS --json # filter by priority
|
|
47
54
|
onus issue list --assignee <userId> --project <projectId> --json
|
|
48
55
|
onus issue list --q "login bug" --limit 20 --json # free-text search
|
|
56
|
+
onus issue list --q ONUS-42 --json # display-key search
|
|
49
57
|
onus issue list --cursor <cursor> --json # next page
|
|
50
58
|
onus issue get ENG-42 --json # single issue by ref
|
|
51
59
|
```
|
|
@@ -82,6 +90,38 @@ onus issue update ENG-42 --remove-label <labelId> --assignee <userId> --json
|
|
|
82
90
|
onus issue delete ENG-42 --yes # skip confirmation
|
|
83
91
|
```
|
|
84
92
|
|
|
93
|
+
## Templates
|
|
94
|
+
|
|
95
|
+
Per-team reusable issue templates; `--default` marks a team's default:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
onus template list --team ONUS --json
|
|
99
|
+
onus template create --team ONUS --name "Bug report" --priority high --default --json
|
|
100
|
+
onus template get <id> --json
|
|
101
|
+
onus template update <id> --title "New title" --add-label <labelId> --json # alias: template edit
|
|
102
|
+
onus template delete <id> --yes
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
`onus issue create --template <nameOrId>` fills omitted fields from the template.
|
|
106
|
+
|
|
107
|
+
## Bulk operations
|
|
108
|
+
|
|
109
|
+
`issue bulk-update` / `issue bulk-comment` apply to many issues with per-item partial success:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
onus issue bulk-update ENG-42 ENG-43 --status done --json
|
|
113
|
+
onus issue bulk-comment ENG-42 ENG-43 --body "Deployed in v2.31" --idempotency-key run-17 --json
|
|
114
|
+
onus issue bulk-update --file ./items.json --json # per-item payloads; see --help for the format
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Create projects
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
onus project create --name "Mobile app" --team ONUS --lead <userId> \
|
|
121
|
+
--description-file ./brief.md --agent-context-file AGENTS.md --json
|
|
122
|
+
onus project attachment list <projectId> --json
|
|
123
|
+
```
|
|
124
|
+
|
|
85
125
|
## Long text via file input
|
|
86
126
|
|
|
87
127
|
Multi-line values (issue and project descriptions, comment bodies, project
|
|
@@ -125,14 +165,28 @@ onus analytics events --team ONUS --limit 25 --json
|
|
|
125
165
|
onus analytics query --team ONUS --query '{"type":"trends","series":[{"event":"signup"}]}' --json
|
|
126
166
|
```
|
|
127
167
|
|
|
168
|
+
## Watch (live events)
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
onus watch --team ONUS --type issue.status_changed,error_group.regressed --json
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Streams live issue/comment/error events over SSE with automatic resume.
|
|
175
|
+
|
|
128
176
|
## Relations, attachments, subscriptions
|
|
129
177
|
|
|
130
178
|
```bash
|
|
131
179
|
onus issue relation add ENG-42 --with ENG-43 --type blocks --json # types: blocks|duplicate|related|similar
|
|
132
180
|
onus issue attachment upload ENG-42 --file ./notes.md --json
|
|
181
|
+
onus issue relation remove ENG-42 --relation <relationId> --json
|
|
182
|
+
onus issue attachment upload ENG-42 --file ./notes.md --json
|
|
133
183
|
onus issue attachment list ENG-42 --json
|
|
184
|
+
onus issue attachment download ENG-42 --attachment <attachmentId> --output ./notes.md --json
|
|
185
|
+
onus issue attachment delete ENG-42 --attachment <attachmentId> --json
|
|
134
186
|
onus issue subscribe ENG-42 --json
|
|
187
|
+
onus issue unsubscribe ENG-42 --json
|
|
135
188
|
onus issue link-pr ENG-42 --repo owner/repo --pr 42 --json # link a GitHub pull request
|
|
189
|
+
onus issue unlink-pr ENG-42 --pr-link <linkId> --json # remove a linked pull request
|
|
136
190
|
```
|
|
137
191
|
|
|
138
192
|
## Errors and ingest keys (DSN)
|
|
@@ -140,8 +194,33 @@ onus issue link-pr ENG-42 --repo owner/repo --pr 42 --json # link a GitHub pu
|
|
|
140
194
|
```bash
|
|
141
195
|
onus dsn list --team ONUS --json # masked ingest keys for a team
|
|
142
196
|
onus dsn create --team ONUS --label ci # prints the full secret exactly once
|
|
197
|
+
onus dsn rotate <keyId> --grace-seconds 86400 --json # old secret stays valid during the grace window
|
|
198
|
+
onus dsn disable <keyId> --json # reversible
|
|
199
|
+
onus dsn enable <keyId> --json # re-enable a disabled key
|
|
200
|
+
onus dsn revoke <keyId> --json # terminal
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Knowledge base (agent workflow)
|
|
204
|
+
|
|
205
|
+
Consult the KB before implementing an issue — docs (`index | area | process |
|
|
206
|
+
incident` kinds) describe code areas, processes, and incidents. Read-only: no
|
|
207
|
+
CLI command or API mutates docs.
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
onus kb locate --issue <issueUuid> --json # locate first, on issue start (or --query "text"; exactly one)
|
|
211
|
+
onus kb get <slug> --json # then read each returned doc (also accepts UUID; ambiguous slug → exit 2)
|
|
212
|
+
onus kb search "<query>" --json # scored search; --mode string|semantic|hybrid|related (--doc <slug> required with related)
|
|
213
|
+
onus kb related <slug> --json # expand related docs
|
|
214
|
+
onus kb list --team ONUS --kind area --tag auth --limit 20 --cursor <cursor> --json
|
|
143
215
|
```
|
|
144
216
|
|
|
217
|
+
- Results carry staleness `{stale, confidence, reason}` — a `stale` doc is
|
|
218
|
+
planning input: verify it against current code and surface drift.
|
|
219
|
+
- **Surface drift, never write it.** Note stale/incorrect docs in the PR
|
|
220
|
+
description ("KB drift: …"); regeneration is infrastructure-led on merge —
|
|
221
|
+
the pipeline updates affected docs automatically after the PR merges
|
|
222
|
+
(human-edited docs get proposed revisions for human approval).
|
|
223
|
+
|
|
145
224
|
## Pull requests and issues
|
|
146
225
|
|
|
147
226
|
Linking a PR to an issue means **the issue is auto-closed when the PR merges** —
|
|
@@ -176,4 +255,19 @@ Required PR flow, in order:
|
|
|
176
255
|
- Link at most once per PR per issue; don't spam links across partially-related
|
|
177
256
|
issues.
|
|
178
257
|
|
|
258
|
+
## Skill management
|
|
259
|
+
|
|
260
|
+
The CLI bundles this skill and can install/update it for detected AI agents:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
onus skill install --agent claude-code codex # or --global / --copy; see --help
|
|
264
|
+
onus skill update # refresh installed copies to the bundled version
|
|
265
|
+
onus skill remove --global # alias: skill rm
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Command aliases
|
|
269
|
+
|
|
270
|
+
`issue get` = `issue view`, `issue update` = `issue edit`, `template update` = `template edit`,
|
|
271
|
+
`skill remove` = `skill rm`.
|
|
272
|
+
|
|
179
273
|
Run any command with `--help` for its exact flags — e.g. `onus issue relation add --help`.
|