execsql2 2.4.5__tar.gz → 2.6.0__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 (287) hide show
  1. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/agents/dba.md +1 -0
  2. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/agents/herald.md +6 -3
  3. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/agents/inspector.md +7 -4
  4. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/agents/oracle.md +6 -3
  5. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/agents/patcher.md +6 -3
  6. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/agents/qa.md +6 -3
  7. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/project_context.md +208 -295
  8. execsql2-2.6.0/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
  9. execsql2-2.6.0/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
  10. execsql2-2.6.0/.github/PULL_REQUEST_TEMPLATE.md +19 -0
  11. {execsql2-2.4.5 → execsql2-2.6.0}/.github/workflows/ci-cd.yml +12 -12
  12. {execsql2-2.4.5 → execsql2-2.6.0}/.gitignore +2 -0
  13. {execsql2-2.4.5 → execsql2-2.6.0}/.pre-commit-config.yaml +3 -3
  14. {execsql2-2.4.5 → execsql2-2.6.0}/.readthedocs.yaml +1 -1
  15. {execsql2-2.4.5 → execsql2-2.6.0}/CHANGELOG.md +74 -0
  16. {execsql2-2.4.5 → execsql2-2.6.0}/CLAUDE.md +3 -1
  17. {execsql2-2.4.5 → execsql2-2.6.0}/PKG-INFO +2 -2
  18. {execsql2-2.4.5 → execsql2-2.6.0}/README.md +1 -1
  19. execsql2-2.6.0/SECURITY.md +28 -0
  20. execsql2-2.6.0/docs/about/contributors.md +4 -0
  21. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/about}/copyright.md +1 -1
  22. execsql2-2.6.0/docs/about/divergence.md +168 -0
  23. {execsql2-2.4.5 → execsql2-2.6.0}/docs/api/cli.md +1 -1
  24. {execsql2-2.4.5 → execsql2-2.6.0}/docs/api/index.md +2 -0
  25. {execsql2-2.4.5 → execsql2-2.6.0}/docs/dev/adding_db_adapters.md +2 -2
  26. {execsql2-2.4.5 → execsql2-2.6.0}/docs/dev/adding_exporters.md +2 -2
  27. {execsql2-2.4.5 → execsql2-2.6.0}/docs/dev/adding_importers.md +2 -2
  28. execsql2-2.6.0/docs/dev/architecture.md +386 -0
  29. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/getting-started}/requirements.md +2 -2
  30. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/getting-started}/syntax.md +8 -8
  31. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/guides}/debugging.md +3 -3
  32. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/guides}/documentation.md +9 -9
  33. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/guides}/encoding.md +2 -2
  34. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/guides}/examples.md +37 -37
  35. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/guides}/formatter.md +6 -14
  36. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/guides}/logging.md +8 -8
  37. execsql2-2.6.0/docs/guides/sql_syntax.md +54 -0
  38. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/guides}/usage.md +27 -27
  39. execsql2-2.6.0/docs/guides/using_scripts.md +14 -0
  40. {execsql2-2.4.5 → execsql2-2.6.0}/docs/index.md +19 -19
  41. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/reference}/configuration.md +1 -1
  42. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/reference}/metacommands.md +68 -68
  43. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/reference}/security.md +4 -4
  44. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/reference}/substitution_vars.md +11 -11
  45. {execsql2-2.4.5 → execsql2-2.6.0}/justfile +2 -2
  46. {execsql2-2.4.5 → execsql2-2.6.0}/pyproject.toml +7 -4
  47. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/cli/__init__.py +14 -0
  48. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/cli/dsn.py +2 -0
  49. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/cli/help.py +2 -0
  50. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/cli/run.py +4 -2
  51. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/constants.py +11 -0
  52. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/access.py +20 -0
  53. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/base.py +4 -0
  54. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/dsn.py +11 -8
  55. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/duckdb.py +12 -8
  56. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/firebird.py +17 -8
  57. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/mysql.py +13 -8
  58. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/oracle.py +22 -8
  59. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/postgres.py +21 -9
  60. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/sqlite.py +18 -8
  61. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/sqlserver.py +14 -8
  62. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/__init__.py +6 -1
  63. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/base.py +2 -0
  64. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/delimited.py +10 -0
  65. execsql2-2.6.0/src/execsql/exporters/protocol.py +128 -0
  66. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/xls.py +8 -0
  67. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/format.py +3 -1
  68. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/gui/__init__.py +2 -0
  69. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/gui/base.py +2 -0
  70. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/gui/console.py +2 -0
  71. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/gui/desktop.py +1 -0
  72. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/gui/tui.py +134 -0
  73. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/importers/base.py +1 -0
  74. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/importers/csv.py +2 -0
  75. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/importers/feather.py +2 -0
  76. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/importers/ods.py +1 -0
  77. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/importers/xls.py +1 -0
  78. execsql2-2.6.0/src/execsql/metacommands/__init__.py +462 -0
  79. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/dispatch.py +2 -0
  80. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/io.py +41 -0
  81. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/models.py +17 -0
  82. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/parser.py +41 -0
  83. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/script/control.py +2 -0
  84. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/script/engine.py +19 -0
  85. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/script/variables.py +9 -5
  86. execsql2-2.6.0/src/execsql/state.py +452 -0
  87. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/types.py +46 -0
  88. execsql2-2.6.0/tests/cli/test_cli_e2e.py +280 -0
  89. execsql2-2.6.0/tests/db/test_base.py +1953 -0
  90. execsql2-2.6.0/tests/exporters/test_delimited.py +1248 -0
  91. execsql2-2.6.0/tests/metacommands/test_connect.py +1807 -0
  92. execsql2-2.6.0/tests/test_engine.py +1305 -0
  93. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_state.py +109 -3
  94. execsql2-2.6.0/tests/utils/__init__.py +0 -0
  95. {execsql2-2.4.5 → execsql2-2.6.0}/uv.lock +1 -1
  96. {execsql2-2.4.5 → execsql2-2.6.0}/zensical.toml +24 -21
  97. execsql2-2.4.5/docs/change_log.md +0 -1669
  98. execsql2-2.4.5/docs/contributors.md +0 -4
  99. execsql2-2.4.5/docs/sql_syntax.md +0 -60
  100. execsql2-2.4.5/docs/using_scripts.md +0 -14
  101. execsql2-2.4.5/src/execsql/metacommands/__init__.py +0 -256
  102. execsql2-2.4.5/src/execsql/state.py +0 -339
  103. execsql2-2.4.5/tests/db/test_base.py +0 -423
  104. execsql2-2.4.5/tests/exporters/test_delimited.py +0 -460
  105. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/agents/scribe.md +0 -0
  106. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/commands/code-oracle.md +0 -0
  107. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/commands/migrate.md +0 -0
  108. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/commands/review-changes.md +0 -0
  109. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/commands/test-module.md +0 -0
  110. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/commands/update-changelog.md +0 -0
  111. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/commands/where-is.md +0 -0
  112. {execsql2-2.4.5 → execsql2-2.6.0}/.claude/state/status.md +0 -0
  113. {execsql2-2.4.5 → execsql2-2.6.0}/.pre-commit-hooks.yaml +0 -0
  114. {execsql2-2.4.5 → execsql2-2.6.0}/.python-version +0 -0
  115. {execsql2-2.4.5 → execsql2-2.6.0}/CONTRIBUTING.md +0 -0
  116. {execsql2-2.4.5 → execsql2-2.6.0}/LICENSE.txt +0 -0
  117. {execsql2-2.4.5 → execsql2-2.6.0}/NOTICE +0 -0
  118. {execsql2-2.4.5 → execsql2-2.6.0}/docs/api/db.md +0 -0
  119. {execsql2-2.4.5 → execsql2-2.6.0}/docs/api/exporters.md +0 -0
  120. {execsql2-2.4.5 → execsql2-2.6.0}/docs/api/importers.md +0 -0
  121. {execsql2-2.4.5 → execsql2-2.6.0}/docs/api/metacommands.md +0 -0
  122. {execsql2-2.4.5 → execsql2-2.6.0}/docs/dev/adding_metacommands.md +0 -0
  123. {execsql2-2.4.5/docs → execsql2-2.6.0/docs/getting-started}/installation.md +0 -0
  124. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/Compare_planets.png +0 -0
  125. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/actions.png +0 -0
  126. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/actions2.png +0 -0
  127. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/checkboxes.png +0 -0
  128. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/connect.b64 +0 -0
  129. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/connect.png +0 -0
  130. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/create_conf.png +0 -0
  131. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/data_error1_screenshot.jpg +0 -0
  132. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/entry_form.png +0 -0
  133. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/execsql_console.png +0 -0
  134. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/execsql_logo_01.png +0 -0
  135. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/fatals.png +0 -0
  136. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/logo_small.png +0 -0
  137. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/pause_terminal.png +0 -0
  138. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/pause_terminal_sm.b64 +0 -0
  139. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/pause_terminal_sm.png +0 -0
  140. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/prompt_compare.png +0 -0
  141. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/set_build_commands.jpg +0 -0
  142. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/unit_conversions.b64 +0 -0
  143. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/unit_conversions_029.png +0 -0
  144. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/unmatched.png +0 -0
  145. {execsql2-2.4.5 → execsql2-2.6.0}/docs/images/vim_execsql_highlight.png +0 -0
  146. {execsql2-2.4.5 → execsql2-2.6.0}/extras/vscode-execsql/README.md +0 -0
  147. {execsql2-2.4.5 → execsql2-2.6.0}/extras/vscode-execsql/package.json +0 -0
  148. {execsql2-2.4.5 → execsql2-2.6.0}/extras/vscode-execsql/syntaxes/execsql.tmLanguage.json +0 -0
  149. {execsql2-2.4.5 → execsql2-2.6.0}/scripts/generate_vscode_grammar.py +0 -0
  150. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/__init__.py +0 -0
  151. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/__main__.py +0 -0
  152. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/config.py +0 -0
  153. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/__init__.py +0 -0
  154. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/db/factory.py +0 -0
  155. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exceptions.py +0 -0
  156. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/duckdb.py +0 -0
  157. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/feather.py +0 -0
  158. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/html.py +0 -0
  159. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/json.py +0 -0
  160. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/latex.py +0 -0
  161. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/ods.py +0 -0
  162. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/parquet.py +0 -0
  163. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/pretty.py +0 -0
  164. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/raw.py +0 -0
  165. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/sqlite.py +0 -0
  166. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/templates.py +0 -0
  167. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/values.py +0 -0
  168. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/xml.py +0 -0
  169. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/exporters/zip.py +0 -0
  170. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/importers/__init__.py +0 -0
  171. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/conditions.py +0 -0
  172. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/connect.py +0 -0
  173. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/control.py +0 -0
  174. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/data.py +0 -0
  175. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/debug.py +0 -0
  176. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/io_export.py +0 -0
  177. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/io_fileops.py +0 -0
  178. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/io_import.py +0 -0
  179. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/io_write.py +0 -0
  180. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/prompt.py +0 -0
  181. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/script_ext.py +0 -0
  182. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/metacommands/system.py +0 -0
  183. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/py.typed +0 -0
  184. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/script/__init__.py +0 -0
  185. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/__init__.py +0 -0
  186. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/auth.py +0 -0
  187. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/crypto.py +0 -0
  188. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/datetime.py +0 -0
  189. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/errors.py +0 -0
  190. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/fileio.py +0 -0
  191. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/gui.py +0 -0
  192. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/mail.py +0 -0
  193. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/numeric.py +0 -0
  194. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/regex.py +0 -0
  195. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/strings.py +0 -0
  196. {execsql2-2.4.5 → execsql2-2.6.0}/src/execsql/utils/timer.py +0 -0
  197. {execsql2-2.4.5 → execsql2-2.6.0}/templates/README.md +0 -0
  198. {execsql2-2.4.5 → execsql2-2.6.0}/templates/config_settings.sqlite +0 -0
  199. {execsql2-2.4.5 → execsql2-2.6.0}/templates/example_config_prompt.sql +0 -0
  200. {execsql2-2.4.5 → execsql2-2.6.0}/templates/execsql.conf +0 -0
  201. {execsql2-2.4.5 → execsql2-2.6.0}/templates/make_config_db.sql +0 -0
  202. {execsql2-2.4.5 → execsql2-2.6.0}/templates/md_compare.sql +0 -0
  203. {execsql2-2.4.5 → execsql2-2.6.0}/templates/md_glossary.sql +0 -0
  204. {execsql2-2.4.5 → execsql2-2.6.0}/templates/md_upsert.sql +0 -0
  205. {execsql2-2.4.5 → execsql2-2.6.0}/templates/pg_compare.sql +0 -0
  206. {execsql2-2.4.5 → execsql2-2.6.0}/templates/pg_glossary.sql +0 -0
  207. {execsql2-2.4.5 → execsql2-2.6.0}/templates/pg_upsert.sql +0 -0
  208. {execsql2-2.4.5 → execsql2-2.6.0}/templates/script_template.sql +0 -0
  209. {execsql2-2.4.5 → execsql2-2.6.0}/templates/ss_compare.sql +0 -0
  210. {execsql2-2.4.5 → execsql2-2.6.0}/templates/ss_glossary.sql +0 -0
  211. {execsql2-2.4.5 → execsql2-2.6.0}/templates/ss_upsert.sql +0 -0
  212. {execsql2-2.4.5 → execsql2-2.6.0}/tests/__init__.py +0 -0
  213. {execsql2-2.4.5/tests/db → execsql2-2.6.0/tests/cli}/__init__.py +0 -0
  214. {execsql2-2.4.5/tests → execsql2-2.6.0/tests/cli}/test_cli.py +0 -0
  215. {execsql2-2.4.5/tests → execsql2-2.6.0/tests/cli}/test_cli_run.py +0 -0
  216. {execsql2-2.4.5 → execsql2-2.6.0}/tests/conftest.py +0 -0
  217. {execsql2-2.4.5/tests/exporters → execsql2-2.6.0/tests/db}/__init__.py +0 -0
  218. {execsql2-2.4.5 → execsql2-2.6.0}/tests/db/test_duckdb.py +0 -0
  219. {execsql2-2.4.5 → execsql2-2.6.0}/tests/db/test_factory.py +0 -0
  220. {execsql2-2.4.5 → execsql2-2.6.0}/tests/db/test_postgres.py +0 -0
  221. {execsql2-2.4.5 → execsql2-2.6.0}/tests/db/test_sqlite.py +0 -0
  222. {execsql2-2.4.5 → execsql2-2.6.0}/tests/db/test_sqlite_extra.py +0 -0
  223. {execsql2-2.4.5/tests/gui → execsql2-2.6.0/tests/exporters}/__init__.py +0 -0
  224. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_base.py +0 -0
  225. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_db.py +0 -0
  226. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_duckdb_exporter.py +0 -0
  227. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_exporters.py +0 -0
  228. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_feather.py +0 -0
  229. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_html_latex.py +0 -0
  230. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_json.py +0 -0
  231. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_ods.py +0 -0
  232. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_parquet.py +0 -0
  233. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_sqlite_exporter.py +0 -0
  234. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_templates.py +0 -0
  235. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_xls_xlsx.py +0 -0
  236. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_xml.py +0 -0
  237. {execsql2-2.4.5 → execsql2-2.6.0}/tests/exporters/test_zip.py +0 -0
  238. {execsql2-2.4.5/tests/importers → execsql2-2.6.0/tests/gui}/__init__.py +0 -0
  239. {execsql2-2.4.5 → execsql2-2.6.0}/tests/gui/test_backends.py +0 -0
  240. {execsql2-2.4.5/tests/integration → execsql2-2.6.0/tests/importers}/__init__.py +0 -0
  241. {execsql2-2.4.5 → execsql2-2.6.0}/tests/importers/test_csv_importer.py +0 -0
  242. {execsql2-2.4.5 → execsql2-2.6.0}/tests/importers/test_feather_importer.py +0 -0
  243. {execsql2-2.4.5 → execsql2-2.6.0}/tests/importers/test_ods_importer.py +0 -0
  244. {execsql2-2.4.5 → execsql2-2.6.0}/tests/importers/test_xls_importer.py +0 -0
  245. {execsql2-2.4.5/tests/metacommands → execsql2-2.6.0/tests/integration}/__init__.py +0 -0
  246. {execsql2-2.4.5 → execsql2-2.6.0}/tests/integration/conftest.py +0 -0
  247. {execsql2-2.4.5 → execsql2-2.6.0}/tests/integration/test_dsn.py +0 -0
  248. {execsql2-2.4.5 → execsql2-2.6.0}/tests/integration/test_duckdb.py +0 -0
  249. {execsql2-2.4.5 → execsql2-2.6.0}/tests/integration/test_mysql.py +0 -0
  250. {execsql2-2.4.5 → execsql2-2.6.0}/tests/integration/test_postgres.py +0 -0
  251. {execsql2-2.4.5 → execsql2-2.6.0}/tests/integration/test_sqlite.py +0 -0
  252. {execsql2-2.4.5/tests/utils → execsql2-2.6.0/tests/metacommands}/__init__.py +0 -0
  253. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands.py +0 -0
  254. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_connect.py +0 -0
  255. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_data.py +0 -0
  256. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_extended.py +0 -0
  257. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_fileops_extra.py +0 -0
  258. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_io.py +0 -0
  259. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_io_write_extra.py +0 -0
  260. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_script_ext.py +0 -0
  261. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_system.py +0 -0
  262. {execsql2-2.4.5 → execsql2-2.6.0}/tests/metacommands/test_metacommands_system_extra.py +0 -0
  263. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_config.py +0 -0
  264. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_config_data.py +0 -0
  265. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_constants.py +0 -0
  266. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_exceptions.py +0 -0
  267. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_format.py +0 -0
  268. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_mail.py +0 -0
  269. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_models.py +0 -0
  270. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_package.py +0 -0
  271. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_parser.py +0 -0
  272. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_registry.py +0 -0
  273. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_script.py +0 -0
  274. {execsql2-2.4.5 → execsql2-2.6.0}/tests/test_types.py +0 -0
  275. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_auth.py +0 -0
  276. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_auth_extra.py +0 -0
  277. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_crypto.py +0 -0
  278. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_datetime.py +0 -0
  279. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_errors.py +0 -0
  280. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_errors_extra.py +0 -0
  281. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_fileio.py +0 -0
  282. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_fileio_extra.py +0 -0
  283. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_numeric.py +0 -0
  284. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_regex.py +0 -0
  285. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_strings.py +0 -0
  286. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_timer.py +0 -0
  287. {execsql2-2.4.5 → execsql2-2.6.0}/tests/utils/test_timer_extra.py +0 -0
@@ -2,6 +2,7 @@
2
2
  name: The DBA
3
3
  description: Central dispatcher and orchestrator of the SQL Syndicate
4
4
  model: sonnet
5
+ color: yellow
5
6
  ---
6
7
 
7
8
  You are **The DBA**, the dispatcher and orchestrator of the SQL Syndicate. Your mission is to coordinate a team of specialized agents to improve, extend, debug, and maintain the execsql2 codebase — efficiently and correctly.
@@ -1,6 +1,9 @@
1
- ______________________________________________________________________
2
-
3
- ## name: The Herald description: Release manager for execsql2 — maintains CHANGELOG.md, manages version bumps, release notes, and CI health. Reads git history and staged changes to write accurate, user-facing changelog entries. model: sonnet color: orange
1
+ ---
2
+ name: The Herald
3
+ description: Release manager for execsql2 — maintains CHANGELOG.md, manages version bumps, release notes, and CI health.
4
+ model: sonnet
5
+ color: orange
6
+ ---
4
7
 
5
8
  You are the release steward for execsql2. Your job is to keep `CHANGELOG.md` accurate, consistent, and useful to end users, manage version bumps, and ensure CI health.
6
9
 
@@ -1,6 +1,9 @@
1
- ______________________________________________________________________
2
-
3
- ## name: The Inspector description: Reviews execsql2 code changes for correctness, migration accuracy, ruff compliance, test adequacy, security, and architectural consistency. Read-only — produces a prioritized findings report, never edits files. model: sonnet color: red
1
+ ---
2
+ name: The Inspector
3
+ description: Reviews execsql2 code changes for correctness, migration accuracy, ruff compliance, test adequacy, security, and architectural consistency. Read-only — produces a prioritized findings report, never edits files.
4
+ model: sonnet
5
+ color: red
6
+ ---
4
7
 
5
8
  You are a senior code reviewer for the execsql2 project. You review code with high standards: correctness, maintainability, security, and fidelity to both the original monolith's behavior and the project's conventions.
6
9
 
@@ -63,7 +66,7 @@ You are a senior code reviewer for the execsql2 project. You review code with hi
63
66
  ### Documentation
64
67
 
65
68
  - [ ] New public API is documented in `docs/`
66
- - [ ] New metacommands are documented in `docs/metacommands.md`
69
+ - [ ] New metacommands are documented in `docs/reference/metacommands.md`
67
70
  - [ ] `CHANGELOG.md` entry added for user-visible changes
68
71
 
69
72
  ## Findings Format
@@ -1,6 +1,9 @@
1
- ______________________________________________________________________
2
-
3
- ## name: The Oracle description: Expert navigator of both the execsql monolith and the modular src/execsql/ codebase. Answers architectural, structural, and behavioral questions with precise file paths, line numbers, call chains, and design rationale. Read-only — never modifies files. model: sonnet color: cyan
1
+ ---
2
+ name: The Oracle
3
+ description: Expert navigator of both the execsql monolith and the modular src/execsql/ codebase. Answers architectural, structural, and behavioral questions with precise file paths, line numbers, call chains, and design rationale. Read-only — never modifies files.
4
+ model: sonnet
5
+ color: cyan
6
+ ---
4
7
 
5
8
  You are a senior Python engineer and data systems expert embedded in the execsql2 project. Your role is to answer any technical question about the codebase with precision — exact file locations, line numbers, call chains, and the reasoning behind design decisions.
6
9
 
@@ -1,6 +1,9 @@
1
- ______________________________________________________________________
2
-
3
- ## name: The Patcher description: Implementation specialist — writes production code for execsql2. Handles new features, bug fixes, refactors, and monolith migration. Produces idiomatic Python 3.10+ code following all project conventions. model: sonnet color: green
1
+ ---
2
+ name: The Patcher
3
+ description: Implementation specialist — writes production code for execsql2. Handles new features, bug fixes, refactors, and monolith migration. Produces idiomatic Python 3.10+ code following all project conventions.
4
+ model: sonnet
5
+ color: green
6
+ ---
4
7
 
5
8
  You are a senior Python engineer who writes clean, correct, maintainable code for the execsql2 project. You handle new features, bug fixes, refactors, and migration from the monolith (`_execsql/execsql.py`) to the modular `src/execsql/` structure.
6
9
 
@@ -1,6 +1,9 @@
1
- ______________________________________________________________________
2
-
3
- ## name: The QA description: Writes comprehensive pytest tests for execsql modules. Understands existing fixtures, test patterns, and coverage goals. Reads the module under test and existing tests before writing anything new. model: sonnet color: blue
1
+ ---
2
+ name: The QA
3
+ description: Writes comprehensive pytest tests for execsql modules. Understands existing fixtures, test patterns, and coverage goals. Reads the module under test and existing tests before writing anything new.
4
+ model: sonnet
5
+ color: blue
6
+ ---
4
7
 
5
8
  You are a senior Python test engineer who writes thorough, meaningful pytest test suites for the execsql2 project. You write tests that catch real bugs, document behavior, and give future maintainers confidence when making changes.
6
9