studiograph 1.3.48-next.275 → 1.3.48-next.277

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 (187) hide show
  1. package/dist/agent/agent-pool.d.ts +0 -10
  2. package/dist/agent/agent-pool.js +0 -16
  3. package/dist/agent/agent-pool.js.map +1 -1
  4. package/dist/cli/commands/deploy.js +3 -3
  5. package/dist/core/artifact-bundle.d.ts +69 -0
  6. package/dist/core/artifact-bundle.js +305 -0
  7. package/dist/core/artifact-bundle.js.map +1 -0
  8. package/dist/core/artifact-export.d.ts +83 -0
  9. package/dist/core/artifact-export.js +1567 -0
  10. package/dist/core/artifact-export.js.map +1 -0
  11. package/dist/core/artifact-frame-selectors.d.ts +42 -0
  12. package/dist/core/artifact-frame-selectors.js +65 -0
  13. package/dist/core/artifact-frame-selectors.js.map +1 -0
  14. package/dist/core/artifact-paged-css.d.ts +64 -0
  15. package/dist/core/artifact-paged-css.js +253 -0
  16. package/dist/core/artifact-paged-css.js.map +1 -0
  17. package/dist/core/field-library.d.ts +62 -0
  18. package/dist/core/field-library.js +129 -0
  19. package/dist/core/field-library.js.map +1 -0
  20. package/dist/core/validation.d.ts +0 -2
  21. package/dist/core/validation.js +0 -9
  22. package/dist/core/validation.js.map +1 -1
  23. package/dist/mcp/comment-virtual-entity.d.ts +36 -0
  24. package/dist/mcp/comment-virtual-entity.js +71 -0
  25. package/dist/mcp/comment-virtual-entity.js.map +1 -0
  26. package/dist/mcp/oauth-registry.d.ts +62 -0
  27. package/dist/mcp/oauth-registry.js +85 -0
  28. package/dist/mcp/oauth-registry.js.map +1 -0
  29. package/dist/server/index.js +0 -32
  30. package/dist/server/index.js.map +1 -1
  31. package/dist/server/routes/field-library-api.d.ts +28 -0
  32. package/dist/server/routes/field-library-api.js +126 -0
  33. package/dist/server/routes/field-library-api.js.map +1 -0
  34. package/dist/server/routes/import-batch.d.ts +24 -0
  35. package/dist/server/routes/import-batch.js +33 -0
  36. package/dist/server/routes/import-batch.js.map +1 -0
  37. package/dist/server/routes/insights-api.js +0 -12
  38. package/dist/server/routes/insights-api.js.map +1 -1
  39. package/dist/services/artifact-inspect-metadata.d.ts +21 -0
  40. package/dist/services/artifact-inspect-metadata.js +66 -0
  41. package/dist/services/artifact-inspect-metadata.js.map +1 -0
  42. package/dist/services/asset-upload-service.d.ts +56 -0
  43. package/dist/services/asset-upload-service.js +200 -0
  44. package/dist/services/asset-upload-service.js.map +1 -0
  45. package/dist/services/bookmark-import-service.d.ts +49 -0
  46. package/dist/services/bookmark-import-service.js +250 -0
  47. package/dist/services/bookmark-import-service.js.map +1 -0
  48. package/dist/services/pdf-raster-service.js +15 -3
  49. package/dist/services/pdf-raster-service.js.map +1 -1
  50. package/dist/web/_app/immutable/assets/{0.B8rPC4xg.css → 0.EQ13aeT7.css} +1 -1
  51. package/dist/web/_app/immutable/assets/2.D-t-UF92.css +1 -0
  52. package/dist/web/_app/immutable/assets/3.NwBs3e5P.css +1 -0
  53. package/dist/web/_app/immutable/assets/4.BS2tc0bg.css +1 -0
  54. package/dist/web/_app/immutable/assets/{6.JPVpkzLZ.css → 6.qYwAAyw6.css} +1 -1
  55. package/dist/web/_app/immutable/assets/{BulkActionsBar.CXSM7tO7.css → BulkActionsBar.C7rAqpQH.css} +1 -1
  56. package/dist/web/_app/immutable/assets/{GalleryView.Cqu3-wtr.css → GalleryView.Dmr8-vDv.css} +1 -1
  57. package/dist/web/_app/immutable/assets/Rail.-JBakBWu.css +1 -0
  58. package/dist/web/_app/immutable/assets/WorkspaceView.CONYOyXk.css +1 -0
  59. package/dist/web/_app/immutable/chunks/{DLFxzom2.js → -MYqXlc3.js} +1 -1
  60. package/dist/web/_app/immutable/chunks/{S6tX02Tk2.js → 0ZPKyycn2.js} +1 -1
  61. package/dist/web/_app/immutable/chunks/1_BWKAKA2.js +23 -0
  62. package/dist/web/_app/immutable/chunks/{f4je6_HS.js → 3YDp18G-.js} +1 -1
  63. package/dist/web/_app/immutable/chunks/{D5j65uT2.js → 74rhfDgW.js} +1 -1
  64. package/dist/web/_app/immutable/chunks/{VE5_RKLz2.js → 7gF1t8ee2.js} +1 -1
  65. package/dist/web/_app/immutable/chunks/{BUNY8_SF2.js → B00K2agY2.js} +1 -1
  66. package/dist/web/_app/immutable/chunks/{DgvSQnNC.js → B1V-QOfo.js} +3 -3
  67. package/dist/web/_app/immutable/chunks/{C6ID-UjV2.js → B2UIPIGl.js} +1 -1
  68. package/dist/web/_app/immutable/chunks/B2cjR0rG.js +83 -0
  69. package/dist/web/_app/immutable/chunks/{C_swMLB1.js → B4IwwfPk.js} +1 -1
  70. package/dist/web/_app/immutable/chunks/{9UrMYptO.js → B5TMDcGh.js} +1 -1
  71. package/dist/web/_app/immutable/chunks/{C2a5_T__2.js → BCZNpq4J2.js} +1 -1
  72. package/dist/web/_app/immutable/chunks/{Q8guQ9VN2.js → BmDN_z28.js} +1 -1
  73. package/dist/web/_app/immutable/chunks/{DiRQHWwZ.js → BmYDyPH2.js} +1 -1
  74. package/dist/web/_app/immutable/chunks/BnYohOts2.js +1 -0
  75. package/dist/web/_app/immutable/chunks/{CmPtL-Rn.js → BvyVm7-j.js} +1 -1
  76. package/dist/web/_app/immutable/chunks/BxeOdaUQ.js +1 -0
  77. package/dist/web/_app/immutable/chunks/{BKSPa6HQ.js → C-riI0_G.js} +1 -1
  78. package/dist/web/_app/immutable/chunks/{Bt8cy87j2.js → C1cw6R4R2.js} +1 -1
  79. package/dist/web/_app/immutable/chunks/C45ocJQC2.js +1 -0
  80. package/dist/web/_app/immutable/chunks/{BkL3LYu82.js → C6NiRa4y2.js} +1 -1
  81. package/dist/web/_app/immutable/chunks/C6d9nn3k.js +1 -0
  82. package/dist/web/_app/immutable/chunks/CB-t1Bv-.js +1 -0
  83. package/dist/web/_app/immutable/chunks/CBKoTv65.js +1 -0
  84. package/dist/web/_app/immutable/chunks/CKGHeJzq.js +1 -0
  85. package/dist/web/_app/immutable/chunks/{C9ryRkVa2.js → CKrBRmTC2.js} +1 -1
  86. package/dist/web/_app/immutable/chunks/CL_APTyv.js +1 -0
  87. package/dist/web/_app/immutable/chunks/{B5qWlMWh2.js → CLaT9yq1.js} +2 -2
  88. package/dist/web/_app/immutable/chunks/{BSR-fOIH.js → CMX-4JAz.js} +1 -1
  89. package/dist/web/_app/immutable/chunks/{C1mesUxk.js → CPMqv8PJ.js} +1 -1
  90. package/dist/web/_app/immutable/chunks/{CtJHIejx.js → CX-b8SHv.js} +1 -1
  91. package/dist/web/_app/immutable/chunks/CXPMb3zd.js +1 -0
  92. package/dist/web/_app/immutable/chunks/CX_WuP2f.js +1 -0
  93. package/dist/web/_app/immutable/chunks/{MaKEM0Kn.js → CY_FaG_t.js} +1 -1
  94. package/dist/web/_app/immutable/chunks/CgCz4Fj6.js +1 -0
  95. package/dist/web/_app/immutable/chunks/{DMf4tAIm.js → CkOdE5Bd.js} +1 -1
  96. package/dist/web/_app/immutable/chunks/{CF2gzSXD2.js → CmkjMSvD.js} +1 -1
  97. package/dist/web/_app/immutable/chunks/{DYY0PGvS.js → Crt0quBQ.js} +2 -2
  98. package/dist/web/_app/immutable/chunks/{BiPxBmY4.js → CzeNI3Zb.js} +1 -1
  99. package/dist/web/_app/immutable/chunks/{CcWpAm8L2.js → D5PnviYi2.js} +1 -1
  100. package/dist/web/_app/immutable/chunks/{edl5DARf2.js → D6TJ2R3g2.js} +2 -2
  101. package/dist/web/_app/immutable/chunks/DBGaXAP8.js +1 -0
  102. package/dist/web/_app/immutable/chunks/{BGsDxw5f.js → DEVYWkOJ.js} +1 -1
  103. package/dist/web/_app/immutable/chunks/DO_V9Cgc.js +1 -0
  104. package/dist/web/_app/immutable/chunks/{Mozc9LAu.js → DPI7dnke.js} +3 -3
  105. package/dist/web/_app/immutable/chunks/DZ2Zr5zb.js +1 -0
  106. package/dist/web/_app/immutable/chunks/{BxS1Rd6P.js → DfYMgOVM.js} +1 -1
  107. package/dist/web/_app/immutable/chunks/{DJ61sY6B.js → DgP0Pxes.js} +1 -1
  108. package/dist/web/_app/immutable/chunks/DiiXREv7.js +1 -0
  109. package/dist/web/_app/immutable/chunks/{-GbK1dNr.js → DlfKshOf.js} +1 -1
  110. package/dist/web/_app/immutable/chunks/Dr_twYUI.js +2 -0
  111. package/dist/web/_app/immutable/chunks/{jTFWGcLj.js → DsxcA0N4.js} +1 -1
  112. package/dist/web/_app/immutable/chunks/Dvj33Rn2.js +1 -0
  113. package/dist/web/_app/immutable/chunks/{_4i2u5Wd2.js → DwszDHPe2.js} +2 -2
  114. package/dist/web/_app/immutable/chunks/{Cf3QI6dI2.js → DzUDGwwI.js} +1 -1
  115. package/dist/web/_app/immutable/chunks/{B8qQqCBx.js → G4EqbBPG.js} +1 -1
  116. package/dist/web/_app/immutable/chunks/MLKgHDnw.js +2 -0
  117. package/dist/web/_app/immutable/chunks/{B5-PDGTP.js → MhB3zB5P.js} +1 -1
  118. package/dist/web/_app/immutable/chunks/{DbTLf0R2.js → NJd5Icoh.js} +1 -1
  119. package/dist/web/_app/immutable/chunks/OI1d8FXq2.js +2 -0
  120. package/dist/web/_app/immutable/chunks/{BNq2--8a.js → Oglnp7sm2.js} +1 -1
  121. package/dist/web/_app/immutable/chunks/{zzOOYYJS.js → lQzoCkhJ.js} +1 -1
  122. package/dist/web/_app/immutable/chunks/{DIoIqCLR2.js → s_zoX4Qt2.js} +2 -2
  123. package/dist/web/_app/immutable/chunks/{CExa8hQs.js → wJmm88HB.js} +1 -1
  124. package/dist/web/_app/immutable/chunks/{DUEo40pB2.js → wM0nJ6Ky2.js} +1 -1
  125. package/dist/web/_app/immutable/entry/app.o4VcUjTF.js +2 -0
  126. package/dist/web/_app/immutable/entry/start.D7P9cxBk.js +1 -0
  127. package/dist/web/_app/immutable/nodes/{0.CyY9x1XV.js → 0.DBUXmaRT.js} +2 -2
  128. package/dist/web/_app/immutable/nodes/{1.Du-a9xBx.js → 1.BRJZkeEI.js} +1 -1
  129. package/dist/web/_app/immutable/nodes/{10.CrEeEOkO.js → 10.CpsRP0KH.js} +1 -1
  130. package/dist/web/_app/immutable/nodes/{11.VOPtqNQG.js → 11.CBjGIy87.js} +1 -1
  131. package/dist/web/_app/immutable/nodes/{12.cjhDT3bV.js → 12.C4lUyQel.js} +1 -1
  132. package/dist/web/_app/immutable/nodes/{13.CxNDddcu.js → 13.DL6S5sUM.js} +1 -1
  133. package/dist/web/_app/immutable/nodes/{15.BRkSAZ6Y.js → 15.DMZgT7og.js} +1 -1
  134. package/dist/web/_app/immutable/nodes/{16.DQk9WOSG.js → 16.CY0Tj_zD.js} +1 -1
  135. package/dist/web/_app/immutable/nodes/{18.sCdANB0L.js → 18.CTPruwZH.js} +1 -1
  136. package/dist/web/_app/immutable/nodes/{19.DaeEOcod.js → 19.AkYtItm0.js} +1 -1
  137. package/dist/web/_app/immutable/nodes/2.DChPiuXI.js +124 -0
  138. package/dist/web/_app/immutable/nodes/3.Cg_liNVb.js +6 -0
  139. package/dist/web/_app/immutable/nodes/4.5b8G86Jw.js +16 -0
  140. package/dist/web/_app/immutable/nodes/{5.Dr-NbOFL.js → 5.B-w-VDXU.js} +1 -1
  141. package/dist/web/_app/immutable/nodes/{6.CmXwJAqA.js → 6.cskJ2TNk.js} +1 -1
  142. package/dist/web/_app/immutable/nodes/{7.hp0xS5ax.js → 7.CcpBlipl.js} +1 -1
  143. package/dist/web/_app/immutable/nodes/{8.D60SL9o_.js → 8.Ch0vf4K-.js} +1 -1
  144. package/dist/web/_app/immutable/nodes/{9.BikYccd7.js → 9.BcN6PW_S.js} +1 -1
  145. package/dist/web/_app/version.json +1 -1
  146. package/dist/web/index.html +18 -18
  147. package/package.json +1 -1
  148. package/dist/web/_app/immutable/assets/2.bJqlVFXX.css +0 -1
  149. package/dist/web/_app/immutable/assets/3.j4ElaCLD.css +0 -1
  150. package/dist/web/_app/immutable/assets/4.BLOz0wHY.css +0 -1
  151. package/dist/web/_app/immutable/assets/AgentRunSparkle.CKB3dqsz.css +0 -1
  152. package/dist/web/_app/immutable/assets/Rail.BurgcCXf.css +0 -1
  153. package/dist/web/_app/immutable/assets/WorkspaceView.BjvD3OTy.css +0 -1
  154. package/dist/web/_app/immutable/chunks/2jM_FrdF.js +0 -1
  155. package/dist/web/_app/immutable/chunks/3e54b3S0.js +0 -1
  156. package/dist/web/_app/immutable/chunks/7pkBLE0o.js +0 -23
  157. package/dist/web/_app/immutable/chunks/B7P31uII.js +0 -1
  158. package/dist/web/_app/immutable/chunks/BH8Lm2ff.js +0 -1
  159. package/dist/web/_app/immutable/chunks/BLw5bIbe.js +0 -1
  160. package/dist/web/_app/immutable/chunks/BaEbafZv.js +0 -1
  161. package/dist/web/_app/immutable/chunks/Bo6vsMxZ.js +0 -1
  162. package/dist/web/_app/immutable/chunks/CAM6VKUN2.js +0 -2
  163. package/dist/web/_app/immutable/chunks/CGG26Xmx.js +0 -1
  164. package/dist/web/_app/immutable/chunks/C_vyTCDY.js +0 -1
  165. package/dist/web/_app/immutable/chunks/Ch20ENkw.js +0 -2
  166. package/dist/web/_app/immutable/chunks/CluyiOGC2.js +0 -1
  167. package/dist/web/_app/immutable/chunks/DGayKSDC.js +0 -1
  168. package/dist/web/_app/immutable/chunks/DIro3eQz.js +0 -1
  169. package/dist/web/_app/immutable/chunks/DKtkLJsv2.js +0 -2
  170. package/dist/web/_app/immutable/chunks/DWbRq2tL.js +0 -1
  171. package/dist/web/_app/immutable/chunks/Dm-W1U3E.js +0 -1
  172. package/dist/web/_app/immutable/chunks/DraPqSB5.js +0 -1
  173. package/dist/web/_app/immutable/chunks/DxQ5eC8d.js +0 -1
  174. package/dist/web/_app/immutable/chunks/TVzjLHDP2.js +0 -1
  175. package/dist/web/_app/immutable/chunks/nacCpTNj.js +0 -83
  176. package/dist/web/_app/immutable/entry/app.DD3XVAKo.js +0 -2
  177. package/dist/web/_app/immutable/entry/start.DKq2Li7W.js +0 -1
  178. package/dist/web/_app/immutable/nodes/2.CsnYWs7a.js +0 -124
  179. package/dist/web/_app/immutable/nodes/3.CAPxZgZu.js +0 -6
  180. package/dist/web/_app/immutable/nodes/4.C5P-wyzP.js +0 -16
  181. /package/dist/web/_app/immutable/chunks/{B9KfEsQw.js → B9KfEsQw2.js} +0 -0
  182. /package/dist/web/_app/immutable/chunks/{BO6-nRV92.js → BO6-nRV9.js} +0 -0
  183. /package/dist/web/_app/immutable/chunks/{BEGTD2EL2.js → BuHbdNQt2.js} +0 -0
  184. /package/dist/web/_app/immutable/chunks/{CcWaWbrI.js → CcWaWbrI2.js} +0 -0
  185. /package/dist/web/_app/immutable/chunks/{CsIWxmio.js → CsIWxmio2.js} +0 -0
  186. /package/dist/web/_app/immutable/chunks/{MAYbL-xn.js → MAYbL-xn2.js} +0 -0
  187. /package/dist/web/_app/immutable/chunks/{MtN4vJa0.js → MtN4vJa02.js} +0 -0
@@ -81,17 +81,7 @@ export declare class AgentPool {
81
81
  * no-op). This map is the durable fallback findSessionForAgent checks first.
82
82
  */
83
83
  private activeTurns;
84
- /**
85
- * Optional predicate: returns true for a resolved sessionId that must NOT be
86
- * pruned even when it's beyond the per-user keep budget. Wired by the server
87
- * to the AgentTaskJobStore so a delegated task's session (which a background
88
- * run + crash recovery depend on) is never evicted out from under a live job.
89
- * Unset for CLI/tests → prune behaves exactly as before.
90
- */
91
- private isSessionProtected?;
92
84
  constructor(config: SharedAgentConfig);
93
- /** Install the prune-protection predicate (see {@link isSessionProtected}). */
94
- setSessionProtectedPredicate(fn: (sessionId: string) => boolean): void;
95
85
  /**
96
86
  * Get the current context for a session (used by tool closures).
97
87
  * Returns null user if no context is set.
@@ -34,22 +34,10 @@ export class AgentPool {
34
34
  * no-op). This map is the durable fallback findSessionForAgent checks first.
35
35
  */
36
36
  activeTurns = new Map();
37
- /**
38
- * Optional predicate: returns true for a resolved sessionId that must NOT be
39
- * pruned even when it's beyond the per-user keep budget. Wired by the server
40
- * to the AgentTaskJobStore so a delegated task's session (which a background
41
- * run + crash recovery depend on) is never evicted out from under a live job.
42
- * Unset for CLI/tests → prune behaves exactly as before.
43
- */
44
- isSessionProtected;
45
37
  constructor(config) {
46
38
  this.config = config;
47
39
  this.reapTimer = setInterval(() => this.reap(), REAP_INTERVAL_MS);
48
40
  }
49
- /** Install the prune-protection predicate (see {@link isSessionProtected}). */
50
- setSessionProtectedPredicate(fn) {
51
- this.isSessionProtected = fn;
52
- }
53
41
  /**
54
42
  * Get the current context for a session (used by tool closures).
55
43
  * Returns null user if no context is set.
@@ -532,10 +520,6 @@ export class AgentPool {
532
520
  return;
533
521
  files.sort((a, b) => b.mtime - a.mtime);
534
522
  for (const f of files.slice(keep)) {
535
- // Never prune a session a live job depends on (a delegated task's run +
536
- // its crash recovery). The file name is `<resolvedSessionId>.json`.
537
- if (this.isSessionProtected?.(f.name.replace(/\.json$/, '')))
538
- continue;
539
523
  try {
540
524
  unlinkSync(join(dir, f.name));
541
525
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-pool.js","sourceRoot":"","sources":["../../src/agent/agent-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-pool.js","sourceRoot":"","sources":["../../src/agent/agent-pool.ts"],"names":[],"mappings":"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"}
@@ -361,13 +361,13 @@ deployCommand
361
361
  s.stop('Domain: generate one in Railway dashboard (Settings > Networking > Generate Domain)');
362
362
  }
363
363
  // Connect the Docker image — triggers the first deploy
364
- s.start('Connecting node:20 image and deploying...');
364
+ s.start('Connecting node:24 image and deploying...');
365
365
  await railwayQuery(railwayToken.trim(), `
366
366
  mutation($id: String!, $input: ServiceConnectInput!) {
367
367
  serviceConnect(id: $id, input: $input) { id }
368
368
  }
369
- `, { id: serviceId, input: { image: 'node:20' } });
370
- s.stop('Deploy triggered (node:20)');
369
+ `, { id: serviceId, input: { image: 'node:24' } });
370
+ s.stop('Deploy triggered (node:24)');
371
371
  // Save Railway IDs to workspace config (per-workspace, not global)
372
372
  config.railway = { project_id: projectId, service_id: serviceId, environment_id: envId };
373
373
  const wsConfigPath = join(process.cwd(), '.studiograph', 'workspace.json');
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Shared contract for agent-produced canvas artifacts.
3
+ *
4
+ * V1 is deliberately text-only: HTML, CSS, JS, SVG, JSON, and plain text files.
5
+ * Binary assets and network-dependent files are follow-up work, because this
6
+ * bundle is persisted in chat message metadata and rendered in a sandboxed
7
+ * iframe.
8
+ */
9
+ export declare const ARTIFACT_BUNDLE_SCHEMA_VERSION = 1;
10
+ export declare const ARTIFACT_BUNDLE_MAX_BYTES: number;
11
+ export declare const ARTIFACT_KINDS: readonly ["html", "document", "slides", "social", "app", "custom"];
12
+ export type ArtifactKind = typeof ARTIFACT_KINDS[number];
13
+ export declare const ARTIFACT_VIEWPORT_MODES: readonly ["fixed", "responsive", "paged"];
14
+ export type ArtifactViewportMode = typeof ARTIFACT_VIEWPORT_MODES[number];
15
+ export declare const ARTIFACT_FULLSCREEN_FITS: readonly ["contain", "width", "none"];
16
+ export type ArtifactFullscreenFit = typeof ARTIFACT_FULLSCREEN_FITS[number];
17
+ export declare const ARTIFACT_DISPLAY_BACKGROUNDS: readonly ["neutral", "transparent"];
18
+ export type ArtifactDisplayBackground = typeof ARTIFACT_DISPLAY_BACKGROUNDS[number];
19
+ export declare const ARTIFACT_LIBRARY_KEYS: readonly ["three", "d3", "motion"];
20
+ export type ArtifactLibraryKey = typeof ARTIFACT_LIBRARY_KEYS[number];
21
+ export interface ArtifactDisplayViewport {
22
+ width: number;
23
+ height: number;
24
+ }
25
+ export interface ArtifactDisplayStepperControl {
26
+ selector?: string;
27
+ label?: string;
28
+ }
29
+ export interface ArtifactDisplayControls {
30
+ stepper?: ArtifactDisplayStepperControl;
31
+ reset?: boolean;
32
+ }
33
+ export interface ArtifactViewport {
34
+ width: number;
35
+ height: number;
36
+ mode: ArtifactViewportMode;
37
+ }
38
+ export interface ArtifactDisplay {
39
+ fullscreenFit?: ArtifactFullscreenFit;
40
+ background?: ArtifactDisplayBackground;
41
+ fullscreenViewport?: ArtifactDisplayViewport;
42
+ controls?: ArtifactDisplayControls;
43
+ }
44
+ export interface ArtifactSource {
45
+ repo?: string;
46
+ entityType?: string;
47
+ entityId?: string;
48
+ skillId?: string;
49
+ }
50
+ export interface ArtifactBundle {
51
+ schemaVersion: typeof ARTIFACT_BUNDLE_SCHEMA_VERSION;
52
+ artifactId: string;
53
+ title: string;
54
+ kind: ArtifactKind;
55
+ viewport: ArtifactViewport;
56
+ display?: ArtifactDisplay;
57
+ libraries?: ArtifactLibraryKey[];
58
+ files: Record<string, string>;
59
+ entrypoint: string;
60
+ source?: ArtifactSource;
61
+ }
62
+ export interface ArtifactValidationResult {
63
+ ok: boolean;
64
+ bundle?: ArtifactBundle;
65
+ errors: string[];
66
+ byteSize: number;
67
+ }
68
+ export declare function validateArtifactBundle(input: unknown): ArtifactValidationResult;
69
+ export declare function assertArtifactBundle(input: unknown): ArtifactBundle;
@@ -0,0 +1,305 @@
1
+ /**
2
+ * Shared contract for agent-produced canvas artifacts.
3
+ *
4
+ * V1 is deliberately text-only: HTML, CSS, JS, SVG, JSON, and plain text files.
5
+ * Binary assets and network-dependent files are follow-up work, because this
6
+ * bundle is persisted in chat message metadata and rendered in a sandboxed
7
+ * iframe.
8
+ */
9
+ export const ARTIFACT_BUNDLE_SCHEMA_VERSION = 1;
10
+ export const ARTIFACT_BUNDLE_MAX_BYTES = 512 * 1024;
11
+ export const ARTIFACT_KINDS = ['html', 'document', 'slides', 'social', 'app', 'custom'];
12
+ export const ARTIFACT_VIEWPORT_MODES = ['fixed', 'responsive', 'paged'];
13
+ export const ARTIFACT_FULLSCREEN_FITS = ['contain', 'width', 'none'];
14
+ export const ARTIFACT_DISPLAY_BACKGROUNDS = ['neutral', 'transparent'];
15
+ export const ARTIFACT_LIBRARY_KEYS = ['three', 'd3', 'motion'];
16
+ const TEXT_EXTENSIONS = new Set([
17
+ '.html', '.htm', '.css', '.js', '.mjs', '.svg', '.json', '.txt', '.md',
18
+ ]);
19
+ const ID_RE = /^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$/;
20
+ const PATH_RE = /^[a-zA-Z0-9][a-zA-Z0-9._/-]{0,255}$/;
21
+ function isRecord(value) {
22
+ return !!value && typeof value === 'object' && !Array.isArray(value);
23
+ }
24
+ function byteLength(value) {
25
+ return new TextEncoder().encode(JSON.stringify(value)).length;
26
+ }
27
+ function extensionOf(path) {
28
+ const dot = path.lastIndexOf('.');
29
+ return dot === -1 ? '' : path.slice(dot).toLowerCase();
30
+ }
31
+ function isSafePath(path) {
32
+ if (!PATH_RE.test(path))
33
+ return false;
34
+ if (path.includes('..'))
35
+ return false;
36
+ if (path.includes('//'))
37
+ return false;
38
+ if (/^[a-z][a-z0-9+.-]*:/i.test(path))
39
+ return false;
40
+ return true;
41
+ }
42
+ function normalizeString(value) {
43
+ return typeof value === 'string' && value.trim() ? value.trim() : null;
44
+ }
45
+ function inferArtifactLibraries(files) {
46
+ const text = Object.entries(files)
47
+ .filter(([path]) => /\.(html?|m?js|css|svg)$/i.test(path))
48
+ .map(([, content]) => content)
49
+ .join('\n');
50
+ const inferred = [];
51
+ if (/\b(?:window\.)?THREE\b/.test(text) || /\bfrom\s+['"]three(?:\/[^'"]*)?['"]/.test(text)) {
52
+ inferred.push('three');
53
+ }
54
+ if (/\b(?:window\.)?d3\b/.test(text) || /\bfrom\s+['"]d3(?:\/[^'"]*)?['"]/.test(text)) {
55
+ inferred.push('d3');
56
+ }
57
+ if (/\b(?:window\.)?Motion\b/.test(text)
58
+ || /\bmotion\.(?:animate|spring|inView|scroll)\b/.test(text)
59
+ || /\bfrom\s+['"]motion(?:\/[^'"]*)?['"]/.test(text)) {
60
+ inferred.push('motion');
61
+ }
62
+ return inferred;
63
+ }
64
+ export function validateArtifactBundle(input) {
65
+ const errors = [];
66
+ const byteSize = byteLength(input);
67
+ if (byteSize > ARTIFACT_BUNDLE_MAX_BYTES) {
68
+ errors.push(`Artifact bundle exceeds ${ARTIFACT_BUNDLE_MAX_BYTES} bytes`);
69
+ }
70
+ if (!isRecord(input)) {
71
+ return { ok: false, errors: ['Artifact bundle must be an object', ...errors], byteSize };
72
+ }
73
+ if (input.schemaVersion !== ARTIFACT_BUNDLE_SCHEMA_VERSION) {
74
+ errors.push(`schemaVersion must be ${ARTIFACT_BUNDLE_SCHEMA_VERSION}`);
75
+ }
76
+ const artifactId = normalizeString(input.artifactId);
77
+ if (!artifactId || !ID_RE.test(artifactId)) {
78
+ errors.push('artifactId must be a stable alphanumeric id');
79
+ }
80
+ const title = normalizeString(input.title);
81
+ if (!title)
82
+ errors.push('title is required');
83
+ const kind = normalizeString(input.kind);
84
+ if (!kind || !ARTIFACT_KINDS.includes(kind)) {
85
+ errors.push(`kind must be one of: ${ARTIFACT_KINDS.join(', ')}`);
86
+ }
87
+ const viewport = input.viewport;
88
+ let normalizedViewport = null;
89
+ if (!isRecord(viewport)) {
90
+ errors.push('viewport is required');
91
+ }
92
+ else {
93
+ const width = viewport.width;
94
+ const height = viewport.height;
95
+ const mode = viewport.mode;
96
+ if (typeof width !== 'number' || !Number.isFinite(width) || width < 120 || width > 10000) {
97
+ errors.push('viewport.width must be between 120 and 10000');
98
+ }
99
+ if (typeof height !== 'number' || !Number.isFinite(height) || height < 120 || height > 10000) {
100
+ errors.push('viewport.height must be between 120 and 10000');
101
+ }
102
+ if (typeof mode !== 'string' || !ARTIFACT_VIEWPORT_MODES.includes(mode)) {
103
+ errors.push(`viewport.mode must be one of: ${ARTIFACT_VIEWPORT_MODES.join(', ')}`);
104
+ }
105
+ if (typeof width === 'number' && typeof height === 'number' && typeof mode === 'string') {
106
+ normalizedViewport = {
107
+ width: Math.round(width),
108
+ height: Math.round(height),
109
+ mode: mode,
110
+ };
111
+ }
112
+ }
113
+ const entrypoint = normalizeString(input.entrypoint);
114
+ if (!entrypoint || !isSafePath(entrypoint)) {
115
+ errors.push('entrypoint must be a safe relative file path');
116
+ }
117
+ const files = input.files;
118
+ const normalizedFiles = {};
119
+ if (!isRecord(files)) {
120
+ errors.push('files must be an object of text file paths to string contents');
121
+ }
122
+ else {
123
+ const entries = Object.entries(files);
124
+ if (entries.length === 0)
125
+ errors.push('files must contain at least one file');
126
+ for (const [path, content] of entries) {
127
+ if (!isSafePath(path)) {
128
+ errors.push(`file path "${path}" must be a safe relative path`);
129
+ continue;
130
+ }
131
+ const ext = extensionOf(path);
132
+ if (!TEXT_EXTENSIONS.has(ext)) {
133
+ errors.push(`file "${path}" must be a supported text file`);
134
+ }
135
+ if (typeof content !== 'string') {
136
+ errors.push(`file "${path}" must be a string`);
137
+ continue;
138
+ }
139
+ normalizedFiles[path] = content;
140
+ }
141
+ }
142
+ if (entrypoint && !Object.prototype.hasOwnProperty.call(normalizedFiles, entrypoint)) {
143
+ errors.push('entrypoint must exist in files');
144
+ }
145
+ const declaredLibraries = new Set();
146
+ if (input.libraries !== undefined) {
147
+ if (!Array.isArray(input.libraries)) {
148
+ errors.push('libraries must be an array when provided');
149
+ }
150
+ else {
151
+ for (const library of input.libraries) {
152
+ if (typeof library !== 'string' || !ARTIFACT_LIBRARY_KEYS.includes(library)) {
153
+ errors.push(`libraries must contain only: ${ARTIFACT_LIBRARY_KEYS.join(', ')}`);
154
+ continue;
155
+ }
156
+ declaredLibraries.add(library);
157
+ }
158
+ }
159
+ }
160
+ let display;
161
+ if (input.display !== undefined) {
162
+ if (!isRecord(input.display)) {
163
+ errors.push('display must be an object when provided');
164
+ }
165
+ else {
166
+ display = {};
167
+ if (input.display.fullscreenFit !== undefined) {
168
+ if (typeof input.display.fullscreenFit !== 'string'
169
+ || !ARTIFACT_FULLSCREEN_FITS.includes(input.display.fullscreenFit)) {
170
+ errors.push(`display.fullscreenFit must be one of: ${ARTIFACT_FULLSCREEN_FITS.join(', ')}`);
171
+ }
172
+ else {
173
+ display.fullscreenFit = input.display.fullscreenFit;
174
+ }
175
+ }
176
+ if (input.display.background !== undefined) {
177
+ if (typeof input.display.background !== 'string'
178
+ || !ARTIFACT_DISPLAY_BACKGROUNDS.includes(input.display.background)) {
179
+ errors.push(`display.background must be one of: ${ARTIFACT_DISPLAY_BACKGROUNDS.join(', ')}`);
180
+ }
181
+ else {
182
+ display.background = input.display.background;
183
+ }
184
+ }
185
+ if (input.display.fullscreenViewport !== undefined) {
186
+ if (!isRecord(input.display.fullscreenViewport)) {
187
+ errors.push('display.fullscreenViewport must be an object when provided');
188
+ }
189
+ else {
190
+ const width = input.display.fullscreenViewport.width;
191
+ const height = input.display.fullscreenViewport.height;
192
+ if (typeof width !== 'number' || !Number.isFinite(width) || width < 120 || width > 10000) {
193
+ errors.push('display.fullscreenViewport.width must be between 120 and 10000');
194
+ }
195
+ if (typeof height !== 'number' || !Number.isFinite(height) || height < 120 || height > 10000) {
196
+ errors.push('display.fullscreenViewport.height must be between 120 and 10000');
197
+ }
198
+ if (typeof width === 'number' && typeof height === 'number') {
199
+ display.fullscreenViewport = {
200
+ width: Math.round(width),
201
+ height: Math.round(height),
202
+ };
203
+ }
204
+ }
205
+ }
206
+ if (input.display.controls !== undefined) {
207
+ if (!isRecord(input.display.controls)) {
208
+ errors.push('display.controls must be an object when provided');
209
+ }
210
+ else {
211
+ const controls = {};
212
+ let hasControls = false;
213
+ if (input.display.controls.stepper !== undefined) {
214
+ if (!isRecord(input.display.controls.stepper)) {
215
+ errors.push('display.controls.stepper must be an object when provided');
216
+ }
217
+ else {
218
+ const stepper = {};
219
+ if (input.display.controls.stepper.selector !== undefined) {
220
+ const selector = normalizeString(input.display.controls.stepper.selector);
221
+ if (!selector || selector.length > 180) {
222
+ errors.push('display.controls.stepper.selector must be a non-empty string up to 180 characters');
223
+ }
224
+ else {
225
+ stepper.selector = selector;
226
+ }
227
+ }
228
+ if (input.display.controls.stepper.label !== undefined) {
229
+ const label = normalizeString(input.display.controls.stepper.label);
230
+ if (!label || label.length > 40) {
231
+ errors.push('display.controls.stepper.label must be a non-empty string up to 40 characters');
232
+ }
233
+ else {
234
+ stepper.label = label;
235
+ }
236
+ }
237
+ controls.stepper = stepper;
238
+ hasControls = true;
239
+ }
240
+ }
241
+ if (input.display.controls.reset !== undefined) {
242
+ if (typeof input.display.controls.reset !== 'boolean') {
243
+ errors.push('display.controls.reset must be a boolean when provided');
244
+ }
245
+ else {
246
+ controls.reset = input.display.controls.reset;
247
+ hasControls = true;
248
+ }
249
+ }
250
+ if (hasControls)
251
+ display.controls = controls;
252
+ }
253
+ }
254
+ if (Object.keys(display).length === 0)
255
+ display = undefined;
256
+ }
257
+ }
258
+ let source;
259
+ if (input.source !== undefined) {
260
+ if (!isRecord(input.source)) {
261
+ errors.push('source must be an object when provided');
262
+ }
263
+ else {
264
+ source = {};
265
+ for (const key of ['repo', 'entityType', 'entityId', 'skillId']) {
266
+ if (input.source[key] !== undefined) {
267
+ const value = normalizeString(input.source[key]);
268
+ if (!value)
269
+ errors.push(`source.${key} must be a non-empty string`);
270
+ else
271
+ source[key] = value;
272
+ }
273
+ }
274
+ }
275
+ }
276
+ if (errors.length > 0 || !artifactId || !title || !kind || !entrypoint || !normalizedViewport) {
277
+ return { ok: false, errors, byteSize };
278
+ }
279
+ const libraries = Array.from(new Set([...declaredLibraries, ...inferArtifactLibraries(normalizedFiles)]));
280
+ return {
281
+ ok: true,
282
+ errors: [],
283
+ byteSize,
284
+ bundle: {
285
+ schemaVersion: ARTIFACT_BUNDLE_SCHEMA_VERSION,
286
+ artifactId,
287
+ title,
288
+ kind: kind,
289
+ viewport: normalizedViewport,
290
+ ...(display ? { display } : {}),
291
+ ...(libraries.length > 0 ? { libraries } : {}),
292
+ files: normalizedFiles,
293
+ entrypoint,
294
+ ...(source ? { source } : {}),
295
+ },
296
+ };
297
+ }
298
+ export function assertArtifactBundle(input) {
299
+ const result = validateArtifactBundle(input);
300
+ if (!result.ok || !result.bundle) {
301
+ throw new Error(result.errors.join('; ') || 'Invalid artifact bundle');
302
+ }
303
+ return result.bundle;
304
+ }
305
+ //# sourceMappingURL=artifact-bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-bundle.js","sourceRoot":"","sources":["../../src/core/artifact-bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEpD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;AAGjG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAU,CAAC;AAGjF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAG9E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,SAAS,EAAE,aAAa,CAAU,CAAC;AAGhF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAU,CAAC;AA0DxE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;CACvE,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,qCAAqC,CAAC;AACpD,MAAM,OAAO,GAAG,qCAAqC,CAAC;AAEtD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AAChE,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA6B;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5F,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,IACE,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;WACjC,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC;WACzD,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,EACpD,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,QAAQ,GAAG,yBAAyB,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,2BAA2B,yBAAyB,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,mCAAmC,EAAE,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3F,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,KAAK,8BAA8B,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,yBAAyB,8BAA8B,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAoB,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,wBAAwB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,IAAI,kBAAkB,GAA4B,IAAI,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;YACzF,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;YAC7F,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAA4B,CAAC,EAAE,CAAC;YAChG,MAAM,CAAC,IAAI,CAAC,iCAAiC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxF,kBAAkB,GAAG;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC1B,IAAI,EAAE,IAA4B;aACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC9E,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,gCAAgC,CAAC,CAAC;gBAChE,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,iCAAiC,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,oBAAoB,CAAC,CAAC;gBAC/C,SAAS;YACX,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAsB,CAAC;IACxD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAA6B,CAAC,EAAE,CAAC;oBAClG,MAAM,CAAC,IAAI,CAAC,gCAAgC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAChF,SAAS;gBACX,CAAC;gBACD,iBAAiB,CAAC,GAAG,CAAC,OAA6B,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAoC,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9C,IACE,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,QAAQ;uBAC5C,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,aAAsC,CAAC,EAC3F,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,yCAAyC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9F,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,aAAsC,CAAC;gBAC/E,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC3C,IACE,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ;uBACzC,CAAC,4BAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,UAAuC,CAAC,EAChG,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,sCAAsC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/F,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAuC,CAAC;gBAC7E,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAChD,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;oBACrD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC;oBACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;wBACzF,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;oBAChF,CAAC;oBACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;wBAC7F,MAAM,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;oBACjF,CAAC;oBACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC5D,OAAO,CAAC,kBAAkB,GAAG;4BAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;4BACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;yBAC3B,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAA4B,EAAE,CAAC;oBAC7C,IAAI,WAAW,GAAG,KAAK,CAAC;oBACxB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC9C,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;wBAC1E,CAAC;6BAAM,CAAC;4BACN,MAAM,OAAO,GAAkC,EAAE,CAAC;4BAClD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gCAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gCAC1E,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oCACvC,MAAM,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;gCACnG,CAAC;qCAAM,CAAC;oCACN,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;gCAC9B,CAAC;4BACH,CAAC;4BACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gCACvD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCACpE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oCAChC,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;gCAC/F,CAAC;qCAAM,CAAC;oCACN,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gCACxB,CAAC;4BACH,CAAC;4BACD,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;4BAC3B,WAAW,GAAG,IAAI,CAAC;wBACrB,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC/C,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;4BACtD,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;wBACxE,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC9C,WAAW,GAAG,IAAI,CAAC;wBACrB,CAAC;oBACH,CAAC;oBACD,IAAI,WAAW;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC/C,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,GAAG,SAAS,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,IAAI,MAAkC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAU,EAAE,CAAC;gBACzE,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC,KAAK;wBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,6BAA6B,CAAC,CAAC;;wBAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1G,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,EAAE;QACV,QAAQ;QACR,MAAM,EAAE;YACN,aAAa,EAAE,8BAA8B;YAC7C,UAAU;YACV,KAAK;YACL,IAAI,EAAE,IAAoB;YAC1B,QAAQ,EAAE,kBAAkB;YAC5B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,KAAK,EAAE,eAAe;YACtB,UAAU;YACV,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC"}
@@ -0,0 +1,83 @@
1
+ import type { ArtifactBundle, ArtifactLibraryKey } from './artifact-bundle.js';
2
+ import { type AssetResolution } from './artifact-asset-resolution.js';
3
+ /** The neutral gray the hosted app presents artifacts on. The web stage rule
4
+ * (.artifact-stage[data-view-mode='fullscreen'] in ArtifactEntityView.svelte)
5
+ * must use the same value — a source-sync test pins it. */
6
+ export declare const ARTIFACT_PRESENT_BACKDROP = "#4a4a4a";
7
+ /** Shared dead-band for content-size churn, in px. Single-sourced HERE (core)
8
+ * so the iframe runtime — which interpolates it into its injected reporter
9
+ * script below — and the web host's per-slot recorder (which re-exports this
10
+ * through artifact-view-state.ts) can never drift apart: a tuning change one
11
+ * side silently filtered out would ship as a no-op. */
12
+ export declare const CONTENT_SIZE_DEAD_BAND_PX = 8;
13
+ export type ArtifactExportExtension = 'html' | 'png' | 'pdf';
14
+ /** Where this render runs (eng review D2 — host mode is EXPLICIT):
15
+ * - `iframe`: a live host owns the chrome (selection outlines, zoom/pan,
16
+ * overview scaling, presentation controls). The runtime is interactive and
17
+ * emits its state to the parent via postMessage. The in-app canvas + the
18
+ * public share/present page.
19
+ * - `none`: no host. The downloaded standalone HTML and the headless
20
+ * Playwright render. The runtime owns minimal self-contained chrome (step
21
+ * frames + self-fit), capability-frozen at today's export parity — a fence,
22
+ * not a growth surface. */
23
+ export type ArtifactRenderHost = 'iframe' | 'none';
24
+ export type ArtifactRenderContextName = 'editor' | 'fullscreen' | 'export';
25
+ export type ArtifactCanvasTool = 'pointer' | 'hand';
26
+ export type ArtifactLibrarySourceKey = ArtifactLibraryKey | 'threeCore';
27
+ export type ArtifactLibrarySources = Partial<Record<ArtifactLibrarySourceKey, string>>;
28
+ export declare function artifactExportFilename(bundle: Pick<ArtifactBundle, 'artifactId' | 'title'>, extension?: ArtifactExportExtension): string;
29
+ /** How workspace-asset refs resolve in THIS render — drives both the URL
30
+ * rewrite and the document CSP from one value (see
31
+ * artifact-asset-resolution.ts). */
32
+ export interface ArtifactRenderContext {
33
+ host: ArtifactRenderHost;
34
+ /** The render surface. Drives the `data-artifact-context` attribute + runtime
35
+ * gating. For host `iframe` it defaults to `editor`. For host `none` it may
36
+ * be left undefined — a plain self-contained export with no context chrome
37
+ * (the bare `buildArtifactHtmlExport(bundle)` case). */
38
+ context?: ArtifactRenderContextName;
39
+ tool?: ArtifactCanvasTool;
40
+ assets?: AssetResolution;
41
+ librarySources?: ArtifactLibrarySources;
42
+ /** Base URL for the headless (Playwright) render path so root-relative
43
+ * `/api/assets/...` URLs resolve in a `setContent` document. The CSP's
44
+ * `base-uri` is widened to exactly this origin. Never set on the standalone
45
+ * HTML export — a downloaded file must not phone home. (host: 'none' only) */
46
+ baseHref?: string;
47
+ /** Emit the render-host styles (export-frame flattening, print pagination,
48
+ * in-document present backdrop). The Playwright + standalone-export paths
49
+ * set it; the in-app iframe never does. (host: 'none' only) */
50
+ includeRenderHostStyles?: boolean;
51
+ }
52
+ /**
53
+ * THE single artifact document builder (eng review D2). Every render context —
54
+ * in-app canvas, public share/present page, downloaded standalone HTML, and the
55
+ * headless Playwright render — produces its HTML here, from one set of
56
+ * content-processing helpers and one runtime. `host` selects the document SHAPE
57
+ * (a live-hosted iframe srcdoc vs a self-contained file) and the runtime's
58
+ * capabilities; the asset CSP + URL rewrite come from the one `assets` value.
59
+ */
60
+ export declare function buildArtifactDocument(bundle: ArtifactBundle, ctx: ArtifactRenderContext): string;
61
+ export interface ArtifactHtmlExportOptions {
62
+ context?: 'editor' | 'fullscreen' | 'export';
63
+ /** Base URL for the headless (Playwright) render path so root-relative
64
+ * `/api/assets/...` URLs resolve in a `setContent` document. The CSP's
65
+ * `base-uri` is widened to exactly this origin. Never set on the
66
+ * standalone HTML export — a downloaded file must not phone home. */
67
+ baseHref?: string;
68
+ includeRenderHostStyles?: boolean;
69
+ librarySources?: ArtifactLibrarySources;
70
+ /** How workspace-asset refs resolve in THIS render — drives both the URL
71
+ * rewrite and the document CSP from one value (see
72
+ * artifact-asset-resolution.ts). Headless PNG/PDF passes token mode; the
73
+ * self-contained HTML export passes relative mode. Defaults to none
74
+ * (no asset access). */
75
+ assets?: AssetResolution;
76
+ }
77
+ /**
78
+ * Self-contained HTML export + headless Playwright render. A thin adapter over
79
+ * {@link buildArtifactDocument} with `host: 'none'` — kept for its existing
80
+ * callers (the export route, MCP `export_artifact`, the render service). A
81
+ * bare call (no `context`) yields a plain self-contained file, unchanged.
82
+ */
83
+ export declare function buildArtifactHtmlExport(bundle: ArtifactBundle, options?: ArtifactHtmlExportOptions): string;