@azure-id/orc 1.4.0 → 1.4.2
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 +229 -0
- package/README-id.md +39 -2
- package/README.md +53 -63
- package/bin/cli.js +212 -15
- package/bin/webui/api.js +16 -0
- package/bin/webui/css/04-motion.css +61 -0
- package/bin/webui/css/06-responsive.css +17 -1
- package/bin/webui/css/panels/hookui.css +493 -98
- package/bin/webui/fixtures/hookui.js +431 -409
- package/bin/webui/i18n/en/hookui.json +119 -44
- package/bin/webui/i18n/en/tour.json +1 -1
- package/bin/webui/i18n/id/hookui.json +137 -62
- package/bin/webui/i18n/id/tour.json +1 -1
- package/bin/webui/js/panels/hookui.js +1266 -466
- package/package.json +1 -1
- package/templates/hooks/README.md +8 -1
- package/templates/hooks/orc-statusline.js +15 -4
- package/templates/hooks/orc-subagent-line.js +5 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-id/orc",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
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"
|
|
@@ -205,12 +205,19 @@ them where you want them. One rule decides where a component may go:
|
|
|
205
205
|
> A line may hold a component only if every line above it holds at least one.
|
|
206
206
|
|
|
207
207
|
So line 1 must hold something before line 2 can, and line 2 before line 3. Each
|
|
208
|
-
line holds at most
|
|
208
|
+
line holds at most six components. The panel will not let you make an illegal
|
|
209
209
|
move, and it tells you why.
|
|
210
210
|
|
|
211
211
|
Every component can be changed: its words, its colour, its shape, how wide it
|
|
212
212
|
is, and when it is allowed to disappear.
|
|
213
213
|
|
|
214
|
+
**The shape decides what the other settings can do.** Only these shapes print a
|
|
215
|
+
short name in front of the value: `plain`, `label-value`, `bracket`, `angle`,
|
|
216
|
+
`badge`, `pill` and `stack`. A bar, an icon and a bare value have no room for
|
|
217
|
+
one, so the panel switches the Name box off for them and says so. The same is
|
|
218
|
+
true of the number settings: a bar has a width and a colour ramp, and no number
|
|
219
|
+
format at all.
|
|
220
|
+
|
|
214
221
|
**Three things a terminal cannot do**, said plainly so you do not look for them:
|
|
215
222
|
|
|
216
223
|
| You may want | What you get |
|
|
@@ -1147,16 +1147,27 @@ function custom(d, ctx) {
|
|
|
1147
1147
|
if (!engine.BINDINGS[b]) return slFallback(orcDir, "statusline-layout-skew");
|
|
1148
1148
|
}
|
|
1149
1149
|
|
|
1150
|
-
// Rung 5. The cheap shape guard: at most three lines, at most
|
|
1150
|
+
// Rung 5. The cheap shape guard: at most three lines, at most `max_per_line`
|
|
1151
1151
|
// components on any of them, and the dense-prefix rule —
|
|
1152
1152
|
// A line may hold a component only if every line above it holds at least one.
|
|
1153
|
+
//
|
|
1154
|
+
// THE CAP AND THE COUNTING RULE ARE BOTH THE COMPILER'S (v1.4.2). This held
|
|
1155
|
+
// its own `5` and counted EVERY item op, so it disagreed with the validator
|
|
1156
|
+
// twice: it bounced a legal six-part line, and it bounced a legal five plus
|
|
1157
|
+
// a spacer. Both fell silently back to the shipped lines with the reason
|
|
1158
|
+
// only in a ledger file, which reads exactly like "my sixth part reset the
|
|
1159
|
+
// bar to the default". The cap rides on the lock (already gated on
|
|
1160
|
+
// `orc_version` at rung 3, so a stale copy cannot outlive its build) and
|
|
1161
|
+
// the compiler marks a structural op `s` — this cannot know that on its
|
|
1162
|
+
// own, because a compiled op carries an INSTANCE id and never a type.
|
|
1153
1163
|
if (!Array.isArray(prog.lines) || prog.lines.length > 3)
|
|
1154
1164
|
return slFallback(orcDir, "statusline-layout-invalid");
|
|
1165
|
+
const cap = Number(lock.max_per_line) > 0 ? Number(lock.max_per_line) : 6;
|
|
1155
1166
|
let seenEmpty = false;
|
|
1156
1167
|
for (const l of prog.lines) {
|
|
1157
|
-
const
|
|
1158
|
-
if (
|
|
1159
|
-
if (
|
|
1168
|
+
const ops = (l.ops || []).filter((o) => o.op === "item");
|
|
1169
|
+
if (ops.filter((o) => !o.s).length > cap) return slFallback(orcDir, "statusline-layout-invalid");
|
|
1170
|
+
if (ops.length === 0) seenEmpty = true;
|
|
1160
1171
|
else if (seenEmpty) return slFallback(orcDir, "statusline-layout-invalid");
|
|
1161
1172
|
}
|
|
1162
1173
|
|
|
@@ -182,10 +182,13 @@ function render(d, tasks) {
|
|
|
182
182
|
|
|
183
183
|
// Rung 5. A subagent row is ONE line by construction — Claude Code renders
|
|
184
184
|
// one row per task — so the board's three-line shape does not apply and the
|
|
185
|
-
// cheap guard is simply "one line, at most
|
|
185
|
+
// cheap guard is simply "one line, at most `max_per_line` things on it".
|
|
186
186
|
if (!Array.isArray(prog.lines) || !prog.lines.length) return null;
|
|
187
187
|
const line = prog.lines[0];
|
|
188
|
-
|
|
188
|
+
// The same cap, from the same place, counted the same way (v1.4.2). A
|
|
189
|
+
// hardcoded number here is a second idea of how much one line may say.
|
|
190
|
+
const cap = Number(lock && lock.max_per_line) > 0 ? Number(lock.max_per_line) : 6;
|
|
191
|
+
if ((line.ops || []).filter((o) => o.op === "item" && !o.s).length > cap) return null;
|
|
189
192
|
|
|
190
193
|
// Rung 6. One row per task, each rendered with THAT TASK bound.
|
|
191
194
|
const now = Date.now();
|