@happyvertical/smrt-agents 0.57.44 → 0.57.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -6,7 +6,7 @@ Agent framework for autonomous actors with inter-agent messaging, interest-based
6
6
 
7
7
  | Module | Contract |
8
8
  | --- | --- |
9
- | [Data-surface discovery](agents/data-surface-discovery.md) | Summary discovery, row-count hints, and allowed field values |
9
+ | [Data-surface discovery](agents/data-surface-discovery.md) | Summary discovery, row-count hints, allowed values, `id`/request aliases |
10
10
 
11
11
  ## Agent Lifecycle
12
12
 
@@ -15,7 +15,8 @@ host sets `enforceDerivedValues`.
15
15
  ## Summary discovery and row-count hints (#4329)
16
16
 
17
17
  `discoverDetail: 'summary'` (#4329; default `'full'`) makes `data.discover`
18
- return only `id`, a cleaned `label`, the description's first non-empty line
18
+ return only `id` (repeated as `surfaceId`, the argument name `data.inspect`
19
+ and `data.query` take, #4507), a cleaned `label`, the description's first non-empty line
19
20
  bounded to 160 chars, and `rowCountHint`, with a discover tool description
20
21
  pointing to `data.inspect`. Without a `rowCountHint`, full discovery and
21
22
  `data.inspect` are byte-identical to before; a valid hint is added to both.
@@ -29,3 +30,24 @@ characters, and omits anything else. Every reader of the surface sees the
29
30
  same hint, so it must be a coarse static label, never a tenant- or
30
31
  principal-specific count; the description's first line is model-facing and
31
32
  must carry no secrets or instructions.
33
+
34
+ ## Argument names and request aliases (#4507, #4505)
35
+
36
+ `data.inspect`'s `surfaceId` is described ("The id data.discover lists for the
37
+ surface", `DATA_INSPECT_TOOL_PARAMETERS`) and named in its tool description;
38
+ summary discovery repeats `id` as `surfaceId`. `placeSurfaceId` takes a lone
39
+ top-level `id` string as `surfaceId` when no `surfaceId` is given and nothing
40
+ else sits beside it (inspect: no other key; query: only `request` or its
41
+ `query` wrapper, never the flat form, where `id` may be a field). Every other
42
+ `id` is ignored and the existing `DATA_QUERY_SURFACE_ID_*` errors apply.
43
+
44
+ Inside `request` (or the flat form), `data.query` maps SQL-ish aliases before
45
+ validation when the canonical key is absent: `select`→`projection` (array or
46
+ comma-separated string), `where`→`filter`, `orderBy`→`sort` (`"field desc"`
47
+ strings, comma lists, or a `{ field }` object; direction defaults to `asc`),
48
+ and `limit`/`offset`→`page.limit`/`page.offset` (merged into a `page` that
49
+ lacks them). Mapped values are validated exactly as if written canonically.
50
+ An alias beside its canonical key stays in place and fails as an unsupported
51
+ key; the error names the canonical key. Beside `request` at the top level an
52
+ alias is `DATA_QUERY_ARGUMENTS_UNEXPECTED` ("move limit inside request"). The
53
+ request schema's property descriptions name the aliases.
@@ -40,6 +40,11 @@ export type DataSurfaceRowCountHint = number | string;
40
40
  /** Summary-mode `data.discover` entry. */
41
41
  export interface DataSurfaceSummary {
42
42
  id: string;
43
+ /**
44
+ * The same value as `id`, under the argument name `data.inspect` and
45
+ * `data.query` take (#4507), so a model copies the key it is asked for.
46
+ */
47
+ surfaceId?: string;
43
48
  label: string;
44
49
  description?: string;
45
50
  rowCountHint?: DataSurfaceRowCountHint;
@@ -254,6 +259,8 @@ export declare function createDataSurfaceQueryFingerprint(request: DataQueryRequ
254
259
  * comes from `data.inspect`, which the description points at.
255
260
  */
256
261
  export declare const DATA_QUERY_TOOL_PARAMETERS: Record<string, unknown>;
262
+ /** JSON schema for `data.inspect`'s arguments (#4507). */
263
+ export declare const DATA_INSPECT_TOOL_PARAMETERS: Record<string, unknown>;
257
264
  /** Build the discover/inspect/query tools for a persona conversation. */
258
265
  export declare function createDataSurfaceTools(options: DataSurfaceToolsOptions): PrincipalTool[];
259
266
  //# sourceMappingURL=data-surface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-surface.d.ts","sourceRoot":"","sources":["../src/data-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-surface.d.ts","sourceRoot":"","sources":["../src/data-surface.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ import { createServerStepEvaluator, preflightPlaybook } from "@happyvertical/smr
12
12
  import { applyReportExport, applyReportRefresh, buildReportAdapterDescriptor, buildReportDrilldownQuery, createReportExportRequest, createReportExportSnapshot, previewReportExport, previewReportRefresh, queryReportMaterializedRows } from "@happyvertical/smrt-reports";
13
13
  import { getNextCronDate } from "@happyvertical/smrt-jobs";
14
14
  //#region src/__smrt-register__.ts
15
- ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-agents","packageVersion":"0.57.44","objects":{"@happyvertical/smrt-agents:Agent":{"name":"agent","className":"Agent","qualifiedName":"@happyvertical/smrt-agents:Agent","collection":"agents","description":"Base Agent class for building autonomous actors in the SMRT ecosystem","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","enum":["idle","initializing","running","error","shutdown"]}},"methods":{"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, unknown>>>","isStatic":false,"isPublic":true},"saveSlotConfig":{"name":"saveSlotConfig","async":true,"parameters":[{"name":"slotId","type":"string","optional":false},{"name":"data","type":"Record<string, unknown>","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, unknown>>","isStatic":false,"isPublic":true},"exportConfig":{"name":"exportConfig","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["boolean"]}],"returnType":"Promise<Record<string, unknown>>","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":"unknown","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},"initialize":{"name":"initialize","async":true,"parameters":[],"returnType":"Promise<this>","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":[],"createEntries":[],"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,"nullsNotDistinct":true},{"name":"agents_meta_type_idx","columns":["_meta_type"]},{"name":"agents_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"dde8777b"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:AgentConfig":{"name":"agentconfig","className":"AgentConfig","qualifiedName":"@happyvertical/smrt-agents:AgentConfig","collection":"agentconfigs","description":"AgentConfig stores agent configuration in the database","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, unknown>>>","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, unknown>>>>","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, unknown> | undefined>","isStatic":true,"isPublic":true},"saveSlot":{"name":"saveSlot","async":true,"parameters":[{"name":"data","type":"object","optional":false,"memberTypes":["string","Record<string, unknown>"]},{"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":{"skipApiCheck":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,"nullsNotDistinct":true},{"name":"agent_configs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"25c6ac4c"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:AgentConfigCollection":{"name":"agentconfigcollection","className":"AgentConfigCollection","qualifiedName":"@happyvertical/smrt-agents:AgentConfigCollection","collection":"agentconfigs","description":"Collection for AgentConfig objects","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","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]}},"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 \\"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,"nullsNotDistinct":true},{"name":"agent_configs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"25c6ac4c"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:AgentSchedule":{"name":"agentschedule","className":"AgentSchedule","qualifiedName":"@happyvertical/smrt-agents:AgentSchedule","collection":"agentschedules","description":"AgentSchedule model for cron-based agent scheduling","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":{},"enum":["active","paused","disabled","error"]},"lastRun":{"type":"datetime","required":false,"_meta":{"nullable":true}},"nextRun":{"type":"datetime","required":false,"_meta":{"nullable":true}},"lastStatus":{"type":"text","required":false,"_meta":{"nullable":true},"enum":["success","failed"]},"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},"save":{"name":"save","async":true,"parameters":[{"name":"options","type":"SaveOptions","optional":true}],"returnType":"Promise<this>","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,"nullsNotDistinct":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"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:AgentScheduleCollection":{"name":"agentschedulecollection","className":"AgentScheduleCollection","qualifiedName":"@happyvertical/smrt-agents:AgentScheduleCollection","collection":"agentschedules","description":"Collection for managing AgentSchedule objects","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,"unionBranches":[{"type":"ScheduleStatus"},{"type":"ScheduleStatus[]"}]},{"name":"options","type":"object","optional":true,"memberTypes":["number"]}],"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,"memberTypes":["number","boolean"]}],"returnType":"Promise<AgentSchedule[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_agent_schedules","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get","create","update","delete"],"skipApiCheck":true}},"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 \\"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,"nullsNotDistinct":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"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:TenantAgent":{"name":"tenantagent","className":"TenantAgent","qualifiedName":"@happyvertical/smrt-agents:TenantAgent","collection":"tenantagents","description":"TenantAgent SmrtObject \u2014 junction between tenants and agents","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":{},"enum":["active","disabled"]},"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,"nullsNotDistinct":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"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:TenantAgentCollection":{"name":"tenantagentcollection","className":"TenantAgentCollection","qualifiedName":"@happyvertical/smrt-agents:TenantAgentCollection","collection":"tenantagents","description":"Collection for managing tenant-agent bindings","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","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"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 \\"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,"nullsNotDistinct":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"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:SmrtDataSurfaceActionTask":{"name":"smrtdatasurfaceactiontask","className":"SmrtDataSurfaceActionTask","qualifiedName":"@happyvertical/smrt-agents:SmrtDataSurfaceActionTask","collection":"smrtdatasurfaceactiontasks","filePath":"/home/runner/work/smrt/smrt/packages/agents/src/server/jobs-data-surface-action-queue.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}}},"args":{"type":"json","required":true,"_meta":{"required":true}}},"methods":{"run":{"name":"run","async":true,"parameters":[{"name":"args","type":"DataSurfaceActionJobArgs","optional":true},{"name":"context","type":"JobExecutionContext","optional":true}],"returnType":"Promise<DataSurfaceActionResult>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_data_surface_action_tasks","api":false,"cli":false,"mcp":false,"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"SmrtDataSurfaceActionTask","collectionExportName":"SmrtDataSurfaceActionTaskCollection","validationRules":[{"field":"args","rule":"required","fieldType":"json"}],"schema":{"tableName":"_smrt_data_surface_action_tasks","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_data_surface_action_tasks\\" (\\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 \\"args\\" JSON NOT NULL\\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},"args":{"type":"JSON","notNull":true,"unique":false}},"indexes":[{"name":"_smrt_data_surface_action_tasks_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_data_surface_action_tasks_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"d1c4adf8"},"importPath":"@happyvertical/smrt-agents/server"},"@happyvertical/smrt-agents:DataSurfaceActionTokenState":{"name":"datasurfaceactiontokenstate","className":"DataSurfaceActionTokenState","qualifiedName":"@happyvertical/smrt-agents:DataSurfaceActionTokenState","collection":"datasurfaceactiontokenstates","filePath":"/home/runner/work/smrt/smrt/packages/agents/src/server/sql-data-surface-action-state.ts","packageName":"@happyvertical/smrt-agents","fields":{"tokenHash":{"type":"text","required":true,"_meta":{"required":true,"unique":true}},"record":{"type":"json","required":true,"_meta":{"required":true}},"consumedBy":{"type":"text","required":false,"_meta":{"nullable":true}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_data_surface_action_tokens","api":false,"cli":false,"mcp":false},"extends":"SmrtObject","exportName":"DataSurfaceActionTokenState","collectionExportName":"DataSurfaceActionTokenStateCollection","validationRules":[{"field":"tokenHash","rule":"required","fieldType":"text"},{"field":"record","rule":"required","fieldType":"json"}],"schema":{"tableName":"_smrt_data_surface_action_tokens","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_data_surface_action_tokens\\" (\\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 \\"token_hash\\" TEXT NOT NULL UNIQUE,\\n \\"record\\" JSON NOT NULL,\\n \\"consumed_by\\" 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"},"token_hash":{"type":"TEXT","notNull":true,"unique":true},"record":{"type":"JSON","notNull":true,"unique":false},"consumed_by":{"type":"TEXT","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_data_surface_action_tokens_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"_smrt_data_surface_action_tokens_created_at_idx","columns":["created_at"]}],"version":"497cf260"},"importPath":"@happyvertical/smrt-agents/server"},"@happyvertical/smrt-agents:DataSurfaceActionIdempotencyState":{"name":"datasurfaceactionidempotencystate","className":"DataSurfaceActionIdempotencyState","qualifiedName":"@happyvertical/smrt-agents:DataSurfaceActionIdempotencyState","collection":"datasurfaceactionidempotencystates","filePath":"/home/runner/work/smrt/smrt/packages/agents/src/server/sql-data-surface-action-state.ts","packageName":"@happyvertical/smrt-agents","fields":{"keyHash":{"type":"text","required":true,"_meta":{"required":true,"unique":true}},"status":{"type":"text","required":true,"_meta":{"required":true},"enum":["reserved","completed"]},"requestFingerprint":{"type":"text","required":true,"_meta":{"required":true}},"ownerHash":{"type":"text","required":false,"_meta":{"nullable":true}},"reservedAt":{"type":"text","required":false,"_meta":{"nullable":true}},"result":{"type":"json","required":false,"_meta":{"nullable":true}},"recovery":{"type":"json","required":false,"_meta":{"nullable":true}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_data_surface_action_idempotency","api":false,"cli":false,"mcp":false},"extends":"SmrtObject","exportName":"DataSurfaceActionIdempotencyState","collectionExportName":"DataSurfaceActionIdempotencyStateCollection","validationRules":[{"field":"keyHash","rule":"required","fieldType":"text"},{"field":"status","rule":"required","fieldType":"text"},{"field":"requestFingerprint","rule":"required","fieldType":"text"}],"schema":{"tableName":"_smrt_data_surface_action_idempotency","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_data_surface_action_idempotency\\" (\\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 \\"key_hash\\" TEXT NOT NULL UNIQUE,\\n \\"status\\" TEXT NOT NULL,\\n \\"request_fingerprint\\" TEXT NOT NULL,\\n \\"owner_hash\\" TEXT,\\n \\"reserved_at\\" TEXT,\\n \\"result\\" JSON,\\n \\"recovery\\" 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"},"key_hash":{"type":"TEXT","notNull":true,"unique":true},"status":{"type":"TEXT","notNull":true,"unique":false},"request_fingerprint":{"type":"TEXT","notNull":true,"unique":false},"owner_hash":{"type":"TEXT","notNull":false,"unique":false},"reserved_at":{"type":"TEXT","notNull":false,"unique":false},"result":{"type":"JSON","notNull":false,"unique":false},"recovery":{"type":"JSON","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_data_surface_action_idempotency_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"_smrt_data_surface_action_idempotency_created_at_idx","columns":["created_at"]}],"version":"eb65ff1e"},"importPath":"@happyvertical/smrt-agents/server"}},"moduleType":"smrt","smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-jobs","@happyvertical/smrt-playbooks","@happyvertical/smrt-reports","@happyvertical/smrt-secrets","@happyvertical/smrt-tenancy","@happyvertical/smrt-users"],"browser":{"status":"server-only","issues":["#3615","#3617","#3624","#3625","#3626","#3627"],"reason":"node:crypto in root; core migrations (node:os)","via":["@happyvertical/smrt-jobs","@happyvertical/smrt-profiles","@happyvertical/smrt-reports","@happyvertical/smrt-secrets","@happyvertical/smrt-tenancy","@happyvertical/smrt-users"]},"stampsConstructors":true}`));
15
+ ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-agents","packageVersion":"0.57.46","objects":{"@happyvertical/smrt-agents:Agent":{"name":"agent","className":"Agent","qualifiedName":"@happyvertical/smrt-agents:Agent","collection":"agents","description":"Base Agent class for building autonomous actors in the SMRT ecosystem","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","enum":["idle","initializing","running","error","shutdown"]}},"methods":{"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, unknown>>>","isStatic":false,"isPublic":true},"saveSlotConfig":{"name":"saveSlotConfig","async":true,"parameters":[{"name":"slotId","type":"string","optional":false},{"name":"data","type":"Record<string, unknown>","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, unknown>>","isStatic":false,"isPublic":true},"exportConfig":{"name":"exportConfig","async":true,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["boolean"]}],"returnType":"Promise<Record<string, unknown>>","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":"unknown","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},"initialize":{"name":"initialize","async":true,"parameters":[],"returnType":"Promise<this>","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":[],"createEntries":[],"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,"nullsNotDistinct":true},{"name":"agents_meta_type_idx","columns":["_meta_type"]},{"name":"agents_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"dde8777b"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:AgentConfig":{"name":"agentconfig","className":"AgentConfig","qualifiedName":"@happyvertical/smrt-agents:AgentConfig","collection":"agentconfigs","description":"AgentConfig stores agent configuration in the database","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, unknown>>>","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, unknown>>>>","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, unknown> | undefined>","isStatic":true,"isPublic":true},"saveSlot":{"name":"saveSlot","async":true,"parameters":[{"name":"data","type":"object","optional":false,"memberTypes":["string","Record<string, unknown>"]},{"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":{"skipApiCheck":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,"nullsNotDistinct":true},{"name":"agent_configs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"25c6ac4c"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:AgentConfigCollection":{"name":"agentconfigcollection","className":"AgentConfigCollection","qualifiedName":"@happyvertical/smrt-agents:AgentConfigCollection","collection":"agentconfigs","description":"Collection for AgentConfig objects","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","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]}},"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 \\"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,"nullsNotDistinct":true},{"name":"agent_configs_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"25c6ac4c"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:AgentSchedule":{"name":"agentschedule","className":"AgentSchedule","qualifiedName":"@happyvertical/smrt-agents:AgentSchedule","collection":"agentschedules","description":"AgentSchedule model for cron-based agent scheduling","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":{},"enum":["active","paused","disabled","error"]},"lastRun":{"type":"datetime","required":false,"_meta":{"nullable":true}},"nextRun":{"type":"datetime","required":false,"_meta":{"nullable":true}},"lastStatus":{"type":"text","required":false,"_meta":{"nullable":true},"enum":["success","failed"]},"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},"save":{"name":"save","async":true,"parameters":[{"name":"options","type":"SaveOptions","optional":true}],"returnType":"Promise<this>","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,"nullsNotDistinct":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"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:AgentScheduleCollection":{"name":"agentschedulecollection","className":"AgentScheduleCollection","qualifiedName":"@happyvertical/smrt-agents:AgentScheduleCollection","collection":"agentschedules","description":"Collection for managing AgentSchedule objects","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,"unionBranches":[{"type":"ScheduleStatus"},{"type":"ScheduleStatus[]"}]},{"name":"options","type":"object","optional":true,"memberTypes":["number"]}],"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,"memberTypes":["number","boolean"]}],"returnType":"Promise<AgentSchedule[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_agent_schedules","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get","create","update","delete"],"skipApiCheck":true}},"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 \\"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,"nullsNotDistinct":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"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:TenantAgent":{"name":"tenantagent","className":"TenantAgent","qualifiedName":"@happyvertical/smrt-agents:TenantAgent","collection":"tenantagents","description":"TenantAgent SmrtObject \u2014 junction between tenants and agents","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":{},"enum":["active","disabled"]},"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,"nullsNotDistinct":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"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:TenantAgentCollection":{"name":"tenantagentcollection","className":"TenantAgentCollection","qualifiedName":"@happyvertical/smrt-agents:TenantAgentCollection","collection":"tenantagents","description":"Collection for managing tenant-agent bindings","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","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"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 \\"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,"nullsNotDistinct":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"},"importPath":"@happyvertical/smrt-agents"},"@happyvertical/smrt-agents:SmrtDataSurfaceActionTask":{"name":"smrtdatasurfaceactiontask","className":"SmrtDataSurfaceActionTask","qualifiedName":"@happyvertical/smrt-agents:SmrtDataSurfaceActionTask","collection":"smrtdatasurfaceactiontasks","filePath":"/home/runner/work/smrt/smrt/packages/agents/src/server/jobs-data-surface-action-queue.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}}},"args":{"type":"json","required":true,"_meta":{"required":true}}},"methods":{"run":{"name":"run","async":true,"parameters":[{"name":"args","type":"DataSurfaceActionJobArgs","optional":true},{"name":"context","type":"JobExecutionContext","optional":true}],"returnType":"Promise<DataSurfaceActionResult>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"_smrt_data_surface_action_tasks","api":false,"cli":false,"mcp":false,"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"SmrtDataSurfaceActionTask","collectionExportName":"SmrtDataSurfaceActionTaskCollection","validationRules":[{"field":"args","rule":"required","fieldType":"json"}],"schema":{"tableName":"_smrt_data_surface_action_tasks","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_data_surface_action_tasks\\" (\\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 \\"args\\" JSON NOT NULL\\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},"args":{"type":"JSON","notNull":true,"unique":false}},"indexes":[{"name":"_smrt_data_surface_action_tasks_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"_smrt_data_surface_action_tasks_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"d1c4adf8"},"importPath":"@happyvertical/smrt-agents/server"},"@happyvertical/smrt-agents:DataSurfaceActionTokenState":{"name":"datasurfaceactiontokenstate","className":"DataSurfaceActionTokenState","qualifiedName":"@happyvertical/smrt-agents:DataSurfaceActionTokenState","collection":"datasurfaceactiontokenstates","filePath":"/home/runner/work/smrt/smrt/packages/agents/src/server/sql-data-surface-action-state.ts","packageName":"@happyvertical/smrt-agents","fields":{"tokenHash":{"type":"text","required":true,"_meta":{"required":true,"unique":true}},"record":{"type":"json","required":true,"_meta":{"required":true}},"consumedBy":{"type":"text","required":false,"_meta":{"nullable":true}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_data_surface_action_tokens","api":false,"cli":false,"mcp":false},"extends":"SmrtObject","exportName":"DataSurfaceActionTokenState","collectionExportName":"DataSurfaceActionTokenStateCollection","validationRules":[{"field":"tokenHash","rule":"required","fieldType":"text"},{"field":"record","rule":"required","fieldType":"json"}],"schema":{"tableName":"_smrt_data_surface_action_tokens","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_data_surface_action_tokens\\" (\\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 \\"token_hash\\" TEXT NOT NULL UNIQUE,\\n \\"record\\" JSON NOT NULL,\\n \\"consumed_by\\" 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"},"token_hash":{"type":"TEXT","notNull":true,"unique":true},"record":{"type":"JSON","notNull":true,"unique":false},"consumed_by":{"type":"TEXT","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_data_surface_action_tokens_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"_smrt_data_surface_action_tokens_created_at_idx","columns":["created_at"]}],"version":"497cf260"},"importPath":"@happyvertical/smrt-agents/server"},"@happyvertical/smrt-agents:DataSurfaceActionIdempotencyState":{"name":"datasurfaceactionidempotencystate","className":"DataSurfaceActionIdempotencyState","qualifiedName":"@happyvertical/smrt-agents:DataSurfaceActionIdempotencyState","collection":"datasurfaceactionidempotencystates","filePath":"/home/runner/work/smrt/smrt/packages/agents/src/server/sql-data-surface-action-state.ts","packageName":"@happyvertical/smrt-agents","fields":{"keyHash":{"type":"text","required":true,"_meta":{"required":true,"unique":true}},"status":{"type":"text","required":true,"_meta":{"required":true},"enum":["reserved","completed"]},"requestFingerprint":{"type":"text","required":true,"_meta":{"required":true}},"ownerHash":{"type":"text","required":false,"_meta":{"nullable":true}},"reservedAt":{"type":"text","required":false,"_meta":{"nullable":true}},"result":{"type":"json","required":false,"_meta":{"nullable":true}},"recovery":{"type":"json","required":false,"_meta":{"nullable":true}}},"methods":{},"decoratorConfig":{"tableName":"_smrt_data_surface_action_idempotency","api":false,"cli":false,"mcp":false},"extends":"SmrtObject","exportName":"DataSurfaceActionIdempotencyState","collectionExportName":"DataSurfaceActionIdempotencyStateCollection","validationRules":[{"field":"keyHash","rule":"required","fieldType":"text"},{"field":"status","rule":"required","fieldType":"text"},{"field":"requestFingerprint","rule":"required","fieldType":"text"}],"schema":{"tableName":"_smrt_data_surface_action_idempotency","ddl":"CREATE TABLE IF NOT EXISTS \\"_smrt_data_surface_action_idempotency\\" (\\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 \\"key_hash\\" TEXT NOT NULL UNIQUE,\\n \\"status\\" TEXT NOT NULL,\\n \\"request_fingerprint\\" TEXT NOT NULL,\\n \\"owner_hash\\" TEXT,\\n \\"reserved_at\\" TEXT,\\n \\"result\\" JSON,\\n \\"recovery\\" 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"},"key_hash":{"type":"TEXT","notNull":true,"unique":true},"status":{"type":"TEXT","notNull":true,"unique":false},"request_fingerprint":{"type":"TEXT","notNull":true,"unique":false},"owner_hash":{"type":"TEXT","notNull":false,"unique":false},"reserved_at":{"type":"TEXT","notNull":false,"unique":false},"result":{"type":"JSON","notNull":false,"unique":false},"recovery":{"type":"JSON","notNull":false,"unique":false}},"indexes":[{"name":"_smrt_data_surface_action_idempotency_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"_smrt_data_surface_action_idempotency_created_at_idx","columns":["created_at"]}],"version":"eb65ff1e"},"importPath":"@happyvertical/smrt-agents/server"}},"moduleType":"smrt","smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-jobs","@happyvertical/smrt-playbooks","@happyvertical/smrt-reports","@happyvertical/smrt-secrets","@happyvertical/smrt-tenancy","@happyvertical/smrt-users"],"browser":{"status":"server-only","issues":["#3615","#3617","#3624","#3625","#3626","#3627"],"reason":"node:crypto in root; core migrations (node:os)","via":["@happyvertical/smrt-jobs","@happyvertical/smrt-profiles","@happyvertical/smrt-reports","@happyvertical/smrt-secrets","@happyvertical/smrt-tenancy","@happyvertical/smrt-users"]},"stampsConstructors":true}`));
16
16
  //#endregion
17
17
  //#region src/ai-config.ts
18
18
  var DEFAULT_SECRET_FALLBACK = "ancestors";
@@ -1345,7 +1345,7 @@ function explainRequestError(error, schema, request, surfaceId) {
1345
1345
  hint = `This surface supports offset paging${supports.cursorPagination ? ", cursor paging" : ""}${supports.facets ? ", facets" : ""}${supports.consistency ? ", consistency options" : ""}.`;
1346
1346
  break;
1347
1347
  }
1348
- default: hint = `${filterKindHint(request)}${DATA_QUERY_REQUEST_SHAPE_HINT}`;
1348
+ default: hint = `${requestAliasHint(request)}${filterKindHint(request)}${DATA_QUERY_REQUEST_SHAPE_HINT}`;
1349
1349
  }
1350
1350
  return new DataSurfaceRequestError(`${reason} ${nullHint}${hint} ${validQueryExample(surfaceId, schema, request)}`, error.code);
1351
1351
  }
@@ -1431,6 +1431,7 @@ function summary(surface) {
1431
1431
  const description = summaryDescription(surface.description);
1432
1432
  return {
1433
1433
  id: surface.id,
1434
+ surfaceId: surface.id,
1434
1435
  label: firstSummaryLine(surface.label) ?? surface.id,
1435
1436
  ...description ? { description } : {},
1436
1437
  ...rowCountHintEntry(surface)
@@ -1714,11 +1715,85 @@ var DATA_QUERY_REQUEST_KEYS = [
1714
1715
  "page",
1715
1716
  "facets",
1716
1717
  "version",
1717
- "requestId"
1718
+ "requestId",
1719
+ "select",
1720
+ "where",
1721
+ "orderBy",
1722
+ "limit",
1723
+ "offset"
1718
1724
  ];
1725
+ var DATA_QUERY_REQUEST_ALIASES = {
1726
+ select: "projection",
1727
+ where: "filter",
1728
+ orderBy: "sort",
1729
+ limit: "page.limit",
1730
+ offset: "page.offset"
1731
+ };
1732
+ function sortFromOrderBy(value) {
1733
+ const term = (entry) => {
1734
+ if (typeof entry === "string") {
1735
+ const [field, direction, ...extra] = entry.trim().split(/\s+/);
1736
+ const lower = direction?.toLowerCase();
1737
+ if (!field || extra.length > 0 || lower !== void 0 && lower !== "asc" && lower !== "desc") return entry;
1738
+ return {
1739
+ field,
1740
+ direction: lower ?? "asc"
1741
+ };
1742
+ }
1743
+ if (isRecord$1(entry) && entry.direction === void 0) return {
1744
+ ...entry,
1745
+ direction: "asc"
1746
+ };
1747
+ return entry;
1748
+ };
1749
+ if (typeof value === "string") return value.split(",").map((part) => part.trim()).filter(Boolean).map(term);
1750
+ if (Array.isArray(value)) return value.map(term);
1751
+ if (isRecord$1(value)) return [term(value)];
1752
+ return value;
1753
+ }
1754
+ function applyRequestAliases(raw) {
1755
+ const next = { ...raw };
1756
+ if (Object.hasOwn(next, "select") && !Object.hasOwn(next, "projection")) {
1757
+ const { select } = next;
1758
+ next.projection = typeof select === "string" ? select.split(",").map((part) => part.trim()).filter(Boolean) : select;
1759
+ delete next.select;
1760
+ }
1761
+ if (Object.hasOwn(next, "where") && !Object.hasOwn(next, "filter")) {
1762
+ next.filter = next.where;
1763
+ delete next.where;
1764
+ }
1765
+ if (Object.hasOwn(next, "orderBy") && !Object.hasOwn(next, "sort")) {
1766
+ next.sort = sortFromOrderBy(next.orderBy);
1767
+ delete next.orderBy;
1768
+ }
1769
+ for (const key of ["limit", "offset"]) {
1770
+ if (!Object.hasOwn(next, key)) continue;
1771
+ if (next.page === void 0) next.page = { [key]: next[key] };
1772
+ else if (isRecord$1(next.page) && !Object.hasOwn(next.page, key)) next.page = {
1773
+ ...next.page,
1774
+ [key]: next[key]
1775
+ };
1776
+ else continue;
1777
+ delete next[key];
1778
+ }
1779
+ return next;
1780
+ }
1781
+ function requestAliasHint(request) {
1782
+ if (!isRecord$1(request)) return "";
1783
+ const left = Object.keys(DATA_QUERY_REQUEST_ALIASES).filter((alias) => Object.hasOwn(request, alias));
1784
+ if (left.length === 0) return "";
1785
+ return `${left.map((alias) => `${alias} is an alias of ${DATA_QUERY_REQUEST_ALIASES[alias]}, which the request already sets`).join("; ")}: send only ${left.map((alias) => DATA_QUERY_REQUEST_ALIASES[alias]).join(", ")}. `;
1786
+ }
1719
1787
  var GENERIC_QUERY_EXAMPLE = "Valid example: {\"surfaceId\":\"<surface id from data.discover>\",\"request\":{\"mode\":\"count\",\"filter\":{\"kind\":\"condition\",\"field\":\"<field>\",\"operator\":\"in\",\"value\":[\"<value>\",\"<value>\"]}}}";
1720
1788
  function placeSurfaceId(args, tool2) {
1721
1789
  let next = { ...args };
1790
+ if (!Object.hasOwn(next, "surfaceId") && typeof next.id === "string" && next.id && Object.keys(next).every((key) => key === "id" || tool2 === "query" && (key === "request" || key === "query"))) {
1791
+ const { id, ...rest } = next;
1792
+ next = {
1793
+ ...rest,
1794
+ surfaceId: id
1795
+ };
1796
+ }
1722
1797
  if (tool2 === "query" && !Object.hasOwn(next, "request") && isRecord$1(next.query) && Object.keys(next).every((key) => key === "surfaceId" || key === "query")) {
1723
1798
  const { query, ...rest } = next;
1724
1799
  next = {
@@ -1766,18 +1841,19 @@ function requestFromArgs(args, example) {
1766
1841
  raw = rest;
1767
1842
  }
1768
1843
  if (!isRecord$1(raw)) return raw;
1844
+ const aliased = applyRequestAliases(raw);
1769
1845
  const request = {
1770
- ...raw,
1771
- version: raw.version ?? 1,
1772
- requestId: raw.requestId ?? `dq_${randomUUID()}`,
1773
- mode: raw.mode ?? (raw.facets !== void 0 ? "facets" : "rows")
1846
+ ...aliased,
1847
+ version: aliased.version ?? 1,
1848
+ requestId: aliased.requestId ?? `dq_${randomUUID()}`,
1849
+ mode: aliased.mode ?? (aliased.facets !== void 0 ? "facets" : "rows")
1774
1850
  };
1775
- if (isRecord$1(raw.page)) {
1776
- const kind = raw.page.kind ?? "offset";
1851
+ if (isRecord$1(aliased.page)) {
1852
+ const kind = aliased.page.kind ?? "offset";
1777
1853
  request.page = {
1778
- ...raw.page,
1854
+ ...aliased.page,
1779
1855
  kind,
1780
- ...kind === "offset" ? { offset: raw.page.offset ?? 0 } : {}
1856
+ ...kind === "offset" ? { offset: aliased.page.offset ?? 0 } : {}
1781
1857
  };
1782
1858
  }
1783
1859
  return request;
@@ -1827,11 +1903,11 @@ var DATA_QUERY_TOOL_PARAMETERS = {
1827
1903
  type: "array",
1828
1904
  items: { type: "string" },
1829
1905
  maxItems: 50,
1830
- description: "rows only. Projectable fields to return; the identity field is always included."
1906
+ description: "rows only. Projectable fields to return; the identity field is always included. Alias: select (an array or a comma-separated string), when projection is absent."
1831
1907
  },
1832
1908
  filter: {
1833
1909
  type: "object",
1834
- description: "Optional. A condition {\"kind\":\"condition\",\"field\":f,\"operator\":op,\"value\":v}; {\"kind\":\"all\"|\"any\",\"filters\":[...]} to AND/OR nested filters; or {\"kind\":\"not\",\"filter\":{...}}. field must list op in its filterOperators (data.inspect). value is a scalar, or a non-empty array (max 100) for in/notIn. isNull/isNotNull test for an empty value and take no value: {\"kind\":\"condition\",\"field\":f,\"operator\":\"isNull\"}. like takes SQL wildcards (%council%) on string fields. Datetimes are RFC 3339 instants (2026-09-01T00:00:00Z). String fields whose only value operators are eq/ne/in/notIn (isNull/isNotNull aside) hold ids: compare them with complete id values.",
1910
+ description: "Optional. A condition {\"kind\":\"condition\",\"field\":f,\"operator\":op,\"value\":v}; {\"kind\":\"all\"|\"any\",\"filters\":[...]} to AND/OR nested filters; or {\"kind\":\"not\",\"filter\":{...}}. field must list op in its filterOperators (data.inspect). value is a scalar, or a non-empty array (max 100) for in/notIn. isNull/isNotNull test for an empty value and take no value: {\"kind\":\"condition\",\"field\":f,\"operator\":\"isNull\"}. like takes SQL wildcards (%council%) on string fields. Datetimes are RFC 3339 instants (2026-09-01T00:00:00Z). String fields whose only value operators are eq/ne/in/notIn (isNull/isNotNull aside) hold ids: compare them with complete id values. Alias: where, when filter is absent.",
1835
1911
  properties: {
1836
1912
  kind: {
1837
1913
  type: "string",
@@ -1861,7 +1937,7 @@ var DATA_QUERY_TOOL_PARAMETERS = {
1861
1937
  },
1862
1938
  sort: {
1863
1939
  type: "array",
1864
- description: "rows only. Sortable fields, earlier terms first. Empty values sort first ascending and last descending.",
1940
+ description: "rows only. Sortable fields, earlier terms first. Empty values sort first ascending and last descending. Alias: orderBy, when sort is absent; it also takes \"field desc\" strings (comma-separated) and defaults direction to asc.",
1865
1941
  items: {
1866
1942
  type: "object",
1867
1943
  additionalProperties: false,
@@ -1878,7 +1954,7 @@ var DATA_QUERY_TOOL_PARAMETERS = {
1878
1954
  page: {
1879
1955
  type: "object",
1880
1956
  additionalProperties: false,
1881
- description: "rows only. {\"kind\":\"offset\",\"offset\":0,\"limit\":10}; kind defaults to offset and offset to 0. limit is capped at the surface maxPageLimit. Use {\"kind\":\"cursor\",\"after\":nextCursor,\"limit\":n} only where supports.cursorPagination.",
1957
+ description: "rows only. {\"kind\":\"offset\",\"offset\":0,\"limit\":10}; kind defaults to offset and offset to 0. limit is capped at the surface maxPageLimit. Use {\"kind\":\"cursor\",\"after\":nextCursor,\"limit\":n} only where supports.cursorPagination. Aliases: limit and offset beside page (inside request) fill page.limit/page.offset when page does not set them.",
1882
1958
  properties: {
1883
1959
  kind: {
1884
1960
  type: "string",
@@ -1927,7 +2003,17 @@ var DATA_QUERY_TOOL_PARAMETERS = {
1927
2003
  };
1928
2004
  var DATA_QUERY_TOOL_DESCRIPTION = "Run a bounded, read-only query against one data surface. Call data.inspect first: only the fields, operators, sort fields, facets, and page limits it lists are accepted. Use mode \"count\" for how-many questions and mode \"facets\" for breakdowns by value. Example request: {\"mode\":\"rows\",\"projection\":[\"title\",\"updated_at\"],\"filter\":{\"kind\":\"condition\",\"field\":\"status\",\"operator\":\"eq\",\"value\":\"published\"},\"sort\":[{\"field\":\"updated_at\",\"direction\":\"desc\"}],\"page\":{\"kind\":\"offset\",\"offset\":0,\"limit\":10}}. An invalid request fails with a message naming what was wrong and what is allowed.";
1929
2005
  var DATA_DISCOVER_FULL_TOOL_DESCRIPTION = "List data surfaces and their safe, readable fields.";
1930
- var DATA_DISCOVER_SUMMARY_TOOL_DESCRIPTION = "List the data surfaces you can read (id, label, short description). Call data.inspect for a surface's fields and operators before querying.";
2006
+ var DATA_DISCOVER_SUMMARY_TOOL_DESCRIPTION = `List the data surfaces you can read (surfaceId, label, short description). Call data.inspect with {"surfaceId": <surfaceId>} for a surface's fields and operators before querying.`;
2007
+ var DATA_INSPECT_TOOL_DESCRIPTION = "Inspect one readable data surface schema: its fields, filter operators, sort and facet fields, and page limits. Takes {\"surfaceId\": <the id data.discover lists for the surface>}.";
2008
+ var DATA_INSPECT_TOOL_PARAMETERS = {
2009
+ type: "object",
2010
+ required: ["surfaceId"],
2011
+ properties: { surfaceId: {
2012
+ type: "string",
2013
+ description: "The id data.discover lists for the surface."
2014
+ } },
2015
+ additionalProperties: false
2016
+ };
1931
2017
  function tool(slug, functionName, description, parameters, execute) {
1932
2018
  return {
1933
2019
  slug,
@@ -2034,12 +2120,7 @@ function createDataSurfaceTools(options) {
2034
2120
  await audit({ action: "discover" }, run);
2035
2121
  return entries.map(({ surface, schema }) => summaryDiscovery ? summary(surface) : descriptor(surface, schema));
2036
2122
  }),
2037
- tool(DATA_INSPECT_TOOL_SLUG, DATA_INSPECT_FUNCTION_NAME, "Inspect one readable data surface schema.", {
2038
- type: "object",
2039
- required: ["surfaceId"],
2040
- properties: { surfaceId: { type: "string" } },
2041
- additionalProperties: false
2042
- }, async ({ run, args }) => {
2123
+ tool(DATA_INSPECT_TOOL_SLUG, DATA_INSPECT_FUNCTION_NAME, DATA_INSPECT_TOOL_DESCRIPTION, DATA_INSPECT_TOOL_PARAMETERS, async ({ run, args }) => {
2043
2124
  await assertAllowed(run, "inspect", DATA_INSPECT_TOOL_SLUG);
2044
2125
  const placed = placeSurfaceId(args, "inspect");
2045
2126
  const entry = findSurface(await catalog(run, "inspect"), placed.surfaceId);