@multiplayer-app/sandbox 0.0.31 → 0.0.33-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/dist/agents/content-generator.agent.d.ts +8 -0
  2. package/dist/agents/content-generator.agent.d.ts.map +1 -1
  3. package/dist/agents/content-generator.agent.js +53 -6
  4. package/dist/agents/content-generator.agent.js.map +1 -1
  5. package/dist/agents/html-generator.agent.d.ts +3 -1
  6. package/dist/agents/html-generator.agent.d.ts.map +1 -1
  7. package/dist/agents/html-generator.agent.js +90 -4
  8. package/dist/agents/html-generator.agent.js.map +1 -1
  9. package/dist/agents/markdown-generator.agent.d.ts.map +1 -1
  10. package/dist/agents/markdown-generator.agent.js +5 -10
  11. package/dist/agents/markdown-generator.agent.js.map +1 -1
  12. package/dist/agents/notebook.agent.d.ts.map +1 -1
  13. package/dist/agents/notebook.agent.js +2 -1
  14. package/dist/agents/notebook.agent.js.map +1 -1
  15. package/dist/agents/shared/app-vm.tools.d.ts +4 -0
  16. package/dist/agents/shared/app-vm.tools.d.ts.map +1 -0
  17. package/dist/agents/shared/app-vm.tools.js +105 -0
  18. package/dist/agents/shared/app-vm.tools.js.map +1 -0
  19. package/dist/agents/shared/build-plan.tools.d.ts +5 -0
  20. package/dist/agents/shared/build-plan.tools.d.ts.map +1 -0
  21. package/dist/agents/shared/build-plan.tools.js +176 -0
  22. package/dist/agents/shared/build-plan.tools.js.map +1 -0
  23. package/dist/agents/shared/content-generator-system-prompt.d.ts +3 -2
  24. package/dist/agents/shared/content-generator-system-prompt.d.ts.map +1 -1
  25. package/dist/agents/shared/content-generator-system-prompt.js +41 -24
  26. package/dist/agents/shared/content-generator-system-prompt.js.map +1 -1
  27. package/dist/agents/shared/design-skills.d.ts +48 -0
  28. package/dist/agents/shared/design-skills.d.ts.map +1 -0
  29. package/dist/agents/shared/design-skills.js +230 -0
  30. package/dist/agents/shared/design-skills.js.map +1 -0
  31. package/dist/agents/shared/generate-session-images.tool.d.ts +15 -0
  32. package/dist/agents/shared/generate-session-images.tool.d.ts.map +1 -0
  33. package/dist/agents/shared/generate-session-images.tool.js +98 -0
  34. package/dist/agents/shared/generate-session-images.tool.js.map +1 -0
  35. package/dist/agents/shared/publish-session-artifacts.tool.d.ts +5 -0
  36. package/dist/agents/shared/publish-session-artifacts.tool.d.ts.map +1 -1
  37. package/dist/agents/shared/publish-session-artifacts.tool.js +154 -15
  38. package/dist/agents/shared/publish-session-artifacts.tool.js.map +1 -1
  39. package/dist/agents/shared/session-quality-report.tool.d.ts +7 -0
  40. package/dist/agents/shared/session-quality-report.tool.d.ts.map +1 -0
  41. package/dist/agents/shared/session-quality-report.tool.js +97 -0
  42. package/dist/agents/shared/session-quality-report.tool.js.map +1 -0
  43. package/dist/agents/shared/session-vm-bridge.d.ts +49 -0
  44. package/dist/agents/shared/session-vm-bridge.d.ts.map +1 -0
  45. package/dist/agents/shared/session-vm-bridge.js +9 -0
  46. package/dist/agents/shared/session-vm-bridge.js.map +1 -0
  47. package/dist/agents/shared/update-session-artifacts.tool.d.ts +5 -0
  48. package/dist/agents/shared/update-session-artifacts.tool.d.ts.map +1 -1
  49. package/dist/agents/shared/update-session-artifacts.tool.js +136 -26
  50. package/dist/agents/shared/update-session-artifacts.tool.js.map +1 -1
  51. package/dist/agents/shared/validate-artifact-content.tools.d.ts +4 -0
  52. package/dist/agents/shared/validate-artifact-content.tools.d.ts.map +1 -1
  53. package/dist/agents/shared/validate-artifact-content.tools.js +24 -1
  54. package/dist/agents/shared/validate-artifact-content.tools.js.map +1 -1
  55. package/dist/agents/skills/a11y.skill.d.ts +3 -0
  56. package/dist/agents/skills/a11y.skill.d.ts.map +1 -0
  57. package/dist/agents/skills/a11y.skill.js +23 -0
  58. package/dist/agents/skills/a11y.skill.js.map +1 -0
  59. package/dist/agents/skills/account-skill-loader.d.ts +13 -0
  60. package/dist/agents/skills/account-skill-loader.d.ts.map +1 -0
  61. package/dist/agents/skills/account-skill-loader.js +42 -0
  62. package/dist/agents/skills/account-skill-loader.js.map +1 -0
  63. package/dist/agents/skills/app-scaffold.skill.d.ts +3 -0
  64. package/dist/agents/skills/app-scaffold.skill.d.ts.map +1 -0
  65. package/dist/agents/skills/app-scaffold.skill.js +30 -0
  66. package/dist/agents/skills/app-scaffold.skill.js.map +1 -0
  67. package/dist/agents/skills/copywriting.skill.d.ts +3 -0
  68. package/dist/agents/skills/copywriting.skill.d.ts.map +1 -0
  69. package/dist/agents/skills/copywriting.skill.js +35 -0
  70. package/dist/agents/skills/copywriting.skill.js.map +1 -0
  71. package/dist/agents/skills/custom-skill-repository.d.ts +40 -0
  72. package/dist/agents/skills/custom-skill-repository.d.ts.map +1 -0
  73. package/dist/agents/skills/custom-skill-repository.js +3 -0
  74. package/dist/agents/skills/custom-skill-repository.js.map +1 -0
  75. package/dist/agents/skills/data-viz.skill.d.ts +3 -0
  76. package/dist/agents/skills/data-viz.skill.d.ts.map +1 -0
  77. package/dist/agents/skills/data-viz.skill.js +42 -0
  78. package/dist/agents/skills/data-viz.skill.js.map +1 -0
  79. package/dist/agents/skills/designer.skill.d.ts +3 -0
  80. package/dist/agents/skills/designer.skill.d.ts.map +1 -0
  81. package/dist/agents/skills/designer.skill.js +101 -0
  82. package/dist/agents/skills/designer.skill.js.map +1 -0
  83. package/dist/agents/skills/forms.skill.d.ts +3 -0
  84. package/dist/agents/skills/forms.skill.d.ts.map +1 -0
  85. package/dist/agents/skills/forms.skill.js +37 -0
  86. package/dist/agents/skills/forms.skill.js.map +1 -0
  87. package/dist/agents/skills/index.d.ts +6 -0
  88. package/dist/agents/skills/index.d.ts.map +1 -0
  89. package/dist/agents/skills/index.js +18 -0
  90. package/dist/agents/skills/index.js.map +1 -0
  91. package/dist/agents/skills/interactions.skill.d.ts +3 -0
  92. package/dist/agents/skills/interactions.skill.d.ts.map +1 -0
  93. package/dist/agents/skills/interactions.skill.js +31 -0
  94. package/dist/agents/skills/interactions.skill.js.map +1 -0
  95. package/dist/agents/skills/registry.d.ts +23 -0
  96. package/dist/agents/skills/registry.d.ts.map +1 -0
  97. package/dist/agents/skills/registry.js +75 -0
  98. package/dist/agents/skills/registry.js.map +1 -0
  99. package/dist/agents/skills/skill-injection.d.ts +52 -0
  100. package/dist/agents/skills/skill-injection.d.ts.map +1 -0
  101. package/dist/agents/skills/skill-injection.js +216 -0
  102. package/dist/agents/skills/skill-injection.js.map +1 -0
  103. package/dist/agents/skills/types.d.ts +12 -0
  104. package/dist/agents/skills/types.d.ts.map +1 -0
  105. package/dist/agents/skills/types.js +3 -0
  106. package/dist/agents/skills/types.js.map +1 -0
  107. package/dist/builder-api-config.d.ts +7 -0
  108. package/dist/builder-api-config.d.ts.map +1 -1
  109. package/dist/builder-api-config.js.map +1 -1
  110. package/dist/context.d.ts +11 -0
  111. package/dist/context.d.ts.map +1 -1
  112. package/dist/context.js +19 -0
  113. package/dist/context.js.map +1 -1
  114. package/dist/create-builder-api.d.ts +8 -3
  115. package/dist/create-builder-api.d.ts.map +1 -1
  116. package/dist/create-builder-api.js +20 -0
  117. package/dist/create-builder-api.js.map +1 -1
  118. package/dist/index.d.ts +6 -1
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +7 -1
  121. package/dist/index.js.map +1 -1
  122. package/dist/lib/library/list-library-items.d.ts +2 -2
  123. package/dist/lib/library/list-library-items.d.ts.map +1 -1
  124. package/dist/lib/library/list-library-items.js +49 -7
  125. package/dist/lib/library/list-library-items.js.map +1 -1
  126. package/dist/lib/object-storage/index.d.ts +3 -0
  127. package/dist/lib/object-storage/index.d.ts.map +1 -0
  128. package/dist/lib/object-storage/index.js +19 -0
  129. package/dist/lib/object-storage/index.js.map +1 -0
  130. package/dist/lib/object-storage/keys.d.ts +10 -0
  131. package/dist/lib/object-storage/keys.d.ts.map +1 -0
  132. package/dist/lib/object-storage/keys.js +51 -0
  133. package/dist/lib/object-storage/keys.js.map +1 -0
  134. package/dist/lib/object-storage/s3-object-store.d.ts +14 -0
  135. package/dist/lib/object-storage/s3-object-store.d.ts.map +1 -0
  136. package/dist/lib/object-storage/s3-object-store.js +64 -0
  137. package/dist/lib/object-storage/s3-object-store.js.map +1 -0
  138. package/dist/lib/session-artifacts/hashline-diff-guide.d.ts +1 -1
  139. package/dist/lib/session-artifacts/hashline-diff-guide.d.ts.map +1 -1
  140. package/dist/lib/session-artifacts/hashline-diff-guide.js +9 -5
  141. package/dist/lib/session-artifacts/hashline-diff-guide.js.map +1 -1
  142. package/dist/lib/session-artifacts/parse-hashline-diff.d.ts +13 -0
  143. package/dist/lib/session-artifacts/parse-hashline-diff.d.ts.map +1 -1
  144. package/dist/lib/session-artifacts/parse-hashline-diff.js +72 -0
  145. package/dist/lib/session-artifacts/parse-hashline-diff.js.map +1 -1
  146. package/dist/lib/session-pages/artifact-quality-audit.d.ts +16 -0
  147. package/dist/lib/session-pages/artifact-quality-audit.d.ts.map +1 -0
  148. package/dist/lib/session-pages/artifact-quality-audit.js +298 -0
  149. package/dist/lib/session-pages/artifact-quality-audit.js.map +1 -0
  150. package/dist/lib/session-pages/artifact-storage.d.ts +3 -0
  151. package/dist/lib/session-pages/artifact-storage.d.ts.map +1 -1
  152. package/dist/lib/session-pages/artifact-storage.js +94 -85
  153. package/dist/lib/session-pages/artifact-storage.js.map +1 -1
  154. package/dist/lib/session-pages/audit-session-html.d.ts +23 -0
  155. package/dist/lib/session-pages/audit-session-html.d.ts.map +1 -0
  156. package/dist/lib/session-pages/audit-session-html.js +82 -0
  157. package/dist/lib/session-pages/audit-session-html.js.map +1 -0
  158. package/dist/lib/session-pages/contrast-check.d.ts +25 -0
  159. package/dist/lib/session-pages/contrast-check.d.ts.map +1 -0
  160. package/dist/lib/session-pages/contrast-check.js +290 -0
  161. package/dist/lib/session-pages/contrast-check.js.map +1 -0
  162. package/dist/lib/session-pages/deferred-quality-rules.d.ts +7 -0
  163. package/dist/lib/session-pages/deferred-quality-rules.d.ts.map +1 -0
  164. package/dist/lib/session-pages/deferred-quality-rules.js +25 -0
  165. package/dist/lib/session-pages/deferred-quality-rules.js.map +1 -0
  166. package/dist/lib/session-pages/delete-session-artifact.d.ts.map +1 -1
  167. package/dist/lib/session-pages/delete-session-artifact.js +12 -41
  168. package/dist/lib/session-pages/delete-session-artifact.js.map +1 -1
  169. package/dist/lib/session-pages/delete-session-artifacts.d.ts +0 -6
  170. package/dist/lib/session-pages/delete-session-artifacts.d.ts.map +1 -1
  171. package/dist/lib/session-pages/delete-session-artifacts.js +51 -15
  172. package/dist/lib/session-pages/delete-session-artifacts.js.map +1 -1
  173. package/dist/lib/session-pages/html-artifact-template.d.ts +16 -0
  174. package/dist/lib/session-pages/html-artifact-template.d.ts.map +1 -1
  175. package/dist/lib/session-pages/html-artifact-template.js +166 -10
  176. package/dist/lib/session-pages/html-artifact-template.js.map +1 -1
  177. package/dist/lib/session-pages/index.d.ts +4 -0
  178. package/dist/lib/session-pages/index.d.ts.map +1 -1
  179. package/dist/lib/session-pages/index.js +11 -1
  180. package/dist/lib/session-pages/index.js.map +1 -1
  181. package/dist/lib/session-pages/list-session-artifacts.d.ts.map +1 -1
  182. package/dist/lib/session-pages/list-session-artifacts.js +48 -48
  183. package/dist/lib/session-pages/list-session-artifacts.js.map +1 -1
  184. package/dist/lib/session-pages/read-session-artifacts.d.ts.map +1 -1
  185. package/dist/lib/session-pages/read-session-artifacts.js +4 -26
  186. package/dist/lib/session-pages/read-session-artifacts.js.map +1 -1
  187. package/dist/lib/session-pages/resolve-session-account-id.d.ts +3 -0
  188. package/dist/lib/session-pages/resolve-session-account-id.d.ts.map +1 -0
  189. package/dist/lib/session-pages/resolve-session-account-id.js +31 -0
  190. package/dist/lib/session-pages/resolve-session-account-id.js.map +1 -0
  191. package/dist/lib/session-pages/write-binary-session-artifact.d.ts +12 -0
  192. package/dist/lib/session-pages/write-binary-session-artifact.d.ts.map +1 -0
  193. package/dist/lib/session-pages/write-binary-session-artifact.js +23 -0
  194. package/dist/lib/session-pages/write-binary-session-artifact.js.map +1 -0
  195. package/dist/lib/session-pages/write-session-artifacts.d.ts +1 -2
  196. package/dist/lib/session-pages/write-session-artifacts.d.ts.map +1 -1
  197. package/dist/lib/session-pages/write-session-artifacts.js +12 -1
  198. package/dist/lib/session-pages/write-session-artifacts.js.map +1 -1
  199. package/dist/lib/session-plans/build-plan.d.ts +74 -0
  200. package/dist/lib/session-plans/build-plan.d.ts.map +1 -0
  201. package/dist/lib/session-plans/build-plan.js +165 -0
  202. package/dist/lib/session-plans/build-plan.js.map +1 -0
  203. package/dist/lib/yjs-pending/flush-lock.d.ts +6 -0
  204. package/dist/lib/yjs-pending/flush-lock.d.ts.map +1 -0
  205. package/dist/lib/yjs-pending/flush-lock.js +43 -0
  206. package/dist/lib/yjs-pending/flush-lock.js.map +1 -0
  207. package/dist/lib/yjs-pending/flush-worker.d.ts +5 -0
  208. package/dist/lib/yjs-pending/flush-worker.d.ts.map +1 -0
  209. package/dist/lib/yjs-pending/flush-worker.js +75 -0
  210. package/dist/lib/yjs-pending/flush-worker.js.map +1 -0
  211. package/dist/lib/yjs-pending/yjs-pending-updates-repository.d.ts +22 -0
  212. package/dist/lib/yjs-pending/yjs-pending-updates-repository.d.ts.map +1 -0
  213. package/dist/lib/yjs-pending/yjs-pending-updates-repository.js +3 -0
  214. package/dist/lib/yjs-pending/yjs-pending-updates-repository.js.map +1 -0
  215. package/dist/lib/yjs-pending/yjs-persistence.d.ts +23 -0
  216. package/dist/lib/yjs-pending/yjs-persistence.d.ts.map +1 -0
  217. package/dist/lib/yjs-pending/yjs-persistence.js +222 -0
  218. package/dist/lib/yjs-pending/yjs-persistence.js.map +1 -0
  219. package/dist/realtime/reset-session-artifact-y-docs.d.ts.map +1 -1
  220. package/dist/realtime/reset-session-artifact-y-docs.js +1 -6
  221. package/dist/realtime/reset-session-artifact-y-docs.js.map +1 -1
  222. package/dist/realtime/session-artifact-y-socket-io.d.ts +0 -5
  223. package/dist/realtime/session-artifact-y-socket-io.d.ts.map +1 -1
  224. package/dist/realtime/session-artifact-y-socket-io.js +5 -69
  225. package/dist/realtime/session-artifact-y-socket-io.js.map +1 -1
  226. package/dist/realtime/session-artifact-yjs-store.d.ts +18 -32
  227. package/dist/realtime/session-artifact-yjs-store.d.ts.map +1 -1
  228. package/dist/realtime/session-artifact-yjs-store.js +135 -233
  229. package/dist/realtime/session-artifact-yjs-store.js.map +1 -1
  230. package/dist/routes/sessions.d.ts.map +1 -1
  231. package/dist/routes/sessions.js +26 -6
  232. package/dist/routes/sessions.js.map +1 -1
  233. package/dist/routes/skills.d.ts +2 -0
  234. package/dist/routes/skills.d.ts.map +1 -0
  235. package/dist/routes/skills.js +140 -0
  236. package/dist/routes/skills.js.map +1 -0
  237. package/dist/server.d.ts.map +1 -1
  238. package/dist/server.js +2 -0
  239. package/dist/server.js.map +1 -1
  240. package/package.json +9 -9
  241. package/dist/agents/blocknote.agent.d.ts +0 -6
  242. package/dist/agents/blocknote.agent.d.ts.map +0 -1
  243. package/dist/agents/blocknote.agent.js +0 -18
  244. package/dist/agents/blocknote.agent.js.map +0 -1
  245. package/dist/agents/filingramp-fetch.agent.d.ts +0 -4
  246. package/dist/agents/filingramp-fetch.agent.d.ts.map +0 -1
  247. package/dist/agents/filingramp-fetch.agent.js +0 -195
  248. package/dist/agents/filingramp-fetch.agent.js.map +0 -1
  249. package/dist/agents/knowledge/filingramp-endpoints.d.ts +0 -23
  250. package/dist/agents/knowledge/filingramp-endpoints.d.ts.map +0 -1
  251. package/dist/agents/knowledge/filingramp-endpoints.js +0 -116
  252. package/dist/agents/knowledge/filingramp-endpoints.js.map +0 -1
  253. package/dist/agents/shared/blocknote-system-prompt.d.ts +0 -2
  254. package/dist/agents/shared/blocknote-system-prompt.d.ts.map +0 -1
  255. package/dist/agents/shared/blocknote-system-prompt.js +0 -40
  256. package/dist/agents/shared/blocknote-system-prompt.js.map +0 -1
  257. package/dist/agents/shared/get-latest-session-artifact.tool.d.ts +0 -7
  258. package/dist/agents/shared/get-latest-session-artifact.tool.d.ts.map +0 -1
  259. package/dist/agents/shared/get-latest-session-artifact.tool.js +0 -43
  260. package/dist/agents/shared/get-latest-session-artifact.tool.js.map +0 -1
  261. package/dist/agents/shared/get-session-artifact-content.tool.d.ts +0 -7
  262. package/dist/agents/shared/get-session-artifact-content.tool.d.ts.map +0 -1
  263. package/dist/agents/shared/get-session-artifact-content.tool.js +0 -44
  264. package/dist/agents/shared/get-session-artifact-content.tool.js.map +0 -1
  265. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts +0 -5
  266. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts.map +0 -1
  267. package/dist/agents/shared/list-session-artifact-paths.tool.js +0 -37
  268. package/dist/agents/shared/list-session-artifact-paths.tool.js.map +0 -1
  269. package/dist/lib/ai/agent-ai-service.d.ts +0 -3
  270. package/dist/lib/ai/agent-ai-service.d.ts.map +0 -1
  271. package/dist/lib/ai/agent-ai-service.js +0 -15
  272. package/dist/lib/ai/agent-ai-service.js.map +0 -1
  273. package/dist/lib/ai/ai-error-details.d.ts +0 -13
  274. package/dist/lib/ai/ai-error-details.d.ts.map +0 -1
  275. package/dist/lib/ai/ai-error-details.js +0 -84
  276. package/dist/lib/ai/ai-error-details.js.map +0 -1
  277. package/dist/lib/ai/generate-ai-text.d.ts +0 -12
  278. package/dist/lib/ai/generate-ai-text.d.ts.map +0 -1
  279. package/dist/lib/ai/generate-ai-text.js +0 -105
  280. package/dist/lib/ai/generate-ai-text.js.map +0 -1
  281. package/dist/lib/ai/run-explicit-agent.d.ts +0 -15
  282. package/dist/lib/ai/run-explicit-agent.d.ts.map +0 -1
  283. package/dist/lib/ai/run-explicit-agent.js +0 -30
  284. package/dist/lib/ai/run-explicit-agent.js.map +0 -1
  285. package/dist/lib/notebooks/notebook-sql-client.d.ts +0 -5
  286. package/dist/lib/notebooks/notebook-sql-client.d.ts.map +0 -1
  287. package/dist/lib/notebooks/notebook-sql-client.js +0 -37
  288. package/dist/lib/notebooks/notebook-sql-client.js.map +0 -1
  289. package/dist/lib/notebooks/notebook-sql-schema.d.ts +0 -16
  290. package/dist/lib/notebooks/notebook-sql-schema.d.ts.map +0 -1
  291. package/dist/lib/notebooks/notebook-sql-schema.js +0 -117
  292. package/dist/lib/notebooks/notebook-sql-schema.js.map +0 -1
  293. package/dist/lib/notebooks/notebook-sql.d.ts +0 -9
  294. package/dist/lib/notebooks/notebook-sql.d.ts.map +0 -1
  295. package/dist/lib/notebooks/notebook-sql.js +0 -36
  296. package/dist/lib/notebooks/notebook-sql.js.map +0 -1
  297. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts +0 -3
  298. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts.map +0 -1
  299. package/dist/lib/session-artifacts/apply-hashline-edits.js +0 -25
  300. package/dist/lib/session-artifacts/apply-hashline-edits.js.map +0 -1
  301. package/dist/lib/session-artifacts/artifact-text-edit.d.ts +0 -8
  302. package/dist/lib/session-artifacts/artifact-text-edit.d.ts.map +0 -1
  303. package/dist/lib/session-artifacts/artifact-text-edit.js +0 -23
  304. package/dist/lib/session-artifacts/artifact-text-edit.js.map +0 -1
  305. package/dist/lib/session-artifacts/hashline-tag.d.ts +0 -33
  306. package/dist/lib/session-artifacts/hashline-tag.d.ts.map +0 -1
  307. package/dist/lib/session-artifacts/hashline-tag.js +0 -80
  308. package/dist/lib/session-artifacts/hashline-tag.js.map +0 -1
  309. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts +0 -3
  310. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts.map +0 -1
  311. package/dist/lib/session-pages/inject-preview-error-reporter.js +0 -30
  312. package/dist/lib/session-pages/inject-preview-error-reporter.js.map +0 -1
  313. package/dist/lib/session-pages/read-session-artifact.d.ts +0 -7
  314. package/dist/lib/session-pages/read-session-artifact.d.ts.map +0 -1
  315. package/dist/lib/session-pages/read-session-artifact.js +0 -60
  316. package/dist/lib/session-pages/read-session-artifact.js.map +0 -1
  317. package/dist/lib/session-pages/session-pico-css.d.ts +0 -5
  318. package/dist/lib/session-pages/session-pico-css.d.ts.map +0 -1
  319. package/dist/lib/session-pages/session-pico-css.js +0 -11
  320. package/dist/lib/session-pages/session-pico-css.js.map +0 -1
  321. package/dist/realtime/realtime-auth.d.ts +0 -12
  322. package/dist/realtime/realtime-auth.d.ts.map +0 -1
  323. package/dist/realtime/realtime-auth.js +0 -25
  324. package/dist/realtime/realtime-auth.js.map +0 -1
  325. package/dist/realtime/yjs-account-namespace.d.ts +0 -5
  326. package/dist/realtime/yjs-account-namespace.d.ts.map +0 -1
  327. package/dist/realtime/yjs-account-namespace.js +0 -21
  328. package/dist/realtime/yjs-account-namespace.js.map +0 -1
  329. package/dist/routes/notebooks/sql-execute.d.ts +0 -3
  330. package/dist/routes/notebooks/sql-execute.d.ts.map +0 -1
  331. package/dist/routes/notebooks/sql-execute.js +0 -45
  332. package/dist/routes/notebooks/sql-execute.js.map +0 -1
  333. package/dist/routes/sql.d.ts +0 -2
  334. package/dist/routes/sql.d.ts.map +0 -1
  335. package/dist/routes/sql.js +0 -50
  336. package/dist/routes/sql.js.map +0 -1
@@ -1,4 +1,12 @@
1
1
  import type { AgentConfig } from '@multiplayer-app/ai-agent-types';
2
2
  import type { BuilderApiAgentDeps } from '../builder-api-config';
3
+ /**
4
+ * Parent stop budget. Models otherwise round-robin updateSessionArtifact on
5
+ * every published file ("polish index, then contact, then index…") until the
6
+ * old 16-step cap. Count tool names conservatively from serialized steps.
7
+ */
8
+ export declare function shouldStopContentGenerator({ steps }: {
9
+ steps: unknown[];
10
+ }): boolean;
3
11
  export declare function createContentGeneratorAgent(deps: BuilderApiAgentDeps): AgentConfig;
4
12
  //# sourceMappingURL=content-generator.agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/content-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAOhE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAgClF"}
1
+ {"version":3,"file":"content-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/content-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAUhE;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG,OAAO,CAUnF;AAOD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAqDlF"}
@@ -1,32 +1,76 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shouldStopContentGenerator = shouldStopContentGenerator;
3
4
  exports.createContentGeneratorAgent = createContentGeneratorAgent;
4
5
  const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
6
  const publish_session_artifacts_tool_1 = require("./shared/publish-session-artifacts.tool");
7
+ const app_vm_tools_1 = require("./shared/app-vm.tools");
6
8
  const content_generator_system_prompt_1 = require("./shared/content-generator-system-prompt");
7
9
  const update_session_artifacts_tool_1 = require("./shared/update-session-artifacts.tool");
10
+ const session_quality_report_tool_1 = require("./shared/session-quality-report.tool");
8
11
  const session_pages_1 = require("../lib/session-pages");
9
12
  const agent_context_1 = require("./shared/agent-context");
13
+ const skills_1 = require("./skills");
14
+ /**
15
+ * Parent stop budget. Models otherwise round-robin updateSessionArtifact on
16
+ * every published file ("polish index, then contact, then index…") until the
17
+ * old 16-step cap. Count tool names conservatively from serialized steps.
18
+ */
19
+ function shouldStopContentGenerator({ steps }) {
20
+ if (steps.length >= 6)
21
+ return true;
22
+ const blob = JSON.stringify(steps !== null && steps !== void 0 ? steps : []);
23
+ const updateCalls = countToolMentions(blob, 'updateSessionArtifact');
24
+ const publishCalls = countToolMentions(blob, 'publishSessionArtifacts');
25
+ // After a landing is on disk, at most one follow-up edit pass — not one per file.
26
+ if (updateCalls >= 2)
27
+ return true;
28
+ // Two publish delegations is already past the intended "one ship + one repair" path.
29
+ if (publishCalls >= 2 && updateCalls >= 1)
30
+ return true;
31
+ return false;
32
+ }
33
+ function countToolMentions(blob, toolName) {
34
+ var _a, _b;
35
+ const re = new RegExp(`"(?:name|title)"\\s*:\\s*"${toolName}"`, 'g');
36
+ return (_b = (_a = blob.match(re)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
37
+ }
10
38
  function createContentGeneratorAgent(deps) {
11
39
  return {
12
40
  name: 'content-generator',
13
41
  description: 'Generates and updates session artifacts: HTML pages, optional split CSS/JS, JSON data, and Markdown docs',
14
42
  defaultModel: deps.defaultModel,
15
43
  systemPrompt: content_generator_system_prompt_1.CONTENT_GENERATOR_SYSTEM_PROMPT,
16
- stopWhen: () => false,
44
+ stopWhen: shouldStopContentGenerator,
17
45
  prepareStep: async (options, context) => {
18
- if (options.stepCount > 0) {
19
- return undefined;
20
- }
46
+ var _a;
21
47
  const sessionId = (0, agent_context_1.getRootChatId)(context);
22
48
  if (!sessionId) {
23
49
  return undefined;
24
50
  }
25
- const artifacts = await (0, session_pages_1.listSessionArtifacts)(sessionId);
51
+ const stepCount = (_a = options.stepCount) !== null && _a !== void 0 ? _a : 0;
52
+ const [artifacts, customSkills] = await Promise.all([
53
+ (0, session_pages_1.listSessionArtifacts)(sessionId),
54
+ stepCount === 0 ? (0, skills_1.loadAccountSkills)(context) : Promise.resolve([]),
55
+ ]);
56
+ const customSkillCatalog = customSkills.length
57
+ ? `\nAccount skills (add to the catalog; same-name entries replace built-ins):\n${customSkills
58
+ .map((skill) => `- ${skill.name} — ${skill.description}. Use for: ${skill.whenToUse}`)
59
+ .join('\n')}`
60
+ : '';
61
+ const artifactList = artifacts.length
62
+ ? artifacts.map((artifact) => artifact.path).join(', ')
63
+ : '(none yet)';
64
+ const stopPolish = artifacts.length > 0 && stepCount >= 1
65
+ ? `\nSTOP RULE: HTML already exists (${artifactList}). If the last publish/update returned previewUrl or an updated path, FINISH with a short summary NOW. Do NOT round-robin updateSessionArtifact across every file. Do NOT invent nindex.html / contact.html / data/*.json unless the user asked. At most ONE updateSessionArtifact for a named blocking error — then stop.`
66
+ : '';
26
67
  return {
27
68
  messages: [
28
69
  ...options.messages,
29
- { role: 'system', content: `List of available artifacts: ${artifacts.map((artifact) => artifact.path).join(', ')}` },
70
+ {
71
+ role: 'system',
72
+ content: `Existing session artifacts RIGHT NOW: ${artifactList}. These paths MUST go through updateSessionArtifact — publishing them again always fails. Any path NOT in this list does not exist yet — create it with publishSessionArtifacts, never updateSessionArtifact. No build plan — ship with publish/update directly.${customSkillCatalog}${stopPolish}`,
73
+ },
30
74
  ],
31
75
  };
32
76
  },
@@ -35,6 +79,9 @@ function createContentGeneratorAgent(deps) {
35
79
  { type: ai_agent_types_1.AgentToolType.REQUEST_CLARIFICATION, userConfigurable: true },
36
80
  publish_session_artifacts_tool_1.publishSessionArtifactsSubagentTool,
37
81
  update_session_artifacts_tool_1.updateSessionArtifactsSubagentTool,
82
+ app_vm_tools_1.writeAppFilesTool,
83
+ app_vm_tools_1.runAppCommandTool,
84
+ session_quality_report_tool_1.getSessionQualityReportTool,
38
85
  ],
39
86
  };
40
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"content-generator.agent.js","sourceRoot":"","sources":["../../src/agents/content-generator.agent.ts"],"names":[],"mappings":";;AASA,kEAgCC;AAxCD,oEAA+D;AAE/D,4FAA6F;AAC7F,8FAA0F;AAC1F,0FAA2F;AAC3F,wDAA2D;AAC3D,0DAAsD;AAEtD,SAAgB,2BAA2B,CAAC,IAAyB;IACnE,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,0GAA0G;QAC5G,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,iEAA+B;QAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,OAAO,CAAC,CAAA;YACxC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAA,oCAAoB,EAAC,SAAS,CAAC,CAAA;YACvD,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,QAAQ;oBACnB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gCAAgC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;iBACrH;aACF,CAAA;QACH,CAAC;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,8BAAa,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,8BAAa,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,IAAI,EAAE;YACrE,oEAAmC;YACnC,kEAAkC;SACnC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"content-generator.agent.js","sourceRoot":"","sources":["../../src/agents/content-generator.agent.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
- export { createContentGeneratorAgent, createContentGeneratorAgent as createHtmlGeneratorAgent, } from './content-generator.agent';
1
+ import type { AgentConfig } from '@multiplayer-app/ai-agent-types';
2
+ import type { BuilderApiAgentDeps } from '../builder-api-config';
3
+ export declare function createHtmlGeneratorAgent(deps: BuilderApiAgentDeps): AgentConfig;
2
4
  //# sourceMappingURL=html-generator.agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/html-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,IAAI,wBAAwB,GACxD,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"html-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/html-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAGlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AA0DhE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAwC/E"}
@@ -1,7 +1,93 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createHtmlGeneratorAgent = exports.createContentGeneratorAgent = void 0;
4
- var content_generator_agent_1 = require("./content-generator.agent");
5
- Object.defineProperty(exports, "createContentGeneratorAgent", { enumerable: true, get: function () { return content_generator_agent_1.createContentGeneratorAgent; } });
6
- Object.defineProperty(exports, "createHtmlGeneratorAgent", { enumerable: true, get: function () { return content_generator_agent_1.createContentGeneratorAgent; } });
3
+ exports.createHtmlGeneratorAgent = createHtmlGeneratorAgent;
4
+ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
+ const zod_1 = require("zod");
6
+ const publish_session_artifacts_tool_1 = require("./shared/publish-session-artifacts.tool");
7
+ const validateHtmlInputSchema = zod_1.z.object({
8
+ html: zod_1.z.string().min(1).describe('HTML to validate'),
9
+ });
10
+ function basicHtmlValidation(html) {
11
+ const errors = [];
12
+ const warnings = [];
13
+ if (!html.trim()) {
14
+ errors.push('HTML is empty');
15
+ }
16
+ const openTags = [...html.matchAll(/<([a-z][a-z0-9]*)\b[^>]*(?<!\/)>/gi)];
17
+ const closeTags = [...html.matchAll(/<\/([a-z][a-z0-9]*)\s*>/gi)];
18
+ const stack = [];
19
+ for (const match of openTags) {
20
+ const tag = match[1].toLowerCase();
21
+ if (![
22
+ 'area',
23
+ 'base',
24
+ 'br',
25
+ 'col',
26
+ 'embed',
27
+ 'hr',
28
+ 'img',
29
+ 'input',
30
+ 'link',
31
+ 'meta',
32
+ 'param',
33
+ 'source',
34
+ 'track',
35
+ 'wbr',
36
+ ].includes(tag)) {
37
+ stack.push(tag);
38
+ }
39
+ }
40
+ for (const match of closeTags) {
41
+ const tag = match[1].toLowerCase();
42
+ const last = stack.pop();
43
+ if (last !== tag) {
44
+ warnings.push(`Possible mismatched closing tag </${tag}>`);
45
+ }
46
+ }
47
+ if (stack.length > 0) {
48
+ warnings.push(`Unclosed elements: ${stack.join(', ')}`);
49
+ }
50
+ return { valid: errors.length === 0, warnings, errors };
51
+ }
52
+ function createHtmlGeneratorAgent(deps) {
53
+ return {
54
+ name: 'html-generator',
55
+ description: 'Builds session previews: HTML dashboards, CSS, JavaScript, and data files',
56
+ defaultModel: deps.defaultModel,
57
+ systemPrompt: `You build data dashboards and previews for user data. Every response that produces or updates UI MUST end with publishSessionArtifacts — nothing is saved until you publish.
58
+
59
+ Workflow:
60
+ 1. Generate artifacts — typically index.html, styles.css, script.js, and optional JSON under data/.
61
+ 2. Keep paths relative (no leading slash). Link assets from HTML with relative URLs (./styles.css, ./script.js, ./data/metrics.json).
62
+ 3. Put layout/styling in styles.css and data fetching or rendering in script.js.
63
+ 4. For dashboards: use a shell with sidebar + main, KPI cards (.metrics article), and tables (.data-table).
64
+ 5. Call validateHtml on index.html when markup is non-trivial.
65
+ 6. Always call publishSessionArtifacts in the same turn. Include only files you created or modified in this turn — omit unchanged files; they remain on disk.
66
+ 7. Tell the user the previewUrl from the publish result so they can open App Preview.
67
+
68
+ Base styles are merged into styles.css automatically unless includeBaseStyles is false.`,
69
+ stopWhen: () => false,
70
+ tools: [
71
+ { type: ai_agent_types_1.AgentToolType.WEB_SEARCH, userConfigurable: true },
72
+ { type: ai_agent_types_1.AgentToolType.REQUEST_CLARIFICATION, userConfigurable: true },
73
+ {
74
+ type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
75
+ userConfigurable: true,
76
+ data: {
77
+ title: 'validateHtml',
78
+ needsApproval: false,
79
+ description: 'Run basic structural checks on HTML before publishing',
80
+ inputSchema: validateHtmlInputSchema,
81
+ outputSchema: zod_1.z.object({
82
+ valid: zod_1.z.boolean(),
83
+ warnings: zod_1.z.array(zod_1.z.string()),
84
+ errors: zod_1.z.array(zod_1.z.string()),
85
+ }),
86
+ execute: (input) => basicHtmlValidation(input.html),
87
+ },
88
+ },
89
+ (0, publish_session_artifacts_tool_1.createPublishSessionArtifactsTool)({ needsApproval: false, validateIndexHtml: true }),
90
+ ],
91
+ };
92
+ }
7
93
  //# sourceMappingURL=html-generator.agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-generator.agent.js","sourceRoot":"","sources":["../../src/agents/html-generator.agent.ts"],"names":[],"mappings":";;;AAAA,qEAGkC;AAFhC,sIAAA,2BAA2B,OAAA;AAC3B,mIAAA,2BAA2B,OAA4B"}
1
+ {"version":3,"file":"html-generator.agent.js","sourceRoot":"","sources":["../../src/agents/html-generator.agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/markdown-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAGlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAgEhE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAiDnF"}
1
+ {"version":3,"file":"markdown-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/markdown-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAGlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AA8DhE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CA8CnF"}
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMarkdownGeneratorAgent = createMarkdownGeneratorAgent;
4
4
  const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
5
  const zod_1 = require("zod");
6
- const list_session_artifact_paths_tool_1 = require("./shared/list-session-artifact-paths.tool");
7
6
  const publish_session_artifacts_tool_1 = require("./shared/publish-session-artifacts.tool");
8
- const update_session_artifacts_tool_1 = require("./shared/update-session-artifacts.tool");
9
7
  const validateMarkdownInputSchema = zod_1.z.object({
10
8
  markdown: zod_1.z.string().min(1).describe('Markdown source to validate'),
11
9
  path: zod_1.z
@@ -59,17 +57,16 @@ function createMarkdownGeneratorAgent(deps) {
59
57
  name: 'markdown-generator',
60
58
  description: 'Writes and updates Markdown documentation in the session artifact store',
61
59
  defaultModel: deps.defaultModel,
62
- systemPrompt: `You create and refine Markdown (.md) documents for the active session. New files use publishSessionArtifacts; changes to existing files use updateSessionArtifact.
60
+ systemPrompt: `You create and refine Markdown (.md) documents for the active session. Every response that produces or updates docs MUST end with publishSessionArtifacts nothing is saved until you publish.
63
61
 
64
62
  Workflow:
65
63
  1. Clarify purpose (README, design doc, runbook, release notes, API summary, etc.).
66
64
  2. Write valid GitHub-Flavored Markdown (GFM): headings, lists, tables, fenced code blocks with language tags, links, blockquotes.
67
65
  3. Use session-relative paths without a leading slash, e.g. README.md, docs/architecture.md, notes/todo.md.
68
66
  4. Call validateMarkdown on substantial content before publishing.
69
- 5. New paths: call publishSessionArtifacts with sessionId and only files that do not exist yet.
70
- 6. Existing paths: call updateSessionArtifact with sessionId, path, and a clear instruction.
71
- 7. Set previewPath to your primary doc (e.g. README.md) when publishing markdown-only artifacts.
72
- 8. Summarize what was published or which path was updated (Code tab / file explorer).
67
+ 5. Call publishSessionArtifacts in the same turn. Include only files you created or modified — omit unchanged files; they remain on disk.
68
+ 6. Set previewPath to your primary doc (e.g. README.md) when publishing markdown-only artifacts.
69
+ 7. Summarize what was published and where the user can read it (Code tab / file explorer).
73
70
 
74
71
  Style:
75
72
  - Prefer one H1 per document; use ## / ### for structure.
@@ -97,9 +94,7 @@ Style:
97
94
  execute: (input) => basicMarkdownValidation(input.markdown, input.path),
98
95
  },
99
96
  },
100
- (0, list_session_artifact_paths_tool_1.getListSessionArtifactPathsTool)(),
101
- publish_session_artifacts_tool_1.publishSessionArtifactsSubagentTool,
102
- update_session_artifacts_tool_1.updateSessionArtifactsSubagentTool,
97
+ (0, publish_session_artifacts_tool_1.createPublishSessionArtifactsTool)({ needsApproval: false, validateIndexHtml: false }),
103
98
  ],
104
99
  };
105
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-generator.agent.js","sourceRoot":"","sources":["../../src/agents/markdown-generator.agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-generator.agent.js","sourceRoot":"","sources":["../../src/agents/markdown-generator.agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notebook.agent.d.ts","sourceRoot":"","sources":["../../src/agents/notebook.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAOhE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CA2C1E"}
1
+ {"version":3,"file":"notebook.agent.d.ts","sourceRoot":"","sources":["../../src/agents/notebook.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAOhE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CA4C1E"}
@@ -13,7 +13,8 @@ function createNotebookAgent(deps) {
13
13
  description: 'Reads, searches, and edits the collaborative notebook the user has open, including runnable SQL, code, and chart blocks',
14
14
  defaultModel: deps.defaultModel,
15
15
  systemPrompt: notebook_agent_system_prompt_1.NOTEBOOK_AGENT_SYSTEM_PROMPT,
16
- stopWhen: () => false,
16
+ // Safety net against runaway tool-retry loops.
17
+ stopWhen: ({ steps }) => steps.length >= 64,
17
18
  prepareStep: async (options, context) => {
18
19
  if (options.stepCount > 0) {
19
20
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"notebook.agent.js","sourceRoot":"","sources":["../../src/agents/notebook.agent.ts"],"names":[],"mappings":";;AASA,kDA2CC;AAnDD,oEAA+D;AAE/D,sCAA+C;AAC/C,8EAAuF;AACvF,uFAAmF;AACnF,wFAAoF;AACpF,4DAA8E;AAE9E,SAAgB,mBAAmB,CAAC,IAAyB;IAC3D,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,yHAAyH;QAC3H,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,2DAA4B;QAC1C,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAqB,EAAC,OAAO,CAAC,CAAA;gBACnD,MAAM,QAAQ,GAAG,MAAM,IAAA,uDAA0B,GAAE,CAAC,mBAAmB,CACrE,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,UAAU,CAClB,CAAA;gBACD,MAAM,OAAO,GAAG,IAAA,kCAAY,EAAC,IAAA,wCAAkB,EAAC,QAAQ,CAAC,CAAC,CAAA;gBAC1D,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,OAAO,CAAC,QAAQ;wBACnB;4BACE,IAAI,EAAE,QAAiB;4BACvB,OAAO,EAAE,sDACP,OAAO,CAAC,MAAM,GAAG,CAAC;gCAChB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gCACvF,CAAC,CAAC,kBACN,EAAE;yBACH;qBACF;iBACF,CAAA;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAA,4BAAmB,GAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,0CAA0C,CAAC,CAAA;gBAC/E,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,8BAAa,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,IAAI,EAAE;YACrE,GAAG,8BAAa;SACjB;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"notebook.agent.js","sourceRoot":"","sources":["../../src/agents/notebook.agent.ts"],"names":[],"mappings":";;AASA,kDA4CC;AApDD,oEAA+D;AAE/D,sCAA+C;AAC/C,8EAAuF;AACvF,uFAAmF;AACnF,wFAAoF;AACpF,4DAA8E;AAE9E,SAAgB,mBAAmB,CAAC,IAAyB;IAC3D,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,yHAAyH;QAC3H,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,2DAA4B;QAC1C,+CAA+C;QAC/C,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;QACjE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAqB,EAAC,OAAO,CAAC,CAAA;gBACnD,MAAM,QAAQ,GAAG,MAAM,IAAA,uDAA0B,GAAE,CAAC,mBAAmB,CACrE,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,UAAU,CAClB,CAAA;gBACD,MAAM,OAAO,GAAG,IAAA,kCAAY,EAAC,IAAA,wCAAkB,EAAC,QAAQ,CAAC,CAAC,CAAA;gBAC1D,OAAO;oBACL,QAAQ,EAAE;wBACR,GAAG,OAAO,CAAC,QAAQ;wBACnB;4BACE,IAAI,EAAE,QAAiB;4BACvB,OAAO,EAAE,sDACP,OAAO,CAAC,MAAM,GAAG,CAAC;gCAChB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gCACvF,CAAC,CAAC,kBACN,EAAE;yBACH;qBACF;iBACF,CAAA;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAA,4BAAmB,GAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,0CAA0C,CAAC,CAAA;gBAC/E,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,8BAAa,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,IAAI,EAAE;YACrE,GAAG,8BAAa;SACjB;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AgentTool } from '@multiplayer-app/ai-agent-types';
2
+ export declare const writeAppFilesTool: AgentTool;
3
+ export declare const runAppCommandTool: AgentTool;
4
+ //# sourceMappingURL=app-vm.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-vm.tools.d.ts","sourceRoot":"","sources":["../../../src/agents/shared/app-vm.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAsCnF,eAAO,MAAM,iBAAiB,EAAE,SA4B/B,CAAA;AASD,eAAO,MAAM,iBAAiB,EAAE,SAqC/B,CAAA"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runAppCommandTool = exports.writeAppFilesTool = void 0;
4
+ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
+ const zod_1 = require("zod");
6
+ const context_1 = require("../../context");
7
+ const logger_1 = require("../../logger");
8
+ const agent_context_1 = require("./agent-context");
9
+ const STACKS = ['node', 'python', 'generic'];
10
+ function requireBridgeAndSession(context) {
11
+ const bridge = (0, context_1.getBuilderApiContext)().sessionVmBridge;
12
+ if (!bridge) {
13
+ throw new Error('App workspaces are not available in this deployment — build with session artifacts (publishSessionArtifacts) instead.');
14
+ }
15
+ const sessionId = (0, agent_context_1.getRootChatId)(context);
16
+ if (!sessionId) {
17
+ throw new Error('Session ID is required');
18
+ }
19
+ return { bridge, sessionId };
20
+ }
21
+ const writeAppFilesInputSchema = zod_1.z.object({
22
+ files: zod_1.z
23
+ .array(zod_1.z.object({
24
+ path: zod_1.z.string().min(1).max(500).describe('Workspace-relative path, e.g. index.html, src/main.js, package.json'),
25
+ content: zod_1.z.string().describe('File contents'),
26
+ encoding: zod_1.z.enum(['utf8', 'base64']).optional().describe('base64 for binary files; utf8 default'),
27
+ }))
28
+ .min(1)
29
+ .max(64),
30
+ stack: zod_1.z.enum(STACKS).optional().describe('VM stack when the workspace does not exist yet (default node)'),
31
+ });
32
+ exports.writeAppFilesTool = {
33
+ type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
34
+ userConfigurable: true,
35
+ data: {
36
+ needsApproval: false,
37
+ title: 'writeAppFiles',
38
+ description: "Write files into the session's app workspace (an isolated per-session VM). Creates the workspace on first use. Static files are served immediately at the returned previewUrl.",
39
+ inputSchema: writeAppFilesInputSchema,
40
+ outputSchema: zod_1.z.object({
41
+ vmId: zod_1.z.string(),
42
+ previewUrl: zod_1.z.string().optional(),
43
+ written: zod_1.z.array(zod_1.z.object({ path: zod_1.z.string(), bytes: zod_1.z.number() })),
44
+ }),
45
+ execute: async (input, context) => {
46
+ try {
47
+ const { bridge, sessionId } = requireBridgeAndSession(context);
48
+ if (input.stack) {
49
+ await bridge.ensureVm(sessionId, input.stack);
50
+ }
51
+ const { vm, written } = await bridge.writeFiles(sessionId, input.files);
52
+ return { vmId: vm.vmId, previewUrl: vm.previewUrl, written };
53
+ }
54
+ catch (err) {
55
+ (0, logger_1.getBuilderApiLogger)().error({ err });
56
+ throw err;
57
+ }
58
+ },
59
+ },
60
+ };
61
+ const runAppCommandInputSchema = zod_1.z.object({
62
+ command: zod_1.z.string().min(1).max(4000).describe('Shell command run in the workspace root (or cwd)'),
63
+ cwd: zod_1.z.string().max(500).optional().describe('Workspace-relative working directory'),
64
+ timeoutMs: zod_1.z.number().int().positive().max(300000).optional().describe('Wall-clock limit, default 60000'),
65
+ stack: zod_1.z.enum(STACKS).optional().describe('VM stack when the workspace does not exist yet (default node)'),
66
+ });
67
+ exports.runAppCommandTool = {
68
+ type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
69
+ userConfigurable: true,
70
+ data: {
71
+ needsApproval: false,
72
+ title: 'runAppCommand',
73
+ description: "Run a shell command inside the session's app workspace VM (npm install, build steps, node scripts). Returns exit code and captured output. Creates the workspace on first use.",
74
+ inputSchema: runAppCommandInputSchema,
75
+ outputSchema: zod_1.z.object({
76
+ vmId: zod_1.z.string(),
77
+ previewUrl: zod_1.z.string().optional(),
78
+ exitCode: zod_1.z.number(),
79
+ stdout: zod_1.z.string(),
80
+ stderr: zod_1.z.string(),
81
+ durationMs: zod_1.z.number(),
82
+ truncated: zod_1.z.boolean(),
83
+ timedOut: zod_1.z.boolean(),
84
+ }),
85
+ execute: async (input, context) => {
86
+ try {
87
+ const { bridge, sessionId } = requireBridgeAndSession(context);
88
+ if (input.stack) {
89
+ await bridge.ensureVm(sessionId, input.stack);
90
+ }
91
+ const { vm, result } = await bridge.exec(sessionId, {
92
+ command: input.command,
93
+ cwd: input.cwd,
94
+ timeoutMs: input.timeoutMs,
95
+ });
96
+ return { vmId: vm.vmId, previewUrl: vm.previewUrl, ...result };
97
+ }
98
+ catch (err) {
99
+ (0, logger_1.getBuilderApiLogger)().error({ err });
100
+ throw err;
101
+ }
102
+ },
103
+ },
104
+ };
105
+ //# sourceMappingURL=app-vm.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-vm.tools.js","sourceRoot":"","sources":["../../../src/agents/shared/app-vm.tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { AgentTool } from '@multiplayer-app/ai-agent-types';
2
+ export declare const createBuildPlanTool: AgentTool;
3
+ export declare const updateBuildTaskTool: AgentTool;
4
+ export declare const getBuildPlanTool: AgentTool;
5
+ //# sourceMappingURL=build-plan.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-plan.tools.d.ts","sourceRoot":"","sources":["../../../src/agents/shared/build-plan.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAoGnF,eAAO,MAAM,mBAAmB,EAAE,SA6BjC,CAAA;AASD,eAAO,MAAM,mBAAmB,EAAE,SA8DjC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,SAkB9B,CAAA"}