{
  "version": "1.0.0",
  "timestamp": 0,
  "packageName": "@happyvertical/smrt-agents",
  "packageVersion": "0.43.3",
  "objects": {
    "@happyvertical/smrt-agents:Agent": {
      "name": "agent",
      "className": "Agent",
      "qualifiedName": "@happyvertical/smrt-agents:Agent",
      "collection": "agents",
      "filePath": "/home/runner/work/smrt/smrt/packages/agents/src/agent.ts",
      "packageName": "@happyvertical/smrt-agents",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "status": {
          "type": "text",
          "required": false,
          "default": "idle"
        }
      },
      "methods": {
        "withDatabase": {
          "name": "withDatabase",
          "async": true,
          "parameters": [
            {
              "name": "db",
              "type": "DatabaseInterface",
              "optional": false
            },
            {
              "name": "operation",
              "type": "Function",
              "optional": false
            }
          ],
          "returnType": "Promise<T>",
          "isStatic": false,
          "isPublic": true
        },
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getInstanceKey": {
          "name": "getInstanceKey",
          "async": false,
          "parameters": [],
          "returnType": "string | null",
          "isStatic": false,
          "isPublic": true
        },
        "getConfigOwnerId": {
          "name": "getConfigOwnerId",
          "async": false,
          "parameters": [
            {
              "name": "slotId",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "string | null",
          "isStatic": false,
          "isPublic": true
        },
        "getDispatchSubscriber": {
          "name": "getDispatchSubscriber",
          "async": false,
          "parameters": [],
          "returnType": "string",
          "isStatic": false,
          "isPublic": true
        },
        "getUISlots": {
          "name": "getUISlots",
          "async": false,
          "parameters": [],
          "returnType": "AgentUISlots",
          "isStatic": false,
          "isPublic": true
        },
        "loadConfigs": {
          "name": "loadConfigs",
          "async": true,
          "parameters": [],
          "returnType": "Promise<Map<string, Record<string>>>",
          "isStatic": false,
          "isPublic": true
        },
        "saveSlotConfig": {
          "name": "saveSlotConfig",
          "async": true,
          "parameters": [
            {
              "name": "slotId",
              "type": "string",
              "optional": false
            },
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getMergedConfig": {
          "name": "getMergedConfig",
          "async": true,
          "parameters": [
            {
              "name": "slotId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Record<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "exportConfig": {
          "name": "exportConfig",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "getDispatch": {
          "name": "getDispatch",
          "async": true,
          "parameters": [],
          "returnType": "Promise<DispatchBus>",
          "isStatic": false,
          "isPublic": true
        },
        "handleDispatch": {
          "name": "handleDispatch",
          "async": true,
          "parameters": [
            {
              "name": "_payload",
              "type": "any",
              "optional": false
            },
            {
              "name": "_metadata",
              "type": "DispatchMetadata",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "processDispatches": {
          "name": "processDispatches",
          "async": true,
          "parameters": [],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "getLearningMemory": {
          "name": "getLearningMemory",
          "async": false,
          "parameters": [],
          "returnType": "LearningMemory | null",
          "isStatic": false,
          "isPublic": true
        },
        "validate": {
          "name": "validate",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "shutdown": {
          "name": "shutdown",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "execute": {
          "name": "execute",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "interesting": {
          "name": "interesting",
          "async": true,
          "parameters": [],
          "returnType": "Promise<InterestResult[]>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "cli": false,
        "api": false,
        "mcp": false,
        "tableStrategy": "sti",
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context",
          "_meta_type"
        ]
      },
      "extends": "SmrtObject",
      "exportName": "Agent",
      "collectionExportName": "AgentCollection",
      "staticProperties": {
        "uiSlots": {},
        "adminRoutes": [],
        "signalSubscriptions": []
      },
      "schema": {
        "tableName": "agents",
        "ddl": "CREATE TABLE IF NOT EXISTS \"agents\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID,\n  \"status\" TEXT DEFAULT 'idle'\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false
          },
          "status": {
            "type": "TEXT",
            "notNull": false,
            "default": "idle"
          }
        },
        "indexes": [
          {
            "name": "agents_slug_context_meta_type_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "agents_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "agents_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          }
        ],
        "version": "dde8777b"
      }
    },
    "@happyvertical/smrt-agents:AgentConfig": {
      "name": "agentconfig",
      "className": "AgentConfig",
      "qualifiedName": "@happyvertical/smrt-agents:AgentConfig",
      "collection": "agentconfigs",
      "filePath": "/home/runner/work/smrt/smrt/packages/agents/src/config.ts",
      "packageName": "@happyvertical/smrt-agents",
      "fields": {
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "agentId": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "agentClass": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "slotId": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "configData": {
          "type": "json",
          "required": false,
          "_meta": {
            "sensitive": true
          },
          "sensitive": true
        },
        "schemaVersion": {
          "type": "integer",
          "required": false,
          "_meta": {}
        }
      },
      "methods": {
        "forAgent": {
          "name": "forAgent",
          "async": true,
          "parameters": [
            {
              "name": "agentId",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "SmrtClassOptions",
              "optional": false
            }
          ],
          "returnType": "Promise<Map<string, Record<string>>>",
          "isStatic": true,
          "isPublic": true
        },
        "forAgents": {
          "name": "forAgents",
          "async": true,
          "parameters": [
            {
              "name": "agentIds",
              "type": "string[]",
              "optional": false
            },
            {
              "name": "options",
              "type": "SmrtClassOptions",
              "optional": false
            }
          ],
          "returnType": "Promise<Map<string, Map<string, Record<string>>>>",
          "isStatic": true,
          "isPublic": true
        },
        "forSlot": {
          "name": "forSlot",
          "async": true,
          "parameters": [
            {
              "name": "agentId",
              "type": "string",
              "optional": false
            },
            {
              "name": "slotId",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "SmrtClassOptions",
              "optional": false
            }
          ],
          "returnType": "Promise<Record<string> | undefined>",
          "isStatic": true,
          "isPublic": true
        },
        "saveSlot": {
          "name": "saveSlot",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "object",
              "optional": false
            },
            {
              "name": "options",
              "type": "SmrtClassOptions",
              "optional": false
            }
          ],
          "returnType": "Promise<AgentConfig>",
          "isStatic": true,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableName": "agent_configs",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get"
          ]
        },
        "cli": true,
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context"
        ]
      },
      "extends": "SmrtObject",
      "exportName": "AgentConfig",
      "collectionExportName": "AgentConfigCollection",
      "schema": {
        "tableName": "agent_configs",
        "ddl": "CREATE TABLE IF NOT EXISTS \"agent_configs\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID,\n  \"agent_id\" TEXT,\n  \"agent_class\" TEXT,\n  \"slot_id\" TEXT,\n  \"config_data\" JSON,\n  \"schema_version\" INTEGER\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false,
            "unique": false
          },
          "agent_id": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "agent_class": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "slot_id": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "config_data": {
            "type": "JSON",
            "notNull": false,
            "unique": false
          },
          "schema_version": {
            "type": "INTEGER",
            "notNull": false,
            "unique": false
          }
        },
        "indexes": [
          {
            "name": "agent_configs_slug_context_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "agent_configs_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          }
        ],
        "version": "25c6ac4c"
      }
    },
    "@happyvertical/smrt-agents:AgentConfigCollection": {
      "name": "agentconfigcollection",
      "className": "AgentConfigCollection",
      "qualifiedName": "@happyvertical/smrt-agents:AgentConfigCollection",
      "collection": "agentconfigs",
      "filePath": "/home/runner/work/smrt/smrt/packages/agents/src/config.ts",
      "packageName": "@happyvertical/smrt-agents",
      "fields": {},
      "methods": {
        "findByTenant": {
          "name": "findByTenant",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<AgentConfig[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findGlobal": {
          "name": "findGlobal",
          "async": true,
          "parameters": [],
          "returnType": "Promise<AgentConfig[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findWithGlobals": {
          "name": "findWithGlobals",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<AgentConfig[]>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableName": "agent_configs"
      },
      "extends": "SmrtCollection",
      "extendsTypeArg": "AgentConfig",
      "exportName": "AgentConfigCollection",
      "collectionExportName": "AgentConfigCollectionCollection",
      "schema": {
        "tableName": "agent_configs",
        "ddl": "CREATE TABLE IF NOT EXISTS \"agent_configs\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "agent_configs_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "agent_configs_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "9162bcd3"
      }
    },
    "@happyvertical/smrt-agents:AgentSchedule": {
      "name": "agentschedule",
      "className": "AgentSchedule",
      "qualifiedName": "@happyvertical/smrt-agents:AgentSchedule",
      "collection": "agentschedules",
      "filePath": "/home/runner/work/smrt/smrt/packages/agents/src/schedule.ts",
      "packageName": "@happyvertical/smrt-agents",
      "fields": {
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "agentType": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "agentId": {
          "type": "text",
          "required": false,
          "_meta": {
            "nullable": true
          }
        },
        "agentConfig": {
          "type": "json",
          "required": false,
          "_meta": {
            "sqlType": "TEXT",
            "sensitive": true
          },
          "sensitive": true
        },
        "cron": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "timezone": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "enabled": {
          "type": "boolean",
          "required": false,
          "_meta": {}
        },
        "status": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "lastRun": {
          "type": "datetime",
          "required": false,
          "_meta": {
            "nullable": true
          }
        },
        "nextRun": {
          "type": "datetime",
          "required": false,
          "_meta": {
            "nullable": true
          }
        },
        "lastStatus": {
          "type": "text",
          "required": false,
          "_meta": {
            "nullable": true
          }
        },
        "lastError": {
          "type": "text",
          "required": false,
          "_meta": {
            "nullable": true
          }
        },
        "runCount": {
          "type": "integer",
          "required": false,
          "_meta": {}
        },
        "successCount": {
          "type": "integer",
          "required": false,
          "_meta": {}
        },
        "failureCount": {
          "type": "integer",
          "required": false,
          "_meta": {}
        },
        "maxConcurrent": {
          "type": "integer",
          "required": false,
          "_meta": {}
        },
        "runningCount": {
          "type": "integer",
          "required": false,
          "_meta": {}
        },
        "timeout": {
          "type": "integer",
          "required": false,
          "_meta": {}
        },
        "method": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "methodArgs": {
          "type": "json",
          "required": false,
          "_meta": {
            "sqlType": "TEXT"
          }
        }
      },
      "methods": {
        "enable": {
          "name": "enable",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "disable": {
          "name": "disable",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "pause": {
          "name": "pause",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "resume": {
          "name": "resume",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "calculateNextRun": {
          "name": "calculateNextRun",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "getDescription": {
          "name": "getDescription",
          "async": false,
          "parameters": [],
          "returnType": "string",
          "isStatic": false,
          "isPublic": true
        },
        "beforeSave": {
          "name": "beforeSave",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableName": "_smrt_agent_schedules",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "cli": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete",
            "enable",
            "disable"
          ],
          "skipApiCheck": true
        },
        "mcp": {
          "include": [
            "list",
            "get"
          ]
        },
        "indexes": [
          {
            "name": "_smrt_agent_schedules_enabled_status_next_run_idx",
            "columns": [
              "enabled",
              "status",
              "nextRun"
            ]
          }
        ],
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context"
        ]
      },
      "extends": "SmrtObject",
      "exportName": "AgentSchedule",
      "collectionExportName": "AgentScheduleCollection",
      "schema": {
        "tableName": "_smrt_agent_schedules",
        "ddl": "CREATE TABLE IF NOT EXISTS \"_smrt_agent_schedules\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID,\n  \"agent_type\" TEXT,\n  \"agent_id\" TEXT,\n  \"agent_config\" TEXT,\n  \"cron\" TEXT,\n  \"timezone\" TEXT,\n  \"enabled\" BOOLEAN,\n  \"status\" TEXT,\n  \"last_run\" TIMESTAMP,\n  \"next_run\" TIMESTAMP,\n  \"last_status\" TEXT,\n  \"last_error\" TEXT,\n  \"run_count\" INTEGER,\n  \"success_count\" INTEGER,\n  \"failure_count\" INTEGER,\n  \"max_concurrent\" INTEGER,\n  \"running_count\" INTEGER,\n  \"timeout\" INTEGER,\n  \"method\" TEXT,\n  \"method_args\" TEXT\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false,
            "unique": false
          },
          "agent_type": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "agent_id": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "agent_config": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "cron": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "timezone": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "enabled": {
            "type": "BOOLEAN",
            "notNull": false,
            "unique": false
          },
          "status": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "last_run": {
            "type": "TIMESTAMP",
            "notNull": false,
            "unique": false
          },
          "next_run": {
            "type": "TIMESTAMP",
            "notNull": false,
            "unique": false
          },
          "last_status": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "last_error": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "run_count": {
            "type": "INTEGER",
            "notNull": false,
            "unique": false
          },
          "success_count": {
            "type": "INTEGER",
            "notNull": false,
            "unique": false
          },
          "failure_count": {
            "type": "INTEGER",
            "notNull": false,
            "unique": false
          },
          "max_concurrent": {
            "type": "INTEGER",
            "notNull": false,
            "unique": false
          },
          "running_count": {
            "type": "INTEGER",
            "notNull": false,
            "unique": false
          },
          "timeout": {
            "type": "INTEGER",
            "notNull": false,
            "unique": false
          },
          "method": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "method_args": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          }
        },
        "indexes": [
          {
            "name": "_smrt_agent_schedules_slug_context_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "_smrt_agent_schedules_enabled_status_next_run_idx",
            "columns": [
              "enabled",
              "status",
              "next_run"
            ]
          },
          {
            "name": "_smrt_agent_schedules_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          }
        ],
        "version": "c21a1f29"
      }
    },
    "@happyvertical/smrt-agents:AgentScheduleCollection": {
      "name": "agentschedulecollection",
      "className": "AgentScheduleCollection",
      "qualifiedName": "@happyvertical/smrt-agents:AgentScheduleCollection",
      "collection": "agentschedules",
      "filePath": "/home/runner/work/smrt/smrt/packages/agents/src/schedule.ts",
      "packageName": "@happyvertical/smrt-agents",
      "fields": {},
      "methods": {
        "findByTenant": {
          "name": "findByTenant",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<AgentSchedule[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findGlobal": {
          "name": "findGlobal",
          "async": true,
          "parameters": [],
          "returnType": "Promise<AgentSchedule[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findWithGlobals": {
          "name": "findWithGlobals",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<AgentSchedule[]>",
          "isStatic": false,
          "isPublic": true
        },
        "listByStatus": {
          "name": "listByStatus",
          "async": true,
          "parameters": [
            {
              "name": "status",
              "type": "ScheduleStatus | ScheduleStatus[]",
              "optional": false
            },
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<AgentSchedule[]>",
          "isStatic": false,
          "isPublic": true
        },
        "listByAgentType": {
          "name": "listByAgentType",
          "async": true,
          "parameters": [
            {
              "name": "agentType",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<AgentSchedule[]>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableName": "_smrt_agent_schedules"
      },
      "extends": "SmrtCollection",
      "extendsTypeArg": "AgentSchedule",
      "exportName": "AgentScheduleCollection",
      "collectionExportName": "AgentScheduleCollectionCollection",
      "schema": {
        "tableName": "_smrt_agent_schedules",
        "ddl": "CREATE TABLE IF NOT EXISTS \"_smrt_agent_schedules\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "_smrt_agent_schedules_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "_smrt_agent_schedules_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "d45601b0"
      }
    },
    "@happyvertical/smrt-agents:TenantAgent": {
      "name": "tenantagent",
      "className": "TenantAgent",
      "qualifiedName": "@happyvertical/smrt-agents:TenantAgent",
      "collection": "tenantagents",
      "filePath": "/home/runner/work/smrt/smrt/packages/agents/src/tenant-agent.ts",
      "packageName": "@happyvertical/smrt-agents",
      "fields": {
        "tenantId": {
          "type": "text",
          "required": true,
          "_meta": {
            "sqlType": "UUID",
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": true,
              "autoPopulate": true,
              "nullable": false,
              "mode": "required",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "agentClass": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "status": {
          "type": "text",
          "required": false,
          "_meta": {}
        },
        "permissions": {
          "type": "json",
          "required": false,
          "_meta": {
            "nullable": true
          }
        },
        "config": {
          "type": "json",
          "required": false,
          "_meta": {
            "nullable": true,
            "sensitive": true
          },
          "sensitive": true
        }
      },
      "methods": {},
      "decoratorConfig": {
        "tableName": "tenant_agents",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "cli": {
          "include": [
            "list",
            "get"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get"
          ]
        },
        "conflictColumns": [
          "tenant_id",
          "agent_class"
        ],
        "tenantScoped": {
          "mode": "required"
        }
      },
      "extends": "SmrtObject",
      "exportName": "TenantAgent",
      "collectionExportName": "TenantAgentCollection",
      "validationRules": [],
      "schema": {
        "tableName": "tenant_agents",
        "ddl": "CREATE TABLE IF NOT EXISTS \"tenant_agents\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID NOT NULL,\n  \"agent_class\" TEXT,\n  \"status\" TEXT,\n  \"permissions\" JSON,\n  \"config\" JSON\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": true,
            "unique": false
          },
          "agent_class": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "status": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "permissions": {
            "type": "JSON",
            "notNull": false,
            "unique": false
          },
          "config": {
            "type": "JSON",
            "notNull": false,
            "unique": false
          }
        },
        "indexes": [
          {
            "name": "tenant_agents_tenant_id_agent_class_idx",
            "columns": [
              "tenant_id",
              "agent_class"
            ],
            "unique": true
          },
          {
            "name": "tenant_agents_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ]
          },
          {
            "name": "tenant_agents_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          }
        ],
        "version": "9892a054"
      }
    },
    "@happyvertical/smrt-agents:TenantAgentCollection": {
      "name": "tenantagentcollection",
      "className": "TenantAgentCollection",
      "qualifiedName": "@happyvertical/smrt-agents:TenantAgentCollection",
      "collection": "tenantagents",
      "filePath": "/home/runner/work/smrt/smrt/packages/agents/src/tenant-agent.ts",
      "packageName": "@happyvertical/smrt-agents",
      "fields": {},
      "methods": {
        "resolveForTenant": {
          "name": "resolveForTenant",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            },
            {
              "name": "getAncestorIds",
              "type": "Function",
              "optional": false
            },
            {
              "name": "manifests",
              "type": "Map<string, AgentManifestInfo>",
              "optional": true
            }
          ],
          "returnType": "Promise<ResolvedAgentAvailability[]>",
          "isStatic": false,
          "isPublic": true
        },
        "enableAgent": {
          "name": "enableAgent",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            },
            {
              "name": "agentClass",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<TenantAgent>",
          "isStatic": false,
          "isPublic": true
        },
        "disableAgent": {
          "name": "disableAgent",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            },
            {
              "name": "agentClass",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<TenantAgent>",
          "isStatic": false,
          "isPublic": true
        },
        "clearOverride": {
          "name": "clearOverride",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            },
            {
              "name": "agentClass",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "setPermissions": {
          "name": "setPermissions",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            },
            {
              "name": "agentClass",
              "type": "string",
              "optional": false
            },
            {
              "name": "permissions",
              "type": "Record<string, boolean>",
              "optional": false
            }
          ],
          "returnType": "Promise<TenantAgent>",
          "isStatic": false,
          "isPublic": true
        },
        "findByTenantAndClass": {
          "name": "findByTenantAndClass",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            },
            {
              "name": "agentClass",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<TenantAgent | null>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableName": "tenant_agents"
      },
      "extends": "SmrtCollection",
      "extendsTypeArg": "TenantAgent",
      "exportName": "TenantAgentCollection",
      "collectionExportName": "TenantAgentCollectionCollection",
      "schema": {
        "tableName": "tenant_agents",
        "ddl": "CREATE TABLE IF NOT EXISTS \"tenant_agents\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "tenant_agents_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "tenant_agents_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "fbe7be99"
      }
    }
  },
  "moduleType": "smrt",
  "smrtDependencies": [
    "@happyvertical/smrt-core",
    "@happyvertical/smrt-reports",
    "@happyvertical/smrt-secrets",
    "@happyvertical/smrt-tenancy",
    "@happyvertical/smrt-users"
  ]
}