@nodetool-ai/websocket 0.8.4-a24.3 → 0.8.5

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 (317) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/agent/run-node-workflow.d.ts +25 -0
  3. package/dist/agent/run-node-workflow.d.ts.map +1 -0
  4. package/dist/agent/run-node-workflow.js +90 -0
  5. package/dist/agent/run-node-workflow.js.map +1 -0
  6. package/dist/backend-analytics.d.ts +25 -0
  7. package/dist/backend-analytics.d.ts.map +1 -0
  8. package/dist/backend-analytics.js +102 -0
  9. package/dist/backend-analytics.js.map +1 -0
  10. package/dist/example-workflows.d.ts +2 -0
  11. package/dist/example-workflows.d.ts.map +1 -1
  12. package/dist/example-workflows.js +16 -4
  13. package/dist/example-workflows.js.map +1 -1
  14. package/dist/examples/nodetool-base/A Campaign Concept from a Brief.json +135 -0
  15. package/dist/examples/nodetool-base/A Gradient Card as PNG.json +128 -0
  16. package/dist/examples/nodetool-base/A Poster in Portrait.json +129 -0
  17. package/dist/examples/nodetool-base/A Repeating Texture Tile.json +129 -0
  18. package/dist/examples/nodetool-base/A Run Button for Any Job.json +152 -0
  19. package/dist/examples/nodetool-base/A Webhook That Answers.json +170 -0
  20. package/dist/examples/nodetool-base/AI Spokesperson.json +328 -0
  21. package/dist/examples/nodetool-base/Action Items from a Meeting Recording.json +198 -0
  22. package/dist/examples/nodetool-base/Ad Copy in Three Registers.json +135 -0
  23. package/dist/examples/nodetool-base/Ad Loop from a Product Photo.json +277 -0
  24. package/dist/examples/nodetool-base/Add Reverb to a Voice.json +125 -0
  25. package/dist/examples/nodetool-base/Album Art from a Mood.json +129 -0
  26. package/dist/examples/nodetool-base/Assemble a UGC Product Video.json +158 -0
  27. package/dist/examples/nodetool-base/Audio To Image.json +184 -0
  28. package/dist/examples/nodetool-base/B-Roll Reel from a Brief.json +339 -0
  29. package/dist/examples/nodetool-base/Batch a List.json +171 -0
  30. package/dist/examples/nodetool-base/Black and White, Hard.json +147 -0
  31. package/dist/examples/nodetool-base/Blog Post to Social Thread.json +135 -0
  32. package/dist/examples/nodetool-base/Blur a Channel.json +205 -0
  33. package/dist/examples/nodetool-base/Blur an Image.json +179 -0
  34. package/dist/examples/nodetool-base/Boost Saturation.json +178 -0
  35. package/dist/examples/nodetool-base/Brand Asset Generator.json +585 -0
  36. package/dist/examples/nodetool-base/Brand a UGC Product Video.json +402 -0
  37. package/dist/examples/nodetool-base/Bring a Still to Life.json +250 -0
  38. package/dist/examples/nodetool-base/Bullet Points to Press Release.json +135 -0
  39. package/dist/examples/nodetool-base/Chapter Markers for a Long Recording.json +198 -0
  40. package/dist/examples/nodetool-base/Chat With Your Documents.json +569 -0
  41. package/dist/examples/nodetool-base/Chunk a Transcript for Indexing.json +202 -0
  42. package/dist/examples/nodetool-base/Circles and Lines.json +126 -0
  43. package/dist/examples/nodetool-base/Clean Up a Rough Voice Recording.json +208 -0
  44. package/dist/examples/nodetool-base/Clip on Kie.json +173 -0
  45. package/dist/examples/nodetool-base/Cold Outreach Co-Pilot.json +423 -0
  46. package/dist/examples/nodetool-base/Color Boost Video.json +250 -0
  47. package/dist/examples/nodetool-base/Compose Directed Campaign Formats.json +764 -0
  48. package/dist/examples/nodetool-base/Concept Art Iteration Board.json +439 -0
  49. package/dist/examples/nodetool-base/Concept Art, Then a Moving Version.json +173 -0
  50. package/dist/examples/nodetool-base/Conditional Logic Engine.json +535 -0
  51. package/dist/examples/nodetool-base/Count a List.json +168 -0
  52. package/dist/examples/nodetool-base/Count to Three with a Loop.json +157 -0
  53. package/dist/examples/nodetool-base/Crop an Image.json +181 -0
  54. package/dist/examples/nodetool-base/Crop then Fit.json +208 -0
  55. package/dist/examples/nodetool-base/Crush It to 8 Bits.json +123 -0
  56. package/dist/examples/nodetool-base/Cut Out the Subject.json +184 -0
  57. package/dist/examples/nodetool-base/Cut a Landscape Clip for Vertical.json +123 -0
  58. package/dist/examples/nodetool-base/Cut a Product Out of Its Background.json +238 -0
  59. package/dist/examples/nodetool-base/Data Generator.json +216 -0
  60. package/dist/examples/nodetool-base/Denoise Footage.json +178 -0
  61. package/dist/examples/nodetool-base/Direct a Short Film.json +305 -0
  62. package/dist/examples/nodetool-base/Directed Film to Timeline.json +385 -0
  63. package/dist/examples/nodetool-base/Does This Text Mention the Deadline.json +130 -0
  64. package/dist/examples/nodetool-base/Draft Answers for an FAQ.json +135 -0
  65. package/dist/examples/nodetool-base/Draw a Badge in SVG.json +126 -0
  66. package/dist/examples/nodetool-base/Drop Duplicates.json +170 -0
  67. package/dist/examples/nodetool-base/Drop the First Few.json +148 -0
  68. package/dist/examples/nodetool-base/Dungeon and Ruins Starter Pack.json +786 -0
  69. package/dist/examples/nodetool-base/Edit a Still with Words.json +284 -0
  70. package/dist/examples/nodetool-base/Editorial Still from a Line.json +197 -0
  71. package/dist/examples/nodetool-base/Emboss a Still.json +120 -0
  72. package/dist/examples/nodetool-base/Every Combination.json +225 -0
  73. package/dist/examples/nodetool-base/Every Hour, On the Hour.json +162 -0
  74. package/dist/examples/nodetool-base/Executive Summary of a Long Document.json +135 -0
  75. package/dist/examples/nodetool-base/Explainer Clip from a Paragraph.json +244 -0
  76. package/dist/examples/nodetool-base/Extract the Claims Worth Checking.json +135 -0
  77. package/dist/examples/nodetool-base/Fade Audio In and Out.json +203 -0
  78. package/dist/examples/nodetool-base/Fade Audio Out.json +202 -0
  79. package/dist/examples/nodetool-base/Fill a Template.json +149 -0
  80. package/dist/examples/nodetool-base/Find Every Number in a Sentence.json +127 -0
  81. package/dist/examples/nodetool-base/Find and Replace.json +224 -0
  82. package/dist/examples/nodetool-base/Find the Edges.json +123 -0
  83. package/dist/examples/nodetool-base/Fit an Image.json +179 -0
  84. package/dist/examples/nodetool-base/Five Headlines for a Landing Page.json +135 -0
  85. package/dist/examples/nodetool-base/Flashcard Generator.json +297 -0
  86. package/dist/examples/nodetool-base/Gate Out the Room Noise.json +124 -0
  87. package/dist/examples/nodetool-base/Generate a Native-Audio UGC Testimonial.json +276 -0
  88. package/dist/examples/nodetool-base/Generate a Silent Bed.json +126 -0
  89. package/dist/examples/nodetool-base/Generate then Upscale a Poster.json +164 -0
  90. package/dist/examples/nodetool-base/Hacker News Agent.json +183 -0
  91. package/dist/examples/nodetool-base/Hook & Thumbnail Factory.json +498 -0
  92. package/dist/examples/nodetool-base/How Long Is This Transcript.json +185 -0
  93. package/dist/examples/nodetool-base/Image Enhance.json +272 -0
  94. package/dist/examples/nodetool-base/Image To Audio Story.json +180 -0
  95. package/dist/examples/nodetool-base/Image to Video Animation.json +346 -0
  96. package/dist/examples/nodetool-base/Inspect a Clip's Audio.json +187 -0
  97. package/dist/examples/nodetool-base/Inspect a Clip.json +163 -0
  98. package/dist/examples/nodetool-base/Invert a Still.json +120 -0
  99. package/dist/examples/nodetool-base/Keep Only the Long Lines.json +220 -0
  100. package/dist/examples/nodetool-base/Keep Only the Matches.json +148 -0
  101. package/dist/examples/nodetool-base/Key Out a Green Screen.json +124 -0
  102. package/dist/examples/nodetool-base/Last One Wins.json +144 -0
  103. package/dist/examples/nodetool-base/Lip-sync a Clip to a Voice Track.json +313 -0
  104. package/dist/examples/nodetool-base/Localise a Product Listing.json +135 -0
  105. package/dist/examples/nodetool-base/Localise a Script and Revoice It.json +242 -0
  106. package/dist/examples/nodetool-base/Localized Explainer.json +430 -0
  107. package/dist/examples/nodetool-base/Low-poly Adventure Starter Pack.json +786 -0
  108. package/dist/examples/nodetool-base/Low-poly Seaside Starter Pack.json +786 -0
  109. package/dist/examples/nodetool-base/Master a Voice Track.json +180 -0
  110. package/dist/examples/nodetool-base/Meeting Transcript Summarizer.json +524 -0
  111. package/dist/examples/nodetool-base/Model Arena.json +550 -0
  112. package/dist/examples/nodetool-base/Moodboard Frame from a Theme.json +129 -0
  113. package/dist/examples/nodetool-base/Movie Posters.json +660 -0
  114. package/dist/examples/nodetool-base/Movie Trailer Generator.json +418 -0
  115. package/dist/examples/nodetool-base/Music Video Visualizer.json +720 -0
  116. package/dist/examples/nodetool-base/Name a File from Its Narration.json +231 -0
  117. package/dist/examples/nodetool-base/Narrate a Script.json +169 -0
  118. package/dist/examples/nodetool-base/Narration with a Music Bed.json +360 -0
  119. package/dist/examples/nodetool-base/Normalize a Clip's Audio.json +201 -0
  120. package/dist/examples/nodetool-base/One Tagline, Six Markets.json +135 -0
  121. package/dist/examples/nodetool-base/Pad a Canvas.json +188 -0
  122. package/dist/examples/nodetool-base/Per-SKU Ad Factory.json +511 -0
  123. package/dist/examples/nodetool-base/Photo Enhancement Suite.json +417 -0
  124. package/dist/examples/nodetool-base/Picture in Picture.json +231 -0
  125. package/dist/examples/nodetool-base/Pitch a Voice Up.json +122 -0
  126. package/dist/examples/nodetool-base/Pixelate a Still.json +122 -0
  127. package/dist/examples/nodetool-base/Platformer Playground Starter Pack.json +786 -0
  128. package/dist/examples/nodetool-base/Podcast Episode to Show Notes.json +198 -0
  129. package/dist/examples/nodetool-base/Podcast Repurposing Studio.json +745 -0
  130. package/dist/examples/nodetool-base/Pokemon Maker.json +282 -0
  131. package/dist/examples/nodetool-base/Poster on Kie.json +172 -0
  132. package/dist/examples/nodetool-base/Posterize to Four Bits.json +122 -0
  133. package/dist/examples/nodetool-base/Private Assistant.json +236 -0
  134. package/dist/examples/nodetool-base/Product Mockup Generator.json +608 -0
  135. package/dist/examples/nodetool-base/Product Spot from Text.json +330 -0
  136. package/dist/examples/nodetool-base/Product Video Generator.json +344 -0
  137. package/dist/examples/nodetool-base/Prompt Template.json +221 -0
  138. package/dist/examples/nodetool-base/Propose Three Campaign Directions.json +614 -0
  139. package/dist/examples/nodetool-base/Pull a Field out of JSON Text.json +128 -0
  140. package/dist/examples/nodetool-base/Pull a Still from a Clip.json +179 -0
  141. package/dist/examples/nodetool-base/Pull the Quotable Lines Out of an Interview.json +198 -0
  142. package/dist/examples/nodetool-base/Put a Product on a Studio Backdrop.json +252 -0
  143. package/dist/examples/nodetool-base/Put a Voice Over a Music Bed.json +358 -0
  144. package/dist/examples/nodetool-base/README_EXAMPLES.md +59 -0
  145. package/dist/examples/nodetool-base/Re-delimit a List.json +199 -0
  146. package/dist/examples/nodetool-base/Read a Clip's Frame Rate.json +120 -0
  147. package/dist/examples/nodetool-base/Redact Email Addresses.json +129 -0
  148. package/dist/examples/nodetool-base/Redact and Tidy a Log Line.json +266 -0
  149. package/dist/examples/nodetool-base/Relight a Product for a Seasonal Campaign.json +131 -0
  150. package/dist/examples/nodetool-base/Render a Directed Campaign Hero.json +338 -0
  151. package/dist/examples/nodetool-base/Reopen a Directed Campaign.json +1748 -0
  152. package/dist/examples/nodetool-base/Research Agent.json +231 -0
  153. package/dist/examples/nodetool-base/Research a Brand from Its Website.json +445 -0
  154. package/dist/examples/nodetool-base/Restyle a Photo as an Illustration.json +136 -0
  155. package/dist/examples/nodetool-base/Reverse Audio.json +201 -0
  156. package/dist/examples/nodetool-base/Reverse a Clip.json +176 -0
  157. package/dist/examples/nodetool-base/Revise an Accepted Campaign Hero.json +486 -0
  158. package/dist/examples/nodetool-base/Rewrite This So a Customer Understands It.json +135 -0
  159. package/dist/examples/nodetool-base/Rotate Footage.json +178 -0
  160. package/dist/examples/nodetool-base/SEO Content Engine.json +708 -0
  161. package/dist/examples/nodetool-base/SEO Title and Meta Description.json +135 -0
  162. package/dist/examples/nodetool-base/Sci-fi Game Model Starter Pack.json +693 -0
  163. package/dist/examples/nodetool-base/Sci-fi Outpost Expansion.json +601 -0
  164. package/dist/examples/nodetool-base/Score a Clip from Its Own Mood.json +229 -0
  165. package/dist/examples/nodetool-base/Score a Silent Clip.json +382 -0
  166. package/dist/examples/nodetool-base/Script to Narrated Clip.json +224 -0
  167. package/dist/examples/nodetool-base/Script to Screen.json +940 -0
  168. package/dist/examples/nodetool-base/Sharpen Footage.json +179 -0
  169. package/dist/examples/nodetool-base/Shot List from a Synopsis.json +136 -0
  170. package/dist/examples/nodetool-base/Single Shot from a Line.json +199 -0
  171. package/dist/examples/nodetool-base/Slice Text.json +159 -0
  172. package/dist/examples/nodetool-base/Slow a Clip Without Dropping Pitch.json +122 -0
  173. package/dist/examples/nodetool-base/Soften a Plate.json +178 -0
  174. package/dist/examples/nodetool-base/Solarize a Still.json +122 -0
  175. package/dist/examples/nodetool-base/Speak a Line, Then Trim the Silence.json +157 -0
  176. package/dist/examples/nodetool-base/Spin a Packshot into a Turntable Clip.json +137 -0
  177. package/dist/examples/nodetool-base/Split a Channel.json +178 -0
  178. package/dist/examples/nodetool-base/Split a Log into Records.json +128 -0
  179. package/dist/examples/nodetool-base/Stabilize Handheld.json +179 -0
  180. package/dist/examples/nodetool-base/Still on Replicate.json +172 -0
  181. package/dist/examples/nodetool-base/Subject Lines Worth Testing.json +135 -0
  182. package/dist/examples/nodetool-base/Subtitle Lines from a Script.json +170 -0
  183. package/dist/examples/nodetool-base/Subtitle Text from a Recording.json +198 -0
  184. package/dist/examples/nodetool-base/Summarise a Recorded Call.json +198 -0
  185. package/dist/examples/nodetool-base/Swirl and Echo.json +154 -0
  186. package/dist/examples/nodetool-base/Take While the Numbers Are Small.json +148 -0
  187. package/dist/examples/nodetool-base/Take a Product Shot to Print Resolution.json +209 -0
  188. package/dist/examples/nodetool-base/Take the First Few Seconds of a Bed.json +127 -0
  189. package/dist/examples/nodetool-base/Take the First Few.json +170 -0
  190. package/dist/examples/nodetool-base/Telephone Voice.json +174 -0
  191. package/dist/examples/nodetool-base/Themes Across Customer Feedback.json +135 -0
  192. package/dist/examples/nodetool-base/Three Ratios.json +315 -0
  193. package/dist/examples/nodetool-base/Tidy Up Messy Text.json +199 -0
  194. package/dist/examples/nodetool-base/Top-down Native Asset Pack.json +955 -0
  195. package/dist/examples/nodetool-base/Trailer Beats from a Premise.json +136 -0
  196. package/dist/examples/nodetool-base/Transcribe Audio.json +138 -0
  197. package/dist/examples/nodetool-base/Transcribe a Clip.json +198 -0
  198. package/dist/examples/nodetool-base/Translate Marketing Copy to German.json +135 -0
  199. package/dist/examples/nodetool-base/Translate a Script for Dubbing.json +224 -0
  200. package/dist/examples/nodetool-base/Trim Audio to a Range.json +203 -0
  201. package/dist/examples/nodetool-base/Trim a Blurb to Length.json +128 -0
  202. package/dist/examples/nodetool-base/Trim a Clip.json +180 -0
  203. package/dist/examples/nodetool-base/Turn Research Notes into a Comparison Table.json +136 -0
  204. package/dist/examples/nodetool-base/Turn Specs into Product Copy.json +135 -0
  205. package/dist/examples/nodetool-base/Turn a Changelog into Release Notes.json +135 -0
  206. package/dist/examples/nodetool-base/Turn a Logo into Print-Ready Vector.json +126 -0
  207. package/dist/examples/nodetool-base/Turn a Support Thread into a Bug Report.json +135 -0
  208. package/dist/examples/nodetool-base/Turn a Talk into a Blog Post.json +198 -0
  209. package/dist/examples/nodetool-base/Upscale a Still.json +186 -0
  210. package/dist/examples/nodetool-base/Vectorize a Generated Logo.json +162 -0
  211. package/dist/examples/nodetool-base/Video Restyle Studio.json +281 -0
  212. package/dist/examples/nodetool-base/Vignette a Portrait.json +124 -0
  213. package/dist/examples/nodetool-base/Voice a Script in Two Voices.json +217 -0
  214. package/dist/examples/nodetool-base/Warm Up a Cold Clip.json +124 -0
  215. package/dist/examples/nodetool-base/Watch a Folder, Act on What Lands.json +177 -0
  216. package/dist/examples/nodetool-base/Widen a Mono Voice.json +151 -0
  217. package/dist/examples/nodetool-base/Workflow As A Tool.json +257 -0
  218. package/dist/examples/nodetool-base/Write a Listing from the Product Photo.json +139 -0
  219. package/dist/examples/nodetool-base/Write the Prompt, Then Make the Image.json +200 -0
  220. package/dist/examples/nodetool-base/gallery_thumbnail_generator.ts +384 -0
  221. package/dist/external-mcp.d.ts +2 -2
  222. package/dist/external-mcp.d.ts.map +1 -1
  223. package/dist/external-mcp.js +13 -4
  224. package/dist/external-mcp.js.map +1 -1
  225. package/dist/fake-runtime.d.ts.map +1 -1
  226. package/dist/fake-runtime.js +5 -1
  227. package/dist/fake-runtime.js.map +1 -1
  228. package/dist/http-api.d.ts.map +1 -1
  229. package/dist/http-api.js +22 -4
  230. package/dist/http-api.js.map +1 -1
  231. package/dist/lib/json-body.d.ts +9 -0
  232. package/dist/lib/json-body.d.ts.map +1 -1
  233. package/dist/lib/json-body.js +12 -0
  234. package/dist/lib/json-body.js.map +1 -1
  235. package/dist/lib/local-client-origin.d.ts +38 -0
  236. package/dist/lib/local-client-origin.d.ts.map +1 -0
  237. package/dist/lib/local-client-origin.js +57 -0
  238. package/dist/lib/local-client-origin.js.map +1 -0
  239. package/dist/lib/localhost-trust.d.ts +18 -0
  240. package/dist/lib/localhost-trust.d.ts.map +1 -1
  241. package/dist/lib/localhost-trust.js +50 -0
  242. package/dist/lib/localhost-trust.js.map +1 -1
  243. package/dist/lib/openverse.d.ts +47 -0
  244. package/dist/lib/openverse.d.ts.map +1 -0
  245. package/dist/lib/openverse.js +255 -0
  246. package/dist/lib/openverse.js.map +1 -0
  247. package/dist/lib/public-routes.d.ts.map +1 -1
  248. package/dist/lib/public-routes.js +3 -0
  249. package/dist/lib/public-routes.js.map +1 -1
  250. package/dist/lib/timeline-bundle.d.ts +216 -0
  251. package/dist/lib/timeline-bundle.d.ts.map +1 -1
  252. package/dist/mcp-agent-tools.d.ts.map +1 -1
  253. package/dist/mcp-agent-tools.js +21 -6
  254. package/dist/mcp-agent-tools.js.map +1 -1
  255. package/dist/model-execution-availability.d.ts.map +1 -1
  256. package/dist/model-execution-availability.js +7 -2
  257. package/dist/model-execution-availability.js.map +1 -1
  258. package/dist/routes/analytics.d.ts +52 -0
  259. package/dist/routes/analytics.d.ts.map +1 -0
  260. package/dist/routes/analytics.js +99 -0
  261. package/dist/routes/analytics.js.map +1 -0
  262. package/dist/routes/applications.d.ts.map +1 -1
  263. package/dist/routes/applications.js +2 -1
  264. package/dist/routes/applications.js.map +1 -1
  265. package/dist/routes/js-scripts.d.ts.map +1 -1
  266. package/dist/routes/js-scripts.js +2 -1
  267. package/dist/routes/js-scripts.js.map +1 -1
  268. package/dist/routes/timeline-animations.d.ts.map +1 -1
  269. package/dist/routes/timeline-animations.js +2 -1
  270. package/dist/routes/timeline-animations.js.map +1 -1
  271. package/dist/routes/timeline-audio-bake.d.ts.map +1 -1
  272. package/dist/routes/timeline-audio-bake.js +2 -1
  273. package/dist/routes/timeline-audio-bake.js.map +1 -1
  274. package/dist/routes/timeline-isolate-subject.d.ts.map +1 -1
  275. package/dist/routes/timeline-isolate-subject.js +2 -1
  276. package/dist/routes/timeline-isolate-subject.js.map +1 -1
  277. package/dist/routes/timeline-track-object.d.ts.map +1 -1
  278. package/dist/routes/timeline-track-object.js +2 -1
  279. package/dist/routes/timeline-track-object.js.map +1 -1
  280. package/dist/screenshot-server.js +87 -49
  281. package/dist/screenshot-server.js.map +1 -1
  282. package/dist/server.d.ts.map +1 -1
  283. package/dist/server.js +42 -3
  284. package/dist/server.js.map +1 -1
  285. package/dist/session/job-execution.d.ts.map +1 -1
  286. package/dist/session/job-execution.js +5 -0
  287. package/dist/session/job-execution.js.map +1 -1
  288. package/dist/trpc/router.d.ts +2 -0
  289. package/dist/trpc/router.d.ts.map +1 -1
  290. package/dist/trpc/router.js +2 -0
  291. package/dist/trpc/router.js.map +1 -1
  292. package/dist/trpc/routers/documents.d.ts +1 -1
  293. package/dist/trpc/routers/games.d.ts +179 -0
  294. package/dist/trpc/routers/games.d.ts.map +1 -1
  295. package/dist/trpc/routers/games.js +1 -1
  296. package/dist/trpc/routers/games.js.map +1 -1
  297. package/dist/trpc/routers/models.d.ts +270 -0
  298. package/dist/trpc/routers/models.d.ts.map +1 -1
  299. package/dist/trpc/routers/models.js +37 -19
  300. package/dist/trpc/routers/models.js.map +1 -1
  301. package/dist/trpc/routers/openverse.d.ts +91 -0
  302. package/dist/trpc/routers/openverse.d.ts.map +1 -0
  303. package/dist/trpc/routers/openverse.js +98 -0
  304. package/dist/trpc/routers/openverse.js.map +1 -0
  305. package/dist/trpc/routers/projects.d.ts +6 -6
  306. package/dist/trpc/routers/timeline.d.ts +729 -6
  307. package/dist/trpc/routers/timeline.d.ts.map +1 -1
  308. package/dist/trpc/routers/timeline.js +1 -0
  309. package/dist/trpc/routers/timeline.js.map +1 -1
  310. package/dist/trpc/sandbox-coverage.d.ts.map +1 -1
  311. package/dist/trpc/sandbox-coverage.js +11 -0
  312. package/dist/trpc/sandbox-coverage.js.map +1 -1
  313. package/dist/websocket-client-session.d.ts +8 -0
  314. package/dist/websocket-client-session.d.ts.map +1 -1
  315. package/dist/websocket-client-session.js +31 -1
  316. package/dist/websocket-client-session.js.map +1 -1
  317. package/package.json +28 -28
@@ -0,0 +1,180 @@
1
+ {
2
+ "id": "",
3
+ "access": "private",
4
+ "created_at": "2026-07-30T14:00:00.000Z",
5
+ "updated_at": "2026-07-30T14:00:00.000Z",
6
+ "name": "Master a Voice Track",
7
+ "tool_name": null,
8
+ "description": "The three-stage chain a voice gets before it ships: compress to even out the peaks, lift the level, then limit so nothing clips. Order matters — limiting first would leave nothing for the compressor.",
9
+ "tags": [
10
+ "audio",
11
+ "example"
12
+ ],
13
+ "thumbnail": null,
14
+ "thumbnail_url": null,
15
+ "graph": {
16
+ "nodes": [
17
+ {
18
+ "id": "intro-comment",
19
+ "type": "nodetool.workflows.base_node.Comment",
20
+ "data": {
21
+ "comment": "# Master a Voice Track\n\nApplies a standard finishing chain to a recorded voice so it sounds even and never clips. The order matters, because limiting first would leave the compressor nothing to do.\n\n**How it works:** The \"Audio\" input goes to \"Compress\", which evens out peaks above -18 dB at a 3:1 ratio. \"Lift 3 dB\" raises the level, and \"Limit\" caps it at -1 dB. \"Result\" plays the mastered track. It runs locally with no model or key.\n\n**Try this:** Raise the ratio on \"Compress\" to 6 for a denser, broadcast-style sound."
22
+ },
23
+ "ui_properties": {
24
+ "position": {
25
+ "x": 0,
26
+ "y": 0
27
+ },
28
+ "zIndex": 0,
29
+ "width": 560,
30
+ "selectable": true,
31
+ "height": 266
32
+ },
33
+ "dynamic_properties": {},
34
+ "dynamic_outputs": {}
35
+ },
36
+ {
37
+ "id": "in",
38
+ "type": "nodetool.input.AudioInput",
39
+ "data": {
40
+ "name": "audio",
41
+ "value": {
42
+ "type": "audio",
43
+ "uri": "package://nodetool-base/recipe-inputs/voice.wav"
44
+ },
45
+ "description": "The recorded voice"
46
+ },
47
+ "ui_properties": {
48
+ "position": {
49
+ "x": 0,
50
+ "y": 381
51
+ },
52
+ "zIndex": 0,
53
+ "width": 280,
54
+ "selectable": true,
55
+ "title": "1 Audio"
56
+ },
57
+ "dynamic_properties": {},
58
+ "dynamic_outputs": {}
59
+ },
60
+ {
61
+ "id": "cmp",
62
+ "type": "lib.audio.Compress",
63
+ "data": {
64
+ "threshold": -18.0,
65
+ "ratio": 3.0,
66
+ "attack": 5.0,
67
+ "release": 60.0,
68
+ "auto_gain": true
69
+ },
70
+ "ui_properties": {
71
+ "position": {
72
+ "x": 380,
73
+ "y": 346
74
+ },
75
+ "zIndex": 0,
76
+ "width": 280,
77
+ "selectable": true,
78
+ "title": "2 Compress"
79
+ },
80
+ "dynamic_properties": {},
81
+ "dynamic_outputs": {}
82
+ },
83
+ {
84
+ "id": "gain",
85
+ "type": "lib.audio.Gain",
86
+ "data": {
87
+ "gain_db": 3.0
88
+ },
89
+ "ui_properties": {
90
+ "position": {
91
+ "x": 760,
92
+ "y": 402
93
+ },
94
+ "zIndex": 0,
95
+ "width": 280,
96
+ "selectable": true,
97
+ "title": "3 Lift 3 dB"
98
+ },
99
+ "dynamic_properties": {},
100
+ "dynamic_outputs": {}
101
+ },
102
+ {
103
+ "id": "lim",
104
+ "type": "lib.audio.Limiter",
105
+ "data": {
106
+ "threshold_db": -1.0,
107
+ "release_ms": 200.0,
108
+ "auto_gain": false
109
+ },
110
+ "ui_properties": {
111
+ "position": {
112
+ "x": 1140,
113
+ "y": 388
114
+ },
115
+ "zIndex": 0,
116
+ "width": 280,
117
+ "selectable": true,
118
+ "title": "4 Limit"
119
+ },
120
+ "dynamic_properties": {},
121
+ "dynamic_outputs": {}
122
+ },
123
+ {
124
+ "id": "out",
125
+ "type": "nodetool.output.Output",
126
+ "data": {
127
+ "name": "mastered"
128
+ },
129
+ "ui_properties": {
130
+ "position": {
131
+ "x": 1520,
132
+ "y": 440
133
+ },
134
+ "zIndex": 0,
135
+ "width": 280,
136
+ "selectable": true,
137
+ "title": "5 Result"
138
+ },
139
+ "dynamic_properties": {},
140
+ "dynamic_outputs": {}
141
+ }
142
+ ],
143
+ "edges": [
144
+ {
145
+ "id": "e1",
146
+ "source": "in",
147
+ "sourceHandle": "output",
148
+ "target": "cmp",
149
+ "targetHandle": "audio"
150
+ },
151
+ {
152
+ "id": "e2",
153
+ "source": "cmp",
154
+ "sourceHandle": "output",
155
+ "target": "gain",
156
+ "targetHandle": "audio"
157
+ },
158
+ {
159
+ "id": "e3",
160
+ "source": "gain",
161
+ "sourceHandle": "output",
162
+ "target": "lim",
163
+ "targetHandle": "audio"
164
+ },
165
+ {
166
+ "id": "e4",
167
+ "source": "lim",
168
+ "sourceHandle": "output",
169
+ "target": "out",
170
+ "targetHandle": "value"
171
+ }
172
+ ]
173
+ },
174
+ "input_schema": null,
175
+ "output_schema": null,
176
+ "settings": null,
177
+ "package_name": "nodetool-base",
178
+ "path": null,
179
+ "run_mode": null
180
+ }
@@ -0,0 +1,524 @@
1
+ {
2
+ "id": "3527dcf2a7a811f09339000078c92dc5",
3
+ "access": "public",
4
+ "created_at": "2025-10-12T22:16:23.220272",
5
+ "updated_at": "2026-07-17T12:00:00.000Z",
6
+ "name": "Meeting Transcript Summarizer",
7
+ "tool_name": null,
8
+ "description": "Summarize a meeting from a recording or a pasted transcript — either input works, and action items come back as structured rows instead of another paragraph to scan.",
9
+ "tags": [
10
+ "audio",
11
+ "llm",
12
+ "dataframe"
13
+ ],
14
+ "thumbnail": null,
15
+ "thumbnail_url": null,
16
+ "graph": {
17
+ "nodes": [
18
+ {
19
+ "id": "comment_intro",
20
+ "parent_id": null,
21
+ "type": "nodetool.workflows.base_node.Comment",
22
+ "data": {
23
+ "comment": "# 📄 Meeting Transcript Summarizer\n\nTurns a meeting into clean notes and a to-do list, from either a recording or a pasted transcript.\n\n**How it works:** \"Recording (optional)\" ships with a short sample meeting and goes to \"Transcribe recording\". \"Check: transcript pasted?\" tests whether \"Or paste a transcript (optional)\" is empty. Only one of the two \"If\" nodes fires: the pasted text wins when there is any, otherwise the transcribed text passes. \"Pick the transcript\" keeps whichever arrives, shown in \"Transcript\". \"Summarize\" writes Markdown notes with an overview, key points and open questions. \"Build action-item prompt\" feeds \"Extract action items\", a DataGenerator that returns rows with action, owner and due_date columns. Pick a speech recognition model on \"Transcribe recording\" and language models on \"Summarize\" and \"Extract action items\".\n\n**Try this:** Paste the minutes of a recent call into \"Or paste a transcript (optional)\" and run. \"Action Items\" lists each task with its owner, or \"Unassigned\" when none was named."
24
+ },
25
+ "ui_properties": {
26
+ "selected": false,
27
+ "position": {
28
+ "x": 0,
29
+ "y": 0
30
+ },
31
+ "zIndex": 0,
32
+ "width": 560,
33
+ "height": 403,
34
+ "selectable": true
35
+ },
36
+ "dynamic_properties": {},
37
+ "dynamic_outputs": {}
38
+ },
39
+ {
40
+ "id": "recording_input",
41
+ "parent_id": null,
42
+ "type": "nodetool.input.AudioInput",
43
+ "data": {
44
+ "name": "Recording",
45
+ "description": "A meeting recording to transcribe. Leave empty if you paste a transcript below instead.",
46
+ "value": {
47
+ "uri": "package://nodetool-base/recipe-inputs/meeting.wav",
48
+ "type": "audio"
49
+ }
50
+ },
51
+ "ui_properties": {
52
+ "selected": false,
53
+ "position": {
54
+ "x": 0,
55
+ "y": 701
56
+ },
57
+ "zIndex": 0,
58
+ "width": 280,
59
+ "title": "1️⃣ Recording (optional)",
60
+ "selectable": true
61
+ },
62
+ "dynamic_properties": {},
63
+ "dynamic_outputs": {}
64
+ },
65
+ {
66
+ "id": "transcript_input",
67
+ "parent_id": null,
68
+ "type": "nodetool.input.StringInput",
69
+ "data": {
70
+ "name": "Transcript",
71
+ "description": "Already have a transcript? Paste it here to skip transcription entirely.",
72
+ "value": "",
73
+ "line_mode": "multiline"
74
+ },
75
+ "ui_properties": {
76
+ "selected": false,
77
+ "position": {
78
+ "x": 0,
79
+ "y": 1100
80
+ },
81
+ "zIndex": 0,
82
+ "width": 280,
83
+ "title": "1️⃣ Or paste a transcript (optional)",
84
+ "selectable": true
85
+ },
86
+ "dynamic_properties": {},
87
+ "dynamic_outputs": {}
88
+ },
89
+ {
90
+ "id": "asr",
91
+ "parent_id": null,
92
+ "type": "nodetool.text.AutomaticSpeechRecognition",
93
+ "data": {
94
+ "model": {
95
+ "type": "asr_model",
96
+ "provider": "",
97
+ "id": "",
98
+ "name": "",
99
+ "path": null
100
+ }
101
+ },
102
+ "ui_properties": {
103
+ "selected": false,
104
+ "position": {
105
+ "x": 380,
106
+ "y": 765
107
+ },
108
+ "zIndex": 0,
109
+ "width": 280,
110
+ "selectable": true,
111
+ "title": "2️⃣ Transcribe recording"
112
+ },
113
+ "dynamic_properties": {},
114
+ "dynamic_outputs": {}
115
+ },
116
+ {
117
+ "id": "is_transcript_empty",
118
+ "parent_id": null,
119
+ "type": "nodetool.code.Code",
120
+ "data": {
121
+ "code": "const text = String(inputs.text ?? \"\");\nconst trimWhitespace = inputs.trim_whitespace === undefined ? true : Boolean(inputs.trim_whitespace);\nreturn { output: (trimWhitespace ? text.trim() : text).length === 0 };",
122
+ "packages": []
123
+ },
124
+ "ui_properties": {
125
+ "selected": false,
126
+ "position": {
127
+ "x": 380,
128
+ "y": 991
129
+ },
130
+ "zIndex": 0,
131
+ "width": 280,
132
+ "selectable": true,
133
+ "title": "Check: transcript pasted?"
134
+ },
135
+ "dynamic_properties": {
136
+ "trim_whitespace": true
137
+ },
138
+ "dynamic_outputs": {
139
+ "output": {
140
+ "type": "any",
141
+ "type_args": [],
142
+ "optional": false
143
+ }
144
+ }
145
+ },
146
+ {
147
+ "id": "use_transcribed_audio",
148
+ "parent_id": null,
149
+ "type": "nodetool.control.If",
150
+ "data": {},
151
+ "ui_properties": {
152
+ "selected": false,
153
+ "position": {
154
+ "x": 760,
155
+ "y": 907
156
+ },
157
+ "zIndex": 0,
158
+ "width": 280,
159
+ "selectable": true,
160
+ "title": "3️⃣ Use transcribed audio (if no paste)"
161
+ },
162
+ "dynamic_properties": {},
163
+ "dynamic_outputs": {}
164
+ },
165
+ {
166
+ "id": "use_pasted_transcript",
167
+ "parent_id": null,
168
+ "type": "nodetool.control.If",
169
+ "data": {},
170
+ "ui_properties": {
171
+ "selected": false,
172
+ "position": {
173
+ "x": 760,
174
+ "y": 1122
175
+ },
176
+ "zIndex": 0,
177
+ "width": 280,
178
+ "selectable": true,
179
+ "title": "3️⃣ Use pasted transcript (if any)"
180
+ },
181
+ "dynamic_properties": {},
182
+ "dynamic_outputs": {}
183
+ },
184
+ {
185
+ "id": "summarizer",
186
+ "parent_id": null,
187
+ "type": "nodetool.agents.Summarizer",
188
+ "data": {
189
+ "model": {
190
+ "type": "language_model",
191
+ "provider": "",
192
+ "id": "",
193
+ "name": "",
194
+ "path": null,
195
+ "supported_tasks": []
196
+ },
197
+ "system_prompt": "You are an expert meeting-notes writer. You will be given a raw meeting transcript.\n\nWrite a summary in Markdown with this exact structure:\n## Overview\nOne or two sentences on what the meeting was about and its outcome.\n\n## Key discussion points\n- Bullet list of the main topics and decisions, most important first.\n\n## Open questions\n- Anything left unresolved or needing follow-up. Write \"None\" if there aren't any.\n\nRules:\n- Base every statement strictly on the transcript — never invent names, numbers, or decisions.\n- Keep it to about 150 words total.\n- Do not repeat action items here; those are extracted separately."
198
+ },
199
+ "ui_properties": {
200
+ "selected": false,
201
+ "position": {
202
+ "x": 1520,
203
+ "y": 954
204
+ },
205
+ "zIndex": 0,
206
+ "width": 280,
207
+ "selectable": true,
208
+ "title": "4️⃣ Summarize"
209
+ },
210
+ "dynamic_properties": {},
211
+ "dynamic_outputs": {}
212
+ },
213
+ {
214
+ "id": "action_items_prompt",
215
+ "parent_id": null,
216
+ "type": "nodetool.text.Prompt",
217
+ "data": {
218
+ "prompt": "Read this meeting transcript and list every action item mentioned:\n\n{{TRANSCRIPT}}\n\nFor each action item capture who owns it and any deadline mentioned. If nothing was assigned to anyone, use \"Unassigned\". If no deadline was mentioned, use \"Not specified\". If the transcript has no action items at all, return zero rows."
219
+ },
220
+ "ui_properties": {
221
+ "selected": false,
222
+ "position": {
223
+ "x": 1520,
224
+ "y": 483
225
+ },
226
+ "zIndex": 0,
227
+ "width": 280,
228
+ "selectable": true,
229
+ "title": "4️⃣ Build action-item prompt"
230
+ },
231
+ "dynamic_properties": {
232
+ "TRANSCRIPT": ""
233
+ },
234
+ "dynamic_outputs": {}
235
+ },
236
+ {
237
+ "id": "action_items_generator",
238
+ "parent_id": null,
239
+ "type": "nodetool.generators.DataGenerator",
240
+ "data": {
241
+ "model": {
242
+ "type": "language_model",
243
+ "provider": "",
244
+ "id": "",
245
+ "name": "",
246
+ "path": null,
247
+ "supported_tasks": []
248
+ },
249
+ "input_text": "",
250
+ "max_tokens": 4096,
251
+ "columns": {
252
+ "type": "record_type",
253
+ "columns": [
254
+ {
255
+ "name": "action",
256
+ "data_type": "string",
257
+ "description": "The task or action item, phrased as a clear next step"
258
+ },
259
+ {
260
+ "name": "owner",
261
+ "data_type": "string",
262
+ "description": "Person or team responsible, or 'Unassigned' if not stated"
263
+ },
264
+ {
265
+ "name": "due_date",
266
+ "data_type": "string",
267
+ "description": "Deadline mentioned in the meeting, or 'Not specified'"
268
+ }
269
+ ]
270
+ }
271
+ },
272
+ "ui_properties": {
273
+ "selected": false,
274
+ "position": {
275
+ "x": 1900,
276
+ "y": 651
277
+ },
278
+ "zIndex": 0,
279
+ "width": 280,
280
+ "selectable": true,
281
+ "title": "5️⃣ Extract action items"
282
+ },
283
+ "dynamic_properties": {}
284
+ },
285
+ {
286
+ "id": "transcript_output",
287
+ "type": "nodetool.output.Output",
288
+ "data": {
289
+ "name": "Transcript"
290
+ },
291
+ "ui_properties": {
292
+ "position": {
293
+ "x": 1520,
294
+ "y": 1206
295
+ },
296
+ "zIndex": 0,
297
+ "width": 280,
298
+ "title": "Transcript",
299
+ "selectable": true,
300
+ "bypassed": false
301
+ },
302
+ "dynamic_properties": {},
303
+ "dynamic_outputs": {}
304
+ },
305
+ {
306
+ "id": "summary_output",
307
+ "type": "nodetool.output.Output",
308
+ "data": {
309
+ "name": "Summary"
310
+ },
311
+ "ui_properties": {
312
+ "position": {
313
+ "x": 1900,
314
+ "y": 1003
315
+ },
316
+ "zIndex": 0,
317
+ "width": 280,
318
+ "title": "Summary",
319
+ "selectable": true,
320
+ "bypassed": false
321
+ },
322
+ "dynamic_properties": {},
323
+ "dynamic_outputs": {}
324
+ },
325
+ {
326
+ "id": "action_items_output",
327
+ "type": "nodetool.output.Output",
328
+ "data": {
329
+ "name": "Action Items"
330
+ },
331
+ "ui_properties": {
332
+ "position": {
333
+ "x": 2280,
334
+ "y": 694
335
+ },
336
+ "zIndex": 0,
337
+ "width": 280,
338
+ "title": "Action Items",
339
+ "selectable": true,
340
+ "bypassed": false
341
+ },
342
+ "dynamic_properties": {},
343
+ "dynamic_outputs": {}
344
+ },
345
+ {
346
+ "id": "transcript_join",
347
+ "type": "nodetool.code.Code",
348
+ "data": {
349
+ "code": "// Only one If branch fires, so this receives a single string.\nconst v = inputs.strings;\nconst list = Array.isArray(v) ? v : v == null ? [] : [v];\nreturn { output: list.map((s) => String(s ?? \"\")).join(\"\\n\") };",
350
+ "packages": []
351
+ },
352
+ "ui_properties": {
353
+ "position": {
354
+ "x": 1140,
355
+ "y": 817
356
+ },
357
+ "selectable": true,
358
+ "title": "Pick the transcript"
359
+ },
360
+ "dynamic_properties": {},
361
+ "dynamic_inputs": {
362
+ "strings": {
363
+ "type": {
364
+ "type": "list",
365
+ "type_args": [
366
+ {
367
+ "type": "str"
368
+ }
369
+ ]
370
+ }
371
+ }
372
+ }
373
+ }
374
+ ],
375
+ "edges": [
376
+ {
377
+ "id": "e_recording_to_asr",
378
+ "source": "recording_input",
379
+ "sourceHandle": "output",
380
+ "target": "asr",
381
+ "targetHandle": "audio",
382
+ "ui_properties": {
383
+ "className": "audio"
384
+ }
385
+ },
386
+ {
387
+ "id": "e_transcript_to_isempty",
388
+ "source": "transcript_input",
389
+ "sourceHandle": "output",
390
+ "target": "is_transcript_empty",
391
+ "targetHandle": "text",
392
+ "ui_properties": {
393
+ "className": "str"
394
+ }
395
+ },
396
+ {
397
+ "id": "e_isempty_to_audio_condition",
398
+ "source": "is_transcript_empty",
399
+ "sourceHandle": "output",
400
+ "target": "use_transcribed_audio",
401
+ "targetHandle": "condition",
402
+ "ui_properties": {
403
+ "className": "bool"
404
+ }
405
+ },
406
+ {
407
+ "id": "e_isempty_to_transcript_condition",
408
+ "source": "is_transcript_empty",
409
+ "sourceHandle": "output",
410
+ "target": "use_pasted_transcript",
411
+ "targetHandle": "condition",
412
+ "ui_properties": {
413
+ "className": "bool"
414
+ }
415
+ },
416
+ {
417
+ "id": "e_asr_to_audio_branch_value",
418
+ "source": "asr",
419
+ "sourceHandle": "text",
420
+ "target": "use_transcribed_audio",
421
+ "targetHandle": "value",
422
+ "ui_properties": {
423
+ "className": "str"
424
+ }
425
+ },
426
+ {
427
+ "id": "e_transcript_to_manual_branch_value",
428
+ "source": "transcript_input",
429
+ "sourceHandle": "output",
430
+ "target": "use_pasted_transcript",
431
+ "targetHandle": "value",
432
+ "ui_properties": {
433
+ "className": "str"
434
+ }
435
+ },
436
+ {
437
+ "id": "e_audio_branch_to_summarizer",
438
+ "source": "use_transcribed_audio",
439
+ "sourceHandle": "if_true",
440
+ "target": "transcript_join",
441
+ "targetHandle": "strings",
442
+ "ui_properties": {
443
+ "className": "str"
444
+ },
445
+ "edge_type": "data"
446
+ },
447
+ {
448
+ "id": "e_manual_branch_to_summarizer",
449
+ "source": "use_pasted_transcript",
450
+ "sourceHandle": "if_false",
451
+ "target": "transcript_join",
452
+ "targetHandle": "strings",
453
+ "ui_properties": {
454
+ "className": "str"
455
+ },
456
+ "edge_type": "data"
457
+ },
458
+ {
459
+ "id": "e_action_prompt_to_generator",
460
+ "source": "action_items_prompt",
461
+ "sourceHandle": "output",
462
+ "target": "action_items_generator",
463
+ "targetHandle": "prompt",
464
+ "ui_properties": {
465
+ "className": "str"
466
+ }
467
+ },
468
+ {
469
+ "id": "e_summarizer_to_summary_out",
470
+ "source": "summarizer",
471
+ "sourceHandle": "text",
472
+ "target": "summary_output",
473
+ "targetHandle": "value",
474
+ "ui_properties": {
475
+ "className": "str"
476
+ },
477
+ "edge_type": "data"
478
+ },
479
+ {
480
+ "id": "e_generator_to_action_items_out",
481
+ "source": "action_items_generator",
482
+ "sourceHandle": "dataframe",
483
+ "target": "action_items_output",
484
+ "targetHandle": "value",
485
+ "ui_properties": {
486
+ "className": "dataframe"
487
+ },
488
+ "edge_type": "data"
489
+ },
490
+ {
491
+ "id": "101",
492
+ "source": "transcript_join",
493
+ "sourceHandle": "output",
494
+ "target": "action_items_prompt",
495
+ "targetHandle": "TRANSCRIPT",
496
+ "ui_properties": null
497
+ },
498
+ {
499
+ "id": "102",
500
+ "source": "transcript_join",
501
+ "sourceHandle": "output",
502
+ "target": "summarizer",
503
+ "targetHandle": "text",
504
+ "ui_properties": null
505
+ },
506
+ {
507
+ "id": "103",
508
+ "source": "transcript_join",
509
+ "sourceHandle": "output",
510
+ "target": "transcript_output",
511
+ "targetHandle": "value",
512
+ "ui_properties": null
513
+ }
514
+ ]
515
+ },
516
+ "input_schema": null,
517
+ "output_schema": null,
518
+ "settings": null,
519
+ "package_name": "nodetool-base",
520
+ "path": null,
521
+ "run_mode": null,
522
+ "required_providers": null,
523
+ "required_models": null
524
+ }