@pinepaper.studio/mcp-server 1.6.18 → 1.6.19

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 (108) hide show
  1. package/README.de.md +1 -1
  2. package/README.es.md +1 -1
  3. package/README.fr.md +1 -1
  4. package/README.hi.md +1 -1
  5. package/README.ja.md +1 -1
  6. package/README.ko.md +1 -1
  7. package/README.md +97 -10
  8. package/README.pt-BR.md +1 -1
  9. package/README.zh-CN.md +1 -1
  10. package/dist/agent/export-manager.js +2 -2
  11. package/dist/agent/session-manager.d.ts +8 -0
  12. package/dist/agent/session-manager.d.ts.map +1 -1
  13. package/dist/agent/session-manager.js +17 -2
  14. package/dist/agent/session-manager.js.map +1 -1
  15. package/dist/assets/asset-manager.d.ts +28 -1
  16. package/dist/assets/asset-manager.d.ts.map +1 -1
  17. package/dist/assets/asset-manager.js +65 -25
  18. package/dist/assets/asset-manager.js.map +1 -1
  19. package/dist/assets/index.d.ts +1 -3
  20. package/dist/assets/index.d.ts.map +1 -1
  21. package/dist/assets/index.js +1 -3
  22. package/dist/assets/index.js.map +1 -1
  23. package/dist/assets/repositories/iconify.js +1 -1
  24. package/dist/assets/repositories/iconify.js.map +1 -1
  25. package/dist/assets/repositories/openclipart.js +1 -1
  26. package/dist/assets/repositories/openclipart.js.map +1 -1
  27. package/dist/assets/repositories/svgrepo.js +2 -2
  28. package/dist/assets/repositories/svgrepo.js.map +1 -1
  29. package/dist/assets/types.d.ts +2 -2
  30. package/dist/assets/types.d.ts.map +1 -1
  31. package/dist/browser/puppeteer-controller.d.ts +25 -0
  32. package/dist/browser/puppeteer-controller.d.ts.map +1 -1
  33. package/dist/browser/puppeteer-controller.js +107 -1
  34. package/dist/browser/puppeteer-controller.js.map +1 -1
  35. package/dist/build-info.json +2 -2
  36. package/dist/cli.js +4 -2
  37. package/dist/cli.js.map +1 -1
  38. package/dist/design/design-systems.d.ts +2 -0
  39. package/dist/design/design-systems.d.ts.map +1 -1
  40. package/dist/design/design-systems.js +2 -0
  41. package/dist/design/design-systems.js.map +1 -1
  42. package/dist/execution/canvas-state.d.ts.map +1 -1
  43. package/dist/execution/canvas-state.js +19 -43
  44. package/dist/execution/canvas-state.js.map +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +20 -7
  47. package/dist/index.js.map +1 -1
  48. package/dist/ontology/design-graph.js +2 -2
  49. package/dist/ontology/design-graph.js.map +1 -1
  50. package/dist/ontology/upstream-vocabulary.d.ts +2 -2
  51. package/dist/ontology/upstream-vocabulary.js +2 -2
  52. package/dist/ontology/validator.js +1 -1
  53. package/dist/ontology/validator.js.map +1 -1
  54. package/dist/tools/compact-descriptions.d.ts.map +1 -1
  55. package/dist/tools/compact-descriptions.js +15 -14
  56. package/dist/tools/compact-descriptions.js.map +1 -1
  57. package/dist/tools/definitions.d.ts +1 -1
  58. package/dist/tools/definitions.d.ts.map +1 -1
  59. package/dist/tools/definitions.js +422 -126
  60. package/dist/tools/definitions.js.map +1 -1
  61. package/dist/tools/engine-lists.d.ts +17 -2
  62. package/dist/tools/engine-lists.d.ts.map +1 -1
  63. package/dist/tools/engine-lists.js +102 -2
  64. package/dist/tools/engine-lists.js.map +1 -1
  65. package/dist/tools/engine-methods.d.ts.map +1 -1
  66. package/dist/tools/engine-methods.js +14 -1
  67. package/dist/tools/engine-methods.js.map +1 -1
  68. package/dist/tools/engine-surface.d.ts +1 -1
  69. package/dist/tools/engine-surface.d.ts.map +1 -1
  70. package/dist/tools/engine-surface.js +49 -8
  71. package/dist/tools/engine-surface.js.map +1 -1
  72. package/dist/tools/handlers/camera.js +8 -8
  73. package/dist/tools/handlers/camera.js.map +1 -1
  74. package/dist/tools/handlers/export.d.ts.map +1 -1
  75. package/dist/tools/handlers/export.js +77 -5
  76. package/dist/tools/handlers/export.js.map +1 -1
  77. package/dist/tools/handlers/font.js +10 -10
  78. package/dist/tools/handlers/font.js.map +1 -1
  79. package/dist/tools/handlers/generate.d.ts +12 -12
  80. package/dist/tools/handlers/maps.d.ts.map +1 -1
  81. package/dist/tools/handlers/maps.js +23 -3
  82. package/dist/tools/handlers/maps.js.map +1 -1
  83. package/dist/tools/handlers.d.ts +21 -0
  84. package/dist/tools/handlers.d.ts.map +1 -1
  85. package/dist/tools/handlers.js +240 -37
  86. package/dist/tools/handlers.js.map +1 -1
  87. package/dist/tools/minimal-descriptions.d.ts.map +1 -1
  88. package/dist/tools/minimal-descriptions.js +32 -25
  89. package/dist/tools/minimal-descriptions.js.map +1 -1
  90. package/dist/tools/shape-params.d.ts +2 -2
  91. package/dist/tools/shape-params.d.ts.map +1 -1
  92. package/dist/tools/shape-params.js +5 -2
  93. package/dist/tools/shape-params.js.map +1 -1
  94. package/dist/tools/stick-vocabulary.d.ts +1 -1
  95. package/dist/tools/stick-vocabulary.js +1 -1
  96. package/dist/tools/toolkits.d.ts.map +1 -1
  97. package/dist/tools/toolkits.js +5 -0
  98. package/dist/tools/toolkits.js.map +1 -1
  99. package/dist/types/code-generator.d.ts +57 -3
  100. package/dist/types/code-generator.d.ts.map +1 -1
  101. package/dist/types/code-generator.js +1007 -253
  102. package/dist/types/code-generator.js.map +1 -1
  103. package/dist/types/schemas.d.ts +1842 -890
  104. package/dist/types/schemas.d.ts.map +1 -1
  105. package/dist/types/schemas.js +229 -51
  106. package/dist/types/schemas.js.map +1 -1
  107. package/manifest.json +22 -2
  108. package/package.json +1 -1
package/README.de.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  Der PinePaper MCP-Server lässt KI-Assistenten über das Model Context Protocol Grafiken in [PinePaper Studio](https://pinepaper.studio) erstellen und animieren. Funktioniert mit jeder KI, die MCP-Tool-Aufrufe unterstützt (Claude, GPT, Gemini, lokale Modelle usw.).
21
21
 
22
- Der Server bietet **159 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
22
+ Der Server bietet **164 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
23
23
 
24
24
  - Text, Formen, Geometrie und komplexe Grafiken erstellen
25
25
  - Mit deklarativen **Relationen** animieren statt mit Keyframes
package/README.es.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  El servidor MCP de PinePaper permite a los asistentes de IA crear y animar gráficos en [PinePaper Studio](https://pinepaper.studio) a través del Model Context Protocol. Funciona con cualquier IA que soporte llamadas a herramientas MCP (Claude, GPT, Gemini, modelos locales, etc.).
21
21
 
22
- Expone **159 herramientas**: dibujo, animación, diagramas, mapas, tipografía, física, edición de imágenes, visualización de datos y exportación:
22
+ Expone **164 herramientas**: dibujo, animación, diagramas, mapas, tipografía, física, edición de imágenes, visualización de datos y exportación:
23
23
 
24
24
  - Crear texto, formas, geometría y gráficos complejos
25
25
  - Animar con **relaciones** declarativas en lugar de fotogramas clave
package/README.fr.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  Le serveur MCP PinePaper permet aux assistants IA de créer et d'animer des graphiques dans [PinePaper Studio](https://pinepaper.studio) via le Model Context Protocol. Compatible avec toute IA gérant les appels d'outils MCP (Claude, GPT, Gemini, modèles locaux, etc.).
21
21
 
22
- Il expose **159 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
22
+ Il expose **164 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
23
23
 
24
24
  - Créer du texte, des formes, de la géométrie et des graphiques complexes
25
25
  - Animer avec des **relations** déclaratives plutôt que des images clés
package/README.hi.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  PinePaper MCP सर्वर AI असिस्टेंट्स को Model Context Protocol के ज़रिए [PinePaper Studio](https://pinepaper.studio) में ग्राफ़िक्स बनाने और एनिमेट करने देता है। MCP टूल कॉलिंग वाले किसी भी AI (Claude, GPT, Gemini, लोकल मॉडल आदि) के साथ काम करता है।
21
21
 
22
- सर्वर **159 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
22
+ सर्वर **164 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
23
23
 
24
24
  - टेक्स्ट, आकृतियाँ, ज्यामिति और जटिल ग्राफ़िक्स बनाना
25
25
  - कीफ़्रेम की जगह व्यवहार बताने वाले **रिलेशन** से एनिमेशन
package/README.ja.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  PinePaper MCP サーバーは、MCP 経由で AI アシスタントが [PinePaper Studio](https://pinepaper.studio) 上にグラフィックを作成・アニメーションさせるためのサーバーです。MCP ツールコールに対応した AI(Claude、GPT、Gemini、ローカルモデルなど)で動作します。
21
21
 
22
- **159 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
22
+ **164 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
23
23
 
24
24
  - テキスト、図形、ジオメトリ、複雑なグラフィックの作成
25
25
  - キーフレームではなく、ふるまいを宣言する**リレーション**でアニメーション
package/README.ko.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  PinePaper MCP 서버는 AI 어시스턴트가 MCP를 통해 [PinePaper Studio](https://pinepaper.studio)에서 그래픽을 만들고 애니메이션하게 해줍니다. MCP 툴 콜을 지원하는 모든 AI(Claude, GPT, Gemini, 로컬 모델 등)와 호환됩니다.
21
21
 
22
- **159개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
22
+ **164개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
23
23
 
24
24
  - 텍스트·도형·기하·복잡한 그래픽 생성
25
25
  - 키프레임 대신 행동을 선언하는 **릴레이션**으로 애니메이션
package/README.md CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  PinePaper MCP Server enables AI assistants to create and animate graphics in [PinePaper Studio](https://pinepaper.studio) via the Model Context Protocol (MCP). Works with any AI that supports MCP tool calling (Claude, GPT, Gemini, local models, etc.).
32
32
 
33
- The server exposes **159 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
33
+ The server exposes **164 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
34
34
 
35
35
  - Create geometric shapes, text collages, diagrams, and data charts
36
36
  - Apply 37+ character-level text effects and 28+ vertex deformation presets
@@ -41,7 +41,7 @@ The server exposes **159 tools** across drawing, animation, diagrams, maps, typo
41
41
 
42
42
  ## Running it: local or hosted
43
43
 
44
- **Local is free and complete.** Every one of the 159 tools works when you run
44
+ **Local is free and complete.** Every one of the 164 tools works when you run
45
45
  this server yourself. There is no reduced tier and nothing held back.
46
46
 
47
47
  What it needs:
@@ -246,6 +246,90 @@ If you do not want an agent executing anything, `code` mode is a first-class pat
246
246
  - Puppeteer mode launches Chrome with `--no-sandbox` and `--disable-setuid-sandbox`. That is routine for headless automation and it does weaken Chrome's own process sandbox. If that matters where you are running it, use `code` mode or put the server in a container.
247
247
  - Puppeteer itself is an **optional** peer dependency, kept out of the default tree precisely because a headless browser plus an install script is what scanners flag hardest. Install it only if you want the executing mode.
248
248
 
249
+ ## What's new in 1.6.19
250
+
251
+ ### New: save a scene and restore it
252
+
253
+ `pinepaper_export_scene` takes `full: true`: it saves a restorable project
254
+ file (animation, relations, rigging, scene chains) and returns its path.
255
+ `pinepaper_import_scene` restores it. Both report counts of items, animated
256
+ items, keyframes and relations, so you can check nothing was lost. Without
257
+ `full`, `pinepaper_export_scene` returns a summary for inspection, and now
258
+ says that it cannot be restored.
259
+
260
+ ### New: put your UI on a screen in a photo
261
+
262
+ `pinepaper_place_on_surface` places a design onto a phone, monitor or
263
+ billboard in a photo: fitted to the screen's perspective, with a hand in front
264
+ of the screen kept in front, and a little glare and light spill. It finds the
265
+ screen itself, or takes its four corners. The result becomes part of the photo,
266
+ so zooms and camera moves carry it.
267
+
268
+ ### New: one scene, six styles
269
+
270
+ `pinepaper_styled_scene` draws a whole animated scene in one call: paper
271
+ cut-out, ink, watercolour, 1-bit dither, flowing contours or ASCII broadcast.
272
+ The composition can be changed (sky, hills, river, camera, colours), and
273
+ calling it again with another style redraws the same scene in the new look.
274
+ Export it for the length the result reports.
275
+
276
+ ### Changed: for services that run the steps later
277
+
278
+ A host that records each canvas step and runs it at render time can pass
279
+ `deferred: true`: the agent is then told the step was recorded, rather than
280
+ handed a script to paste. Whenever the server hands back code instead of
281
+ running it (deferred, or `--mode code`), the code travels in
282
+ `_meta["pinepaper.studio/code"]` for the host to record.
283
+
284
+ ### Changed: tool results report where their time went
285
+
286
+ Every result carries `_meta["pinepaper.studio/timing"]`: the whole call, and
287
+ the studio's share of it, for tracing slow requests.
288
+
289
+ ### New: light the 3D world, brush strokes, shader graphs
290
+
291
+ `pinepaper_relight` lights the 3D world layer with up to eight point and
292
+ directional lights. The lighting shows in the preview and in PNG, PDF, MP4
293
+ and WebM exports, and the reply says how much time it adds to an export.
294
+ `pinepaper_shader_graph` runs node graphs (relighting, depth of field, bloom)
295
+ over an item or the whole scene. `pinepaper_design_medium` gains
296
+ `sdf_stroke`, a smooth pressure-sensitive brush stroke from a list of points.
297
+
298
+ ### New: handwriting that writes itself on
299
+
300
+ `pinepaper_text_style` cursive takes `animate: true` and writes the words on
301
+ over `duration` seconds, with no keyframes to add. A `nib` chooses the pen:
302
+ `'broad'` for calligraphic thick and thin strokes, `'monoline'` for one even
303
+ line. Unknown cursive options are now refused rather than ignored.
304
+
305
+ ### New: ink and charcoal on what you already drew
306
+
307
+ `pinepaper_design_medium` `apply` with `medium: 'ink'` or `'charcoal'`
308
+ restyles an existing stroke, title or group in place, with a hand-drawn line
309
+ that boils. The item keeps its id, animation and relations.
310
+
311
+ ### Changed: asset search uses Iconify and Font Awesome
312
+
313
+ `pinepaper_search_assets` no longer searches SVGRepo or OpenClipart. Neither
314
+ answers automated searches any more, so they returned nothing. Asking for
315
+ either by name, or importing one of their asset ids, says so.
316
+
317
+ ### Fixed
318
+
319
+ - `pinepaper_add_filter` offers every filter the studio has, including dither,
320
+ CMYK and dot halftones, edge detection, HSL and colour tint, each with its
321
+ parameter ranges.
322
+ - Maps: a highlight takes the colour you give it, and `opacity` tints the
323
+ land. Highlight, colouring and `get_highlighted` report the regions that
324
+ were actually coloured and name any that are not on the map;
325
+ `get_at_point` returns the region under a point; `add_marker` adds the
326
+ marker it reports.
327
+ - `pinepaper_agent_start_job` fixes an unbounded canvas at the size it
328
+ reports, so a PNG export is the full canvas rather than a crop of the
329
+ artwork.
330
+ - Tool descriptions at every level quote counts and action lists that match
331
+ the tools.
332
+
249
333
  ## What's new in 1.6.18
250
334
 
251
335
  ### New: spring easings, the standard easing set, and custom curves
@@ -1362,14 +1446,14 @@ Fourteen new tools (121 → 135) and new actions across the surface — the rele
1362
1446
 
1363
1447
  ## Toolkits & Token Budget
1364
1448
 
1365
- 159 tools is a lot of context. The server ships a **toolkit** system that serves only the tools a given client needs, plus a **verbosity** system that controls how long each tool description is.
1449
+ 164 tools is a lot of context. The server ships a **toolkit** system that serves only the tools a given client needs, plus a **verbosity** system that controls how long each tool description is.
1366
1450
 
1367
1451
  **Toolkit profiles** (`PINEPAPER_TOOLKIT`):
1368
1452
 
1369
1453
  | Profile | Contents |
1370
1454
  |---------|----------|
1371
- | `full` | Every tool, no filtering (default) |
1372
- | `agent` | Broad authoring surface, minus niche/low-level groups |
1455
+ | `full` | Every tool, no filtering |
1456
+ | `agent` | Every tool except the diagnostics (`pinepaper_get_performance_metrics`, `pinepaper_diagnostic_report`) and `pinepaper_register_item`. The default for a client not listed below |
1373
1457
  | `diagram` | Canvas + diagram + query/export |
1374
1458
  | `map` | Canvas + map + query/export |
1375
1459
  | `font` | Canvas + font + letter collage + export |
@@ -1530,10 +1614,8 @@ Choropleths, region styling, and data-driven map animation via `pinepaper_map`,
1530
1614
 
1531
1615
  ### 🔍 Asset Search & Import
1532
1616
 
1533
- Search and import free SVG assets from multiple repositories:
1617
+ Search and import free SVG icons:
1534
1618
 
1535
- - **SVGRepo**: 500,000+ icons with various licenses
1536
- - **OpenClipart**: 151,000+ public domain clipart (CC0)
1537
1619
  - **Iconify**: 200,000+ icons from multiple icon sets
1538
1620
  - **Font Awesome**: 2,000+ free icons (CC BY 4.0)
1539
1621
 
@@ -1567,7 +1649,7 @@ Generate instruction/code pairs for LLM fine-tuning:
1567
1649
 
1568
1650
  ## Tools Reference
1569
1651
 
1570
- All 159 tools, grouped by the tag used for toolkit filtering.
1652
+ All 164 tools, grouped by the tag used for toolkit filtering.
1571
1653
 
1572
1654
  ### Canvas (`canvas`)
1573
1655
  | Tool | Description |
@@ -1671,9 +1753,12 @@ All 159 tools, grouped by the tag used for toolkit filtering.
1671
1753
  | `pinepaper_generate` | AI image generation in the PinePaper cloud (charged; beta, per organisation) |
1672
1754
  | `pinepaper_generate_estimate` | Free price check, and the model list |
1673
1755
  | `pinepaper_generate_status` | Collect a generation that outlived its timeout |
1756
+ | `pinepaper_styled_scene` | One composition drawn in a built-in style |
1674
1757
  | `pinepaper_apply_effect` | Apply sparkle, blast, and other effects |
1675
1758
  | `pinepaper_text_effect` | 37 character-level text animations; replaces the text with one keyframed item per character |
1676
1759
  | `pinepaper_add_filter` | Add an image filter |
1760
+ | `pinepaper_relight` | Light the 3D world with point and directional lights |
1761
+ | `pinepaper_shader_graph` | Pixel graphs (relight, depth of field, bloom) over an item or the scene |
1677
1762
 
1678
1763
  ### Editing (`selection`, `transform`, `history`)
1679
1764
  | Tool | Description |
@@ -1800,7 +1885,9 @@ All 159 tools, grouped by the tag used for toolkit filtering.
1800
1885
  | Tool | Description |
1801
1886
  |------|-------------|
1802
1887
  | `pinepaper_export_svg` | Export animated SVG |
1803
- | `pinepaper_export_scene` | Export the scene |
1888
+ | `pinepaper_export_scene` | Export the scene: a summary, or a restorable project file (`full: true`) |
1889
+ | `pinepaper_import_scene` | Restore a scene from a full export file |
1890
+ | `pinepaper_place_on_surface` | Put a UI onto a screen in a photo |
1804
1891
  | `pinepaper_export_training_data` | Export LLM training pairs |
1805
1892
  | `pinepaper_export_widget` | Export an embeddable widget |
1806
1893
  | `pinepaper_export_widget_html` | Export widget HTML |
package/README.pt-BR.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  O servidor MCP do PinePaper permite que assistentes de IA criem e animem gráficos no [PinePaper Studio](https://pinepaper.studio) via Model Context Protocol. Funciona com qualquer IA que suporte chamadas de ferramenta MCP (Claude, GPT, Gemini, modelos locais etc.).
21
21
 
22
- São **159 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
22
+ São **164 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
23
23
 
24
24
  - Criar texto, formas, geometria e gráficos complexos
25
25
  - Animar com **relações** declarativas em vez de keyframes
package/README.zh-CN.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  PinePaper MCP 服务器让 AI 助手通过 MCP 协议在 [PinePaper Studio](https://pinepaper.studio) 中创建和驱动图形动画。兼容任何支持 MCP 工具调用的 AI(Claude、GPT、Gemini、本地模型等)。
21
21
 
22
- 服务器提供 **159 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
22
+ 服务器提供 **164 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
23
23
 
24
24
  - 创建文本、形状、几何图形与复杂图稿
25
25
  - 用行为驱动的**关系(relations)**做动画,而不是逐帧关键帧
@@ -86,8 +86,8 @@ export class SmartExportManager {
86
86
  analysis.hasImages = true;
87
87
  }
88
88
 
89
- // Check for animations
90
- if (data.animationType) {
89
+ // Check for animations ('none' is a still item, gate C5)
90
+ if (data.animationType && data.animationType !== 'none') {
91
91
  analysis.hasAnimations = true;
92
92
  animationSet.add(data.animationType);
93
93
  }
@@ -57,6 +57,14 @@ export declare class AgentSessionManager {
57
57
  * Get queue size
58
58
  */
59
59
  getQueueSize(): number;
60
+ /**
61
+ * Items created by calls the server ran, counted from the governor's own
62
+ * report (report.items.created). registerItem() below was never called by
63
+ * anything, so these stats read 0 with items on the canvas (gate H3).
64
+ */
65
+ private createdOutsideIds;
66
+ private createdInJobCount;
67
+ noteItemsCreated(count: number): void;
60
68
  /**
61
69
  * Register an item created during the job
62
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/agent/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,UAAU,CAAmB;IAErC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,UAAU;IA4B9C;;OAEG;IACH,MAAM,IAAI,SAAS,GAAG,IAAI;IA4B1B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS7B;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAU1B;;OAEG;IACH,eAAe,IAAI,MAAM;IAwCzB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMlC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM1C;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO;IAexE;;OAEG;IACH,iBAAiB,CAAC,OAAO,GAAE,YAAiB,GAAG,MAAM;IAwDrD;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;KAC3B;CAcF;AAQD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,mBAAmB,CAKvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAQ1C"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/agent/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,UAAU,CAAmB;IAErC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,UAAU;IA6B9C;;OAEG;IACH,MAAM,IAAI,SAAS,GAAG,IAAI;IA4B1B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS7B;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAU1B;;OAEG;IACH,eAAe,IAAI,MAAM;IAwCzB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMrC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMlC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM1C;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO;IAexE;;OAEG;IACH,iBAAiB,CAAC,OAAO,GAAE,YAAiB,GAAG,MAAM;IAwDrD;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;KAC3B;CAcF;AAQD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,mBAAmB,CAKvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAQ1C"}
@@ -45,6 +45,7 @@ export class AgentSessionManager {
45
45
  * Start a new agent job
46
46
  */
47
47
  startJob(options = {}) {
48
+ this.createdInJobCount = 0;
48
49
  // End any existing job first
49
50
  if (this.currentJob) {
50
51
  console.warn('[AgentSession] Ending previous job before starting new one');
@@ -163,6 +164,20 @@ ${queue.map((code, i) => `
163
164
  getQueueSize() {
164
165
  return this.currentJob?.codeQueue.length ?? 0;
165
166
  }
167
+ /**
168
+ * Items created by calls the server ran, counted from the governor's own
169
+ * report (report.items.created). registerItem() below was never called by
170
+ * anything, so these stats read 0 with items on the canvas (gate H3).
171
+ */
172
+ createdOutsideIds = 0;
173
+ createdInJobCount = 0;
174
+ noteItemsCreated(count) {
175
+ if (!(count > 0))
176
+ return;
177
+ this.createdOutsideIds += count;
178
+ if (this.currentJob)
179
+ this.createdInJobCount += count;
180
+ }
166
181
  /**
167
182
  * Register an item created during the job
168
183
  */
@@ -276,10 +291,10 @@ if (app.historyManager) {
276
291
  activeJob: this.hasActiveJob(),
277
292
  currentJobId: this.currentJob?.jobId ?? null,
278
293
  currentJobDuration: this.currentJob ? Date.now() - this.currentJob.startTime : null,
279
- itemsInCurrentJob: this.currentJob?.itemsCreated.length ?? 0,
294
+ itemsInCurrentJob: Math.max(this.currentJob?.itemsCreated.length ?? 0, this.currentJob ? this.createdInJobCount : 0),
280
295
  codeQueueSize: this.getQueueSize(),
281
296
  completedJobs,
282
- totalItemsCreated: totalItemsCreated + (this.currentJob?.itemsCreated.length ?? 0),
297
+ totalItemsCreated: Math.max(totalItemsCreated + (this.currentJob?.itemsCreated.length ?? 0), this.createdOutsideIds),
283
298
  };
284
299
  }
285
300
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/agent/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/agent/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,sDAAsD;AACtD,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAmB;IACtB,UAAU,GAAsB,IAAI,CAAC;IACrC,UAAU,GAAgB,EAAE,CAAC;IAErC;;OAEG;IACK,aAAa;QACnB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,gBAAgB,EAAE,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,UAAsB,EAAE;QAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC3E,oCAAoC;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,UAAU,GAAG;YAChB,KAAK;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE,EAAE;YACpB,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,aAAa;YAC3D,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,IAAI;SAChB,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjG,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;QAE5C,MAAM,MAAM,GAAc;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ;YACR,YAAY,EAAE,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;YACnC,gBAAgB,EAAE,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC;SAC5C,CAAC;QAEF,mBAAmB;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7B,oBAAoB;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,KAAK,KAAK,QAAQ,OAAO,GAAG,CAAC,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC;QAE1G,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAExC,yDAAyD;QACzD,MAAM,YAAY,GAAG;;;;;;EAMvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,CAAS,EAAE,EAAE,CAAC;mBACtB,CAAC,GAAG,CAAC;;qBAEH,CAAC;UACZ,IAAI;;+BAEiB,CAAC,mCAAmC,CAAC;mBACjD,CAAC,cAAc,CAAC;+BACJ,CAAC;;;+BAGD,CAAC;;;CAG/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;KAOR,CAAC,IAAI,EAAE,CAAC;QAET,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACK,iBAAiB,GAAG,CAAC,CAAC;IACtB,iBAAiB,GAAG,CAAC,CAAC;IAC9B,gBAAgB,CAAC,KAAa;QAC5B,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAc;QACzB,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAAkB;QACjC,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,EAAE,gBAAgB,IAAI,YAAY,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAAyC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE1C,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,WAAW;gBACd,OAAO,KAAK,CAAC,CAAC,+CAA+C;YAC/D,KAAK,OAAO;gBACV,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,aAAa,CAAC;YAC3D,KAAK,UAAU;gBACb,OAAO,MAAM,KAAK,aAAa,CAAC;YAClC;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,UAAwB,EAAE;QAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,kBAAkB;QAClB,KAAK,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;KAsBV,CAAC,IAAI,EAAE,CAAC,CAAC;QAEV,sCAAsC;QACtC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC;;qBAEI,OAAO,CAAC,YAAY;OAClC,CAAC,IAAI,EAAE,CAAC,CAAC;QACZ,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC;;0BAES,OAAO,CAAC,eAAe;OAC1C,CAAC,IAAI,EAAE,CAAC,CAAC;QACZ,CAAC;QAED,qBAAqB;QACrB,KAAK,CAAC,IAAI,CAAC;;;;;;KAMV,CAAC,IAAI,EAAE,CAAC,CAAC;QAEV,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,QAAQ;QASN,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEjG,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;YAC9B,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,IAAI;YAC5C,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACnF,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACpH,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE;YAClC,aAAa;YACb,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC;SACrH,CAAC;IACJ,CAAC;CACF;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,IAAI,sBAAsB,GAA+B,IAAI,CAAC;AAE9D;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,sBAAsB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,sBAAsB,EAAE,CAAC;QAC3B,IAAI,sBAAsB,CAAC,YAAY,EAAE,EAAE,CAAC;YAC1C,sBAAsB,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,sBAAsB,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IACD,sBAAsB,GAAG,IAAI,CAAC;AAChC,CAAC"}
@@ -4,6 +4,11 @@
4
4
  * Coordinates asset searching, downloading, and caching across multiple repositories.
5
5
  */
6
6
  import { AssetRepository, AssetResult, AssetMetadata, AssetCacheEntry } from './types.js';
7
+ /**
8
+ * How one repository's search ended. 'timeout' and 'error' sources are
9
+ * reported by name rather than silently contributing zero results.
10
+ */
11
+ export type AssetSourceStatus = 'ok' | 'timeout' | 'error';
7
12
  /**
8
13
  * Asset Manager configuration
9
14
  */
@@ -15,13 +20,20 @@ export interface AssetManagerConfig {
15
20
  /** Maximum cache size in MB (default: 100) */
16
21
  maxCacheSizeMB?: number;
17
22
  /** Repositories to enable (default: all) */
18
- repositories?: ('svgrepo' | 'openclipart' | 'iconify' | 'fontawesome')[];
23
+ repositories?: ('iconify' | 'fontawesome')[];
19
24
  }
20
25
  /**
21
26
  * Asset Manager
22
27
  *
23
28
  * Provides unified interface for searching and downloading assets from multiple repositories.
24
29
  */
30
+ /**
31
+ * Removed in 1.6.19. SVGRepo answered every request 429 (it blocks automated
32
+ * clients) and OpenClipart's search/json endpoint stopped answering, so both
33
+ * returned nothing; until 25ece7c they did it silently, as "0 results".
34
+ */
35
+ export declare const REMOVED_REPOSITORIES: readonly string[];
36
+ export declare const REMOVED_REPOSITORY_REASON = "SVGRepo and OpenClipart were removed in 1.6.19 because neither answers automated searches any more.";
25
37
  export declare class AssetManager {
26
38
  private repositories;
27
39
  private cache;
@@ -39,6 +51,21 @@ export declare class AssetManager {
39
51
  * @param limit Maximum results per repository
40
52
  */
41
53
  search(query: string, repository?: string, limit?: number): Promise<AssetResult[]>;
54
+ /**
55
+ * Search, and say how each queried repository ended.
56
+ *
57
+ * Repositories are queried in parallel, each bounded by SOURCE_TIMEOUT_MS;
58
+ * the results of the ones that answered in time are returned. A single
59
+ * named repository that times out or fails throws, as before.
60
+ */
61
+ searchWithStatus(query: string, repository?: string, limit?: number): Promise<{
62
+ results: AssetResult[];
63
+ sources: Record<string, AssetSourceStatus>;
64
+ }>;
65
+ /**
66
+ * One repository's search, bounded by SOURCE_TIMEOUT_MS. Never throws.
67
+ */
68
+ private searchOne;
42
69
  /**
43
70
  * Download asset SVG content
44
71
  *
@@ -1 +1 @@
1
- {"version":3,"file":"asset-manager.d.ts","sourceRoot":"","sources":["../../src/assets/asset-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM1F;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;CAC1E;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,GAAE,kBAAuB;IAuB3C;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI;IAIrD;;;;;;OAMG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAc,EAC1B,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC;IA8BzB;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC;IAqClF;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAIlD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB;CAMF;AAKD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAKzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
1
+ {"version":3,"file":"asset-manager.d.ts","sourceRoot":"","sources":["../../src/assets/asset-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI1F;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAS3D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;CAC9C;AAED;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAA+B,CAAC;AAClF,eAAO,MAAM,yBAAyB,wGAAwG,CAAC;AAE/I,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,GAAE,kBAAuB;IAiB3C;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI;IAIrD;;;;;;OAMG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAc,EAC1B,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzB;;;;;;OAMG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAc,EAC1B,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;KAAE,CAAC;IA8BlF;;OAEG;YACW,SAAS;IAyBvB;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC;IAwClF;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAIlD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB;CAMF;AAKD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAKzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -3,15 +3,26 @@
3
3
  *
4
4
  * Coordinates asset searching, downloading, and caching across multiple repositories.
5
5
  */
6
- import { createSVGRepoAdapter } from './repositories/svgrepo.js';
7
- import { createOpenClipartAdapter } from './repositories/openclipart.js';
8
6
  import { createIconifyAdapter } from './repositories/iconify.js';
9
7
  import { createFontAwesomeAdapter } from './repositories/fontawesome.js';
8
+ /**
9
+ * Upper bound on one repository's search. The adapters' fetch() calls carry no
10
+ * timeout of their own, so one stalled connection used to hold the whole
11
+ * aggregated search open for tens of seconds.
12
+ */
13
+ const SOURCE_TIMEOUT_MS = 4000;
10
14
  /**
11
15
  * Asset Manager
12
16
  *
13
17
  * Provides unified interface for searching and downloading assets from multiple repositories.
14
18
  */
19
+ /**
20
+ * Removed in 1.6.19. SVGRepo answered every request 429 (it blocks automated
21
+ * clients) and OpenClipart's search/json endpoint stopped answering, so both
22
+ * returned nothing; until 25ece7c they did it silently, as "0 results".
23
+ */
24
+ export const REMOVED_REPOSITORIES = ['svgrepo', 'openclipart'];
25
+ export const REMOVED_REPOSITORY_REASON = 'SVGRepo and OpenClipart were removed in 1.6.19 because neither answers automated searches any more.';
15
26
  export class AssetManager {
16
27
  repositories = new Map();
17
28
  cache = new Map();
@@ -21,15 +32,9 @@ export class AssetManager {
21
32
  cacheDir: config.cacheDir || '.pinepaper-cache/assets',
22
33
  enableCache: config.enableCache ?? true,
23
34
  maxCacheSizeMB: config.maxCacheSizeMB || 100,
24
- repositories: config.repositories || ['svgrepo', 'openclipart', 'iconify', 'fontawesome'],
35
+ repositories: config.repositories || ['iconify', 'fontawesome'],
25
36
  };
26
37
  // Register default repositories based on config
27
- if (this.config.repositories?.includes('svgrepo')) {
28
- this.registerRepository(createSVGRepoAdapter());
29
- }
30
- if (this.config.repositories?.includes('openclipart')) {
31
- this.registerRepository(createOpenClipartAdapter());
32
- }
33
38
  if (this.config.repositories?.includes('iconify')) {
34
39
  this.registerRepository(createIconifyAdapter());
35
40
  }
@@ -51,32 +56,64 @@ export class AssetManager {
51
56
  * @param limit Maximum results per repository
52
57
  */
53
58
  async search(query, repository = 'all', limit = 10) {
54
- const results = [];
59
+ return (await this.searchWithStatus(query, repository, limit)).results;
60
+ }
61
+ /**
62
+ * Search, and say how each queried repository ended.
63
+ *
64
+ * Repositories are queried in parallel, each bounded by SOURCE_TIMEOUT_MS;
65
+ * the results of the ones that answered in time are returned. A single
66
+ * named repository that times out or fails throws, as before.
67
+ */
68
+ async searchWithStatus(query, repository = 'all', limit = 10) {
69
+ let repos;
55
70
  if (repository === 'all') {
56
- // Search all repositories
57
- for (const [_, repo] of this.repositories) {
58
- try {
59
- const repoResults = await repo.search(query, limit);
60
- results.push(...repoResults);
61
- }
62
- catch (error) {
63
- console.error(`[AssetManager] Error searching ${repo.name}:`, error);
64
- // Continue with other repositories
65
- }
66
- }
71
+ repos = Array.from(this.repositories.values());
67
72
  }
68
73
  else {
69
- // Search specific repository
70
74
  const repo = this.repositories.get(repository);
71
75
  if (!repo) {
72
76
  throw new Error(`Repository '${repository}' not found`);
73
77
  }
74
- const repoResults = await repo.search(query, limit);
75
- results.push(...repoResults);
78
+ repos = [repo];
79
+ }
80
+ const outcomes = await Promise.all(repos.map((repo) => this.searchOne(repo, query, limit)));
81
+ const results = [];
82
+ const sources = {};
83
+ for (const outcome of outcomes) {
84
+ sources[outcome.name] = outcome.status;
85
+ results.push(...outcome.results);
86
+ }
87
+ if (repository !== 'all' && sources[repository] !== 'ok') {
88
+ throw new Error(`Repository '${repository}' search ${sources[repository] === 'timeout' ? `timed out after ${SOURCE_TIMEOUT_MS}ms` : 'failed'}`);
76
89
  }
77
90
  // Sort by relevance (for now, just return as-is)
78
91
  // In production, implement relevance scoring
79
- return results.slice(0, limit);
92
+ return { results: results.slice(0, limit), sources };
93
+ }
94
+ /**
95
+ * One repository's search, bounded by SOURCE_TIMEOUT_MS. Never throws.
96
+ */
97
+ async searchOne(repo, query, limit) {
98
+ let timer;
99
+ const timeout = new Promise((resolve) => {
100
+ timer = setTimeout(() => resolve('timeout'), SOURCE_TIMEOUT_MS);
101
+ });
102
+ try {
103
+ const outcome = await Promise.race([repo.search(query, limit), timeout]);
104
+ if (outcome === 'timeout') {
105
+ console.error(`[AssetManager] ${repo.name} did not answer within ${SOURCE_TIMEOUT_MS}ms`);
106
+ return { name: repo.name, status: 'timeout', results: [] };
107
+ }
108
+ return { name: repo.name, status: 'ok', results: outcome };
109
+ }
110
+ catch (error) {
111
+ console.error(`[AssetManager] Error searching ${repo.name}:`, error);
112
+ return { name: repo.name, status: 'error', results: [] };
113
+ }
114
+ finally {
115
+ clearTimeout(timer);
116
+ }
80
117
  }
81
118
  /**
82
119
  * Download asset SVG content
@@ -98,6 +135,9 @@ export class AssetManager {
98
135
  const parts = assetId.split('_');
99
136
  const repositoryName = parts[0];
100
137
  const repository = this.repositories.get(repositoryName);
138
+ if (!repository && REMOVED_REPOSITORIES.includes(repositoryName)) {
139
+ throw new Error(`${repositoryName} assets can no longer be imported: ${REMOVED_REPOSITORY_REASON} Search again; results now come from iconify and fontawesome.`);
140
+ }
101
141
  if (!repository) {
102
142
  throw new Error(`Repository '${repositoryName}' not found in asset ID: ${assetId}`);
103
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"asset-manager.js","sourceRoot":"","sources":["../../src/assets/asset-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset-manager.js","sourceRoot":"","sources":["../../src/assets/asset-manager.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  /**
2
2
  * Assets Module
3
3
  *
4
- * Asset fetching from open SVG repositories (SVGRepo, OpenClipart, Iconify, FontAwesome)
4
+ * Asset fetching from open SVG repositories (Iconify, FontAwesome)
5
5
  */
6
6
  export * from './types.js';
7
7
  export * from './asset-manager.js';
8
- export * from './repositories/svgrepo.js';
9
- export * from './repositories/openclipart.js';
10
8
  export * from './repositories/iconify.js';
11
9
  export * from './repositories/fontawesome.js';
12
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
@@ -1,12 +1,10 @@
1
1
  /**
2
2
  * Assets Module
3
3
  *
4
- * Asset fetching from open SVG repositories (SVGRepo, OpenClipart, Iconify, FontAwesome)
4
+ * Asset fetching from open SVG repositories (Iconify, FontAwesome)
5
5
  */
6
6
  export * from './types.js';
7
7
  export * from './asset-manager.js';
8
- export * from './repositories/svgrepo.js';
9
- export * from './repositories/openclipart.js';
10
8
  export * from './repositories/iconify.js';
11
9
  export * from './repositories/fontawesome.js';
12
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}