@bongos/core 1.24.40 → 1.24.41

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 (69) hide show
  1. package/.bongos-core.json +75 -90
  2. package/docs/canonical-permissions.md +2 -1
  3. package/docs/copy-inventory.md +116 -120
  4. package/docs/copy-registry.json +151 -207
  5. package/docs/module-api-changelog.md +2 -0
  6. package/docs/page-inventory.json +11 -69
  7. package/docs/page-readings.json +382 -763
  8. package/modules/hall-ui/public/ai-studio.html +2 -2
  9. package/modules/hall-ui/public/atlas.html +2 -2
  10. package/modules/hall-ui/public/blockers.html +2 -2
  11. package/modules/hall-ui/public/board-room.html +2 -2
  12. package/modules/hall-ui/public/city.html +2 -2
  13. package/modules/hall-ui/public/collab.html +2 -2
  14. package/modules/hall-ui/public/commands.html +2 -2
  15. package/modules/hall-ui/public/copy-desk.html +2 -2
  16. package/modules/hall-ui/public/craft-mode.js +1 -1
  17. package/modules/hall-ui/public/deploy.html +2 -2
  18. package/modules/hall-ui/public/gate.js +12 -5
  19. package/modules/hall-ui/public/goal-map.html +2 -2
  20. package/modules/hall-ui/public/goals.html +2 -2
  21. package/modules/hall-ui/public/government.html +2 -2
  22. package/modules/hall-ui/public/idea.html +2 -2
  23. package/modules/hall-ui/public/ideas.html +2 -2
  24. package/modules/hall-ui/public/index.html +2 -2
  25. package/modules/hall-ui/public/market-watch-item.html +2 -2
  26. package/modules/hall-ui/public/market-watch-rules.html +2 -2
  27. package/modules/hall-ui/public/market-watch.html +2 -2
  28. package/modules/hall-ui/public/modules.html +2 -2
  29. package/modules/hall-ui/public/money.html +2 -2
  30. package/modules/hall-ui/public/my-agents.html +2 -2
  31. package/modules/hall-ui/public/palette.js +10 -0
  32. package/modules/hall-ui/public/primer.html +2 -2
  33. package/modules/hall-ui/public/profile.html +2 -2
  34. package/modules/hall-ui/public/project-settings.html +2 -2
  35. package/modules/hall-ui/public/roadmap.html +2 -2
  36. package/modules/hall-ui/public/roster.html +2 -2
  37. package/modules/hall-ui/public/sessions.js +21 -10
  38. package/modules/hall-ui/public/settings.html +2 -2
  39. package/modules/hall-ui/public/shell.js +1 -2
  40. package/modules/hall-ui/public/street.html +2 -2
  41. package/modules/hall-ui/public/studio.html +2 -2
  42. package/modules/hall-ui/public/task.html +2 -2
  43. package/modules/hall-ui/public/thinking.html +2 -2
  44. package/modules/hall-ui/public/tweak-editor.html +2 -2
  45. package/modules/hall-ui/public/watch.html +120 -7
  46. package/modules/hall-ui/public/watch.js +11 -0
  47. package/modules/hall-ui/public/watch.states.json +49 -1
  48. package/modules/hall-ui/public/work.html +2 -2
  49. package/package-lock.json +2 -2
  50. package/package.json +1 -1
  51. package/release-notes.json +6 -0
  52. package/scripts/bongos/gen-hall-sitemap.js +2 -0
  53. package/src/bongos/serve-internal.js +15 -22
  54. package/src/module-api.js +1 -1
  55. package/tests/autonomy_builder_scope.mjs +2 -1
  56. package/tests/hall_audit.mjs +1 -1
  57. package/tests/hall_loading.mjs +13 -2
  58. package/tests/hall_nav.mjs +5 -2
  59. package/tests/hall_oversight_tabs.mjs +162 -0
  60. package/tests/hall_oversight_world.mjs +23 -9
  61. package/tests/hall_page_gate_map.mjs +7 -2
  62. package/tests/hall_roster_world.mjs +14 -9
  63. package/tests/hall_sessions_ledger.mjs +2 -1
  64. package/tests/nav_permission_atoms.mjs +3 -2
  65. package/tests/sessions_kit_pager.mjs +8 -4
  66. package/modules/hall-ui/public/gate.html +0 -76
  67. package/modules/hall-ui/public/gate.states.json +0 -60
  68. package/modules/hall-ui/public/sessions.html +0 -128
  69. package/modules/hall-ui/public/sessions.states.json +0 -59
@@ -1,128 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>Sessions — {{worldName}}</title>
7
- <meta name="description" content="The record of every work session — who built, what it touched, what it cost.">
8
- <link rel="icon" href="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><text x='16' y='24' font-size='24' text-anchor='middle' font-family='sans-serif'>⌂</text></svg>">
9
- <link rel="preconnect" href="https://fonts.googleapis.com">
10
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
- <link rel="stylesheet" href="/builders/style.css?v=2026-06-04-sessions">
12
- <!-- task 1003470: the family sheet (the top-of-page strip, the mono fact,
13
- the chip that is a door), linked before the page's own. -->
14
- <link rel="stylesheet" href="/builders/oversight.css">
15
- <link rel="stylesheet" href="/builders/sessions.css">
16
- </head>
17
- <body data-page="sessions" data-page-title="Sessions">
18
-
19
- <div class="app">
20
- <aside class="app-sidebar" id="app-sidebar" aria-label="Primary"></aside>
21
- <div class="app-scrim" id="app-scrim" hidden></div>
22
- <div class="app-body">
23
- <header class="app-topbar" id="app-topbar"></header>
24
- <div class="app-content">
25
- <!-- The page's one h1, for screen readers: no page shows its head (task
26
- 1004836), so its sub-line went in task 1004829. -->
27
- <div class="page-head page-head--board">
28
- <h1 class="page-head__h">Sessions</h1>
29
- </div>
30
-
31
- <main id="hall-main">
32
- <!-- task 1005043: the page loader, shown until any section below is revealed. -->
33
- <p class="hall-loading hall-loading--page hall-loading--wait" role="status">Loading…</p>
34
- <!-- Access notice — shown by sessions.js when the viewer is below the
35
- floor. The heading and the line are written from the pack's rank
36
- label (ADR 0157: metic and up), so the static text never renders. -->
37
- <section class="scroll" id="gate-scroll" aria-labelledby="gate-h" hidden>
38
- <h2 id="gate-h" class="scroll__h">Higher ranks only</h2>
39
- <p class="scroll__lede" id="gate-body">The session log opens from a higher rank.</p>
40
- </section>
41
-
42
- <!-- Totals — the shell's glass strip at the top of the page (the way
43
- Watch and Gate carry theirs), not a strip inside a panel. -->
44
- <section class="ov-summary" id="stats-scroll" aria-labelledby="stats-h" hidden>
45
- <h2 id="stats-h" class="sr-only">Totals</h2>
46
- <div class="stat-row" id="stats-body"></div>
47
- </section>
48
-
49
- <!-- Every recorded session — the corpus table. No wrapper: the shell's
50
- card strip scrolls a wide ledger on a phone, and the old wrapper
51
- turned the sticky header into a scrollport overlay on desktop. -->
52
- <section class="scroll" id="sessions-scroll" aria-labelledby="sessions-h" hidden>
53
- <h2 id="sessions-h" class="scroll__h">Recorded sessions</h2>
54
- <!-- The count, and a failed load, sit here: the page head that used to carry
55
- them is hidden (task 1004829). -->
56
- <p class="scroll__lede" id="ledger-status" role="status" aria-live="polite">Loading sessions…</p>
57
- <!-- task 1003975: the ledger's first filter. It LOOKS like the pager's
58
- per-page control on purpose (one control grammar per page) but wears
59
- its own class — the hall_audit guard reads `class="pager…"` as a
60
- hand-rolled pager, and it is right to: borrowing that family is how a
61
- second pager implementation starts. Its options are filled from the
62
- server's vocabulary in sessions.js, never hardcoded here, where they
63
- would drift from what the route accepts. -->
64
- <div class="ledger-filters">
65
- <label class="ledger-filter">
66
- <span>Kind</span>
67
- <select id="session-type-filter" aria-label="Filter sessions by kind"></select>
68
- </label>
69
- </div>
70
- <table class="ledger" id="sessions-table">
71
- <thead>
72
- <tr>
73
- <th>Session</th><th>Builder</th>
74
- <th title="What the session did, derived from its own transcript: whether it wrote files, used tools, and how many prompts a person actually sent.">Kind</th>
75
- <th>Tasks</th>
76
- <th class="ledger__num">Earned</th><th class="ledger__num">Turns</th><th class="ledger__num">Tokens</th><th class="ledger__num">Tool errors</th>
77
- <th class="ledger__num">Duration</th>
78
- <th class="ledger__num" title="How the session read to this builder, scored against their own interaction profile. Advisory — it gates nothing.">Plain speech</th>
79
- <th>Recorded</th>
80
- </tr>
81
- </thead>
82
- <tbody id="sessions-body"></tbody>
83
- </table>
84
- <!-- The kit stamps the pager bar here (sessions.js, OTBKit.pagerBarHtml).
85
- makeLedger is deliberately NOT used: it stamps table + pager into one
86
- mount, and this page keeps them separate so the bar sits below the
87
- ledger rather than inside whatever scrollport the table is in. -->
88
- <div id="sessions-pager-mount"></div>
89
- <p class="ledger__note" id="ledger-foot"></p>
90
- </section>
91
-
92
- <!-- task 1002830: the narrative. Opened from a row's Read door; the SAME page
93
- and the same gate as the ledger above (ADR 0051 — no second page). The
94
- server decides who may read a transcript and records an administrator's
95
- cross-builder read BEFORE serving it; this panel only displays. -->
96
- <section class="scroll" id="transcript-scroll" aria-labelledby="transcript-h" hidden>
97
- <h2 id="transcript-h" class="scroll__h">Transcript</h2>
98
- <p class="scroll__lede" id="transcript-sub"></p>
99
- <p><button type="button" class="btn" id="transcript-close">Close transcript</button></p>
100
- <div id="transcript-body" class="transcript"></div>
101
- <p><button type="button" class="btn" id="transcript-more" hidden>Load more turns</button></p>
102
- </section>
103
- </main>
104
-
105
- <footer class="app-foot" id="app-foot"></footer>
106
- </div>
107
- </div>
108
- </div>
109
-
110
- <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
111
-
112
- <!-- The app shell (sidebar + top bar). Dependency-free; loaded FIRST so the
113
- chrome exists before the page script runs. -->
114
- <script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
115
- <script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
116
- <script src="/builders/craft-mode.js?v=2026-11-05-sections"></script>
117
- <script src="/builders/shell.js?v=2026-11-05-sections"></script>
118
- <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
119
- <script src="/builders/palette.js" defer></script>
120
- <script src="/builders/task-detail.js?v=2026-07-03-taskdetail"></script>
121
- <!-- The shared component kit — the pager contract this page now uses instead of
122
- its own (task 1003279-sibling follow-up of 1003281). Must load BEFORE
123
- sessions.js, which reads window.OTBKit at boot. -->
124
- <script src="/builders/hall-kit.js"></script>
125
- <script src="/builders/brand-apply.js?v=2026-06-19-r56"></script>
126
- <script src="/builders/sessions.js?v=2026-10-02-transcript"></script>
127
- </body>
128
- </html>
@@ -1,59 +0,0 @@
1
- {
2
- "_": "Sessions — the session ledger behind requireGovernmentPage. sessions.js pages SERVER-SIDE by offset and is the one sanctioned hand-rolled pager in the hall; this file measures it, it does not ask it to change. Written with the re-skin (task 1003307); the redesign (task 1003470) put the totals on the shell's top-of-page strip, dropped the nowrap + wrapper pair that broke the sticky header, and made every id on a row a door. Populated look: the hall-preview harness (five rows in sessions__search.json).",
3
- "page": "/builders/sessions",
4
- "surface": "hall-ui",
5
- "stub": {
6
- "prefix": "/builders/"
7
- },
8
- "modeQuery": false,
9
- "_feeds": "The kit's own stub carries no feed for this page, so against it the page renders its EMPTY and SKELETON states — which is the point: those are states the floors must hold in. Against the hall-preview harness the same states render populated. Every declared 404 below is a fixture the harness does not carry, named rather than hidden.",
10
- "ignoreRequests": [
11
- "/api/(gds|bongos)/me$",
12
- "/api/(gds|bongos)/me/",
13
- "/api/(gds|bongos)/goals",
14
- "/api/(gds|bongos)/inbox/",
15
- "/api/(gds|bongos)/versions",
16
- "/api/(gds|bongos)/sessions"
17
- ],
18
- "ignoreConsole": [
19
- "/api/(gds|bongos)/",
20
- "\\b401\\b",
21
- "\\b403\\b",
22
- "\\b404\\b",
23
- "\\b501\\b",
24
- "Unauthorized",
25
- "Forbidden",
26
- "Not Found",
27
- "Not Implemented",
28
- "load failed"
29
- ],
30
- "states": {
31
- "ledger": {
32
- "auth": true,
33
- "actions": [
34
- [
35
- "wait",
36
- 700
37
- ]
38
- ],
39
- "expect": {
40
- "visible": [
41
- "#stats-scroll",
42
- "#sessions-scroll"
43
- ]
44
- }
45
- },
46
- "out": {
47
- "auth": false
48
- }
49
- },
50
- "reducedMotion": {
51
- "auth": true,
52
- "actions": [
53
- [
54
- "wait",
55
- 600
56
- ]
57
- ]
58
- }
59
- }