@augurworks/augur 0.15.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/CANVAS.md +858 -0
- package/INSTALL.md +603 -0
- package/LICENSE +27 -0
- package/README.md +150 -0
- package/TRADEMARKS.md +72 -0
- package/agents/README.md +65 -0
- package/agents/canon-extract.md +117 -0
- package/agents/canon.md +151 -0
- package/agents/canvas.md +88 -0
- package/agents/currency.md +74 -0
- package/agents/drafts.md +92 -0
- package/agents/identity.md +148 -0
- package/agents/prototype-contract.md +69 -0
- package/agents/publishing.md +324 -0
- package/agents/review-feedback.md +76 -0
- package/agents/space-json.md +132 -0
- package/agents/ui-skill.md +101 -0
- package/agents/working-marks.md +86 -0
- package/brand/augur-eye.svg +3 -0
- package/brand/augur-icon.svg +41 -0
- package/brand/augur-mark.svg +5 -0
- package/brand/lentianova-bulky.otf +0 -0
- package/brand/lentianova-median.otf +0 -0
- package/brand/lentianova.woff2 +0 -0
- package/build.js +8409 -0
- package/changelog.md +133 -0
- package/fonts/inter-latin-wght-normal.woff2 +0 -0
- package/package.json +57 -0
- package/pitis/PETS.md +121 -0
- package/pitis/README.md +117 -0
- package/pitis/index.html +266 -0
- package/pitis/piti.build.js +81 -0
- package/pitis/piti.js +929 -0
- package/pitis/roast-agent.md +185 -0
- package/realtime/src/index.js +119 -0
- package/realtime/wrangler.example.toml +44 -0
- package/scripts/adopt.mjs +106 -0
- package/scripts/board-snapshot.mjs +197 -0
- package/scripts/build-seed-pack.mjs +33 -0
- package/scripts/bundle-rekey.mjs +112 -0
- package/scripts/bundle-tenancy-rehearsal.mjs +781 -0
- package/scripts/canon-extract.mjs +578 -0
- package/scripts/canon.mjs +599 -0
- package/scripts/canvas-screen.mjs +333 -0
- package/scripts/check-local.mjs +136 -0
- package/scripts/clawd-art.mjs +75 -0
- package/scripts/clawd-canvas.mjs +741 -0
- package/scripts/cli.mjs +100 -0
- package/scripts/clone.mjs +422 -0
- package/scripts/close.mjs +30 -0
- package/scripts/connect.mjs +103 -0
- package/scripts/deploy.mjs +157 -0
- package/scripts/dev.mjs +54 -0
- package/scripts/doc-lint.mjs +143 -0
- package/scripts/export.mjs +300 -0
- package/scripts/fork.mjs +64 -0
- package/scripts/freeze.mjs +74 -0
- package/scripts/frontdoor-parity.mjs +180 -0
- package/scripts/hook.mjs +67 -0
- package/scripts/identity-rekey.mjs +112 -0
- package/scripts/init.mjs +122 -0
- package/scripts/land.mjs +40 -0
- package/scripts/lib/adapters.mjs +156 -0
- package/scripts/lib/board-snapshot.mjs +511 -0
- package/scripts/lib/draft.mjs +385 -0
- package/scripts/lib/graduate.mjs +276 -0
- package/scripts/lib/instance.mjs +74 -0
- package/scripts/lib/marks.mjs +107 -0
- package/scripts/lib/materialize.mjs +138 -0
- package/scripts/lib/merge3.mjs +124 -0
- package/scripts/lib/offline-posture.mjs +120 -0
- package/scripts/lib/offline-respawn.mjs +18 -0
- package/scripts/lib/offline-wrangler.mjs +78 -0
- package/scripts/lib/publish-compose.mjs +12 -0
- package/scripts/lib/publish-conflict.mjs +78 -0
- package/scripts/lib/publish-evidence.mjs +144 -0
- package/scripts/lib/refine-compare.mjs +140 -0
- package/scripts/lib/refine-ledger.mjs +150 -0
- package/scripts/lib/refine-png.mjs +149 -0
- package/scripts/lib/seed-pack-build.mjs +141 -0
- package/scripts/lib/state-compare.mjs +68 -0
- package/scripts/lib/store.mjs +122 -0
- package/scripts/login.mjs +84 -0
- package/scripts/mark.mjs +112 -0
- package/scripts/migrate-board-keys.mjs +164 -0
- package/scripts/migrate.mjs +265 -0
- package/scripts/no-foreign-vocabulary.mjs +216 -0
- package/scripts/no-product-names.mjs +157 -0
- package/scripts/no-tenant-globals.mjs +1134 -0
- package/scripts/offline.mjs +247 -0
- package/scripts/og.mjs +170 -0
- package/scripts/one-tenant-resolver.mjs +146 -0
- package/scripts/open.mjs +63 -0
- package/scripts/publish.mjs +1041 -0
- package/scripts/read.mjs +31 -0
- package/scripts/refine.mjs +455 -0
- package/scripts/release-drift.mjs +138 -0
- package/scripts/restore.mjs +322 -0
- package/scripts/review.mjs +125 -0
- package/scripts/save.mjs +21 -0
- package/scripts/shell-lint.mjs +189 -0
- package/scripts/ship.mjs +460 -0
- package/scripts/shoot.mjs +264 -0
- package/scripts/smoke-invite.mjs +113 -0
- package/scripts/state-inventory.mjs +223 -0
- package/scripts/status.mjs +177 -0
- package/scripts/sync.mjs +27 -0
- package/scripts/tenant-do-rehearsal.mjs +1314 -0
- package/scripts/ui-copy-lint.mjs +202 -0
- package/scripts/watch.mjs +32 -0
- package/scripts/wrangler-preflight.mjs +246 -0
- package/seed/CANON.md +43 -0
- package/seed/README.md +119 -0
- package/seed/prototype-status.json +9 -0
- package/seed/registry.json +88 -0
- package/seed/skills/starter-ui/SKILL.md +52 -0
- package/seed/skills/starter-ui/skill.json +11 -0
- package/seed/skills/starter-ui/starter-tokens.css +73 -0
- package/seed/skills/starter-ui/starter-ui.css +318 -0
- package/seed/skills/starter-ui/starter-ui.js +50 -0
- package/seed/space.json +5 -0
- package/seed/start-here/prototypes/connect-your-terminal/index.html +428 -0
- package/seed/start-here/prototypes/connect-your-terminal/preview.webp +0 -0
- package/seed/start-here/prototypes/sample-with-comments/index.html +172 -0
- package/seed/start-here/prototypes/sample-with-comments/preview.webp +0 -0
- package/seed/start-here/prototypes/set-up-your-design-system/index.html +353 -0
- package/seed/start-here/prototypes/set-up-your-design-system/preview.webp +0 -0
- package/seed/threads.json +52 -0
- package/seed/worked-examples/prototypes/field-readings/index.html +273 -0
- package/seed/worked-examples/prototypes/field-readings/preview.webp +0 -0
- package/seed/worked-examples/prototypes/slide-deck/index.html +214 -0
- package/seed/worked-examples/prototypes/slide-deck/preview.webp +0 -0
- package/seed/worked-examples/prototypes/specimen-viewer/index.html +203 -0
- package/seed/worked-examples/prototypes/specimen-viewer/preview.webp +0 -0
- package/src/_worker.js +12668 -0
- package/src/board-key.mjs +57 -0
- package/src/board-room.mjs +881 -0
- package/src/bundle-keys.mjs +138 -0
- package/src/canon/collect-in-browser.js +215 -0
- package/src/canon/emit.mjs +232 -0
- package/src/canon/observe.mjs +260 -0
- package/src/canon/schema.mjs +451 -0
- package/src/canvas/DSEG-LICENSE.txt +95 -0
- package/src/canvas/DSEG7Classic-Bold.woff2 +0 -0
- package/src/canvas/canvas.css +885 -0
- package/src/canvas/canvas.js +5780 -0
- package/src/canvas/capture.js +485 -0
- package/src/chrome/appchrome.mjs +568 -0
- package/src/currency.mjs +203 -0
- package/src/delete-confirmation.mjs +254 -0
- package/src/drafts/drafts.js +326 -0
- package/src/entry.js +58 -0
- package/src/galleries.mjs +400 -0
- package/src/health-cron.mjs +173 -0
- package/src/identity.json +1 -0
- package/src/kv-codec.mjs +135 -0
- package/src/kv-identity.mjs +259 -0
- package/src/mail.mjs +599 -0
- package/src/provenance.mjs +74 -0
- package/src/publish-compose.mjs +363 -0
- package/src/publish-fork.mjs +221 -0
- package/src/publish-units.mjs +44 -0
- package/src/purge.mjs +81 -0
- package/src/review/COMMENTING-UX.md +306 -0
- package/src/review/cat.png +0 -0
- package/src/review/comment-cursor.svg +7 -0
- package/src/review/comments.js +1738 -0
- package/src/room-ticket.mjs +96 -0
- package/src/roster-chip.mjs +32 -0
- package/src/seed-pack.mjs +261 -0
- package/src/state-inventory.mjs +249 -0
- package/src/sw-logic.mjs +48 -0
- package/src/tenant-cache.mjs +141 -0
- package/src/tenant-context.mjs +386 -0
- package/src/tenant-do.js +2940 -0
- package/src/tenant-host.mjs +144 -0
- package/src/tenant-quotas.mjs +140 -0
- package/src/unit-core.mjs +103 -0
- package/src/unit-object.mjs +338 -0
- package/templates/README.md +67 -0
- package/templates/shell/deploy.yml +145 -0
- package/templates/shell/engine-bump.yml +142 -0
- package/templates/shell/health.yml +233 -0
- package/templates/shell/kv-backup.yml +201 -0
- package/templates/shell/roster-update.yml +110 -0
- package/templates/shell/space-preflight.yml +35 -0
- package/templates/shell/space-rebake.yml +79 -0
- package/templates/shell/store-backup.yml +152 -0
- package/templates/shell/wrangler.example.toml +266 -0
- package/templates/space/publish.yml +91 -0
|
@@ -0,0 +1,203 @@
|
|
|
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>Specimen viewer</title>
|
|
7
|
+
<meta name="description" content="A real-time 3D instrument you can spin with the mouse, drawn with a 3D library loaded from a pinned CDN URL — proof that a prototype can be more than flat screens.">
|
|
8
|
+
<link rel="stylesheet" href="../../../skills/starter-ui/starter-tokens.css">
|
|
9
|
+
<link rel="stylesheet" href="../../../skills/starter-ui/starter-ui.css">
|
|
10
|
+
<style>
|
|
11
|
+
.viewer { position: relative; aspect-ratio: 16 / 9; min-height: 18rem; cursor: grab; touch-action: none; }
|
|
12
|
+
.viewer[data-dragging] { cursor: grabbing; }
|
|
13
|
+
.viewer canvas { display: block; width: 100%; height: 100%; }
|
|
14
|
+
.viewer::after {
|
|
15
|
+
content: ""; position: absolute; inset: 0; pointer-events: none;
|
|
16
|
+
background: radial-gradient(60% 60% at 50% 40%, rgba(255, 255, 255, .06), transparent 70%);
|
|
17
|
+
}
|
|
18
|
+
.viewer__fallback {
|
|
19
|
+
position: absolute; inset: 0; display: none; place-items: center; padding: var(--starter-s5);
|
|
20
|
+
text-align: center; font: var(--starter-text-sm)/1.6 var(--starter-font-display); color: rgba(244, 241, 234, .75);
|
|
21
|
+
}
|
|
22
|
+
.viewer[data-failed] .viewer__fallback { display: grid; }
|
|
23
|
+
.toolbar { display: flex; flex-wrap: wrap; gap: var(--starter-s2); margin-top: var(--starter-s4); }
|
|
24
|
+
.plate { margin-top: var(--starter-s5); }
|
|
25
|
+
</style>
|
|
26
|
+
</head>
|
|
27
|
+
<body class="s-page">
|
|
28
|
+
|
|
29
|
+
<main class="s-sheet">
|
|
30
|
+
|
|
31
|
+
<header class="s-block">
|
|
32
|
+
<div class="s-block__rail">01 / 03</div>
|
|
33
|
+
<div>
|
|
34
|
+
<p class="s-eyebrow">Examples</p>
|
|
35
|
+
<h1 class="s-title s-title--hero">Specimen viewer</h1>
|
|
36
|
+
<p class="s-lede">An armillary instrument, rendered live. Drag it. Prototypes here are not limited
|
|
37
|
+
to flat screens — anything a browser can draw, you can brief.</p>
|
|
38
|
+
</div>
|
|
39
|
+
</header>
|
|
40
|
+
|
|
41
|
+
<section class="s-block">
|
|
42
|
+
<div class="s-block__rail">Stage</div>
|
|
43
|
+
<div>
|
|
44
|
+
<div class="s-stage viewer" id="viewer">
|
|
45
|
+
<div class="viewer__fallback">The 3D library could not load.<br>It comes from a CDN, so this
|
|
46
|
+
page needs a network the first time — everything else here works offline.</div>
|
|
47
|
+
<span class="s-stage__caption">Drag to rotate</span>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="toolbar">
|
|
50
|
+
<button type="button" class="s-btn" id="wire" aria-pressed="false">Wireframe</button>
|
|
51
|
+
<button type="button" class="s-btn" id="spin" aria-pressed="true">Auto-rotate</button>
|
|
52
|
+
<button type="button" class="s-btn s-btn--quiet" id="reset">Reset view</button>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<table class="s-table plate">
|
|
56
|
+
<thead><tr><th>Specimen</th><th>Reading</th></tr></thead>
|
|
57
|
+
<tbody>
|
|
58
|
+
<tr><td>Form</td><td>Three orthogonal rings, one core, one marker bead</td></tr>
|
|
59
|
+
<tr><td>Surfaces</td><td>Physically shaded, one key light, one fill</td></tr>
|
|
60
|
+
<tr><td>Drawn by</td><td><code>three.js r160</code>, one pinned script tag</td></tr>
|
|
61
|
+
<tr><td>Build step</td><td>None. This is one HTML file.</td></tr>
|
|
62
|
+
</tbody>
|
|
63
|
+
</table>
|
|
64
|
+
</div>
|
|
65
|
+
</section>
|
|
66
|
+
|
|
67
|
+
<p class="s-note"><strong>A prototype may load a library from a CDN.</strong> One rule: pin the exact
|
|
68
|
+
version in the URL, never a moving tag — a prototype that quietly re-renders differently six months
|
|
69
|
+
from now is worse than one that never ran. Everything else stays true: no build step, no install,
|
|
70
|
+
one file that opens from disk.</p>
|
|
71
|
+
|
|
72
|
+
</main>
|
|
73
|
+
|
|
74
|
+
<!-- Pinned to an exact version, on purpose. r160 is the last release that ships a
|
|
75
|
+
plain script build, which is what keeps this page openable straight from disk. -->
|
|
76
|
+
<script src="https://unpkg.com/three@0.160.1/build/three.min.js"
|
|
77
|
+
onerror="document.getElementById('viewer').setAttribute('data-failed','')"></script>
|
|
78
|
+
<script>
|
|
79
|
+
(function () {
|
|
80
|
+
"use strict";
|
|
81
|
+
|
|
82
|
+
var host = document.getElementById("viewer");
|
|
83
|
+
if (!window.THREE) { host.setAttribute("data-failed", ""); return; }
|
|
84
|
+
|
|
85
|
+
var css = function (n) { return getComputedStyle(document.documentElement).getPropertyValue(n).trim(); };
|
|
86
|
+
var reduced = window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
87
|
+
|
|
88
|
+
var scene = new THREE.Scene();
|
|
89
|
+
var camera = new THREE.PerspectiveCamera(38, 16 / 9, 0.1, 100);
|
|
90
|
+
camera.position.set(0, 0.9, 4.2);
|
|
91
|
+
camera.lookAt(0, 0, 0);
|
|
92
|
+
|
|
93
|
+
var renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
|
|
94
|
+
renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));
|
|
95
|
+
host.appendChild(renderer.domElement);
|
|
96
|
+
|
|
97
|
+
/* ── The instrument ─────────────────────────────────────────────────────── */
|
|
98
|
+
var group = new THREE.Group();
|
|
99
|
+
scene.add(group);
|
|
100
|
+
|
|
101
|
+
var brass = new THREE.MeshStandardMaterial({ color: 0xd8d2c4, metalness: 0.55, roughness: 0.38 });
|
|
102
|
+
var core = new THREE.MeshStandardMaterial({ color: css("--starter-mark") || "#cf4224", metalness: 0.1, roughness: 0.45 });
|
|
103
|
+
var bead = new THREE.MeshStandardMaterial({ color: 0xfbfaf6, metalness: 0.2, roughness: 0.6 });
|
|
104
|
+
var materials = [brass, core, bead];
|
|
105
|
+
|
|
106
|
+
var ringGeo = new THREE.TorusGeometry(1.25, 0.018, 16, 220);
|
|
107
|
+
var tilts = [
|
|
108
|
+
[0, 0, 0],
|
|
109
|
+
[Math.PI / 2, 0, 0],
|
|
110
|
+
[Math.PI / 2, 0, Math.PI / 2]
|
|
111
|
+
];
|
|
112
|
+
tilts.forEach(function (r) {
|
|
113
|
+
var m = new THREE.Mesh(ringGeo, brass);
|
|
114
|
+
m.rotation.set(r[0], r[1], r[2]);
|
|
115
|
+
group.add(m);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
var tilted = new THREE.Mesh(new THREE.TorusGeometry(1.05, 0.012, 12, 200), brass);
|
|
119
|
+
tilted.rotation.set(Math.PI / 2 - 0.41, 0, 0.2);
|
|
120
|
+
group.add(tilted);
|
|
121
|
+
|
|
122
|
+
group.add(new THREE.Mesh(new THREE.IcosahedronGeometry(0.42, 0), core));
|
|
123
|
+
|
|
124
|
+
var marker = new THREE.Mesh(new THREE.SphereGeometry(0.06, 24, 16), bead);
|
|
125
|
+
marker.position.set(1.05 * Math.cos(0.6), 0, 1.05 * Math.sin(0.6));
|
|
126
|
+
marker.position.applyAxisAngle(new THREE.Vector3(1, 0, 0), 0.41);
|
|
127
|
+
group.add(marker);
|
|
128
|
+
|
|
129
|
+
scene.add(new THREE.HemisphereLight(0xfbfaf6, 0x201e28, 0.85));
|
|
130
|
+
var key = new THREE.DirectionalLight(0xffffff, 1.45);
|
|
131
|
+
key.position.set(2.6, 3.2, 2.4);
|
|
132
|
+
scene.add(key);
|
|
133
|
+
var rim = new THREE.DirectionalLight(0xff9a7a, 0.5);
|
|
134
|
+
rim.position.set(-3, -1, -2);
|
|
135
|
+
scene.add(rim);
|
|
136
|
+
|
|
137
|
+
/* ── Interaction ────────────────────────────────────────────────────────── */
|
|
138
|
+
var spin = !reduced;
|
|
139
|
+
var drag = null;
|
|
140
|
+
var vel = { x: 0, y: 0 };
|
|
141
|
+
var rot = { x: -0.22, y: 0.5 };
|
|
142
|
+
|
|
143
|
+
host.addEventListener("pointerdown", function (e) {
|
|
144
|
+
drag = { x: e.clientX, y: e.clientY };
|
|
145
|
+
host.setAttribute("data-dragging", "");
|
|
146
|
+
host.setPointerCapture(e.pointerId);
|
|
147
|
+
});
|
|
148
|
+
host.addEventListener("pointermove", function (e) {
|
|
149
|
+
if (!drag) return;
|
|
150
|
+
var dx = (e.clientX - drag.x) / 180, dy = (e.clientY - drag.y) / 180;
|
|
151
|
+
rot.y += dx; rot.x += dy;
|
|
152
|
+
vel.y = dx; vel.x = dy;
|
|
153
|
+
drag = { x: e.clientX, y: e.clientY };
|
|
154
|
+
});
|
|
155
|
+
["pointerup", "pointercancel", "pointerleave"].forEach(function (ev) {
|
|
156
|
+
host.addEventListener(ev, function () { drag = null; host.removeAttribute("data-dragging"); });
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
function toggle(btn, on) { btn.setAttribute("aria-pressed", String(on)); }
|
|
160
|
+
|
|
161
|
+
document.getElementById("wire").addEventListener("click", function () {
|
|
162
|
+
var on = this.getAttribute("aria-pressed") !== "true";
|
|
163
|
+
materials.forEach(function (m) { m.wireframe = on; });
|
|
164
|
+
toggle(this, on);
|
|
165
|
+
});
|
|
166
|
+
document.getElementById("spin").addEventListener("click", function () {
|
|
167
|
+
spin = this.getAttribute("aria-pressed") !== "true";
|
|
168
|
+
toggle(this, spin);
|
|
169
|
+
});
|
|
170
|
+
document.getElementById("reset").addEventListener("click", function () {
|
|
171
|
+
rot = { x: -0.22, y: 0.5 };
|
|
172
|
+
vel = { x: 0, y: 0 };
|
|
173
|
+
});
|
|
174
|
+
toggle(document.getElementById("spin"), spin);
|
|
175
|
+
|
|
176
|
+
/* ── Size and draw ──────────────────────────────────────────────────────── */
|
|
177
|
+
function resize() {
|
|
178
|
+
var w = host.clientWidth, h = host.clientHeight;
|
|
179
|
+
if (!w || !h) return;
|
|
180
|
+
renderer.setSize(w, h, false);
|
|
181
|
+
camera.aspect = w / h;
|
|
182
|
+
camera.updateProjectionMatrix();
|
|
183
|
+
}
|
|
184
|
+
if (window.ResizeObserver) new ResizeObserver(resize).observe(host);
|
|
185
|
+
else window.addEventListener("resize", resize);
|
|
186
|
+
resize();
|
|
187
|
+
|
|
188
|
+
(function frame() {
|
|
189
|
+
requestAnimationFrame(frame);
|
|
190
|
+
if (!drag) {
|
|
191
|
+
rot.y += vel.y; rot.x += vel.x;
|
|
192
|
+
vel.y *= 0.94; vel.x *= 0.94;
|
|
193
|
+
if (spin) rot.y += 0.0035;
|
|
194
|
+
}
|
|
195
|
+
rot.x = Math.max(-1.2, Math.min(1.2, rot.x));
|
|
196
|
+
group.rotation.x = rot.x;
|
|
197
|
+
group.rotation.y = rot.y;
|
|
198
|
+
renderer.render(scene, camera);
|
|
199
|
+
})();
|
|
200
|
+
})();
|
|
201
|
+
</script>
|
|
202
|
+
</body>
|
|
203
|
+
</html>
|
|
Binary file
|