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,93 @@
1
+ /**
2
+ * query.ts — Parameterized query execution with policy enforcement.
3
+ *
4
+ * Wraps `driver.executeReadAsync(conn, sql, params, maxRows, timeoutMs)`
5
+ * with policy checks, error handling, and structured results.
6
+ * NEVER raises — all exceptions are caught and returned as error dicts.
7
+ *
8
+ * Possible statuses:
9
+ * ok — query ran successfully
10
+ * denied — policy blocked the query
11
+ * present_only — statement displayed but not executed (per policy)
12
+ * escalate — query needs human approval
13
+ * error — execution failed
14
+ *
15
+ * Driver contract: callers supply a `QueryableDriver` whose
16
+ * `executeReadAsync` maps onto the public result format. Sync drivers
17
+ * (SQLite, legacy test stubs) wrap their `executeRead` into an async
18
+ * shim at the call site — see `adaptDriver` in
19
+ * `agents/wiki-db-agent/scripts/db_query.ts`.
20
+ */
21
+ import { performance } from "node:perf_hooks";
22
+ import { Decision } from "./policy.js";
23
+ /** Execute a SQL query through policy checks and the database driver.
24
+ *
25
+ * Returns a structured dict — never raises.
26
+ */
27
+ export async function executeQuery(driver, sql, policy, options = {}) {
28
+ const { conn, params = null, max_rows: maxRows = 1000, timeout_ms: timeoutMs = 30000, } = options;
29
+ const start = performance.now();
30
+ try {
31
+ // 1. Policy check
32
+ const policyResult = policy.checkQuery(sql);
33
+ if (policyResult.decision === Decision.DENY) {
34
+ return {
35
+ status: "denied",
36
+ reason: policyResult.reason,
37
+ execution_time_ms: _elapsedMs(start),
38
+ };
39
+ }
40
+ if (policyResult.decision === Decision.PRESENT_ONLY) {
41
+ return {
42
+ status: "present_only",
43
+ reason: policyResult.reason,
44
+ formatted_sql: policyResult.formatted_sql,
45
+ execution_time_ms: _elapsedMs(start),
46
+ };
47
+ }
48
+ if (policyResult.decision === Decision.ESCALATE) {
49
+ return {
50
+ status: "escalate",
51
+ reason: policyResult.reason,
52
+ execution_time_ms: _elapsedMs(start),
53
+ };
54
+ }
55
+ // 2. Execute via driver (ALLOW). G-QUERY-ASYNC-ONLY: every driver
56
+ // must expose executeReadAsync. Sync drivers (SQLite, legacy test
57
+ // stubs) get wrapped by `adaptDriver` at the call site.
58
+ if (typeof driver.executeReadAsync !== "function") {
59
+ throw new Error("driver.executeReadAsync is required — wrap sync drivers at the call site");
60
+ }
61
+ const raw = await driver.executeReadAsync(conn, sql, params, maxRows, timeoutMs);
62
+ if (raw.status === "error") {
63
+ return {
64
+ status: "error",
65
+ error: `${raw.error_code ?? "SQL_ERROR"}: ${raw.error ?? "unknown driver error"}`,
66
+ execution_time_ms: _elapsedMs(start),
67
+ };
68
+ }
69
+ const rows = raw.rows ?? [];
70
+ const columns = raw.columns ?? [];
71
+ const truncated = raw.truncated ?? rows.length >= maxRows;
72
+ return {
73
+ status: "ok",
74
+ rows,
75
+ columns,
76
+ row_count: rows.length,
77
+ truncated,
78
+ execution_time_ms: _elapsedMs(start),
79
+ };
80
+ }
81
+ catch (exc) {
82
+ return {
83
+ status: "error",
84
+ error: exc.message,
85
+ execution_time_ms: _elapsedMs(start),
86
+ };
87
+ }
88
+ }
89
+ function _elapsedMs(start) {
90
+ // performance.now() returns ms directly.
91
+ return Math.round((performance.now() - start) * 100) / 100;
92
+ }
93
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../src/connectors/db/lib/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { DatabaseDriver, Table } from "./drivers/base.js";
2
+ /** Cached schema introspection via a database driver. */
3
+ export declare class SchemaManager {
4
+ private readonly _driver;
5
+ private readonly _ttl;
6
+ private readonly _cache;
7
+ constructor(driver: DatabaseDriver, ttl?: number);
8
+ /** Get schema, using cache if within TTL. */
9
+ getSchema(conn: unknown, env: string, schemaName?: string, tableFilter?: string | null): Promise<Table[]>;
10
+ /** Force re-query on next call. */
11
+ clearCache(): void;
12
+ }
13
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/connectors/db/lib/schema.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAkB/D,yDAAyD;AACzD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,MAAM,EAAE,cAAc,EAAE,GAAG,GAAE,MAAc;IAMvD,6CAA6C;IACvC,SAAS,CACb,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,MAAW,EACvB,WAAW,GAAE,MAAM,GAAG,IAAW,GAChC,OAAO,CAAC,KAAK,EAAE,CAAC;IAqDnB,mCAAmC;IACnC,UAAU,IAAI,IAAI;CAGnB"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * schema.ts — Schema introspection with TTL cache.
3
+ *
4
+ * Mirrors `schema.py`:
5
+ * - `SchemaManager(driver, ttl=300)` caches driver.getSchema results,
6
+ * keyed by `(env, schemaName, tableFilter)`.
7
+ * - On driver error, returns `[]` (never raises).
8
+ * - `clearCache()` forces re-query on next call.
9
+ *
10
+ * Phase E bridge:
11
+ * - Phase E drivers (pg, mysql, mssql, mongo, dynamo) expose
12
+ * `getSchemaAsync(conn, schema?, tableFilter?)` and return a useless
13
+ * stub from the sync `getSchema`. We detect the async method and await
14
+ * it when present; otherwise fall back to the sync call (sqlite path).
15
+ */
16
+ import { performance } from "node:perf_hooks";
17
+ import { logEvent } from "./audit.js";
18
+ /** Cached schema introspection via a database driver. */
19
+ export class SchemaManager {
20
+ _driver;
21
+ _ttl; // seconds
22
+ _cache;
23
+ constructor(driver, ttl = 300.0) {
24
+ this._driver = driver;
25
+ this._ttl = ttl;
26
+ this._cache = new Map();
27
+ }
28
+ /** Get schema, using cache if within TTL. */
29
+ async getSchema(conn, env, schemaName = "", tableFilter = null) {
30
+ // Python uses a tuple cache key; emulate with a JSON-encoded key so
31
+ // (None, "", "") and ("", "", "") differ exactly as in Python.
32
+ const cacheKey = JSON.stringify([env, schemaName, tableFilter]);
33
+ const now = performance.now();
34
+ const entry = this._cache.get(cacheKey);
35
+ if (entry !== undefined) {
36
+ // `ts` stored in ms; `_ttl` is seconds → compare in seconds.
37
+ if ((now - entry.ts) / 1000 < this._ttl) {
38
+ return entry.data;
39
+ }
40
+ }
41
+ let tables;
42
+ try {
43
+ const asyncHook = this._driver.getSchemaAsync;
44
+ if (typeof asyncHook === "function") {
45
+ tables = await asyncHook.call(this._driver, conn, schemaName, tableFilter);
46
+ }
47
+ else {
48
+ tables = this._driver.getSchema(conn, schemaName, tableFilter);
49
+ }
50
+ }
51
+ catch {
52
+ return [];
53
+ }
54
+ // A5 (G-DB-AUDIT extension): emit `schema_inspect` BEFORE returning the
55
+ // tables to the caller. The event documents which env+filter the
56
+ // introspection ran against and how much surface area it exposed
57
+ // (column_count is the sum across all tables — the most useful
58
+ // single number for capacity-style audits). We never throw from
59
+ // logEvent (the audit pipe is best-effort), so this is safe in every
60
+ // code path including the cache-hit fast-path above.
61
+ let columnCount = 0;
62
+ for (const t of tables)
63
+ columnCount += t.columns.length;
64
+ logEvent({
65
+ event_type: "schema_inspect",
66
+ details: {
67
+ env,
68
+ table_filter: tableFilter,
69
+ column_count: columnCount,
70
+ },
71
+ });
72
+ this._cache.set(cacheKey, { ts: now, data: tables });
73
+ return tables;
74
+ }
75
+ /** Force re-query on next call. */
76
+ clearCache() {
77
+ this._cache.clear();
78
+ }
79
+ }
80
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/connectors/db/lib/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiBtC,yDAAyD;AACzD,MAAM,OAAO,aAAa;IACP,OAAO,CAAiB;IACxB,IAAI,CAAS,CAAC,UAAU;IACxB,MAAM,CAA0B;IAEjD,YAAY,MAAsB,EAAE,MAAc,KAAK;QACrD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,SAAS,CACb,IAAa,EACb,GAAW,EACX,aAAqB,EAAE,EACvB,cAA6B,IAAI;QAEjC,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,6DAA6D;YAC7D,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC,IAAI,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,SAAS,GAAI,IAAI,CAAC,OAA6B,CAAC,cAAc,CAAC;YACrE,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAC3B,IAAI,CAAC,OAAO,EACZ,IAAI,EACJ,UAAU,EACV,WAAW,CACZ,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,wEAAwE;QACxE,iEAAiE;QACjE,iEAAiE;QACjE,+DAA+D;QAC/D,gEAAgE;QAChE,qEAAqE;QACrE,qDAAqD;QACrD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACxD,QAAQ,CAAC;YACP,UAAU,EAAE,gBAAgB;YAC5B,OAAO,EAAE;gBACP,GAAG;gBACH,YAAY,EAAE,WAAW;gBACzB,YAAY,EAAE,WAAW;aAC1B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mCAAmC;IACnC,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/connectors/gcp/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Thin bin entry. Library code lives in index.ts.
4
+ *
5
+ * Reads `~/.connectors/config.yaml` (or `NARAI_CONFIG_BLOB`, when injected
6
+ * by `@narai/connector-hub`) before `main()` runs and applies any configured
7
+ * GCP project / region / credentials path to `process.env`. Existing exports
8
+ * win — the bootstrap only fills in undefined entries.
9
+ */
10
+ import { loadConnectorEnvironment } from "narai-primitives/config";
11
+ import connector from "./index.js";
12
+ const GCP_ENV_MAPPING = {
13
+ project_id: "GCP_PROJECT_ID",
14
+ region: "GCP_REGION",
15
+ credentials: "GOOGLE_APPLICATION_CREDENTIALS",
16
+ };
17
+ async function run() {
18
+ await loadConnectorEnvironment("gcp", { envMapping: GCP_ENV_MAPPING });
19
+ return connector.main(process.argv.slice(2));
20
+ }
21
+ void run().then((code) => {
22
+ process.exit(code);
23
+ });
24
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/connectors/gcp/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,MAAM,eAAe,GAA2B;IAC9C,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,gCAAgC;CAC9C,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,MAAM,wBAAwB,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC;IACvE,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;IACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @narai/gcp-agent-connector — read-only GCP connector.
3
+ *
4
+ * Built on @narai/connector-toolkit. The default export is a ready-to-use
5
+ * `Connector`; `buildGcpConnector(overrides?)` is exposed for tests that
6
+ * want to inject a fake GcpClient.
7
+ *
8
+ * Runtime requirement: `gcloud` (and optionally `bq`) must be on PATH with
9
+ * Application Default Credentials configured. Missing binaries surface as
10
+ * CONFIG_ERROR envelopes.
11
+ */
12
+ import { type Connector } from "narai-primitives/toolkit";
13
+ import { GcpClient } from "./lib/gcp_client.js";
14
+ export interface BuildOptions {
15
+ sdk?: () => Promise<GcpClient>;
16
+ credentials?: () => Promise<Record<string, unknown>>;
17
+ }
18
+ export declare function buildGcpConnector(overrides?: BuildOptions): Connector;
19
+ declare const connector: Connector;
20
+ export default connector;
21
+ export declare const main: (argv: readonly string[]) => Promise<number>, fetch: (action: string, params: unknown) => Promise<import("narai-primitives/toolkit").Envelope>, validActions: ReadonlySet<string>;
22
+ export { GcpClient, detectGcloudAvailable, type GcpClientOptions, type GcpResult, } from "./lib/gcp_client.js";
23
+ export { GcpCliError } from "./lib/gcp_error.js";
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/gcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAmB,KAAK,SAAS,EAAkB,MAAM,0BAA0B,CAAC;AAE3F,OAAO,EACL,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAiF7B,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAYD,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,YAAiB,GAAG,SAAS,CAiIzE;AAGD,QAAA,MAAM,SAAS,WAAsB,CAAC;AACtC,eAAe,SAAS,CAAC;AACzB,eAAO,MAAQ,IAAI,gDAAE,KAAK,6FAAE,YAAY,qBAAc,CAAC;AAEvD,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,205 @@
1
+ /**
2
+ * @narai/gcp-agent-connector — read-only GCP connector.
3
+ *
4
+ * Built on @narai/connector-toolkit. The default export is a ready-to-use
5
+ * `Connector`; `buildGcpConnector(overrides?)` is exposed for tests that
6
+ * want to inject a fake GcpClient.
7
+ *
8
+ * Runtime requirement: `gcloud` (and optionally `bq`) must be on PATH with
9
+ * Application Default Credentials configured. Missing binaries surface as
10
+ * CONFIG_ERROR envelopes.
11
+ */
12
+ import { createConnector } from "narai-primitives/toolkit";
13
+ import { z } from "zod";
14
+ import { GcpClient, detectGcloudAvailable, } from "./lib/gcp_client.js";
15
+ import { GcpCliError } from "./lib/gcp_error.js";
16
+ // ───────────────────────────────────────────────────────────────────────────
17
+ // Param schemas
18
+ // ───────────────────────────────────────────────────────────────────────────
19
+ const MAX_RESULTS_DEFAULT = 100;
20
+ const MAX_RESULTS_CAP = 1000;
21
+ const MAX_LOG_HOURS = 168;
22
+ const projectIdField = z
23
+ .string()
24
+ .regex(/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/, "Invalid project_id — must be 6-30 lowercase letters, digits, hyphens");
25
+ const listServicesParams = z.object({ project_id: projectIdField });
26
+ const listTopicsParams = z.object({ project_id: projectIdField });
27
+ const describeDbParams = z.object({
28
+ project_id: projectIdField,
29
+ instance_id: z.string().min(1, "describe_db requires a non-empty 'instance_id'"),
30
+ database: z.string().default(""),
31
+ });
32
+ const queryLogsParams = z.object({
33
+ project_id: projectIdField,
34
+ filter: z
35
+ .string()
36
+ .min(1, "query_logs requires a non-empty 'filter'")
37
+ .refine((f) => !/[;'"]/.test(f), {
38
+ message: "Filter contains forbidden characters — no semicolons or quotes allowed",
39
+ })
40
+ .transform((f) => f.trim()),
41
+ hours: z.coerce.number().int().positive().max(MAX_LOG_HOURS).default(24),
42
+ max_results: z.coerce
43
+ .number()
44
+ .int()
45
+ .positive()
46
+ .max(MAX_RESULTS_CAP)
47
+ .default(MAX_RESULTS_DEFAULT),
48
+ });
49
+ // ───────────────────────────────────────────────────────────────────────────
50
+ // Error-code translation
51
+ // ───────────────────────────────────────────────────────────────────────────
52
+ const CODE_MAP = {
53
+ INVALID_PROJECT: "VALIDATION_ERROR",
54
+ INVALID_INSTANCE: "VALIDATION_ERROR",
55
+ INVALID_FILTER: "VALIDATION_ERROR",
56
+ FORBIDDEN_BINARY: "VALIDATION_ERROR",
57
+ FORBIDDEN_COMMAND: "VALIDATION_ERROR",
58
+ UNSAFE_ARG: "VALIDATION_ERROR",
59
+ WRITE_FORBIDDEN: "VALIDATION_ERROR",
60
+ EXEC_ERROR: "CONNECTION_ERROR",
61
+ TIMEOUT: "TIMEOUT",
62
+ PARSE_ERROR: "CONNECTION_ERROR",
63
+ GCLOUD_MISSING: "CONFIG_ERROR",
64
+ CONFIG_ERROR: "CONFIG_ERROR",
65
+ AUTH_ERROR: "AUTH_ERROR",
66
+ NOT_FOUND: "NOT_FOUND",
67
+ PERMISSION_DENIED: "AUTH_ERROR",
68
+ RATE_LIMITED: "RATE_LIMITED",
69
+ };
70
+ function throwIfError(result) {
71
+ if (!result.ok) {
72
+ throw new GcpCliError(result.code, result.message, result.retriable);
73
+ }
74
+ }
75
+ async function loadGcpDefaults() {
76
+ return {
77
+ defaultProjectId: process.env["GCP_PROJECT_ID"] ?? null,
78
+ defaultRegion: process.env["GCP_REGION"] ?? null,
79
+ };
80
+ }
81
+ export function buildGcpConnector(overrides = {}) {
82
+ const defaultCredentials = async () => {
83
+ // GCP uses Application Default Credentials via gcloud; no explicit secret load.
84
+ return {};
85
+ };
86
+ const defaultSdk = async () => {
87
+ if (!detectGcloudAvailable()) {
88
+ throw new GcpCliError("GCLOUD_MISSING", "gcloud CLI not available on PATH. Install Google Cloud SDK and " +
89
+ "authenticate with Application Default Credentials (gcloud auth " +
90
+ "application-default login).", false);
91
+ }
92
+ const defaults = await loadGcpDefaults();
93
+ return new GcpClient({
94
+ ...(defaults.defaultProjectId
95
+ ? { defaultProjectId: defaults.defaultProjectId }
96
+ : {}),
97
+ ...(defaults.defaultRegion
98
+ ? { defaultRegion: defaults.defaultRegion }
99
+ : {}),
100
+ });
101
+ };
102
+ return createConnector({
103
+ name: "gcp",
104
+ version: "3.0.0",
105
+ scope: (ctx) => ctx.sdk.defaultProjectId && ctx.sdk.defaultRegion
106
+ ? `${ctx.sdk.defaultProjectId}/${ctx.sdk.defaultRegion}`
107
+ : null,
108
+ credentials: overrides.credentials ?? defaultCredentials,
109
+ sdk: overrides.sdk ?? defaultSdk,
110
+ actions: {
111
+ list_services: {
112
+ description: "List Cloud Run services in a project",
113
+ params: listServicesParams,
114
+ classify: { kind: "read" },
115
+ handler: async (p, ctx) => {
116
+ const result = await ctx.sdk.listServices(p.project_id);
117
+ throwIfError(result);
118
+ return {
119
+ project_id: p.project_id,
120
+ services: result.data.map((s) => ({
121
+ name: s.name ?? "",
122
+ title: s.config?.title ?? "",
123
+ state: s.state ?? "",
124
+ })),
125
+ service_count: result.data.length,
126
+ };
127
+ },
128
+ },
129
+ describe_db: {
130
+ description: "Describe a Cloud SQL instance",
131
+ params: describeDbParams,
132
+ classify: { kind: "read" },
133
+ handler: async (p, ctx) => {
134
+ const result = await ctx.sdk.describeSqlInstance(p.project_id, p.instance_id);
135
+ throwIfError(result);
136
+ const inst = result.data;
137
+ const [engine, version] = (inst.databaseVersion ?? "").split("_");
138
+ return {
139
+ project_id: p.project_id,
140
+ instance_id: p.instance_id,
141
+ database: p.database,
142
+ engine: (engine ?? "").toLowerCase(),
143
+ version: version ?? "",
144
+ tier: inst.settings?.tier ?? "",
145
+ region: inst.region ?? "",
146
+ state: inst.state ?? "",
147
+ tables: [],
148
+ };
149
+ },
150
+ },
151
+ list_topics: {
152
+ description: "List Pub/Sub topics in a project",
153
+ params: listTopicsParams,
154
+ classify: { kind: "read" },
155
+ handler: async (p, ctx) => {
156
+ const result = await ctx.sdk.listPubsubTopics(p.project_id);
157
+ throwIfError(result);
158
+ return {
159
+ project_id: p.project_id,
160
+ topics: result.data.map((t) => t.name ?? ""),
161
+ topic_count: result.data.length,
162
+ };
163
+ },
164
+ },
165
+ query_logs: {
166
+ description: "Query Cloud Logging for entries matching a filter",
167
+ params: queryLogsParams,
168
+ classify: { kind: "read" },
169
+ handler: async (p, ctx) => {
170
+ const result = await ctx.sdk.queryLogs(p.project_id, p.filter, p.hours, p.max_results);
171
+ throwIfError(result);
172
+ return {
173
+ project_id: p.project_id,
174
+ filter: p.filter,
175
+ hours: p.hours,
176
+ entries: result.data.map((e) => ({
177
+ timestamp: e.timestamp ?? null,
178
+ severity: e.severity ?? "",
179
+ message: e.textPayload ?? "",
180
+ })),
181
+ entry_count: result.data.length,
182
+ truncated: result.data.length >= p.max_results,
183
+ };
184
+ },
185
+ },
186
+ },
187
+ mapError: (err) => {
188
+ if (err instanceof GcpCliError) {
189
+ return {
190
+ error_code: CODE_MAP[err.code] ?? "CONNECTION_ERROR",
191
+ message: err.message,
192
+ retriable: err.retriable,
193
+ };
194
+ }
195
+ return undefined;
196
+ },
197
+ });
198
+ }
199
+ // Default production connector.
200
+ const connector = buildGcpConnector();
201
+ export default connector;
202
+ export const { main, fetch, validActions } = connector;
203
+ export { GcpClient, detectGcloudAvailable, } from "./lib/gcp_client.js";
204
+ export { GcpCliError } from "./lib/gcp_error.js";
205
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/gcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,eAAe,EAAkC,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,SAAS,EACT,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,KAAK,CACJ,gCAAgC,EAChC,sEAAsE,CACvE,CAAC;AAEJ,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;AACpE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;AAElE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,UAAU,EAAE,cAAc;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gDAAgD,CAAC;IAChF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,UAAU,EAAE,cAAc;IAC1B,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,0CAA0C,CAAC;SAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC/B,OAAO,EACL,wEAAwE;KAC3E,CAAC;SACD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxE,WAAW,EAAE,CAAC,CAAC,MAAM;SAClB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,GAAG,CAAC,eAAe,CAAC;SACpB,OAAO,CAAC,mBAAmB,CAAC;CAChC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,MAAM,QAAQ,GAA8B;IAC1C,eAAe,EAAE,kBAAkB;IACnC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,kBAAkB;IACrC,UAAU,EAAE,kBAAkB;IAC9B,eAAe,EAAE,kBAAkB;IACnC,UAAU,EAAE,kBAAkB;IAC9B,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,kBAAkB;IAC/B,cAAc,EAAE,cAAc;IAC9B,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,iBAAiB,EAAE,YAAY;IAC/B,YAAY,EAAE,cAAc;CAC7B,CAAC;AAEF,SAAS,YAAY,CACnB,MAAoB;IAEpB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAWD,KAAK,UAAU,eAAe;IAI5B,OAAO;QACL,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI;QACvD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAA0B,EAAE;IAC5D,MAAM,kBAAkB,GAAG,KAAK,IAAsC,EAAE;QACtE,gFAAgF;QAChF,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,IAAwB,EAAE;QAChD,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,WAAW,CACnB,gBAAgB,EAChB,iEAAiE;gBAC/D,iEAAiE;gBACjE,6BAA6B,EAC/B,KAAK,CACN,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;QACzC,OAAO,IAAI,SAAS,CAAC;YACnB,GAAG,CAAC,QAAQ,CAAC,gBAAgB;gBAC3B,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,QAAQ,CAAC,aAAa;gBACxB,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE;gBAC3C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,eAAe,CAAY;QAChC,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CACb,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa;YAC/C,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE;YACxD,CAAC,CAAC,IAAI;QACV,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,kBAAkB;QACxD,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,UAAU;QAChC,OAAO,EAAE;YACP,aAAa,EAAE;gBACb,WAAW,EAAE,sCAAsC;gBACnD,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1B,OAAO,EAAE,KAAK,EAAE,CAAqC,EAAE,GAAG,EAAE,EAAE;oBAC5D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACxD,YAAY,CAAC,MAAM,CAAC,CAAC;oBACrB,OAAO;wBACL,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BAChC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;4BAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;4BAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;yBACrB,CAAC,CAAC;wBACH,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;qBAClC,CAAC;gBACJ,CAAC;aACF;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,+BAA+B;gBAC5C,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1B,OAAO,EAAE,KAAK,EAAE,CAAmC,EAAE,GAAG,EAAE,EAAE;oBAC1D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;oBAC9E,YAAY,CAAC,MAAM,CAAC,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAClE,OAAO;wBACL,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,MAAM,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;wBACpC,OAAO,EAAE,OAAO,IAAI,EAAE;wBACtB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;wBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;wBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;wBACvB,MAAM,EAAE,EAAE;qBACX,CAAC;gBACJ,CAAC;aACF;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,kCAAkC;gBAC/C,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1B,OAAO,EAAE,KAAK,EAAE,CAAmC,EAAE,GAAG,EAAE,EAAE;oBAC1D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC5D,YAAY,CAAC,MAAM,CAAC,CAAC;oBACrB,OAAO;wBACL,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;wBAC5C,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;qBAChC,CAAC;gBACJ,CAAC;aACF;YACD,UAAU,EAAE;gBACV,WAAW,EAAE,mDAAmD;gBAChE,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1B,OAAO,EAAE,KAAK,EAAE,CAAkC,EAAE,GAAG,EAAE,EAAE;oBACzD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CACpC,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,WAAW,CACd,CAAC;oBACF,YAAY,CAAC,MAAM,CAAC,CAAC;oBACrB,OAAO;wBACL,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC/B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;4BAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;4BAC1B,OAAO,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;yBAC7B,CAAC,CAAC;wBACH,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;wBAC/B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,WAAW;qBAC/C,CAAC;gBACJ,CAAC;aACF;SACF;QACD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YAChB,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAC/B,OAAO;oBACL,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,kBAAkB;oBACpD,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,SAAS,EAAE,GAAG,CAAC,SAAS;iBACzB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,gCAAgC;AAChC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;AACtC,eAAe,SAAS,CAAC;AACzB,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;AAEvD,OAAO,EACL,SAAS,EACT,qBAAqB,GAGtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * gcp_client.ts — read-only GCP facade that shells out to `gcloud` / `bq`
3
+ * with Application Default Credentials.
4
+ *
5
+ * Security notes:
6
+ * - Uses `execFileSync` — **never** a shell string — so arguments are not
7
+ * word-split or glob-expanded.
8
+ * - Enforces a whitelist of permitted commands; anything else raises.
9
+ * - Validates project IDs and flag values against conservative regexes.
10
+ * - Read-only flags enforced at the argv level: for example `bq query`
11
+ * always runs with `--use_legacy_sql=false --max_rows=…`.
12
+ */
13
+ import { type ExecFileSyncOptionsWithStringEncoding } from "node:child_process";
14
+ type CommandRunner = (file: string, args: string[], options: ExecFileSyncOptionsWithStringEncoding) => string;
15
+ export interface GcpClientOptions {
16
+ rateLimitPerMin?: number;
17
+ connectTimeoutMs?: number;
18
+ readTimeoutMs?: number;
19
+ runner?: CommandRunner;
20
+ sleepImpl?: (ms: number) => Promise<void>;
21
+ defaultProjectId?: string;
22
+ defaultRegion?: string;
23
+ }
24
+ export interface GcpErrorPayload {
25
+ ok: false;
26
+ code: string;
27
+ message: string;
28
+ retriable: boolean;
29
+ }
30
+ export interface GcpSuccessPayload<T> {
31
+ ok: true;
32
+ data: T;
33
+ }
34
+ export type GcpResult<T> = GcpSuccessPayload<T> | GcpErrorPayload;
35
+ export declare class GcpClient {
36
+ private readonly _rateLimitPerMin;
37
+ private readonly _connectTimeoutMs;
38
+ private readonly _readTimeoutMs;
39
+ private readonly _runner;
40
+ private readonly _sleep;
41
+ private _timestamps;
42
+ private _defaultProjectId;
43
+ private _defaultRegion;
44
+ constructor(opts?: GcpClientOptions);
45
+ get defaultProjectId(): string | null;
46
+ get defaultRegion(): string | null;
47
+ private _throttle;
48
+ private _run;
49
+ listServices(projectId: string): Promise<GcpResult<GcpServiceRecord[]>>;
50
+ describeSqlInstance(projectId: string, instanceId: string): Promise<GcpResult<GcpSqlInstance>>;
51
+ listPubsubTopics(projectId: string): Promise<GcpResult<GcpTopic[]>>;
52
+ queryLogs(projectId: string, filter: string, hours: number, maxResults: number): Promise<GcpResult<GcpLogEntry[]>>;
53
+ bqQuery(projectId: string, sql: string, maxRows: number): Promise<GcpResult<GcpBqResult>>;
54
+ }
55
+ export interface GcpServiceRecord {
56
+ name?: string;
57
+ config?: {
58
+ title?: string;
59
+ };
60
+ state?: string;
61
+ }
62
+ export interface GcpSqlInstance {
63
+ name?: string;
64
+ databaseVersion?: string;
65
+ settings?: {
66
+ tier?: string;
67
+ };
68
+ region?: string;
69
+ state?: string;
70
+ connectionName?: string;
71
+ }
72
+ export interface GcpTopic {
73
+ name?: string;
74
+ }
75
+ export interface GcpLogEntry {
76
+ timestamp?: string;
77
+ severity?: string;
78
+ textPayload?: string;
79
+ jsonPayload?: Record<string, unknown>;
80
+ }
81
+ export interface GcpBqResult {
82
+ rows: Array<Record<string, unknown>>;
83
+ row_count: number;
84
+ }
85
+ /** Detect whether gcloud/bq are available on PATH. Returns `null` on detection failure. */
86
+ export declare function detectGcloudAvailable(runner?: CommandRunner): boolean;
87
+ export {};
88
+ //# sourceMappingURL=gcp_client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcp_client.d.ts","sourceRoot":"","sources":["../../../../src/connectors/gcp/lib/gcp_client.ts"],"names":[],"mappings":"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"}