sqlew 3.2.5 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/CHANGELOG.md +288 -1011
  2. package/README.md +80 -263
  3. package/assets/config.example.toml +97 -0
  4. package/assets/schema.sql +6 -1
  5. package/dist/adapters/index.d.ts +11 -0
  6. package/dist/adapters/index.d.ts.map +1 -0
  7. package/dist/adapters/index.js +21 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/adapters/mysql-adapter.d.ts +31 -0
  10. package/dist/adapters/mysql-adapter.d.ts.map +1 -0
  11. package/dist/adapters/mysql-adapter.js +63 -0
  12. package/dist/adapters/mysql-adapter.js.map +1 -0
  13. package/dist/adapters/postgresql-adapter.d.ts +31 -0
  14. package/dist/adapters/postgresql-adapter.d.ts.map +1 -0
  15. package/dist/adapters/postgresql-adapter.js +63 -0
  16. package/dist/adapters/postgresql-adapter.js.map +1 -0
  17. package/dist/adapters/sqlite-adapter.d.ts +37 -0
  18. package/dist/adapters/sqlite-adapter.d.ts.map +1 -0
  19. package/dist/adapters/sqlite-adapter.js +129 -0
  20. package/dist/adapters/sqlite-adapter.js.map +1 -0
  21. package/dist/adapters/types.d.ts +33 -0
  22. package/dist/adapters/types.d.ts.map +1 -0
  23. package/dist/adapters/types.js +2 -0
  24. package/dist/adapters/types.js.map +1 -0
  25. package/dist/cli.js +55 -54
  26. package/dist/cli.js.map +1 -1
  27. package/dist/config/example-generator.d.ts +11 -0
  28. package/dist/config/example-generator.d.ts.map +1 -0
  29. package/dist/config/example-generator.js +48 -0
  30. package/dist/config/example-generator.js.map +1 -0
  31. package/dist/config/loader.d.ts +46 -0
  32. package/dist/config/loader.d.ts.map +1 -0
  33. package/dist/config/loader.js +155 -0
  34. package/dist/config/loader.js.map +1 -0
  35. package/dist/config/types.d.ts +86 -0
  36. package/dist/config/types.d.ts.map +1 -0
  37. package/dist/config/types.js +28 -0
  38. package/dist/config/types.js.map +1 -0
  39. package/dist/constants.d.ts +9 -0
  40. package/dist/constants.d.ts.map +1 -1
  41. package/dist/constants.js +10 -0
  42. package/dist/constants.js.map +1 -1
  43. package/dist/database.d.ts +44 -122
  44. package/dist/database.d.ts.map +1 -1
  45. package/dist/database.js +145 -349
  46. package/dist/database.js.map +1 -1
  47. package/dist/index.js +223 -175
  48. package/dist/index.js.map +1 -1
  49. package/dist/knexfile.d.ts +6 -0
  50. package/dist/knexfile.d.ts.map +1 -0
  51. package/dist/knexfile.js +85 -0
  52. package/dist/knexfile.js.map +1 -0
  53. package/dist/migrations/add-help-system-tables.d.ts +35 -0
  54. package/dist/migrations/add-help-system-tables.d.ts.map +1 -0
  55. package/dist/migrations/add-help-system-tables.js +206 -0
  56. package/dist/migrations/add-help-system-tables.js.map +1 -0
  57. package/dist/migrations/add-token-tracking.d.ts +28 -0
  58. package/dist/migrations/add-token-tracking.d.ts.map +1 -0
  59. package/dist/migrations/add-token-tracking.js +108 -0
  60. package/dist/migrations/add-token-tracking.js.map +1 -0
  61. package/dist/migrations/add-v3.5.0-pruned-files.d.ts +26 -0
  62. package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +1 -0
  63. package/dist/migrations/add-v3.5.0-pruned-files.js +107 -0
  64. package/dist/migrations/add-v3.5.0-pruned-files.js.map +1 -0
  65. package/dist/migrations/index.d.ts +26 -12
  66. package/dist/migrations/index.d.ts.map +1 -1
  67. package/dist/migrations/index.js +162 -20
  68. package/dist/migrations/index.js.map +1 -1
  69. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts +4 -0
  70. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +1 -0
  71. package/dist/migrations/knex/20251025020452_create_master_tables.js +65 -0
  72. package/dist/migrations/knex/20251025020452_create_master_tables.js.map +1 -0
  73. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts +4 -0
  74. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +1 -0
  75. package/dist/migrations/knex/20251025021152_create_transaction_tables.js +235 -0
  76. package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +1 -0
  77. package/dist/migrations/knex/20251025021351_create_indexes.d.ts +4 -0
  78. package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +1 -0
  79. package/dist/migrations/knex/20251025021351_create_indexes.js +62 -0
  80. package/dist/migrations/knex/20251025021351_create_indexes.js.map +1 -0
  81. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts +4 -0
  82. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +1 -0
  83. package/dist/migrations/knex/20251025021416_seed_master_data.js +58 -0
  84. package/dist/migrations/knex/20251025021416_seed_master_data.js.map +1 -0
  85. package/dist/migrations/knex/20251025070349_create_views.d.ts +4 -0
  86. package/dist/migrations/knex/20251025070349_create_views.d.ts.map +1 -0
  87. package/dist/migrations/knex/20251025070349_create_views.js +143 -0
  88. package/dist/migrations/knex/20251025070349_create_views.js.map +1 -0
  89. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts +4 -0
  90. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  91. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js +15 -0
  92. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  93. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts +8 -0
  94. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  95. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js +12 -0
  96. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  97. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts +19 -0
  98. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +1 -0
  99. package/dist/migrations/knex/20251025090000_create_help_system_tables.js +115 -0
  100. package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +1 -0
  101. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts +13 -0
  102. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  103. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js +377 -0
  104. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  105. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts +15 -0
  106. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +1 -0
  107. package/dist/migrations/knex/20251025100000_seed_help_metadata.js +253 -0
  108. package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +1 -0
  109. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts +16 -0
  110. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  111. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js +276 -0
  112. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +1 -0
  113. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts +8 -0
  114. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  115. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js +64 -0
  116. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  117. package/dist/migrations/seed-help-data.d.ts +48 -0
  118. package/dist/migrations/seed-help-data.d.ts.map +1 -0
  119. package/dist/migrations/seed-help-data.js +1466 -0
  120. package/dist/migrations/seed-help-data.js.map +1 -0
  121. package/dist/migrations/seed-tool-metadata.d.ts +24 -0
  122. package/dist/migrations/seed-tool-metadata.d.ts.map +1 -0
  123. package/dist/migrations/seed-tool-metadata.js +392 -0
  124. package/dist/migrations/seed-tool-metadata.js.map +1 -0
  125. package/dist/migrations/v3.6.0-help-system-refactor.d.ts +46 -0
  126. package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +1 -0
  127. package/dist/migrations/v3.6.0-help-system-refactor.js +223 -0
  128. package/dist/migrations/v3.6.0-help-system-refactor.js.map +1 -0
  129. package/dist/schema.d.ts.map +1 -1
  130. package/dist/schema.js +2 -0
  131. package/dist/schema.js.map +1 -1
  132. package/dist/tests/git-aware-completion.test.d.ts +6 -0
  133. package/dist/tests/git-aware-completion.test.d.ts.map +1 -0
  134. package/dist/tests/git-aware-completion.test.js +160 -0
  135. package/dist/tests/git-aware-completion.test.js.map +1 -0
  136. package/dist/tests/help-system.test.d.ts +23 -0
  137. package/dist/tests/help-system.test.d.ts.map +1 -0
  138. package/dist/tests/help-system.test.js +374 -0
  139. package/dist/tests/help-system.test.js.map +1 -0
  140. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts +6 -0
  141. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts.map +1 -0
  142. package/dist/tests/tasks.auto-pruning-decision-link.test.js +264 -0
  143. package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -0
  144. package/dist/tests/tasks.auto-pruning-partial.test.d.ts +6 -0
  145. package/dist/tests/tasks.auto-pruning-partial.test.d.ts.map +1 -0
  146. package/dist/tests/tasks.auto-pruning-partial.test.js +285 -0
  147. package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -0
  148. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts +6 -0
  149. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts.map +1 -0
  150. package/dist/tests/tasks.auto-pruning-persistence.test.js +250 -0
  151. package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -0
  152. package/dist/tests/tasks.auto-pruning-safety.test.d.ts +12 -0
  153. package/dist/tests/tasks.auto-pruning-safety.test.d.ts.map +1 -0
  154. package/dist/tests/tasks.auto-pruning-safety.test.js +217 -0
  155. package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -0
  156. package/dist/tests/tasks.dependencies.test.js +338 -307
  157. package/dist/tests/tasks.dependencies.test.js.map +1 -1
  158. package/dist/tests/tasks.link-file-backward-compat.test.d.ts +6 -0
  159. package/dist/tests/tasks.link-file-backward-compat.test.d.ts.map +1 -0
  160. package/dist/tests/tasks.link-file-backward-compat.test.js +247 -0
  161. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -0
  162. package/dist/tests/tasks.watch-files-action.test.d.ts +6 -0
  163. package/dist/tests/tasks.watch-files-action.test.d.ts.map +1 -0
  164. package/dist/tests/tasks.watch-files-action.test.js +372 -0
  165. package/dist/tests/tasks.watch-files-action.test.js.map +1 -0
  166. package/dist/tests/tasks.watch-files-parameter.test.d.ts +6 -0
  167. package/dist/tests/tasks.watch-files-parameter.test.d.ts.map +1 -0
  168. package/dist/tests/tasks.watch-files-parameter.test.js +260 -0
  169. package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -0
  170. package/dist/tests/two-step-git-completion.test.d.ts +6 -0
  171. package/dist/tests/two-step-git-completion.test.d.ts.map +1 -0
  172. package/dist/tests/two-step-git-completion.test.js +326 -0
  173. package/dist/tests/two-step-git-completion.test.js.map +1 -0
  174. package/dist/tests/vcs-staging.test.d.ts +6 -0
  175. package/dist/tests/vcs-staging.test.d.ts.map +1 -0
  176. package/dist/tests/vcs-staging.test.js +137 -0
  177. package/dist/tests/vcs-staging.test.js.map +1 -0
  178. package/dist/tools/config.d.ts +9 -4
  179. package/dist/tools/config.d.ts.map +1 -1
  180. package/dist/tools/config.js +16 -12
  181. package/dist/tools/config.js.map +1 -1
  182. package/dist/tools/constraints.d.ts +9 -3
  183. package/dist/tools/constraints.d.ts.map +1 -1
  184. package/dist/tools/constraints.js +66 -45
  185. package/dist/tools/constraints.js.map +1 -1
  186. package/dist/tools/context.d.ts +35 -16
  187. package/dist/tools/context.d.ts.map +1 -1
  188. package/dist/tools/context.js +374 -314
  189. package/dist/tools/context.js.map +1 -1
  190. package/dist/tools/files.d.ts +11 -4
  191. package/dist/tools/files.d.ts.map +1 -1
  192. package/dist/tools/files.js +173 -91
  193. package/dist/tools/files.js.map +1 -1
  194. package/dist/tools/help-queries.d.ts +130 -0
  195. package/dist/tools/help-queries.d.ts.map +1 -0
  196. package/dist/tools/help-queries.js +393 -0
  197. package/dist/tools/help-queries.js.map +1 -0
  198. package/dist/tools/messaging.d.ts +13 -6
  199. package/dist/tools/messaging.d.ts.map +1 -1
  200. package/dist/tools/messaging.js +217 -129
  201. package/dist/tools/messaging.js.map +1 -1
  202. package/dist/tools/tasks.d.ts +42 -12
  203. package/dist/tools/tasks.d.ts.map +1 -1
  204. package/dist/tools/tasks.js +809 -347
  205. package/dist/tools/tasks.js.map +1 -1
  206. package/dist/tools/utils.d.ts +13 -5
  207. package/dist/tools/utils.d.ts.map +1 -1
  208. package/dist/tools/utils.js +92 -115
  209. package/dist/tools/utils.js.map +1 -1
  210. package/dist/types.d.ts +4 -0
  211. package/dist/types.d.ts.map +1 -1
  212. package/dist/utils/activity-logging.d.ts +114 -0
  213. package/dist/utils/activity-logging.d.ts.map +1 -0
  214. package/dist/utils/activity-logging.js +162 -0
  215. package/dist/utils/activity-logging.js.map +1 -0
  216. package/dist/utils/batch.d.ts +2 -2
  217. package/dist/utils/batch.d.ts.map +1 -1
  218. package/dist/utils/batch.js +8 -8
  219. package/dist/utils/batch.js.map +1 -1
  220. package/dist/utils/cleanup.d.ts +21 -13
  221. package/dist/utils/cleanup.d.ts.map +1 -1
  222. package/dist/utils/cleanup.js +31 -24
  223. package/dist/utils/cleanup.js.map +1 -1
  224. package/dist/utils/debug-logger.d.ts +44 -0
  225. package/dist/utils/debug-logger.d.ts.map +1 -0
  226. package/dist/utils/debug-logger.js +116 -0
  227. package/dist/utils/debug-logger.js.map +1 -0
  228. package/dist/utils/file-pruning.d.ts +69 -0
  229. package/dist/utils/file-pruning.d.ts.map +1 -0
  230. package/dist/utils/file-pruning.js +185 -0
  231. package/dist/utils/file-pruning.js.map +1 -0
  232. package/dist/utils/help-tracking.d.ts +55 -0
  233. package/dist/utils/help-tracking.d.ts.map +1 -0
  234. package/dist/utils/help-tracking.js +88 -0
  235. package/dist/utils/help-tracking.js.map +1 -0
  236. package/dist/utils/quality-checks.d.ts +60 -0
  237. package/dist/utils/quality-checks.d.ts.map +1 -0
  238. package/dist/utils/quality-checks.js +228 -0
  239. package/dist/utils/quality-checks.js.map +1 -0
  240. package/dist/utils/retention.d.ts +13 -5
  241. package/dist/utils/retention.d.ts.map +1 -1
  242. package/dist/utils/retention.js +20 -8
  243. package/dist/utils/retention.js.map +1 -1
  244. package/dist/utils/task-stale-detection.d.ts +77 -7
  245. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  246. package/dist/utils/task-stale-detection.js +309 -34
  247. package/dist/utils/task-stale-detection.js.map +1 -1
  248. package/dist/utils/token-estimation.d.ts +72 -0
  249. package/dist/utils/token-estimation.d.ts.map +1 -0
  250. package/dist/utils/token-estimation.js +71 -0
  251. package/dist/utils/token-estimation.js.map +1 -0
  252. package/dist/utils/token-logging.d.ts +48 -0
  253. package/dist/utils/token-logging.d.ts.map +1 -0
  254. package/dist/utils/token-logging.js +112 -0
  255. package/dist/utils/token-logging.js.map +1 -0
  256. package/dist/utils/vcs-adapter.d.ts +68 -0
  257. package/dist/utils/vcs-adapter.d.ts.map +1 -0
  258. package/dist/utils/vcs-adapter.js +187 -0
  259. package/dist/utils/vcs-adapter.js.map +1 -0
  260. package/dist/utils/view-queries.d.ts +34 -0
  261. package/dist/utils/view-queries.d.ts.map +1 -0
  262. package/dist/utils/view-queries.js +192 -0
  263. package/dist/utils/view-queries.js.map +1 -0
  264. package/dist/watcher/file-watcher.d.ts +54 -4
  265. package/dist/watcher/file-watcher.d.ts.map +1 -1
  266. package/dist/watcher/file-watcher.js +329 -33
  267. package/dist/watcher/file-watcher.js.map +1 -1
  268. package/dist/watcher/gitignore-parser.d.ts +70 -0
  269. package/dist/watcher/gitignore-parser.d.ts.map +1 -0
  270. package/dist/watcher/gitignore-parser.js +191 -0
  271. package/dist/watcher/gitignore-parser.js.map +1 -0
  272. package/dist/watcher/index.d.ts +1 -0
  273. package/dist/watcher/index.d.ts.map +1 -1
  274. package/dist/watcher/index.js +1 -0
  275. package/dist/watcher/index.js.map +1 -1
  276. package/docs/AI_AGENT_GUIDE.md +1 -1
  277. package/docs/ARCHITECTURE.md +12 -0
  278. package/docs/AUTO_FILE_TRACKING.md +486 -82
  279. package/docs/BEST_PRACTICES.md +56 -448
  280. package/docs/CONFIGURATION.md +908 -0
  281. package/docs/GIT_AWARE_AUTO_COMPLETE.md +645 -0
  282. package/docs/MIGRATION_v3.3.md +602 -0
  283. package/docs/MIGRATION_v3.6.0.md +170 -0
  284. package/docs/SHARED_CONCEPTS.md +65 -209
  285. package/docs/TASK_ACTIONS.md +12 -0
  286. package/docs/TASK_OVERVIEW.md +125 -24
  287. package/docs/TASK_PRUNING.md +589 -0
  288. package/docs/TASK_SYSTEM.md +83 -13
  289. package/docs/TOOL_REFERENCE.md +94 -6
  290. package/docs/TOOL_SELECTION.md +41 -248
  291. package/package.json +21 -7
package/README.md CHANGED
@@ -8,74 +8,37 @@
8
8
 
9
9
  ## What is sqlew?
10
10
 
11
- **sqlew** is a Model Context Protocol (MCP) server that gives AI agents organizational memory. It solves a critical problem: **AI agents can't remember decisions across sessions**.
11
+ **sqlew** is a Model Context Protocol (MCP) server that gives AI agents organizational memory across sessions.
12
12
 
13
- ### The Problem
13
+ **The Problem:** Without sqlew, every Claude session starts with zero context. You must re-explain decisions, agents can reintroduce bugs, and there's no way to track WHY decisions were made.
14
14
 
15
- Without sqlew:
16
- - 🔴 Every new Claude session starts with zero context
17
- - 🔴 Must re-explain architectural decisions every time
18
- - 🔴 Agents can reintroduce bugs that were already fixed
19
- - 🔴 No way to track WHY decisions were made
15
+ **The Solution:** sqlew lets agents remember decisions, query past context, prevent regressions with constraints, and coordinate via messaging and tasks.
20
16
 
21
- ### The Solution
22
-
23
- With sqlew, AI agents can:
24
- - ✅ **Remember** architectural decisions across sessions
25
- - ✅ **Query** past context: "What breaking changes were made to the API?"
26
- - ✅ **Prevent** regressions by storing constraints: "Duration must NOT occur in Loom module"
27
- - ✅ **Coordinate** between multiple agents with messaging and task tracking
28
-
29
- **Real-World Example:**
30
- ```typescript
31
- // Agent in Session 1 records:
32
- {
33
- key: "api_v1_deprecated",
34
- value: "/v1/users endpoint deprecated, use /v2/users",
35
- tags: ["api", "breaking-change"]
36
- }
37
-
38
- // Agent in Session 2 (days later) queries:
39
- "What API changes should I know about?"
40
- → Finds the deprecation decision
41
- → Uses /v2/users endpoint automatically!
42
- ```
17
+ **Example:** Session 1 records "API v1 deprecated". Session 2 (days later) queries and automatically uses v2.
43
18
 
44
19
  ## Why Use sqlew?
45
20
 
46
21
  ### 🧠 Organizational Memory
47
- Traditional code only tells you **WHAT** and **HOW**. sqlew adds **WHY**:
48
- - Git history WHAT changed
49
- - Code comments HOW it works
50
- - **sqlew decisions** → **WHY** it was changed
51
- - **sqlew constraints** → **WHY** it must work this way
22
+ Traditional code tells you **WHAT** and **HOW**. sqlew adds **WHY**:
23
+ - **Decisions**WHY it was changed
24
+ - **Constraints**WHY it must work this way
52
25
 
53
26
  ### ⚡ Token Efficiency
54
- **60-75% token reduction** in multi-session projects:
55
- - Store decisions once, query selectively
56
- - Structured data (20-30 tokens) vs prose (50-200 tokens)
57
- - Cross-session persistence eliminates context re-explanation
27
+ **60-75% token reduction** in multi-session projects through structured data storage and selective querying.
58
28
 
59
29
  ### 🎯 Key Features
60
30
  - **7 Specialized Tools**: decisions, messages, tasks, files, constraints, stats, config
61
31
  - **Metadata-Driven**: Tag, layer, scope, and version everything
62
- - **Decision Context** (v3.2.2): Rich decision documentation with rationale and trade-offs
63
- - Document **WHY** decisions were made, not just **WHAT**
64
- - Store alternatives considered and pros/cons analysis
65
- - Perfect for multi-session AI development and team handoffs
66
- - Link decisions to tasks and constraints for full traceability
67
- - **Task Dependencies** (v3.2.0): Blocking relationships with circular detection
68
- - Sequential workflow management (API before UI, DB before ORM)
69
- - Bidirectional queries (find blockers and blocking tasks)
70
- - Token-efficient metadata-only queries (~88% reduction)
71
- - **Auto-File Tracking** (v3.0.2): Zero-token task management via automatic file watching
72
- - Auto-transition: `todo` → `in_progress` on file edit
73
- - Auto-complete: `in_progress` → `done` when acceptance criteria pass
74
- - 97% token reduction (4,650 tokens saved per 6-task session)
75
- - **Auto-Stale Detection**: Tasks automatically transition when idle
76
- - **Weekend-Aware Cleanup**: Smart retention that pauses during weekends
32
+ - **Decision Context**: Document WHY with rationale, alternatives, and trade-offs
33
+ - **Task Dependencies**: Blocking relationships with circular detection
34
+ - **Auto-File Tracking**: Zero-token task management via file watching
35
+ - **Smart Review Detection**: Quality-based auto-transition to `waiting_review`
36
+ - **Auto-Stale Detection**: Tasks auto-transition when idle
37
+ - **Weekend-Aware Cleanup**: Smart retention during weekends
77
38
  - **Batch Operations**: Process up to 50 items atomically
78
39
 
40
+ See [docs/TASK_OVERVIEW.md](docs/TASK_OVERVIEW.md) and [docs/DECISION_CONTEXT.md](docs/DECISION_CONTEXT.md) for details.
41
+
79
42
  ### 🔖Kanban-style AI Scrum
80
43
  ![kanban-style task management](assets/kanban-style.png)
81
44
 
@@ -106,63 +69,46 @@ Edit `claude_desktop_config.json`:
106
69
  }
107
70
  ```
108
71
 
109
- That's it! Restart Claude Desktop and sqlew is ready.
72
+ Restart Claude Desktop. Done!
110
73
 
111
- ### Custom Database Path (Optional)
74
+ **Custom database path:** Add path as argument: `"args": ["sqlew", "/path/to/db.db"]`
75
+ **Default location:** `.sqlew/sqlew.db`
112
76
 
113
- ```json
114
- {
115
- "mcpServers": {
116
- "sqlew": {
117
- "command": "npx",
118
- "args": ["sqlew", "/path/to/database.db"]
119
- }
120
- }
121
- }
122
- ```
77
+ ## Configuration
123
78
 
124
- Default location: `.sqlew/sqlew.db` in current directory
79
+ ### Optional Config File
125
80
 
126
- ## Quick Start
81
+ Create `.sqlew/config.toml` for persistent settings:
127
82
 
128
- ### For AI Agents
83
+ ```toml
84
+ [database]
85
+ path = ".sqlew/custom.db"
129
86
 
130
- ⚠️ **Most Important Rule**: ALWAYS include the `action` parameter in every tool call.
87
+ [autodelete]
88
+ ignore_weekend = true
89
+ message_hours = 48
90
+ ```
131
91
 
132
- ```javascript
133
- // ❌ WRONG
134
- {key: "auth_method", value: "jwt"}
92
+ **Priority:** CLI args > config.toml > database defaults
135
93
 
136
- // CORRECT
137
- {action: "set", key: "auth_method", value: "jwt", layer: "business"}
138
- ```
94
+ See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for all options and validation rules.
95
+
96
+ ## Quick Start
139
97
 
140
98
  ### Basic Usage
141
99
 
100
+ All tools require an `action` parameter. Example:
101
+
142
102
  ```javascript
143
103
  // Store a decision
144
- {
145
- action: "set",
146
- key: "auth_method",
147
- value: "JWT with refresh tokens",
148
- layer: "business",
149
- tags: ["authentication", "security"]
150
- }
104
+ {action: "set", key: "auth_method", value: "JWT", layer: "business", tags: ["security"]}
151
105
 
152
- // Query it later
153
- {
154
- action: "get",
155
- key: "auth_method"
156
- }
157
-
158
- // Search by tags
159
- {
160
- action: "search_tags",
161
- tags: ["security"],
162
- status: "active"
163
- }
106
+ // Query later
107
+ {action: "get", key: "auth_method"}
164
108
  ```
165
109
 
110
+ For detailed examples, see [docs/TOOL_REFERENCE.md](docs/TOOL_REFERENCE.md).
111
+
166
112
  ### Available Tools
167
113
 
168
114
  | Tool | Purpose | Example Use |
@@ -181,155 +127,49 @@ Each tool supports `action: "help"` for full documentation and `action: "example
181
127
 
182
128
  ### On-Demand Documentation
183
129
 
184
- **All tools provide built-in documentation with zero upfront token cost:**
185
- - `action: "help"` - Detailed parameter reference, action descriptions, examples
186
- - `action: "example"` - Comprehensive usage scenarios, workflows, best practices
130
+ All tools support:
131
+ - `action: "help"` - Parameter reference and descriptions
132
+ - `action: "example"` - Usage scenarios and examples
187
133
 
188
- **Example:**
189
- ```javascript
190
- // Get detailed help for decision tool
191
- {action: "help"}
192
-
193
- // Get comprehensive examples for task tool
194
- {action: "example"}
195
- ```
196
-
197
- ### For AI Agents (68% Token Reduction)
134
+ ### For AI Agents
198
135
 
199
- **Tool Selection & Workflows:**
200
- - 📖 **[Tool Selection](docs/TOOL_SELECTION.md)** - Decision tree, when to use each tool (236 lines, ~12k tokens)
201
- - 🔄 **[Workflows](docs/WORKFLOWS.md)** - Multi-step examples, multi-agent coordination (602 lines, ~30k tokens)
202
- - 📚 **[Tool Reference](docs/TOOL_REFERENCE.md)** - Parameters, batch operations, templates (471 lines, ~24k tokens)
203
- - ✅ **[Best Practices](docs/BEST_PRACTICES.md)** - Common errors, troubleshooting (345 lines, ~17k tokens)
136
+ **Essential Guides:**
137
+ - [Tool Selection](docs/TOOL_SELECTION.md) - Decision tree, when to use each tool
138
+ - [Workflows](docs/WORKFLOWS.md) - Multi-step examples, multi-agent coordination
139
+ - [Tool Reference](docs/TOOL_REFERENCE.md) - Parameters, batch operations, templates
140
+ - [Best Practices](docs/BEST_PRACTICES.md) - Common errors, troubleshooting
204
141
 
205
142
  **Task System:**
206
- - 📋 **[Task Overview](docs/TASK_OVERVIEW.md)** - Lifecycle, status transitions, auto-stale (363 lines, ~10k tokens)
207
- - ⚙️ **[Task Actions](docs/TASK_ACTIONS.md)** - All actions with examples (1,100+ lines, ~28k tokens)
208
- - 🔗 **[Task Dependencies](docs/TASK_DEPENDENCIES.md)** - Blocking relationships, circular detection (500+ lines, ~13k tokens) **NEW v3.2.0**
209
- - 🔗 **[Task Linking](docs/TASK_LINKING.md)** - Link tasks to decisions/constraints/files/tasks (900+ lines, ~23k tokens)
210
- - 🔄 **[Task Migration](docs/TASK_MIGRATION.md)** - Migrate from decision-based tracking (701 lines, ~18k tokens)
211
-
212
- **Decision Context (v3.2.2):**
213
- - 📝 **[Decision Context](docs/DECISION_CONTEXT.md)** - Rich decision documentation with rationale, alternatives, and tradeoffs (500+ lines, ~15k tokens) **NEW v3.2.2**
214
-
215
- **Auto File Tracking (v3.0.2):**
216
- - 🤖 **[Auto File Tracking](docs/AUTO_FILE_TRACKING.md)** - Zero-token task management, setup, troubleshooting
217
- - ✅ **[Acceptance Criteria](docs/ACCEPTANCE_CRITERIA.md)** - All check types (tests_pass, code_removed, code_contains, file_exists)
218
-
219
- **Shared References:**
220
- - 📘 **[Shared Concepts](docs/SHARED_CONCEPTS.md)** - Layer definitions, enum values, atomic mode (339 lines, ~17k tokens)
221
- - 🏗️ **[Architecture](docs/ARCHITECTURE.md)** - Technical architecture and database schema
143
+ - [Task Overview](docs/TASK_OVERVIEW.md) - Lifecycle, status transitions
144
+ - [Task Actions](docs/TASK_ACTIONS.md) - All actions with examples
145
+ - [Task Dependencies](docs/TASK_DEPENDENCIES.md) - Blocking relationships
146
+ - [Task Linking](docs/TASK_LINKING.md) - Link to decisions/constraints/files
147
+ - [Task Migration](docs/TASK_MIGRATION.md) - Migrate from decision-based tracking
148
+
149
+ **Advanced Features:**
150
+ - [Decision Context](docs/DECISION_CONTEXT.md) - Rich decision documentation
151
+ - [Auto File Tracking](docs/AUTO_FILE_TRACKING.md) - Zero-token task management
152
+ - [Acceptance Criteria](docs/ACCEPTANCE_CRITERIA.md) - All check types
153
+
154
+ **Reference:**
155
+ - [Shared Concepts](docs/SHARED_CONCEPTS.md) - Layer definitions, enum values
156
+ - [Configuration](docs/CONFIGURATION.md) - Config file setup, all options
157
+ - [Architecture](docs/ARCHITECTURE.md) - Technical architecture
222
158
 
223
159
  ### For Developers
224
160
 
225
- - **[Building from Source](docs/ARCHITECTURE.md#development)** - Setup and build instructions
226
- - **[Migration Guides](docs/MIGRATION_v2.md)** - Version upgrade guides
227
- - **[CLI Tool](docs/AI_AGENT_GUIDE.md#cli-usage)** - Query database from terminal
228
-
229
- ## Examples
230
-
231
- ### Multi-Agent Coordination
232
-
233
- ```javascript
234
- // Orchestrator creates tasks
235
- {
236
- action: "batch_create",
237
- tasks: [
238
- {title: "Setup database", assigned_agent: "db-agent"},
239
- {title: "Create API", assigned_agent: "api-agent"}
240
- ]
241
- }
242
-
243
- // Agents send status updates
244
- {
245
- action: "send",
246
- from_agent: "db-agent",
247
- to_agent: "orchestrator",
248
- message: "Database ready",
249
- priority: "high"
250
- }
251
- ```
252
-
253
- ### Breaking Change Management
254
-
255
- ```javascript
256
- // Record deprecation
257
- {
258
- action: "set",
259
- key: "api_v1_deprecated",
260
- value: "/v1 endpoints deprecated, use /v2",
261
- tags: ["breaking-change", "api"]
262
- }
161
+ - [Configuration Guide](docs/CONFIGURATION.md) - TOML config file setup
162
+ - [Building from Source](docs/ARCHITECTURE.md#development) - Setup instructions
163
+ - [Migration Guides](docs/MIGRATION_v2.md) - Version upgrade guides
263
164
 
264
- // Add constraint
265
- {
266
- action: "add",
267
- category: "architecture",
268
- constraint_text: "All endpoints must use /v2 prefix",
269
- priority: "high"
270
- }
271
- ```
165
+ ## Use Cases
272
166
 
273
- ### Decision Context (v3.2.2)
167
+ - **Multi-Agent Coordination**: Orchestrators create tasks, agents send status updates
168
+ - **Breaking Change Management**: Record deprecations and add architectural constraints
169
+ - **Decision Context**: Document rationale, alternatives considered, and trade-offs
170
+ - **Session Continuity**: Save progress in Session 1, resume in Session 2
274
171
 
275
- ```javascript
276
- // Record a decision with rich context
277
- {
278
- action: "set",
279
- key: "database_choice",
280
- value: "PostgreSQL over MongoDB",
281
- layer: "data",
282
- tags: ["architecture", "database"]
283
- }
284
-
285
- // Add rationale and tradeoffs
286
- {
287
- action: "add_decision_context",
288
- key: "database_choice",
289
- rationale: "Selected PostgreSQL because: (1) Complex relational queries required for reporting, (2) ACID compliance critical for financial data, (3) Team has strong SQL expertise",
290
- alternatives_considered: [
291
- {
292
- option: "MongoDB",
293
- reason: "Rejected due to weak consistency guarantees for financial data"
294
- },
295
- {
296
- option: "MySQL",
297
- reason: "Rejected due to limited JSON support needed for metadata"
298
- }
299
- ],
300
- tradeoffs: {
301
- pros: ["Strong consistency", "Complex queries", "Team expertise"],
302
- cons: ["Less flexible schema", "Vertical scaling limitations"]
303
- }
304
- }
305
-
306
- // Retrieve decision with full context
307
- {
308
- action: "get",
309
- key: "database_choice",
310
- include_context: true
311
- }
312
- // → Returns decision + rationale + alternatives + tradeoffs
313
- ```
314
-
315
- ### Session Continuity
316
-
317
- ```javascript
318
- // Session 1: Save state
319
- {
320
- action: "set",
321
- key: "refactor_progress",
322
- value: "Completed 3/5 modules",
323
- tags: ["session-state"]
324
- }
325
-
326
- // Session 2: Resume work
327
- {
328
- action: "get",
329
- key: "refactor_progress"
330
- }
331
- // → Returns: "Completed 3/5 modules"
332
- ```
172
+ See [docs/WORKFLOWS.md](docs/WORKFLOWS.md) for detailed multi-step examples.
333
173
 
334
174
  ## Performance
335
175
 
@@ -338,41 +178,18 @@ Each tool supports `action: "help"` for full documentation and `action: "example
338
178
  - **Storage efficiency**: ~140 bytes per decision
339
179
  - **Token savings**: 60-75% in typical projects
340
180
 
341
- ## 💖 Support sqlew
342
-
343
- ### One-time Support
344
- Perfect for trying out sponsorship!
345
- - ☕ $5 - Buy me a coffee
346
- - 🍕 $10 - Buy me a pizza
347
-
348
- ### Monthly Support
349
- For ongoing development support:
350
- - ⭐ $1/month - Support Continual Development
351
- - 🚀 $5/month - Active support for Request
352
- - 💼 $10/month - Buy me more AI tokens
181
+ ## Support
353
182
 
354
- on [GitHub Sponsors](https://github.com/sponsors/sin5ddd)
183
+ Support development via [GitHub Sponsors](https://github.com/sponsors/sin5ddd) - One-time or monthly options available.
355
184
 
356
185
  ## Version
357
186
 
358
- Current version: **3.2.2**
187
+ Current version: **3.3.0**
359
188
  See [CHANGELOG.md](CHANGELOG.md) for release history.
360
189
 
361
190
  ## License
362
191
 
363
- AGPLv3 - **Free to use**, open-source required when embedding/modifying.
364
-
365
- See [LICENSE](LICENSE) file for details.
366
-
367
- **Free to use for:**
368
- - Personal and commercial projects
369
- - Using sqlew as-is in Claude Desktop
370
- - Managing AI agent context
371
-
372
- **Open-source required when:**
373
- - Embedding sqlew into your application
374
- - Modifying and distributing sqlew
375
- - Offering sqlew as a network service
192
+ AGPLv3 - Free to use. Open-source required when embedding or modifying. See [LICENSE](LICENSE) for details.
376
193
 
377
194
  ## Links
378
195
 
@@ -380,10 +197,10 @@ See [LICENSE](LICENSE) file for details.
380
197
  - [GitHub repository](https://github.com/sin5ddd/mcp-sqlew)
381
198
  - [Model Context Protocol](https://modelcontextprotocol.io/)
382
199
 
383
- ## Support
200
+ ## Support & Documentation
384
201
 
385
- - **Issues**: [GitHub Issues](https://github.com/sin5ddd/mcp-sqlew/issues)
386
- - **Documentation**: [docs/](docs/) directory
202
+ - Issues: [GitHub Issues](https://github.com/sin5ddd/mcp-sqlew/issues)
203
+ - Docs: [docs/](docs/) directory
387
204
 
388
205
  ## Acknowledgments
389
206
 
@@ -0,0 +1,97 @@
1
+ # sqlew Configuration File
2
+ # Copy this file to .sqlew/config.toml and customize as needed
3
+ #
4
+ # Priority: CLI arguments > config.toml > database m_config > defaults
5
+ # Documentation: docs/CONFIGURATION.md
6
+
7
+ # ============================================================================
8
+ # Database Settings
9
+ # ============================================================================
10
+ [database]
11
+ # Database file path (relative to project root or absolute)
12
+ # Default: ".sqlew/sqlew.db"
13
+ # path = ".sqlew/custom.db"
14
+ # path = "/absolute/path/to/database.db"
15
+
16
+ # ============================================================================
17
+ # Auto-Deletion Settings
18
+ # ============================================================================
19
+ [autodelete]
20
+ # Skip weekends when calculating retention periods
21
+ # When true: 24 hours on Monday = previous Friday (skips Sat/Sun)
22
+ # When false: 24 hours = exactly 24 hours ago
23
+ # Default: false
24
+ ignore_weekend = false
25
+
26
+ # Message retention period in hours (1-720)
27
+ # Messages older than this are automatically deleted
28
+ # Default: 24 (1 day)
29
+ message_hours = 24
30
+
31
+ # File change history retention in days (1-365)
32
+ # File changes older than this are automatically deleted
33
+ # Default: 7 (1 week)
34
+ file_history_days = 7
35
+
36
+ # ============================================================================
37
+ # Debug Logging Settings (v3.5.4)
38
+ # ============================================================================
39
+ [debug]
40
+ # Debug log file path (optional)
41
+ # When set, enables detailed debug logging for troubleshooting
42
+ # Environment variable SQLEW_DEBUG takes precedence over this setting
43
+ # Default: not set (logging disabled)
44
+ # log_path = "/home/user/.sqlew/debug.log"
45
+ # log_path = ".sqlew/debug.log"
46
+
47
+ # ============================================================================
48
+ # Task Management Settings
49
+ # ============================================================================
50
+ [tasks]
51
+ # Auto-archive done tasks after N days (1-365)
52
+ # Tasks in 'done' status older than this are moved to 'archived'
53
+ # Keeps task list clean while preserving history
54
+ # Default: 2 (48 hours)
55
+ auto_archive_done_days = 2
56
+
57
+ # Stale detection threshold for 'in_progress' tasks (hours, 1-168)
58
+ # Tasks stuck in 'in_progress' longer than this → move to 'waiting_review'
59
+ # Helps recover from interrupted AI sessions
60
+ # Default: 2 (2 hours)
61
+ stale_hours_in_progress = 2
62
+
63
+ # Stale detection threshold for 'waiting_review' tasks (hours, 1-720)
64
+ # Tasks stuck in 'waiting_review' longer than this → move back to 'todo'
65
+ # Prevents abandoned reviews from blocking workflow
66
+ # Default: 24 (1 day)
67
+ stale_hours_waiting_review = 24
68
+
69
+ # Enable automatic stale detection
70
+ # When true: Runs stale detection on startup and before task operations
71
+ # When false: Stale detection disabled (manual only)
72
+ # Default: true
73
+ auto_stale_enabled = true
74
+
75
+ # ============================================================================
76
+ # Example Configurations
77
+ # ============================================================================
78
+
79
+ # Aggressive cleanup (development)
80
+ # [autodelete]
81
+ # message_hours = 1
82
+ # file_history_days = 1
83
+ # [tasks]
84
+ # auto_archive_done_days = 1
85
+
86
+ # Conservative cleanup (production)
87
+ # [autodelete]
88
+ # message_hours = 168 # 7 days
89
+ # file_history_days = 30
90
+ # [tasks]
91
+ # auto_archive_done_days = 7
92
+
93
+ # Weekend-aware workflow (for developers)
94
+ # [autodelete]
95
+ # ignore_weekend = true
96
+ # message_hours = 48
97
+ # file_history_days = 14
package/assets/schema.sql CHANGED
@@ -539,7 +539,12 @@ INSERT OR IGNORE INTO m_config (key, value) VALUES
539
539
  ('autodelete_file_history_days', '7'),
540
540
  ('task_stale_hours_in_progress', '2'),
541
541
  ('task_stale_hours_waiting_review', '24'),
542
- ('task_auto_stale_enabled', '1');
542
+ ('task_auto_stale_enabled', '1'),
543
+ ('auto_archive_done_days', '2'),
544
+ ('review_idle_minutes', '15'),
545
+ ('review_require_all_files_modified', '1'),
546
+ ('review_require_tests_pass', '1'),
547
+ ('review_require_compile', '1');
543
548
 
544
549
  -- Task Statuses (1=todo, 2=in_progress, 3=waiting_review, 4=blocked, 5=done, 6=archived)
545
550
  INSERT OR IGNORE INTO m_task_statuses (id, name) VALUES
@@ -0,0 +1,11 @@
1
+ export type { DatabaseAdapter } from './types.js';
2
+ import { SQLiteAdapter } from './sqlite-adapter.js';
3
+ import { PostgreSQLAdapter } from './postgresql-adapter.js';
4
+ import { MySQLAdapter } from './mysql-adapter.js';
5
+ import type { DatabaseAdapter } from './types.js';
6
+ export { SQLiteAdapter, PostgreSQLAdapter, MySQLAdapter };
7
+ /**
8
+ * Factory function to create database adapter
9
+ */
10
+ export declare function createDatabaseAdapter(databaseType: 'sqlite' | 'postgresql' | 'mysql'): DatabaseAdapter;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;AAE1D;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,GAC9C,eAAe,CAWjB"}
@@ -0,0 +1,21 @@
1
+ // Import adapter implementations
2
+ import { SQLiteAdapter } from './sqlite-adapter.js';
3
+ import { PostgreSQLAdapter } from './postgresql-adapter.js';
4
+ import { MySQLAdapter } from './mysql-adapter.js';
5
+ export { SQLiteAdapter, PostgreSQLAdapter, MySQLAdapter };
6
+ /**
7
+ * Factory function to create database adapter
8
+ */
9
+ export function createDatabaseAdapter(databaseType) {
10
+ switch (databaseType) {
11
+ case 'sqlite':
12
+ return new SQLiteAdapter();
13
+ case 'postgresql':
14
+ return new PostgreSQLAdapter();
15
+ case 'mysql':
16
+ return new MySQLAdapter();
17
+ default:
18
+ throw new Error(`Unsupported database type: ${databaseType}`);
19
+ }
20
+ }
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAIA,iCAAiC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAA+C;IAE/C,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B,KAAK,YAAY;YACf,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC,KAAK,OAAO;YACV,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { Knex } from 'knex';
2
+ import type { DatabaseAdapter } from './types.js';
3
+ export declare class MySQLAdapter implements DatabaseAdapter {
4
+ private knexInstance;
5
+ readonly supportsReturning = false;
6
+ readonly supportsJSON = true;
7
+ readonly supportsUpsert = true;
8
+ readonly supportsCTE = true;
9
+ readonly supportsWindowFunctions = true;
10
+ readonly supportsSavepoints = true;
11
+ readonly databaseName: "mysql";
12
+ connect(config: Knex.Config): Promise<Knex>;
13
+ disconnect(): Promise<void>;
14
+ getKnex(): Knex;
15
+ insertReturning<T extends Record<string, any>>(table: string, data: Partial<T>): Promise<T>;
16
+ upsert<T extends Record<string, any>>(table: string, data: Partial<T>, conflictColumns: string[], updateColumns?: string[]): Promise<number>;
17
+ jsonExtract(column: string, path: string): Knex.Raw;
18
+ jsonBuildObject(fields: Record<string, any>): Knex.Raw;
19
+ currentTimestamp(): Knex.Raw;
20
+ fromUnixEpoch(epochColumn: string): Knex.Raw;
21
+ toUnixEpoch(timestampColumn: string): Knex.Raw;
22
+ concat(...values: Array<string | Knex.Raw>): Knex.Raw;
23
+ stringAgg(column: string, separator?: string): Knex.Raw;
24
+ transaction<T>(callback: (trx: Knex.Transaction) => Promise<T>, options?: {
25
+ isolationLevel?: 'serializable' | 'read committed' | 'repeatable read';
26
+ }): Promise<T>;
27
+ savepoint<T>(trx: Knex.Transaction, callback: (sp: Knex.Transaction) => Promise<T>): Promise<T>;
28
+ tableExists(tableName: string): Promise<boolean>;
29
+ autoIncrementColumn(table: Knex.CreateTableBuilder, columnName?: string): void;
30
+ }
31
+ //# sourceMappingURL=mysql-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/mysql-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,YAAY,CAAqB;IAGzC,QAAQ,CAAC,iBAAiB,SAAS;IACnC,QAAQ,CAAC,YAAY,QAAQ;IAC7B,QAAQ,CAAC,cAAc,QAAQ;IAC/B,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,uBAAuB,QAAQ;IACxC,QAAQ,CAAC,kBAAkB,QAAQ;IACnC,QAAQ,CAAC,YAAY,EAAG,OAAO,CAAU;IAEnC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,OAAO,IAAI,IAAI;IAIT,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjD,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,OAAO,CAAC,CAAC,CAAC;IAIP,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC;IAIlB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAInD,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;IAItD,gBAAgB,IAAI,IAAI,CAAC,GAAG;IAI5B,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAI5C,WAAW,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAI9C,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;IAIrD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAIjD,WAAW,CAAC,CAAC,EACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/C,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;KAAE,GACnF,OAAO,CAAC,CAAC,CAAC;IAIP,SAAS,CAAC,CAAC,EACf,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC;IAIP,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;CAG/E"}