sqlrooms 0.1.2__tar.gz → 0.1.4__tar.gz

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 (403) hide show
  1. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/PKG-INFO +1 -1
  2. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/README.md +14 -10
  3. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/launcher.py +30 -1
  4. sqlrooms-0.1.2/sqlrooms/web/static/assets/AiSlice-DOK-R6BH.js → sqlrooms-0.1.4/sqlrooms/web/static/assets/AiSlice-CClohG-j.js +1 -1
  5. sqlrooms-0.1.2/sqlrooms/web/static/assets/devtools-BdsTWnPQ.js → sqlrooms-0.1.4/sqlrooms/web/static/assets/devtools-DiOcF2tF.js +1 -1
  6. sqlrooms-0.1.4/sqlrooms/web/static/assets/index-C5rB1lif.css +1 -0
  7. sqlrooms-0.1.2/sqlrooms/web/static/assets/index-Dxqv3Ov8.js → sqlrooms-0.1.4/sqlrooms/web/static/assets/index-WQOiG1p_.js +39312 -39297
  8. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/index.html +3 -3
  9. sqlrooms-0.1.2/sqlrooms/web/static/assets/index-BuORjr-k.css +0 -1
  10. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/.gitignore +0 -0
  11. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/LICENSE +0 -0
  12. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/README.md +0 -0
  13. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@ai-sdk/openai-compatible/LICENSE +0 -0
  14. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@ai-sdk/openai-compatible/README.md +0 -0
  15. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@jest/globals/LICENSE +0 -0
  16. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/README.md +0 -0
  17. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/README.md +0 -0
  18. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@paralleldrive/cuid2/LICENSE +0 -0
  19. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@paralleldrive/cuid2/README.md +0 -0
  20. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/@testing-library/jest-dom/LICENSE +0 -0
  21. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/@testing-library/jest-dom/README.md +0 -0
  22. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/@types/jest/LICENSE +0 -0
  23. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/@types/jest/README.md +0 -0
  24. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/identity-obj-proxy/LICENSE +0 -0
  25. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/identity-obj-proxy/README.md +0 -0
  26. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/jest/LICENSE +0 -0
  27. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/jest/README.md +0 -0
  28. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/jest-environment-jsdom/LICENSE +0 -0
  29. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/@sqlrooms/preset-jest/node_modules/ts-jest/README.md +0 -0
  30. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/zod/LICENSE +0 -0
  31. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-config/node_modules/zod/README.md +0 -0
  32. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/README.md +0 -0
  33. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@ai-sdk/react/LICENSE +0 -0
  34. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@ai-sdk/react/README.md +0 -0
  35. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@dnd-kit/core/LICENSE +0 -0
  36. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@dnd-kit/core/README.md +0 -0
  37. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@dnd-kit/sortable/LICENSE +0 -0
  38. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@dnd-kit/sortable/README.md +0 -0
  39. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/README.md +0 -0
  40. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/autocomplete/LICENSE +0 -0
  41. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/autocomplete/README.md +0 -0
  42. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/commands/LICENSE +0 -0
  43. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/commands/README.md +0 -0
  44. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/lang-javascript/LICENSE +0 -0
  45. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/lang-javascript/README.md +0 -0
  46. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/lang-json/LICENSE +0 -0
  47. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/lang-json/README.md +0 -0
  48. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/language/LICENSE +0 -0
  49. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/language/README.md +0 -0
  50. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/lint/LICENSE +0 -0
  51. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/lint/README.md +0 -0
  52. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/search/LICENSE +0 -0
  53. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/search/README.md +0 -0
  54. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/state/LICENSE +0 -0
  55. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/state/README.md +0 -0
  56. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/view/LICENSE +0 -0
  57. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@codemirror/view/README.md +0 -0
  58. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@lezer/highlight/LICENSE +0 -0
  59. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@lezer/highlight/README.md +0 -0
  60. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/README.md +0 -0
  61. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@dnd-kit/modifiers/LICENSE +0 -0
  62. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@dnd-kit/modifiers/README.md +0 -0
  63. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-accordion/LICENSE +0 -0
  64. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-accordion/README.md +0 -0
  65. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-aspect-ratio/LICENSE +0 -0
  66. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-aspect-ratio/README.md +0 -0
  67. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-checkbox/LICENSE +0 -0
  68. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-checkbox/README.md +0 -0
  69. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-collapsible/LICENSE +0 -0
  70. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-collapsible/README.md +0 -0
  71. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-context-menu/LICENSE +0 -0
  72. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-context-menu/README.md +0 -0
  73. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-dialog/LICENSE +0 -0
  74. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-dialog/README.md +0 -0
  75. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-dropdown-menu/LICENSE +0 -0
  76. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-dropdown-menu/README.md +0 -0
  77. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-hover-card/LICENSE +0 -0
  78. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-hover-card/README.md +0 -0
  79. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-label/LICENSE +0 -0
  80. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-label/README.md +0 -0
  81. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-menubar/LICENSE +0 -0
  82. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-menubar/README.md +0 -0
  83. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-popover/LICENSE +0 -0
  84. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-popover/README.md +0 -0
  85. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-progress/LICENSE +0 -0
  86. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-progress/README.md +0 -0
  87. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-radio-group/LICENSE +0 -0
  88. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-radio-group/README.md +0 -0
  89. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-scroll-area/LICENSE +0 -0
  90. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-scroll-area/README.md +0 -0
  91. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-select/LICENSE +0 -0
  92. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-select/README.md +0 -0
  93. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-separator/LICENSE +0 -0
  94. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-separator/README.md +0 -0
  95. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-slider/LICENSE +0 -0
  96. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-slider/README.md +0 -0
  97. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-slot/LICENSE +0 -0
  98. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-slot/README.md +0 -0
  99. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-switch/LICENSE +0 -0
  100. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-switch/README.md +0 -0
  101. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-tabs/LICENSE +0 -0
  102. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-tabs/README.md +0 -0
  103. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-toggle/LICENSE +0 -0
  104. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-toggle/README.md +0 -0
  105. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-toggle-group/LICENSE +0 -0
  106. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-toggle-group/README.md +0 -0
  107. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-tooltip/LICENSE +0 -0
  108. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@radix-ui/react-tooltip/README.md +0 -0
  109. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@tailwindcss/typography/LICENSE +0 -0
  110. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/@tailwindcss/typography/README.md +0 -0
  111. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/class-variance-authority/LICENSE +0 -0
  112. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/class-variance-authority/README.md +0 -0
  113. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/cmdk/README.md +0 -0
  114. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/date-fns/README.md +0 -0
  115. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/lucide-react/LICENSE +0 -0
  116. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/lucide-react/README.md +0 -0
  117. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/react-day-picker/LICENSE +0 -0
  118. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/react-day-picker/README.md +0 -0
  119. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/react-hook-form/LICENSE +0 -0
  120. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/react-hook-form/README.md +0 -0
  121. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/react-resizable-panels/README.md +0 -0
  122. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/sonner/README.md +0 -0
  123. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/tailwind-merge/README.md +0 -0
  124. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/tailwindcss/LICENSE +0 -0
  125. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/tailwindcss/README.md +0 -0
  126. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/tailwindcss-animate/LICENSE +0 -0
  127. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/tailwindcss-animate/README.md +0 -0
  128. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/usehooks-ts/LICENSE +0 -0
  129. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/usehooks-ts/README.md +0 -0
  130. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/ui/node_modules/vaul/README.md +0 -0
  131. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/README.md +0 -0
  132. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/@types/d3-color/LICENSE +0 -0
  133. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/@types/d3-color/README.md +0 -0
  134. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/@types/d3-format/LICENSE +0 -0
  135. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/@types/d3-format/README.md +0 -0
  136. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/@types/d3-time-format/LICENSE +0 -0
  137. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/@types/d3-time-format/README.md +0 -0
  138. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/d3-color/LICENSE +0 -0
  139. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/d3-color/README.md +0 -0
  140. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/d3-format/LICENSE +0 -0
  141. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/d3-format/README.md +0 -0
  142. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/d3-time-format/LICENSE +0 -0
  143. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/d3-time-format/README.md +0 -0
  144. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/dayjs/LICENSE +0 -0
  145. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/dayjs/README.md +0 -0
  146. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/react/LICENSE +0 -0
  147. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/react/README.md +0 -0
  148. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/react-dom/LICENSE +0 -0
  149. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/@sqlrooms/utils/node_modules/react-dom/README.md +0 -0
  150. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/vscode-json-languageservice/README.md +0 -0
  151. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/vscode-languageserver-textdocument/README.md +0 -0
  152. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/codemirror/node_modules/vscode-languageserver-types/README.md +0 -0
  153. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/room-store/README.md +0 -0
  154. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/room-store/node_modules/@sqlrooms/room-config/README.md +0 -0
  155. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/room-store/node_modules/@sqlrooms/room-config/node_modules/@sqlrooms/layout-config/README.md +0 -0
  156. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/room-store/node_modules/immer/LICENSE +0 -0
  157. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/room-store/node_modules/zustand/LICENSE +0 -0
  158. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/@sqlrooms/room-store/node_modules/zustand/README.md +0 -0
  159. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/ai/LICENSE +0 -0
  160. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/ai/README.md +0 -0
  161. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-core/node_modules/jsdom/README.md +0 -0
  162. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-settings/README.md +0 -0
  163. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-settings/node_modules/@sqlrooms/recharts/README.md +0 -0
  164. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-settings/node_modules/@sqlrooms/recharts/node_modules/recharts/LICENSE +0 -0
  165. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/ai-settings/node_modules/@sqlrooms/recharts/node_modules/recharts/README.md +0 -0
  166. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/README.md +0 -0
  167. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/README.md +0 -0
  168. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/node_modules/@duckdb/duckdb-wasm/README.md +0 -0
  169. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/node_modules/@sqlrooms/duckdb-core/README.md +0 -0
  170. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/node_modules/@sqlrooms/duckdb-core/node_modules/apache-arrow/README.md +0 -0
  171. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/node_modules/@sqlrooms/duckdb-node/README.md +0 -0
  172. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/node_modules/@sqlrooms/duckdb-node/node_modules/@duckdb/node-api/LICENSE +0 -0
  173. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/node_modules/@sqlrooms/duckdb-node/node_modules/@duckdb/node-api/README.md +0 -0
  174. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/node_modules/fast-deep-equal/LICENSE +0 -0
  175. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@sqlrooms/duckdb/node_modules/fast-deep-equal/README.md +0 -0
  176. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@tanstack/react-table/LICENSE +0 -0
  177. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/data-table/node_modules/@tanstack/table-core/LICENSE +0 -0
  178. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/README.md +0 -0
  179. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/db/README.md +0 -0
  180. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/README.md +0 -0
  181. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/node_modules/@types/react/LICENSE +0 -0
  182. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/node_modules/@types/react/README.md +0 -0
  183. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/node_modules/@types/react-grid-layout/LICENSE +0 -0
  184. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/node_modules/@types/react-grid-layout/README.md +0 -0
  185. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/node_modules/react-grid-layout/LICENSE +0 -0
  186. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/node_modules/react-grid-layout/README.md +0 -0
  187. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/node_modules/react-resizable/LICENSE +0 -0
  188. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/@sqlrooms/room-shell/node_modules/@sqlrooms/layout/node_modules/react-resizable/README.md +0 -0
  189. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/yaml/LICENSE +0 -0
  190. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/ai/node_modules/yaml/README.md +0 -0
  191. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/app-runtime/README.md +0 -0
  192. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/app-runtime/node_modules/@sqlrooms/blocks/README.md +0 -0
  193. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/artifacts/README.md +0 -0
  194. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/README.md +0 -0
  195. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/README.md +0 -0
  196. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@paralleldrive/cuid2/LICENSE +0 -0
  197. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@paralleldrive/cuid2/README.md +0 -0
  198. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/README.md +0 -0
  199. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@codemirror/lang-sql/LICENSE +0 -0
  200. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@codemirror/lang-sql/README.md +0 -0
  201. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@hookform/resolvers/LICENSE +0 -0
  202. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@hookform/resolvers/README.md +0 -0
  203. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@marimo-team/codemirror-sql/LICENSE +0 -0
  204. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@marimo-team/codemirror-sql/README.md +0 -0
  205. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@monaco-editor/react/LICENSE +0 -0
  206. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@monaco-editor/react/README.md +0 -0
  207. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@sqlrooms/monaco-editor/README.md +0 -0
  208. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@sqlrooms/monaco-editor/node_modules/monaco-editor/LICENSE +0 -0
  209. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@sqlrooms/monaco-editor/node_modules/monaco-editor/README.md +0 -0
  210. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@sqlrooms/schema-tree/README.md +0 -0
  211. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@sqlrooms/schema-tree/node_modules/@types/react-dom/LICENSE +0 -0
  212. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@sqlrooms/schema-tree/node_modules/@types/react-dom/README.md +0 -0
  213. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@sqlrooms/sql-editor-config/README.md +0 -0
  214. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@types/d3-dsv/LICENSE +0 -0
  215. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@types/d3-dsv/README.md +0 -0
  216. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@types/file-saver/LICENSE +0 -0
  217. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/@types/file-saver/README.md +0 -0
  218. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/d3-dsv/LICENSE +0 -0
  219. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/d3-dsv/README.md +0 -0
  220. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/es-toolkit/LICENSE +0 -0
  221. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/es-toolkit/README.md +0 -0
  222. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/sql-editor/node_modules/file-saver/README.md +0 -0
  223. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/README.md +0 -0
  224. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/README.md +0 -0
  225. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@codemirror/lang-markdown/LICENSE +0 -0
  226. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@codemirror/lang-markdown/README.md +0 -0
  227. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@sqlrooms/crdt/README.md +0 -0
  228. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@sqlrooms/crdt/node_modules/loro-crdt/LICENSE +0 -0
  229. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@sqlrooms/crdt/node_modules/loro-crdt/README.md +0 -0
  230. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@sqlrooms/crdt/node_modules/loro-mirror/README.md +0 -0
  231. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/core/README.md +0 -0
  232. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/extension-link/README.md +0 -0
  233. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/extension-table/README.md +0 -0
  234. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/extension-table-cell/README.md +0 -0
  235. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/extension-table-header/README.md +0 -0
  236. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/extension-table-row/README.md +0 -0
  237. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/extension-task-item/README.md +0 -0
  238. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/extension-task-list/README.md +0 -0
  239. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/markdown/README.md +0 -0
  240. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/react/README.md +0 -0
  241. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/@tiptap/starter-kit/README.md +0 -0
  242. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/lucide-react/LICENSE +0 -0
  243. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/@sqlrooms/documents/node_modules/lucide-react/README.md +0 -0
  244. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/react-vega/LICENSE +0 -0
  245. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/react-vega/README.md +0 -0
  246. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/vega/LICENSE +0 -0
  247. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/vega/README.md +0 -0
  248. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/vega-embed/LICENSE +0 -0
  249. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/vega-embed/README.md +0 -0
  250. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/vega-lite/LICENSE +0 -0
  251. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@sqlrooms/cells/node_modules/@sqlrooms/vega/node_modules/vega-lite/README.md +0 -0
  252. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@xyflow/react/LICENSE +0 -0
  253. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/canvas/node_modules/@xyflow/react/README.md +0 -0
  254. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/db-settings/README.md +0 -0
  255. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/README.md +0 -0
  256. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/core/LICENSE +0 -0
  257. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/core/README.md +0 -0
  258. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/geo-layers/LICENSE +0 -0
  259. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/json/LICENSE +0 -0
  260. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/json/README.md +0 -0
  261. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/layers/LICENSE +0 -0
  262. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/layers/README.md +0 -0
  263. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/mapbox/LICENSE +0 -0
  264. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/mapbox/README.md +0 -0
  265. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/react/LICENSE +0 -0
  266. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@deck.gl/react/README.md +0 -0
  267. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@geoarrow/deck.gl-layers/LICENSE +0 -0
  268. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@geoarrow/deck.gl-layers/README.md +0 -0
  269. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@loaders.gl/geoarrow/LICENSE +0 -0
  270. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@loaders.gl/geoarrow/README.md +0 -0
  271. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@loaders.gl/gis/LICENSE +0 -0
  272. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@loaders.gl/gis/README.md +0 -0
  273. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@loaders.gl/wkt/LICENSE +0 -0
  274. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@loaders.gl/wkt/README.md +0 -0
  275. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/README.md +0 -0
  276. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/node_modules/@types/d3-scale/LICENSE +0 -0
  277. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/node_modules/@types/d3-scale/README.md +0 -0
  278. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/node_modules/@types/d3-scale-chromatic/LICENSE +0 -0
  279. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/node_modules/@types/d3-scale-chromatic/README.md +0 -0
  280. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/node_modules/d3-scale/LICENSE +0 -0
  281. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/node_modules/d3-scale/README.md +0 -0
  282. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/node_modules/d3-scale-chromatic/LICENSE +0 -0
  283. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/color-scales/node_modules/d3-scale-chromatic/README.md +0 -0
  284. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/README.md +0 -0
  285. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@observablehq/plot/LICENSE +0 -0
  286. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@observablehq/plot/README.md +0 -0
  287. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@testing-library/react/LICENSE +0 -0
  288. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@testing-library/react/README.md +0 -0
  289. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/flechette/LICENSE +0 -0
  290. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/flechette/README.md +0 -0
  291. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/mosaic-core/LICENSE +0 -0
  292. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/mosaic-core/README.md +0 -0
  293. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/mosaic-plot/LICENSE +0 -0
  294. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/mosaic-plot/README.md +0 -0
  295. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/mosaic-spec/LICENSE +0 -0
  296. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/mosaic-spec/README.md +0 -0
  297. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/mosaic-sql/LICENSE +0 -0
  298. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/mosaic-sql/README.md +0 -0
  299. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/vgplot/LICENSE +0 -0
  300. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@sqlrooms/mosaic/node_modules/@uwdata/vgplot/README.md +0 -0
  301. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@types/geojson/LICENSE +0 -0
  302. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/@types/geojson/README.md +0 -0
  303. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/maplibre-gl/README.md +0 -0
  304. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/maplibre-gl/src/shaders/README.md +0 -0
  305. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/deck/node_modules/react-map-gl/LICENSE +0 -0
  306. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/notebook/README.md +0 -0
  307. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/notebook/node_modules/@sqlrooms/pivot/README.md +0 -0
  308. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/README.md +0 -0
  309. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@codemirror/lang-python/LICENSE +0 -0
  310. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@codemirror/lang-python/README.md +0 -0
  311. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/README.md +0 -0
  312. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/@next/eslint-plugin-next/README.md +0 -0
  313. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/@typescript-eslint/eslint-plugin/LICENSE +0 -0
  314. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/@typescript-eslint/eslint-plugin/README.md +0 -0
  315. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/@typescript-eslint/parser/LICENSE +0 -0
  316. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/@typescript-eslint/parser/README.md +0 -0
  317. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint/LICENSE +0 -0
  318. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint/README.md +0 -0
  319. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint-config-prettier/LICENSE +0 -0
  320. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint-config-prettier/README.md +0 -0
  321. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint-plugin-react/LICENSE +0 -0
  322. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint-plugin-react/README.md +0 -0
  323. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint-plugin-react-hooks/LICENSE +0 -0
  324. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint-plugin-react-hooks/README.md +0 -0
  325. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint-plugin-turbo/LICENSE +0 -0
  326. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/eslint-plugin-turbo/README.md +0 -0
  327. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/typescript/README.md +0 -0
  328. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/typescript-eslint/LICENSE +0 -0
  329. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-eslint/node_modules/typescript-eslint/README.md +0 -0
  330. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typedoc/node_modules/typedoc/LICENSE +0 -0
  331. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typedoc/node_modules/typedoc/README.md +0 -0
  332. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typedoc/node_modules/typedoc-plugin-markdown/LICENSE +0 -0
  333. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typedoc/node_modules/typedoc-plugin-markdown/README.md +0 -0
  334. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typedoc/node_modules/typedoc-plugin-zod/LICENSE +0 -0
  335. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typedoc/node_modules/typedoc-plugin-zod/README.md +0 -0
  336. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typedoc/node_modules/typedoc-vitepress-theme/LICENSE +0 -0
  337. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typedoc/node_modules/typedoc-vitepress-theme/README.md +0 -0
  338. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/@sqlrooms/preset-typescript/README.md +0 -0
  339. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/python/node_modules/pyodide/README.md +0 -0
  340. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/webcontainer/README.md +0 -0
  341. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/webcontainer/node_modules/@webcontainer/api/LICENSE +0 -0
  342. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/webcontainer/node_modules/@webcontainer/api/README.md +0 -0
  343. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/webcontainer/node_modules/@xterm/xterm/LICENSE +0 -0
  344. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/webcontainer/node_modules/@xterm/xterm/README.md +0 -0
  345. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/webcontainer/node_modules/just-bash/LICENSE +0 -0
  346. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@sqlrooms/webcontainer/node_modules/just-bash/README.md +0 -0
  347. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@tailwindcss/vite/LICENSE +0 -0
  348. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@tailwindcss/vite/README.md +0 -0
  349. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@vitejs/plugin-react/LICENSE +0 -0
  350. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/@vitejs/plugin-react/README.md +0 -0
  351. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/vite/README.md +0 -0
  352. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/vite-plugin-top-level-await/LICENSE +0 -0
  353. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/vite-plugin-top-level-await/README.md +0 -0
  354. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/vite-plugin-wasm/LICENSE +0 -0
  355. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/node_modules/sqlrooms-cli-app/node_modules/vite-plugin-wasm/README.md +0 -0
  356. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/pyproject.toml +0 -0
  357. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/cli.py +0 -0
  358. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/__init__.py +0 -0
  359. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/__init__.py +0 -0
  360. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/connectors/__init__.py +0 -0
  361. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/connectors/base.py +0 -0
  362. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/connectors/postgres.py +0 -0
  363. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/connectors/snowflake.py +0 -0
  364. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/factory.py +0 -0
  365. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/registry.py +0 -0
  366. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/types.py +0 -0
  367. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/db_bridge/utils.py +0 -0
  368. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/CommandSlice-DPSuuiIV.js +0 -0
  369. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/DockLayout-DhgcIQET.js +0 -0
  370. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/GridLayout-CBVgs-6H.css +0 -0
  371. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/GridLayout-fXJZYHbE.js +0 -0
  372. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/LayoutRendererContext-BKO2wB-W.js +0 -0
  373. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/LeafLayout-DPFHUP6B.js +0 -0
  374. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/LeafLayout-ekhNDEEg.js +0 -0
  375. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/RenderNodeContext-BdrX8FaE.js +0 -0
  376. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/RendererSwitcher-DnVbhqg4.js +0 -0
  377. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/SplitLayout-fPLAPJN-.js +0 -0
  378. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/TabsLayout-C0N-7wmx.js +0 -0
  379. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/TabsLayout-T3iApyr5.js +0 -0
  380. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/chunk-jRWAZmH_.js +0 -0
  381. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/codicon-ngg6Pgfi.ttf +0 -0
  382. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/core.esm-DdCldPzV.js +0 -0
  383. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/css.worker-Wv5dxAWO.js +0 -0
  384. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/dist-dwKeDPoe.js +0 -0
  385. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/html.worker-CQP8QQsS.js +0 -0
  386. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/json.worker-DzV-CpCQ.js +0 -0
  387. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/loro_wasm_bg-DP4dC0x3.wasm +0 -0
  388. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/loro_wasm_bg-VQ4j4Qa9.js +0 -0
  389. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/loro_wasm_bg-oL0xMWtE.js +0 -0
  390. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/maplibre-gl-C-a91wbz.js +0 -0
  391. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/node-sql-parser-ChfKIXD7.js +0 -0
  392. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/prop-types-DybOnnvg.js +0 -0
  393. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/pyodideWorker-9a8reHtW.js +0 -0
  394. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/react-dom-liMHu8hH.js +0 -0
  395. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/resizable-DYr7VLR3.js +0 -0
  396. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/scroll-area-ZmzNHGEm.js +0 -0
  397. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/tooltip-mgpsA9tW.js +0 -0
  398. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/ts.worker-Dth06zuC.js +0 -0
  399. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/utils-yJ4l7ARz.js +0 -0
  400. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/webgl-device-CgQl7NRd.js +0 -0
  401. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/assets/webgl-device-CtgDFnYR.js +0 -0
  402. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/static/logo.png +0 -0
  403. {sqlrooms-0.1.2 → sqlrooms-0.1.4}/sqlrooms/web/ui.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlrooms
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Local-first SQLRooms project launcher for DuckDB worksheets and Mosaic dashboards.
5
5
  Project-URL: homepage, https://sqlrooms.com
6
6
  Project-URL: repository, https://github.com/sqlrooms/sqlrooms
@@ -62,18 +62,15 @@ Before versioning or publishing, test a production build locally:
62
62
  pnpm --dir python/sqlrooms build
63
63
 
64
64
  # Source/workspace check. This should reflect python/sqlrooms/package.json.
65
- uv run --project python/sqlrooms sqlrooms \
66
- --version
65
+ uv run --project python/sqlrooms sqlrooms --version
67
66
 
68
- uv run --project python/sqlrooms sqlrooms \
69
- --no-open-browser \
70
- /tmp/sqlrooms-smoke.duckdb
67
+ uv run --project python/sqlrooms sqlrooms --no-open-browser --experimental /tmp/sqlrooms-smoke.duckdb
71
68
  ```
72
69
 
73
70
  For the closest local install check, install the freshly built wheel from
74
71
  `python/dist` into a `uv tool` environment. Use the exact wheel for the current
75
72
  `python/sqlrooms/package.json` version so older files in `python/dist` are not
76
- selected accidentally:
73
+ selected accidentally. Run these commands from the repository root:
77
74
 
78
75
  ```bash
79
76
  SQLROOMS_VERSION=$(node -p "require('./python/sqlrooms/package.json').version")
@@ -93,8 +90,8 @@ confirm the imported data and workspace state come back.
93
90
  2. Version the selected package or packages explicitly:
94
91
 
95
92
  ```bash
96
- pnpm cli:version --target sqlrooms-server --bump patch
97
- pnpm cli:version --target sqlrooms --set 0.2.0
93
+ pnpm cli:version --target sqlrooms --bump patch
94
+ pnpm cli:version --target sqlrooms-server --set 0.2.0
98
95
  pnpm cli:version --target all --bump minor
99
96
  ```
100
97
 
@@ -102,7 +99,14 @@ confirm the imported data and workspace state come back.
102
99
  `sqlrooms-server` is versioned, the workflow also updates the
103
100
  `sqlrooms-server>=...` dependency floor in `python/sqlrooms/pyproject.toml`.
104
101
 
105
- 3. Run the dry publish workflow for the intended target:
102
+ 3. Format the Python CLI packages before running publish checks:
103
+
104
+ ```bash
105
+ uv run --project python/sqlrooms ruff format
106
+ uv run --project python/sqlrooms ruff check --fix
107
+ ```
108
+
109
+ 4. Run the dry publish workflow for the intended target:
106
110
 
107
111
  ```bash
108
112
  pnpm cli:publish:dry --target sqlrooms
@@ -111,7 +115,7 @@ confirm the imported data and workspace state come back.
111
115
  The dry workflow runs validation and builds the selected package or packages,
112
116
  but it does not upload to PyPI.
113
117
 
114
- 4. Publish the same target:
118
+ 5. Publish the same target:
115
119
 
116
120
  ```bash
117
121
  pnpm cli:publish --target sqlrooms
@@ -751,6 +751,33 @@ class SqlroomsHttpServer:
751
751
  return None
752
752
  return JSONResponse({"error": "unauthorized"}, status_code=401)
753
753
 
754
+ async def _authenticate_duckdb_proxy_websocket(self, client_ws: WebSocket) -> bool:
755
+ await client_ws.accept()
756
+
757
+ query_token = (client_ws.query_params.get("token") or "").strip()
758
+ if query_token == self.session_token:
759
+ return True
760
+
761
+ try:
762
+ message = await asyncio.wait_for(client_ws.receive_text(), timeout=5)
763
+ payload = json.loads(message)
764
+ except Exception:
765
+ await client_ws.close(code=1008, reason="unauthorized")
766
+ return False
767
+
768
+ token = payload.get("token") if isinstance(payload, dict) else None
769
+ if (
770
+ isinstance(payload, dict)
771
+ and payload.get("type") == "auth"
772
+ and token == self.session_token
773
+ ):
774
+ await client_ws.send_json({"type": "authAck"})
775
+ return True
776
+
777
+ await client_ws.send_json({"type": "error", "error": "Unauthorized"})
778
+ await client_ws.close(code=1008, reason="unauthorized")
779
+ return False
780
+
754
781
  def _build_app(self) -> FastAPI:
755
782
  app = FastAPI(title="sqlrooms", version="0.1.0")
756
783
  app.add_middleware(
@@ -784,7 +811,9 @@ class SqlroomsHttpServer:
784
811
 
785
812
  @app.websocket("/ws/duckdb")
786
813
  async def duckdb_websocket_proxy(client_ws: WebSocket):
787
- await client_ws.accept()
814
+ if not await self._authenticate_duckdb_proxy_websocket(client_ws):
815
+ return
816
+
788
817
  try:
789
818
  import websockets
790
819
  except ImportError:
@@ -134,4 +134,4 @@ ${e}
134
134
  `;break}case`tool`:throw new nJ({functionality:`tool messages`});default:throw Error(`Unsupported role: ${i}`)}return r+=`${n}:
135
135
  `,{prompt:r,stopSequences:[`
136
136
  ${t}:`]}}function eY({id:e,model:t,created:n}){return{id:e??void 0,modelId:t??void 0,timestamp:n==null?void 0:new Date(n*1e3)}}function tY(e){switch(e){case`stop`:return`stop`;case`length`:return`length`;case`content_filter`:return`content-filter`;case`function_call`:case`tool_calls`:return`tool-calls`;default:return`unknown`}}var nY=k({echo:r().optional(),logitBias:b(y(),_()).optional(),suffix:y().optional(),user:y().optional()}),rY=class{constructor(e,t){this.specificationVersion=`v2`,this.modelId=e,this.config=t;let n=t.errorStructure??KJ;this.chunkSchema=oY(n.errorSchema),this.failedResponseHandler=NJ(n)}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}get supportedUrls(){var e;return(e=this.config).supportedUrls?.call(e)??{}}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,seed:l,providerOptions:u,tools:d,toolChoice:f}){let p=[],m=await kJ({provider:this.providerOptionsName,providerOptions:u,schema:nY})??{};i!=null&&p.push({type:`unsupported-setting`,setting:`topK`}),d?.length&&p.push({type:`unsupported-setting`,setting:`tools`}),f!=null&&p.push({type:`unsupported-setting`,setting:`toolChoice`}),c!=null&&c.type!==`text`&&p.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format is not supported.`});let{prompt:h,stopSequences:g}=$J({prompt:e}),_=[...g??[],...s??[]];return{args:{model:this.modelId,echo:m.echo,logit_bias:m.logitBias,suffix:m.suffix,user:m.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,seed:l,...u?.[this.providerOptionsName],prompt:h,stop:_.length>0?_:void 0},warnings:p}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:r,value:i,rawValue:a}=await jJ({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:rJ(this.config.headers(),e.headers),body:t,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:FJ(aY),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=i.choices[0],s=[];return o.text!=null&&o.text.length>0&&s.push({type:`text`,text:o.text}),{content:s,usage:{inputTokens:i.usage?.prompt_tokens??void 0,outputTokens:i.usage?.completion_tokens??void 0,totalTokens:i.usage?.total_tokens??void 0},finishReason:tY(o.finish_reason),request:{body:t},response:{...eY(i),headers:r,body:a},warnings:n}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},{responseHeaders:i,value:a}=await jJ({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:rJ(this.config.headers(),e.headers),body:r,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:PJ(this.chunkSchema),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=`unknown`,s={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},c=!0;return{stream:a.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){o=`error`,n.enqueue({type:`error`,error:t.error});return}let r=t.value;if(`error`in r){o=`error`,n.enqueue({type:`error`,error:r.error});return}c&&(c=!1,n.enqueue({type:`response-metadata`,...eY(r)}),n.enqueue({type:`text-start`,id:`0`})),r.usage!=null&&(s.inputTokens=r.usage.prompt_tokens??void 0,s.outputTokens=r.usage.completion_tokens??void 0,s.totalTokens=r.usage.total_tokens??void 0);let i=r.choices[0];i?.finish_reason!=null&&(o=tY(i.finish_reason)),i?.text!=null&&n.enqueue({type:`text-delta`,id:`0`,delta:i.text})},flush(e){c||e.enqueue({type:`text-end`,id:`0`}),e.enqueue({type:`finish`,finishReason:o,usage:s})}})),request:{body:r},response:{headers:i}}}},iY=k({prompt_tokens:_(),completion_tokens:_(),total_tokens:_()}),aY=k({id:y().nullish(),created:_().nullish(),model:y().nullish(),choices:E(k({text:y(),finish_reason:y()})),usage:iY.nullish()}),oY=e=>c([k({id:y().nullish(),created:_().nullish(),model:y().nullish(),choices:E(k({text:y(),finish_reason:y().nullish(),index:_()})),usage:iY.nullish()}),e]),sY=k({dimensions:_().optional(),user:y().optional()}),cY=class{constructor(e,t){this.specificationVersion=`v2`,this.modelId=e,this.config=t}get provider(){return this.config.provider}get maxEmbeddingsPerCall(){return this.config.maxEmbeddingsPerCall??2048}get supportsParallelCalls(){return this.config.supportsParallelCalls??!0}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}async doEmbed({values:e,headers:t,abortSignal:n,providerOptions:r}){let i=Object.assign(await kJ({provider:`openai-compatible`,providerOptions:r,schema:sY})??{},await kJ({provider:this.providerOptionsName,providerOptions:r,schema:sY})??{});if(e.length>this.maxEmbeddingsPerCall)throw new Wq({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let{responseHeaders:a,value:o,rawValue:s}=await jJ({url:this.config.url({path:`/embeddings`,modelId:this.modelId}),headers:rJ(this.config.headers(),t),body:{model:this.modelId,input:e,encoding_format:`float`,dimensions:i.dimensions,user:i.user},failedResponseHandler:NJ(this.config.errorStructure??KJ),successfulResponseHandler:FJ(lY),abortSignal:n,fetch:this.config.fetch});return{embeddings:o.data.map(e=>e.embedding),usage:o.usage?{tokens:o.usage.prompt_tokens}:void 0,providerMetadata:o.providerMetadata,response:{headers:a,body:s}}}},lY=k({data:E(k({embedding:E(_())})),usage:k({prompt_tokens:_()}).nullish(),providerMetadata:b(y(),b(y(),m())).optional()}),uY=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`,this.maxImagesPerCall=10}get provider(){return this.config.provider}get providerOptionsKey(){return this.config.provider.split(`.`)[0].trim()}async doGenerate({prompt:e,n:t,size:n,aspectRatio:r,seed:i,providerOptions:a,headers:o,abortSignal:s}){var c;let l=[];r!=null&&l.push({type:`unsupported-setting`,setting:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),i!=null&&l.push({type:`unsupported-setting`,setting:`seed`});let u=((c=this.config._internal)?.currentDate)?.call(c)??new Date,{value:d,responseHeaders:f}=await jJ({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:rJ(this.config.headers(),o),body:{model:this.modelId,prompt:e,n:t,size:n,...a[this.providerOptionsKey],response_format:`b64_json`},failedResponseHandler:NJ(this.config.errorStructure??KJ),successfulResponseHandler:FJ(dY),abortSignal:s,fetch:this.config.fetch});return{images:d.data.map(e=>e.b64_json),warnings:l,response:{timestamp:u,modelId:this.modelId,headers:f}}}},dY=k({data:E(k({b64_json:y()}))}),fY=`1.0.39`;function pY(e){let t=BJ(e.baseURL),n=e.name,r={...e.apiKey&&{Authorization:`Bearer ${e.apiKey}`},...e.headers},i=()=>dJ(r,`ai-sdk/openai-compatible/${fY}`),a=r=>({provider:`${n}.${r}`,url:({path:n})=>{let r=new URL(`${t}${n}`);return e.queryParams&&(r.search=new URLSearchParams(e.queryParams).toString()),r.toString()},headers:i,fetch:e.fetch}),o=e=>s(e),s=t=>new JJ(t,{...a(`chat`),includeUsage:e.includeUsage,supportsStructuredOutputs:e.supportsStructuredOutputs,supportedUrls:e.supportedUrls,transformRequestBody:e.transformRequestBody,metadataExtractor:e.metadataExtractor,convertUsage:e.convertUsage}),c=t=>new rY(t,{...a(`completion`),includeUsage:e.includeUsage}),l=e=>new cY(e,{...a(`embedding`)}),u=e=>new uY(e,a(`image`)),d=e=>o(e);return d.languageModel=o,d.chatModel=s,d.completionModel=c,d.textEmbeddingModel=l,d.imageModel=u,d}var mY=`Tool call cancelled by user`,hY=`abort`,gY=`Analysis cancelled - session was deleted`,_Y=`Analysis cancelled`,vY=`data-sqlrooms-chat-error`;function yY(e){return e?e.parts.filter(e=>e.type===`text`).map(e=>e.text).join(``):``}function bY(e){let t=(e?.metadata)?.sqlrooms?.errorMessage?.error;return typeof t==`string`?{error:t}:void 0}function xY(e){let t=e?.metadata;return typeof t?.sqlrooms?.isCompleted==`boolean`?t.sqlrooms.isCompleted:void 0}function SY(e,t){let n=e.metadata??{};e.metadata={...n,sqlrooms:{...n.sqlrooms??{},errorMessage:t}}}function CY(e){return{type:vY,data:e}}function wY(e){if(!e||typeof e!=`object`)return;let t=e;if(t.type!==`data-sqlrooms-chat-error`)return;let n=t.data;if(!n||typeof n!=`object`)return;let r=n.error;return typeof r==`string`?{error:r}:void 0}function TY(e){return e.some(e=>!!bY(e)||e.parts.some(e=>!!wY(e)))}function EY(e){if((e.type===`text`||e.type===`reasoning`)&&e.state===`streaming`)return!1;if(e.type===`dynamic-tool`||e.type.startsWith(`tool-`)){let t=e.state;return t===`output-available`||t===`output-error`||t===`output-denied`}return!0}function DY(e){return e.every(e=>e.parts.every(EY))}function OY(e,t={}){if(!e?.length)return[];let n=[];for(let r=0;r<e.length;r++){let i=e[r];if(!i||i.role!==`user`)continue;let a=[],o=r+1;for(;o<e.length;){let t=e[o];if(!t||t.role===`user`)break;t.role===`assistant`&&a.push(t),o++}let s=!e.slice(o).some(e=>e.role===`user`),c=bY(i),l=xY(i),u=a.length>0&&DY(a)&&!(t.isRunning&&s);n.push({id:i.id,prompt:yY(i),userMessage:i,assistantMessages:a,isCompleted:!!c||(l??u),errorMessage:c})}return n}function kY(e,t={}){return OY(e,t).map(e=>({id:e.id,prompt:e.prompt,isCompleted:e.isCompleted,...e.errorMessage?{errorMessage:e.errorMessage}:{}}))}function AY(e){let t=e.filter(Boolean);if(t.length===0)return;if(t.length===1)return t[0];let n=new AbortController,r=()=>{n.signal.aborted||n.abort()};for(let e of t){if(e.aborted){r();break}e.addEventListener(hY,r,{once:!0})}return n.signal}var jY=class e extends Error{progressSnapshot;constructor(t=`Operation was aborted`,n){super(t),this.name=`ToolAbortError`,this.progressSnapshot=n,Error.captureStackTrace&&Error.captureStackTrace(this,e)}};function MY(e){let t=[];return Object.entries(e.providers).forEach(([e,n])=>{n.models.forEach(n=>{t.push({provider:e,label:n.modelName,value:n.modelName})})}),e.customModels.forEach(e=>{t.push({provider:`custom`,label:e.modelName,value:e.modelName})}),t}function NY(e){return e.type===`text`}function PY(e){return e.type===`reasoning`}function FY(e){return typeof e.type==`string`&&e.type.startsWith(`tool-`)}function IY(e){return e.type===`dynamic-tool`}function LY(e,t){if(!e)return!1;for(let n of t)if(!(typeof n.type==`string`&&n.type.startsWith(`step-`))){if(FY(n)||IY(n))return n.input?.reasoning?.toString().trim()===e;break}return!1}function RY(e){return Array.isArray(e.uiMessages)?{...e,uiMessages:WY(e.uiMessages)}:e}function zY(e){return{...RY(e),isRunning:!1}}function BY(e){return e?.sessions?{...e,sessions:e.sessions.map(zY)}:e}function VY(e){if(!e||typeof e!=`object`)return e;if(Array.isArray(e))return e.map(VY);let t=e;if(!(`agentToolCalls`in t))return e;let n={};for(let[e,r]of Object.entries(t))e!==`agentToolCalls`&&(n[e]=VY(r));return n}function HY(e,t){let n=t===void 0?void 0:new Set(t),r=e=>{if(n===void 0||typeof e.type!=`string`)return!1;if(e.type===`dynamic-tool`){let t=e.toolName;return typeof t==`string`&&!n.has(t)}if(e.type.startsWith(`tool-`)){let t=e.type.slice(5);return!n.has(t)}return!1};return e.filter(e=>e.role!==`assistant`||!e.parts||e.parts.length===0?!0:!e.parts.every(e=>e.type===vY)).map(e=>{if(!e.parts||e.parts.length===0)return e;let t=e.parts.filter(e=>{if(e.type===`text`){let t=e;return t.text&&t.text.trim().length>0}if(e.type===`reasoning`){let t=e;return t.text&&t.text.trim().length>0}return!r(e)}).map(e=>{let t=e;return t.state===`output-available`&&t.output&&typeof t.output==`object`&&`agentToolCalls`in t.output?{...e,output:VY(t.output)}:e});return t.length===0&&e.role===`assistant`?{...e,parts:[{type:`text`,text:`[Response interrupted]`}]}:{...e,parts:t}}).filter(e=>e.parts&&e.parts.length>0)}function UY(e){let t=XK({messages:e}),n=e[e.length-1],r=n?.role===`assistant`,i=!1;if(r){let e=n?.parts??[],t=-1;for(let n=e.length-1;n>=0;n--)if(e[n]?.type===`step-start`){t=n;break}i=e.slice(t+1).some(e=>typeof e?.type==`string`&&(e.type.startsWith(`tool-`)||e.type===`dynamic-tool`))}return r&&!t&&!i||!t&&!r}function WY(e){return e.map(e=>{if(e.role!==`assistant`||!e.parts)return e;let t=e=>{if(typeof e!=`object`||!e)return!1;let t=e,n=typeof t.type==`string`?t.type:void 0;return!!n&&`toolCallId`in t&&(n===`dynamic-tool`||n.startsWith(`tool-`))},n=[...e.parts];for(let e=0;e<n.length;e++){let t=n[e];t?.type===`reasoning`&&t.state!==`done`&&(n[e]={...n[e],state:`done`})}for(let e=n.length-1;e>=0;e--){let r=n[e];if(!t(r))continue;let i=r;if(i.state?.startsWith(`output`)||i.state===`approval-requested`||i.state===`approval-responded`){i.state===`output-error`&&i.input!==void 0&&(n[e]={...n[e],input:void 0,rawInput:i.rawInput??i.input});continue}let a={toolCallId:i.toolCallId,state:`output-error`,input:void 0,rawInput:i.rawInput??i.input,errorText:mY,providerExecuted:!1};n[e]=i.type===`dynamic-tool`?{type:`dynamic-tool`,toolName:i.toolName||`unknown`,...a}:{type:i.type,...a}}return{...e,parts:n}})}function GY(e){let t=e.tools;return!t||typeof t!=`object`?[]:Object.entries(t).map(([e,t])=>{let n=t&&typeof t==`object`?t:{};return{name:e,description:typeof n.description==`string`?n.description:void 0,hasExecute:typeof n.execute==`function`,hasRenderer:typeof n.renderer==`function`||typeof n.render==`function`,needsApproval:!!n.needsApproval}})}function KY(e){if(e&&typeof e==`object`&&`agentToolCalls`in e&&Array.isArray(e.agentToolCalls))return e.agentToolCalls}var qY=200;function JY(e){if(e==null)return e;try{let t=typeof e==`string`?e:JSON.stringify(e);return t.length<=qY?e:t.slice(0,qY)+`...`}catch{return`[output too large to summarize]`}}function YY(e){let t=Date.now();for(let[n,r]of e)(r.state===`pending`||r.state===`approval-requested`)&&e.set(n,{...r,state:`error`,errorText:mY,completedAt:t,approvalId:void 0})}function XY(e,t,n,r){let i=[],a=[],o=[];for(let e of t.values()){let t=r.getState().ai.readAbortSnapshot?.(e.toolCallId);e.state===`success`?i.push({toolName:e.toolName,input:e.input,output:JY(e.output),...t?{childSnapshot:t}:{}}):e.state===`error`?a.push({toolName:e.toolName,input:e.input,errorText:e.errorText||`unknown`,...t?{childSnapshot:t}:{}}):o.push({toolName:e.toolName,input:e.input,...t?{childSnapshot:t}:{}})}return{agentName:e,completedTools:i,failedTools:a,pendingTools:o,partialText:n}}function ZY(e,t=``){let n=[];for(let r of e.completedTools){let e=r.input==null?``:JSON.stringify(r.input),i=r.output==null?``:` -> ${typeof r.output==`string`?r.output:JSON.stringify(r.output)}`;n.push(`${t}- Completed: ${r.toolName}(${e})${i}`),r.childSnapshot&&n.push(ZY(r.childSnapshot,t+` `))}for(let r of e.failedTools)n.push(`${t}- Failed: ${r.toolName} (${r.errorText})`),r.childSnapshot&&n.push(ZY(r.childSnapshot,t+` `));for(let r of e.pendingTools){let e=r.input==null?``:JSON.stringify(r.input);n.push(`${t}- Pending: ${r.toolName}(${e})`),r.childSnapshot&&n.push(ZY(r.childSnapshot,t+` `))}if(e.partialText){let r=e.partialText.length>200?e.partialText.slice(0,200)+`...`:e.partialText;n.push(`${t}- Partial response: ${r}`)}return n.join(`
137
- `)}async function QY(e,t,n,r,i){let a=()=>{if(i?.aborted)throw new jY(mY)},o=``,s=new Map,c=n.getState().ai.devtools;c?.shouldCaptureAgentSnapshots?.()&&c.writeAgentSnapshot?.(r,{agentName:r,parentToolCallId:r,availableTools:GY(e),startedAt:Date.now()});let l=()=>{n.getState().ai.updateAgentProgress(r,Array.from(s.values()).map(e=>({...e})))},u=[{id:crypto.randomUUID(),role:`user`,parts:[{type:`text`,text:t}]}];for(;;){a();let t=null,c=await HK({agent:e,uiMessages:u,abortSignal:i}),d=new Map;try{for await(let e of c){if(a(),e.type===`text-delta`&&(o+=e.delta),e.type===`tool-approval-request`&&`approvalId`in e&&`toolCallId`in e){let n=e;t={approvalId:n.approvalId,toolCallId:n.toolCallId};let r=s.get(n.toolCallId);r&&(s.set(n.toolCallId,{...r,state:`approval-requested`,approvalId:n.approvalId}),l());continue}if(e.type===`tool-input-available`&&d.set(e.toolCallId,{toolCallId:e.toolCallId,toolName:e.toolName,input:e.input}),!(`toolCallId`in e)||!e.toolCallId)continue;let n=e.toolCallId,r=!1;!s.has(n)&&`toolName`in e&&e.toolName&&(s.set(n,{toolCallId:n,toolName:e.toolName,state:`pending`,startedAt:Date.now()}),r=!0);let i=s.get(n);if(i){if(e.type===`tool-input-available`)s.set(n,{...i,input:e.input}),r=!0;else if(e.type===`tool-output-available`){let t=KY(e.output);s.set(n,{...i,output:e.output,state:`success`,completedAt:Date.now(),...t?{agentToolCalls:t}:{}}),r=!0;let a=d.get(n);a&&(a.output=e.output)}else e.type===`tool-output-error`||e.type===`tool-input-error`?(s.set(n,{...i,errorText:e.errorText,state:`error`,completedAt:Date.now()}),r=!0):e.type===`tool-output-denied`&&(s.set(n,{...i,state:`error`,errorText:`Denied by user`,completedAt:Date.now()}),r=!0);r&&l()}}}catch(e){if(YY(s),l(),i?.aborted){let e=XY(r,s,o,n);throw n.getState().ai.writeAbortSnapshot?.(r,e),new jY(mY,e)}throw e}if(!t)break;let f=s.get(t.toolCallId);if(!f||!n.getState().ai.requestSubAgentApproval)break;let p=await new Promise(e=>{a(),n.getState().ai.requestSubAgentApproval({toolCallId:t.toolCallId,approvalId:t.approvalId,toolName:f.toolName,input:f.input,resolve:e})});a(),n.getState().ai.clearSubAgentApproval?.(t.approvalId),p?s.set(t.toolCallId,{...f,state:`pending`,approvalId:void 0}):s.set(t.toolCallId,{...f,state:`error`,errorText:`Denied by user`,approvalId:void 0}),l();let m={id:crypto.randomUUID(),role:`assistant`,parts:Array.from(d.values()).map(e=>e.toolCallId===t.toolCallId?{type:`tool-${e.toolName}`,toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,state:p?`approval-responded`:`output-denied`,approval:{id:t.approvalId,approved:p}}:{type:`tool-${e.toolName}`,toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,output:e.output,state:`output-available`})};u=[...u,m]}if(i?.aborted&&YY(s),l(),i?.aborted){let e=XY(r,s,o,n);throw n.getState().ai.writeAbortSnapshot?.(r,e),new jY(mY,e)}return{finalOutput:o,agentToolCalls:Array.from(s.values())}}function $Y(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(!r||r.role!==`assistant`)continue;let i=r.parts.filter(e=>typeof e.type==`string`&&(e.type.startsWith(`tool-`)||e.type===`dynamic-tool`)).map(e=>e.toolCallId).filter(e=>!!e);if(i.length===0)continue;let a={};for(let e of i){let n=t[e];n&&(a[e]=n)}if(Object.keys(a).length>0){let e=r.metadata??{};r.metadata={...e,toolTimings:{...e.toolTimings??{},...a}}}}}function eX(e,t){for(let n of e)if(!(n.role!==`assistant`||!n.parts))for(let e=0;e<n.parts.length;e++){let r=n.parts[e];if(r.state!==`output-error`||!r.toolCallId||typeof r.toolCallId!=`string`)continue;let i=t.ai.readAbortSnapshot?.(r.toolCallId);if(!i)continue;let a=ZY(i);r.errorText=`${typeof r.errorText==`string`?r.errorText:mY}\nProgress before cancellation:\n${a}`}}function tX(e,t){let n=nX(e);rX(n,t.ai.agentProgress),e.agentProgress=structuredClone(aX(t.ai.agentProgress,n)),t.ai.devtools.shouldPersistAgentSnapshots()?e.agentSnapshots=structuredClone(aX(t.ai.devtools.agentSnapshots,n)):delete e.agentSnapshots}function nX(e){let t=new Set;for(let n of e.uiMessages??[])for(let e of n.parts??[]){let n=e.toolCallId;typeof n==`string`&&t.add(n)}return t}function rX(e,t){let n=!0;for(;n;){n=!1;for(let[r,i]of Object.entries(t))if(e.has(r))for(let t of i)n=iX(e,t)||n}}function iX(e,t){let n=!1;e.has(t.toolCallId)||(e.add(t.toolCallId),n=!0);for(let r of t.agentToolCalls??[])n=iX(e,r)||n;return n}function aX(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>t.has(e)))}function oX(e,t){if(t)return e.getState().ai.config.sessions.find(e=>e.id===t)}function sX(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>{if(!n||typeof n.execute!=`function`)return[e,n];let r=n.execute;return[e,{...n,execute:async(e,n)=>{let i=typeof n?.toolCallId==`string`?n.toolCallId:void 0;return i&&t.sessionId&&t.state.ai.setToolCallSession(i,t.sessionId),r(e,{...n,sessionId:t.sessionId,aiRunContext:t.getAiRunContext?t.getAiRunContext():t.aiRunContext,getAiRunContext:t.getAiRunContext,setAiRunContext:t.setAiRunContext,setPrimaryRunContextItem:t.setPrimaryRunContextItem})}}]}))}var cX=new Map;function lX(e,t){cX.set(e,structuredClone(t))}function uX(e){let t=cX.get(e);return cX.delete(e),t}function dX(e,t){if(!(!t||t.totalTokens<=0))for(let n=e.length-1;n>=0;n--){let r=e[n];if(!(!r||r.role!==`assistant`)){r.metadata={...r.metadata??{},tokenUsage:t};return}}}function fX(e){return{inputTokens:e?.inputTokens??0,outputTokens:e?.outputTokens??0,totalTokens:e?.totalTokens??0,inputTokenDetails:{cacheReadTokens:e?.inputTokenDetails?.cacheReadTokens,cacheWriteTokens:e?.inputTokenDetails?.cacheWriteTokens},outputTokenDetails:{reasoningTokens:e?.outputTokenDetails?.reasoningTokens}}}function pX({sessionId:e,store:t,defaultProvider:n,defaultModel:r,headers:i,getInstructions:a,getCustomModel:o}){return()=>new qK({fetch:async(s,c)=>{let l=c?.body,u={};try{u=l?JSON.parse(l):{}}catch(e){console.error(`Failed to parse chat transport body. Messages will be empty.`,{bodyType:typeof l,bodyLength:l?.length,parseError:e}),u={}}let d=u||{},f=t.getState(),p=oX(t,e),m=p?.modelProvider||n,h=p?.model||r,g=p?.runContext,_=t=>{g=t,f.ai.setSessionRunContext(e,t)},v=f.ai.getApiKeyFromSettings(),y=f.ai.getBaseUrlFromSettings(),b=o?.();b||=pY({apiKey:v,name:m,baseURL:y??`https://api.openai.com/v1`,headers:i}).chatModel(h);let x=Array.isArray(d.messages)?d.messages:[],S=sX(f.ai.tools||{},{state:f,sessionId:e,aiRunContext:g,getAiRunContext:()=>g,setAiRunContext:_,setPrimaryRunContextItem:e=>{_(aF(g,e))}}),C=a(),w=f.ai.getProviderOptions?.({provider:m,modelId:h}),T=f.ai.getAbortController(e)?.signal,E=AY([c?.signal??void 0,T]),ee=f.ai.getMaxStepsFromSettings(),D=new IK({model:b,instructions:C,tools:S,stopWhen:qG(ee),onFinish:({totalUsage:t,usage:n})=>{lX(e,fX(t??n))},...w?{providerOptions:w}:{}}),O={inputTokens:0,outputTokens:0,totalTokens:0};return UK({agent:D,uiMessages:HY(WY(x),Object.keys(S)),abortSignal:E,messageMetadata:({part:t})=>{if(t.type===`finish-step`){let e=t.usage;O.inputTokens+=e.inputTokens??0,O.outputTokens+=e.outputTokens??0,O.totalTokens+=e.totalTokens??0,(e.inputTokenDetails?.cacheReadTokens!=null||e.inputTokenDetails?.cacheWriteTokens!=null)&&(O.inputTokenDetails={cacheReadTokens:(O.inputTokenDetails?.cacheReadTokens??0)+(e.inputTokenDetails?.cacheReadTokens??0),cacheWriteTokens:(O.inputTokenDetails?.cacheWriteTokens??0)+(e.inputTokenDetails?.cacheWriteTokens??0)}),e.outputTokenDetails?.reasoningTokens!=null&&(O.outputTokenDetails={reasoningTokens:(O.outputTokenDetails?.reasoningTokens??0)+(e.outputTokenDetails.reasoningTokens??0)})}if(t.type===`finish`)return lX(e,O),{tokenUsage:O}}})}})}function mX(e){return(t,n)=>new qK({api:t,credentials:`include`,headers:n,fetch:async(t,n)=>{let{store:r,defaultProvider:i,defaultModel:a,sessionId:o,getInstructions:s}=e,c=r.getState(),l=n?.body,u={};try{u=l?JSON.parse(l):{}}catch(e){console.error(`Failed to parse remote chat transport body. Messages will be empty.`,{bodyType:typeof l,bodyLength:l?.length,parseError:e}),u={}}let d=oX(r,o),f=d?.modelProvider||i,p=d?.model||a,m=typeof u==`object`&&u?u:{},h=Array.isArray(m.messages)?HY(WY(m.messages)):[],g={...m,messages:h,modelProvider:f,model:p,instructions:s(),runContext:d?.runContext,maxSteps:c.ai.getMaxStepsFromSettings()},_=c.ai.getAbortController(o)?.signal,v=AY([n?.signal??void 0,_]);return fetch(t,{...n,signal:v,body:JSON.stringify(g)})}})}function hX({sessionMessages:e,fallbackMessages:t}){return t&&t.length>0?t:e}function gX(e){return!!(e?.role===`assistant`&&e.parts?.some(e=>e.type===`data-sqlrooms-chat-error`))}function _X(e){return{id:EP(),role:`assistant`,parts:[CY({error:e})]}}function vX({store:e,onChatFinish:t}){return{onChatFinish:({sessionId:n,messages:r})=>{if(n)try{let i=e.getState();if(i.ai.getAbortController(n)?.signal.aborted){let t=oX(e,n)?.uiMessages||[],a=WY(r&&r.length>0?r:t);eX(a,i),uX(n),$Y(a,i.ai.getToolTimings());let o=a.filter(e=>e.role===`user`).slice(-1)[0];o&&SY(o,{error:mY}),i.ai.setSessionUiMessages(n,a),i.ai.setIsRunning(n,!1),i.ai.setAbortController(n,void 0),i.ai.clearAbortSnapshots?.(),e.setState(e=>w(e,e=>{let t=e.ai.config.sessions.find(e=>e.id===n);t&&(t.messagesRevision=(t.messagesRevision||0)+1,tX(t,i))}));return}let a=WY(r);dX(a,uX(n)),$Y(a,i.ai.getToolTimings()),i.ai.setSessionUiMessages(n,a),e.setState(e=>w(e,e=>{let t=e.ai.config.sessions.find(e=>e.id===n);t&&tX(t,i)})),UY(a)&&(i.ai.setIsRunning(n,!1),i.ai.setAbortController(n,void 0),t?.({sessionId:n,messages:a}))}catch(e){throw console.error(`onChatFinish error:`,e),e}},onChatError:(t,n,r)=>{try{uX(t);let i=bv(n);if((!i||i.trim().length===0)&&(i=`Unknown error`),yX(n,i)){let n=oX(e,t)?.modelProvider||`openai`;e.getState().ai.setApiKeyError(n,!0)}let a=e.getState(),o=a.ai.getToolTimings();e.setState(e=>w(e,e=>{if(!t)return;let n=e.ai.config.sessions.find(e=>e.id===t);if(n){let e=WY(hX({sessionMessages:n.uiMessages||[],fallbackMessages:r}));$Y(e,o);let t=e.filter(e=>e.role===`user`).slice(-1)[0];t&&SY(t,{error:i}),gX(e.at(-1))||e.push(_X(i)),n.uiMessages=e,tX(n,a)}})),e.setState(e=>w(e,e=>{let n=e.ai.config.sessions.find(e=>e.id===t);n&&(n.messagesRevision=(n.messagesRevision||0)+1)})),e.getState().ai.setIsRunning(t,!1),e.getState().ai.setAbortController(t,void 0),e.getState().ai.clearAbortSnapshots?.()}catch(e){throw console.error(`Failed to store chat error:`,e),e}}}}function yX(e,t){if(e&&typeof e==`object`){let t=e,n=t.status??t.statusCode??t.response?.status;if(n===401||n===403)return!0}let n=t.toLowerCase();return[`invalid api key`,`incorrect api key`,`invalid_api_key`,`unauthorized`,`authentication failed`,`api key is invalid`,`api key not found`,`invalid authorization`,`invalid credentials`,`access denied`,`401`,`403`].some(e=>n.includes(e))}function bX(e){return xX(e)&&`aiSettings`in e&&xX(e.aiSettings)&&`config`in e.aiSettings&&xX(e.aiSettings.config)}function xX(e){return typeof e==`object`&&!!e}function SX(e,t){try{let n=JSON.stringify(e);return new TextEncoder().encode(n).byteLength>t?void 0:JSON.parse(n)}catch{return}}function CX(e){let t=new Set(e.sessions.map(e=>e.id)),n=e.sessionForks??{},r=Object.fromEntries(Object.entries(n).filter(([e])=>t.has(e)));return e.sessionForks&&Object.keys(r).length===Object.keys(n).length?e:{...e,sessionForks:r}}function wX(e){let t=new Set;for(let n of e)for(let e of n.parts??[]){let n=e.toolCallId;typeof n==`string`&&t.add(n)}return t}function TX(e,t){if(!t)return;let n=!0;for(;n;){n=!1;for(let[r,i]of Object.entries(t))if(!(!e.has(r)||!Array.isArray(i)))for(let t of i)n=EX(e,t)||n}}function EX(e,t){if(!t||typeof t!=`object`)return!1;let n=!1,r=t;if(typeof r.toolCallId==`string`&&!e.has(r.toolCallId)&&(e.add(r.toolCallId),n=!0),Array.isArray(r.agentToolCalls))for(let t of r.agentToolCalls)n=EX(e,t)||n;return n}function DX({sourceSession:e,targetMessages:t}){if(!e.agentProgress)return;let n=wX(t);TX(n,e.agentProgress);let r=Object.fromEntries(Object.entries(e.agentProgress).filter(([e])=>n.has(e)));return Object.keys(r).length>0?structuredClone(r):void 0}function OX({sourceSession:e,targetMessages:t}){if(!e.agentSnapshots)return;let n=wX(t);TX(n,e.agentProgress);let r=Object.fromEntries(Object.entries(e.agentSnapshots).filter(([e])=>n.has(e)));return Object.keys(r).length>0?structuredClone(r):void 0}function kX({sourceSession:e,args:t,targetSessionId:n,now:r}){let i=e.uiMessages,a=OY(i,{isRunning:e.isRunning}),o=t.sourceTurnId?a.find(e=>e.id===t.sourceTurnId):t.legacySourceAnalysisResultId?a.find(e=>e.id===t.legacySourceAnalysisResultId):void 0,s=typeof t.sourceMessageIndex==`number`?t.sourceMessageIndex:-1;if(s<0&&t.sourceMessageId&&(s=i.findIndex(e=>e.id===t.sourceMessageId)),s<0&&o){let e=new Set([o.userMessage.id,...o.assistantMessages.map(e=>e.id)]);for(let t=i.length-1;t>=0;t--){let n=i[t];if(n&&e.has(n.id)){s=t;break}}}if(s<0||s>=i.length)return;let c=i[s];if(!c||c.role!==`assistant`)return;if(!o){if(t.sourceTurnId||t.legacySourceAnalysisResultId)return;o=a.find(e=>e.assistantMessages.some(e=>e.id===c.id))}if(!o||!o.isCompleted||!o.assistantMessages.some(e=>e.id===c.id))return;let l=structuredClone(i.slice(0,s+1)),u=e.draftContextItemIds?Array.from(new Set(e.draftContextItemIds)):void 0,d=DX({sourceSession:e,targetMessages:l}),f=OX({sourceSession:e,targetMessages:l});return{forkedSession:{id:n,name:t.name??`Fork of ${e.name||`Untitled`}`,modelProvider:e.modelProvider,model:e.model,...e.customModelName?{customModelName:e.customModelName}:{},...e.baseUrl?{baseUrl:e.baseUrl}:{},createdAt:new Date(r),uiMessages:l,messagesRevision:0,prompt:``,...u?{draftContextItemIds:u}:{},...!u&&e.runContext?{runContext:structuredClone(e.runContext)}:{},...d?{agentProgress:d}:{},...f?{agentSnapshots:f}:{},isRunning:!1,lastOpenedAt:r},forkOrigin:{sourceSessionId:e.id,sourceMessageId:c.id,sourceTurnId:o.id,sourceMessageIndex:s,...t.legacySourceAnalysisResultId?{legacySourceAnalysisResultId:t.legacySourceAnalysisResultId}:{},sourceSessionNameAtFork:e.name,createdAt:r}}}var AX=`@sqlrooms/ai-core`;function jX(e){let{initialPrompt:t=``,tools:n,getApiKey:r,getBaseUrl:i,maxSteps:a,getInstructions:o,defaultProvider:s=`openai`,defaultModel:c=`gpt-4.1`,getAvailableModels:l,getCustomModel:u,getProviderOptions:d,chatEndPoint:f=``,chatHeaders:p={},getRunContext:m,formatRunContextInstructions:h}=e,g={captureAgentSnapshots:e.devtools?.captureAgentSnapshots??!1,persistAgentSnapshots:e.devtools?.persistAgentSnapshots??!1,maxAgentSnapshotBytes:e.devtools?.maxAgentSnapshotBytes??64e3};return C((_,v,y)=>{let b=new WeakMap,x=BY(e.config);function C(e){let t={},n={},r={};for(let i of e.sessions){if(i.agentProgress&&Object.assign(n,i.agentProgress),i.agentSnapshots)for(let[e,t]of Object.entries(i.agentSnapshots)){let n=SX(t,g.maxAgentSnapshotBytes);n&&(r[e]=n)}let e=i.uiMessages??[];for(let n of e){if(n.role!==`assistant`)continue;let e=n.metadata;e?.toolTimings&&Object.assign(t,e.toolTimings)}}return{timings:t,progress:n,snapshots:r}}let T=new Map,E=new Map,D=new Map,O=new Map,te=new Map,k=new Map,ne=new Map,re=new Map,ie=(e,t)=>{let n=l?.()??[],r=(e,t)=>!!(e&&t&&(n.length===0||n.some(n=>n.provider===e&&n.value===t)));if(r(e,t))return{modelProvider:e,model:t};if(r(s,c))return{modelProvider:s,model:c};let i=n[0];return i?{modelProvider:i.provider,model:i.value}:{modelProvider:s,model:c}},A=CX(uF(x));if(!x?.sessions||x.sessions.length===0){let e=A.sessions[0];e&&(e.modelProvider=s,e.model=c,e.prompt=t,e.isRunning=!1)}let j=new Set(A.sessions.map(e=>e.id));(!A.currentSessionId||!j.has(A.currentSessionId))&&(A.currentSessionId=A.sessions[0]?.id),A.openSessionTabs&&A.openSessionTabs.length>0&&(A.openSessionTabs=A.openSessionTabs.filter(e=>j.has(e))),A.currentSessionId&&!A.openSessionTabs?.includes(A.currentSessionId)&&(A.openSessionTabs=[A.currentSessionId,...A.openSessionTabs??[]]),(!A.openSessionTabs||A.openSessionTabs.length===0)&&(A.openSessionTabs=A.currentSessionId?[A.currentSessionId]:[]);let ae=C(A);return{ai:{initialize:async()=>{S(y,AX,IX());let e=C(v().ai.config);_(t=>w(t,t=>{t.ai.toolTimings=e.timings,t.ai.agentProgress=e.progress,t.ai.devtools.agentSnapshots=e.snapshots}))},destroy:async()=>{ee(y,AX)},config:A,promptSuggestionsVisible:!0,apiKeyErrors:{},tools:n,toolRenderers:e.toolRenderers??{},getProviderOptions:d,setToolCallSession:(e,t)=>{e&&(t?T.set(e,t):T.delete(e))},getToolCallSession:e=>{if(e)return T.get(e)},agentProgress:ae.progress,updateAgentProgress:(e,t)=>{_(n=>w(n,n=>{n.ai.agentProgress[e]=t}))},clearAgentProgress:e=>{_(t=>w(t,t=>{delete t.ai.agentProgress[e]}))},devtools:{agentSnapshots:ae.snapshots,shouldCaptureAgentSnapshots:()=>g.captureAgentSnapshots,shouldPersistAgentSnapshots:()=>g.persistAgentSnapshots,writeAgentSnapshot:(e,t)=>{if(!g.captureAgentSnapshots)return;let n=SX(t,g.maxAgentSnapshotBytes);n&&_(t=>w(t,t=>{t.ai.devtools.agentSnapshots[e]=n}))},clearAgentSnapshots:()=>{_(e=>w(e,e=>{e.ai.devtools.agentSnapshots={}}))}},pendingSubAgentApprovals:{},requestSubAgentApproval:e=>{_(t=>w(t,t=>{t.ai.pendingSubAgentApprovals[e.approvalId]={toolCallId:e.toolCallId,approvalId:e.approvalId,toolName:e.toolName,input:e.input,resolve:e.resolve}})),ne.set(e.approvalId,e.resolve)},resolveSubAgentApproval:(e,t)=>{let n=ne.get(e);n&&(n(t),ne.delete(e)),_(t=>w(t,t=>{delete t.ai.pendingSubAgentApprovals[e]}))},clearSubAgentApproval:e=>{ne.delete(e),_(t=>w(t,t=>{delete t.ai.pendingSubAgentApprovals[e]}))},writeAbortSnapshot:(e,t)=>{re.set(e,t)},readAbortSnapshot:e=>re.get(e),clearAbortSnapshots:()=>{re.clear()},isSummarizing:!1,setIsSummarizing:e=>{_(t=>w(t,t=>{t.ai.isSummarizing=e}))},toolTimings:ae.timings,setToolTiming:(e,t)=>{_(n=>w(n,n=>{n.ai.toolTimings[e]=t}))},getToolTimings:()=>v().ai.toolTimings,getAbortController:e=>E.get(e),setAbortController:(e,t)=>{t?E.set(e,t):E.delete(e)},setChatStop:(e,t)=>{t?D.set(e,t):D.delete(e)},getChatStop:e=>D.get(e),setChatSendMessage:(e,t)=>{t?O.set(e,t):O.delete(e)},getChatSendMessage:e=>O.get(e),setAddToolOutput:(e,t)=>{t?te.set(e,t):te.delete(e)},getAddToolOutput:e=>te.get(e),setAddToolApprovalResponse:(e,t)=>{t?k.set(e,t):k.delete(e)},getAddToolApprovalResponse:e=>k.get(e),setConfig:e=>{let t=CX(BY(e)),n=C(t);_(e=>w(e,e=>{e.ai.config=t,e.ai.toolTimings=n.timings,e.ai.agentProgress=n.progress,e.ai.devtools.agentSnapshots=n.snapshots}))},setPromptSuggestionsVisible:e=>{_(t=>w(t,t=>{t.ai.promptSuggestionsVisible=e}))},setApiKeyError:(e,t)=>{_(n=>w(n,n=>{t?n.ai.apiKeyErrors[e]=!0:delete n.ai.apiKeyErrors[e]}))},hasApiKeyError:()=>{let e=v(),t=e.ai.getCurrentSession()?.modelProvider||s;return!!e.ai.apiKeyErrors[t]},setPrompt:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.prompt=t)}))},getPrompt:e=>v().ai.config.sessions.find(t=>t.id===e)?.prompt||``,setIsRunning:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.isRunning=t)}))},getIsRunning:e=>v().ai.config.sessions.find(t=>t.id===e)?.isRunning||!1,setAiModel:(e,t)=>{_(n=>w(n,n=>{let r=MX(n);r&&(r.modelProvider=e,r.model=t)}))},getCurrentSession:()=>{let{currentSessionId:e,sessions:t}=v().ai.config;return t.find(t=>t.id===e)},getSessionRunContext:e=>v().ai.config.sessions.find(t=>t.id===e)?.runContext,setSessionRunContext:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.runContext=t)}))},getSessionDraftContextItemIds:e=>v().ai.config.sessions.find(t=>t.id===e)?.draftContextItemIds,setSessionDraftContextItemIds:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.draftContextItemIds=t?Array.from(new Set(t)):void 0)}))},createSession:(e,t,n)=>{let r=v().ai.getCurrentSession(),i=ie(t||r?.modelProvider,n||r?.model),a=EP(),o=e;o||=`Untitled`,_(e=>w(e,e=>{let t=Date.now();e.ai.config.sessions.unshift({id:a,name:o,modelProvider:i.modelProvider,model:i.model,createdAt:new Date,uiMessages:[],messagesRevision:0,prompt:``,draftContextItemIds:void 0,isRunning:!1,lastOpenedAt:t}),e.ai.config.currentSessionId=a,e.ai.config.openSessionTabs||(e.ai.config.openSessionTabs=[]),e.ai.config.openSessionTabs.push(a)}))},forkSessionFromMessage:e=>{let t=v().ai.config.sessions.find(t=>t.id===e.sourceSessionId);if(!t)return;let n=Date.now(),r=EP(),i=kX({sourceSession:t,args:e,targetSessionId:r,now:n});if(i)return _(e=>w(e,e=>{e.ai.config.sessions.unshift(i.forkedSession),e.ai.config.currentSessionId=r,e.ai.config.openSessionTabs||(e.ai.config.openSessionTabs=[]),e.ai.config.openSessionTabs.push(r),e.ai.config.sessionForks[r]=i.forkOrigin})),r},getSessionForkOrigin:e=>v().ai.config.sessionForks[e],switchSession:e=>{_(t=>w(t,t=>{let n=Date.now();t.ai.config.currentSessionId=e,t.ai.config.openSessionTabs||(t.ai.config.openSessionTabs=[]),t.ai.config.openSessionTabs.includes(e)||t.ai.config.openSessionTabs.push(e);let r=t.ai.config.sessions.find(t=>t.id===e);r&&(r.lastOpenedAt=n)}))},setOpenSessionTabs:e=>{_(t=>w(t,t=>{let n=new Set(t.ai.config.sessions.map(e=>e.id));t.ai.config.openSessionTabs=e.filter(e=>n.has(e))}))},renameSession:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.name=t)}))},deleteSession:e=>{let t=E.get(e);t&&t.abort(gY),E.delete(e),D.delete(e),O.delete(e),te.delete(e),k.delete(e);let n=Date.now();_(t=>w(t,t=>{let r=t.ai.config.sessions.findIndex(t=>t.id===e);if(r!==-1&&(t.ai.config.sessions.splice(r,1),delete t.ai.config.sessionForks[e],t.ai.config.openSessionTabs&&(t.ai.config.openSessionTabs=t.ai.config.openSessionTabs.filter(t=>t!==e)),t.ai.config.currentSessionId===e)){let e=t.ai.config.sessions[0];e?(t.ai.config.currentSessionId=e.id,e.lastOpenedAt=n,t.ai.config.openSessionTabs?.includes(e.id)||(t.ai.config.openSessionTabs=[...t.ai.config.openSessionTabs??[],e.id])):(t.ai.config.currentSessionId=void 0,t.ai.config.openSessionTabs=[])}}))},setSessionUiMessages:(e,t)=>{let n=!1;try{return _(r=>w(r,r=>{let i=r.ai.config.sessions.find(t=>t.id===e);if(i){let e=i.uiMessages??[],r=TY(t);if(TY(e)&&!r&&t.length<=e.length)return;i.uiMessages=structuredClone(t),n=!0}})),n}catch(e){return console.error(`Failed to persist UI messages:`,e instanceof Error?e.message:e),!1}},findToolRenderer:e=>v().ai.toolRenderers[e],getBaseUrlFromSettings:()=>{let e=i?.();if(e)return e;let t=v();if(bX(t)){let e=MX(t);if(e)return e.modelProvider===`custom`?t.aiSettings.config.customModels.find(t=>t.modelName===e.model)?.baseUrl:t.aiSettings.config.providers[e.modelProvider]?.baseUrl}},getApiKeyFromSettings:()=>{let e=v(),t=MX(e);if(t){let n=r?.(t.modelProvider||`openai`);if(n)return n;if(bX(e))return t.modelProvider===`custom`?e.aiSettings.config.customModels.find(e=>e.modelName===t.model)?.apiKey||``:e.aiSettings.config.providers?.[t.modelProvider]?.apiKey||``}return``},getMaxStepsFromSettings:()=>{let e=v();if(a&&Number.isFinite(a)&&a>0)return a;if(bX(e)){let t=e.aiSettings.config.modelParameters.maxSteps;if(Number.isFinite(t)&&t>0)return t}return 50},getFullInstructions:e=>{let t=v(),n=e?t.ai.config.sessions.find(t=>t.id===e):MX(t),r=n?.runContext,i=o({session:n,runContext:r});if(r&&h){let e=h({runContext:r,session:n});e.trim().length>0&&(i=`${i}\n\n${e}`)}if(bX(t)){let{additionalInstruction:e}=t.aiSettings.config.modelParameters;e&&(i=`${i}\n\nAdditional Instructions:\n\n${e}`)}return i},sendPrompt:async(e,t={})=>{let n=v(),r=n.ai.getCurrentSession(),{systemInstructions:i,modelProvider:a,modelName:o,baseUrl:l,abortSignal:u,useTools:d=!1}=t;if(u?.aborted)throw new jY(mY);let f=a||r?.modelProvider||s,p=o||r?.model||c,m=l??n.ai.getBaseUrlFromSettings()??``,h=n.ai.tools,g=Object.fromEntries(Object.entries(h).filter(([,e])=>!e.execute)),_=pY({apiKey:n.ai.getApiKeyFromSettings(),name:f,baseURL:m}).chatModel(p);try{return(await QG({model:_,messages:[{role:`user`,content:e}],system:i||n.ai.getFullInstructions(r?.id),abortSignal:u,...d?{tools:g}:{}})).text}catch(e){let t=typeof e==`object`&&e&&`name`in e?String(e.name):``;if(u?.aborted||t===`AbortError`)throw new jY(mY);return console.error(`Error generating text:`,e),`error: can not generate response`}},startAnalysis:async e=>{let t=v(),n=t.ai.config.sessions.find(t=>t.id===e);if(!n){console.error(`Session not found:`,e);return}let r=t.ai.getChatSendMessage(e);if(!r){console.error(`No sendMessage function found for session:`,e);return}let i=new AbortController,a=n.prompt||``;t.ai.setAbortController(e,i),_(t=>w(t,t=>{let n=t.ai.config.sessions.find(t=>t.id===e);n&&(n.isRunning=!0,n.runContext=m?.(e),n.draftContextItemIds=void 0,n.prompt=``,t.ai.promptSuggestionsVisible=!1)})),r({text:a})},startNewSession:async(e,t)=>{v().ai.createSession(e);let n=v().ai.getCurrentSession();if(!n){console.error(`Failed to create session`);return}v().ai.setPrompt(n.id,t),(async()=>{let e=0,t=async()=>{if(v().ai.getChatSendMessage(n.id)){await v().ai.startAnalysis(n.id);return}if(e++,e>=50){console.error(`Timeout waiting for chat provider to register for session:`,n.id);return}setTimeout(t,20)};await t()})()},cancelAnalysis:e=>{let t=v(),n=t.ai.getAbortController(e);t.ai.getChatStop(e)?.(),n?.abort(_Y),_(t=>w(t,t=>{let n=t.ai.config.sessions.find(t=>t.id===e);n&&(n.isRunning=!1)}))},getAssistantMessageParts:e=>{let t=v().ai.getCurrentSession();if(!t)return[];let n=t.uiMessages,r=n.findIndex(t=>t.id===e&&t.role===`user`);if(r===-1)return[];for(let e=r+1;e<n.length;e++){let t=n[e];if(t?.role===`assistant`)return t.parts;if(t?.role===`user`)break}return[]},deleteAnalysisResult:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);if(r){let e=r.uiMessages,n=e.findIndex(e=>e.id===t&&e.role===`user`);if(n!==-1){let t=n+1;for(;t<e.length&&e[t]?.role!==`user`;)t++;r.uiMessages.splice(n,t-n),r.messagesRevision=(r.messagesRevision||0)+1}}}))},getAnalysisResults:()=>{let e=v().ai.getCurrentSession();if(!e)return;let t=e.uiMessages,n=b.get(t);if(n&&n.isRunning===e.isRunning)return n.results;let r=kY(t,{isRunning:e.isRunning});return b.set(t,{isRunning:e.isRunning,results:r}),r},addAnalysisResult:e=>{let t=v().ai.getCurrentSession();if(!t){console.error(`No current session found`);return}_(n=>w(n,n=>{let r=n.ai.config.sessions.find(e=>e.id===t.id);r&&r.uiMessages.push(structuredClone(e))}))},chatEndPoint:f,chatHeaders:p,getLocalChatTransport:e=>pX({store:y,defaultProvider:s,defaultModel:c,getInstructions:()=>y.getState().ai.getFullInstructions(e),getCustomModel:u,sessionId:e})(),getRemoteChatTransport:(e,t,n)=>mX({store:y,defaultProvider:s,defaultModel:c,sessionId:e,getInstructions:()=>y.getState().ai.getFullInstructions(e)})(t,n),...vX({store:y,onChatFinish:e.onChatFinish})}}})}function MX(e){let{currentSessionId:t,sessions:n}=e.ai.config;return n.find(e=>e.id===t)}var NX=k({name:y().optional().describe(`Optional session name.`),modelProvider:y().optional().describe(`Optional model provider ID.`),model:y().optional().describe(`Optional model ID.`)}).default({}),PX=k({sessionId:y().describe(`Target AI session ID.`)}),FX=k({sessionId:y().describe(`Target AI session ID.`),name:y().min(1).describe(`New session name.`)});function IX(){let e=(e,t)=>{if(!e.ai.config.sessions.some(e=>e.id===t))throw Error(`Unknown AI session "${t}".`)};return[{id:`ai.create-session`,name:`Create AI session`,description:`Start a new AI chat session`,group:`AI`,keywords:[`ai`,`chat`,`session`,`new`],inputSchema:NX,inputDescription:`Optionally provide name, modelProvider, and model for the new session.`,metadata:{readOnly:!1,idempotent:!1,riskLevel:`low`},execute:({getState:e},t)=>{let{name:n,modelProvider:r,model:i}=t??{};return e().ai.createSession(n,r,i),{success:!0,commandId:`ai.create-session`,message:`Created AI session.`}}},{id:`ai.switch-session`,name:`Switch AI session`,description:`Switch current AI session by ID`,group:`AI`,keywords:[`ai`,`chat`,`session`,`switch`],inputSchema:PX,inputDescription:`Provide sessionId to activate.`,metadata:{readOnly:!1,idempotent:!0,riskLevel:`low`},validateInput:(t,{getState:n})=>{e(n(),t.sessionId)},execute:({getState:e},t)=>{let{sessionId:n}=t;return e().ai.switchSession(n),{success:!0,commandId:`ai.switch-session`,message:`Switched to AI session "${n}".`}}},{id:`ai.rename-session`,name:`Rename AI session`,description:`Rename AI session by ID`,group:`AI`,keywords:[`ai`,`chat`,`session`,`rename`],inputSchema:FX,inputDescription:`Provide sessionId and new name.`,metadata:{readOnly:!1,idempotent:!0,riskLevel:`low`},validateInput:(t,{getState:n})=>{e(n(),t.sessionId)},execute:({getState:e},t)=>{let{sessionId:n,name:r}=t;return e().ai.renameSession(n,r),{success:!0,commandId:`ai.rename-session`,message:`Renamed AI session "${n}".`}}},{id:`ai.delete-session`,name:`Delete AI session`,description:`Delete AI session by ID`,group:`AI`,keywords:[`ai`,`chat`,`session`,`delete`],inputSchema:PX,inputDescription:`Provide sessionId to delete.`,metadata:{readOnly:!1,idempotent:!0,riskLevel:`medium`,requiresConfirmation:!0},validateInput:(t,{getState:n})=>{let r=n(),{sessionId:i}=t;e(r,i)},execute:({getState:e},t)=>{let{sessionId:n}=t;return e().ai.deleteSession(n),{success:!0,commandId:`ai.delete-session`,message:`Deleted AI session "${n}".`}}},{id:`ai.cancel-current-analysis`,name:`Cancel current AI analysis`,description:`Stop the currently running AI response`,group:`AI`,keywords:[`ai`,`chat`,`cancel`,`stop`,`analysis`],metadata:{readOnly:!1,idempotent:!0,riskLevel:`low`},isEnabled:({getState:e})=>!!e().ai.getCurrentSession()?.isRunning,execute:({getState:e})=>{let t=e().ai.getCurrentSession();return t?(e().ai.cancelAnalysis(t.id),{success:!0,commandId:`ai.cancel-current-analysis`,message:`Cancelled analysis for session "${t.id}".`}):{success:!1,commandId:`ai.cancel-current-analysis`,message:`No active session.`,error:`no active session`}}}]}function LX(e){return O(t=>e(t))}export{ub as $,rl as $t,IA as A,kd as At,JT as B,gu as Bt,$z as C,xf as Ct,aF as D,Ed as Dt,iF as E,wd as Et,Yk as F,ud as Ft,sx as G,Dl as Gt,Uw as H,H as Ht,QE as I,Uu as It,Xb as J,$l as Jt,Qb as K,El as Kt,GE as L,Gu as Lt,mA as M,Nd as Mt,OA as N,Zu as Nt,EP as O,Fd as Ot,pA as P,hd as Pt,lb as Q,Qc as Qt,jE as R,cf as Rt,qG as S,ve as Sn,ed as St,rF as T,Wu as Tt,ix as U,Al as Ut,NT as V,xu as Vt,ax as W,B as Wt,qb as X,tu as Xt,Zb as Y,jl as Yt,bb as Z,z as Zt,qK as _,Ne as _n,rf as _t,MY as a,Cn as an,hv as at,YK as b,De as bn,cd as bt,PY as c,I as cn,qh as ct,LY as d,We as dn,wg as dt,Rc as en,cb as et,wY as f,He as fn,ch as ft,JK as g,Pe as gn,Qm as gt,pY as h,Ue as hn,$m as ht,QY as i,P as in,yv as it,DA as j,Od as jt,uN as k,Ad as kt,NY as l,Vt as ln,xg as lt,mY as m,Ve as mn,vg as mt,LX as n,Qn as nn,Cv as nt,WY as o,Wt as on,ev as ot,OY as p,Be as pn,ph as pt,$b as q,Zl as qt,bX as r,ir as rn,vv as rt,IY as s,An as sn,ih as st,jX as t,uc as tn,Sv as tt,FY as u,Un as un,sh as ut,IK as v,Te as vn,Ju as vt,lF as w,Dd as wt,XK as x,Me as xn,sd as xt,UK as y,ke as yn,Ku as yt,iE as z,Yu as zt};
137
+ `)}async function QY(e,t,n,r,i){let a=()=>{if(i?.aborted)throw new jY(mY)},o=``,s=new Map,c=n.getState().ai.devtools;c?.shouldCaptureAgentSnapshots?.()&&c.writeAgentSnapshot?.(r,{agentName:r,parentToolCallId:r,availableTools:GY(e),startedAt:Date.now()});let l=()=>{n.getState().ai.updateAgentProgress(r,Array.from(s.values()).map(e=>({...e})))},u=[{id:crypto.randomUUID(),role:`user`,parts:[{type:`text`,text:t}]}];for(;;){a();let t=null,c=await HK({agent:e,uiMessages:u,abortSignal:i}),d=new Map;try{for await(let e of c){if(a(),e.type===`text-delta`&&(o+=e.delta),e.type===`tool-approval-request`&&`approvalId`in e&&`toolCallId`in e){let n=e;t={approvalId:n.approvalId,toolCallId:n.toolCallId};let r=s.get(n.toolCallId);r&&(s.set(n.toolCallId,{...r,state:`approval-requested`,approvalId:n.approvalId}),l());continue}if(e.type===`tool-input-available`&&d.set(e.toolCallId,{toolCallId:e.toolCallId,toolName:e.toolName,input:e.input}),!(`toolCallId`in e)||!e.toolCallId)continue;let n=e.toolCallId,r=!1;!s.has(n)&&`toolName`in e&&e.toolName&&(s.set(n,{toolCallId:n,toolName:e.toolName,state:`pending`,startedAt:Date.now()}),r=!0);let i=s.get(n);if(i){if(e.type===`tool-input-available`)s.set(n,{...i,input:e.input}),r=!0;else if(e.type===`tool-output-available`){let t=KY(e.output);s.set(n,{...i,output:e.output,state:`success`,completedAt:Date.now(),...t?{agentToolCalls:t}:{}}),r=!0;let a=d.get(n);a&&(a.output=e.output)}else e.type===`tool-output-error`||e.type===`tool-input-error`?(s.set(n,{...i,errorText:e.errorText,state:`error`,completedAt:Date.now()}),r=!0):e.type===`tool-output-denied`&&(s.set(n,{...i,state:`error`,errorText:`Denied by user`,completedAt:Date.now()}),r=!0);r&&l()}}}catch(e){if(YY(s),l(),i?.aborted){let e=XY(r,s,o,n);throw n.getState().ai.writeAbortSnapshot?.(r,e),new jY(mY,e)}throw e}if(!t)break;let f=s.get(t.toolCallId);if(!f||!n.getState().ai.requestSubAgentApproval)break;let p=await new Promise(e=>{a(),n.getState().ai.requestSubAgentApproval({toolCallId:t.toolCallId,approvalId:t.approvalId,toolName:f.toolName,input:f.input,resolve:e})});a(),n.getState().ai.clearSubAgentApproval?.(t.approvalId),p?s.set(t.toolCallId,{...f,state:`pending`,approvalId:void 0}):s.set(t.toolCallId,{...f,state:`error`,errorText:`Denied by user`,approvalId:void 0}),l();let m={id:crypto.randomUUID(),role:`assistant`,parts:Array.from(d.values()).map(e=>e.toolCallId===t.toolCallId?{type:`tool-${e.toolName}`,toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,state:p?`approval-responded`:`output-denied`,approval:{id:t.approvalId,approved:p}}:{type:`tool-${e.toolName}`,toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,output:e.output,state:`output-available`})};u=[...u,m]}if(i?.aborted&&YY(s),l(),i?.aborted){let e=XY(r,s,o,n);throw n.getState().ai.writeAbortSnapshot?.(r,e),new jY(mY,e)}return{finalOutput:o,agentToolCalls:Array.from(s.values())}}function $Y(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(!r||r.role!==`assistant`)continue;let i=r.parts.filter(e=>typeof e.type==`string`&&(e.type.startsWith(`tool-`)||e.type===`dynamic-tool`)).map(e=>e.toolCallId).filter(e=>!!e);if(i.length===0)continue;let a={};for(let e of i){let n=t[e];n&&(a[e]=n)}if(Object.keys(a).length>0){let e=r.metadata??{};r.metadata={...e,toolTimings:{...e.toolTimings??{},...a}}}}}function eX(e,t){for(let n of e)if(!(n.role!==`assistant`||!n.parts))for(let e=0;e<n.parts.length;e++){let r=n.parts[e];if(r.state!==`output-error`||!r.toolCallId||typeof r.toolCallId!=`string`)continue;let i=t.ai.readAbortSnapshot?.(r.toolCallId);if(!i)continue;let a=ZY(i);r.errorText=`${typeof r.errorText==`string`?r.errorText:mY}\nProgress before cancellation:\n${a}`}}function tX(e,t){let n=nX(e);rX(n,t.ai.agentProgress),e.agentProgress=structuredClone(aX(t.ai.agentProgress,n)),t.ai.devtools.shouldPersistAgentSnapshots()?e.agentSnapshots=structuredClone(aX(t.ai.devtools.agentSnapshots,n)):delete e.agentSnapshots}function nX(e){let t=new Set;for(let n of e.uiMessages??[])for(let e of n.parts??[]){let n=e.toolCallId;typeof n==`string`&&t.add(n)}return t}function rX(e,t){let n=!0;for(;n;){n=!1;for(let[r,i]of Object.entries(t))if(e.has(r))for(let t of i)n=iX(e,t)||n}}function iX(e,t){let n=!1;e.has(t.toolCallId)||(e.add(t.toolCallId),n=!0);for(let r of t.agentToolCalls??[])n=iX(e,r)||n;return n}function aX(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>t.has(e)))}function oX(e,t){if(t)return e.getState().ai.config.sessions.find(e=>e.id===t)}function sX(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>{if(!n||typeof n.execute!=`function`)return[e,n];let r=n.execute;return[e,{...n,execute:async(e,n)=>{let i=typeof n?.toolCallId==`string`?n.toolCallId:void 0;return i&&t.sessionId&&t.state.ai.setToolCallSession(i,t.sessionId),r(e,{...n,sessionId:t.sessionId,aiRunContext:t.getAiRunContext?t.getAiRunContext():t.aiRunContext,getAiRunContext:t.getAiRunContext,setAiRunContext:t.setAiRunContext,setPrimaryRunContextItem:t.setPrimaryRunContextItem})}}]}))}var cX=new Map;function lX(e,t){cX.set(e,structuredClone(t))}function uX(e){let t=cX.get(e);return cX.delete(e),t}function dX(e,t){if(!(!t||t.totalTokens<=0))for(let n=e.length-1;n>=0;n--){let r=e[n];if(!(!r||r.role!==`assistant`)){r.metadata={...r.metadata??{},tokenUsage:t};return}}}function fX(e){return{inputTokens:e?.inputTokens??0,outputTokens:e?.outputTokens??0,totalTokens:e?.totalTokens??0,inputTokenDetails:{cacheReadTokens:e?.inputTokenDetails?.cacheReadTokens,cacheWriteTokens:e?.inputTokenDetails?.cacheWriteTokens},outputTokenDetails:{reasoningTokens:e?.outputTokenDetails?.reasoningTokens}}}function pX({sessionId:e,store:t,defaultProvider:n,defaultModel:r,headers:i,getInstructions:a,getCustomModel:o}){return()=>new qK({fetch:async(s,c)=>{let l=c?.body,u={};try{u=l?JSON.parse(l):{}}catch(e){console.error(`Failed to parse chat transport body. Messages will be empty.`,{bodyType:typeof l,bodyLength:l?.length,parseError:e}),u={}}let d=u||{},f=t.getState(),p=oX(t,e),m=p?.modelProvider||n,h=p?.model||r,g=p?.runContext,_=t=>{g=t,f.ai.setSessionRunContext(e,t)},v=f.ai.getApiKeyFromSettings(),y=f.ai.getBaseUrlFromSettings(),b=o?.();b||=pY({apiKey:v,name:m,baseURL:y??`https://api.openai.com/v1`,headers:i,includeUsage:!0}).chatModel(h);let x=Array.isArray(d.messages)?d.messages:[],S=sX(f.ai.tools||{},{state:f,sessionId:e,aiRunContext:g,getAiRunContext:()=>g,setAiRunContext:_,setPrimaryRunContextItem:e=>{_(aF(g,e))}}),C=a(),w=f.ai.getProviderOptions?.({provider:m,modelId:h}),T=f.ai.getAbortController(e)?.signal,E=AY([c?.signal??void 0,T]),ee=f.ai.getMaxStepsFromSettings(),D=new IK({model:b,instructions:C,tools:S,stopWhen:qG(ee),...w?{providerOptions:w}:{}}),O={inputTokens:0,outputTokens:0,totalTokens:0},te=0;return UK({agent:D,uiMessages:HY(WY(x),Object.keys(S)),abortSignal:E,messageMetadata:({part:t})=>{if(t.type===`finish-step`){let e=t.usage;O.inputTokens+=e.inputTokens??0,O.outputTokens+=e.outputTokens??0,O.totalTokens+=e.totalTokens??0,te=e.inputTokens??0,(e.inputTokenDetails?.cacheReadTokens!=null||e.inputTokenDetails?.cacheWriteTokens!=null)&&(O.inputTokenDetails={cacheReadTokens:(O.inputTokenDetails?.cacheReadTokens??0)+(e.inputTokenDetails?.cacheReadTokens??0),cacheWriteTokens:(O.inputTokenDetails?.cacheWriteTokens??0)+(e.inputTokenDetails?.cacheWriteTokens??0)}),e.outputTokenDetails?.reasoningTokens!=null&&(O.outputTokenDetails={reasoningTokens:(O.outputTokenDetails?.reasoningTokens??0)+(e.outputTokenDetails.reasoningTokens??0)})}if(t.type===`finish`){let n=t,r=fX(n.totalUsage??n.usage),i=r.totalTokens>0||r.inputTokens>0||r.outputTokens>0?r:O;return i.lastStepInputTokens=te,lX(e,i),{tokenUsage:i}}}})}})}function mX(e){return(t,n)=>new qK({api:t,credentials:`include`,headers:n,fetch:async(t,n)=>{let{store:r,defaultProvider:i,defaultModel:a,sessionId:o,getInstructions:s}=e,c=r.getState(),l=n?.body,u={};try{u=l?JSON.parse(l):{}}catch(e){console.error(`Failed to parse remote chat transport body. Messages will be empty.`,{bodyType:typeof l,bodyLength:l?.length,parseError:e}),u={}}let d=oX(r,o),f=d?.modelProvider||i,p=d?.model||a,m=typeof u==`object`&&u?u:{},h=Array.isArray(m.messages)?HY(WY(m.messages)):[],g={...m,messages:h,modelProvider:f,model:p,instructions:s(),runContext:d?.runContext,maxSteps:c.ai.getMaxStepsFromSettings()},_=c.ai.getAbortController(o)?.signal,v=AY([n?.signal??void 0,_]);return fetch(t,{...n,signal:v,body:JSON.stringify(g)})}})}function hX({sessionMessages:e,fallbackMessages:t}){return t&&t.length>0?t:e}function gX(e){return!!(e?.role===`assistant`&&e.parts?.some(e=>e.type===`data-sqlrooms-chat-error`))}function _X(e){return{id:EP(),role:`assistant`,parts:[CY({error:e})]}}function vX({store:e,onChatFinish:t}){return{onChatFinish:({sessionId:n,messages:r})=>{if(n)try{let i=e.getState();if(i.ai.getAbortController(n)?.signal.aborted){let t=oX(e,n)?.uiMessages||[],a=WY(r&&r.length>0?r:t);eX(a,i),uX(n),$Y(a,i.ai.getToolTimings());let o=a.filter(e=>e.role===`user`).slice(-1)[0];o&&SY(o,{error:mY}),i.ai.setSessionUiMessages(n,a),i.ai.setIsRunning(n,!1),i.ai.setAbortController(n,void 0),i.ai.clearAbortSnapshots?.(),e.setState(e=>w(e,e=>{let t=e.ai.config.sessions.find(e=>e.id===n);t&&(t.messagesRevision=(t.messagesRevision||0)+1,tX(t,i))}));return}let a=WY(r);dX(a,uX(n)),$Y(a,i.ai.getToolTimings()),i.ai.setSessionUiMessages(n,a),e.setState(e=>w(e,e=>{let t=e.ai.config.sessions.find(e=>e.id===n);t&&tX(t,i)})),UY(a)&&(i.ai.setIsRunning(n,!1),i.ai.setAbortController(n,void 0),t?.({sessionId:n,messages:a}))}catch(e){throw console.error(`onChatFinish error:`,e),e}},onChatError:(t,n,r)=>{try{uX(t);let i=bv(n);if((!i||i.trim().length===0)&&(i=`Unknown error`),yX(n,i)){let n=oX(e,t)?.modelProvider||`openai`;e.getState().ai.setApiKeyError(n,!0)}let a=e.getState(),o=a.ai.getToolTimings();e.setState(e=>w(e,e=>{if(!t)return;let n=e.ai.config.sessions.find(e=>e.id===t);if(n){let e=WY(hX({sessionMessages:n.uiMessages||[],fallbackMessages:r}));$Y(e,o);let t=e.filter(e=>e.role===`user`).slice(-1)[0];t&&SY(t,{error:i}),gX(e.at(-1))||e.push(_X(i)),n.uiMessages=e,tX(n,a)}})),e.setState(e=>w(e,e=>{let n=e.ai.config.sessions.find(e=>e.id===t);n&&(n.messagesRevision=(n.messagesRevision||0)+1)})),e.getState().ai.setIsRunning(t,!1),e.getState().ai.setAbortController(t,void 0),e.getState().ai.clearAbortSnapshots?.()}catch(e){throw console.error(`Failed to store chat error:`,e),e}}}}function yX(e,t){if(e&&typeof e==`object`){let t=e,n=t.status??t.statusCode??t.response?.status;if(n===401||n===403)return!0}let n=t.toLowerCase();return[`invalid api key`,`incorrect api key`,`invalid_api_key`,`unauthorized`,`authentication failed`,`api key is invalid`,`api key not found`,`invalid authorization`,`invalid credentials`,`access denied`,`401`,`403`].some(e=>n.includes(e))}function bX(e){return xX(e)&&`aiSettings`in e&&xX(e.aiSettings)&&`config`in e.aiSettings&&xX(e.aiSettings.config)}function xX(e){return typeof e==`object`&&!!e}function SX(e,t){try{let n=JSON.stringify(e);return new TextEncoder().encode(n).byteLength>t?void 0:JSON.parse(n)}catch{return}}function CX(e){let t=new Set(e.sessions.map(e=>e.id)),n=e.sessionForks??{},r=Object.fromEntries(Object.entries(n).filter(([e])=>t.has(e)));return e.sessionForks&&Object.keys(r).length===Object.keys(n).length?e:{...e,sessionForks:r}}function wX(e){let t=new Set;for(let n of e)for(let e of n.parts??[]){let n=e.toolCallId;typeof n==`string`&&t.add(n)}return t}function TX(e,t){if(!t)return;let n=!0;for(;n;){n=!1;for(let[r,i]of Object.entries(t))if(!(!e.has(r)||!Array.isArray(i)))for(let t of i)n=EX(e,t)||n}}function EX(e,t){if(!t||typeof t!=`object`)return!1;let n=!1,r=t;if(typeof r.toolCallId==`string`&&!e.has(r.toolCallId)&&(e.add(r.toolCallId),n=!0),Array.isArray(r.agentToolCalls))for(let t of r.agentToolCalls)n=EX(e,t)||n;return n}function DX({sourceSession:e,targetMessages:t}){if(!e.agentProgress)return;let n=wX(t);TX(n,e.agentProgress);let r=Object.fromEntries(Object.entries(e.agentProgress).filter(([e])=>n.has(e)));return Object.keys(r).length>0?structuredClone(r):void 0}function OX({sourceSession:e,targetMessages:t}){if(!e.agentSnapshots)return;let n=wX(t);TX(n,e.agentProgress);let r=Object.fromEntries(Object.entries(e.agentSnapshots).filter(([e])=>n.has(e)));return Object.keys(r).length>0?structuredClone(r):void 0}function kX({sourceSession:e,args:t,targetSessionId:n,now:r}){let i=e.uiMessages,a=OY(i,{isRunning:e.isRunning}),o=t.sourceTurnId?a.find(e=>e.id===t.sourceTurnId):t.legacySourceAnalysisResultId?a.find(e=>e.id===t.legacySourceAnalysisResultId):void 0,s=typeof t.sourceMessageIndex==`number`?t.sourceMessageIndex:-1;if(s<0&&t.sourceMessageId&&(s=i.findIndex(e=>e.id===t.sourceMessageId)),s<0&&o){let e=new Set([o.userMessage.id,...o.assistantMessages.map(e=>e.id)]);for(let t=i.length-1;t>=0;t--){let n=i[t];if(n&&e.has(n.id)){s=t;break}}}if(s<0||s>=i.length)return;let c=i[s];if(!c||c.role!==`assistant`)return;if(!o){if(t.sourceTurnId||t.legacySourceAnalysisResultId)return;o=a.find(e=>e.assistantMessages.some(e=>e.id===c.id))}if(!o||!o.isCompleted||!o.assistantMessages.some(e=>e.id===c.id))return;let l=structuredClone(i.slice(0,s+1)),u=e.draftContextItemIds?Array.from(new Set(e.draftContextItemIds)):void 0,d=DX({sourceSession:e,targetMessages:l}),f=OX({sourceSession:e,targetMessages:l});return{forkedSession:{id:n,name:t.name??`Fork of ${e.name||`Untitled`}`,modelProvider:e.modelProvider,model:e.model,...e.customModelName?{customModelName:e.customModelName}:{},...e.baseUrl?{baseUrl:e.baseUrl}:{},createdAt:new Date(r),uiMessages:l,messagesRevision:0,prompt:``,...u?{draftContextItemIds:u}:{},...!u&&e.runContext?{runContext:structuredClone(e.runContext)}:{},...d?{agentProgress:d}:{},...f?{agentSnapshots:f}:{},isRunning:!1,lastOpenedAt:r},forkOrigin:{sourceSessionId:e.id,sourceMessageId:c.id,sourceTurnId:o.id,sourceMessageIndex:s,...t.legacySourceAnalysisResultId?{legacySourceAnalysisResultId:t.legacySourceAnalysisResultId}:{},sourceSessionNameAtFork:e.name,createdAt:r}}}var AX=`@sqlrooms/ai-core`;function jX(e){let{initialPrompt:t=``,tools:n,getApiKey:r,getBaseUrl:i,maxSteps:a,getInstructions:o,defaultProvider:s=`openai`,defaultModel:c=`gpt-4.1`,getAvailableModels:l,getCustomModel:u,getProviderOptions:d,chatEndPoint:f=``,chatHeaders:p={},getRunContext:m,formatRunContextInstructions:h}=e,g={captureAgentSnapshots:e.devtools?.captureAgentSnapshots??!1,persistAgentSnapshots:e.devtools?.persistAgentSnapshots??!1,maxAgentSnapshotBytes:e.devtools?.maxAgentSnapshotBytes??64e3};return C((_,v,y)=>{let b=new WeakMap,x=BY(e.config);function C(e){let t={},n={},r={};for(let i of e.sessions){if(i.agentProgress&&Object.assign(n,i.agentProgress),i.agentSnapshots)for(let[e,t]of Object.entries(i.agentSnapshots)){let n=SX(t,g.maxAgentSnapshotBytes);n&&(r[e]=n)}let e=i.uiMessages??[];for(let n of e){if(n.role!==`assistant`)continue;let e=n.metadata;e?.toolTimings&&Object.assign(t,e.toolTimings)}}return{timings:t,progress:n,snapshots:r}}let T=new Map,E=new Map,D=new Map,O=new Map,te=new Map,k=new Map,ne=new Map,re=new Map,ie=(e,t)=>{let n=l?.()??[],r=(e,t)=>!!(e&&t&&(n.length===0||n.some(n=>n.provider===e&&n.value===t)));if(r(e,t))return{modelProvider:e,model:t};if(r(s,c))return{modelProvider:s,model:c};let i=n[0];return i?{modelProvider:i.provider,model:i.value}:{modelProvider:s,model:c}},A=CX(uF(x));if(!x?.sessions||x.sessions.length===0){let e=A.sessions[0];e&&(e.modelProvider=s,e.model=c,e.prompt=t,e.isRunning=!1)}let j=new Set(A.sessions.map(e=>e.id));(!A.currentSessionId||!j.has(A.currentSessionId))&&(A.currentSessionId=A.sessions[0]?.id),A.openSessionTabs&&A.openSessionTabs.length>0&&(A.openSessionTabs=A.openSessionTabs.filter(e=>j.has(e))),A.currentSessionId&&!A.openSessionTabs?.includes(A.currentSessionId)&&(A.openSessionTabs=[A.currentSessionId,...A.openSessionTabs??[]]),(!A.openSessionTabs||A.openSessionTabs.length===0)&&(A.openSessionTabs=A.currentSessionId?[A.currentSessionId]:[]);let ae=C(A);return{ai:{initialize:async()=>{S(y,AX,IX());let e=C(v().ai.config);_(t=>w(t,t=>{t.ai.toolTimings=e.timings,t.ai.agentProgress=e.progress,t.ai.devtools.agentSnapshots=e.snapshots}))},destroy:async()=>{ee(y,AX)},config:A,promptSuggestionsVisible:!0,apiKeyErrors:{},tools:n,toolRenderers:e.toolRenderers??{},getProviderOptions:d,setToolCallSession:(e,t)=>{e&&(t?T.set(e,t):T.delete(e))},getToolCallSession:e=>{if(e)return T.get(e)},agentProgress:ae.progress,updateAgentProgress:(e,t)=>{_(n=>w(n,n=>{n.ai.agentProgress[e]=t}))},clearAgentProgress:e=>{_(t=>w(t,t=>{delete t.ai.agentProgress[e]}))},devtools:{agentSnapshots:ae.snapshots,shouldCaptureAgentSnapshots:()=>g.captureAgentSnapshots,shouldPersistAgentSnapshots:()=>g.persistAgentSnapshots,writeAgentSnapshot:(e,t)=>{if(!g.captureAgentSnapshots)return;let n=SX(t,g.maxAgentSnapshotBytes);n&&_(t=>w(t,t=>{t.ai.devtools.agentSnapshots[e]=n}))},clearAgentSnapshots:()=>{_(e=>w(e,e=>{e.ai.devtools.agentSnapshots={}}))}},pendingSubAgentApprovals:{},requestSubAgentApproval:e=>{_(t=>w(t,t=>{t.ai.pendingSubAgentApprovals[e.approvalId]={toolCallId:e.toolCallId,approvalId:e.approvalId,toolName:e.toolName,input:e.input,resolve:e.resolve}})),ne.set(e.approvalId,e.resolve)},resolveSubAgentApproval:(e,t)=>{let n=ne.get(e);n&&(n(t),ne.delete(e)),_(t=>w(t,t=>{delete t.ai.pendingSubAgentApprovals[e]}))},clearSubAgentApproval:e=>{ne.delete(e),_(t=>w(t,t=>{delete t.ai.pendingSubAgentApprovals[e]}))},writeAbortSnapshot:(e,t)=>{re.set(e,t)},readAbortSnapshot:e=>re.get(e),clearAbortSnapshots:()=>{re.clear()},isSummarizing:!1,setIsSummarizing:e=>{_(t=>w(t,t=>{t.ai.isSummarizing=e}))},toolTimings:ae.timings,setToolTiming:(e,t)=>{_(n=>w(n,n=>{n.ai.toolTimings[e]=t}))},getToolTimings:()=>v().ai.toolTimings,getAbortController:e=>E.get(e),setAbortController:(e,t)=>{t?E.set(e,t):E.delete(e)},setChatStop:(e,t)=>{t?D.set(e,t):D.delete(e)},getChatStop:e=>D.get(e),setChatSendMessage:(e,t)=>{t?O.set(e,t):O.delete(e)},getChatSendMessage:e=>O.get(e),setAddToolOutput:(e,t)=>{t?te.set(e,t):te.delete(e)},getAddToolOutput:e=>te.get(e),setAddToolApprovalResponse:(e,t)=>{t?k.set(e,t):k.delete(e)},getAddToolApprovalResponse:e=>k.get(e),setConfig:e=>{let t=CX(BY(e)),n=C(t);_(e=>w(e,e=>{e.ai.config=t,e.ai.toolTimings=n.timings,e.ai.agentProgress=n.progress,e.ai.devtools.agentSnapshots=n.snapshots}))},setPromptSuggestionsVisible:e=>{_(t=>w(t,t=>{t.ai.promptSuggestionsVisible=e}))},setApiKeyError:(e,t)=>{_(n=>w(n,n=>{t?n.ai.apiKeyErrors[e]=!0:delete n.ai.apiKeyErrors[e]}))},hasApiKeyError:()=>{let e=v(),t=e.ai.getCurrentSession()?.modelProvider||s;return!!e.ai.apiKeyErrors[t]},setPrompt:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.prompt=t)}))},getPrompt:e=>v().ai.config.sessions.find(t=>t.id===e)?.prompt||``,setIsRunning:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.isRunning=t)}))},getIsRunning:e=>v().ai.config.sessions.find(t=>t.id===e)?.isRunning||!1,setAiModel:(e,t)=>{_(n=>w(n,n=>{let r=MX(n);r&&(r.modelProvider=e,r.model=t)}))},getCurrentSession:()=>{let{currentSessionId:e,sessions:t}=v().ai.config;return t.find(t=>t.id===e)},getSessionRunContext:e=>v().ai.config.sessions.find(t=>t.id===e)?.runContext,setSessionRunContext:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.runContext=t)}))},getSessionDraftContextItemIds:e=>v().ai.config.sessions.find(t=>t.id===e)?.draftContextItemIds,setSessionDraftContextItemIds:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.draftContextItemIds=t?Array.from(new Set(t)):void 0)}))},createSession:(e,t,n)=>{let r=v().ai.getCurrentSession(),i=ie(t||r?.modelProvider,n||r?.model),a=EP(),o=e;o||=`Untitled`,_(e=>w(e,e=>{let t=Date.now();e.ai.config.sessions.unshift({id:a,name:o,modelProvider:i.modelProvider,model:i.model,createdAt:new Date,uiMessages:[],messagesRevision:0,prompt:``,draftContextItemIds:void 0,isRunning:!1,lastOpenedAt:t}),e.ai.config.currentSessionId=a,e.ai.config.openSessionTabs||(e.ai.config.openSessionTabs=[]),e.ai.config.openSessionTabs.push(a)}))},forkSessionFromMessage:e=>{let t=v().ai.config.sessions.find(t=>t.id===e.sourceSessionId);if(!t)return;let n=Date.now(),r=EP(),i=kX({sourceSession:t,args:e,targetSessionId:r,now:n});if(i)return _(e=>w(e,e=>{e.ai.config.sessions.unshift(i.forkedSession),e.ai.config.currentSessionId=r,e.ai.config.openSessionTabs||(e.ai.config.openSessionTabs=[]),e.ai.config.openSessionTabs.push(r),e.ai.config.sessionForks[r]=i.forkOrigin})),r},getSessionForkOrigin:e=>v().ai.config.sessionForks[e],switchSession:e=>{_(t=>w(t,t=>{let n=Date.now();t.ai.config.currentSessionId=e,t.ai.config.openSessionTabs||(t.ai.config.openSessionTabs=[]),t.ai.config.openSessionTabs.includes(e)||t.ai.config.openSessionTabs.push(e);let r=t.ai.config.sessions.find(t=>t.id===e);r&&(r.lastOpenedAt=n)}))},setOpenSessionTabs:e=>{_(t=>w(t,t=>{let n=new Set(t.ai.config.sessions.map(e=>e.id));t.ai.config.openSessionTabs=e.filter(e=>n.has(e))}))},renameSession:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);r&&(r.name=t)}))},deleteSession:e=>{let t=E.get(e);t&&t.abort(gY),E.delete(e),D.delete(e),O.delete(e),te.delete(e),k.delete(e);let n=Date.now();_(t=>w(t,t=>{let r=t.ai.config.sessions.findIndex(t=>t.id===e);if(r!==-1&&(t.ai.config.sessions.splice(r,1),delete t.ai.config.sessionForks[e],t.ai.config.openSessionTabs&&(t.ai.config.openSessionTabs=t.ai.config.openSessionTabs.filter(t=>t!==e)),t.ai.config.currentSessionId===e)){let e=t.ai.config.sessions[0];e?(t.ai.config.currentSessionId=e.id,e.lastOpenedAt=n,t.ai.config.openSessionTabs?.includes(e.id)||(t.ai.config.openSessionTabs=[...t.ai.config.openSessionTabs??[],e.id])):(t.ai.config.currentSessionId=void 0,t.ai.config.openSessionTabs=[])}}))},setSessionUiMessages:(e,t)=>{let n=!1;try{return _(r=>w(r,r=>{let i=r.ai.config.sessions.find(t=>t.id===e);if(i){let e=i.uiMessages??[],r=TY(t);if(TY(e)&&!r&&t.length<=e.length)return;i.uiMessages=structuredClone(t),n=!0}})),n}catch(e){return console.error(`Failed to persist UI messages:`,e instanceof Error?e.message:e),!1}},findToolRenderer:e=>v().ai.toolRenderers[e],getBaseUrlFromSettings:()=>{let e=i?.();if(e)return e;let t=v();if(bX(t)){let e=MX(t);if(e)return e.modelProvider===`custom`?t.aiSettings.config.customModels.find(t=>t.modelName===e.model)?.baseUrl:t.aiSettings.config.providers[e.modelProvider]?.baseUrl}},getApiKeyFromSettings:()=>{let e=v(),t=MX(e);if(t){let n=r?.(t.modelProvider||`openai`);if(n)return n;if(bX(e))return t.modelProvider===`custom`?e.aiSettings.config.customModels.find(e=>e.modelName===t.model)?.apiKey||``:e.aiSettings.config.providers?.[t.modelProvider]?.apiKey||``}return``},getMaxStepsFromSettings:()=>{let e=v();if(a&&Number.isFinite(a)&&a>0)return a;if(bX(e)){let t=e.aiSettings.config.modelParameters.maxSteps;if(Number.isFinite(t)&&t>0)return t}return 50},getFullInstructions:e=>{let t=v(),n=e?t.ai.config.sessions.find(t=>t.id===e):MX(t),r=n?.runContext,i=o({session:n,runContext:r});if(r&&h){let e=h({runContext:r,session:n});e.trim().length>0&&(i=`${i}\n\n${e}`)}if(bX(t)){let{additionalInstruction:e}=t.aiSettings.config.modelParameters;e&&(i=`${i}\n\nAdditional Instructions:\n\n${e}`)}return i},sendPrompt:async(e,t={})=>{let n=v(),r=n.ai.getCurrentSession(),{systemInstructions:i,modelProvider:a,modelName:o,baseUrl:l,abortSignal:u,useTools:d=!1}=t;if(u?.aborted)throw new jY(mY);let f=a||r?.modelProvider||s,p=o||r?.model||c,m=l??n.ai.getBaseUrlFromSettings()??``,h=n.ai.tools,g=Object.fromEntries(Object.entries(h).filter(([,e])=>!e.execute)),_=pY({apiKey:n.ai.getApiKeyFromSettings(),name:f,baseURL:m,includeUsage:!0}).chatModel(p);try{return(await QG({model:_,messages:[{role:`user`,content:e}],system:i||n.ai.getFullInstructions(r?.id),abortSignal:u,...d?{tools:g}:{}})).text}catch(e){let t=typeof e==`object`&&e&&`name`in e?String(e.name):``;if(u?.aborted||t===`AbortError`)throw new jY(mY);return console.error(`Error generating text:`,e),`error: can not generate response`}},startAnalysis:async e=>{let t=v(),n=t.ai.config.sessions.find(t=>t.id===e);if(!n){console.error(`Session not found:`,e);return}let r=t.ai.getChatSendMessage(e);if(!r){console.error(`No sendMessage function found for session:`,e);return}let i=new AbortController,a=n.prompt||``;t.ai.setAbortController(e,i),_(t=>w(t,t=>{let n=t.ai.config.sessions.find(t=>t.id===e);n&&(n.isRunning=!0,n.runContext=m?.(e),n.draftContextItemIds=void 0,n.prompt=``,t.ai.promptSuggestionsVisible=!1)})),r({text:a})},startNewSession:async(e,t)=>{v().ai.createSession(e);let n=v().ai.getCurrentSession();if(!n){console.error(`Failed to create session`);return}v().ai.setPrompt(n.id,t),(async()=>{let e=0,t=async()=>{if(v().ai.getChatSendMessage(n.id)){await v().ai.startAnalysis(n.id);return}if(e++,e>=50){console.error(`Timeout waiting for chat provider to register for session:`,n.id);return}setTimeout(t,20)};await t()})()},cancelAnalysis:e=>{let t=v(),n=t.ai.getAbortController(e);t.ai.getChatStop(e)?.(),n?.abort(_Y),_(t=>w(t,t=>{let n=t.ai.config.sessions.find(t=>t.id===e);n&&(n.isRunning=!1)}))},getAssistantMessageParts:e=>{let t=v().ai.getCurrentSession();if(!t)return[];let n=t.uiMessages,r=n.findIndex(t=>t.id===e&&t.role===`user`);if(r===-1)return[];for(let e=r+1;e<n.length;e++){let t=n[e];if(t?.role===`assistant`)return t.parts;if(t?.role===`user`)break}return[]},deleteAnalysisResult:(e,t)=>{_(n=>w(n,n=>{let r=n.ai.config.sessions.find(t=>t.id===e);if(r){let e=r.uiMessages,n=e.findIndex(e=>e.id===t&&e.role===`user`);if(n!==-1){let t=n+1;for(;t<e.length&&e[t]?.role!==`user`;)t++;r.uiMessages.splice(n,t-n),r.messagesRevision=(r.messagesRevision||0)+1}}}))},getAnalysisResults:()=>{let e=v().ai.getCurrentSession();if(!e)return;let t=e.uiMessages,n=b.get(t);if(n&&n.isRunning===e.isRunning)return n.results;let r=kY(t,{isRunning:e.isRunning});return b.set(t,{isRunning:e.isRunning,results:r}),r},addAnalysisResult:e=>{let t=v().ai.getCurrentSession();if(!t){console.error(`No current session found`);return}_(n=>w(n,n=>{let r=n.ai.config.sessions.find(e=>e.id===t.id);r&&r.uiMessages.push(structuredClone(e))}))},chatEndPoint:f,chatHeaders:p,getLocalChatTransport:e=>pX({store:y,defaultProvider:s,defaultModel:c,getInstructions:()=>y.getState().ai.getFullInstructions(e),getCustomModel:u,sessionId:e})(),getRemoteChatTransport:(e,t,n)=>mX({store:y,defaultProvider:s,defaultModel:c,sessionId:e,getInstructions:()=>y.getState().ai.getFullInstructions(e)})(t,n),...vX({store:y,onChatFinish:e.onChatFinish})}}})}function MX(e){let{currentSessionId:t,sessions:n}=e.ai.config;return n.find(e=>e.id===t)}var NX=k({name:y().optional().describe(`Optional session name.`),modelProvider:y().optional().describe(`Optional model provider ID.`),model:y().optional().describe(`Optional model ID.`)}).default({}),PX=k({sessionId:y().describe(`Target AI session ID.`)}),FX=k({sessionId:y().describe(`Target AI session ID.`),name:y().min(1).describe(`New session name.`)});function IX(){let e=(e,t)=>{if(!e.ai.config.sessions.some(e=>e.id===t))throw Error(`Unknown AI session "${t}".`)};return[{id:`ai.create-session`,name:`Create AI session`,description:`Start a new AI chat session`,group:`AI`,keywords:[`ai`,`chat`,`session`,`new`],inputSchema:NX,inputDescription:`Optionally provide name, modelProvider, and model for the new session.`,metadata:{readOnly:!1,idempotent:!1,riskLevel:`low`},execute:({getState:e},t)=>{let{name:n,modelProvider:r,model:i}=t??{};return e().ai.createSession(n,r,i),{success:!0,commandId:`ai.create-session`,message:`Created AI session.`}}},{id:`ai.switch-session`,name:`Switch AI session`,description:`Switch current AI session by ID`,group:`AI`,keywords:[`ai`,`chat`,`session`,`switch`],inputSchema:PX,inputDescription:`Provide sessionId to activate.`,metadata:{readOnly:!1,idempotent:!0,riskLevel:`low`},validateInput:(t,{getState:n})=>{e(n(),t.sessionId)},execute:({getState:e},t)=>{let{sessionId:n}=t;return e().ai.switchSession(n),{success:!0,commandId:`ai.switch-session`,message:`Switched to AI session "${n}".`}}},{id:`ai.rename-session`,name:`Rename AI session`,description:`Rename AI session by ID`,group:`AI`,keywords:[`ai`,`chat`,`session`,`rename`],inputSchema:FX,inputDescription:`Provide sessionId and new name.`,metadata:{readOnly:!1,idempotent:!0,riskLevel:`low`},validateInput:(t,{getState:n})=>{e(n(),t.sessionId)},execute:({getState:e},t)=>{let{sessionId:n,name:r}=t;return e().ai.renameSession(n,r),{success:!0,commandId:`ai.rename-session`,message:`Renamed AI session "${n}".`}}},{id:`ai.delete-session`,name:`Delete AI session`,description:`Delete AI session by ID`,group:`AI`,keywords:[`ai`,`chat`,`session`,`delete`],inputSchema:PX,inputDescription:`Provide sessionId to delete.`,metadata:{readOnly:!1,idempotent:!0,riskLevel:`medium`,requiresConfirmation:!0},validateInput:(t,{getState:n})=>{let r=n(),{sessionId:i}=t;e(r,i)},execute:({getState:e},t)=>{let{sessionId:n}=t;return e().ai.deleteSession(n),{success:!0,commandId:`ai.delete-session`,message:`Deleted AI session "${n}".`}}},{id:`ai.cancel-current-analysis`,name:`Cancel current AI analysis`,description:`Stop the currently running AI response`,group:`AI`,keywords:[`ai`,`chat`,`cancel`,`stop`,`analysis`],metadata:{readOnly:!1,idempotent:!0,riskLevel:`low`},isEnabled:({getState:e})=>!!e().ai.getCurrentSession()?.isRunning,execute:({getState:e})=>{let t=e().ai.getCurrentSession();return t?(e().ai.cancelAnalysis(t.id),{success:!0,commandId:`ai.cancel-current-analysis`,message:`Cancelled analysis for session "${t.id}".`}):{success:!1,commandId:`ai.cancel-current-analysis`,message:`No active session.`,error:`no active session`}}}]}function LX(e){return O(t=>e(t))}export{ub as $,rl as $t,IA as A,kd as At,JT as B,gu as Bt,$z as C,xf as Ct,aF as D,Ed as Dt,iF as E,wd as Et,Yk as F,ud as Ft,sx as G,Dl as Gt,Uw as H,H as Ht,QE as I,Uu as It,Xb as J,$l as Jt,Qb as K,El as Kt,GE as L,Gu as Lt,mA as M,Nd as Mt,OA as N,Zu as Nt,EP as O,Fd as Ot,pA as P,hd as Pt,lb as Q,Qc as Qt,jE as R,cf as Rt,qG as S,ve as Sn,ed as St,rF as T,Wu as Tt,ix as U,Al as Ut,NT as V,xu as Vt,ax as W,B as Wt,qb as X,tu as Xt,Zb as Y,jl as Yt,bb as Z,z as Zt,qK as _,Ne as _n,rf as _t,MY as a,Cn as an,hv as at,YK as b,De as bn,cd as bt,PY as c,I as cn,qh as ct,LY as d,We as dn,wg as dt,Rc as en,cb as et,wY as f,He as fn,ch as ft,JK as g,Pe as gn,Qm as gt,pY as h,Ue as hn,$m as ht,QY as i,P as in,yv as it,DA as j,Od as jt,uN as k,Ad as kt,NY as l,Vt as ln,xg as lt,mY as m,Ve as mn,vg as mt,LX as n,Qn as nn,Cv as nt,WY as o,Wt as on,ev as ot,OY as p,Be as pn,ph as pt,$b as q,Zl as qt,bX as r,ir as rn,vv as rt,IY as s,An as sn,ih as st,jX as t,uc as tn,Sv as tt,FY as u,Un as un,sh as ut,IK as v,Te as vn,Ju as vt,lF as w,Dd as wt,XK as x,Me as xn,sd as xt,UK as y,ke as yn,Ku as yt,iE as z,Yu as zt};
@@ -1,2 +1,2 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{Q as t,b as n}from"./CommandSlice-DPSuuiIV.js";import{Mt as r,Nt as i,Ot as a,bn as o,dn as s,f as c,gn as l,k as u,n as d,xn as f,yn as p}from"./AiSlice-DOK-R6BH.js";import{i as m,n as h,p as g,s as _}from"./dist-dwKeDPoe.js";import{A as v,E as y,T as ee,c as te,d as b,f as x,l as S,o as ne,s as C,u as w,w as T,x as E}from"./tooltip-mgpsA9tW.js";import{t as D}from"./utils-yJ4l7ARz.js";import{t as re}from"./scroll-area-ZmzNHGEm.js";var O=e(t(),1),k=n(),A=`Toggle`,j=O.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=v({prop:n,onChange:i,defaultProp:r??!1,caller:A});return(0,k.jsx)(m.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:_(e.onClick,()=>{e.disabled||s(!o)})})});j.displayName=A;var ie=j,M=`ToggleGroup`,[ae,oe]=g(M,[x]),se=x(),N=O.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,k.jsx)(ce,{...r,ref:t});if(n===`multiple`)return(0,k.jsx)(le,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${M}\``)});N.displayName=M;var[P,F]=ae(M),ce=O.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=v({prop:n,defaultProp:r??``,onChange:i,caller:M});return(0,k.jsx)(P,{scope:e.__scopeToggleGroup,type:`single`,value:O.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:O.useCallback(()=>s(``),[s]),children:(0,k.jsx)(I,{...a,ref:t})})}),le=O.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=v({prop:n,defaultProp:r??[],onChange:i,caller:M}),c=O.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=O.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,k.jsx)(P,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,k.jsx)(I,{...a,ref:t})})});N.displayName=M;var[ue,de]=ae(M),I=O.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=se(n),u=h(o),d={role:`group`,dir:u,...c};return(0,k.jsx)(ue,{scope:n,rovingFocus:i,disabled:r,children:i?(0,k.jsx)(b,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,k.jsx)(m.div,{...d,ref:t})}):(0,k.jsx)(m.div,{...d,ref:t})})}),L=`ToggleGroupItem`,R=O.forwardRef((e,t)=>{let n=F(L,e.__scopeToggleGroup),r=de(L,e.__scopeToggleGroup),i=se(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=O.useRef(null);return r.rovingFocus?(0,k.jsx)(w,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,k.jsx)(z,{...s,ref:t})}):(0,k.jsx)(z,{...s,ref:t})});R.displayName=L;var z=O.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=F(L,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,k.jsx)(j,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),B=N,V=R,H=T(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 px-2 min-w-9`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}}),fe=O.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,k.jsx)(ie,{ref:i,className:D(H({variant:t,size:n,className:e})),...r}));fe.displayName=ie.displayName;var U=O.createContext({size:`default`,variant:`default`}),W=O.forwardRef(({className:e,variant:t,size:n,children:r,...i},a)=>(0,k.jsx)(B,{ref:a,className:D(`flex items-center justify-center gap-1`,e),...i,children:(0,k.jsx)(U.Provider,{value:{variant:t,size:n},children:r})}));W.displayName=B.displayName;var G=O.forwardRef(({className:e,children:t,variant:n,size:r,...i},a)=>{let o=O.useContext(U);return(0,k.jsx)(V,{ref:a,className:D(H({variant:o.variant||n,size:o.size||r}),e),...i,children:t})});G.displayName=V.displayName;function pe(e){i(e,e.state.doc.length,100);let t=[],n=new Set,o=!1;for(let i=1;i<=e.state.doc.lines;i++){let s=e.state.doc.line(i),c=r(e.state,s.from,s.to);if(!c)continue;let l=`${c.from}:${c.to}`;if(!n.has(l)){if(n.add(l),!o){o=!0;continue}t.push(a.of(c))}}t.length>0&&e.dispatch({effects:t})}function me(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var K=({title:e,value:t,defaultOpen:n=!1,className:r,editorClassName:i})=>{let a=(0,O.useMemo)(()=>me(t),[t]);return(0,k.jsx)(f,{defaultOpen:n,className:D(`w-full`,r),children:(0,k.jsxs)(`div`,{className:`bg-muted/20 rounded-md`,children:[(0,k.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 px-2 py-1.5`,children:[(0,k.jsxs)(o,{className:`group flex min-w-0 flex-1 items-center gap-1.5 text-left text-xs font-medium`,children:[(0,k.jsx)(y,{className:`text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,k.jsx)(`span`,{className:`truncate`,children:e})]}),(0,k.jsx)(s,{text:a,size:`icon`,className:`h-6 w-6 shrink-0`,tooltipLabel:`Copy ${e}`})]}),(0,k.jsx)(p,{children:(0,k.jsx)(`div`,{className:`bg-background/70`,children:(0,k.jsx)(re,{className:D(`h-40`,i),children:(0,k.jsx)(u,{value:a,readOnly:!0,onMount:pe,options:{lineNumbers:!1,lineWrapping:!0,foldGutter:!0,autocompletion:!1},className:`h-auto min-h-full text-xs [&_.cm-editor]:h-auto [&_.cm-gutters]:pl-1 [&_.cm-scroller]:overflow-visible`},a)})})})]})})};function q(e){return Array.isArray(e.parts)?e.parts:[]}function J(e){if(!e||typeof e!=`object`)return!1;let t=e.type;return typeof t==`string`&&(t===`dynamic-tool`||t.startsWith(`tool-`))}function he(e){return e.type===`dynamic-tool`&&e.toolName?e.toolName:e.type?.replace(/^tool-/,``)||`unknown`}function ge(e){return q(e).flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return t.type===`text`&&typeof t.text==`string`?[t.text]:[]}).join(`
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{Q as t,b as n}from"./CommandSlice-DPSuuiIV.js";import{Mt as r,Nt as i,Ot as a,bn as o,dn as s,f as c,gn as l,k as u,n as d,xn as f,yn as p}from"./AiSlice-CClohG-j.js";import{i as m,n as h,p as g,s as _}from"./dist-dwKeDPoe.js";import{A as v,E as y,T as ee,c as te,d as b,f as x,l as S,o as ne,s as C,u as w,w as T,x as E}from"./tooltip-mgpsA9tW.js";import{t as D}from"./utils-yJ4l7ARz.js";import{t as re}from"./scroll-area-ZmzNHGEm.js";var O=e(t(),1),k=n(),A=`Toggle`,j=O.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=v({prop:n,onChange:i,defaultProp:r??!1,caller:A});return(0,k.jsx)(m.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:_(e.onClick,()=>{e.disabled||s(!o)})})});j.displayName=A;var ie=j,M=`ToggleGroup`,[ae,oe]=g(M,[x]),se=x(),N=O.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,k.jsx)(ce,{...r,ref:t});if(n===`multiple`)return(0,k.jsx)(le,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${M}\``)});N.displayName=M;var[P,F]=ae(M),ce=O.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=v({prop:n,defaultProp:r??``,onChange:i,caller:M});return(0,k.jsx)(P,{scope:e.__scopeToggleGroup,type:`single`,value:O.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:O.useCallback(()=>s(``),[s]),children:(0,k.jsx)(I,{...a,ref:t})})}),le=O.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=v({prop:n,defaultProp:r??[],onChange:i,caller:M}),c=O.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=O.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,k.jsx)(P,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,k.jsx)(I,{...a,ref:t})})});N.displayName=M;var[ue,de]=ae(M),I=O.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=se(n),u=h(o),d={role:`group`,dir:u,...c};return(0,k.jsx)(ue,{scope:n,rovingFocus:i,disabled:r,children:i?(0,k.jsx)(b,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,k.jsx)(m.div,{...d,ref:t})}):(0,k.jsx)(m.div,{...d,ref:t})})}),L=`ToggleGroupItem`,R=O.forwardRef((e,t)=>{let n=F(L,e.__scopeToggleGroup),r=de(L,e.__scopeToggleGroup),i=se(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=O.useRef(null);return r.rovingFocus?(0,k.jsx)(w,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,k.jsx)(z,{...s,ref:t})}):(0,k.jsx)(z,{...s,ref:t})});R.displayName=L;var z=O.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=F(L,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,k.jsx)(j,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),B=N,V=R,H=T(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 px-2 min-w-9`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}}),fe=O.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,k.jsx)(ie,{ref:i,className:D(H({variant:t,size:n,className:e})),...r}));fe.displayName=ie.displayName;var U=O.createContext({size:`default`,variant:`default`}),W=O.forwardRef(({className:e,variant:t,size:n,children:r,...i},a)=>(0,k.jsx)(B,{ref:a,className:D(`flex items-center justify-center gap-1`,e),...i,children:(0,k.jsx)(U.Provider,{value:{variant:t,size:n},children:r})}));W.displayName=B.displayName;var G=O.forwardRef(({className:e,children:t,variant:n,size:r,...i},a)=>{let o=O.useContext(U);return(0,k.jsx)(V,{ref:a,className:D(H({variant:o.variant||n,size:o.size||r}),e),...i,children:t})});G.displayName=V.displayName;function pe(e){i(e,e.state.doc.length,100);let t=[],n=new Set,o=!1;for(let i=1;i<=e.state.doc.lines;i++){let s=e.state.doc.line(i),c=r(e.state,s.from,s.to);if(!c)continue;let l=`${c.from}:${c.to}`;if(!n.has(l)){if(n.add(l),!o){o=!0;continue}t.push(a.of(c))}}t.length>0&&e.dispatch({effects:t})}function me(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var K=({title:e,value:t,defaultOpen:n=!1,className:r,editorClassName:i})=>{let a=(0,O.useMemo)(()=>me(t),[t]);return(0,k.jsx)(f,{defaultOpen:n,className:D(`w-full`,r),children:(0,k.jsxs)(`div`,{className:`bg-muted/20 rounded-md`,children:[(0,k.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 px-2 py-1.5`,children:[(0,k.jsxs)(o,{className:`group flex min-w-0 flex-1 items-center gap-1.5 text-left text-xs font-medium`,children:[(0,k.jsx)(y,{className:`text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,k.jsx)(`span`,{className:`truncate`,children:e})]}),(0,k.jsx)(s,{text:a,size:`icon`,className:`h-6 w-6 shrink-0`,tooltipLabel:`Copy ${e}`})]}),(0,k.jsx)(p,{children:(0,k.jsx)(`div`,{className:`bg-background/70`,children:(0,k.jsx)(re,{className:D(`h-40`,i),children:(0,k.jsx)(u,{value:a,readOnly:!0,onMount:pe,options:{lineNumbers:!1,lineWrapping:!0,foldGutter:!0,autocompletion:!1},className:`h-auto min-h-full text-xs [&_.cm-editor]:h-auto [&_.cm-gutters]:pl-1 [&_.cm-scroller]:overflow-visible`},a)})})})]})})};function q(e){return Array.isArray(e.parts)?e.parts:[]}function J(e){if(!e||typeof e!=`object`)return!1;let t=e.type;return typeof t==`string`&&(t===`dynamic-tool`||t.startsWith(`tool-`))}function he(e){return e.type===`dynamic-tool`&&e.toolName?e.toolName:e.type?.replace(/^tool-/,``)||`unknown`}function ge(e){return q(e).flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return t.type===`text`&&typeof t.text==`string`?[t.text]:[]}).join(`
2
2
  `).trim().slice(0,240)}function _e(e){return e.reduce((e,t)=>e+q(t).filter(J).length,0)}function ve(e){if(!e||typeof e!=`object`)return;let t=e;return typeof t.text==`string`?t.text:void 0}function ye(e){if(!e||typeof e!=`object`)return`unknown`;let t=e.type;return typeof t==`string`?t:`unknown`}function be({message:e,messageIndex:t,part:n,partIndex:r,agentProgress:i}){if(!J(n))return;let a=n.toolCallId;if(a)return{messageId:e.id,messageIndex:t,partIndex:r,role:e.role,toolCallId:a,toolName:he(n),state:n.state,input:n.input,output:n.output,errorText:n.errorText,raw:n,hasAgentProgress:(i[a]?.length??0)>0}}function xe(e){let t=e.uiMessages??[];return{sessionId:e.id,name:e.name,isRunning:e.isRunning,modelProvider:e.modelProvider,model:e.model,customModelName:e.customModelName,baseUrl:e.baseUrl,createdAt:e.createdAt,lastOpenedAt:e.lastOpenedAt,messageCount:t.length,userMessageCount:t.filter(e=>e.role===`user`).length,assistantMessageCount:t.filter(e=>e.role===`assistant`).length,toolCallCount:_e(t),agentProgressCount:Object.keys(e.agentProgress??{}).length,agentSnapshotCount:Object.keys(e.agentSnapshots??{}).length}}function Se(e,t={}){let n=e.agentProgress??{},r=new Set([...Object.keys(n),...Object.keys(t)]);return Array.from(r).sort().map(e=>{let r=t[e];return r?{parentToolCallId:e,toolCalls:r,source:`live`}:{parentToolCallId:e,toolCalls:n[e]??[],source:`session`}})}function Ce(e,t={}){let n=e.agentSnapshots??{},r=new Set([...Object.keys(n),...Object.keys(t)]);return Array.from(r).sort().flatMap(e=>{let r=t[e];if(r)return[{parentToolCallId:e,snapshot:r,source:`live`}];let i=n[e];return i?[{parentToolCallId:e,snapshot:i,source:`session`}]:[]})}function we({session:e,liveAgentProgress:t={},liveAgentSnapshots:n={}}){let r=Se(e,t),i=Ce(e,n),a=Object.fromEntries(r.map(e=>[e.parentToolCallId,e])),o=Object.fromEntries(i.map(e=>[e.parentToolCallId,e])),s=Object.fromEntries(r.map(e=>[e.parentToolCallId,e.toolCalls]));return(e.uiMessages??[]).map((e,t)=>{let n=q(e).map((n,r)=>{let i=be({message:e,messageIndex:t,part:n,partIndex:r,agentProgress:s});if(i)return{kind:`tool`,index:r,toolCall:i,agentProgress:a[i.toolCallId],agentSnapshot:o[i.toolCallId]};let l=ye(n),u=c(n);if(u)return{kind:`text`,index:r,text:u.error,raw:n};let d=ve(n);return l===`text`&&d!==void 0?{kind:`text`,index:r,text:d,raw:n}:l===`reasoning`&&d!==void 0?{kind:`reasoning`,index:r,text:d,raw:n}:{kind:`other`,index:r,type:l,raw:n}});return{message:{id:e.id,index:t,role:e.role,partCount:n.length,textPreview:ge(e),raw:e},parts:n}})}function Te(e,t={}){return Object.entries(e).map(([e,n])=>({name:e,description:typeof n.description==`string`?n.description:void 0,hasExecute:typeof n.execute==`function`,hasRenderer:!!t[e]})).sort((e,t)=>e.name.localeCompare(t.name))}var Ee=`timeline`;function De(e){return e?e.toLocaleString():`n/a`}function Oe(e){return typeof e==`number`?e.toLocaleString():`n/a`}function ke(e){return typeof e?.startedAt==`number`&&typeof e.completedAt==`number`?`${e.completedAt-e.startedAt}ms`:`n/a`}var Y=({label:e,value:t})=>(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`div`,{className:`text-muted-foreground text-[11px] uppercase`,children:e}),(0,k.jsx)(`div`,{className:`truncate text-xs font-medium`,children:t})]}),X=({children:e,tone:t,size:n=`default`})=>(0,k.jsx)(`span`,{className:D(`inline-flex items-center rounded border font-medium`,n===`compact`?`px-1 py-0 text-[10px]`:`px-1.5 py-0.5 text-[11px]`,t===`ok`&&`border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`,t===`warn`&&`border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300`,!t&&`border-border bg-muted text-muted-foreground`),children:e}),Z=({hasExecute:e,hasRenderer:t})=>typeof e!=`boolean`&&typeof t!=`boolean`?null:(0,k.jsxs)(k.Fragment,{children:[typeof e==`boolean`&&(0,k.jsx)(X,{size:`compact`,tone:e?`ok`:void 0,children:e?`execute`:`no execute`}),typeof t==`boolean`&&(0,k.jsx)(X,{size:`compact`,tone:t?`ok`:void 0,children:t?`renderer`:`no renderer`})]}),Q=({children:e})=>(0,k.jsx)(`div`,{className:`text-muted-foreground py-6 text-center text-xs`,children:e}),Ae=({mode:e,options:t,onModeChange:n})=>{let r=e.type===`all`?t.map(e=>e.value):e.filters,i=t.every(e=>r.includes(e.value));return(0,k.jsxs)(`div`,{className:`flex w-full gap-2 overflow-x-auto px-3 pt-1 pb-2 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:[(0,k.jsx)(W,{type:`multiple`,value:r,onValueChange:r=>{let i=r;if(e.type===`all`){let e=t.find(e=>!i.includes(e.value))?.value;n({type:`custom`,filters:e?[e]:i});return}n({type:`custom`,filters:i})},className:`shrink-0 justify-start`,children:t.map(e=>(0,k.jsxs)(G,{value:e.value,size:`sm`,variant:`outline`,className:`data-[state=on]:bg-primary data-[state=on]:text-primary-foreground h-6 shrink-0 gap-1 rounded-full px-2 text-[11px]`,children:[(0,k.jsx)(`span`,{children:e.label}),(0,k.jsx)(`span`,{className:`opacity-70`,children:e.count})]},e.value))}),(0,k.jsx)(E,{type:`button`,size:`xs`,variant:`ghost`,className:`text-muted-foreground hover:text-foreground h-6 w-14 shrink-0 px-1.5 text-[11px]`,onClick:()=>n(i?{type:`custom`,filters:[]}:{type:`all`}),children:i?`Hide all`:`Show all`})]})},je=({tools:e})=>(0,k.jsx)(`div`,{className:`grid gap-1`,children:e.map(e=>(0,k.jsxs)(f,{children:[(0,k.jsxs)(o,{className:`group flex w-full min-w-0 items-center gap-1.5 py-1 text-left text-xs`,children:[(0,k.jsx)(y,{className:`text-muted-foreground h-3 w-3 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,k.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium`,children:e.name}),e.badges&&(0,k.jsx)(`span`,{className:`ml-auto flex shrink-0 items-center justify-end gap-1`,children:e.badges})]}),(0,k.jsx)(p,{children:(0,k.jsx)(`div`,{className:`text-muted-foreground grid gap-1 pb-2 pl-4 text-[11px]`,children:e.details})})]},e.name))}),Me=({title:e,tools:t})=>t.length===0?null:(0,k.jsxs)(f,{className:`bg-muted/20 rounded-md`,children:[(0,k.jsx)(`div`,{className:`flex min-w-0 items-center gap-2 px-2 py-1.5`,children:(0,k.jsxs)(o,{className:`group flex min-w-0 flex-1 items-center gap-1.5 text-left text-xs font-medium`,children:[(0,k.jsx)(y,{className:`text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,k.jsx)(`span`,{className:`truncate`,children:e}),(0,k.jsx)(`span`,{className:`text-muted-foreground text-[11px]`,children:t.length})]})}),(0,k.jsx)(p,{children:(0,k.jsx)(`div`,{className:`grid gap-1 px-2 pb-2`,children:(0,k.jsx)(je,{tools:t})})})]}),Ne=({snapshot:e})=>(0,k.jsx)(Me,{title:`Agent tools`,tools:(e?.availableTools??[]).map(e=>({name:e.name,badges:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Z,{hasExecute:e.hasExecute,hasRenderer:e.hasRenderer}),e.needsApproval&&(0,k.jsx)(X,{size:`compact`,tone:`warn`,children:`approval`})]}),details:(0,k.jsx)(`div`,{children:e.description||`No description.`})}))}),$=({toolCalls:e,agentProgressById:t,agentSnapshotsById:n,depth:r=0})=>e.length===0?(0,k.jsx)(Q,{children:`No nested agent tool calls recorded.`}):(0,k.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map(e=>{let i=t[e.toolCallId]??e.agentToolCalls??[],a=n[e.toolCallId];return(0,k.jsxs)(`div`,{className:D(`bg-muted/20 rounded-md p-2`,r>0&&`ml-3`),children:[(0,k.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2`,children:[(0,k.jsx)(X,{tone:e.state===`success`?`ok`:e.state===`pending`||e.state===`approval-requested`?`warn`:void 0,children:e.state}),(0,k.jsx)(`span`,{className:`truncate text-xs font-medium`,children:e.toolName}),(0,k.jsx)(`span`,{className:`text-muted-foreground ml-auto truncate text-[11px]`,children:e.toolCallId})]}),(0,k.jsxs)(`div`,{className:`grid gap-2`,children:[(0,k.jsx)(Ne,{snapshot:a}),e.input!==void 0&&(0,k.jsx)(K,{title:`Input`,value:e.input}),e.output!==void 0&&(0,k.jsx)(K,{title:`Output`,value:e.output}),e.errorText&&(0,k.jsx)(K,{title:`Error`,value:e.errorText,defaultOpen:!0}),i.length>0&&(0,k.jsx)($,{toolCalls:i,agentProgressById:t,agentSnapshotsById:n,depth:r+1})]})]},e.toolCallId)})});function Pe(e){return e.parts.some(e=>e.kind===`tool`)}function Fe(e){return e.parts.some(e=>e.kind===`tool`&&(!!e.agentProgress||!!e.agentSnapshot))}function Ie(e,t){return t.length===0?!1:t.some(t=>t===`user`?e.message.role===`user`:t===`assistant`?e.message.role===`assistant`:t===`tool`?Pe(e):Fe(e))}var Le=({sessionId:e,className:t,defaultTab:n=Ee,onClose:r})=>{let[i,a]=O.useState(n),[o,s]=O.useState(!1),[c,u]=O.useState({type:`all`}),f=d(e=>e.ai.config.sessions),p=d(e=>e.ai.tools),m=d(e=>e.ai.toolRenderers),h=d(e=>e.ai.agentProgress),g=d(e=>e.ai.devtools.agentSnapshots),_=d(e=>e.ai.toolTimings),v=(0,O.useMemo)(()=>f.find(t=>t.id===e),[e,f]),y=(0,O.useMemo)(()=>v?xe(v):void 0,[v]),b=(0,O.useMemo)(()=>v?we({session:v,liveAgentProgress:h,liveAgentSnapshots:g}):[],[h,g,v]),x=(0,O.useMemo)(()=>({...v?.agentProgress??{},...h}),[h,v]),w=(0,O.useMemo)(()=>({...v?.agentSnapshots??{},...g}),[g,v]),T=(0,O.useMemo)(()=>Te(p,m),[m,p]),A=(0,O.useMemo)(()=>{let e=b.filter(e=>e.message.role===`user`).length,t=b.filter(e=>e.message.role===`assistant`).length,n=b.reduce((e,t)=>e+t.parts.filter(e=>e.kind===`tool`).length,0),r=b.reduce((e,t)=>e+t.parts.filter(e=>e.kind===`tool`&&(!!e.agentProgress||!!e.agentSnapshot)).length,0);return[{value:`user`,label:`User`,count:e},{value:`assistant`,label:`Assistant`,count:t},{value:`tool`,label:`Tool calls`,count:n},{value:`agent`,label:`Agent`,count:r}]},[b]),j=(0,O.useMemo)(()=>c.type===`all`?b:b.filter(e=>Ie(e,c.filters)),[b,c]);return!v||!y?(0,k.jsxs)(`div`,{className:D(`text-muted-foreground flex h-full min-h-40 items-center justify-center text-sm`,t),children:[`Session not found: `,e]}):(0,k.jsx)(`div`,{className:D(`flex h-full min-h-0 flex-col text-sm`,t),children:(0,k.jsxs)(ne,{value:i,onValueChange:a,className:`flex min-h-0 flex-1 flex-col`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-1 px-2 pt-0 pb-1`,children:[(0,k.jsxs)(te,{className:`h-8 min-w-0 flex-1 justify-start overflow-x-auto bg-transparent p-0 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:[(0,k.jsx)(S,{value:`timeline`,className:`h-7 px-2 text-xs`,children:`Timeline`}),(0,k.jsx)(S,{value:`tools`,className:`h-7 px-2 text-xs`,children:`Tools`}),(0,k.jsx)(S,{value:`context`,className:`h-7 px-2 text-xs`,children:`Context`}),(0,k.jsx)(S,{value:`raw-session`,className:`h-7 px-2 text-xs`,children:`Raw`}),(0,k.jsx)(S,{value:`summary`,className:`h-7 px-2 text-xs`,children:`Summary`})]}),i===`timeline`&&(0,k.jsx)(E,{type:`button`,variant:`ghost`,size:`icon`,className:D(`text-muted-foreground hover:text-foreground h-7 w-7 shrink-0`,o&&`bg-muted text-foreground`),"aria-label":o?`Hide timeline filters`:`Show timeline filters`,"aria-pressed":o,onClick:()=>s(e=>!e),children:(0,k.jsx)(l,{className:`h-3.5 w-3.5`})}),r&&(0,k.jsx)(E,{type:`button`,variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-foreground h-7 w-7 shrink-0`,"aria-label":`Close debug panel`,onClick:r,children:(0,k.jsx)(ee,{className:`h-3.5 w-3.5`})})]}),i===`timeline`&&o&&(0,k.jsx)(Ae,{mode:c,options:A,onModeChange:u}),(0,k.jsxs)(re,{className:`min-h-0 flex-1`,children:[(0,k.jsx)(C,{value:`summary`,className:`m-0 px-3 pt-1 pb-8`,children:(0,k.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 md:grid-cols-4`,children:[(0,k.jsx)(Y,{label:`Session ID`,value:y.sessionId}),(0,k.jsx)(Y,{label:`Provider`,value:y.modelProvider}),(0,k.jsx)(Y,{label:`Model`,value:y.model}),(0,k.jsx)(Y,{label:`Custom model`,value:y.customModelName??`n/a`}),(0,k.jsx)(Y,{label:`Base URL`,value:y.baseUrl??`n/a`}),(0,k.jsx)(Y,{label:`Created`,value:De(y.createdAt)}),(0,k.jsx)(Y,{label:`Last opened`,value:Oe(y.lastOpenedAt)}),(0,k.jsx)(Y,{label:`Messages`,value:y.messageCount}),(0,k.jsx)(Y,{label:`Tool calls`,value:y.toolCallCount}),(0,k.jsx)(Y,{label:`Agent snapshots`,value:y.agentSnapshotCount}),(0,k.jsx)(Y,{label:`Status`,value:y.isRunning?`running`:`idle`})]})}),(0,k.jsx)(C,{value:`tools`,className:`m-0 px-3 pt-1 pb-8`,children:T.length===0?(0,k.jsx)(Q,{children:`No tools registered.`}):(0,k.jsx)(je,{tools:T.map(e=>({name:e.name,badges:(0,k.jsx)(Z,{hasExecute:e.hasExecute,hasRenderer:e.hasRenderer}),details:(0,k.jsx)(`div`,{children:e.description||`No description.`})}))})}),(0,k.jsx)(C,{value:`context`,className:`m-0 px-3 pt-1 pb-8`,children:(0,k.jsx)(K,{title:`session.runContext`,value:v.runContext??null,defaultOpen:!0,editorClassName:`h-56`})}),(0,k.jsx)(C,{value:`timeline`,className:`m-0 px-3 pt-1 pb-10`,children:b.length===0?(0,k.jsx)(Q,{children:`No messages recorded.`}):j.length===0?(0,k.jsx)(Q,{children:`No timeline entries match the selected filters.`}):(0,k.jsx)(`div`,{className:`flex flex-col gap-3`,children:j.map(({message:e,parts:t})=>(0,k.jsxs)(`div`,{className:`bg-muted/15 rounded-md p-2`,children:[(0,k.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2`,children:[(0,k.jsx)(X,{children:e.role}),(0,k.jsxs)(`span`,{className:`truncate text-xs font-medium`,children:[`#`,e.index,` `,e.id]}),(0,k.jsxs)(`span`,{className:`text-muted-foreground ml-auto text-[11px]`,children:[e.partCount,` parts`]})]}),(0,k.jsxs)(`div`,{className:`grid gap-2`,children:[t.map(e=>{if(e.kind===`text`||e.kind===`reasoning`)return(0,k.jsx)(`div`,{className:D(`rounded-md px-2 py-1.5 text-xs whitespace-pre-wrap`,e.kind===`reasoning`?`bg-muted/40 text-muted-foreground italic`:`bg-muted/30`),children:e.text},e.index);if(e.kind===`tool`){let{toolCall:t}=e,n=e.agentSnapshot?.snapshot??w[t.toolCallId];return(0,k.jsxs)(`div`,{className:`bg-background/70 rounded-md p-2`,children:[(0,k.jsxs)(`div`,{className:`mb-1.5 flex min-w-0 items-center gap-2`,children:[(0,k.jsx)(X,{children:`tool call`}),(0,k.jsx)(`span`,{className:`min-w-0 truncate text-xs font-medium`,children:t.toolName})]}),(0,k.jsxs)(`div`,{className:`text-muted-foreground mb-2 flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-[11px]`,children:[(0,k.jsx)(X,{tone:t.state===`output-available`?`ok`:t.state===`input-available`||t.state===`approval-requested`?`warn`:void 0,children:t.state??`unknown`}),(0,k.jsx)(`span`,{className:`min-w-0 truncate`,children:t.toolCallId}),(0,k.jsxs)(`span`,{children:[`part #`,t.partIndex]}),(0,k.jsxs)(`span`,{children:[`timing:`,` `,ke(_[t.toolCallId])]})]}),(0,k.jsxs)(`div`,{className:`grid gap-2`,children:[(0,k.jsx)(Ne,{snapshot:n}),t.input!==void 0&&(0,k.jsx)(K,{title:`Input`,value:t.input,defaultOpen:!0}),t.output!==void 0&&(0,k.jsx)(K,{title:`Output`,value:t.output}),t.errorText&&(0,k.jsx)(K,{title:`Error`,value:t.errorText,defaultOpen:!0}),e.agentSnapshot&&(0,k.jsx)(K,{title:`Agent snapshot (${e.agentSnapshot.source})`,value:e.agentSnapshot.snapshot}),e.agentProgress&&(0,k.jsx)($,{toolCalls:e.agentProgress.toolCalls,agentProgressById:x,agentSnapshotsById:w}),(0,k.jsx)(K,{title:`Raw tool part`,value:t.raw})]})]},e.index)}return e.kind===`other`?(0,k.jsx)(K,{title:`Part ${e.index}: ${e.type}`,value:e.raw},e.index):null}),(0,k.jsx)(K,{title:`Raw message`,value:e.raw})]})]},e.id))})}),(0,k.jsx)(C,{value:`raw-session`,className:`m-0 px-3 pt-1 pb-8`,children:(0,k.jsx)(K,{title:`Session`,value:v,defaultOpen:!0,editorClassName:`h-80`})})]})]})})};export{Le as ChatSessionDebugView};