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,43 @@
1
+ /**
2
+ * Secret-reference syntax validation.
3
+ *
4
+ * V1 only validates syntax — it does not eagerly resolve secrets. Strings
5
+ * starting with `env:NAME` pass through unchanged so each connector can
6
+ * resolve them lazily via its own credential-providers chain at the moment
7
+ * of use. The wrong form `env.NAME` (with a dot) is rejected with a clear
8
+ * error so it doesn't silently flow through as a literal.
9
+ */
10
+ const REJECTED_DOT_PREFIX = "env.";
11
+ /**
12
+ * Throws if the string uses the wrong form. Other content (including
13
+ * `env:NAME`, `keychain:NAME`, plain literals) is accepted unchanged.
14
+ */
15
+ export function assertValidSecretSyntax(value, location) {
16
+ if (value.startsWith(REJECTED_DOT_PREFIX)) {
17
+ const loc = location !== undefined ? ` at ${location}` : "";
18
+ throw new Error(`Invalid secret reference '${value}'${loc}. Use 'env:NAME' (with a colon), not 'env.NAME' (with a dot).`);
19
+ }
20
+ }
21
+ /**
22
+ * Recursively validates every string in a value tree. Throws on the first
23
+ * malformed reference, with a dotted path indicating where the bad value lives.
24
+ */
25
+ export function validateSecretsInTree(node, path = "") {
26
+ if (typeof node === "string") {
27
+ assertValidSecretSyntax(node, path === "" ? undefined : path);
28
+ return;
29
+ }
30
+ if (Array.isArray(node)) {
31
+ for (let i = 0; i < node.length; i++) {
32
+ validateSecretsInTree(node[i], `${path}[${i}]`);
33
+ }
34
+ return;
35
+ }
36
+ if (node !== null && typeof node === "object") {
37
+ for (const [k, v] of Object.entries(node)) {
38
+ const next = path === "" ? k : `${path}.${k}`;
39
+ validateSecretsInTree(v, next);
40
+ }
41
+ }
42
+ }
43
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,QAAiB;IACtE,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,IAAI,GAAG,+DAA+D,CACzG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa,EAAE,IAAI,GAAG,EAAE;IAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,uBAAuB,CAAC,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;YAC9C,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Universal types shared by the hub, every connector, and any consumer
3
+ * that reads ~/.connectors/config.yaml.
4
+ *
5
+ * Only fields universal to every connector are declared with strict types.
6
+ * Anything connector-specific (db's `servers:`, jira's `atlassian-api-key`,
7
+ * etc.) flows through as opaque entries on `ResolvedConnector.options` and
8
+ * is validated by the connector itself when it consumes its slice.
9
+ */
10
+ /** The five canonical policy actions every connector understands. */
11
+ export type PolicyAction = "read" | "write" | "delete" | "admin" | "privilege";
12
+ /** The base policy decisions. db-agent extends this with `present`. */
13
+ export type PolicyDecision = "allow" | "escalate" | "deny" | "present";
14
+ /**
15
+ * A policy block. Universal actions (read/write/...) take a PolicyDecision;
16
+ * connector-specific extras (e.g. `unbounded_select` for db-agent) may take
17
+ * any string value. The library does not interpret extras — the connector
18
+ * does.
19
+ */
20
+ export interface PolicyMap {
21
+ read?: PolicyDecision;
22
+ write?: PolicyDecision;
23
+ delete?: PolicyDecision;
24
+ admin?: PolicyDecision;
25
+ privilege?: PolicyDecision;
26
+ /** Connector-specific extras (e.g. `unbounded_select`). */
27
+ [extra: string]: PolicyDecision | string | undefined;
28
+ }
29
+ /**
30
+ * The raw input shape — what `js-yaml` returns from a ~/.connectors/config.yaml
31
+ * file. Loose by design: the actual interpretation happens in resolve.ts.
32
+ */
33
+ export type RawConfigInput = Record<string, unknown>;
34
+ /** Options consumed by the public API. */
35
+ export interface LoadOptions {
36
+ /** Apply `consumers.<name>` overrides on top of base + environment. */
37
+ consumer?: string;
38
+ /** Pick a specific environment. Falls back to `environments.default`. */
39
+ environment?: string;
40
+ /** CWD for resolving `./.connectors/config.yaml`. Defaults to `process.cwd()`. */
41
+ cwd?: string;
42
+ }
43
+ /** Same as LoadOptions but without `cwd`, used by the in-memory resolver. */
44
+ export interface ResolveOptions {
45
+ consumer?: string;
46
+ environment?: string;
47
+ }
48
+ /**
49
+ * The fully-resolved view of one connector's effective config for a given
50
+ * (consumer, environment) pair.
51
+ */
52
+ export interface ResolvedConnector {
53
+ /** Connector name, matching its key under `connectors:` in the config. */
54
+ name: string;
55
+ /**
56
+ * Whether this connector is active for the current call. False if the
57
+ * consumer's `enabled:` allowlist excludes it, or if any merge level set
58
+ * `disable: true`.
59
+ */
60
+ enabled: boolean;
61
+ /**
62
+ * `skill:` value, unresolved. Three syntaxes:
63
+ * - bare word (`jira-agent-connector`) → built-in connector skill.
64
+ * - starts with `~` (`~/.claude/skills/foo`) → user-level skill at that path.
65
+ * - other (`./path/to/skill`, `path/to/skill`) → repo-level skill resolved
66
+ * against the consumer's CWD.
67
+ * Path-to-disk and SKILL.md content resolution lives in
68
+ * `@narai/connector-toolkit`, not here.
69
+ */
70
+ skill: string;
71
+ /** Per-connector model override; null means inherit. */
72
+ model: string | null;
73
+ /** Whether this connector's guardrail rules participate in the unified hook. */
74
+ enforce_hooks: boolean;
75
+ /** Effective policy after base+env+consumer merge. */
76
+ policy: PolicyMap;
77
+ /**
78
+ * All connector-specific extras (`audit`, `servers`, `atlassian-api-key`,
79
+ * etc.). Secrets like `env:NAME` are passed through unresolved so each
80
+ * connector can resolve them lazily at use time.
81
+ */
82
+ options: Record<string, unknown>;
83
+ }
84
+ /** The fully-resolved view of the whole config for a given call. */
85
+ export interface ResolvedConfig {
86
+ /** Hub-specific settings. Read by `@narai/connector-hub`. */
87
+ hub: {
88
+ model: string | null;
89
+ max_tokens: number | null;
90
+ };
91
+ /** Top-level policy defaults (apply unless a connector overrides). */
92
+ policy: PolicyMap;
93
+ /** Top-level enforce_hooks default. */
94
+ enforce_hooks: boolean;
95
+ /** Top-level model default; null means inherit from the active session. */
96
+ model: string | null;
97
+ /** Resolved environment name, or null if none was selected. */
98
+ environment: string | null;
99
+ /** Resolved consumer name, or null if none was provided. */
100
+ consumer: string | null;
101
+ /** Per-connector resolved views. */
102
+ connectors: Record<string, ResolvedConnector>;
103
+ }
104
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,qEAAqE;AACrE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;AAE/E,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,2DAA2D;IAC3D,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gFAAgF;IAChF,aAAa,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,MAAM,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;IACF,sEAAsE;IACtE,MAAM,EAAE,SAAS,CAAC;IAClB,uCAAuC;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/C"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Universal types shared by the hub, every connector, and any consumer
3
+ * that reads ~/.connectors/config.yaml.
4
+ *
5
+ * Only fields universal to every connector are declared with strict types.
6
+ * Anything connector-specific (db's `servers:`, jira's `atlassian-api-key`,
7
+ * etc.) flows through as opaque entries on `ResolvedConnector.options` and
8
+ * is validated by the connector itself when it consumes its slice.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -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/aws/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
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
+ * AWS credentials/region to `process.env` so the SDK picks them up via the
8
+ * default credential chain. Existing exports of `AWS_ACCESS_KEY_ID` etc.
9
+ * win — the bootstrap only fills in undefined entries.
10
+ */
11
+ import { loadConnectorEnvironment } from "narai-primitives/config";
12
+ import connector from "./index.js";
13
+ const AWS_ENV_MAPPING = {
14
+ access_key_id: "AWS_ACCESS_KEY_ID",
15
+ secret_access_key: "AWS_SECRET_ACCESS_KEY",
16
+ session_token: "AWS_SESSION_TOKEN",
17
+ region: "AWS_DEFAULT_REGION",
18
+ profile: "AWS_PROFILE",
19
+ };
20
+ async function run() {
21
+ await loadConnectorEnvironment("aws", { envMapping: AWS_ENV_MAPPING });
22
+ return connector.main(process.argv.slice(2));
23
+ }
24
+ void run().then((code) => {
25
+ process.exit(code);
26
+ });
27
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/connectors/aws/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,MAAM,eAAe,GAA2B;IAC9C,aAAa,EAAE,mBAAmB;IAClC,iBAAiB,EAAE,uBAAuB;IAC1C,aAAa,EAAE,mBAAmB;IAClC,MAAM,EAAE,oBAAoB;IAC5B,OAAO,EAAE,aAAa;CACvB,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,27 @@
1
+ /**
2
+ * @narai/aws-agent-connector — read-only AWS SDK v3 connector.
3
+ *
4
+ * Built on @narai/connector-toolkit. The default export is a ready-to-use
5
+ * `Connector`; `buildAwsConnector(overrides?)` is exposed for tests that
6
+ * want to inject fake SDK factories.
7
+ *
8
+ * Optional dependencies: each `@aws-sdk/client-*` is loaded lazily via
9
+ * dynamic import when the connector's `sdk` hook runs. Missing SDK
10
+ * packages surface as `CONFIG_ERROR` envelopes (never crashes).
11
+ */
12
+ import { type Connector } from "narai-primitives/toolkit";
13
+ import { AwsClient, type AwsSdkFactories } from "./lib/aws_client.js";
14
+ export declare function loadRealFactories(): Promise<AwsSdkFactories | null>;
15
+ export interface BuildOptions {
16
+ sdk?: () => Promise<AwsClient>;
17
+ credentials?: () => Promise<Record<string, unknown>>;
18
+ /** Override the default region. Individual actions can still override per-call. */
19
+ defaultRegion?: string;
20
+ }
21
+ export declare function buildAwsConnector(overrides?: BuildOptions): Connector;
22
+ declare const connector: Connector;
23
+ export default connector;
24
+ export declare const main: (argv: readonly string[]) => Promise<number>, fetch: (action: string, params: unknown) => Promise<import("narai-primitives/toolkit").Envelope>, validActions: ReadonlySet<string>;
25
+ export { AwsClient, loadAwsCredentialsOverride, type AwsCommand, type AwsClientOptions, type AwsSdkFactories, type AwsResult, type AwsErrorPayload, type AwsSuccessPayload, type AwsDBInstance, type AwsDynamoTable, type AwsBucket, type AwsLambdaFunction, type AwsDatapoint, } from "./lib/aws_client.js";
26
+ export { AwsSdkError } from "./lib/aws_error.js";
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/aws/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAmB,KAAK,SAAS,EAAkB,MAAM,0BAA0B,CAAC;AAE3F,OAAO,EACL,SAAS,EAET,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAmF7B,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAkDzE;AAMD,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;IACrD,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,YAAiB,GAAG,SAAS,CAkKzE;AAGD,QAAA,MAAM,SAAS,WAAsB,CAAC;AACtC,eAAe,SAAS,CAAC;AACzB,eAAO,MAAQ,IAAI,gDAAE,KAAK,6FAAE,YAAY,qBAAc,CAAC;AAGvD,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * @narai/aws-agent-connector — read-only AWS SDK v3 connector.
3
+ *
4
+ * Built on @narai/connector-toolkit. The default export is a ready-to-use
5
+ * `Connector`; `buildAwsConnector(overrides?)` is exposed for tests that
6
+ * want to inject fake SDK factories.
7
+ *
8
+ * Optional dependencies: each `@aws-sdk/client-*` is loaded lazily via
9
+ * dynamic import when the connector's `sdk` hook runs. Missing SDK
10
+ * packages surface as `CONFIG_ERROR` envelopes (never crashes).
11
+ */
12
+ import { createConnector } from "narai-primitives/toolkit";
13
+ import { z } from "zod";
14
+ import { AwsClient, } from "./lib/aws_client.js";
15
+ import { AwsSdkError } from "./lib/aws_error.js";
16
+ // ───────────────────────────────────────────────────────────────────────────
17
+ // Param schemas
18
+ // ───────────────────────────────────────────────────────────────────────────
19
+ const MAX_METRIC_HOURS = 168;
20
+ const regionField = z
21
+ .string()
22
+ .regex(/^[a-z]{2}-[a-z]+-\d+$/, "Invalid region — expected format like us-east-1");
23
+ const listFunctionsParams = z.object({
24
+ region: regionField,
25
+ prefix: z.string().default(""),
26
+ });
27
+ const describeDbParams = z.object({
28
+ region: regionField,
29
+ db_identifier: z
30
+ .string()
31
+ .regex(/^[a-zA-Z][a-zA-Z0-9-]{0,62}$/, "Invalid db_identifier — must start with letter, alphanumeric and hyphens only"),
32
+ });
33
+ const listBucketsParams = z.object({
34
+ prefix: z.string().default(""),
35
+ region: z.string().default("us-east-1"),
36
+ });
37
+ const getMetricsParams = z.object({
38
+ region: regionField,
39
+ namespace: z.string().min(1, "get_metrics requires a non-empty 'namespace'"),
40
+ metric_name: z.string().min(1, "get_metrics requires a non-empty 'metric_name'"),
41
+ dimensions: z
42
+ .record(z.union([z.string(), z.number(), z.boolean()]))
43
+ .transform((d) => {
44
+ const out = {};
45
+ for (const [k, v] of Object.entries(d))
46
+ out[k] = String(v);
47
+ return out;
48
+ })
49
+ .default({}),
50
+ hours: z.coerce.number().int().positive().max(MAX_METRIC_HOURS).default(24),
51
+ });
52
+ // ───────────────────────────────────────────────────────────────────────────
53
+ // Error-code translation
54
+ // ───────────────────────────────────────────────────────────────────────────
55
+ const CODE_MAP = {
56
+ METHOD_NOT_ALLOWED: "VALIDATION_ERROR",
57
+ SDK_UNAVAILABLE: "CONFIG_ERROR",
58
+ AUTH_ERROR: "AUTH_ERROR",
59
+ NOT_FOUND: "NOT_FOUND",
60
+ RATE_LIMITED: "RATE_LIMITED",
61
+ TIMEOUT: "TIMEOUT",
62
+ SDK_ERROR: "CONNECTION_ERROR",
63
+ CONFIG_ERROR: "CONFIG_ERROR",
64
+ };
65
+ function throwIfError(result) {
66
+ if (!result.ok) {
67
+ throw new AwsSdkError(result.code, result.message, result.retriable);
68
+ }
69
+ }
70
+ // ───────────────────────────────────────────────────────────────────────────
71
+ // SDK factory loader — dynamic imports of optional `@aws-sdk/client-*` packages.
72
+ // ───────────────────────────────────────────────────────────────────────────
73
+ async function tryImport(name) {
74
+ try {
75
+ return (await import(name));
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ }
81
+ export async function loadRealFactories() {
82
+ const factories = {};
83
+ const register = (key, mod, exportName) => {
84
+ const exported = mod?.[exportName];
85
+ if (typeof exported !== "function" || !mod)
86
+ return;
87
+ const Ctor = exported;
88
+ // The real AWS SDK v3 client.send() expects a Command instance built by
89
+ // the SDK module (it must carry resolveMiddleware()), not a plain object.
90
+ // Translate the internal {__name__, ...input} shape used by aws_client
91
+ // into a real Command at the boundary so production calls dispatch.
92
+ factories[key] = (config) => {
93
+ const client = new Ctor(config);
94
+ return {
95
+ send: async (cmd) => {
96
+ // aws_client.send() passes {__name__, ...input}; init() may pass a
97
+ // pre-built Command instance from the SDK module. Branch on the
98
+ // marker to decide whether to construct or pass through.
99
+ const wrapped = cmd;
100
+ const commandName = wrapped?.__name__;
101
+ if (typeof commandName !== "string") {
102
+ return client.send(cmd);
103
+ }
104
+ const CommandCtor = mod[commandName];
105
+ if (typeof CommandCtor !== "function") {
106
+ throw new Error(`AWS SDK send: ${commandName} not exported by SDK module`);
107
+ }
108
+ const { __name__, ...input } = wrapped;
109
+ const Command = CommandCtor;
110
+ return client.send(new Command(input));
111
+ },
112
+ };
113
+ };
114
+ };
115
+ register("rds", await tryImport("@aws-sdk/client-rds"), "RDSClient");
116
+ register("dynamodb", await tryImport("@aws-sdk/client-dynamodb"), "DynamoDBClient");
117
+ register("s3", await tryImport("@aws-sdk/client-s3"), "S3Client");
118
+ register("cloudwatch", await tryImport("@aws-sdk/client-cloudwatch"), "CloudWatchClient");
119
+ register("lambda", await tryImport("@aws-sdk/client-lambda"), "LambdaClient");
120
+ register("sts", await tryImport("@aws-sdk/client-sts"), "STSClient");
121
+ return Object.keys(factories).length > 0 ? factories : null;
122
+ }
123
+ export function buildAwsConnector(overrides = {}) {
124
+ const defaultCredentials = async () => {
125
+ // AWS uses the default credential chain via the SDK; no explicit secret
126
+ // load. Return an empty object so the factory's `credentials` step is
127
+ // satisfied.
128
+ return {};
129
+ };
130
+ const defaultSdk = async () => {
131
+ const factories = await loadRealFactories();
132
+ if (!factories) {
133
+ throw new AwsSdkError("SDK_UNAVAILABLE", "AWS SDK clients not available. Install @aws-sdk/client-rds, " +
134
+ "@aws-sdk/client-dynamodb, @aws-sdk/client-s3, @aws-sdk/client-cloudwatch, " +
135
+ "@aws-sdk/client-lambda (as needed) and configure credentials via the " +
136
+ "default AWS credential chain.", false);
137
+ }
138
+ const client = new AwsClient({
139
+ region: overrides.defaultRegion ?? "us-east-1",
140
+ factories,
141
+ });
142
+ await client.init();
143
+ return client;
144
+ };
145
+ return createConnector({
146
+ name: "aws",
147
+ version: "3.0.0",
148
+ scope: (ctx) => ctx.sdk.accountId ? `${ctx.sdk.accountId}/${ctx.sdk.region}` : null,
149
+ credentials: overrides.credentials ?? defaultCredentials,
150
+ sdk: overrides.sdk ?? defaultSdk,
151
+ actions: {
152
+ list_functions: {
153
+ description: "List Lambda functions in a region",
154
+ params: listFunctionsParams,
155
+ classify: { kind: "read" },
156
+ handler: async (p, ctx) => {
157
+ const result = await ctx.sdk.listLambdaFunctions();
158
+ throwIfError(result);
159
+ const fns = result.data.Functions ?? [];
160
+ const filtered = p.prefix
161
+ ? fns.filter((f) => (f.FunctionName ?? "").startsWith(p.prefix))
162
+ : fns;
163
+ return {
164
+ region: p.region,
165
+ functions: filtered.map((f) => ({
166
+ name: f.FunctionName ?? "",
167
+ runtime: f.Runtime ?? "",
168
+ last_modified: f.LastModified ?? null,
169
+ })),
170
+ function_count: filtered.length,
171
+ };
172
+ },
173
+ },
174
+ describe_db: {
175
+ description: "Describe an RDS DB instance by identifier",
176
+ params: describeDbParams,
177
+ classify: { kind: "read" },
178
+ handler: async (p, ctx) => {
179
+ const result = await ctx.sdk.describeDBInstances({
180
+ DBInstanceIdentifier: p.db_identifier,
181
+ });
182
+ throwIfError(result);
183
+ const inst = (result.data.DBInstances ?? [])[0];
184
+ if (!inst) {
185
+ throw new AwsSdkError("NOT_FOUND", `No instance found for identifier '${p.db_identifier}'`, false);
186
+ }
187
+ return {
188
+ region: p.region,
189
+ db_identifier: inst.DBInstanceIdentifier ?? p.db_identifier,
190
+ engine: inst.Engine ?? "",
191
+ engine_version: inst.EngineVersion ?? "",
192
+ instance_class: inst.DBInstanceClass ?? "",
193
+ status: inst.DBInstanceStatus ?? "",
194
+ endpoint: inst.Endpoint?.Address ?? "",
195
+ storage_gb: inst.AllocatedStorage ?? 0,
196
+ };
197
+ },
198
+ },
199
+ list_buckets: {
200
+ description: "List S3 buckets (optionally filtered by prefix)",
201
+ params: listBucketsParams,
202
+ classify: { kind: "read" },
203
+ handler: async (p, ctx) => {
204
+ const result = await ctx.sdk.listBuckets();
205
+ throwIfError(result);
206
+ const buckets = result.data.Buckets ?? [];
207
+ const filtered = p.prefix
208
+ ? buckets.filter((b) => (b.Name ?? "").startsWith(p.prefix))
209
+ : buckets;
210
+ return {
211
+ buckets: filtered.map((b) => ({
212
+ name: b.Name ?? "",
213
+ created_at: b.CreationDate
214
+ ? b.CreationDate instanceof Date
215
+ ? b.CreationDate.toISOString()
216
+ : String(b.CreationDate)
217
+ : null,
218
+ })),
219
+ bucket_count: filtered.length,
220
+ };
221
+ },
222
+ },
223
+ get_metrics: {
224
+ description: "Get CloudWatch metric statistics for the last N hours",
225
+ params: getMetricsParams,
226
+ classify: { kind: "read" },
227
+ handler: async (p, ctx) => {
228
+ const endTime = new Date();
229
+ const startTime = new Date(endTime.getTime() - p.hours * 3600_000);
230
+ const result = await ctx.sdk.getMetricStatistics({
231
+ Namespace: p.namespace,
232
+ MetricName: p.metric_name,
233
+ Dimensions: Object.entries(p.dimensions).map(([Name, Value]) => ({
234
+ Name,
235
+ Value,
236
+ })),
237
+ StartTime: startTime,
238
+ EndTime: endTime,
239
+ Period: 300,
240
+ Statistics: ["Average", "Sum", "Maximum"],
241
+ });
242
+ throwIfError(result);
243
+ const dps = result.data.Datapoints ?? [];
244
+ return {
245
+ region: p.region,
246
+ namespace: p.namespace,
247
+ metric_name: p.metric_name,
248
+ dimensions: p.dimensions,
249
+ hours: p.hours,
250
+ datapoints: dps.map((d) => ({
251
+ timestamp: d.Timestamp instanceof Date
252
+ ? d.Timestamp.toISOString()
253
+ : d.Timestamp ?? null,
254
+ sum: d.Sum ?? null,
255
+ average: d.Average ?? null,
256
+ maximum: d.Maximum ?? null,
257
+ })),
258
+ };
259
+ },
260
+ },
261
+ },
262
+ mapError: (err) => {
263
+ if (err instanceof AwsSdkError) {
264
+ return {
265
+ error_code: CODE_MAP[err.code] ?? "CONNECTION_ERROR",
266
+ message: err.message,
267
+ retriable: err.retriable,
268
+ };
269
+ }
270
+ return undefined;
271
+ },
272
+ });
273
+ }
274
+ // Default production connector.
275
+ const connector = buildAwsConnector();
276
+ export default connector;
277
+ export const { main, fetch, validActions } = connector;
278
+ // Re-exports for advanced consumers.
279
+ export { AwsClient, loadAwsCredentialsOverride, } from "./lib/aws_client.js";
280
+ export { AwsSdkError } from "./lib/aws_error.js";
281
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/aws/index.ts"],"names":[],"mappings":"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"}