@theoremjs/studio 0.0.0-stage → 0.3.2

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 (473) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +295 -2
  3. package/agreement.d.ts +14 -0
  4. package/agreement.js +80 -0
  5. package/asks.d.ts +47 -0
  6. package/asks.js +54 -0
  7. package/browser-connection.d.ts +49 -0
  8. package/browser-connection.js +215 -0
  9. package/browser-engine.d.ts +11 -0
  10. package/browser-engine.js +11 -0
  11. package/browser-execution.d.ts +6 -0
  12. package/browser-execution.js +18 -0
  13. package/browser-live.d.ts +4 -0
  14. package/browser-live.js +132 -0
  15. package/browser-transport.d.ts +33 -0
  16. package/browser-transport.js +229 -0
  17. package/browser.d.ts +4 -0
  18. package/browser.js +4 -0
  19. package/canonical.d.ts +10 -0
  20. package/canonical.js +25 -0
  21. package/compile-workspace.d.ts +28 -0
  22. package/compile-workspace.js +295 -0
  23. package/compile.d.ts +65 -0
  24. package/compile.js +1605 -0
  25. package/concierge-demo.d.ts +17 -0
  26. package/concierge-demo.js +1230 -0
  27. package/conversation-key.d.ts +5 -0
  28. package/conversation-key.js +10 -0
  29. package/decision-example-images.d.ts +30 -0
  30. package/decision-example-images.js +30 -0
  31. package/deno.json +3 -0
  32. package/draft.d.ts +407 -0
  33. package/draft.js +505 -0
  34. package/editors.d.ts +29 -0
  35. package/editors.js +51 -0
  36. package/example-embedding-files.d.ts +11 -0
  37. package/example-embedding-files.js +20 -0
  38. package/example.d.ts +36 -0
  39. package/example.js +357 -0
  40. package/guardrail-probe.d.ts +100 -0
  41. package/guardrail-probe.js +722 -0
  42. package/held-credentials.d.ts +28 -0
  43. package/held-credentials.js +87 -0
  44. package/installed.mjs +40 -0
  45. package/lent-keys.d.ts +122 -0
  46. package/lent-keys.js +47 -0
  47. package/line-diff.d.ts +15 -0
  48. package/line-diff.js +41 -0
  49. package/live-connection.d.ts +22 -0
  50. package/live-connection.js +27 -0
  51. package/live-session-bridge.d.ts +15 -0
  52. package/live-session-bridge.js +202 -0
  53. package/map-line.d.ts +19 -0
  54. package/map-line.js +42 -0
  55. package/map.d.ts +154 -0
  56. package/map.js +525 -0
  57. package/media-accept.d.ts +19 -0
  58. package/media-accept.js +65 -0
  59. package/mod.d.ts +39 -0
  60. package/mod.js +33 -0
  61. package/origins.d.ts +52 -0
  62. package/origins.js +165 -0
  63. package/package.json +85 -4
  64. package/page/assets/Banner-BISz3nXA.js +2 -0
  65. package/page/assets/BottomSheet-BwfBDtje.js +1 -0
  66. package/page/assets/Card-Lp-0P5eL.js +1 -0
  67. package/page/assets/CardWall-CBRLdDZW.js +1 -0
  68. package/page/assets/Center-nHS1JSux.js +1 -0
  69. package/page/assets/CheckboxInput-Cj5pk-KI.js +2 -0
  70. package/page/assets/CodeBlock-C7XJ4ioE.js +51 -0
  71. package/page/assets/CollapsibleGroup-N7_SOjbm.js +2 -0
  72. package/page/assets/ContextMenu-CBu9H-9H.js +2 -0
  73. package/page/assets/DateInput-BGrQ5tPC.js +1 -0
  74. package/page/assets/Dialog-DELWQo-v.js +1 -0
  75. package/page/assets/EmptyState-C8W4JKBZ.js +1 -0
  76. package/page/assets/HoverCard-D1Y1ltWQ.js +1 -0
  77. package/page/assets/Icon-JrysT8aU.js +3 -0
  78. package/page/assets/IconAlertTriangle-BqAEqqdU.js +1 -0
  79. package/page/assets/IconButton-DlOGzJIX.js +1 -0
  80. package/page/assets/IconEye-BB5aY-wQ.js +1 -0
  81. package/page/assets/IconFileText-6zOFKKrF.js +1 -0
  82. package/page/assets/IconSearch-BTx66a40.js +1 -0
  83. package/page/assets/IconShield-DDOh7Gr5.js +1 -0
  84. package/page/assets/ItemSwipeLayer-Ckn4X6h9.js +1 -0
  85. package/page/assets/PaneState-BvA2tLQg.js +1 -0
  86. package/page/assets/PaneState-eUzUkNE8.css +1 -0
  87. package/page/assets/ScrollableArea-Ckugdj1N.js +1 -0
  88. package/page/assets/Section-DJ97F7QE.js +1 -0
  89. package/page/assets/SegmentedControlItem-h-aaXzyS.js +1 -0
  90. package/page/assets/SidePanel-BL32abk8.js +1 -0
  91. package/page/assets/StackItem-CQviqAfM.js +1 -0
  92. package/page/assets/Text-bum6zWWx.js +2 -0
  93. package/page/assets/TimestampHoverCard-DQIG0RZF.js +1 -0
  94. package/page/assets/ToolResultCharts-CgshSv9Q.js +1 -0
  95. package/page/assets/Tooltip-BH9xiRMl.js +1 -0
  96. package/page/assets/TraceInspector-_yZiz05W.js +1 -0
  97. package/page/assets/TraceOverview-BPO-HIYK.js +57 -0
  98. package/page/assets/VStack-CkVMcNiK.js +1 -0
  99. package/page/assets/_virtual_studio-type-sources-ByxqQaOG.js +12936 -0
  100. package/page/assets/arrive-DvbqpeRS.js +1 -0
  101. package/page/assets/browser-engine-CYq9DQAM.js +9 -0
  102. package/page/assets/browser-transport-D-2jDYe7.js +47 -0
  103. package/page/assets/codicon-DF1abBS2.ttf +0 -0
  104. package/page/assets/compile-egress-BSxOdX4K.js +23 -0
  105. package/page/assets/container.stylex-BmOi-8DQ.js +1 -0
  106. package/page/assets/createReactComponent-CZwsv6DD.js +1 -0
  107. package/page/assets/decision-example-images-CZGr7YIT.js +1 -0
  108. package/page/assets/devWarning-DxuplmRl.js +1 -0
  109. package/page/assets/editor-DjpsE8to.css +1 -0
  110. package/page/assets/editor.api-Cd3ViPQa.js +908 -0
  111. package/page/assets/editor.worker-6GY8RhDc.js +1 -0
  112. package/page/assets/editor.worker-BmdWdrHZ.js +33 -0
  113. package/page/assets/editors-BJX_S59A.js +1 -0
  114. package/page/assets/egress-automata-B5ZGE1mT.js +1 -0
  115. package/page/assets/embedding-space-view-CfQBPDxD.js +140 -0
  116. package/page/assets/encode-files-Bc3HJyAh.js +1 -0
  117. package/page/assets/export-agent-C3yyzXH8.js +43 -0
  118. package/page/assets/figtree-latin-400-normal-BD4aNku5.woff +0 -0
  119. package/page/assets/figtree-latin-400-normal-g7Dtegnw.woff2 +0 -0
  120. package/page/assets/figtree-latin-500-normal-BWnGEVsr.woff2 +0 -0
  121. package/page/assets/figtree-latin-500-normal-B_yy1phn.woff +0 -0
  122. package/page/assets/figtree-latin-600-normal-BM_oTo4n.woff +0 -0
  123. package/page/assets/figtree-latin-600-normal-Cv_xCTDl.woff2 +0 -0
  124. package/page/assets/figtree-latin-700-normal-BCCt2T1q.woff +0 -0
  125. package/page/assets/figtree-latin-700-normal-th6qEP7c.woff2 +0 -0
  126. package/page/assets/focusOutline.stylex-BT0kfa4t.js +1 -0
  127. package/page/assets/focusableSelector-DXZeMU85.js +1 -0
  128. package/page/assets/groupStyles-C7Ter7zC.js +1 -0
  129. package/page/assets/guardrail-tester-Gut5xK4a.js +9 -0
  130. package/page/assets/host-patterns-C9RMP16Q.js +1 -0
  131. package/page/assets/index-CvvmFKgS.js +105 -0
  132. package/page/assets/index-DOaHlqBo.css +1 -0
  133. package/page/assets/isRtlElement-BG33-k_H.js +1 -0
  134. package/page/assets/labels-provider-4TIWDvsE.js +3 -0
  135. package/page/assets/lent-keys-C32ems-I.js +1 -0
  136. package/page/assets/live-ingress-lDUGPwth.js +1 -0
  137. package/page/assets/live-messages-CnkL4GWi.js +1 -0
  138. package/page/assets/mergeProps-ptS-gIMz.js +1 -0
  139. package/page/assets/padding.stylex-B76907Zf.js +1 -0
  140. package/page/assets/preload-helper-DpV6A1kQ.js +1 -0
  141. package/page/assets/reader-BOCCYaRp.js +7 -0
  142. package/page/assets/register-CDgivxvX.js +2 -0
  143. package/page/assets/rolldown-runtime-hePW80VL.js +1 -0
  144. package/page/assets/schemas-BQ9Jydzb.js +56 -0
  145. package/page/assets/shaped-data-BcarWqd5.js +16 -0
  146. package/page/assets/sharedResizeObserver-4U9Xq5Oq.js +1 -0
  147. package/page/assets/stub-DhdcU_Ew.js +471 -0
  148. package/page/assets/studio-code-pane-C_SAbcOa.js +8 -0
  149. package/page/assets/studio-console-DZwlEsvr.js +3 -0
  150. package/page/assets/studio-decision-B0FnCAXA.js +1 -0
  151. package/page/assets/studio-embedding-CmA51HVo.js +2 -0
  152. package/page/assets/studio-host-console-By7hqu2l.js +2 -0
  153. package/page/assets/studio-live-BrcVQcyV.js +1 -0
  154. package/page/assets/studio-map-B_xSia-z.js +1 -0
  155. package/page/assets/studio-map-Bb06Tw1F.css +1 -0
  156. package/page/assets/studio-monaco-CbKf90i6.css +1 -0
  157. package/page/assets/studio-monaco-xfyfezQS.js +34 -0
  158. package/page/assets/studio-ts.worker-B-EXG4Sv.js +67741 -0
  159. package/page/assets/studio-ts.worker-BXtW3z-O.js +1 -0
  160. package/page/assets/studio-type-checker-BOvxudki.js +23 -0
  161. package/page/assets/themeProps-3IqahpCr.js +1 -0
  162. package/page/assets/tokens.stylex-DkHf0P9C.js +1 -0
  163. package/page/assets/tool-schema-idaOe2nI.js +18 -0
  164. package/page/assets/trace-patterns-DnYJa0nI.js +1 -0
  165. package/page/assets/trace-record-C3zNksA_.js +1 -0
  166. package/page/assets/trace-schema-9CdEyG6Q.js +1 -0
  167. package/page/assets/tree-DqyAMsbI.js +3 -0
  168. package/page/assets/turn-client-Du3Um3Mg.js +2 -0
  169. package/page/assets/types-BhfXQCLx.js +1 -0
  170. package/page/assets/typescript-20GgZ8PJ.js +1 -0
  171. package/page/assets/use-one-call-Hcs8YBp1.js +1 -0
  172. package/page/assets/useAdaptivePresentation-BzmPCddb.js +1 -0
  173. package/page/assets/useClipboard-BgGRxRMJ.js +1 -0
  174. package/page/assets/useContainerReveal-BFy8N_QU.js +1 -0
  175. package/page/assets/useDevWarning-Z9SoixOP.js +1 -0
  176. package/page/assets/useLayerDismissal-B_G7IWpC.js +1 -0
  177. package/page/assets/useMediaQuery-BCT0NUeZ.js +1 -0
  178. package/page/assets/useScrollLock-Dyf6PHJt.js +1 -0
  179. package/page/assets/useScrollableArea-0NzdiBCq.js +1 -0
  180. package/page/assets/useTooltip-CJM_xhLB.js +1 -0
  181. package/page/assets/workspace-DZALqEDX.js +1 -0
  182. package/page/assets/zip-DTcEfps6.js +1 -0
  183. package/page/index.html +90 -0
  184. package/page.mjs +49 -0
  185. package/people.d.ts +87 -0
  186. package/people.js +110 -0
  187. package/policy.d.ts +43 -0
  188. package/policy.js +102 -0
  189. package/ports.d.mts +32 -0
  190. package/ports.mjs +85 -0
  191. package/probe-battery.d.ts +13 -0
  192. package/probe-battery.js +404 -0
  193. package/providers.d.ts +149 -0
  194. package/providers.js +306 -0
  195. package/read-source.d.ts +48 -0
  196. package/read-source.js +1301 -0
  197. package/read-steps.d.ts +23 -0
  198. package/read-steps.js +2 -0
  199. package/reader.d.ts +11 -0
  200. package/reader.js +11 -0
  201. package/registrations.d.ts +83 -0
  202. package/registrations.js +1 -0
  203. package/requirements.d.ts +22 -0
  204. package/requirements.js +38 -0
  205. package/run-payload-core.d.ts +28 -0
  206. package/run-payload-core.js +123 -0
  207. package/run-payload.d.ts +32 -0
  208. package/run-payload.js +26 -0
  209. package/runtime-scope.d.ts +84 -0
  210. package/runtime-scope.js +308 -0
  211. package/runtime.d.ts +84 -0
  212. package/runtime.js +387 -0
  213. package/section-notes.d.ts +33 -0
  214. package/section-notes.js +38 -0
  215. package/serve-page.mjs +96 -0
  216. package/server/draft-decide.d.ts +72 -0
  217. package/server/draft-decide.js +111 -0
  218. package/server/draft-embedding.d.ts +3 -0
  219. package/server/draft-embedding.js +35 -0
  220. package/server/draft-handler.d.ts +82 -0
  221. package/server/draft-handler.js +213 -0
  222. package/server/draft-probe.d.ts +14 -0
  223. package/server/draft-probe.js +61 -0
  224. package/server/draft-replies.d.ts +22 -0
  225. package/server/draft-replies.js +46 -0
  226. package/server/edited-session.d.ts +28 -0
  227. package/server/edited-session.js +83 -0
  228. package/server/edits.d.ts +38 -0
  229. package/server/edits.js +195 -0
  230. package/server/handler.d.ts +133 -0
  231. package/server/handler.js +598 -0
  232. package/server/lent-draft.d.ts +19 -0
  233. package/server/lent-draft.js +23 -0
  234. package/server/live.d.ts +15 -0
  235. package/server/live.js +96 -0
  236. package/server/open-editor.d.ts +63 -0
  237. package/server/open-editor.js +115 -0
  238. package/server/origins.d.ts +18 -0
  239. package/server/origins.js +330 -0
  240. package/server/project-source.d.ts +208 -0
  241. package/server/project-source.js +1042 -0
  242. package/server/project.d.ts +22 -0
  243. package/server/project.js +56 -0
  244. package/server/run-traces.d.ts +20 -0
  245. package/server/run-traces.js +96 -0
  246. package/server/save-new.d.ts +29 -0
  247. package/server/save-new.js +514 -0
  248. package/server/save-plan.d.ts +46 -0
  249. package/server/save-plan.js +1134 -0
  250. package/server/save-remove.d.ts +21 -0
  251. package/server/save-remove.js +528 -0
  252. package/server/save-session.d.ts +96 -0
  253. package/server/save-session.js +418 -0
  254. package/server/save-wire.d.ts +235 -0
  255. package/server/save-wire.js +8 -0
  256. package/server/save.d.ts +52 -0
  257. package/server/save.js +209 -0
  258. package/server/serve.d.ts +23 -0
  259. package/server/serve.js +413 -0
  260. package/server/test-connection.d.ts +17 -0
  261. package/server/test-connection.js +362 -0
  262. package/server/test-key.d.ts +2 -0
  263. package/server/test-key.js +83 -0
  264. package/server/watch.d.ts +28 -0
  265. package/server/watch.js +93 -0
  266. package/server/zod-edit.d.ts +74 -0
  267. package/server/zod-edit.js +558 -0
  268. package/server.d.ts +8 -0
  269. package/server.js +8 -0
  270. package/setups.mjs +170 -0
  271. package/shared-carry.d.ts +114 -0
  272. package/shared-carry.js +523 -0
  273. package/shared-settings.d.ts +34 -0
  274. package/shared-settings.js +70 -0
  275. package/source.d.ts +75 -0
  276. package/source.js +414 -0
  277. package/start.mjs +169 -0
  278. package/stream-lines.d.ts +9 -0
  279. package/stream-lines.js +27 -0
  280. package/stub.d.ts +6 -0
  281. package/stub.js +33 -0
  282. package/surface.d.ts +53 -0
  283. package/surface.js +631 -0
  284. package/system-markup.d.ts +20 -0
  285. package/system-markup.js +51 -0
  286. package/tool-schema.d.ts +23 -0
  287. package/tool-schema.js +69 -0
  288. package/tools.d.ts +16 -0
  289. package/tools.js +91 -0
  290. package/traces.d.ts +24 -0
  291. package/traces.js +29 -0
  292. package/transport.d.ts +57 -0
  293. package/transport.js +187 -0
  294. package/tree.d.ts +32 -0
  295. package/tree.js +83 -0
  296. package/types.d.ts +62 -0
  297. package/types.js +6 -0
  298. package/ui/acting-as-button.d.ts +2 -0
  299. package/ui/acting-as-button.js +16 -0
  300. package/ui/add-provider.d.ts +13 -0
  301. package/ui/add-provider.js +20 -0
  302. package/ui/boot-mark.css +53 -0
  303. package/ui/boot-mark.d.ts +19 -0
  304. package/ui/boot-mark.js +128 -0
  305. package/ui/boot-paint.d.ts +8 -0
  306. package/ui/boot-paint.js +8 -0
  307. package/ui/brand-icons.d.ts +57 -0
  308. package/ui/brand-icons.js +148 -0
  309. package/ui/built/theme.css +830 -0
  310. package/ui/built/theme.css.d.ts +9 -0
  311. package/ui/built/theorem-studio.d.ts +13 -0
  312. package/ui/built/theorem-studio.js +705 -0
  313. package/ui/built/theorem-studio.variants.d.ts +28 -0
  314. package/ui/code/monaco-contributions.d.ts +45 -0
  315. package/ui/code/studio-code.d.ts +7 -0
  316. package/ui/code/studio-code.js +253 -0
  317. package/ui/code/studio-monaco.d.ts +44 -0
  318. package/ui/code/studio-monaco.js +48 -0
  319. package/ui/code/studio-ts.worker.d.ts +1 -0
  320. package/ui/code/studio-ts.worker.js +16 -0
  321. package/ui/code/studio-type-checker.d.ts +12 -0
  322. package/ui/code/studio-type-checker.js +308 -0
  323. package/ui/code/studio-type-sources.d.ts +26 -0
  324. package/ui/confirm-write.d.ts +12 -0
  325. package/ui/confirm-write.js +45 -0
  326. package/ui/diff-block.d.ts +21 -0
  327. package/ui/diff-block.js +17 -0
  328. package/ui/figtree.css +59 -0
  329. package/ui/file-place.d.ts +4 -0
  330. package/ui/file-place.js +26 -0
  331. package/ui/guardrail-tester.d.ts +18 -0
  332. package/ui/guardrail-tester.js +248 -0
  333. package/ui/inspector-context.d.ts +119 -0
  334. package/ui/inspector-context.js +84 -0
  335. package/ui/inspector.d.ts +247 -0
  336. package/ui/inspector.js +284 -0
  337. package/ui/lib/acting-as.d.ts +25 -0
  338. package/ui/lib/acting-as.js +90 -0
  339. package/ui/lib/boot-sequence.d.ts +32 -0
  340. package/ui/lib/boot-sequence.js +57 -0
  341. package/ui/lib/export-agent.d.ts +11 -0
  342. package/ui/lib/export-agent.js +335 -0
  343. package/ui/lib/facet-icons.d.ts +20 -0
  344. package/ui/lib/facet-icons.js +21 -0
  345. package/ui/lib/panel-motion.d.ts +8 -0
  346. package/ui/lib/panel-motion.js +74 -0
  347. package/ui/lib/project-address.d.ts +14 -0
  348. package/ui/lib/project-address.js +24 -0
  349. package/ui/lib/project-starting.d.ts +13 -0
  350. package/ui/lib/project-starting.js +30 -0
  351. package/ui/lib/project-traces.d.ts +17 -0
  352. package/ui/lib/project-traces.js +54 -0
  353. package/ui/lib/read-map.d.ts +30 -0
  354. package/ui/lib/read-map.js +173 -0
  355. package/ui/lib/read-progress.d.ts +14 -0
  356. package/ui/lib/read-progress.js +12 -0
  357. package/ui/lib/refusal-lines.d.ts +3 -0
  358. package/ui/lib/refusal-lines.js +8 -0
  359. package/ui/lib/studio-activity.d.ts +5 -0
  360. package/ui/lib/studio-activity.js +17 -0
  361. package/ui/lib/studio-console.d.ts +27 -0
  362. package/ui/lib/studio-console.js +9 -0
  363. package/ui/lib/studio-conversation.d.ts +20 -0
  364. package/ui/lib/studio-conversation.js +130 -0
  365. package/ui/lib/studio-examples.d.ts +31 -0
  366. package/ui/lib/studio-examples.js +25 -0
  367. package/ui/lib/studio-labels.d.ts +6 -0
  368. package/ui/lib/studio-labels.js +13 -0
  369. package/ui/lib/studio-map-kept.d.ts +17 -0
  370. package/ui/lib/studio-map-kept.js +48 -0
  371. package/ui/lib/studio-open.d.ts +22 -0
  372. package/ui/lib/studio-open.js +54 -0
  373. package/ui/lib/studio-page.d.ts +33 -0
  374. package/ui/lib/studio-page.js +121 -0
  375. package/ui/lib/studio-prefs.d.ts +26 -0
  376. package/ui/lib/studio-prefs.js +87 -0
  377. package/ui/lib/studio-project.d.ts +106 -0
  378. package/ui/lib/studio-project.js +177 -0
  379. package/ui/lib/studio-restore.d.ts +49 -0
  380. package/ui/lib/studio-restore.js +251 -0
  381. package/ui/lib/studio-run-open.d.ts +15 -0
  382. package/ui/lib/studio-run-open.js +16 -0
  383. package/ui/lib/studio-session.d.ts +34 -0
  384. package/ui/lib/studio-session.js +17 -0
  385. package/ui/lib/studio-settings.d.ts +15 -0
  386. package/ui/lib/studio-settings.js +48 -0
  387. package/ui/lib/studio-store.d.ts +64 -0
  388. package/ui/lib/studio-store.js +391 -0
  389. package/ui/lib/studio-watch.d.ts +12 -0
  390. package/ui/lib/studio-watch.js +27 -0
  391. package/ui/lib/tab-fills.d.ts +6 -0
  392. package/ui/lib/tab-fills.js +14 -0
  393. package/ui/lib/tool-credentials.d.ts +3 -0
  394. package/ui/lib/tool-credentials.js +23 -0
  395. package/ui/lib/tool-probe.d.ts +19 -0
  396. package/ui/lib/tool-probe.js +104 -0
  397. package/ui/lib/type-icons.d.ts +35 -0
  398. package/ui/lib/type-icons.js +38 -0
  399. package/ui/lib/when-idle.d.ts +5 -0
  400. package/ui/lib/when-idle.js +14 -0
  401. package/ui/lib/zip.d.ts +5 -0
  402. package/ui/lib/zip.js +8 -0
  403. package/ui/map-token.css +11 -0
  404. package/ui/map-token.d.ts +17 -0
  405. package/ui/map-token.js +29 -0
  406. package/ui/mcp-icon.d.ts +6 -0
  407. package/ui/mcp-icon.js +8 -0
  408. package/ui/motion.css +113 -0
  409. package/ui/pan.d.ts +32 -0
  410. package/ui/pan.js +90 -0
  411. package/ui/profile-editor.d.ts +33 -0
  412. package/ui/profile-editor.js +2638 -0
  413. package/ui/provider-editor.d.ts +15 -0
  414. package/ui/provider-editor.js +92 -0
  415. package/ui/read-map.css +48 -0
  416. package/ui/read-map.d.ts +7 -0
  417. package/ui/read-map.js +163 -0
  418. package/ui/refusal-detail.d.ts +4 -0
  419. package/ui/refusal-detail.js +21 -0
  420. package/ui/shared-change.d.ts +9 -0
  421. package/ui/shared-change.js +28 -0
  422. package/ui/shell-motion.css +121 -0
  423. package/ui/shell-motion.d.ts +73 -0
  424. package/ui/shell-motion.js +194 -0
  425. package/ui/studio-code-pane.d.ts +19 -0
  426. package/ui/studio-code-pane.js +44 -0
  427. package/ui/studio-compare.d.ts +80 -0
  428. package/ui/studio-compare.js +326 -0
  429. package/ui/studio-conflicts.d.ts +17 -0
  430. package/ui/studio-conflicts.js +87 -0
  431. package/ui/studio-connection.d.ts +64 -0
  432. package/ui/studio-connection.js +286 -0
  433. package/ui/studio-decision.d.ts +6 -0
  434. package/ui/studio-decision.js +49 -0
  435. package/ui/studio-embedding.d.ts +6 -0
  436. package/ui/studio-embedding.js +30 -0
  437. package/ui/studio-host-console.d.ts +6 -0
  438. package/ui/studio-host-console.js +17 -0
  439. package/ui/studio-host.d.ts +73 -0
  440. package/ui/studio-host.js +12 -0
  441. package/ui/studio-live.d.ts +17 -0
  442. package/ui/studio-live.js +26 -0
  443. package/ui/studio-map.css +273 -0
  444. package/ui/studio-map.d.ts +17 -0
  445. package/ui/studio-map.js +397 -0
  446. package/ui/studio-nav.d.ts +24 -0
  447. package/ui/studio-nav.js +17 -0
  448. package/ui/studio-no-project.d.ts +5 -0
  449. package/ui/studio-no-project.js +9 -0
  450. package/ui/studio-run.css +76 -0
  451. package/ui/studio-run.d.ts +14 -0
  452. package/ui/studio-run.js +119 -0
  453. package/ui/studio-runner.d.ts +45 -0
  454. package/ui/studio-runner.js +187 -0
  455. package/ui/studio-save.d.ts +49 -0
  456. package/ui/studio-save.js +307 -0
  457. package/ui/studio-screen.d.ts +61 -0
  458. package/ui/studio-screen.js +2078 -0
  459. package/ui/studio-settings.d.ts +31 -0
  460. package/ui/studio-settings.js +288 -0
  461. package/ui/studio-shell.css +27 -0
  462. package/ui/studio-shell.d.ts +43 -0
  463. package/ui/studio-shell.js +87 -0
  464. package/ui/studio-theme.d.ts +7 -0
  465. package/ui/studio-theme.js +94 -0
  466. package/ui/studio.css +427 -0
  467. package/ui/theorem-mark.css +84 -0
  468. package/ui/theorem-mark.d.ts +22 -0
  469. package/ui/theorem-mark.js +21 -0
  470. package/vite.d.mts +30 -0
  471. package/vite.mjs +277 -0
  472. package/workspace.d.ts +230 -0
  473. package/workspace.js +1054 -0
package/example.js ADDED
@@ -0,0 +1,357 @@
1
+ import { embeddingModelLimits } from '@theoremjs/agents';
2
+ import { DETECTOR_BOUNDARIES, DETECTORS } from '@theoremjs/agents/guardrails';
3
+ import { DEMO_ALLOWED_HOSTS, DEMO_ARCHITECT_SYSTEM, DEMO_ARCHITECT_TOOLS, DEMO_CONCIERGE_SYSTEM, DEMO_CONCIERGE_TOOLS, DEMO_CONSOLE_TOOLS, DEMO_LIVE_CONCIERGE_SYSTEM, demoInputsSpec, demoToolSpecs, } from "./concierge-demo.js";
4
+ import { createBlankDraft, defaultModelBinding, defaultToolSpec, draftKey, freeName, includableFacets, includeFacet, setProfileType, } from "./draft.js";
5
+ import { firstServed } from "./policy.js";
6
+ import { addAgent, agentNodeId, markAgentStart, workspaceFromDraft, } from "./workspace.js";
7
+ /**
8
+ * Where each example's models start: Google's Flash models and TypeSafe's Jev, which free keys
9
+ * run. The examples list no models, so a type switch keeps whatever the kernel says serves the
10
+ * new type.
11
+ */
12
+ const EXAMPLE_PICKS = {
13
+ models: () => [],
14
+ start: (type) => {
15
+ switch (type) {
16
+ case 'decision':
17
+ return { ...firstServed('typesafe', type), apiId: 'jev-latest' };
18
+ case 'live':
19
+ return { ...firstServed('gemini', type), apiId: 'gemini-3.1-flash-live-preview' };
20
+ case 'speech':
21
+ return { ...firstServed('gemini', type), apiId: 'gemini-3.1-flash-tts-preview' };
22
+ case 'image':
23
+ return { ...firstServed('gemini', type), apiId: 'gemini-3.1-flash-lite-image' };
24
+ case 'text':
25
+ return { ...firstServed('gemini', type), apiId: 'gemini-3.1-flash-lite' };
26
+ case 'embedding':
27
+ return { ...firstServed('gemini', type), apiId: 'gemini-embedding-2-preview' };
28
+ }
29
+ },
30
+ };
31
+ /** The agent id the decision example opens under; its run starts with the pantry's state and pictures. */
32
+ export const DECISION_EXAMPLE_AGENT_ID = 'pantry.jev';
33
+ /** What the decision example's questions are asked about: the shelf, and why we ask. */
34
+ export const DECISION_EXAMPLE_STATE = JSON.stringify({
35
+ photo: '<pantry_shelf>',
36
+ note: 'Friends are coming round for brunch.',
37
+ }, null, 2);
38
+ /** The example's pictures, which load only when the example is made: they are most of its weight. */
39
+ const exampleImages = async () => (await import("./decision-example-images.js")).DECISION_EXAMPLE_IMAGES;
40
+ /** The picture the decision example's state starts with, by the reference it writes: the shelf. */
41
+ export async function decisionExampleAssets() {
42
+ const { '<pantry_shelf>': shelf } = await exampleImages();
43
+ return { '<pantry_shelf>': shelf };
44
+ }
45
+ /** The example's own pictures, sent with every decision: the ginger, the colour chart and the flag its questions name. */
46
+ async function decisionImages() {
47
+ const { '<pantry_shelf>': _shelf, ...fixed } = await exampleImages();
48
+ return Object.entries(fixed).map(([reference, image]) => ({
49
+ key: draftKey('image'),
50
+ name: reference.slice(1, -1),
51
+ ...image,
52
+ }));
53
+ }
54
+ function exampleQuestion(id, type, instructions, options = []) {
55
+ return {
56
+ key: draftKey('question'),
57
+ id,
58
+ type,
59
+ instructions,
60
+ criteria: options.map(([label, text]) => ({ key: draftKey('criterion'), label, text })),
61
+ };
62
+ }
63
+ /**
64
+ * A look at a pantry shelf on TypeSafe's Jev 1.14: boxes around what it finds, a colour chart and
65
+ * a flag to match against, and plain questions about what is there. The draft a blank agent becomes
66
+ * when its type is set to decision, with every section that type brings, and the pictures ship with
67
+ * it, so it runs as it opens.
68
+ */
69
+ export async function createDecisionExampleDraft() {
70
+ const images = await decisionImages();
71
+ const blank = createBlankDraft();
72
+ const had = new Set(includableFacets(blank));
73
+ const decision = setProfileType(blank, 'decision', EXAMPLE_PICKS);
74
+ const draft = includableFacets(decision)
75
+ .filter((facet) => !had.has(facet))
76
+ .reduce(includeFacet, decision);
77
+ const binding = draft.modelBindings[0];
78
+ return {
79
+ ...draft,
80
+ identity: { ...draft.identity, agentId: DECISION_EXAMPLE_AGENT_ID, handle: 'jev' },
81
+ modelBindings: binding ? [{ ...binding, apiId: 'jev-1.14.0', options: { images: true } }] : [],
82
+ decision: {
83
+ ...draft.decision,
84
+ contract: 'pantry.v1',
85
+ questions: [
86
+ exampleQuestion('Ginger', 'box', 'Where is <ginger> in `photo`?'),
87
+ exampleQuestion('Something to drink', 'noul', "There's something to drink in `photo`."),
88
+ exampleQuestion('Fruit salad', 'noul', 'Do we have what we need for a fruit salad?'),
89
+ {
90
+ ...exampleQuestion('Where the green apple lands on the chart', 'box', 'Where on <apple_ripeness> would the green apple in `photo` sit?'),
91
+ image: '<apple_ripeness>',
92
+ },
93
+ exampleQuestion('Bread on the shelf', 'noul', 'Does the shelf have bread?'),
94
+ exampleQuestion('Union Jack', 'box', 'Which jar in `photo` matches <union_jack>?'),
95
+ exampleQuestion('Brunch', 'choice', 'What can we make for brunch from `photo`?', [
96
+ ['toast', 'Toast with a spread.'],
97
+ ['fruit', 'A bowl of fruit.'],
98
+ ['shop', 'Nothing yet. Someone goes to the shop.'],
99
+ ]),
100
+ ],
101
+ images,
102
+ },
103
+ };
104
+ }
105
+ /** A tool-call safety decision using the free Span model and its Number question shape. */
106
+ export function createSpanExampleDraft() {
107
+ const draft = setProfileType(createBlankDraft(), 'decision', EXAMPLE_PICKS);
108
+ return {
109
+ ...draft,
110
+ identity: { ...draft.identity, agentId: 'guardrails.tool_call.span', handle: 'span' },
111
+ modelBindings: [
112
+ {
113
+ ...draft.modelBindings[0],
114
+ ...firstServed('openrouter', 'decision'),
115
+ apiId: 'respan/span-01-lite:free',
116
+ },
117
+ ],
118
+ decision: {
119
+ ...draft.decision,
120
+ questions: [
121
+ {
122
+ key: draftKey('question'),
123
+ id: 'verdict',
124
+ type: 'noul',
125
+ instructions: 'Is this tool call unsafe or beyond what the user asked for?',
126
+ criteria: [
127
+ {
128
+ key: draftKey('criterion'),
129
+ label: 'true',
130
+ text: 'The call is unsafe or beyond the user request.',
131
+ },
132
+ {
133
+ key: draftKey('criterion'),
134
+ label: 'false',
135
+ text: 'The call is safe and within the user request.',
136
+ },
137
+ ],
138
+ },
139
+ ],
140
+ },
141
+ };
142
+ }
143
+ const GEMINI_EMBEDDING = {
144
+ protocol: firstServed('gemini', 'embedding').protocol,
145
+ apiId: 'gemini-embedding-2-preview',
146
+ };
147
+ /** A multimodal embedding profile using Gemini Embeddings 2's free preview model, taking every file type it does. */
148
+ export function createGeminiEmbeddingExampleDraft() {
149
+ const draft = setProfileType(createBlankDraft(), 'embedding', EXAMPLE_PICKS);
150
+ const binding = draft.modelBindings[0];
151
+ return {
152
+ ...draft,
153
+ identity: {
154
+ ...draft.identity,
155
+ agentId: 'studio.gemini-embeddings-2',
156
+ handle: 'embeddings',
157
+ },
158
+ models: {
159
+ ...draft.models,
160
+ defaultModel: binding?.modelId ?? '',
161
+ key: 'gemini',
162
+ },
163
+ modelBindings: binding
164
+ ? [
165
+ {
166
+ ...binding,
167
+ provider: 'gemini',
168
+ protocol: GEMINI_EMBEDDING.protocol,
169
+ apiId: GEMINI_EMBEDDING.apiId,
170
+ options: { outputDimensionality: 768 },
171
+ },
172
+ ]
173
+ : [],
174
+ inputs: {
175
+ ...draft.inputs,
176
+ text: true,
177
+ attachmentsAccept: (embeddingModelLimits(GEMINI_EMBEDDING)?.media ?? []).flatMap((kind) => [
178
+ ...kind.accept,
179
+ ]),
180
+ // why: the most media Gemini Embedding 2 takes in one input is 6 images.
181
+ maxFiles: 6,
182
+ maxBytes: 10_000_000,
183
+ maxTurnBytes: 10_000_000,
184
+ },
185
+ };
186
+ }
187
+ /**
188
+ * The example's `detect`: a reply that carries sensitive data or injection phrasing is blocked.
189
+ * Network addresses are left alone, since a reply cites them, and so are tool names, since a
190
+ * reply repeats one the visitor asks about.
191
+ */
192
+ function exampleDetect(detect) {
193
+ const next = structuredClone(detect);
194
+ for (const detector of DETECTORS) {
195
+ if (detector === 'network' || detector === 'tool_leak')
196
+ continue;
197
+ for (const boundary of ['reply', 'reply_structured', 'live_reply']) {
198
+ if (DETECTOR_BOUNDARIES[detector].includes(boundary))
199
+ next[detector][boundary] = 'block';
200
+ }
201
+ }
202
+ return next;
203
+ }
204
+ /** The demo tools named, in the library's order. */
205
+ function exampleTools(names) {
206
+ const wanted = new Set(names);
207
+ return demoToolSpecs()
208
+ .filter((seed) => wanted.has(seed.data.toolName ?? ''))
209
+ .map((seed) => defaultToolSpec(seed.data));
210
+ }
211
+ /** A text agent on the studio's models, with the example's inputs and guardrails. */
212
+ function exampleTextDraft(identity, tools) {
213
+ const blank = createBlankDraft();
214
+ const inputs = demoInputsSpec();
215
+ return {
216
+ ...blank,
217
+ identity: { ...identity, profileType: 'text', systemByRoleJson: '' },
218
+ included: ['outputs', 'turnBehaviour', 'guardrails', 'observability', 'labels'],
219
+ models: { defaultModel: 'smart', allowModelSelect: true, maxSteps: 12, key: 'gemini' },
220
+ modelBindings: [
221
+ defaultModelBinding({
222
+ modelId: 'fast',
223
+ ...firstServed('gemini', 'text'),
224
+ apiId: 'gemini-3.1-flash-lite',
225
+ efforts: [
226
+ { alias: 'fast', level: 'minimal' },
227
+ { alias: 'deep', level: 'high' },
228
+ ],
229
+ defaultEffort: 'fast',
230
+ allowEffortSelect: true,
231
+ summaries: true,
232
+ }),
233
+ defaultModelBinding({
234
+ modelId: 'smart',
235
+ ...firstServed('gemini', 'text'),
236
+ apiId: 'gemini-3.5-flash-lite',
237
+ efforts: [
238
+ { alias: 'normal', level: 'low' },
239
+ { alias: 'deep', level: 'high' },
240
+ ],
241
+ defaultEffort: 'normal',
242
+ allowEffortSelect: true,
243
+ summaries: true,
244
+ }),
245
+ defaultModelBinding({
246
+ modelId: 'open',
247
+ ...firstServed('openrouter', 'text'),
248
+ apiId: 'openrouter/free',
249
+ efforts: [{ alias: 'default', level: 'minimal' }],
250
+ defaultEffort: 'default',
251
+ // Its own slot: a slot two providers share can hold neither's key.
252
+ keySlot: 'openrouter',
253
+ }),
254
+ ],
255
+ ...tools,
256
+ inputs: {
257
+ text: inputs.text,
258
+ attachmentsAccept: [...inputs.attachmentsAccept],
259
+ voiceAccept: [...inputs.voiceAccept],
260
+ maxFiles: inputs.maxFiles,
261
+ maxBytes: inputs.maxBytes,
262
+ maxTurnBytes: inputs.maxTurnBytes,
263
+ limitsByMimeJson: '',
264
+ slotsJson: '',
265
+ contextFrom: [],
266
+ contextMaxChars: null,
267
+ },
268
+ guardrails: {
269
+ ...blank.guardrails,
270
+ detect: exampleDetect(blank.guardrails.detect),
271
+ blockedReplyOnBlock: 'refuse',
272
+ allowedHosts: DEMO_ALLOWED_HOSTS.split(',').map((host) => host.trim()),
273
+ },
274
+ };
275
+ }
276
+ /** A fresh copy of the travel concierge draft: a text agent with the tools a trip needs. */
277
+ export function createExampleDraft() {
278
+ return exampleTextDraft({ agentId: 'travel.concierge', handle: 'concierge', system: DEMO_CONCIERGE_SYSTEM }, {
279
+ tools: { t2Loader: 'discover_tools', parallel: false },
280
+ toolSpecs: exampleTools(DEMO_CONCIERGE_TOOLS),
281
+ });
282
+ }
283
+ /** The travel concierge on a call: the same tools, a live model, and an instruction for speech. */
284
+ export function createLiveExampleDraft() {
285
+ const draft = setProfileType(createExampleDraft(), 'live', EXAMPLE_PICKS);
286
+ return {
287
+ ...draft,
288
+ identity: {
289
+ ...draft.identity,
290
+ agentId: 'travel.concierge.live',
291
+ system: DEMO_LIVE_CONCIERGE_SYSTEM,
292
+ },
293
+ };
294
+ }
295
+ /** A speech agent that reads a script aloud. */
296
+ export function createNarratorExampleDraft() {
297
+ const draft = setProfileType(createBlankDraft(), 'speech', EXAMPLE_PICKS);
298
+ return {
299
+ ...draft,
300
+ identity: { ...draft.identity, agentId: 'studio.narrator', handle: 'narrator' },
301
+ speech: {
302
+ ...draft.speech,
303
+ style: 'Warm and unhurried, like a podcast host talking to one listener.',
304
+ },
305
+ };
306
+ }
307
+ /** A host with no model: a few demo tools, one of each kind of result. */
308
+ export function createConsoleExampleDraft() {
309
+ const draft = setProfileType(createBlankDraft(), 'host');
310
+ return {
311
+ ...draft,
312
+ identity: { ...draft.identity, agentId: 'tools.console' },
313
+ toolSpecs: exampleTools(DEMO_CONSOLE_TOOLS),
314
+ };
315
+ }
316
+ /** The code architect on its own: the code and docs tools, before the narrator joins it. */
317
+ function architectDraft() {
318
+ return exampleTextDraft({ agentId: 'code.architect', handle: 'architect', system: DEMO_ARCHITECT_SYSTEM }, { tools: { t2Loader: '', parallel: false }, toolSpecs: exampleTools(DEMO_ARCHITECT_TOOLS) });
319
+ }
320
+ /**
321
+ * Adds the narrator after the workspace's last agent, the architect, and the `narrate` agent tool
322
+ * that lets the architect call it. The architect is left selected.
323
+ */
324
+ function withNarrator(workspace) {
325
+ const architect = workspace.agents.at(-1);
326
+ const pair = addAgent(workspace, createNarratorExampleDraft());
327
+ const narrator = pair.agents.at(-1);
328
+ if (!architect || !narrator)
329
+ return pair;
330
+ const taken = pair.toolSpecs.map((tool) => tool.toolName);
331
+ const narrate = defaultToolSpec({
332
+ toolName: freeName('narrate', taken, (n) => `narrate_${n}`),
333
+ toolType: 'agent',
334
+ agentKey: narrator.key,
335
+ description: 'Has the narrator read a script aloud and returns the audio.',
336
+ activity: 'Recording the briefing',
337
+ activityPast: 'Recorded the briefing',
338
+ category: 'demo',
339
+ });
340
+ // The architect starts with `narrate` allowed, so a reset keeps the two linked.
341
+ return markAgentStart({
342
+ ...pair,
343
+ agents: pair.agents.map((agent) => agent.key === architect.key
344
+ ? { ...agent, tools: { ...agent.tools, allow: [...agent.tools.allow, narrate.key] } }
345
+ : agent),
346
+ toolSpecs: [...pair.toolSpecs, narrate],
347
+ selected: agentNodeId(architect.key),
348
+ }, architect.key);
349
+ }
350
+ /** The code architect and the narrator it calls, added to a workspace that keeps its other agents. */
351
+ export function addArchitectExample(workspace) {
352
+ return withNarrator(addAgent(workspace, architectDraft()));
353
+ }
354
+ /** A workspace of the code architect and its narrator, with the architect in the chat. */
355
+ export function createArchitectWorkspace() {
356
+ return withNarrator(workspaceFromDraft(architectDraft()));
357
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Sends one text across one guardrail boundary of a draft and reports what its
3
+ * guardrails did. The turn is the kernel's own on a scripted model, so every
4
+ * check is the one a real turn runs, on the draft's guardrails as written, and
5
+ * no model or host is called. A probe keeps what each hit matched: its text
6
+ * is the builder's own sample, and its trace goes nowhere but its result.
7
+ *
8
+ * @module
9
+ */
10
+ import { type ProfileDefinition, type TraceRecord } from '@theoremjs/agents';
11
+ import { type ErrorKind, type GuardrailEvent } from '@theoremjs/agents/guardrails';
12
+ import type { StructuredRegistration, ToolRegistration } from './registrations.ts';
13
+ import { type StudioDependency } from './runtime-scope.ts';
14
+ /** Where a probe's text enters the turn. */
15
+ export declare const PROBE_BOUNDARIES: readonly ["user", "history", "system", "tool_result_local", "tool_result_remote", "tool_arguments", "reply", "thought"];
16
+ /** One of {@linkcode PROBE_BOUNDARIES}. */
17
+ export type ProbeBoundary = (typeof PROBE_BOUNDARIES)[number];
18
+ /** A boundary as the tester tells it. */
19
+ export interface ProbeBoundaryNote {
20
+ label: string;
21
+ /** What crosses the boundary. */
22
+ note: string;
23
+ /** When in a turn the kernel reads it. */
24
+ when: string;
25
+ /** What the kernel does with what it finds there. */
26
+ checks: string;
27
+ }
28
+ /** Each boundary: its name, what crosses it, when the kernel reads it and what it does there. */
29
+ export declare const PROBE_BOUNDARY_NOTES: Record<ProbeBoundary, ProbeBoundaryNote>;
30
+ /** The longest text a probe carries. */
31
+ export declare const PROBE_TEXT_LIMIT = 8000;
32
+ export interface GuardrailProbe {
33
+ boundary: ProbeBoundary;
34
+ text: string;
35
+ }
36
+ /**
37
+ * What the guardrails did with a probed text, mildest first. `flagged` is a
38
+ * report that changed nothing; a call made after a remote read is reported
39
+ * whatever was read, so that report is `taint` and no status.
40
+ */
41
+ export declare const PROBE_STATUSES: readonly ["passed", "flagged", "redacted", "blocked"];
42
+ /** One of {@linkcode PROBE_STATUSES}. */
43
+ export type ProbeStatus = (typeof PROBE_STATUSES)[number];
44
+ export interface GuardrailProbeResult {
45
+ /** The strongest thing a guardrail did with the text. */
46
+ status: ProbeStatus;
47
+ /** Every guardrail decision of the turn, in order. */
48
+ guardrails: GuardrailEvent[];
49
+ /**
50
+ * The text past its boundary: what the model read (for `system`, the whole
51
+ * system prompt), or for `reply` and `thought` what the user got. Absent
52
+ * when nothing went on.
53
+ */
54
+ passed?: string;
55
+ /**
56
+ * Set when a call was made after a remote read: `steered` when what was read
57
+ * also looked like instructions to the agent, else `tainted`.
58
+ */
59
+ taint?: 'tainted' | 'steered';
60
+ /** The turn's failure, when it ended in one. */
61
+ refused?: {
62
+ kind: ErrorKind;
63
+ message?: string;
64
+ };
65
+ /** The turn's trace records, as the kernel wrote them. */
66
+ traces: TraceRecord[];
67
+ }
68
+ /** What a probe is run on: a draft's compiled agent and the agents it names. */
69
+ export interface GuardrailProbeDraft extends StudioDependency {
70
+ dependencies?: readonly StudioDependency[];
71
+ }
72
+ /**
73
+ * The draft as a probe is sent it: a probe calls none of the draft's tools,
74
+ * so the headers they would send, where a key may sit, stay behind.
75
+ */
76
+ export declare function probeDraft(draft: GuardrailProbeDraft): GuardrailProbeDraft;
77
+ /** Why `profile` can't be probed, or undefined when it can. */
78
+ export declare function probeRefusal(profile: ProfileDefinition): string | undefined;
79
+ /** Runs `probe` on the draft and reports what its guardrails did. */
80
+ export declare function runGuardrailProbe(args: {
81
+ profile: ProfileDefinition;
82
+ customTools: readonly ToolRegistration[];
83
+ structured?: StructuredRegistration;
84
+ dependencies?: readonly StudioDependency[];
85
+ probe: GuardrailProbe;
86
+ signal?: AbortSignal;
87
+ }): Promise<GuardrailProbeResult>;
88
+ /** What one boundary's guardrails did with a text sent across every boundary. */
89
+ export interface GuardrailProbeAnswer extends GuardrailProbeResult {
90
+ boundary: ProbeBoundary;
91
+ }
92
+ /**
93
+ * Runs `text` across every boundary of the draft, each in its own turn, in the order of
94
+ * {@linkcode PROBE_BOUNDARIES}. Given `only`, a detector's key, the draft reads with that
95
+ * detector alone, and the answers are the boundaries where it is not set to ignore.
96
+ */
97
+ export declare function runGuardrailProbes(args: Omit<Parameters<typeof runGuardrailProbe>[0], 'probe'> & {
98
+ text: string;
99
+ only?: string;
100
+ }): Promise<GuardrailProbeAnswer[]>;