querysource 4.1.2__tar.gz → 4.1.3__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 (1273) hide show
  1. {querysource-4.1.2 → querysource-4.1.3}/PKG-INFO +1 -1
  2. {querysource-4.1.2 → querysource-4.1.3}/querysource/_version.py +3 -3
  3. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/Join.py +90 -1
  4. {querysource-4.1.2 → querysource-4.1.3}/querysource/version.py +1 -1
  5. {querysource-4.1.2 → querysource-4.1.3}/querysource.egg-info/PKG-INFO +1 -1
  6. {querysource-4.1.2 → querysource-4.1.3}/querysource.egg-info/SOURCES.txt +1 -0
  7. querysource-4.1.3/tests/test_join_conditions.py +351 -0
  8. {querysource-4.1.2 → querysource-4.1.3}/.bumpversion.cfg +0 -0
  9. {querysource-4.1.2 → querysource-4.1.3}/.claude/agents/code-reviewer.md +0 -0
  10. {querysource-4.1.2 → querysource-4.1.3}/.claude/agents/sdd-worker.md +0 -0
  11. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-brainstorm.md +0 -0
  12. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-codereview.md +0 -0
  13. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-done.md +0 -0
  14. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-next.md +0 -0
  15. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-proposal.md +0 -0
  16. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-spec.md +0 -0
  17. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-start.md +0 -0
  18. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-status.md +0 -0
  19. {querysource-4.1.2 → querysource-4.1.3}/.claude/commands/sdd-task.md +0 -0
  20. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/aws-cost-optimization.md +0 -0
  21. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/code-reviewer.md +0 -0
  22. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/cython-development.md +0 -0
  23. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/python-development.md +0 -0
  24. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/rust-development.md +0 -0
  25. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/using-git-worktrees.md +0 -0
  26. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/worktree-pr-and-clean.md +0 -0
  27. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/worktree-start-feature.md +0 -0
  28. {querysource-4.1.2 → querysource-4.1.3}/.claude/rules/worktree-status.md +0 -0
  29. {querysource-4.1.2 → querysource-4.1.3}/.github/dependabot.yml +0 -0
  30. {querysource-4.1.2 → querysource-4.1.3}/.github/workflows/codeql-analysis.yml +0 -0
  31. {querysource-4.1.2 → querysource-4.1.3}/.github/workflows/release.yml +0 -0
  32. {querysource-4.1.2 → querysource-4.1.3}/.isort.cfg +0 -0
  33. {querysource-4.1.2 → querysource-4.1.3}/.jupyter/jupyter_notebook_config.py +0 -0
  34. {querysource-4.1.2 → querysource-4.1.3}/.pylintrc +0 -0
  35. {querysource-4.1.2 → querysource-4.1.3}/CHANGES.rst +0 -0
  36. {querysource-4.1.2 → querysource-4.1.3}/CODE_OF_CONDUCT.md +0 -0
  37. {querysource-4.1.2 → querysource-4.1.3}/CONTRIBUTING.md +0 -0
  38. {querysource-4.1.2 → querysource-4.1.3}/INSTALL +0 -0
  39. {querysource-4.1.2 → querysource-4.1.3}/LICENSE +0 -0
  40. {querysource-4.1.2 → querysource-4.1.3}/MANIFEST.in +0 -0
  41. {querysource-4.1.2 → querysource-4.1.3}/Makefile +0 -0
  42. {querysource-4.1.2 → querysource-4.1.3}/README.md +0 -0
  43. {querysource-4.1.2 → querysource-4.1.3}/app.py +0 -0
  44. {querysource-4.1.2 → querysource-4.1.3}/bin/README.md +0 -0
  45. {querysource-4.1.2 → querysource-4.1.3}/gunicorn_config.py +0 -0
  46. {querysource-4.1.2 → querysource-4.1.3}/lab/README.md +0 -0
  47. {querysource-4.1.2 → querysource-4.1.3}/my_prompts/new-rust-migration.md +0 -0
  48. {querysource-4.1.2 → querysource-4.1.3}/mypy.ini +0 -0
  49. {querysource-4.1.2 → querysource-4.1.3}/nav.py +0 -0
  50. {querysource-4.1.2 → querysource-4.1.3}/plugins/__init__.py +0 -0
  51. {querysource-4.1.2 → querysource-4.1.3}/pyproject.toml +0 -0
  52. {querysource-4.1.2 → querysource-4.1.3}/pytest.ini +0 -0
  53. {querysource-4.1.2 → querysource-4.1.3}/querysource/__cli__.py +0 -0
  54. {querysource-4.1.2 → querysource-4.1.3}/querysource/__init__.py +0 -0
  55. {querysource-4.1.2 → querysource-4.1.3}/querysource/cache/__init__.py +0 -0
  56. {querysource-4.1.2 → querysource-4.1.3}/querysource/cache/backends/__init__.py +0 -0
  57. {querysource-4.1.2 → querysource-4.1.3}/querysource/cache/backends/abstract.py +0 -0
  58. {querysource-4.1.2 → querysource-4.1.3}/querysource/cache/backends/memcache.py +0 -0
  59. {querysource-4.1.2 → querysource-4.1.3}/querysource/cache/backends/redis.py +0 -0
  60. {querysource-4.1.2 → querysource-4.1.3}/querysource/cache/base.py +0 -0
  61. {querysource-4.1.2 → querysource-4.1.3}/querysource/conf.py +0 -0
  62. {querysource-4.1.2 → querysource-4.1.3}/querysource/connections.py +0 -0
  63. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/__init__.py +0 -0
  64. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/__init__.py +0 -0
  65. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/abstract.py +0 -0
  66. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/arangodb.py +0 -0
  67. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/athena.py +0 -0
  68. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/bigquery.py +0 -0
  69. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/cassandra.py +0 -0
  70. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/clickhouse.py +0 -0
  71. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/cockroachdb.py +0 -0
  72. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/couchbase.py +0 -0
  73. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/couchdb.py +0 -0
  74. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/countries.py +0 -0
  75. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/delta.py +0 -0
  76. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/documentdb.py +0 -0
  77. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/dynamodb.py +0 -0
  78. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/elastic.py +0 -0
  79. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/ga.py +0 -0
  80. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/gcalc.py +0 -0
  81. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/hazel.py +0 -0
  82. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/iceberg.py +0 -0
  83. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/influx.py +0 -0
  84. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/jdbc.py +0 -0
  85. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/jira.py +0 -0
  86. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/mariadb.py +0 -0
  87. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/memcached.py +0 -0
  88. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/mongo.py +0 -0
  89. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/mysql.py +0 -0
  90. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/odbc.py +0 -0
  91. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/openweather.py +0 -0
  92. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/oracle.py +0 -0
  93. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/pg.py +0 -0
  94. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/postgres.py +0 -0
  95. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/py.typed +0 -0
  96. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/qs.py +0 -0
  97. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/redis.py +0 -0
  98. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/rest.py +0 -0
  99. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/rethink.py +0 -0
  100. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/sa.py +0 -0
  101. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/salesforce.py +0 -0
  102. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/scylladb.py +0 -0
  103. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/sqlalchemy.py +0 -0
  104. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/sqlite.py +0 -0
  105. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/sqlserver.py +0 -0
  106. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/upc.py +0 -0
  107. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/drivers/zipcodeapi.py +0 -0
  108. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/handlers/__init__.py +0 -0
  109. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/handlers/datasource.py +0 -0
  110. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/handlers/utils.py +0 -0
  111. {querysource-4.1.2 → querysource-4.1.3}/querysource/datasources/models.py +0 -0
  112. {querysource-4.1.2 → querysource-4.1.3}/querysource/events/__init__.py +0 -0
  113. {querysource-4.1.2 → querysource-4.1.3}/querysource/exceptions.py +0 -0
  114. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/__init__.py +0 -0
  115. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/abstract.py +0 -0
  116. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/executor.py +0 -0
  117. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/log.py +0 -0
  118. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/manager.py +0 -0
  119. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/multi.py +0 -0
  120. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/outputs/__init__.py +0 -0
  121. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/outputs/tableOutput/__init__.py +0 -0
  122. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/outputs/tableOutput/postgres.py +0 -0
  123. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/outputs/tableOutput/table.py +0 -0
  124. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/service.py +0 -0
  125. {querysource-4.1.2 → querysource-4.1.3}/querysource/handlers/variables.py +0 -0
  126. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/__init__.py +0 -0
  127. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/connections.py +0 -0
  128. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/credentials.py +0 -0
  129. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/databases/__init__.py +0 -0
  130. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/databases/abstract.py +0 -0
  131. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/databases/bigquery.py +0 -0
  132. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/databases/db.py +0 -0
  133. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/databases/mongo.py +0 -0
  134. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/databases/rethink.py +0 -0
  135. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/http.py +0 -0
  136. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/playwright_service.py +0 -0
  137. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/queries.py +0 -0
  138. {querysource-4.1.2 → querysource-4.1.3}/querysource/interfaces/selenium_service.py +0 -0
  139. {querysource-4.1.2 → querysource-4.1.3}/querysource/libs/__init__.py +0 -0
  140. {querysource-4.1.2 → querysource-4.1.3}/querysource/libs/encoders.py +0 -0
  141. {querysource-4.1.2 → querysource-4.1.3}/querysource/libs/functions/__init__.py +0 -0
  142. {querysource-4.1.2 → querysource-4.1.3}/querysource/libs/py.typed +0 -0
  143. {querysource-4.1.2 → querysource-4.1.3}/querysource/models.py +0 -0
  144. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/__init__.py +0 -0
  145. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/__init__.py +0 -0
  146. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/abstract.py +0 -0
  147. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/arrow.py +0 -0
  148. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/dt.py +0 -0
  149. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/factory.py +0 -0
  150. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/iter.py +0 -0
  151. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/modin.py +0 -0
  152. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/pandas.py +0 -0
  153. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/dt/polars.py +0 -0
  154. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/output.py +0 -0
  155. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/__init__.py +0 -0
  156. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/abstract.py +0 -0
  157. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/bigquery.py +0 -0
  158. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/documentdb.py +0 -0
  159. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/mongodb.py +0 -0
  160. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/mysql.py +0 -0
  161. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/postgres.py +0 -0
  162. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/rethink.py +0 -0
  163. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/sa.py +0 -0
  164. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/TableOutput/table.py +0 -0
  165. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/tables/__init__.py +0 -0
  166. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/__init__.py +0 -0
  167. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/abstract.py +0 -0
  168. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/bokeh.py +0 -0
  169. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/clustering.py +0 -0
  170. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/csv.py +0 -0
  171. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/describe.py +0 -0
  172. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/eda.py +0 -0
  173. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/excel.py +0 -0
  174. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/html.py +0 -0
  175. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/json.py +0 -0
  176. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/pdf.py +0 -0
  177. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/pickle.py +0 -0
  178. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/plotly.py +0 -0
  179. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/profiling.py +0 -0
  180. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/report.py +0 -0
  181. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/table.py +0 -0
  182. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/tsv.py +0 -0
  183. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/txt.py +0 -0
  184. {querysource-4.1.2 → querysource-4.1.3}/querysource/outputs/writers/xml.py +0 -0
  185. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/__init__.py +0 -0
  186. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/abstract.c +0 -0
  187. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/abstract.pxd +0 -0
  188. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/abstract.pyx +0 -0
  189. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/arangodb.c +0 -0
  190. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/arangodb.pxd +0 -0
  191. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/arangodb.pyx +0 -0
  192. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/bigquery.c +0 -0
  193. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/bigquery.pxd +0 -0
  194. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/bigquery.pyx +0 -0
  195. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/cql.c +0 -0
  196. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/cql.pxd +0 -0
  197. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/cql.pyx +0 -0
  198. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/deltatbl.c +0 -0
  199. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/deltatbl.pxd +0 -0
  200. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/deltatbl.pyx +0 -0
  201. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/elastic.cpp +0 -0
  202. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/elastic.pxd +0 -0
  203. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/elastic.pyx +0 -0
  204. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/iceberg.c +0 -0
  205. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/iceberg.pxd +0 -0
  206. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/iceberg.pyx +0 -0
  207. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/influx.c +0 -0
  208. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/influx.pxd +0 -0
  209. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/influx.pyx +0 -0
  210. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/mongo.cpp +0 -0
  211. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/mongo.pxd +0 -0
  212. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/mongo.pyx +0 -0
  213. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/parser.c +0 -0
  214. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/parser.pxd +0 -0
  215. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/parser.pyx +0 -0
  216. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/pgsql.c +0 -0
  217. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/pgsql.pxd +0 -0
  218. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/pgsql.pyx +0 -0
  219. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/rethink.c +0 -0
  220. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/rethink.pxd +0 -0
  221. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/rethink.pyx +0 -0
  222. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sosql.c +0 -0
  223. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sosql.pxd +0 -0
  224. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sosql.pyx +0 -0
  225. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sql.c +0 -0
  226. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sql.pxd +0 -0
  227. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sql.pyx +0 -0
  228. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sqlserver.c +0 -0
  229. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sqlserver.pxd +0 -0
  230. {querysource-4.1.2 → querysource-4.1.3}/querysource/parsers/sqlserver.pyx +0 -0
  231. {querysource-4.1.2 → querysource-4.1.3}/querysource/plugins/__init__.py +0 -0
  232. {querysource-4.1.2 → querysource-4.1.3}/querysource/plugins/importer.py +0 -0
  233. {querysource-4.1.2 → querysource-4.1.3}/querysource/plugins/sources/__init__.py +0 -0
  234. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/__init__.py +0 -0
  235. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/abstract.py +0 -0
  236. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/arangodb.py +0 -0
  237. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/bigquery.py +0 -0
  238. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/cassandra.py +0 -0
  239. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/db.py +0 -0
  240. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/default.py +0 -0
  241. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/deltatbl.py +0 -0
  242. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/documentdb.py +0 -0
  243. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/dummy.py +0 -0
  244. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/elastic.py +0 -0
  245. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/external.py +0 -0
  246. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/http.py +0 -0
  247. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/iceberg.py +0 -0
  248. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/influx.py +0 -0
  249. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/mysql.py +0 -0
  250. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/pg.py +0 -0
  251. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/py.typed +0 -0
  252. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/rest.py +0 -0
  253. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/rethink.py +0 -0
  254. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/salesforce.py +0 -0
  255. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/scylladb.py +0 -0
  256. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/__init__.py +0 -0
  257. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/abstract.py +0 -0
  258. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/amazon.py +0 -0
  259. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/countries.py +0 -0
  260. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/ga.py +0 -0
  261. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/geofcc.py +0 -0
  262. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/gmaps.py +0 -0
  263. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/graphcountries.py +0 -0
  264. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/graphql.py +0 -0
  265. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/http.py +0 -0
  266. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/hubspot.py +0 -0
  267. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/openweather.py +0 -0
  268. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/parsers/__init__.py +0 -0
  269. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/parsers/amproduct.py +0 -0
  270. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/parsers/xpath.py +0 -0
  271. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/pokemon.py +0 -0
  272. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/populartimes.py +0 -0
  273. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/py.typed +0 -0
  274. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/rest.py +0 -0
  275. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/retailnext.py +0 -0
  276. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/rssapp.py +0 -0
  277. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/salesforce.py +0 -0
  278. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/scrapper.py +0 -0
  279. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/shoppertrack.py +0 -0
  280. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/swop.py +0 -0
  281. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/uap.py +0 -0
  282. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/upc.py +0 -0
  283. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/wm_stores.py +0 -0
  284. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/zammad.py +0 -0
  285. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sources/zipcodeapi.py +0 -0
  286. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sql.py +0 -0
  287. {querysource-4.1.2 → querysource-4.1.3}/querysource/providers/sqlserver.py +0 -0
  288. {querysource-4.1.2 → querysource-4.1.3}/querysource/py.typed +0 -0
  289. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/__init__.py +0 -0
  290. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/base.py +0 -0
  291. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/executor.py +0 -0
  292. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/models.py +0 -0
  293. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/__init__.py +0 -0
  294. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/components/__init__.py +0 -0
  295. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/Concat.py +0 -0
  296. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/GroupBy.py +0 -0
  297. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/Info.py +0 -0
  298. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/Melt.py +0 -0
  299. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/Merge.py +0 -0
  300. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/__init__.py +0 -0
  301. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/abstract.py +0 -0
  302. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/filter/__init__.py +0 -0
  303. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/operators/filter/flt.py +0 -0
  304. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/sources/__init__.py +0 -0
  305. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/sources/file.py +0 -0
  306. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/sources/query.py +0 -0
  307. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/Forecast.py +0 -0
  308. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/Map.py +0 -0
  309. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/__init__.py +0 -0
  310. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/abstract.py +0 -0
  311. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/correlation.py +0 -0
  312. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/crosstab.py +0 -0
  313. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/google/__init__.py +0 -0
  314. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/google/maps.py +0 -0
  315. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/pivot.py +0 -0
  316. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/tOrder.py +0 -0
  317. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/multi/transformations/tPandas.py +0 -0
  318. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/obj.py +0 -0
  319. {querysource-4.1.2 → querysource-4.1.3}/querysource/queries/qs.py +0 -0
  320. {querysource-4.1.2 → querysource-4.1.3}/querysource/scheduler/__init__.py +0 -0
  321. {querysource-4.1.2 → querysource-4.1.3}/querysource/scheduler/jobs.py +0 -0
  322. {querysource-4.1.2 → querysource-4.1.3}/querysource/scheduler/notifications.py +0 -0
  323. {querysource-4.1.2 → querysource-4.1.3}/querysource/scheduler/scheduler.py +0 -0
  324. {querysource-4.1.2 → querysource-4.1.3}/querysource/services.py +0 -0
  325. {querysource-4.1.2 → querysource-4.1.3}/querysource/template/__init__.py +0 -0
  326. {querysource-4.1.2 → querysource-4.1.3}/querysource/template/parser.py +0 -0
  327. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/__init__.py +0 -0
  328. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/converters.cpp +0 -0
  329. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/converters.pyx +0 -0
  330. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/dt/__init__.py +0 -0
  331. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/dt/filters.py +0 -0
  332. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/dt/transforms.py +0 -0
  333. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/py.typed +0 -0
  334. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/typedefs.c +0 -0
  335. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/typedefs.pyx +0 -0
  336. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/validators.cpp +0 -0
  337. {querysource-4.1.2 → querysource-4.1.3}/querysource/types/validators.pyx +0 -0
  338. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/__init__.py +0 -0
  339. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/cache_serialization.py +0 -0
  340. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/events.py +0 -0
  341. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/fn.py +0 -0
  342. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/functions.cpp +0 -0
  343. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/functions.pyx +0 -0
  344. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/getfunc.py +0 -0
  345. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/handlers.py +0 -0
  346. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/parseqs.cpp +0 -0
  347. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/parseqs.pyx +0 -0
  348. {querysource-4.1.2 → querysource-4.1.3}/querysource/utils/validators.py +0 -0
  349. {querysource-4.1.2 → querysource-4.1.3}/querysource.egg-info/dependency_links.txt +0 -0
  350. {querysource-4.1.2 → querysource-4.1.3}/querysource.egg-info/entry_points.txt +0 -0
  351. {querysource-4.1.2 → querysource-4.1.3}/querysource.egg-info/not-zip-safe +0 -0
  352. {querysource-4.1.2 → querysource-4.1.3}/querysource.egg-info/requires.txt +0 -0
  353. {querysource-4.1.2 → querysource-4.1.3}/querysource.egg-info/top_level.txt +0 -0
  354. {querysource-4.1.2 → querysource-4.1.3}/run.py +0 -0
  355. {querysource-4.1.2 → querysource-4.1.3}/rust/Cargo.lock +0 -0
  356. {querysource-4.1.2 → querysource-4.1.3}/rust/Cargo.toml +0 -0
  357. {querysource-4.1.2 → querysource-4.1.3}/rust/pyproject.toml +0 -0
  358. {querysource-4.1.2 → querysource-4.1.3}/rust/src/arangodb_parser.rs +0 -0
  359. {querysource-4.1.2 → querysource-4.1.3}/rust/src/bigquery_parser.rs +0 -0
  360. {querysource-4.1.2 → querysource-4.1.3}/rust/src/cql_parser.rs +0 -0
  361. {querysource-4.1.2 → querysource-4.1.3}/rust/src/elastic_parser.rs +0 -0
  362. {querysource-4.1.2 → querysource-4.1.3}/rust/src/filter_common.rs +0 -0
  363. {querysource-4.1.2 → querysource-4.1.3}/rust/src/flux_parser.rs +0 -0
  364. {querysource-4.1.2 → querysource-4.1.3}/rust/src/lib.rs +0 -0
  365. {querysource-4.1.2 → querysource-4.1.3}/rust/src/mongo_parser.rs +0 -0
  366. {querysource-4.1.2 → querysource-4.1.3}/rust/src/mssql_parser.rs +0 -0
  367. {querysource-4.1.2 → querysource-4.1.3}/rust/src/parseqs.rs +0 -0
  368. {querysource-4.1.2 → querysource-4.1.3}/rust/src/pgsql_parser.rs +0 -0
  369. {querysource-4.1.2 → querysource-4.1.3}/rust/src/rethink_parser.rs +0 -0
  370. {querysource-4.1.2 → querysource-4.1.3}/rust/src/safe_dict.rs +0 -0
  371. {querysource-4.1.2 → querysource-4.1.3}/rust/src/soql_parser.rs +0 -0
  372. {querysource-4.1.2 → querysource-4.1.3}/rust/src/sql_parser.rs +0 -0
  373. {querysource-4.1.2 → querysource-4.1.3}/rust/src/validators.rs +0 -0
  374. {querysource-4.1.2 → querysource-4.1.3}/sdd/WORKFLOW-parrot.md +0 -0
  375. {querysource-4.1.2 → querysource-4.1.3}/sdd/WORKFLOW.md +0 -0
  376. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/SDD_NAV-6365.md +0 -0
  377. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/agent-skill-system.brainstorm.md +0 -0
  378. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/agentsflow-persistency.brainstorm.md +0 -0
  379. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/agentsflow-persistency.md +0 -0
  380. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/changes-analytics.md +0 -0
  381. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/compliancereport.md +0 -0
  382. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/composite-datasets.brainstorm.md +0 -0
  383. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/crew-websearchagent-support.md +0 -0
  384. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/dataset-support-agenttalk.md +0 -0
  385. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/datasetmanager-datasources.md +0 -0
  386. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/datasource-fix.md +0 -0
  387. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/episodicstore.brainstorm.md +0 -0
  388. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/filesystem-transport.md +0 -0
  389. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/finance-research.brainstorm.md +0 -0
  390. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/first-time-caching-embedding-model.brainstorm.md +0 -0
  391. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/flowtask-interface.brainstorm.md +0 -0
  392. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/form-abstraction-layer.brainstorm.md +0 -0
  393. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/form-designer-edition.brainstorm.md +0 -0
  394. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/formbuilder-database.brainstorm.md +0 -0
  395. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/formdesigner-navigator-api-integration.brainstorm.md +0 -0
  396. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/google-lyria-music-generation.brainstorm.md +0 -0
  397. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/granular-permission.md +0 -0
  398. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/integrations-hooks.brainstorm.md +0 -0
  399. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/intent-router.brainstorm.md +0 -0
  400. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/lightweight-invoke-client-method.brainstorm.md +0 -0
  401. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/long-term-memory.brainstorm.md +0 -0
  402. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/massive-deliberation.md +0 -0
  403. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/massivetoolkit.md +0 -0
  404. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/monorepo-migration.brainstorm.md +0 -0
  405. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/monorepo-migration.proposal.md +0 -0
  406. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/nav-7622-sms-analysis-report.brainstorm.md +0 -0
  407. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/new-api-bot-creation.brainstorm.md +0 -0
  408. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/ontological-graph-rag.brainstorm.md +0 -0
  409. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/options-strategies-iron-spreads.brainstorm.md +0 -0
  410. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/parrot-formdesigner-renderer-telegram.brainstorm.md +0 -0
  411. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/parrot-pipelines-inconsistency.brainstorm.md +0 -0
  412. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/planogram-compliance-handler.brainstorm.md +0 -0
  413. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/planogram-compliance-modular.brainstorm.md +0 -0
  414. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/planogram-composable-type-support.brainstorm.md +0 -0
  415. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/planogram-new-types.brainstorm.md +0 -0
  416. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/policy-based-access-control.brainstorm.md +0 -0
  417. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/pulumi-toolkit-deployment.brainstorm.md +0 -0
  418. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/quant-toolkit.md +0 -0
  419. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/querysource-scheduler.brainstorm.md +0 -0
  420. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/scrapingplan-crawlengine.md +0 -0
  421. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/scrapingplan-playwrightdriver.md +0 -0
  422. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/scrapingplan-webscrapingtoolkit.md +0 -0
  423. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/scrapinplan-planregistry.md +0 -0
  424. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/slack-integration.md +0 -0
  425. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/sqlagent-repair.brainstorm.md +0 -0
  426. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/tech-improvements.md +0 -0
  427. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/telegramcrewtransport.md +0 -0
  428. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/tradier-write-toolkit.md +0 -0
  429. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/ui-agent-management.brainstorm.md +0 -0
  430. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/user-based-credentials.brainstorm.md +0 -0
  431. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/vectorstore-handler-api.brainstorm.md +0 -0
  432. {querysource-4.1.2 → querysource-4.1.3}/sdd/proposals/vllm-client.brainstorm.md +0 -0
  433. {querysource-4.1.2 → querysource-4.1.3}/sdd/reviews/FEAT-056-review.md +0 -0
  434. {querysource-4.1.2 → querysource-4.1.3}/sdd/reviews/TASK-002-review.md +0 -0
  435. {querysource-4.1.2 → querysource-4.1.3}/sdd/reviews/TASK-123-review.md +0 -0
  436. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/abstractbot-ask-clientretry.spec.md +0 -0
  437. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/adaptive-rag.spec.md +0 -0
  438. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/add-description-datasetmanager.spec.md +0 -0
  439. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/add-filter-add-dataset.spec.md +0 -0
  440. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/add-filter-datasetmanager.spec.md +0 -0
  441. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/advisor-ontologic-rag-agent.spec.md +0 -0
  442. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/agent-skill-system.spec.md +0 -0
  443. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/agentsflow-persistency.spec.md +0 -0
  444. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/chatbot-rag-api-integration.spec.md +0 -0
  445. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/cli-wizard-setup.spec.md +0 -0
  446. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/compliancereport-toolkit.spec.md +0 -0
  447. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/component-documentation-api.spec.md +0 -0
  448. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/composable-prompt-layer.spec.md +0 -0
  449. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/composite-datasets.spec.md +0 -0
  450. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/crew-websearchagent-support.spec.md +0 -0
  451. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/databasetoolkit.spec.md +0 -0
  452. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/dataset-support-agenttalk.spec.md +0 -0
  453. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/datasetmanager-datasources.spec.md +0 -0
  454. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/datasetmanager-files.spec.md +0 -0
  455. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/datasetmanager-sources.spec.md +0 -0
  456. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/datasetmanager-tablesource-column-list.spec.md +0 -0
  457. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/decoupling-db-bots-botmanager.spec.md +0 -0
  458. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/docker-toolkit.spec.md +0 -0
  459. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/duplicate-execution-id.spec.md +0 -0
  460. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/episodicmemorystore.spec.md +0 -0
  461. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/excel-to-postgres.spec.md +0 -0
  462. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/exception-migration.spec.md +0 -0
  463. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/extending-workingmemorytoolkit.spec.md +0 -0
  464. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/filesystem-transport.spec.md +0 -0
  465. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/finance-analyst-derivatives-prompts.spec.md +0 -0
  466. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/finance-cio-memory-context.spec.md +0 -0
  467. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/finance-investment-memo-persistency.spec.md +0 -0
  468. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/finance-investment-policy-statement.spec.md +0 -0
  469. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/finance-multi-executor-integration.spec.md +0 -0
  470. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/finance-paper-trading.spec.md +0 -0
  471. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/finance-research-collective-memory.spec.md +0 -0
  472. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/first-time-caching-embedding-model.spec.md +0 -0
  473. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/form-abstraction-layer.spec.md +0 -0
  474. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/form-designer-edition.spec.md +0 -0
  475. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/formbuilder-database.spec.md +0 -0
  476. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/formdesigner-authentication.spec.md +0 -0
  477. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/formdesigner-package-fixes.spec.md +0 -0
  478. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/formdesigner-package.spec.md +0 -0
  479. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/gendata-component.spec.md +0 -0
  480. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/google-lyria-music-generation.spec.md +0 -0
  481. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/granular-permission-system.spec.md +0 -0
  482. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/graphic-panel-display.spec.md +0 -0
  483. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/handoff-tool-for-integrations-agents.spec.md +0 -0
  484. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/ibkr-trading-toolkit.spec.md +0 -0
  485. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/image-video-understanding-handler.spec.md +0 -0
  486. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/integration-user-limit.spec.md +0 -0
  487. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/integrations-hooks.spec.md +0 -0
  488. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/integrations-matrix-multi.spec.md +0 -0
  489. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/intent-router.spec.md +0 -0
  490. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/jiratoolkit-defaults.spec.md +0 -0
  491. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/lightweight-invoke-client-method.spec.md +0 -0
  492. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/localllm-client.spec.md +0 -0
  493. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/long-term-memory.spec.md +0 -0
  494. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/massive-toolkit.spec.md +0 -0
  495. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/massivetoolkit-integration.spec.md +0 -0
  496. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/migrate-github-release.spec.md +0 -0
  497. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/monorepo-migration.spec.md +0 -0
  498. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/msteams-voice-support.spec.md +0 -0
  499. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/new-api-bot-creation.spec.md +0 -0
  500. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/new-scheduler-decorators.spec.md +0 -0
  501. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/odoo-interface.spec.md +0 -0
  502. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/ontological-graph-rag.spec.md +0 -0
  503. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/openrouter-client.spec.md +0 -0
  504. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/options-analytics.spec.md +0 -0
  505. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/options-multi-leg-strategies.spec.md +0 -0
  506. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/parrot-formdesigner-renderer-telegram.spec.md +0 -0
  507. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/parrot-pipelines-inconsistency.spec.md +0 -0
  508. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/persistency-videos-generate-reel-videos.spec.md +0 -0
  509. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/planogram-compliance-handler.spec.md +0 -0
  510. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/planogram-compliance-modular.spec.md +0 -0
  511. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/planogram-composable-type-support.spec.md +0 -0
  512. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/planogram-new-types.spec.md +0 -0
  513. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/podcast-maker.spec.md +0 -0
  514. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/policy-based-access-control.spec.md +0 -0
  515. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/powerpoint-loader-parsing-images.spec.md +0 -0
  516. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/pulumi-toolkit-deployment.spec.md +0 -0
  517. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/quant-toolkit.spec.md +0 -0
  518. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/querysource-scheduler.spec.md +0 -0
  519. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/refactor-episodic-agentcorememory.spec.md +0 -0
  520. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/refactor-tools-imports.spec.md +0 -0
  521. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/refactor-workingmemorytoolkit.spec.md +0 -0
  522. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/rest-api-for-lyria-music.spec.md +0 -0
  523. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/rest-api-generate-video-reel.spec.md +0 -0
  524. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/runtime-dependency-reduction.spec.md +0 -0
  525. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/scraping-playwrightdriver.spec.md +0 -0
  526. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/scraping-toolkit.spec.md +0 -0
  527. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/scrapingplan-crawlengine.spec.md +0 -0
  528. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/scrapingplan-planregistry.spec.md +0 -0
  529. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/scrapingtoolkit-handler.spec.md +0 -0
  530. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/shelltool-security.spec.md +0 -0
  531. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/slack-wrapper-integration.spec.md +0 -0
  532. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/sqlagent-repair.spec.md +0 -0
  533. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/technical-analysis-improvements.spec.md +0 -0
  534. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/telegram-crew-transport.spec.md +0 -0
  535. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/telegram-integrations-auth.spec.md +0 -0
  536. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/telegram-voice-notes.spec.md +0 -0
  537. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/tmerge-cross-function.spec.md +0 -0
  538. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/tools-database.spec.md +0 -0
  539. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/user-based-credentials.spec.md +0 -0
  540. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/vectorstore-handler-api.spec.md +0 -0
  541. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/videoreelhandler-upload-images.spec.md +0 -0
  542. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/vllm-client.spec.md +0 -0
  543. {querysource-4.1.2 → querysource-4.1.3}/sdd/specs/whatif-toolkit-decomposition.spec.md +0 -0
  544. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/.index.json +0 -0
  545. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/active/TASK-009-planogram-type-routing.md +0 -0
  546. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/active/TASK-010-cleanup-and-tests.md +0 -0
  547. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-001-fix-wrapper-reuse.md +0 -0
  548. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-001-music-generation-model.md +0 -0
  549. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-002-lyria-music-handler.md +0 -0
  550. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-002-uuid-uniqueness-tests.md +0 -0
  551. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-003-docstring-parser.md +0 -0
  552. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-003-update-schema-helper.md +0 -0
  553. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-004-lyria-music-tests.md +0 -0
  554. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-004-schema-generator.md +0 -0
  555. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-005-documentation-generator.md +0 -0
  556. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-005-video-reel-handler.md +0 -0
  557. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-006-cli-script.md +0 -0
  558. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-006-update-schema-helper-reel.md +0 -0
  559. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-007-http-handler.md +0 -0
  560. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-007-register-video-reel-handler.md +0 -0
  561. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-008-route-registration.md +0 -0
  562. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-008-video-reel-tests.md +0 -0
  563. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-009-date-sequence-rule.md +0 -0
  564. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-009-flow-definition-models.md +0 -0
  565. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-010-endnode-implementation.md +0 -0
  566. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-010-gendata-component.md +0 -0
  567. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-011-action-registry.md +0 -0
  568. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-011-gendata-integration-tests.md +0 -0
  569. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-012-cel-evaluator.md +0 -0
  570. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-012-tmerge-cross-func.md +0 -0
  571. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-013-flow-loader.md +0 -0
  572. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-013-tmerge-cross-func-tests.md +0 -0
  573. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-014-scheduler-config.md +0 -0
  574. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-014-svelteflow-adapter.md +0 -0
  575. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-015-integration-tests.md +0 -0
  576. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-015-scheduler-core.md +0 -0
  577. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-016-crew-config-models.md +0 -0
  578. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-016-job-definitions.md +0 -0
  579. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-016-voice-transcription-models.md +0 -0
  580. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-017-abstract-transcriber-backend.md +0 -0
  581. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-017-agent-card.md +0 -0
  582. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-017-notification-callbacks.md +0 -0
  583. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-018-crew-registry.md +0 -0
  584. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-018-faster-whisper-backend.md +0 -0
  585. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-018-querysource-integration.md +0 -0
  586. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-019-data-payload.md +0 -0
  587. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-019-openai-whisper-backend.md +0 -0
  588. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-020-mention-builder.md +0 -0
  589. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-020-voice-transcriber-service.md +0 -0
  590. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-021-coordinator-bot.md +0 -0
  591. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-021-msteams-wrapper-integration.md +0 -0
  592. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-022-crew-agent-wrapper.md +0 -0
  593. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-022-msteams-config-extension.md +0 -0
  594. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-023-crew-transport.md +0 -0
  595. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-023-slack-config-model.md +0 -0
  596. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-024-package-init.md +0 -0
  597. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-024-slack-signature-verification.md +0 -0
  598. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-025-integration-tests.md +0 -0
  599. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-025-slack-event-deduplication.md +0 -0
  600. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-026-filesystem-transport-config.md +0 -0
  601. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-026-slack-async-processing.md +0 -0
  602. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-027-abstract-transport.md +0 -0
  603. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-027-slack-typing-indicator.md +0 -0
  604. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-028-agent-registry.md +0 -0
  605. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-028-slack-file-handling.md +0 -0
  606. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-029-inbox-manager.md +0 -0
  607. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-029-slack-socket-mode.md +0 -0
  608. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-030-activity-feed.md +0 -0
  609. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-030-slack-interactive-handler.md +0 -0
  610. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-031-channel-manager.md +0 -0
  611. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-031-slack-assistant-handler.md +0 -0
  612. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-032-reservation-manager.md +0 -0
  613. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-032-shared-security-models.md +0 -0
  614. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-033-base-executor.md +0 -0
  615. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-033-filesystem-transport.md +0 -0
  616. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-034-base-parser.md +0 -0
  617. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-034-filesystem-hook.md +0 -0
  618. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-035-cli-overlay.md +0 -0
  619. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-035-prowler-config-executor.md +0 -0
  620. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-036-package-init-yaml.md +0 -0
  621. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-036-prowler-parser.md +0 -0
  622. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-037-cloud-posture-toolkit.md +0 -0
  623. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-037-integration-tests.md +0 -0
  624. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-038-scraping-plan-model.md +0 -0
  625. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-038-trivy-config-executor.md +0 -0
  626. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-039-plan-registry.md +0 -0
  627. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-039-trivy-parser.md +0 -0
  628. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-040-container-security-toolkit.md +0 -0
  629. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-040-plan-file-io.md +0 -0
  630. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-041-checkov-config-executor.md +0 -0
  631. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-041-webscraping-tool-integration.md +0 -0
  632. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-042-checkov-parser.md +0 -0
  633. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-042-scraping-plan-integration-tests.md +0 -0
  634. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-043-secrets-iac-toolkit.md +0 -0
  635. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-043-url-normalization.md +0 -0
  636. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-044-compliance-mapper.md +0 -0
  637. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-044-crawl-graph.md +0 -0
  638. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-045-crawl-strategies.md +0 -0
  639. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-045-report-generator.md +0 -0
  640. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-046-compliance-report-toolkit.md +0 -0
  641. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-046-link-discoverer.md +0 -0
  642. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-047-crawl-engine.md +0 -0
  643. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-047-security-package-exports.md +0 -0
  644. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-048-crawl-integration.md +0 -0
  645. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-048-integration-tests.md +0 -0
  646. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-049-toolkit-models.md +0 -0
  647. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-049-websearchagent-config-component.md +0 -0
  648. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-050-agent-type-detection.md +0 -0
  649. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-050-driver-context.md +0 -0
  650. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-051-json-serialization.md +0 -0
  651. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-052-backend-config-passthrough.md +0 -0
  652. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-053-websearchagent-integration-tests.md +0 -0
  653. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-054-package-init-deprecation.md +0 -0
  654. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-054-pulumi-config.md +0 -0
  655. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-055-pulumi-executor.md +0 -0
  656. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-055-toolkit-integration-tests.md +0 -0
  657. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-056-abstract-driver.md +0 -0
  658. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-056-pulumi-toolkit.md +0 -0
  659. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-057-playwright-config.md +0 -0
  660. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-057-pulumi-cli-install.md +0 -0
  661. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-058-playwright-driver.md +0 -0
  662. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-058-pulumi-integration-tests.md +0 -0
  663. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-059-permission-data-models.md +0 -0
  664. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-059-selenium-driver.md +0 -0
  665. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-060-driver-factory.md +0 -0
  666. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-060-permission-resolver.md +0 -0
  667. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-061-requires-permission-decorator.md +0 -0
  668. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-061-tool-driver-integration.md +0 -0
  669. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-062-abstracttool-layer2-enforcement.md +0 -0
  670. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-062-driver-tests.md +0 -0
  671. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-063-abstracttoolkit-layer1-filtering.md +0 -0
  672. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-063-scraping-handler-models.md +0 -0
  673. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-064-scraping-info-handler.md +0 -0
  674. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-064-toolmanager-resolver-injection.md +0 -0
  675. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-065-jiratoolkit-permissions.md +0 -0
  676. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-065-scraping-handler.md +0 -0
  677. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-066-permission-integration-tests.md +0 -0
  678. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-066-scraping-package-init.md +0 -0
  679. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-067-data-models.md +0 -0
  680. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-067-scraping-handler-integration-tests.md +0 -0
  681. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-068-adx-indicator.md +0 -0
  682. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-069-atr-indicator.md +0 -0
  683. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-070-ema-indicator.md +0 -0
  684. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-071-signal-engine.md +0 -0
  685. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-072-composite-score-tool.md +0 -0
  686. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-073-multi-timeframe.md +0 -0
  687. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-074-output-restructuring.md +0 -0
  688. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-075-unit-tests.md +0 -0
  689. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-076-integration-tests.md +0 -0
  690. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-077-options-data-models.md +0 -0
  691. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-078-black-scholes-engine.md +0 -0
  692. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-079-spread-analyzer.md +0 -0
  693. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-080-pmcc-scanner.md +0 -0
  694. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-081-options-toolkit.md +0 -0
  695. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-082-options-unit-tests.md +0 -0
  696. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-083-options-integration-tests.md +0 -0
  697. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-084-quant-data-models.md +0 -0
  698. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-085-risk-metrics-engine.md +0 -0
  699. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-086-correlation-engine.md +0 -0
  700. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-087-piotroski-fscore.md +0 -0
  701. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-088-volatility-analytics.md +0 -0
  702. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-089-stress-testing.md +0 -0
  703. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-090-quant-toolkit-main.md +0 -0
  704. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-091-quant-integration-tests.md +0 -0
  705. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-092-massive-models.md +0 -0
  706. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-093-massive-client.md +0 -0
  707. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-094-massive-cache.md +0 -0
  708. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-095-massive-toolkit.md +0 -0
  709. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-096-massive-unit-tests.md +0 -0
  710. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-097-massive-integration-tests.md +0 -0
  711. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-098-candidate-ticker-model.md +0 -0
  712. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-099-enrichment-service.md +0 -0
  713. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-100-pipeline-fsm-execution.md +0 -0
  714. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-101-analyst-prompts-update.md +0 -0
  715. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-102-integration-tests.md +0 -0
  716. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-103-lyria-batch-models.md +0 -0
  717. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-104-lyria-batch-method.md +0 -0
  718. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-105-rename-generate-music.md +0 -0
  719. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-106-update-internal-callers.md +0 -0
  720. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-107-lyria-batch-tests.md +0 -0
  721. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-108-lyria-batch-example.md +0 -0
  722. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-109-research-memory-schemas.md +0 -0
  723. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-110-research-memory-abstract.md +0 -0
  724. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-111-file-research-memory.md +0 -0
  725. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-112-audit-trail-cleanup.md +0 -0
  726. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-113-research-memory-tools.md +0 -0
  727. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-114-service-integration.md +0 -0
  728. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-115-crew-integration.md +0 -0
  729. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-116-analyst-integration.md +0 -0
  730. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-117-unit-tests.md +0 -0
  731. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-118-integration-tests.md +0 -0
  732. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-119-user-objects-handler.md +0 -0
  733. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-120-agenttalk-refactor.md +0 -0
  734. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-121-dataset-request-response-models.md +0 -0
  735. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-122-dataset-manager-handler.md +0 -0
  736. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-123-route-registration.md +0 -0
  737. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-124-dataset-handler-tests.md +0 -0
  738. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-125-vllm-models.md +0 -0
  739. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-126-vllm-client.md +0 -0
  740. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-127-vllm-registration.md +0 -0
  741. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-128-vllm-tests.md +0 -0
  742. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-129-paper-trading-models.md +0 -0
  743. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-130-virtual-portfolio-engine.md +0 -0
  744. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-131-paper-trading-mixin.md +0 -0
  745. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-132-alpaca-paper-enhancement.md +0 -0
  746. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-133-binance-testnet-enhancement.md +0 -0
  747. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-134-ibkr-paper-enhancement.md +0 -0
  748. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-135-kraken-demo-enhancement.md +0 -0
  749. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-136-execution-report-enhancement.md +0 -0
  750. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-137-orchestrator-paper-mode.md +0 -0
  751. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-138-paper-trading-exports.md +0 -0
  752. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-139-paper-trading-unit-tests.md +0 -0
  753. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-140-paper-trading-integration-tests.md +0 -0
  754. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-141-options-schemas.md +0 -0
  755. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-142-alpaca-options-toolkit-base.md +0 -0
  756. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-143-strategy-factory.md +0 -0
  757. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-144-get-options-chain.md +0 -0
  758. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-145-strike-selection-engine.md +0 -0
  759. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-146-place-iron-butterfly.md +0 -0
  760. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-147-place-iron-condor.md +0 -0
  761. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-148-get-options-positions.md +0 -0
  762. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-149-close-options-position.md +0 -0
  763. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-150-options-toolkit-unit-tests.md +0 -0
  764. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-151-cio-options-prompt.md +0 -0
  765. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-152-cio-toolset-integration.md +0 -0
  766. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-153-risk-analyst-options-tools.md +0 -0
  767. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-154-options-integration-tests.md +0 -0
  768. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-155-greeks-caching.md +0 -0
  769. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-156-position-pnl-tracking.md +0 -0
  770. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-157-options-documentation.md +0 -0
  771. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-158-memo-store-interface.md +0 -0
  772. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-159-file-memo-store.md +0 -0
  773. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-160-memo-store-lru-cache.md +0 -0
  774. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-161-memo-event-log.md +0 -0
  775. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-162-memo-store-unit-tests.md +0 -0
  776. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-163-orchestrator-memo-store.md +0 -0
  777. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-164-memo-persistence-hook.md +0 -0
  778. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-165-event-logging-hook.md +0 -0
  779. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-166-memo-integration-tests.md +0 -0
  780. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-167-get-recent-memos-tool.md +0 -0
  781. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-168-get-memo-detail-tool.md +0 -0
  782. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-169-analyst-toolkit-integration.md +0 -0
  783. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-170-memo-tools-tests.md +0 -0
  784. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-171-cio-memory-dataclasses.md +0 -0
  785. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-172-build-cio-context.md +0 -0
  786. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-173-sentiment-reversal-detection.md +0 -0
  787. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-174-cio-deliberation-integration.md +0 -0
  788. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-175-cio-memory-unit-tests.md +0 -0
  789. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-176-cio-memory-integration-tests.md +0 -0
  790. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-177-schema-enhancements.md +0 -0
  791. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-178-ibkr-executor-prompt.md +0 -0
  792. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-179-ibkr-executor-agent-factory.md +0 -0
  793. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-180-orchestrator-multi-executor.md +0 -0
  794. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-181-pm-platform-update.md +0 -0
  795. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-182-exports-update.md +0 -0
  796. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-183-multi-executor-integration-tests.md +0 -0
  797. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-184-macro-derivatives-guidance.md +0 -0
  798. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-185-equity-derivatives-guidance.md +0 -0
  799. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-186-sentiment-derivatives-guidance.md +0 -0
  800. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-187-risk-derivatives-guidance.md +0 -0
  801. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-188-analyst-output-schema-options-flag.md +0 -0
  802. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-189-derivatives-prompts-tests.md +0 -0
  803. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-190-ips-dataclass.md +0 -0
  804. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-191-ips-analysts-injection.md +0 -0
  805. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-192-ips-cio-secretary-injection.md +0 -0
  806. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-193-ips-swarm-threading.md +0 -0
  807. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-194-ips-research-runner.md +0 -0
  808. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-195-ips-demo-and-sample-yaml.md +0 -0
  809. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-196-ips-exports.md +0 -0
  810. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-197-ips-unit-tests.md +0 -0
  811. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-198-scheduler-report-decorators.md +0 -0
  812. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-199-scheduler-envvar-helpers.md +0 -0
  813. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-200-register-bot-schedules-enhancement.md +0 -0
  814. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-201-scheduler-decorators-tests.md +0 -0
  815. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-202-macro-analyst-futures-guidance.md +0 -0
  816. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-203-equity-analyst-options-guidance.md +0 -0
  817. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-204-sentiment-analyst-flow-guidance.md +0 -0
  818. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-205-risk-analyst-hedge-guidance.md +0 -0
  819. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-206-crypto-analyst-futures-note.md +0 -0
  820. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-207-analyst-derivatives-tests.md +0 -0
  821. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-208-videoreel-model-changes.md +0 -0
  822. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-209-process-scene-reference-image.md +0 -0
  823. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-210-generate-video-reel-reference-images.md +0 -0
  824. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-211-handler-multipart-upload.md +0 -0
  825. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-212-videoreel-upload-tests.md +0 -0
  826. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-213-datasource-subpackage-scaffold.md +0 -0
  827. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-214-inmemory-source.md +0 -0
  828. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-215-queryslug-source.md +0 -0
  829. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-216-sql-query-source.md +0 -0
  830. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-217-table-source.md +0 -0
  831. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-218-dataset-entry-and-info.md +0 -0
  832. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-219-datasetmanager-core.md +0 -0
  833. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-220-unit-tests-datasources.md +0 -0
  834. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-221-integration-tests-datasources.md +0 -0
  835. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-222-pure-python-exceptions.md +0 -0
  836. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-223-rename-pyi-stub.md +0 -0
  837. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-224-remove-cython-extension-setup.md +0 -0
  838. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-225-remove-pylint-suppressions.md +0 -0
  839. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-226-delete-cython-artifacts.md +0 -0
  840. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-227-unit-tests-exceptions.md +0 -0
  841. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-228-database-tools-package-exports.md +0 -0
  842. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-229-database-tools-credential-resolution.md +0 -0
  843. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-230-database-tools-vector-cache-tier.md +0 -0
  844. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-231-database-tools-bigquery-engine.md +0 -0
  845. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-232-database-tools-tests.md +0 -0
  846. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-233-docker-config.md +0 -0
  847. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-234-docker-models.md +0 -0
  848. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-235-docker-executor.md +0 -0
  849. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-236-docker-compose-generator.md +0 -0
  850. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-237-docker-toolkit.md +0 -0
  851. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-238-docker-package-init.md +0 -0
  852. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-239-docker-unit-tests.md +0 -0
  853. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-240-docker-integration-tests.md +0 -0
  854. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-241-config-model-oauth2-fields.md +0 -0
  855. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-242-auth-strategy-abstraction.md +0 -0
  856. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-243-oauth2-provider-registry.md +0 -0
  857. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-244-oauth2-auth-strategy.md +0 -0
  858. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-245-wrapper-auth-delegation.md +0 -0
  859. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-246-oauth2-callback-endpoint.md +0 -0
  860. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-247-unit-tests-auth-strategies.md +0 -0
  861. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-248-integration-tests-oauth2-flow.md +0 -0
  862. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-249-msteams-config-whitelist.md +0 -0
  863. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-250-msteams-wrapper-authorization.md +0 -0
  864. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-251-slack-config-user-whitelist.md +0 -0
  865. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-252-slack-wrapper-user-authorization.md +0 -0
  866. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-253-whitelist-unit-tests.md +0 -0
  867. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-254-whitelist-integration-tests.md +0 -0
  868. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-255-security-data-models.md +0 -0
  869. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-256-security-policy.md +0 -0
  870. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-257-command-sanitizer.md +0 -0
  871. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-258-secure-shell-mixin.md +0 -0
  872. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-259-shelltool-integration.md +0 -0
  873. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-260-permissive-rm-rule.md +0 -0
  874. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-261-security-comprehensive-tests.md +0 -0
  875. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-262-shared-voice-transcriber.md +0 -0
  876. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-263-msteams-voice-backward-compat.md +0 -0
  877. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-264-telegram-voice-config.md +0 -0
  878. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-265-telegram-voice-handler.md +0 -0
  879. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-266-voice-transcriber-unit-tests.md +0 -0
  880. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-267-telegram-voice-tests.md +0 -0
  881. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-268-core-package-init.md +0 -0
  882. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-269-move-hooks-to-core.md +0 -0
  883. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-270-move-eventbus-to-core.md +0 -0
  884. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-271-update-autonomous-imports.md +0 -0
  885. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-272-hookmanager-eventbus-integration.md +0 -0
  886. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-273-hookable-agent-mixin.md +0 -0
  887. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-274-core-hooks-unit-tests.md +0 -0
  888. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-275-wizard-data-models.md +0 -0
  889. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-276-base-client-wizard.md +0 -0
  890. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-277-provider-wizards.md +0 -0
  891. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-278-scaffolding-module.md +0 -0
  892. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-279-code-templates.md +0 -0
  893. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-280-setup-cli-command.md +0 -0
  894. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-281-unit-tests.md +0 -0
  895. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-282-conf-feature-flags.md +0 -0
  896. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-283-botmanager-init-flags.md +0 -0
  897. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-284-load-bots-gating.md +0 -0
  898. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-285-on-startup-gating.md +0 -0
  899. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-286-setup-swagger-flag.md +0 -0
  900. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-287-update-app-py.md +0 -0
  901. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-288-unit-tests-botmanager-flags.md +0 -0
  902. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-289-model-storage-fields.md +0 -0
  903. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-290-pipeline-filemanager-init.md +0 -0
  904. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-291-scene-processing-filemanager.md +0 -0
  905. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-292-music-generation-filemanager.md +0 -0
  906. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-293-assembly-hybrid-storage.md +0 -0
  907. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-294-handler-storage-config.md +0 -0
  908. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-295-storage-tests.md +0 -0
  909. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-296-crew-config-models.md +0 -0
  910. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-297-mention-utilities.md +0 -0
  911. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-298-crew-registry.md +0 -0
  912. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-299-coordinator-bot.md +0 -0
  913. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-300-crew-agent-wrapper.md +0 -0
  914. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-301-crew-transport.md +0 -0
  915. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-302-crew-tests.md +0 -0
  916. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-303-example-and-documentation.md +0 -0
  917. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-304-episodic-models.md +0 -0
  918. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-305-pgvector-backend.md +0 -0
  919. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-306-faiss-backend.md +0 -0
  920. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-307-embedding-reflection.md +0 -0
  921. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-308-redis-cache.md +0 -0
  922. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-309-episodic-store.md +0 -0
  923. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-310-episodic-tools.md +0 -0
  924. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-311-episodic-mixin.md +0 -0
  925. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-312-episodic-tests.md +0 -0
  926. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-324-chat-integration-state.md +0 -0
  927. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-325-prompt-layer-dataclass.md +0 -0
  928. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-326-prompt-builder.md +0 -0
  929. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-327-presets-registry.md +0 -0
  930. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-328-domain-layers.md +0 -0
  931. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-329-abstractbot-integration.md +0 -0
  932. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-330-voicebot-migration.md +0 -0
  933. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-331-pandasagent-migration.md +0 -0
  934. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-332-yaml-botmanager-integration.md +0 -0
  935. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-333-prompts-package-init.md +0 -0
  936. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-334-unit-tests.md +0 -0
  937. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-335-integration-tests.md +0 -0
  938. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-336-planogram-handler-core.md +0 -0
  939. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-337-planogram-handler-registration.md +0 -0
  940. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-338-planogram-handler-tests.md +0 -0
  941. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-339-abstract-planogram-type.md +0 -0
  942. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-340-planogram-config-type-field.md +0 -0
  943. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-341-product-on-shelves-composable.md +0 -0
  944. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-342-planogram-compliance-refactor.md +0 -0
  945. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-343-handler-hydration-and-integration.md +0 -0
  946. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-344-planogram-modular-tests.md +0 -0
  947. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-345-naming-utilities.md +0 -0
  948. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-346-registry-access-cleanup.md +0 -0
  949. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-347-name-normalization-handler.md +0 -0
  950. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-348-vector-store-provisioning.md +0 -0
  951. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-349-apply-filter-helper.md +0 -0
  952. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-349-queryslugsource-permanent-filter.md +0 -0
  953. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-350-tablesource-permanent-filter.md +0 -0
  954. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-351-datasetmanager-permanent-filter-integration.md +0 -0
  955. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-352-jiratoolkit-config-defaults.md +0 -0
  956. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-353-jiratoolkit-create-issue-defaults.md +0 -0
  957. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-354-jiratoolkit-defaults-tests.md +0 -0
  958. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-355-ontology-conf-variables.md +0 -0
  959. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-356-ontology-exceptions.md +0 -0
  960. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-357-extract-datasource-abc.md +0 -0
  961. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-358-extract-datasource-impls.md +0 -0
  962. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-359-datasource-factory.md +0 -0
  963. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-360-ontology-schema-models.md +0 -0
  964. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-361-ontology-parser.md +0 -0
  965. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-362-ontology-merger.md +0 -0
  966. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-363-ontology-graph-store.md +0 -0
  967. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-364-aql-validator.md +0 -0
  968. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-365-relation-discovery.md +0 -0
  969. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-366-intent-resolver.md +0 -0
  970. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-367-tenant-manager.md +0 -0
  971. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-368-cache-helpers.md +0 -0
  972. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-369-ontology-mixin.md +0 -0
  973. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-370-refresh-pipeline.md +0 -0
  974. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-371-default-ontology-yamls.md +0 -0
  975. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-372-integration-tests.md +0 -0
  976. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-373-embedding-registry-config.md +0 -0
  977. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-374-embedding-registry-core.md +0 -0
  978. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-375-embedding-registry-exports.md +0 -0
  979. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-376-abstractstore-registry-integration.md +0 -0
  980. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-377-kbstore-registry-integration.md +0 -0
  981. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-378-bot-warmup-registry-integration.md +0 -0
  982. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-379-embeddingmodel-base-registry-integration.md +0 -0
  983. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-380-unified-memory-models.md +0 -0
  984. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-381-context-assembler.md +0 -0
  985. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-382-unified-memory-manager.md +0 -0
  986. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-383-long-term-memory-mixin.md +0 -0
  987. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-384-unified-package-exports.md +0 -0
  988. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-385-bot-integration-hooks.md +0 -0
  989. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-386-lazy-import-utility.md +0 -0
  990. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-387-pyproject-restructure.md +0 -0
  991. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-388-clients-lazy-imports.md +0 -0
  992. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-389-db-tools-lazy-imports.md +0 -0
  993. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-390-handlers-lazy-imports.md +0 -0
  994. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-391-pdf-ocr-lazy-imports.md +0 -0
  995. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-392-ml-embeddings-lazy-imports.md +0 -0
  996. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-393-finance-tools-lazy-imports.md +0 -0
  997. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-394-flowtask-isolation.md +0 -0
  998. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-395-audio-voice-lazy-imports.md +0 -0
  999. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-396-bot-db-lazy-imports.md +0 -0
  1000. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-397-validation-tests.md +0 -0
  1001. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-398-workspace-scaffolding.md +0 -0
  1002. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-399-import-proxy-tools.md +0 -0
  1003. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-400-import-proxy-loaders.md +0 -0
  1004. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-401-tool-discovery-system.md +0 -0
  1005. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-402-tools-package-setup.md +0 -0
  1006. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-403-tools-migration-batch1.md +0 -0
  1007. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-404-tools-migration-batch2.md +0 -0
  1008. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-405-tools-migration-batch3.md +0 -0
  1009. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-406-loaders-migration.md +0 -0
  1010. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-407-registry-generation-script.md +0 -0
  1011. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-408-cleanup-ci.md +0 -0
  1012. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-409-monorepo-tests-validation.md +0 -0
  1013. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-410-release-build-core.md +0 -0
  1014. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-411-release-build-pure-python.md +0 -0
  1015. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-412-release-deploy-job.md +0 -0
  1016. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-413-release-validation.md +0 -0
  1017. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-414-release-documentation.md +0 -0
  1018. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-415-dataset-entry-description-field.md +0 -0
  1019. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-416-registration-methods-description.md +0 -0
  1020. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-417-get-datasets-summary.md +0 -0
  1021. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-418-surface-description-metadata-guide.md +0 -0
  1022. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-419-dataset-description-tests.md +0 -0
  1023. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-420-iceberg-source.md +0 -0
  1024. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-421-mongo-source.md +0 -0
  1025. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-422-deltatable-source.md +0 -0
  1026. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-423-registration-methods.md +0 -0
  1027. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-424-source-exports.md +0 -0
  1028. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-425-new-sources-tests.md +0 -0
  1029. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-426-tablesource-allowed-columns-integration-tests.md +0 -0
  1030. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-427-computed-columns-foundation.md +0 -0
  1031. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-427-dbtoolkit-base-types.md +0 -0
  1032. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-428-datasetentry-computed-integration.md +0 -0
  1033. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-428-dbtoolkit-source-registry.md +0 -0
  1034. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-429-add-methods-computed-columns.md +0 -0
  1035. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-429-dbtoolkit-sql-sources-core.md +0 -0
  1036. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-430-dbtoolkit-sql-sources-extended.md +0 -0
  1037. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-430-llm-runtime-computed-columns.md +0 -0
  1038. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-431-composite-datasource.md +0 -0
  1039. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-431-dbtoolkit-mssql-source.md +0 -0
  1040. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-432-.md +0 -0
  1041. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-432-add-composite-dataset.md +0 -0
  1042. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-432-dbtoolkit-mongo-source.md +0 -0
  1043. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-433-.md +0 -0
  1044. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-433-datasetinfo-guide-fetch-integration.md +0 -0
  1045. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-433-dbtoolkit-documentdb-atlas.md +0 -0
  1046. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-434-.md +0 -0
  1047. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-434-dbtoolkit-influx-elastic.md +0 -0
  1048. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-434-handoff-tool.md +0 -0
  1049. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-434-step-executor.md +0 -0
  1050. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-435-dbtoolkit-toolkit-tools.md +0 -0
  1051. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-435-orchestrator-pause-resume.md +0 -0
  1052. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-435-plan-generator.md +0 -0
  1053. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-436-dbtoolkit-tests.md +0 -0
  1054. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-436-toolkit-core.md +0 -0
  1055. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-437-credential-data-models.md +0 -0
  1056. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-437-filter-tests.md +0 -0
  1057. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-438-credential-encryption-helpers.md +0 -0
  1058. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-438-odoo-config-variables.md +0 -0
  1059. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-439-credentials-handler.md +0 -0
  1060. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-439-odoo-core-interface.md +0 -0
  1061. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-440-credential-routes.md +0 -0
  1062. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-440-odoo-crud-methods.md +0 -0
  1063. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-441-credential-integration-tests.md +0 -0
  1064. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-441-odoo-export-registration.md +0 -0
  1065. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-442-odoo-unit-tests.md +0 -0
  1066. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-443-tablesource-allowed-columns-param.md +0 -0
  1067. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-444-tablesource-sql-column-validation.md +0 -0
  1068. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-445-datasetmanager-allowed-columns-passthrough.md +0 -0
  1069. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-446-tablesource-allowed-columns-unit-tests.md +0 -0
  1070. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-447-extract-models.md +0 -0
  1071. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-448-extract-internals.md +0 -0
  1072. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-449-toolkit-real-imports.md +0 -0
  1073. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-450-package-init.md +0 -0
  1074. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-451-relocate-tests.md +0 -0
  1075. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-452-whatif-toolkit-scaffold.md +0 -0
  1076. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-453-describe-scenario-tool.md +0 -0
  1077. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-454-add-actions-set-constraints.md +0 -0
  1078. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-455-simulate-tool.md +0 -0
  1079. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-456-quick-impact-tool.md +0 -0
  1080. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-457-compare-scenarios-sysprompt.md +0 -0
  1081. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-458-backward-compat-registry.md +0 -0
  1082. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-459-sensitivity-analysis-tool.md +0 -0
  1083. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-460-montecarlo-simulation-tool.md +0 -0
  1084. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-461-statistical-tests-tool.md +0 -0
  1085. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-462-regression-analysis-tool.md +0 -0
  1086. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-463-breakeven-analysis-tool.md +0 -0
  1087. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-464-integration-tests-e2e.md +0 -0
  1088. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-465-understanding-request-models.md +0 -0
  1089. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-466-understanding-handler.md +0 -0
  1090. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-467-understanding-route-registration.md +0 -0
  1091. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-468-understanding-integration-tests.md +0 -0
  1092. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-469-base-client-fallback-interface.md +0 -0
  1093. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-470-google-fallback-standardization.md +0 -0
  1094. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-471-anthropic-client-fallback.md +0 -0
  1095. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-472-openai-client-fallback.md +0 -0
  1096. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-473-remove-bot-retry-loops.md +0 -0
  1097. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-474-client-fallback-integration-tests.md +0 -0
  1098. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-475-excel-structure-analysis-engine.md +0 -0
  1099. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-476-excel-intelligence-toolkit.md +0 -0
  1100. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-477-datasetmanager-file-loading.md +0 -0
  1101. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-478-csv-markdown-conversion.md +0 -0
  1102. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-479-datasetmanager-files-integration-tests.md +0 -0
  1103. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-480-invoke-result-and-error.md +0 -0
  1104. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-481-abstractclient-invoke-infrastructure.md +0 -0
  1105. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-482-anthropic-invoke.md +0 -0
  1106. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-483-openai-invoke.md +0 -0
  1107. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-484-google-invoke.md +0 -0
  1108. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-485-groq-invoke.md +0 -0
  1109. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-486-grok-invoke.md +0 -0
  1110. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-487-localllm-invoke.md +0 -0
  1111. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-488-invoke-integration-tests.md +0 -0
  1112. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-489-routing-models.md +0 -0
  1113. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-490-capability-registry.md +0 -0
  1114. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-491-intent-router-mixin.md +0 -0
  1115. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-492-abstractbot-touchpoint.md +0 -0
  1116. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-493-auto-registration-hooks.md +0 -0
  1117. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-494-ontology-resolver-demotion.md +0 -0
  1118. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-495-intent-router-unit-tests.md +0 -0
  1119. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-496-intent-router-integration-tests.md +0 -0
  1120. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-497-gorilla-scraper.md +0 -0
  1121. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-498-catalog-loader.md +0 -0
  1122. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-499-gorilla-advisor-agent.md +0 -0
  1123. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-500-configure-auto-enable-vector-store.md +0 -0
  1124. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-501-fix-registry-vector-store-propagation.md +0 -0
  1125. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-502-integration-test-rag-api.md +0 -0
  1126. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-503-entry-type-enum-and-models.md +0 -0
  1127. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-504-extend-working-memory-catalog.md +0 -0
  1128. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-505-generic-tool-methods.md +0 -0
  1129. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-506-answer-memory-bridge.md +0 -0
  1130. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-507-basicagent-auto-injection.md +0 -0
  1131. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-508-package-exports.md +0 -0
  1132. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-509-comprehensive-tests.md +0 -0
  1133. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-510-importance-scorer.md +0 -0
  1134. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-511-recall-strategy-bm25.md +0 -0
  1135. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-512-redis-vector-backend.md +0 -0
  1136. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-513-pgvector-hybrid-search.md +0 -0
  1137. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-514-cross-domain-router.md +0 -0
  1138. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-515-store-integration.md +0 -0
  1139. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-516-unified-manager-routing.md +0 -0
  1140. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-517-delete-corepy.md +0 -0
  1141. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-518-schema-core-models.md +0 -0
  1142. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-519-form-validators.md +0 -0
  1143. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-520-pydantic-extractor.md +0 -0
  1144. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-521-tool-extractor.md +0 -0
  1145. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-522-yaml-extractor.md +0 -0
  1146. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-523-jsonschema-extractor.md +0 -0
  1147. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-524-adaptive-card-renderer.md +0 -0
  1148. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-525-html5-renderer.md +0 -0
  1149. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-526-jsonschema-renderer.md +0 -0
  1150. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-527-form-registry.md +0 -0
  1151. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-528-form-cache.md +0 -0
  1152. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-529-postgres-form-storage.md +0 -0
  1153. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-530-request-form-tool.md +0 -0
  1154. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-531-create-form-tool.md +0 -0
  1155. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-532-msteams-integration-rewrite.md +0 -0
  1156. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-533-remove-legacy-dialogs.md +0 -0
  1157. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-534-navigator-auth-upstream.md +0 -0
  1158. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-535-pbac-setup.md +0 -0
  1159. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-536-pbac-permission-resolver.md +0 -0
  1160. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-537-agent-access-guard.md +0 -0
  1161. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-538-tool-filtering.md +0 -0
  1162. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-539-dataset-filtering.md +0 -0
  1163. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-540-mcp-filtering.md +0 -0
  1164. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-541-app-startup.md +0 -0
  1165. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-542-default-policies.md +0 -0
  1166. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-543-pbac-tests.md +0 -0
  1167. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-544-database-form-tool.md +0 -0
  1168. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-545-package-exports.md +0 -0
  1169. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-546-example-ui-integration.md +0 -0
  1170. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-547-database-form-tests.md +0 -0
  1171. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-548-formdesigner-package-scaffold.md +0 -0
  1172. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-549-formdesigner-extractors.md +0 -0
  1173. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-550-formdesigner-renderers.md +0 -0
  1174. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-551-formdesigner-services.md +0 -0
  1175. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-552-formdesigner-tools.md +0 -0
  1176. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-553-formdesigner-handlers.md +0 -0
  1177. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-554-formdesigner-exports-shim.md +0 -0
  1178. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-555-formdesigner-consumers-examples.md +0 -0
  1179. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-556-fix-cache-redis-datetime.md +0 -0
  1180. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-557-fix-phantom-attributes-dead-code.md +0 -0
  1181. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-558-fix-xss-vulnerabilities.md +0 -0
  1182. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-559-add-api-authentication.md +0 -0
  1183. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-560-fix-tool-layer-issues.md +0 -0
  1184. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-561-fix-handler-robustness-service-hardening.md +0 -0
  1185. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-562-telegram-form-models.md +0 -0
  1186. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-563-telegram-renderer.md +0 -0
  1187. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-564-telegram-form-router.md +0 -0
  1188. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-565-telegram-webapp-handler.md +0 -0
  1189. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-566-telegram-package-integration.md +0 -0
  1190. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-567-telegram-renderer-tests.md +0 -0
  1191. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-568-cache-manager.md +0 -0
  1192. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-569-database-toolkit-base.md +0 -0
  1193. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-570-sql-toolkit.md +0 -0
  1194. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-571-postgres-toolkit.md +0 -0
  1195. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-572-bigquery-toolkit.md +0 -0
  1196. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-573-influxdb-toolkit.md +0 -0
  1197. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-574-elastic-toolkit.md +0 -0
  1198. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-575-documentdb-toolkit.md +0 -0
  1199. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-576-extended-router.md +0 -0
  1200. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-577-extended-retry-handler.md +0 -0
  1201. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-578-database-agent.md +0 -0
  1202. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-579-cleanup-migration.md +0 -0
  1203. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-580-formapi-auth-cleanup.md +0 -0
  1204. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-581-route-auth-wrappers.md +0 -0
  1205. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-582-formdesigner-auth-tests.md +0 -0
  1206. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-592-product-counter-type.md +0 -0
  1207. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-593-endcap-no-shelves-type.md +0 -0
  1208. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-594-registration-exports.md +0 -0
  1209. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-595-example-config-scripts.md +0 -0
  1210. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-596-unit-integration-tests.md +0 -0
  1211. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-597-auth-config-models.md +0 -0
  1212. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-598-submitaction-auth-extension.md +0 -0
  1213. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-599-form-submission-storage.md +0 -0
  1214. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-600-submission-forwarder.md +0 -0
  1215. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-601-edit-endpoints-put-patch.md +0 -0
  1216. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-602-submission-endpoint.md +0 -0
  1217. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-603-route-registration.md +0 -0
  1218. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-604-package-exports.md +0 -0
  1219. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-605-tests.md +0 -0
  1220. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-606-config-and-package-init.md +0 -0
  1221. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-607-vectorstore-helper.md +0 -0
  1222. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-608-handler-skeleton-store-cache.md +0 -0
  1223. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-609-post-create-collection.md +0 -0
  1224. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-610-patch-search-test.md +0 -0
  1225. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-611-put-data-loading.md +0 -0
  1226. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-612-route-registration.md +0 -0
  1227. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-613-skill-definition-model.md +0 -0
  1228. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-614-skill-file-registry.md +0 -0
  1229. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-615-skill-trigger-middleware.md +0 -0
  1230. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-616-mixin-prompt-integration.md +0 -0
  1231. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-617-learned-skill-persistence-tool.md +0 -0
  1232. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-618-skill-system-integration-tests.md +0 -0
  1233. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-619-fix-critical-broken-imports.md +0 -0
  1234. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-620-fix-base-executor-imports.md +0 -0
  1235. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-621-fix-docstring-import-references.md +0 -0
  1236. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-622-full-import-sweep-audit.md +0 -0
  1237. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/completed/TASK-623-import-validation-test-suite.md +0 -0
  1238. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-583-grid-models-package.md +0 -0
  1239. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-584-abstract-grid-strategy.md +0 -0
  1240. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-585-horizontal-bands-strategy.md +0 -0
  1241. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-586-cell-result-merger.md +0 -0
  1242. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-587-grid-detector.md +0 -0
  1243. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-588-config-model-extensions.md +0 -0
  1244. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-589-abstract-type-grid-integration.md +0 -0
  1245. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-590-product-on-shelves-refactor.md +0 -0
  1246. {querysource-4.1.2 → querysource-4.1.3}/sdd/tasks/done/TASK-591-integration-tests.md +0 -0
  1247. {querysource-4.1.2 → querysource-4.1.3}/sdd/templates/brainstorm.md +0 -0
  1248. {querysource-4.1.2 → querysource-4.1.3}/sdd/templates/proposal.md +0 -0
  1249. {querysource-4.1.2 → querysource-4.1.3}/sdd/templates/spec.md +0 -0
  1250. {querysource-4.1.2 → querysource-4.1.3}/sdd/templates/task.md +0 -0
  1251. {querysource-4.1.2 → querysource-4.1.3}/setup.cfg +0 -0
  1252. {querysource-4.1.2 → querysource-4.1.3}/setup.py +0 -0
  1253. {querysource-4.1.2 → querysource-4.1.3}/static/notebook/bundle.js +0 -0
  1254. {querysource-4.1.2 → querysource-4.1.3}/templates/__init__.py +0 -0
  1255. {querysource-4.1.2 → querysource-4.1.3}/templates/base.html +0 -0
  1256. {querysource-4.1.2 → querysource-4.1.3}/templates/default.html +0 -0
  1257. {querysource-4.1.2 → querysource-4.1.3}/templates/default_table.html +0 -0
  1258. {querysource-4.1.2 → querysource-4.1.3}/templates/fontlist-v330.json +0 -0
  1259. {querysource-4.1.2 → querysource-4.1.3}/templates/fontlist-v390.json +0 -0
  1260. {querysource-4.1.2 → querysource-4.1.3}/templates/table_charts.html +0 -0
  1261. {querysource-4.1.2 → querysource-4.1.3}/tests/test_api.py +0 -0
  1262. {querysource-4.1.2 → querysource-4.1.3}/tests/test_arangodb_parser.py +0 -0
  1263. {querysource-4.1.2 → querysource-4.1.3}/tests/test_column_filters.py +0 -0
  1264. {querysource-4.1.2 → querysource-4.1.3}/tests/test_elastic_parser.py +0 -0
  1265. {querysource-4.1.2 → querysource-4.1.3}/tests/test_eval.py +0 -0
  1266. {querysource-4.1.2 → querysource-4.1.3}/tests/test_join_with_column_filter.py +0 -0
  1267. {querysource-4.1.2 → querysource-4.1.3}/tests/test_rss.py +0 -0
  1268. {querysource-4.1.2 → querysource-4.1.3}/tests/test_rust_parsers.py +0 -0
  1269. {querysource-4.1.2 → querysource-4.1.3}/tests/test_scheduler_core.py +0 -0
  1270. {querysource-4.1.2 → querysource-4.1.3}/tests/test_scheduler_integration.py +0 -0
  1271. {querysource-4.1.2 → querysource-4.1.3}/tests/test_scheduler_jobs.py +0 -0
  1272. {querysource-4.1.2 → querysource-4.1.3}/tests/test_scheduler_notifications.py +0 -0
  1273. {querysource-4.1.2 → querysource-4.1.3}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: querysource
3
- Version: 4.1.2
3
+ Version: 4.1.3
4
4
  Summary: Aiohttp web service for querying several databases easily
5
5
  Author-email: Jesus Lara <jesuslarag@gmail.com>
6
6
  License: BSD-3-Clause
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '4.1.3.dev0+g02d9a887a.d20260407'
22
- __version_tuple__ = version_tuple = (4, 1, 3, 'dev0', 'g02d9a887a.d20260407')
21
+ __version__ = version = '4.1.4.dev0+g3b71f7144.d20260408'
22
+ __version_tuple__ = version_tuple = (4, 1, 4, 'dev0', 'g3b71f7144.d20260408')
23
23
 
24
- __commit_id__ = commit_id = 'g02d9a887a'
24
+ __commit_id__ = commit_id = 'g3b71f7144'
@@ -6,6 +6,7 @@ from ....exceptions import (
6
6
  DriverError,
7
7
  QueryException
8
8
  )
9
+ from ....types.dt.filters import create_filter
9
10
  from .abstract import AbstractOperator
10
11
 
11
12
 
@@ -16,6 +17,14 @@ class Join(AbstractOperator):
16
17
  self._left = kwargs.pop('left', None)
17
18
  # Right Operator
18
19
  self._right = kwargs.pop('right', None)
20
+ # Join Conditions (column-to-column comparisons applied after merge)
21
+ self._join_conditions = kwargs.pop('join_conditions', None)
22
+
23
+ # Convert 'on' to 'using' for backward compatibility
24
+ # (allows JSON: "on": "user_id" to work)
25
+ if 'on' in kwargs:
26
+ kwargs['using'] = kwargs.pop('on')
27
+
19
28
  super(Join, self).__init__(data, **kwargs)
20
29
  self.data = data
21
30
 
@@ -113,6 +122,79 @@ class Join(AbstractOperator):
113
122
  f"Unknown JOIN error {err!s}"
114
123
  ) from err
115
124
 
125
+ def _apply_join_conditions(self, df: DataFrame) -> DataFrame:
126
+ """Apply join conditions (column-to-column filters) to merged DataFrame.
127
+
128
+ Reuses the filter expression builder from filters module.
129
+ Join conditions are semantically part of the join, applied immediately
130
+ after the merge.
131
+
132
+ Args:
133
+ df: The merged DataFrame
134
+
135
+ Returns:
136
+ Filtered DataFrame with join conditions applied
137
+
138
+ Raises:
139
+ QueryException: If a column doesn't exist or condition is invalid
140
+ """
141
+ if not self._join_conditions:
142
+ return df
143
+
144
+ try:
145
+ # Convert join_conditions to filter format expected by create_filter
146
+ # join_conditions format: [{"left": col_a, "expression": ">=", "right": col_b}, ...]
147
+ # create_filter format: [{"column": col, "expression": ">=", "value": {"$column": col_b}}, ...]
148
+
149
+ filter_specs = []
150
+ for condition in self._join_conditions:
151
+ left_col = condition.get('left')
152
+ expression = condition.get('expression', '==')
153
+ right_col = condition.get('right')
154
+
155
+ if not left_col or not right_col:
156
+ raise QueryException(
157
+ "Join condition must have 'left', 'expression', and 'right' fields"
158
+ )
159
+
160
+ # Transform to Filter format
161
+ filter_specs.append({
162
+ 'column': left_col,
163
+ 'expression': expression,
164
+ 'value': {'$column': right_col}
165
+ })
166
+
167
+ # Use create_filter to build the conditions
168
+ conditions = create_filter(filter_specs, df)
169
+
170
+ # Apply conditions with AND logic
171
+ condition_str = " & ".join(conditions)
172
+ df_filtered = df.loc[eval(condition_str)]
173
+
174
+ if df_filtered is None:
175
+ raise DataNotFound(
176
+ "Error applying join conditions"
177
+ )
178
+
179
+ # Note: empty DataFrame after conditions is valid, not an error
180
+ # (a valid join might produce no rows based on the conditions)
181
+
182
+ logging.debug(
183
+ f"Applied {len(self._join_conditions)} join condition(s), "
184
+ f"result: {len(df_filtered)} rows"
185
+ )
186
+
187
+ return df_filtered
188
+
189
+ except DataNotFound:
190
+ raise
191
+ except QueryException:
192
+ raise
193
+ except Exception as err:
194
+ raise QueryException(
195
+ f"Error applying join conditions: {err!s}"
196
+ ) from err
197
+
116
198
  def _join(self, df1: DataFrame, df2: DataFrame, **kwargs):
117
199
  try:
118
200
  df = self._pd.merge(
@@ -140,5 +222,12 @@ class Join(AbstractOperator):
140
222
  inplace=True
141
223
  )
142
224
  df.reset_index(drop=True)
143
- self._print_info(df)
225
+
226
+ # Apply join conditions if provided
227
+ if self._join_conditions:
228
+ df = self._apply_join_conditions(df)
229
+
230
+ # Print info only if DataFrame has data (avoid IndexError on empty frames)
231
+ if not df.empty:
232
+ self._print_info(df)
144
233
  return df
@@ -6,7 +6,7 @@ __description__ = (
6
6
  'QuerySource Query parser and generator.'
7
7
  'Supports SQL, NoSQL, MongoDB, Cassandra, Elasticsearch, etc.'
8
8
  )
9
- __version__ = '4.1.2'
9
+ __version__ = '4.1.3'
10
10
  __url__ = 'https://github.com/phenobarbital/querysource'
11
11
  __copyright__ = 'Copyright (c) 2018-2025 Jesus Lara'
12
12
  __author__ = 'Jesus Lara'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: querysource
3
- Version: 4.1.2
3
+ Version: 4.1.3
4
4
  Summary: Aiohttp web service for querying several databases easily
5
5
  Author-email: Jesus Lara <jesuslarag@gmail.com>
6
6
  License: BSD-3-Clause
@@ -1261,6 +1261,7 @@ tests/test_arangodb_parser.py
1261
1261
  tests/test_column_filters.py
1262
1262
  tests/test_elastic_parser.py
1263
1263
  tests/test_eval.py
1264
+ tests/test_join_conditions.py
1264
1265
  tests/test_join_with_column_filter.py
1265
1266
  tests/test_rss.py
1266
1267
  tests/test_rust_parsers.py
@@ -0,0 +1,351 @@
1
+ """Unit tests for Join operator with join_conditions."""
2
+ import pandas as pd
3
+ import pytest
4
+ from querysource.queries.multi.operators.Join import Join
5
+ from querysource.exceptions import QueryException, DataNotFound
6
+
7
+
8
+ class TestJoinWithJoinConditions:
9
+ """Test suite for join_conditions feature in Join operator."""
10
+
11
+ def setup_method(self):
12
+ """Setup test DataFrames."""
13
+ self.calls_df = pd.DataFrame({
14
+ 'id_llamada': [1, 2, 3, 4],
15
+ 'usuario_id': [100, 101, 100, 102],
16
+ 'call_date': pd.to_datetime([
17
+ '2024-01-15', '2024-01-20', '2024-02-01', '2024-02-10'
18
+ ]),
19
+ 'call_duration': [45, 30, 60, 25],
20
+ })
21
+
22
+ self.podcasts_df = pd.DataFrame({
23
+ 'id_podcast': [200, 201, 202, 203],
24
+ 'usuario_id': [100, 101, 100, 102],
25
+ 'podcast_date': pd.to_datetime([
26
+ '2024-01-10', '2024-01-25', '2024-02-02', '2024-02-05'
27
+ ]),
28
+ 'podcast_duration': [90, 45, 60, 120],
29
+ })
30
+
31
+ def test_join_with_single_condition(self):
32
+ """Test join with a single join_condition."""
33
+ # Join: calls x podcasts on user_id
34
+ # WHERE: call_date >= podcast_date
35
+
36
+ join_op = Join(
37
+ data={
38
+ 'calls': self.calls_df.copy(),
39
+ 'podcasts': self.podcasts_df.copy()
40
+ },
41
+ left='calls',
42
+ right='podcasts',
43
+ on='usuario_id',
44
+ type='inner',
45
+ join_conditions=[
46
+ {
47
+ 'left': 'call_date',
48
+ 'expression': '>=',
49
+ 'right': 'podcast_date'
50
+ }
51
+ ]
52
+ )
53
+
54
+ result = join_op.data
55
+ import asyncio
56
+ output = asyncio.run(join_op.run())
57
+
58
+ # Get the merged dataframe
59
+ df = list(output.values())[0] if isinstance(output, dict) else output
60
+
61
+ # All rows should have call_date >= podcast_date
62
+ for _, row in df.iterrows():
63
+ assert row['call_date'] >= row['podcast_date']
64
+
65
+ def test_join_with_multiple_conditions(self):
66
+ """Test join with multiple join_conditions (AND logic)."""
67
+ join_op = Join(
68
+ data={
69
+ 'calls': self.calls_df.copy(),
70
+ 'podcasts': self.podcasts_df.copy()
71
+ },
72
+ left='calls',
73
+ right='podcasts',
74
+ on='usuario_id',
75
+ type='inner',
76
+ join_conditions=[
77
+ {
78
+ 'left': 'call_date',
79
+ 'expression': '>=',
80
+ 'right': 'podcast_date'
81
+ },
82
+ {
83
+ 'left': 'call_duration',
84
+ 'expression': '<',
85
+ 'right': 'podcast_duration'
86
+ }
87
+ ]
88
+ )
89
+
90
+ import asyncio
91
+ output = asyncio.run(join_op.run())
92
+ df = list(output.values())[0] if isinstance(output, dict) else output
93
+
94
+ # All rows should satisfy BOTH conditions
95
+ for _, row in df.iterrows():
96
+ assert row['call_date'] >= row['podcast_date']
97
+ assert row['call_duration'] < row['podcast_duration']
98
+
99
+ def test_join_conditions_reduce_result_set(self):
100
+ """Test that join_conditions reduce the result size."""
101
+ # Without conditions
102
+ join_op_no_cond = Join(
103
+ data={
104
+ 'calls': self.calls_df.copy(),
105
+ 'podcasts': self.podcasts_df.copy()
106
+ },
107
+ left='calls',
108
+ right='podcasts',
109
+ on='usuario_id',
110
+ type='inner'
111
+ )
112
+
113
+ import asyncio
114
+ output_no_cond = asyncio.run(join_op_no_cond.run())
115
+ df_no_cond = list(output_no_cond.values())[0] if isinstance(output_no_cond, dict) else output_no_cond
116
+ rows_without_conditions = len(df_no_cond)
117
+
118
+ # With conditions
119
+ join_op_with_cond = Join(
120
+ data={
121
+ 'calls': self.calls_df.copy(),
122
+ 'podcasts': self.podcasts_df.copy()
123
+ },
124
+ left='calls',
125
+ right='podcasts',
126
+ on='usuario_id',
127
+ type='inner',
128
+ join_conditions=[
129
+ {
130
+ 'left': 'call_date',
131
+ 'expression': '>=',
132
+ 'right': 'podcast_date'
133
+ }
134
+ ]
135
+ )
136
+
137
+ output_with_cond = asyncio.run(join_op_with_cond.run())
138
+ df_with_cond = list(output_with_cond.values())[0] if isinstance(output_with_cond, dict) else output_with_cond
139
+ rows_with_conditions = len(df_with_cond)
140
+
141
+ # Conditions should reduce or equal the result set
142
+ assert rows_with_conditions <= rows_without_conditions
143
+
144
+ def test_join_conditions_all_operators(self):
145
+ """Test join_conditions with all comparison operators."""
146
+ operators = ['<', '<=', '>', '>=', '==', '!=']
147
+
148
+ for op in operators:
149
+ join_op = Join(
150
+ data={
151
+ 'calls': self.calls_df.copy(),
152
+ 'podcasts': self.podcasts_df.copy()
153
+ },
154
+ left='calls',
155
+ right='podcasts',
156
+ on='usuario_id',
157
+ type='inner',
158
+ join_conditions=[
159
+ {
160
+ 'left': 'call_duration',
161
+ 'expression': op,
162
+ 'right': 'podcast_duration'
163
+ }
164
+ ]
165
+ )
166
+
167
+ import asyncio
168
+ output = asyncio.run(join_op.run())
169
+
170
+ # Should not crash and return a DataFrame
171
+ assert output is not None
172
+
173
+ def test_join_without_conditions_unchanged(self):
174
+ """Test that join without conditions works as before."""
175
+ join_op = Join(
176
+ data={
177
+ 'calls': self.calls_df.copy(),
178
+ 'podcasts': self.podcasts_df.copy()
179
+ },
180
+ left='calls',
181
+ right='podcasts',
182
+ on='usuario_id',
183
+ type='inner'
184
+ # No join_conditions specified
185
+ )
186
+
187
+ import asyncio
188
+ output = asyncio.run(join_op.run())
189
+
190
+ # Should return result without filtering
191
+ assert output is not None
192
+
193
+ def test_join_condition_nonexistent_column(self):
194
+ """Test that join_conditions validate column existence."""
195
+ join_op = Join(
196
+ data={
197
+ 'calls': self.calls_df.copy(),
198
+ 'podcasts': self.podcasts_df.copy()
199
+ },
200
+ left='calls',
201
+ right='podcasts',
202
+ on='usuario_id',
203
+ type='inner',
204
+ join_conditions=[
205
+ {
206
+ 'left': 'nonexistent_column',
207
+ 'expression': '>=',
208
+ 'right': 'podcast_date'
209
+ }
210
+ ]
211
+ )
212
+
213
+ import asyncio
214
+ with pytest.raises(QueryException):
215
+ asyncio.run(join_op.run())
216
+
217
+ def test_join_condition_missing_fields(self):
218
+ """Test that join_conditions require left, expression, and right."""
219
+ join_op = Join(
220
+ data={
221
+ 'calls': self.calls_df.copy(),
222
+ 'podcasts': self.podcasts_df.copy()
223
+ },
224
+ left='calls',
225
+ right='podcasts',
226
+ on='usuario_id',
227
+ type='inner',
228
+ join_conditions=[
229
+ {
230
+ 'left': 'call_date',
231
+ # Missing 'expression' and 'right'
232
+ }
233
+ ]
234
+ )
235
+
236
+ import asyncio
237
+ with pytest.raises(QueryException):
238
+ asyncio.run(join_op.run())
239
+
240
+ def test_join_conditions_semantic_clarity(self):
241
+ """Test that join_conditions document the intent clearly."""
242
+ # This is more of a documentation test
243
+ # The intent is clear: join conditions are PART OF the join, not post-filtering
244
+
245
+ join_config = {
246
+ 'left': 'calls',
247
+ 'right': 'podcasts',
248
+ 'on': 'usuario_id',
249
+ 'join_conditions': [
250
+ {
251
+ 'left': 'call_date',
252
+ 'expression': '>=',
253
+ 'right': 'podcast_date'
254
+ }
255
+ ]
256
+ }
257
+
258
+ # The intent is crystal clear:
259
+ # "Join calls and podcasts on user_id WHERE call_date >= podcast_date"
260
+ assert 'join_conditions' in join_config
261
+ assert join_config['join_conditions'][0]['expression'] == '>='
262
+
263
+
264
+ class TestJoinConditionsVsFilter:
265
+ """Compare join_conditions vs separate Filter operator."""
266
+
267
+ def setup_method(self):
268
+ """Setup test data."""
269
+ self.df1 = pd.DataFrame({
270
+ 'id': [1, 2, 3],
271
+ 'key': ['a', 'b', 'a'],
272
+ 'val1': [10, 20, 30],
273
+ })
274
+
275
+ self.df2 = pd.DataFrame({
276
+ 'key': ['a', 'b', 'a'],
277
+ 'val2': [5, 15, 25],
278
+ })
279
+
280
+ def test_join_conditions_semantic_equivalence(self):
281
+ """Test that join_conditions produce same result as Join + Filter.
282
+
283
+ Note: Both should produce identical results, but join_conditions
284
+ communicate intent more clearly.
285
+ """
286
+ # Using join_conditions
287
+ join_op = Join(
288
+ data={
289
+ 'table1': self.df1.copy(),
290
+ 'table2': self.df2.copy()
291
+ },
292
+ left='table1',
293
+ right='table2',
294
+ on='key',
295
+ type='inner',
296
+ join_conditions=[
297
+ {
298
+ 'left': 'val1',
299
+ 'expression': '>',
300
+ 'right': 'val2'
301
+ }
302
+ ]
303
+ )
304
+
305
+ import asyncio
306
+ output = asyncio.run(join_op.run())
307
+ df_with_conditions = list(output.values())[0] if isinstance(output, dict) else output
308
+
309
+ # Both approaches should produce result where val1 > val2
310
+ for _, row in df_with_conditions.iterrows():
311
+ assert row['val1'] > row['val2']
312
+
313
+ def test_join_conditions_range_check(self):
314
+ """Test range checking with multiple join_conditions."""
315
+ df_ranges = pd.DataFrame({
316
+ 'id': [1, 2, 3, 4],
317
+ 'value': [15, 25, 35, 45],
318
+ 'min_allowed': [10, 20, 30, 40],
319
+ 'max_allowed': [20, 30, 40, 50],
320
+ })
321
+
322
+ join_op = Join(
323
+ data={
324
+ 'data': df_ranges.copy(),
325
+ 'dummy': pd.DataFrame({'id': [1]}), # Dummy for join
326
+ },
327
+ left='data',
328
+ right='dummy',
329
+ on='id',
330
+ type='inner',
331
+ join_conditions=[
332
+ {
333
+ 'left': 'value',
334
+ 'expression': '>=',
335
+ 'right': 'min_allowed'
336
+ },
337
+ {
338
+ 'left': 'value',
339
+ 'expression': '<=',
340
+ 'right': 'max_allowed'
341
+ }
342
+ ]
343
+ )
344
+
345
+ import asyncio
346
+ output = asyncio.run(join_op.run())
347
+ df = list(output.values())[0] if isinstance(output, dict) else output
348
+
349
+ # All values should be within range
350
+ for _, row in df.iterrows():
351
+ assert row['min_allowed'] <= row['value'] <= row['max_allowed']
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes