{
  "product": "Kradle",
  "status": "degraded",
  "namespace": "kradle-org-default",
  "platformNamespace": "kradle-org-default",
  "org": {
    "name": "default",
    "slug": "default",
    "displayName": "default",
    "namespace": "kradle-org-default",
    "platformNamespace": "kradle-org-default",
    "synthesized": true
  },
  "orgs": [
    {
      "name": "default",
      "slug": "default",
      "displayName": "default",
      "namespace": "kradle-org-default",
      "platformNamespace": "kradle-org-default",
      "synthesized": true
    }
  ],
  "generatedAt": "2026-08-10T20:00:41.985Z",
  "correlationId": null,
  "controller": {
    "mode": "kradle-workspace",
    "endpoints": [
      {
        "method": "GET",
        "path": "/healthz",
        "purpose": "container and load-balancer health"
      },
      {
        "method": "GET",
        "path": "/api/controller?org=:org",
        "purpose": "live Kradle org model"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/resources",
        "purpose": "org-scoped Kradle resource listing"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/resources",
        "purpose": "org-scoped Kradle resource apply flow"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/resources/:kind/:name",
        "purpose": "org-scoped Kradle resource detail"
      },
      {
        "method": "DELETE",
        "path": "/api/orgs/:org/resources/:kind/:name",
        "purpose": "org-scoped Kradle resource delete flow"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/repositories",
        "purpose": "list org repositories through Kradle"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/repositories",
        "purpose": "create org repositories through Kradle"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/repositories/:name",
        "purpose": "get org repository details through Kradle"
      },
      {
        "method": "DELETE",
        "path": "/api/orgs/:org/repositories/:name",
        "purpose": "delete org repositories through Kradle"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/policies",
        "purpose": "list Kradle policy profiles, templates, bindings, Kyverno health, and exception requests"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/policies",
        "purpose": "create org policy bindings in audit or enforce mode"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/policy-reports",
        "purpose": "list normalized Kyverno policy report results"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/policy-exception-requests",
        "purpose": "list pending and approved Kradle policy exception requests"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/policy-exception-requests",
        "purpose": "request a temporary policy exception through Kradle"
      },
      {
        "method": "GET",
        "path": "/api/watch/orgs/:org/*",
        "purpose": "org-scoped Kradle live event stream bridged to browser updates"
      },
      {
        "method": "POST",
        "path": "/api/git-proxy",
        "purpose": "repository streaming proxy when configured"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/stacks",
        "purpose": "list agent stacks and capability status"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/runs",
        "purpose": "list agent dispatch runs with queue and status"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/rules",
        "purpose": "list trigger rules and delivery status"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/sessions",
        "purpose": "list agent sessions with lifecycle state"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/workspaces",
        "purpose": "list agent workspaces with lifecycle state"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/approvals",
        "purpose": "list pending and resolved agent approvals"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/permissions/review",
        "purpose": "explainable permission check for agent dispatch"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/adapters",
        "purpose": "list agent adapters and transport bindings"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/providers",
        "purpose": "list model provider configurations"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/projects",
        "purpose": "list agent projects with board config"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/agents/dispatch",
        "purpose": "create manual agent dispatch run"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/agents/approvals/:name/decide",
        "purpose": "approve or deny a pending agent approval request"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/agents/triggers/process",
        "purpose": "evaluate an event against trigger rules and dispatch matching agents"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/agents/workspaces",
        "purpose": "provision a new agent workspace with worktree and runtime"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/agents/workspaces/:name/archive",
        "purpose": "archive an agent workspace and mark it for cleanup"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/agents/workspaces/:name/link",
        "purpose": "link a work item to an agent workspace"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/agents/memory/query",
        "purpose": "query Company Brain memory with graph and grep search"
      },
      {
        "method": "POST",
        "path": "/api/orgs/:org/agents/memory/imports",
        "purpose": "create a memory import from a babysitter run"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/memory/snapshots",
        "purpose": "list memory snapshots for an organization"
      },
      {
        "method": "GET",
        "path": "/api/orgs/:org/agents/memory/repositories",
        "purpose": "list memory repositories for an organization"
      }
    ],
    "architecture": {
      "apiController": {
        "role": "kradle-api-controller",
        "scope": "HTTP route orchestration, request validation, API errors, and workflow affordances; never owns delivery reconciliation loops",
        "owns": [
          "/api/controller",
          "/api/orgs/:org/resources",
          "/api/orgs/:org/repositories",
          "/api/watch/orgs/:org/*"
        ],
        "delegatesTo": [
          "kradle-resource-gateway",
          "repository-service"
        ]
      },
      "resourceGateway": {
        "role": "kradle-resource-gateway",
        "scope": "Narrow application port translating API controller intent into Kradle resource-client calls",
        "namespace": "kradle-org-default",
        "delegatesTo": [
          "kradle-resource-client"
        ]
      },
      "resourceClient": {
        "role": "kradle-resource-client",
        "scope": "Kradle resource operations and live streams; no UI flow ownership",
        "namespace": "kradle-org-default",
        "owns": [
          "Kradle resources",
          "aggregated API resources"
        ]
      },
      "deliveryReconciler": {
        "role": "kradle-delivery-reconciler",
        "scope": "Repository status projection, repository hosting intent, policy projection, and data-plane sync intent; never owns HTTP routes or browser flows",
        "namespace": "kradle-org-default",
        "delegatesTo": [
          "kradle-resource-gateway",
          "repository-service"
        ]
      },
      "repositoryService": {
        "role": "repository-service",
        "scope": "repository streaming and SSH hosting, object storage, and search indexing",
        "boundary": "repository service not configured"
      }
    },
    "storage": {
      "etcd": [
        "Repository",
        "BranchProtection",
        "RefPolicy",
        "RunnerPool",
        "WebhookSubscription",
        "Team",
        "User",
        "IdentityMapping",
        "Invite",
        "AuthProvider",
        "AuthProvider"
      ],
      "postgres": []
    },
    "connection": {
      "available": false,
      "context": null,
      "errors": [
        "runtime snapshot supplied outside the Kradle workspace path"
      ]
    },
    "apiService": null,
    "commands": []
  },
  "metrics": {
    "components": 8,
    "resources": 11,
    "events": 11,
    "auditEntries": 0,
    "users": 1,
    "teams": 1,
    "invites": 1,
    "repositories": 1,
    "pullRequests": 0,
    "issues": 0,
    "projects": 0,
    "pipelines": 0,
    "jobs": 0,
    "runnerPools": 1,
    "webhookDeliveries": 0,
    "policyViolations": 0,
    "policyBindings": 0,
    "deployments": 0,
    "releases": 0,
    "agentStacks": 0,
    "agentRuns": 0,
    "agentSessions": 0,
    "greenChecks": 5,
    "totalChecks": 6
  },
  "components": [
    {
      "id": "identity-access",
      "title": "Identity and access",
      "area": "identity",
      "resources": [
        "User",
        "Team",
        "Invite",
        "IdentityMapping",
        "AuthProvider"
      ],
      "docs": "src/auth.js"
    },
    {
      "id": "api-controller",
      "title": "Kradle API controller",
      "area": "api",
      "resources": [
        "Repository",
        "KradleProject",
        "PullRequest",
        "Issue",
        "Pipeline"
      ],
      "docs": "src/api-controller.js"
    },
    {
      "id": "kradle-resource-client",
      "title": "Kradle resource client",
      "area": "control-plane",
      "resources": [
        "Repository",
        "BranchProtection",
        "RefPolicy"
      ],
      "docs": "src/kubernetes-controller.js"
    },
    {
      "id": "repository-service",
      "title": "Repository service",
      "area": "data-plane",
      "resources": [
        "Repository",
        "BranchProtection",
        "RefPolicy"
      ],
      "docs": "src/data-plane.js"
    },
    {
      "id": "runners-ci",
      "title": "Runner scheduler",
      "area": "ci",
      "resources": [
        "RunnerPool",
        "Pipeline",
        "Job"
      ],
      "docs": "src/kubernetes-controller.js"
    },
    {
      "id": "hooks-events",
      "title": "Webhook bus",
      "area": "events",
      "resources": [
        "WebhookSubscription",
        "WebhookDelivery"
      ],
      "docs": "src/kubernetes-controller.js"
    },
    {
      "id": "policy-engine",
      "title": "Kyverno policy engine",
      "area": "policy",
      "resources": [
        "PolicyProfile",
        "PolicyTemplate",
        "PolicyBinding",
        "PolicyExceptionRequest"
      ],
      "docs": "docs/todo-kyverno"
    },
    {
      "id": "agent-orchestration",
      "title": "Agent orchestration",
      "area": "agents",
      "resources": [
        "AgentStack",
        "AgentDispatchRun",
        "AgentTriggerRule",
        "AgentSession",
        "KradleWorkspace",
        "AgentApproval",
        "AgentAdapter",
        "AgentProviderConfig",
        "KradleProject"
      ],
      "docs": "docs/agents/"
    }
  ],
  "resources": [
    {
      "kind": "Organization",
      "plural": "organizations",
      "apiResource": "organizations.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open Organization records in kradle-org-default",
        "watch": "Watch Organization updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Organization in kradle-org-default"
      }
    },
    {
      "kind": "OrgNamespaceBinding",
      "plural": "orgnamespacebindings",
      "apiResource": "orgnamespacebindings.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open OrgNamespaceBinding records in kradle-org-default",
        "watch": "Watch OrgNamespaceBinding updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete OrgNamespaceBinding in kradle-org-default"
      }
    },
    {
      "kind": "User",
      "plural": "users",
      "apiResource": "users.kradle.a5c.ai",
      "count": 1,
      "names": [
        "admin"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "User",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {
              "role": "admin"
            },
            "annotations": {},
            "name": "admin",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "displayName": "Admin",
            "email": "admin@example.com",
            "username": "admin",
            "teams": [
              "maintainers"
            ],
            "admin": true,
            "disabled": false
          },
          "status": {
            "phase": "Active",
            "lastLoginProvider": "sso",
            "groups": [
              "system:authenticated",
              "kradle:users",
              "kradle:platform-engineers"
            ],
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Active": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: User\nmetadata:\n  namespace: kradle-org-default\n  labels:\n    role: admin\n  annotations:\n  name: admin\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  displayName: Admin\n  email: admin@example.com\n  username: admin\n  teams:\n    - maintainers\n  admin: true\n  disabled: false\nstatus:\n  phase: Active\n  lastLoginProvider: sso\n  groups:\n    - system:authenticated\n    - kradle:users\n    - kradle:platform-engineers\n  storage: etcd\n",
      "action": {
        "list": "Open User records in kradle-org-default",
        "watch": "Watch User updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete User in kradle-org-default"
      }
    },
    {
      "kind": "Team",
      "plural": "teams",
      "apiResource": "teams.kradle.a5c.ai",
      "count": 1,
      "names": [
        "maintainers"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "Team",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {},
            "annotations": {},
            "name": "maintainers",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "displayName": "Maintainers",
            "members": [
              "admin"
            ],
            "maintainers": [
              "admin"
            ],
            "repositoryGrants": [
              {
                "repository": "kradle-demo",
                "permission": "admin"
              }
            ]
          },
          "status": {
            "phase": "Active",
            "memberCount": 1,
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Active": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: Team\nmetadata:\n  namespace: kradle-org-default\n  labels:\n  annotations:\n  name: maintainers\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  displayName: Maintainers\n  members:\n    - admin\n  maintainers:\n    - admin\n  repositoryGrants:\n    - repository: kradle-demo\n      permission: admin\nstatus:\n  phase: Active\n  memberCount: 1\n  storage: etcd\n",
      "action": {
        "list": "Open Team records in kradle-org-default",
        "watch": "Watch Team updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Team in kradle-org-default"
      }
    },
    {
      "kind": "Invite",
      "plural": "invites",
      "apiResource": "invites.kradle.a5c.ai",
      "count": 1,
      "names": [
        "new-user-example-com"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "Invite",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {
              "role": "member"
            },
            "annotations": {},
            "name": "new-user-example-com",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "email": "new-user@example.com",
            "role": "member",
            "teams": [
              "maintainers"
            ],
            "invitedBy": "admin",
            "expiresAt": "2026-08-17T20:00:41.981Z"
          },
          "status": {
            "phase": "Pending",
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Pending": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: Invite\nmetadata:\n  namespace: kradle-org-default\n  labels:\n    role: member\n  annotations:\n  name: new-user-example-com\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  email: new-user@example.com\n  role: member\n  teams:\n    - maintainers\n  invitedBy: admin\n  expiresAt: 2026-08-17T20:00:41.981Z\nstatus:\n  phase: Pending\n  storage: etcd\n",
      "action": {
        "list": "Open Invite records in kradle-org-default",
        "watch": "Watch Invite updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Invite in kradle-org-default"
      }
    },
    {
      "kind": "IdentityMapping",
      "plural": "identitymappings",
      "apiResource": "identitymappings.kradle.a5c.ai",
      "count": 1,
      "names": [
        "sso-admin"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "IdentityMapping",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {},
            "annotations": {},
            "name": "sso-admin",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "user": "admin",
            "provider": "sso",
            "subject": "user:admin",
            "email": "admin@example.com",
            "workspaceIdentity": {
              "name": "admin@example.com",
              "uid": "user:admin",
              "groups": [
                "system:authenticated",
                "kradle:users",
                "kradle:platform-engineers"
              ]
            },
            "repositoryIdentity": {
              "username": "admin",
              "email": "admin@example.com"
            }
          },
          "status": {
            "phase": "Synced",
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Synced": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: IdentityMapping\nmetadata:\n  namespace: kradle-org-default\n  labels:\n  annotations:\n  name: sso-admin\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  user: admin\n  provider: sso\n  subject: user:admin\n  email: admin@example.com\n  workspaceIdentity:\n    name: admin@example.com\n    uid: user:admin\n    groups:\n      - system:authenticated\n      - kradle:users\n      - kradle:platform-engineers\n  repositoryIdentity:\n    username: admin\n    email: admin@example.com\nstatus:\n  phase: Synced\n  storage: etcd\n",
      "action": {
        "list": "Open IdentityMapping records in kradle-org-default",
        "watch": "Watch IdentityMapping updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete IdentityMapping in kradle-org-default"
      }
    },
    {
      "kind": "AuthProvider",
      "plural": "authproviders",
      "apiResource": "authproviders.kradle.a5c.ai",
      "count": 2,
      "names": [
        "github",
        "sso"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "AuthProvider",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {},
            "annotations": {},
            "name": "github",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "type": "github",
            "label": "GitHub",
            "enabled": true,
            "scopes": "read:user user:email",
            "delegatedIdentity": {
              "enabled": false,
              "userHeader": "x-forwarded-user",
              "groupsHeader": "x-forwarded-groups",
              "emailHeader": "x-forwarded-email",
              "localDevelopment": {
                "enabled": true,
                "user": "local-developer",
                "email": "",
                "groups": "kradle:repo-admins"
              }
            }
          },
          "status": {
            "phase": "Configured",
            "clientConfigured": false,
            "storage": "etcd"
          }
        },
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "AuthProvider",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {},
            "annotations": {},
            "name": "sso",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "type": "oidc",
            "label": "Workspace SSO",
            "enabled": false,
            "scopes": "openid profile email groups",
            "delegatedIdentity": {
              "enabled": false,
              "userHeader": "x-forwarded-user",
              "groupsHeader": "x-forwarded-groups",
              "emailHeader": "x-forwarded-email",
              "localDevelopment": {
                "enabled": true,
                "user": "local-developer",
                "email": "",
                "groups": "kradle:repo-admins"
              }
            }
          },
          "status": {
            "phase": "Disabled",
            "clientConfigured": false,
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Configured": 1,
        "Disabled": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: AuthProvider\nmetadata:\n  namespace: kradle-org-default\n  labels:\n  annotations:\n  name: github\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  type: github\n  label: GitHub\n  enabled: true\n  scopes: read:user user:email\n  delegatedIdentity:\n    enabled: false\n    userHeader: x-forwarded-user\n    groupsHeader: x-forwarded-groups\n    emailHeader: x-forwarded-email\n    localDevelopment:\n      enabled: true\n      user: local-developer\n      email: \n      groups: kradle:repo-admins\nstatus:\n  phase: Configured\n  clientConfigured: false\n  storage: etcd\n",
      "action": {
        "list": "Open AuthProvider records in kradle-org-default",
        "watch": "Watch AuthProvider updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AuthProvider in kradle-org-default"
      }
    },
    {
      "kind": "Repository",
      "plural": "repositories",
      "apiResource": "repositories.kradle.a5c.ai",
      "count": 1,
      "names": [
        "kradle-demo"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "Repository",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {
              "gitBackend": "gitea"
            },
            "annotations": {},
            "name": "kradle-demo",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "visibility": "private",
            "gitHosting": {
              "backend": "gitea",
              "owner": "kradle",
              "repository": "kradle-demo",
              "branch": "main",
              "httpUrl": "http://kradle-gitea-http:3000/kradle/kradle-demo.git",
              "sshUrl": "ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git",
              "deployKeyTitle": "kradle-argocd",
              "organization": {
                "kind": "Organization",
                "name": "kradle",
                "delegatedTo": "Gitea /api/v1/orgs"
              },
              "sshKeys": {
                "kind": "SSHKey",
                "scopes": [
                  "user",
                  "deploy",
                  "argocd"
                ],
                "delegatedTo": "Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys"
              },
              "permissions": {
                "kind": "RepositoryPermission",
                "defaultCollaborator": "write",
                "adminTeam": "maintainers",
                "delegatedTo": "Gitea collaborators and team repository APIs"
              },
              "forgeRecords": {
                "issues": "Gitea /repos/kradle/_kradle-org-default_/issues",
                "pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
              },
              "issueSync": {
                "backend": "gitea",
                "owner": "kradle-org-default",
                "repo": "_kradle-org-default_",
                "issue": "<issue>",
                "project": null,
                "repositoryRefs": [
                  "kradle-demo"
                ],
                "metadataKeys": [
                  "kradle.a5c.ai/project",
                  "kradle.a5c.ai/repositories"
                ],
                "actions": [
                  {
                    "action": "ensureOrgMemoryRepository",
                    "owner": "kradle-org-default",
                    "repo": "_kradle-org-default_"
                  },
                  {
                    "action": "syncIssue",
                    "owner": "kradle-org-default",
                    "repo": "_kradle-org-default_",
                    "issue": "<issue>"
                  },
                  {
                    "action": "writeIssueRepositoryMetadata",
                    "issue": "<issue>",
                    "repositories": [
                      "kradle-demo"
                    ]
                  }
                ]
              },
              "webhookUrl": "http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo",
              "integrationPlan": {
                "backend": "gitea",
                "operations": [
                  {
                    "action": "createOrganization",
                    "owner": "kradle"
                  },
                  {
                    "action": "createRepository",
                    "owner": "kradle",
                    "repo": "kradle-demo"
                  },
                  {
                    "action": "ensureUserMappings",
                    "owner": "kradle"
                  },
                  {
                    "action": "addDeployKey",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "title": "kradle-argocd",
                    "readOnly": false
                  },
                  {
                    "action": "addUserSshKey",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "title": "developer key"
                  },
                  {
                    "action": "addCollaborator",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "permission": "write"
                  },
                  {
                    "action": "addTeamRepository",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "team": "maintainers",
                    "permission": "admin"
                  },
                  {
                    "action": "protectBranch",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "branch": "main"
                  },
                  {
                    "action": "createWebhook",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "url": "http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo"
                  }
                ]
              }
            },
            "storage": {
              "mode": "gitea",
              "persistentVolumeClaim": "kradle-gitea-data",
              "owner": "kradle",
              "repository": "kradle-demo",
              "httpUrl": "http://kradle-gitea-http:3000/kradle/kradle-demo.git",
              "sshUrl": "ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git"
            },
            "objectStorage": {
              "lfs": true,
              "artifacts": true
            },
            "search": {
              "provider": "zoekt",
              "enabled": false
            }
          },
          "status": {
            "ready": true,
            "route": {
              "repositoryName": "kradle-demo",
              "backend": "gitea",
              "owner": "kradle",
              "store": "gitea-primary",
              "receivePackReady": true,
              "httpUrl": "http://kradle-gitea-http:3000/kradle/kradle-demo.git",
              "sshUrl": "ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git"
            },
            "gitHosting": {
              "backend": "gitea",
              "httpUrl": "http://kradle-gitea-http:3000/kradle/kradle-demo.git",
              "sshUrl": "ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git",
              "integrationPlan": {
                "backend": "gitea",
                "operations": [
                  {
                    "action": "createOrganization",
                    "owner": "kradle"
                  },
                  {
                    "action": "createRepository",
                    "owner": "kradle",
                    "repo": "kradle-demo"
                  },
                  {
                    "action": "ensureUserMappings",
                    "owner": "kradle"
                  },
                  {
                    "action": "addDeployKey",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "title": "kradle-argocd",
                    "readOnly": false
                  },
                  {
                    "action": "addUserSshKey",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "title": "developer key"
                  },
                  {
                    "action": "addCollaborator",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "permission": "write"
                  },
                  {
                    "action": "addTeamRepository",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "team": "maintainers",
                    "permission": "admin"
                  },
                  {
                    "action": "protectBranch",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "branch": "main"
                  },
                  {
                    "action": "createWebhook",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "url": "http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo"
                  }
                ]
              }
            },
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Ready": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: Repository\nmetadata:\n  namespace: kradle-org-default\n  labels:\n    gitBackend: gitea\n  annotations:\n  name: kradle-demo\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  visibility: private\n  gitHosting:\n    backend: gitea\n    owner: kradle\n    repository: kradle-demo\n    branch: main\n    httpUrl: http://kradle-gitea-http:3000/kradle/kradle-demo.git\n    sshUrl: ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git\n    deployKeyTitle: kradle-argocd\n    organization:\n      kind: Organization\n      name: kradle\n      delegatedTo: Gitea /api/v1/orgs\n    sshKeys:\n      kind: SSHKey\n      scopes:\n        - user\n        - deploy\n        - argocd\n      delegatedTo: Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys\n    permissions:\n      kind: RepositoryPermission\n      defaultCollaborator: write\n      adminTeam: maintainers\n      delegatedTo: Gitea collaborators and team repository APIs\n    forgeRecords:\n      issues: Gitea /repos/kradle/_kradle-org-default_/issues\n      pullRequests: Gitea /repos/{owner}/{repo}/pulls\n    issueSync:\n      backend: gitea\n      owner: kradle-org-default\n      repo: _kradle-org-default_\n      issue: <issue>\n      project: null\n      repositoryRefs:\n        - kradle-demo\n      metadataKeys:\n        - kradle.a5c.ai/project\n        - kradle.a5c.ai/repositories\n      actions:\n        - action: ensureOrgMemoryRepository\n          owner: kradle-org-default\n          repo: _kradle-org-default_\n        - action: syncIssue\n          owner: kradle-org-default\n          repo: _kradle-org-default_\n          issue: <issue>\n        - action: writeIssueRepositoryMetadata\n          issue: <issue>\n          repositories:\n            - kradle-demo\n    webhookUrl: http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo\n    integrationPlan:\n      backend: gitea\n      operations:\n        - action: createOrganization\n          owner: kradle\n        - action: createRepository\n          owner: kradle\n          repo: kradle-demo\n        - action: ensureUserMappings\n          owner: kradle\n        - action: addDeployKey\n          owner: kradle\n          repo: kradle-demo\n          title: kradle-argocd\n          readOnly: false\n        - action: addUserSshKey\n          owner: kradle\n          repo: kradle-demo\n          title: developer key\n        - action: addCollaborator\n          owner: kradle\n          repo: kradle-demo\n          permission: write\n        - action: addTeamRepository\n          owner: kradle\n          repo: kradle-demo\n          team: maintainers\n          permission: admin\n        - action: protectBranch\n          owner: kradle\n          repo: kradle-demo\n          branch: main\n        - action: createWebhook\n          owner: kradle\n          repo: kradle-demo\n          url: http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo\n  storage:\n    mode: gitea\n    persistentVolumeClaim: kradle-gitea-data\n    owner: kradle\n    repository: kradle-demo\n    httpUrl: http://kradle-gitea-http:3000/kradle/kradle-demo.git\n    sshUrl: ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git\n  objectStorage:\n    lfs: true\n    artifacts: true\n  search:\n    provider: zoekt\n    enabled: false\nstatus:\n  ready: true\n  route:\n    repositoryName: kradle-demo\n    backend: gitea\n    owner: kradle\n    store: gitea-primary\n    receivePackReady: true\n    httpUrl: http://kradle-gitea-http:3000/kradle/kradle-demo.git\n    sshUrl: ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git\n  gitHosting:\n    backend: gitea\n    httpUrl: http://kradle-gitea-http:3000/kradle/kradle-demo.git\n    sshUrl: ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git\n    integrationPlan:\n      backend: gitea\n      operations:\n        - action: createOrganization\n          owner: kradle\n        - action: createRepository\n          owner: kradle\n          repo: kradle-demo\n        - action: ensureUserMappings\n          owner: kradle\n        - action: addDeployKey\n          owner: kradle\n          repo: kradle-demo\n          title: kradle-argocd\n          readOnly: false\n        - action: addUserSshKey\n          owner: kradle\n          repo: kradle-demo\n          title: developer key\n        - action: addCollaborator\n          owner: kradle\n          repo: kradle-demo\n          permission: write\n        - action: addTeamRepository\n          owner: kradle\n          repo: kradle-demo\n          team: maintainers\n          permission: admin\n        - action: protectBranch\n          owner: kradle\n          repo: kradle-demo\n          branch: main\n        - action: createWebhook\n          owner: kradle\n          repo: kradle-demo\n          url: http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo\n  storage: etcd\n",
      "action": {
        "list": "Open Repository records in kradle-org-default",
        "watch": "Watch Repository updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Repository in kradle-org-default"
      }
    },
    {
      "kind": "SSHKey",
      "plural": "sshkeys",
      "apiResource": "sshkeys.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open SSHKey records in kradle-org-default",
        "watch": "Watch SSHKey updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete SSHKey in kradle-org-default"
      }
    },
    {
      "kind": "RepositoryPermission",
      "plural": "repositorypermissions",
      "apiResource": "repositorypermissions.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open RepositoryPermission records in kradle-org-default",
        "watch": "Watch RepositoryPermission updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete RepositoryPermission in kradle-org-default"
      }
    },
    {
      "kind": "BranchProtection",
      "plural": "branchprotections",
      "apiResource": "branchprotections.kradle.a5c.ai",
      "count": 1,
      "names": [
        "main-protection"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "BranchProtection",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {},
            "annotations": {},
            "name": "main-protection",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "refs": [
              "refs/heads/main"
            ],
            "requirePullRequest": true,
            "requiredChecks": [
              "test"
            ],
            "requiredApprovals": 1
          },
          "status": {
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Unspecified": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: BranchProtection\nmetadata:\n  namespace: kradle-org-default\n  labels:\n  annotations:\n  name: main-protection\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  refs:\n    - refs/heads/main\n  requirePullRequest: true\n  requiredChecks:\n    - test\n  requiredApprovals: 1\nstatus:\n  storage: etcd\n",
      "action": {
        "list": "Open BranchProtection records in kradle-org-default",
        "watch": "Watch BranchProtection updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete BranchProtection in kradle-org-default"
      }
    },
    {
      "kind": "RefPolicy",
      "plural": "refpolicies",
      "apiResource": "refpolicies.kradle.a5c.ai",
      "count": 1,
      "names": [
        "deny-internal-refs"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "RefPolicy",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {},
            "annotations": {},
            "name": "deny-internal-refs",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "deny": [
              "refs/internal/"
            ]
          },
          "status": {
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Unspecified": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: RefPolicy\nmetadata:\n  namespace: kradle-org-default\n  labels:\n  annotations:\n  name: deny-internal-refs\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  deny:\n    - refs/internal/\nstatus:\n  storage: etcd\n",
      "action": {
        "list": "Open RefPolicy records in kradle-org-default",
        "watch": "Watch RefPolicy updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete RefPolicy in kradle-org-default"
      }
    },
    {
      "kind": "PolicyProfile",
      "plural": "policyprofiles",
      "apiResource": "policyprofiles.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open PolicyProfile records in kradle-org-default",
        "watch": "Watch PolicyProfile updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete PolicyProfile in kradle-org-default"
      }
    },
    {
      "kind": "PolicyTemplate",
      "plural": "policytemplates",
      "apiResource": "policytemplates.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open PolicyTemplate records in kradle-org-default",
        "watch": "Watch PolicyTemplate updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete PolicyTemplate in kradle-org-default"
      }
    },
    {
      "kind": "PolicyBinding",
      "plural": "policybindings",
      "apiResource": "policybindings.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open PolicyBinding records in kradle-org-default",
        "watch": "Watch PolicyBinding updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete PolicyBinding in kradle-org-default"
      }
    },
    {
      "kind": "PolicyExceptionRequest",
      "plural": "policyexceptionrequests",
      "apiResource": "policyexceptionrequests.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open PolicyExceptionRequest records in kradle-org-default",
        "watch": "Watch PolicyExceptionRequest updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete PolicyExceptionRequest in kradle-org-default"
      }
    },
    {
      "kind": "WebhookSubscription",
      "plural": "webhooksubscriptions",
      "apiResource": "webhooksubscriptions.kradle.a5c.ai",
      "count": 1,
      "names": [
        "chatops"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "WebhookSubscription",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {},
            "annotations": {},
            "name": "chatops",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "url": "https://hooks.example.test/kradle",
            "events": [
              "pullrequest.created",
              "pullrequest.merged"
            ],
            "signing": {
              "algorithm": "hmac-sha256",
              "secretRef": "chatops-secret"
            },
            "mode": "active"
          },
          "status": {
            "ready": true,
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Ready": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: WebhookSubscription\nmetadata:\n  namespace: kradle-org-default\n  labels:\n  annotations:\n  name: chatops\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  url: https://hooks.example.test/kradle\n  events:\n    - pullrequest.created\n    - pullrequest.merged\n  signing:\n    algorithm: hmac-sha256\n    secretRef: chatops-secret\n  mode: active\nstatus:\n  ready: true\n  storage: etcd\n",
      "action": {
        "list": "Open WebhookSubscription records in kradle-org-default",
        "watch": "Watch WebhookSubscription updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete WebhookSubscription in kradle-org-default"
      }
    },
    {
      "kind": "RunnerPool",
      "plural": "runnerpools",
      "apiResource": "runnerpools.kradle.a5c.ai",
      "count": 1,
      "names": [
        "trusted-linux"
      ],
      "items": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "RunnerPool",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {
              "trustTier": "trusted"
            },
            "annotations": {},
            "name": "trusted-linux",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "image": "ubuntu:24.04",
            "warmReplicas": 1,
            "maxReplicas": 4,
            "trustTier": "trusted",
            "cache": {
              "type": "object-storage"
            },
            "scalingMetric": "queueDepth"
          },
          "status": {
            "readyReplicas": 1,
            "queueDepth": 0,
            "storage": "etcd"
          }
        }
      ],
      "phases": {
        "Unspecified": 1
      },
      "storage": "etcd",
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: RunnerPool\nmetadata:\n  namespace: kradle-org-default\n  labels:\n    trustTier: trusted\n  annotations:\n  name: trusted-linux\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  image: ubuntu:24.04\n  warmReplicas: 1\n  maxReplicas: 4\n  trustTier: trusted\n  cache:\n    type: object-storage\n  scalingMetric: queueDepth\nstatus:\n  readyReplicas: 1\n  queueDepth: 0\n  storage: etcd\n",
      "action": {
        "list": "Open RunnerPool records in kradle-org-default",
        "watch": "Watch RunnerPool updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete RunnerPool in kradle-org-default"
      }
    },
    {
      "kind": "PullRequest",
      "plural": "pullrequests",
      "apiResource": "pullrequests.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open PullRequest records in kradle-org-default",
        "watch": "Watch PullRequest updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete PullRequest in kradle-org-default"
      }
    },
    {
      "kind": "Issue",
      "plural": "issues",
      "apiResource": "issues.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open Issue records in kradle-org-default",
        "watch": "Watch Issue updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Issue in kradle-org-default"
      }
    },
    {
      "kind": "Review",
      "plural": "reviews",
      "apiResource": "reviews.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open Review records in kradle-org-default",
        "watch": "Watch Review updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Review in kradle-org-default"
      }
    },
    {
      "kind": "Pipeline",
      "plural": "pipelines",
      "apiResource": "pipelines.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open Pipeline records in kradle-org-default",
        "watch": "Watch Pipeline updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Pipeline in kradle-org-default"
      }
    },
    {
      "kind": "Job",
      "plural": "jobs",
      "apiResource": "jobs.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open Job records in kradle-org-default",
        "watch": "Watch Job updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Job in kradle-org-default"
      }
    },
    {
      "kind": "WebhookDelivery",
      "plural": "webhookdeliveries",
      "apiResource": "webhookdeliveries.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open WebhookDelivery records in kradle-org-default",
        "watch": "Watch WebhookDelivery updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete WebhookDelivery in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaApplication",
      "plural": "applications",
      "apiResource": "applications.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaApplication records in kradle-org-default",
        "watch": "Watch KubeVelaApplication updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaApplication in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaApplicationRevision",
      "plural": "applicationrevisions",
      "apiResource": "applicationrevisions.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaApplicationRevision records in kradle-org-default",
        "watch": "Watch KubeVelaApplicationRevision updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaApplicationRevision in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaComponentDefinition",
      "plural": "componentdefinitions",
      "apiResource": "componentdefinitions.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaComponentDefinition records in kradle-org-default",
        "watch": "Watch KubeVelaComponentDefinition updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaComponentDefinition in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaWorkloadDefinition",
      "plural": "workloaddefinitions",
      "apiResource": "workloaddefinitions.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaWorkloadDefinition records in kradle-org-default",
        "watch": "Watch KubeVelaWorkloadDefinition updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaWorkloadDefinition in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaTraitDefinition",
      "plural": "traitdefinitions",
      "apiResource": "traitdefinitions.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaTraitDefinition records in kradle-org-default",
        "watch": "Watch KubeVelaTraitDefinition updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaTraitDefinition in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaScopeDefinition",
      "plural": "scopedefinitions",
      "apiResource": "scopedefinitions.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaScopeDefinition records in kradle-org-default",
        "watch": "Watch KubeVelaScopeDefinition updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaScopeDefinition in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaPolicyDefinition",
      "plural": "policydefinitions",
      "apiResource": "policydefinitions.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaPolicyDefinition records in kradle-org-default",
        "watch": "Watch KubeVelaPolicyDefinition updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaPolicyDefinition in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaPolicy",
      "plural": "policies",
      "apiResource": "policies.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaPolicy records in kradle-org-default",
        "watch": "Watch KubeVelaPolicy updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaPolicy in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaWorkflowStepDefinition",
      "plural": "workflowstepdefinitions",
      "apiResource": "workflowstepdefinitions.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaWorkflowStepDefinition records in kradle-org-default",
        "watch": "Watch KubeVelaWorkflowStepDefinition updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaWorkflowStepDefinition in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaWorkflow",
      "plural": "workflows",
      "apiResource": "workflows.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaWorkflow records in kradle-org-default",
        "watch": "Watch KubeVelaWorkflow updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaWorkflow in kradle-org-default"
      }
    },
    {
      "kind": "KubeVelaResourceTracker",
      "plural": "resourcetrackers",
      "apiResource": "resourcetrackers.core.oam.dev",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "kubevela",
      "yaml": null,
      "action": {
        "list": "Open KubeVelaResourceTracker records in kradle-org-default",
        "watch": "Watch KubeVelaResourceTracker updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KubeVelaResourceTracker in kradle-org-default"
      }
    },
    {
      "kind": "View",
      "plural": "views",
      "apiResource": "views.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open View records in kradle-org-default",
        "watch": "Watch View updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete View in kradle-org-default"
      }
    },
    {
      "kind": "KradleGeneratedView",
      "plural": "kradlegeneratedviews",
      "apiResource": "kradlegeneratedviews.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open KradleGeneratedView records in kradle-org-default",
        "watch": "Watch KradleGeneratedView updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KradleGeneratedView in kradle-org-default"
      }
    },
    {
      "kind": "Selector",
      "plural": "selectors",
      "apiResource": "selectors.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open Selector records in kradle-org-default",
        "watch": "Watch Selector updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Selector in kradle-org-default"
      }
    },
    {
      "kind": "AgentPersona",
      "plural": "agentpersonas",
      "apiResource": "agentpersonas.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentPersona records in kradle-org-default",
        "watch": "Watch AgentPersona updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentPersona in kradle-org-default"
      }
    },
    {
      "kind": "AgentSoul",
      "plural": "agentsouls",
      "apiResource": "agentsouls.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentSoul records in kradle-org-default",
        "watch": "Watch AgentSoul updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentSoul in kradle-org-default"
      }
    },
    {
      "kind": "AgentAppearance",
      "plural": "agentappearances",
      "apiResource": "agentappearances.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentAppearance records in kradle-org-default",
        "watch": "Watch AgentAppearance updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentAppearance in kradle-org-default"
      }
    },
    {
      "kind": "AgentVoiceProfile",
      "plural": "agentvoiceprofiles",
      "apiResource": "agentvoiceprofiles.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentVoiceProfile records in kradle-org-default",
        "watch": "Watch AgentVoiceProfile updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentVoiceProfile in kradle-org-default"
      }
    },
    {
      "kind": "AgentDefinition",
      "plural": "agentdefinitions",
      "apiResource": "agentdefinitions.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentDefinition records in kradle-org-default",
        "watch": "Watch AgentDefinition updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentDefinition in kradle-org-default"
      }
    },
    {
      "kind": "AgentStack",
      "plural": "agentstacks",
      "apiResource": "agentstacks.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentStack records in kradle-org-default",
        "watch": "Watch AgentStack updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentStack in kradle-org-default"
      }
    },
    {
      "kind": "AgentSubagent",
      "plural": "agentsubagents",
      "apiResource": "agentsubagents.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentSubagent records in kradle-org-default",
        "watch": "Watch AgentSubagent updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentSubagent in kradle-org-default"
      }
    },
    {
      "kind": "AgentToolProfile",
      "plural": "agenttoolprofiles",
      "apiResource": "agenttoolprofiles.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentToolProfile records in kradle-org-default",
        "watch": "Watch AgentToolProfile updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentToolProfile in kradle-org-default"
      }
    },
    {
      "kind": "AgentMcpServer",
      "plural": "agentmcpservers",
      "apiResource": "agentmcpservers.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentMcpServer records in kradle-org-default",
        "watch": "Watch AgentMcpServer updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentMcpServer in kradle-org-default"
      }
    },
    {
      "kind": "AgentSkill",
      "plural": "agentskills",
      "apiResource": "agentskills.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentSkill records in kradle-org-default",
        "watch": "Watch AgentSkill updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentSkill in kradle-org-default"
      }
    },
    {
      "kind": "AgentProcessTemplate",
      "plural": "agentprocesstemplates",
      "apiResource": "agentprocesstemplates.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentProcessTemplate records in kradle-org-default",
        "watch": "Watch AgentProcessTemplate updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentProcessTemplate in kradle-org-default"
      }
    },
    {
      "kind": "AgentTriggerRule",
      "plural": "agenttriggerrules",
      "apiResource": "agenttriggerrules.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentTriggerRule records in kradle-org-default",
        "watch": "Watch AgentTriggerRule updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentTriggerRule in kradle-org-default"
      }
    },
    {
      "kind": "AgentContextLabel",
      "plural": "agentcontextlabels",
      "apiResource": "agentcontextlabels.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentContextLabel records in kradle-org-default",
        "watch": "Watch AgentContextLabel updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentContextLabel in kradle-org-default"
      }
    },
    {
      "kind": "KradleWorkspacePolicy",
      "plural": "kradleworkspacepolicies",
      "apiResource": "kradleworkspacepolicies.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open KradleWorkspacePolicy records in kradle-org-default",
        "watch": "Watch KradleWorkspacePolicy updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KradleWorkspacePolicy in kradle-org-default"
      }
    },
    {
      "kind": "AgentServiceAccount",
      "plural": "agentserviceaccounts",
      "apiResource": "agentserviceaccounts.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentServiceAccount records in kradle-org-default",
        "watch": "Watch AgentServiceAccount updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentServiceAccount in kradle-org-default"
      }
    },
    {
      "kind": "AgentRoleBinding",
      "plural": "agentrolebindings",
      "apiResource": "agentrolebindings.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentRoleBinding records in kradle-org-default",
        "watch": "Watch AgentRoleBinding updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentRoleBinding in kradle-org-default"
      }
    },
    {
      "kind": "AgentSecretGrant",
      "plural": "agentsecretgrants",
      "apiResource": "agentsecretgrants.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentSecretGrant records in kradle-org-default",
        "watch": "Watch AgentSecretGrant updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentSecretGrant in kradle-org-default"
      }
    },
    {
      "kind": "AgentConfigGrant",
      "plural": "agentconfiggrants",
      "apiResource": "agentconfiggrants.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentConfigGrant records in kradle-org-default",
        "watch": "Watch AgentConfigGrant updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentConfigGrant in kradle-org-default"
      }
    },
    {
      "kind": "AgentAdapter",
      "plural": "agentadapters",
      "apiResource": "agentadapters.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentAdapter records in kradle-org-default",
        "watch": "Watch AgentAdapter updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentAdapter in kradle-org-default"
      }
    },
    {
      "kind": "AgentTransportBinding",
      "plural": "agenttransportbindings",
      "apiResource": "agenttransportbindings.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentTransportBinding records in kradle-org-default",
        "watch": "Watch AgentTransportBinding updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentTransportBinding in kradle-org-default"
      }
    },
    {
      "kind": "AgentProviderConfig",
      "plural": "agentproviderconfigs",
      "apiResource": "agentproviderconfigs.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentProviderConfig records in kradle-org-default",
        "watch": "Watch AgentProviderConfig updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentProviderConfig in kradle-org-default"
      }
    },
    {
      "kind": "KradleProject",
      "plural": "kradleprojects",
      "apiResource": "kradleprojects.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open KradleProject records in kradle-org-default",
        "watch": "Watch KradleProject updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KradleProject in kradle-org-default"
      }
    },
    {
      "kind": "AgentGatewayConfig",
      "plural": "agentgatewayconfigs",
      "apiResource": "agentgatewayconfigs.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentGatewayConfig records in kradle-org-default",
        "watch": "Watch AgentGatewayConfig updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentGatewayConfig in kradle-org-default"
      }
    },
    {
      "kind": "AgentMemoryRepository",
      "plural": "agentmemoryrepositories",
      "apiResource": "agentmemoryrepositories.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentMemoryRepository records in kradle-org-default",
        "watch": "Watch AgentMemoryRepository updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentMemoryRepository in kradle-org-default"
      }
    },
    {
      "kind": "AgentMemorySource",
      "plural": "agentmemorysources",
      "apiResource": "agentmemorysources.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentMemorySource records in kradle-org-default",
        "watch": "Watch AgentMemorySource updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentMemorySource in kradle-org-default"
      }
    },
    {
      "kind": "AgentMemoryOntology",
      "plural": "agentmemoryontologies",
      "apiResource": "agentmemoryontologies.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentMemoryOntology records in kradle-org-default",
        "watch": "Watch AgentMemoryOntology updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentMemoryOntology in kradle-org-default"
      }
    },
    {
      "kind": "AgentMemoryAssociation",
      "plural": "agentmemoryassociations",
      "apiResource": "agentmemoryassociations.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open AgentMemoryAssociation records in kradle-org-default",
        "watch": "Watch AgentMemoryAssociation updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentMemoryAssociation in kradle-org-default"
      }
    },
    {
      "kind": "AgentDispatchRun",
      "plural": "agentdispatchruns",
      "apiResource": "agentdispatchruns.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open AgentDispatchRun records in kradle-org-default",
        "watch": "Watch AgentDispatchRun updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentDispatchRun in kradle-org-default"
      }
    },
    {
      "kind": "AgentDispatchAttempt",
      "plural": "agentdispatchattempts",
      "apiResource": "agentdispatchattempts.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open AgentDispatchAttempt records in kradle-org-default",
        "watch": "Watch AgentDispatchAttempt updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentDispatchAttempt in kradle-org-default"
      }
    },
    {
      "kind": "AgentSession",
      "plural": "agentsessions",
      "apiResource": "agentsessions.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open AgentSession records in kradle-org-default",
        "watch": "Watch AgentSession updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentSession in kradle-org-default"
      }
    },
    {
      "kind": "AgentContextBundle",
      "plural": "agentcontextbundles",
      "apiResource": "agentcontextbundles.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open AgentContextBundle records in kradle-org-default",
        "watch": "Watch AgentContextBundle updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentContextBundle in kradle-org-default"
      }
    },
    {
      "kind": "KradleArtifact",
      "plural": "kradleartifacts",
      "apiResource": "kradleartifacts.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open KradleArtifact records in kradle-org-default",
        "watch": "Watch KradleArtifact updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KradleArtifact in kradle-org-default"
      }
    },
    {
      "kind": "AgentApproval",
      "plural": "agentapprovals",
      "apiResource": "agentapprovals.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open AgentApproval records in kradle-org-default",
        "watch": "Watch AgentApproval updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentApproval in kradle-org-default"
      }
    },
    {
      "kind": "KradleWorkspace",
      "plural": "kradleworkspaces",
      "apiResource": "kradleworkspaces.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open KradleWorkspace records in kradle-org-default",
        "watch": "Watch KradleWorkspace updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KradleWorkspace in kradle-org-default"
      }
    },
    {
      "kind": "AgentTriggerExecution",
      "plural": "agenttriggerexecutions",
      "apiResource": "agenttriggerexecutions.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open AgentTriggerExecution records in kradle-org-default",
        "watch": "Watch AgentTriggerExecution updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentTriggerExecution in kradle-org-default"
      }
    },
    {
      "kind": "KradleWorkspaceRuntime",
      "plural": "kradleworkspaceruntimes",
      "apiResource": "kradleworkspaceruntimes.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open KradleWorkspaceRuntime records in kradle-org-default",
        "watch": "Watch KradleWorkspaceRuntime updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KradleWorkspaceRuntime in kradle-org-default"
      }
    },
    {
      "kind": "AgentSessionTranscript",
      "plural": "agentsessiontranscripts",
      "apiResource": "agentsessiontranscripts.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open AgentSessionTranscript records in kradle-org-default",
        "watch": "Watch AgentSessionTranscript updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete AgentSessionTranscript in kradle-org-default"
      }
    },
    {
      "kind": "ExternalBackendProvider",
      "plural": "externalbackendproviders",
      "apiResource": "externalbackendproviders.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open ExternalBackendProvider records in kradle-org-default",
        "watch": "Watch ExternalBackendProvider updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ExternalBackendProvider in kradle-org-default"
      }
    },
    {
      "kind": "ExternalBackendBinding",
      "plural": "externalbackendbindings",
      "apiResource": "externalbackendbindings.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open ExternalBackendBinding records in kradle-org-default",
        "watch": "Watch ExternalBackendBinding updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ExternalBackendBinding in kradle-org-default"
      }
    },
    {
      "kind": "ExternalBackendSyncPolicy",
      "plural": "externalbackendsyncpolicies",
      "apiResource": "externalbackendsyncpolicies.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open ExternalBackendSyncPolicy records in kradle-org-default",
        "watch": "Watch ExternalBackendSyncPolicy updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ExternalBackendSyncPolicy in kradle-org-default"
      }
    },
    {
      "kind": "ArtifactRegistry",
      "plural": "artifactregistries",
      "apiResource": "artifactregistries.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open ArtifactRegistry records in kradle-org-default",
        "watch": "Watch ArtifactRegistry updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ArtifactRegistry in kradle-org-default"
      }
    },
    {
      "kind": "ArtifactFeed",
      "plural": "artifactfeeds",
      "apiResource": "artifactfeeds.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open ArtifactFeed records in kradle-org-default",
        "watch": "Watch ArtifactFeed updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ArtifactFeed in kradle-org-default"
      }
    },
    {
      "kind": "ArtifactAccessPolicy",
      "plural": "artifactaccesspolicies",
      "apiResource": "artifactaccesspolicies.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open ArtifactAccessPolicy records in kradle-org-default",
        "watch": "Watch ArtifactAccessPolicy updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ArtifactAccessPolicy in kradle-org-default"
      }
    },
    {
      "kind": "ArtifactVersion",
      "plural": "artifactversions",
      "apiResource": "artifactversions.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open ArtifactVersion records in kradle-org-default",
        "watch": "Watch ArtifactVersion updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ArtifactVersion in kradle-org-default"
      }
    },
    {
      "kind": "ArtifactDownload",
      "plural": "artifactdownloads",
      "apiResource": "artifactdownloads.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open ArtifactDownload records in kradle-org-default",
        "watch": "Watch ArtifactDownload updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ArtifactDownload in kradle-org-default"
      }
    },
    {
      "kind": "KradleInferenceService",
      "plural": "kradleinferenceservices",
      "apiResource": "kradleinferenceservices.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open KradleInferenceService records in kradle-org-default",
        "watch": "Watch KradleInferenceService updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KradleInferenceService in kradle-org-default"
      }
    },
    {
      "kind": "KradleServingRuntime",
      "plural": "kradleservingruntimes",
      "apiResource": "kradleservingruntimes.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open KradleServingRuntime records in kradle-org-default",
        "watch": "Watch KradleServingRuntime updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete KradleServingRuntime in kradle-org-default"
      }
    },
    {
      "kind": "JitsiMeetProvider",
      "plural": "jitsimeetproviders",
      "apiResource": "jitsimeetproviders.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open JitsiMeetProvider records in kradle-org-default",
        "watch": "Watch JitsiMeetProvider updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete JitsiMeetProvider in kradle-org-default"
      }
    },
    {
      "kind": "JitsiMeetingTemplate",
      "plural": "jitsimeetingtemplates",
      "apiResource": "jitsimeetingtemplates.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open JitsiMeetingTemplate records in kradle-org-default",
        "watch": "Watch JitsiMeetingTemplate updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete JitsiMeetingTemplate in kradle-org-default"
      }
    },
    {
      "kind": "JitsiMeeting",
      "plural": "jitsimeetings",
      "apiResource": "jitsimeetings.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open JitsiMeeting records in kradle-org-default",
        "watch": "Watch JitsiMeeting updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete JitsiMeeting in kradle-org-default"
      }
    },
    {
      "kind": "JitsiRecording",
      "plural": "jitsirecordings",
      "apiResource": "jitsirecordings.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open JitsiRecording records in kradle-org-default",
        "watch": "Watch JitsiRecording updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete JitsiRecording in kradle-org-default"
      }
    },
    {
      "kind": "EvalSuite",
      "plural": "evalsuites",
      "apiResource": "evalsuites.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open EvalSuite records in kradle-org-default",
        "watch": "Watch EvalSuite updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete EvalSuite in kradle-org-default"
      }
    },
    {
      "kind": "EvalCase",
      "plural": "evalcases",
      "apiResource": "evalcases.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open EvalCase records in kradle-org-default",
        "watch": "Watch EvalCase updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete EvalCase in kradle-org-default"
      }
    },
    {
      "kind": "EvalRun",
      "plural": "evalruns",
      "apiResource": "evalruns.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open EvalRun records in kradle-org-default",
        "watch": "Watch EvalRun updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete EvalRun in kradle-org-default"
      }
    },
    {
      "kind": "EvalResult",
      "plural": "evalresults",
      "apiResource": "evalresults.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open EvalResult records in kradle-org-default",
        "watch": "Watch EvalResult updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete EvalResult in kradle-org-default"
      }
    },
    {
      "kind": "Dataset",
      "plural": "datasets",
      "apiResource": "datasets.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open Dataset records in kradle-org-default",
        "watch": "Watch Dataset updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Dataset in kradle-org-default"
      }
    },
    {
      "kind": "DatasetVersion",
      "plural": "datasetversions",
      "apiResource": "datasetversions.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open DatasetVersion records in kradle-org-default",
        "watch": "Watch DatasetVersion updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete DatasetVersion in kradle-org-default"
      }
    },
    {
      "kind": "DatasetRecord",
      "plural": "datasetrecords",
      "apiResource": "datasetrecords.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open DatasetRecord records in kradle-org-default",
        "watch": "Watch DatasetRecord updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete DatasetRecord in kradle-org-default"
      }
    },
    {
      "kind": "Guardrail",
      "plural": "guardrails",
      "apiResource": "guardrails.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "etcd",
      "yaml": null,
      "action": {
        "list": "Open Guardrail records in kradle-org-default",
        "watch": "Watch Guardrail updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Guardrail in kradle-org-default"
      }
    },
    {
      "kind": "GuardrailEvent",
      "plural": "guardrailevents",
      "apiResource": "guardrailevents.kradle.a5c.ai",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "postgres",
      "yaml": null,
      "action": {
        "list": "Open GuardrailEvent records in kradle-org-default",
        "watch": "Watch GuardrailEvent updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete GuardrailEvent in kradle-org-default"
      }
    },
    {
      "kind": "Secret",
      "plural": "secrets",
      "apiResource": "secrets",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "core",
      "yaml": null,
      "action": {
        "list": "Open Secret records in kradle-org-default",
        "watch": "Watch Secret updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete Secret in kradle-org-default"
      }
    },
    {
      "kind": "ConfigMap",
      "plural": "configmaps",
      "apiResource": "configmaps",
      "count": 0,
      "names": [],
      "items": [],
      "phases": {},
      "storage": "core",
      "yaml": null,
      "action": {
        "list": "Open ConfigMap records in kradle-org-default",
        "watch": "Watch ConfigMap updates in kradle-org-default",
        "apply": "Save resource changes",
        "delete": "Delete ConfigMap in kradle-org-default"
      }
    }
  ],
  "events": [
    {
      "type": "create",
      "storage": "kubernetes",
      "actor": "kubernetes",
      "allowed": true,
      "message": ""
    },
    {
      "type": "create",
      "storage": "kubernetes",
      "actor": "kubernetes",
      "allowed": true,
      "message": ""
    },
    {
      "type": "create",
      "storage": "kubernetes",
      "actor": "kubernetes",
      "allowed": true,
      "message": ""
    },
    {
      "type": "create",
      "storage": "kubernetes",
      "actor": "kubernetes",
      "allowed": true,
      "message": ""
    },
    {
      "type": "create",
      "storage": "kubernetes",
      "actor": "kubernetes",
      "allowed": true,
      "message": ""
    },
    {
      "type": "create",
      "storage": "kubernetes",
      "actor": "kubernetes",
      "allowed": true,
      "message": ""
    },
    {
      "type": "create",
      "storage": "kubernetes",
      "actor": "kubernetes",
      "allowed": true,
      "message": ""
    },
    {
      "type": "create",
      "storage": "kubernetes",
      "actor": "kubernetes",
      "allowed": true,
      "message": ""
    }
  ],
  "auditLog": [],
  "delivery": {
    "installed": false,
    "specVersion": "v0.3.0",
    "counts": {
      "applications": 0,
      "releases": 0,
      "components": 0,
      "workloads": 0,
      "traits": 0,
      "scopes": 0,
      "policyDefinitions": 0,
      "policies": 0,
      "automationSteps": 0,
      "automations": 0,
      "managedResources": 0
    },
    "capabilityCatalog": {
      "components": [],
      "workloads": [],
      "traits": [],
      "scopes": [],
      "policyDefinitions": [],
      "policies": [],
      "automationSteps": []
    },
    "applications": [],
    "runtime": {
      "releases": [],
      "automations": [],
      "policies": [],
      "managedResources": []
    }
  },
  "policyEngine": {
    "engine": "kyverno",
    "mode": "disabled",
    "health": "disabled",
    "detected": false,
    "namespace": "kyverno",
    "policyNamespace": "kradle-org-default",
    "requireForEnforceMode": true,
    "org": "default",
    "profiles": [],
    "templates": [],
    "bindings": [],
    "exceptionRequests": [],
    "kyvernoResources": {},
    "controllers": [],
    "permissions": [],
    "reports": {
      "policyReports": 0,
      "clusterPolicyReports": 0,
      "results": []
    },
    "violations": [],
    "degraded": [],
    "emptyState": "Kyverno integration is disabled. Kradle native RefPolicy and BranchProtection remain available."
  },
  "agents": {
    "org": "default",
    "stacks": {
      "count": 0,
      "items": []
    },
    "runs": {
      "count": 0,
      "items": [],
      "active": []
    },
    "rules": {
      "count": 0,
      "items": []
    },
    "sessions": {
      "count": 0,
      "items": []
    },
    "workspaces": {
      "count": 0,
      "items": []
    },
    "approvals": {
      "count": 0,
      "items": [],
      "pending": []
    },
    "adapters": {
      "count": 0,
      "items": []
    },
    "providers": {
      "count": 0,
      "items": []
    },
    "projects": {
      "count": 0,
      "items": []
    },
    "gateway": null,
    "transcripts": {
      "count": 0,
      "items": []
    },
    "meetings": {
      "count": 0,
      "items": [],
      "active": []
    },
    "memoryRepositories": {
      "count": 0,
      "items": []
    },
    "memorySnapshots": {
      "count": 0,
      "items": []
    },
    "memoryImports": {
      "count": 0,
      "items": [],
      "pending": []
    },
    "personas": {
      "count": 0,
      "items": []
    },
    "definitions": {
      "count": 0,
      "items": []
    },
    "processTemplates": {
      "count": 0,
      "items": []
    },
    "appearances": {
      "count": 0,
      "items": []
    },
    "voiceProfiles": {
      "count": 0,
      "items": []
    }
  },
  "identity": {
    "counts": {
      "users": 1,
      "teams": 1,
      "pendingInvites": 1,
      "mappings": 1,
      "repositoryGrants": 0,
      "sshKeys": 0
    },
    "providers": [
      {
        "name": "github",
        "label": "GitHub",
        "type": "github",
        "enabled": true,
        "phase": "Configured"
      },
      {
        "name": "sso",
        "label": "Workspace SSO",
        "type": "oidc",
        "enabled": false,
        "phase": "Disabled"
      }
    ],
    "users": [
      {
        "name": "admin",
        "displayName": "Admin",
        "email": "admin@example.com",
        "teams": [
          "maintainers"
        ],
        "admin": true,
        "disabled": false,
        "phase": "Active"
      }
    ],
    "teams": [
      {
        "name": "maintainers",
        "displayName": "Maintainers",
        "members": [
          "admin"
        ],
        "maintainers": [
          "admin"
        ],
        "repositoryGrants": [
          {
            "repository": "kradle-demo",
            "permission": "admin"
          }
        ]
      }
    ],
    "invites": [
      {
        "name": "new-user-example-com",
        "email": "new-user@example.com",
        "role": "member",
        "teams": [
          "maintainers"
        ],
        "phase": "Pending",
        "expiresAt": "2026-08-17T20:00:41.981Z"
      }
    ],
    "mappings": [
      {
        "name": "sso-admin",
        "user": "admin",
        "provider": "sso",
        "workspaceIdentity": "admin@example.com",
        "repositoryIdentity": "admin",
        "phase": "Synced"
      }
    ],
    "permissions": [],
    "sshKeys": [],
    "reconciliation": {
      "counts": {
        "User": 1,
        "Team": 1,
        "Invite": 1,
        "IdentityMapping": 1
      },
      "phases": {
        "Active": 2,
        "Pending": 1,
        "Synced": 1
      },
      "statuses": [
        {
          "kind": "User",
          "name": "admin",
          "phase": "Active",
          "checks": [
            "User Observed: ready",
            "Workspace Identity Projected: ready",
            "Repository Identity Projected: ready"
          ]
        },
        {
          "kind": "Team",
          "name": "maintainers",
          "phase": "Active",
          "checks": [
            "Team Observed: ready",
            "Team Membership Projected: ready",
            "Repository Grants Projected: ready"
          ]
        },
        {
          "kind": "Invite",
          "name": "new-user-example-com",
          "phase": "Pending",
          "checks": [
            "Invite Observed: ready",
            "Invite Lifecycle Tracked: ready"
          ]
        },
        {
          "kind": "IdentityMapping",
          "name": "sso-admin",
          "phase": "Synced",
          "checks": [
            "Identity Mapping Observed: ready",
            "Workspace Identity Projected: ready",
            "Repository Identity Projected: ready"
          ]
        }
      ],
      "nextActions": [
        "ensure user: admin",
        "ensure repository user: admin",
        "sync team membership: maintainers",
        "sync team repository grant: maintainers",
        "send invite: workspace access",
        "link identity: admin",
        "link repository identity: admin"
      ]
    },
    "org": "default"
  },
  "validation": [
    {
      "name": "Kradle workspace is connected",
      "passed": false,
      "evidence": "runtime snapshot supplied outside the Kradle workspace path"
    },
    {
      "name": "Kradle API surface is discoverable",
      "passed": true,
      "evidence": "0 Kradle resources discovered"
    },
    {
      "name": "Repository management uses org-scoped Kradle actions",
      "passed": true,
      "evidence": "/api/orgs/:org/repositories and /api/orgs/:org/resources call src/kubernetes-controller.js"
    },
    {
      "name": "Kradle API is separated from delivery execution",
      "passed": true,
      "evidence": "src/api-controller.js delegates resource operations through the Kradle gateway"
    },
    {
      "name": "Live streams use Kradle watch",
      "passed": true,
      "evidence": "/api/watch/orgs/:org/* uses Kradle live updates"
    },
    {
      "name": "UI renders live and empty states without demo data",
      "passed": true,
      "evidence": "apps/web Server Components consume fetchControllerUiModel() only"
    }
  ],
  "permissions": [],
  "views": {
    "dashboard": {
      "repositories": [
        {
          "apiVersion": "kradle.a5c.ai/v1alpha1",
          "kind": "Repository",
          "metadata": {
            "namespace": "kradle-org-default",
            "labels": {
              "gitBackend": "gitea"
            },
            "annotations": {},
            "name": "kradle-demo",
            "resourceVersion": "1"
          },
          "spec": {
            "organizationRef": "default",
            "visibility": "private",
            "gitHosting": {
              "backend": "gitea",
              "owner": "kradle",
              "repository": "kradle-demo",
              "branch": "main",
              "httpUrl": "http://kradle-gitea-http:3000/kradle/kradle-demo.git",
              "sshUrl": "ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git",
              "deployKeyTitle": "kradle-argocd",
              "organization": {
                "kind": "Organization",
                "name": "kradle",
                "delegatedTo": "Gitea /api/v1/orgs"
              },
              "sshKeys": {
                "kind": "SSHKey",
                "scopes": [
                  "user",
                  "deploy",
                  "argocd"
                ],
                "delegatedTo": "Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys"
              },
              "permissions": {
                "kind": "RepositoryPermission",
                "defaultCollaborator": "write",
                "adminTeam": "maintainers",
                "delegatedTo": "Gitea collaborators and team repository APIs"
              },
              "forgeRecords": {
                "issues": "Gitea /repos/kradle/_kradle-org-default_/issues",
                "pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
              },
              "issueSync": {
                "backend": "gitea",
                "owner": "kradle-org-default",
                "repo": "_kradle-org-default_",
                "issue": "<issue>",
                "project": null,
                "repositoryRefs": [
                  "kradle-demo"
                ],
                "metadataKeys": [
                  "kradle.a5c.ai/project",
                  "kradle.a5c.ai/repositories"
                ],
                "actions": [
                  {
                    "action": "ensureOrgMemoryRepository",
                    "owner": "kradle-org-default",
                    "repo": "_kradle-org-default_"
                  },
                  {
                    "action": "syncIssue",
                    "owner": "kradle-org-default",
                    "repo": "_kradle-org-default_",
                    "issue": "<issue>"
                  },
                  {
                    "action": "writeIssueRepositoryMetadata",
                    "issue": "<issue>",
                    "repositories": [
                      "kradle-demo"
                    ]
                  }
                ]
              },
              "webhookUrl": "http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo",
              "integrationPlan": {
                "backend": "gitea",
                "operations": [
                  {
                    "action": "createOrganization",
                    "owner": "kradle"
                  },
                  {
                    "action": "createRepository",
                    "owner": "kradle",
                    "repo": "kradle-demo"
                  },
                  {
                    "action": "ensureUserMappings",
                    "owner": "kradle"
                  },
                  {
                    "action": "addDeployKey",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "title": "kradle-argocd",
                    "readOnly": false
                  },
                  {
                    "action": "addUserSshKey",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "title": "developer key"
                  },
                  {
                    "action": "addCollaborator",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "permission": "write"
                  },
                  {
                    "action": "addTeamRepository",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "team": "maintainers",
                    "permission": "admin"
                  },
                  {
                    "action": "protectBranch",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "branch": "main"
                  },
                  {
                    "action": "createWebhook",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "url": "http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo"
                  }
                ]
              }
            },
            "storage": {
              "mode": "gitea",
              "persistentVolumeClaim": "kradle-gitea-data",
              "owner": "kradle",
              "repository": "kradle-demo",
              "httpUrl": "http://kradle-gitea-http:3000/kradle/kradle-demo.git",
              "sshUrl": "ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git"
            },
            "objectStorage": {
              "lfs": true,
              "artifacts": true
            },
            "search": {
              "provider": "zoekt",
              "enabled": false
            }
          },
          "status": {
            "ready": true,
            "route": {
              "repositoryName": "kradle-demo",
              "backend": "gitea",
              "owner": "kradle",
              "store": "gitea-primary",
              "receivePackReady": true,
              "httpUrl": "http://kradle-gitea-http:3000/kradle/kradle-demo.git",
              "sshUrl": "ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git"
            },
            "gitHosting": {
              "backend": "gitea",
              "httpUrl": "http://kradle-gitea-http:3000/kradle/kradle-demo.git",
              "sshUrl": "ssh://git@kradle-gitea-ssh/kradle/kradle-demo.git",
              "integrationPlan": {
                "backend": "gitea",
                "operations": [
                  {
                    "action": "createOrganization",
                    "owner": "kradle"
                  },
                  {
                    "action": "createRepository",
                    "owner": "kradle",
                    "repo": "kradle-demo"
                  },
                  {
                    "action": "ensureUserMappings",
                    "owner": "kradle"
                  },
                  {
                    "action": "addDeployKey",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "title": "kradle-argocd",
                    "readOnly": false
                  },
                  {
                    "action": "addUserSshKey",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "title": "developer key"
                  },
                  {
                    "action": "addCollaborator",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "permission": "write"
                  },
                  {
                    "action": "addTeamRepository",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "team": "maintainers",
                    "permission": "admin"
                  },
                  {
                    "action": "protectBranch",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "branch": "main"
                  },
                  {
                    "action": "createWebhook",
                    "owner": "kradle",
                    "repo": "kradle-demo",
                    "url": "http://kradle-webhook-worker/repositories/kradle-org-default/kradle-demo"
                  }
                ]
              }
            },
            "storage": "etcd"
          }
        }
      ],
      "projects": [],
      "issues": [],
      "issueSync": {
        "gitea": {
          "backend": "gitea",
          "owner": "default",
          "repo": "_default_",
          "issue": "<issue>",
          "project": null,
          "repositoryRefs": [
            "kradle-demo"
          ],
          "metadataKeys": [
            "kradle.a5c.ai/project",
            "kradle.a5c.ai/repositories"
          ],
          "actions": [
            {
              "action": "ensureOrgMemoryRepository",
              "owner": "default",
              "repo": "_default_"
            },
            {
              "action": "syncIssue",
              "owner": "default",
              "repo": "_default_",
              "issue": "<issue>"
            },
            {
              "action": "writeIssueRepositoryMetadata",
              "issue": "<issue>",
              "repositories": [
                "kradle-demo"
              ]
            }
          ]
        },
        "github": {
          "backend": "github",
          "owner": "default",
          "project": null,
          "issue": "<issue>",
          "repositoryRefs": [
            "kradle-demo"
          ],
          "metadataKeys": [
            "project item fields",
            "kradle repositories field"
          ],
          "actions": [
            "syncProjectItem",
            "syncIssueMetadata",
            "syncRepositoryLinks"
          ]
        }
      },
      "excellentFlows": [
        "Create or import a repository",
        "Browse code and copy clone commands",
        "Review and merge a pull request",
        "Debug a failing pipeline run",
        "Edit runner pool capacity",
        "Inspect and replay webhook deliveries",
        "Save a triage View"
      ],
      "cards": [
        {
          "label": "Repositories",
          "value": 1,
          "href": "/repositories"
        },
        {
          "label": "Projects",
          "value": 0,
          "href": "/agents/projects"
        },
        {
          "label": "Issues",
          "value": 0,
          "href": "/inbox"
        },
        {
          "label": "Pull requests",
          "value": 0,
          "href": "/inbox"
        },
        {
          "label": "Runs",
          "value": 0,
          "href": "/runs"
        },
        {
          "label": "Runner pools",
          "value": 1,
          "href": "/runners-ci"
        },
        {
          "label": "Webhook deliveries",
          "value": 0,
          "href": "/hooks-events"
        }
      ]
    },
    "pullRequestReview": null,
    "failingRun": null,
    "runnerPoolEditor": {
      "resource": {
        "apiVersion": "kradle.a5c.ai/v1alpha1",
        "kind": "RunnerPool",
        "metadata": {
          "namespace": "kradle-org-default",
          "labels": {
            "trustTier": "trusted"
          },
          "annotations": {},
          "name": "trusted-linux",
          "resourceVersion": "1"
        },
        "spec": {
          "organizationRef": "default",
          "image": "ubuntu:24.04",
          "warmReplicas": 1,
          "maxReplicas": 4,
          "trustTier": "trusted",
          "cache": {
            "type": "object-storage"
          },
          "scalingMetric": "queueDepth"
        },
        "status": {
          "readyReplicas": 1,
          "queueDepth": 0,
          "storage": "etcd"
        }
      },
      "fields": [
        "image",
        "resources",
        "warmReplicas",
        "maxReplicas",
        "trustTier",
        "cache"
      ],
      "saveModes": [
        "save capacity",
        "open review"
      ],
      "yaml": "apiVersion: kradle.a5c.ai/v1alpha1\nkind: RunnerPool\nmetadata:\n  namespace: kradle-org-default\n  labels:\n    trustTier: trusted\n  annotations:\n  name: trusted-linux\n  resourceVersion: 1\nspec:\n  organizationRef: default\n  image: ubuntu:24.04\n  warmReplicas: 1\n  maxReplicas: 4\n  trustTier: trusted\n  cache:\n    type: object-storage\n  scalingMetric: queueDepth\nstatus:\n  readyReplicas: 1\n  queueDepth: 0\n  storage: etcd\n"
    },
    "webhookInspector": {
      "subscription": {
        "apiVersion": "kradle.a5c.ai/v1alpha1",
        "kind": "WebhookSubscription",
        "metadata": {
          "namespace": "kradle-org-default",
          "labels": {},
          "annotations": {},
          "name": "chatops",
          "resourceVersion": "1"
        },
        "spec": {
          "organizationRef": "default",
          "url": "https://hooks.example.test/kradle",
          "events": [
            "pullrequest.created",
            "pullrequest.merged"
          ],
          "signing": {
            "algorithm": "hmac-sha256",
            "secretRef": "chatops-secret"
          },
          "mode": "active"
        },
        "status": {
          "ready": true,
          "storage": "etcd"
        }
      },
      "deliveries": [],
      "columns": [
        "phase",
        "signature",
        "attempts",
        "response",
        "latency"
      ],
      "actions": [
        "replay",
        "disable subscription",
        "copy curl"
      ]
    },
    "triageView": null,
    "identityAdmin": {
      "counts": {
        "users": 1,
        "teams": 1,
        "pendingInvites": 1,
        "mappings": 1,
        "repositoryGrants": 0,
        "sshKeys": 0
      },
      "providers": [
        {
          "name": "github",
          "label": "GitHub",
          "type": "github",
          "enabled": true,
          "phase": "Configured"
        },
        {
          "name": "sso",
          "label": "Workspace SSO",
          "type": "oidc",
          "enabled": false,
          "phase": "Disabled"
        }
      ],
      "users": [
        {
          "name": "admin",
          "displayName": "Admin",
          "email": "admin@example.com",
          "teams": [
            "maintainers"
          ],
          "admin": true,
          "disabled": false,
          "phase": "Active"
        }
      ],
      "teams": [
        {
          "name": "maintainers",
          "displayName": "Maintainers",
          "members": [
            "admin"
          ],
          "maintainers": [
            "admin"
          ],
          "repositoryGrants": [
            {
              "repository": "kradle-demo",
              "permission": "admin"
            }
          ]
        }
      ],
      "invites": [
        {
          "name": "new-user-example-com",
          "email": "new-user@example.com",
          "role": "member",
          "teams": [
            "maintainers"
          ],
          "phase": "Pending",
          "expiresAt": "2026-08-17T20:00:41.981Z"
        }
      ],
      "mappings": [
        {
          "name": "sso-admin",
          "user": "admin",
          "provider": "sso",
          "workspaceIdentity": "admin@example.com",
          "repositoryIdentity": "admin",
          "phase": "Synced"
        }
      ],
      "permissions": [],
      "sshKeys": [],
      "reconciliation": {
        "counts": {
          "User": 1,
          "Team": 1,
          "Invite": 1,
          "IdentityMapping": 1
        },
        "phases": {
          "Active": 2,
          "Pending": 1,
          "Synced": 1
        },
        "statuses": [
          {
            "kind": "User",
            "name": "admin",
            "phase": "Active",
            "checks": [
              "User Observed: ready",
              "Workspace Identity Projected: ready",
              "Repository Identity Projected: ready"
            ]
          },
          {
            "kind": "Team",
            "name": "maintainers",
            "phase": "Active",
            "checks": [
              "Team Observed: ready",
              "Team Membership Projected: ready",
              "Repository Grants Projected: ready"
            ]
          },
          {
            "kind": "Invite",
            "name": "new-user-example-com",
            "phase": "Pending",
            "checks": [
              "Invite Observed: ready",
              "Invite Lifecycle Tracked: ready"
            ]
          },
          {
            "kind": "IdentityMapping",
            "name": "sso-admin",
            "phase": "Synced",
            "checks": [
              "Identity Mapping Observed: ready",
              "Workspace Identity Projected: ready",
              "Repository Identity Projected: ready"
            ]
          }
        ],
        "nextActions": [
          "ensure user: admin",
          "ensure repository user: admin",
          "sync team membership: maintainers",
          "sync team repository grant: maintainers",
          "send invite: workspace access",
          "link identity: admin",
          "link repository identity: admin"
        ]
      },
      "org": "default"
    },
    "policyCenter": {
      "engine": "kyverno",
      "mode": "disabled",
      "health": "disabled",
      "detected": false,
      "namespace": "kyverno",
      "policyNamespace": "kradle-org-default",
      "requireForEnforceMode": true,
      "org": "default",
      "profiles": [],
      "templates": [],
      "bindings": [],
      "exceptionRequests": [],
      "kyvernoResources": {},
      "controllers": [],
      "permissions": [],
      "reports": {
        "policyReports": 0,
        "clusterPolicyReports": 0,
        "results": []
      },
      "violations": [],
      "degraded": [],
      "emptyState": "Kyverno integration is disabled. Kradle native RefPolicy and BranchProtection remain available."
    }
  },
  "operations": {
    "image": "ghcr.io/<owner>/<repo>/kradle-controller",
    "chart": "charts/kradle",
    "installCommands": [
      "Install Kradle release package",
      "Apply the demo workspace configuration"
    ],
    "releaseGates": [
      "npm run check",
      "docker build",
      "helm package charts/kradle",
      "npm pack --json"
    ]
  }
}