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,146 @@
1
+ ---
2
+ name: jira-connector
3
+ description: |
4
+ Use when the user asks about Jira data or wants to create, update, or
5
+ delete Jira content — JQL search, issue details, project metadata,
6
+ comments, attachments, status transitions, or any write operation on
7
+ issues and comments. Supports both read and write surfaces; every action
8
+ passes the policy gate before any network call is made: read actions
9
+ succeed by default, write and delete actions escalate by default,
10
+ privilege actions are hard-denied.
11
+ context: fork
12
+ ---
13
+
14
+ # Jira Connector
15
+
16
+ Answer the user's question by invoking the `jira-connector` binary exposed by
17
+ this plugin. It delegates to `narai-primitives/jira`, which enforces the
18
+ policy gate before any Atlassian REST v3 call is made.
19
+
20
+ ## Invocation
21
+
22
+ ```
23
+ jira-connector --action <action> --params '<json>'
24
+ ```
25
+
26
+ Return the connector's JSON envelope verbatim.
27
+
28
+ ## Supported actions
29
+
30
+ | Action | Classification | Required params | Optional params |
31
+ |---------------------|----------------|------------------------------------------------------------------------------|---------------------------------------------------------------------------|
32
+ | `jql_search` | read | `jql` | `max_results` (default 50, max 500) |
33
+ | `get_issue` | read | `issue_key` (e.g. `PROJ-123`) | `expand` (array of field names) |
34
+ | `get_project` | read | `project_key` (e.g. `PROJ`) | |
35
+ | `list_attachments` | read | `issue_key` | |
36
+ | `get_attachment` | read | `issue_key`, `attachment_id` | |
37
+ | `get_comments` | read | `issue_key` | `max_results` (default 50) |
38
+ | `create_issue` | write | `project_key`, `issue_type`, `summary` | `description` (content input), `labels`, `assignee_account_id`, `parent_key` |
39
+ | `update_issue` | write | `issue_key` | `summary`, `description` (content input), `labels`, `assignee_account_id` |
40
+ | `delete_issue` | write/delete | `issue_key` | |
41
+ | `add_comment` | write | `issue_key`, `body` (content input) | |
42
+ | `update_comment` | write | `issue_key`, `comment_id`, `body` (content input) | |
43
+ | `delete_comment` | write/delete | `issue_key`, `comment_id` | |
44
+ | `transition_issue` | write | `issue_key`, `transition_id` | `comment` (content input) |
45
+ | `post_attachment` | write | `issue_key`, `files` (array — see Multipart upload) | |
46
+
47
+ ## Envelope shape
48
+
49
+ **success**
50
+ ```json
51
+ {"status": "success", "action": "create_issue", "data": {"key": "PROJ-123", "id": "10456", "self": "https://acme.atlassian.net/rest/api/3/issue/10456"}}
52
+ ```
53
+
54
+ **escalate** (default for write/delete actions)
55
+ ```json
56
+ {"status": "escalate", "action": "create_issue", "reason": "WRITE statements require approval"}
57
+ ```
58
+
59
+ **denied** (default for privilege actions, or operator-set policy)
60
+ ```json
61
+ {"status": "denied", "action": "delete_issue", "reason": "DELETE actions are not allowed by operator policy"}
62
+ ```
63
+
64
+ **error**
65
+ ```json
66
+ {"status": "error", "action": "create_issue", "error_code": "VALIDATION_ERROR", "message": "Invalid ADF: root.type must be 'doc'", "retriable": false}
67
+ ```
68
+
69
+ ## Content input (ADF / markdown / plain)
70
+
71
+ Fields that accept body text (`description`, `body`, `comment`) use a
72
+ discriminated union so you can pass whichever format is most convenient:
73
+
74
+ **markdown** (converted via marklassian; output validated via assertValidAdf):
75
+ ```json
76
+ {"description": {"format": "markdown", "value": "# Title\n\nSome **bold** text."}}
77
+ ```
78
+
79
+ **ADF** (passed through; validated via assertValidAdf):
80
+ ```json
81
+ {"description": {"format": "adf", "value": {"type": "doc", "version": 1, "content": []}}}
82
+ ```
83
+
84
+ **plain** (wrapped in an ADF paragraph node):
85
+ ```json
86
+ {"description": {"format": "plain", "value": "Just text."}}
87
+ ```
88
+
89
+ ## Multipart upload
90
+
91
+ `post_attachment` uploads one or more files to an issue. Each entry in
92
+ `files` is either inline base64 or a local path:
93
+
94
+ ```json
95
+ {
96
+ "issue_key": "PROJ-1",
97
+ "files": [
98
+ {"filename": "report.pdf", "content_base64": "JVBERi..."},
99
+ {"path": "./uploads/screenshot.png"}
100
+ ]
101
+ }
102
+ ```
103
+
104
+ Path inputs must resolve under the current working directory (validated via
105
+ the toolkit's `checkPathContainment`); any path that escapes CWD returns a
106
+ `VALIDATION_ERROR` envelope without making any network call.
107
+
108
+ ## Credentials
109
+
110
+ Set these environment variables before use:
111
+
112
+ | Variable | Description |
113
+ |------------------|----------------------------------------------|
114
+ | `JIRA_SITE_URL` | Your Atlassian site URL (e.g. `https://acme.atlassian.net`) |
115
+ | `JIRA_EMAIL` | Atlassian account email |
116
+ | `JIRA_API_TOKEN` | Atlassian API token |
117
+
118
+ Alternatively, register a credential provider via
119
+ `narai-primitives/credentials`. Per-site credentials can be configured
120
+ under `connectors.jira.options.sites.<alias>` in
121
+ `~/.connectors/config.yaml`.
122
+
123
+ ## Safety
124
+
125
+ Read AND write surface; the policy gate gates every action before any
126
+ network call is made. WRITE escalates by default; DELETE also escalates by
127
+ default; PRIVILEGE is hard-denied. Never bypass the `jira-connector` binary to
128
+ call the Atlassian REST API directly — the binary is the only sanctioned
129
+ channel. Never edit the operator's config to weaken a policy decision;
130
+ report the decision instead.
131
+
132
+ Default policy (operator may override under `connectors.jira.policy` in
133
+ `~/.connectors/config.yaml`; per-site override under
134
+ `connectors.jira.options.sites.<alias>.policy`):
135
+
136
+ ```yaml
137
+ policy:
138
+ read: allow
139
+ write: escalate
140
+ delete: escalate
141
+ admin: deny
142
+ privilege: deny
143
+ ```
144
+
145
+ The `admin` and `privilege` rules cannot be set to `allow` — the safety
146
+ floor is enforced at config load.
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "linear-connector-plugin",
3
+ "version": "1.0.0",
4
+ "description": "Read + write CRUD on Linear issues, projects, comments, and attachment links. Policy-gated.",
5
+ "author": "narai"
6
+ }
@@ -0,0 +1,29 @@
1
+ # linear-connector plugin
2
+
3
+ Claude Code plugin for the Linear connector. Exposes the `linear-connector` binary
4
+ that delegates to `narai-primitives/linear` — a GraphQL-based connector with
5
+ 7 read actions and 7 write actions for Linear issues, comments, and attachments.
6
+
7
+ ## Environment variables
8
+
9
+ | Variable | Description |
10
+ |-------------------|------------------------------------|
11
+ | `LINEAR_API_KEY` | Linear personal API key (no Bearer prefix — Linear is opinionated) |
12
+
13
+ Obtain your API key from Linear → Settings → API → Personal API keys.
14
+
15
+ ## Credentials note
16
+
17
+ The connector reads `LINEAR_API_KEY` from the environment. You can also
18
+ register a credential provider via `narai-primitives/credentials`, or
19
+ configure it under `connectors.linear.options.api_key` in
20
+ `~/.connectors/config.yaml`.
21
+
22
+ The authorization header sent to `https://api.linear.app/graphql` is:
23
+
24
+ ```
25
+ Authorization: <api_key>
26
+ ```
27
+
28
+ Note: Linear does **not** use a `Bearer` prefix — this is Linear-specific
29
+ and differs from most REST APIs.
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
5
+ echo "linear-connector: CLAUDE_PLUGIN_DATA is not set (run from inside Claude Code)" >&2
6
+ exit 2
7
+ fi
8
+
9
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/linear/cli.js"
10
+
11
+ if [ ! -f "$CLI" ]; then
12
+ echo "linear-connector: connector CLI not found at $CLI" >&2
13
+ echo "Restart your Claude Code session to re-run the SessionStart install hook." >&2
14
+ exit 2
15
+ fi
16
+
17
+ exec node "$CLI" "$@"
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: Run a Linear query or mutation via the linear-connector connector
3
+ argument-hint: "<action> <params-json>"
4
+ ---
5
+
6
+ Invoke the `linear-connector` skill with the user's $ARGUMENTS as the action name and params JSON. Return the connector's JSON envelope verbatim.
@@ -0,0 +1,50 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (mkdir -p \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/\" && cd \"${CLAUDE_PLUGIN_DATA}\" && npm install --no-audit --no-fund) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""
9
+ },
10
+ {
11
+ "type": "command",
12
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/dispatcher.mjs\" session-start"
13
+ }
14
+ ]
15
+ }
16
+ ],
17
+ "PreToolUse": [
18
+ {
19
+ "matcher": "Bash",
20
+ "hooks": [
21
+ {
22
+ "type": "command",
23
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/dispatcher.mjs\" pre-tool-use"
24
+ }
25
+ ]
26
+ }
27
+ ],
28
+ "PostToolUse": [
29
+ {
30
+ "matcher": "Bash",
31
+ "hooks": [
32
+ {
33
+ "type": "command",
34
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/dispatcher.mjs\" post-tool-use"
35
+ }
36
+ ]
37
+ }
38
+ ],
39
+ "SessionEnd": [
40
+ {
41
+ "hooks": [
42
+ {
43
+ "type": "command",
44
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/dispatcher.mjs\" session-end"
45
+ }
46
+ ]
47
+ }
48
+ ]
49
+ }
50
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "linear-connector-plugin-runtime",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "narai-primitives": "^2.1.3"
7
+ }
8
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "linear",
3
+ "binPath": "narai-primitives/dist/connectors/linear"
4
+ }
@@ -0,0 +1,159 @@
1
+ ---
2
+ name: linear-connector
3
+ description: |
4
+ Use when the user asks about Linear data or wants to create, update, or
5
+ archive Linear content — issue search, issue details, project metadata,
6
+ comments, attachment links, or any write operation on issues and comments.
7
+ Supports both read and write surfaces; every action passes the policy gate
8
+ before any network call is made: read actions succeed by default, write and
9
+ delete actions escalate by default, privilege actions are hard-denied.
10
+ context: fork
11
+ ---
12
+
13
+ # Linear Connector
14
+
15
+ Answer the user's question by invoking the `linear-connector` binary exposed by
16
+ this plugin. It delegates to `narai-primitives/linear`, which enforces the
17
+ policy gate before any Linear GraphQL call is made.
18
+
19
+ ## Invocation
20
+
21
+ ```
22
+ linear-connector --action <action> --params '<json>'
23
+ ```
24
+
25
+ Return the connector's JSON envelope verbatim.
26
+
27
+ ## Supported actions
28
+
29
+ | Action | Classification | Required params | Optional params |
30
+ |----------------------|----------------|----------------------------------------------------------|----------------------------------------------------------------------------|
31
+ | `get_issue` | read | `id` (identifier like `ENG-123` or UUID) | |
32
+ | `search_issues` | read | | `team_key`, `state`, `assignee_email`, `text`, `max_results` (default 50) |
33
+ | `get_project` | read | `id` (UUID) | |
34
+ | `get_team` | read | `key_or_id` (team key like `ENG` or UUID) | |
35
+ | `get_comments` | read | `issue_id` | `max_results` (default 50) |
36
+ | `list_attachments` | read | `issue_id` | |
37
+ | `get_attachment` | read | `attachment_id` | Use `list_attachments` first to get the URL; then fetch externally. |
38
+ | `create_issue` | write | `team_id`, `title` | `description` (markdown), `assignee_id`, `label_ids`, `priority`, `parent_id` |
39
+ | `update_issue` | write | `id` | `title`, `description`, `assignee_id`, `state_id`, `priority` |
40
+ | `archive_issue` | write/delete | `id` | |
41
+ | `add_comment` | write | `issue_id`, `body` (markdown) | |
42
+ | `update_comment` | write | `comment_id`, `body` (markdown) | |
43
+ | `delete_comment` | write/delete | `comment_id` | |
44
+ | `attachment_link` | write | `issue_id`, `title`, `url` | `subtitle`, `metadata` |
45
+
46
+ ## Envelope shape
47
+
48
+ **success**
49
+ ```json
50
+ {"status": "success", "action": "create_issue", "data": {"id": "abc-uuid", "identifier": "ENG-123", "url": "https://linear.app/team/issue/ENG-123", "title": "Fix login bug", "created_at": "2026-05-01T00:00:00.000Z"}}
51
+ ```
52
+
53
+ **escalate** (default for write/delete actions)
54
+ ```json
55
+ {"status": "escalate", "action": "create_issue", "reason": "WRITE statements require approval"}
56
+ ```
57
+
58
+ **denied** (default for privilege actions, or operator-set policy)
59
+ ```json
60
+ {"status": "denied", "action": "archive_issue", "reason": "DELETE actions are not allowed by operator policy"}
61
+ ```
62
+
63
+ **error**
64
+ ```json
65
+ {"status": "error", "action": "get_issue", "error_code": "NOT_FOUND", "message": "Issue 'ENG-999' not found", "retriable": false}
66
+ ```
67
+
68
+ ## Issue identifiers
69
+
70
+ Linear issues can be addressed two ways:
71
+
72
+ - **Identifier** (human-readable): `ENG-123` — team key + number
73
+ - **UUID** (internal): `abc12345-...` — 32+ hex character UUID
74
+
75
+ Both formats are accepted by `get_issue`, `search_issues`, `get_comments`,
76
+ `list_attachments`, `update_issue`, `archive_issue`, `add_comment`.
77
+
78
+ ## Descriptions and comments
79
+
80
+ Linear is **markdown-native**. Pass descriptions and comment bodies as plain
81
+ markdown strings — no ADF conversion needed:
82
+
83
+ ```json
84
+ {
85
+ "team_id": "team-uuid",
86
+ "title": "Fix login redirect",
87
+ "description": "## Problem\n\nUsers are redirected to a blank page after login.\n\n## Steps to reproduce\n\n1. Log out\n2. Log in again"
88
+ }
89
+ ```
90
+
91
+ ## Priority values
92
+
93
+ Linear priorities map to integers:
94
+
95
+ | Value | Label |
96
+ |-------|-----------|
97
+ | 0 | No priority |
98
+ | 1 | Urgent |
99
+ | 2 | High |
100
+ | 3 | Medium |
101
+ | 4 | Low |
102
+
103
+ ## Attachment linking
104
+
105
+ Linear does not host files via the public API. Use `attachment_link` to
106
+ associate an externally-hosted URL with an issue:
107
+
108
+ ```json
109
+ {
110
+ "issue_id": "ENG-123",
111
+ "title": "Design mockup",
112
+ "url": "https://figma.com/file/abc",
113
+ "subtitle": "v3 iteration"
114
+ }
115
+ ```
116
+
117
+ ## Credentials
118
+
119
+ Set this environment variable before use:
120
+
121
+ | Variable | Description |
122
+ |-------------------|----------------------------------------------|
123
+ | `LINEAR_API_KEY` | Linear personal API key |
124
+
125
+ Obtain from Linear → Settings → API → Personal API keys.
126
+
127
+ The authorization header is `Authorization: <api_key>` (no `Bearer` prefix —
128
+ this is Linear-specific).
129
+
130
+ Alternatively, configure under `connectors.linear.options.api_key` in
131
+ `~/.connectors/config.yaml`.
132
+
133
+ ## Safety
134
+
135
+ Read AND write surface; the policy gate gates every action before any network
136
+ call is made. WRITE escalates by default; DELETE also escalates by default;
137
+ PRIVILEGE is hard-denied. Never bypass the `linear-connector` binary to call the
138
+ Linear GraphQL API directly — the binary is the only sanctioned channel. Never
139
+ edit the operator's config to weaken a policy decision; report the decision
140
+ instead.
141
+
142
+ `archive_issue` and `delete_comment` are classified as `{kind: "write", aspects: ["delete"]}`.
143
+ Linear has no hard-delete via the public API; `archive_issue` invokes the
144
+ `issueArchive` mutation which sets `archivedAt`.
145
+
146
+ Default policy (operator may override under `connectors.linear.policy` in
147
+ `~/.connectors/config.yaml`):
148
+
149
+ ```yaml
150
+ policy:
151
+ read: allow
152
+ write: escalate
153
+ delete: escalate
154
+ admin: deny
155
+ privilege: deny
156
+ ```
157
+
158
+ The `admin` and `privilege` rules cannot be set to `allow` — the safety floor
159
+ is enforced at config load.
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "notion-connector-plugin",
3
+ "version": "1.1.0",
4
+ "description": "Read + write CRUD on Notion pages, blocks, and database entries. Policy-gated.",
5
+ "author": "narai"
6
+ }
@@ -1,17 +1,17 @@
1
- # notion-agent-plugin
1
+ # notion-connector-plugin
2
2
 
3
3
  Claude Code plugin that wraps `narai-primitives/notion` as a read-only Notion skill and slash command.
4
4
 
5
- - Skill `notion-agent` — automatic invocation for Notion workspace questions.
6
- - Slash command `/notion-agent <action> <params-json>`.
7
- - Binary `notion-agent` — thin shim over the installed connector CLI.
5
+ - Skill `notion-connector` — automatic invocation for Notion workspace questions.
6
+ - Slash command `/notion-connector <action> <params-json>`.
7
+ - Binary `notion-connector` — thin shim over the installed connector CLI.
8
8
 
9
9
  ## How install works
10
10
 
11
11
  On first `SessionStart` the hook copies `package.json` into
12
12
  `${CLAUDE_PLUGIN_DATA}` and runs `npm install --no-audit --no-fund` there
13
13
  once. After that, `${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/notion/cli.js`
14
- exists and `bin/notion-agent` exec's it.
14
+ exists and `bin/notion-connector` exec's it.
15
15
 
16
16
  ## Credentials
17
17
 
@@ -2,14 +2,14 @@
2
2
  set -euo pipefail
3
3
 
4
4
  if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
5
- echo "notion-agent: CLAUDE_PLUGIN_DATA is not set (run from inside Claude Code)" >&2
5
+ echo "notion-connector: CLAUDE_PLUGIN_DATA is not set (run from inside Claude Code)" >&2
6
6
  exit 2
7
7
  fi
8
8
 
9
9
  CLI="${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/notion/cli.js"
10
10
 
11
11
  if [ ! -f "$CLI" ]; then
12
- echo "notion-agent: connector CLI not found at $CLI" >&2
12
+ echo "notion-connector: connector CLI not found at $CLI" >&2
13
13
  echo "Restart your Claude Code session to re-run the SessionStart install hook." >&2
14
14
  exit 2
15
15
  fi
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: Run a read-only Notion query via the notion-connector connector
3
+ argument-hint: "<action> <params-json>"
4
+ ---
5
+
6
+ Invoke the `notion-connector` skill with the user's $ARGUMENTS as the action name and params JSON. Return the connector's JSON envelope verbatim.
@@ -0,0 +1,50 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (mkdir -p \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/\" && cd \"${CLAUDE_PLUGIN_DATA}\" && npm install --no-audit --no-fund) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""
9
+ },
10
+ {
11
+ "type": "command",
12
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/dispatcher.mjs\" session-start"
13
+ }
14
+ ]
15
+ }
16
+ ],
17
+ "PreToolUse": [
18
+ {
19
+ "matcher": "Bash",
20
+ "hooks": [
21
+ {
22
+ "type": "command",
23
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/dispatcher.mjs\" pre-tool-use"
24
+ }
25
+ ]
26
+ }
27
+ ],
28
+ "PostToolUse": [
29
+ {
30
+ "matcher": "Bash",
31
+ "hooks": [
32
+ {
33
+ "type": "command",
34
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/dispatcher.mjs\" post-tool-use"
35
+ }
36
+ ]
37
+ }
38
+ ],
39
+ "SessionEnd": [
40
+ {
41
+ "hooks": [
42
+ {
43
+ "type": "command",
44
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/dispatcher.mjs\" session-end"
45
+ }
46
+ ]
47
+ }
48
+ ]
49
+ }
50
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "notion-connector-plugin-runtime",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "narai-primitives": "^2.1.3"
7
+ }
8
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "notion",
3
+ "binPath": "narai-primitives/dist/connectors/notion"
4
+ }