# agents_observation_locks ## Description
Table Definition ```sql CREATE TABLE "agents_observation_locks" ("agentId" varchar(36) NOT NULL, "observationScopeId" varchar(255) NOT NULL, "taskKind" varchar(20) NOT NULL, "holderId" varchar(64) NOT NULL, "heldUntil" datetime(3) NOT NULL, "createdAt" datetime(3) NOT NULL DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')), "updatedAt" datetime(3) NOT NULL DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')), CONSTRAINT "CHK_agents_observation_locks_taskKind" CHECK ("taskKind" IN ('observer', 'reflector')), CONSTRAINT "FK_093e44ae20f2518e97d83a95433" FOREIGN KEY ("agentId") REFERENCES "agents" ("id") ON DELETE CASCADE, CONSTRAINT "FK_6b55089892e447c2f82e5ec60ed" FOREIGN KEY ("observationScopeId") REFERENCES "agents_threads" ("id") ON DELETE CASCADE, PRIMARY KEY ("agentId", "observationScopeId", "taskKind")) ```
## Columns | Name | Type | Default | Nullable | Children | Parents | Comment | | ---- | ---- | ------- | -------- | -------- | ------- | ------- | | agentId | varchar(36) | | false | | [agents](agents.md) | | | observationScopeId | varchar(255) | | false | | [agents_threads](agents_threads.md) | | | taskKind | varchar(20) | | false | | | | | holderId | varchar(64) | | false | | | | | heldUntil | datetime(3) | | false | | | | | createdAt | datetime(3) | STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') | false | | | | | updatedAt | datetime(3) | STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') | false | | | | ## Constraints | Name | Type | Definition | | ---- | ---- | ---------- | | agentId | PRIMARY KEY | PRIMARY KEY (agentId) | | observationScopeId | PRIMARY KEY | PRIMARY KEY (observationScopeId) | | taskKind | PRIMARY KEY | PRIMARY KEY (taskKind) | | - (Foreign key ID: 0) | FOREIGN KEY | FOREIGN KEY (observationScopeId) REFERENCES agents_threads (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE | | - (Foreign key ID: 1) | FOREIGN KEY | FOREIGN KEY (agentId) REFERENCES agents (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE | | sqlite_autoindex_agents_observation_locks_1 | PRIMARY KEY | PRIMARY KEY (agentId, observationScopeId, taskKind) | | - | CHECK | CHECK ("taskKind" IN ('observer', 'reflector')) | ## Indexes | Name | Definition | | ---- | ---------- | | IDX_6b55089892e447c2f82e5ec60e | CREATE INDEX "IDX_6b55089892e447c2f82e5ec60e" ON "agents_observation_locks" ("observationScopeId") | | sqlite_autoindex_agents_observation_locks_1 | PRIMARY KEY (agentId, observationScopeId, taskKind) | ## Relations ```mermaid erDiagram "agents_observation_locks" |o--|| "agents" : "FOREIGN KEY (agentId) REFERENCES agents (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE" "agents_observation_locks" |o--|| "agents_threads" : "FOREIGN KEY (observationScopeId) REFERENCES agents_threads (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE" "agents_observation_locks" { varchar_36_ agentId PK varchar_255_ observationScopeId PK varchar_20_ taskKind PK varchar_64_ holderId datetime_3_ heldUntil datetime_3_ createdAt datetime_3_ updatedAt } "agents" { varchar_36_ id PK varchar_128_ name varchar_512_ description varchar_255_ projectId FK TEXT integrations TEXT schema TEXT tools TEXT skills varchar_36_ versionId datetime_3_ createdAt datetime_3_ updatedAt varchar_36_ activeVersionId FK } "agents_threads" { varchar_128_ id PK varchar_255_ resourceId varchar_255_ title TEXT metadata datetime_3_ createdAt datetime_3_ updatedAt } ``` --- > Generated by [tbls](https://github.com/k1LoW/tbls)