visualproof 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +88 -33
  2. package/dist/assets/tips/phone-fingers.light.mp4 +0 -0
  3. package/dist/assets/tips/phone-fingers.light.webp +0 -0
  4. package/dist/assets/tips/tour-agent.webp +0 -0
  5. package/dist/assets/tips/tour-arrange.webp +0 -0
  6. package/dist/assets/tips/tour-artwork.webp +0 -0
  7. package/dist/assets/tips/tour-checks.webp +0 -0
  8. package/dist/assets/tips/tour-export.webp +0 -0
  9. package/dist/assets/tips/tour-keys.webp +0 -0
  10. package/dist/assets/tips/tour-library.webp +0 -0
  11. package/dist/assets/tips/tour-project.webp +0 -0
  12. package/dist/assets/tips/tour-review.webp +0 -0
  13. package/dist/assets/tips/tour-share.webp +0 -0
  14. package/dist/assets/tips/tour-source.webp +0 -0
  15. package/dist/assets/tips/tour-target.webp +0 -0
  16. package/dist/assets/tips/tour-view.webp +0 -0
  17. package/dist/assets/tips/tour.json +289 -0
  18. package/dist/assets/tips/tour.webp +0 -0
  19. package/dist/assets/webfonts/LICENSE-Noto.txt +95 -0
  20. package/dist/assets/webfonts/metrics.json +1 -0
  21. package/dist/assets/webfonts/ttf/jost-400-normal.ttf +0 -0
  22. package/dist/assets/webfonts/ttf/jost-500-normal.ttf +0 -0
  23. package/dist/assets/webfonts/ttf/noto-sans-math.ttf +0 -0
  24. package/dist/assets/webfonts/ttf/noto-sans.ttf +0 -0
  25. package/dist/assets/webfonts/ttf/source-sans-3-400-italic.ttf +0 -0
  26. package/dist/assets/webfonts/ttf/source-sans-3-400-normal.ttf +0 -0
  27. package/dist/assets/webfonts/ttf/source-sans-3-500-normal.ttf +0 -0
  28. package/dist/assets/webfonts/ttf/source-sans-3-600-normal.ttf +0 -0
  29. package/dist/assets/webfonts/ttf/source-sans-3-700-normal.ttf +0 -0
  30. package/dist/assets/webfonts/ttf/source-serif-4-400-italic.ttf +0 -0
  31. package/dist/assets/webfonts/ttf/source-serif-4-600-italic.ttf +0 -0
  32. package/dist/mcp/visualproof-mcp.mjs +3 -1
  33. package/dist/server/agent.js +94 -91
  34. package/dist/server/agentdocs.js +1 -1
  35. package/dist/server/artcmd.js +335 -0
  36. package/dist/server/children.js +85 -0
  37. package/dist/server/doctor.js +105 -42
  38. package/dist/server/events.js +10 -0
  39. package/dist/server/export.js +11 -4
  40. package/dist/server/extract.js +3 -2
  41. package/dist/server/figures.js +3 -2
  42. package/dist/server/film.js +380 -0
  43. package/dist/server/history.js +11 -1
  44. package/dist/server/hover.js +8 -5
  45. package/dist/server/live.js +72 -9
  46. package/dist/server/main.js +352 -23
  47. package/dist/server/mcptools.js +4 -1
  48. package/dist/server/media.js +114 -0
  49. package/dist/server/pipeline.js +21 -10
  50. package/dist/server/poppler.js +3 -2
  51. package/dist/server/readonlygate.js +4 -4
  52. package/dist/server/review.js +4 -1
  53. package/dist/server/reviewapi.js +35 -1
  54. package/dist/server/snapshot.js +10 -1
  55. package/dist/server/sourcestore.js +3 -2
  56. package/dist/server/status.js +3 -2
  57. package/dist/server/supervise.js +219 -0
  58. package/dist/server/updates.js +951 -0
  59. package/dist/server/usage.js +3 -1
  60. package/dist/server/version.js +183 -0
  61. package/dist/server/view.js +0 -7
  62. package/dist/server/views.js +24 -0
  63. package/dist/shared/artfonts.js +81 -0
  64. package/dist/shared/artrecipe.js +316 -0
  65. package/dist/shared/collab.js +7 -2
  66. package/dist/shared/declfind.js +95 -0
  67. package/dist/shared/lostfound.js +1 -0
  68. package/dist/shared/pastgraph.js +6 -6
  69. package/dist/shared/review.js +62 -5
  70. package/dist/shared/timeline.js +5 -0
  71. package/dist/web/bundle/app.js +3006 -413
  72. package/dist/web/bundle/edges.js +1 -1
  73. package/dist/web/index.html +13 -1
  74. package/dist/web/src/agentmark.js +14 -0
  75. package/dist/web/src/artwork.js +1000 -0
  76. package/dist/web/src/bundles.js +151 -0
  77. package/dist/web/src/canvas.js +3716 -0
  78. package/dist/web/src/drag.js +61 -0
  79. package/dist/web/src/edgequeue.js +204 -0
  80. package/dist/web/src/gl/gl.js +123 -0
  81. package/dist/web/src/gl/renderer.js +451 -0
  82. package/dist/web/src/halo.js +95 -0
  83. package/dist/web/src/highlight.js +108 -0
  84. package/dist/web/src/overview.js +393 -0
  85. package/dist/web/src/reviewqueue.js +250 -0
  86. package/dist/web/src/selection.js +272 -0
  87. package/dist/web/src/status.js +80 -0
  88. package/dist/web/src/visitors.js +318 -0
  89. package/dist/web/src/visits.js +174 -0
  90. package/dist/web/style.css +196 -1
  91. package/docs/agent-api/README.md +1 -1
  92. package/docs/agent-api/export.md +41 -2
  93. package/docs/agent-api/history.md +5 -3
  94. package/docs/agent-api/mcp.md +1 -1
  95. package/docs/agent-api/reading.md +2 -1
  96. package/package.json +5 -1
@@ -313,7 +313,7 @@ var OverviewModel = class {
313
313
  return looks;
314
314
  }
315
315
  };
316
- var DIM = 0.12;
316
+ var DIM = 0.3;
317
317
 
318
318
  // src/web/src/edgeworker.ts
319
319
  var EdgeWorkerCore = class {
@@ -77,7 +77,12 @@
77
77
  <button id="who" class="who" hidden></button>
78
78
  <div id="who-menu" class="glass" role="menu" aria-label="Your name and visibility" hidden></div>
79
79
  </div>
80
- <button id="help-btn" class="help-btn" title="Keys and gestures, and the tour (?)" aria-label="Help">?</button>
80
+ <!-- help: a menu of the tips, the keys, the tour, and what the project and VisualProof are
81
+ (GuideSpec decision 8, web/src/guide.ts) -->
82
+ <div class="help-wrap">
83
+ <button id="help-btn" class="help-btn" title="Help: tips, keys, the tour (?)" aria-label="Help" aria-haspopup="menu" aria-expanded="false">?</button>
84
+ <div id="help-menu" class="glass" role="menu" aria-label="Help" hidden></div>
85
+ </div>
81
86
  <!-- on a phone the bar's buttons are in one menu (web/src/phone.ts) -->
82
87
  <div class="more-wrap">
83
88
  <button id="more-btn" class="act-btn act-icon" aria-label="More" aria-haspopup="menu" aria-expanded="false" title="Share, the library, export, activity, your name, help"><svg viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><circle cx="3.5" cy="8" r="1.3"/><circle cx="8" cy="8" r="1.3"/><circle cx="12.5" cy="8" r="1.3"/></svg><span id="more-badge" class="act-badge" hidden></span></button>
@@ -229,6 +234,13 @@
229
234
  <div class="tour-spot"></div><div class="tour-card glass" role="dialog" aria-live="polite"></div>
230
235
  </div>
231
236
  <div id="help" hidden></div>
237
+ <!-- a tip in place, beside the control it is about (GuideSpec decision 9, web/src/intip.ts); What's
238
+ new, said once when the server runs a newer release than this browser saw (decision 11) -->
239
+ <div id="intip" class="glass" role="dialog" aria-live="polite" hidden></div>
240
+ <div id="whatsnew" class="glass" role="status" hidden></div>
241
+ <!-- a first visit: the tour and the film offered, never imposed; no backdrop, never the keyboard's
242
+ (GuideSpec decision 1) -->
243
+ <div id="welcome" class="glass" role="region" aria-label="Welcome" aria-live="polite" hidden></div>
232
244
  <div id="modal" hidden>
233
245
  <form id="who-form" class="modal-box glass" autocomplete="off">
234
246
  <div class="modal-title" id="who-title">Who is reviewing?</div>
@@ -0,0 +1,14 @@
1
+ // The mark of an agent (AgentSpec decision 1): a small robot wherever the page names one — its
2
+ // initials among the others, its advice in the review, what it did in Activity — so that nothing
3
+ // an agent said or did reads as a person's.
4
+ /** A robot's head, drawn in the colour of the text around it. */
5
+ export const BOT = `<svg class="bot" viewBox="0 0 16 16" aria-hidden="true">` +
6
+ `<path d="M8 4.2V2.4" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/>` +
7
+ `<circle cx="8" cy="1.9" r="1.1" fill="currentColor"/>` +
8
+ `<rect x="2.2" y="4.4" width="11.6" height="9.2" rx="2.6" fill="none" stroke="currentColor" stroke-width="1.4"/>` +
9
+ `<circle cx="5.9" cy="8.8" r="1.25" fill="currentColor"/><circle cx="10.1" cy="8.8" r="1.25" fill="currentColor"/>` +
10
+ `</svg>`;
11
+ /** How an agent is named in words: "Claude (agent)". */
12
+ export function agentName(name) {
13
+ return `${name} (agent)`;
14
+ }