# 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) | | | createdAt | datetime(3) | STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') | false | | | | | heldUntil | datetime(3) | | false | | | | | holderId | varchar(64) | | false | | | | | observationScopeId | varchar(255) | | false | | [agents_threads](agents_threads.md) | | | taskKind | varchar(20) | | false | | | | | updatedAt | datetime(3) | STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') | false | | | | ## Constraints | Name | Type | Definition | | ---- | ---- | ---------- | | - | CHECK | CHECK ("taskKind" IN ('observer', 'reflector')) | | - (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 | | agentId | PRIMARY KEY | PRIMARY KEY (agentId) | | observationScopeId | PRIMARY KEY | PRIMARY KEY (observationScopeId) | | sqlite_autoindex_agents_observation_locks_1 | PRIMARY KEY | PRIMARY KEY (agentId, observationScopeId, taskKind) | | taskKind | PRIMARY KEY | PRIMARY KEY (taskKind) | ## 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 datetime_3_ createdAt datetime_3_ heldUntil varchar_64_ holderId varchar_255_ observationScopeId PK varchar_20_ taskKind PK datetime_3_ updatedAt } "agents" { varchar_36_ activeVersionId FK datetime_3_ createdAt varchar_36_ id PK TEXT integrations varchar_128_ name varchar_255_ projectId FK TEXT schema TEXT skills TEXT tools datetime_3_ updatedAt varchar_36_ versionId } "agents_threads" { datetime_3_ createdAt varchar_128_ id PK TEXT metadata varchar_255_ resourceId varchar_255_ title datetime_3_ updatedAt } ``` --- > Generated by [tbls](https://github.com/k1LoW/tbls)