@bongos/core 1.24.35 → 1.24.36
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/.bongos-core.json +101 -146
- package/.claude/skills/merge-mode/SKILL.md +1 -1
- package/docs/adr/0228-the-reading-room-owes-a-reference-content-rules-not-a-second-archetype.md +1 -1
- package/docs/copy-inventory.md +136 -192
- package/docs/copy-registry.json +186 -752
- package/docs/module-api-changelog.md +2 -0
- package/docs/onboarding/diagrams/README.md +1 -2
- package/docs/onboarding/primer.md +64 -22
- package/docs/page-inventory.json +7 -101
- package/docs/page-readings.json +947 -1415
- package/docs/recipes/ui-look-before-you-ship.md +2 -2
- package/modules/design-styles/skills/style/SKILL.md +2 -2
- package/modules/hall-ui/public/ai-studio.html +2 -2
- package/modules/hall-ui/public/atlas.html +2 -2
- package/modules/hall-ui/public/blockers.html +2 -2
- package/modules/hall-ui/public/board-room.html +2 -2
- package/modules/hall-ui/public/builders.js +8 -6
- package/modules/hall-ui/public/city.html +2 -2
- package/modules/hall-ui/public/collab.html +2 -2
- package/modules/hall-ui/public/commands.html +2 -2
- package/modules/hall-ui/public/copy-desk.html +2 -2
- package/modules/hall-ui/public/craft-mode.js +1 -1
- package/modules/hall-ui/public/deploy.html +2 -2
- package/modules/hall-ui/public/diagram-viewer.css +1 -1
- package/modules/hall-ui/public/diagram-viewer.js +5 -5
- package/modules/hall-ui/public/fleet.html +2 -2
- package/modules/hall-ui/public/founding-mark.js +3 -2
- package/modules/hall-ui/public/gate.html +2 -2
- package/modules/hall-ui/public/goal-map.html +2 -2
- package/modules/hall-ui/public/goals.html +2 -2
- package/modules/hall-ui/public/government.html +2 -2
- package/modules/hall-ui/public/hall-render.js +62 -1
- package/modules/hall-ui/public/hall-widgets.js +11 -1
- package/modules/hall-ui/public/idea.html +2 -2
- package/modules/hall-ui/public/ideas.html +2 -2
- package/modules/hall-ui/public/index.html +4 -4
- package/modules/hall-ui/public/market-watch-item.html +2 -2
- package/modules/hall-ui/public/market-watch-rules.html +2 -2
- package/modules/hall-ui/public/market-watch.html +2 -2
- package/modules/hall-ui/public/modules.html +2 -2
- package/modules/hall-ui/public/my-agents.html +2 -2
- package/modules/hall-ui/public/palette.js +15 -0
- package/modules/hall-ui/public/primer-live.js +188 -0
- package/modules/hall-ui/public/primer.html +11 -6
- package/modules/hall-ui/public/primer.js +95 -23
- package/modules/hall-ui/public/primer.states.json +54 -7
- package/modules/hall-ui/public/profile.html +2 -2
- package/modules/hall-ui/public/project-settings.html +2 -2
- package/modules/hall-ui/public/roadmap.html +2 -2
- package/modules/hall-ui/public/room.css +23 -121
- package/modules/hall-ui/public/roster.html +2 -2
- package/modules/hall-ui/public/sessions.html +2 -2
- package/modules/hall-ui/public/settings.html +2 -2
- package/modules/hall-ui/public/shell.js +14 -21
- package/modules/hall-ui/public/street.html +2 -2
- package/modules/hall-ui/public/studio.html +2 -2
- package/modules/hall-ui/public/style.css +8 -55
- package/modules/hall-ui/public/task.html +2 -2
- package/modules/hall-ui/public/thinking.html +2 -2
- package/modules/hall-ui/public/tweak-editor.html +2 -2
- package/modules/hall-ui/public/watch.html +2 -2
- package/modules/hall-ui/public/work.html +2 -2
- package/modules/hall-ui/records/founding-mark.md +4 -4
- package/modules/hall-ui/records/reading-rooms.md +2 -0
- package/modules/hall-ui/records/reference-room.md +2 -0
- package/modules/onboarding/founding-mode.js +6 -2
- package/modules/ui-design/kit/render.js +1 -1
- package/modules/ui-design/styles/README.md +2 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/scripts/bongos/gen-hall-sitemap.js +3 -0
- package/scripts/hall-preview/server.js +6 -11
- package/src/bongos/serve-internal.js +28 -37
- package/src/module-api.js +1 -1
- package/tests/craft_mode_home.mjs +6 -2
- package/tests/founding_builders.mjs +6 -5
- package/tests/founding_mode.mjs +7 -4
- package/tests/hall_board_world.mjs +44 -1
- package/tests/hall_fullscreen.mjs +1 -1
- package/tests/hall_nav.mjs +24 -7
- package/tests/hall_page_gate_map.mjs +14 -5
- package/tests/hall_reading_room.mjs +426 -0
- package/tests/hall_reading_world.mjs +36 -30
- package/tests/nav_permission_atoms.mjs +3 -2
- package/tests/rank_tier_single_source.mjs +0 -1
- package/tests/ui_design_kit.mjs +1 -1
- package/modules/hall-ui/public/diagrams.css +0 -45
- package/modules/hall-ui/public/diagrams.html +0 -106
- package/modules/hall-ui/public/diagrams.states.json +0 -28
- package/modules/hall-ui/public/drachmae.html +0 -110
- package/modules/hall-ui/public/drachmae.js +0 -431
- package/modules/hall-ui/public/drachmae.states.json +0 -58
- package/modules/hall-ui/public/ranks-founding.states.json +0 -12
- package/modules/hall-ui/public/ranks.html +0 -83
- package/modules/hall-ui/public/ranks.js +0 -229
- package/modules/hall-ui/public/ranks.states.json +0 -15
- package/tests/hall_reference_world.mjs +0 -352
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/* diagrams.css — what the DIAGRAMS index has that the other reading rooms do
|
|
2
|
-
not (task 1003306, goal 1000081).
|
|
3
|
-
|
|
4
|
-
The room — the framed figure, the reading measure, the prose rhythm — is the
|
|
5
|
-
shared archetype in room.css, which this page loads first. What is left here
|
|
6
|
-
is the legend strip: the three-state key (live / planned / reserved) that
|
|
7
|
-
tells a reader how to read the five generated diagrams. It is genuinely this
|
|
8
|
-
page's alone, so it is this page's sheet.
|
|
9
|
-
|
|
10
|
-
Promoted out of a 16-line inline <style> block, which sat one line over the
|
|
11
|
-
hall's default budget with its own tests/hall_audit.mjs exception. The
|
|
12
|
-
exception retires with it, and the hall now carries no substantive inline
|
|
13
|
-
style at all.
|
|
14
|
-
|
|
15
|
-
The diagrams themselves are GENERATED (scripts/bongos/gen-diagrams.js writes the
|
|
16
|
-
.svg/.png pair and assertions.json in lockstep) — never hand-edit a .mmd. */
|
|
17
|
-
|
|
18
|
-
/* The key sits above the figures on the ground of its own panel, wrapping to a
|
|
19
|
-
column on a phone rather than scrolling sideways. */
|
|
20
|
-
.legend {
|
|
21
|
-
display: flex;
|
|
22
|
-
flex-wrap: wrap;
|
|
23
|
-
gap: var(--sp-xs) var(--sp-md);
|
|
24
|
-
margin: 0;
|
|
25
|
-
}
|
|
26
|
-
.legend__item {
|
|
27
|
-
display: flex;
|
|
28
|
-
align-items: center;
|
|
29
|
-
gap: 8px;
|
|
30
|
-
min-height: 24px;
|
|
31
|
-
font-size: 13.5px;
|
|
32
|
-
color: var(--ink-soft);
|
|
33
|
-
}
|
|
34
|
-
/* The three states are the hall's fixed status vocabulary, not accent-derived:
|
|
35
|
-
a diagram's "planned" must not be the same salmon as a claim button. */
|
|
36
|
-
.legend__swatch {
|
|
37
|
-
font-family: var(--label-face);
|
|
38
|
-
font-size: var(--label-size);
|
|
39
|
-
letter-spacing: var(--label-space);
|
|
40
|
-
font-weight: 400;
|
|
41
|
-
white-space: nowrap;
|
|
42
|
-
}
|
|
43
|
-
.legend__swatch--live { color: var(--ok); }
|
|
44
|
-
.legend__swatch--planned { color: var(--warn); }
|
|
45
|
-
.legend__swatch--reserved { color: var(--ink-faint); }
|
|
@@ -1,106 +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>How the system works — {{worldName}}</title>
|
|
7
|
-
<meta name="description" content="Visual diagrams of how the development system works: task lifecycle, builder ranks, the credit economy, the complete architecture (where your work runs and how it reaches production), and two-track versioning. Pan and zoom each diagram like a design tool.">
|
|
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-07-02-shell1">
|
|
12
|
-
<link rel="stylesheet" href="/builders/room.css">
|
|
13
|
-
<link rel="stylesheet" href="/builders/diagrams.css">
|
|
14
|
-
<link rel="stylesheet" href="/builders/diagram-viewer.css?v=2026-06-14-diagviewer-1">
|
|
15
|
-
</head>
|
|
16
|
-
<!-- `room` opts this page into the reading-room archetype's composition tokens
|
|
17
|
-
(room.css) — the framed figure here is the same object the primer inlines,
|
|
18
|
-
and diagram-viewer.js upgrades both with one selector. -->
|
|
19
|
-
<body class="room" data-page="diagrams" data-page-title="Diagrams">
|
|
20
|
-
|
|
21
|
-
<div class="app">
|
|
22
|
-
<aside class="app-sidebar" id="app-sidebar" aria-label="Primary"></aside>
|
|
23
|
-
<div class="app-scrim" id="app-scrim" hidden></div>
|
|
24
|
-
<div class="app-body">
|
|
25
|
-
<header class="app-topbar" id="app-topbar"></header>
|
|
26
|
-
<div class="app-content">
|
|
27
|
-
<!-- The page's one h1, for screen readers: no page shows its head (task
|
|
28
|
-
1004836), so its eyebrow and sub-line went in task 1004828. -->
|
|
29
|
-
<div class="page-head page-head--room">
|
|
30
|
-
<h1 class="page-head__h">How the system works</h1>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<main id="hall-main">
|
|
34
|
-
|
|
35
|
-
<section class="scroll" aria-labelledby="legend-h">
|
|
36
|
-
<h2 id="legend-h" class="scroll__h">Reading the diagrams</h2>
|
|
37
|
-
<p class="scroll__lede">How work flows through {{worldName}}, in five diagrams. Each marks what is built and what is still planned. <em>Drag to pan, scroll to zoom</em>, or open one fullscreen.</p>
|
|
38
|
-
<div class="legend">
|
|
39
|
-
<span class="legend__item"><span class="legend__swatch legend__swatch--live">● LIVE</span> built & enforced today</span>
|
|
40
|
-
<span class="legend__item"><span class="legend__swatch legend__swatch--planned">⤍ PLANNED</span> designed, task-tracked, not yet built</span>
|
|
41
|
-
<span class="legend__item"><span class="legend__swatch legend__swatch--reserved">○ reserved</span> exists in schema, no behavior yet</span>
|
|
42
|
-
</div>
|
|
43
|
-
</section>
|
|
44
|
-
|
|
45
|
-
<section class="scroll" aria-labelledby="d1-h">
|
|
46
|
-
<h2 id="d1-h" class="scroll__h">1 · Task lifecycle</h2>
|
|
47
|
-
<figure class="diagram">
|
|
48
|
-
<img src="diagrams/01-task-lifecycle.png" alt="Task lifecycle from backlog to shipped, showing states and transitions and the edge where credits are awarded.">
|
|
49
|
-
<figcaption>From creation to production — and the exact step where {{currency}} are awarded (at <code>confirmed</code>, not at ship).</figcaption>
|
|
50
|
-
</figure>
|
|
51
|
-
</section>
|
|
52
|
-
|
|
53
|
-
<section class="scroll" aria-labelledby="d2-h">
|
|
54
|
-
<h2 id="d2-h" class="scroll__h">2 · Builder rank ladder</h2>
|
|
55
|
-
<figure class="diagram">
|
|
56
|
-
<img src="diagrams/02-rank-ladder.png" alt="The 16-value rank enum in three bands, which ranks are live, and the permissions each rank holds.">
|
|
57
|
-
<figcaption>The reserved 16-rank ladder, which ranks are live today (archon, metic, thetes, xenos), and what each may do.</figcaption>
|
|
58
|
-
</figure>
|
|
59
|
-
</section>
|
|
60
|
-
|
|
61
|
-
<section class="scroll" aria-labelledby="d3-h">
|
|
62
|
-
<h2 id="d3-h" class="scroll__h">3 · {{Currency}} & karma</h2>
|
|
63
|
-
<figure class="diagram">
|
|
64
|
-
<img src="diagrams/03-drachmae-karma.png" alt="Where {{currency}} and karma come from and where they go.">
|
|
65
|
-
<figcaption>Where each comes from and where each goes. {{Currency}} = credits; karma is a separate peer-trust signal, not yet built.</figcaption>
|
|
66
|
-
</figure>
|
|
67
|
-
</section>
|
|
68
|
-
|
|
69
|
-
<section class="scroll" aria-labelledby="d4-h">
|
|
70
|
-
<h2 id="d4-h" class="scroll__h">4 · The complete architecture</h2>
|
|
71
|
-
<p class="scroll__lede">Where your work runs and how it reaches production. <strong>Your machine</strong> holds the worker, the code and your local memory; the <strong>server</strong> is the authority and production; <strong>GitHub</strong> holds the repo. Follow the numbered path.</p>
|
|
72
|
-
<figure class="diagram">
|
|
73
|
-
<img src="diagrams/04-architecture.png" alt="The complete architecture: your machine (the worker, the code, and local memory), the server (authority and production, with Postgres, the server-side memory store, and the push credential), and GitHub (branch-protected main). Numbered edges show how a change travels from your machine to production; the per-builder memory layer syncs between your machine and the server.">
|
|
74
|
-
<figcaption>Your machine · memory · server (authority + prod) · GitHub — and the full path from your machine to production.</figcaption>
|
|
75
|
-
</figure>
|
|
76
|
-
</section>
|
|
77
|
-
|
|
78
|
-
<section class="scroll" aria-labelledby="d5-h">
|
|
79
|
-
<h2 id="d5-h" class="scroll__h">5 · Versioning</h2>
|
|
80
|
-
<figure class="diagram">
|
|
81
|
-
<img src="diagrams/05-versioning.png" alt="How planning sessions feed each version's task pool and how a version closes.">
|
|
82
|
-
<figcaption>How a planning session seeds each version's task pool, and how a version closes and archives its scope.</figcaption>
|
|
83
|
-
</figure>
|
|
84
|
-
</section>
|
|
85
|
-
|
|
86
|
-
</main>
|
|
87
|
-
|
|
88
|
-
<footer class="app-foot" id="app-foot"></footer>
|
|
89
|
-
</div>
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
|
|
93
|
-
<div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
|
|
94
|
-
|
|
95
|
-
<!-- The app shell (sidebar + top bar + footer). Dependency-free; runs at parse
|
|
96
|
-
time so the chrome exists before the deferred page scripts execute. -->
|
|
97
|
-
<script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
|
|
98
|
-
<script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
|
|
99
|
-
<script src="/builders/craft-mode.js?v=2026-10-30-market-watch"></script>
|
|
100
|
-
<script src="/builders/shell.js?v=2026-11-04-one-market-watch"></script>
|
|
101
|
-
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
102
|
-
<script src="/builders/palette.js" defer></script>
|
|
103
|
-
<script src="/builders/diagram-viewer.js?v=2026-06-14-diagviewer-1" defer></script>
|
|
104
|
-
<script src="/builders/copy-on-click.js?v=2026-06-01-copy-1" defer></script>
|
|
105
|
-
</body>
|
|
106
|
-
</html>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_": "The hall's diagrams index through modules/ui-design/kit/render.js (task 1003306). Five generated figures on one page is the hall's widest content, so the horizontal-overflow floor at 320 is the one this file exists for.",
|
|
3
|
-
"page": "/builders/diagrams",
|
|
4
|
-
"surface": "hall-ui",
|
|
5
|
-
"stub": { "prefix": "/builders/" },
|
|
6
|
-
"modeQuery": false,
|
|
7
|
-
"_feeds": "The diagrams are generated PNG/SVG pairs written by scripts/bongos/gen-diagrams.js and served from /builders/diagrams/*; the kit's stub has neither those nor the hall's feeds, so both are declared. diagram-viewer.js upgrades each <img> into a pan/zoom canvas only once its .svg fetch succeeds — under the stub it does not, so what renders here is the graceful-degradation path: the framed figure with a static image in it. That IS the state to measure, because it is what a reader gets whenever the vector is unavailable.",
|
|
8
|
-
"ignoreRequests": [
|
|
9
|
-
"/api/(gds|bongos)/me$",
|
|
10
|
-
"/api/(gds|bongos)/me/",
|
|
11
|
-
"/api/(gds|bongos)/goals",
|
|
12
|
-
"/api/(gds|bongos)/inbox/",
|
|
13
|
-
"/builders/diagrams/"
|
|
14
|
-
],
|
|
15
|
-
"ignoreConsole": [
|
|
16
|
-
"/api/(gds|bongos)/",
|
|
17
|
-
"\\b401\\b",
|
|
18
|
-
"\\b404\\b",
|
|
19
|
-
"Unauthorized",
|
|
20
|
-
"Not Found",
|
|
21
|
-
"load failed"
|
|
22
|
-
],
|
|
23
|
-
"states": {
|
|
24
|
-
"in": { "auth": true, "expect": { "visible": ["#hall-main"] } },
|
|
25
|
-
"out": { "auth": false }
|
|
26
|
-
},
|
|
27
|
-
"reducedMotion": { "auth": true }
|
|
28
|
-
}
|
|
@@ -1,110 +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>Drachmae & karma — {{worldName}}</title>
|
|
7
|
-
<meta name="description" content="How your work is counted and how you earn trust: the cost-plus {{currency}} reward, the kind multipliers, the monthly budget cap, and how karma differs from {{currency}}.">
|
|
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-07-02-shell1">
|
|
12
|
-
<!-- The reading-room archetype is the whole of this page's sheet. primer.css
|
|
13
|
-
holds only the acknowledge gate, which a reference has no use for, so it
|
|
14
|
-
is no longer loaded here (task 1003473; it had been since task 1003307). -->
|
|
15
|
-
<link rel="stylesheet" href="/builders/room.css">
|
|
16
|
-
</head>
|
|
17
|
-
<!-- `room` opts into the archetype's composition tokens (room.css); they sit on
|
|
18
|
-
the body, never in a page :root. `room--reference` is what the room owes a
|
|
19
|
-
document people SCAN rather than read (task 1003473): the outline goes to
|
|
20
|
-
h3 depth, every heading carries its own link, and the linear-read
|
|
21
|
-
instruments (the progress hairline, the section counters) are off. -->
|
|
22
|
-
<body class="room room--reference" data-page="drachmae" data-page-title="Drachmae & karma">
|
|
23
|
-
|
|
24
|
-
<div class="app">
|
|
25
|
-
<aside class="app-sidebar" id="app-sidebar" aria-label="Primary"></aside>
|
|
26
|
-
<div class="app-scrim" id="app-scrim" hidden></div>
|
|
27
|
-
<div class="app-body">
|
|
28
|
-
<header class="app-topbar" id="app-topbar"></header>
|
|
29
|
-
<div class="app-content">
|
|
30
|
-
|
|
31
|
-
<!-- The page's one h1, for screen readers: no page shows its head (task
|
|
32
|
-
1004836), so its eyebrow and sub-line went in task 1004828. -->
|
|
33
|
-
<div class="page-head page-head--room">
|
|
34
|
-
<h1 class="page-head__h">Drachmae & karma</h1>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<main id="hall-main">
|
|
38
|
-
<div class="primer-layout">
|
|
39
|
-
|
|
40
|
-
<!-- The outline. Built from the article's h2s AND h3s once the
|
|
41
|
-
markdown renders: a reference is found by its sub-questions, not
|
|
42
|
-
read in order, so the contents go a level deeper than the
|
|
43
|
-
primer's and carry no numerals. Under 760px it collapses behind a
|
|
44
|
-
toggle whose middle names the part the reader is in. -->
|
|
45
|
-
<aside class="primer-toc" id="primer-toc" aria-label="Sections in this reference">
|
|
46
|
-
<button type="button" class="primer-toc__toggle" id="primer-toc-toggle" aria-expanded="false" aria-controls="primer-toc-list">
|
|
47
|
-
<span class="primer-toc__toggle-label">On this page</span>
|
|
48
|
-
<span class="primer-toc__current" id="primer-toc-current"></span>
|
|
49
|
-
<svg class="primer-toc__chevron" viewBox="0 0 10 6" width="10" height="6" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1 1.2 5 4.8 9 1.2"/></svg>
|
|
50
|
-
</button>
|
|
51
|
-
<nav class="primer-toc__inner">
|
|
52
|
-
<p class="primer-toc__heading" id="primer-toc-heading">On this page</p>
|
|
53
|
-
<ol class="primer-toc__list" id="primer-toc-list" aria-labelledby="primer-toc-heading">
|
|
54
|
-
<li class="hall-loading hall-loading--inline" role="status">Loading…</li>
|
|
55
|
-
</ol>
|
|
56
|
-
</nav>
|
|
57
|
-
</aside>
|
|
58
|
-
|
|
59
|
-
<!-- The article column: three panels of the same card at the same
|
|
60
|
-
width (skeleton, document, failure), so the column never changes
|
|
61
|
-
shape as the markdown resolves. -->
|
|
62
|
-
<div class="primer-col">
|
|
63
|
-
|
|
64
|
-
<div class="primer-skeleton scroll" id="primer-skeleton" aria-hidden="true">
|
|
65
|
-
<span class="primer-sk primer-skeleton__h"></span>
|
|
66
|
-
<div class="primer-skeleton__p">
|
|
67
|
-
<span class="primer-sk"></span><span class="primer-sk"></span>
|
|
68
|
-
<span class="primer-sk"></span><span class="primer-sk"></span>
|
|
69
|
-
<span class="primer-sk"></span>
|
|
70
|
-
</div>
|
|
71
|
-
<div class="primer-skeleton__rule"></div>
|
|
72
|
-
<div class="primer-skeleton__p">
|
|
73
|
-
<span class="primer-sk"></span><span class="primer-sk"></span>
|
|
74
|
-
<span class="primer-sk"></span>
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
-
|
|
78
|
-
<article class="primer-article scroll" id="primer-article" aria-busy="true" hidden></article>
|
|
79
|
-
|
|
80
|
-
<div class="primer-note primer-note--error scroll" id="primer-error" hidden>
|
|
81
|
-
<p class="primer-note__label">The reference did not load</p>
|
|
82
|
-
<p class="primer-note__body">The markdown behind this page could not be fetched. Reload to try again, or read it in the repo.</p>
|
|
83
|
-
<p class="primer-note__acts"><a class="btn btn--ghost" data-shell-exit href="/builders">Back to home</a></p>
|
|
84
|
-
</div>
|
|
85
|
-
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
</main>
|
|
89
|
-
|
|
90
|
-
<footer class="app-foot" id="app-foot"></footer>
|
|
91
|
-
</div>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
|
|
95
|
-
<div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
|
|
96
|
-
|
|
97
|
-
<script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
|
|
98
|
-
<script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
|
|
99
|
-
<script src="/builders/craft-mode.js?v=2026-10-30-market-watch"></script>
|
|
100
|
-
<script src="/builders/shell.js?v=2026-11-04-one-market-watch"></script>
|
|
101
|
-
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
102
|
-
<script src="/builders/palette.js" defer></script>
|
|
103
|
-
<script src="/builders/md-reader.js?v=2026-09-02-mdreader-2"></script>
|
|
104
|
-
<!-- The chart primitive, for the treasury section (task 1003446). Before
|
|
105
|
-
drachmae.js, which reads window.OTBKit when it inserts that section. -->
|
|
106
|
-
<script src="/builders/hall-kit.js" defer></script>
|
|
107
|
-
<script src="/builders/drachmae.js?v=2026-09-02-drachmae-2" defer></script>
|
|
108
|
-
<script src="/builders/copy-on-click.js?v=2026-06-01-copy-1" defer></script>
|
|
109
|
-
</body>
|
|
110
|
-
</html>
|