openmerit 0.1.4 → 0.1.6-preview.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 +40 -0
- package/README.md +121 -386
- package/dist/core/src/index.d.ts +101 -0
- package/dist/core/src/index.js +1649 -0
- package/dist/core/src/store.d.ts +35 -0
- package/dist/core/src/store.js +102 -0
- package/dist/pi/src/index.d.ts +32 -0
- package/dist/pi/src/index.js +794 -0
- package/dist/pi/src/scheduler.d.ts +11 -0
- package/dist/pi/src/scheduler.js +137 -0
- package/dist/pi/src/wakeup.d.ts +2 -0
- package/dist/pi/src/wakeup.js +108 -0
- package/dist/protocol/src/index.d.ts +484 -0
- package/dist/protocol/src/index.js +47 -0
- package/dist/protocol/src/schemas.d.ts +576 -0
- package/dist/protocol/src/schemas.js +280 -0
- package/dist/terminal/public/app.js +297 -0
- package/dist/terminal/public/brands/anthropic.png +0 -0
- package/dist/terminal/public/brands/baai.png +0 -0
- package/dist/terminal/public/brands/baseten.png +0 -0
- package/dist/terminal/public/brands/cerebras.png +0 -0
- package/dist/terminal/public/brands/cohere.png +0 -0
- package/dist/terminal/public/brands/deepseek.ico +0 -0
- package/dist/terminal/public/brands/google.png +0 -0
- package/dist/terminal/public/brands/groq.ico +0 -0
- package/dist/terminal/public/brands/lm-studio.png +0 -0
- package/dist/terminal/public/brands/meta.ico +0 -0
- package/dist/terminal/public/brands/mistral.png +0 -0
- package/dist/terminal/public/brands/nomic.png +0 -0
- package/dist/terminal/public/brands/ollama.png +0 -0
- package/dist/terminal/public/brands/openai.png +0 -0
- package/dist/terminal/public/brands/openrouter.png +0 -0
- package/dist/terminal/public/brands/qwen.png +0 -0
- package/dist/terminal/public/brands/vllm.ico +0 -0
- package/dist/terminal/public/brands/vllm.png +0 -0
- package/dist/terminal/public/favicon.svg +1 -0
- package/dist/terminal/public/flow.css +1 -0
- package/dist/terminal/public/flow.js +770 -0
- package/dist/terminal/public/index.html +21 -0
- package/dist/terminal/public/styles.css +779 -0
- package/dist/terminal/src/activity-merge.mjs +64 -0
- package/dist/terminal/src/browser.mjs +29 -0
- package/dist/terminal/src/cli.mjs +60 -0
- package/dist/terminal/src/collect.mjs +311 -0
- package/dist/terminal/src/discovery.mjs +93 -0
- package/dist/terminal/src/hardware.mjs +57 -0
- package/dist/terminal/src/project-activity.mjs +156 -0
- package/dist/terminal/src/sample.mjs +171 -0
- package/dist/terminal/src/server.mjs +56 -0
- package/dist/terminal/src/services.mjs +62 -0
- package/dist/terminal/src/topology.mjs +30 -0
- package/docs/adapter-guide.md +189 -0
- package/docs/architecture.md +59 -0
- package/docs/automation.md +74 -0
- package/docs/budgets.md +37 -0
- package/docs/commands.md +85 -0
- package/docs/demo-backfill.md +29 -0
- package/docs/demo-fieldkit.md +47 -0
- package/docs/demo-placement.md +30 -0
- package/docs/demo-spam.md +15 -0
- package/docs/demo-support.md +42 -0
- package/docs/demo.md +57 -0
- package/docs/first-trial.md +60 -0
- package/docs/getting-started.md +65 -0
- package/docs/index.md +40 -0
- package/docs/inference-terminal.md +439 -0
- package/docs/lifecycle.md +30 -0
- package/docs/memo.md +126 -0
- package/docs/metrics-and-evidence.md +48 -0
- package/docs/operations.md +40 -0
- package/docs/pareto-spec.md +76 -0
- package/docs/pi-extension.md +54 -0
- package/docs/roadmap.md +28 -0
- package/docs/security.md +37 -0
- package/docs/site-artwork-linocut.md +23 -0
- package/docs/site-artwork-miniature-diverse.md +28 -0
- package/docs/site-artwork-miniature.md +26 -0
- package/docs/site-demo.md +177 -0
- package/docs/site-design.md +94 -0
- package/docs/site-documentation.md +83 -0
- package/docs/site-dynamic-og.md +35 -0
- package/docs/site-faq-maintenance.md +115 -0
- package/docs/site-hero-resolution.md +60 -0
- package/docs/site-illustration-sequences.md +227 -0
- package/docs/site-inference-terminal.md +203 -0
- package/docs/site-memo.md +39 -0
- package/docs/site-og-image.md +38 -0
- package/docs/site-og-workshop.md +21 -0
- package/docs/site-section-artwork.md +56 -0
- package/docs/site-skill-review.md +57 -0
- package/docs/site-terminal-preview.md +85 -0
- package/docs/testing.md +118 -0
- package/docs/troubleshooting.md +55 -0
- package/docs/ux-reference.md +32 -0
- package/package.json +74 -42
- package/benchmark/invoice_ocr/data/invoice_01_ground_truth.json +0 -38
- package/benchmark/invoice_ocr/data/invoice_01_row_2.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_02_ground_truth.json +0 -32
- package/benchmark/invoice_ocr/data/invoice_02_row_5.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_03_ground_truth.json +0 -26
- package/benchmark/invoice_ocr/data/invoice_03_row_6.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_04_ground_truth.json +0 -26
- package/benchmark/invoice_ocr/data/invoice_04_row_7.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_05_ground_truth.json +0 -38
- package/benchmark/invoice_ocr/data/invoice_05_row_947.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_06_ground_truth.json +0 -38
- package/benchmark/invoice_ocr/data/invoice_06_row_948.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_07_ground_truth.json +0 -20
- package/benchmark/invoice_ocr/data/invoice_07_row_949.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_08_ground_truth.json +0 -38
- package/benchmark/invoice_ocr/data/invoice_08_row_1888.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_09_ground_truth.json +0 -26
- package/benchmark/invoice_ocr/data/invoice_09_row_1890.jpg +0 -0
- package/benchmark/invoice_ocr/data/invoice_10_ground_truth.json +0 -20
- package/benchmark/invoice_ocr/data/invoice_10_row_1892.jpg +0 -0
- package/benchmark/invoice_ocr/data/manifest.json +0 -97
- package/dist/benchmarks.js +0 -98
- package/dist/catalog.js +0 -61
- package/dist/cli.js +0 -188
- package/dist/daemon.js +0 -407
- package/dist/diagnostics.js +0 -227
- package/dist/frontier.js +0 -56
- package/dist/harness.js +0 -1
- package/dist/integrations.js +0 -19
- package/dist/invoice-eval.js +0 -33
- package/dist/invoice-score.js +0 -124
- package/dist/judge.js +0 -43
- package/dist/llm.js +0 -207
- package/dist/pi-config.js +0 -46
- package/dist/pi-trials.js +0 -373
- package/dist/policy.js +0 -185
- package/dist/providers.js +0 -1
- package/dist/recommend.js +0 -76
- package/dist/routes.js +0 -74
- package/dist/standalone.js +0 -224
- package/dist/store.js +0 -89
- package/dist/strategist.js +0 -68
- package/dist/task-input.js +0 -54
- package/dist/traces.js +0 -127
- package/dist/trials.js +0 -140
- package/dist/types.js +0 -2
- package/examples/invoice-prompt.txt +0 -19
- package/examples/task.example.json +0 -7
- package/extension/openmerit.ts +0 -947
- package/instructions/OPENMERIT.md +0 -63
- package/instructions/openmerit.policy.json +0 -37
- package/rules.md +0 -43
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Hero resolution correction
|
|
2
|
+
|
|
3
|
+
The first generated 2 × 2 hero sheet was 2172 × 724 overall, leaving each pose only 1086 × 362. Displaying those cells at up to 1600 CSS pixels made the hero visibly soft. The hero now uses four standalone 2172 × 724 frames and a canvas with the same intrinsic dimensions. This restores four times as many pixels per pose; it does not enlarge the old low-resolution cells.
|
|
4
|
+
|
|
5
|
+
## Final assets
|
|
6
|
+
|
|
7
|
+
| Pose | Workspace asset | Source |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| Rest | `site/assets/motion/hero-frame-0-v2.webp` | Original full-resolution PNG, `exec-c120bc1a-6cea-4824-a27a-81b382be4063.png`. |
|
|
10
|
+
| Raise one third | `site/assets/motion/hero-frame-1-v2.webp` | `exec-589f6268-fb65-49db-a701-4b1964405226.png`. |
|
|
11
|
+
| Raise two thirds | `site/assets/motion/hero-frame-2-v2.webp` | `exec-647442f6-76f6-408f-9322-01ce14d3b8ba.png`. |
|
|
12
|
+
| Inspect | `site/assets/motion/hero-frame-3-v2.webp` | `exec-4906692d-eb37-46a1-9dc0-69545604a8ea.png`. |
|
|
13
|
+
|
|
14
|
+
The three new poses were generated separately with the built-in image generation tool, using `site/assets/workshop-miniature-diverse.webp` as the reference. New masters are retained under `/Users/lazim/.codex/generated_images/01a0ccec-f664-7e43-bfcf-afbe4fa7f43c/`. The original master is under `/Users/lazim/.codex/generated_images/01a0c9d4-a3f3-7e12-aa03-2b46f42b5e83/`.
|
|
15
|
+
|
|
16
|
+
Frames 1 and 3 returned at 2171 × 724; one white pixel column was added at the right edge to match the original canvas. No image was resized or upscaled. All four were exported as WebP at quality 94 with smart chroma subsampling. They total 928,000 bytes, including the initial poster.
|
|
17
|
+
|
|
18
|
+
The original artwork is both the resting animation pose and the static poster. Playback loads the full-size files directly, validates matching dimensions and a minimum width of 2172, then copies each image at its native size. A missing or undersized frame leaves the sharp poster visible. The supporting illustration atlases and all existing timing/controls are unchanged.
|
|
19
|
+
|
|
20
|
+
## Verification
|
|
21
|
+
|
|
22
|
+
Chromium and WebKit checked locally and on the deployed site at 1440 CSS pixels with device pixel ratio 2, and at 390 CSS pixels with device pixel ratio 3. Every hero source and the canvas measured 2172 × 724; all four poses rendered distinct pixels. No v1 hero sheet or poster requests occurred. The supporting scenes, pause/resume persistence, reduced motion, failed/undersized-frame fallback, no-JavaScript poster, and page overflow checks passed. Screenshots of resting and raised poses were visually reviewed. The live HTML, player, and all four hero frames match the local files on both domains. Deployment: `10db0b26-2162-4aee-b8dc-6d28bb228d54`. Physical phone hardware was not tested.
|
|
23
|
+
|
|
24
|
+
## Exact generation prompts
|
|
25
|
+
|
|
26
|
+
### Frame 1
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
Use case: precise-object-edit.
|
|
30
|
+
Asset type: ONE FULL-RESOLUTION animation frame for a wide website hero.
|
|
31
|
+
Input image 1 is the exact edit target, a 2172 x 724 photographic miniature workshop. Preserve its full resolution, crisp faces, fabric threads, tool edges and wood grain.
|
|
32
|
+
Return ONE single full-width image at 2172 x 724 pixels (3:1), at least the source resolution. NOT a sprite sheet, NOT a collage, NOT a grid, NOT several panels. The entire output is ONE animation frame. This is a surgical edit of ONLY the seated gray-bearded South Asian craftsman in the ochre vest, third person from left. Preserve all other pixels as closely as possible: exact camera, crop, composition, bench dimensions, all five other makers, clothing, all their hands/tools, scale, notebook, vise, calipers, plant, boxes, sleeping dog, ground shadows and off-white background. No changing lighting, global softness, relighting, new visual style or shifting the scenery. Faces and tools must be as sharply detailed as the original. Do not crop, resize or reinterpret the scene.
|
|
33
|
+
The older man's feet, stool, torso and shoulders stay fixed. Only his right forearm, wrist and the tool it holds articulate, with his head following slightly. The right hand is on the LEFT side of his body as seen by the viewer and holds the horizontal metal hand plane. His LEFT hand (viewer right) keeps holding the upright brown-handled tool exactly as in the reference. These must remain TWO SEPARATE solid tools, with natural hands and rigid object shapes. No stretching, warping, melting, crossfades or motion blur.
|
|
34
|
+
POSE FOR THIS FRAME:
|
|
35
|
+
Raise his RIGHT hand and its horizontal metal plane about one third of the way from the original chest-height position toward his face. The right elbow bends a little; the plane is just below his beard. Keep the left hand and its brown-handled tool stationary. His eyes begin looking at the raised plane.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Frame 2
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
Use case: precise-object-edit.
|
|
42
|
+
Asset type: ONE FULL-RESOLUTION animation frame for a wide website hero.
|
|
43
|
+
Input image 1 is the exact edit target, a 2172 x 724 photographic miniature workshop. Preserve its full resolution, crisp faces, fabric threads, tool edges and wood grain.
|
|
44
|
+
Return ONE single full-width image at 2172 x 724 pixels (3:1), at least the source resolution. NOT a sprite sheet, NOT a collage, NOT a grid, NOT several panels. The entire output is ONE animation frame. This is a surgical edit of ONLY the seated gray-bearded South Asian craftsman in the ochre vest, third person from left. Preserve all other pixels as closely as possible: exact camera, crop, composition, bench dimensions, all five other makers, clothing, all their hands/tools, scale, notebook, vise, calipers, plant, boxes, sleeping dog, ground shadows and off-white background. No changing lighting, global softness, relighting, new visual style or shifting the scenery. Faces and tools must be as sharply detailed as the original. Do not crop, resize or reinterpret the scene.
|
|
45
|
+
The older man's feet, stool, torso and shoulders stay fixed. Only his right forearm, wrist and the tool it holds articulate, with his head following slightly. The right hand is on the LEFT side of his body as seen by the viewer and holds the horizontal metal hand plane. His LEFT hand (viewer right) keeps holding the upright brown-handled tool exactly as in the reference. These must remain TWO SEPARATE solid tools, with natural hands and rigid object shapes. No stretching, warping, melting, crossfades or motion blur.
|
|
46
|
+
POSE FOR THIS FRAME:
|
|
47
|
+
Raise his RIGHT hand and its horizontal metal plane about two thirds of the way from the original chest-height position toward his eyes. The right elbow bends naturally; the plane is in front of the lower part of his face, wrist tilted very slightly to inspect the edge. Keep the left hand and its brown-handled tool stationary. His eyes look at the raised plane.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Frame 3
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
Use case: precise-object-edit.
|
|
54
|
+
Asset type: ONE FULL-RESOLUTION animation frame for a wide website hero.
|
|
55
|
+
Input image 1 is the exact edit target, a 2172 x 724 photographic miniature workshop. Preserve its full resolution, crisp faces, fabric threads, tool edges and wood grain.
|
|
56
|
+
Return ONE single full-width image at 2172 x 724 pixels (3:1), at least the source resolution. NOT a sprite sheet, NOT a collage, NOT a grid, NOT several panels. The entire output is ONE animation frame. This is a surgical edit of ONLY the seated gray-bearded South Asian craftsman in the ochre vest, third person from left. Preserve all other pixels as closely as possible: exact camera, crop, composition, bench dimensions, all five other makers, clothing, all their hands/tools, scale, notebook, vise, calipers, plant, boxes, sleeping dog, ground shadows and off-white background. No changing lighting, global softness, relighting, new visual style or shifting the scenery. Faces and tools must be as sharply detailed as the original. Do not crop, resize or reinterpret the scene.
|
|
57
|
+
The older man's feet, stool, torso and shoulders stay fixed. Only his right forearm, wrist and the tool it holds articulate, with his head following slightly. The right hand is on the LEFT side of his body as seen by the viewer and holds the horizontal metal hand plane. His LEFT hand (viewer right) keeps holding the upright brown-handled tool exactly as in the reference. These must remain TWO SEPARATE solid tools, with natural hands and rigid object shapes. No stretching, warping, melting, crossfades or motion blur.
|
|
58
|
+
POSE FOR THIS FRAME:
|
|
59
|
+
Raise his RIGHT hand and its horizontal metal plane to just below eye level so he can inspect its sole. The right elbow bends naturally, and his wrist turns the rigid plane a little toward his gaze. Keep his LEFT hand and its upright brown-handled tool stationary at their original position. His gaze lifts with the plane, shoulders and torso remain planted.
|
|
60
|
+
```
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Illustrated frame sequences
|
|
2
|
+
|
|
3
|
+
Generated with the built-in image generation tool on 2026-09-23. These replace the SVG displacement animation. Each atlas contains distinct poses; the player only copies whole cells to a canvas. There are no mesh deformations, optical-flow frames, morphs, or crossfades.
|
|
4
|
+
|
|
5
|
+
## Assets and playback
|
|
6
|
+
|
|
7
|
+
| Scene | Atlas | Grid | Frame size | Action |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| Hero | `site/assets/motion/hero-frame-{0..3}-v2.webp` | Four individual images | 2172 × 724 | Seated maker raises and examines a hand plane. |
|
|
10
|
+
| Setup | `site/assets/motion/setup-sequence-v1.webp` | 4 × 2 | 543 × 362 | Toolbox lid rotates toward closed and opens again. |
|
|
11
|
+
| Questions | `site/assets/motion/questions-sequence-v1.webp` | 4 × 2 | 543 × 362 | The makers move their hands across the notebook. |
|
|
12
|
+
| Footer | `site/assets/motion/rest-sequence-v1.webp` | 4 × 2 | 543 × 362 | The dog opens its eyes and lifts its head. |
|
|
13
|
+
|
|
14
|
+
Matching `*-poster-v1.webp` images use the first cell for the supporting scenes. The hero uses its full-size `hero-frame-0-v2.webp` as its poster. They remain available without JavaScript, under reduced motion, or when animation assets fail to load. The original illustrations remain in `site/assets/` as references.
|
|
15
|
+
|
|
16
|
+
Frames are played in order, then in reverse through the intermediate poses. Atlas cells are read left-to-right, top-to-bottom. Scene-specific holds at the endpoints produce deliberate stop-motion timing. Pausing freezes the current pose; reduced motion shows the poster. Timers stop offscreen and while the document is hidden. Animation assets load only when motion is allowed and the illustration is visible. The four full-size hero frames total approximately 906 KiB, including its poster; the three supporting atlases total approximately 486 KiB.
|
|
17
|
+
|
|
18
|
+
## Packaging
|
|
19
|
+
|
|
20
|
+
The hero's original grid reduced every pose to 1086 × 362 and was visibly soft at the website's display size. It has been replaced with four standalone 2172 × 724 images. The first is the original sharp artwork and the others were generated separately at full resolution. See [the correction, sources, and new prompts](site-hero-resolution.md). The v1 hero atlas and poster remain as superseded assets and are not loaded by the site.
|
|
21
|
+
|
|
22
|
+
The following grid-packaging and prompt notes describe the original generation; they still apply to the three supporting scenes.
|
|
23
|
+
|
|
24
|
+
Generated PNG grids were split into equal cells for alignment and poster extraction, then encoded as WebP at quality 88. Whole-cell translations of at most five source pixels compensate for slight grid-placement drift, using white padding. No frame is scaled, warped, interpolated or blended during this registration. Generated textures still have some natural frame-to-frame variation.
|
|
25
|
+
|
|
26
|
+
Source sampling offsets (x, y), in frame order, against the first frame:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"hero": [
|
|
31
|
+
[
|
|
32
|
+
0,
|
|
33
|
+
0
|
|
34
|
+
],
|
|
35
|
+
[
|
|
36
|
+
0,
|
|
37
|
+
0
|
|
38
|
+
],
|
|
39
|
+
[
|
|
40
|
+
0,
|
|
41
|
+
-2
|
|
42
|
+
],
|
|
43
|
+
[
|
|
44
|
+
0,
|
|
45
|
+
-2
|
|
46
|
+
]
|
|
47
|
+
],
|
|
48
|
+
"setup": [
|
|
49
|
+
[
|
|
50
|
+
0,
|
|
51
|
+
0
|
|
52
|
+
],
|
|
53
|
+
[
|
|
54
|
+
-1,
|
|
55
|
+
0
|
|
56
|
+
],
|
|
57
|
+
[
|
|
58
|
+
-2,
|
|
59
|
+
0
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
-5,
|
|
63
|
+
0
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
-1,
|
|
67
|
+
-3
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
-1,
|
|
71
|
+
-3
|
|
72
|
+
],
|
|
73
|
+
[
|
|
74
|
+
-2,
|
|
75
|
+
-3
|
|
76
|
+
],
|
|
77
|
+
[
|
|
78
|
+
-5,
|
|
79
|
+
-3
|
|
80
|
+
]
|
|
81
|
+
],
|
|
82
|
+
"questions": [
|
|
83
|
+
[
|
|
84
|
+
0,
|
|
85
|
+
0
|
|
86
|
+
],
|
|
87
|
+
[
|
|
88
|
+
0,
|
|
89
|
+
0
|
|
90
|
+
],
|
|
91
|
+
[
|
|
92
|
+
0,
|
|
93
|
+
0
|
|
94
|
+
],
|
|
95
|
+
[
|
|
96
|
+
0,
|
|
97
|
+
0
|
|
98
|
+
],
|
|
99
|
+
[
|
|
100
|
+
0,
|
|
101
|
+
-2
|
|
102
|
+
],
|
|
103
|
+
[
|
|
104
|
+
0,
|
|
105
|
+
-1
|
|
106
|
+
],
|
|
107
|
+
[
|
|
108
|
+
-1,
|
|
109
|
+
-1
|
|
110
|
+
],
|
|
111
|
+
[
|
|
112
|
+
0,
|
|
113
|
+
-1
|
|
114
|
+
]
|
|
115
|
+
],
|
|
116
|
+
"rest": [
|
|
117
|
+
[
|
|
118
|
+
0,
|
|
119
|
+
0
|
|
120
|
+
],
|
|
121
|
+
[
|
|
122
|
+
-1,
|
|
123
|
+
0
|
|
124
|
+
],
|
|
125
|
+
[
|
|
126
|
+
-1,
|
|
127
|
+
0
|
|
128
|
+
],
|
|
129
|
+
[
|
|
130
|
+
-3,
|
|
131
|
+
0
|
|
132
|
+
],
|
|
133
|
+
[
|
|
134
|
+
0,
|
|
135
|
+
-2
|
|
136
|
+
],
|
|
137
|
+
[
|
|
138
|
+
-1,
|
|
139
|
+
-2
|
|
140
|
+
],
|
|
141
|
+
[
|
|
142
|
+
-1,
|
|
143
|
+
-2
|
|
144
|
+
],
|
|
145
|
+
[
|
|
146
|
+
-3,
|
|
147
|
+
-2
|
|
148
|
+
]
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Generated masters
|
|
154
|
+
|
|
155
|
+
Retained in `/Users/lazim/.codex/generated_images/01a0ccec-f664-7e43-bfcf-afbe4fa7f43c/`:
|
|
156
|
+
|
|
157
|
+
- Hero: `exec-615fb4fc-97f4-4eff-bc0e-df80c558c526.png`.
|
|
158
|
+
- Setup: `exec-d99a19b0-4b66-457a-beaf-56c6503e5d25.png`.
|
|
159
|
+
- Questions: `exec-24838fee-b97f-4357-af53-a88614d9aa7f.png`.
|
|
160
|
+
- Footer: `exec-0c83cfa7-610f-4135-b9ec-4a3c4207f787.png`.
|
|
161
|
+
|
|
162
|
+
The first hero experiment, `exec-da8117a9-5b19-4e9c-82ba-22f63bfdea4f.png`, was not used. Its later cells returned prematurely to the starting pose, so a four-pose progression was generated instead.
|
|
163
|
+
|
|
164
|
+
## Exact prompts
|
|
165
|
+
|
|
166
|
+
### Hero
|
|
167
|
+
|
|
168
|
+
Reference: `site/assets/workshop-miniature-diverse.webp`.
|
|
169
|
+
|
|
170
|
+
```text
|
|
171
|
+
Use case: illustration-story.
|
|
172
|
+
Asset type: high-resolution FOUR-POSE animation spritesheet for OpenMerit's wide website hero.
|
|
173
|
+
Input image: identity/layout reference. Reproduce its complete miniature workshop faithfully.
|
|
174
|
+
Create exactly FOUR full-width frames in a TWO COLUMN by TWO ROW grid. Overall wide canvas aspect ratio 3:1, target 3456 x 1152 pixels. Each cell aspect ratio 3:1, target 1728 x 576. No gutters, lines, labels, captions or numbers. Every cell contains the entire original six-maker composition including dog and all furniture, at absolutely IDENTICAL camera, scale, layout, lighting and pixel coordinates. Reference original top whitespace and baseline. Static elements should be exact duplicates across cells; do not reinterpret each time.
|
|
175
|
+
|
|
176
|
+
The ONLY moving subject is the older seated South Asian maker with gray beard, glasses and mustard vest in the center-left. Preserve all other figures, their hands/tools, the balance scale, wood grain, benches, plant, dog, and shadows exactly unchanged in every cell.
|
|
177
|
+
Frame 1 top-left: original pose, both hand planes held low near his chest, gaze down.
|
|
178
|
+
Frame 2 top-right: right elbow bends, right hand raises the smaller hand plane halfway toward his face, gaze follows tool.
|
|
179
|
+
Frame 3 bottom-left: the small hand plane is just below eye level, he turns the rigid plane slightly to inspect its edge. Natural articulated elbow/wrist and intact five-finger grip.
|
|
180
|
+
Frame 4 bottom-right: the plane reaches eye level, with his right elbow bent comfortably and wrist tilted to view its sole. Left hand holds the other plane stationary. He is still seated, torso and feet planted.
|
|
181
|
+
Four successive actual stop-motion poses on the same set. Tools retain rigid shapes. Do not stretch, warp, liquify, wobble, blur, melt, crossfade or use motion trails. No change to identity, face, clothing or object inventory. Photographic handmade-miniature feel of reference; white background. Crisp detailed individual frames for use on a 1600px-wide webpage.
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### setup
|
|
185
|
+
|
|
186
|
+
Reference: `site/assets/workshop-setup.webp`.
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
Use case: illustration-story.
|
|
190
|
+
Asset type: production stop-motion animation spritesheet for a website.
|
|
191
|
+
Input image 1 is the identity, composition and photographic miniature material reference.
|
|
192
|
+
Create EXACTLY EIGHT sequential frames in ONE regular invisible grid, FOUR COLUMNS by TWO ROWS, left to right then next row. Target canvas 1536 x 512, every cell 384 x 256 (3:2).
|
|
193
|
+
Every frame has the COMPLETE scene, exact same scale, framing, camera, baseline, background, colors, shadows and object positions. No grid lines, borders, labels, lettering, arrows, gutters or numbers. No camera shake, zoom or crop changes. Opaque clean pure white background. Preserve reference characters and objects faithfully, not a redesign. This is an animation sequence of genuine new articulated poses, NOT image warping, breathing scale effects, liquify, stretching, melting or changes to the camera. Do not reset to starting pose halfway through. It will be played FORWARD THEN BACKWARD by code, so show the eight progressive poses of the ONE-WAY action below. Keep every rigid object solid and exactly the same shape. Do not add anything.
|
|
194
|
+
Scene: the weathered wooden toolbox containing the two hand planes, with brass calipers and folded linen in front. The box, tools, linen, calipers, and ground shadow are FIXED identically across all eight frames. Only the rigid lid rotates about its real back hinge. Its grain, brass clasp and rectangular shape stay identical. The hinge line stays precisely fixed.
|
|
195
|
+
Action sequence: frame1 lid fully upright open as reference (100 degrees from shut); frame2 96 degrees; frame3 87 degrees; frame4 75 degrees; frame5 60 degrees; frame6 45 degrees; frame7 32 degrees; frame8 25 degrees, almost closed but with clearance above the hand planes. Correct three-dimensional perspective as the lid rotates, physical wood thickness and hinge geometry. It must look like eight actual photographed stop-motion positions of the same wooden lid, not a flexible lid. Keep generous fixed whitespace above and identical box footprint in every cell.
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### questions
|
|
199
|
+
|
|
200
|
+
Reference: `site/assets/workshop-questions.webp`.
|
|
201
|
+
|
|
202
|
+
```text
|
|
203
|
+
Use case: illustration-story.
|
|
204
|
+
Asset type: production stop-motion animation spritesheet for a website.
|
|
205
|
+
Input image 1 is the identity, composition and photographic miniature material reference.
|
|
206
|
+
Create EXACTLY EIGHT sequential frames in ONE regular invisible grid, FOUR COLUMNS by TWO ROWS, left to right then next row. Target canvas 1536 x 512, every cell 384 x 256 (3:2).
|
|
207
|
+
Every frame has the COMPLETE scene, exact same scale, framing, camera, baseline, background, colors, shadows and object positions. No grid lines, borders, labels, lettering, arrows, gutters or numbers. No camera shake, zoom or crop changes. Opaque clean pure white background. Preserve reference characters and objects faithfully, not a redesign. This is an animation sequence of genuine new articulated poses, NOT image warping, breathing scale effects, liquify, stretching, melting or changes to the camera. Do not reset to starting pose halfway through. It will be played FORWARD THEN BACKWARD by code, so show the eight progressive poses of the ONE-WAY action below. Keep every rigid object solid and exactly the same shape. Do not add anything.
|
|
208
|
+
Scene: the same Black woman with a high curly bun in indigo shirt and linen apron, and the seated older South Asian man in mustard vest and glasses, looking at a notebook on their oak table. Both full bodies, stool, table legs and all feet always visible.
|
|
209
|
+
Lock the table, notebook, pencil, stool, feet, head shapes, clothing, body position and scale IDENTICALLY throughout.
|
|
210
|
+
Action: woman moves her pointing RIGHT HAND across the open notebook from the left page toward the right page; elbow articulates slightly, rigid finger points. Older man gradually lowers his right hand from his chin and extends it toward the notebook to indicate a detail.
|
|
211
|
+
Eight progressive poses: 1 both original pose (woman points left page, man hand at chin); 2 woman's fingertip begins crossing, man's fingertips leave chin; 3 woman's fingertip quarter way across, man's hand below chin; 4 woman's fingertip half way across, man's elbow opens; 5 fingertip three quarters across, man's forearm reaching; 6 fingertip at fold, man's index finger extends; 7 woman indicates right page, man's fingertip above page; 8 both pointing at the right page, looking at the same place. Distinct realistic joint poses in each frame, correct five-finger anatomy and hand-object contact, no melted fingers. Small but legible motion. All static furniture and background must match pixel for pixel across cells.
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### rest
|
|
215
|
+
|
|
216
|
+
Reference: `site/assets/workshop-rest.webp`.
|
|
217
|
+
|
|
218
|
+
```text
|
|
219
|
+
Use case: illustration-story.
|
|
220
|
+
Asset type: production stop-motion animation spritesheet for a website.
|
|
221
|
+
Input image 1 is the identity, composition and photographic miniature material reference.
|
|
222
|
+
Create EXACTLY EIGHT sequential frames in ONE regular invisible grid, FOUR COLUMNS by TWO ROWS, left to right then next row. Target canvas 1536 x 512, every cell 384 x 256 (3:2).
|
|
223
|
+
Every frame has the COMPLETE scene, exact same scale, framing, camera, baseline, background, colors, shadows and object positions. No grid lines, borders, labels, lettering, arrows, gutters or numbers. No camera shake, zoom or crop changes. Opaque clean pure white background. Preserve reference characters and objects faithfully, not a redesign. This is an animation sequence of genuine new articulated poses, NOT image warping, breathing scale effects, liquify, stretching, melting or changes to the camera. Do not reset to starting pose halfway through. It will be played FORWARD THEN BACKWARD by code, so show the eight progressive poses of the ONE-WAY action below. Keep every rigid object solid and exactly the same shape. Do not add anything.
|
|
224
|
+
Scene: the same brown-and-white spaniel lying curled with head on paws beside the CLOSED wooden toolbox and folded apron. Preserve the box, apron, dog's body, paws and contact shadows EXACTLY in all eight cells. Dog always in same place with full body visible. No scenery.
|
|
225
|
+
Action: the dog wakes and slowly raises its head to look toward the viewer. ONLY the head and neck articulate, with ears following naturally; back, paws, body, toolbox and apron stay still.
|
|
226
|
+
Eight progressive poses: 1 asleep with chin on paws; 2 eyes open a little, chin remains on paws; 3 eyes open, chin starts to lift; 4 chin raised a small distance, neck unfolding; 5 head half raised, gaze begins toward viewer; 6 head three quarters raised, ears hanging naturally; 7 head raised looking at viewer; 8 head fully raised comfortably while still LYING DOWN, eyes softly attentive, mouth closed. No sitting up, no wagging, no stretching, no changing body size or fur markings. Keep original framing with enough space for the raised head. This is photographed articulated stop motion; consistent face, nose, fur markings, head proportions and solid anatomy.
|
|
227
|
+
```
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Inference Terminal design notes
|
|
2
|
+
|
|
3
|
+
Internal implementation and design review for the unreleased local terminal, 7 October 2026. This file is deliberately outside public documentation navigation. User-facing behavior is maintained in `inference-terminal.md`.
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
|
|
7
|
+
A working environment overview for developers and agents, often consulted during focused or uncertain work. The interface should make the state of the environment legible without demanding constant attention. Model selection, evaluation authoring, prompt management, and trace debugging remain outside this product surface.
|
|
8
|
+
|
|
9
|
+
## References and skills
|
|
10
|
+
|
|
11
|
+
- Emil Kowalski's `emil-design-eng` skill: immediate keyboard actions, purposeful motion, bounded transitions, reduced-motion support, and explicit press feedback.
|
|
12
|
+
- [Josh Puckett's Interface Craft](https://interfacecraft.dev): installed using the user-requested installer; applied its design critique and named-timing guidance.
|
|
13
|
+
- [Lochie’s Torph examples](https://torph.lochie.me/examples): actual Torph integration for continuity across changing characters and values.
|
|
14
|
+
- [Benji Taylor’s Liveline](https://benji.org/liveline): actual Liveline canvases for passively sampled machine history.
|
|
15
|
+
- [Rauno Freiberg's interaction work](https://rauno.me/craft): precision of interaction and restrained detail.
|
|
16
|
+
- [Charlie Aufmann and Maxime Heckel on Linear's calmer interface](https://linear.app/now/behind-the-latest-design-refresh): quiet navigation, selective visual emphasis, softer structure, and reduction of unnecessary icon treatments.
|
|
17
|
+
|
|
18
|
+
## First impressions
|
|
19
|
+
|
|
20
|
+
The environment map creates the main point of orientation. The first pass was visually coherent but its map column labels did not align with the actual rendered SVG nodes. Some headings described the design's intended mood instead of naming the view. Both were corrected in the browser pass.
|
|
21
|
+
|
|
22
|
+
## Visual design
|
|
23
|
+
|
|
24
|
+
The palette uses neutral graphite surfaces and silver controls, with no green tint. Solid fills, fine borders, and restrained shadows define hierarchy; decorative surface gradients and chart area fills are removed. Data colors identify the reported request path consistently: royal blue for direct API connections, amber for local runtimes, violet for routers, cyan for gateways, and gray for unclassified paths. Direct API uses a deeper, more saturated blue than the earlier pastel palette; gateway cyan is brighter and more saturated to separate the two. A shared legend and explicit labels accompany these colors. This replaces the earlier local/cloud map coloring; location remains textual metadata. Sample disclosures and unavailable states retain their labeled amber treatment. Typography uses the platform's native system font, with tabular figures and a system monospace for measurements. All assets are bundled; there are no font CDNs, stock icon libraries, or remotely loaded dependencies.
|
|
25
|
+
|
|
26
|
+
| Before | After | Why |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| A small sample hid how navigation, the map, and inventories behave under volume | Atlas contains 40 agents, 140 tasks, 21 models, and 9,600 fictional requests, with inspectable agent/task counts | Exercise density and missing-data states while keeping the overview bounded and the full records discoverable |
|
|
29
|
+
| Map slots filled from insertion order and could show only direct APIs | Rank workloads by volume and preserve path diversity within the existing node caps | Make a busy environment representative without turning the graph into an unreadable mesh |
|
|
30
|
+
| Provider initials and generic local-model diamonds in boxed tiles | Model names lead each row, with provider metadata and request paths aligned below | Remove placeholder symbols that duplicate the provider text and give the inventory a cleaner reading edge |
|
|
31
|
+
| Identical line swatches required color to distinguish every path | Five custom connection glyphs shared by badges, legends, and map nodes | Give each type a meaningful shape; keep text labels and hide decorative SVGs from assistive technology |
|
|
32
|
+
| Silver gateways blended into white interface text; the earlier pastel cyan was too close to pale blue | Saturated cyan gateways paired with deeper royal-blue Direct API connections | Separate the pair in both hue and brightness, keeping gateway markings chromatic and neutral text outside the category palette |
|
|
33
|
+
| “Direct provider” described the company as a connection type | “Direct API” in legends, badges, and accessible map descriptions | Name how the request reaches the provider |
|
|
34
|
+
| Local/cloud colors obscured routers, gateways, and direct provider calls | One path palette across map threads, totals, model labels, connection cards, and stacked request counts | Follow a connection across views without confusing the endpoint's location with how it was reached |
|
|
35
|
+
| Sidebar section labels at 9 px with faint text | 12 px medium-weight labels, stronger contrast, and a little more space below | Make Workspace and Infrastructure readable at a glance |
|
|
36
|
+
| Green accents, tinted surfaces, and decorative gradients | Neutral graphite, silver selection and measurements, solid surfaces, and unfilled chart lines | Honor the user's palette and surface preferences throughout the terminal |
|
|
37
|
+
| HTML column labels and a centered SVG used different coordinates | Labels and nodes share the SVG coordinate system | Connections remain aligned at every desktop width |
|
|
38
|
+
| Headings such as “The shape of your inference” | “Inference activity,” “Model inventory,” and “Sources & coverage” | Name the task directly |
|
|
39
|
+
| A zero sparkline appeared without an activity source | Unknown samples produce a dashed baseline | Missing collection must not look like measured inactivity |
|
|
40
|
+
| Search relied only on native dialog Escape behavior | Explicit Escape dismissal with restored focus | A search input must not swallow the expected close action |
|
|
41
|
+
| Whole-machine memory appeared as a generic capacity indicator | Includes system/cache disclosure and fractional percentage | Low OS free memory is not a diagnosis of inference pressure |
|
|
42
|
+
| Flat navigation with equally weighted rows | Grouped navigation, inset workspace/search controls, a raised moving selection, and source coverage | Establish hierarchy without adding ornament |
|
|
43
|
+
| Root HTML replacement on every poll | Keyed reconciliation preserves Torph controllers and React chart roots | Keep focus, selected metrics, and chart state across updates |
|
|
44
|
+
| Static CPU sparkline with limited inspection | Liveline CPU/memory history plus exact-sample readout | Make passive resource changes legible without implying per-request attribution |
|
|
45
|
+
| The mobile diagram shrank labels below readable size | An independently scrollable map with a scroll hint | Keep node labels and targets readable |
|
|
46
|
+
|
|
47
|
+
## Interface design
|
|
48
|
+
|
|
49
|
+
The overview has four summary values, one relationship map, one compute panel, and concise model/activity lists. Deeper detail uses a single inspector. All six views are implemented; no navigation leads to a placeholder. Sources expose their coverage instead of treating disconnected systems as healthy zeroes. Sample mode has both a persistent top label and a disclosure above the content.
|
|
50
|
+
|
|
51
|
+
## Consistency and interactions
|
|
52
|
+
|
|
53
|
+
Small custom SVGs share stroke weights and geometry. Detail actions share one dialog and Escape behavior. The command palette is immediate. Pointer-opened inspectors settle six pixels over 220 ms; keyboard and reduced-motion interactions stay immediate. Top navigation selection is immediate; Torph changes settle over 260 ms. Repeated keyboard actions bypass both. Liveline scrolls the sampled history and interpolates between readings, holding the latest value between polls. Its pulse, momentum indicators, and particles are disabled. Reduced motion renders static SVG readings; offscreen canvases unmount, and Liveline stops drawing in background tabs. Request-volume bars remain discrete counts. Exact machine samples can be inspected using the keyboard. The environment graph is interactive through both pointer and keyboard input.
|
|
54
|
+
|
|
55
|
+
## User context
|
|
56
|
+
|
|
57
|
+
A user should be able to leave the terminal open without feeling that inference depends on it. The browser reads a cached local view, and polling failures explicitly say the workload is unaffected. Costs are labeled with their coverage; unknown measurements remain dashes. Local runtime inventory, request events, and runtime counters retain their distinct meanings.
|
|
58
|
+
|
|
59
|
+
## Verification
|
|
60
|
+
|
|
61
|
+
Browser review covered all six views at 1512 and 390 pixels, source setup, sample/live separation, model filters and search, time-window changes, model and graph inspectors, command search, and Escape behavior. Automated tests cover passive collector boundaries, import correctness, source precedence, and loopback access. The refinement also verified persistent canvas and sidebar identity over a poll, chart metric preservation, sampled-value keyboard navigation, compact navigation, and zero movement animations under reduced motion. The npm package includes the executable with execute permissions and all four static assets. Full repository verification passed, including documentation generation and link checks. Browser verification also covered dark-only rendering under a light OS preference, reduced motion, and loss of the local server while preserving the last snapshot. No deployment or npm release is part of this work.
|
|
62
|
+
|
|
63
|
+
## Deployment-aware environment — 7 October 2026
|
|
64
|
+
|
|
65
|
+
The environment explorer connects source-reported agents, paths, model deployments, and declared shared pools. The overview stays bounded; an agent selector and linked inspectors expose detail. No new primary navigation destination is needed.
|
|
66
|
+
|
|
67
|
+
| Before | After | Why |
|
|
68
|
+
| --- | --- | --- |
|
|
69
|
+
| A model name ended the map | Model name plus distinct deployment identity | The same model may run in multiple places; unresolved identity remains explicit |
|
|
70
|
+
| One connection implied the path | Entry connection with hop count and ordered path inspector | Show only reported intermediaries |
|
|
71
|
+
| Whole-machine compute beside the map | Three shared capacity readings with source freshness | Make common dependencies visible; hardware remains in Local compute |
|
|
72
|
+
| Agent detail becomes a long stack | Compact summary plus Deployments / Paths / Capacity buttons | Keep the initial inspection manageable at enterprise scale |
|
|
73
|
+
| Capacity could be mistaken for an agent measurement | Whole-pool scope, shared-agent links, timestamps, and stale/unknown states | Preserve evidence boundaries |
|
|
74
|
+
| Refresh replaces an open inspector | Reconcile inspector children and keyed controls in place | Preserve scroll and keyboard focus while readings update |
|
|
75
|
+
|
|
76
|
+
Motion retains the existing 220 ms inspector reveal for pointer use; keyboard navigation and reduced motion stay immediate. Exploration buttons switch without movement; capacity bars do not animate fabricated intermediate readings. Path colors remain blue, amber, violet, cyan, and gray. No additional gradients or decorative identity tiles were introduced.
|
|
77
|
+
|
|
78
|
+
## Title treatment — 7 October 2026
|
|
79
|
+
|
|
80
|
+
| Before | After | Why |
|
|
81
|
+
| --- | --- | --- |
|
|
82
|
+
| Small uppercase labels above page, inspector, and inventory-card titles | Titles lead directly; useful provider and residency context sits beneath model-card titles | Remove the repeated overline aesthetic throughout the terminal, as requested |
|
|
83
|
+
|
|
84
|
+
## Dropdown treatment — 7 October 2026
|
|
85
|
+
|
|
86
|
+
| Before | After | Why |
|
|
87
|
+
| --- | --- | --- |
|
|
88
|
+
| Platform chevron at the edge of a native select | Shared trigger with a 14 px chevron and fixed 11 px right inset | Keep the arrow aligned and give the text consistent breathing room |
|
|
89
|
+
| Blue platform focus and menu selection | Neutral focus ring, pressed border, dark menu, and selected-row check | Match the rest of the terminal |
|
|
90
|
+
| Native menu varied by platform | Select-only combobox with arrow navigation, typeahead, Home/End, Escape cancellation, and Tab commit | Maintain explicit keyboard behavior while using the shared styling |
|
|
91
|
+
| A poll could replace the open selector | Preserve menu state while collection continues | Avoid moving options during selection |
|
|
92
|
+
|
|
93
|
+
The menu is placed outside clipped panels, flips above the trigger when needed, and stays within viewport edges. Only a 120 ms opacity cue is used on pointer opening; keyboard and reduced-motion opening are immediate. Browser checks cover selection, cancellation, typeahead, Tab focus, outside dismissal, menu scrolling, viewport placement, and persistence over a poll.
|
|
94
|
+
|
|
95
|
+
## Activity, fleet, and identity refinement — 7 October 2026
|
|
96
|
+
|
|
97
|
+
| Before | After | Why |
|
|
98
|
+
| --- | --- | --- |
|
|
99
|
+
| Compressed rainbow stacks with tiny SVG labels | Full-width neutral volume bars, readable HTML axes, and selectable path summaries | Keep the activity graph consistent with the terminal and let a single path receive focus |
|
|
100
|
+
| 9px muted table headers | 12px medium-weight headers | Give dense tables a readable hierarchy |
|
|
101
|
+
| One machine implied the entire environment | Site/rack inventory, host selection, per-host history and accelerator readings | Represent private hardware without averaging unlike devices or inventing network discovery |
|
|
102
|
+
| “Models in local memory” | Host-specific “Loaded models,” runtime identity, and explicit allocation type | Separate residency from system RAM and device utilization |
|
|
103
|
+
| Unrecognizable named provider cards | Small official favicons from a bounded local registry | Improve recognition without decorative initials, remote lookups, or replacing path icons |
|
|
104
|
+
| Overview counts prefixed with “Observed” | Counts lead directly, retaining selected-window scope | Reduce redundant copy |
|
|
105
|
+
|
|
106
|
+
Host inventory and identity changes are unreleased. The sample fleet has six hosts, two racks, eleven accelerators, and seven explicitly placed loaded models. Exported measurements retain their own timestamps and missing residency remains unknown. Keyboard controls use the shared select and immediate interactions; chart bins use one tab stop with arrow-key inspection. Brand provenance is recorded in `packages/terminal/brand-assets.json`.
|
|
107
|
+
|
|
108
|
+
## Identity continuity — 7 October 2026
|
|
109
|
+
|
|
110
|
+
| Before | After | Why |
|
|
111
|
+
| --- | --- | --- |
|
|
112
|
+
| Official marks appeared only on connection cards | A shared identity renderer serves tables, maps, activity, residency, sources, capacity, search, and inspectors | The same entity stays recognizable across views |
|
|
113
|
+
| Runtime names were the only identity for locally hosted models | A model-family mark leads, with a distinct runtime mark where applicable | Qwen through Ollama and Llama through vLLM retain both identities |
|
|
114
|
+
| Missing model marks could invite arbitrary initial tiles | Unknown model families and custom namespaces remain text-only | Avoid decoration that implies unsupported attribution |
|
|
115
|
+
| Icon tooltips could duplicate names in accessible button labels | Decorative marks are explicitly hidden from assistive technology | Preserve concise keyboard and screen-reader navigation |
|
|
116
|
+
|
|
117
|
+
Official Qwen, Meta, Nomic, and BAAI assets extend the existing local registry. Every sample model uses the same resolved maker across record, deployment, inventory, and residency representations. Service recognition is exact; model recognition uses anchored family patterns and bounded namespace rules. No animations were added to repeated identity marks.
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
## Source-backed naming and density — 7 October 2026
|
|
121
|
+
|
|
122
|
+
The terminal is a passive evidence view. Polished fictional agent roles and site names gave the sample an unjustified sense of discovery; quieter typography alone could not resolve that expectation. The revision keeps source identifiers visible and exposes provenance only when an identity is inspected.
|
|
123
|
+
|
|
124
|
+
| Before | After | Why |
|
|
125
|
+
| --- | --- | --- |
|
|
126
|
+
| “Knowledge / Research,” descriptive tasks, and “Company gateway” | Code-style fixture IDs, `llm-gateway`, and absent display names that fall back to IDs | Demonstrate the metadata contract without implying code analysis or role discovery |
|
|
127
|
+
| A workstation assigned to “Studio” | Full system hostname for real local hardware; export-provided site/rack only | Physical placement cannot be inferred from a machine name |
|
|
128
|
+
| “Compute” | “Local compute,” explicitly including exported self-hosted servers | Clarify the scope beside cloud model providers |
|
|
129
|
+
| Neutral all-path chart | Colored path stacks with the existing full-width layout and selectable categories | Restore the category thread while retaining readable axes and keyboard inspection |
|
|
130
|
+
| Tiny activity subtitles | 12px secondary identity text and 14px maker marks | Keep the agent/model relationship readable in dense rows |
|
|
131
|
+
| Source rows with 22px vertical padding | 13px vertical padding with a 64px minimum target | Fit source coverage into a shorter scan without shrinking its labels |
|
|
132
|
+
|
|
133
|
+
Inspectors identify the metadata fields and source behind agent/task names, distinguish absent names from IDs, and describe deployment links as recorded activity. Names supplied by an exporter may still be human-readable: this change removes automatic embellishment, not explicit user labels. There is no new code scanner, runtime hook, network discovery, or inferred task lifecycle. Keyboard operations remain immediate; no motion was added to the chart or identity metadata.
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
## Top navigation — 7 October 2026
|
|
137
|
+
|
|
138
|
+
The terminal is a frequently consulted workspace. The persistent side column gave navigation and collection status too much weight relative to inference data. This revision places navigation on the same horizontal grid as the content, retaining quick access without competing with the environment map.
|
|
139
|
+
|
|
140
|
+
| Before | After | Why |
|
|
141
|
+
| --- | --- | --- |
|
|
142
|
+
| Sidebar, workspace tile, icon rows, section labels, and coverage card | Two compact header rows with product identity, environment/search controls, and six text tabs | Reduce chrome and give the data more horizontal room |
|
|
143
|
+
| Raised moving navigation selection | A thin underline with immediate selection and a short text-color hover | Make repeated navigation direct and quiet |
|
|
144
|
+
| Collapsed rail saved in local storage | One header layout at all desktop widths | Remove an unnecessary layout mode and its controls |
|
|
145
|
+
| Separate mobile brand, navigation, and breadcrumb rows | A 105px header with a horizontally scrolling tab row | Keep navigation compact while preserving environment switching and search |
|
|
146
|
+
| A wide layout anchored to a left rail | A centered 1520px maximum grid with responsive gutters | Align the header, tables, diagrams, and summary measurements |
|
|
147
|
+
|
|
148
|
+
Tabs use manual keyboard activation: arrows, Home, and End move focus; Enter/Space activates. Navigation preserves focus on the selected tab and reveals it in the scrollable strip. Polls preserve the focused tab and strip position. Direct hash views, command search, workspace selection, source coverage, and inspectors remain accessible. The retired sidebar styles, local-storage preference, marker animation, and hover-tracking code are removed. No new animations are introduced for navigation.
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
## Complete map — 9 October 2026
|
|
152
|
+
|
|
153
|
+
| Before | After | Why |
|
|
154
|
+
| --- | --- | --- |
|
|
155
|
+
| Four representative workloads and a small model selection under “All” | Every workload, connection, model/service pair, and request represented in collapsible groups | “All” must describe the data, not a hidden display selection |
|
|
156
|
+
| Full-width groups enlarged the diagram and replaced actual names | Restore the original SVG scale, columns, typography, and subdued cards; show a named front card with two thin backing cards and a `+N` count | Preserve the established appearance while keeping every member accessible |
|
|
157
|
+
| Repeated “Deployment unidentified” captions | Reported service names on model nodes; deployment evidence in the inspector | Lead with known facts while keeping attribution limits accessible |
|
|
158
|
+
|
|
159
|
+
Groups use identical recorded entry-connection sets, never inferred agent roles. Disclosure is immediate for keyboard users and reduced motion. Stable identities preserve expansion across passive refreshes.
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
## Reversible graph component experiment
|
|
163
|
+
|
|
164
|
+
The map remains a quiet local inventory for someone exploring their inference environment. The user's preferred card scale and restrained styling are the baseline. The prototype is isolated behind `map=flow`, and the Original map action restores the existing component.
|
|
165
|
+
|
|
166
|
+
| Before | After | Why |
|
|
167
|
+
| --- | --- | --- |
|
|
168
|
+
| Expanding a stack stretches the full diagram | A complete searchable member browser; selected records spotlight existing stacks | Keep the overview stable while making every member reachable |
|
|
169
|
+
| Member names on collapsed stacks can be unrelated to the selected agent | Selected or directly related members become the front cards | Highlight only recorded relationships |
|
|
170
|
+
| Hand-arranged vertical positions | ELK vertical arrangement with fixed column widths and fixed viewport scale | Test automatic layout without changing the visual language |
|
|
171
|
+
| Every poll could trigger a new graph layout | Layout signature includes only stable node and edge identities | Counts can refresh without moving the map |
|
|
172
|
+
| Graph engine would increase all dashboard loads | A separate local bundle loaded only for the opt-in preview | Keep rollback and comparison cheap |
|
|
173
|
+
|
|
174
|
+
The desktop member browser uses the space alongside the map and does not dim the page. At narrower widths it sits beneath the graph. Colors continue to identify path types; original service marks, subtle borders, and existing inspector behavior are reused. Search and keyboard interactions are immediate. Only opacity and border colors transition, with transitions disabled for keyboard use and reduced motion. The remaining evaluation is whether automatic layout and browsing help the user enough to justify the additional bundle size; the experiment is not the default.
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
## Existing-load audit acceptance — 9 October 2026
|
|
178
|
+
|
|
179
|
+
Installed the source build in the existing `openmerit-real` Ubuntu VM and launched the literal command `openmerit dash /home/lazim.guest/inference-lab` on the default port. The test moved `.openmerit/inference.jsonl` to an owner-controlled backup outside the project. No `terminal.json`, custom exporter invocation, new inference, or new credentials were used. Pi history already had an exact project-scoped grant; unit integration tests separately cover missing access and revocation.
|
|
180
|
+
|
|
181
|
+
The fresh CLI recovered 276 real requests: 36 from native Pi sessions and 240 from two existing structured JSONL result logs (144 OpenRouter and 96 direct OpenAI). All 40 recorded cloud-worker IDs and 120 task IDs remained present. Every normalized measurement and identity matched the previous snapshot. A subsequent 15-second poll preserved the same totals, and hashes confirmed 147 evidence files were unchanged. With the feed still present before removal, 276 duplicate copies reconciled to the same 276 requests. The persistent service on private port 4313 now runs without the custom feed. The feed backup is retained outside the project.
|
|
182
|
+
|
|
183
|
+
This verifies the VM's existing logged workloads, not arbitrary production application discovery. Its cloud worker logs already contain explicit identity and usage fields; applications that omit those fields cannot recover them from source code alone. Supported protocol formats and discovery limits are described in the public guide. No support for private Codex/Claude histories or cloud account ingestion is claimed.
|
|
184
|
+
|
|
185
|
+
Browser verification also exposed an unrelated teardown error in the opt-in graph preview: the bundled ELK shim does not implement a real Web Worker's terminate method. Removed that unsupported cleanup call; the existing cancellation flag still prevents layout results from updating an unmounted map.
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
## Application-only scope and VM acceptance — 9 October 2026
|
|
189
|
+
|
|
190
|
+
The earlier Pi history acceptance result above is superseded. Coding-harness usage is outside the terminal's application scope. This revision removes the Pi history reader, grant lookup, and access prompts, while preserving application agents, jobs, evaluations, project request logs, runtime inventory, and product-task evidence. Existing grants cannot re-enable collection. Explicit development-scoped records are rejected; unmarked API records still require an application-owned source.
|
|
191
|
+
|
|
192
|
+
Installed the updated source package in the same isolated `openmerit-real` VM. Starting `openmerit dash` directly from `/home/lazim.guest/inference-lab`, with neither `terminal.json` nor `.openmerit/inference.jsonl`, retained all 240 application requests: 144 OpenRouter and 96 direct OpenAI. Every retained record was deeply equal to its pre-update value, including the 40 worker and 120 task identities. The 36 requests previously imported from Pi sessions were excluded. The CLI snapshot, default-port server, next 15-second poll, and persistent private server on port 4313 agreed. All 111 application evidence files and the legacy access file were unchanged; no new inference was run. Ollama inventory and machine readings remained available without attributing their usage to the application. Browser verification confirmed the new totals, both cloud paths, and Sources without Pi history or permission prompts. No browser errors occurred after the update.
|
|
193
|
+
|
|
194
|
+
The worker identities and request metadata are still the existing controlled VM workload, not newly discovered production agents. The hosted sample and published npm release were not changed by this validation.
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
## Friends’ installation preview — 9 October 2026
|
|
198
|
+
|
|
199
|
+
Added default-browser launch after the first snapshot, `--no-open`, and an operating-system-selected loopback port when the default port is occupied. Explicit `--port` remains strict. SSH and headless Linux retain the printed-URL path. Launcher tests cover platform command construction, shell-free invocation, URL validation, failures, headless sessions, and collection continuing after a port collision.
|
|
200
|
+
|
|
201
|
+
A compiled package was installed into disposable global npm prefixes on macOS and the existing Ubuntu VM, without changing either persistent global installation. The package contains no install-time build scripts or development dependencies. The full installed-package smoke test passed discovery, metadata redaction, read-only HTTP boundaries, cache isolation, lifecycle updates, source deletion/recovery, and shutdown independence. Plain `openmerit dash` opened the system-default Dia browser on macOS and rendered the empty test project's real runtime inventory. Windows and Linux desktop launch commands have unit coverage; their GUI opening was not physically tested.
|
|
202
|
+
|
|
203
|
+
In the VM, plain `openmerit dash` from `inference-lab` recovered the same 240 existing application requests, 40 worker IDs, and 120 task IDs. The next passive refresh preserved every record; all 111 application evidence files were unchanged. No new inference, keys, terminal configuration, custom feed, or access prompts were used. The headless launch printed its manual URL. Evidence: `/private/tmp/terminal-friends-smoke/terminal-smoke.json`, `/private/tmp/terminal-friends-vm-test.log`, and `/private/tmp/terminal-friends-browser-open.png`.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Website memo
|
|
2
|
+
|
|
3
|
+
The standalone `/memo/` page renders [Lazim's supplied memo](memo.md), “Optimum Inference For All.” The Markdown is the single maintained source; its wording and reading links are preserved from the supplied text. It describes the company's direction, including proposed capabilities and business model, rather than the released package contract. The homepage FAQ continues to describe released behavior.
|
|
4
|
+
|
|
5
|
+
## Editing and building
|
|
6
|
+
|
|
7
|
+
- Edit `docs/memo.md` for article changes. Do not edit the generated `site/memo/` directory.
|
|
8
|
+
- `scripts/docs.config.mjs` records the memo's source, route, and description separately from the product guides. The memo is outside the documentation navigation and operational search index.
|
|
9
|
+
- `scripts/build-memo.mjs` runs as part of `scripts/build-docs.mjs`. It renders the supplied H4 sections as H2 headings for a logical outline, assigns section IDs, and copies the exact Markdown to `/memo/source.md`.
|
|
10
|
+
- `site/memo.css` supplies the reading layout using the site's existing colors and font. All content and navigation work without JavaScript. Sharing metadata uses the site's default social image.
|
|
11
|
+
- A full-width abstract header sits between site navigation and the article. It has no text or overlay, uses a responsive center crop, and reserves its height before the image loads. The decorative image has empty alt text and is omitted from print layouts.
|
|
12
|
+
- The homepage navigation links to the memo. Existing Cloudflare asset serving resolves `/memo` to the generated page without a new Worker route.
|
|
13
|
+
|
|
14
|
+
Run `npm run check:docs`, then use the [existing local preview and deployment workflow](site-design.md). The documentation checks include the memo's local links, assets, section IDs, canonical URL, Markdown source copy, and social metadata. Building or passing checks does not publish the page; Cloudflare deployment is a separate step.
|
|
15
|
+
|
|
16
|
+
## Local verification
|
|
17
|
+
|
|
18
|
+
On 2026-09-28, all 11 documentation checks passed. The maintained memo is byte-for-byte identical to the supplied attachment. Browser checks confirmed `/memo` resolves to the article, one H1, nine section headings, ten reading links, and no horizontal overflow at widths from 320px to 1440px. Desktop and phone-sized screenshots were reviewed. The homepage's mobile Menu → Memo link, keyboard skip link, back-to-top link, and Markdown link worked; the complete article and navigation also worked with JavaScript disabled. No browser runtime errors were observed. These were local browser checks; physical phone hardware was not tested. Production asset verification is recorded below.
|
|
19
|
+
|
|
20
|
+
## Header artwork
|
|
21
|
+
|
|
22
|
+
The built-in image-generation tool created the header artwork; `site/assets/memo-inference-abstract-v1.webp` is the project asset (2172 × 724 pixels, 296,756 bytes). The visual depicts currents spreading through translucent forms as an abstract interpretation of intelligence, model selection, and shared capacity. WebP encoding is a delivery optimization; no text is added to the image. The original PNG is retained at `/Users/lazim/.codex/generated_images/01a0e79c-c82d-7cb0-8acc-ac542cb5172b/exec-b788a092-99b5-4af7-b441-ee74c0d1d021.png`.
|
|
23
|
+
|
|
24
|
+
The header addition passed all 11 documentation checks. Browser checks at 320, 390, 768, 1024, 1440, and 1920 CSS pixels confirmed the image loads at its native resolution, spans the viewport width, and creates no horizontal overflow. Desktop and phone-sized screenshots were visually reviewed; no text is present in the artwork and no browser runtime errors were observed. The addition is now published, as recorded below.
|
|
25
|
+
|
|
26
|
+
### Generation prompt
|
|
27
|
+
|
|
28
|
+
> Use case: stylized-concept
|
|
29
|
+
> Asset type: full-width editorial header image for OpenMerit's founding memo, 'Optimum Inference For All'.
|
|
30
|
+
> Primary request: an elegant, completely abstract visual of intelligence becoming more widely distributed through thoughtful allocation of finite resources. No text anywhere.
|
|
31
|
+
> Scene and subject: a continuous field of hundreds of very fine graphite and soft sage filaments flowing through a few translucent, mineral-like curved planes of different sizes. Dense ordered currents gradually separate, braid, and spread into an airy, balanced network across the frame. The whole composition feels like one quiet sculptural study of flow, selection, and shared capacity, with subtle irregularity rather than a literal technical diagram.
|
|
32
|
+
> Style and materials: sophisticated contemporary editorial art; tactile matte ivory paper, delicate graphite linework, frosted glass, soft mineral forms, restrained film grain. Crisp fine detail with soft natural shadows and substantial open breathing room.
|
|
33
|
+
> Color palette: warm off-white matching #f8f7f4, muted sage and olive, charcoal, tiny warm ochre accents. Restrained and luminous, with enough contrast to read at banner size.
|
|
34
|
+
> Composition: panoramic landscape, approximately 3:1 aspect ratio, ideally 2400 by 800 pixels. Artwork spans the full width. Important forms and flowing structure stay within the middle vertical band so it crops gracefully on phones. Balanced asymmetry with depth, no central logo-shaped object. Full-bleed artwork, no borders and no text overlay area needed.
|
|
35
|
+
> Avoid: ALL letters, words, numbers, captions, labels, logos, signatures, watermarks; no UI, charts, arrows, literal computers, brains, robots, people, sci-fi neon, stock corporate blue, or generic glowing neural network.
|
|
36
|
+
|
|
37
|
+
## Production publication
|
|
38
|
+
|
|
39
|
+
Published on September 28, 2026 as Worker `6b9dfbd1-d9a0-4f13-9120-4e754774998a`. The memo HTML, exact Markdown download, stylesheet, and abstract header artwork on both `openmerit.site` and `www.openmerit.site` match the maintained local build byte for byte. The homepage navigation is also published and matched. Repository verification and all 11 documentation checks passed.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# OpenMerit social sharing image
|
|
2
|
+
|
|
3
|
+
This is the shared default image for the homepage and all documentation pages. [Separate page cards](site-dynamic-og.md) are disabled for now at the user's request.
|
|
4
|
+
|
|
5
|
+
Final asset: `site/assets/openmerit-og-v1.png` (1200 × 630 pixels, PNG).
|
|
6
|
+
|
|
7
|
+
Public URL: https://openmerit.site/assets/openmerit-og-v1.png
|
|
8
|
+
|
|
9
|
+
Created with the built-in imagegen tool using the existing diverse miniature workshop as a style reference. The only visible text is “Good models prove themselves in the work.” The card features three diverse makers comparing and measuring tools at a wooden bench, plus the workshop spaniel.
|
|
10
|
+
|
|
11
|
+
Generated source: `/Users/lazim/.codex/generated_images/01a0c9d4-a3f3-7e12-aa03-2b46f42b5e83/exec-8fc3a2d5-2824-4104-b8d7-efc42a007635.png`.
|
|
12
|
+
|
|
13
|
+
Exported to the standard card dimensions with `sips`; no manual compositing, text additions, or aesthetic edits. The source is retained unchanged.
|
|
14
|
+
|
|
15
|
+
The HTML declares the absolute image URL, MIME type, dimensions, and alt text through Open Graph metadata, along with a large-image Twitter card. The versioned image filename avoids collisions with prior social-preview caches.
|
|
16
|
+
|
|
17
|
+
Deployed through Cloudflare on 2026-09-22, version `4e5bf82e-1753-4c61-b10c-3129f20df7bd`. Verified HTTP 200, `image/png`, 1200 × 630 dimensions, and live Open Graph/Twitter metadata. HTML on both domains and the image match the local files. Requests using Facebook and Twitter crawler user agents also returned the correct HTML and image.
|
|
18
|
+
|
|
19
|
+
## Exact generation prompt
|
|
20
|
+
|
|
21
|
+
Use case: ads-marketing.
|
|
22
|
+
Asset type: Open Graph social sharing image for the OpenMerit website. Final composition 1200 × 630 pixels, wide 1.90476:1 aspect ratio.
|
|
23
|
+
Input image 1: visual style and character reference from our existing website, not a screenshot to imitate. Recompose this workshop artwork into the finished social card described below.
|
|
24
|
+
|
|
25
|
+
Create a beautifully restrained editorial card with just ONE exact headline and a tactile miniature workshop illustration. Match the reference's photographic handcrafted miniature aesthetic closely: natural adult proportions, carefully crafted small figures, worn wood, linen aprons, tiny brass tools, realistic quiet contact shadows, soft diffuse daylight. Keep its warmth and craft, without making the figures look like plastic toys or cartoons.
|
|
26
|
+
|
|
27
|
+
Background: one seamless flat warm paper color #f8f7f4 throughout, with no visible rectangular image background, gradients, borders or frame.
|
|
28
|
+
Typography: crisp, plain neo-grotesk sans serif like Inter, regular/medium weight, warm charcoal #30312d. Large and confidently typeset, not bold, with slightly tight tracking. Left-align the headline near x=68, y=54 in the 1200×630 composition. It occupies the upper third and must remain highly legible at thumbnail size.
|
|
29
|
+
Text (verbatim, and the ONLY text anywhere in the image):
|
|
30
|
+
"Good models prove themselves in the work."
|
|
31
|
+
Set it on exactly these two lines:
|
|
32
|
+
Good models prove
|
|
33
|
+
themselves in the work.
|
|
34
|
+
Include the final period. No quotation marks. No additional text, logos, brand name, URL, labels, fake lettering or watermark.
|
|
35
|
+
|
|
36
|
+
Illustration: a fresh, compact arrangement from the same workshop, in the lower portion of the card (approximately y=275 to y=580), with generous breathing room separating it from the headline. Three diverse adult miniature makers thoughtfully testing and comparing hand tools at a long, modest wooden workbench: an East Asian man measuring with calipers on the left, an older South Asian man with gray beard and glasses comparing two wooden hand planes near the middle, and a Black woman with a natural bun making a note in an open notebook on the right. Their faces, fabric and materials should have the same nuanced miniature craftsmanship as the reference. Include the small brass balance scale on the bench and the resting spaniel underneath. Natural, slightly asymmetric spacing and different poses; ordinary skilled colleagues. The whole miniature scene should span most of the card's width, about x=74 to x=1126, keeping all heads, feet and bench legs within the frame. Do not crop the people. The ground is the same warm paper as the background, with only delicate contact shadows. Do not add workshop walls or scenery.
|
|
37
|
+
|
|
38
|
+
Constraints: exact text and only that text. Strong, simple hierarchy. No badges, UI, buttons, icons, technical diagrams, glowing effects, sparkles, purple/blue tech gradients, floating ornaments, shiny 3D marketing shapes, childish characters or generic corporate illustration. Quiet and intentional, consistent with the attached miniature workshop.
|