{
  "schemaVersion": 1,
  "sensitiveFieldsExcluded": true,
  "generatedAt": "1970-01-01T00:00:00.000Z",
  "packageName": "@happyvertical/smrt-projects",
  "packageVersion": "0.51.10",
  "sourceManifestPath": "dist/manifest.json",
  "agentDocPath": "AGENTS.md",
  "sourceHashes": {
    "manifest": "5234599afdb019f57bc71485d3c2d7fe1b9fb72a3add0723e0911de7ad5a3dc9",
    "packageJson": "4ccdb2fc3ffd86c59b00804d43ec7c2e69e00d33bbee0f8dac0449b9e62d0d6a",
    "agents": "1642532c0c1bf16fb07b0184326f76f9fb3b142cb111e39f8e763c2d08be40d3"
  },
  "exports": [
    ".",
    "./manifest",
    "./manifest.json",
    "./playground",
    "./svelte",
    "./ui"
  ],
  "dependencies": {
    "@happyvertical/ai": "catalog:",
    "@happyvertical/logger": "catalog:",
    "@happyvertical/projects": "catalog:",
    "@happyvertical/repos": "catalog:",
    "@happyvertical/smrt-config": "workspace:*",
    "@happyvertical/smrt-core": "workspace:*",
    "@happyvertical/smrt-prompts": "workspace:*",
    "@happyvertical/smrt-svelte": "workspace:*",
    "@happyvertical/smrt-subscriptions": "workspace:*",
    "@happyvertical/smrt-tenancy": "workspace:*",
    "@happyvertical/smrt-types": "workspace:*",
    "@happyvertical/smrt-ui": "workspace:*",
    "@happyvertical/sql": "catalog:",
    "@happyvertical/utils": "catalog:",
    "@happyvertical/smrt-cli": "workspace:*",
    "@happyvertical/smrt-vitest": "workspace:*",
    "@sveltejs/package": "^2.5.8",
    "@sveltejs/vite-plugin-svelte": "^7.1.2",
    "@types/node": "24.13.2",
    "fast-glob": "3.3.3",
    "svelte": "^5.56.4",
    "svelte-check": "^4.7.1",
    "typescript": "5.9.3",
    "vite": "8.1.4",
    "vitest": "4.1.10"
  },
  "smrtDependencies": [
    "@happyvertical/smrt-cli",
    "@happyvertical/smrt-config",
    "@happyvertical/smrt-core",
    "@happyvertical/smrt-prompts",
    "@happyvertical/smrt-subscriptions",
    "@happyvertical/smrt-svelte",
    "@happyvertical/smrt-tenancy",
    "@happyvertical/smrt-types",
    "@happyvertical/smrt-ui",
    "@happyvertical/smrt-vitest"
  ],
  "sdkDependencies": [
    "@happyvertical/ai",
    "@happyvertical/logger",
    "@happyvertical/projects",
    "@happyvertical/repos",
    "@happyvertical/sql",
    "@happyvertical/utils"
  ],
  "tags": [
    "agents",
    "ai",
    "cross-package",
    "github",
    "gitlab",
    "issues",
    "projects",
    "smrt"
  ],
  "risks": [
    "cross-package-refs:6",
    "sensitive-fields-excluded",
    "sti-inheritance"
  ],
  "objects": [
    {
      "name": "DevelopmentRequestHistoryCollection",
      "qualifiedName": "@happyvertical/smrt-projects:DevelopmentRequestHistoryCollection",
      "collection": "developmentrequesthistories",
      "tableName": "development_request_histories",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "listForRequest"
      ],
      "methodSignatures": [
        {
          "name": "listForRequest",
          "async": true,
          "params": [
            "tenantId: string",
            "requestId: string"
          ],
          "returns": "Promise<DevelopmentRequestHistory[]>"
        }
      ],
      "surfaces": [],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "listForRequest",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:DevelopmentRequestHistoryCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "DevelopmentRequestCollection",
      "qualifiedName": "@happyvertical/smrt-projects:DevelopmentRequestCollection",
      "collection": "developmentrequests",
      "tableName": "development_requests",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "createManaged",
        "listByIntegrationRequester",
        "listForProject",
        "transitionStatus"
      ],
      "methodSignatures": [
        {
          "name": "createManaged",
          "async": true,
          "params": [
            "input: any"
          ],
          "returns": "Promise<DevelopmentRequest>"
        },
        {
          "name": "listByIntegrationRequester",
          "async": true,
          "params": [
            "input: object"
          ],
          "returns": "Promise<DevelopmentRequest[]>"
        },
        {
          "name": "listForProject",
          "async": true,
          "params": [
            "tenantId: string",
            "projectId: string",
            "status?: DevelopmentRequestStatus"
          ],
          "returns": "Promise<DevelopmentRequest[]>"
        },
        {
          "name": "transitionStatus",
          "async": true,
          "params": [
            "tenantId: string",
            "requestId: string",
            "transition: DevelopmentRequestTransitionInput"
          ],
          "returns": "Promise<DevelopmentRequest>"
        }
      ],
      "surfaces": [],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "createManaged",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:DevelopmentRequestCollection"
        },
        {
          "kind": "api",
          "operation": "listByIntegrationRequester",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:DevelopmentRequestCollection"
        },
        {
          "kind": "api",
          "operation": "listForProject",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:DevelopmentRequestCollection"
        },
        {
          "kind": "api",
          "operation": "transitionStatus",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:DevelopmentRequestCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "IssueCollection",
      "qualifiedName": "@happyvertical/smrt-projects:IssueCollection",
      "collection": "issues",
      "tableName": "issues",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "batchSync",
        "discover",
        "findByAssignee",
        "findByLabel",
        "findByNumber",
        "findByRepository",
        "findByTenant",
        "findGlobal",
        "findNeedingReview",
        "findOpen",
        "findWithGlobals",
        "findWithUnincorporatedFeedback"
      ],
      "methodSignatures": [
        {
          "name": "batchSync",
          "async": true,
          "params": [
            "repository: Repository",
            "options?: object"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "discover",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findByAssignee",
          "async": true,
          "params": [
            "assignee: string",
            "repositoryId?: string"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findByLabel",
          "async": true,
          "params": [
            "label: string",
            "repositoryId?: string"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findByNumber",
          "async": true,
          "params": [
            "repositoryId: string",
            "number: number"
          ],
          "returns": "Promise<Issue | null>"
        },
        {
          "name": "findByRepository",
          "async": true,
          "params": [
            "repositoryId: string"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findByTenant",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findGlobal",
          "async": true,
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findNeedingReview",
          "async": true,
          "params": [
            "repositoryId?: string"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findOpen",
          "async": true,
          "params": [
            "repositoryId?: string"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findWithGlobals",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "findWithUnincorporatedFeedback",
          "async": true,
          "params": [
            "repositoryId?: string"
          ],
          "returns": "Promise<Issue[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "issues.findByRepository",
          "operation": "findByRepository",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findByRepository",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findOpen",
          "operation": "findOpen",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findOpen",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findByLabel",
          "operation": "findByLabel",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findByLabel",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findByAssignee",
          "operation": "findByAssignee",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findByAssignee",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findNeedingReview",
          "operation": "findNeedingReview",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findNeedingReview",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findByNumber",
          "operation": "findByNumber",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findByNumber",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findWithUnincorporatedFeedback",
          "operation": "findWithUnincorporatedFeedback",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findWithUnincorporatedFeedback",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findByTenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findByTenant",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findGlobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findGlobal",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findWithGlobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:IssueCollection",
          "path": "/issues/findWithGlobals",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "issuecollection_discover",
          "operation": "discover",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findByRepository",
          "operation": "findByRepository",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findOpen",
          "operation": "findOpen",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findByLabel",
          "operation": "findByLabel",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findByAssignee",
          "operation": "findByAssignee",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findNeedingReview",
          "operation": "findNeedingReview",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findByNumber",
          "operation": "findByNumber",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findWithUnincorporatedFeedback",
          "operation": "findWithUnincorporatedFeedback",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_batchSync",
          "operation": "batchSync",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findByTenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findGlobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "cli",
          "name": "issuecollection_findWithGlobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_discover",
          "operation": "discover",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findbyrepository",
          "operation": "findByRepository",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findopen",
          "operation": "findOpen",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findbylabel",
          "operation": "findByLabel",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findbyassignee",
          "operation": "findByAssignee",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findneedingreview",
          "operation": "findNeedingReview",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findbynumber",
          "operation": "findByNumber",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findwithunincorporatedfeedback",
          "operation": "findWithUnincorporatedFeedback",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_batchsync",
          "operation": "batchSync",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findbytenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findglobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "mcp",
          "name": "issuecollection_findwithglobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "batchSync",
          "code": "not-wireable",
          "reason": "not routed: parameter `repository`: `Repository` is a model class instance, not JSON data",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        },
        {
          "kind": "api",
          "operation": "discover",
          "code": "not-wireable",
          "reason": "not routed: `options` contains a member where `Repository` is a model class instance, not JSON data",
          "objectName": "@happyvertical/smrt-projects:IssueCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ProjectIntegrationAuditCollection",
      "qualifiedName": "@happyvertical/smrt-projects:ProjectIntegrationAuditCollection",
      "collection": "projectintegrationaudits",
      "tableName": "project_integration_audits",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "listForIntegration"
      ],
      "methodSignatures": [
        {
          "name": "listForIntegration",
          "async": true,
          "params": [
            "tenantId: string",
            "integrationId: string"
          ],
          "returns": "Promise<ProjectIntegrationAudit[]>"
        }
      ],
      "surfaces": [],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "listForIntegration",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationAuditCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ProjectIntegrationCollection",
      "qualifiedName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
      "collection": "projectintegrations",
      "tableName": "project_integrations",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "authenticate",
        "findActive",
        "listForProject",
        "provision",
        "revoke",
        "rotate"
      ],
      "methodSignatures": [
        {
          "name": "authenticate",
          "async": true,
          "params": [
            "credential: string"
          ],
          "returns": "Promise<ProjectIntegration | null>"
        },
        {
          "name": "findActive",
          "async": true,
          "params": [
            "tenantId: string",
            "integrationId: string"
          ],
          "returns": "Promise<ProjectIntegration | null>"
        },
        {
          "name": "listForProject",
          "async": true,
          "params": [
            "tenantId: string",
            "projectId: string"
          ],
          "returns": "Promise<ProjectIntegration[]>"
        },
        {
          "name": "provision",
          "async": true,
          "params": [
            "input: object"
          ],
          "returns": "Promise<object>"
        },
        {
          "name": "revoke",
          "async": true,
          "params": [
            "tenantId: string",
            "integrationId: string"
          ],
          "returns": "Promise<ProjectIntegration>"
        },
        {
          "name": "rotate",
          "async": true,
          "params": [
            "tenantId: string",
            "integrationId: string"
          ],
          "returns": "Promise<object>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "projectintegrations.provision",
          "operation": "provision",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
          "path": "/projectintegrations/provision",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projectintegrations.rotate",
          "operation": "rotate",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
          "path": "/projectintegrations/rotate",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projectintegrations.revoke",
          "operation": "revoke",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
          "path": "/projectintegrations/revoke",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projectintegrations.authenticate",
          "operation": "authenticate",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
          "path": "/projectintegrations/authenticate",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projectintegrations.listForProject",
          "operation": "listForProject",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
          "path": "/projectintegrations/listForProject",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projectintegrations.findActive",
          "operation": "findActive",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
          "path": "/projectintegrations/findActive",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "projectintegrationcollection_provision",
          "operation": "provision",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "cli",
          "name": "projectintegrationcollection_rotate",
          "operation": "rotate",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "cli",
          "name": "projectintegrationcollection_revoke",
          "operation": "revoke",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "cli",
          "name": "projectintegrationcollection_authenticate",
          "operation": "authenticate",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "cli",
          "name": "projectintegrationcollection_listForProject",
          "operation": "listForProject",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "cli",
          "name": "projectintegrationcollection_findActive",
          "operation": "findActive",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "mcp",
          "name": "projectintegrationcollection_provision",
          "operation": "provision",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "mcp",
          "name": "projectintegrationcollection_rotate",
          "operation": "rotate",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "mcp",
          "name": "projectintegrationcollection_revoke",
          "operation": "revoke",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "mcp",
          "name": "projectintegrationcollection_authenticate",
          "operation": "authenticate",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "mcp",
          "name": "projectintegrationcollection_listforproject",
          "operation": "listForProject",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        },
        {
          "kind": "mcp",
          "name": "projectintegrationcollection_findactive",
          "operation": "findActive",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ProjectCollection",
      "qualifiedName": "@happyvertical/smrt-projects:ProjectCollection",
      "collection": "projects",
      "tableName": "projects",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findByOwner",
        "findByProvider",
        "findByTenant",
        "findByTitle",
        "findGlobal",
        "findWithGlobals",
        "findWithItemsInStatus",
        "getOrCreate",
        "getStatistics",
        "syncAll"
      ],
      "methodSignatures": [
        {
          "name": "findByOwner",
          "async": true,
          "params": [
            "owner: string"
          ],
          "returns": "Promise<Project[]>"
        },
        {
          "name": "findByProvider",
          "async": true,
          "params": [
            "providerType: ProjectProviderType"
          ],
          "returns": "Promise<Project[]>"
        },
        {
          "name": "findByTenant",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Project[]>"
        },
        {
          "name": "findByTitle",
          "async": true,
          "params": [
            "title: string"
          ],
          "returns": "Promise<Project | null>"
        },
        {
          "name": "findGlobal",
          "async": true,
          "returns": "Promise<Project[]>"
        },
        {
          "name": "findWithGlobals",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Project[]>"
        },
        {
          "name": "findWithItemsInStatus",
          "async": true,
          "params": [
            "status: string"
          ],
          "returns": "Promise<Project[]>"
        },
        {
          "name": "getOrCreate",
          "async": true,
          "params": [
            "projectId: string",
            "options?: object"
          ],
          "returns": "Promise<Project>"
        },
        {
          "name": "getStatistics",
          "async": true,
          "params": [
            "projectId: string"
          ],
          "returns": "Promise<object>"
        },
        {
          "name": "syncAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Project[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "projects.findByTitle",
          "operation": "findByTitle",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/findByTitle",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.findByOwner",
          "operation": "findByOwner",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/findByOwner",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.findByProvider",
          "operation": "findByProvider",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/findByProvider",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.getOrCreate",
          "operation": "getOrCreate",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/getOrCreate",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.syncAll",
          "operation": "syncAll",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/syncAll",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.findWithItemsInStatus",
          "operation": "findWithItemsInStatus",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/findWithItemsInStatus",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.getStatistics",
          "operation": "getStatistics",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/getStatistics",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.findByTenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/findByTenant",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.findGlobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/findGlobal",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.findWithGlobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection",
          "path": "/projects/findWithGlobals",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "projectcollection_findByTitle",
          "operation": "findByTitle",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_findByOwner",
          "operation": "findByOwner",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_findByProvider",
          "operation": "findByProvider",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_getOrCreate",
          "operation": "getOrCreate",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_syncAll",
          "operation": "syncAll",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_findWithItemsInStatus",
          "operation": "findWithItemsInStatus",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_getStatistics",
          "operation": "getStatistics",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_findByTenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_findGlobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "cli",
          "name": "projectcollection_findWithGlobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_findbytitle",
          "operation": "findByTitle",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_findbyowner",
          "operation": "findByOwner",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_findbyprovider",
          "operation": "findByProvider",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_getorcreate",
          "operation": "getOrCreate",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_syncall",
          "operation": "syncAll",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_findwithitemsinstatus",
          "operation": "findWithItemsInStatus",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_getstatistics",
          "operation": "getStatistics",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_findbytenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_findglobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        },
        {
          "kind": "mcp",
          "name": "projectcollection_findwithglobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:ProjectCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "PullRequestCollection",
      "qualifiedName": "@happyvertical/smrt-projects:PullRequestCollection",
      "collection": "issues",
      "tableName": "issues",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "batchSync",
        "discover",
        "findAIReadyToMerge",
        "findByBranch",
        "findByNumber",
        "findByRepository",
        "findBySize",
        "findByTenant",
        "findDrafts",
        "findGlobal",
        "findOpen",
        "findReadyToMerge",
        "findWithGlobals"
      ],
      "methodSignatures": [
        {
          "name": "batchSync",
          "async": true,
          "params": [
            "repository: Repository",
            "options?: object"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "discover",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findAIReadyToMerge",
          "async": true,
          "params": [
            "repositoryId?: string"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findByBranch",
          "async": true,
          "params": [
            "branch: string",
            "repositoryId?: string"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findByNumber",
          "async": true,
          "params": [
            "repositoryId: string",
            "number: number"
          ],
          "returns": "Promise<PullRequest | null>"
        },
        {
          "name": "findByRepository",
          "async": true,
          "params": [
            "repositoryId: string"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findBySize",
          "async": true,
          "params": [
            "size: 'xs' | 's' | 'm' | 'l' | 'xl'",
            "repositoryId?: string"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findByTenant",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findDrafts",
          "async": true,
          "params": [
            "repositoryId?: string"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findGlobal",
          "async": true,
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findOpen",
          "async": true,
          "params": [
            "repositoryId?: string"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findReadyToMerge",
          "async": true,
          "params": [
            "repositoryId?: string"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "findWithGlobals",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<PullRequest[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "issues.findByRepository",
          "operation": "findByRepository",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findByRepository",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findOpen",
          "operation": "findOpen",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findOpen",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findDrafts",
          "operation": "findDrafts",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findDrafts",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findReadyToMerge",
          "operation": "findReadyToMerge",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findReadyToMerge",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findByBranch",
          "operation": "findByBranch",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findByBranch",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findByNumber",
          "operation": "findByNumber",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findByNumber",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findAIReadyToMerge",
          "operation": "findAIReadyToMerge",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findAIReadyToMerge",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findBySize",
          "operation": "findBySize",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findBySize",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findByTenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findByTenant",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findGlobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findGlobal",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.findWithGlobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
          "path": "/issues/findWithGlobals",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_discover",
          "operation": "discover",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findByRepository",
          "operation": "findByRepository",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findOpen",
          "operation": "findOpen",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findDrafts",
          "operation": "findDrafts",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findReadyToMerge",
          "operation": "findReadyToMerge",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findByBranch",
          "operation": "findByBranch",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findByNumber",
          "operation": "findByNumber",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findAIReadyToMerge",
          "operation": "findAIReadyToMerge",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findBySize",
          "operation": "findBySize",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_batchSync",
          "operation": "batchSync",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findByTenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findGlobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "cli",
          "name": "pullrequestcollection_findWithGlobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_discover",
          "operation": "discover",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findbyrepository",
          "operation": "findByRepository",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findopen",
          "operation": "findOpen",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_finddrafts",
          "operation": "findDrafts",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findreadytomerge",
          "operation": "findReadyToMerge",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findbybranch",
          "operation": "findByBranch",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findbynumber",
          "operation": "findByNumber",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findaireadytomerge",
          "operation": "findAIReadyToMerge",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findbysize",
          "operation": "findBySize",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_batchsync",
          "operation": "batchSync",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findbytenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findglobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "mcp",
          "name": "pullrequestcollection_findwithglobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "batchSync",
          "code": "not-wireable",
          "reason": "not routed: parameter `repository`: `Repository` is a model class instance, not JSON data",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        },
        {
          "kind": "api",
          "operation": "discover",
          "code": "not-wireable",
          "reason": "not routed: `options` contains a member where `Repository` is a model class instance, not JSON data",
          "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "RepositoryCollection",
      "qualifiedName": "@happyvertical/smrt-projects:RepositoryCollection",
      "collection": "repositories",
      "tableName": "repositories",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findByFullName",
        "findByOwner",
        "findByProvider",
        "findByTenant",
        "findGlobal",
        "findWithGlobals",
        "findWithOpenIssues",
        "getOrCreate",
        "syncAll"
      ],
      "methodSignatures": [
        {
          "name": "findByFullName",
          "async": true,
          "params": [
            "owner: string",
            "name: string"
          ],
          "returns": "Promise<Repository | null>"
        },
        {
          "name": "findByOwner",
          "async": true,
          "params": [
            "owner: string"
          ],
          "returns": "Promise<Repository[]>"
        },
        {
          "name": "findByProvider",
          "async": true,
          "params": [
            "providerType: RepositoryProviderType"
          ],
          "returns": "Promise<Repository[]>"
        },
        {
          "name": "findByTenant",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Repository[]>"
        },
        {
          "name": "findGlobal",
          "async": true,
          "returns": "Promise<Repository[]>"
        },
        {
          "name": "findWithGlobals",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Repository[]>"
        },
        {
          "name": "findWithOpenIssues",
          "async": true,
          "returns": "Promise<Repository[]>"
        },
        {
          "name": "getOrCreate",
          "async": true,
          "params": [
            "owner: string",
            "name: string",
            "options?: object"
          ],
          "returns": "Promise<Repository>"
        },
        {
          "name": "syncAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Repository[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "repositories.findByFullName",
          "operation": "findByFullName",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/findByFullName",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.findByOwner",
          "operation": "findByOwner",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/findByOwner",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.findByProvider",
          "operation": "findByProvider",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/findByProvider",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.getOrCreate",
          "operation": "getOrCreate",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/getOrCreate",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.syncAll",
          "operation": "syncAll",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/syncAll",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.findWithOpenIssues",
          "operation": "findWithOpenIssues",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/findWithOpenIssues",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.findByTenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/findByTenant",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.findGlobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/findGlobal",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.findWithGlobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
          "path": "/repositories/findWithGlobals",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_findByFullName",
          "operation": "findByFullName",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_findByOwner",
          "operation": "findByOwner",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_findByProvider",
          "operation": "findByProvider",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_getOrCreate",
          "operation": "getOrCreate",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_syncAll",
          "operation": "syncAll",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_findWithOpenIssues",
          "operation": "findWithOpenIssues",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_findByTenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_findGlobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "cli",
          "name": "repositorycollection_findWithGlobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_findbyfullname",
          "operation": "findByFullName",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_findbyowner",
          "operation": "findByOwner",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_findbyprovider",
          "operation": "findByProvider",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_getorcreate",
          "operation": "getOrCreate",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_syncall",
          "operation": "syncAll",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_findwithopenissues",
          "operation": "findWithOpenIssues",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_findbytenant",
          "operation": "findByTenant",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_findglobal",
          "operation": "findGlobal",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        },
        {
          "kind": "mcp",
          "name": "repositorycollection_findwithglobals",
          "operation": "findWithGlobals",
          "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Comment",
      "qualifiedName": "@happyvertical/smrt-projects:Comment",
      "collection": "comments",
      "tableName": "comments",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "issueId",
          "type": "foreignKey",
          "required": false,
          "related": "Issue",
          "columnType": "UUID"
        },
        {
          "name": "commentId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "author",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "createdAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "url",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        }
      ],
      "relationships": [
        {
          "name": "issueId",
          "type": "foreignKey",
          "required": false,
          "related": "Issue",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "extractActionItems",
        "getSentiment",
        "isApproval",
        "isQuestion",
        "requestsChanges",
        "summarize"
      ],
      "methodSignatures": [
        {
          "name": "extractActionItems",
          "async": true,
          "returns": "Promise<string[]>"
        },
        {
          "name": "getSentiment",
          "async": true,
          "returns": "Promise<'positive' | 'negative' | 'neutral'>"
        },
        {
          "name": "isApproval",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "isQuestion",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "requestsChanges",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "summarize",
          "async": true,
          "returns": "Promise<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "comments.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Comment",
          "path": "/comments",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "comments.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Comment",
          "path": "/comments/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "comment_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Comment"
        },
        {
          "kind": "cli",
          "name": "comment_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Comment"
        },
        {
          "kind": "mcp",
          "name": "comment_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Comment"
        },
        {
          "kind": "mcp",
          "name": "comment_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Comment"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "extractActionItems",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Comment"
        },
        {
          "kind": "api",
          "operation": "getSentiment",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Comment"
        },
        {
          "kind": "api",
          "operation": "isApproval",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Comment"
        },
        {
          "kind": "api",
          "operation": "isQuestion",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Comment"
        },
        {
          "kind": "api",
          "operation": "requestsChanges",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Comment"
        },
        {
          "kind": "api",
          "operation": "summarize",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Comment"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "DevelopmentRequest",
      "qualifiedName": "@happyvertical/smrt-projects:DevelopmentRequest",
      "collection": "developmentrequests",
      "tableName": "development_requests",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "projectId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "integrationId",
          "type": "foreignKey",
          "required": true,
          "related": "ProjectIntegration",
          "columnType": "UUID"
        },
        {
          "name": "requesterId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "participantId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "type",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "feature"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "evidence",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "[]"
        },
        {
          "name": "visibility",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "requester"
        },
        {
          "name": "origin",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "managed-app"
        },
        {
          "name": "discussion",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "submitted"
        }
      ],
      "relationships": [
        {
          "name": "integrationId",
          "type": "foreignKey",
          "required": true,
          "related": "ProjectIntegration",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getEvidence",
        "initialize",
        "setEvidence"
      ],
      "methodSignatures": [
        {
          "name": "getEvidence",
          "returns": "DevelopmentRequestEvidence[]"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "setEvidence",
          "params": [
            "value: DevelopmentRequestEvidence[] | string"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getEvidence",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:DevelopmentRequest"
        },
        {
          "kind": "api",
          "operation": "initialize",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:DevelopmentRequest"
        },
        {
          "kind": "api",
          "operation": "setEvidence",
          "code": "api-disabled",
          "reason": "api is disabled",
          "objectName": "@happyvertical/smrt-projects:DevelopmentRequest"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "DevelopmentRequestHistory",
      "qualifiedName": "@happyvertical/smrt-projects:DevelopmentRequestHistory",
      "collection": "developmentrequesthistories",
      "tableName": "development_request_histories",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "requestId",
          "type": "foreignKey",
          "required": true,
          "related": "DevelopmentRequest",
          "columnType": "UUID"
        },
        {
          "name": "fromStatus",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "toStatus",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "submitted"
        },
        {
          "name": "actorType",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "system"
        },
        {
          "name": "actorId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "note",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "requestId",
          "type": "foreignKey",
          "required": true,
          "related": "DevelopmentRequest",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Issue",
      "qualifiedName": "@happyvertical/smrt-projects:Issue",
      "collection": "issues",
      "tableName": "issues",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "created_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updated_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "repositoryId",
          "type": "foreignKey",
          "required": true,
          "related": "Repository",
          "columnType": "UUID"
        },
        {
          "name": "number",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "nodeId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "state",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "open"
        },
        {
          "name": "author",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "labels",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "assignees",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "commentsCount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "lastSyncedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "originalBody",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "synthesisCount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "relationships": [
        {
          "name": "repositoryId",
          "type": "foreignKey",
          "required": true,
          "related": "Repository",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "addComment",
        "addLabels",
        "assign",
        "clearCache",
        "close",
        "getClient",
        "getComments",
        "getRepository",
        "getUrl",
        "incorporateFeedback",
        "isBugReport",
        "isFeatureRequest",
        "needsReview",
        "removeLabel",
        "rollback",
        "suggestLabels",
        "sync"
      ],
      "methodSignatures": [
        {
          "name": "addComment",
          "async": true,
          "params": [
            "body: string"
          ],
          "returns": "Promise<Comment>"
        },
        {
          "name": "addLabels",
          "async": true,
          "params": [
            "labels: string[]"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "assign",
          "async": true,
          "params": [
            "assignees: string[]"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "clearCache",
          "returns": "void"
        },
        {
          "name": "close",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "getClient",
          "async": true,
          "returns": "Promise<IRepository>"
        },
        {
          "name": "getComments",
          "async": true,
          "returns": "Promise<Comment[]>"
        },
        {
          "name": "getRepository",
          "async": true,
          "returns": "Promise<Repository>"
        },
        {
          "name": "getUrl",
          "returns": "string"
        },
        {
          "name": "incorporateFeedback",
          "async": true,
          "params": [
            "options?: IncorporateFeedbackOptions"
          ],
          "returns": "Promise<IncorporateFeedbackResult>"
        },
        {
          "name": "isBugReport",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "isFeatureRequest",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "needsReview",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "removeLabel",
          "async": true,
          "params": [
            "label: string"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "rollback",
          "async": true,
          "returns": "Promise<object>"
        },
        {
          "name": "suggestLabels",
          "async": true,
          "returns": "Promise<string[]>"
        },
        {
          "name": "sync",
          "async": true,
          "params": [
            "options?: SyncOptions"
          ],
          "returns": "Promise<this>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context",
        "_meta_type"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "issues.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Issue",
          "path": "/issues",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "issues.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Issue",
          "path": "/issues/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "issues.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-projects:Issue",
          "path": "/issues",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-projects:Issue",
          "path": "/issues/[id]",
          "method": "PATCH"
        },
        {
          "kind": "cli",
          "name": "issue_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "cli",
          "name": "issue_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "cli",
          "name": "issue_sync",
          "operation": "sync",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "cli",
          "name": "issue_incorporateFeedback",
          "operation": "incorporateFeedback",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "cli",
          "name": "issue_rollback",
          "operation": "rollback",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "mcp",
          "name": "issue_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "mcp",
          "name": "issue_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "mcp",
          "name": "issue_sync",
          "operation": "sync",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "mcp",
          "name": "issue_incorporatefeedback",
          "operation": "incorporateFeedback",
          "objectName": "@happyvertical/smrt-projects:Issue"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "addComment",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "addLabels",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "assign",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "clearCache",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "close",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "getClient",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "getComments",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "getRepository",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "getUrl",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "incorporateFeedback",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "isBugReport",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "isFeatureRequest",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "needsReview",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "removeLabel",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "rollback",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "suggestLabels",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        },
        {
          "kind": "api",
          "operation": "sync",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Issue"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Label",
      "qualifiedName": "@happyvertical/smrt-projects:Label",
      "collection": "labels",
      "tableName": "labels",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "repositoryId",
          "type": "foreignKey",
          "required": false,
          "related": "Repository",
          "columnType": "UUID"
        },
        {
          "name": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "color",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        }
      ],
      "relationships": [
        {
          "name": "repositoryId",
          "type": "foreignKey",
          "required": false,
          "related": "Repository",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "createInRepository",
        "getCategory",
        "getHexColor",
        "getPriorityLevel",
        "isPriorityLabel",
        "isStatusLabel",
        "isTypeLabel",
        "updateInRepository"
      ],
      "methodSignatures": [
        {
          "name": "createInRepository",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "getCategory",
          "returns": "'type' | 'priority' | 'status' | 'area' | 'other'"
        },
        {
          "name": "getHexColor",
          "returns": "string"
        },
        {
          "name": "getPriorityLevel",
          "returns": "number | null"
        },
        {
          "name": "isPriorityLabel",
          "returns": "boolean"
        },
        {
          "name": "isStatusLabel",
          "returns": "boolean"
        },
        {
          "name": "isTypeLabel",
          "returns": "boolean"
        },
        {
          "name": "updateInRepository",
          "async": true,
          "returns": "Promise<void>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "labels.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Label",
          "path": "/labels",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "labels.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Label",
          "path": "/labels/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "labels.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-projects:Label",
          "path": "/labels",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "labels.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-projects:Label",
          "path": "/labels/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "labels.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-projects:Label",
          "path": "/labels/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "label_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "cli",
          "name": "label_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "cli",
          "name": "label_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "cli",
          "name": "label_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "cli",
          "name": "label_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "mcp",
          "name": "label_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "mcp",
          "name": "label_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "mcp",
          "name": "label_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-projects:Label"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "createInRepository",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "api",
          "operation": "getCategory",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "api",
          "operation": "getHexColor",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "api",
          "operation": "getPriorityLevel",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "api",
          "operation": "isPriorityLabel",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "api",
          "operation": "isStatusLabel",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "api",
          "operation": "isTypeLabel",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Label"
        },
        {
          "kind": "api",
          "operation": "updateInRepository",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Label"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Project",
      "qualifiedName": "@happyvertical/smrt-projects:Project",
      "collection": "projects",
      "tableName": "projects",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "projectId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "projectNumber",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "owner",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "url",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "providerType",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "github"
        },
        {
          "name": "tokenConfigKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "GITHUB_TOKEN"
        },
        {
          "name": "statuses",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "fields",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "statusFieldId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "statusOptions",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": {}
        },
        {
          "name": "lastSyncedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [],
      "methods": [
        "addItem",
        "analyzeHealth",
        "clearClient",
        "getByTitle",
        "getClient",
        "getFields",
        "getItem",
        "getItemsByStatus",
        "getStatuses",
        "listItems",
        "moveItem",
        "removeItem",
        "sync",
        "updateItemField",
        "updateItemStatus"
      ],
      "methodSignatures": [
        {
          "name": "addItem",
          "async": true,
          "params": [
            "item: Issue | PullRequest"
          ],
          "returns": "Promise<ProjectItem>"
        },
        {
          "name": "analyzeHealth",
          "async": true,
          "returns": "Promise<string>"
        },
        {
          "name": "clearClient",
          "returns": "void"
        },
        {
          "name": "getByTitle",
          "async": true,
          "static": true,
          "params": [
            "title: string",
            "options?: SmrtObjectOptions"
          ],
          "returns": "Promise<Project | null>"
        },
        {
          "name": "getClient",
          "async": true,
          "returns": "Promise<IProject>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<ProjectField[]>"
        },
        {
          "name": "getItem",
          "async": true,
          "params": [
            "itemId: string"
          ],
          "returns": "Promise<ProjectItem | null>"
        },
        {
          "name": "getItemsByStatus",
          "async": true,
          "params": [
            "status: string"
          ],
          "returns": "Promise<ProjectItem[]>"
        },
        {
          "name": "getStatuses",
          "async": true,
          "returns": "Promise<ProjectStatus[]>"
        },
        {
          "name": "listItems",
          "async": true,
          "params": [
            "filters?: ItemFilters"
          ],
          "returns": "Promise<ProjectItem[]>"
        },
        {
          "name": "moveItem",
          "async": true,
          "params": [
            "item: Issue | PullRequest",
            "status: string"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeItem",
          "async": true,
          "params": [
            "itemId: string"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "sync",
          "async": true,
          "params": [
            "options?: SyncOptions"
          ],
          "returns": "Promise<this>"
        },
        {
          "name": "updateItemField",
          "async": true,
          "params": [
            "itemId: string",
            "fieldId: string",
            "value: unknown"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "updateItemStatus",
          "async": true,
          "params": [
            "itemId: string",
            "status: string"
          ],
          "returns": "Promise<void>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "projects.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Project",
          "path": "/projects",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "projects.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Project",
          "path": "/projects/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "projects.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-projects:Project",
          "path": "/projects",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "projects.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-projects:Project",
          "path": "/projects/[id]",
          "method": "PATCH"
        },
        {
          "kind": "cli",
          "name": "project_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "cli",
          "name": "project_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "cli",
          "name": "project_sync",
          "operation": "sync",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "cli",
          "name": "project_addItem",
          "operation": "addItem",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "cli",
          "name": "project_listItems",
          "operation": "listItems",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "cli",
          "name": "project_updateItemStatus",
          "operation": "updateItemStatus",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "mcp",
          "name": "project_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "mcp",
          "name": "project_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "mcp",
          "name": "project_sync",
          "operation": "sync",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "mcp",
          "name": "project_additem",
          "operation": "addItem",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "mcp",
          "name": "project_updateitemstatus",
          "operation": "updateItemStatus",
          "objectName": "@happyvertical/smrt-projects:Project"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "addItem",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "analyzeHealth",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "clearClient",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "getByTitle",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "getClient",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "getFields",
          "code": "lifecycle-method",
          "reason": "`getFields` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "getItem",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "getItemsByStatus",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "getStatuses",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "listItems",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "moveItem",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "removeItem",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "sync",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "updateItemField",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        },
        {
          "kind": "api",
          "operation": "updateItemStatus",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Project"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ProjectIntegration",
      "qualifiedName": "@happyvertical/smrt-projects:ProjectIntegration",
      "collection": "projectintegrations",
      "tableName": "project_integrations",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "projectId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "capabilities",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "active"
        },
        {
          "name": "revokedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [],
      "methods": [
        "hasCapability",
        "isActive"
      ],
      "methodSignatures": [
        {
          "name": "hasCapability",
          "params": [
            "capability: ProjectIntegrationCapability"
          ],
          "returns": "boolean"
        },
        {
          "name": "isActive",
          "returns": "boolean"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "project_id",
        "name"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "projectintegrations.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegration",
          "path": "/projectintegrations",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "projectintegrations.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegration",
          "path": "/projectintegrations/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "projectintegration_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
        },
        {
          "kind": "cli",
          "name": "projectintegration_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
        },
        {
          "kind": "mcp",
          "name": "projectintegration_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
        },
        {
          "kind": "mcp",
          "name": "projectintegration_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "hasCapability",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
        },
        {
          "kind": "api",
          "operation": "isActive",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ProjectIntegrationAudit",
      "qualifiedName": "@happyvertical/smrt-projects:ProjectIntegrationAudit",
      "collection": "projectintegrationaudits",
      "tableName": "project_integration_audits",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "integrationId",
          "type": "foreignKey",
          "required": true,
          "related": "ProjectIntegration",
          "columnType": "UUID"
        },
        {
          "name": "action",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "created"
        },
        {
          "name": "note",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "integrationId",
          "type": "foreignKey",
          "required": true,
          "related": "ProjectIntegration",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "PullRequest",
      "qualifiedName": "@happyvertical/smrt-projects:PullRequest",
      "collection": "issues",
      "tableName": "issues",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "Issue",
      "fields": [
        {
          "name": "created_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updated_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "repositoryId",
          "type": "foreignKey",
          "required": true,
          "related": "Repository",
          "columnType": "UUID"
        },
        {
          "name": "number",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "nodeId",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "state",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "open"
        },
        {
          "name": "author",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "labels",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "assignees",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "commentsCount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "lastSyncedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "originalBody",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "synthesisCount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "headRef",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "baseRef",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "merged",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN",
          "default": false
        },
        {
          "name": "mergedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "mergeable",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN",
          "default": true
        },
        {
          "name": "draft",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN",
          "default": false
        },
        {
          "name": "additions",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "deletions",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "changedFiles",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "relationships": [
        {
          "name": "repositoryId",
          "type": "foreignKey",
          "required": true,
          "related": "Repository",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "addComment",
        "addLabels",
        "assign",
        "clearCache",
        "close",
        "convertToDraft",
        "findLinkedIssue",
        "getChangeSize",
        "getClient",
        "getComments",
        "getRepository",
        "getUrl",
        "incorporateFeedback",
        "isBugReport",
        "isFeatureRequest",
        "isReadyToMerge",
        "markReady",
        "merge",
        "needsReview",
        "removeLabel",
        "requestReviewers",
        "rollback",
        "suggestLabels",
        "suggestReviewers",
        "summarize",
        "sync"
      ],
      "methodSignatures": [
        {
          "name": "addComment",
          "async": true,
          "params": [
            "body: string"
          ],
          "returns": "Promise<Comment>"
        },
        {
          "name": "addLabels",
          "async": true,
          "params": [
            "labels: string[]"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "assign",
          "async": true,
          "params": [
            "assignees: string[]"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "clearCache",
          "returns": "void"
        },
        {
          "name": "close",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "convertToDraft",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "findLinkedIssue",
          "async": true,
          "returns": "Promise<Issue | null>"
        },
        {
          "name": "getChangeSize",
          "returns": "'xs' | 's' | 'm' | 'l' | 'xl'"
        },
        {
          "name": "getClient",
          "async": true,
          "returns": "Promise<IRepository>"
        },
        {
          "name": "getComments",
          "async": true,
          "returns": "Promise<Comment[]>"
        },
        {
          "name": "getRepository",
          "async": true,
          "returns": "Promise<Repository>"
        },
        {
          "name": "getUrl",
          "returns": "string"
        },
        {
          "name": "incorporateFeedback",
          "async": true,
          "params": [
            "options?: IncorporateFeedbackOptions"
          ],
          "returns": "Promise<IncorporateFeedbackResult>"
        },
        {
          "name": "isBugReport",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "isFeatureRequest",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "isReadyToMerge",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "markReady",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "merge",
          "async": true,
          "params": [
            "method?: MergeMethod"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "needsReview",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "removeLabel",
          "async": true,
          "params": [
            "label: string"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requestReviewers",
          "async": true,
          "params": [
            "reviewers: string[]"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "rollback",
          "async": true,
          "returns": "Promise<object>"
        },
        {
          "name": "suggestLabels",
          "async": true,
          "returns": "Promise<string[]>"
        },
        {
          "name": "suggestReviewers",
          "async": true,
          "returns": "Promise<string[]>"
        },
        {
          "name": "summarize",
          "async": true,
          "returns": "Promise<string>"
        },
        {
          "name": "sync",
          "async": true,
          "params": [
            "options?: SyncOptions"
          ],
          "returns": "Promise<this>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "issues.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:PullRequest",
          "path": "/issues",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "issues.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:PullRequest",
          "path": "/issues/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "issues.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-projects:PullRequest",
          "path": "/issues",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "issues.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-projects:PullRequest",
          "path": "/issues/[id]",
          "method": "PATCH"
        },
        {
          "kind": "cli",
          "name": "pullrequest_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "cli",
          "name": "pullrequest_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "cli",
          "name": "pullrequest_sync",
          "operation": "sync",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "cli",
          "name": "pullrequest_summarize",
          "operation": "summarize",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "cli",
          "name": "pullrequest_merge",
          "operation": "merge",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "cli",
          "name": "pullrequest_markReady",
          "operation": "markReady",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "mcp",
          "name": "pullrequest_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "mcp",
          "name": "pullrequest_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "mcp",
          "name": "pullrequest_sync",
          "operation": "sync",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "mcp",
          "name": "pullrequest_summarize",
          "operation": "summarize",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "mcp",
          "name": "pullrequest_merge",
          "operation": "merge",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "addComment",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "addLabels",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "assign",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "clearCache",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "close",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "convertToDraft",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "findLinkedIssue",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "getChangeSize",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "getClient",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "getComments",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "getRepository",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "getUrl",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "incorporateFeedback",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "isBugReport",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "isFeatureRequest",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "isReadyToMerge",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "markReady",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "merge",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "needsReview",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "removeLabel",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "requestReviewers",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "rollback",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "suggestLabels",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "suggestReviewers",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "summarize",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        },
        {
          "kind": "api",
          "operation": "sync",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:PullRequest"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Repository",
      "qualifiedName": "@happyvertical/smrt-projects:Repository",
      "collection": "repositories",
      "tableName": "repositories",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "owner",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "fullName",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "defaultBranch",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "main"
        },
        {
          "name": "isPrivate",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN",
          "default": false
        },
        {
          "name": "providerType",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "github"
        },
        {
          "name": "baseUrl",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "tokenConfigKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "GITHUB_TOKEN"
        },
        {
          "name": "lastSyncedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [],
      "methods": [
        "clearClient",
        "createIssue",
        "createPullRequest",
        "getByFullName",
        "getClient",
        "getIssues",
        "getPullRequests",
        "hasOpenIssuesMatching",
        "summarizeActivity",
        "sync"
      ],
      "methodSignatures": [
        {
          "name": "clearClient",
          "returns": "void"
        },
        {
          "name": "createIssue",
          "async": true,
          "params": [
            "data: CreateIssueInput"
          ],
          "returns": "Promise<Issue>"
        },
        {
          "name": "createPullRequest",
          "async": true,
          "params": [
            "data: CreatePRInput"
          ],
          "returns": "Promise<PullRequest>"
        },
        {
          "name": "getByFullName",
          "async": true,
          "static": true,
          "params": [
            "owner: string",
            "name: string",
            "options?: SmrtObjectOptions"
          ],
          "returns": "Promise<Repository | null>"
        },
        {
          "name": "getClient",
          "async": true,
          "returns": "Promise<IRepository>"
        },
        {
          "name": "getIssues",
          "async": true,
          "params": [
            "filters?: SearchFilters"
          ],
          "returns": "Promise<Issue[]>"
        },
        {
          "name": "getPullRequests",
          "async": true,
          "params": [
            "filters?: SearchFilters"
          ],
          "returns": "Promise<PullRequest[]>"
        },
        {
          "name": "hasOpenIssuesMatching",
          "async": true,
          "params": [
            "criteria: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "summarizeActivity",
          "async": true,
          "returns": "Promise<string>"
        },
        {
          "name": "sync",
          "async": true,
          "params": [
            "options?: SyncOptions"
          ],
          "returns": "Promise<this>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "repositories.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Repository",
          "path": "/repositories",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "repositories.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Repository",
          "path": "/repositories/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "repositories.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-projects:Repository",
          "path": "/repositories",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "repositories.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-projects:Repository",
          "path": "/repositories/[id]",
          "method": "PATCH"
        },
        {
          "kind": "cli",
          "name": "repository_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "cli",
          "name": "repository_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "cli",
          "name": "repository_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "cli",
          "name": "repository_sync",
          "operation": "sync",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "mcp",
          "name": "repository_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "mcp",
          "name": "repository_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "mcp",
          "name": "repository_sync",
          "operation": "sync",
          "objectName": "@happyvertical/smrt-projects:Repository"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "clearClient",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "createIssue",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "createPullRequest",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "getByFullName",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "getClient",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "getIssues",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "getPullRequests",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "hasOpenIssuesMatching",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "summarizeActivity",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        },
        {
          "kind": "api",
          "operation": "sync",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:Repository"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "DevelopmentRequestWorkLink",
      "qualifiedName": "@happyvertical/smrt-projects:DevelopmentRequestWorkLink",
      "collection": "developmentrequestworklinks",
      "tableName": "development_request_work_links",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "requestId",
          "type": "foreignKey",
          "required": true,
          "related": "DevelopmentRequest",
          "columnType": "UUID"
        },
        {
          "name": "workItemType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "workItemId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "canonicalStatus",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "providerRef",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "lastProjectedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "requestId",
          "type": "foreignKey",
          "required": true,
          "related": "DevelopmentRequest",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "request_id",
        "work_item_type",
        "work_item_id"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ProjectDeliveryEvent",
      "qualifiedName": "@happyvertical/smrt-projects:ProjectDeliveryEvent",
      "collection": "projectdeliveryevents",
      "tableName": "project_delivery_events",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "integrationId",
          "type": "foreignKey",
          "required": true,
          "related": "ProjectIntegration",
          "columnType": "UUID"
        },
        {
          "name": "requestId",
          "type": "foreignKey",
          "required": true,
          "related": "DevelopmentRequest",
          "columnType": "UUID"
        },
        {
          "name": "idempotencyKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sequence",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "type",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "payload",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "occurredAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "deliveredAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "deliveryAttempts",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "lastDeliveryError",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "integrationId",
          "type": "foreignKey",
          "required": true,
          "related": "ProjectIntegration",
          "columnType": "UUID"
        },
        {
          "name": "requestId",
          "type": "foreignKey",
          "required": true,
          "related": "DevelopmentRequest",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "integration_id",
        "idempotency_key"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "PreviewApproval",
      "qualifiedName": "@happyvertical/smrt-projects:PreviewApproval",
      "collection": "previewapprovals",
      "tableName": "preview_approvals",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "requestId",
          "type": "foreignKey",
          "required": true,
          "related": "DevelopmentRequest",
          "columnType": "UUID"
        },
        {
          "name": "previewId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "previewUrl",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "decidedByRef",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "reason",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "decidedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "staleAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "requestId",
          "type": "foreignKey",
          "required": true,
          "related": "DevelopmentRequest",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "request_id",
        "preview_id"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "AssistanceRequest",
      "qualifiedName": "@happyvertical/smrt-projects:AssistanceRequest",
      "collection": "assistancerequests",
      "tableName": "assistance_requests",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "integrationId",
          "type": "foreignKey",
          "required": true,
          "related": "ProjectIntegration",
          "columnType": "UUID"
        },
        {
          "name": "requesterId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "subject",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "applicationContext",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "conversation",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "evidence",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "classification",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "supportCaseId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "developmentRequestId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "deliveryHandoffLinkedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "createdAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "integrationId",
          "type": "foreignKey",
          "required": true,
          "related": "ProjectIntegration",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "AssistanceRequestEvent",
      "qualifiedName": "@happyvertical/smrt-projects:AssistanceRequestEvent",
      "collection": "assistancerequestevents",
      "tableName": "assistance_request_events",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": true,
          "columnType": "UUID"
        },
        {
          "name": "assistanceRequestId",
          "type": "foreignKey",
          "required": true,
          "related": "AssistanceRequest",
          "columnType": "UUID"
        },
        {
          "name": "priorClassification",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "resultingClassification",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "actorRef",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "reason",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "resultingLinks",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "occurredAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "assistanceRequestId",
          "type": "foreignKey",
          "required": true,
          "related": "AssistanceRequest",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "required",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "DevelopmentRequestWorkLinkCollection",
      "qualifiedName": "@happyvertical/smrt-projects:DevelopmentRequestWorkLinkCollection",
      "collection": "developmentrequestworklinks",
      "tableName": "development_request_work_links",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ProjectDeliveryEventCollection",
      "qualifiedName": "@happyvertical/smrt-projects:ProjectDeliveryEventCollection",
      "collection": "projectdeliveryevents",
      "tableName": "project_delivery_events",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "PreviewApprovalCollection",
      "qualifiedName": "@happyvertical/smrt-projects:PreviewApprovalCollection",
      "collection": "previewapprovals",
      "tableName": "preview_approvals",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "AssistanceRequestCollection",
      "qualifiedName": "@happyvertical/smrt-projects:AssistanceRequestCollection",
      "collection": "assistancerequests",
      "tableName": "assistance_requests",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "AssistanceRequestEventCollection",
      "qualifiedName": "@happyvertical/smrt-projects:AssistanceRequestEventCollection",
      "collection": "assistancerequestevents",
      "tableName": "assistance_request_events",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ServiceTimeEntry",
      "qualifiedName": "@happyvertical/smrt-projects:ServiceTimeEntry",
      "collection": "servicetimeentries",
      "tableName": "service_time_entries",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-support:SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "workRefType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "workRefId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "specialistId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-support:SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "participantKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "participantProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "agentRef",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "source",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "startedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "endedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "durationSeconds",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "evidence",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "submittedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "submittedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "approvedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "approvedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "approvalPath",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "rejectedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "rejectedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "rejectionReason",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "correctionOfId",
          "type": "foreignKey",
          "required": false,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "caseId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-support:SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "specialistId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-support:SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "participantProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "submittedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "approvedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "rejectedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "correctionOfId",
          "type": "foreignKey",
          "required": false,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "durationHours",
        "getEvidence",
        "getMetadata",
        "initialize",
        "save",
        "setEvidence",
        "setMetadata"
      ],
      "methodSignatures": [
        {
          "name": "durationHours",
          "returns": "number"
        },
        {
          "name": "getEvidence",
          "returns": "ServiceEvidence[]"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "save",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "setEvidence",
          "params": [
            "value: ServiceEvidence[]"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "servicetimeentries.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry",
          "path": "/servicetimeentries",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "servicetimeentries.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry",
          "path": "/servicetimeentries/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "servicetimeentry_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "cli",
          "name": "servicetimeentry_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentry_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentry_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "durationHours",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "getEvidence",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "initialize",
          "code": "lifecycle-method",
          "reason": "`initialize` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "save",
          "code": "lifecycle-method",
          "reason": "`save` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "setEvidence",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ServiceChargeSnapshot",
      "qualifiedName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
      "collection": "servicechargesnapshots",
      "tableName": "service_charge_snapshots",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "timeEntryId",
          "type": "foreignKey",
          "required": true,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        },
        {
          "name": "amount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "currency",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "pricingVersion",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "strategy",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "rateSnapshot",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceChargeRef",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "timeEntryId",
          "type": "foreignKey",
          "required": true,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "initialize",
        "save"
      ],
      "methodSignatures": [
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "save",
          "async": true,
          "returns": "Promise<this>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "time_entry_id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "servicechargesnapshots.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
          "path": "/servicechargesnapshots",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "servicechargesnapshots.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
          "path": "/servicechargesnapshots/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "servicechargesnapshot_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
        },
        {
          "kind": "cli",
          "name": "servicechargesnapshot_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
        },
        {
          "kind": "mcp",
          "name": "servicechargesnapshot_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
        },
        {
          "kind": "mcp",
          "name": "servicechargesnapshot_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "initialize",
          "code": "lifecycle-method",
          "reason": "`initialize` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
        },
        {
          "kind": "api",
          "operation": "save",
          "code": "lifecycle-method",
          "reason": "`save` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ServiceCompensationSnapshot",
      "qualifiedName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
      "collection": "servicecompensationsnapshots",
      "tableName": "service_compensation_snapshots",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "timeEntryId",
          "type": "foreignKey",
          "required": true,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        },
        {
          "name": "amount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "currency",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "termsVersion",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "rateSnapshot",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "timeEntryId",
          "type": "foreignKey",
          "required": true,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "initialize",
        "save"
      ],
      "methodSignatures": [
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "save",
          "async": true,
          "returns": "Promise<this>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "time_entry_id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "servicecompensationsnapshots.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
          "path": "/servicecompensationsnapshots",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "servicecompensationsnapshots.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
          "path": "/servicecompensationsnapshots/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "servicecompensationsnapshot_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
        },
        {
          "kind": "cli",
          "name": "servicecompensationsnapshot_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
        },
        {
          "kind": "mcp",
          "name": "servicecompensationsnapshot_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
        },
        {
          "kind": "mcp",
          "name": "servicecompensationsnapshot_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "initialize",
          "code": "lifecycle-method",
          "reason": "`initialize` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
        },
        {
          "kind": "api",
          "operation": "save",
          "code": "lifecycle-method",
          "reason": "`save` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ServiceTimeEntryCollection",
      "qualifiedName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
      "collection": "servicetimeentries",
      "tableName": "service_time_entries",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forCase",
        "forSpecialist",
        "forWork",
        "pendingApproval"
      ],
      "methodSignatures": [
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string"
          ],
          "returns": "Promise<ServiceTimeEntry[]>"
        },
        {
          "name": "forSpecialist",
          "async": true,
          "params": [
            "specialistId: string"
          ],
          "returns": "Promise<ServiceTimeEntry[]>"
        },
        {
          "name": "forWork",
          "async": true,
          "params": [
            "workRefType: string",
            "workRefId: string"
          ],
          "returns": "Promise<ServiceTimeEntry[]>"
        },
        {
          "name": "pendingApproval",
          "async": true,
          "returns": "Promise<ServiceTimeEntry[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "servicetimeentries.forWork",
          "operation": "forWork",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
          "path": "/servicetimeentries/forWork",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "servicetimeentries.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
          "path": "/servicetimeentries/forCase",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "servicetimeentries.forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
          "path": "/servicetimeentries/forSpecialist",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "servicetimeentries.pendingApproval",
          "operation": "pendingApproval",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
          "path": "/servicetimeentries/pendingApproval",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "servicetimeentrycollection_forWork",
          "operation": "forWork",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
        },
        {
          "kind": "cli",
          "name": "servicetimeentrycollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
        },
        {
          "kind": "cli",
          "name": "servicetimeentrycollection_forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
        },
        {
          "kind": "cli",
          "name": "servicetimeentrycollection_pendingApproval",
          "operation": "pendingApproval",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentrycollection_forwork",
          "operation": "forWork",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentrycollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentrycollection_forspecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentrycollection_pendingapproval",
          "operation": "pendingApproval",
          "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ServiceChargeSnapshotCollection",
      "qualifiedName": "@happyvertical/smrt-projects:ServiceChargeSnapshotCollection",
      "collection": "servicechargesnapshots",
      "tableName": "service_charge_snapshots",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ServiceCompensationSnapshotCollection",
      "qualifiedName": "@happyvertical/smrt-projects:ServiceCompensationSnapshotCollection",
      "collection": "servicecompensationsnapshots",
      "tableName": "service_compensation_snapshots",
      "packageName": "@happyvertical/smrt-projects",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    }
  ],
  "surfaces": [
    {
      "kind": "api",
      "name": "issues.findByRepository",
      "operation": "findByRepository",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findByRepository",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findOpen",
      "operation": "findOpen",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findOpen",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findByLabel",
      "operation": "findByLabel",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findByLabel",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findByAssignee",
      "operation": "findByAssignee",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findByAssignee",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findNeedingReview",
      "operation": "findNeedingReview",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findNeedingReview",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findByNumber",
      "operation": "findByNumber",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findByNumber",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findWithUnincorporatedFeedback",
      "operation": "findWithUnincorporatedFeedback",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findWithUnincorporatedFeedback",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findByTenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findByTenant",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findGlobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findGlobal",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findWithGlobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:IssueCollection",
      "path": "/issues/findWithGlobals",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "issuecollection_discover",
      "operation": "discover",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findByRepository",
      "operation": "findByRepository",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findOpen",
      "operation": "findOpen",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findByLabel",
      "operation": "findByLabel",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findByAssignee",
      "operation": "findByAssignee",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findNeedingReview",
      "operation": "findNeedingReview",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findByNumber",
      "operation": "findByNumber",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findWithUnincorporatedFeedback",
      "operation": "findWithUnincorporatedFeedback",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_batchSync",
      "operation": "batchSync",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findByTenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findGlobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "cli",
      "name": "issuecollection_findWithGlobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_discover",
      "operation": "discover",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findbyrepository",
      "operation": "findByRepository",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findopen",
      "operation": "findOpen",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findbylabel",
      "operation": "findByLabel",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findbyassignee",
      "operation": "findByAssignee",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findneedingreview",
      "operation": "findNeedingReview",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findbynumber",
      "operation": "findByNumber",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findwithunincorporatedfeedback",
      "operation": "findWithUnincorporatedFeedback",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_batchsync",
      "operation": "batchSync",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findbytenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findglobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "mcp",
      "name": "issuecollection_findwithglobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:IssueCollection"
    },
    {
      "kind": "api",
      "name": "projectintegrations.provision",
      "operation": "provision",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
      "path": "/projectintegrations/provision",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projectintegrations.rotate",
      "operation": "rotate",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
      "path": "/projectintegrations/rotate",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projectintegrations.revoke",
      "operation": "revoke",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
      "path": "/projectintegrations/revoke",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projectintegrations.authenticate",
      "operation": "authenticate",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
      "path": "/projectintegrations/authenticate",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projectintegrations.listForProject",
      "operation": "listForProject",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
      "path": "/projectintegrations/listForProject",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projectintegrations.findActive",
      "operation": "findActive",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection",
      "path": "/projectintegrations/findActive",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "projectintegrationcollection_provision",
      "operation": "provision",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "cli",
      "name": "projectintegrationcollection_rotate",
      "operation": "rotate",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "cli",
      "name": "projectintegrationcollection_revoke",
      "operation": "revoke",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "cli",
      "name": "projectintegrationcollection_authenticate",
      "operation": "authenticate",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "cli",
      "name": "projectintegrationcollection_listForProject",
      "operation": "listForProject",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "cli",
      "name": "projectintegrationcollection_findActive",
      "operation": "findActive",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "mcp",
      "name": "projectintegrationcollection_provision",
      "operation": "provision",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "mcp",
      "name": "projectintegrationcollection_rotate",
      "operation": "rotate",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "mcp",
      "name": "projectintegrationcollection_revoke",
      "operation": "revoke",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "mcp",
      "name": "projectintegrationcollection_authenticate",
      "operation": "authenticate",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "mcp",
      "name": "projectintegrationcollection_listforproject",
      "operation": "listForProject",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "mcp",
      "name": "projectintegrationcollection_findactive",
      "operation": "findActive",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegrationCollection"
    },
    {
      "kind": "api",
      "name": "projects.findByTitle",
      "operation": "findByTitle",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/findByTitle",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.findByOwner",
      "operation": "findByOwner",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/findByOwner",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.findByProvider",
      "operation": "findByProvider",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/findByProvider",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.getOrCreate",
      "operation": "getOrCreate",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/getOrCreate",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.syncAll",
      "operation": "syncAll",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/syncAll",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.findWithItemsInStatus",
      "operation": "findWithItemsInStatus",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/findWithItemsInStatus",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.getStatistics",
      "operation": "getStatistics",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/getStatistics",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.findByTenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/findByTenant",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.findGlobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/findGlobal",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.findWithGlobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection",
      "path": "/projects/findWithGlobals",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "projectcollection_findByTitle",
      "operation": "findByTitle",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_findByOwner",
      "operation": "findByOwner",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_findByProvider",
      "operation": "findByProvider",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_getOrCreate",
      "operation": "getOrCreate",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_syncAll",
      "operation": "syncAll",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_findWithItemsInStatus",
      "operation": "findWithItemsInStatus",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_getStatistics",
      "operation": "getStatistics",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_findByTenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_findGlobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "cli",
      "name": "projectcollection_findWithGlobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_findbytitle",
      "operation": "findByTitle",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_findbyowner",
      "operation": "findByOwner",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_findbyprovider",
      "operation": "findByProvider",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_getorcreate",
      "operation": "getOrCreate",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_syncall",
      "operation": "syncAll",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_findwithitemsinstatus",
      "operation": "findWithItemsInStatus",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_getstatistics",
      "operation": "getStatistics",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_findbytenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_findglobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "mcp",
      "name": "projectcollection_findwithglobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:ProjectCollection"
    },
    {
      "kind": "api",
      "name": "issues.findByRepository",
      "operation": "findByRepository",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findByRepository",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findOpen",
      "operation": "findOpen",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findOpen",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findDrafts",
      "operation": "findDrafts",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findDrafts",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findReadyToMerge",
      "operation": "findReadyToMerge",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findReadyToMerge",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findByBranch",
      "operation": "findByBranch",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findByBranch",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findByNumber",
      "operation": "findByNumber",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findByNumber",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findAIReadyToMerge",
      "operation": "findAIReadyToMerge",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findAIReadyToMerge",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findBySize",
      "operation": "findBySize",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findBySize",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findByTenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findByTenant",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findGlobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findGlobal",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.findWithGlobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection",
      "path": "/issues/findWithGlobals",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_discover",
      "operation": "discover",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findByRepository",
      "operation": "findByRepository",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findOpen",
      "operation": "findOpen",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findDrafts",
      "operation": "findDrafts",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findReadyToMerge",
      "operation": "findReadyToMerge",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findByBranch",
      "operation": "findByBranch",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findByNumber",
      "operation": "findByNumber",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findAIReadyToMerge",
      "operation": "findAIReadyToMerge",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findBySize",
      "operation": "findBySize",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_batchSync",
      "operation": "batchSync",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findByTenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findGlobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "cli",
      "name": "pullrequestcollection_findWithGlobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_discover",
      "operation": "discover",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findbyrepository",
      "operation": "findByRepository",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findopen",
      "operation": "findOpen",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_finddrafts",
      "operation": "findDrafts",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findreadytomerge",
      "operation": "findReadyToMerge",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findbybranch",
      "operation": "findByBranch",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findbynumber",
      "operation": "findByNumber",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findaireadytomerge",
      "operation": "findAIReadyToMerge",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findbysize",
      "operation": "findBySize",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_batchsync",
      "operation": "batchSync",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findbytenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findglobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "mcp",
      "name": "pullrequestcollection_findwithglobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:PullRequestCollection"
    },
    {
      "kind": "api",
      "name": "repositories.findByFullName",
      "operation": "findByFullName",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/findByFullName",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.findByOwner",
      "operation": "findByOwner",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/findByOwner",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.findByProvider",
      "operation": "findByProvider",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/findByProvider",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.getOrCreate",
      "operation": "getOrCreate",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/getOrCreate",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.syncAll",
      "operation": "syncAll",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/syncAll",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.findWithOpenIssues",
      "operation": "findWithOpenIssues",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/findWithOpenIssues",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.findByTenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/findByTenant",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.findGlobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/findGlobal",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.findWithGlobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection",
      "path": "/repositories/findWithGlobals",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_findByFullName",
      "operation": "findByFullName",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_findByOwner",
      "operation": "findByOwner",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_findByProvider",
      "operation": "findByProvider",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_getOrCreate",
      "operation": "getOrCreate",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_syncAll",
      "operation": "syncAll",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_findWithOpenIssues",
      "operation": "findWithOpenIssues",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_findByTenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_findGlobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "cli",
      "name": "repositorycollection_findWithGlobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_findbyfullname",
      "operation": "findByFullName",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_findbyowner",
      "operation": "findByOwner",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_findbyprovider",
      "operation": "findByProvider",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_getorcreate",
      "operation": "getOrCreate",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_syncall",
      "operation": "syncAll",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_findwithopenissues",
      "operation": "findWithOpenIssues",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_findbytenant",
      "operation": "findByTenant",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_findglobal",
      "operation": "findGlobal",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "mcp",
      "name": "repositorycollection_findwithglobals",
      "operation": "findWithGlobals",
      "objectName": "@happyvertical/smrt-projects:RepositoryCollection"
    },
    {
      "kind": "api",
      "name": "comments.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Comment",
      "path": "/comments",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "comments.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Comment",
      "path": "/comments/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "comment_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Comment"
    },
    {
      "kind": "cli",
      "name": "comment_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Comment"
    },
    {
      "kind": "mcp",
      "name": "comment_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Comment"
    },
    {
      "kind": "mcp",
      "name": "comment_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Comment"
    },
    {
      "kind": "api",
      "name": "issues.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Issue",
      "path": "/issues",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "issues.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Issue",
      "path": "/issues/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "issues.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-projects:Issue",
      "path": "/issues",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-projects:Issue",
      "path": "/issues/[id]",
      "method": "PATCH"
    },
    {
      "kind": "cli",
      "name": "issue_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "cli",
      "name": "issue_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "cli",
      "name": "issue_sync",
      "operation": "sync",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "cli",
      "name": "issue_incorporateFeedback",
      "operation": "incorporateFeedback",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "cli",
      "name": "issue_rollback",
      "operation": "rollback",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "mcp",
      "name": "issue_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "mcp",
      "name": "issue_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "mcp",
      "name": "issue_sync",
      "operation": "sync",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "mcp",
      "name": "issue_incorporatefeedback",
      "operation": "incorporateFeedback",
      "objectName": "@happyvertical/smrt-projects:Issue"
    },
    {
      "kind": "api",
      "name": "labels.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Label",
      "path": "/labels",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "labels.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Label",
      "path": "/labels/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "labels.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-projects:Label",
      "path": "/labels",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "labels.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-projects:Label",
      "path": "/labels/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "labels.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-projects:Label",
      "path": "/labels/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "label_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Label"
    },
    {
      "kind": "cli",
      "name": "label_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Label"
    },
    {
      "kind": "cli",
      "name": "label_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-projects:Label"
    },
    {
      "kind": "cli",
      "name": "label_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-projects:Label"
    },
    {
      "kind": "cli",
      "name": "label_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-projects:Label"
    },
    {
      "kind": "mcp",
      "name": "label_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Label"
    },
    {
      "kind": "mcp",
      "name": "label_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Label"
    },
    {
      "kind": "mcp",
      "name": "label_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-projects:Label"
    },
    {
      "kind": "api",
      "name": "projects.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Project",
      "path": "/projects",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "projects.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Project",
      "path": "/projects/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "projects.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-projects:Project",
      "path": "/projects",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "projects.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-projects:Project",
      "path": "/projects/[id]",
      "method": "PATCH"
    },
    {
      "kind": "cli",
      "name": "project_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "cli",
      "name": "project_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "cli",
      "name": "project_sync",
      "operation": "sync",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "cli",
      "name": "project_addItem",
      "operation": "addItem",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "cli",
      "name": "project_listItems",
      "operation": "listItems",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "cli",
      "name": "project_updateItemStatus",
      "operation": "updateItemStatus",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "mcp",
      "name": "project_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "mcp",
      "name": "project_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "mcp",
      "name": "project_sync",
      "operation": "sync",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "mcp",
      "name": "project_additem",
      "operation": "addItem",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "mcp",
      "name": "project_updateitemstatus",
      "operation": "updateItemStatus",
      "objectName": "@happyvertical/smrt-projects:Project"
    },
    {
      "kind": "api",
      "name": "projectintegrations.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegration",
      "path": "/projectintegrations",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "projectintegrations.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegration",
      "path": "/projectintegrations/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "projectintegration_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
    },
    {
      "kind": "cli",
      "name": "projectintegration_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
    },
    {
      "kind": "mcp",
      "name": "projectintegration_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
    },
    {
      "kind": "mcp",
      "name": "projectintegration_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ProjectIntegration"
    },
    {
      "kind": "api",
      "name": "issues.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:PullRequest",
      "path": "/issues",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "issues.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:PullRequest",
      "path": "/issues/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "issues.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-projects:PullRequest",
      "path": "/issues",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "issues.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-projects:PullRequest",
      "path": "/issues/[id]",
      "method": "PATCH"
    },
    {
      "kind": "cli",
      "name": "pullrequest_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "cli",
      "name": "pullrequest_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "cli",
      "name": "pullrequest_sync",
      "operation": "sync",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "cli",
      "name": "pullrequest_summarize",
      "operation": "summarize",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "cli",
      "name": "pullrequest_merge",
      "operation": "merge",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "cli",
      "name": "pullrequest_markReady",
      "operation": "markReady",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "mcp",
      "name": "pullrequest_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "mcp",
      "name": "pullrequest_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "mcp",
      "name": "pullrequest_sync",
      "operation": "sync",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "mcp",
      "name": "pullrequest_summarize",
      "operation": "summarize",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "mcp",
      "name": "pullrequest_merge",
      "operation": "merge",
      "objectName": "@happyvertical/smrt-projects:PullRequest"
    },
    {
      "kind": "api",
      "name": "repositories.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Repository",
      "path": "/repositories",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "repositories.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Repository",
      "path": "/repositories/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "repositories.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-projects:Repository",
      "path": "/repositories",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "repositories.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-projects:Repository",
      "path": "/repositories/[id]",
      "method": "PATCH"
    },
    {
      "kind": "cli",
      "name": "repository_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Repository"
    },
    {
      "kind": "cli",
      "name": "repository_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Repository"
    },
    {
      "kind": "cli",
      "name": "repository_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-projects:Repository"
    },
    {
      "kind": "cli",
      "name": "repository_sync",
      "operation": "sync",
      "objectName": "@happyvertical/smrt-projects:Repository"
    },
    {
      "kind": "mcp",
      "name": "repository_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:Repository"
    },
    {
      "kind": "mcp",
      "name": "repository_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:Repository"
    },
    {
      "kind": "mcp",
      "name": "repository_sync",
      "operation": "sync",
      "objectName": "@happyvertical/smrt-projects:Repository"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry",
      "path": "/servicetimeentries",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry",
      "path": "/servicetimeentries/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "servicetimeentry_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
    },
    {
      "kind": "cli",
      "name": "servicetimeentry_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentry_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentry_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
    },
    {
      "kind": "api",
      "name": "servicechargesnapshots.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
      "path": "/servicechargesnapshots",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "servicechargesnapshots.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
      "path": "/servicechargesnapshots/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "servicechargesnapshot_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
    },
    {
      "kind": "cli",
      "name": "servicechargesnapshot_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
    },
    {
      "kind": "mcp",
      "name": "servicechargesnapshot_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
    },
    {
      "kind": "mcp",
      "name": "servicechargesnapshot_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
    },
    {
      "kind": "api",
      "name": "servicecompensationsnapshots.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
      "path": "/servicecompensationsnapshots",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "servicecompensationsnapshots.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
      "path": "/servicecompensationsnapshots/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "servicecompensationsnapshot_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
    },
    {
      "kind": "cli",
      "name": "servicecompensationsnapshot_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
    },
    {
      "kind": "mcp",
      "name": "servicecompensationsnapshot_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
    },
    {
      "kind": "mcp",
      "name": "servicecompensationsnapshot_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.forWork",
      "operation": "forWork",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
      "path": "/servicetimeentries/forWork",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
      "path": "/servicetimeentries/forCase",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
      "path": "/servicetimeentries/forSpecialist",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.pendingApproval",
      "operation": "pendingApproval",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
      "path": "/servicetimeentries/pendingApproval",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "servicetimeentrycollection_forWork",
      "operation": "forWork",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
    },
    {
      "kind": "cli",
      "name": "servicetimeentrycollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
    },
    {
      "kind": "cli",
      "name": "servicetimeentrycollection_forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
    },
    {
      "kind": "cli",
      "name": "servicetimeentrycollection_pendingApproval",
      "operation": "pendingApproval",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentrycollection_forwork",
      "operation": "forWork",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentrycollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentrycollection_forspecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentrycollection_pendingapproval",
      "operation": "pendingApproval",
      "objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
    }
  ],
  "prompts": [
    {
      "filePath": "src/prompts.ts"
    }
  ],
  "relationshipsV2": {
    "foreignKeyFields": 16,
    "crossPackageRefFields": 6,
    "junctionCollections": 0,
    "hierarchicalObjects": 0,
    "polymorphicAssociations": 0,
    "uuidColumns": 109
  },
  "agentDoc": "# @happyvertical/smrt-projects\n\nProvider-agnostic project management plus the managed-application delivery\ncontrol plane. Repository and board providers remain canonical; managed apps\nonly receive scoped Project Integration credentials and provider-neutral\nrequest/delivery projections.\n\n## Managed application delivery (#1949)\n\n- `ProjectIntegration` stores capability grants and a sensitive credential\n  hash; the raw credential is returned once by\n  `ProjectIntegrationCollection.provision()`/`rotate()` and is never persisted.\n  Provisioning, rotation, and revocation are append-only audited.\n- The stable requester identity is supplied when authenticating\n  `ManagedProjectClient`; request reads are always restricted to that requester\n  and integration.\n- `DevelopmentRequest` preserves evidence, origin, discussion, visibility, and\n  lifecycle history. `ManagedProjectClient` owns managed intake and\n  `DevelopmentRequestService` adds internal triage and work projection.\n- `DevelopmentRequestWorkLink` connects zero-to-many provider-neutral work\n  items. Canonical status stays on the link and drives request lifecycle\n  projection without granting the managed app provider credentials.\n- `ProjectDeliveryEvent` is idempotent per integration key and sequenced for\n  replay. Preview decisions flow through the control-plane adapter, never\n  directly to repository providers.\n- `AssistanceRequest` preserves conversational intake before lossless routing\n  to Support, Development, or both. `smrt-support` supplies the concrete\n  `ProjectAssistanceSupportAdapter`.\n- `ManagedProjectClient` deliberately exposes no repository or board client;\n  delivery and assistance use separate capability-gated service facades.\n\n## Shared Professional Service evidence (#1955)\n\n`ServiceTimeEntry` is canonical here on the existing `service_time_entries`\ntable. Planning, development, and support use the same immutable evidence and\ncorrection chain. `SubscriptionServiceCommercialResolver` prices client work\nthrough `smrt-subscriptions` (#1925); provider compensation remains a separate\nresolver and snapshot. See `SERVICE_TIME_MIGRATION.md`.\n\n## Models\n\n| Model | Key Fields | Notes |\n|-------|-----------|-------|\n| **Repository** | `owner`, `name`, `providerType`, `tokenConfigKey` | `sync()`, `getIssues()`, `getPullRequests()` |\n| **Issue** | `repositoryId` (FK), `number`, `title`, `body`, `state`, `labels[]` | `incorporateFeedback()`, `rollback()`, `suggestLabels()` |\n| **PullRequest** | extends Issue + `headRef`, `baseRef`, `merged`, `draft` | STI on Issue table. `summarize()`, `merge()` |\n| **Project** | `projectId`, `title`, `statuses[]`, `statusFieldId` | GitHub Projects V2. `addItem()`, `moveItem()`, `analyzeHealth()` |\n| **Comment** | `issueId` (FK), `body`, `authorLogin` | AI analysis support |\n| **Label** | `repositoryId` (FK), `name`, `color` | |\n\n## Key Patterns\n\n- **Token config reference**: stores env var name (`tokenConfigKey: 'GITHUB_TOKEN'`), not the token itself. Resolved at runtime from `process.env` or `getModuleConfig()`\n- **Living spec** (`incorporateFeedback()`): AI synthesizes issue comments into updated body. Supports preview mode and `rollback()`\n- **Provider-agnostic**: GitHub primary, GitLab/Bitbucket/Azure planned. Uses `@happyvertical/repos` and `@happyvertical/projects` SDK packages\n- **PullRequest is STI on Issue**: shares table, discriminated by `_meta_type`\n\n## Collection Methods\n\nAll collections provide: `discover({ repository, filters })`, `findByRepository(repoId)`, `findOpen(repoId?)`, `batchSync(repository)`.\n\n## Gotchas\n\n- **Money is integer minor units** (cents) — `$19.99` is `1999`.\n  `ServiceChargeSnapshot.amount` and `ServiceCompensationSnapshot.amount`\n  initialize `= 0`, never `= 0.0`: the integer literal is what maps them to\n  INTEGER columns (BIGINT on fresh PostgreSQL/DuckDB databases; #2401, #2373). The two convert as a pair — the delivery margin is\n  `charge - compensation`, an exact integer subtraction with no tolerance —\n  and both are fed verbatim by `CommercialSnapshot.amount`, so a resolver that\n  returns major units corrupts the snapshot silently on SQLite and fails with\n  `22P02` on PostgreSQL. `pnpm --filter @happyvertical/smrt-projects\n  test:postgres` is the lane that holds the line.\n- **UI formats by dividing, never by `toFixed`**: `formatCurrency()` and\n  `ServiceEvidenceList`'s `money()` scale back to major units using the\n  currency's own minor-unit exponent, so zero-decimal currencies (JPY, KRW) are\n  not divided.\n- **Migrating an existing database**: `preflightProjectsMoneyMinorUnits(db)`\n  reports which columns still hold major units and which rows would be rounded\n  or exceed JavaScript's safe-integer range; `migrateProjectsMoneyToMinorUnits(db)` converts them\n  (idempotent via `_smrt_backfills`). On SQLite the values are rescaled but the\n  declared type needs the table-rebuild path (#2370). Fresh PostgreSQL/DuckDB\n  INTEGER columns are BIGINT and hydration rejects values outside JavaScript's\n  safe-integer range; existing PostgreSQL `int4` columns require #2424.\n- **SDK dependency**: requires `@happyvertical/repos` and `@happyvertical/projects` from SDK\n- **tokenConfigKey not tokenValue**: never store actual tokens in the database\n- **synthesisCount tracks incorporateFeedback calls**: incremented on each apply\n"
}