@kungfu-tech/buildchain 2.14.14-alpha.4 → 2.14.14-alpha.5

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 (86) hide show
  1. package/bin/buildchain.mjs +46 -2
  2. package/dist/site/agent-index.json +1 -0
  3. package/dist/site/artifact-schemas.json +2 -0
  4. package/dist/site/badge-endpoint-registry.json +1120 -0
  5. package/dist/site/badges/v1/kfd-10/aligned.json +14 -0
  6. package/dist/site/badges/v1/kfd-10/declared.json +14 -0
  7. package/dist/site/badges/v1/kfd-10/downgraded.json +14 -0
  8. package/dist/site/badges/v1/kfd-10/draft.json +14 -0
  9. package/dist/site/badges/v1/kfd-10/failed.json +14 -0
  10. package/dist/site/badges/v1/kfd-10/missing.json +14 -0
  11. package/dist/site/badges/v1/kfd-10/passed.json +14 -0
  12. package/dist/site/badges/v1/kfd-10/planned.json +14 -0
  13. package/dist/site/badges/v1/kfd-11/aligned.json +14 -0
  14. package/dist/site/badges/v1/kfd-11/declared.json +14 -0
  15. package/dist/site/badges/v1/kfd-11/downgraded.json +14 -0
  16. package/dist/site/badges/v1/kfd-11/draft.json +14 -0
  17. package/dist/site/badges/v1/kfd-11/failed.json +14 -0
  18. package/dist/site/badges/v1/kfd-11/missing.json +14 -0
  19. package/dist/site/badges/v1/kfd-11/passed.json +14 -0
  20. package/dist/site/badges/v1/kfd-11/planned.json +14 -0
  21. package/dist/site/badges/v1/kfd-12/aligned.json +14 -0
  22. package/dist/site/badges/v1/kfd-12/declared.json +14 -0
  23. package/dist/site/badges/v1/kfd-12/downgraded.json +14 -0
  24. package/dist/site/badges/v1/kfd-12/draft.json +14 -0
  25. package/dist/site/badges/v1/kfd-12/failed.json +14 -0
  26. package/dist/site/badges/v1/kfd-12/missing.json +14 -0
  27. package/dist/site/badges/v1/kfd-12/passed.json +14 -0
  28. package/dist/site/badges/v1/kfd-12/planned.json +14 -0
  29. package/dist/site/badges/v1/kfd-13/aligned.json +14 -0
  30. package/dist/site/badges/v1/kfd-13/declared.json +14 -0
  31. package/dist/site/badges/v1/kfd-13/downgraded.json +14 -0
  32. package/dist/site/badges/v1/kfd-13/draft.json +14 -0
  33. package/dist/site/badges/v1/kfd-13/failed.json +14 -0
  34. package/dist/site/badges/v1/kfd-13/missing.json +14 -0
  35. package/dist/site/badges/v1/kfd-13/passed.json +14 -0
  36. package/dist/site/badges/v1/kfd-13/planned.json +14 -0
  37. package/dist/site/badges/v1/kfd-7/aligned.json +14 -0
  38. package/dist/site/badges/v1/kfd-7/declared.json +14 -0
  39. package/dist/site/badges/v1/kfd-7/downgraded.json +14 -0
  40. package/dist/site/badges/v1/kfd-7/draft.json +14 -0
  41. package/dist/site/badges/v1/kfd-7/failed.json +14 -0
  42. package/dist/site/badges/v1/kfd-7/missing.json +14 -0
  43. package/dist/site/badges/v1/kfd-7/passed.json +14 -0
  44. package/dist/site/badges/v1/kfd-7/planned.json +14 -0
  45. package/dist/site/badges/v1/kfd-8/aligned.json +14 -0
  46. package/dist/site/badges/v1/kfd-8/declared.json +14 -0
  47. package/dist/site/badges/v1/kfd-8/downgraded.json +14 -0
  48. package/dist/site/badges/v1/kfd-8/draft.json +14 -0
  49. package/dist/site/badges/v1/kfd-8/failed.json +14 -0
  50. package/dist/site/badges/v1/kfd-8/missing.json +14 -0
  51. package/dist/site/badges/v1/kfd-8/passed.json +14 -0
  52. package/dist/site/badges/v1/kfd-8/planned.json +14 -0
  53. package/dist/site/badges/v1/kfd-9/aligned.json +14 -0
  54. package/dist/site/badges/v1/kfd-9/declared.json +14 -0
  55. package/dist/site/badges/v1/kfd-9/downgraded.json +14 -0
  56. package/dist/site/badges/v1/kfd-9/draft.json +14 -0
  57. package/dist/site/badges/v1/kfd-9/failed.json +14 -0
  58. package/dist/site/badges/v1/kfd-9/missing.json +14 -0
  59. package/dist/site/badges/v1/kfd-9/passed.json +14 -0
  60. package/dist/site/badges/v1/kfd-9/planned.json +14 -0
  61. package/dist/site/buildchain-contract.json +42 -27
  62. package/dist/site/buildchain-site.json +62 -11
  63. package/dist/site/capability-registry.json +6 -5
  64. package/dist/site/cli-registry.json +12 -0
  65. package/dist/site/controller-registry.json +16 -4
  66. package/dist/site/kfd-claims.json +65 -13
  67. package/dist/site/kfd-upstream-aggregate.json +12 -12
  68. package/dist/site/manual-registry.json +17 -2
  69. package/dist/site/node-api-registry.json +17 -4
  70. package/dist/site/page-registry.json +48 -5
  71. package/dist/site/public-surface-audit.json +53 -10
  72. package/dist/site/publication-registry.json +4 -4
  73. package/dist/site/release-passport-check-manifest.json +28 -2
  74. package/dist/site/release-provenance.json +2 -0
  75. package/dist/site/schemas/kfd-agent-hub-adoption.schema.json +116 -0
  76. package/dist/site/site-manifest.json +14 -6
  77. package/dist/site/workflow-registry.json +8 -4
  78. package/docs/MAP.md +2 -0
  79. package/docs/kfd-agent-hub.md +110 -0
  80. package/docs/release-candidate.md +7 -0
  81. package/package.json +4 -2
  82. package/packages/core/buildchain-kfd-claims.js +1 -0
  83. package/packages/core/index.js +13 -0
  84. package/packages/core/kfd-agent-hub.js +496 -0
  85. package/packages/core/release-passport.js +105 -0
  86. package/scripts/generate-site-bundle.mjs +8 -0
@@ -57,7 +57,20 @@
57
57
  "publicationUrlSemantics": "https://kfd.libkungfu.dev/schemas/kfd-1/publication-url-semantics.schema.json",
58
58
  "candidateRegistry": "https://kfd.libkungfu.dev/schemas/kfd-candidate-registry.schema.json",
59
59
  "verificationBundle": "https://kfd.libkungfu.dev/schemas/kfd-verification-bundle.schema.json",
60
- "verificationReport": "https://kfd.libkungfu.dev/schemas/kfd-verification-report.schema.json"
60
+ "verificationReport": "https://kfd.libkungfu.dev/schemas/kfd-verification-report.schema.json",
61
+ "agentHubManifest": "https://kfd.libkungfu.dev/schemas/kfd-agent-hub/manifest.schema.json",
62
+ "agentHubCapabilities": "https://kfd.libkungfu.dev/schemas/kfd-agent-hub/capabilities.schema.json",
63
+ "agentHubExchange": "https://kfd.libkungfu.dev/schemas/kfd-agent-hub/exchange.schema.json",
64
+ "agentHubConformanceManifest": "https://kfd.libkungfu.dev/schemas/kfd-agent-hub/conformance-manifest.schema.json",
65
+ "agentHubAdapterRequest": "https://kfd.libkungfu.dev/schemas/kfd-agent-hub/adapter-request.schema.json",
66
+ "agentHubAdapterResponse": "https://kfd.libkungfu.dev/schemas/kfd-agent-hub/adapter-response.schema.json",
67
+ "agentHubSuite": "https://kfd.libkungfu.dev/schemas/kfd-agent-hub/suite.schema.json",
68
+ "agentHubReport": "https://kfd.libkungfu.dev/schemas/kfd-agent-hub/report.schema.json",
69
+ "agentRuntimeManifest": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/manifest.schema.json",
70
+ "agentRuntimeAdapterRequest": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/adapter-request.schema.json",
71
+ "agentRuntimeAdapterResponse": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/adapter-response.schema.json",
72
+ "agentRuntimeSuite": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/suite.schema.json",
73
+ "agentRuntimeReport": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/report.schema.json"
61
74
  },
62
75
  "schemaPaths": {
63
76
  "metadata": "schemas/kfd-standards.schema.json",
@@ -66,7 +79,20 @@
66
79
  "publicationUrlSemantics": "schemas/kfd-1/publication-url-semantics.schema.json",
67
80
  "candidateRegistry": "schemas/kfd-candidate-registry.schema.json",
68
81
  "verificationBundle": "schemas/kfd-verification-bundle.schema.json",
69
- "verificationReport": "schemas/kfd-verification-report.schema.json"
82
+ "verificationReport": "schemas/kfd-verification-report.schema.json",
83
+ "agentHubManifest": "schemas/kfd-agent-hub/manifest.schema.json",
84
+ "agentHubCapabilities": "schemas/kfd-agent-hub/capabilities.schema.json",
85
+ "agentHubExchange": "schemas/kfd-agent-hub/exchange.schema.json",
86
+ "agentHubConformanceManifest": "schemas/kfd-agent-hub/conformance-manifest.schema.json",
87
+ "agentHubAdapterRequest": "schemas/kfd-agent-hub/adapter-request.schema.json",
88
+ "agentHubAdapterResponse": "schemas/kfd-agent-hub/adapter-response.schema.json",
89
+ "agentHubSuite": "schemas/kfd-agent-hub/suite.schema.json",
90
+ "agentHubReport": "schemas/kfd-agent-hub/report.schema.json",
91
+ "agentRuntimeManifest": "schemas/kfd-agent-runtime/manifest.schema.json",
92
+ "agentRuntimeAdapterRequest": "schemas/kfd-agent-runtime/adapter-request.schema.json",
93
+ "agentRuntimeAdapterResponse": "schemas/kfd-agent-runtime/adapter-response.schema.json",
94
+ "agentRuntimeSuite": "schemas/kfd-agent-runtime/suite.schema.json",
95
+ "agentRuntimeReport": "schemas/kfd-agent-runtime/report.schema.json"
70
96
  },
71
97
  "compatibility": {
72
98
  "packageLine": "v1.0",
@@ -21,6 +21,7 @@
21
21
  "./homebrew": "./packages/core/homebrew.js",
22
22
  "./issue-reporting": "./packages/core/issue-reporting.js",
23
23
  "./kfd": "./packages/core/kfd.js",
24
+ "./kfd-agent-hub": "./packages/core/kfd-agent-hub.js",
24
25
  "./buildchain-layout": "./packages/core/buildchain-layout.js",
25
26
  "./release-line-bootstrap": "./packages/core/release-line-bootstrap.js",
26
27
  "./readme-badges": "./packages/core/readme-badges.js",
@@ -58,6 +59,7 @@
58
59
  "./site/artifact-schemas.json": "./dist/site/artifact-schemas.json",
59
60
  "./site/release-passport-check-manifest.json": "./dist/site/release-passport-check-manifest.json",
60
61
  "./site/schemas/release-passport-v1.schema.json": "./dist/site/schemas/release-passport-v1.schema.json",
62
+ "./site/schemas/kfd-agent-hub-adoption.schema.json": "./dist/site/schemas/kfd-agent-hub-adoption.schema.json",
61
63
  "./site/buildchain-contract.json": "./dist/site/buildchain-contract.json",
62
64
  "./site/product-mechanism.json": "./dist/site/product-mechanism.json",
63
65
  "./site/release-provenance.json": "./dist/site/release-provenance.json",
@@ -0,0 +1,116 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.libkungfu.dev/schemas/kfd-agent-hub-adoption.schema.json",
4
+ "title": "Buildchain KFD Agent Hub adoption declaration",
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "contract",
9
+ "profile",
10
+ "adapter",
11
+ "capabilities"
12
+ ],
13
+ "properties": {
14
+ "$schema": {
15
+ "const": "https://buildchain.libkungfu.dev/schemas/kfd-agent-hub-adoption.schema.json"
16
+ },
17
+ "schemaVersion": {
18
+ "const": 1
19
+ },
20
+ "contract": {
21
+ "const": "kungfu-buildchain-kfd-agent-hub-adoption/v1"
22
+ },
23
+ "profile": {
24
+ "type": "object",
25
+ "required": [
26
+ "package",
27
+ "id"
28
+ ],
29
+ "properties": {
30
+ "package": {
31
+ "const": "@kungfu-tech/kfd"
32
+ },
33
+ "id": {
34
+ "const": "kfd-agent-hub-conformance"
35
+ }
36
+ },
37
+ "additionalProperties": false
38
+ },
39
+ "adapter": {
40
+ "type": "object",
41
+ "required": [
42
+ "id",
43
+ "version",
44
+ "path"
45
+ ],
46
+ "properties": {
47
+ "id": {
48
+ "type": "string",
49
+ "minLength": 1
50
+ },
51
+ "version": {
52
+ "type": "string",
53
+ "minLength": 1
54
+ },
55
+ "path": {
56
+ "type": "string",
57
+ "minLength": 1
58
+ },
59
+ "args": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "string"
63
+ }
64
+ },
65
+ "build": {
66
+ "type": "array",
67
+ "minItems": 1,
68
+ "items": {
69
+ "type": "string",
70
+ "minLength": 1
71
+ }
72
+ }
73
+ },
74
+ "additionalProperties": false
75
+ },
76
+ "capabilities": {
77
+ "type": "object",
78
+ "required": [
79
+ "operations",
80
+ "topologies",
81
+ "hubBindings"
82
+ ],
83
+ "properties": {
84
+ "operations": {
85
+ "type": "array",
86
+ "minItems": 1,
87
+ "uniqueItems": true,
88
+ "items": {
89
+ "type": "string",
90
+ "minLength": 1
91
+ }
92
+ },
93
+ "topologies": {
94
+ "type": "array",
95
+ "minItems": 1,
96
+ "uniqueItems": true,
97
+ "items": {
98
+ "type": "string",
99
+ "minLength": 1
100
+ }
101
+ },
102
+ "hubBindings": {
103
+ "type": "array",
104
+ "minItems": 1,
105
+ "uniqueItems": true,
106
+ "items": {
107
+ "type": "string",
108
+ "minLength": 1
109
+ }
110
+ }
111
+ },
112
+ "additionalProperties": false
113
+ }
114
+ },
115
+ "additionalProperties": false
116
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-manifest",
4
- "generatedAt": "2026-07-22T04:33:16.531Z",
5
- "publishedAt": "2026-07-22T04:33:16.531Z",
4
+ "generatedAt": "2026-07-22T05:34:20.599Z",
5
+ "publishedAt": "2026-07-22T05:34:20.599Z",
6
6
  "reproducible": true,
7
7
  "timestampPolicy": "ci-injected",
8
8
  "deterministicInputs": [
@@ -19,7 +19,7 @@
19
19
  "declared Buildchain surface manifest contract"
20
20
  ],
21
21
  "sourceDateEpoch": "0",
22
- "sourceRevision": "7bdf09e86a485dd96788b934ad8e7238f989c21f",
22
+ "sourceRevision": "69360fc86fffa4c07b4966a4173af0e770aa4df3",
23
23
  "timestampPolicyDetails": {
24
24
  "contract": "kungfu-buildchain-surface-timestamp-policy",
25
25
  "timestampFields": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "package": {
39
39
  "name": "@kungfu-tech/buildchain",
40
- "version": "2.14.14-alpha.4",
40
+ "version": "2.14.14-alpha.5",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -53,7 +53,7 @@
53
53
  "path": "docs/MAP.md",
54
54
  "plane": "use",
55
55
  "exists": true,
56
- "digest": "sha256:fa818a541ee2d70a0cc08caec85bf4c1eb20ff5118be0cc2149062fed50f4620"
56
+ "digest": "sha256:7f007a9d295d597dfc5b1447629ab0d6bf2b3fa3d625b02d27abf7493d73bb40"
57
57
  },
58
58
  {
59
59
  "id": "install",
@@ -93,7 +93,7 @@
93
93
  "path": "docs/release-candidate.md",
94
94
  "plane": "verify",
95
95
  "exists": true,
96
- "digest": "sha256:2127c22b7b567befd05cba7d50ed0ca229b366072506e06fa09a0962ccfc1db7"
96
+ "digest": "sha256:15bfe69e1da8c9bf7310c5cd89968d206886a25447f71fdc7cd58db2af0c7608"
97
97
  },
98
98
  {
99
99
  "id": "release-propagation",
@@ -207,6 +207,14 @@
207
207
  "exists": true,
208
208
  "digest": "sha256:ab15de33a1a9e292b6da74c00b8b96b7c46330d0553a454d1de4c24c672fc025"
209
209
  },
210
+ {
211
+ "id": "kfd-agent-hub",
212
+ "title": "KFD Agent Hub Builder flow",
213
+ "path": "docs/kfd-agent-hub.md",
214
+ "plane": "use",
215
+ "exists": true,
216
+ "digest": "sha256:7528f8a11c7fe67b350c0dd380b77d724c2d9e0001b4427949ee1c6012735d49"
217
+ },
210
218
  {
211
219
  "id": "lifecycle-protocol",
212
220
  "title": "Lifecycle protocol",
@@ -66,6 +66,7 @@
66
66
  "expected-artifacts-json",
67
67
  "gate-profile-aggregate-json",
68
68
  "install-command",
69
+ "kfd-agent-hub",
69
70
  "lifecycle-timeout-minutes",
70
71
  "linux-container-image",
71
72
  "linux-container-preset",
@@ -97,7 +98,7 @@
97
98
  "verify-command",
98
99
  "working-directory"
99
100
  ],
100
- "inputCount": 59,
101
+ "inputCount": 60,
101
102
  "secrets": [
102
103
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
103
104
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
@@ -342,11 +343,12 @@
342
343
  "required-artifact-count",
343
344
  "required-status-check",
344
345
  "runner-preset",
346
+ "standalone-binary-distribution",
345
347
  "target-ref",
346
348
  "target-sha",
347
349
  "trusted-publishing"
348
350
  ],
349
- "inputCount": 72,
351
+ "inputCount": 73,
350
352
  "secrets": [
351
353
  "BUILDCHAIN_ISSUE_APP_ID",
352
354
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -836,6 +838,7 @@
836
838
  "expected-artifacts-json",
837
839
  "gate-profile-aggregate-json",
838
840
  "install-command",
841
+ "kfd-agent-hub",
839
842
  "lifecycle-timeout-minutes",
840
843
  "linux-container-image",
841
844
  "linux-container-preset",
@@ -867,7 +870,7 @@
867
870
  "verify-command",
868
871
  "working-directory"
869
872
  ],
870
- "inputCount": 62,
873
+ "inputCount": 63,
871
874
  "secrets": [
872
875
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
873
876
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
@@ -1520,11 +1523,12 @@
1520
1523
  "required-artifact-count",
1521
1524
  "required-status-check",
1522
1525
  "runner-preset",
1526
+ "standalone-binary-distribution",
1523
1527
  "target-ref",
1524
1528
  "target-sha",
1525
1529
  "trusted-publishing"
1526
1530
  ],
1527
- "inputCount": 64,
1531
+ "inputCount": 65,
1528
1532
  "secrets": [
1529
1533
  "BUILDCHAIN_ISSUE_APP_ID",
1530
1534
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
package/docs/MAP.md CHANGED
@@ -44,6 +44,7 @@ workflow, action, and Node API export also carries a `capabilityGroup`,
44
44
  | Product invariant Passport release gate | `buildchain.release.json#invariantPassports`, `dist/site/buildchain-contract.json` | [`release-passport.md`](release-passport.md) |
45
45
  | KFD-3 public surface reverse audit | `dist/site/public-surface-audit.json`, `dist/site/cli-registry.json`, `dist/site/workflow-registry.json`, `dist/site/page-registry.json` | [`cli.md`](cli.md), [`site-bundle-contract.md`](site-bundle-contract.md) |
46
46
  | KFD-1 / KFD-2 / KFD-3 first-class CLI and Node API | `.buildchain/kfd/kfd-3/surfaces.json`, `dist/site/kfd-claims.json`, `buildchain.release.json`, KFD schemas from `@kungfu-tech/kfd` | [`kfd-support.md`](kfd-support.md), [`cli.md`](cli.md#commands) |
47
+ | Declarative KFD Agent Hub adapter conformance and Passport evidence | `.buildchain/kfd/agent-hub.json`, `.buildchain/artifacts/kfd-agent-hub/evidence.json`, `buildchain.release.json#kfdAgentHub` | [`kfd-agent-hub.md`](kfd-agent-hub.md) |
47
48
  | Floating `@v2` drift detection and compatibility issues | `dist/site/buildchain-contract.json` | [`reusable-build-surface.md`](reusable-build-surface.md#floating-ref-contract-lock) |
48
49
  | npm publish transactions, evidence, dist-tags, and recovery | `dist/site/release-model.json`, `dist/site/artifact-schemas.json` | [`publish-transaction.md`](publish-transaction.md) |
49
50
  | Git/source/version/module/product build facts | `dist/site/node-api-registry.json`, `dist/site/cli-registry.json`, `kungfu-buildchain-module-build-facts`, `kungfu-buildchain-product-build-facts` | [`build-facts.md`](build-facts.md) |
@@ -89,6 +90,7 @@ replace them.
89
90
  | How do I declare, render, and audit product KFD-2 release trust claims? | [`kfd-support.md`](kfd-support.md#kfd-2) + [`release-passport.md`](release-passport.md#kfd-2-release-trust-passport-audit) + [`cli.md`](cli.md) | verify/use | stable |
90
91
  | How do I gate KFD-3 collaboration-interface releases? | [`release-passport.md`](release-passport.md#kfd-3-collaboration-interface-release-gate) + [`cli.md`](cli.md) | verify/use | stable |
91
92
  | How do I detect, register, audit, witness, or query KFD-3 product surfaces? | [`kfd-support.md`](kfd-support.md) + [`cli.md`](cli.md) | verify/use | stable |
93
+ | How do I adopt the KFD Agent Hub profile with one declaration and one adapter? | [`kfd-agent-hub.md`](kfd-agent-hub.md) | verify/use | preview |
92
94
  | How do I keep `@v2` floating refs while detecting Buildchain contract drift? | [`reusable-build-surface.md`](reusable-build-surface.md#floating-ref-contract-lock) | verify/use | stable |
93
95
  | How do reusable workflows bind controller intent, source/runtime identity, outcomes, and receipt evidence? | [`controller-evidence.md`](controller-evidence.md) | verify/use | draft |
94
96
  | How do I propagate finalized upstream releases to downstream package/site PRs? | [`release-propagation.md`](release-propagation.md) | use | preview |
@@ -0,0 +1,110 @@
1
+ # KFD Agent Hub Builder Flow
2
+
3
+ Buildchain reduces Agent Hub adoption to one consumer declaration and one
4
+ adapter artifact. KFD owns the conformance profile, fixed suite, runner,
5
+ verifier, report schema, and failure codes. Buildchain owns orchestration,
6
+ source-cut locking, declaration-to-observation comparison, workflow artifacts,
7
+ agent explanations, and Release Passport binding.
8
+
9
+ ## Declare one adapter
10
+
11
+ Create `.buildchain/kfd/agent-hub.json`:
12
+
13
+ ```json
14
+ {
15
+ "$schema": "https://buildchain.libkungfu.dev/schemas/kfd-agent-hub-adoption.schema.json",
16
+ "schemaVersion": 1,
17
+ "contract": "kungfu-buildchain-kfd-agent-hub-adoption/v1",
18
+ "profile": {
19
+ "package": "@kungfu-tech/kfd",
20
+ "id": "kfd-agent-hub-conformance"
21
+ },
22
+ "adapter": {
23
+ "id": "example-agent-hub-adapter",
24
+ "version": "0.1.0",
25
+ "path": "dist/agent-hub-adapter.mjs",
26
+ "build": ["pnpm", "run", "build:agent-hub"]
27
+ },
28
+ "capabilities": {
29
+ "operations": ["capability-advertisement", "fact-admission"],
30
+ "topologies": ["local-peer"],
31
+ "hubBindings": ["local-file-bundle"]
32
+ }
33
+ }
34
+ ```
35
+
36
+ `adapter.build` is an argv array, not a shell command. Buildchain does not
37
+ accept a consumer-provided verifier command. It always invokes the installed
38
+ KFD package's fixed public commands:
39
+
40
+ ```text
41
+ kfd test agent-hub --adapter <entry> --output <report.json>
42
+ kfd verify agent-hub-report <report.json> --adapter <entry> --json
43
+ ```
44
+
45
+ `jsonl-stdio/v1` is the KFD runner-to-adapter invocation binding. It is locked
46
+ from the KFD profile and is deliberately separate from
47
+ `capabilities.hubBindings`, which declares product transport or file bindings
48
+ such as `local-file-bundle`.
49
+
50
+ ## Inspect, test, and explain
51
+
52
+ ```bash
53
+ buildchain kfd hub init --write
54
+ buildchain kfd hub inspect --for agent
55
+ buildchain kfd hub test --for agent
56
+ buildchain kfd hub explain --for agent
57
+ ```
58
+
59
+ `inspect` resolves the installed `@kungfu-tech/kfd` package and locks its exact
60
+ package version, package manifest, release anchor, profile manifest, protocol
61
+ manifest, fixed suite root, failure inventory root, declaration, and adapter
62
+ artifact. Placeholder roots and KFD packages without the public Agent Hub
63
+ profile fail closed.
64
+
65
+ `test` runs the declared adapter build, delegates all semantic decisions to
66
+ KFD, verifies the KFD report, and then checks that every observed Hub
67
+ capability document exactly matches the declared operations, topologies, and
68
+ Hub bindings. Scope widening is a failure.
69
+
70
+ Evidence is written under `.buildchain/artifacts/kfd-agent-hub/`:
71
+
72
+ - `report.json`: the KFD-owned Agent Hub report.
73
+ - `adoption-lock.json`: exact KFD cut, declaration, adapter, and capability lock.
74
+ - `verification.json`: Buildchain's binding of the KFD verifier verdict to the lock.
75
+ - `evidence.json`: the portable, nonqualifying, non-certifying release evidence index.
76
+
77
+ The evidence proves only the named adapter artifact, KFD package cut, platform,
78
+ fixed suite, observed capability documents, and retained residual risks. It is
79
+ not KFD certification, a security assessment, or production-fitness evidence.
80
+
81
+ ## Use the reusable workflow
82
+
83
+ ```yaml
84
+ jobs:
85
+ build:
86
+ uses: kungfu-systems/buildchain/.github/workflows/build.yml@v2
87
+ with:
88
+ kfd-agent-hub: auto
89
+ ```
90
+
91
+ `auto` runs the fixed Builder flow after the consumer verify lifecycle on every
92
+ selected platform and uploads
93
+ `<artifact>-kfd-agent-hub-<platform>-<source-sha>`. `off` is the default.
94
+
95
+ ## Bind Release Passport
96
+
97
+ Pass the generated evidence index to the normal collector:
98
+
99
+ ```bash
100
+ buildchain collect github-release \
101
+ --tag "$TAG" \
102
+ --assets-dir dist \
103
+ --kfd-agent-hub-evidence-json .buildchain/artifacts/kfd-agent-hub/evidence.json
104
+ ```
105
+
106
+ The collector embeds a `kfdAgentHub` section and bundles
107
+ `kfd-agent-hub-evidence.json`. `buildchain verify release-passport` resolves
108
+ that sibling asset and rejects report, lock, source-cut, scope, or claim-boundary
109
+ tampering.
110
+
@@ -121,6 +121,13 @@ For anchored/manual package releases, the public GitHub Release tag defaults to
121
121
  `v<publishedVersion>` while the internal transaction exact tag remains recorded
122
122
  in the release passport.
123
123
 
124
+ Standalone binary publication is a separate consumer capability. The promotion
125
+ wrapper does not assume that an npm-only repository provides
126
+ `.github/workflows/binary-distribution.yml`. Repositories that own that workflow
127
+ opt in with `standalone-binary-distribution: true`; Buildchain's self-promotion
128
+ does so explicitly. Once enabled, a missing or invalid binary workflow remains a
129
+ hard failure rather than being silently skipped.
130
+
124
131
  Products that publish KFD release trust evidence can keep that path declarative
125
132
  too. Pass KFD-1 self contract witnesses, KFD-2 public claim files, and KFD-3
126
133
  pre-build/artifact evidence into the wrapper:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungfu-tech/buildchain",
3
- "version": "2.14.14-alpha.4",
3
+ "version": "2.14.14-alpha.5",
4
4
  "private": false,
5
5
  "description": "Buildchain Release Passport, release governance, CLI toolkit, and site facts.",
6
6
  "repository": "https://github.com/kungfu-systems/buildchain",
@@ -24,6 +24,7 @@
24
24
  "./homebrew": "./packages/core/homebrew.js",
25
25
  "./issue-reporting": "./packages/core/issue-reporting.js",
26
26
  "./kfd": "./packages/core/kfd.js",
27
+ "./kfd-agent-hub": "./packages/core/kfd-agent-hub.js",
27
28
  "./buildchain-layout": "./packages/core/buildchain-layout.js",
28
29
  "./release-line-bootstrap": "./packages/core/release-line-bootstrap.js",
29
30
  "./readme-badges": "./packages/core/readme-badges.js",
@@ -61,6 +62,7 @@
61
62
  "./site/artifact-schemas.json": "./dist/site/artifact-schemas.json",
62
63
  "./site/release-passport-check-manifest.json": "./dist/site/release-passport-check-manifest.json",
63
64
  "./site/schemas/release-passport-v1.schema.json": "./dist/site/schemas/release-passport-v1.schema.json",
65
+ "./site/schemas/kfd-agent-hub-adoption.schema.json": "./dist/site/schemas/kfd-agent-hub-adoption.schema.json",
64
66
  "./site/buildchain-contract.json": "./dist/site/buildchain-contract.json",
65
67
  "./site/product-mechanism.json": "./dist/site/product-mechanism.json",
66
68
  "./site/release-provenance.json": "./dist/site/release-provenance.json",
@@ -108,7 +110,7 @@
108
110
  "vitest": "^4.1.9"
109
111
  },
110
112
  "dependencies": {
111
- "@kungfu-tech/kfd": "1.0.0-alpha.29",
113
+ "@kungfu-tech/kfd": "1.0.0-alpha.41",
112
114
  "smol-toml": "1.7.0"
113
115
  }
114
116
  }
@@ -32,6 +32,7 @@ export const BUILDCHAIN_AGENT_MANUALS = Object.freeze([
32
32
  { id: "cli", title: "CLI and npm package", path: "docs/cli.md", plane: "use" },
33
33
  { id: "build-facts", title: "Build Facts", path: "docs/build-facts.md", plane: "use" },
34
34
  { id: "kfd-support", title: "KFD support and KFD-3 surface registration", path: "docs/kfd-support.md", plane: "verify" },
35
+ { id: "kfd-agent-hub", title: "KFD Agent Hub Builder flow", path: "docs/kfd-agent-hub.md", plane: "use" },
35
36
  { id: "lifecycle-protocol", title: "Lifecycle protocol", path: "docs/lifecycle-protocol.md", plane: "use" },
36
37
  { id: "reusable-build-surface", title: "Reusable build surface", path: "docs/reusable-build-surface.md", plane: "use" },
37
38
  { id: "publish-transaction", title: "Publish transaction", path: "docs/publish-transaction.md", plane: "verify" },
@@ -327,6 +327,19 @@ export {
327
327
  verifyReleasePassport,
328
328
  } from "./release-passport.js";
329
329
 
330
+ export {
331
+ KFD_AGENT_HUB_ADOPTION_CONTRACT,
332
+ KFD_AGENT_HUB_ADOPTION_SCHEMA,
333
+ KFD_AGENT_HUB_DECLARATION,
334
+ KFD_AGENT_HUB_LOCK_CONTRACT,
335
+ KFD_AGENT_HUB_OUTPUT_DIR,
336
+ KFD_AGENT_HUB_VERIFICATION_CONTRACT,
337
+ explainKfdAgentHub,
338
+ initKfdAgentHub,
339
+ inspectKfdAgentHub,
340
+ testKfdAgentHub,
341
+ } from "./kfd-agent-hub.js";
342
+
330
343
  export {
331
344
  RELEASE_PASSPORT_CHECK_MANIFEST_CONTRACT,
332
345
  RELEASE_PASSPORT_SCHEMA,