@azure-id/orc 1.2.0 → 1.4.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/CHANGELOG.md +296 -0
- package/README-id.md +44 -0
- package/README.md +54 -78
- package/bin/cli.js +2615 -5
- package/bin/verify-contracts.js +60 -1
- package/bin/verify-package.js +588 -568
- package/bin/webui/api.js +71 -0
- package/bin/webui/app.html +213 -210
- package/bin/webui/css/06-responsive.css +28 -0
- package/bin/webui/css/panels/hookui.css +379 -0
- package/bin/webui/fixtures/hookui.js +409 -0
- package/bin/webui/fixtures/index.js +17 -0
- package/bin/webui/i18n/en/hookui.json +119 -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 +119 -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 +891 -0
- package/bin/webui/js/panels/overview.js +7 -0
- package/package.json +1 -1
- package/templates/hooks/README.md +280 -0
- package/templates/hooks/orc-statusline-render.js +921 -0
- package/templates/hooks/orc-statusline.js +1090 -87
- package/templates/hooks/orc-subagent-line.js +219 -0
package/bin/verify-contracts.js
CHANGED
|
@@ -411,6 +411,7 @@ const CONTRACTS = [
|
|
|
411
411
|
token: "orc run inflight",
|
|
412
412
|
binFiles: ["bin/cli.js"],
|
|
413
413
|
files: [
|
|
414
|
+
"hooks/README.md",
|
|
414
415
|
"skills/_shared/return-validation.md",
|
|
415
416
|
"skills/_shared/phases/execution.md",
|
|
416
417
|
"skills/orc/SKILL.md",
|
|
@@ -836,12 +837,36 @@ const CONTRACTS = [
|
|
|
836
837
|
"skills/_shared/phases/preflight.md",
|
|
837
838
|
],
|
|
838
839
|
},
|
|
840
|
+
{
|
|
841
|
+
// v1.3.0 W1 — the CLI Hook Interface. The compiled program is the ONE thing
|
|
842
|
+
// that crosses the wall between the CLI and the hook, so both halves have
|
|
843
|
+
// to name the same file. The AUTHORED layout is deliberately NOT registered
|
|
844
|
+
// here: the hook must never name it, because it must never read it.
|
|
845
|
+
name: "the compiled status-line program (the CLI compiles, the hook renders)",
|
|
846
|
+
token: "statusline-compiled.json",
|
|
847
|
+
binFiles: ["bin/cli.js"],
|
|
848
|
+
files: ["hooks/orc-statusline.js", "hooks/orc-statusline-render.js", "hooks/README.md"],
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
// The board rule, stated ONCE so the CLI, the hook and the panel all cite
|
|
852
|
+
// the same sentence. It is the thing a user most needs to understand about
|
|
853
|
+
// the board and the thing most likely to be paraphrased into three
|
|
854
|
+
// different half-truths.
|
|
855
|
+
name: "the dense-prefix invariant (the status-line board)",
|
|
856
|
+
token: "A line may hold a component only if every line above it holds at least one.",
|
|
857
|
+
binFiles: ["bin/cli.js"],
|
|
858
|
+
files: ["hooks/README.md", "hooks/orc-statusline.js"],
|
|
859
|
+
},
|
|
839
860
|
{
|
|
840
861
|
name: "behavior-trace run pointer (every ORC entry point writes .current)",
|
|
841
862
|
token: ".current",
|
|
842
863
|
files: [
|
|
843
864
|
"agents/orc-trace-writer-haiku-4-5.md",
|
|
844
865
|
"hooks/orc-trace.js",
|
|
866
|
+
// v1.2.1: the statusline READS the pointer to decide which run `status:`
|
|
867
|
+
// is about. "The newest file" would be a different, wrong answer during
|
|
868
|
+
// a lane suspend, when two traces are live and only one is the run.
|
|
869
|
+
"hooks/orc-statusline.js",
|
|
845
870
|
"skills/_shared/lane-suspend.md",
|
|
846
871
|
"skills/context-combiner/SKILL.md",
|
|
847
872
|
"skills/orc-aftermath/SKILL.md",
|
|
@@ -905,6 +930,18 @@ const CONTRACTS = [
|
|
|
905
930
|
"skills/_shared/phases/trace.md",
|
|
906
931
|
],
|
|
907
932
|
},
|
|
933
|
+
{
|
|
934
|
+
// v1.2.1 — the statusline's phase rail. The CLI COMPUTES the phase list
|
|
935
|
+
// (labels, order, motif kind) and stamps it at install; the hook RENDERS it
|
|
936
|
+
// and derives nothing, the same way `orc ui` renders the Flow stepper. The
|
|
937
|
+
// two halves live in two files, so a rename of the manifest silently blanks
|
|
938
|
+
// `status:` unless it fails here.
|
|
939
|
+
name: "statusline phase rail (v1.2.1 — orc-lane-rails.json)",
|
|
940
|
+
token: "orc-lane-rails.json",
|
|
941
|
+
binFiles: ["bin/cli.js"],
|
|
942
|
+
files: [
|
|
943
|
+
"hooks/README.md","hooks/orc-statusline.js"],
|
|
944
|
+
},
|
|
908
945
|
{
|
|
909
946
|
// v0.32.0: the hook's zero-model-dependence phase segmentation. Producer
|
|
910
947
|
// (the hook) and both consumers (retro skill + its miner) must agree on the
|
|
@@ -922,6 +959,11 @@ const CONTRACTS = [
|
|
|
922
959
|
// v0.42.0: the combiner is segmented as its own PHASE-EDGE family INSIDE the
|
|
923
960
|
// analyze trace — the reason it needs no lane of its own.
|
|
924
961
|
"skills/context-combiner/SKILL.md",
|
|
962
|
+
// v1.2.1: the statusline READS these edges to render `status:`. It is the
|
|
963
|
+
// deterministic floor under that segment — the model-narrated verb can
|
|
964
|
+
// only refine it — so a rename of this verb would silently blank the one
|
|
965
|
+
// segment on line 2 that changes minute to minute.
|
|
966
|
+
"hooks/orc-statusline.js",
|
|
925
967
|
],
|
|
926
968
|
},
|
|
927
969
|
{
|
|
@@ -946,6 +988,7 @@ const CONTRACTS = [
|
|
|
946
988
|
token: "orc wiki sync",
|
|
947
989
|
binFiles: ["bin/cli.js"],
|
|
948
990
|
files: [
|
|
991
|
+
"hooks/README.md",
|
|
949
992
|
"agents/orc-wiki-scanner-opus-4-8-high.md",
|
|
950
993
|
"agents/orc-wiki-scanner-opus-5-med.md",
|
|
951
994
|
"agents/orc-wiki-scanner-sonnet-5-high.md",
|
|
@@ -985,6 +1028,7 @@ const CONTRACTS = [
|
|
|
985
1028
|
name: "wiki UNREGISTERED state (v0.18.0 — docs without a manifest ≠ no wiki; sync, never re-scan)",
|
|
986
1029
|
token: "UNREGISTERED",
|
|
987
1030
|
files: [
|
|
1031
|
+
"hooks/README.md",
|
|
988
1032
|
"hooks/orc-statusline.js",
|
|
989
1033
|
"skills/orc-wiki/README.md",
|
|
990
1034
|
"skills/orc-wiki/references/phases/phase-0.md",
|
|
@@ -1347,7 +1391,11 @@ const CONTRACTS = [
|
|
|
1347
1391
|
// wiki-meta.json lives under.
|
|
1348
1392
|
name: "the challenge ledger (v0.47.0 — CLI-only writer)",
|
|
1349
1393
|
token: "challenge.json",
|
|
1350
|
-
files: [
|
|
1394
|
+
files: [
|
|
1395
|
+
"skills/orc-challenge/references/cycle-state.md",
|
|
1396
|
+
// the `challenge` component reads it (v1.3.0)
|
|
1397
|
+
"hooks/orc-statusline.js",
|
|
1398
|
+
],
|
|
1351
1399
|
binFiles: ["bin/cli.js"],
|
|
1352
1400
|
},
|
|
1353
1401
|
{
|
|
@@ -1450,6 +1498,8 @@ const CONTRACTS = [
|
|
|
1450
1498
|
token: "RESUME.md",
|
|
1451
1499
|
binFiles: ["bin/cli.js"],
|
|
1452
1500
|
files: [
|
|
1501
|
+
// the `resume` / `open-runs` components read its one byte-stable line (v1.3.0)
|
|
1502
|
+
"hooks/orc-statusline.js",
|
|
1453
1503
|
// v1.0.0 W5 — the demotion's run-scoped record lives BESIDE it, in
|
|
1454
1504
|
// {run_dir}/{slug}/, and is deleted with the run. A move of one is a move
|
|
1455
1505
|
// of the other.
|
|
@@ -1489,6 +1539,7 @@ const CONTRACTS = [
|
|
|
1489
1539
|
name: "wiki freshness tier enum (v0.11.0 — FRESH/AGING/STALE, computed on read)",
|
|
1490
1540
|
token: "AGING",
|
|
1491
1541
|
files: [
|
|
1542
|
+
"hooks/README.md",
|
|
1492
1543
|
"hooks/orc-statusline.js",
|
|
1493
1544
|
"skills/_shared/gotchas.md",
|
|
1494
1545
|
"skills/_shared/interview.md",
|
|
@@ -1941,6 +1992,8 @@ const CONTRACTS = [
|
|
|
1941
1992
|
token: "orc-crosslink.config.yaml",
|
|
1942
1993
|
binFiles: ["bin/cli.js"],
|
|
1943
1994
|
files: [
|
|
1995
|
+
// the `crosslink` component counts its peers (v1.3.0)
|
|
1996
|
+
"hooks/orc-statusline.js",
|
|
1944
1997
|
"skills/orc-poly/SKILL.md",
|
|
1945
1998
|
"skills/orc-wiki/README.md",
|
|
1946
1999
|
"skills/orc-wiki/SKILL.md",
|
|
@@ -3617,6 +3670,12 @@ for (const b of BUDGETS) {
|
|
|
3617
3670
|
// spine reads `extra_timeout_s`. An empty lanes[] here is an ANSWER.
|
|
3618
3671
|
"wait_hop_minutes",
|
|
3619
3672
|
"wait_max_hops",
|
|
3673
|
+
// v1.3.0 — an operating key of the STATUSLINE HOOK. A hook has no lane and
|
|
3674
|
+
// cannot resolve config, so no spine reads this; the hook reads the raw key
|
|
3675
|
+
// off the file, exactly as it already does for `log_dir` and
|
|
3676
|
+
// `extra_enabled`. An empty lanes[] here is an ANSWER.
|
|
3677
|
+
"statusline_custom",
|
|
3678
|
+
"subagent_line_custom",
|
|
3620
3679
|
]);
|
|
3621
3680
|
for (const e of metaEntries) {
|
|
3622
3681
|
if (!e.lanes) {
|