stream_weaver 0.3.0

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 (381) hide show
  1. checksums.yaml +7 -0
  2. data/.beads/.gitignore +77 -0
  3. data/.beads/README.md +81 -0
  4. data/.beads/config.yaml +54 -0
  5. data/.beads/metadata.json +7 -0
  6. data/.rspec +3 -0
  7. data/AGENTS.md +91 -0
  8. data/CHANGELOG.md +294 -0
  9. data/CLAUDE.md +67 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +565 -0
  12. data/Rakefile +13 -0
  13. data/assets/streamweaver-hero.jpg +0 -0
  14. data/bench/baselines/ledger.rb +58 -0
  15. data/bench/baselines/warroom.rb +51 -0
  16. data/bench/fixtures/ledger.rb +76 -0
  17. data/bench/fixtures/warroom.rb +60 -0
  18. data/bench/results/6daf8b8.md +102 -0
  19. data/bench/results/c8d749b.md +102 -0
  20. data/bench/results/eb06ab9.md +102 -0
  21. data/bench/run.rb +151 -0
  22. data/bench/support.rb +84 -0
  23. data/copy_this/dto_run_sample_run_7631.html +220 -0
  24. data/docs/SERVICE_MODE.md +302 -0
  25. data/docs/architecture/how_streamweaver_works.md +772 -0
  26. data/docs/blog/2026-01-16-streamweaver-introduction.md +515 -0
  27. data/docs/bug-2026-08-31-canvas-bridge-socket-collision.md +83 -0
  28. data/docs/canvas-ipc-session-summary.md +127 -0
  29. data/docs/canvas-panel-workflow.md +172 -0
  30. data/docs/canvas-read.md +147 -0
  31. data/docs/canvas-roadmap.md +275 -0
  32. data/docs/case-studies/2026-09-03-didx-canvas-read-shelf.md +147 -0
  33. data/docs/claude-code-companion-skill-spec.md +567 -0
  34. data/docs/components_reference.md +1223 -0
  35. data/docs/crud-patterns.md +265 -0
  36. data/docs/endpoints.md +122 -0
  37. data/docs/for_llms.md +1 -0
  38. data/docs/form-patterns.md +165 -0
  39. data/docs/frontend-only.md +169 -0
  40. data/docs/html-artifact-audit.md +238 -0
  41. data/docs/ideas/2025-01-01-as-a-service.md +203 -0
  42. data/docs/ideas/2026-01-16-charm-tui-exploration.md +542 -0
  43. data/docs/ideas/2026-08-27-static-doc-shelf-export.md +153 -0
  44. data/docs/ideas/dhh-review-future-refactors.md +142 -0
  45. data/docs/opal-jamstack.md +47 -0
  46. data/docs/opal-npm-direction.md +184 -0
  47. data/docs/opal-spike-findings.md +194 -0
  48. data/docs/plans/2025-12-16-form-blocks-design.md +124 -0
  49. data/docs/plans/2025-12-30-examples-browser-design.md +152 -0
  50. data/docs/plans/2026-01-02-charts-design.md +288 -0
  51. data/docs/plans/2026-01-10-canvas-ipc-design.md +247 -0
  52. data/docs/plans/2026-01-19-cabinet-control-components.md +176 -0
  53. data/docs/plans/2026-01-26-gem-release-and-panel.md +140 -0
  54. data/docs/plans/canvas-claude-project-design.md +238 -0
  55. data/docs/plans/canvas-doc-location-and-discovery.md +32 -0
  56. data/docs/plans/org-doc-preview-surfaces.md +293 -0
  57. data/docs/plans/shadcn-polish-plan.md +417 -0
  58. data/docs/porting-artifacts.md +252 -0
  59. data/docs/reference/agent-skills-comparison.md +369 -0
  60. data/docs/reference/travel-state-prd.artifact.html +780 -0
  61. data/docs/research/2026-08-17-hotwire-alike-landscape.md +268 -0
  62. data/docs/research/2026-08-17-hotwire-concept-map.md +404 -0
  63. data/docs/research/2026-08-22-lazy-fragments-trigger-decision.md +246 -0
  64. data/docs/research/2026-08-22-learnhotwire-syllabus-coverage.md +239 -0
  65. data/docs/research/frontend-only-matrix.md +278 -0
  66. data/docs/research/streamweaver-way-spike-findings.md +529 -0
  67. data/docs/resource-dsl.md +342 -0
  68. data/docs/routing.md +302 -0
  69. data/docs/ruby-ui-comparison.md +319 -0
  70. data/docs/shared-dsl-fragments.md +356 -0
  71. data/docs/streamweaver-for-ai-agents.md +401 -0
  72. data/docs/streamweaver-frontend-vision.md +123 -0
  73. data/docs/streamweaver_canvas/glimmer_initial_final_layer.rb +77 -0
  74. data/docs/streamweaver_canvas/save_example.rb +9 -0
  75. data/docs/templates.md +213 -0
  76. data/docs/testing.md +155 -0
  77. data/docs/theming-hooks.md +281 -0
  78. data/docs/tutorials/the-streamweaver-way.md +882 -0
  79. data/docs/university/capability-inventory.md +137 -0
  80. data/docs/university/dependency-survey.md +114 -0
  81. data/docs/university/design-spec.md +217 -0
  82. data/docs/university/mockups/code-block-doc-theme-dark.png +0 -0
  83. data/docs/university/mockups/code-block-doc-theme-light.png +0 -0
  84. data/docs/university/mockups/course-list-dark.png +0 -0
  85. data/docs/university/mockups/course-list-light.png +0 -0
  86. data/docs/university/mockups/course_canvas_mockup.rb +741 -0
  87. data/docs/university/mockups/step-screen-dark.png +0 -0
  88. data/docs/university/mockups/step-screen-light.png +0 -0
  89. data/docs/university/roadmap.md +72 -0
  90. data/docs/university/send-to-coworker.md +77 -0
  91. data/docs/university/worker-session-mining.md +109 -0
  92. data/docs/visual/browser-rendering-spike.md +173 -0
  93. data/docs/visual/builder-visual-plan-analysis.md +378 -0
  94. data/docs/visual/sw-plan-format-exploration.md +511 -0
  95. data/docs/visual/sw-plan-rendering-deep-dive.md +453 -0
  96. data/docs/visual-skills/PROGRESS.md +60 -0
  97. data/docs/visual-skills/SESSION-CONTEXT.md +207 -0
  98. data/docs/visual-skills/analysis/components.md +317 -0
  99. data/docs/visual-skills/analysis/overlap.md +360 -0
  100. data/docs/visual-skills/analysis/pi-design-deck.md +1102 -0
  101. data/docs/visual-skills/analysis/streamweaver-inventory.md +93 -0
  102. data/docs/visual-skills/analysis/unified-specs.feature +1003 -0
  103. data/docs/visual-skills/analysis/visual-explainer.md +964 -0
  104. data/docs/visual-skills/blog/blog-series-outline.md +39 -0
  105. data/docs/visual-skills/blog/token-efficiency.md +73 -0
  106. data/docs/visual-skills/design/architecture.md +1725 -0
  107. data/docs/visual-skills/design/codex-review.md +340 -0
  108. data/docs/visual-skills/design/dhh-review.md +209 -0
  109. data/docs/visual-skills/design/evolution.md +100 -0
  110. data/docs/visual-skills/design/gemini-review.md +55 -0
  111. data/docs/visual-skills/design/review-synthesis.md +149 -0
  112. data/docs/visual-skills/implementation/STATE.md +22 -0
  113. data/docs/visual-skills/implementation/plan.md +347 -0
  114. data/docs/visual-skills/implementation/spike-findings.md +237 -0
  115. data/docs/visual-skills/implementation/tasks.md +702 -0
  116. data/docs/visual-skills/lessons-learned/process.md +145 -0
  117. data/examples/README.md +96 -0
  118. data/examples/advanced/all_components.rb +177 -0
  119. data/examples/advanced/examples_browser.rb +394 -0
  120. data/examples/advanced/teachables_browser.rb +261 -0
  121. data/examples/advanced/theme_tweaker.rb +366 -0
  122. data/examples/advanced/tutorial.rb +1528 -0
  123. data/examples/agentic/agentic_form.rb +30 -0
  124. data/examples/agentic/agentic_form_autoclose.rb +30 -0
  125. data/examples/agentic/cultivation_tracker.rb +69 -0
  126. data/examples/basic/hello_world.rb +22 -0
  127. data/examples/basic/opal_tabs_table.rb +44 -0
  128. data/examples/basic/todo_list.rb +39 -0
  129. data/examples/button_loading_test.rb +36 -0
  130. data/examples/canvas/mermaid_canvas_demo.sh +151 -0
  131. data/examples/charts/bar_chart_demo.rb +57 -0
  132. data/examples/charts/line_chart_demo.rb +73 -0
  133. data/examples/charts/pie_area_demo.rb +87 -0
  134. data/examples/charts/stacked_bar_chart_demo.rb +69 -0
  135. data/examples/claude_code/README.md +85 -0
  136. data/examples/claude_code/codebreaker/.claude/commands/infiltrate.md +632 -0
  137. data/examples/claude_code/codebreaker/.claude/settings.json +11 -0
  138. data/examples/claude_code/codebreaker/.claude/settings.local.json +17 -0
  139. data/examples/claude_code/codebreaker/.claude/skills/infiltrate.md +0 -0
  140. data/examples/claude_code/codebreaker/README.md +213 -0
  141. data/examples/claude_code/tutorial/.claude/commands/learn.md +453 -0
  142. data/examples/claude_code/tutorial/README.md +102 -0
  143. data/examples/claude_code/verification_flow/.claude/commands/verify.md +171 -0
  144. data/examples/claude_code/verification_flow/README.md +126 -0
  145. data/examples/components/annotated_code_demo.rb +54 -0
  146. data/examples/components/callout_demo.rb +33 -0
  147. data/examples/components/checkbox_group_demo.rb +46 -0
  148. data/examples/components/design_review.css +468 -0
  149. data/examples/components/design_review_demo.rb +44 -0
  150. data/examples/components/design_review_dsl.rb +300 -0
  151. data/examples/components/diff_block_demo.rb +112 -0
  152. data/examples/components/events_demo.rb +184 -0
  153. data/examples/components/form_demo.rb +62 -0
  154. data/examples/components/lesson_demo.rb +53 -0
  155. data/examples/components/markdown_demo.rb +110 -0
  156. data/examples/components/mermaid_demo.rb +166 -0
  157. data/examples/components/pareto_set.rb +64 -0
  158. data/examples/components/prd_demo.rb +21 -0
  159. data/examples/components/prd_dsl.rb +385 -0
  160. data/examples/components/quiz_demo.rb +47 -0
  161. data/examples/components/run_viewer_demo.rb +100 -0
  162. data/examples/components/score_and_collapsible_demo.rb +82 -0
  163. data/examples/components/select_stale_value_smoke_test.rb +39 -0
  164. data/examples/components/table_demo.rb +247 -0
  165. data/examples/components/timer_with_state_demo.rb +58 -0
  166. data/examples/components/todo_due_dates.rb +63 -0
  167. data/examples/components/uat_gaps_demo.rb +112 -0
  168. data/examples/dashboard/feed_simulator.rb +60 -0
  169. data/examples/dashboard/live_dashboard.rb +80 -0
  170. data/examples/dashboard_components.rb +108 -0
  171. data/examples/deferred_fragments_demo.rb +62 -0
  172. data/examples/generate_more_spike/README.md +63 -0
  173. data/examples/generate_more_spike/app.rb +441 -0
  174. data/examples/git_health.sh +401 -0
  175. data/examples/layout/layout_components_demo.rb +174 -0
  176. data/examples/layout/modal_demo.rb +215 -0
  177. data/examples/layout/navigation_demo.rb +227 -0
  178. data/examples/layout/route_tabs_demo.rb +52 -0
  179. data/examples/layout/routing_demo.rb +52 -0
  180. data/examples/layout/scroll_box_demo.rb +154 -0
  181. data/examples/lazy_fragments_demo.rb +151 -0
  182. data/examples/my_todos/README.md +29 -0
  183. data/examples/my_todos/my_todos.rb +312 -0
  184. data/examples/my_todos/store.rb +86 -0
  185. data/examples/opal/reactive_demo.rb +62 -0
  186. data/examples/opal/scenarios/s1_counter.rb +15 -0
  187. data/examples/opal/scenarios/s2_search_filter.rb +17 -0
  188. data/examples/opal/scenarios/s3_sibling_tabs.rb +25 -0
  189. data/examples/opal/scenarios/s4_shopping_cart.rb +34 -0
  190. data/examples/opal/scenarios/s5_watch.rb +39 -0
  191. data/examples/opal/scenarios/s6_on_start.rb +20 -0
  192. data/examples/opal/scenarios/s7_wizard.rb +33 -0
  193. data/examples/opal/scenarios/s8_loan_calculator.rb +21 -0
  194. data/examples/opal/scenarios/s9_dashboard.rb +27 -0
  195. data/examples/operations_dashboard_demo.rb +167 -0
  196. data/examples/panel_demo.sh +447 -0
  197. data/examples/parity/assets/tyrion_slice.css +86 -0
  198. data/examples/parity/rivet_people_slice.rb +182 -0
  199. data/examples/parity/tyrion_components.css +777 -0
  200. data/examples/parity/tyrion_warroom_components.rb +414 -0
  201. data/examples/parity/tyrion_warroom_slice.rb +549 -0
  202. data/examples/puma_dev/README.md +124 -0
  203. data/examples/puma_dev/config.ru +34 -0
  204. data/examples/puma_dev/standalone_app.rb +34 -0
  205. data/examples/scaffolding/blog.rb +49 -0
  206. data/examples/scaffolding/utf_lite.rb +105 -0
  207. data/examples/styling/feedback_demo.rb +229 -0
  208. data/examples/styling/style_showcase.rb +172 -0
  209. data/examples/styling/theme_demo.rb +508 -0
  210. data/examples/timer_health_checker.rb +111 -0
  211. data/examples/timer_showcase.rb +131 -0
  212. data/examples/tutorials/render_markdown.rb +112 -0
  213. data/examples/tutorials/streamweaver_way_tutorial.rb +44 -0
  214. data/examples/tutorials/tutorial_content.rb +1082 -0
  215. data/examples/visual_skills/design_deck_demo.rb +314 -0
  216. data/examples/visual_skills/explainer_demo.rb +499 -0
  217. data/exe/streamweaver +9 -0
  218. data/gsd/ROADMAP-1.0.md +167 -0
  219. data/gsd/STATE.md +13 -0
  220. data/gsd/research/market-positioning-research.md +139 -0
  221. data/gsd/research/production-patterns-research.md +270 -0
  222. data/gsd/research/repo-audit-1.0.md +274 -0
  223. data/lib/stream_weaver/action_token.rb +58 -0
  224. data/lib/stream_weaver/adapter/alpinejs.rb +8249 -0
  225. data/lib/stream_weaver/adapter/base.rb +591 -0
  226. data/lib/stream_weaver/adapter/opal.rb +334 -0
  227. data/lib/stream_weaver/adapter/static.rb +1118 -0
  228. data/lib/stream_weaver/admin.rb +176 -0
  229. data/lib/stream_weaver/app.rb +1821 -0
  230. data/lib/stream_weaver/assets/js/sw-copy.js +50 -0
  231. data/lib/stream_weaver/assets/js/sw-heredoc-rewrite.js +68 -0
  232. data/lib/stream_weaver/assets/js/sw-keyboard.js +165 -0
  233. data/lib/stream_weaver/assets/js/sw-mermaid-zoom.js +621 -0
  234. data/lib/stream_weaver/assets/js/sw-route-tabs.js +53 -0
  235. data/lib/stream_weaver/assets/js/sw-sidebar-toc.js +116 -0
  236. data/lib/stream_weaver/assets/js/sw-slide-nav.js +103 -0
  237. data/lib/stream_weaver/canvas/bridge.rb +239 -0
  238. data/lib/stream_weaver/canvas/bridge_server.rb +646 -0
  239. data/lib/stream_weaver/canvas/client.rb +298 -0
  240. data/lib/stream_weaver/canvas/doc_roots.rb +233 -0
  241. data/lib/stream_weaver/canvas/doc_store.rb +252 -0
  242. data/lib/stream_weaver/canvas/gist_publisher.rb +264 -0
  243. data/lib/stream_weaver/canvas/gist_save_handler.rb +89 -0
  244. data/lib/stream_weaver/canvas/gist_store.rb +135 -0
  245. data/lib/stream_weaver/canvas/helpers.rb +109 -0
  246. data/lib/stream_weaver/canvas/history.rb +90 -0
  247. data/lib/stream_weaver/canvas/protocol.rb +86 -0
  248. data/lib/stream_weaver/canvas/reader.rb +853 -0
  249. data/lib/stream_weaver/canvas/save_doc_widget.rb +457 -0
  250. data/lib/stream_weaver/canvas/scroll_top_hint.rb +21 -0
  251. data/lib/stream_weaver/canvas/session.rb +132 -0
  252. data/lib/stream_weaver/cli.rb +3235 -0
  253. data/lib/stream_weaver/component_assets.rb +70 -0
  254. data/lib/stream_weaver/component_registry.rb +67 -0
  255. data/lib/stream_weaver/component_renderer.rb +48 -0
  256. data/lib/stream_weaver/components/annotated_code.rb +53 -0
  257. data/lib/stream_weaver/components/api_endpoint.rb +42 -0
  258. data/lib/stream_weaver/components/callout.rb +59 -0
  259. data/lib/stream_weaver/components/chart.rb +84 -0
  260. data/lib/stream_weaver/components/code_block.rb +77 -0
  261. data/lib/stream_weaver/components/comparison.rb +39 -0
  262. data/lib/stream_weaver/components/decision.rb +38 -0
  263. data/lib/stream_weaver/components/deck/close_overlay.rb +84 -0
  264. data/lib/stream_weaver/components/deck/confirmation_bar.rb +60 -0
  265. data/lib/stream_weaver/components/deck/deck_option.rb +61 -0
  266. data/lib/stream_weaver/components/deck/deck_slide.rb +77 -0
  267. data/lib/stream_weaver/components/deck/deck_state.rb +469 -0
  268. data/lib/stream_weaver/components/deck/deck_summary.rb +73 -0
  269. data/lib/stream_weaver/components/deck/design_deck.rb +60 -0
  270. data/lib/stream_weaver/components/deck/generate_more_controls.rb +84 -0
  271. data/lib/stream_weaver/components/deck/model_selector.rb +84 -0
  272. data/lib/stream_weaver/components/deck/skeleton_placeholder.rb +36 -0
  273. data/lib/stream_weaver/components/diff_block.rb +125 -0
  274. data/lib/stream_weaver/components/doc_header.rb +57 -0
  275. data/lib/stream_weaver/components/image_block.rb +70 -0
  276. data/lib/stream_weaver/components/implementation_map.rb +33 -0
  277. data/lib/stream_weaver/components/keyboard_shortcuts.rb +94 -0
  278. data/lib/stream_weaver/components/kpi_dashboard.rb +78 -0
  279. data/lib/stream_weaver/components/mermaid.rb +79 -0
  280. data/lib/stream_weaver/components/pipeline.rb +63 -0
  281. data/lib/stream_weaver/components/sidebar_toc.rb +46 -0
  282. data/lib/stream_weaver/components/slide_container.rb +141 -0
  283. data/lib/stream_weaver/components/timeline_event.rb +58 -0
  284. data/lib/stream_weaver/components/wireframe.rb +29 -0
  285. data/lib/stream_weaver/components/wireframe_block.rb +34 -0
  286. data/lib/stream_weaver/components.rb +2711 -0
  287. data/lib/stream_weaver/css.rb +230 -0
  288. data/lib/stream_weaver/dev_fallback_overlay.rb +61 -0
  289. data/lib/stream_weaver/display_dsl.rb +1004 -0
  290. data/lib/stream_weaver/export/html_exporter.rb +478 -0
  291. data/lib/stream_weaver/feed.rb +34 -0
  292. data/lib/stream_weaver/feed_builder.rb +31 -0
  293. data/lib/stream_weaver/fonts.rb +33 -0
  294. data/lib/stream_weaver/interaction_runner.rb +487 -0
  295. data/lib/stream_weaver/iterm.rb +460 -0
  296. data/lib/stream_weaver/layout_registry.rb +92 -0
  297. data/lib/stream_weaver/opal/bridge.rb +52 -0
  298. data/lib/stream_weaver/opal/builder.rb +193 -0
  299. data/lib/stream_weaver/opal/env.rb +29 -0
  300. data/lib/stream_weaver/opal/reactive_state.rb +75 -0
  301. data/lib/stream_weaver/opal/regexp_anchor_patch.rb +62 -0
  302. data/lib/stream_weaver/opal/renderer.rb +77 -0
  303. data/lib/stream_weaver/opal/runtime.rb +250 -0
  304. data/lib/stream_weaver/opal/shell.rb +145 -0
  305. data/lib/stream_weaver/opal/string_bridge.rb +50 -0
  306. data/lib/stream_weaver/opal/stubs/diff.min.js +1 -0
  307. data/lib/stream_weaver/opal/stubs/digest.rb +15 -0
  308. data/lib/stream_weaver/opal/stubs/marked.umd.js +79 -0
  309. data/lib/stream_weaver/opal/stubs/md5.rb +3 -0
  310. data/lib/stream_weaver/opal/stubs/morphdom.min.js +775 -0
  311. data/lib/stream_weaver/opal/stubs/prism-tomorrow.min.css +1 -0
  312. data/lib/stream_weaver/opal/stubs/prism.min.js +1967 -0
  313. data/lib/stream_weaver/opal_entry.rb +136 -0
  314. data/lib/stream_weaver/org/inline.rb +95 -0
  315. data/lib/stream_weaver/org/reader.rb +561 -0
  316. data/lib/stream_weaver/org/recording_context.rb +86 -0
  317. data/lib/stream_weaver/org/source_splitter.rb +63 -0
  318. data/lib/stream_weaver/org/writer.rb +300 -0
  319. data/lib/stream_weaver/page_shell.rb +530 -0
  320. data/lib/stream_weaver/portfile.rb +79 -0
  321. data/lib/stream_weaver/pushable.rb +42 -0
  322. data/lib/stream_weaver/resource/default_views.rb +111 -0
  323. data/lib/stream_weaver/resource/field_input.rb +25 -0
  324. data/lib/stream_weaver/resource/state_keys.rb +16 -0
  325. data/lib/stream_weaver/resource/store.rb +18 -0
  326. data/lib/stream_weaver/resource.rb +104 -0
  327. data/lib/stream_weaver/server.rb +1471 -0
  328. data/lib/stream_weaver/service.rb +1240 -0
  329. data/lib/stream_weaver/service_client.rb +104 -0
  330. data/lib/stream_weaver/session_store.rb +186 -0
  331. data/lib/stream_weaver/skills/streamweaver-canvas-safe/SKILL.md +66 -0
  332. data/lib/stream_weaver/skills/streamweaver-canvas-safe/examples/canvas-safe-showcase.rb +98 -0
  333. data/lib/stream_weaver/skills/streamweaver-canvas-safe/references/actions-and-buttons.md +47 -0
  334. data/lib/stream_weaver/skills/streamweaver-canvas-safe/references/charts-and-diagrams.md +38 -0
  335. data/lib/stream_weaver/skills/streamweaver-canvas-safe/references/deck.md +32 -0
  336. data/lib/stream_weaver/skills/streamweaver-canvas-safe/references/inputs-and-forms.md +65 -0
  337. data/lib/stream_weaver/skills/streamweaver-canvas-safe/references/tabs-and-navigation.md +53 -0
  338. data/lib/stream_weaver/skills/streamweaver-doc-builder/SKILL.md +298 -0
  339. data/lib/stream_weaver/skills/streamweaver-visual-companion/SKILL.md +130 -0
  340. data/lib/stream_weaver/skills/streamweaver-visual-companion/examples/design-review-example.css +468 -0
  341. data/lib/stream_weaver/skills/streamweaver-visual-companion/examples/design-review-example.rb +39 -0
  342. data/lib/stream_weaver/skills/streamweaver-visual-companion/examples/design-review-example_dsl.rb +300 -0
  343. data/lib/stream_weaver/skills/streamweaver-visual-companion/examples/doc-parity-example.rb +24 -0
  344. data/lib/stream_weaver/skills/streamweaver-visual-companion/examples/doc-parity-example_dsl.rb +385 -0
  345. data/lib/stream_weaver/skills/streamweaver-visual-companion/references/checkpoints-and-forms.md +28 -0
  346. data/lib/stream_weaver/skills/streamweaver-visual-companion/references/cleanup-and-panel.md +44 -0
  347. data/lib/stream_weaver/skills/streamweaver-visual-companion/references/example-gallery.md +8 -0
  348. data/lib/stream_weaver/skills/streamweaver-visual-companion/references/persistence.md +58 -0
  349. data/lib/stream_weaver/skills/streamweaver-way/SKILL.md +396 -0
  350. data/lib/stream_weaver/skills/visual-plan/SKILL.md +201 -0
  351. data/lib/stream_weaver/skills/visual-recap/SKILL.md +244 -0
  352. data/lib/stream_weaver/streamer.rb +63 -0
  353. data/lib/stream_weaver/templates/choices.rb +149 -0
  354. data/lib/stream_weaver/templates/code.rb +157 -0
  355. data/lib/stream_weaver/templates/confirm.rb +110 -0
  356. data/lib/stream_weaver/templates/diff.rb +195 -0
  357. data/lib/stream_weaver/templates/info.rb +142 -0
  358. data/lib/stream_weaver/templates/table.rb +169 -0
  359. data/lib/stream_weaver/templates/wizard.rb +271 -0
  360. data/lib/stream_weaver/theme/auto_mode.rb +116 -0
  361. data/lib/stream_weaver/theme/presets.rb +555 -0
  362. data/lib/stream_weaver/theme.rb +639 -0
  363. data/lib/stream_weaver/university/canvas.rb +924 -0
  364. data/lib/stream_weaver/university/course.rb +699 -0
  365. data/lib/stream_weaver/university/demos/counter.rb +33 -0
  366. data/lib/stream_weaver/university/demos/dashboard.rb +147 -0
  367. data/lib/stream_weaver/university/demos/decision_form.rb +143 -0
  368. data/lib/stream_weaver/university/demos.rb +50 -0
  369. data/lib/stream_weaver/university/listener.rb +467 -0
  370. data/lib/stream_weaver/university/progress.rb +201 -0
  371. data/lib/stream_weaver/university/runner.rb +138 -0
  372. data/lib/stream_weaver/university/scripts/growing_doc.rb +609 -0
  373. data/lib/stream_weaver/university/scripts/growing_doc_state.rb +91 -0
  374. data/lib/stream_weaver/utils.rb +31 -0
  375. data/lib/stream_weaver/version.rb +5 -0
  376. data/lib/stream_weaver/views/canvas/reader_layout.erb +800 -0
  377. data/lib/stream_weaver/views.rb +3940 -0
  378. data/lib/stream_weaver.rb +122 -0
  379. data/llms.txt +1269 -0
  380. data/sig/stream_weaver.rbs +4 -0
  381. metadata +598 -0
@@ -0,0 +1,4 @@
1
+ module StreamWeaver
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,598 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stream_weaver
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Forrest Chang
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2026-09-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sinatra
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sinatra-contrib
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: phlex
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: puma
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '6.4'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '6.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rackup
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: kramdown
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.4'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: kramdown-parser-gfm
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.1'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.1'
111
+ - !ruby/object:Gem::Dependency
112
+ name: ostruct
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: diffy
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.4'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.4'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rack-test
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '2.1'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '2.1'
153
+ - !ruby/object:Gem::Dependency
154
+ name: yard
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.9'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '0.9'
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.22'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.22'
181
+ description: StreamWeaver enables GenAI agents and developers to rapidly build interactive
182
+ web UIs using a declarative Ruby DSL. Features single-file execution, automatic
183
+ state management, and agentic mode for AI-driven workflows.
184
+ email:
185
+ - fkc_email-ruby@yahoo.com
186
+ executables:
187
+ - streamweaver
188
+ extensions: []
189
+ extra_rdoc_files: []
190
+ files:
191
+ - ".beads/.gitignore"
192
+ - ".beads/README.md"
193
+ - ".beads/config.yaml"
194
+ - ".beads/metadata.json"
195
+ - ".rspec"
196
+ - AGENTS.md
197
+ - CHANGELOG.md
198
+ - CLAUDE.md
199
+ - LICENSE.txt
200
+ - README.md
201
+ - Rakefile
202
+ - assets/streamweaver-hero.jpg
203
+ - bench/baselines/ledger.rb
204
+ - bench/baselines/warroom.rb
205
+ - bench/fixtures/ledger.rb
206
+ - bench/fixtures/warroom.rb
207
+ - bench/results/6daf8b8.md
208
+ - bench/results/c8d749b.md
209
+ - bench/results/eb06ab9.md
210
+ - bench/run.rb
211
+ - bench/support.rb
212
+ - copy_this/dto_run_sample_run_7631.html
213
+ - docs/SERVICE_MODE.md
214
+ - docs/architecture/how_streamweaver_works.md
215
+ - docs/blog/2026-01-16-streamweaver-introduction.md
216
+ - docs/bug-2026-08-31-canvas-bridge-socket-collision.md
217
+ - docs/canvas-ipc-session-summary.md
218
+ - docs/canvas-panel-workflow.md
219
+ - docs/canvas-read.md
220
+ - docs/canvas-roadmap.md
221
+ - docs/case-studies/2026-09-03-didx-canvas-read-shelf.md
222
+ - docs/claude-code-companion-skill-spec.md
223
+ - docs/components_reference.md
224
+ - docs/crud-patterns.md
225
+ - docs/endpoints.md
226
+ - docs/for_llms.md
227
+ - docs/form-patterns.md
228
+ - docs/frontend-only.md
229
+ - docs/html-artifact-audit.md
230
+ - docs/ideas/2025-01-01-as-a-service.md
231
+ - docs/ideas/2026-01-16-charm-tui-exploration.md
232
+ - docs/ideas/2026-08-27-static-doc-shelf-export.md
233
+ - docs/ideas/dhh-review-future-refactors.md
234
+ - docs/opal-jamstack.md
235
+ - docs/opal-npm-direction.md
236
+ - docs/opal-spike-findings.md
237
+ - docs/plans/2025-12-16-form-blocks-design.md
238
+ - docs/plans/2025-12-30-examples-browser-design.md
239
+ - docs/plans/2026-01-02-charts-design.md
240
+ - docs/plans/2026-01-10-canvas-ipc-design.md
241
+ - docs/plans/2026-01-19-cabinet-control-components.md
242
+ - docs/plans/2026-01-26-gem-release-and-panel.md
243
+ - docs/plans/canvas-claude-project-design.md
244
+ - docs/plans/canvas-doc-location-and-discovery.md
245
+ - docs/plans/org-doc-preview-surfaces.md
246
+ - docs/plans/shadcn-polish-plan.md
247
+ - docs/porting-artifacts.md
248
+ - docs/reference/agent-skills-comparison.md
249
+ - docs/reference/travel-state-prd.artifact.html
250
+ - docs/research/2026-08-17-hotwire-alike-landscape.md
251
+ - docs/research/2026-08-17-hotwire-concept-map.md
252
+ - docs/research/2026-08-22-lazy-fragments-trigger-decision.md
253
+ - docs/research/2026-08-22-learnhotwire-syllabus-coverage.md
254
+ - docs/research/frontend-only-matrix.md
255
+ - docs/research/streamweaver-way-spike-findings.md
256
+ - docs/resource-dsl.md
257
+ - docs/routing.md
258
+ - docs/ruby-ui-comparison.md
259
+ - docs/shared-dsl-fragments.md
260
+ - docs/streamweaver-for-ai-agents.md
261
+ - docs/streamweaver-frontend-vision.md
262
+ - docs/streamweaver_canvas/glimmer_initial_final_layer.rb
263
+ - docs/streamweaver_canvas/save_example.rb
264
+ - docs/templates.md
265
+ - docs/testing.md
266
+ - docs/theming-hooks.md
267
+ - docs/tutorials/the-streamweaver-way.md
268
+ - docs/university/capability-inventory.md
269
+ - docs/university/dependency-survey.md
270
+ - docs/university/design-spec.md
271
+ - docs/university/mockups/code-block-doc-theme-dark.png
272
+ - docs/university/mockups/code-block-doc-theme-light.png
273
+ - docs/university/mockups/course-list-dark.png
274
+ - docs/university/mockups/course-list-light.png
275
+ - docs/university/mockups/course_canvas_mockup.rb
276
+ - docs/university/mockups/step-screen-dark.png
277
+ - docs/university/mockups/step-screen-light.png
278
+ - docs/university/roadmap.md
279
+ - docs/university/send-to-coworker.md
280
+ - docs/university/worker-session-mining.md
281
+ - docs/visual-skills/PROGRESS.md
282
+ - docs/visual-skills/SESSION-CONTEXT.md
283
+ - docs/visual-skills/analysis/components.md
284
+ - docs/visual-skills/analysis/overlap.md
285
+ - docs/visual-skills/analysis/pi-design-deck.md
286
+ - docs/visual-skills/analysis/streamweaver-inventory.md
287
+ - docs/visual-skills/analysis/unified-specs.feature
288
+ - docs/visual-skills/analysis/visual-explainer.md
289
+ - docs/visual-skills/blog/blog-series-outline.md
290
+ - docs/visual-skills/blog/token-efficiency.md
291
+ - docs/visual-skills/design/architecture.md
292
+ - docs/visual-skills/design/codex-review.md
293
+ - docs/visual-skills/design/dhh-review.md
294
+ - docs/visual-skills/design/evolution.md
295
+ - docs/visual-skills/design/gemini-review.md
296
+ - docs/visual-skills/design/review-synthesis.md
297
+ - docs/visual-skills/implementation/STATE.md
298
+ - docs/visual-skills/implementation/plan.md
299
+ - docs/visual-skills/implementation/spike-findings.md
300
+ - docs/visual-skills/implementation/tasks.md
301
+ - docs/visual-skills/lessons-learned/process.md
302
+ - docs/visual/browser-rendering-spike.md
303
+ - docs/visual/builder-visual-plan-analysis.md
304
+ - docs/visual/sw-plan-format-exploration.md
305
+ - docs/visual/sw-plan-rendering-deep-dive.md
306
+ - examples/README.md
307
+ - examples/advanced/all_components.rb
308
+ - examples/advanced/examples_browser.rb
309
+ - examples/advanced/teachables_browser.rb
310
+ - examples/advanced/theme_tweaker.rb
311
+ - examples/advanced/tutorial.rb
312
+ - examples/agentic/agentic_form.rb
313
+ - examples/agentic/agentic_form_autoclose.rb
314
+ - examples/agentic/cultivation_tracker.rb
315
+ - examples/basic/hello_world.rb
316
+ - examples/basic/opal_tabs_table.rb
317
+ - examples/basic/todo_list.rb
318
+ - examples/button_loading_test.rb
319
+ - examples/canvas/mermaid_canvas_demo.sh
320
+ - examples/charts/bar_chart_demo.rb
321
+ - examples/charts/line_chart_demo.rb
322
+ - examples/charts/pie_area_demo.rb
323
+ - examples/charts/stacked_bar_chart_demo.rb
324
+ - examples/claude_code/README.md
325
+ - examples/claude_code/codebreaker/.claude/commands/infiltrate.md
326
+ - examples/claude_code/codebreaker/.claude/settings.json
327
+ - examples/claude_code/codebreaker/.claude/settings.local.json
328
+ - examples/claude_code/codebreaker/.claude/skills/infiltrate.md
329
+ - examples/claude_code/codebreaker/README.md
330
+ - examples/claude_code/tutorial/.claude/commands/learn.md
331
+ - examples/claude_code/tutorial/README.md
332
+ - examples/claude_code/verification_flow/.claude/commands/verify.md
333
+ - examples/claude_code/verification_flow/README.md
334
+ - examples/components/annotated_code_demo.rb
335
+ - examples/components/callout_demo.rb
336
+ - examples/components/checkbox_group_demo.rb
337
+ - examples/components/design_review.css
338
+ - examples/components/design_review_demo.rb
339
+ - examples/components/design_review_dsl.rb
340
+ - examples/components/diff_block_demo.rb
341
+ - examples/components/events_demo.rb
342
+ - examples/components/form_demo.rb
343
+ - examples/components/lesson_demo.rb
344
+ - examples/components/markdown_demo.rb
345
+ - examples/components/mermaid_demo.rb
346
+ - examples/components/pareto_set.rb
347
+ - examples/components/prd_demo.rb
348
+ - examples/components/prd_dsl.rb
349
+ - examples/components/quiz_demo.rb
350
+ - examples/components/run_viewer_demo.rb
351
+ - examples/components/score_and_collapsible_demo.rb
352
+ - examples/components/select_stale_value_smoke_test.rb
353
+ - examples/components/table_demo.rb
354
+ - examples/components/timer_with_state_demo.rb
355
+ - examples/components/todo_due_dates.rb
356
+ - examples/components/uat_gaps_demo.rb
357
+ - examples/dashboard/feed_simulator.rb
358
+ - examples/dashboard/live_dashboard.rb
359
+ - examples/dashboard_components.rb
360
+ - examples/deferred_fragments_demo.rb
361
+ - examples/generate_more_spike/README.md
362
+ - examples/generate_more_spike/app.rb
363
+ - examples/git_health.sh
364
+ - examples/layout/layout_components_demo.rb
365
+ - examples/layout/modal_demo.rb
366
+ - examples/layout/navigation_demo.rb
367
+ - examples/layout/route_tabs_demo.rb
368
+ - examples/layout/routing_demo.rb
369
+ - examples/layout/scroll_box_demo.rb
370
+ - examples/lazy_fragments_demo.rb
371
+ - examples/my_todos/README.md
372
+ - examples/my_todos/my_todos.rb
373
+ - examples/my_todos/store.rb
374
+ - examples/opal/reactive_demo.rb
375
+ - examples/opal/scenarios/s1_counter.rb
376
+ - examples/opal/scenarios/s2_search_filter.rb
377
+ - examples/opal/scenarios/s3_sibling_tabs.rb
378
+ - examples/opal/scenarios/s4_shopping_cart.rb
379
+ - examples/opal/scenarios/s5_watch.rb
380
+ - examples/opal/scenarios/s6_on_start.rb
381
+ - examples/opal/scenarios/s7_wizard.rb
382
+ - examples/opal/scenarios/s8_loan_calculator.rb
383
+ - examples/opal/scenarios/s9_dashboard.rb
384
+ - examples/operations_dashboard_demo.rb
385
+ - examples/panel_demo.sh
386
+ - examples/parity/assets/tyrion_slice.css
387
+ - examples/parity/rivet_people_slice.rb
388
+ - examples/parity/tyrion_components.css
389
+ - examples/parity/tyrion_warroom_components.rb
390
+ - examples/parity/tyrion_warroom_slice.rb
391
+ - examples/puma_dev/README.md
392
+ - examples/puma_dev/config.ru
393
+ - examples/puma_dev/standalone_app.rb
394
+ - examples/scaffolding/blog.rb
395
+ - examples/scaffolding/utf_lite.rb
396
+ - examples/styling/feedback_demo.rb
397
+ - examples/styling/style_showcase.rb
398
+ - examples/styling/theme_demo.rb
399
+ - examples/timer_health_checker.rb
400
+ - examples/timer_showcase.rb
401
+ - examples/tutorials/render_markdown.rb
402
+ - examples/tutorials/streamweaver_way_tutorial.rb
403
+ - examples/tutorials/tutorial_content.rb
404
+ - examples/visual_skills/design_deck_demo.rb
405
+ - examples/visual_skills/explainer_demo.rb
406
+ - exe/streamweaver
407
+ - gsd/ROADMAP-1.0.md
408
+ - gsd/STATE.md
409
+ - gsd/research/market-positioning-research.md
410
+ - gsd/research/production-patterns-research.md
411
+ - gsd/research/repo-audit-1.0.md
412
+ - lib/stream_weaver.rb
413
+ - lib/stream_weaver/action_token.rb
414
+ - lib/stream_weaver/adapter/alpinejs.rb
415
+ - lib/stream_weaver/adapter/base.rb
416
+ - lib/stream_weaver/adapter/opal.rb
417
+ - lib/stream_weaver/adapter/static.rb
418
+ - lib/stream_weaver/admin.rb
419
+ - lib/stream_weaver/app.rb
420
+ - lib/stream_weaver/assets/js/sw-copy.js
421
+ - lib/stream_weaver/assets/js/sw-heredoc-rewrite.js
422
+ - lib/stream_weaver/assets/js/sw-keyboard.js
423
+ - lib/stream_weaver/assets/js/sw-mermaid-zoom.js
424
+ - lib/stream_weaver/assets/js/sw-route-tabs.js
425
+ - lib/stream_weaver/assets/js/sw-sidebar-toc.js
426
+ - lib/stream_weaver/assets/js/sw-slide-nav.js
427
+ - lib/stream_weaver/canvas/bridge.rb
428
+ - lib/stream_weaver/canvas/bridge_server.rb
429
+ - lib/stream_weaver/canvas/client.rb
430
+ - lib/stream_weaver/canvas/doc_roots.rb
431
+ - lib/stream_weaver/canvas/doc_store.rb
432
+ - lib/stream_weaver/canvas/gist_publisher.rb
433
+ - lib/stream_weaver/canvas/gist_save_handler.rb
434
+ - lib/stream_weaver/canvas/gist_store.rb
435
+ - lib/stream_weaver/canvas/helpers.rb
436
+ - lib/stream_weaver/canvas/history.rb
437
+ - lib/stream_weaver/canvas/protocol.rb
438
+ - lib/stream_weaver/canvas/reader.rb
439
+ - lib/stream_weaver/canvas/save_doc_widget.rb
440
+ - lib/stream_weaver/canvas/scroll_top_hint.rb
441
+ - lib/stream_weaver/canvas/session.rb
442
+ - lib/stream_weaver/cli.rb
443
+ - lib/stream_weaver/component_assets.rb
444
+ - lib/stream_weaver/component_registry.rb
445
+ - lib/stream_weaver/component_renderer.rb
446
+ - lib/stream_weaver/components.rb
447
+ - lib/stream_weaver/components/annotated_code.rb
448
+ - lib/stream_weaver/components/api_endpoint.rb
449
+ - lib/stream_weaver/components/callout.rb
450
+ - lib/stream_weaver/components/chart.rb
451
+ - lib/stream_weaver/components/code_block.rb
452
+ - lib/stream_weaver/components/comparison.rb
453
+ - lib/stream_weaver/components/decision.rb
454
+ - lib/stream_weaver/components/deck/close_overlay.rb
455
+ - lib/stream_weaver/components/deck/confirmation_bar.rb
456
+ - lib/stream_weaver/components/deck/deck_option.rb
457
+ - lib/stream_weaver/components/deck/deck_slide.rb
458
+ - lib/stream_weaver/components/deck/deck_state.rb
459
+ - lib/stream_weaver/components/deck/deck_summary.rb
460
+ - lib/stream_weaver/components/deck/design_deck.rb
461
+ - lib/stream_weaver/components/deck/generate_more_controls.rb
462
+ - lib/stream_weaver/components/deck/model_selector.rb
463
+ - lib/stream_weaver/components/deck/skeleton_placeholder.rb
464
+ - lib/stream_weaver/components/diff_block.rb
465
+ - lib/stream_weaver/components/doc_header.rb
466
+ - lib/stream_weaver/components/image_block.rb
467
+ - lib/stream_weaver/components/implementation_map.rb
468
+ - lib/stream_weaver/components/keyboard_shortcuts.rb
469
+ - lib/stream_weaver/components/kpi_dashboard.rb
470
+ - lib/stream_weaver/components/mermaid.rb
471
+ - lib/stream_weaver/components/pipeline.rb
472
+ - lib/stream_weaver/components/sidebar_toc.rb
473
+ - lib/stream_weaver/components/slide_container.rb
474
+ - lib/stream_weaver/components/timeline_event.rb
475
+ - lib/stream_weaver/components/wireframe.rb
476
+ - lib/stream_weaver/components/wireframe_block.rb
477
+ - lib/stream_weaver/css.rb
478
+ - lib/stream_weaver/dev_fallback_overlay.rb
479
+ - lib/stream_weaver/display_dsl.rb
480
+ - lib/stream_weaver/export/html_exporter.rb
481
+ - lib/stream_weaver/feed.rb
482
+ - lib/stream_weaver/feed_builder.rb
483
+ - lib/stream_weaver/fonts.rb
484
+ - lib/stream_weaver/interaction_runner.rb
485
+ - lib/stream_weaver/iterm.rb
486
+ - lib/stream_weaver/layout_registry.rb
487
+ - lib/stream_weaver/opal/bridge.rb
488
+ - lib/stream_weaver/opal/builder.rb
489
+ - lib/stream_weaver/opal/env.rb
490
+ - lib/stream_weaver/opal/reactive_state.rb
491
+ - lib/stream_weaver/opal/regexp_anchor_patch.rb
492
+ - lib/stream_weaver/opal/renderer.rb
493
+ - lib/stream_weaver/opal/runtime.rb
494
+ - lib/stream_weaver/opal/shell.rb
495
+ - lib/stream_weaver/opal/string_bridge.rb
496
+ - lib/stream_weaver/opal/stubs/diff.min.js
497
+ - lib/stream_weaver/opal/stubs/digest.rb
498
+ - lib/stream_weaver/opal/stubs/marked.umd.js
499
+ - lib/stream_weaver/opal/stubs/md5.rb
500
+ - lib/stream_weaver/opal/stubs/morphdom.min.js
501
+ - lib/stream_weaver/opal/stubs/prism-tomorrow.min.css
502
+ - lib/stream_weaver/opal/stubs/prism.min.js
503
+ - lib/stream_weaver/opal_entry.rb
504
+ - lib/stream_weaver/org/inline.rb
505
+ - lib/stream_weaver/org/reader.rb
506
+ - lib/stream_weaver/org/recording_context.rb
507
+ - lib/stream_weaver/org/source_splitter.rb
508
+ - lib/stream_weaver/org/writer.rb
509
+ - lib/stream_weaver/page_shell.rb
510
+ - lib/stream_weaver/portfile.rb
511
+ - lib/stream_weaver/pushable.rb
512
+ - lib/stream_weaver/resource.rb
513
+ - lib/stream_weaver/resource/default_views.rb
514
+ - lib/stream_weaver/resource/field_input.rb
515
+ - lib/stream_weaver/resource/state_keys.rb
516
+ - lib/stream_weaver/resource/store.rb
517
+ - lib/stream_weaver/server.rb
518
+ - lib/stream_weaver/service.rb
519
+ - lib/stream_weaver/service_client.rb
520
+ - lib/stream_weaver/session_store.rb
521
+ - lib/stream_weaver/skills/streamweaver-canvas-safe/SKILL.md
522
+ - lib/stream_weaver/skills/streamweaver-canvas-safe/examples/canvas-safe-showcase.rb
523
+ - lib/stream_weaver/skills/streamweaver-canvas-safe/references/actions-and-buttons.md
524
+ - lib/stream_weaver/skills/streamweaver-canvas-safe/references/charts-and-diagrams.md
525
+ - lib/stream_weaver/skills/streamweaver-canvas-safe/references/deck.md
526
+ - lib/stream_weaver/skills/streamweaver-canvas-safe/references/inputs-and-forms.md
527
+ - lib/stream_weaver/skills/streamweaver-canvas-safe/references/tabs-and-navigation.md
528
+ - lib/stream_weaver/skills/streamweaver-doc-builder/SKILL.md
529
+ - lib/stream_weaver/skills/streamweaver-visual-companion/SKILL.md
530
+ - lib/stream_weaver/skills/streamweaver-visual-companion/examples/design-review-example.css
531
+ - lib/stream_weaver/skills/streamweaver-visual-companion/examples/design-review-example.rb
532
+ - lib/stream_weaver/skills/streamweaver-visual-companion/examples/design-review-example_dsl.rb
533
+ - lib/stream_weaver/skills/streamweaver-visual-companion/examples/doc-parity-example.rb
534
+ - lib/stream_weaver/skills/streamweaver-visual-companion/examples/doc-parity-example_dsl.rb
535
+ - lib/stream_weaver/skills/streamweaver-visual-companion/references/checkpoints-and-forms.md
536
+ - lib/stream_weaver/skills/streamweaver-visual-companion/references/cleanup-and-panel.md
537
+ - lib/stream_weaver/skills/streamweaver-visual-companion/references/example-gallery.md
538
+ - lib/stream_weaver/skills/streamweaver-visual-companion/references/persistence.md
539
+ - lib/stream_weaver/skills/streamweaver-way/SKILL.md
540
+ - lib/stream_weaver/skills/visual-plan/SKILL.md
541
+ - lib/stream_weaver/skills/visual-recap/SKILL.md
542
+ - lib/stream_weaver/streamer.rb
543
+ - lib/stream_weaver/templates/choices.rb
544
+ - lib/stream_weaver/templates/code.rb
545
+ - lib/stream_weaver/templates/confirm.rb
546
+ - lib/stream_weaver/templates/diff.rb
547
+ - lib/stream_weaver/templates/info.rb
548
+ - lib/stream_weaver/templates/table.rb
549
+ - lib/stream_weaver/templates/wizard.rb
550
+ - lib/stream_weaver/theme.rb
551
+ - lib/stream_weaver/theme/auto_mode.rb
552
+ - lib/stream_weaver/theme/presets.rb
553
+ - lib/stream_weaver/university/canvas.rb
554
+ - lib/stream_weaver/university/course.rb
555
+ - lib/stream_weaver/university/demos.rb
556
+ - lib/stream_weaver/university/demos/counter.rb
557
+ - lib/stream_weaver/university/demos/dashboard.rb
558
+ - lib/stream_weaver/university/demos/decision_form.rb
559
+ - lib/stream_weaver/university/listener.rb
560
+ - lib/stream_weaver/university/progress.rb
561
+ - lib/stream_weaver/university/runner.rb
562
+ - lib/stream_weaver/university/scripts/growing_doc.rb
563
+ - lib/stream_weaver/university/scripts/growing_doc_state.rb
564
+ - lib/stream_weaver/utils.rb
565
+ - lib/stream_weaver/version.rb
566
+ - lib/stream_weaver/views.rb
567
+ - lib/stream_weaver/views/canvas/reader_layout.erb
568
+ - llms.txt
569
+ - sig/stream_weaver.rbs
570
+ homepage: https://github.com/fkchang/stream_weaver
571
+ licenses:
572
+ - MIT
573
+ metadata:
574
+ source_code_uri: https://github.com/fkchang/stream_weaver
575
+ changelog_uri: https://github.com/fkchang/stream_weaver/blob/main/CHANGELOG.md
576
+ post_install_message: |
577
+ Get started: streamweaver install && streamweaver get-started
578
+ macOS + iTerm2 for the full experience; see README for other platforms.
579
+ rdoc_options: []
580
+ require_paths:
581
+ - lib
582
+ required_ruby_version: !ruby/object:Gem::Requirement
583
+ requirements:
584
+ - - ">="
585
+ - !ruby/object:Gem::Version
586
+ version: 3.0.0
587
+ required_rubygems_version: !ruby/object:Gem::Requirement
588
+ requirements:
589
+ - - ">="
590
+ - !ruby/object:Gem::Version
591
+ version: '0'
592
+ requirements: []
593
+ rubygems_version: 3.5.16
594
+ signing_key:
595
+ specification_version: 4
596
+ summary: Declarative Ruby DSL for building interactive web UIs with minimal token
597
+ overhead
598
+ test_files: []