@a5c-ai/kradle 5.0.1-staging.3abdf9534c25

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 (295) hide show
  1. package/Dockerfile +31 -0
  2. package/README.md +187 -0
  3. package/bin/kradle-demo.mjs +23 -0
  4. package/bin/kradle-server.mjs +14 -0
  5. package/dist/kradle-controller-ui.json +3482 -0
  6. package/dist/kradle-lifecycle.json +201 -0
  7. package/dist/kradle-runtime-snapshot.json +3125 -0
  8. package/dist/kradle-summary.json +724 -0
  9. package/docs/README.md +61 -0
  10. package/docs/agents/README.md +83 -0
  11. package/docs/agents/acceptance-test-matrix.md +193 -0
  12. package/docs/agents/agent-mux-adapter-contract.md +167 -0
  13. package/docs/agents/agent-mux-source-map.md +310 -0
  14. package/docs/agents/agent-run-memory-import-spec.md +256 -0
  15. package/docs/agents/agent-stack-management-spec.md +421 -0
  16. package/docs/agents/api-contract-spec.md +309 -0
  17. package/docs/agents/artifacts-writeback-spec.md +145 -0
  18. package/docs/agents/chart-packaging-spec.md +128 -0
  19. package/docs/agents/ci-orchestration-spec.md +140 -0
  20. package/docs/agents/context-assembly-spec.md +219 -0
  21. package/docs/agents/controller-reconciliation-spec.md +255 -0
  22. package/docs/agents/crd-schema-spec.md +315 -0
  23. package/docs/agents/decision-log-open-questions.md +169 -0
  24. package/docs/agents/developer-implementation-checklist.md +329 -0
  25. package/docs/agents/dispatching-design.md +262 -0
  26. package/docs/agents/gaps-agent-mux-to-kradle-crds.md +298 -0
  27. package/docs/agents/glossary.md +66 -0
  28. package/docs/agents/implementation-blueprint.md +324 -0
  29. package/docs/agents/implementation-rollout-slices.md +251 -0
  30. package/docs/agents/memory-context-integration-spec.md +194 -0
  31. package/docs/agents/memory-ontology-schema-spec.md +253 -0
  32. package/docs/agents/memory-operations-runbook.md +121 -0
  33. package/docs/agents/mvp-vertical-slice-spec.md +146 -0
  34. package/docs/agents/observability-audit-spec.md +265 -0
  35. package/docs/agents/operator-runbook.md +174 -0
  36. package/docs/agents/org-memory-api-payload-examples.md +333 -0
  37. package/docs/agents/org-memory-controller-sequence-spec.md +181 -0
  38. package/docs/agents/org-memory-e2e-fixture-plan.md +161 -0
  39. package/docs/agents/org-memory-ui-implementation-map.md +114 -0
  40. package/docs/agents/org-memory-vertical-slice-spec.md +168 -0
  41. package/docs/agents/org-resource-model-delta-spec.md +111 -0
  42. package/docs/agents/org-route-resource-model-spec.md +183 -0
  43. package/docs/agents/org-scoping-namespace-spec.md +114 -0
  44. package/docs/agents/rbac-secrets-management-spec.md +406 -0
  45. package/docs/agents/repository-page-integration-spec.md +255 -0
  46. package/docs/agents/resource-contract-examples.md +808 -0
  47. package/docs/agents/resource-relationship-map.md +190 -0
  48. package/docs/agents/security-threat-model.md +188 -0
  49. package/docs/agents/shared-memory-company-brain-spec.md +358 -0
  50. package/docs/agents/storage-migration-spec.md +168 -0
  51. package/docs/agents/subagent-orchestration-spec.md +152 -0
  52. package/docs/agents/system-overview.md +88 -0
  53. package/docs/agents/tools-mcp-skills-spec.md +189 -0
  54. package/docs/agents/traceability-matrix.md +79 -0
  55. package/docs/agents/ui-flow-spec.md +211 -0
  56. package/docs/agents/ui-ux-system-spec.md +426 -0
  57. package/docs/agents/workspace-lifecycle-spec.md +166 -0
  58. package/docs/architecture-spec.md +78 -0
  59. package/docs/architecture-v2.md +2759 -0
  60. package/docs/components/control-plane.md +78 -0
  61. package/docs/components/data-plane.md +69 -0
  62. package/docs/components/hooks-events.md +67 -0
  63. package/docs/components/identity-rbac-policy.md +73 -0
  64. package/docs/components/kubevela-oam.md +70 -0
  65. package/docs/components/operations-publishing.md +81 -0
  66. package/docs/components/runners-ci.md +66 -0
  67. package/docs/components/web-ui.md +94 -0
  68. package/docs/crd-behaviors-and-relationships.md +3926 -0
  69. package/docs/external/README.md +47 -0
  70. package/docs/external/bidirectional-sync-design.md +134 -0
  71. package/docs/external/cicd-interface.md +64 -0
  72. package/docs/external/external-backend-controllers.md +170 -0
  73. package/docs/external/external-backend-crds.md +234 -0
  74. package/docs/external/external-backend-ui-spec.md +151 -0
  75. package/docs/external/external-backend-ux-flows.md +115 -0
  76. package/docs/external/external-object-mapping.md +125 -0
  77. package/docs/external/git-forge-interface.md +68 -0
  78. package/docs/external/github-integration-design.md +151 -0
  79. package/docs/external/issue-tracking-interface.md +66 -0
  80. package/docs/external/provider-capability-manifests.md +204 -0
  81. package/docs/external/provider-catalog.md +139 -0
  82. package/docs/external/provider-rollout-testing.md +78 -0
  83. package/docs/external/research-results.md +48 -0
  84. package/docs/external/security-auth-permissions.md +81 -0
  85. package/docs/external/sync-state-machines.md +108 -0
  86. package/docs/external/unified-external-backend-model.md +107 -0
  87. package/docs/external/user-facing-changes.md +67 -0
  88. package/docs/gaps.md +161 -0
  89. package/docs/install.md +94 -0
  90. package/docs/integration-and-design-decisions.md +1530 -0
  91. package/docs/kradle-design.md +334 -0
  92. package/docs/local-minikube.md +55 -0
  93. package/docs/ontology/README.md +32 -0
  94. package/docs/ontology/bounded-contexts.md +29 -0
  95. package/docs/ontology/events-and-hooks.md +32 -0
  96. package/docs/ontology/oam-kubevela.md +32 -0
  97. package/docs/ontology/operations-and-release.md +25 -0
  98. package/docs/ontology/personas-and-actors.md +32 -0
  99. package/docs/ontology/policies-and-invariants.md +33 -0
  100. package/docs/ontology/problem-space.md +30 -0
  101. package/docs/ontology/resource-contracts.md +40 -0
  102. package/docs/ontology/resource-taxonomy.md +42 -0
  103. package/docs/ontology/runners-and-ci.md +29 -0
  104. package/docs/ontology/solution-space.md +24 -0
  105. package/docs/ontology/storage-and-data-boundaries.md +29 -0
  106. package/docs/ontology/validation-matrix.md +24 -0
  107. package/docs/ontology/web-ui-excellent-flows.md +32 -0
  108. package/docs/ontology/workflows.md +39 -0
  109. package/docs/ontology/world.md +35 -0
  110. package/docs/openapi.yaml +1291 -0
  111. package/docs/product-requirements.md +62 -0
  112. package/docs/requirements-v2.md +235 -0
  113. package/docs/roadmap-mvp.md +87 -0
  114. package/docs/sdk-api-reference.md +1108 -0
  115. package/docs/system-requirements.md +90 -0
  116. package/docs/system-spec-v2.md +1230 -0
  117. package/docs/tests/README.md +53 -0
  118. package/docs/tests/agent-qa-plan.md +63 -0
  119. package/docs/tests/browser-ui-tests.md +62 -0
  120. package/docs/tests/ci-quality-gates.md +48 -0
  121. package/docs/tests/coverage-model.md +64 -0
  122. package/docs/tests/e2e-scenario-tests.md +53 -0
  123. package/docs/tests/fixtures-test-data.md +63 -0
  124. package/docs/tests/observability-reliability-tests.md +54 -0
  125. package/docs/tests/product-test-matrix.md +145 -0
  126. package/docs/tests/qa-adoption-roadmap.md +130 -0
  127. package/docs/tests/qa-automation-plan.md +101 -0
  128. package/docs/tests/security-compliance-tests.md +57 -0
  129. package/docs/tests/test-framework-tools.md +88 -0
  130. package/docs/tests/test-suite-layout.md +121 -0
  131. package/docs/tests/unit-integration-tests.md +48 -0
  132. package/docs/todo-kyverno +714 -0
  133. package/docs/todos.md +4 -0
  134. package/docs/user-stories.md +78 -0
  135. package/docs/web-console-spec.md +533 -0
  136. package/examples/minikube-demo.yaml +190 -0
  137. package/examples/oam-application.yaml +23 -0
  138. package/examples/policy-kyverno-pr-title.yaml +18 -0
  139. package/package.json +66 -0
  140. package/scripts/build.mjs +29 -0
  141. package/scripts/setup-minikube.mjs +65 -0
  142. package/scripts/smoke.mjs +37 -0
  143. package/scripts/validate-doc-coverage.mjs +152 -0
  144. package/scripts/validate-package.mjs +95 -0
  145. package/scripts/validate-ui.mjs +305 -0
  146. package/src/agent-adapter-controller.js +169 -0
  147. package/src/agent-approval-controller.js +170 -0
  148. package/src/agent-context-bundles.js +242 -0
  149. package/src/agent-dispatch-controller.js +549 -0
  150. package/src/agent-gateway-config-controller.js +147 -0
  151. package/src/agent-identity-migration.js +115 -0
  152. package/src/agent-memory-controller.js +357 -0
  153. package/src/agent-memory-import.js +327 -0
  154. package/src/agent-memory-query.js +292 -0
  155. package/src/agent-memory-repository-source-controller.js +255 -0
  156. package/src/agent-mux-client.js +589 -0
  157. package/src/agent-permission-review.js +250 -0
  158. package/src/agent-persona-controller.js +135 -0
  159. package/src/agent-project-controller.js +117 -0
  160. package/src/agent-prompt-composition.js +55 -0
  161. package/src/agent-provider-config-controller.js +151 -0
  162. package/src/agent-secret-config-grant-controller.js +282 -0
  163. package/src/agent-session-transcript-controller.js +189 -0
  164. package/src/agent-stack-controller.js +421 -0
  165. package/src/agent-subagent-controller.js +160 -0
  166. package/src/agent-transport-binding-controller.js +121 -0
  167. package/src/agent-trigger-controller.js +387 -0
  168. package/src/agent-workspace-controller.js +702 -0
  169. package/src/agent-writeback-controller.js +302 -0
  170. package/src/api-controller.js +621 -0
  171. package/src/argocd-gitops.js +43 -0
  172. package/src/artifact-registry-controller.js +542 -0
  173. package/src/assistant-runtime.js +284 -0
  174. package/src/async-controller.js +207 -0
  175. package/src/audit-controller.js +191 -0
  176. package/src/auth.js +310 -0
  177. package/src/component-catalog.js +41 -0
  178. package/src/control-plane.js +136 -0
  179. package/src/controller-client.js +112 -0
  180. package/src/controller-ui.js +620 -0
  181. package/src/data-plane.js +179 -0
  182. package/src/event-bus.js +397 -0
  183. package/src/external/conflict-controller.js +225 -0
  184. package/src/external/github/auth.js +96 -0
  185. package/src/external/github/cicd.js +180 -0
  186. package/src/external/github/git-forge.js +240 -0
  187. package/src/external/github/index.js +144 -0
  188. package/src/external/github/issue-tracking.js +163 -0
  189. package/src/external/provider-adapter.js +161 -0
  190. package/src/external/provider-resource-factory.js +221 -0
  191. package/src/external/sync-controller.js +235 -0
  192. package/src/external/webhook-controller.js +144 -0
  193. package/src/external/write-controller.js +283 -0
  194. package/src/gitea-backend.js +131 -0
  195. package/src/gitea-service.js +173 -0
  196. package/src/handoff.js +98 -0
  197. package/src/health-probes.js +134 -0
  198. package/src/hooks-events.js +63 -0
  199. package/src/hooks-lifecycle.js +117 -0
  200. package/src/http-server.js +409 -0
  201. package/src/identity-policy.js +86 -0
  202. package/src/index.js +71 -0
  203. package/src/jitsi-agent-bridge.js +141 -0
  204. package/src/jitsi-meeting-controller.js +291 -0
  205. package/src/jitsi-sync-controller.js +198 -0
  206. package/src/kradle-inference-service-controller.js +246 -0
  207. package/src/kubernetes-controller-async.js +531 -0
  208. package/src/kubernetes-controller.js +904 -0
  209. package/src/kubernetes-resource-gateway.js +48 -0
  210. package/src/model-route-controller.js +364 -0
  211. package/src/notification-controller.js +178 -0
  212. package/src/operations.js +112 -0
  213. package/src/org-scoping.js +5 -0
  214. package/src/resource-model.js +282 -0
  215. package/src/runner-controller.js +272 -0
  216. package/src/runners-ci.js +48 -0
  217. package/src/runtime.js +196 -0
  218. package/src/snapshot-cache.js +157 -0
  219. package/src/virtual-model-controller.js +538 -0
  220. package/src/virtual-model-hook-bridge.js +200 -0
  221. package/src/web-ui.js +40 -0
  222. package/tests/agent-adapter-controller.test.js +361 -0
  223. package/tests/agent-approval-controller.test.js +173 -0
  224. package/tests/agent-context-bundles.test.js +278 -0
  225. package/tests/agent-dispatch-controller.test.js +679 -0
  226. package/tests/agent-gateway-config-controller.test.js +386 -0
  227. package/tests/agent-identity-migration.test.js +87 -0
  228. package/tests/agent-memory-controller.test.js +461 -0
  229. package/tests/agent-memory-import-snapshot.test.js +477 -0
  230. package/tests/agent-memory-query.test.js +404 -0
  231. package/tests/agent-memory-repository-source.test.js +514 -0
  232. package/tests/agent-mux-client.test.js +389 -0
  233. package/tests/agent-mux-integration.test.js +971 -0
  234. package/tests/agent-permission-review-v2.test.js +317 -0
  235. package/tests/agent-permission-review.test.js +209 -0
  236. package/tests/agent-persona-controller.test.js +127 -0
  237. package/tests/agent-project-controller.test.js +302 -0
  238. package/tests/agent-prompt-composition.test.js +76 -0
  239. package/tests/agent-provider-config-controller.test.js +376 -0
  240. package/tests/agent-resources.test.js +303 -0
  241. package/tests/agent-secret-config-grant.test.js +231 -0
  242. package/tests/agent-session-transcript-controller.test.js +499 -0
  243. package/tests/agent-stack-controller.test.js +283 -0
  244. package/tests/agent-subagent-controller.test.js +201 -0
  245. package/tests/agent-transport-binding-controller.test.js +294 -0
  246. package/tests/agent-trigger-controller.test.js +271 -0
  247. package/tests/agent-trigger-routes.test.js +190 -0
  248. package/tests/agent-trigger-sources.test.js +245 -0
  249. package/tests/agent-workspace-controller.test.js +181 -0
  250. package/tests/agent-writeback.test.js +292 -0
  251. package/tests/approval-persistence.test.js +171 -0
  252. package/tests/artifact-registry.test.js +511 -0
  253. package/tests/assistant-runtime.test.js +506 -0
  254. package/tests/async-controller.test.js +252 -0
  255. package/tests/audit-controller.test.js +227 -0
  256. package/tests/codespace-controller.test.js +318 -0
  257. package/tests/controller-client.test.js +133 -0
  258. package/tests/deployment.test.js +527 -0
  259. package/tests/e2e/lifecycle.test.js +120 -0
  260. package/tests/event-bus-integration.test.js +355 -0
  261. package/tests/external-github-forge.test.js +560 -0
  262. package/tests/external-github-issues-cicd.test.js +520 -0
  263. package/tests/external-integration.test.js +470 -0
  264. package/tests/external-persistence.test.js +415 -0
  265. package/tests/external-provider-adapter.test.js +365 -0
  266. package/tests/external-resource-model.test.js +223 -0
  267. package/tests/external-webhook-sync.test.js +287 -0
  268. package/tests/external-write-conflict.test.js +353 -0
  269. package/tests/gitea-service.test.js +253 -0
  270. package/tests/health-check-real.test.js +165 -0
  271. package/tests/health-probes.test.js +90 -0
  272. package/tests/hooks-lifecycle.test.js +364 -0
  273. package/tests/integration/full-flow.test.js +266 -0
  274. package/tests/jitsi-agent-bridge.test.js +119 -0
  275. package/tests/jitsi-helm-integration.test.js +77 -0
  276. package/tests/jitsi-meeting-controller.test.js +170 -0
  277. package/tests/jitsi-resource-model.test.js +73 -0
  278. package/tests/jitsi-sync-controller.test.js +112 -0
  279. package/tests/kradle-inference-service.test.js +689 -0
  280. package/tests/kradle.test.js +779 -0
  281. package/tests/memory-search-wiring.test.js +270 -0
  282. package/tests/model-route-controller.test.js +733 -0
  283. package/tests/notification-controller.test.js +196 -0
  284. package/tests/notification-integration.test.js +179 -0
  285. package/tests/org-scoping.test.js +687 -0
  286. package/tests/runner-controller.test.js +327 -0
  287. package/tests/runner-integration.test.js +231 -0
  288. package/tests/session-cookie-hmac.test.js +151 -0
  289. package/tests/snapshot-performance.test.js +315 -0
  290. package/tests/sse-events.test.js +107 -0
  291. package/tests/virtual-model-controller.test.js +877 -0
  292. package/tests/virtual-model-hook-bridge.test.js +384 -0
  293. package/tests/webhook-trigger.test.js +198 -0
  294. package/tests/workspace-volumes.test.js +312 -0
  295. package/tests/writeback-persistence.test.js +207 -0
@@ -0,0 +1,724 @@
1
+ {
2
+ "project": "Kradle",
3
+ "description": "Kubernetes-native forge runtime with Argo CD and Kradle-managed repository hosting",
4
+ "package": {
5
+ "name": "@a5c-ai/kradle",
6
+ "version": "5.0.1-staging.3abdf9534c25",
7
+ "private": true
8
+ },
9
+ "entrypoints": {
10
+ "library": "./src/index.js",
11
+ "cli": "./bin/kradle-demo.mjs",
12
+ "runtimeServer": "./bin/kradle-server.mjs",
13
+ "webPreview": "./public/index.html",
14
+ "nextUi": "./apps/web",
15
+ "generatedSummary": "./dist/kradle-summary.json",
16
+ "lifecycleSnapshot": "./dist/kradle-lifecycle.json",
17
+ "helmChart": "./charts/kradle",
18
+ "minikubeSetup": "./scripts/setup-minikube.mjs"
19
+ },
20
+ "commands": {
21
+ "build": "npm run build",
22
+ "demo": "npm run demo",
23
+ "serve": "npm run serve",
24
+ "check": "npm run check",
25
+ "test": "npm test",
26
+ "smoke": "npm run smoke",
27
+ "validateDocs": "npm run validate:docs",
28
+ "e2e": "npm run e2e",
29
+ "packageCheck": "npm run package:check",
30
+ "setupMinikube": "npm run setup:minikube -- --dry-run",
31
+ "dev": "npm run dev",
32
+ "uiBuild": "npm run ui:build",
33
+ "uiValidate": "npm run ui:validate"
34
+ },
35
+ "docs": [
36
+ "docs/README.md",
37
+ "docs/product-requirements.md",
38
+ "docs/system-requirements.md",
39
+ "docs/architecture-spec.md",
40
+ "docs/user-stories.md",
41
+ "docs/roadmap-mvp.md",
42
+ "docs/local-minikube.md",
43
+ "docs/install.md",
44
+ "docs/ontology/README.md"
45
+ ],
46
+ "components": [
47
+ {
48
+ "id": "control-plane",
49
+ "title": "Control Plane",
50
+ "area": "api",
51
+ "resources": [
52
+ "Repository",
53
+ "BranchProtection",
54
+ "RefPolicy"
55
+ ],
56
+ "evidence": [
57
+ "src/control-plane.js",
58
+ "charts/kradle/crds"
59
+ ],
60
+ "implemented": true,
61
+ "resourceCount": 3,
62
+ "docs": "docs/components/control-plane.md"
63
+ },
64
+ {
65
+ "id": "data-plane",
66
+ "title": "Repository Data Plane",
67
+ "area": "git",
68
+ "resources": [
69
+ "Repository"
70
+ ],
71
+ "evidence": [
72
+ "src/data-plane.js",
73
+ "src/gitea-backend.js",
74
+ "charts/kradle/templates/gitea.yaml"
75
+ ],
76
+ "implemented": true,
77
+ "resourceCount": 1,
78
+ "docs": "docs/components/data-plane.md"
79
+ },
80
+ {
81
+ "id": "identity-policy",
82
+ "title": "Identity, RBAC, and Policy",
83
+ "area": "security",
84
+ "resources": [
85
+ "BranchProtection",
86
+ "RefPolicy"
87
+ ],
88
+ "evidence": [
89
+ "src/identity-policy.js",
90
+ "examples/policy-kyverno-pr-title.yaml"
91
+ ],
92
+ "implemented": true,
93
+ "resourceCount": 2,
94
+ "docs": "docs/components/identity-policy.md"
95
+ },
96
+ {
97
+ "id": "runners-ci",
98
+ "title": "Runners and CI",
99
+ "area": "automation",
100
+ "resources": [
101
+ "RunnerPool",
102
+ "Pipeline",
103
+ "Job"
104
+ ],
105
+ "evidence": [
106
+ "src/runners-ci.js",
107
+ "docs/components/runners-ci.md"
108
+ ],
109
+ "implemented": true,
110
+ "resourceCount": 3,
111
+ "docs": "docs/components/runners-ci.md"
112
+ },
113
+ {
114
+ "id": "hooks-events",
115
+ "title": "Hooks and Events",
116
+ "area": "integrations",
117
+ "resources": [
118
+ "WebhookSubscription",
119
+ "WebhookDelivery"
120
+ ],
121
+ "evidence": [
122
+ "src/hooks-events.js",
123
+ "docs/components/hooks-events.md"
124
+ ],
125
+ "implemented": true,
126
+ "resourceCount": 2,
127
+ "docs": "docs/components/hooks-events.md"
128
+ },
129
+ {
130
+ "id": "operations-publishing",
131
+ "title": "Operations and Publishing",
132
+ "area": "release",
133
+ "resources": [
134
+ "APIService",
135
+ "Deployment"
136
+ ],
137
+ "evidence": [
138
+ "src/operations.js",
139
+ "charts/kradle",
140
+ "scripts/setup-minikube.mjs"
141
+ ],
142
+ "implemented": true,
143
+ "resourceCount": 0,
144
+ "docs": "docs/components/operations-publishing.md"
145
+ },
146
+ {
147
+ "id": "web-ui",
148
+ "title": "Web UI",
149
+ "area": "experience",
150
+ "resources": [
151
+ "View"
152
+ ],
153
+ "evidence": [
154
+ "src/web-ui.js",
155
+ "public/index.html"
156
+ ],
157
+ "implemented": true,
158
+ "resourceCount": 1,
159
+ "docs": "docs/components/web-ui.md"
160
+ }
161
+ ],
162
+ "lifecycle": {
163
+ "project": "Kradle",
164
+ "version": "0.1.0",
165
+ "generatedAt": "2026-06-03T15:39:44.035Z",
166
+ "status": "ready-for-local-development",
167
+ "components": [
168
+ {
169
+ "id": "control-plane",
170
+ "title": "Control Plane",
171
+ "area": "api",
172
+ "resources": [
173
+ "Repository",
174
+ "BranchProtection",
175
+ "RefPolicy"
176
+ ],
177
+ "evidence": [
178
+ "src/control-plane.js",
179
+ "charts/kradle/crds"
180
+ ],
181
+ "implemented": true,
182
+ "resourceCount": 3,
183
+ "docs": "docs/components/control-plane.md"
184
+ },
185
+ {
186
+ "id": "data-plane",
187
+ "title": "Repository Data Plane",
188
+ "area": "git",
189
+ "resources": [
190
+ "Repository"
191
+ ],
192
+ "evidence": [
193
+ "src/data-plane.js",
194
+ "src/gitea-backend.js",
195
+ "charts/kradle/templates/gitea.yaml"
196
+ ],
197
+ "implemented": true,
198
+ "resourceCount": 1,
199
+ "docs": "docs/components/data-plane.md"
200
+ },
201
+ {
202
+ "id": "identity-policy",
203
+ "title": "Identity, RBAC, and Policy",
204
+ "area": "security",
205
+ "resources": [
206
+ "BranchProtection",
207
+ "RefPolicy"
208
+ ],
209
+ "evidence": [
210
+ "src/identity-policy.js",
211
+ "examples/policy-kyverno-pr-title.yaml"
212
+ ],
213
+ "implemented": true,
214
+ "resourceCount": 2,
215
+ "docs": "docs/components/identity-policy.md"
216
+ },
217
+ {
218
+ "id": "runners-ci",
219
+ "title": "Runners and CI",
220
+ "area": "automation",
221
+ "resources": [
222
+ "RunnerPool",
223
+ "Pipeline",
224
+ "Job"
225
+ ],
226
+ "evidence": [
227
+ "src/runners-ci.js",
228
+ "docs/components/runners-ci.md"
229
+ ],
230
+ "implemented": true,
231
+ "resourceCount": 3,
232
+ "docs": "docs/components/runners-ci.md"
233
+ },
234
+ {
235
+ "id": "hooks-events",
236
+ "title": "Hooks and Events",
237
+ "area": "integrations",
238
+ "resources": [
239
+ "WebhookSubscription",
240
+ "WebhookDelivery"
241
+ ],
242
+ "evidence": [
243
+ "src/hooks-events.js",
244
+ "docs/components/hooks-events.md"
245
+ ],
246
+ "implemented": true,
247
+ "resourceCount": 2,
248
+ "docs": "docs/components/hooks-events.md"
249
+ },
250
+ {
251
+ "id": "operations-publishing",
252
+ "title": "Operations and Publishing",
253
+ "area": "release",
254
+ "resources": [
255
+ "APIService",
256
+ "Deployment"
257
+ ],
258
+ "evidence": [
259
+ "src/operations.js",
260
+ "charts/kradle",
261
+ "scripts/setup-minikube.mjs"
262
+ ],
263
+ "implemented": true,
264
+ "resourceCount": 0,
265
+ "docs": "docs/components/operations-publishing.md"
266
+ },
267
+ {
268
+ "id": "web-ui",
269
+ "title": "Web UI",
270
+ "area": "experience",
271
+ "resources": [
272
+ "View"
273
+ ],
274
+ "evidence": [
275
+ "src/web-ui.js",
276
+ "public/index.html"
277
+ ],
278
+ "implemented": true,
279
+ "resourceCount": 1,
280
+ "docs": "docs/components/web-ui.md"
281
+ }
282
+ ],
283
+ "resources": {
284
+ "repository": "Repository",
285
+ "branchProtection": "BranchProtection",
286
+ "refPolicy": "RefPolicy",
287
+ "runnerPool": "RunnerPool",
288
+ "subscription": "WebhookSubscription",
289
+ "pullRequest": "PullRequest",
290
+ "pipelineRun": "Pipeline",
291
+ "delivery": "WebhookDelivery",
292
+ "replay": "WebhookDelivery",
293
+ "triageView": "View"
294
+ },
295
+ "storage": {
296
+ "etcd": [
297
+ "Repository",
298
+ "BranchProtection",
299
+ "RefPolicy",
300
+ "RunnerPool",
301
+ "WebhookSubscription",
302
+ "View"
303
+ ],
304
+ "postgres": [
305
+ "PullRequest",
306
+ "Pipeline",
307
+ "Job",
308
+ "Job",
309
+ "WebhookDelivery",
310
+ "WebhookDelivery"
311
+ ]
312
+ },
313
+ "flows": [
314
+ "Open and review a PR",
315
+ "Debug a failing run",
316
+ "Configure a runner pool",
317
+ "Add a webhook and verify it works",
318
+ "Write a PR policy with audit-to-enforce rollout",
319
+ "Cross-repo triage with saved filters"
320
+ ],
321
+ "operations": {
322
+ "chart": "charts/kradle",
323
+ "setup": "scripts/setup-minikube.mjs",
324
+ "releaseGates": [
325
+ "build",
326
+ "docs and ontology coverage",
327
+ "unit acceptance tests",
328
+ "e2e package lifecycle tests",
329
+ "package validation",
330
+ "minikube dry-run setup",
331
+ "smoke flow",
332
+ "backup restore validation",
333
+ "known limitations reviewed"
334
+ ],
335
+ "observability": {
336
+ "metrics": [
337
+ "api_request_latency",
338
+ "postgres_aggregate_lag",
339
+ "gitea_receive_pack_latency",
340
+ "runner_queue_depth",
341
+ "webhook_delivery_phase",
342
+ "admission_denials"
343
+ ],
344
+ "logs": [
345
+ "control-plane audit",
346
+ "gitea access",
347
+ "runner job",
348
+ "webhook dispatcher",
349
+ "controller reconcile"
350
+ ],
351
+ "alerts": [
352
+ "APIService unavailable",
353
+ "Postgres unavailable",
354
+ "repository service unavailable",
355
+ "runner saturation",
356
+ "webhook failure burst",
357
+ "backup validation failed"
358
+ ]
359
+ }
360
+ },
361
+ "validation": []
362
+ },
363
+ "resources": {
364
+ "repository": "Repository",
365
+ "branchProtection": "BranchProtection",
366
+ "refPolicy": "RefPolicy",
367
+ "runnerPool": "RunnerPool",
368
+ "subscription": "WebhookSubscription",
369
+ "pullRequest": "PullRequest",
370
+ "pipelineRun": "workflow",
371
+ "delivery": "WebhookDelivery",
372
+ "replay": "WebhookDelivery",
373
+ "triageView": "View"
374
+ },
375
+ "storage": {
376
+ "etcd": [
377
+ "Repository",
378
+ "BranchProtection",
379
+ "RefPolicy",
380
+ "RunnerPool",
381
+ "WebhookSubscription",
382
+ "View"
383
+ ],
384
+ "postgres": [
385
+ "PullRequest",
386
+ "Pipeline",
387
+ "Job",
388
+ "Job",
389
+ "WebhookDelivery",
390
+ "WebhookDelivery"
391
+ ]
392
+ },
393
+ "excellentFlows": [
394
+ "Open and review a PR",
395
+ "Debug a failing run",
396
+ "Configure a runner pool",
397
+ "Add a webhook and verify it works",
398
+ "Write a PR policy with audit-to-enforce rollout",
399
+ "Cross-repo triage with saved filters"
400
+ ],
401
+ "agents": null,
402
+ "operations": {
403
+ "chartPackage": {
404
+ "chart": "charts/kradle",
405
+ "values": "charts/kradle/values.yaml",
406
+ "crds": [
407
+ "Repository",
408
+ "BranchProtection",
409
+ "RefPolicy",
410
+ "RunnerPool",
411
+ "WebhookSubscription",
412
+ "View",
413
+ "Selector"
414
+ ],
415
+ "templates": [
416
+ "CRDs",
417
+ "optional APIService",
418
+ "ServiceAccount",
419
+ "ClusterRole",
420
+ "ClusterRoleBinding",
421
+ "Deployment",
422
+ "Service",
423
+ "NetworkPolicy",
424
+ "Gitea backend",
425
+ "Argo CD Application"
426
+ ],
427
+ "examples": [
428
+ "examples/minikube-demo.yaml",
429
+ "examples/policy-kyverno-pr-title.yaml"
430
+ ],
431
+ "validation": [
432
+ "npm run e2e",
433
+ "npm run package:check",
434
+ "npm run setup:minikube -- --dry-run"
435
+ ]
436
+ },
437
+ "localSetup": {
438
+ "script": "scripts/setup-minikube.mjs",
439
+ "defaultMode": "dry-run",
440
+ "applyMode": "npm run setup:minikube -- --apply",
441
+ "requiredTools": [
442
+ "minikube",
443
+ "kubectl",
444
+ "helm",
445
+ "node",
446
+ "npm"
447
+ ],
448
+ "defaultProfile": "kradle",
449
+ "namespace": "kradle-system"
450
+ }
451
+ },
452
+ "releaseGates": [
453
+ "build",
454
+ "docs and ontology coverage",
455
+ "unit acceptance tests",
456
+ "e2e package lifecycle tests",
457
+ "package validation",
458
+ "minikube dry-run setup",
459
+ "smoke flow",
460
+ "backup restore validation",
461
+ "known limitations reviewed"
462
+ ],
463
+ "smoke": {
464
+ "ok": true,
465
+ "assertions": []
466
+ },
467
+ "generatedAt": "2026-06-03T15:39:44.035Z",
468
+ "controller": {
469
+ "status": "degraded",
470
+ "namespace": "kradle-org-default",
471
+ "endpoints": [
472
+ {
473
+ "method": "GET",
474
+ "path": "/healthz",
475
+ "purpose": "container and load-balancer health"
476
+ },
477
+ {
478
+ "method": "GET",
479
+ "path": "/api/controller?org=:org",
480
+ "purpose": "live Kradle org model"
481
+ },
482
+ {
483
+ "method": "GET",
484
+ "path": "/api/orgs/:org/resources",
485
+ "purpose": "org-scoped Kradle resource listing"
486
+ },
487
+ {
488
+ "method": "POST",
489
+ "path": "/api/orgs/:org/resources",
490
+ "purpose": "org-scoped Kradle resource apply flow"
491
+ },
492
+ {
493
+ "method": "GET",
494
+ "path": "/api/orgs/:org/resources/:kind/:name",
495
+ "purpose": "org-scoped Kradle resource detail"
496
+ },
497
+ {
498
+ "method": "DELETE",
499
+ "path": "/api/orgs/:org/resources/:kind/:name",
500
+ "purpose": "org-scoped Kradle resource delete flow"
501
+ },
502
+ {
503
+ "method": "GET",
504
+ "path": "/api/orgs/:org/repositories",
505
+ "purpose": "list org repositories through Kradle"
506
+ },
507
+ {
508
+ "method": "POST",
509
+ "path": "/api/orgs/:org/repositories",
510
+ "purpose": "create org repositories through Kradle"
511
+ },
512
+ {
513
+ "method": "GET",
514
+ "path": "/api/orgs/:org/repositories/:name",
515
+ "purpose": "get org repository details through Kradle"
516
+ },
517
+ {
518
+ "method": "DELETE",
519
+ "path": "/api/orgs/:org/repositories/:name",
520
+ "purpose": "delete org repositories through Kradle"
521
+ },
522
+ {
523
+ "method": "GET",
524
+ "path": "/api/orgs/:org/policies",
525
+ "purpose": "list Kradle policy profiles, templates, bindings, Kyverno health, and exception requests"
526
+ },
527
+ {
528
+ "method": "POST",
529
+ "path": "/api/orgs/:org/policies",
530
+ "purpose": "create org policy bindings in audit or enforce mode"
531
+ },
532
+ {
533
+ "method": "GET",
534
+ "path": "/api/orgs/:org/policy-reports",
535
+ "purpose": "list normalized Kyverno policy report results"
536
+ },
537
+ {
538
+ "method": "GET",
539
+ "path": "/api/orgs/:org/policy-exception-requests",
540
+ "purpose": "list pending and approved Kradle policy exception requests"
541
+ },
542
+ {
543
+ "method": "POST",
544
+ "path": "/api/orgs/:org/policy-exception-requests",
545
+ "purpose": "request a temporary policy exception through Kradle"
546
+ },
547
+ {
548
+ "method": "GET",
549
+ "path": "/api/watch/orgs/:org/*",
550
+ "purpose": "org-scoped Kradle live event stream bridged to browser updates"
551
+ },
552
+ {
553
+ "method": "POST",
554
+ "path": "/api/git-proxy",
555
+ "purpose": "repository streaming proxy when configured"
556
+ },
557
+ {
558
+ "method": "GET",
559
+ "path": "/api/orgs/:org/agents/stacks",
560
+ "purpose": "list agent stacks and capability status"
561
+ },
562
+ {
563
+ "method": "GET",
564
+ "path": "/api/orgs/:org/agents/runs",
565
+ "purpose": "list agent dispatch runs with queue and status"
566
+ },
567
+ {
568
+ "method": "GET",
569
+ "path": "/api/orgs/:org/agents/rules",
570
+ "purpose": "list trigger rules and delivery status"
571
+ },
572
+ {
573
+ "method": "GET",
574
+ "path": "/api/orgs/:org/agents/sessions",
575
+ "purpose": "list agent sessions with lifecycle state"
576
+ },
577
+ {
578
+ "method": "GET",
579
+ "path": "/api/orgs/:org/agents/workspaces",
580
+ "purpose": "list agent workspaces with lifecycle state"
581
+ },
582
+ {
583
+ "method": "GET",
584
+ "path": "/api/orgs/:org/agents/approvals",
585
+ "purpose": "list pending and resolved agent approvals"
586
+ },
587
+ {
588
+ "method": "GET",
589
+ "path": "/api/orgs/:org/agents/permissions/review",
590
+ "purpose": "explainable permission check for agent dispatch"
591
+ },
592
+ {
593
+ "method": "GET",
594
+ "path": "/api/orgs/:org/agents/adapters",
595
+ "purpose": "list agent adapters and transport bindings"
596
+ },
597
+ {
598
+ "method": "GET",
599
+ "path": "/api/orgs/:org/agents/providers",
600
+ "purpose": "list model provider configurations"
601
+ },
602
+ {
603
+ "method": "GET",
604
+ "path": "/api/orgs/:org/agents/projects",
605
+ "purpose": "list agent projects with board config"
606
+ },
607
+ {
608
+ "method": "POST",
609
+ "path": "/api/orgs/:org/agents/dispatch",
610
+ "purpose": "create manual agent dispatch run"
611
+ },
612
+ {
613
+ "method": "POST",
614
+ "path": "/api/orgs/:org/agents/approvals/:name/decide",
615
+ "purpose": "approve or deny a pending agent approval request"
616
+ },
617
+ {
618
+ "method": "POST",
619
+ "path": "/api/orgs/:org/agents/triggers/process",
620
+ "purpose": "evaluate an event against trigger rules and dispatch matching agents"
621
+ },
622
+ {
623
+ "method": "POST",
624
+ "path": "/api/orgs/:org/agents/workspaces",
625
+ "purpose": "provision a new agent workspace with worktree and runtime"
626
+ },
627
+ {
628
+ "method": "POST",
629
+ "path": "/api/orgs/:org/agents/workspaces/:name/archive",
630
+ "purpose": "archive an agent workspace and mark it for cleanup"
631
+ },
632
+ {
633
+ "method": "POST",
634
+ "path": "/api/orgs/:org/agents/workspaces/:name/link",
635
+ "purpose": "link a work item to an agent workspace"
636
+ },
637
+ {
638
+ "method": "POST",
639
+ "path": "/api/orgs/:org/agents/memory/query",
640
+ "purpose": "query Company Brain memory with graph and grep search"
641
+ },
642
+ {
643
+ "method": "POST",
644
+ "path": "/api/orgs/:org/agents/memory/imports",
645
+ "purpose": "create a memory import from a babysitter run"
646
+ },
647
+ {
648
+ "method": "GET",
649
+ "path": "/api/orgs/:org/agents/memory/snapshots",
650
+ "purpose": "list memory snapshots for an organization"
651
+ },
652
+ {
653
+ "method": "GET",
654
+ "path": "/api/orgs/:org/agents/memory/repositories",
655
+ "purpose": "list memory repositories for an organization"
656
+ }
657
+ ],
658
+ "metrics": {
659
+ "components": 8,
660
+ "resources": 11,
661
+ "events": 11,
662
+ "auditEntries": 0,
663
+ "users": 1,
664
+ "teams": 1,
665
+ "invites": 1,
666
+ "repositories": 1,
667
+ "pullRequests": 0,
668
+ "issues": 0,
669
+ "projects": 0,
670
+ "pipelines": 0,
671
+ "jobs": 0,
672
+ "runnerPools": 1,
673
+ "webhookDeliveries": 0,
674
+ "policyViolations": 0,
675
+ "policyBindings": 0,
676
+ "deployments": 0,
677
+ "releases": 0,
678
+ "agentStacks": 0,
679
+ "agentRuns": 0,
680
+ "agentSessions": 0,
681
+ "greenChecks": 5,
682
+ "totalChecks": 6
683
+ },
684
+ "operations": {
685
+ "image": "ghcr.io/<owner>/<repo>/kradle-controller",
686
+ "chart": "charts/kradle",
687
+ "installCommands": [
688
+ "Install Kradle release package",
689
+ "Apply the demo workspace configuration"
690
+ ],
691
+ "releaseGates": [
692
+ "npm run check",
693
+ "docker build",
694
+ "helm package charts/kradle",
695
+ "npm pack --json"
696
+ ]
697
+ }
698
+ },
699
+ "runtime": {
700
+ "resources": {
701
+ "Organization": 0,
702
+ "User": 1,
703
+ "Team": 1,
704
+ "Invite": 1,
705
+ "IdentityMapping": 1,
706
+ "AuthProvider": 2,
707
+ "Repository": 1,
708
+ "SSHKey": 0,
709
+ "RepositoryPermission": 0,
710
+ "BranchProtection": 1,
711
+ "RefPolicy": 1,
712
+ "RunnerPool": 1,
713
+ "PullRequest": 0,
714
+ "Issue": 0,
715
+ "Review": 0,
716
+ "Pipeline": 0,
717
+ "Job": 0,
718
+ "WebhookSubscription": 1,
719
+ "WebhookDelivery": 0
720
+ },
721
+ "events": 11,
722
+ "auditEntries": 11
723
+ }
724
+ }