@azure-id/orc 1.2.1 → 1.4.1
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/CHANGELOG.md +2907 -2663
- package/README-id.md +44 -0
- package/README.md +631 -665
- package/bin/cli.js +36866 -34355
- package/bin/verify-contracts.js +35 -1
- package/bin/verify-package.js +15 -0
- package/bin/webui/api.js +1283 -1201
- package/bin/webui/app.html +213 -210
- package/bin/webui/css/04-motion.css +43 -0
- package/bin/webui/css/06-responsive.css +42 -0
- package/bin/webui/css/panels/hookui.css +595 -0
- package/bin/webui/fixtures/hookui.js +431 -0
- package/bin/webui/fixtures/index.js +17 -0
- package/bin/webui/i18n/en/hookui.json +180 -0
- package/bin/webui/i18n/en/nav.json +22 -21
- package/bin/webui/i18n/en/overview.json +4 -1
- package/bin/webui/i18n/en/tour.json +3 -1
- package/bin/webui/i18n/id/hookui.json +180 -0
- package/bin/webui/i18n/id/nav.json +22 -21
- package/bin/webui/i18n/id/overview.json +4 -1
- package/bin/webui/i18n/id/tour.json +3 -1
- package/bin/webui/js/01-i18n.js +152 -151
- package/bin/webui/js/90-tour.js +6 -0
- package/bin/webui/js/panels/hookui.js +1313 -0
- package/bin/webui/js/panels/overview.js +7 -0
- package/package.json +1 -1
- package/templates/hooks/README.md +80 -2
- package/templates/hooks/orc-statusline-render.js +921 -0
- package/templates/hooks/orc-statusline.js +715 -68
- package/templates/hooks/orc-subagent-line.js +219 -0
|
@@ -64,6 +64,13 @@ const FINDING_ROUTE = {
|
|
|
64
64
|
// rather than left to DEFAULT_FINDING_ROUTE because the CTA is specific --
|
|
65
65
|
// a reader who sees "lane config drifted" should be told which button.
|
|
66
66
|
"lane-keys-drifted": { panel: "maintenance", cta: "overview.item.laneKeysDrifted.cta" },
|
|
67
|
+
// v1.3.0. The rule again, and cleanly: every one of these is cleared on the
|
|
68
|
+
// CLI Hook Interface panel — the board is where an orphaned component is
|
|
69
|
+
// removed, the caution strip is where an invalid layout is named, and the
|
|
70
|
+
// Rebuild button is where a stale compile is fixed.
|
|
71
|
+
"statusline-layout-orphaned": { panel: "hookui", cta: "overview.item.statuslineOrphaned.cta" },
|
|
72
|
+
"statusline-layout-invalid": { panel: "hookui", cta: "overview.item.statuslineInvalid.cta" },
|
|
73
|
+
"statusline-layout-unreadable": { panel: "hookui", cta: "overview.item.statuslineUnreadable.cta" },
|
|
67
74
|
};
|
|
68
75
|
const DEFAULT_FINDING_ROUTE = { panel: "maintenance", cta: "overview.item.doctor.cta" };
|
|
69
76
|
const findingRoute = (id) => FINDING_ROUTE[id] || DEFAULT_FINDING_ROUTE;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-id/orc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "ORC — an orchestrator skill constellation for Claude Code: intake, planning, scored parallel subagents, code-pattern matching, review, verify, ship, plus a project knowledge-base wiki.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"orc": "bin/cli.js"
|
|
@@ -188,6 +188,69 @@ The branch you are on. A detached HEAD shows as `@a1b2c3d`.
|
|
|
188
188
|
|
|
189
189
|
---
|
|
190
190
|
|
|
191
|
+
## Your own status line
|
|
192
|
+
|
|
193
|
+
You can build your own instead of this one. It is **off** by default, and while
|
|
194
|
+
it is off this file describes exactly what you see.
|
|
195
|
+
|
|
196
|
+
Open the panel:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
orc ui
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Then go to **CLI Hook Interface**. You put components into three lines and drag
|
|
203
|
+
them where you want them. One rule decides where a component may go:
|
|
204
|
+
|
|
205
|
+
> A line may hold a component only if every line above it holds at least one.
|
|
206
|
+
|
|
207
|
+
So line 1 must hold something before line 2 can, and line 2 before line 3. Each
|
|
208
|
+
line holds at most five components. The panel will not let you make an illegal
|
|
209
|
+
move, and it tells you why.
|
|
210
|
+
|
|
211
|
+
Every component can be changed: its words, its colour, its shape, how wide it
|
|
212
|
+
is, and when it is allowed to disappear.
|
|
213
|
+
|
|
214
|
+
**Three things a terminal cannot do**, said plainly so you do not look for them:
|
|
215
|
+
|
|
216
|
+
| You may want | What you get |
|
|
217
|
+
|---|---|
|
|
218
|
+
| A bigger font | The terminal owns the font size. Use **bold**, or make a component wider — a bar at width 12 is a big object. |
|
|
219
|
+
| A blinking part | Refused. Half of terminals turn it off, and no part of a status line needs it. |
|
|
220
|
+
| Icon-font symbols | Not shipped. They need a font we cannot check for, and they draw as empty boxes without it. |
|
|
221
|
+
|
|
222
|
+
There is a command-line half (`orc statusline`). It exists so the panel has
|
|
223
|
+
something to run. Building a three-line layout by typing flags is harder than
|
|
224
|
+
dragging, so the panel is the recommended way.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## The agent panel
|
|
229
|
+
|
|
230
|
+
When ORC sends work to a subagent, Claude Code shows a row for it in the agent
|
|
231
|
+
panel. ORC can draw that row too — `orc ui` ▸ **CLI Hook Interface**, then pick
|
|
232
|
+
the **subagent** board.
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
● orc-executor-opus-5-low O5/low 84K ███▎░░░░ 42% for 17m
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
It is off by default, and while it is off you see Claude Code's own row.
|
|
239
|
+
|
|
240
|
+
**One thing here runs whether the row is on or off**, and it is worth knowing
|
|
241
|
+
about. Claude Code tells this hook **how many tokens each agent has used**.
|
|
242
|
+
Nothing else tells ORC that: the conversation file records no token use for a
|
|
243
|
+
subagent at all. So ORC writes down what the panel reports, and `orc usage
|
|
244
|
+
report` shows it.
|
|
245
|
+
|
|
246
|
+
**It is a floor, not a total.** ORC only sees an agent while it is in the panel.
|
|
247
|
+
An agent that starts and ends between two redraws is never seen, and a number
|
|
248
|
+
read just before an agent ended is short by whatever came after. `orc usage
|
|
249
|
+
report` says so on every one of these numbers. It never shows `0` for something
|
|
250
|
+
it did not see.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
191
254
|
## For maintainers
|
|
192
255
|
|
|
193
256
|
- The hook is `orc-statusline.js`. `orc init` installs it and wires it into
|
|
@@ -195,8 +258,23 @@ The branch you are on. A detached HEAD shows as `@a1b2c3d`.
|
|
|
195
258
|
- The phase list is **not** in the hook. `orc init` and `orc update` write it to
|
|
196
259
|
`hooks/orc-lane-rails.json` from the CLI registries. Run `orc lane rails` to
|
|
197
260
|
read it. The hook renders that file and decides nothing about it.
|
|
198
|
-
-
|
|
261
|
+
- The hook reads the disk once every 5 seconds and caches the answer, because a
|
|
199
262
|
status line redraws on every keystroke. `MTok` reads only the new bytes of the
|
|
200
|
-
transcript.
|
|
263
|
+
transcript. The wiki part joined that scan in v1.3.0: it used to start a `git`
|
|
264
|
+
process on every redraw.
|
|
201
265
|
- `ORC_STATUSLINE_SCAN_MS` is the one seam over that budget. It exists for
|
|
202
266
|
tests. Nothing in ORC sets it.
|
|
267
|
+
- **The budget is small.** Claude Code waits 300 ms between redraws and stops a
|
|
268
|
+
script that is still running when the next redraw starts. On Windows, starting
|
|
269
|
+
`node` alone takes about 285 ms of that. So the hook has about 15 ms to do all
|
|
270
|
+
its work. This is why nothing here starts a process, and why every answer is
|
|
271
|
+
cached.
|
|
272
|
+
- The custom layout is COMPILED. `orc statusline` turns what you composed into a
|
|
273
|
+
flat render program (`statusline-compiled.json`) with every colour worked out
|
|
274
|
+
in advance, and the hook only walks it. The hook never reads the layout you
|
|
275
|
+
authored. If the compiled file is missing, stale, or does not pass a cheap
|
|
276
|
+
shape check, the hook silently renders the shipped lines instead and
|
|
277
|
+
`orc doctor` names the reason.
|
|
278
|
+
- The cache file is `.claude/orc/usage-session.json`. The hook reads it once and
|
|
279
|
+
writes it once, after the text is ready. It stores raw numbers only — never a
|
|
280
|
+
word like `fresh` or `STALE`, which is computed each time it is shown.
|