@agentskit/code-review 0.1.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/.doc-bridge/capabilities.json +34 -0
  2. package/.doc-bridge/index.json +94 -0
  3. package/.pre-commit-hooks.yaml +9 -0
  4. package/AGENTS.md +20 -0
  5. package/CHANGELOG.md +85 -0
  6. package/CONTRIBUTING.md +45 -0
  7. package/README.md +238 -33
  8. package/ROADMAP.md +20 -0
  9. package/SECURITY.md +16 -0
  10. package/action.yml +120 -0
  11. package/dist/agents/code-review/agent.js +453 -76
  12. package/dist/agents/code-review/agent.js.map +1 -1
  13. package/dist/agents/code-review/lenses.js +17 -1
  14. package/dist/agents/code-review/lenses.js.map +1 -1
  15. package/dist/agents/code-review/reporters.js +83 -7
  16. package/dist/agents/code-review/reporters.js.map +1 -1
  17. package/dist/agents/code-review/sources.js +324 -73
  18. package/dist/agents/code-review/sources.js.map +1 -1
  19. package/dist/src/acp-cli-adapter.js +127 -0
  20. package/dist/src/acp-cli-adapter.js.map +1 -0
  21. package/dist/src/batch-coverage.js +111 -0
  22. package/dist/src/batch-coverage.js.map +1 -0
  23. package/dist/src/claude-code-adapter.js +44 -60
  24. package/dist/src/claude-code-adapter.js.map +1 -1
  25. package/dist/src/cli.js +347 -50
  26. package/dist/src/cli.js.map +1 -1
  27. package/dist/src/codex-adapter.js +114 -69
  28. package/dist/src/codex-adapter.js.map +1 -1
  29. package/dist/src/github-review-state.js +134 -0
  30. package/dist/src/github-review-state.js.map +1 -0
  31. package/dist/src/grok-cli-adapter.js +27 -0
  32. package/dist/src/grok-cli-adapter.js.map +1 -0
  33. package/dist/src/headless-cli-adapter.js +78 -0
  34. package/dist/src/headless-cli-adapter.js.map +1 -0
  35. package/dist/src/local-cli-process.js +328 -0
  36. package/dist/src/local-cli-process.js.map +1 -0
  37. package/dist/src/local-cli-timeout.js +14 -0
  38. package/dist/src/local-cli-timeout.js.map +1 -0
  39. package/dist/src/ollama-adapter.js +155 -0
  40. package/dist/src/ollama-adapter.js.map +1 -0
  41. package/dist/src/opencode-cli-adapter.js +57 -0
  42. package/dist/src/opencode-cli-adapter.js.map +1 -0
  43. package/dist/src/provider-circuit-breaker.js +52 -0
  44. package/dist/src/provider-circuit-breaker.js.map +1 -0
  45. package/dist/src/provider-registry.js +168 -0
  46. package/dist/src/provider-registry.js.map +1 -0
  47. package/dist/src/review-config.js +145 -0
  48. package/dist/src/review-config.js.map +1 -0
  49. package/doc-bridge.config.json +116 -0
  50. package/docs/OPERATIONS.md +358 -0
  51. package/docs/assets/agentskit-mark.svg +10 -0
  52. package/docs/assets/code-review-terminal.png +0 -0
  53. package/docs/continuous-improvement.md +35 -0
  54. package/docs/for-agents/code-review-cli.md +70 -0
  55. package/docs/for-agents/index.md +5 -0
  56. package/docs/plans/ecosystem-doc-quality-code-review.md +61 -0
  57. package/docs/provider-compatibility.json +35 -0
  58. package/ecosystem-claims.json +187 -0
  59. package/ecosystem.json +277 -0
  60. package/examples/pull-request.yml +29 -0
  61. package/llms-full.txt +1049 -0
  62. package/llms.txt +24 -0
  63. package/package.json +53 -7
  64. package/scripts/generate-llms-full.mjs +68 -0
  65. package/scripts/run-cycle-benchmark.mjs +64 -0
  66. package/test/cli-smoke.test.mjs +507 -0
  67. package/test/continuous-improvement.test.mjs +20 -0
  68. package/test/documentation.test.mjs +238 -0
  69. package/test/release-workflow.test.mjs +31 -0
  70. package/dist/agents/code-review/agent.d.ts +0 -115
  71. package/dist/agents/code-review/lenses.d.ts +0 -10
  72. package/dist/agents/code-review/reporters.d.ts +0 -31
  73. package/dist/agents/code-review/sources.d.ts +0 -27
  74. package/dist/src/claude-code-adapter.d.ts +0 -4
  75. package/dist/src/cli.d.ts +0 -2
  76. package/dist/src/codex-adapter.d.ts +0 -4
@@ -0,0 +1,187 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "manifestSchemaVersion": 2,
4
+ "products": [
5
+ {
6
+ "productId": "agentskit",
7
+ "source": {
8
+ "type": "endpoint",
9
+ "url": "https://www.agentskit.io/api/stats.json"
10
+ },
11
+ "verification": "verified",
12
+ "claims": [
13
+ {
14
+ "id": "packages",
15
+ "value": 22,
16
+ "noun": "packages",
17
+ "conservativeFloor": 22,
18
+ "evidence": {
19
+ "type": "repository-derivation",
20
+ "repo": "AgentsKit-io/agentskit",
21
+ "path": "scripts/compute-stats.mjs",
22
+ "summary": "Published non-private @agentskit/* package directories."
23
+ }
24
+ },
25
+ {
26
+ "id": "framework-bindings",
27
+ "value": 7,
28
+ "noun": "framework bindings",
29
+ "evidence": {
30
+ "type": "repository-derivation",
31
+ "repo": "AgentsKit-io/agentskit",
32
+ "path": "scripts/compute-stats.mjs",
33
+ "summary": "Published framework bindings from the supported binding list."
34
+ }
35
+ },
36
+ {
37
+ "id": "native-adapters",
38
+ "value": 25,
39
+ "noun": "native adapters",
40
+ "conservativeFloor": 25,
41
+ "evidence": {
42
+ "type": "repository-derivation",
43
+ "repo": "AgentsKit-io/agentskit",
44
+ "path": "scripts/compute-stats.mjs",
45
+ "summary": "Provider exports in the adapters package excluding composition helpers."
46
+ }
47
+ },
48
+ {
49
+ "id": "integrations",
50
+ "value": 50,
51
+ "noun": "integrations",
52
+ "conservativeFloor": 50,
53
+ "evidence": {
54
+ "type": "repository-derivation",
55
+ "repo": "AgentsKit-io/agentskit",
56
+ "path": "scripts/compute-stats.mjs",
57
+ "summary": "Service directories in the integrations catalog."
58
+ }
59
+ },
60
+ {
61
+ "id": "catalog-providers",
62
+ "value": 140,
63
+ "noun": "providers",
64
+ "conservativeFloor": 140,
65
+ "evidence": {
66
+ "type": "repository-derivation",
67
+ "repo": "AgentsKit-io/agentskit",
68
+ "path": "scripts/compute-stats.mjs",
69
+ "summary": "Providers in the committed model catalog snapshot."
70
+ }
71
+ },
72
+ {
73
+ "id": "catalog-models",
74
+ "value": 5162,
75
+ "noun": "models",
76
+ "conservativeFloor": 5000,
77
+ "evidence": {
78
+ "type": "repository-derivation",
79
+ "repo": "AgentsKit-io/agentskit",
80
+ "path": "scripts/compute-stats.mjs",
81
+ "summary": "Models in the committed provider catalog snapshot."
82
+ }
83
+ },
84
+ {
85
+ "id": "skills",
86
+ "value": 21,
87
+ "noun": "ready-made skills",
88
+ "conservativeFloor": 21,
89
+ "evidence": {
90
+ "type": "repository-derivation",
91
+ "repo": "AgentsKit-io/agentskit",
92
+ "path": "scripts/compute-stats.mjs",
93
+ "summary": "Concrete skill modules excluding registry and composition helpers."
94
+ }
95
+ },
96
+ {
97
+ "id": "memory-backends",
98
+ "value": 17,
99
+ "noun": "memory backends",
100
+ "evidence": {
101
+ "type": "repository-derivation",
102
+ "repo": "AgentsKit-io/agentskit",
103
+ "path": "scripts/compute-stats.mjs",
104
+ "summary": "Concrete memory modules excluding contracts and helpers."
105
+ }
106
+ },
107
+ {
108
+ "id": "recipes",
109
+ "value": 69,
110
+ "noun": "recipes",
111
+ "conservativeFloor": 69,
112
+ "evidence": {
113
+ "type": "repository-derivation",
114
+ "repo": "AgentsKit-io/agentskit",
115
+ "path": "scripts/compute-stats.mjs",
116
+ "summary": "Published recipe MDX pages excluding indexes and metadata."
117
+ }
118
+ },
119
+ {
120
+ "id": "core-size-kb-gzip",
121
+ "value": 10,
122
+ "noun": "KB gzipped core budget",
123
+ "evidence": {
124
+ "type": "repository-derivation",
125
+ "repo": "AgentsKit-io/agentskit",
126
+ "path": "scripts/compute-stats.mjs",
127
+ "summary": "Configured ESM gzip size budget for @agentskit/core."
128
+ }
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ "productId": "registry",
134
+ "source": {
135
+ "type": "endpoint",
136
+ "url": "https://registry.agentskit.io/r/index.json"
137
+ },
138
+ "verification": "declared",
139
+ "claims": []
140
+ },
141
+ {
142
+ "productId": "agentskit-chat",
143
+ "source": {
144
+ "type": "repository",
145
+ "repo": "AgentsKit-io/agentskit-chat"
146
+ },
147
+ "verification": "declared",
148
+ "claims": []
149
+ },
150
+ {
151
+ "productId": "playbook",
152
+ "source": {
153
+ "type": "endpoint",
154
+ "url": "https://playbook.agentskit.io/api/stats.json"
155
+ },
156
+ "verification": "declared",
157
+ "claims": []
158
+ },
159
+ {
160
+ "productId": "doc-bridge",
161
+ "source": {
162
+ "type": "repository",
163
+ "repo": "AgentsKit-io/doc-bridge"
164
+ },
165
+ "verification": "declared",
166
+ "claims": []
167
+ },
168
+ {
169
+ "productId": "code-review",
170
+ "source": {
171
+ "type": "repository",
172
+ "repo": "AgentsKit-io/code-review"
173
+ },
174
+ "verification": "declared",
175
+ "claims": []
176
+ },
177
+ {
178
+ "productId": "akos",
179
+ "source": {
180
+ "type": "endpoint",
181
+ "url": "https://akos.agentskit.io/api/stats.json"
182
+ },
183
+ "verification": "declared",
184
+ "claims": []
185
+ }
186
+ ]
187
+ }
package/ecosystem.json ADDED
@@ -0,0 +1,277 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "$comment": "Canonical registry of AgentsKit ecosystem products. Stable identity lives in products[] (seven). Numeric values live in the generated ecosystem-claims ledger. The deprecated properties array remains a v1 four-product shim for Doc Bridge / sibling consumers until those schemas accept the full seven-product set \u2014 do not treat properties as the product catalog.",
4
+ "parentBrand": {
5
+ "id": "agentskit",
6
+ "name": "AgentsKit"
7
+ },
8
+ "products": [
9
+ {
10
+ "id": "agentskit",
11
+ "name": "AgentsKit",
12
+ "shortName": "AgentsKit",
13
+ "kind": "library",
14
+ "role": "foundation",
15
+ "promise": "Build agents without gluing many libraries together.",
16
+ "maturity": "beta",
17
+ "repo": "AgentsKit-io/agentskit",
18
+ "accent": "#2EA043",
19
+ "surfaces": {
20
+ "home": "https://www.agentskit.io",
21
+ "docs": "https://www.agentskit.io/docs",
22
+ "llms": "https://www.agentskit.io/llms.txt",
23
+ "stats": "https://www.agentskit.io/api/stats.json",
24
+ "documentation": "fumadocs",
25
+ "chat": "agentschat"
26
+ },
27
+ "navigation": {
28
+ "showInBar": true,
29
+ "order": 0,
30
+ "next": [
31
+ "registry",
32
+ "agentskit-chat",
33
+ "playbook",
34
+ "doc-bridge",
35
+ "code-review",
36
+ "akos"
37
+ ]
38
+ }
39
+ },
40
+ {
41
+ "id": "registry",
42
+ "name": "AgentsKit Registry",
43
+ "shortName": "Registry",
44
+ "kind": "registry",
45
+ "role": "starting-point",
46
+ "promise": "Copy ready-made agents and own the source.",
47
+ "maturity": "beta",
48
+ "repo": "AgentsKit-io/agentskit-registry",
49
+ "accent": "#58A6FF",
50
+ "surfaces": {
51
+ "home": "https://registry.agentskit.io",
52
+ "docs": "https://registry.agentskit.io/docs",
53
+ "llms": "https://registry.agentskit.io/llms.txt",
54
+ "stats": "https://registry.agentskit.io/r/index.json",
55
+ "documentation": "fumadocs",
56
+ "chat": "agentschat"
57
+ },
58
+ "navigation": {
59
+ "showInBar": true,
60
+ "order": 1,
61
+ "next": [
62
+ "agentskit",
63
+ "agentskit-chat",
64
+ "playbook",
65
+ "doc-bridge",
66
+ "code-review",
67
+ "akos"
68
+ ]
69
+ }
70
+ },
71
+ {
72
+ "id": "agentskit-chat",
73
+ "name": "AgentsKit Chat",
74
+ "shortName": "Chat",
75
+ "kind": "framework",
76
+ "role": "experience",
77
+ "promise": "Define one agent experience and deliver it across interfaces.",
78
+ "maturity": "alpha",
79
+ "repo": "AgentsKit-io/agentskit-chat",
80
+ "accent": "#F59E0B",
81
+ "surfaces": {
82
+ "home": "https://chat.agentskit.io",
83
+ "docs": "https://chat.agentskit.io/docs",
84
+ "llms": "https://chat.agentskit.io/llms.txt",
85
+ "documentation": "fumadocs",
86
+ "chat": "agentschat"
87
+ },
88
+ "navigation": {
89
+ "showInBar": true,
90
+ "order": 2,
91
+ "next": [
92
+ "agentskit",
93
+ "registry",
94
+ "playbook",
95
+ "doc-bridge",
96
+ "code-review",
97
+ "akos"
98
+ ]
99
+ }
100
+ },
101
+ {
102
+ "id": "playbook",
103
+ "name": "Agents Playbook",
104
+ "shortName": "Playbook",
105
+ "kind": "methodology",
106
+ "role": "discipline",
107
+ "promise": "Make agents ship code a human would actually merge.",
108
+ "maturity": "stable",
109
+ "repo": "AgentsKit-io/agents-playbook",
110
+ "accent": "#8B5CF6",
111
+ "surfaces": {
112
+ "home": "https://playbook.agentskit.io",
113
+ "docs": "https://playbook.agentskit.io/docs",
114
+ "llms": "https://playbook.agentskit.io/llms.txt",
115
+ "stats": "https://playbook.agentskit.io/api/stats.json",
116
+ "documentation": "fumadocs",
117
+ "chat": "custom"
118
+ },
119
+ "navigation": {
120
+ "showInBar": true,
121
+ "order": 3,
122
+ "next": [
123
+ "agentskit",
124
+ "registry",
125
+ "agentskit-chat",
126
+ "doc-bridge",
127
+ "code-review",
128
+ "akos"
129
+ ]
130
+ }
131
+ },
132
+ {
133
+ "id": "doc-bridge",
134
+ "name": "Doc Bridge",
135
+ "shortName": "Doc Bridge",
136
+ "kind": "developer-tool",
137
+ "role": "understanding",
138
+ "promise": "Turn repository documentation into executable agent handoffs.",
139
+ "maturity": "stable",
140
+ "repo": "AgentsKit-io/doc-bridge",
141
+ "accent": "#06B6D4",
142
+ "surfaces": {
143
+ "home": "https://agentskit-io.github.io/doc-bridge/",
144
+ "docs": "https://agentskit-io.github.io/doc-bridge/",
145
+ "llms": "https://agentskit-io.github.io/doc-bridge/llms.txt",
146
+ "documentation": "fumadocs",
147
+ "chat": "none"
148
+ },
149
+ "navigation": {
150
+ "showInBar": true,
151
+ "order": 4,
152
+ "next": [
153
+ "agentskit",
154
+ "registry",
155
+ "agentskit-chat",
156
+ "playbook",
157
+ "code-review",
158
+ "akos"
159
+ ]
160
+ }
161
+ },
162
+ {
163
+ "id": "code-review",
164
+ "name": "AgentsKit Code Review",
165
+ "shortName": "Code Review",
166
+ "kind": "developer-tool",
167
+ "role": "verification",
168
+ "promise": "Run deep, low-noise review with the model already in use.",
169
+ "maturity": "alpha",
170
+ "repo": "AgentsKit-io/code-review",
171
+ "accent": "#F97316",
172
+ "surfaces": {
173
+ "home": "https://github.com/AgentsKit-io/code-review",
174
+ "docs": "https://github.com/AgentsKit-io/code-review#readme",
175
+ "llms": "https://raw.githubusercontent.com/AgentsKit-io/code-review/main/llms.txt",
176
+ "documentation": "repository",
177
+ "chat": "none"
178
+ },
179
+ "navigation": {
180
+ "showInBar": false,
181
+ "order": 5,
182
+ "next": [
183
+ "agentskit",
184
+ "registry",
185
+ "agentskit-chat",
186
+ "playbook",
187
+ "doc-bridge",
188
+ "akos"
189
+ ]
190
+ }
191
+ },
192
+ {
193
+ "id": "akos",
194
+ "name": "AgentsKit OS",
195
+ "shortName": "AKOS",
196
+ "kind": "product",
197
+ "role": "operation",
198
+ "promise": "Run and govern agents in production.",
199
+ "maturity": "stable",
200
+ "repo": "AgentsKit-io/agentskit-os",
201
+ "accent": "#34D399",
202
+ "surfaces": {
203
+ "home": "https://akos.agentskit.io",
204
+ "docs": "https://akos.agentskit.io/docs",
205
+ "llms": "https://akos.agentskit.io/llms.txt",
206
+ "stats": "https://akos.agentskit.io/api/stats.json",
207
+ "documentation": "fumadocs",
208
+ "chat": "none"
209
+ },
210
+ "navigation": {
211
+ "showInBar": true,
212
+ "order": 6,
213
+ "next": []
214
+ }
215
+ }
216
+ ],
217
+ "properties": [
218
+ {
219
+ "id": "agentskit",
220
+ "name": "AgentsKit",
221
+ "barLabel": "AgentsKit",
222
+ "domain": "www.agentskit.io",
223
+ "url": "https://www.agentskit.io",
224
+ "repo": "AgentsKit-io/agentskit",
225
+ "tagline": "Build agents without gluing many libraries together.",
226
+ "kind": "library",
227
+ "accent": "#2EA043",
228
+ "llms": "https://www.agentskit.io/llms.txt",
229
+ "stats": "https://www.agentskit.io/api/stats.json"
230
+ },
231
+ {
232
+ "id": "akos",
233
+ "name": "AgentsKit OS",
234
+ "barLabel": "AKOS",
235
+ "domain": "akos.agentskit.io",
236
+ "url": "https://akos.agentskit.io",
237
+ "repo": "AgentsKit-io/agentskit-os",
238
+ "tagline": "Run and govern agents in production.",
239
+ "kind": "product",
240
+ "accent": "#34D399",
241
+ "llms": "https://akos.agentskit.io/llms.txt",
242
+ "stats": "https://akos.agentskit.io/api/stats.json"
243
+ },
244
+ {
245
+ "id": "playbook",
246
+ "name": "Agents Playbook",
247
+ "barLabel": "Playbook",
248
+ "domain": "playbook.agentskit.io",
249
+ "url": "https://playbook.agentskit.io",
250
+ "repo": "AgentsKit-io/agents-playbook",
251
+ "tagline": "Make agents ship code a human would actually merge.",
252
+ "kind": "methodology",
253
+ "accent": "#8B5CF6",
254
+ "llms": "https://playbook.agentskit.io/llms.txt",
255
+ "stats": "https://playbook.agentskit.io/api/stats.json"
256
+ },
257
+ {
258
+ "id": "registry",
259
+ "name": "AgentsKit Registry",
260
+ "barLabel": "Registry",
261
+ "domain": "registry.agentskit.io",
262
+ "url": "https://registry.agentskit.io",
263
+ "repo": "AgentsKit-io/agentskit-registry",
264
+ "tagline": "Copy ready-made agents and own the source.",
265
+ "kind": "registry",
266
+ "accent": "#58A6FF",
267
+ "llms": "https://registry.agentskit.io/llms.txt",
268
+ "stats": "https://registry.agentskit.io/r/index.json"
269
+ }
270
+ ],
271
+ "builder": {
272
+ "id": "emersonbraun",
273
+ "name": "Emerson Braun",
274
+ "url": "https://emersonbraun.dev",
275
+ "$comment": "Link-source only. The builder is not a peer product and is not shown in shared product navigation."
276
+ }
277
+ }
@@ -0,0 +1,29 @@
1
+ # Drop this in any repo at .github/workflows/code-review.yml
2
+ # Requires a repo/org secret containing the selected provider's API key.
3
+ name: Code Review
4
+
5
+ on:
6
+ pull_request:
7
+ types: [opened, synchronize, reopened]
8
+
9
+ permissions:
10
+ contents: read
11
+ pull-requests: write # post inline + summary review comments
12
+
13
+ jobs:
14
+ review:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: AgentsKit-io/code-review@v0.4.0
18
+ with:
19
+ # Choose any @agentskit adapter. Examples: anthropic, gemini,
20
+ # grok, groq, openrouter, ollama, mistral, or deepseek.
21
+ provider: 'openai'
22
+ model: 'gpt-4o'
23
+ api-key: ${{ secrets.LLM_API_KEY }} # the selected provider's key
24
+ # advisory by default (posts, never blocks). To gate merges:
25
+ # fail-on-block: 'true'
26
+ # block: 'high' # or 'blocker'
27
+ # max-files: '17'
28
+ # max-calls: '1000'
29
+ # max-findings-per-file: '7'