@agentskit/doc-bridge 1.1.1 → 1.2.3
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.
- package/CHANGELOG.md +39 -1
- package/CONTRIBUTING.md +1 -0
- package/README.md +42 -11
- package/action.yml +27 -23
- package/dist/cli/program.js +18 -5
- package/dist/cli/program.js.map +1 -1
- package/dist/index.d.ts +39 -2
- package/dist/index.js +46 -5
- package/dist/index.js.map +1 -1
- package/docs/DOGFOOD-ROUND2.md +5 -0
- package/docs/DOGFOOD-ROUND3.md +5 -0
- package/docs/DOGFOOD-V1.md +5 -0
- package/docs/DOGFOOD.md +5 -0
- package/docs/MARKETPLACE-ECOSYSTEM-PLAN.md +16 -0
- package/docs/MARKETPLACE.md +45 -0
- package/docs/POSITIONING.md +17 -1
- package/docs/RELEASE.md +19 -10
- package/docs/agent-corpus/INDEX.md +10 -0
- package/docs/agent-corpus/OVERVIEW.md +9 -0
- package/docs/agent-corpus/chat.md +10 -0
- package/docs/agent-corpus/cli.md +10 -0
- package/docs/agent-corpus/conformance.md +10 -0
- package/docs/agent-corpus/doc-bridge.md +10 -0
- package/docs/agent-corpus/doctor.md +10 -0
- package/docs/agent-corpus/gates.md +10 -0
- package/docs/agent-corpus/mcp.md +10 -0
- package/docs/agent-corpus/memory.md +10 -0
- package/docs/agent-corpus/query.md +10 -0
- package/docs/chat-and-rag.md +34 -0
- package/docs/examples.md +14 -1
- package/docs/for-agents.md +39 -0
- package/docs/getting-started.md +15 -0
- package/docs/guides/cli-map.md +153 -0
- package/docs/guides/gate-ci.md +64 -0
- package/docs/guides/index-and-query.md +75 -0
- package/docs/guides/install-and-run.md +84 -0
- package/docs/guides/mcp-agents.md +63 -0
- package/docs/guides/memory-pipeline.md +105 -0
- package/docs/guides/meta.json +11 -0
- package/docs/index.md +58 -0
- package/docs/landing/index.html +1 -1
- package/docs/mcp.md +14 -0
- package/docs/meta.json +26 -0
- package/docs/ollama-demo.md +6 -1
- package/docs/playbook/doc-bridge-pattern.md +4 -2
- package/docs/query.md +58 -0
- package/docs/recipes/index-pipeline.md +6 -1
- package/docs/schemas/agent-handoff-v1.md +5 -0
- package/docs/schemas/doc-bridge-index-v1.md +5 -0
- package/docs/schemas/memory-candidate-v1.md +5 -0
- package/docs/skills/doc-bridge.md +6 -1
- package/docs/spec/cli.md +5 -0
- package/docs/spec/config-v1.md +5 -0
- package/docs/spec/documentation-standard-v1.md +5 -0
- package/docs/spec/playbook-feedback.md +5 -0
- package/docs/spec/registry-agents.md +5 -0
- package/ecosystem-claims.json +2 -2
- package/ecosystem-upstream.json +2 -2
- package/ecosystem.json +122 -40
- package/examples/verify-handoff.mjs +5 -0
- package/package.json +40 -6
- package/src/conformance/ecosystem-contract.ts +22 -3
- package/src/federation/ecosystem-llms.ts +67 -0
- package/src/index.ts +6 -0
- package/src/playbook/doc-bridge-pattern.ts +1 -1
- package/src/version.ts +1 -1
package/ecosystem-upstream.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"repository": "AgentsKit-io/agentskit",
|
|
4
4
|
"ref": "main",
|
|
5
5
|
"files": {
|
|
6
|
-
"ecosystem.json": "
|
|
7
|
-
"ecosystem-claims.json": "
|
|
6
|
+
"ecosystem.json": "04995ca6863f744495b672d6e3a64162a415caf4cacb3ba8cdd3521bc90c4879",
|
|
7
|
+
"ecosystem-claims.json": "0100f7fbc18a3381bb943aaf8151dd5d107f82c02c470e3c586b7d694c6be42e"
|
|
8
8
|
}
|
|
9
9
|
}
|
package/ecosystem.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
|
-
"$comment": "Canonical registry of AgentsKit ecosystem products. Stable identity lives
|
|
3
|
+
"$comment": "Canonical registry of AgentsKit ecosystem products. Stable identity lives in products[] (seven). Numeric values live in the generated ecosystem-claims ledger. The properties array is the full seven-product v1 projection of products[] (same order) for sibling consumers.",
|
|
4
4
|
"parentBrand": {
|
|
5
5
|
"id": "agentskit",
|
|
6
6
|
"name": "AgentsKit"
|
|
@@ -22,12 +22,19 @@
|
|
|
22
22
|
"llms": "https://www.agentskit.io/llms.txt",
|
|
23
23
|
"stats": "https://www.agentskit.io/api/stats.json",
|
|
24
24
|
"documentation": "fumadocs",
|
|
25
|
-
"chat": "
|
|
25
|
+
"chat": "agentschat"
|
|
26
26
|
},
|
|
27
27
|
"navigation": {
|
|
28
28
|
"showInBar": true,
|
|
29
29
|
"order": 0,
|
|
30
|
-
"next": [
|
|
30
|
+
"next": [
|
|
31
|
+
"registry",
|
|
32
|
+
"agentskit-chat",
|
|
33
|
+
"playbook",
|
|
34
|
+
"doc-bridge",
|
|
35
|
+
"code-review",
|
|
36
|
+
"akos"
|
|
37
|
+
]
|
|
31
38
|
}
|
|
32
39
|
},
|
|
33
40
|
{
|
|
@@ -46,12 +53,19 @@
|
|
|
46
53
|
"llms": "https://registry.agentskit.io/llms.txt",
|
|
47
54
|
"stats": "https://registry.agentskit.io/r/index.json",
|
|
48
55
|
"documentation": "fumadocs",
|
|
49
|
-
"chat": "
|
|
56
|
+
"chat": "agentschat"
|
|
50
57
|
},
|
|
51
58
|
"navigation": {
|
|
52
59
|
"showInBar": true,
|
|
53
60
|
"order": 1,
|
|
54
|
-
"next": [
|
|
61
|
+
"next": [
|
|
62
|
+
"agentskit",
|
|
63
|
+
"agentskit-chat",
|
|
64
|
+
"playbook",
|
|
65
|
+
"doc-bridge",
|
|
66
|
+
"code-review",
|
|
67
|
+
"akos"
|
|
68
|
+
]
|
|
55
69
|
}
|
|
56
70
|
},
|
|
57
71
|
{
|
|
@@ -65,15 +79,23 @@
|
|
|
65
79
|
"repo": "AgentsKit-io/agentskit-chat",
|
|
66
80
|
"accent": "#F59E0B",
|
|
67
81
|
"surfaces": {
|
|
68
|
-
"home": "https://
|
|
69
|
-
"docs": "https://
|
|
70
|
-
"
|
|
71
|
-
"
|
|
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"
|
|
72
87
|
},
|
|
73
88
|
"navigation": {
|
|
74
89
|
"showInBar": true,
|
|
75
90
|
"order": 2,
|
|
76
|
-
"next": [
|
|
91
|
+
"next": [
|
|
92
|
+
"agentskit",
|
|
93
|
+
"registry",
|
|
94
|
+
"playbook",
|
|
95
|
+
"doc-bridge",
|
|
96
|
+
"code-review",
|
|
97
|
+
"akos"
|
|
98
|
+
]
|
|
77
99
|
}
|
|
78
100
|
},
|
|
79
101
|
{
|
|
@@ -97,7 +119,14 @@
|
|
|
97
119
|
"navigation": {
|
|
98
120
|
"showInBar": true,
|
|
99
121
|
"order": 3,
|
|
100
|
-
"next": [
|
|
122
|
+
"next": [
|
|
123
|
+
"agentskit",
|
|
124
|
+
"registry",
|
|
125
|
+
"agentskit-chat",
|
|
126
|
+
"doc-bridge",
|
|
127
|
+
"code-review",
|
|
128
|
+
"akos"
|
|
129
|
+
]
|
|
101
130
|
}
|
|
102
131
|
},
|
|
103
132
|
{
|
|
@@ -111,15 +140,23 @@
|
|
|
111
140
|
"repo": "AgentsKit-io/doc-bridge",
|
|
112
141
|
"accent": "#06B6D4",
|
|
113
142
|
"surfaces": {
|
|
114
|
-
"home": "https://github.
|
|
115
|
-
"docs": "https://github.
|
|
116
|
-
"
|
|
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",
|
|
117
147
|
"chat": "none"
|
|
118
148
|
},
|
|
119
149
|
"navigation": {
|
|
120
150
|
"showInBar": true,
|
|
121
151
|
"order": 4,
|
|
122
|
-
"next": [
|
|
152
|
+
"next": [
|
|
153
|
+
"agentskit",
|
|
154
|
+
"registry",
|
|
155
|
+
"agentskit-chat",
|
|
156
|
+
"playbook",
|
|
157
|
+
"code-review",
|
|
158
|
+
"akos"
|
|
159
|
+
]
|
|
123
160
|
}
|
|
124
161
|
},
|
|
125
162
|
{
|
|
@@ -135,12 +172,21 @@
|
|
|
135
172
|
"surfaces": {
|
|
136
173
|
"home": "https://github.com/AgentsKit-io/code-review-cli",
|
|
137
174
|
"docs": "https://github.com/AgentsKit-io/code-review-cli#readme",
|
|
175
|
+
"llms": "https://raw.githubusercontent.com/AgentsKit-io/code-review-cli/main/llms.txt",
|
|
138
176
|
"documentation": "repository",
|
|
139
177
|
"chat": "none"
|
|
140
178
|
},
|
|
141
179
|
"navigation": {
|
|
142
180
|
"showInBar": false,
|
|
143
|
-
"
|
|
181
|
+
"order": 5,
|
|
182
|
+
"next": [
|
|
183
|
+
"agentskit",
|
|
184
|
+
"registry",
|
|
185
|
+
"agentskit-chat",
|
|
186
|
+
"playbook",
|
|
187
|
+
"doc-bridge",
|
|
188
|
+
"akos"
|
|
189
|
+
]
|
|
144
190
|
}
|
|
145
191
|
},
|
|
146
192
|
{
|
|
@@ -163,8 +209,8 @@
|
|
|
163
209
|
},
|
|
164
210
|
"navigation": {
|
|
165
211
|
"showInBar": true,
|
|
166
|
-
"order":
|
|
167
|
-
"next": [
|
|
212
|
+
"order": 6,
|
|
213
|
+
"next": []
|
|
168
214
|
}
|
|
169
215
|
}
|
|
170
216
|
],
|
|
@@ -183,17 +229,29 @@
|
|
|
183
229
|
"stats": "https://www.agentskit.io/api/stats.json"
|
|
184
230
|
},
|
|
185
231
|
{
|
|
186
|
-
"id": "
|
|
187
|
-
"name": "AgentsKit
|
|
188
|
-
"barLabel": "
|
|
189
|
-
"domain": "
|
|
190
|
-
"url": "https://
|
|
191
|
-
"repo": "AgentsKit-io/agentskit-
|
|
192
|
-
"tagline": "
|
|
193
|
-
"kind": "
|
|
194
|
-
"accent": "#
|
|
195
|
-
"llms": "https://
|
|
196
|
-
"stats": "https://
|
|
232
|
+
"id": "registry",
|
|
233
|
+
"name": "AgentsKit Registry",
|
|
234
|
+
"barLabel": "Registry",
|
|
235
|
+
"domain": "registry.agentskit.io",
|
|
236
|
+
"url": "https://registry.agentskit.io",
|
|
237
|
+
"repo": "AgentsKit-io/agentskit-registry",
|
|
238
|
+
"tagline": "Copy ready-made agents and own the source.",
|
|
239
|
+
"kind": "registry",
|
|
240
|
+
"accent": "#58A6FF",
|
|
241
|
+
"llms": "https://registry.agentskit.io/llms.txt",
|
|
242
|
+
"stats": "https://registry.agentskit.io/r/index.json"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"id": "agentskit-chat",
|
|
246
|
+
"name": "AgentsKit Chat",
|
|
247
|
+
"barLabel": "Chat",
|
|
248
|
+
"domain": "chat.agentskit.io",
|
|
249
|
+
"url": "https://chat.agentskit.io",
|
|
250
|
+
"repo": "AgentsKit-io/agentskit-chat",
|
|
251
|
+
"tagline": "Define one agent experience and deliver it across interfaces.",
|
|
252
|
+
"kind": "framework",
|
|
253
|
+
"accent": "#F59E0B",
|
|
254
|
+
"llms": "https://chat.agentskit.io/llms.txt"
|
|
197
255
|
},
|
|
198
256
|
{
|
|
199
257
|
"id": "playbook",
|
|
@@ -209,17 +267,41 @@
|
|
|
209
267
|
"stats": "https://playbook.agentskit.io/api/stats.json"
|
|
210
268
|
},
|
|
211
269
|
{
|
|
212
|
-
"id": "
|
|
213
|
-
"name": "
|
|
214
|
-
"barLabel": "
|
|
215
|
-
"domain": "
|
|
216
|
-
"url": "https://
|
|
217
|
-
"repo": "AgentsKit-io/
|
|
218
|
-
"tagline": "
|
|
219
|
-
"kind": "
|
|
220
|
-
"accent": "#
|
|
221
|
-
"llms": "https://
|
|
222
|
-
|
|
270
|
+
"id": "doc-bridge",
|
|
271
|
+
"name": "Doc Bridge",
|
|
272
|
+
"barLabel": "Doc Bridge",
|
|
273
|
+
"domain": "agentskit-io.github.io",
|
|
274
|
+
"url": "https://agentskit-io.github.io/doc-bridge/",
|
|
275
|
+
"repo": "AgentsKit-io/doc-bridge",
|
|
276
|
+
"tagline": "Turn repository documentation into executable agent handoffs.",
|
|
277
|
+
"kind": "developer-tool",
|
|
278
|
+
"accent": "#06B6D4",
|
|
279
|
+
"llms": "https://agentskit-io.github.io/doc-bridge/llms.txt"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "code-review",
|
|
283
|
+
"name": "AgentsKit Code Review",
|
|
284
|
+
"barLabel": "Code Review",
|
|
285
|
+
"domain": "github.com",
|
|
286
|
+
"url": "https://github.com/AgentsKit-io/code-review-cli",
|
|
287
|
+
"repo": "AgentsKit-io/code-review-cli",
|
|
288
|
+
"tagline": "Run deep, low-noise review with the model already in use.",
|
|
289
|
+
"kind": "developer-tool",
|
|
290
|
+
"accent": "#F97316",
|
|
291
|
+
"llms": "https://raw.githubusercontent.com/AgentsKit-io/code-review-cli/main/llms.txt"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"id": "akos",
|
|
295
|
+
"name": "AgentsKit OS",
|
|
296
|
+
"barLabel": "AKOS",
|
|
297
|
+
"domain": "akos.agentskit.io",
|
|
298
|
+
"url": "https://akos.agentskit.io",
|
|
299
|
+
"repo": "AgentsKit-io/agentskit-os",
|
|
300
|
+
"tagline": "Run and govern agents in production.",
|
|
301
|
+
"kind": "product",
|
|
302
|
+
"accent": "#34D399",
|
|
303
|
+
"llms": "https://akos.agentskit.io/llms.txt",
|
|
304
|
+
"stats": "https://akos.agentskit.io/api/stats.json"
|
|
223
305
|
}
|
|
224
306
|
],
|
|
225
307
|
"builder": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentskit/doc-bridge",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "Human↔agent documentation bridge — deterministic handoffs, doc-site links, memory→docs, optional AgentsKit RAG/chat.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"test:watch": "vitest",
|
|
47
47
|
"coverage": "vitest run --coverage",
|
|
48
48
|
"check:ecosystem-upstream": "node scripts/check-ecosystem-upstream.mjs",
|
|
49
|
+
"check:no-legacy-chat-imports": "node scripts/check-no-legacy-chat-imports.mjs",
|
|
49
50
|
"typecheck": "tsc --noEmit",
|
|
50
51
|
"smoke:packaged": "node scripts/smoke-packaged.mjs",
|
|
51
52
|
"smoke:docsites": "node scripts/smoke-docsites.mjs",
|
|
@@ -53,12 +54,24 @@
|
|
|
53
54
|
"smoke:ollama": "node scripts/smoke-ollama.mjs",
|
|
54
55
|
"coverage:badge": "node scripts/update-coverage-badge.mjs",
|
|
55
56
|
"changeset": "changeset",
|
|
56
|
-
"version-packages": "changeset version",
|
|
57
|
+
"version-packages": "changeset version && node scripts/sync-version.mjs",
|
|
57
58
|
"release": "npm run build && npm test && changeset publish",
|
|
58
|
-
"version": "node scripts/sync-version.mjs && git add package.json src/version.ts",
|
|
59
|
+
"version": "node scripts/sync-version.mjs && git add package.json src/version.ts action.yml",
|
|
59
60
|
"prepublishOnly": "npm run build && npm test",
|
|
60
61
|
"prepare": "node scripts/prepare.mjs",
|
|
61
|
-
"prepack": "npm run build"
|
|
62
|
+
"prepack": "npm run build",
|
|
63
|
+
"docs:dev": "cd apps/docs && next dev",
|
|
64
|
+
"docs:artifacts": "node scripts/build-docs-artifacts.mjs",
|
|
65
|
+
"docs:build": "pnpm build && node bin/ak-docs.js index && pnpm docs:artifacts && cd apps/docs && next build",
|
|
66
|
+
"docs:typecheck": "cd apps/docs && fumadocs-mdx && tsc --noEmit",
|
|
67
|
+
"docs:e2e": "playwright test",
|
|
68
|
+
"docs:lighthouse": "lhci autorun",
|
|
69
|
+
"test:readme-standard": "node --test scripts/readme-standard.test.mjs",
|
|
70
|
+
"test:marketplace": "node --test scripts/marketplace-contract.test.mjs",
|
|
71
|
+
"check:marketplace": "node scripts/check-marketplace-contract.mjs",
|
|
72
|
+
"test:docs-artifacts": "node --test scripts/docs-artifacts-contract.test.mjs",
|
|
73
|
+
"check:readme-standard": "node scripts/check-readme-standard.mjs",
|
|
74
|
+
"check:docs": "pnpm check:readme-standard && node bin/ak-docs.js gate run && node bin/ak-docs.js conformance run documentation-standard-v1 --text && pnpm docs:typecheck && pnpm docs:build && pnpm test:docs-artifacts"
|
|
62
75
|
},
|
|
63
76
|
"keywords": [
|
|
64
77
|
"agentskit",
|
|
@@ -82,6 +95,7 @@
|
|
|
82
95
|
"access": "public"
|
|
83
96
|
},
|
|
84
97
|
"dependencies": {
|
|
98
|
+
"mermaid": "^11.16.0",
|
|
85
99
|
"zod": "^3.24.2"
|
|
86
100
|
},
|
|
87
101
|
"peerDependencies": {
|
|
@@ -113,16 +127,36 @@
|
|
|
113
127
|
}
|
|
114
128
|
},
|
|
115
129
|
"devDependencies": {
|
|
130
|
+
"@agentskit/chat": "0.4.0",
|
|
131
|
+
"@agentskit/core": "1.12.3",
|
|
132
|
+
"@agentskit/ink": "0.10.4",
|
|
133
|
+
"@agentskit/react": "0.7.4",
|
|
116
134
|
"@changesets/cli": "^2.31.0",
|
|
135
|
+
"@lhci/cli": "^0.15.1",
|
|
136
|
+
"@playwright/test": "1.61.1",
|
|
137
|
+
"@tailwindcss/postcss": "4.3.2",
|
|
117
138
|
"@types/node": "^22.15.3",
|
|
139
|
+
"@types/react": "19.2.17",
|
|
140
|
+
"@types/react-dom": "19.2.3",
|
|
118
141
|
"@vitest/coverage-v8": "4.1.10",
|
|
142
|
+
"fumadocs-core": "15.6.5",
|
|
143
|
+
"fumadocs-mdx": "11.6.4",
|
|
144
|
+
"fumadocs-ui": "15.6.5",
|
|
145
|
+
"lucide-react": "0.460.0",
|
|
146
|
+
"next": "15.5.19",
|
|
147
|
+
"react": "19.2.0",
|
|
148
|
+
"react-dom": "19.2.0",
|
|
149
|
+
"tailwindcss": "4.3.2",
|
|
119
150
|
"tsup": "^8.5.0",
|
|
120
151
|
"typescript": "^6.0.3",
|
|
121
152
|
"vitest": "^4.1.9"
|
|
122
153
|
},
|
|
123
154
|
"pnpm": {
|
|
124
155
|
"overrides": {
|
|
125
|
-
"esbuild": "^0.28.1"
|
|
156
|
+
"esbuild": "^0.28.1",
|
|
157
|
+
"postcss": "8.5.19",
|
|
158
|
+
"tmp": "0.2.7",
|
|
159
|
+
"uuid": "11.1.1"
|
|
126
160
|
}
|
|
127
161
|
},
|
|
128
162
|
"directories": {
|
|
@@ -134,5 +168,5 @@
|
|
|
134
168
|
"bugs": {
|
|
135
169
|
"url": "https://github.com/AgentsKit-io/doc-bridge/issues"
|
|
136
170
|
},
|
|
137
|
-
"homepage": "https://
|
|
171
|
+
"homepage": "https://doc-bridge.agentskit.io/"
|
|
138
172
|
}
|
|
@@ -50,7 +50,12 @@ const ManifestSchema = z.object({
|
|
|
50
50
|
schemaVersion: z.literal(2),
|
|
51
51
|
parentBrand: z.object({ id: NonEmptyStringSchema, name: NonEmptyStringSchema }).passthrough(),
|
|
52
52
|
products: z.array(ProductSchema).min(1),
|
|
53
|
-
|
|
53
|
+
// Historical four-product shim or full seven-product projection of products[].
|
|
54
|
+
properties: z
|
|
55
|
+
.array(LegacyPropertySchema)
|
|
56
|
+
.refine((value) => value.length === 4 || value.length === 7, {
|
|
57
|
+
message: 'must project either the legacy four products or the full seven-product catalog',
|
|
58
|
+
}),
|
|
54
59
|
builder: z.object({ id: NonEmptyStringSchema, name: NonEmptyStringSchema, url: HttpsUrlSchema }).passthrough().optional(),
|
|
55
60
|
}).passthrough()
|
|
56
61
|
|
|
@@ -88,7 +93,18 @@ const ClaimsSchema = z.object({
|
|
|
88
93
|
products: z.array(ClaimProductSchema),
|
|
89
94
|
}).passthrough()
|
|
90
95
|
|
|
91
|
-
|
|
96
|
+
/** Historical four-product shim order. */
|
|
97
|
+
const LEGACY_FOUR_PRODUCT_IDS = ['agentskit', 'akos', 'playbook', 'registry'] as const
|
|
98
|
+
/** Full seven-product projection order (matches products[]). */
|
|
99
|
+
const FULL_SEVEN_PRODUCT_IDS = [
|
|
100
|
+
'agentskit',
|
|
101
|
+
'registry',
|
|
102
|
+
'agentskit-chat',
|
|
103
|
+
'playbook',
|
|
104
|
+
'doc-bridge',
|
|
105
|
+
'code-review',
|
|
106
|
+
'akos',
|
|
107
|
+
] as const
|
|
92
108
|
|
|
93
109
|
export const parseCanonicalEcosystemContract = (
|
|
94
110
|
manifestInput: unknown,
|
|
@@ -120,7 +136,10 @@ export const parseCanonicalEcosystemContract = (
|
|
|
120
136
|
}
|
|
121
137
|
}
|
|
122
138
|
|
|
123
|
-
|
|
139
|
+
const propertyIds =
|
|
140
|
+
manifest.properties.length === 7 ? FULL_SEVEN_PRODUCT_IDS : LEGACY_FOUR_PRODUCT_IDS
|
|
141
|
+
|
|
142
|
+
for (const [index, id] of propertyIds.entries()) {
|
|
124
143
|
const legacy = manifest.properties[index]
|
|
125
144
|
const product = products.get(id)
|
|
126
145
|
if (!legacy || !product || legacy.id !== id || !product.surfaces.home) {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical AgentsKit ecosystem section for llms.txt (and similar machine indexes).
|
|
3
|
+
*
|
|
4
|
+
* All products should render this block with the same heading and line shape so
|
|
5
|
+
* agents can parse the seven-product mesh without per-repo inventiveness.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export type EcosystemLlmsProduct = {
|
|
9
|
+
readonly id: string
|
|
10
|
+
readonly name: string
|
|
11
|
+
readonly role?: string
|
|
12
|
+
readonly promise: string
|
|
13
|
+
readonly maturity?: string
|
|
14
|
+
readonly surfaces: {
|
|
15
|
+
readonly home?: string
|
|
16
|
+
readonly docs?: string
|
|
17
|
+
readonly llms?: string
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type FormatEcosystemLlmsBlockOptions = {
|
|
22
|
+
readonly products: readonly EcosystemLlmsProduct[]
|
|
23
|
+
/** When set, marks this product with **(current)**. */
|
|
24
|
+
readonly currentProductId?: string
|
|
25
|
+
/** Heading line without leading hashes — default `AgentsKit ecosystem`. */
|
|
26
|
+
readonly heading?: string
|
|
27
|
+
/**
|
|
28
|
+
* Prefer docs URL when available; otherwise home.
|
|
29
|
+
* Default: home, falling back to docs.
|
|
30
|
+
*/
|
|
31
|
+
readonly prefer?: 'home' | 'docs'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Returns markdown lines for the shared ecosystem block, including a trailing blank line.
|
|
36
|
+
*/
|
|
37
|
+
export function formatEcosystemLlmsBlock(options: FormatEcosystemLlmsBlockOptions): string[] {
|
|
38
|
+
const heading = options.heading ?? 'AgentsKit ecosystem'
|
|
39
|
+
const prefer = options.prefer ?? 'home'
|
|
40
|
+
const lines: string[] = [`## ${heading}`, '']
|
|
41
|
+
|
|
42
|
+
for (const product of options.products) {
|
|
43
|
+
const primary =
|
|
44
|
+
prefer === 'docs'
|
|
45
|
+
? product.surfaces.docs ?? product.surfaces.home
|
|
46
|
+
: product.surfaces.home ?? product.surfaces.docs
|
|
47
|
+
if (!primary) continue
|
|
48
|
+
|
|
49
|
+
const current = product.id === options.currentProductId ? ' **(current)**' : ''
|
|
50
|
+
const role = product.role ? ` Role: \`${product.role}\`.` : ''
|
|
51
|
+
const maturity = product.maturity ? ` Maturity: ${product.maturity}.` : ''
|
|
52
|
+
const machine = product.surfaces.llms ? ` Machine index: ${product.surfaces.llms}` : ''
|
|
53
|
+
const promise = product.promise.trim()
|
|
54
|
+
const promiseSentence = /[.!?]$/.test(promise) ? promise : `${promise}.`
|
|
55
|
+
lines.push(
|
|
56
|
+
`- [${product.name}](${primary})${current} — ${promiseSentence}${role}${maturity}${machine}`,
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
lines.push('')
|
|
61
|
+
return lines
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Join the block into a single string ending with a newline. */
|
|
65
|
+
export function formatEcosystemLlmsSection(options: FormatEcosystemLlmsBlockOptions): string {
|
|
66
|
+
return `${formatEcosystemLlmsBlock(options).join('\n')}\n`
|
|
67
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -65,6 +65,12 @@ export {
|
|
|
65
65
|
} from './validate.js'
|
|
66
66
|
|
|
67
67
|
export { buildDocBridgeIndex, type BuildIndexOptions, type BuildIndexResult } from './index-builder/build-index.js'
|
|
68
|
+
export {
|
|
69
|
+
formatEcosystemLlmsBlock,
|
|
70
|
+
formatEcosystemLlmsSection,
|
|
71
|
+
type EcosystemLlmsProduct,
|
|
72
|
+
type FormatEcosystemLlmsBlockOptions,
|
|
73
|
+
} from './federation/ecosystem-llms.js'
|
|
68
74
|
export {
|
|
69
75
|
scanHumanDocRecords,
|
|
70
76
|
scanHumanDocs,
|
|
@@ -111,7 +111,7 @@ Teams track handoff % and human-bridge % daily.
|
|
|
111
111
|
- npm: https://www.npmjs.com/package/@agentskit/doc-bridge
|
|
112
112
|
- repo: https://github.com/AgentsKit-io/doc-bridge
|
|
113
113
|
- skill: https://github.com/AgentsKit-io/doc-bridge/blob/master/docs/skills/doc-bridge.md
|
|
114
|
-
- landing: https://
|
|
114
|
+
- landing: https://doc-bridge.agentskit.io/
|
|
115
115
|
`
|
|
116
116
|
|
|
117
117
|
export const docBridgePatternPayload = () => ({
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const PACKAGE_VERSION = '1.
|
|
1
|
+
export const PACKAGE_VERSION = '1.2.3'
|