narai-primitives 2.0.0-rc.1

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 (440) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +64 -0
  3. package/dist/config/bootstrap.d.ts +28 -0
  4. package/dist/config/bootstrap.d.ts.map +1 -0
  5. package/dist/config/bootstrap.js +80 -0
  6. package/dist/config/bootstrap.js.map +1 -0
  7. package/dist/config/index.d.ts +13 -0
  8. package/dist/config/index.d.ts.map +1 -0
  9. package/dist/config/index.js +12 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/config/load.d.ts +37 -0
  12. package/dist/config/load.d.ts.map +1 -0
  13. package/dist/config/load.js +99 -0
  14. package/dist/config/load.js.map +1 -0
  15. package/dist/config/resolve.d.ts +23 -0
  16. package/dist/config/resolve.d.ts.map +1 -0
  17. package/dist/config/resolve.js +198 -0
  18. package/dist/config/resolve.js.map +1 -0
  19. package/dist/config/secrets.d.ts +20 -0
  20. package/dist/config/secrets.d.ts.map +1 -0
  21. package/dist/config/secrets.js +43 -0
  22. package/dist/config/secrets.js.map +1 -0
  23. package/dist/config/types.d.ts +104 -0
  24. package/dist/config/types.d.ts.map +1 -0
  25. package/dist/config/types.js +11 -0
  26. package/dist/config/types.js.map +1 -0
  27. package/dist/connectors/aws/cli.d.ts +3 -0
  28. package/dist/connectors/aws/cli.d.ts.map +1 -0
  29. package/dist/connectors/aws/cli.js +27 -0
  30. package/dist/connectors/aws/cli.js.map +1 -0
  31. package/dist/connectors/aws/index.d.ts +27 -0
  32. package/dist/connectors/aws/index.d.ts.map +1 -0
  33. package/dist/connectors/aws/index.js +281 -0
  34. package/dist/connectors/aws/index.js.map +1 -0
  35. package/dist/connectors/aws/lib/aws_client.d.ts +140 -0
  36. package/dist/connectors/aws/lib/aws_client.d.ts.map +1 -0
  37. package/dist/connectors/aws/lib/aws_client.js +196 -0
  38. package/dist/connectors/aws/lib/aws_client.js.map +1 -0
  39. package/dist/connectors/aws/lib/aws_error.d.ts +10 -0
  40. package/dist/connectors/aws/lib/aws_error.d.ts.map +1 -0
  41. package/dist/connectors/aws/lib/aws_error.js +15 -0
  42. package/dist/connectors/aws/lib/aws_error.js.map +1 -0
  43. package/dist/connectors/confluence/cli.d.ts +3 -0
  44. package/dist/connectors/confluence/cli.d.ts.map +1 -0
  45. package/dist/connectors/confluence/cli.js +24 -0
  46. package/dist/connectors/confluence/cli.js.map +1 -0
  47. package/dist/connectors/confluence/index.d.ts +15 -0
  48. package/dist/connectors/confluence/index.d.ts.map +1 -0
  49. package/dist/connectors/confluence/index.js +295 -0
  50. package/dist/connectors/confluence/index.js.map +1 -0
  51. package/dist/connectors/confluence/lib/confluence_client.d.ts +135 -0
  52. package/dist/connectors/confluence/lib/confluence_client.d.ts.map +1 -0
  53. package/dist/connectors/confluence/lib/confluence_client.js +329 -0
  54. package/dist/connectors/confluence/lib/confluence_client.js.map +1 -0
  55. package/dist/connectors/confluence/lib/confluence_error.d.ts +13 -0
  56. package/dist/connectors/confluence/lib/confluence_error.d.ts.map +1 -0
  57. package/dist/connectors/confluence/lib/confluence_error.js +19 -0
  58. package/dist/connectors/confluence/lib/confluence_error.js.map +1 -0
  59. package/dist/connectors/db/cli.d.ts +5 -0
  60. package/dist/connectors/db/cli.d.ts.map +1 -0
  61. package/dist/connectors/db/cli.js +34 -0
  62. package/dist/connectors/db/cli.js.map +1 -0
  63. package/dist/connectors/db/config.d.ts +18 -0
  64. package/dist/connectors/db/config.d.ts.map +1 -0
  65. package/dist/connectors/db/config.js +142 -0
  66. package/dist/connectors/db/config.js.map +1 -0
  67. package/dist/connectors/db/connector.d.ts +31 -0
  68. package/dist/connectors/db/connector.d.ts.map +1 -0
  69. package/dist/connectors/db/connector.js +175 -0
  70. package/dist/connectors/db/connector.js.map +1 -0
  71. package/dist/connectors/db/dispatcher.d.ts +36 -0
  72. package/dist/connectors/db/dispatcher.d.ts.map +1 -0
  73. package/dist/connectors/db/dispatcher.js +597 -0
  74. package/dist/connectors/db/dispatcher.js.map +1 -0
  75. package/dist/connectors/db/index.d.ts +22 -0
  76. package/dist/connectors/db/index.d.ts.map +1 -0
  77. package/dist/connectors/db/index.js +26 -0
  78. package/dist/connectors/db/index.js.map +1 -0
  79. package/dist/connectors/db/lib/audit.d.ts +32 -0
  80. package/dist/connectors/db/lib/audit.d.ts.map +1 -0
  81. package/dist/connectors/db/lib/audit.js +130 -0
  82. package/dist/connectors/db/lib/audit.js.map +1 -0
  83. package/dist/connectors/db/lib/connection.d.ts +61 -0
  84. package/dist/connectors/db/lib/connection.d.ts.map +1 -0
  85. package/dist/connectors/db/lib/connection.js +326 -0
  86. package/dist/connectors/db/lib/connection.js.map +1 -0
  87. package/dist/connectors/db/lib/credentials.d.ts +60 -0
  88. package/dist/connectors/db/lib/credentials.d.ts.map +1 -0
  89. package/dist/connectors/db/lib/credentials.js +117 -0
  90. package/dist/connectors/db/lib/credentials.js.map +1 -0
  91. package/dist/connectors/db/lib/drivers/base.d.ts +83 -0
  92. package/dist/connectors/db/lib/drivers/base.d.ts.map +1 -0
  93. package/dist/connectors/db/lib/drivers/base.js +46 -0
  94. package/dist/connectors/db/lib/drivers/base.js.map +1 -0
  95. package/dist/connectors/db/lib/drivers/dynamodb.d.ts +108 -0
  96. package/dist/connectors/db/lib/drivers/dynamodb.d.ts.map +1 -0
  97. package/dist/connectors/db/lib/drivers/dynamodb.js +468 -0
  98. package/dist/connectors/db/lib/drivers/dynamodb.js.map +1 -0
  99. package/dist/connectors/db/lib/drivers/mongodb.d.ts +60 -0
  100. package/dist/connectors/db/lib/drivers/mongodb.d.ts.map +1 -0
  101. package/dist/connectors/db/lib/drivers/mongodb.js +371 -0
  102. package/dist/connectors/db/lib/drivers/mongodb.js.map +1 -0
  103. package/dist/connectors/db/lib/drivers/mysql.d.ts +45 -0
  104. package/dist/connectors/db/lib/drivers/mysql.d.ts.map +1 -0
  105. package/dist/connectors/db/lib/drivers/mysql.js +265 -0
  106. package/dist/connectors/db/lib/drivers/mysql.js.map +1 -0
  107. package/dist/connectors/db/lib/drivers/oracle.d.ts +53 -0
  108. package/dist/connectors/db/lib/drivers/oracle.d.ts.map +1 -0
  109. package/dist/connectors/db/lib/drivers/oracle.js +350 -0
  110. package/dist/connectors/db/lib/drivers/oracle.js.map +1 -0
  111. package/dist/connectors/db/lib/drivers/postgresql.d.ts +65 -0
  112. package/dist/connectors/db/lib/drivers/postgresql.d.ts.map +1 -0
  113. package/dist/connectors/db/lib/drivers/postgresql.js +294 -0
  114. package/dist/connectors/db/lib/drivers/postgresql.js.map +1 -0
  115. package/dist/connectors/db/lib/drivers/register.d.ts +16 -0
  116. package/dist/connectors/db/lib/drivers/register.d.ts.map +1 -0
  117. package/dist/connectors/db/lib/drivers/register.js +111 -0
  118. package/dist/connectors/db/lib/drivers/register.js.map +1 -0
  119. package/dist/connectors/db/lib/drivers/sqlite.d.ts +11 -0
  120. package/dist/connectors/db/lib/drivers/sqlite.d.ts.map +1 -0
  121. package/dist/connectors/db/lib/drivers/sqlite.js +147 -0
  122. package/dist/connectors/db/lib/drivers/sqlite.js.map +1 -0
  123. package/dist/connectors/db/lib/drivers/sqlserver.d.ts +58 -0
  124. package/dist/connectors/db/lib/drivers/sqlserver.d.ts.map +1 -0
  125. package/dist/connectors/db/lib/drivers/sqlserver.js +274 -0
  126. package/dist/connectors/db/lib/drivers/sqlserver.js.map +1 -0
  127. package/dist/connectors/db/lib/environments.d.ts +68 -0
  128. package/dist/connectors/db/lib/environments.d.ts.map +1 -0
  129. package/dist/connectors/db/lib/environments.js +53 -0
  130. package/dist/connectors/db/lib/environments.js.map +1 -0
  131. package/dist/connectors/db/lib/index.d.ts +28 -0
  132. package/dist/connectors/db/lib/index.d.ts.map +1 -0
  133. package/dist/connectors/db/lib/index.js +30 -0
  134. package/dist/connectors/db/lib/index.js.map +1 -0
  135. package/dist/connectors/db/lib/plugin_config.d.ts +64 -0
  136. package/dist/connectors/db/lib/plugin_config.d.ts.map +1 -0
  137. package/dist/connectors/db/lib/plugin_config.js +287 -0
  138. package/dist/connectors/db/lib/plugin_config.js.map +1 -0
  139. package/dist/connectors/db/lib/policy.d.ts +162 -0
  140. package/dist/connectors/db/lib/policy.d.ts.map +1 -0
  141. package/dist/connectors/db/lib/policy.js +581 -0
  142. package/dist/connectors/db/lib/policy.js.map +1 -0
  143. package/dist/connectors/db/lib/query.d.ts +22 -0
  144. package/dist/connectors/db/lib/query.d.ts.map +1 -0
  145. package/dist/connectors/db/lib/query.js +93 -0
  146. package/dist/connectors/db/lib/query.js.map +1 -0
  147. package/dist/connectors/db/lib/schema.d.ts +13 -0
  148. package/dist/connectors/db/lib/schema.d.ts.map +1 -0
  149. package/dist/connectors/db/lib/schema.js +80 -0
  150. package/dist/connectors/db/lib/schema.js.map +1 -0
  151. package/dist/connectors/gcp/cli.d.ts +3 -0
  152. package/dist/connectors/gcp/cli.d.ts.map +1 -0
  153. package/dist/connectors/gcp/cli.js +24 -0
  154. package/dist/connectors/gcp/cli.js.map +1 -0
  155. package/dist/connectors/gcp/index.d.ts +24 -0
  156. package/dist/connectors/gcp/index.d.ts.map +1 -0
  157. package/dist/connectors/gcp/index.js +205 -0
  158. package/dist/connectors/gcp/index.js.map +1 -0
  159. package/dist/connectors/gcp/lib/gcp_client.d.ts +88 -0
  160. package/dist/connectors/gcp/lib/gcp_client.d.ts.map +1 -0
  161. package/dist/connectors/gcp/lib/gcp_client.js +434 -0
  162. package/dist/connectors/gcp/lib/gcp_client.js.map +1 -0
  163. package/dist/connectors/gcp/lib/gcp_error.d.ts +10 -0
  164. package/dist/connectors/gcp/lib/gcp_error.d.ts.map +1 -0
  165. package/dist/connectors/gcp/lib/gcp_error.js +15 -0
  166. package/dist/connectors/gcp/lib/gcp_error.js.map +1 -0
  167. package/dist/connectors/github/cli.d.ts +3 -0
  168. package/dist/connectors/github/cli.d.ts.map +1 -0
  169. package/dist/connectors/github/cli.js +23 -0
  170. package/dist/connectors/github/cli.js.map +1 -0
  171. package/dist/connectors/github/index.d.ts +23 -0
  172. package/dist/connectors/github/index.d.ts.map +1 -0
  173. package/dist/connectors/github/index.js +462 -0
  174. package/dist/connectors/github/index.js.map +1 -0
  175. package/dist/connectors/github/lib/github_client.d.ts +181 -0
  176. package/dist/connectors/github/lib/github_client.d.ts.map +1 -0
  177. package/dist/connectors/github/lib/github_client.js +383 -0
  178. package/dist/connectors/github/lib/github_client.js.map +1 -0
  179. package/dist/connectors/github/lib/github_error.d.ts +11 -0
  180. package/dist/connectors/github/lib/github_error.d.ts.map +1 -0
  181. package/dist/connectors/github/lib/github_error.js +17 -0
  182. package/dist/connectors/github/lib/github_error.js.map +1 -0
  183. package/dist/connectors/jira/cli.d.ts +3 -0
  184. package/dist/connectors/jira/cli.d.ts.map +1 -0
  185. package/dist/connectors/jira/cli.js +24 -0
  186. package/dist/connectors/jira/cli.js.map +1 -0
  187. package/dist/connectors/jira/index.d.ts +13 -0
  188. package/dist/connectors/jira/index.d.ts.map +1 -0
  189. package/dist/connectors/jira/index.js +287 -0
  190. package/dist/connectors/jira/index.js.map +1 -0
  191. package/dist/connectors/jira/lib/adf.d.ts +25 -0
  192. package/dist/connectors/jira/lib/adf.d.ts.map +1 -0
  193. package/dist/connectors/jira/lib/adf.js +105 -0
  194. package/dist/connectors/jira/lib/adf.js.map +1 -0
  195. package/dist/connectors/jira/lib/jira_client.d.ts +143 -0
  196. package/dist/connectors/jira/lib/jira_client.d.ts.map +1 -0
  197. package/dist/connectors/jira/lib/jira_client.js +355 -0
  198. package/dist/connectors/jira/lib/jira_client.js.map +1 -0
  199. package/dist/connectors/jira/lib/jira_error.d.ts +11 -0
  200. package/dist/connectors/jira/lib/jira_error.d.ts.map +1 -0
  201. package/dist/connectors/jira/lib/jira_error.js +17 -0
  202. package/dist/connectors/jira/lib/jira_error.js.map +1 -0
  203. package/dist/connectors/notion/cli.d.ts +3 -0
  204. package/dist/connectors/notion/cli.d.ts.map +1 -0
  205. package/dist/connectors/notion/cli.js +22 -0
  206. package/dist/connectors/notion/cli.js.map +1 -0
  207. package/dist/connectors/notion/index.d.ts +20 -0
  208. package/dist/connectors/notion/index.d.ts.map +1 -0
  209. package/dist/connectors/notion/index.js +317 -0
  210. package/dist/connectors/notion/index.js.map +1 -0
  211. package/dist/connectors/notion/lib/notion_client.d.ts +117 -0
  212. package/dist/connectors/notion/lib/notion_client.d.ts.map +1 -0
  213. package/dist/connectors/notion/lib/notion_client.js +377 -0
  214. package/dist/connectors/notion/lib/notion_client.js.map +1 -0
  215. package/dist/connectors/notion/lib/notion_error.d.ts +12 -0
  216. package/dist/connectors/notion/lib/notion_error.d.ts.map +1 -0
  217. package/dist/connectors/notion/lib/notion_error.js +18 -0
  218. package/dist/connectors/notion/lib/notion_error.js.map +1 -0
  219. package/dist/hub/cli.d.ts +4 -0
  220. package/dist/hub/cli.d.ts.map +1 -0
  221. package/dist/hub/cli.js +93 -0
  222. package/dist/hub/cli.js.map +1 -0
  223. package/dist/hub/dispatch.d.ts +33 -0
  224. package/dist/hub/dispatch.d.ts.map +1 -0
  225. package/dist/hub/dispatch.js +297 -0
  226. package/dist/hub/dispatch.js.map +1 -0
  227. package/dist/hub/index.d.ts +9 -0
  228. package/dist/hub/index.d.ts.map +1 -0
  229. package/dist/hub/index.js +215 -0
  230. package/dist/hub/index.js.map +1 -0
  231. package/dist/hub/plan.d.ts +24 -0
  232. package/dist/hub/plan.d.ts.map +1 -0
  233. package/dist/hub/plan.js +103 -0
  234. package/dist/hub/plan.js.map +1 -0
  235. package/dist/hub/types.d.ts +65 -0
  236. package/dist/hub/types.d.ts.map +1 -0
  237. package/dist/hub/types.js +3 -0
  238. package/dist/hub/types.js.map +1 -0
  239. package/dist/toolkit/_optional.d.ts +14 -0
  240. package/dist/toolkit/_optional.d.ts.map +1 -0
  241. package/dist/toolkit/_optional.js +96 -0
  242. package/dist/toolkit/_optional.js.map +1 -0
  243. package/dist/toolkit/agent_cli.d.ts +33 -0
  244. package/dist/toolkit/agent_cli.d.ts.map +1 -0
  245. package/dist/toolkit/agent_cli.js +62 -0
  246. package/dist/toolkit/agent_cli.js.map +1 -0
  247. package/dist/toolkit/agent_resolver.d.ts +46 -0
  248. package/dist/toolkit/agent_resolver.d.ts.map +1 -0
  249. package/dist/toolkit/agent_resolver.js +78 -0
  250. package/dist/toolkit/agent_resolver.js.map +1 -0
  251. package/dist/toolkit/audit/events.d.ts +45 -0
  252. package/dist/toolkit/audit/events.d.ts.map +1 -0
  253. package/dist/toolkit/audit/events.js +8 -0
  254. package/dist/toolkit/audit/events.js.map +1 -0
  255. package/dist/toolkit/audit/writer.d.ts +16 -0
  256. package/dist/toolkit/audit/writer.d.ts.map +1 -0
  257. package/dist/toolkit/audit/writer.js +73 -0
  258. package/dist/toolkit/audit/writer.js.map +1 -0
  259. package/dist/toolkit/cli/usage-report.d.ts +3 -0
  260. package/dist/toolkit/cli/usage-report.d.ts.map +1 -0
  261. package/dist/toolkit/cli/usage-report.js +76 -0
  262. package/dist/toolkit/cli/usage-report.js.map +1 -0
  263. package/dist/toolkit/connector.d.ts +142 -0
  264. package/dist/toolkit/connector.d.ts.map +1 -0
  265. package/dist/toolkit/connector.js +593 -0
  266. package/dist/toolkit/connector.js.map +1 -0
  267. package/dist/toolkit/extract_binary.d.ts +45 -0
  268. package/dist/toolkit/extract_binary.d.ts.map +1 -0
  269. package/dist/toolkit/extract_binary.js +342 -0
  270. package/dist/toolkit/extract_binary.js.map +1 -0
  271. package/dist/toolkit/extract_multimodal.d.ts +22 -0
  272. package/dist/toolkit/extract_multimodal.d.ts.map +1 -0
  273. package/dist/toolkit/extract_multimodal.js +209 -0
  274. package/dist/toolkit/extract_multimodal.js.map +1 -0
  275. package/dist/toolkit/fetch_attachment.d.ts +21 -0
  276. package/dist/toolkit/fetch_attachment.d.ts.map +1 -0
  277. package/dist/toolkit/fetch_attachment.js +169 -0
  278. package/dist/toolkit/fetch_attachment.js.map +1 -0
  279. package/dist/toolkit/fetch_helper.d.ts +47 -0
  280. package/dist/toolkit/fetch_helper.d.ts.map +1 -0
  281. package/dist/toolkit/fetch_helper.js +124 -0
  282. package/dist/toolkit/fetch_helper.js.map +1 -0
  283. package/dist/toolkit/guardrail.d.ts +63 -0
  284. package/dist/toolkit/guardrail.d.ts.map +1 -0
  285. package/dist/toolkit/guardrail.js +166 -0
  286. package/dist/toolkit/guardrail.js.map +1 -0
  287. package/dist/toolkit/hardship/curate.d.ts +47 -0
  288. package/dist/toolkit/hardship/curate.d.ts.map +1 -0
  289. package/dist/toolkit/hardship/curate.js +113 -0
  290. package/dist/toolkit/hardship/curate.js.map +1 -0
  291. package/dist/toolkit/hardship/patterns.d.ts +32 -0
  292. package/dist/toolkit/hardship/patterns.d.ts.map +1 -0
  293. package/dist/toolkit/hardship/patterns.js +98 -0
  294. package/dist/toolkit/hardship/patterns.js.map +1 -0
  295. package/dist/toolkit/hardship/preamble.d.ts +13 -0
  296. package/dist/toolkit/hardship/preamble.d.ts.map +1 -0
  297. package/dist/toolkit/hardship/preamble.js +47 -0
  298. package/dist/toolkit/hardship/preamble.js.map +1 -0
  299. package/dist/toolkit/hardship/read.d.ts +34 -0
  300. package/dist/toolkit/hardship/read.d.ts.map +1 -0
  301. package/dist/toolkit/hardship/read.js +116 -0
  302. package/dist/toolkit/hardship/read.js.map +1 -0
  303. package/dist/toolkit/hardship/record.d.ts +43 -0
  304. package/dist/toolkit/hardship/record.d.ts.map +1 -0
  305. package/dist/toolkit/hardship/record.js +74 -0
  306. package/dist/toolkit/hardship/record.js.map +1 -0
  307. package/dist/toolkit/hardship/scope.d.ts +20 -0
  308. package/dist/toolkit/hardship/scope.d.ts.map +1 -0
  309. package/dist/toolkit/hardship/scope.js +56 -0
  310. package/dist/toolkit/hardship/scope.js.map +1 -0
  311. package/dist/toolkit/index.d.ts +42 -0
  312. package/dist/toolkit/index.d.ts.map +1 -0
  313. package/dist/toolkit/index.js +51 -0
  314. package/dist/toolkit/index.js.map +1 -0
  315. package/dist/toolkit/plugin/curate-cmd.d.ts +22 -0
  316. package/dist/toolkit/plugin/curate-cmd.d.ts.map +1 -0
  317. package/dist/toolkit/plugin/curate-cmd.js +72 -0
  318. package/dist/toolkit/plugin/curate-cmd.js.map +1 -0
  319. package/dist/toolkit/plugin/prefs.d.ts +15 -0
  320. package/dist/toolkit/plugin/prefs.d.ts.map +1 -0
  321. package/dist/toolkit/plugin/prefs.js +78 -0
  322. package/dist/toolkit/plugin/prefs.js.map +1 -0
  323. package/dist/toolkit/plugin/reminder.d.ts +28 -0
  324. package/dist/toolkit/plugin/reminder.d.ts.map +1 -0
  325. package/dist/toolkit/plugin/reminder.js +103 -0
  326. package/dist/toolkit/plugin/reminder.js.map +1 -0
  327. package/dist/toolkit/policy/approval.d.ts +24 -0
  328. package/dist/toolkit/policy/approval.d.ts.map +1 -0
  329. package/dist/toolkit/policy/approval.js +56 -0
  330. package/dist/toolkit/policy/approval.js.map +1 -0
  331. package/dist/toolkit/policy/config.d.ts +38 -0
  332. package/dist/toolkit/policy/config.d.ts.map +1 -0
  333. package/dist/toolkit/policy/config.js +172 -0
  334. package/dist/toolkit/policy/config.js.map +1 -0
  335. package/dist/toolkit/policy/gate.d.ts +28 -0
  336. package/dist/toolkit/policy/gate.d.ts.map +1 -0
  337. package/dist/toolkit/policy/gate.js +126 -0
  338. package/dist/toolkit/policy/gate.js.map +1 -0
  339. package/dist/toolkit/policy/types.d.ts +106 -0
  340. package/dist/toolkit/policy/types.d.ts.map +1 -0
  341. package/dist/toolkit/policy/types.js +22 -0
  342. package/dist/toolkit/policy/types.js.map +1 -0
  343. package/dist/toolkit/security_check.d.ts +15 -0
  344. package/dist/toolkit/security_check.d.ts.map +1 -0
  345. package/dist/toolkit/security_check.js +109 -0
  346. package/dist/toolkit/security_check.js.map +1 -0
  347. package/dist/toolkit/usage/aggregate-cross-session.d.ts +36 -0
  348. package/dist/toolkit/usage/aggregate-cross-session.d.ts.map +1 -0
  349. package/dist/toolkit/usage/aggregate-cross-session.js +142 -0
  350. package/dist/toolkit/usage/aggregate-cross-session.js.map +1 -0
  351. package/dist/toolkit/usage/aggregate.d.ts +4 -0
  352. package/dist/toolkit/usage/aggregate.d.ts.map +1 -0
  353. package/dist/toolkit/usage/aggregate.js +105 -0
  354. package/dist/toolkit/usage/aggregate.js.map +1 -0
  355. package/dist/toolkit/usage/index.d.ts +11 -0
  356. package/dist/toolkit/usage/index.d.ts.map +1 -0
  357. package/dist/toolkit/usage/index.js +7 -0
  358. package/dist/toolkit/usage/index.js.map +1 -0
  359. package/dist/toolkit/usage/parse.d.ts +5 -0
  360. package/dist/toolkit/usage/parse.d.ts.map +1 -0
  361. package/dist/toolkit/usage/parse.js +19 -0
  362. package/dist/toolkit/usage/parse.js.map +1 -0
  363. package/dist/toolkit/usage/record.d.ts +8 -0
  364. package/dist/toolkit/usage/record.d.ts.map +1 -0
  365. package/dist/toolkit/usage/record.js +18 -0
  366. package/dist/toolkit/usage/record.js.map +1 -0
  367. package/dist/toolkit/usage/retention.d.ts +6 -0
  368. package/dist/toolkit/usage/retention.d.ts.map +1 -0
  369. package/dist/toolkit/usage/retention.js +71 -0
  370. package/dist/toolkit/usage/retention.js.map +1 -0
  371. package/dist/toolkit/usage/tokenize.d.ts +11 -0
  372. package/dist/toolkit/usage/tokenize.d.ts.map +1 -0
  373. package/dist/toolkit/usage/tokenize.js +24 -0
  374. package/dist/toolkit/usage/tokenize.js.map +1 -0
  375. package/dist/toolkit/usage/types.d.ts +34 -0
  376. package/dist/toolkit/usage/types.d.ts.map +1 -0
  377. package/dist/toolkit/usage/types.js +2 -0
  378. package/dist/toolkit/usage/types.js.map +1 -0
  379. package/package.json +124 -0
  380. package/plugin-hooks/session-summary.mjs +138 -0
  381. package/plugin-hooks/stale-summarize.mjs +70 -0
  382. package/plugin-hooks/usage-record.mjs +112 -0
  383. package/plugins/aws-agent/.claude-plugin/plugin.json +6 -0
  384. package/plugins/aws-agent/README.md +46 -0
  385. package/plugins/aws-agent/bin/aws-agent +22 -0
  386. package/plugins/aws-agent/commands/aws-agent.md +6 -0
  387. package/plugins/aws-agent/hooks/hooks.json +49 -0
  388. package/plugins/aws-agent/hooks/reminder.mjs +16 -0
  389. package/plugins/aws-agent/package.json +9 -0
  390. package/plugins/aws-agent/skills/aws-agent/SKILL.md +70 -0
  391. package/plugins/confluence-agent/.claude-plugin/plugin.json +6 -0
  392. package/plugins/confluence-agent/README.md +15 -0
  393. package/plugins/confluence-agent/bin/confluence-agent +17 -0
  394. package/plugins/confluence-agent/commands/confluence-agent.md +6 -0
  395. package/plugins/confluence-agent/hooks/hooks.json +49 -0
  396. package/plugins/confluence-agent/hooks/reminder.mjs +25 -0
  397. package/plugins/confluence-agent/package.json +8 -0
  398. package/plugins/confluence-agent/skills/confluence-agent/SKILL.md +40 -0
  399. package/plugins/db-agent/.claude-plugin/plugin.json +20 -0
  400. package/plugins/db-agent/README.md +13 -0
  401. package/plugins/db-agent/bin/db-agent +17 -0
  402. package/plugins/db-agent/commands/db-agent.md +6 -0
  403. package/plugins/db-agent/hooks/db-guard.mjs +110 -0
  404. package/plugins/db-agent/hooks/guardrails.json +26 -0
  405. package/plugins/db-agent/hooks/hooks.json +61 -0
  406. package/plugins/db-agent/hooks/reminder.mjs +16 -0
  407. package/plugins/db-agent/package.json +8 -0
  408. package/plugins/db-agent/skills/db-agent/SKILL.md +50 -0
  409. package/plugins/gcp-agent/.claude-plugin/plugin.json +6 -0
  410. package/plugins/gcp-agent/README.md +31 -0
  411. package/plugins/gcp-agent/bin/gcp-agent +18 -0
  412. package/plugins/gcp-agent/commands/gcp-agent.md +6 -0
  413. package/plugins/gcp-agent/hooks/hooks.json +49 -0
  414. package/plugins/gcp-agent/hooks/reminder.mjs +16 -0
  415. package/plugins/gcp-agent/package.json +9 -0
  416. package/plugins/gcp-agent/skills/gcp-agent/SKILL.md +54 -0
  417. package/plugins/github-agent/.claude-plugin/plugin.json +6 -0
  418. package/plugins/github-agent/README.md +13 -0
  419. package/plugins/github-agent/bin/github-agent +17 -0
  420. package/plugins/github-agent/commands/github-agent.md +6 -0
  421. package/plugins/github-agent/hooks/hooks.json +49 -0
  422. package/plugins/github-agent/hooks/reminder.mjs +16 -0
  423. package/plugins/github-agent/package.json +8 -0
  424. package/plugins/github-agent/skills/github-agent/SKILL.md +41 -0
  425. package/plugins/jira-agent/.claude-plugin/plugin.json +6 -0
  426. package/plugins/jira-agent/README.md +15 -0
  427. package/plugins/jira-agent/bin/jira-agent +17 -0
  428. package/plugins/jira-agent/commands/jira-agent.md +6 -0
  429. package/plugins/jira-agent/hooks/hooks.json +49 -0
  430. package/plugins/jira-agent/hooks/reminder.mjs +16 -0
  431. package/plugins/jira-agent/package.json +8 -0
  432. package/plugins/jira-agent/skills/jira-agent/SKILL.md +37 -0
  433. package/plugins/notion-agent/.claude-plugin/plugin.json +6 -0
  434. package/plugins/notion-agent/README.md +23 -0
  435. package/plugins/notion-agent/bin/notion-agent +17 -0
  436. package/plugins/notion-agent/commands/notion-agent.md +6 -0
  437. package/plugins/notion-agent/hooks/hooks.json +49 -0
  438. package/plugins/notion-agent/hooks/reminder.mjs +17 -0
  439. package/plugins/notion-agent/package.json +8 -0
  440. package/plugins/notion-agent/skills/notion-agent/SKILL.md +48 -0
@@ -0,0 +1,58 @@
1
+ import { DatabaseDriver, Table, type ExecuteReadResult } from "./base.js";
2
+ import { type OperationType } from "../policy.js";
3
+ interface MssqlRequest {
4
+ query<T = Record<string, unknown>>(sql: string): Promise<{
5
+ recordset: T[];
6
+ recordsets: T[][];
7
+ rowsAffected: number[];
8
+ }>;
9
+ input(name: string, value: unknown): MssqlRequest;
10
+ cancel(): void;
11
+ }
12
+ interface MssqlTransaction {
13
+ begin(isolationLevel?: number): Promise<void>;
14
+ commit(): Promise<void>;
15
+ rollback(): Promise<void>;
16
+ request(): MssqlRequest;
17
+ }
18
+ interface MssqlPool {
19
+ connect(): Promise<MssqlPool>;
20
+ close(): Promise<void>;
21
+ request(): MssqlRequest;
22
+ transaction(): MssqlTransaction;
23
+ }
24
+ /**
25
+ * Handle returned by {@link SqlServerDriver.connect}. Holds the shared
26
+ * pool reference — there is no per-call "checkout" with mssql, so `close`
27
+ * is a no-op and the pool is destroyed once via {@link shutdown}.
28
+ */
29
+ interface MssqlHandle {
30
+ pool: MssqlPool;
31
+ database: string;
32
+ }
33
+ export declare class SqlServerDriver extends DatabaseDriver {
34
+ private _mssqlModule;
35
+ private _pool;
36
+ private _poolPromise;
37
+ private _database;
38
+ private _loadMssql;
39
+ private _ensurePool;
40
+ connect(envConfig: Record<string, unknown>): Promise<MssqlHandle>;
41
+ executeRead(_conn: unknown, _query: string, _params?: unknown[] | null, _maxRows?: number, _timeoutMs?: number): ExecuteReadResult;
42
+ executeReadAsync(conn: unknown, query: string, params?: unknown[] | null, maxRows?: number, timeoutMs?: number): Promise<ExecuteReadResult>;
43
+ getSchema(_conn: unknown, _schemaName?: string, _tableFilter?: string | null): Table[];
44
+ getSchemaAsync(conn: unknown, schemaName?: string, tableFilter?: string | null): Promise<Table[]>;
45
+ /**
46
+ * No-op: the mssql pool multiplexes requests internally, there is no
47
+ * per-call client to release. {@link shutdown} destroys the pool.
48
+ */
49
+ close(_conn: unknown): void;
50
+ classifyOperation(query: string): OperationType;
51
+ closeAsync(_conn: unknown): Promise<void>;
52
+ /** Per-driver health check via `SELECT 1` on a fresh request. */
53
+ healthCheck(conn: unknown): Promise<boolean>;
54
+ /** Drain and destroy the pool. */
55
+ shutdown(): Promise<void>;
56
+ }
57
+ export {};
58
+ //# sourceMappingURL=sqlserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlserver.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/db/lib/drivers/sqlserver.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEL,cAAc,EACd,KAAK,EACL,KAAK,iBAAiB,EACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAMvE,UAAU,YAAY;IACpB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,SAAS,EAAE,CAAC,EAAE,CAAC;QACf,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QAClB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IAClD,MAAM,IAAI,IAAI,CAAC;CAChB;AACD,UAAU,gBAAgB;IACxB,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,YAAY,CAAC;CACzB;AACD,UAAU,SAAS;IACjB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,YAAY,CAAC;IACxB,WAAW,IAAI,gBAAgB,CAAC;CACjC;AAUD;;;;GAIG;AACH,UAAU,WAAW;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,cAAc;IACjD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,SAAS,CAAM;YAET,UAAU;IAoBxB,OAAO,CAAC,WAAW;IAmEV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAMjE,WAAW,CAClB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,EAAE,GAAG,IAAW,EAChC,QAAQ,GAAE,MAAa,EACvB,UAAU,GAAE,MAAe,GAC1B,iBAAiB;IAUd,gBAAgB,CACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,OAAO,EAAE,GAAG,IAAW,EAC/B,OAAO,GAAE,MAAa,EACtB,SAAS,GAAE,MAAe,GACzB,OAAO,CAAC,iBAAiB,CAAC;IAgEpB,SAAS,CAChB,KAAK,EAAE,OAAO,EACd,WAAW,GAAE,MAAW,EACxB,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,KAAK,EAAE;IAIJ,cAAc,CAClB,IAAI,EAAE,OAAO,EACb,UAAU,GAAE,MAAW,EACvB,WAAW,GAAE,MAAM,GAAG,IAAW,GAChC,OAAO,CAAC,KAAK,EAAE,CAAC;IA+DnB;;;OAGG;IACM,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI3B,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa;IAIlD,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,iEAAiE;IAC3D,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlD,kCAAkC;IAC5B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAYhC"}
@@ -0,0 +1,274 @@
1
+ /**
2
+ * drivers/sqlserver.ts — Microsoft SQL Server driver via `mssql`.
3
+ *
4
+ * Design:
5
+ * - The driver owns an `mssql.ConnectionPool` lazily created on the
6
+ * first `connect()` call and cached for the lifetime of the driver
7
+ * instance. `mssql` multiplexes requests onto the pool automatically
8
+ * via `pool.request()` / `pool.transaction()`; there are no per-call
9
+ * "checkout / release" semantics to expose. `connect()` returns a
10
+ * lightweight handle carrying a reference to the pool, and `close()`
11
+ * is a no-op (the pool is shared). `shutdown()` drains the pool.
12
+ * - Named instances + Windows (NTLM) authentication are supported via
13
+ * `envConfig.instance` / `envConfig.trusted_connection`.
14
+ * - Read-only: every `executeReadAsync` opens an explicit transaction,
15
+ * sets `READ COMMITTED` isolation + `LOCK_TIMEOUT`, runs the SELECT,
16
+ * and `COMMIT`s. A parser in the driver also rewrites `?` placeholders
17
+ * to `@pN` and clamps results via `SELECT TOP N+1`.
18
+ * - `mssql` is loaded via dynamic `import()`; a missing install throws
19
+ * a clear `npm install mssql` hint.
20
+ */
21
+ import { performance } from "node:perf_hooks";
22
+ import { Column, DatabaseDriver, Table, } from "./base.js";
23
+ import { classifySqlKeywords } from "../policy.js";
24
+ export class SqlServerDriver extends DatabaseDriver {
25
+ _mssqlModule = null;
26
+ _pool = null;
27
+ _poolPromise = null;
28
+ _database = "";
29
+ async _loadMssql() {
30
+ if (this._mssqlModule !== null)
31
+ return this._mssqlModule;
32
+ try {
33
+ const mod = (await import("mssql"));
34
+ this._mssqlModule =
35
+ "ConnectionPool" in mod
36
+ ? mod
37
+ : mod.default;
38
+ return this._mssqlModule;
39
+ }
40
+ catch (e) {
41
+ throw new Error(`Driver 'sqlserver' requires 'mssql' — run: npm install mssql (${e.message})`);
42
+ }
43
+ }
44
+ _ensurePool(envConfig) {
45
+ if (this._pool !== null)
46
+ return Promise.resolve(this._pool);
47
+ if (this._poolPromise !== null)
48
+ return this._poolPromise;
49
+ this._poolPromise = this._loadMssql().then(async (mssql) => {
50
+ const server = typeof envConfig["host"] === "string" ? envConfig["host"] : "localhost";
51
+ const port = typeof envConfig["port"] === "number" ? envConfig["port"] : 1433;
52
+ this._database =
53
+ typeof envConfig["database"] === "string" ? envConfig["database"] : "";
54
+ const user = typeof envConfig["user"] === "string" ? envConfig["user"] : undefined;
55
+ const password = typeof envConfig["password"] === "string"
56
+ ? envConfig["password"]
57
+ : undefined;
58
+ const instanceName = typeof envConfig["instance"] === "string"
59
+ ? envConfig["instance"]
60
+ : undefined;
61
+ const domain = typeof envConfig["domain"] === "string" ? envConfig["domain"] : undefined;
62
+ const trustedConnection = envConfig["trusted_connection"] === true;
63
+ const encrypt = envConfig["ssl"] === true;
64
+ const options = {
65
+ encrypt,
66
+ trustServerCertificate: encrypt === false,
67
+ };
68
+ if (instanceName !== undefined)
69
+ options["instanceName"] = instanceName;
70
+ const poolConfig = {
71
+ server,
72
+ port,
73
+ database: this._database,
74
+ options,
75
+ pool: {
76
+ max: typeof envConfig["pool_max"] === "number"
77
+ ? envConfig["pool_max"]
78
+ : 10,
79
+ min: 0,
80
+ idleTimeoutMillis: 30_000,
81
+ },
82
+ };
83
+ if (user !== undefined)
84
+ poolConfig["user"] = user;
85
+ if (password !== undefined)
86
+ poolConfig["password"] = password;
87
+ if (domain !== undefined)
88
+ poolConfig["domain"] = domain;
89
+ if (trustedConnection) {
90
+ poolConfig["authentication"] = {
91
+ type: "ntlm",
92
+ options: {
93
+ domain: domain ?? "",
94
+ userName: user ?? "",
95
+ password: password ?? "",
96
+ },
97
+ };
98
+ }
99
+ const pool = new mssql.ConnectionPool(poolConfig);
100
+ await pool.connect();
101
+ this._pool = pool;
102
+ return pool;
103
+ });
104
+ return this._poolPromise;
105
+ }
106
+ connect(envConfig) {
107
+ return this._ensurePool(envConfig).then((pool) => ({ pool, database: this._database }));
108
+ }
109
+ executeRead(_conn, _query, _params = null, _maxRows = 1000, _timeoutMs = 30_000) {
110
+ return {
111
+ status: "error",
112
+ error_code: "SYNC_UNSUPPORTED",
113
+ error: "SqlServerDriver.executeRead is async — call executeReadAsync() instead.",
114
+ execution_time_ms: 0,
115
+ };
116
+ }
117
+ async executeReadAsync(conn, query, params = null, maxRows = 1000, timeoutMs = 30_000) {
118
+ const handle = (await conn);
119
+ const start = performance.now();
120
+ const tx = handle.pool.transaction();
121
+ let inTx = false;
122
+ try {
123
+ await tx.begin();
124
+ inTx = true;
125
+ const guardReq = tx.request();
126
+ await guardReq.query(`SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SET LOCK_TIMEOUT ${Math.max(1, timeoutMs)};`);
127
+ const req = tx.request();
128
+ for (let i = 0; i < (params ?? []).length; i++) {
129
+ req.input(`p${i}`, (params ?? [])[i]);
130
+ }
131
+ let rewritten = query;
132
+ if (params !== null && params !== undefined && params.length > 0) {
133
+ let n = 0;
134
+ rewritten = query.replace(/\?/g, () => `@p${n++}`);
135
+ }
136
+ const limited = /\btop\s+\d/i.test(rewritten)
137
+ ? rewritten
138
+ : rewritten.replace(/^\s*select\s/i, `SELECT TOP ${maxRows + 1} `);
139
+ const result = await req.query(limited);
140
+ await tx.commit();
141
+ inTx = false;
142
+ let truncated = false;
143
+ let rows = result.recordset ?? [];
144
+ if (rows.length > maxRows) {
145
+ truncated = true;
146
+ rows = rows.slice(0, maxRows);
147
+ }
148
+ const columns = rows.length > 0 ? Object.keys(rows[0] ?? {}) : [];
149
+ return {
150
+ status: "success",
151
+ rows: rows,
152
+ row_count: rows.length,
153
+ columns,
154
+ execution_time_ms: roundTo2(performance.now() - start),
155
+ truncated,
156
+ };
157
+ }
158
+ catch (e) {
159
+ if (inTx) {
160
+ try {
161
+ await tx.rollback();
162
+ }
163
+ catch {
164
+ /* best-effort */
165
+ }
166
+ }
167
+ return {
168
+ status: "error",
169
+ error_code: "SQL_ERROR",
170
+ error: e.message,
171
+ execution_time_ms: roundTo2(performance.now() - start),
172
+ };
173
+ }
174
+ }
175
+ getSchema(_conn, _schemaName = "", _tableFilter = null) {
176
+ return [];
177
+ }
178
+ async getSchemaAsync(conn, schemaName = "", tableFilter = null) {
179
+ const handle = (await conn);
180
+ const ns = schemaName.length > 0 ? schemaName : "dbo";
181
+ try {
182
+ const req = handle.pool.request();
183
+ req.input("schema", ns);
184
+ if (tableFilter !== null && tableFilter !== undefined) {
185
+ req.input("filter", tableFilter);
186
+ }
187
+ const tableSql = "SELECT TABLE_NAME AS table_name FROM INFORMATION_SCHEMA.TABLES " +
188
+ "WHERE TABLE_SCHEMA = @schema AND TABLE_TYPE = 'BASE TABLE'" +
189
+ (tableFilter !== null ? " AND TABLE_NAME LIKE @filter" : "") +
190
+ " ORDER BY TABLE_NAME";
191
+ const tableRes = await req.query(tableSql);
192
+ const tables = tableRes.recordset ?? [];
193
+ const out = [];
194
+ for (const row of tables) {
195
+ const tableName = String(row["table_name"] ??
196
+ row["TABLE_NAME"]);
197
+ const colReq = handle.pool.request();
198
+ colReq.input("schema", ns);
199
+ colReq.input("table", tableName);
200
+ const colRes = await colReq.query("SELECT c.COLUMN_NAME AS column_name, c.DATA_TYPE AS data_type, " +
201
+ "c.IS_NULLABLE AS is_nullable, c.COLUMN_DEFAULT AS column_default, " +
202
+ "CASE WHEN tc.CONSTRAINT_TYPE = 'PRIMARY KEY' THEN 1 ELSE 0 END AS is_pk " +
203
+ "FROM INFORMATION_SCHEMA.COLUMNS c " +
204
+ "LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu " +
205
+ " ON c.TABLE_SCHEMA = kcu.TABLE_SCHEMA AND c.TABLE_NAME = kcu.TABLE_NAME " +
206
+ " AND c.COLUMN_NAME = kcu.COLUMN_NAME " +
207
+ "LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc " +
208
+ " ON kcu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME " +
209
+ " AND tc.TABLE_SCHEMA = c.TABLE_SCHEMA " +
210
+ "WHERE c.TABLE_SCHEMA = @schema AND c.TABLE_NAME = @table " +
211
+ "ORDER BY c.ORDINAL_POSITION");
212
+ const columns = (colRes.recordset ?? []).map((r) => {
213
+ const rec = r;
214
+ return new Column({
215
+ name: String(rec["column_name"]),
216
+ data_type: String(rec["data_type"]),
217
+ nullable: String(rec["is_nullable"]).toUpperCase() === "YES",
218
+ is_primary_key: Number(rec["is_pk"] ?? 0) === 1,
219
+ default: rec["column_default"] === null || rec["column_default"] === undefined
220
+ ? null
221
+ : String(rec["column_default"]),
222
+ });
223
+ });
224
+ out.push(new Table({ name: tableName, schema: ns, columns }));
225
+ }
226
+ return out;
227
+ }
228
+ catch {
229
+ return [];
230
+ }
231
+ }
232
+ /**
233
+ * No-op: the mssql pool multiplexes requests internally, there is no
234
+ * per-call client to release. {@link shutdown} destroys the pool.
235
+ */
236
+ close(_conn) {
237
+ /* pool is shared — nothing to release per-handle */
238
+ }
239
+ classifyOperation(query) {
240
+ return classifySqlKeywords(query);
241
+ }
242
+ async closeAsync(_conn) {
243
+ /* pool is shared — nothing to release per-handle */
244
+ }
245
+ /** Per-driver health check via `SELECT 1` on a fresh request. */
246
+ async healthCheck(conn) {
247
+ try {
248
+ const handle = (await conn);
249
+ const res = await handle.pool.request().query("SELECT 1 AS one");
250
+ return (res.recordset ?? []).length === 1;
251
+ }
252
+ catch {
253
+ return false;
254
+ }
255
+ }
256
+ /** Drain and destroy the pool. */
257
+ async shutdown() {
258
+ const pool = this._pool;
259
+ this._pool = null;
260
+ this._poolPromise = null;
261
+ if (pool !== null) {
262
+ try {
263
+ await pool.close();
264
+ }
265
+ catch {
266
+ /* best-effort */
267
+ }
268
+ }
269
+ }
270
+ }
271
+ function roundTo2(n) {
272
+ return Math.round(n * 100) / 100;
273
+ }
274
+ //# sourceMappingURL=sqlserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlserver.js","sourceRoot":"","sources":["../../../../../src/connectors/db/lib/drivers/sqlserver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * environments.ts — Environment configuration registry for wiki_db.
3
+ *
4
+ * Mirrors `environments.py`:
5
+ * - `EnvironmentConfig` is an immutable plain object (frozen).
6
+ * - `registerEnvironment` / `getEnvironment` / `listEnvironments` /
7
+ * `clearEnvironments` operate on a module-level `Map`.
8
+ *
9
+ * Note: Python uses hyphenated approval modes for the environment layer
10
+ * (`confirm-once`, not `confirm_once`). This matches the existing Python
11
+ * tests, which assert on the hyphenated form. The Policy class continues
12
+ * to accept underscores only; the env layer is purely metadata.
13
+ *
14
+ * v2 (plugin config): environments may carry arbitrary driver-specific
15
+ * `extras` (passed through to `driver.connect(envCfg)`) and an optional
16
+ * per-env `policy` rule map (merged with the global defaults by the
17
+ * plugin-config loader).
18
+ */
19
+ import type { PolicyRules } from "./plugin_config.js";
20
+ /** Immutable configuration for a database environment. */
21
+ export interface EnvironmentConfig {
22
+ readonly host: string;
23
+ readonly port: number;
24
+ readonly database: string;
25
+ readonly schema: string;
26
+ readonly approval_mode: string;
27
+ readonly driver: string;
28
+ /**
29
+ * Duration of a read grant issued via `grant-required` approval mode,
30
+ * in hours. Consumed by `grantFromEnv()` in policy.ts. Per v2 design §4,
31
+ * the default is 8 hours; callers may override per-environment.
32
+ */
33
+ readonly grant_duration_hours?: number;
34
+ /**
35
+ * Arbitrary driver-specific fields (user, password, ssl, region, endpoint,
36
+ * url, pool, ttl, etc.). Passed through to `driver.connect(envCfg)` so
37
+ * each driver can pick up its own knobs without the registry needing to
38
+ * know about them. Populated by the plugin-config path; empty for
39
+ * legacy `wiki.config.yaml` environments.
40
+ */
41
+ readonly extras?: Readonly<Record<string, unknown>>;
42
+ /**
43
+ * Merged policy rules (global defaults + per-server override). Populated
44
+ * by the plugin-config path. When undefined, callers should fall back to
45
+ * `DEFAULT_POLICY` — which matches the legacy hard-coded behaviour.
46
+ */
47
+ readonly policy?: PolicyRules;
48
+ }
49
+ export interface RegisterEnvironmentOptions {
50
+ host?: string;
51
+ port?: number;
52
+ database?: string;
53
+ schema?: string;
54
+ approval_mode?: string;
55
+ driver?: string;
56
+ grant_duration_hours?: number;
57
+ extras?: Record<string, unknown>;
58
+ policy?: PolicyRules;
59
+ }
60
+ /** Register a named environment configuration. */
61
+ export declare function registerEnvironment(name: string, opts: RegisterEnvironmentOptions): void;
62
+ /** Return the config for `name`, or throw an EnvironmentNotRegisteredError. */
63
+ export declare function getEnvironment(name: string): EnvironmentConfig;
64
+ /** Return a list of registered environment names. */
65
+ export declare function listEnvironments(): string[];
66
+ /** Remove all registered environments. */
67
+ export declare function clearEnvironments(): void;
68
+ //# sourceMappingURL=environments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../../../src/connectors/db/lib/environments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAID,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,0BAA0B,GAC/B,IAAI,CAiDN;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAQ9D;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -0,0 +1,53 @@
1
+ /** Valid approval modes for env registration (hyphenated, per Python). */
2
+ const _VALID_APPROVAL_MODES = new Set([
3
+ "auto", "confirm-once", "confirm-each", "grant-required",
4
+ ]);
5
+ const _registry = new Map();
6
+ /** Register a named environment configuration. */
7
+ export function registerEnvironment(name, opts) {
8
+ const { host = "", port = 0, database = "", schema = "public", approval_mode = "auto", driver = "postgresql", grant_duration_hours, extras, policy, } = opts;
9
+ if (!_VALID_APPROVAL_MODES.has(approval_mode)) {
10
+ // Python sorts the frozenset; mirror that for parity with pytest-match.
11
+ const sorted = [..._VALID_APPROVAL_MODES].sort();
12
+ const sortedRepr = "[" + sorted.map((s) => `'${s}'`).join(", ") + "]";
13
+ throw new Error(`approval_mode must be one of ${sortedRepr}, got '${approval_mode}'`);
14
+ }
15
+ const base = {
16
+ host,
17
+ port,
18
+ database,
19
+ schema,
20
+ approval_mode,
21
+ driver,
22
+ };
23
+ if (grant_duration_hours !== undefined) {
24
+ base.grant_duration_hours = grant_duration_hours;
25
+ }
26
+ if (extras !== undefined) {
27
+ base.extras = Object.freeze({ ...extras });
28
+ }
29
+ if (policy !== undefined) {
30
+ base.policy = Object.freeze({ ...policy });
31
+ }
32
+ const cfg = Object.freeze(base);
33
+ _registry.set(name, cfg);
34
+ }
35
+ /** Return the config for `name`, or throw an EnvironmentNotRegisteredError. */
36
+ export function getEnvironment(name) {
37
+ const cfg = _registry.get(name);
38
+ if (cfg === undefined) {
39
+ const err = new Error(`Environment '${name}' is not registered`);
40
+ err.name = "EnvironmentNotRegisteredError";
41
+ throw err;
42
+ }
43
+ return cfg;
44
+ }
45
+ /** Return a list of registered environment names. */
46
+ export function listEnvironments() {
47
+ return [..._registry.keys()];
48
+ }
49
+ /** Remove all registered environments. */
50
+ export function clearEnvironments() {
51
+ _registry.clear();
52
+ }
53
+ //# sourceMappingURL=environments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../../src/connectors/db/lib/environments.ts"],"names":[],"mappings":"AAoBA,0EAA0E;AAC1E,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IACzD,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB;CACzD,CAAC,CAAC;AAgCH,MAAM,SAAS,GAAmC,IAAI,GAAG,EAAE,CAAC;AAc5D,kDAAkD;AAClD,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,IAAgC;IAEhC,MAAM,EACJ,IAAI,GAAG,EAAE,EACT,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,EAAE,EACb,MAAM,GAAG,QAAQ,EACjB,aAAa,GAAG,MAAM,EACtB,MAAM,GAAG,YAAY,EACrB,oBAAoB,EACpB,MAAM,EACN,MAAM,GACP,GAAG,IAAI,CAAC;IACT,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9C,wEAAwE;QACxE,MAAM,MAAM,GAAG,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,gCAAgC,UAAU,UAAU,aAAa,GAAG,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAUN;QACF,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,aAAa;QACb,MAAM;KACP,CAAC;IACF,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,GAAG,GAAsB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,CAAC;QACjE,GAAG,CAAC,IAAI,GAAG,+BAA+B,CAAC;QAC3C,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,iBAAiB;IAC/B,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * wiki_db — shared library for safe database access.
3
+ *
4
+ * Public API mirrors `.claude/agents/lib/wiki_db/__init__.py`:
5
+ * import { executeQuery, enableAudit, disableAudit } from "wiki_db";
6
+ * import { Policy, Decision, checkQuery } from "wiki_db/policy";
7
+ * import { getEnvironment, listEnvironments } from "wiki_db/environments";
8
+ *
9
+ * v2: drivers load on demand via `ensureDriver(name)` (invoked internally
10
+ * by `connection.getConnection(envName)`). Importing this barrel no longer
11
+ * pulls the optional Phase E deps (`pg`, `mysql2`, `mssql`, `mongodb`,
12
+ * `@aws-sdk/client-dynamodb`) into memory. Consumers that need a driver
13
+ * class directly should import from its path (e.g.
14
+ * `"./drivers/postgresql.js"`) — this barrel only re-exports the
15
+ * mandatory SQLite driver.
16
+ */
17
+ export * from "./policy.js";
18
+ export * from "./query.js";
19
+ export * from "./environments.js";
20
+ export * from "./audit.js";
21
+ export * from "./credentials.js";
22
+ export * from "./schema.js";
23
+ export * from "./connection.js";
24
+ export * from "./plugin_config.js";
25
+ export * from "./drivers/base.js";
26
+ export { SQLiteDriver } from "./drivers/sqlite.js";
27
+ export { ensureDriver, registerAll as registerAllDrivers } from "./drivers/register.js";
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connectors/db/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * wiki_db — shared library for safe database access.
3
+ *
4
+ * Public API mirrors `.claude/agents/lib/wiki_db/__init__.py`:
5
+ * import { executeQuery, enableAudit, disableAudit } from "wiki_db";
6
+ * import { Policy, Decision, checkQuery } from "wiki_db/policy";
7
+ * import { getEnvironment, listEnvironments } from "wiki_db/environments";
8
+ *
9
+ * v2: drivers load on demand via `ensureDriver(name)` (invoked internally
10
+ * by `connection.getConnection(envName)`). Importing this barrel no longer
11
+ * pulls the optional Phase E deps (`pg`, `mysql2`, `mssql`, `mongodb`,
12
+ * `@aws-sdk/client-dynamodb`) into memory. Consumers that need a driver
13
+ * class directly should import from its path (e.g.
14
+ * `"./drivers/postgresql.js"`) — this barrel only re-exports the
15
+ * mandatory SQLite driver.
16
+ */
17
+ // Core
18
+ export * from "./policy.js";
19
+ export * from "./query.js";
20
+ export * from "./environments.js";
21
+ export * from "./audit.js";
22
+ export * from "./credentials.js";
23
+ export * from "./schema.js";
24
+ export * from "./connection.js";
25
+ export * from "./plugin_config.js";
26
+ // Drivers
27
+ export * from "./drivers/base.js";
28
+ export { SQLiteDriver } from "./drivers/sqlite.js";
29
+ export { ensureDriver, registerAll as registerAllDrivers } from "./drivers/register.js";
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connectors/db/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO;AACP,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,UAAU;AACV,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,64 @@
1
+ export type PolicyRule = "allow" | "present" | "escalate" | "deny";
2
+ export type RestrictedPolicyRule = Exclude<PolicyRule, "allow">;
3
+ export type UnboundedSelectMode = "escalate" | "allow";
4
+ export interface PolicyRules {
5
+ read: PolicyRule;
6
+ write: PolicyRule;
7
+ delete: PolicyRule;
8
+ admin: RestrictedPolicyRule;
9
+ privilege: RestrictedPolicyRule;
10
+ unbounded_select: UnboundedSelectMode;
11
+ }
12
+ export interface ServerConfig {
13
+ driver: string;
14
+ policy?: Partial<PolicyRules>;
15
+ approval_mode?: string;
16
+ [key: string]: unknown;
17
+ }
18
+ export interface AuditConfig {
19
+ enabled: boolean;
20
+ path?: string;
21
+ }
22
+ export interface PluginConfig {
23
+ policy: PolicyRules;
24
+ servers: Record<string, ServerConfig>;
25
+ audit?: AuditConfig;
26
+ }
27
+ export declare const DEFAULT_POLICY: PolicyRules;
28
+ /**
29
+ * Merge a global + (optional) per-server policy on top of defaults.
30
+ * Keys absent from the override fall back to `base`.
31
+ */
32
+ export declare function mergePolicy(base: PolicyRules, override?: Partial<PolicyRules>): PolicyRules;
33
+ /**
34
+ * Validate a raw parsed YAML object against the plugin-config schema.
35
+ * Throws a descriptive error on any shape or value violation.
36
+ */
37
+ export declare function validatePluginConfig(raw: unknown): PluginConfig;
38
+ export interface LoadPluginConfigOptions {
39
+ /** Explicit path (file is parsed directly). */
40
+ explicitPath?: string;
41
+ }
42
+ /**
43
+ * Parse + validate a plugin config from an explicit YAML file. Returns null
44
+ * when the file is not plugin-shaped (no `policy:` or `servers:` at the
45
+ * root) so callers can fall through to legacy parsers.
46
+ *
47
+ * V2.0: discovery via `~/.db-agent/` is removed. Standalone CLI runs read
48
+ * from `~/.connectors/config.yaml` via `@narai/connector-config`. This API
49
+ * remains for callers that pass `--config-path` directly.
50
+ */
51
+ export declare function loadPluginConfig(opts?: LoadPluginConfigOptions): PluginConfig | null;
52
+ /**
53
+ * Build a `PluginConfig` from a `connector-config`-resolved slice.
54
+ *
55
+ * The connector-config lib uses the new vocab natively. Each value in
56
+ * `slice.policy` is mapped onto our `PolicyRules`; `slice.options.servers`
57
+ * is validated through the same `validateServer` path so per-server
58
+ * overrides are still safety-checked.
59
+ */
60
+ export declare function pluginConfigFromSlice(slice: {
61
+ policy?: Record<string, unknown>;
62
+ options?: Record<string, unknown>;
63
+ }): PluginConfig;
64
+ //# sourceMappingURL=plugin_config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin_config.d.ts","sourceRoot":"","sources":["../../../../src/connectors/db/lib/plugin_config.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,EAAE,oBAAoB,CAAC;IAIhC,gBAAgB,EAAE,mBAAmB,CAAC;CACvC;AAUD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,WAO5B,CAAC;AA6CF;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,WAAW,CAUb;AAsJD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CA0C/D;AAED,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,uBAA4B,GACjC,YAAY,GAAG,IAAI,CAUrB;AASD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,GAAG,YAAY,CA8Bf"}