narai-primitives 2.1.3 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/README.md +20 -4
  2. package/dist/config/load.d.ts.map +1 -1
  3. package/dist/config/load.js +12 -1
  4. package/dist/config/load.js.map +1 -1
  5. package/dist/connectors/confluence/index.d.ts +3 -1
  6. package/dist/connectors/confluence/index.d.ts.map +1 -1
  7. package/dist/connectors/confluence/index.js +246 -31
  8. package/dist/connectors/confluence/index.js.map +1 -1
  9. package/dist/connectors/confluence/lib/confluence_client.d.ts +50 -30
  10. package/dist/connectors/confluence/lib/confluence_client.d.ts.map +1 -1
  11. package/dist/connectors/confluence/lib/confluence_client.js +69 -225
  12. package/dist/connectors/confluence/lib/confluence_client.js.map +1 -1
  13. package/dist/connectors/db/connector.d.ts.map +1 -1
  14. package/dist/connectors/db/connector.js +12 -6
  15. package/dist/connectors/db/connector.js.map +1 -1
  16. package/dist/connectors/db/dispatcher.d.ts +3 -2
  17. package/dist/connectors/db/dispatcher.d.ts.map +1 -1
  18. package/dist/connectors/db/dispatcher.js +142 -40
  19. package/dist/connectors/db/dispatcher.js.map +1 -1
  20. package/dist/connectors/db/index.d.ts +9 -0
  21. package/dist/connectors/db/index.d.ts.map +1 -1
  22. package/dist/connectors/db/index.js +9 -0
  23. package/dist/connectors/db/index.js.map +1 -1
  24. package/dist/connectors/db/lib/audit.d.ts.map +1 -1
  25. package/dist/connectors/db/lib/audit.js +46 -4
  26. package/dist/connectors/db/lib/audit.js.map +1 -1
  27. package/dist/connectors/db/lib/drivers/dynamodb.d.ts.map +1 -1
  28. package/dist/connectors/db/lib/drivers/dynamodb.js +24 -4
  29. package/dist/connectors/db/lib/drivers/dynamodb.js.map +1 -1
  30. package/dist/connectors/db/lib/drivers/mysql.js +1 -1
  31. package/dist/connectors/db/lib/drivers/mysql.js.map +1 -1
  32. package/dist/connectors/db/lib/drivers/postgresql.js +1 -1
  33. package/dist/connectors/db/lib/drivers/postgresql.js.map +1 -1
  34. package/dist/connectors/db/lib/drivers/sqlite.d.ts.map +1 -1
  35. package/dist/connectors/db/lib/drivers/sqlite.js +9 -5
  36. package/dist/connectors/db/lib/drivers/sqlite.js.map +1 -1
  37. package/dist/connectors/db/lib/drivers/sqlserver.d.ts.map +1 -1
  38. package/dist/connectors/db/lib/drivers/sqlserver.js +66 -32
  39. package/dist/connectors/db/lib/drivers/sqlserver.js.map +1 -1
  40. package/dist/connectors/db/lib/environments.d.ts +16 -0
  41. package/dist/connectors/db/lib/environments.d.ts.map +1 -1
  42. package/dist/connectors/db/lib/environments.js +16 -0
  43. package/dist/connectors/db/lib/environments.js.map +1 -1
  44. package/dist/connectors/db/lib/grant-store.d.ts +77 -0
  45. package/dist/connectors/db/lib/grant-store.d.ts.map +1 -0
  46. package/dist/connectors/db/lib/grant-store.js +158 -0
  47. package/dist/connectors/db/lib/grant-store.js.map +1 -0
  48. package/dist/connectors/db/lib/plugin_config.d.ts +2 -0
  49. package/dist/connectors/db/lib/plugin_config.d.ts.map +1 -1
  50. package/dist/connectors/db/lib/plugin_config.js +23 -2
  51. package/dist/connectors/db/lib/plugin_config.js.map +1 -1
  52. package/dist/connectors/db/lib/policy.d.ts +50 -14
  53. package/dist/connectors/db/lib/policy.d.ts.map +1 -1
  54. package/dist/connectors/db/lib/policy.js +298 -74
  55. package/dist/connectors/db/lib/policy.js.map +1 -1
  56. package/dist/connectors/github/actions/_fields.d.ts +18 -0
  57. package/dist/connectors/github/actions/_fields.d.ts.map +1 -0
  58. package/dist/connectors/github/actions/_fields.js +29 -0
  59. package/dist/connectors/github/actions/_fields.js.map +1 -0
  60. package/dist/connectors/github/actions/_pagination.d.ts +12 -0
  61. package/dist/connectors/github/actions/_pagination.d.ts.map +1 -0
  62. package/dist/connectors/github/actions/_pagination.js +26 -0
  63. package/dist/connectors/github/actions/_pagination.js.map +1 -0
  64. package/dist/connectors/github/actions/_types.d.ts +14 -0
  65. package/dist/connectors/github/actions/_types.d.ts.map +1 -0
  66. package/dist/connectors/github/actions/_types.js +2 -0
  67. package/dist/connectors/github/actions/_types.js.map +1 -0
  68. package/dist/connectors/github/actions/comments.d.ts +3 -0
  69. package/dist/connectors/github/actions/comments.d.ts.map +1 -0
  70. package/dist/connectors/github/actions/comments.js +166 -0
  71. package/dist/connectors/github/actions/comments.js.map +1 -0
  72. package/dist/connectors/github/actions/issues.d.ts +3 -0
  73. package/dist/connectors/github/actions/issues.d.ts.map +1 -0
  74. package/dist/connectors/github/actions/issues.js +129 -0
  75. package/dist/connectors/github/actions/issues.js.map +1 -0
  76. package/dist/connectors/github/actions/pulls.d.ts +3 -0
  77. package/dist/connectors/github/actions/pulls.d.ts.map +1 -0
  78. package/dist/connectors/github/actions/pulls.js +182 -0
  79. package/dist/connectors/github/actions/pulls.js.map +1 -0
  80. package/dist/connectors/github/actions/reads.d.ts +3 -0
  81. package/dist/connectors/github/actions/reads.d.ts.map +1 -0
  82. package/dist/connectors/github/actions/reads.js +349 -0
  83. package/dist/connectors/github/actions/reads.js.map +1 -0
  84. package/dist/connectors/github/actions/releases.d.ts +3 -0
  85. package/dist/connectors/github/actions/releases.d.ts.map +1 -0
  86. package/dist/connectors/github/actions/releases.js +124 -0
  87. package/dist/connectors/github/actions/releases.js.map +1 -0
  88. package/dist/connectors/github/actions/workflows.d.ts +3 -0
  89. package/dist/connectors/github/actions/workflows.d.ts.map +1 -0
  90. package/dist/connectors/github/actions/workflows.js +224 -0
  91. package/dist/connectors/github/actions/workflows.js.map +1 -0
  92. package/dist/connectors/github/index.d.ts +13 -1
  93. package/dist/connectors/github/index.d.ts.map +1 -1
  94. package/dist/connectors/github/index.js +33 -396
  95. package/dist/connectors/github/index.js.map +1 -1
  96. package/dist/connectors/github/lib/github_client.d.ts +242 -29
  97. package/dist/connectors/github/lib/github_client.d.ts.map +1 -1
  98. package/dist/connectors/github/lib/github_client.js +202 -256
  99. package/dist/connectors/github/lib/github_client.js.map +1 -1
  100. package/dist/connectors/github/lib/github_config.d.ts +10 -0
  101. package/dist/connectors/github/lib/github_config.d.ts.map +1 -0
  102. package/dist/connectors/github/lib/github_config.js +79 -0
  103. package/dist/connectors/github/lib/github_config.js.map +1 -0
  104. package/dist/connectors/gitlab/actions/_fields.d.ts +20 -0
  105. package/dist/connectors/gitlab/actions/_fields.d.ts.map +1 -0
  106. package/dist/connectors/gitlab/actions/_fields.js +44 -0
  107. package/dist/connectors/gitlab/actions/_fields.js.map +1 -0
  108. package/dist/connectors/gitlab/actions/_pagination.d.ts +19 -0
  109. package/dist/connectors/gitlab/actions/_pagination.d.ts.map +1 -0
  110. package/dist/connectors/gitlab/actions/_pagination.js +33 -0
  111. package/dist/connectors/gitlab/actions/_pagination.js.map +1 -0
  112. package/dist/connectors/gitlab/actions/_types.d.ts +12 -0
  113. package/dist/connectors/gitlab/actions/_types.d.ts.map +1 -0
  114. package/dist/connectors/gitlab/actions/_types.js +2 -0
  115. package/dist/connectors/gitlab/actions/_types.js.map +1 -0
  116. package/dist/connectors/gitlab/actions/issues.d.ts +3 -0
  117. package/dist/connectors/gitlab/actions/issues.d.ts.map +1 -0
  118. package/dist/connectors/gitlab/actions/issues.js +119 -0
  119. package/dist/connectors/gitlab/actions/issues.js.map +1 -0
  120. package/dist/connectors/gitlab/actions/merges.d.ts +3 -0
  121. package/dist/connectors/gitlab/actions/merges.d.ts.map +1 -0
  122. package/dist/connectors/gitlab/actions/merges.js +198 -0
  123. package/dist/connectors/gitlab/actions/merges.js.map +1 -0
  124. package/dist/connectors/gitlab/actions/notes.d.ts +3 -0
  125. package/dist/connectors/gitlab/actions/notes.d.ts.map +1 -0
  126. package/dist/connectors/gitlab/actions/notes.js +145 -0
  127. package/dist/connectors/gitlab/actions/notes.js.map +1 -0
  128. package/dist/connectors/gitlab/actions/pipelines.d.ts +3 -0
  129. package/dist/connectors/gitlab/actions/pipelines.d.ts.map +1 -0
  130. package/dist/connectors/gitlab/actions/pipelines.js +136 -0
  131. package/dist/connectors/gitlab/actions/pipelines.js.map +1 -0
  132. package/dist/connectors/gitlab/actions/reads.d.ts +3 -0
  133. package/dist/connectors/gitlab/actions/reads.d.ts.map +1 -0
  134. package/dist/connectors/gitlab/actions/reads.js +422 -0
  135. package/dist/connectors/gitlab/actions/reads.js.map +1 -0
  136. package/dist/connectors/gitlab/actions/releases.d.ts +3 -0
  137. package/dist/connectors/gitlab/actions/releases.d.ts.map +1 -0
  138. package/dist/connectors/gitlab/actions/releases.js +99 -0
  139. package/dist/connectors/gitlab/actions/releases.js.map +1 -0
  140. package/dist/connectors/gitlab/cli.d.ts +3 -0
  141. package/dist/connectors/gitlab/cli.d.ts.map +1 -0
  142. package/dist/connectors/gitlab/cli.js +24 -0
  143. package/dist/connectors/gitlab/cli.js.map +1 -0
  144. package/dist/connectors/gitlab/index.d.ts +29 -0
  145. package/dist/connectors/gitlab/index.d.ts.map +1 -0
  146. package/dist/connectors/gitlab/index.js +95 -0
  147. package/dist/connectors/gitlab/index.js.map +1 -0
  148. package/dist/connectors/gitlab/lib/gitlab_client.d.ts +306 -0
  149. package/dist/connectors/gitlab/lib/gitlab_client.d.ts.map +1 -0
  150. package/dist/connectors/gitlab/lib/gitlab_client.js +249 -0
  151. package/dist/connectors/gitlab/lib/gitlab_client.js.map +1 -0
  152. package/dist/connectors/gitlab/lib/gitlab_config.d.ts +11 -0
  153. package/dist/connectors/gitlab/lib/gitlab_config.d.ts.map +1 -0
  154. package/dist/connectors/gitlab/lib/gitlab_config.js +115 -0
  155. package/dist/connectors/gitlab/lib/gitlab_config.js.map +1 -0
  156. package/dist/connectors/jira/index.d.ts +3 -1
  157. package/dist/connectors/jira/index.d.ts.map +1 -1
  158. package/dist/connectors/jira/index.js +299 -41
  159. package/dist/connectors/jira/index.js.map +1 -1
  160. package/dist/connectors/jira/lib/jira_client.d.ts +56 -41
  161. package/dist/connectors/jira/lib/jira_client.d.ts.map +1 -1
  162. package/dist/connectors/jira/lib/jira_client.js +71 -248
  163. package/dist/connectors/jira/lib/jira_client.js.map +1 -1
  164. package/dist/connectors/linear/cli.d.ts +3 -0
  165. package/dist/connectors/linear/cli.d.ts.map +1 -0
  166. package/dist/connectors/linear/cli.js +22 -0
  167. package/dist/connectors/linear/cli.js.map +1 -0
  168. package/dist/connectors/linear/index.d.ts +27 -0
  169. package/dist/connectors/linear/index.d.ts.map +1 -0
  170. package/dist/connectors/linear/index.js +496 -0
  171. package/dist/connectors/linear/index.js.map +1 -0
  172. package/dist/connectors/linear/lib/linear_client.d.ts +249 -0
  173. package/dist/connectors/linear/lib/linear_client.d.ts.map +1 -0
  174. package/dist/connectors/linear/lib/linear_client.js +154 -0
  175. package/dist/connectors/linear/lib/linear_client.js.map +1 -0
  176. package/dist/connectors/linear/lib/queries.d.ts +15 -0
  177. package/dist/connectors/linear/lib/queries.d.ts.map +1 -0
  178. package/dist/connectors/linear/lib/queries.js +188 -0
  179. package/dist/connectors/linear/lib/queries.js.map +1 -0
  180. package/dist/connectors/notion/index.d.ts +2 -1
  181. package/dist/connectors/notion/index.d.ts.map +1 -1
  182. package/dist/connectors/notion/index.js +213 -28
  183. package/dist/connectors/notion/index.js.map +1 -1
  184. package/dist/connectors/notion/lib/markdown_to_blocks.d.ts +21 -0
  185. package/dist/connectors/notion/lib/markdown_to_blocks.d.ts.map +1 -0
  186. package/dist/connectors/notion/lib/markdown_to_blocks.js +102 -0
  187. package/dist/connectors/notion/lib/markdown_to_blocks.js.map +1 -0
  188. package/dist/connectors/notion/lib/notion_blocks.d.ts +34 -0
  189. package/dist/connectors/notion/lib/notion_blocks.d.ts.map +1 -0
  190. package/dist/connectors/notion/lib/notion_blocks.js +87 -0
  191. package/dist/connectors/notion/lib/notion_blocks.js.map +1 -0
  192. package/dist/connectors/notion/lib/notion_client.d.ts +35 -25
  193. package/dist/connectors/notion/lib/notion_client.d.ts.map +1 -1
  194. package/dist/connectors/notion/lib/notion_client.js +63 -185
  195. package/dist/connectors/notion/lib/notion_client.js.map +1 -1
  196. package/dist/hub/index.d.ts.map +1 -1
  197. package/dist/hub/index.js +23 -3
  198. package/dist/hub/index.js.map +1 -1
  199. package/dist/toolkit/agent_resolver.d.ts +14 -4
  200. package/dist/toolkit/agent_resolver.d.ts.map +1 -1
  201. package/dist/toolkit/agent_resolver.js +38 -6
  202. package/dist/toolkit/agent_resolver.js.map +1 -1
  203. package/dist/toolkit/atlassian/adf_validator.d.ts +45 -0
  204. package/dist/toolkit/atlassian/adf_validator.d.ts.map +1 -0
  205. package/dist/toolkit/atlassian/adf_validator.js +83 -0
  206. package/dist/toolkit/atlassian/adf_validator.js.map +1 -0
  207. package/dist/toolkit/atlassian/index.d.ts +5 -0
  208. package/dist/toolkit/atlassian/index.d.ts.map +1 -0
  209. package/dist/toolkit/atlassian/index.js +5 -0
  210. package/dist/toolkit/atlassian/index.js.map +1 -0
  211. package/dist/toolkit/audit/writer.d.ts.map +1 -1
  212. package/dist/toolkit/audit/writer.js +45 -5
  213. package/dist/toolkit/audit/writer.js.map +1 -1
  214. package/dist/toolkit/connector_error.d.ts +12 -0
  215. package/dist/toolkit/connector_error.d.ts.map +1 -0
  216. package/dist/toolkit/connector_error.js +18 -0
  217. package/dist/toolkit/connector_error.js.map +1 -0
  218. package/dist/toolkit/guardrail.d.ts +12 -2
  219. package/dist/toolkit/guardrail.d.ts.map +1 -1
  220. package/dist/toolkit/guardrail.js +17 -3
  221. package/dist/toolkit/guardrail.js.map +1 -1
  222. package/dist/toolkit/http_client.d.ts +134 -0
  223. package/dist/toolkit/http_client.d.ts.map +1 -0
  224. package/dist/toolkit/http_client.js +385 -0
  225. package/dist/toolkit/http_client.js.map +1 -0
  226. package/dist/toolkit/index.d.ts +3 -0
  227. package/dist/toolkit/index.d.ts.map +1 -1
  228. package/dist/toolkit/index.js +5 -0
  229. package/dist/toolkit/index.js.map +1 -1
  230. package/dist/toolkit/usage/aggregate.d.ts.map +1 -1
  231. package/dist/toolkit/usage/aggregate.js +19 -3
  232. package/dist/toolkit/usage/aggregate.js.map +1 -1
  233. package/package.json +14 -2
  234. package/plugin-hooks/dispatcher.mjs +639 -0
  235. package/plugin-hooks/plugin-config.mjs +36 -0
  236. package/plugins/{aws-agent → aws-connector}/.claude-plugin/plugin.json +1 -1
  237. package/plugins/{aws-agent → aws-connector}/README.md +7 -7
  238. package/plugins/{aws-agent/bin/aws-agent → aws-connector/bin/aws-connector} +3 -3
  239. package/plugins/aws-connector/commands/aws-connector.md +6 -0
  240. package/plugins/{gcp-agent → aws-connector}/hooks/hooks.json +12 -11
  241. package/plugins/aws-connector/package.json +9 -0
  242. package/plugins/aws-connector/plugin-config.json +4 -0
  243. package/plugins/{aws-agent/skills/aws-agent → aws-connector/skills/aws-connector}/SKILL.md +5 -5
  244. package/plugins/confluence-connector/.claude-plugin/plugin.json +6 -0
  245. package/plugins/{confluence-agent → confluence-connector}/README.md +2 -2
  246. package/plugins/confluence-connector/bin/confluence-connector +17 -0
  247. package/plugins/confluence-connector/commands/confluence-connector.md +6 -0
  248. package/plugins/{jira-agent → confluence-connector}/hooks/hooks.json +12 -11
  249. package/plugins/confluence-connector/package.json +8 -0
  250. package/plugins/confluence-connector/plugin-config.json +4 -0
  251. package/plugins/confluence-connector/skills/confluence-connector/SKILL.md +146 -0
  252. package/plugins/{create-connector → connector-creator}/.claude-plugin/plugin.json +1 -1
  253. package/plugins/{create-connector → connector-creator}/README.md +2 -2
  254. package/plugins/connector-creator/skills/connector-creator/SKILL.md +412 -0
  255. package/plugins/connector-creator/skills/connector-creator/assets/templates/_runtime/connector-gate.mjs.tmpl +120 -0
  256. package/plugins/connector-creator/skills/connector-creator/assets/templates/composite/SKILL.md.tmpl +26 -0
  257. package/plugins/connector-creator/skills/connector-creator/assets/templates/composite/bin.tmpl +2 -0
  258. package/plugins/connector-creator/skills/connector-creator/assets/templates/composite/index.mjs.tmpl +35 -0
  259. package/plugins/connector-creator/skills/connector-creator/assets/templates/knowledge/SKILL.md.tmpl +23 -0
  260. package/plugins/connector-creator/skills/connector-creator/assets/templates/shell-gate/SKILL.md.tmpl +27 -0
  261. package/plugins/connector-creator/skills/connector-creator/assets/templates/shell-gate/gates.json.tmpl +5 -0
  262. package/plugins/connector-creator/skills/connector-creator/lib/connector-registry.mjs +43 -0
  263. package/plugins/connector-creator/skills/connector-creator/lib/settings-wiring.mjs +71 -0
  264. package/plugins/connector-creator/skills/connector-creator/references/connector-contract.md +79 -0
  265. package/plugins/connector-creator/skills/connector-creator/references/flavor-authoring.md +58 -0
  266. package/plugins/connector-creator/skills/connector-creator/references/research-patterns.md +51 -0
  267. package/plugins/{db-agent → db-connector}/.claude-plugin/plugin.json +3 -3
  268. package/plugins/{db-agent → db-connector}/README.md +2 -2
  269. package/plugins/{github-agent/bin/github-agent → db-connector/bin/db-connector} +3 -3
  270. package/plugins/db-connector/commands/db-connector.md +6 -0
  271. package/plugins/db-connector/gates.json +45 -0
  272. package/plugins/db-connector/gates.strict-bare.json +13 -0
  273. package/plugins/{db-agent → db-connector}/hooks/guardrails.json +4 -2
  274. package/plugins/{aws-agent → db-connector}/hooks/hooks.json +15 -11
  275. package/plugins/{db-agent → db-connector}/package.json +1 -1
  276. package/plugins/db-connector/plugin-config.json +5 -0
  277. package/plugins/{db-agent/skills/db-agent → db-connector/skills/db-connector}/SKILL.md +5 -5
  278. package/plugins/{gcp-agent → gcp-connector}/.claude-plugin/plugin.json +1 -1
  279. package/plugins/{gcp-agent → gcp-connector}/README.md +5 -5
  280. package/plugins/{gcp-agent/bin/gcp-agent → gcp-connector/bin/gcp-connector} +3 -3
  281. package/plugins/gcp-connector/commands/gcp-connector.md +6 -0
  282. package/plugins/{github-agent → gcp-connector}/hooks/hooks.json +12 -11
  283. package/plugins/gcp-connector/package.json +9 -0
  284. package/plugins/gcp-connector/plugin-config.json +4 -0
  285. package/plugins/{gcp-agent/skills/gcp-agent → gcp-connector/skills/gcp-connector}/SKILL.md +5 -5
  286. package/plugins/git-connector/.claude-plugin/plugin.json +6 -0
  287. package/plugins/git-connector/CONTRIBUTING.md +117 -0
  288. package/plugins/git-connector/README.md +94 -0
  289. package/plugins/git-connector/SECURITY.md +143 -0
  290. package/plugins/git-connector/gates.json +67 -0
  291. package/plugins/git-connector/hooks/hooks.json +25 -0
  292. package/plugins/git-connector/package.json +9 -0
  293. package/plugins/git-connector/plugin-config.json +4 -0
  294. package/plugins/{github-agent → github-connector}/.claude-plugin/plugin.json +1 -1
  295. package/plugins/github-connector/README.md +48 -0
  296. package/plugins/{confluence-agent/bin/confluence-agent → github-connector/bin/github-connector} +3 -3
  297. package/plugins/github-connector/commands/github-connector.md +6 -0
  298. package/plugins/github-connector/hooks/hooks.json +50 -0
  299. package/plugins/{jira-agent → github-connector}/package.json +1 -1
  300. package/plugins/github-connector/plugin-config.json +4 -0
  301. package/plugins/github-connector/skills/github-connector/SKILL.md +106 -0
  302. package/plugins/gitlab-connector/.claude-plugin/plugin.json +6 -0
  303. package/plugins/gitlab-connector/README.md +62 -0
  304. package/plugins/{db-agent/bin/db-agent → gitlab-connector/bin/gitlab-connector} +3 -3
  305. package/plugins/gitlab-connector/commands/gitlab-connector.md +6 -0
  306. package/plugins/gitlab-connector/gates.json +18 -0
  307. package/plugins/gitlab-connector/hooks/hooks.json +50 -0
  308. package/plugins/{confluence-agent → gitlab-connector}/package.json +1 -1
  309. package/plugins/gitlab-connector/plugin-config.json +4 -0
  310. package/plugins/gitlab-connector/skills/gitlab-connector/SKILL.md +115 -0
  311. package/plugins/jira-connector/.claude-plugin/plugin.json +6 -0
  312. package/plugins/{jira-agent → jira-connector}/README.md +1 -1
  313. package/plugins/{jira-agent/bin/jira-agent → jira-connector/bin/jira-connector} +2 -2
  314. package/plugins/jira-connector/commands/jira-connector.md +6 -0
  315. package/plugins/jira-connector/gates.json +12 -0
  316. package/plugins/jira-connector/hooks/hooks.json +50 -0
  317. package/plugins/{github-agent → jira-connector}/package.json +1 -1
  318. package/plugins/jira-connector/plugin-config.json +4 -0
  319. package/plugins/jira-connector/skills/jira-connector/SKILL.md +146 -0
  320. package/plugins/linear-connector/.claude-plugin/plugin.json +6 -0
  321. package/plugins/linear-connector/README.md +29 -0
  322. package/plugins/linear-connector/bin/linear-connector +17 -0
  323. package/plugins/linear-connector/commands/linear-connector.md +6 -0
  324. package/plugins/linear-connector/hooks/hooks.json +50 -0
  325. package/plugins/linear-connector/package.json +8 -0
  326. package/plugins/linear-connector/plugin-config.json +4 -0
  327. package/plugins/linear-connector/skills/linear-connector/SKILL.md +159 -0
  328. package/plugins/notion-connector/.claude-plugin/plugin.json +6 -0
  329. package/plugins/{notion-agent → notion-connector}/README.md +5 -5
  330. package/plugins/{notion-agent/bin/notion-agent → notion-connector/bin/notion-connector} +2 -2
  331. package/plugins/notion-connector/commands/notion-connector.md +6 -0
  332. package/plugins/notion-connector/hooks/hooks.json +50 -0
  333. package/plugins/notion-connector/package.json +8 -0
  334. package/plugins/notion-connector/plugin-config.json +4 -0
  335. package/plugins/notion-connector/skills/notion-connector/SKILL.md +141 -0
  336. package/dist/connectors/confluence/lib/confluence_error.d.ts +0 -13
  337. package/dist/connectors/confluence/lib/confluence_error.d.ts.map +0 -1
  338. package/dist/connectors/confluence/lib/confluence_error.js +0 -19
  339. package/dist/connectors/confluence/lib/confluence_error.js.map +0 -1
  340. package/dist/connectors/github/lib/github_error.d.ts +0 -11
  341. package/dist/connectors/github/lib/github_error.d.ts.map +0 -1
  342. package/dist/connectors/github/lib/github_error.js +0 -17
  343. package/dist/connectors/github/lib/github_error.js.map +0 -1
  344. package/dist/connectors/jira/lib/jira_error.d.ts +0 -11
  345. package/dist/connectors/jira/lib/jira_error.d.ts.map +0 -1
  346. package/dist/connectors/jira/lib/jira_error.js +0 -17
  347. package/dist/connectors/jira/lib/jira_error.js.map +0 -1
  348. package/dist/connectors/notion/lib/notion_error.d.ts +0 -12
  349. package/dist/connectors/notion/lib/notion_error.d.ts.map +0 -1
  350. package/dist/connectors/notion/lib/notion_error.js +0 -18
  351. package/dist/connectors/notion/lib/notion_error.js.map +0 -1
  352. package/plugins/aws-agent/commands/aws-agent.md +0 -6
  353. package/plugins/aws-agent/hooks/reminder.mjs +0 -16
  354. package/plugins/aws-agent/package.json +0 -9
  355. package/plugins/confluence-agent/.claude-plugin/plugin.json +0 -6
  356. package/plugins/confluence-agent/commands/confluence-agent.md +0 -6
  357. package/plugins/confluence-agent/hooks/hooks.json +0 -49
  358. package/plugins/confluence-agent/hooks/reminder.mjs +0 -25
  359. package/plugins/confluence-agent/skills/confluence-agent/SKILL.md +0 -40
  360. package/plugins/create-connector/skills/create-connector/SKILL.md +0 -252
  361. package/plugins/db-agent/commands/db-agent.md +0 -6
  362. package/plugins/db-agent/hooks/db-guard.mjs +0 -110
  363. package/plugins/db-agent/hooks/hooks.json +0 -61
  364. package/plugins/db-agent/hooks/reminder.mjs +0 -16
  365. package/plugins/gcp-agent/commands/gcp-agent.md +0 -6
  366. package/plugins/gcp-agent/hooks/reminder.mjs +0 -16
  367. package/plugins/gcp-agent/package.json +0 -9
  368. package/plugins/github-agent/README.md +0 -13
  369. package/plugins/github-agent/commands/github-agent.md +0 -6
  370. package/plugins/github-agent/hooks/reminder.mjs +0 -16
  371. package/plugins/github-agent/skills/github-agent/SKILL.md +0 -41
  372. package/plugins/jira-agent/.claude-plugin/plugin.json +0 -6
  373. package/plugins/jira-agent/commands/jira-agent.md +0 -6
  374. package/plugins/jira-agent/hooks/reminder.mjs +0 -16
  375. package/plugins/jira-agent/skills/jira-agent/SKILL.md +0 -37
  376. package/plugins/notion-agent/.claude-plugin/plugin.json +0 -6
  377. package/plugins/notion-agent/commands/notion-agent.md +0 -6
  378. package/plugins/notion-agent/hooks/hooks.json +0 -49
  379. package/plugins/notion-agent/hooks/reminder.mjs +0 -17
  380. package/plugins/notion-agent/package.json +0 -8
  381. package/plugins/notion-agent/skills/notion-agent/SKILL.md +0 -48
  382. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/assets/templates/bin.tmpl +0 -0
  383. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/assets/templates/connector-SKILL.md.tmpl +0 -0
  384. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/assets/templates/index.mjs.tmpl +0 -0
  385. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/assets/templates/tests-example.mjs.tmpl +0 -0
  386. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/references/action-design.md +0 -0
  387. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/references/auth-patterns.md +0 -0
  388. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/references/connector-anatomy.md +0 -0
  389. /package/plugins/{create-connector/skills/create-connector/references/db-agent-pointer.md → connector-creator/skills/connector-creator/references/db-connector-pointer.md} +0 -0
  390. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/references/plugin-layer.md +0 -0
  391. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/references/template-sync.md +0 -0
  392. /package/plugins/{create-connector/skills/create-connector → connector-creator/skills/connector-creator}/references/verification.md +0 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared types used by every action-module factory. Each module exports a
3
+ * factory `buildXActions(deps)` returning an action registry. Keeping the
4
+ * dep shape in one place avoids drift across the six modules.
5
+ */
6
+ import type { ActionSpec } from "narai-primitives/toolkit";
7
+ import type { GithubBehavior } from "../lib/github_config.js";
8
+ import type { GithubClient } from "../lib/github_client.js";
9
+ export type GithubActions = Record<string, ActionSpec<any, GithubClient>>;
10
+ export interface GithubActionDeps {
11
+ /** Runtime knobs (require_draft_pr, ...). */
12
+ behavior: GithubBehavior;
13
+ }
14
+ //# sourceMappingURL=_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../../src/connectors/github/actions/_types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,QAAQ,EAAE,cAAc,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../../src/connectors/github/actions/_types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { GithubActionDeps, GithubActions } from "./_types.js";
2
+ export declare function buildCommentsActions(_deps: GithubActionDeps): GithubActions;
3
+ //# sourceMappingURL=comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../../../src/connectors/github/actions/comments.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgHnE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CA+F3E"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Comment action specs — six actions across two distinct APIs:
3
+ * - Issue-conversation comments: top-level threaded comments on issues
4
+ * (also visible on PRs as "conversation" tab).
5
+ * - PR review-inline comments: file-and-line anchored comments on a PR diff.
6
+ *
7
+ * Delete actions carry the delete aspect.
8
+ */
9
+ import { throwIfHttpError } from "narai-primitives/toolkit";
10
+ import { z } from "zod";
11
+ import { issueNumberField, ownerRepoField, pullNumberField, } from "./_fields.js";
12
+ // Local fields not shared with other modules yet.
13
+ const shaField = z.string().regex(/^[a-f0-9]{7,40}$/, "Expected a git SHA");
14
+ const pathField = z
15
+ .string()
16
+ .min(1)
17
+ .refine((p) => !p.includes(".."), { message: "Path traversal not allowed" });
18
+ const commentIdField = z.coerce.number().int().positive();
19
+ // ─── Param schemas ────────────────────────────────────────────────────────
20
+ const addIssueCommentParams = z.object({
21
+ owner: ownerRepoField,
22
+ repo: ownerRepoField,
23
+ issue_number: issueNumberField,
24
+ body: z.string().min(1),
25
+ });
26
+ const updateIssueCommentParams = z.object({
27
+ owner: ownerRepoField,
28
+ repo: ownerRepoField,
29
+ comment_id: commentIdField,
30
+ body: z.string().min(1),
31
+ });
32
+ const deleteIssueCommentParams = z.object({
33
+ owner: ownerRepoField,
34
+ repo: ownerRepoField,
35
+ comment_id: commentIdField,
36
+ });
37
+ const addPrReviewCommentParams = z.object({
38
+ owner: ownerRepoField,
39
+ repo: ownerRepoField,
40
+ pr_number: pullNumberField,
41
+ body: z.string().min(1),
42
+ commit_id: shaField,
43
+ path: pathField,
44
+ line: z.coerce.number().int().positive(),
45
+ side: z.enum(["LEFT", "RIGHT"]).optional(),
46
+ start_line: z.coerce.number().int().positive().optional(),
47
+ start_side: z.enum(["LEFT", "RIGHT"]).optional(),
48
+ });
49
+ const updatePrReviewCommentParams = z.object({
50
+ owner: ownerRepoField,
51
+ repo: ownerRepoField,
52
+ comment_id: commentIdField,
53
+ body: z.string().min(1),
54
+ });
55
+ const deletePrReviewCommentParams = z.object({
56
+ owner: ownerRepoField,
57
+ repo: ownerRepoField,
58
+ comment_id: commentIdField,
59
+ });
60
+ // ─── Envelope helpers ─────────────────────────────────────────────────────
61
+ function issueCommentEnvelope(c) {
62
+ return {
63
+ comment_id: c.id,
64
+ author: c.user?.login ?? "",
65
+ body_markdown: c.body ?? "",
66
+ url: c.html_url ?? "",
67
+ created_at: c.created_at ?? null,
68
+ updated_at: c.updated_at ?? null,
69
+ };
70
+ }
71
+ function prReviewCommentEnvelope(c) {
72
+ return {
73
+ comment_id: c.id,
74
+ author: c.user?.login ?? "",
75
+ body_markdown: c.body ?? "",
76
+ path: c.path ?? "",
77
+ line: c.line ?? null,
78
+ commit_id: c.commit_id ?? "",
79
+ diff_hunk: c.diff_hunk ?? "",
80
+ url: c.html_url ?? "",
81
+ created_at: c.created_at ?? null,
82
+ updated_at: c.updated_at ?? null,
83
+ };
84
+ }
85
+ // ─── Action factory ───────────────────────────────────────────────────────
86
+ export function buildCommentsActions(_deps) {
87
+ return {
88
+ add_issue_comment: {
89
+ description: "Add a comment on an issue or PR conversation",
90
+ params: addIssueCommentParams,
91
+ classify: { kind: "write" },
92
+ handler: async (p, ctx) => {
93
+ const r = await ctx.sdk.addIssueComment(p.owner, p.repo, p.issue_number, {
94
+ body: p.body,
95
+ });
96
+ throwIfHttpError(r);
97
+ return issueCommentEnvelope(r.data);
98
+ },
99
+ },
100
+ update_issue_comment: {
101
+ description: "Edit an existing issue/PR-conversation comment",
102
+ params: updateIssueCommentParams,
103
+ classify: { kind: "write" },
104
+ handler: async (p, ctx) => {
105
+ const r = await ctx.sdk.updateIssueComment(p.owner, p.repo, p.comment_id, {
106
+ body: p.body,
107
+ });
108
+ throwIfHttpError(r);
109
+ return issueCommentEnvelope(r.data);
110
+ },
111
+ },
112
+ delete_issue_comment: {
113
+ description: "Delete an issue/PR-conversation comment",
114
+ params: deleteIssueCommentParams,
115
+ classify: { kind: "write", aspects: ["delete"] },
116
+ handler: async (p, ctx) => {
117
+ const r = await ctx.sdk.deleteIssueComment(p.owner, p.repo, p.comment_id);
118
+ throwIfHttpError(r);
119
+ return { comment_id: p.comment_id, deleted: true };
120
+ },
121
+ },
122
+ add_pr_review_comment: {
123
+ description: "Add an inline review comment to a PR at a specific file/line/commit",
124
+ params: addPrReviewCommentParams,
125
+ classify: { kind: "write" },
126
+ handler: async (p, ctx) => {
127
+ const body = {
128
+ body: p.body,
129
+ commit_id: p.commit_id,
130
+ path: p.path,
131
+ line: p.line,
132
+ };
133
+ if (p.side !== undefined)
134
+ body.side = p.side;
135
+ if (p.start_line !== undefined)
136
+ body.start_line = p.start_line;
137
+ if (p.start_side !== undefined)
138
+ body.start_side = p.start_side;
139
+ const r = await ctx.sdk.addPrReviewComment(p.owner, p.repo, p.pr_number, body);
140
+ throwIfHttpError(r);
141
+ return prReviewCommentEnvelope(r.data);
142
+ },
143
+ },
144
+ update_pr_review_comment: {
145
+ description: "Edit an existing PR review-inline comment",
146
+ params: updatePrReviewCommentParams,
147
+ classify: { kind: "write" },
148
+ handler: async (p, ctx) => {
149
+ const r = await ctx.sdk.updatePrReviewComment(p.owner, p.repo, p.comment_id, { body: p.body });
150
+ throwIfHttpError(r);
151
+ return prReviewCommentEnvelope(r.data);
152
+ },
153
+ },
154
+ delete_pr_review_comment: {
155
+ description: "Delete a PR review-inline comment",
156
+ params: deletePrReviewCommentParams,
157
+ classify: { kind: "write", aspects: ["delete"] },
158
+ handler: async (p, ctx) => {
159
+ const r = await ctx.sdk.deletePrReviewComment(p.owner, p.repo, p.comment_id);
160
+ throwIfHttpError(r);
161
+ return { comment_id: p.comment_id, deleted: true };
162
+ },
163
+ },
164
+ };
165
+ }
166
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../../src/connectors/github/actions/comments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GithubActionDeps, GithubActions } from "./_types.js";
2
+ export declare function buildIssuesActions(_deps: GithubActionDeps): GithubActions;
3
+ //# sourceMappingURL=issues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../../../src/connectors/github/actions/issues.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA6DnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CAqFzE"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Issue action specs: get / create / update / close.
3
+ * Close is a dedicated action carrying the delete aspect so the toolkit
4
+ * policy gate's `aspects.delete` rule applies. update_issue's zod schema
5
+ * forbids state=closed at parse-time to route closures through close_issue.
6
+ */
7
+ import { throwIfHttpError } from "narai-primitives/toolkit";
8
+ import { z } from "zod";
9
+ import { ownerRepoField, issueNumberField } from "./_fields.js";
10
+ const getIssueParams = z.object({
11
+ owner: ownerRepoField,
12
+ repo: ownerRepoField,
13
+ issue_number: issueNumberField,
14
+ });
15
+ const createIssueParams = z.object({
16
+ owner: ownerRepoField,
17
+ repo: ownerRepoField,
18
+ title: z.string().min(1),
19
+ body: z.string().optional(),
20
+ labels: z.array(z.string()).optional(),
21
+ assignees: z.array(z.string()).optional(),
22
+ milestone: z.number().int().positive().optional(),
23
+ });
24
+ const updateIssueParams = z.object({
25
+ owner: ownerRepoField,
26
+ repo: ownerRepoField,
27
+ issue_number: issueNumberField,
28
+ title: z.string().min(1).optional(),
29
+ body: z.string().optional(),
30
+ state: z
31
+ .enum(["open"], {
32
+ errorMap: () => ({
33
+ message: "update_issue only accepts state=open. Use close_issue to close.",
34
+ }),
35
+ })
36
+ .optional(),
37
+ labels: z.array(z.string()).optional(),
38
+ assignees: z.array(z.string()).optional(),
39
+ });
40
+ const closeIssueParams = z.object({
41
+ owner: ownerRepoField,
42
+ repo: ownerRepoField,
43
+ issue_number: issueNumberField,
44
+ state_reason: z.enum(["completed", "not_planned", "duplicate"]).optional(),
45
+ });
46
+ function issueEnvelope(d) {
47
+ return {
48
+ number: d.number,
49
+ title: d.title,
50
+ state: d.state,
51
+ author: d.user?.login ?? "",
52
+ labels: (d.labels ?? []).map((l) => typeof l === "string" ? l : (l.name ?? "")),
53
+ url: d.html_url ?? "",
54
+ body_markdown: d.body ?? "",
55
+ updated_at: d.updated_at ?? null,
56
+ state_reason: d.state_reason ?? null,
57
+ };
58
+ }
59
+ export function buildIssuesActions(_deps) {
60
+ return {
61
+ get_issue: {
62
+ description: "Fetch a single issue by number",
63
+ params: getIssueParams,
64
+ classify: { kind: "read" },
65
+ handler: async (p, ctx) => {
66
+ const r = await ctx.sdk.getIssue(p.owner, p.repo, p.issue_number);
67
+ throwIfHttpError(r);
68
+ return issueEnvelope(r.data);
69
+ },
70
+ },
71
+ create_issue: {
72
+ description: "Create a new issue",
73
+ params: createIssueParams,
74
+ classify: { kind: "write" },
75
+ handler: async (p, ctx) => {
76
+ const body = { title: p.title };
77
+ if (p.body !== undefined)
78
+ body.body = p.body;
79
+ if (p.labels !== undefined)
80
+ body.labels = p.labels;
81
+ if (p.assignees !== undefined)
82
+ body.assignees = p.assignees;
83
+ if (p.milestone !== undefined)
84
+ body.milestone = p.milestone;
85
+ const r = await ctx.sdk.createIssue(p.owner, p.repo, body);
86
+ throwIfHttpError(r);
87
+ return issueEnvelope(r.data);
88
+ },
89
+ },
90
+ update_issue: {
91
+ description: "Update title, body, labels, assignees, or set state=open (reopen). Closing is a separate action.",
92
+ params: updateIssueParams,
93
+ classify: { kind: "write" },
94
+ handler: async (p, ctx) => {
95
+ const body = {};
96
+ if (p.title !== undefined)
97
+ body.title = p.title;
98
+ if (p.body !== undefined)
99
+ body.body = p.body;
100
+ if (p.state !== undefined)
101
+ body.state = p.state;
102
+ if (p.labels !== undefined)
103
+ body.labels = p.labels;
104
+ if (p.assignees !== undefined)
105
+ body.assignees = p.assignees;
106
+ const r = await ctx.sdk.updateIssue(p.owner, p.repo, p.issue_number, body);
107
+ throwIfHttpError(r);
108
+ return issueEnvelope(r.data);
109
+ },
110
+ },
111
+ close_issue: {
112
+ description: "Close an issue (does not delete; REST has no hard-delete).",
113
+ params: closeIssueParams,
114
+ classify: { kind: "write", aspects: ["delete"] },
115
+ handler: async (p, ctx) => {
116
+ const body = {};
117
+ if (p.state_reason !== undefined)
118
+ body.state_reason = p.state_reason;
119
+ const r = await ctx.sdk.closeIssue(p.owner, p.repo, p.issue_number, body);
120
+ throwIfHttpError(r);
121
+ return {
122
+ ...issueEnvelope(r.data),
123
+ closed: true,
124
+ };
125
+ },
126
+ },
127
+ };
128
+ }
129
+ //# sourceMappingURL=issues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../../../src/connectors/github/actions/issues.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,gBAAgB;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,gBAAgB;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;QACd,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACf,OAAO,EACL,iEAAiE;SACpE,CAAC;KACH,CAAC;SACD,QAAQ,EAAE;IACb,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3E,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,CAAoB;IACzC,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAC3C;QACD,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;QACrB,aAAa,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;QAC3B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;QAChC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAuB;IACxD,OAAO;QACL,SAAS,EAAE;YACT,WAAW,EAAE,gCAAgC;YAC7C,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACxB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;gBAClE,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,oBAAoB;YACjC,MAAM,EAAE,iBAAiB;YACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACxB,MAAM,IAAI,GAMN,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;gBACnD,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;oBAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;gBAC5D,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;oBAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;gBAC5D,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3D,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF;QACD,YAAY,EAAE;YACZ,WAAW,EACT,kGAAkG;YACpG,MAAM,EAAE,iBAAiB;YACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACxB,MAAM,IAAI,GAMN,EAAE,CAAC;gBACP,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;oBAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;gBAChD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC7C,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;oBAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;gBAChD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;gBACnD,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;oBAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;gBAC5D,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CACjC,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,YAAY,EACd,IAAI,CACL,CAAC;gBACF,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF;QACD,WAAW,EAAE;YACX,WAAW,EACT,4DAA4D;YAC9D,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;YAChD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACxB,MAAM,IAAI,GAEN,EAAE,CAAC;gBACP,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS;oBAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;gBACrE,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,CAChC,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,YAAY,EACd,IAAI,CACL,CAAC;gBACF,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO;oBACL,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;oBACxB,MAAM,EAAE,IAAI;iBACb,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { GithubActionDeps, GithubActions } from "./_types.js";
2
+ export declare function buildPullsActions(deps: GithubActionDeps): GithubActions;
3
+ //# sourceMappingURL=pulls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulls.d.ts","sourceRoot":"","sources":["../../../../src/connectors/github/actions/pulls.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA4EnE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CA2HvE"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Pull-request action specs: get / create / update / close / merge.
3
+ *
4
+ * Classification:
5
+ * - get_pull_request : read
6
+ * - create_pull_request : write (require_draft_pr forces draft=true)
7
+ * - update_pull_request : write (schema rejects state=closed)
8
+ * - close_pull_request : write + delete aspect
9
+ * - merge_pull_request : admin (operator opt-in via YAML)
10
+ *
11
+ * 409-on-merge: GitHub returns 409 when the head SHA changed between
12
+ * the caller's read and our PUT. We surface that as a VALIDATION_ERROR
13
+ * via a connector-local CONFLICT code (mapped in index.ts CODE_MAP).
14
+ */
15
+ import { ConnectorError, throwIfHttpError } from "narai-primitives/toolkit";
16
+ import { z } from "zod";
17
+ import { ownerRepoField, pullNumberField, branchField, prHeadField } from "./_fields.js";
18
+ const getPullParams = z.object({
19
+ owner: ownerRepoField,
20
+ repo: ownerRepoField,
21
+ pull_number: pullNumberField,
22
+ });
23
+ const createPullParams = z.object({
24
+ owner: ownerRepoField,
25
+ repo: ownerRepoField,
26
+ title: z.string().min(1),
27
+ head: prHeadField,
28
+ base: branchField,
29
+ body: z.string().optional(),
30
+ draft: z.boolean().default(false),
31
+ maintainer_can_modify: z.boolean().optional(),
32
+ });
33
+ const updatePullParams = z.object({
34
+ owner: ownerRepoField,
35
+ repo: ownerRepoField,
36
+ pull_number: pullNumberField,
37
+ title: z.string().min(1).optional(),
38
+ body: z.string().optional(),
39
+ base: branchField.optional(),
40
+ maintainer_can_modify: z.boolean().optional(),
41
+ state: z
42
+ .enum(["open"], {
43
+ errorMap: () => ({
44
+ message: "update_pull_request only accepts state=open. Use close_pull_request to close.",
45
+ }),
46
+ })
47
+ .optional(),
48
+ });
49
+ const closePullParams = z.object({
50
+ owner: ownerRepoField,
51
+ repo: ownerRepoField,
52
+ pull_number: pullNumberField,
53
+ });
54
+ const mergeMethodField = z.enum(["merge", "squash", "rebase"]);
55
+ const mergePullParams = z.object({
56
+ owner: ownerRepoField,
57
+ repo: ownerRepoField,
58
+ pull_number: pullNumberField,
59
+ merge_method: mergeMethodField.default("merge"),
60
+ commit_title: z.string().optional(),
61
+ commit_message: z.string().optional(),
62
+ sha: z.string().optional(),
63
+ });
64
+ function pullEnvelope(d) {
65
+ return {
66
+ number: d.number,
67
+ title: d.title,
68
+ state: d.state,
69
+ draft: d.draft ?? false,
70
+ author: d.user?.login ?? "",
71
+ base_ref: d.base?.ref ?? "",
72
+ head_ref: d.head?.ref ?? "",
73
+ base_sha: d.base?.sha ?? "",
74
+ head_sha: d.head?.sha ?? "",
75
+ url: d.html_url ?? "",
76
+ body_markdown: d.body ?? "",
77
+ merged: d.merged ?? false,
78
+ mergeable: d.mergeable ?? null,
79
+ updated_at: d.updated_at ?? null,
80
+ };
81
+ }
82
+ export function buildPullsActions(deps) {
83
+ return {
84
+ get_pull_request: {
85
+ description: "Fetch a single pull request by number",
86
+ params: getPullParams,
87
+ classify: { kind: "read" },
88
+ handler: async (p, ctx) => {
89
+ const r = await ctx.sdk.getPull(p.owner, p.repo, p.pull_number);
90
+ throwIfHttpError(r);
91
+ return pullEnvelope(r.data);
92
+ },
93
+ },
94
+ create_pull_request: {
95
+ description: "Open a new pull request. Honors the require_draft_pr config knob.",
96
+ params: createPullParams,
97
+ classify: { kind: "write" },
98
+ handler: async (p, ctx) => {
99
+ const requestedDraft = p.draft;
100
+ const draftToUse = deps.behavior.requireDraftPr ? true : requestedDraft;
101
+ const body = {
102
+ title: p.title,
103
+ head: p.head,
104
+ base: p.base,
105
+ draft: draftToUse,
106
+ };
107
+ if (p.body !== undefined)
108
+ body.body = p.body;
109
+ if (p.maintainer_can_modify !== undefined)
110
+ body.maintainer_can_modify = p.maintainer_can_modify;
111
+ const r = await ctx.sdk.createPull(p.owner, p.repo, body);
112
+ throwIfHttpError(r);
113
+ return {
114
+ ...pullEnvelope(r.data),
115
+ draft_forced_by_config: deps.behavior.requireDraftPr && !requestedDraft,
116
+ };
117
+ },
118
+ },
119
+ update_pull_request: {
120
+ description: "Update title, body, base, or set state=open (reopen). Closing is a separate action.",
121
+ params: updatePullParams,
122
+ classify: { kind: "write" },
123
+ handler: async (p, ctx) => {
124
+ const body = {};
125
+ if (p.title !== undefined)
126
+ body.title = p.title;
127
+ if (p.body !== undefined)
128
+ body.body = p.body;
129
+ if (p.state !== undefined)
130
+ body.state = p.state;
131
+ if (p.base !== undefined)
132
+ body.base = p.base;
133
+ if (p.maintainer_can_modify !== undefined)
134
+ body.maintainer_can_modify = p.maintainer_can_modify;
135
+ const r = await ctx.sdk.updatePull(p.owner, p.repo, p.pull_number, body);
136
+ throwIfHttpError(r);
137
+ return pullEnvelope(r.data);
138
+ },
139
+ },
140
+ close_pull_request: {
141
+ description: "Close a pull request (does not delete; GitHub has no REST hard-delete).",
142
+ params: closePullParams,
143
+ classify: { kind: "write", aspects: ["delete"] },
144
+ handler: async (p, ctx) => {
145
+ const r = await ctx.sdk.closePull(p.owner, p.repo, p.pull_number);
146
+ throwIfHttpError(r);
147
+ return {
148
+ ...pullEnvelope(r.data),
149
+ closed: true,
150
+ };
151
+ },
152
+ },
153
+ merge_pull_request: {
154
+ description: "Merge a pull request. Admin-classified — operator must opt in via ~/.github-agent/config.yaml.",
155
+ params: mergePullParams,
156
+ classify: { kind: "admin" },
157
+ handler: async (p, ctx) => {
158
+ const body = { merge_method: p.merge_method };
159
+ if (p.commit_title !== undefined)
160
+ body.commit_title = p.commit_title;
161
+ if (p.commit_message !== undefined)
162
+ body.commit_message = p.commit_message;
163
+ if (p.sha !== undefined)
164
+ body.sha = p.sha;
165
+ const r = await ctx.sdk.mergePull(p.owner, p.repo, p.pull_number, body);
166
+ if (!r.ok && r.status === 409) {
167
+ throw new ConnectorError("CONFLICT", `merge_pull_request: head SHA changed mid-merge (${r.message})`, false);
168
+ }
169
+ throwIfHttpError(r);
170
+ return {
171
+ owner: p.owner,
172
+ repo: p.repo,
173
+ pull_number: p.pull_number,
174
+ merged: r.data.merged,
175
+ merge_sha: r.data.sha,
176
+ message: r.data.message,
177
+ };
178
+ },
179
+ },
180
+ };
181
+ }
182
+ //# sourceMappingURL=pulls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulls.js","sourceRoot":"","sources":["../../../../src/connectors/github/actions/pulls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GithubActionDeps, GithubActions } from "./_types.js";
2
+ export declare function buildReadActions(_deps: GithubActionDeps): GithubActions;
3
+ //# sourceMappingURL=reads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../../../src/connectors/github/actions/reads.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgFnE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CAqSvE"}