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,6 @@
1
+ {
2
+ "name": "confluence-agent-plugin",
3
+ "version": "1.0.0",
4
+ "description": "Read-only Confluence connector for Claude Code. Wraps @narai/confluence-agent-connector.",
5
+ "author": "narai"
6
+ }
@@ -0,0 +1,15 @@
1
+ # confluence-agent-plugin
2
+
3
+ Claude Code plugin that wraps `@narai/confluence-agent-connector` as a read-only Confluence skill and slash command. Same layout as aws/gcp/notion-agent-plugin.
4
+
5
+ ## Credentials
6
+
7
+ ```bash
8
+ export CONFLUENCE_SITE_URL="https://your.atlassian.net"
9
+ export CONFLUENCE_EMAIL="you@example.com"
10
+ export CONFLUENCE_API_TOKEN="…"
11
+ ```
12
+
13
+ ## License
14
+
15
+ MIT
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
5
+ echo "confluence-agent: CLAUDE_PLUGIN_DATA is not set (run from inside Claude Code)" >&2
6
+ exit 2
7
+ fi
8
+
9
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/@narai/confluence-agent-connector/dist/cli.js"
10
+
11
+ if [ ! -f "$CLI" ]; then
12
+ echo "confluence-agent: connector CLI not found at $CLI" >&2
13
+ echo "Restart your Claude Code session to re-run the SessionStart install hook." >&2
14
+ exit 2
15
+ fi
16
+
17
+ exec node "$CLI" "$@"
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: Run a read-only Confluence query via the confluence-agent connector
3
+ argument-hint: "<action> <params-json>"
4
+ ---
5
+
6
+ Invoke the `confluence-agent` skill with the user's $ARGUMENTS as the action name and params JSON. Return the connector's JSON envelope verbatim.
@@ -0,0 +1,49 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (mkdir -p \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/\" && cd \"${CLAUDE_PLUGIN_DATA}\" && npm install --no-audit --no-fund) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""
9
+ },
10
+ {
11
+ "type": "command",
12
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/plugin/hooks/reminder.mjs\" 2>/dev/null || true"
13
+ },
14
+ {
15
+ "type": "command",
16
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
17
+ "env": { "USAGE_CONNECTOR_NAME": "confluence" }
18
+ }
19
+ ]
20
+ }
21
+ ],
22
+ "PostToolUse": [
23
+ {
24
+ "matcher": "Bash",
25
+ "hooks": [
26
+ {
27
+ "type": "command",
28
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
29
+ "env": {
30
+ "USAGE_CONNECTOR_NAME": "confluence",
31
+ "USAGE_BIN_HINT": "@narai/confluence-agent-connector"
32
+ }
33
+ }
34
+ ]
35
+ }
36
+ ],
37
+ "SessionEnd": [
38
+ {
39
+ "hooks": [
40
+ {
41
+ "type": "command",
42
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
43
+ "env": { "USAGE_CONNECTOR_NAME": "confluence" }
44
+ }
45
+ ]
46
+ }
47
+ ]
48
+ }
49
+ }
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SessionStart curation reminder. Runs after the install hook.
4
+ *
5
+ * Imports `evaluateNudge` from the installed toolkit (lives under
6
+ * `${CLAUDE_PLUGIN_DATA}/node_modules`), checks thresholds + user skip
7
+ * state in `~/.claude/connectors/curation-prefs.json`, and prints one
8
+ * banner line if the Confluence connector has uncurated hardship entries
9
+ * worth reviewing.
10
+ *
11
+ * Non-failing: any error (missing toolkit, unreadable prefs, etc.) is
12
+ * swallowed. A missing nudge is better than a noisy session start.
13
+ */
14
+ try {
15
+ const data = process.env.CLAUDE_PLUGIN_DATA;
16
+ if (!data) process.exit(0);
17
+ const toolkitEntry = `${data}/node_modules/@narai/connector-toolkit/dist/plugin/reminder.js`;
18
+ const mod = await import(toolkitEntry);
19
+ const decision = mod.evaluateNudge({ connectors: ["confluence"] });
20
+ if (decision.nudge) {
21
+ process.stdout.write(decision.banner + "\n");
22
+ }
23
+ } catch {
24
+ // best-effort — reminder never blocks startup
25
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "confluence-agent-plugin-runtime",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "@narai/confluence-agent-connector": "file:.."
7
+ }
8
+ }
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: confluence-agent
3
+ description: |
4
+ Use when the user asks about read-only Confluence content — search via
5
+ CQL, single page retrieval, or space metadata. Never modifies
6
+ Confluence content.
7
+ context: fork
8
+ ---
9
+
10
+ # Confluence Agent
11
+
12
+ Answer the user's question by invoking the `confluence-agent` binary
13
+ exposed by this plugin. It delegates to
14
+ `@narai/confluence-agent-connector` via Atlassian's Confluence REST v1.
15
+
16
+ ## Invocation
17
+
18
+ ```
19
+ confluence-agent --action <action> --params '<json>'
20
+ ```
21
+
22
+ Return the connector's JSON envelope verbatim.
23
+
24
+ ## Supported actions
25
+
26
+ | Action | Required params |
27
+ |---|---|
28
+ | `cql_search` | `cql`, optional `max_results` |
29
+ | `get_page` | `page_id` (numeric), optional `expand` |
30
+ | `get_space` | `space_key` (e.g. `DEV`) |
31
+
32
+ ## Credentials
33
+
34
+ Set `CONFLUENCE_SITE_URL`, `CONFLUENCE_EMAIL`, `CONFLUENCE_API_TOKEN`
35
+ before use.
36
+
37
+ ## Safety
38
+
39
+ Read-only — only GET requests are permitted by the connector's HTTP
40
+ method whitelist.
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "db-agent-plugin",
3
+ "version": "1.0.0",
4
+ "description": "Safe, read-only database query agent for Claude Code. Wraps @narai/db-agent-connector. Every statement passes the policy gate before any driver loads or any connection is opened.",
5
+ "author": {
6
+ "name": "Narai Labs",
7
+ "url": "https://github.com/narailabs"
8
+ },
9
+ "homepage": "https://github.com/narailabs/db-agent-connector",
10
+ "repository": "https://github.com/narailabs/db-agent-connector",
11
+ "license": "MIT",
12
+ "keywords": ["database", "sql", "postgresql", "mysql", "sqlite", "policy-gate"],
13
+ "userConfig": {
14
+ "install_guardrails": {
15
+ "description": "Block direct DB-client invocations (psql, mysql, sqlite3, mongosh, pg_dump, aws dynamodb, ...) from Bash so all database access is routed through the db-agent CLI. Strongly recommended. Set to 'off' to disable.",
16
+ "sensitive": false
17
+ }
18
+ },
19
+ "hooks": "./hooks/hooks.json"
20
+ }
@@ -0,0 +1,13 @@
1
+ # db-agent-plugin
2
+
3
+ Claude Code plugin that wraps [`@narai/db-agent-connector`](https://www.npmjs.com/package/@narai/db-agent-connector).
4
+
5
+ Exposes the `db-agent` skill. Every query passes through the policy gate before any driver loads or any connection opens. V2.0 vocab and defaults:
6
+
7
+ - `read` (SELECT/EXPLAIN/SHOW/DESCRIBE/WITH) → executed through the driver with row/timeout caps
8
+ - `write` (INSERT/UPDATE/REPLACE/MERGE/UPSERT) → escalates by default
9
+ - `delete` (DELETE/TRUNCATE) → returned as formatted SQL, never executed
10
+ - `admin` (CREATE/DROP/ALTER/RENAME) → returned as formatted SQL, never executed
11
+ - `privilege` (GRANT/REVOKE) → hard-denied
12
+
13
+ Install via Claude Code's plugin marketplace. The `SessionStart` hook installs `@narai/db-agent-connector` into the plugin's data directory on first use.
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
5
+ echo "db-agent: CLAUDE_PLUGIN_DATA is not set (run from inside Claude Code)" >&2
6
+ exit 2
7
+ fi
8
+
9
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/@narai/db-agent-connector/dist/cli.js"
10
+
11
+ if [ ! -f "$CLI" ]; then
12
+ echo "db-agent: connector CLI not found at $CLI" >&2
13
+ echo "Restart your Claude Code session to re-run the SessionStart install hook." >&2
14
+ exit 2
15
+ fi
16
+
17
+ exec node "$CLI" "$@"
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: Run a read-only database query via the db-agent connector
3
+ argument-hint: "<action> <params-json>"
4
+ ---
5
+
6
+ Invoke the `db-agent` skill with the user's $ARGUMENTS as the action name and params JSON. Return the connector's JSON envelope verbatim.
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env node
2
+ // hooks/db-guard.mjs — db-agent-connector PreToolUse guardrail.
3
+ //
4
+ // V2.0: thin stub. Loads `plugin/hooks/guardrails.json` and delegates to
5
+ // the toolkit's `findBlockingRule`. The hub's unified `guardrails.mjs`
6
+ // reads the same manifest when the hub is installed; this file is the
7
+ // standalone fallback when only db-agent is installed.
8
+ //
9
+ // V2.0 regression: deny-event audit logging is no longer written from
10
+ // this hook (the toolkit's matcher doesn't log). The audit module still
11
+ // records executed-query events.
12
+ //
13
+ // Best-effort, not a security boundary. Fails open on any error.
14
+
15
+ import { existsSync, readFileSync } from "node:fs";
16
+ import { homedir } from "node:os";
17
+ import { dirname, join } from "node:path";
18
+ import { fileURLToPath, pathToFileURL } from "node:url";
19
+
20
+ const __dirname = dirname(fileURLToPath(import.meta.url));
21
+ const MANIFEST_PATH = join(__dirname, "guardrails.json");
22
+
23
+ function readStdin() {
24
+ try {
25
+ return readFileSync(0, "utf-8");
26
+ } catch {
27
+ return "";
28
+ }
29
+ }
30
+
31
+ async function loadToolkit() {
32
+ const candidates = [
33
+ // 1. Bundle: db-guard at narai-primitives/plugins/db-agent/hooks/;
34
+ // toolkit at narai-primitives/dist/toolkit/guardrail.js (3 ups)
35
+ join(__dirname, "..", "..", "..", "dist", "toolkit", "guardrail.js"),
36
+ // 2. Bundle installed as a Claude Code plugin
37
+ process.env.CLAUDE_PLUGIN_DATA
38
+ ? join(process.env.CLAUDE_PLUGIN_DATA, "node_modules", "narai-primitives", "dist", "toolkit", "guardrail.js")
39
+ : null,
40
+ // 3. Legacy plugin install
41
+ process.env.CLAUDE_PLUGIN_DATA
42
+ ? join(process.env.CLAUDE_PLUGIN_DATA, "node_modules", "@narai", "connector-toolkit", "dist", "guardrail.js")
43
+ : null,
44
+ join(homedir(), "src", "connectors", "connector-toolkit", "dist", "guardrail.js"),
45
+ // 4. Local resolution from this file's nearest node_modules (dev sandbox).
46
+ join(__dirname, "..", "..", "node_modules", "@narai", "connector-toolkit", "dist", "guardrail.js"),
47
+ ].filter((p) => p !== null);
48
+ for (const p of candidates) {
49
+ if (!existsSync(p)) continue;
50
+ try {
51
+ return await import(pathToFileURL(p).href);
52
+ } catch {
53
+ // try next
54
+ }
55
+ }
56
+ return null;
57
+ }
58
+
59
+ async function main() {
60
+ const raw = readStdin();
61
+ if (!raw) return;
62
+
63
+ let payload;
64
+ try {
65
+ payload = JSON.parse(raw);
66
+ } catch {
67
+ return;
68
+ }
69
+
70
+ if (payload?.tool_name !== "Bash") return;
71
+ if (process.env.DB_AGENT_GUARDRAILS === "off") return;
72
+
73
+ const command = payload?.tool_input?.command;
74
+ if (typeof command !== "string" || !command.trim()) return;
75
+
76
+ if (!existsSync(MANIFEST_PATH)) return;
77
+
78
+ const toolkit = await loadToolkit();
79
+ if (!toolkit) return;
80
+ const { findBlockingRule, defaultDenyMessage, loadGuardrailManifest } = toolkit;
81
+ if (typeof findBlockingRule !== "function") return;
82
+
83
+ let manifest;
84
+ try {
85
+ manifest = loadGuardrailManifest(MANIFEST_PATH);
86
+ } catch {
87
+ return;
88
+ }
89
+
90
+ const match = findBlockingRule(command, [manifest]);
91
+ if (!match) return;
92
+
93
+ process.stdout.write(
94
+ JSON.stringify({
95
+ hookSpecificOutput: {
96
+ hookEventName: "PreToolUse",
97
+ permissionDecision: "deny",
98
+ permissionDecisionReason: defaultDenyMessage(match),
99
+ },
100
+ }),
101
+ );
102
+ }
103
+
104
+ try {
105
+ await main();
106
+ process.exit(0);
107
+ } catch (err) {
108
+ process.stderr.write(`db-guard: fail-open (${(err && err.message) || err})\n`);
109
+ process.exit(0);
110
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "version": 1,
3
+ "name": "db-agent-connector",
4
+ "rules": [
5
+ {
6
+ "block_first_token_basename": [
7
+ "psql",
8
+ "mysql",
9
+ "mariadb",
10
+ "sqlite3",
11
+ "mongosh",
12
+ "mongo",
13
+ "mongodump",
14
+ "mongorestore",
15
+ "pg_dump",
16
+ "pg_restore",
17
+ "mysqldump",
18
+ "sqlcmd",
19
+ "mssql-cli",
20
+ "duckdb"
21
+ ],
22
+ "block_two_token_command": ["aws dynamodb"],
23
+ "redirect": "Route database access through the db-agent CLI: `db-agent --action query --params '{\"env\":\"<name>\",\"sql\":\"...\"}'` or use sqlite_path. Do NOT bypass — reformulate the intent."
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "SessionStart": [
3
+ {
4
+ "hooks": [
5
+ {
6
+ "type": "command",
7
+ "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (mkdir -p \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/\" && cd \"${CLAUDE_PLUGIN_DATA}\" && npm install --no-audit --no-fund) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""
8
+ },
9
+ {
10
+ "type": "command",
11
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/plugin/hooks/reminder.mjs\" 2>/dev/null || true"
12
+ },
13
+ {
14
+ "type": "command",
15
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
16
+ "env": { "USAGE_CONNECTOR_NAME": "db" }
17
+ }
18
+ ]
19
+ }
20
+ ],
21
+ "PreToolUse": [
22
+ {
23
+ "matcher": "Bash",
24
+ "hooks": [
25
+ {
26
+ "type": "command",
27
+ "command": "node ${CLAUDE_PLUGIN_ROOT}/plugin/hooks/db-guard.mjs",
28
+ "env": {
29
+ "DB_AGENT_GUARDRAILS": "${user_config.install_guardrails}"
30
+ }
31
+ }
32
+ ]
33
+ }
34
+ ],
35
+ "PostToolUse": [
36
+ {
37
+ "matcher": "Bash",
38
+ "hooks": [
39
+ {
40
+ "type": "command",
41
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
42
+ "env": {
43
+ "USAGE_CONNECTOR_NAME": "db",
44
+ "USAGE_BIN_HINT": "@narai/db-agent-connector"
45
+ }
46
+ }
47
+ ]
48
+ }
49
+ ],
50
+ "SessionEnd": [
51
+ {
52
+ "hooks": [
53
+ {
54
+ "type": "command",
55
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
56
+ "env": { "USAGE_CONNECTOR_NAME": "db" }
57
+ }
58
+ ]
59
+ }
60
+ ]
61
+ }
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SessionStart curation reminder for the db-agent connector.
4
+ */
5
+ try {
6
+ const data = process.env.CLAUDE_PLUGIN_DATA;
7
+ if (!data) process.exit(0);
8
+ const toolkitEntry = `${data}/node_modules/@narai/connector-toolkit/dist/plugin/reminder.js`;
9
+ const mod = await import(toolkitEntry);
10
+ const decision = mod.evaluateNudge({ connectors: ["db"] });
11
+ if (decision.nudge) {
12
+ process.stdout.write(decision.banner + "\n");
13
+ }
14
+ } catch {
15
+ // best-effort — reminder never blocks startup
16
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "db-agent-plugin-runtime",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "@narai/db-agent-connector": "file:.."
7
+ }
8
+ }
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: db-agent
3
+ description: |
4
+ Use when the user asks about reading data from a database — SELECT queries,
5
+ schema introspection, "show me the rows/tables/columns…". Supports
6
+ PostgreSQL, MySQL, SQLite, SQL Server, MongoDB, DynamoDB, and Oracle via
7
+ pluggable drivers. Every statement passes the policy gate BEFORE any
8
+ driver loads or any connection opens: write statements escalate, delete
9
+ and admin statements return formatted SQL without executing, privilege
10
+ statements are hard-denied.
11
+ context: fork
12
+ ---
13
+
14
+ # Database Agent
15
+
16
+ Answer the user's question by invoking the `db-agent` binary exposed by this
17
+ plugin. It delegates to `@narai/db-agent-connector`, which enforces the
18
+ policy gate before any backend is touched.
19
+
20
+ ## Invocation
21
+
22
+ ```
23
+ db-agent --action <action> --params '<json>'
24
+ ```
25
+
26
+ Return the connector's JSON envelope verbatim.
27
+
28
+ ## Supported actions
29
+
30
+ | Action | Required params | Optional params |
31
+ |----------|-----------------------------------------------|-------------------------------------------------------------------|
32
+ | `query` | `env` + `sql` (or `sqlite_path` + `sql`) | `max_rows` (default 1000), `timeout_ms` (default 30000), `approval_mode`, `config_path` |
33
+ | `schema` | `env` (or `sqlite_path`) | `filter` (table-name pattern like `users%`), `config_path` |
34
+
35
+ ## Envelope statuses
36
+
37
+ - `ok` — read succeeded; `rows` / `tables` / `row_count` / `columns` / `truncated` populated.
38
+ - `present_only` — formatted SQL returned, **never executed**. Default for `delete` (DELETE/TRUNCATE) and `admin` (CREATE/DROP/ALTER/RENAME).
39
+ - `denied` — `privilege` (GRANT/REVOKE) always; or the configured policy denied.
40
+ - `escalate` — needs approval. Default for `write` (INSERT/UPDATE/REPLACE/MERGE/UPSERT); also `grant_required` mode and unbounded SELECT.
41
+ - `error` — driver or SQL error after an allowed verdict.
42
+
43
+ ## Safety
44
+
45
+ Read-only by design. The policy gate rejects every non-read statement before
46
+ any driver loads. WRITE escalates by default; DELETE/ADMIN return formatted
47
+ SQL with no execution; PRIVILEGE is hard-denied. Never shell out to `psql`,
48
+ `mysql`, `sqlite3`, `mongosh`, `pg_dump`, `duckdb`, or `aws dynamodb` — the
49
+ `db-agent` binary is the only sanctioned channel. Never edit the operator's
50
+ config to weaken a policy decision; report the decision instead.
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "gcp-agent-plugin",
3
+ "version": "1.0.0",
4
+ "description": "Read-only GCP connector for Claude Code. Wraps @narai/gcp-agent-connector. Cloud Run, Cloud SQL, Pub/Sub, Cloud Logging.",
5
+ "author": "narai"
6
+ }
@@ -0,0 +1,31 @@
1
+ # gcp-agent-plugin
2
+
3
+ Claude Code plugin that wraps [`@narai/gcp-agent-connector`](https://www.npmjs.com/package/@narai/gcp-agent-connector) as a read-only GCP skill and slash command.
4
+
5
+ - **Skill** `gcp-agent` — automatic invocation for Cloud Run / Cloud SQL / Pub/Sub / Cloud Logging questions.
6
+ - **Slash command** `/gcp-agent <action> <params-json>`.
7
+ - **Binary** `gcp-agent` — thin shim over the installed connector CLI.
8
+
9
+ ## How install works
10
+
11
+ On first `SessionStart` the hook in `hooks/hooks.json`:
12
+
13
+ 1. compares the plugin's `package.json` with `${CLAUDE_PLUGIN_DATA}/package.json`;
14
+ 2. if different or missing, copies the manifest and runs `npm install --no-audit --no-fund` inside `${CLAUDE_PLUGIN_DATA}`;
15
+ 3. if the install fails, removes the stale copy so the hook re-runs next session.
16
+
17
+ After install,
18
+ `${CLAUDE_PLUGIN_DATA}/node_modules/@narai/gcp-agent-connector/dist/cli.js`
19
+ exists and `bin/gcp-agent` exec's it.
20
+
21
+ ## Credentials
22
+
23
+ Install the Google Cloud SDK and authenticate:
24
+
25
+ ```bash
26
+ gcloud auth application-default login
27
+ ```
28
+
29
+ ## License
30
+
31
+ MIT
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bash
2
+ # gcp-agent — thin shim over @narai/gcp-agent-connector.
3
+ set -euo pipefail
4
+
5
+ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
6
+ echo "gcp-agent: CLAUDE_PLUGIN_DATA is not set (run from inside Claude Code)" >&2
7
+ exit 2
8
+ fi
9
+
10
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/@narai/gcp-agent-connector/dist/cli.js"
11
+
12
+ if [ ! -f "$CLI" ]; then
13
+ echo "gcp-agent: connector CLI not found at $CLI" >&2
14
+ echo "Restart your Claude Code session to re-run the SessionStart install hook." >&2
15
+ exit 2
16
+ fi
17
+
18
+ exec node "$CLI" "$@"
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: Run a read-only GCP query via the gcp-agent connector
3
+ argument-hint: "<action> <params-json>"
4
+ ---
5
+
6
+ Invoke the `gcp-agent` skill with the user's $ARGUMENTS as the action name and params JSON. Return the connector's JSON envelope verbatim.
@@ -0,0 +1,49 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (mkdir -p \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/\" && cd \"${CLAUDE_PLUGIN_DATA}\" && npm install --no-audit --no-fund) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""
9
+ },
10
+ {
11
+ "type": "command",
12
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/plugin/hooks/reminder.mjs\" 2>/dev/null || true"
13
+ },
14
+ {
15
+ "type": "command",
16
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
17
+ "env": { "USAGE_CONNECTOR_NAME": "gcp" }
18
+ }
19
+ ]
20
+ }
21
+ ],
22
+ "PostToolUse": [
23
+ {
24
+ "matcher": "Bash",
25
+ "hooks": [
26
+ {
27
+ "type": "command",
28
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
29
+ "env": {
30
+ "USAGE_CONNECTOR_NAME": "gcp",
31
+ "USAGE_BIN_HINT": "@narai/gcp-agent-connector"
32
+ }
33
+ }
34
+ ]
35
+ }
36
+ ],
37
+ "SessionEnd": [
38
+ {
39
+ "hooks": [
40
+ {
41
+ "type": "command",
42
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
43
+ "env": { "USAGE_CONNECTOR_NAME": "gcp" }
44
+ }
45
+ ]
46
+ }
47
+ ]
48
+ }
49
+ }
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SessionStart curation reminder for the GCP connector.
4
+ */
5
+ try {
6
+ const data = process.env.CLAUDE_PLUGIN_DATA;
7
+ if (!data) process.exit(0);
8
+ const toolkitEntry = `${data}/node_modules/@narai/connector-toolkit/dist/plugin/reminder.js`;
9
+ const mod = await import(toolkitEntry);
10
+ const decision = mod.evaluateNudge({ connectors: ["gcp"] });
11
+ if (decision.nudge) {
12
+ process.stdout.write(decision.banner + "\n");
13
+ }
14
+ } catch {
15
+ // best-effort — reminder never blocks startup
16
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "gcp-agent-plugin-runtime",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "description": "Runtime manifest for gcp-agent-plugin. The SessionStart hook runs `npm install` on this manifest into ${CLAUDE_PLUGIN_DATA}.",
6
+ "dependencies": {
7
+ "@narai/gcp-agent-connector": "file:.."
8
+ }
9
+ }