narai-primitives 2.0.0 → 2.1.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 (141) hide show
  1. package/dist/config/index.d.ts +1 -0
  2. package/dist/config/index.d.ts.map +1 -1
  3. package/dist/config/index.js +1 -0
  4. package/dist/config/index.js.map +1 -1
  5. package/dist/config/policy_validation.d.ts +68 -0
  6. package/dist/config/policy_validation.d.ts.map +1 -0
  7. package/dist/config/policy_validation.js +58 -0
  8. package/dist/config/policy_validation.js.map +1 -0
  9. package/dist/config/types.d.ts +37 -19
  10. package/dist/config/types.d.ts.map +1 -1
  11. package/dist/connectors/aws/lib/aws_client.js +1 -1
  12. package/dist/connectors/aws/lib/aws_client.js.map +1 -1
  13. package/dist/connectors/confluence/index.js +1 -1
  14. package/dist/connectors/confluence/index.js.map +1 -1
  15. package/dist/connectors/confluence/lib/confluence_client.js +1 -1
  16. package/dist/connectors/confluence/lib/confluence_client.js.map +1 -1
  17. package/dist/connectors/db/connector.d.ts.map +1 -1
  18. package/dist/connectors/db/connector.js +4 -0
  19. package/dist/connectors/db/connector.js.map +1 -1
  20. package/dist/connectors/db/index.d.ts +1 -1
  21. package/dist/connectors/db/index.d.ts.map +1 -1
  22. package/dist/connectors/db/index.js +1 -1
  23. package/dist/connectors/db/index.js.map +1 -1
  24. package/dist/connectors/db/lib/connection.js +1 -1
  25. package/dist/connectors/db/lib/connection.js.map +1 -1
  26. package/dist/connectors/db/lib/credentials.d.ts +1 -1
  27. package/dist/connectors/db/lib/credentials.js +4 -4
  28. package/dist/connectors/db/lib/credentials.js.map +1 -1
  29. package/dist/connectors/db/lib/plugin_config.d.ts +28 -1
  30. package/dist/connectors/db/lib/plugin_config.d.ts.map +1 -1
  31. package/dist/connectors/db/lib/plugin_config.js +7 -1
  32. package/dist/connectors/db/lib/plugin_config.js.map +1 -1
  33. package/dist/connectors/db/lib/policy.d.ts +10 -2
  34. package/dist/connectors/db/lib/policy.d.ts.map +1 -1
  35. package/dist/connectors/db/lib/policy.js.map +1 -1
  36. package/dist/connectors/github/index.js +1 -1
  37. package/dist/connectors/github/index.js.map +1 -1
  38. package/dist/connectors/github/lib/github_client.js +1 -1
  39. package/dist/connectors/github/lib/github_client.js.map +1 -1
  40. package/dist/connectors/jira/index.js +1 -1
  41. package/dist/connectors/jira/index.js.map +1 -1
  42. package/dist/connectors/jira/lib/jira_client.js +1 -1
  43. package/dist/connectors/jira/lib/jira_client.js.map +1 -1
  44. package/dist/connectors/notion/index.js +1 -1
  45. package/dist/connectors/notion/index.js.map +1 -1
  46. package/dist/connectors/notion/lib/notion_client.js +1 -1
  47. package/dist/connectors/notion/lib/notion_client.js.map +1 -1
  48. package/dist/credentials/cloud_secrets.d.ts +57 -0
  49. package/dist/credentials/cloud_secrets.d.ts.map +1 -0
  50. package/dist/credentials/cloud_secrets.js +202 -0
  51. package/dist/credentials/cloud_secrets.js.map +1 -0
  52. package/dist/credentials/env_var.d.ts +24 -0
  53. package/dist/credentials/env_var.d.ts.map +1 -0
  54. package/dist/credentials/env_var.js +30 -0
  55. package/dist/credentials/env_var.js.map +1 -0
  56. package/dist/credentials/file.d.ts +73 -0
  57. package/dist/credentials/file.d.ts.map +1 -0
  58. package/dist/credentials/file.js +159 -0
  59. package/dist/credentials/file.js.map +1 -0
  60. package/dist/credentials/index.d.ts +114 -0
  61. package/dist/credentials/index.d.ts.map +1 -0
  62. package/dist/credentials/index.js +174 -0
  63. package/dist/credentials/index.js.map +1 -0
  64. package/dist/credentials/keychain.d.ts +31 -0
  65. package/dist/credentials/keychain.d.ts.map +1 -0
  66. package/dist/credentials/keychain.js +124 -0
  67. package/dist/credentials/keychain.js.map +1 -0
  68. package/dist/credentials/parse_ref.d.ts +57 -0
  69. package/dist/credentials/parse_ref.d.ts.map +1 -0
  70. package/dist/credentials/parse_ref.js +128 -0
  71. package/dist/credentials/parse_ref.js.map +1 -0
  72. package/dist/credentials/redact.d.ts +30 -0
  73. package/dist/credentials/redact.d.ts.map +1 -0
  74. package/dist/credentials/redact.js +51 -0
  75. package/dist/credentials/redact.js.map +1 -0
  76. package/dist/toolkit/connector.d.ts +11 -0
  77. package/dist/toolkit/connector.d.ts.map +1 -1
  78. package/dist/toolkit/connector.js.map +1 -1
  79. package/dist/toolkit/index.d.ts +1 -1
  80. package/dist/toolkit/index.js +1 -1
  81. package/dist/toolkit/policy/config.d.ts.map +1 -1
  82. package/dist/toolkit/policy/config.js +1 -2
  83. package/dist/toolkit/policy/config.js.map +1 -1
  84. package/dist/toolkit/policy/gate.d.ts +7 -5
  85. package/dist/toolkit/policy/gate.d.ts.map +1 -1
  86. package/dist/toolkit/policy/gate.js +2 -14
  87. package/dist/toolkit/policy/gate.js.map +1 -1
  88. package/dist/toolkit/policy/types.d.ts +30 -8
  89. package/dist/toolkit/policy/types.d.ts.map +1 -1
  90. package/dist/toolkit/policy/types.js +8 -2
  91. package/dist/toolkit/policy/types.js.map +1 -1
  92. package/package.json +21 -3
  93. package/plugins/aws-agent/.claude-plugin/plugin.json +2 -2
  94. package/plugins/aws-agent/README.md +2 -2
  95. package/plugins/aws-agent/bin/aws-agent +2 -2
  96. package/plugins/aws-agent/hooks/hooks.json +5 -5
  97. package/plugins/aws-agent/hooks/reminder.mjs +1 -1
  98. package/plugins/aws-agent/package.json +1 -1
  99. package/plugins/aws-agent/skills/aws-agent/SKILL.md +1 -1
  100. package/plugins/confluence-agent/.claude-plugin/plugin.json +2 -2
  101. package/plugins/confluence-agent/README.md +1 -1
  102. package/plugins/confluence-agent/bin/confluence-agent +1 -1
  103. package/plugins/confluence-agent/hooks/hooks.json +5 -5
  104. package/plugins/confluence-agent/hooks/reminder.mjs +1 -1
  105. package/plugins/confluence-agent/package.json +1 -1
  106. package/plugins/confluence-agent/skills/confluence-agent/SKILL.md +1 -1
  107. package/plugins/db-agent/.claude-plugin/plugin.json +4 -4
  108. package/plugins/db-agent/README.md +2 -2
  109. package/plugins/db-agent/bin/db-agent +1 -1
  110. package/plugins/db-agent/hooks/hooks.json +6 -6
  111. package/plugins/db-agent/hooks/reminder.mjs +1 -1
  112. package/plugins/db-agent/package.json +1 -1
  113. package/plugins/db-agent/skills/db-agent/SKILL.md +1 -1
  114. package/plugins/gcp-agent/.claude-plugin/plugin.json +2 -2
  115. package/plugins/gcp-agent/README.md +2 -2
  116. package/plugins/gcp-agent/bin/gcp-agent +2 -2
  117. package/plugins/gcp-agent/hooks/hooks.json +5 -5
  118. package/plugins/gcp-agent/hooks/reminder.mjs +1 -1
  119. package/plugins/gcp-agent/package.json +1 -1
  120. package/plugins/gcp-agent/skills/gcp-agent/SKILL.md +1 -1
  121. package/plugins/github-agent/.claude-plugin/plugin.json +2 -2
  122. package/plugins/github-agent/README.md +1 -1
  123. package/plugins/github-agent/bin/github-agent +1 -1
  124. package/plugins/github-agent/hooks/hooks.json +5 -5
  125. package/plugins/github-agent/hooks/reminder.mjs +1 -1
  126. package/plugins/github-agent/package.json +1 -1
  127. package/plugins/github-agent/skills/github-agent/SKILL.md +1 -1
  128. package/plugins/jira-agent/.claude-plugin/plugin.json +2 -2
  129. package/plugins/jira-agent/README.md +1 -1
  130. package/plugins/jira-agent/bin/jira-agent +1 -1
  131. package/plugins/jira-agent/hooks/hooks.json +5 -5
  132. package/plugins/jira-agent/hooks/reminder.mjs +1 -1
  133. package/plugins/jira-agent/package.json +1 -1
  134. package/plugins/jira-agent/skills/jira-agent/SKILL.md +1 -1
  135. package/plugins/notion-agent/.claude-plugin/plugin.json +2 -2
  136. package/plugins/notion-agent/README.md +2 -2
  137. package/plugins/notion-agent/bin/notion-agent +1 -1
  138. package/plugins/notion-agent/hooks/hooks.json +5 -5
  139. package/plugins/notion-agent/hooks/reminder.mjs +1 -1
  140. package/plugins/notion-agent/package.json +1 -1
  141. package/plugins/notion-agent/skills/notion-agent/SKILL.md +1 -1
@@ -18,19 +18,41 @@ export interface Classification {
18
18
  kind: Kind;
19
19
  aspects?: readonly string[];
20
20
  }
21
- /** Wire rules operators set per classification. */
22
- export type Rule = "success" | "present" | "escalate" | "denied";
21
+ /**
22
+ * Wire rules operators set per classification. The toolkit-level base set
23
+ * holds only `success | escalate | denied`. Connectors that need a custom
24
+ * rule (e.g. db-agent's `"present"` rule, which means "displayed but not
25
+ * executed") declare it locally and translate to a base rule at their own
26
+ * boundary before invoking `checkPolicy`. The wire envelope (`status` is
27
+ * `string`) and the `extendDecision` hook still let those connectors emit
28
+ * connector-specific outcomes.
29
+ */
30
+ export type Rule = "success" | "escalate" | "denied";
23
31
  /** Rule without `"success"` — used for safety-floor slots (admin, ddl, privilege). */
24
32
  export type RestrictedRule = Exclude<Rule, "success">;
25
- export interface PolicyRules {
26
- read: Rule;
27
- write: Rule;
28
- admin: RestrictedRule;
33
+ /**
34
+ * The toolkit-level rules shape, keyed by classification kind. `TExtra`
35
+ * mirrors `PolicyMap`'s parameter, but the default is `never` (not `string`):
36
+ * the toolkit gate is the strict checkpoint, so unspecialized `PolicyRules`
37
+ * means "base rules only". Connectors with extra rule values declare them
38
+ * explicitly via `PolicyRules<"present">` etc., and translate to base
39
+ * before invoking `checkPolicy`.
40
+ */
41
+ export interface PolicyRules<TExtra extends string = never> {
42
+ read: Rule | TExtra;
43
+ write: Rule | TExtra;
44
+ admin: RestrictedRule | TExtra;
29
45
  /** Per-aspect rule map. Absent aspects fall through to the kind's rule. */
30
- aspects?: Record<string, Rule>;
46
+ aspects?: Record<string, Rule | TExtra>;
31
47
  }
32
48
  export type ApprovalMode = "auto" | "confirm_once" | "confirm_each" | "grant_required";
33
- /** Defaults matching db-agent's historical behavior, generalized to CRUD. */
49
+ /**
50
+ * Connector-agnostic default rules. Writes escalate by default (operators
51
+ * may downgrade to `success` per connector); admin is the safety-floor
52
+ * default-deny. Connectors that historically used `"present"` for write
53
+ * (e.g. db-agent's "displayed but not executed") declare it in their own
54
+ * defaults and translate to `"escalate"` before reaching the toolkit gate.
55
+ */
34
56
  export declare const DEFAULT_POLICY: PolicyRules;
35
57
  /**
36
58
  * A gate decision. `extendDecision` hooks (e.g., db-agent's `present_only`)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/toolkit/policy/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/toolkit/policy/types.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,16 @@
6
6
  * | error`; connectors MAY extend with custom status values via the
7
7
  * `extendDecision` hook on `createConnector` (db-agent uses `present_only`).
8
8
  */
9
- /** Defaults matching db-agent's historical behavior, generalized to CRUD. */
9
+ /**
10
+ * Connector-agnostic default rules. Writes escalate by default (operators
11
+ * may downgrade to `success` per connector); admin is the safety-floor
12
+ * default-deny. Connectors that historically used `"present"` for write
13
+ * (e.g. db-agent's "displayed but not executed") declare it in their own
14
+ * defaults and translate to `"escalate"` before reaching the toolkit gate.
15
+ */
10
16
  export const DEFAULT_POLICY = {
11
17
  read: "success",
12
- write: "present",
18
+ write: "escalate",
13
19
  admin: "denied",
14
20
  aspects: {},
15
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/toolkit/policy/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4CH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,EAAE;CACZ,CAAC;AAgBF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAuC;IAC/D,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;CACV,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/toolkit/policy/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4DH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,EAAE;CACZ,CAAC;AAgBF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAuC;IAC/D,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;CACV,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "narai-primitives",
3
- "version": "2.0.0",
4
- "description": "Read-only connectors + planning hub + connector framework, in one package. Bundles what was @narai/connector-toolkit, @narai/connector-config, @narai/connector-hub, and the seven @narai/<svc>-agent-connector packages.",
3
+ "version": "2.1.0",
4
+ "description": "Read-only connectors + planning hub + connector framework + credential resolution, in one package. Bundles what was @narai/connector-toolkit, @narai/connector-config, @narai/connector-hub, the seven @narai/<svc>-agent-connector packages, and @narai/credential-providers.",
5
5
  "type": "module",
6
6
  "main": "./dist/hub/index.js",
7
7
  "types": "./dist/hub/index.d.ts",
@@ -22,6 +22,10 @@
22
22
  "types": "./dist/config/index.d.ts",
23
23
  "import": "./dist/config/index.js"
24
24
  },
25
+ "./credentials": {
26
+ "types": "./dist/credentials/index.d.ts",
27
+ "import": "./dist/credentials/index.js"
28
+ },
25
29
  "./aws": {
26
30
  "types": "./dist/connectors/aws/index.d.ts",
27
31
  "import": "./dist/connectors/aws/index.js"
@@ -34,6 +38,18 @@
34
38
  "types": "./dist/connectors/db/index.d.ts",
35
39
  "import": "./dist/connectors/db/index.js"
36
40
  },
41
+ "./db/policy": {
42
+ "types": "./dist/connectors/db/lib/policy.d.ts",
43
+ "import": "./dist/connectors/db/lib/policy.js"
44
+ },
45
+ "./db/schema": {
46
+ "types": "./dist/connectors/db/lib/schema.d.ts",
47
+ "import": "./dist/connectors/db/lib/schema.js"
48
+ },
49
+ "./db/plugin-config": {
50
+ "types": "./dist/connectors/db/lib/plugin_config.d.ts",
51
+ "import": "./dist/connectors/db/lib/plugin_config.js"
52
+ },
37
53
  "./gcp": {
38
54
  "types": "./dist/connectors/gcp/index.d.ts",
39
55
  "import": "./dist/connectors/gcp/index.js"
@@ -92,7 +108,6 @@
92
108
  },
93
109
  "dependencies": {
94
110
  "@anthropic-ai/claude-agent-sdk": "^0.2.119",
95
- "@narai/credential-providers": "^0.2.1",
96
111
  "better-sqlite3": "^12.9.0",
97
112
  "js-yaml": "^4.1.1",
98
113
  "zod": "^3.23.0"
@@ -103,7 +118,10 @@
103
118
  "@aws-sdk/client-lambda": "^3.1030.0",
104
119
  "@aws-sdk/client-rds": "^3.1030.0",
105
120
  "@aws-sdk/client-s3": "^3.1030.0",
121
+ "@aws-sdk/client-secrets-manager": "^3.1030.0",
106
122
  "@aws-sdk/client-sts": "^3.1030.0",
123
+ "@azure/keyvault-secrets": "^4.10.0",
124
+ "@google-cloud/secret-manager": "^6.0.0",
107
125
  "gpt-tokenizer": "^2.5.0",
108
126
  "mongodb": "^7.1.1",
109
127
  "mssql": "^12.2.1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws-agent-plugin",
3
- "version": "1.0.0",
4
- "description": "Read-only AWS connector for Claude Code. Wraps @narai/aws-agent-connector. Lambda, RDS, S3, CloudWatch.",
3
+ "version": "1.1.0",
4
+ "description": "Read-only AWS connector for Claude Code. Built on narai-primitives (subpath ./aws). Lambda, RDS, S3, CloudWatch.",
5
5
  "author": "narai"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  # aws-agent-plugin
2
2
 
3
- Claude Code plugin that wraps [`@narai/aws-agent-connector`](https://www.npmjs.com/package/@narai/aws-agent-connector) as a read-only AWS skill and slash command.
3
+ Claude Code plugin that wraps [`narai-primitives/aws`](https://www.npmjs.com/package/narai-primitives) as a read-only AWS skill and slash command.
4
4
 
5
5
  ## What it adds
6
6
 
@@ -21,7 +21,7 @@ hook in `hooks/hooks.json`:
21
21
  next session.
22
22
 
23
23
  After a successful install,
24
- `${CLAUDE_PLUGIN_DATA}/node_modules/@narai/aws-agent-connector/dist/cli.js`
24
+ `${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/aws/cli.js`
25
25
  exists and `bin/aws-agent` can exec it.
26
26
 
27
27
  ## Usage
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # aws-agent — thin shim over @narai/aws-agent-connector.
2
+ # aws-agent — thin shim over narai-primitives (CLI at dist/connectors/aws).
3
3
  #
4
4
  # The SessionStart hook in hooks/hooks.json installs the npm package into
5
5
  # ${CLAUDE_PLUGIN_DATA}/node_modules on first session. This shim exec's
@@ -11,7 +11,7 @@ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
11
11
  exit 2
12
12
  fi
13
13
 
14
- CLI="${CLAUDE_PLUGIN_DATA}/node_modules/@narai/aws-agent-connector/dist/cli.js"
14
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/aws/cli.js"
15
15
 
16
16
  if [ ! -f "$CLI" ]; then
17
17
  echo "aws-agent: connector CLI not found at $CLI" >&2
@@ -9,11 +9,11 @@
9
9
  },
10
10
  {
11
11
  "type": "command",
12
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/plugin/hooks/reminder.mjs\" 2>/dev/null || true"
12
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/reminder.mjs\" 2>/dev/null || true"
13
13
  },
14
14
  {
15
15
  "type": "command",
16
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
16
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
17
17
  "env": { "USAGE_CONNECTOR_NAME": "aws" }
18
18
  }
19
19
  ]
@@ -25,10 +25,10 @@
25
25
  "hooks": [
26
26
  {
27
27
  "type": "command",
28
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
28
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
29
29
  "env": {
30
30
  "USAGE_CONNECTOR_NAME": "aws",
31
- "USAGE_BIN_HINT": "@narai/aws-agent-connector"
31
+ "USAGE_BIN_HINT": "narai-primitives/dist/connectors/aws"
32
32
  }
33
33
  }
34
34
  ]
@@ -39,7 +39,7 @@
39
39
  "hooks": [
40
40
  {
41
41
  "type": "command",
42
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
42
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
43
43
  "env": { "USAGE_CONNECTOR_NAME": "aws" }
44
44
  }
45
45
  ]
@@ -5,7 +5,7 @@
5
5
  try {
6
6
  const data = process.env.CLAUDE_PLUGIN_DATA;
7
7
  if (!data) process.exit(0);
8
- const toolkitEntry = `${data}/node_modules/@narai/connector-toolkit/dist/plugin/reminder.js`;
8
+ const toolkitEntry = `${data}/node_modules/narai-primitives/dist/toolkit/plugin/reminder.js`;
9
9
  const mod = await import(toolkitEntry);
10
10
  const decision = mod.evaluateNudge({ connectors: ["aws"] });
11
11
  if (decision.nudge) {
@@ -4,6 +4,6 @@
4
4
  "private": true,
5
5
  "description": "Runtime manifest for aws-agent-plugin. The SessionStart hook runs `npm install` on this manifest into ${CLAUDE_PLUGIN_DATA}.",
6
6
  "dependencies": {
7
- "@narai/aws-agent-connector": "file:.."
7
+ "narai-primitives": "^2.0.0"
8
8
  }
9
9
  }
@@ -11,7 +11,7 @@ context: fork
11
11
  # AWS Agent
12
12
 
13
13
  Answer the user's question by invoking the `aws-agent` binary exposed by
14
- this plugin. It delegates to `@narai/aws-agent-connector`, which speaks to
14
+ this plugin. It delegates to `narai-primitives/aws`, which speaks to
15
15
  AWS via the read-only SDK v3 surface.
16
16
 
17
17
  ## Invocation
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "confluence-agent-plugin",
3
- "version": "1.0.0",
4
- "description": "Read-only Confluence connector for Claude Code. Wraps @narai/confluence-agent-connector.",
3
+ "version": "1.1.0",
4
+ "description": "Read-only Confluence connector for Claude Code. Built on narai-primitives (subpath ./confluence).",
5
5
  "author": "narai"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  # confluence-agent-plugin
2
2
 
3
- Claude Code plugin that wraps `@narai/confluence-agent-connector` as a read-only Confluence skill and slash command. Same layout as aws/gcp/notion-agent-plugin.
3
+ Claude Code plugin that wraps `narai-primitives/confluence` as a read-only Confluence skill and slash command. Same layout as aws/gcp/notion-agent-plugin.
4
4
 
5
5
  ## Credentials
6
6
 
@@ -6,7 +6,7 @@ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
6
6
  exit 2
7
7
  fi
8
8
 
9
- CLI="${CLAUDE_PLUGIN_DATA}/node_modules/@narai/confluence-agent-connector/dist/cli.js"
9
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/confluence/cli.js"
10
10
 
11
11
  if [ ! -f "$CLI" ]; then
12
12
  echo "confluence-agent: connector CLI not found at $CLI" >&2
@@ -9,11 +9,11 @@
9
9
  },
10
10
  {
11
11
  "type": "command",
12
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/plugin/hooks/reminder.mjs\" 2>/dev/null || true"
12
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/reminder.mjs\" 2>/dev/null || true"
13
13
  },
14
14
  {
15
15
  "type": "command",
16
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
16
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
17
17
  "env": { "USAGE_CONNECTOR_NAME": "confluence" }
18
18
  }
19
19
  ]
@@ -25,10 +25,10 @@
25
25
  "hooks": [
26
26
  {
27
27
  "type": "command",
28
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
28
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
29
29
  "env": {
30
30
  "USAGE_CONNECTOR_NAME": "confluence",
31
- "USAGE_BIN_HINT": "@narai/confluence-agent-connector"
31
+ "USAGE_BIN_HINT": "narai-primitives/dist/connectors/confluence"
32
32
  }
33
33
  }
34
34
  ]
@@ -39,7 +39,7 @@
39
39
  "hooks": [
40
40
  {
41
41
  "type": "command",
42
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
42
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
43
43
  "env": { "USAGE_CONNECTOR_NAME": "confluence" }
44
44
  }
45
45
  ]
@@ -14,7 +14,7 @@
14
14
  try {
15
15
  const data = process.env.CLAUDE_PLUGIN_DATA;
16
16
  if (!data) process.exit(0);
17
- const toolkitEntry = `${data}/node_modules/@narai/connector-toolkit/dist/plugin/reminder.js`;
17
+ const toolkitEntry = `${data}/node_modules/narai-primitives/dist/toolkit/plugin/reminder.js`;
18
18
  const mod = await import(toolkitEntry);
19
19
  const decision = mod.evaluateNudge({ connectors: ["confluence"] });
20
20
  if (decision.nudge) {
@@ -3,6 +3,6 @@
3
3
  "version": "1.0.0",
4
4
  "private": true,
5
5
  "dependencies": {
6
- "@narai/confluence-agent-connector": "file:.."
6
+ "narai-primitives": "^2.0.0"
7
7
  }
8
8
  }
@@ -11,7 +11,7 @@ context: fork
11
11
 
12
12
  Answer the user's question by invoking the `confluence-agent` binary
13
13
  exposed by this plugin. It delegates to
14
- `@narai/confluence-agent-connector` via Atlassian's Confluence REST v1.
14
+ `narai-primitives/confluence` via Atlassian's Confluence REST v1.
15
15
 
16
16
  ## Invocation
17
17
 
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "db-agent-plugin",
3
- "version": "1.0.0",
4
- "description": "Safe, read-only database query agent for Claude Code. Wraps @narai/db-agent-connector. Every statement passes the policy gate before any driver loads or any connection is opened.",
3
+ "version": "1.1.0",
4
+ "description": "Safe, read-only database query agent for Claude Code. Built on narai-primitives (subpath ./db). Every statement passes the policy gate before any driver loads or any connection is opened.",
5
5
  "author": {
6
6
  "name": "Narai Labs",
7
7
  "url": "https://github.com/narailabs"
8
8
  },
9
- "homepage": "https://github.com/narailabs/db-agent-connector",
10
- "repository": "https://github.com/narailabs/db-agent-connector",
9
+ "homepage": "https://github.com/narailabs/narai-primitives/tree/main/plugins/db-agent",
10
+ "repository": "https://github.com/narailabs/narai-primitives",
11
11
  "license": "MIT",
12
12
  "keywords": ["database", "sql", "postgresql", "mysql", "sqlite", "policy-gate"],
13
13
  "userConfig": {
@@ -1,6 +1,6 @@
1
1
  # db-agent-plugin
2
2
 
3
- Claude Code plugin that wraps [`@narai/db-agent-connector`](https://www.npmjs.com/package/@narai/db-agent-connector).
3
+ Claude Code plugin that wraps [`narai-primitives/db`](https://www.npmjs.com/package/narai-primitives).
4
4
 
5
5
  Exposes the `db-agent` skill. Every query passes through the policy gate before any driver loads or any connection opens. V2.0 vocab and defaults:
6
6
 
@@ -10,4 +10,4 @@ Exposes the `db-agent` skill. Every query passes through the policy gate before
10
10
  - `admin` (CREATE/DROP/ALTER/RENAME) → returned as formatted SQL, never executed
11
11
  - `privilege` (GRANT/REVOKE) → hard-denied
12
12
 
13
- Install via Claude Code's plugin marketplace. The `SessionStart` hook installs `@narai/db-agent-connector` into the plugin's data directory on first use.
13
+ Install via Claude Code's plugin marketplace. The `SessionStart` hook installs `narai-primitives` into the plugin's data directory on first use.
@@ -6,7 +6,7 @@ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
6
6
  exit 2
7
7
  fi
8
8
 
9
- CLI="${CLAUDE_PLUGIN_DATA}/node_modules/@narai/db-agent-connector/dist/cli.js"
9
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/db/cli.js"
10
10
 
11
11
  if [ ! -f "$CLI" ]; then
12
12
  echo "db-agent: connector CLI not found at $CLI" >&2
@@ -8,11 +8,11 @@
8
8
  },
9
9
  {
10
10
  "type": "command",
11
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/plugin/hooks/reminder.mjs\" 2>/dev/null || true"
11
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/reminder.mjs\" 2>/dev/null || true"
12
12
  },
13
13
  {
14
14
  "type": "command",
15
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
15
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
16
16
  "env": { "USAGE_CONNECTOR_NAME": "db" }
17
17
  }
18
18
  ]
@@ -24,7 +24,7 @@
24
24
  "hooks": [
25
25
  {
26
26
  "type": "command",
27
- "command": "node ${CLAUDE_PLUGIN_ROOT}/plugin/hooks/db-guard.mjs",
27
+ "command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/db-guard.mjs",
28
28
  "env": {
29
29
  "DB_AGENT_GUARDRAILS": "${user_config.install_guardrails}"
30
30
  }
@@ -38,10 +38,10 @@
38
38
  "hooks": [
39
39
  {
40
40
  "type": "command",
41
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
41
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
42
42
  "env": {
43
43
  "USAGE_CONNECTOR_NAME": "db",
44
- "USAGE_BIN_HINT": "@narai/db-agent-connector"
44
+ "USAGE_BIN_HINT": "narai-primitives/dist/connectors/db"
45
45
  }
46
46
  }
47
47
  ]
@@ -52,7 +52,7 @@
52
52
  "hooks": [
53
53
  {
54
54
  "type": "command",
55
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
55
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
56
56
  "env": { "USAGE_CONNECTOR_NAME": "db" }
57
57
  }
58
58
  ]
@@ -5,7 +5,7 @@
5
5
  try {
6
6
  const data = process.env.CLAUDE_PLUGIN_DATA;
7
7
  if (!data) process.exit(0);
8
- const toolkitEntry = `${data}/node_modules/@narai/connector-toolkit/dist/plugin/reminder.js`;
8
+ const toolkitEntry = `${data}/node_modules/narai-primitives/dist/toolkit/plugin/reminder.js`;
9
9
  const mod = await import(toolkitEntry);
10
10
  const decision = mod.evaluateNudge({ connectors: ["db"] });
11
11
  if (decision.nudge) {
@@ -3,6 +3,6 @@
3
3
  "version": "1.0.0",
4
4
  "private": true,
5
5
  "dependencies": {
6
- "@narai/db-agent-connector": "file:.."
6
+ "narai-primitives": "^2.0.0"
7
7
  }
8
8
  }
@@ -14,7 +14,7 @@ context: fork
14
14
  # Database Agent
15
15
 
16
16
  Answer the user's question by invoking the `db-agent` binary exposed by this
17
- plugin. It delegates to `@narai/db-agent-connector`, which enforces the
17
+ plugin. It delegates to `narai-primitives/db`, which enforces the
18
18
  policy gate before any backend is touched.
19
19
 
20
20
  ## Invocation
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gcp-agent-plugin",
3
- "version": "1.0.0",
4
- "description": "Read-only GCP connector for Claude Code. Wraps @narai/gcp-agent-connector. Cloud Run, Cloud SQL, Pub/Sub, Cloud Logging.",
3
+ "version": "1.1.0",
4
+ "description": "Read-only GCP connector for Claude Code. Built on narai-primitives (subpath ./gcp). Cloud Run, Cloud SQL, Pub/Sub, Cloud Logging.",
5
5
  "author": "narai"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  # gcp-agent-plugin
2
2
 
3
- Claude Code plugin that wraps [`@narai/gcp-agent-connector`](https://www.npmjs.com/package/@narai/gcp-agent-connector) as a read-only GCP skill and slash command.
3
+ Claude Code plugin that wraps [`narai-primitives/gcp`](https://www.npmjs.com/package/narai-primitives) as a read-only GCP skill and slash command.
4
4
 
5
5
  - **Skill** `gcp-agent` — automatic invocation for Cloud Run / Cloud SQL / Pub/Sub / Cloud Logging questions.
6
6
  - **Slash command** `/gcp-agent <action> <params-json>`.
@@ -15,7 +15,7 @@ On first `SessionStart` the hook in `hooks/hooks.json`:
15
15
  3. if the install fails, removes the stale copy so the hook re-runs next session.
16
16
 
17
17
  After install,
18
- `${CLAUDE_PLUGIN_DATA}/node_modules/@narai/gcp-agent-connector/dist/cli.js`
18
+ `${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/gcp/cli.js`
19
19
  exists and `bin/gcp-agent` exec's it.
20
20
 
21
21
  ## Credentials
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # gcp-agent — thin shim over @narai/gcp-agent-connector.
2
+ # gcp-agent — thin shim over narai-primitives (CLI at dist/connectors/gcp).
3
3
  set -euo pipefail
4
4
 
5
5
  if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
@@ -7,7 +7,7 @@ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
7
7
  exit 2
8
8
  fi
9
9
 
10
- CLI="${CLAUDE_PLUGIN_DATA}/node_modules/@narai/gcp-agent-connector/dist/cli.js"
10
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/gcp/cli.js"
11
11
 
12
12
  if [ ! -f "$CLI" ]; then
13
13
  echo "gcp-agent: connector CLI not found at $CLI" >&2
@@ -9,11 +9,11 @@
9
9
  },
10
10
  {
11
11
  "type": "command",
12
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/plugin/hooks/reminder.mjs\" 2>/dev/null || true"
12
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/reminder.mjs\" 2>/dev/null || true"
13
13
  },
14
14
  {
15
15
  "type": "command",
16
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
16
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/stale-summarize.mjs\" 2>/dev/null || true",
17
17
  "env": { "USAGE_CONNECTOR_NAME": "gcp" }
18
18
  }
19
19
  ]
@@ -25,10 +25,10 @@
25
25
  "hooks": [
26
26
  {
27
27
  "type": "command",
28
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
28
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/usage-record.mjs\" 2>/dev/null || true",
29
29
  "env": {
30
30
  "USAGE_CONNECTOR_NAME": "gcp",
31
- "USAGE_BIN_HINT": "@narai/gcp-agent-connector"
31
+ "USAGE_BIN_HINT": "narai-primitives/dist/connectors/gcp"
32
32
  }
33
33
  }
34
34
  ]
@@ -39,7 +39,7 @@
39
39
  "hooks": [
40
40
  {
41
41
  "type": "command",
42
- "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/@narai/connector-toolkit/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
42
+ "command": "node \"${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/plugin-hooks/session-summary.mjs\" 2>/dev/null || true",
43
43
  "env": { "USAGE_CONNECTOR_NAME": "gcp" }
44
44
  }
45
45
  ]
@@ -5,7 +5,7 @@
5
5
  try {
6
6
  const data = process.env.CLAUDE_PLUGIN_DATA;
7
7
  if (!data) process.exit(0);
8
- const toolkitEntry = `${data}/node_modules/@narai/connector-toolkit/dist/plugin/reminder.js`;
8
+ const toolkitEntry = `${data}/node_modules/narai-primitives/dist/toolkit/plugin/reminder.js`;
9
9
  const mod = await import(toolkitEntry);
10
10
  const decision = mod.evaluateNudge({ connectors: ["gcp"] });
11
11
  if (decision.nudge) {
@@ -4,6 +4,6 @@
4
4
  "private": true,
5
5
  "description": "Runtime manifest for gcp-agent-plugin. The SessionStart hook runs `npm install` on this manifest into ${CLAUDE_PLUGIN_DATA}.",
6
6
  "dependencies": {
7
- "@narai/gcp-agent-connector": "file:.."
7
+ "narai-primitives": "^2.0.0"
8
8
  }
9
9
  }
@@ -10,7 +10,7 @@ context: fork
10
10
  # GCP Agent
11
11
 
12
12
  Answer the user's question by invoking the `gcp-agent` binary exposed by
13
- this plugin. It delegates to `@narai/gcp-agent-connector`, which speaks to
13
+ this plugin. It delegates to `narai-primitives/gcp`, which speaks to
14
14
  GCP by shelling out to `gcloud` / `bq` with Application Default Credentials.
15
15
 
16
16
  ## Invocation
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-agent-plugin",
3
- "version": "1.0.0",
4
- "description": "Read-only GitHub connector for Claude Code. Wraps @narai/github-agent-connector.",
3
+ "version": "1.1.0",
4
+ "description": "Read-only GitHub connector for Claude Code. Built on narai-primitives (subpath ./github).",
5
5
  "author": "narai"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  # github-agent-plugin
2
2
 
3
- Claude Code plugin wrapping `@narai/github-agent-connector`. Same layout as the other platform plugins.
3
+ Claude Code plugin wrapping `narai-primitives/github`. Same layout as the other platform plugins.
4
4
 
5
5
  ## Credentials
6
6
 
@@ -6,7 +6,7 @@ if [ -z "${CLAUDE_PLUGIN_DATA:-}" ]; then
6
6
  exit 2
7
7
  fi
8
8
 
9
- CLI="${CLAUDE_PLUGIN_DATA}/node_modules/@narai/github-agent-connector/dist/cli.js"
9
+ CLI="${CLAUDE_PLUGIN_DATA}/node_modules/narai-primitives/dist/connectors/github/cli.js"
10
10
 
11
11
  if [ ! -f "$CLI" ]; then
12
12
  echo "github-agent: connector CLI not found at $CLI" >&2