agentlas 1.0.47 → 1.0.49
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/CHANGELOG.md +16 -0
- package/README.md +4 -2
- package/bin/agentlas.cjs +10 -0
- package/engine/acp/server.cjs +279 -0
- package/engine/agentlas-capabilities.cjs +2 -1
- package/engine/agentlas-input.cjs +2 -1
- package/engine/agentlas-native-host.cjs +6 -0
- package/engine/agentlas-onboard.cjs +2 -1
- package/engine/agentlas-sqlite-policy.cjs +9 -0
- package/engine/automation/daemon.cjs +3 -7
- package/engine/bootstrap-schema.sql +1037 -1010
- package/engine/cloud-assets/package.cjs +11 -3
- package/engine/cloud-assets/upload-scan-catalog.generated.cjs +102 -0
- package/engine/commands/acp.cjs +45 -0
- package/engine/commands/billing.cjs +2 -2
- package/engine/commands/call.cjs +4 -0
- package/engine/commands/doctor.cjs +2 -1
- package/engine/commands/index.cjs +2 -0
- package/engine/commands/workforce.cjs +11 -0
- package/engine/core/db.cjs +53 -1
- package/engine/core/desktop-core.cjs +108 -4
- package/engine/core/store-schema.cjs +119 -0
- package/engine/firms/orchestrate.cjs +32 -1
- package/engine/project/memory-context.cjs +7 -0
- package/engine/runtimes/acp-driver.cjs +96 -0
- package/engine/runtimes/detect.cjs +3 -13
- package/engine/runtimes/kinds.cjs +84 -0
- package/engine/runtimes/resolve.cjs +40 -7
- package/engine/ui/commands-catalog.cjs +2 -0
- package/engine/ui/palette.cjs +2 -1
- package/engine/ui/repl.cjs +2 -1
- package/engine/ui/shell.cjs +38 -3
- package/engine/vendor/desktop-core.manifest.json +5 -5
- package/engine/workforce/capture.cjs +4 -8
- package/engine/workforce/deps.cjs +7 -0
- package/package.json +2 -1
|
@@ -1,81 +1,102 @@
|
|
|
1
|
-
-- Agentlas 첫 실행 부트스트랩 스키마 (생성: 2026-08-
|
|
2
|
-
--
|
|
3
|
-
|
|
1
|
+
-- Agentlas 첫 실행 부트스트랩 스키마 (생성: 2026-08-18T11:06:30Z)
|
|
2
|
+
--
|
|
3
|
+
-- ★생성물이다. 손으로 고치지 말고 재생성하라:
|
|
4
|
+
-- node scripts/gen-bootstrap-schema.cjs
|
|
5
|
+
--
|
|
6
|
+
-- 정본은 Desktop 의 마이그레이션 사다리(agentlas_desktop/electron/store/db.ts, SCHEMA_VERSION).
|
|
7
|
+
-- 이 파일은 그 사다리를 **빈 DB** 에 끝까지 돌린 결과의 덤프이므로, 터미널이 만든 DB 는
|
|
8
|
+
-- 처음부터 사다리 머리에 있다 — 데스크탑이 나중에 승급할 것이 남지 않는다.
|
|
9
|
+
PRAGMA user_version=97;
|
|
4
10
|
CREATE TABLE active_runtime (
|
|
5
11
|
id INTEGER PRIMARY KEY CHECK(id = 1),
|
|
6
12
|
kind TEXT NOT NULL
|
|
7
13
|
, backend TEXT, source TEXT, model TEXT, long_context INTEGER NOT NULL DEFAULT 0);
|
|
8
|
-
CREATE TABLE
|
|
9
|
-
id TEXT PRIMARY KEY,
|
|
10
|
-
slug TEXT UNIQUE NOT NULL,
|
|
11
|
-
name TEXT NOT NULL,
|
|
12
|
-
tagline TEXT NOT NULL,
|
|
13
|
-
system_prompt TEXT NOT NULL DEFAULT '',
|
|
14
|
-
mcp_servers_json TEXT NOT NULL,
|
|
15
|
-
preferred_backend TEXT,
|
|
16
|
-
trust_grade TEXT NOT NULL,
|
|
17
|
-
installed_at TEXT NOT NULL,
|
|
18
|
-
tone TEXT NOT NULL
|
|
19
|
-
, env_requirements_json TEXT NOT NULL DEFAULT '[]', name_en TEXT NOT NULL DEFAULT '', tagline_en TEXT NOT NULL DEFAULT '', builtin INTEGER NOT NULL DEFAULT 0, role TEXT, visibility TEXT NOT NULL DEFAULT 'visible' CHECK(visibility IN ('visible','background','private')), entity_kind TEXT, local_display_name TEXT, bookmarked_at TEXT NULL, parent_team_id TEXT NULL);
|
|
20
|
-
CREATE TABLE projects (
|
|
14
|
+
CREATE TABLE agent_app_operations (
|
|
21
15
|
id TEXT PRIMARY KEY,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
app_id TEXT NOT NULL,
|
|
17
|
+
operation TEXT NOT NULL,
|
|
18
|
+
ok INTEGER NOT NULL DEFAULT 1,
|
|
19
|
+
result_json TEXT NOT NULL,
|
|
26
20
|
created_at TEXT NOT NULL,
|
|
27
|
-
|
|
28
|
-
FOREIGN KEY(default_agent_id) REFERENCES installed_agents(id) ON DELETE SET NULL
|
|
21
|
+
FOREIGN KEY(app_id) REFERENCES agent_apps(id) ON DELETE CASCADE
|
|
29
22
|
);
|
|
30
|
-
CREATE TABLE
|
|
23
|
+
CREATE TABLE agent_apps (
|
|
31
24
|
id TEXT PRIMARY KEY,
|
|
25
|
+
chat_id TEXT NOT NULL,
|
|
32
26
|
project_id TEXT,
|
|
33
27
|
agent_id TEXT NOT NULL,
|
|
34
|
-
|
|
28
|
+
surface_id TEXT NOT NULL,
|
|
29
|
+
action_id TEXT,
|
|
30
|
+
app_name TEXT NOT NULL,
|
|
31
|
+
domain TEXT NOT NULL,
|
|
32
|
+
layout TEXT NOT NULL,
|
|
33
|
+
root_path TEXT NOT NULL,
|
|
34
|
+
preview_path TEXT NOT NULL,
|
|
35
|
+
setup_path TEXT NOT NULL,
|
|
36
|
+
smoke_path TEXT NOT NULL,
|
|
37
|
+
manifest_json TEXT NOT NULL,
|
|
38
|
+
result_json TEXT NOT NULL,
|
|
39
|
+
status TEXT NOT NULL DEFAULT 'scaffolded',
|
|
35
40
|
created_at TEXT NOT NULL,
|
|
36
|
-
updated_at TEXT NOT NULL,
|
|
37
|
-
FOREIGN KEY(
|
|
41
|
+
updated_at TEXT NOT NULL,
|
|
42
|
+
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE,
|
|
43
|
+
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL
|
|
44
|
+
);
|
|
45
|
+
CREATE TABLE agent_architecture_migrations (
|
|
46
|
+
agent_id TEXT NOT NULL,
|
|
47
|
+
step_id TEXT NOT NULL,
|
|
48
|
+
architecture_version TEXT NOT NULL,
|
|
49
|
+
outcome TEXT NOT NULL CHECK(outcome IN ('applied','noop','failed')),
|
|
50
|
+
changed INTEGER NOT NULL DEFAULT 0,
|
|
51
|
+
detail TEXT,
|
|
52
|
+
applied_at TEXT NOT NULL,
|
|
53
|
+
PRIMARY KEY (agent_id, step_id)
|
|
54
|
+
);
|
|
55
|
+
CREATE TABLE agent_asset_versions (
|
|
56
|
+
agent_id TEXT PRIMARY KEY,
|
|
57
|
+
version INTEGER NOT NULL,
|
|
58
|
+
package_hash TEXT NOT NULL,
|
|
59
|
+
updated_at TEXT NOT NULL,
|
|
38
60
|
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE
|
|
39
61
|
);
|
|
40
|
-
CREATE
|
|
41
|
-
CREATE INDEX idx_chats_project_updated
|
|
42
|
-
ON chats(project_id, updated_at DESC);
|
|
43
|
-
CREATE TABLE chat_messages (
|
|
62
|
+
CREATE TABLE agent_evolution_proposals (
|
|
44
63
|
id TEXT PRIMARY KEY,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
64
|
+
agent_id TEXT NOT NULL,
|
|
65
|
+
proposal_type TEXT NOT NULL,
|
|
66
|
+
summary TEXT NOT NULL,
|
|
67
|
+
target_path TEXT NOT NULL,
|
|
68
|
+
before_hash TEXT NOT NULL,
|
|
69
|
+
after_hash TEXT NOT NULL,
|
|
70
|
+
before_content TEXT NOT NULL,
|
|
71
|
+
after_content TEXT NOT NULL,
|
|
72
|
+
risk TEXT NOT NULL,
|
|
73
|
+
status TEXT NOT NULL,
|
|
74
|
+
source_json TEXT NOT NULL DEFAULT '{}',
|
|
75
|
+
decision_note TEXT,
|
|
76
|
+
last_error TEXT,
|
|
48
77
|
created_at TEXT NOT NULL,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
name TEXT NOT NULL,
|
|
57
|
-
tagline TEXT NOT NULL,
|
|
58
|
-
persona TEXT NOT NULL,
|
|
59
|
-
ceo_agent_id TEXT NOT NULL,
|
|
60
|
-
org_chart_json TEXT NOT NULL,
|
|
61
|
-
installed_at TEXT NOT NULL, name_en TEXT NOT NULL DEFAULT '', tagline_en TEXT NOT NULL DEFAULT '',
|
|
62
|
-
FOREIGN KEY(ceo_agent_id) REFERENCES installed_agents(id) ON DELETE RESTRICT
|
|
63
|
-
);
|
|
64
|
-
CREATE INDEX idx_firms_installed ON firms(installed_at DESC);
|
|
65
|
-
CREATE INDEX idx_chats_firm_updated ON chats(firm_id, updated_at DESC);
|
|
66
|
-
CREATE INDEX idx_chats_archived_updated ON chats(archived_at, updated_at DESC);
|
|
67
|
-
CREATE TABLE mcp_servers (
|
|
78
|
+
updated_at TEXT NOT NULL,
|
|
79
|
+
approved_at TEXT,
|
|
80
|
+
applied_at TEXT,
|
|
81
|
+
measured_at TEXT,
|
|
82
|
+
rolled_back_at TEXT
|
|
83
|
+
, operation_json TEXT);
|
|
84
|
+
CREATE TABLE agent_evolution_receipts (
|
|
68
85
|
id TEXT PRIMARY KEY,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
86
|
+
proposal_id TEXT NOT NULL,
|
|
87
|
+
agent_id TEXT NOT NULL,
|
|
88
|
+
action TEXT NOT NULL,
|
|
89
|
+
target_path TEXT NOT NULL,
|
|
90
|
+
version_before INTEGER NOT NULL,
|
|
91
|
+
version_after INTEGER NOT NULL,
|
|
92
|
+
target_hash_before TEXT NOT NULL,
|
|
93
|
+
target_hash_after TEXT NOT NULL,
|
|
94
|
+
package_hash_before TEXT NOT NULL,
|
|
95
|
+
package_hash_after TEXT NOT NULL,
|
|
96
|
+
created_at TEXT NOT NULL,
|
|
97
|
+
FOREIGN KEY(proposal_id) REFERENCES agent_evolution_proposals(id) ON DELETE CASCADE,
|
|
98
|
+
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
99
|
+
UNIQUE(proposal_id, action)
|
|
79
100
|
);
|
|
80
101
|
CREATE TABLE agent_mcp_servers (
|
|
81
102
|
agent_id TEXT NOT NULL,
|
|
@@ -84,196 +105,87 @@ CREATE TABLE agent_mcp_servers (
|
|
|
84
105
|
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
85
106
|
FOREIGN KEY(server_id) REFERENCES mcp_servers(id) ON DELETE CASCADE
|
|
86
107
|
);
|
|
87
|
-
CREATE
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
);
|
|
92
|
-
CREATE TABLE memory_entries (
|
|
93
|
-
id TEXT PRIMARY KEY,
|
|
94
|
-
scope TEXT NOT NULL,
|
|
108
|
+
CREATE TABLE agent_runtime_overrides (
|
|
109
|
+
scope TEXT NOT NULL CHECK(scope IN ('agent','firm','division')),
|
|
110
|
+
target_id TEXT NOT NULL,
|
|
111
|
+
label TEXT,
|
|
95
112
|
kind TEXT NOT NULL,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
evidence_json TEXT NOT NULL DEFAULT '[]',
|
|
104
|
-
superseded_at TEXT,
|
|
105
|
-
created_at TEXT NOT NULL
|
|
106
|
-
, context_json TEXT NOT NULL DEFAULT '{}', embedding_model TEXT, embedding_adapter TEXT, embedding_model_sha256 TEXT, embedding_content_hash TEXT, embedding_dimensions INTEGER, embedding_json TEXT);
|
|
107
|
-
CREATE INDEX idx_memory_path ON memory_entries(project_path, superseded_at);
|
|
108
|
-
CREATE INDEX idx_memory_scope ON memory_entries(scope, superseded_at);
|
|
109
|
-
CREATE INDEX idx_memory_chat ON memory_entries(chat_id);
|
|
110
|
-
CREATE TABLE folder_activity (
|
|
111
|
-
path TEXT PRIMARY KEY,
|
|
112
|
-
visits INTEGER NOT NULL DEFAULT 0,
|
|
113
|
-
activated_at TEXT,
|
|
114
|
-
first_seen TEXT NOT NULL,
|
|
115
|
-
last_seen TEXT NOT NULL
|
|
113
|
+
backend TEXT,
|
|
114
|
+
source TEXT,
|
|
115
|
+
model TEXT,
|
|
116
|
+
effort TEXT,
|
|
117
|
+
long_context INTEGER NOT NULL DEFAULT 0,
|
|
118
|
+
updated_at TEXT NOT NULL,
|
|
119
|
+
PRIMARY KEY(scope, target_id)
|
|
116
120
|
);
|
|
117
|
-
CREATE
|
|
118
|
-
CREATE INDEX idx_memory_agent ON memory_entries(agent_id, superseded_at);
|
|
119
|
-
CREATE TABLE automations (
|
|
120
|
-
id TEXT PRIMARY KEY,
|
|
121
|
-
name TEXT NOT NULL,
|
|
122
|
-
schedule TEXT NOT NULL,
|
|
123
|
-
target_type TEXT NOT NULL,
|
|
124
|
-
target_id TEXT NOT NULL,
|
|
125
|
-
prompt_template TEXT NOT NULL,
|
|
126
|
-
enabled INTEGER NOT NULL DEFAULT 1,
|
|
127
|
-
created_by TEXT NOT NULL DEFAULT 'user',
|
|
128
|
-
last_run_at TEXT,
|
|
129
|
-
next_run_at TEXT,
|
|
130
|
-
created_at TEXT NOT NULL
|
|
131
|
-
, graph_json TEXT, goal TEXT, schedule_json TEXT, timezone TEXT, end_at TEXT, max_runs INTEGER, run_count INTEGER NOT NULL DEFAULT 0, trigger_type TEXT NOT NULL DEFAULT 'schedule', trigger_json TEXT, claimed_at TEXT, lease_owner TEXT, tool_mode TEXT NOT NULL DEFAULT 'auto', hub_mode TEXT NOT NULL DEFAULT 'hub-allowed', execution_permission TEXT NOT NULL DEFAULT 'write' CHECK(execution_permission IN ('read','write')), target_version TEXT, runtime_selection_json TEXT, project_id TEXT REFERENCES projects(id) ON DELETE SET NULL, goal_id TEXT, attention_cleared_at TEXT);
|
|
132
|
-
CREATE INDEX idx_automations_due ON automations(enabled, next_run_at);
|
|
133
|
-
CREATE TABLE agent_apps (
|
|
121
|
+
CREATE TABLE agent_surface_approvals (
|
|
134
122
|
id TEXT PRIMARY KEY,
|
|
135
123
|
chat_id TEXT NOT NULL,
|
|
136
124
|
project_id TEXT,
|
|
137
125
|
agent_id TEXT NOT NULL,
|
|
138
126
|
surface_id TEXT NOT NULL,
|
|
139
127
|
action_id TEXT,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
manifest_json TEXT NOT NULL,
|
|
148
|
-
result_json TEXT NOT NULL,
|
|
149
|
-
status TEXT NOT NULL DEFAULT 'scaffolded',
|
|
128
|
+
action_type TEXT NOT NULL,
|
|
129
|
+
kind TEXT NOT NULL,
|
|
130
|
+
scope_key TEXT NOT NULL,
|
|
131
|
+
title TEXT NOT NULL,
|
|
132
|
+
summary TEXT NOT NULL,
|
|
133
|
+
metadata_json TEXT NOT NULL DEFAULT '{}',
|
|
134
|
+
revoked_at TEXT,
|
|
150
135
|
created_at TEXT NOT NULL,
|
|
151
|
-
updated_at TEXT NOT NULL,
|
|
152
136
|
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE,
|
|
153
|
-
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL
|
|
137
|
+
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL,
|
|
138
|
+
FOREIGN KEY(surface_id) REFERENCES agent_surfaces(id) ON DELETE CASCADE
|
|
154
139
|
);
|
|
155
|
-
CREATE
|
|
156
|
-
ON agent_apps(chat_id, updated_at DESC);
|
|
157
|
-
CREATE INDEX idx_agent_apps_surface
|
|
158
|
-
ON agent_apps(chat_id, surface_id, updated_at DESC);
|
|
159
|
-
CREATE UNIQUE INDEX idx_agent_apps_root
|
|
160
|
-
ON agent_apps(root_path);
|
|
161
|
-
CREATE TABLE agent_app_operations (
|
|
140
|
+
CREATE TABLE agent_surface_asset_pack_operations (
|
|
162
141
|
id TEXT PRIMARY KEY,
|
|
163
|
-
|
|
142
|
+
pack_id TEXT NOT NULL,
|
|
164
143
|
operation TEXT NOT NULL,
|
|
165
144
|
ok INTEGER NOT NULL DEFAULT 1,
|
|
166
145
|
result_json TEXT NOT NULL,
|
|
167
146
|
created_at TEXT NOT NULL,
|
|
168
|
-
FOREIGN KEY(
|
|
147
|
+
FOREIGN KEY(pack_id) REFERENCES agent_surface_asset_packs(id) ON DELETE CASCADE
|
|
169
148
|
);
|
|
170
|
-
CREATE
|
|
171
|
-
ON agent_app_operations(app_id, created_at DESC);
|
|
172
|
-
CREATE TABLE agent_tools (
|
|
149
|
+
CREATE TABLE agent_surface_asset_packs (
|
|
173
150
|
id TEXT PRIMARY KEY,
|
|
174
151
|
chat_id TEXT NOT NULL,
|
|
175
152
|
project_id TEXT,
|
|
176
153
|
agent_id TEXT NOT NULL,
|
|
177
154
|
surface_id TEXT NOT NULL,
|
|
178
155
|
action_id TEXT,
|
|
179
|
-
|
|
180
|
-
generated_tool_id TEXT NOT NULL,
|
|
181
|
-
tool_name TEXT NOT NULL,
|
|
156
|
+
pack_name TEXT NOT NULL,
|
|
182
157
|
domain TEXT NOT NULL,
|
|
183
|
-
|
|
158
|
+
layout TEXT NOT NULL,
|
|
184
159
|
root_path TEXT NOT NULL,
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
160
|
+
manifest_path TEXT NOT NULL,
|
|
161
|
+
index_path TEXT NOT NULL,
|
|
162
|
+
assets_path TEXT NOT NULL,
|
|
163
|
+
manifest_json TEXT NOT NULL,
|
|
189
164
|
result_json TEXT NOT NULL,
|
|
190
|
-
status TEXT NOT NULL DEFAULT '
|
|
191
|
-
installed_server_id TEXT,
|
|
165
|
+
status TEXT NOT NULL DEFAULT 'materialized',
|
|
192
166
|
created_at TEXT NOT NULL,
|
|
193
167
|
updated_at TEXT NOT NULL,
|
|
194
168
|
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE,
|
|
195
169
|
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL,
|
|
196
|
-
FOREIGN KEY(
|
|
197
|
-
);
|
|
198
|
-
CREATE INDEX idx_agent_tools_chat_updated
|
|
199
|
-
ON agent_tools(chat_id, updated_at DESC);
|
|
200
|
-
CREATE INDEX idx_agent_tools_surface
|
|
201
|
-
ON agent_tools(chat_id, surface_id, requested_tool_id, updated_at DESC);
|
|
202
|
-
CREATE UNIQUE INDEX idx_agent_tools_root
|
|
203
|
-
ON agent_tools(root_path);
|
|
204
|
-
CREATE TABLE agent_tool_operations (
|
|
205
|
-
id TEXT PRIMARY KEY,
|
|
206
|
-
tool_id TEXT NOT NULL,
|
|
207
|
-
operation TEXT NOT NULL,
|
|
208
|
-
ok INTEGER NOT NULL DEFAULT 1,
|
|
209
|
-
result_json TEXT NOT NULL,
|
|
210
|
-
created_at TEXT NOT NULL,
|
|
211
|
-
FOREIGN KEY(tool_id) REFERENCES agent_tools(id) ON DELETE CASCADE
|
|
170
|
+
FOREIGN KEY(surface_id) REFERENCES agent_surfaces(id) ON DELETE CASCADE
|
|
212
171
|
);
|
|
213
|
-
CREATE
|
|
214
|
-
ON agent_tool_operations(tool_id, created_at DESC);
|
|
215
|
-
CREATE TABLE agent_surfaces (
|
|
216
|
-
id TEXT PRIMARY KEY,
|
|
217
|
-
chat_id TEXT NOT NULL,
|
|
218
|
-
project_id TEXT,
|
|
219
|
-
agent_id TEXT NOT NULL,
|
|
220
|
-
title TEXT NOT NULL,
|
|
221
|
-
domain TEXT NOT NULL,
|
|
222
|
-
layout TEXT NOT NULL,
|
|
223
|
-
manifest_json TEXT NOT NULL,
|
|
224
|
-
state_json TEXT NOT NULL DEFAULT '{}',
|
|
225
|
-
provenance_json TEXT NOT NULL DEFAULT '[]',
|
|
226
|
-
created_at TEXT NOT NULL,
|
|
227
|
-
updated_at TEXT NOT NULL,
|
|
228
|
-
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE,
|
|
229
|
-
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL
|
|
230
|
-
);
|
|
231
|
-
CREATE INDEX idx_agent_surfaces_chat_updated
|
|
232
|
-
ON agent_surfaces(chat_id, updated_at DESC);
|
|
233
|
-
CREATE INDEX idx_agent_surfaces_domain_updated
|
|
234
|
-
ON agent_surfaces(domain, updated_at DESC);
|
|
235
|
-
CREATE INDEX idx_agent_surfaces_project_updated
|
|
236
|
-
ON agent_surfaces(project_id, updated_at DESC);
|
|
237
|
-
CREATE TABLE agent_surface_asset_packs (
|
|
172
|
+
CREATE TABLE agent_surface_events (
|
|
238
173
|
id TEXT PRIMARY KEY,
|
|
239
174
|
chat_id TEXT NOT NULL,
|
|
240
175
|
project_id TEXT,
|
|
241
176
|
agent_id TEXT NOT NULL,
|
|
242
177
|
surface_id TEXT NOT NULL,
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
index_path TEXT NOT NULL,
|
|
250
|
-
assets_path TEXT NOT NULL,
|
|
251
|
-
manifest_json TEXT NOT NULL,
|
|
252
|
-
result_json TEXT NOT NULL,
|
|
253
|
-
status TEXT NOT NULL DEFAULT 'materialized',
|
|
178
|
+
actor TEXT NOT NULL,
|
|
179
|
+
event_type TEXT NOT NULL,
|
|
180
|
+
path TEXT NOT NULL,
|
|
181
|
+
value_json TEXT NOT NULL,
|
|
182
|
+
previous_value_json TEXT,
|
|
183
|
+
label TEXT,
|
|
254
184
|
created_at TEXT NOT NULL,
|
|
255
|
-
updated_at TEXT NOT NULL,
|
|
256
185
|
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE,
|
|
257
186
|
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL,
|
|
258
187
|
FOREIGN KEY(surface_id) REFERENCES agent_surfaces(id) ON DELETE CASCADE
|
|
259
188
|
);
|
|
260
|
-
CREATE INDEX idx_agent_surface_asset_packs_chat_updated
|
|
261
|
-
ON agent_surface_asset_packs(chat_id, updated_at DESC);
|
|
262
|
-
CREATE INDEX idx_agent_surface_asset_packs_surface_updated
|
|
263
|
-
ON agent_surface_asset_packs(chat_id, surface_id, updated_at DESC);
|
|
264
|
-
CREATE UNIQUE INDEX idx_agent_surface_asset_packs_root
|
|
265
|
-
ON agent_surface_asset_packs(root_path);
|
|
266
|
-
CREATE TABLE agent_surface_asset_pack_operations (
|
|
267
|
-
id TEXT PRIMARY KEY,
|
|
268
|
-
pack_id TEXT NOT NULL,
|
|
269
|
-
operation TEXT NOT NULL,
|
|
270
|
-
ok INTEGER NOT NULL DEFAULT 1,
|
|
271
|
-
result_json TEXT NOT NULL,
|
|
272
|
-
created_at TEXT NOT NULL,
|
|
273
|
-
FOREIGN KEY(pack_id) REFERENCES agent_surface_asset_packs(id) ON DELETE CASCADE
|
|
274
|
-
);
|
|
275
|
-
CREATE INDEX idx_agent_surface_asset_pack_ops_pack_created
|
|
276
|
-
ON agent_surface_asset_pack_operations(pack_id, created_at DESC);
|
|
277
189
|
CREATE TABLE agent_surface_jobs (
|
|
278
190
|
id TEXT PRIMARY KEY,
|
|
279
191
|
chat_id TEXT NOT NULL,
|
|
@@ -295,92 +207,105 @@ CREATE TABLE agent_surface_jobs (
|
|
|
295
207
|
FOREIGN KEY(surface_id) REFERENCES agent_surfaces(id) ON DELETE CASCADE,
|
|
296
208
|
UNIQUE(surface_id, job_id)
|
|
297
209
|
);
|
|
298
|
-
CREATE
|
|
299
|
-
ON agent_surface_jobs(chat_id, updated_at DESC);
|
|
300
|
-
CREATE INDEX idx_agent_surface_jobs_surface_updated
|
|
301
|
-
ON agent_surface_jobs(surface_id, updated_at DESC);
|
|
302
|
-
CREATE INDEX idx_agent_surface_jobs_status_updated
|
|
303
|
-
ON agent_surface_jobs(status, updated_at DESC);
|
|
304
|
-
CREATE TABLE agent_surface_events (
|
|
210
|
+
CREATE TABLE agent_surfaces (
|
|
305
211
|
id TEXT PRIMARY KEY,
|
|
306
212
|
chat_id TEXT NOT NULL,
|
|
307
213
|
project_id TEXT,
|
|
308
214
|
agent_id TEXT NOT NULL,
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
label TEXT,
|
|
215
|
+
title TEXT NOT NULL,
|
|
216
|
+
domain TEXT NOT NULL,
|
|
217
|
+
layout TEXT NOT NULL,
|
|
218
|
+
manifest_json TEXT NOT NULL,
|
|
219
|
+
state_json TEXT NOT NULL DEFAULT '{}',
|
|
220
|
+
provenance_json TEXT NOT NULL DEFAULT '[]',
|
|
316
221
|
created_at TEXT NOT NULL,
|
|
222
|
+
updated_at TEXT NOT NULL,
|
|
317
223
|
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE,
|
|
318
|
-
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL
|
|
319
|
-
FOREIGN KEY(surface_id) REFERENCES agent_surfaces(id) ON DELETE CASCADE
|
|
224
|
+
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL
|
|
320
225
|
);
|
|
321
|
-
CREATE
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
226
|
+
CREATE TABLE agent_tool_operations (
|
|
227
|
+
id TEXT PRIMARY KEY,
|
|
228
|
+
tool_id TEXT NOT NULL,
|
|
229
|
+
operation TEXT NOT NULL,
|
|
230
|
+
ok INTEGER NOT NULL DEFAULT 1,
|
|
231
|
+
result_json TEXT NOT NULL,
|
|
232
|
+
created_at TEXT NOT NULL,
|
|
233
|
+
FOREIGN KEY(tool_id) REFERENCES agent_tools(id) ON DELETE CASCADE
|
|
234
|
+
);
|
|
235
|
+
CREATE TABLE agent_tools (
|
|
327
236
|
id TEXT PRIMARY KEY,
|
|
328
237
|
chat_id TEXT NOT NULL,
|
|
329
238
|
project_id TEXT,
|
|
330
239
|
agent_id TEXT NOT NULL,
|
|
331
240
|
surface_id TEXT NOT NULL,
|
|
332
241
|
action_id TEXT,
|
|
333
|
-
|
|
242
|
+
requested_tool_id TEXT NOT NULL,
|
|
243
|
+
generated_tool_id TEXT NOT NULL,
|
|
244
|
+
tool_name TEXT NOT NULL,
|
|
245
|
+
domain TEXT NOT NULL,
|
|
334
246
|
kind TEXT NOT NULL,
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
247
|
+
root_path TEXT NOT NULL,
|
|
248
|
+
config_path TEXT NOT NULL,
|
|
249
|
+
tool_path TEXT NOT NULL,
|
|
250
|
+
mcp_path TEXT NOT NULL,
|
|
251
|
+
smoke_path TEXT NOT NULL,
|
|
252
|
+
result_json TEXT NOT NULL,
|
|
253
|
+
status TEXT NOT NULL DEFAULT 'scaffolded',
|
|
254
|
+
installed_server_id TEXT,
|
|
340
255
|
created_at TEXT NOT NULL,
|
|
256
|
+
updated_at TEXT NOT NULL,
|
|
341
257
|
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE,
|
|
342
258
|
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL,
|
|
343
|
-
FOREIGN KEY(
|
|
344
|
-
);
|
|
345
|
-
CREATE INDEX idx_agent_surface_approvals_surface_created
|
|
346
|
-
ON agent_surface_approvals(surface_id, created_at DESC);
|
|
347
|
-
CREATE INDEX idx_agent_surface_approvals_scope_active
|
|
348
|
-
ON agent_surface_approvals(surface_id, scope_key, revoked_at, created_at DESC);
|
|
349
|
-
CREATE TABLE chat_runtime_sessions (
|
|
350
|
-
chat_id TEXT NOT NULL,
|
|
351
|
-
kind TEXT NOT NULL,
|
|
352
|
-
session_id TEXT NOT NULL,
|
|
353
|
-
fingerprint TEXT NOT NULL,
|
|
354
|
-
updated_at TEXT NOT NULL,
|
|
355
|
-
PRIMARY KEY (chat_id, kind),
|
|
356
|
-
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE
|
|
259
|
+
FOREIGN KEY(installed_server_id) REFERENCES mcp_servers(id) ON DELETE SET NULL
|
|
357
260
|
);
|
|
358
|
-
CREATE TABLE
|
|
359
|
-
|
|
360
|
-
target_id TEXT NOT NULL,
|
|
361
|
-
label TEXT,
|
|
261
|
+
CREATE TABLE agent_usage (
|
|
262
|
+
agent_key TEXT PRIMARY KEY,
|
|
362
263
|
kind TEXT NOT NULL,
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
effort TEXT,
|
|
367
|
-
long_context INTEGER NOT NULL DEFAULT 0,
|
|
368
|
-
updated_at TEXT NOT NULL,
|
|
369
|
-
PRIMARY KEY(scope, target_id)
|
|
264
|
+
first_used_at TEXT NOT NULL,
|
|
265
|
+
last_used_at TEXT NOT NULL,
|
|
266
|
+
use_count INTEGER NOT NULL DEFAULT 0
|
|
370
267
|
);
|
|
371
|
-
CREATE
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
268
|
+
CREATE TABLE automation_approval_waits (
|
|
269
|
+
automation_id TEXT NOT NULL,
|
|
270
|
+
node_id TEXT NOT NULL,
|
|
271
|
+
first_requested_at TEXT NOT NULL,
|
|
272
|
+
PRIMARY KEY (automation_id, node_id)
|
|
273
|
+
);
|
|
274
|
+
CREATE TABLE automation_eval_corrections (
|
|
275
|
+
automation_id TEXT NOT NULL,
|
|
276
|
+
node_id TEXT NOT NULL,
|
|
277
|
+
subject_preview TEXT NOT NULL,
|
|
278
|
+
corrected_verdict TEXT NOT NULL,
|
|
279
|
+
note TEXT NOT NULL DEFAULT '',
|
|
280
|
+
created_at TEXT NOT NULL,
|
|
281
|
+
PRIMARY KEY (automation_id, node_id, created_at)
|
|
282
|
+
);
|
|
283
|
+
CREATE TABLE automation_graph_versions (
|
|
284
|
+
id TEXT PRIMARY KEY,
|
|
285
|
+
automation_id TEXT NOT NULL,
|
|
286
|
+
saved_at TEXT NOT NULL,
|
|
287
|
+
note TEXT,
|
|
288
|
+
node_count INTEGER NOT NULL DEFAULT 0,
|
|
289
|
+
graph_json TEXT NOT NULL
|
|
290
|
+
);
|
|
291
|
+
CREATE TABLE automation_node_approvals (
|
|
292
|
+
automation_id TEXT NOT NULL,
|
|
293
|
+
occurrence_id TEXT NOT NULL,
|
|
294
|
+
node_id TEXT NOT NULL,
|
|
295
|
+
decision TEXT NOT NULL,
|
|
296
|
+
decided_at TEXT NOT NULL,
|
|
297
|
+
decided_by TEXT NOT NULL, scope TEXT NOT NULL DEFAULT 'once',
|
|
298
|
+
PRIMARY KEY (automation_id, occurrence_id, node_id)
|
|
299
|
+
);
|
|
300
|
+
CREATE TABLE automation_run_inputs (
|
|
301
|
+
id TEXT PRIMARY KEY,
|
|
302
|
+
automation_id TEXT NOT NULL,
|
|
303
|
+
payload_json TEXT NOT NULL,
|
|
304
|
+
requested_by TEXT NOT NULL,
|
|
305
|
+
created_at TEXT NOT NULL,
|
|
306
|
+
consumed_at TEXT,
|
|
307
|
+
consumed_run_id TEXT
|
|
308
|
+
);
|
|
384
309
|
CREATE TABLE automation_runs (
|
|
385
310
|
id TEXT PRIMARY KEY,
|
|
386
311
|
automation_id TEXT,
|
|
@@ -393,99 +318,124 @@ CREATE TABLE automation_runs (
|
|
|
393
318
|
checkpoint_json TEXT,
|
|
394
319
|
resume_of_run_id TEXT
|
|
395
320
|
, node_failures_json TEXT, resume_consumed_at TEXT);
|
|
396
|
-
CREATE
|
|
397
|
-
ON automation_runs(automation_id, started_at);
|
|
398
|
-
CREATE TABLE agent_evolution_proposals (
|
|
321
|
+
CREATE TABLE automation_sessions (
|
|
399
322
|
id TEXT PRIMARY KEY,
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
before_hash TEXT NOT NULL,
|
|
405
|
-
after_hash TEXT NOT NULL,
|
|
406
|
-
before_content TEXT NOT NULL,
|
|
407
|
-
after_content TEXT NOT NULL,
|
|
408
|
-
risk TEXT NOT NULL,
|
|
409
|
-
status TEXT NOT NULL,
|
|
410
|
-
source_json TEXT NOT NULL DEFAULT '{}',
|
|
411
|
-
decision_note TEXT,
|
|
412
|
-
last_error TEXT,
|
|
323
|
+
automation_id TEXT NOT NULL,
|
|
324
|
+
target_kind TEXT NOT NULL CHECK(target_kind IN ('host','agent','firm','hub')),
|
|
325
|
+
target_id TEXT NOT NULL,
|
|
326
|
+
ledger_chat_id TEXT NOT NULL UNIQUE REFERENCES chats(id) ON DELETE CASCADE,
|
|
413
327
|
created_at TEXT NOT NULL,
|
|
414
328
|
updated_at TEXT NOT NULL,
|
|
415
|
-
|
|
416
|
-
applied_at TEXT,
|
|
417
|
-
measured_at TEXT,
|
|
418
|
-
rolled_back_at TEXT
|
|
419
|
-
, operation_json TEXT);
|
|
420
|
-
CREATE INDEX idx_agent_evolution_agent_status
|
|
421
|
-
ON agent_evolution_proposals(agent_id, status, updated_at DESC);
|
|
422
|
-
CREATE INDEX idx_agent_evolution_created
|
|
423
|
-
ON agent_evolution_proposals(created_at DESC);
|
|
424
|
-
CREATE TABLE run_events (
|
|
425
|
-
id TEXT PRIMARY KEY,
|
|
426
|
-
run_id TEXT NOT NULL,
|
|
427
|
-
seq INTEGER NOT NULL,
|
|
428
|
-
ts TEXT NOT NULL,
|
|
429
|
-
kind TEXT NOT NULL,
|
|
430
|
-
chat_id TEXT,
|
|
431
|
-
automation_id TEXT,
|
|
432
|
-
node_id TEXT,
|
|
433
|
-
agent_id TEXT,
|
|
434
|
-
payload_json TEXT NOT NULL DEFAULT '{}',
|
|
435
|
-
UNIQUE(run_id, seq)
|
|
329
|
+
UNIQUE(automation_id, target_kind, target_id)
|
|
436
330
|
);
|
|
437
|
-
CREATE
|
|
438
|
-
ON run_events(run_id, seq);
|
|
439
|
-
CREATE INDEX idx_run_events_ts
|
|
440
|
-
ON run_events(ts DESC);
|
|
441
|
-
CREATE INDEX idx_run_events_automation
|
|
442
|
-
ON run_events(automation_id, ts DESC);
|
|
443
|
-
CREATE TABLE failure_events (
|
|
331
|
+
CREATE TABLE automation_trigger_events (
|
|
444
332
|
id TEXT PRIMARY KEY,
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
ON failure_events(run_id, ts DESC);
|
|
460
|
-
CREATE INDEX idx_failure_events_automation
|
|
461
|
-
ON failure_events(automation_id, ts DESC);
|
|
462
|
-
CREATE TABLE browser_sites (
|
|
463
|
-
id TEXT PRIMARY KEY,
|
|
464
|
-
site TEXT NOT NULL UNIQUE,
|
|
465
|
-
label TEXT,
|
|
466
|
-
username TEXT,
|
|
467
|
-
has_password INTEGER NOT NULL DEFAULT 0,
|
|
333
|
+
automation_id TEXT NOT NULL,
|
|
334
|
+
trigger_kind TEXT NOT NULL CHECK(trigger_kind IN ('fs','chain','webhook','poll','command')),
|
|
335
|
+
dedupe_key TEXT NOT NULL,
|
|
336
|
+
payload_json TEXT NOT NULL,
|
|
337
|
+
status TEXT NOT NULL DEFAULT 'pending'
|
|
338
|
+
CHECK(status IN ('pending','claimed','delivered','parked')),
|
|
339
|
+
attempt_count INTEGER NOT NULL DEFAULT 0 CHECK(attempt_count >= 0),
|
|
340
|
+
next_attempt_at TEXT NOT NULL,
|
|
341
|
+
claim_owner TEXT,
|
|
342
|
+
claimed_until TEXT,
|
|
343
|
+
run_id TEXT,
|
|
344
|
+
run_outcome TEXT CHECK(run_outcome IS NULL OR run_outcome IN
|
|
345
|
+
('ok','partial','error','skipped','blocked','needs_input')),
|
|
346
|
+
last_error TEXT,
|
|
468
347
|
created_at TEXT NOT NULL,
|
|
469
|
-
updated_at TEXT NOT NULL
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
348
|
+
updated_at TEXT NOT NULL,
|
|
349
|
+
delivered_at TEXT,
|
|
350
|
+
FOREIGN KEY(automation_id) REFERENCES automations(id) ON DELETE CASCADE,
|
|
351
|
+
UNIQUE(automation_id, trigger_kind, dedupe_key),
|
|
352
|
+
CHECK(
|
|
353
|
+
(status = 'claimed' AND claim_owner IS NOT NULL AND claimed_until IS NOT NULL) OR
|
|
354
|
+
(status <> 'claimed' AND claim_owner IS NULL AND claimed_until IS NULL)
|
|
355
|
+
),
|
|
356
|
+
CHECK((status = 'delivered' AND delivered_at IS NOT NULL) OR status <> 'delivered')
|
|
478
357
|
);
|
|
479
|
-
CREATE
|
|
480
|
-
CREATE TABLE browser_permissions (
|
|
358
|
+
CREATE TABLE automations (
|
|
481
359
|
id TEXT PRIMARY KEY,
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
360
|
+
name TEXT NOT NULL,
|
|
361
|
+
schedule TEXT NOT NULL,
|
|
362
|
+
target_type TEXT NOT NULL,
|
|
363
|
+
target_id TEXT NOT NULL,
|
|
364
|
+
prompt_template TEXT NOT NULL,
|
|
365
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
366
|
+
created_by TEXT NOT NULL DEFAULT 'user',
|
|
367
|
+
last_run_at TEXT,
|
|
368
|
+
next_run_at TEXT,
|
|
485
369
|
created_at TEXT NOT NULL
|
|
370
|
+
, graph_json TEXT, goal TEXT, schedule_json TEXT, timezone TEXT, end_at TEXT, max_runs INTEGER, run_count INTEGER NOT NULL DEFAULT 0, trigger_type TEXT NOT NULL DEFAULT 'schedule', trigger_json TEXT, claimed_at TEXT, lease_owner TEXT, tool_mode TEXT NOT NULL DEFAULT 'auto', hub_mode TEXT NOT NULL DEFAULT 'hub-allowed', execution_permission TEXT NOT NULL DEFAULT 'write' CHECK(execution_permission IN ('read','write')), target_version TEXT, runtime_selection_json TEXT, project_id TEXT REFERENCES projects(id) ON DELETE SET NULL, goal_id TEXT, attention_cleared_at TEXT);
|
|
371
|
+
CREATE TABLE borrowed_agent_career_runs (
|
|
372
|
+
owner_scope_key TEXT NOT NULL,
|
|
373
|
+
entity_kind TEXT NOT NULL CHECK(entity_kind IN ('agent','team')),
|
|
374
|
+
agent_definition_id TEXT NOT NULL,
|
|
375
|
+
agent_release_id TEXT NOT NULL,
|
|
376
|
+
component_id TEXT NOT NULL DEFAULT '',
|
|
377
|
+
run_id_hash TEXT NOT NULL,
|
|
378
|
+
recorded_at TEXT NOT NULL,
|
|
379
|
+
PRIMARY KEY(
|
|
380
|
+
owner_scope_key, entity_kind, agent_definition_id,
|
|
381
|
+
agent_release_id, component_id, run_id_hash
|
|
382
|
+
),
|
|
383
|
+
FOREIGN KEY(
|
|
384
|
+
owner_scope_key, entity_kind, agent_definition_id,
|
|
385
|
+
agent_release_id, component_id
|
|
386
|
+
)
|
|
387
|
+
REFERENCES borrowed_agent_careers(
|
|
388
|
+
owner_scope_key, entity_kind, agent_definition_id,
|
|
389
|
+
agent_release_id, component_id
|
|
390
|
+
)
|
|
391
|
+
ON DELETE CASCADE
|
|
392
|
+
);
|
|
393
|
+
CREATE TABLE "borrowed_agent_career_runs_v76_legacy" (
|
|
394
|
+
owner_scope_key TEXT NOT NULL,
|
|
395
|
+
entity_kind TEXT NOT NULL CHECK(entity_kind IN ('agent','team')),
|
|
396
|
+
slug TEXT NOT NULL,
|
|
397
|
+
run_id_hash TEXT NOT NULL,
|
|
398
|
+
recorded_at TEXT NOT NULL,
|
|
399
|
+
PRIMARY KEY(owner_scope_key, entity_kind, slug, run_id_hash),
|
|
400
|
+
FOREIGN KEY(owner_scope_key, entity_kind, slug)
|
|
401
|
+
REFERENCES "borrowed_agent_careers_v76_legacy"(owner_scope_key, entity_kind, slug)
|
|
402
|
+
ON DELETE CASCADE
|
|
403
|
+
);
|
|
404
|
+
CREATE TABLE borrowed_agent_careers (
|
|
405
|
+
owner_scope_key TEXT NOT NULL,
|
|
406
|
+
entity_kind TEXT NOT NULL CHECK(entity_kind IN ('agent','team')),
|
|
407
|
+
agent_definition_id TEXT NOT NULL,
|
|
408
|
+
agent_release_id TEXT NOT NULL,
|
|
409
|
+
component_id TEXT NOT NULL DEFAULT '',
|
|
410
|
+
slug TEXT NOT NULL,
|
|
411
|
+
memory_key TEXT NOT NULL,
|
|
412
|
+
first_used_at TEXT NOT NULL,
|
|
413
|
+
last_used_at TEXT NOT NULL,
|
|
414
|
+
use_count INTEGER NOT NULL DEFAULT 0 CHECK(use_count >= 0),
|
|
415
|
+
latest_runtime_json TEXT,
|
|
416
|
+
name_en TEXT,
|
|
417
|
+
name_ko TEXT,
|
|
418
|
+
tagline_en TEXT,
|
|
419
|
+
tagline_ko TEXT,
|
|
420
|
+
PRIMARY KEY(
|
|
421
|
+
owner_scope_key, entity_kind, agent_definition_id,
|
|
422
|
+
agent_release_id, component_id
|
|
423
|
+
)
|
|
424
|
+
);
|
|
425
|
+
CREATE TABLE "borrowed_agent_careers_v76_legacy" (
|
|
426
|
+
owner_scope_key TEXT NOT NULL,
|
|
427
|
+
entity_kind TEXT NOT NULL CHECK(entity_kind IN ('agent','team')),
|
|
428
|
+
slug TEXT NOT NULL,
|
|
429
|
+
first_used_at TEXT NOT NULL,
|
|
430
|
+
last_used_at TEXT NOT NULL,
|
|
431
|
+
use_count INTEGER NOT NULL DEFAULT 0 CHECK(use_count >= 0),
|
|
432
|
+
latest_runtime_json TEXT,
|
|
433
|
+
name_en TEXT,
|
|
434
|
+
name_ko TEXT,
|
|
435
|
+
tagline_en TEXT,
|
|
436
|
+
tagline_ko TEXT,
|
|
437
|
+
PRIMARY KEY(owner_scope_key, entity_kind, slug)
|
|
486
438
|
);
|
|
487
|
-
CREATE UNIQUE INDEX idx_browser_perm_site_action
|
|
488
|
-
ON browser_permissions(site, action_type);
|
|
489
439
|
CREATE TABLE browser_action_logs (
|
|
490
440
|
id TEXT PRIMARY KEY,
|
|
491
441
|
ts TEXT NOT NULL,
|
|
@@ -496,88 +446,111 @@ CREATE TABLE browser_action_logs (
|
|
|
496
446
|
approval TEXT,
|
|
497
447
|
meta TEXT
|
|
498
448
|
);
|
|
499
|
-
CREATE
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE
|
|
449
|
+
CREATE TABLE browser_permissions (
|
|
450
|
+
id TEXT PRIMARY KEY,
|
|
451
|
+
site TEXT NOT NULL,
|
|
452
|
+
action_type TEXT NOT NULL,
|
|
453
|
+
decision TEXT NOT NULL,
|
|
454
|
+
created_at TEXT NOT NULL
|
|
506
455
|
);
|
|
507
|
-
CREATE TABLE
|
|
456
|
+
CREATE TABLE browser_sessions (
|
|
508
457
|
id TEXT PRIMARY KEY,
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
458
|
+
site TEXT NOT NULL,
|
|
459
|
+
status TEXT NOT NULL DEFAULT 'none',
|
|
460
|
+
captured_at TEXT,
|
|
461
|
+
note TEXT,
|
|
462
|
+
FOREIGN KEY(site) REFERENCES browser_sites(site) ON DELETE CASCADE
|
|
463
|
+
);
|
|
464
|
+
CREATE TABLE browser_sites (
|
|
465
|
+
id TEXT PRIMARY KEY,
|
|
466
|
+
site TEXT NOT NULL UNIQUE,
|
|
467
|
+
label TEXT,
|
|
468
|
+
username TEXT,
|
|
469
|
+
has_password INTEGER NOT NULL DEFAULT 0,
|
|
519
470
|
created_at TEXT NOT NULL,
|
|
520
|
-
|
|
521
|
-
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
522
|
-
UNIQUE(proposal_id, action)
|
|
471
|
+
updated_at TEXT NOT NULL
|
|
523
472
|
);
|
|
524
|
-
CREATE
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
473
|
+
CREATE TABLE chat_goal_contracts (
|
|
474
|
+
goal_id TEXT PRIMARY KEY,
|
|
475
|
+
chat_id TEXT NOT NULL,
|
|
476
|
+
objective TEXT,
|
|
477
|
+
acceptance_criteria_json TEXT NOT NULL DEFAULT '[]',
|
|
478
|
+
status TEXT NOT NULL DEFAULT 'active'
|
|
479
|
+
CHECK(status IN ('active','blocked','completed','cancelled')),
|
|
480
|
+
created_at TEXT NOT NULL,
|
|
481
|
+
updated_at TEXT NOT NULL,
|
|
482
|
+
completed_at TEXT,
|
|
483
|
+
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE
|
|
484
|
+
);
|
|
485
|
+
CREATE TABLE chat_message_attachments (
|
|
486
|
+
id TEXT PRIMARY KEY,
|
|
487
|
+
message_id TEXT NOT NULL,
|
|
488
|
+
chat_id TEXT NOT NULL,
|
|
489
|
+
name TEXT NOT NULL,
|
|
490
|
+
media_type TEXT NOT NULL,
|
|
491
|
+
size_bytes INTEGER NOT NULL CHECK(size_bytes > 0),
|
|
492
|
+
sha256 TEXT NOT NULL,
|
|
493
|
+
data BLOB NOT NULL,
|
|
494
|
+
created_at TEXT NOT NULL,
|
|
495
|
+
FOREIGN KEY(message_id) REFERENCES chat_messages(id) ON DELETE CASCADE,
|
|
496
|
+
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE
|
|
497
|
+
);
|
|
498
|
+
CREATE TABLE chat_messages (
|
|
499
|
+
id TEXT PRIMARY KEY,
|
|
500
|
+
chat_id TEXT NOT NULL,
|
|
501
|
+
role TEXT NOT NULL CHECK(role IN ('user','assistant','system')),
|
|
502
|
+
text TEXT NOT NULL,
|
|
503
|
+
created_at TEXT NOT NULL,
|
|
504
|
+
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE
|
|
505
|
+
);
|
|
506
|
+
CREATE TABLE chat_runtime_sessions (
|
|
507
|
+
chat_id TEXT NOT NULL,
|
|
508
|
+
kind TEXT NOT NULL,
|
|
509
|
+
session_id TEXT NOT NULL,
|
|
510
|
+
fingerprint TEXT NOT NULL,
|
|
511
|
+
updated_at TEXT NOT NULL, reported_output_tokens INTEGER, reported_input_tokens INTEGER, reported_cached_input_tokens INTEGER,
|
|
512
|
+
PRIMARY KEY (chat_id, kind),
|
|
513
|
+
FOREIGN KEY(chat_id) REFERENCES chats(id) ON DELETE CASCADE
|
|
514
|
+
);
|
|
515
|
+
CREATE TABLE chats (
|
|
546
516
|
id TEXT PRIMARY KEY,
|
|
547
|
-
agent_id TEXT NOT NULL,
|
|
548
517
|
project_id TEXT,
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
environment_key TEXT NOT NULL,
|
|
552
|
-
name TEXT NOT NULL,
|
|
553
|
-
description TEXT NOT NULL DEFAULT '',
|
|
554
|
-
base_package_hash TEXT,
|
|
555
|
-
-- 2축 좌표. 몸통(코어) 해시가 신원이고 부품 목록 해시는 실행 무결성이다.
|
|
556
|
-
-- axis_version 2 = 옛 한 축 기록, 3 = 두 축을 갖춘 기록. 상세는 REQUIRED_COLUMNS 주석.
|
|
557
|
-
axis_version INTEGER NOT NULL DEFAULT 2,
|
|
558
|
-
base_core_hash TEXT,
|
|
559
|
-
module_set_hash TEXT,
|
|
560
|
-
status TEXT NOT NULL DEFAULT 'active'
|
|
561
|
-
CHECK(status IN ('active','archived')),
|
|
518
|
+
agent_id TEXT NOT NULL,
|
|
519
|
+
title TEXT NOT NULL DEFAULT 'New chat',
|
|
562
520
|
created_at TEXT NOT NULL,
|
|
563
|
-
updated_at TEXT NOT NULL,
|
|
521
|
+
updated_at TEXT NOT NULL, firm_id TEXT REFERENCES firms(id) ON DELETE SET NULL, archived_at TEXT, working_folder TEXT, kind TEXT NOT NULL DEFAULT 'user', parent_chat_id TEXT, used_at TEXT, continuous_mode INTEGER NOT NULL DEFAULT 0, swarm_mode INTEGER NOT NULL DEFAULT 0, last_viewed_at TEXT, hired_agents TEXT, origin_surface TEXT NOT NULL DEFAULT 'work', runtime_selection_json TEXT, goal_id TEXT,
|
|
522
|
+
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL,
|
|
564
523
|
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE
|
|
565
524
|
);
|
|
566
|
-
CREATE
|
|
567
|
-
ON experience_packs(agent_id, project_scope_key, environment_key, updated_at DESC);
|
|
568
|
-
CREATE TABLE experience_candidates (
|
|
525
|
+
CREATE TABLE experience_auto_intake_receipts (
|
|
569
526
|
id TEXT PRIMARY KEY,
|
|
570
|
-
pack_id TEXT NOT NULL,
|
|
571
527
|
agent_id TEXT NOT NULL,
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
528
|
+
pack_id TEXT,
|
|
529
|
+
candidate_id TEXT,
|
|
530
|
+
source_memory_hash TEXT NOT NULL,
|
|
531
|
+
status TEXT NOT NULL
|
|
532
|
+
CHECK(status IN ('candidate-created','blocked','skipped')),
|
|
533
|
+
memory_kind TEXT NOT NULL,
|
|
534
|
+
reason_codes_json TEXT NOT NULL DEFAULT '[]',
|
|
535
|
+
created_at TEXT NOT NULL, run_id TEXT NULL, redaction_count INTEGER NOT NULL DEFAULT 0,
|
|
536
|
+
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
537
|
+
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE SET NULL,
|
|
538
|
+
FOREIGN KEY(candidate_id) REFERENCES experience_candidates(id) ON DELETE SET NULL,
|
|
539
|
+
UNIQUE(agent_id, source_memory_hash)
|
|
540
|
+
);
|
|
541
|
+
CREATE TABLE experience_candidates (
|
|
542
|
+
id TEXT PRIMARY KEY,
|
|
543
|
+
pack_id TEXT NOT NULL,
|
|
544
|
+
agent_id TEXT NOT NULL,
|
|
545
|
+
project_scope_key TEXT NOT NULL,
|
|
546
|
+
environment_key TEXT NOT NULL,
|
|
547
|
+
source_memory_id TEXT NOT NULL,
|
|
548
|
+
summary TEXT NOT NULL,
|
|
549
|
+
task_terms_json TEXT NOT NULL DEFAULT '[]',
|
|
550
|
+
sensitivity TEXT NOT NULL
|
|
551
|
+
CHECK(sensitivity IN ('public','internal','private')),
|
|
552
|
+
confidence TEXT NOT NULL
|
|
553
|
+
CHECK(confidence IN ('high','medium','low')),
|
|
581
554
|
status TEXT NOT NULL DEFAULT 'candidate'
|
|
582
555
|
CHECK(status IN ('candidate','promoted','rejected')),
|
|
583
556
|
outcome_status TEXT NOT NULL DEFAULT 'unverified'
|
|
@@ -590,30 +563,32 @@ CREATE TABLE experience_candidates (
|
|
|
590
563
|
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
591
564
|
UNIQUE(pack_id, source_memory_id)
|
|
592
565
|
);
|
|
593
|
-
CREATE
|
|
594
|
-
ON experience_candidates(agent_id, project_scope_key, environment_key, status, outcome_status, updated_at DESC);
|
|
595
|
-
CREATE INDEX idx_experience_candidates_pack
|
|
596
|
-
ON experience_candidates(pack_id, created_at DESC);
|
|
597
|
-
CREATE TABLE experience_promotion_receipts (
|
|
566
|
+
CREATE TABLE experience_cloud_uploads (
|
|
598
567
|
id TEXT PRIMARY KEY,
|
|
599
568
|
pack_id TEXT NOT NULL,
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
569
|
+
requested_visibility TEXT NOT NULL
|
|
570
|
+
CHECK(requested_visibility IN ('private','public')),
|
|
571
|
+
bundle_id TEXT NOT NULL,
|
|
572
|
+
bundle_hash TEXT NOT NULL,
|
|
573
|
+
canonical_bundle_json TEXT NOT NULL,
|
|
574
|
+
idempotency_key TEXT NOT NULL UNIQUE,
|
|
575
|
+
remote_upload_id TEXT,
|
|
576
|
+
remote_revision TEXT,
|
|
577
|
+
remote_status TEXT NOT NULL
|
|
578
|
+
CHECK(remote_status IN (
|
|
579
|
+
'local-ready','saving-private','private-saved','requesting-verification',
|
|
580
|
+
'verification-requested','verification-pending','verified-private',
|
|
581
|
+
'public-active','conflict','offline','error','withdrawn','rejected'
|
|
582
|
+
)),
|
|
583
|
+
remote_error_code TEXT,
|
|
584
|
+
remote_error_message TEXT,
|
|
585
|
+
remote_receipt_json TEXT,
|
|
586
|
+
attempt_count INTEGER NOT NULL DEFAULT 0 CHECK(attempt_count >= 0),
|
|
609
587
|
created_at TEXT NOT NULL,
|
|
588
|
+
updated_at TEXT NOT NULL,
|
|
610
589
|
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
611
|
-
|
|
612
|
-
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
613
|
-
UNIQUE(candidate_id, action)
|
|
590
|
+
UNIQUE(pack_id, bundle_hash, requested_visibility)
|
|
614
591
|
);
|
|
615
|
-
CREATE INDEX idx_experience_receipts_pack
|
|
616
|
-
ON experience_promotion_receipts(pack_id, created_at DESC);
|
|
617
592
|
CREATE TABLE experience_export_intents (
|
|
618
593
|
id TEXT PRIMARY KEY,
|
|
619
594
|
pack_id TEXT NOT NULL,
|
|
@@ -625,8 +600,20 @@ CREATE TABLE experience_export_intents (
|
|
|
625
600
|
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
626
601
|
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE
|
|
627
602
|
);
|
|
628
|
-
CREATE
|
|
629
|
-
|
|
603
|
+
CREATE TABLE experience_governance_relations (
|
|
604
|
+
relation_id TEXT PRIMARY KEY,
|
|
605
|
+
agent_id TEXT NOT NULL,
|
|
606
|
+
pack_id TEXT NOT NULL,
|
|
607
|
+
from_candidate_id TEXT NOT NULL,
|
|
608
|
+
to_candidate_id TEXT NOT NULL,
|
|
609
|
+
relation_type TEXT NOT NULL CHECK(relation_type IN ('supersedes','contradicts')),
|
|
610
|
+
reason TEXT NOT NULL,
|
|
611
|
+
created_at TEXT NOT NULL,
|
|
612
|
+
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
613
|
+
FOREIGN KEY(from_candidate_id) REFERENCES experience_candidates(id) ON DELETE CASCADE,
|
|
614
|
+
FOREIGN KEY(to_candidate_id) REFERENCES experience_candidates(id) ON DELETE CASCADE,
|
|
615
|
+
UNIQUE(from_candidate_id, to_candidate_id, relation_type)
|
|
616
|
+
);
|
|
630
617
|
CREATE TABLE experience_lineage_events (
|
|
631
618
|
id TEXT PRIMARY KEY,
|
|
632
619
|
pack_id TEXT NOT NULL,
|
|
@@ -645,8 +632,106 @@ CREATE TABLE experience_lineage_events (
|
|
|
645
632
|
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
646
633
|
UNIQUE(pack_id, release_id, event_type)
|
|
647
634
|
);
|
|
648
|
-
CREATE
|
|
649
|
-
|
|
635
|
+
CREATE TABLE experience_packs (
|
|
636
|
+
id TEXT PRIMARY KEY,
|
|
637
|
+
agent_id TEXT NOT NULL,
|
|
638
|
+
project_id TEXT,
|
|
639
|
+
project_path TEXT,
|
|
640
|
+
project_scope_key TEXT NOT NULL,
|
|
641
|
+
environment_key TEXT NOT NULL,
|
|
642
|
+
name TEXT NOT NULL,
|
|
643
|
+
description TEXT NOT NULL DEFAULT '',
|
|
644
|
+
base_package_hash TEXT,
|
|
645
|
+
-- 2축 좌표. 몸통(코어) 해시가 신원이고 부품 목록 해시는 실행 무결성이다.
|
|
646
|
+
-- axis_version 2 = 옛 한 축 기록, 3 = 두 축을 갖춘 기록. 상세는 REQUIRED_COLUMNS 주석.
|
|
647
|
+
axis_version INTEGER NOT NULL DEFAULT 2,
|
|
648
|
+
base_core_hash TEXT,
|
|
649
|
+
module_set_hash TEXT,
|
|
650
|
+
status TEXT NOT NULL DEFAULT 'active'
|
|
651
|
+
CHECK(status IN ('active','archived')),
|
|
652
|
+
created_at TEXT NOT NULL,
|
|
653
|
+
updated_at TEXT NOT NULL, mcp_requirements_json TEXT NOT NULL DEFAULT '[]', base_agent_definition_id TEXT, base_agent_release_id TEXT, base_package_hash_version TEXT, environment_profile_json TEXT, auto_managed INTEGER NOT NULL DEFAULT 0 CHECK(auto_managed IN (0,1)),
|
|
654
|
+
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE
|
|
655
|
+
);
|
|
656
|
+
CREATE TABLE experience_promotion_receipts (
|
|
657
|
+
id TEXT PRIMARY KEY,
|
|
658
|
+
pack_id TEXT NOT NULL,
|
|
659
|
+
candidate_id TEXT NOT NULL,
|
|
660
|
+
agent_id TEXT NOT NULL,
|
|
661
|
+
action TEXT NOT NULL CHECK(action = 'promote'),
|
|
662
|
+
explicit_consent INTEGER NOT NULL CHECK(explicit_consent = 1),
|
|
663
|
+
verification_status TEXT NOT NULL CHECK(verification_status IN ('attested','verified')),
|
|
664
|
+
verification_method TEXT NOT NULL
|
|
665
|
+
CHECK(verification_method IN ('user-attested','local-run-receipt','local-test-receipt')),
|
|
666
|
+
evidence_hash TEXT NOT NULL,
|
|
667
|
+
public_safe INTEGER NOT NULL CHECK(public_safe IN (0,1)),
|
|
668
|
+
created_at TEXT NOT NULL,
|
|
669
|
+
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
670
|
+
FOREIGN KEY(candidate_id) REFERENCES experience_candidates(id) ON DELETE CASCADE,
|
|
671
|
+
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
672
|
+
UNIQUE(candidate_id, action)
|
|
673
|
+
);
|
|
674
|
+
CREATE TABLE experience_public_projections (
|
|
675
|
+
projection_id TEXT PRIMARY KEY,
|
|
676
|
+
pack_id TEXT NOT NULL UNIQUE,
|
|
677
|
+
agent_id TEXT NOT NULL,
|
|
678
|
+
base_package_hash TEXT NOT NULL
|
|
679
|
+
CHECK(length(base_package_hash) = 64 AND base_package_hash NOT GLOB '*[^0-9a-f]*'),
|
|
680
|
+
base_agent_definition_id TEXT NOT NULL,
|
|
681
|
+
base_agent_release_id TEXT NOT NULL,
|
|
682
|
+
environment_key TEXT NOT NULL,
|
|
683
|
+
source_bindings_json TEXT NOT NULL,
|
|
684
|
+
source_snapshot_hash TEXT NOT NULL
|
|
685
|
+
CHECK(length(source_snapshot_hash) = 64 AND source_snapshot_hash NOT GLOB '*[^0-9a-f]*'),
|
|
686
|
+
title TEXT NOT NULL,
|
|
687
|
+
instructions_json TEXT NOT NULL,
|
|
688
|
+
task_signatures_json TEXT NOT NULL,
|
|
689
|
+
environment_constraints_json TEXT NOT NULL,
|
|
690
|
+
proposal_hash TEXT NOT NULL
|
|
691
|
+
CHECK(length(proposal_hash) = 64 AND proposal_hash NOT GLOB '*[^0-9a-f]*'),
|
|
692
|
+
privacy_issue_codes_json TEXT NOT NULL DEFAULT '[]',
|
|
693
|
+
status TEXT NOT NULL CHECK(status IN ('proposal','confirmed')),
|
|
694
|
+
confirmation_hash TEXT,
|
|
695
|
+
confirmed_at TEXT,
|
|
696
|
+
created_at TEXT NOT NULL,
|
|
697
|
+
updated_at TEXT NOT NULL,
|
|
698
|
+
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
699
|
+
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
700
|
+
CHECK(
|
|
701
|
+
(status = 'proposal' AND confirmation_hash IS NULL AND confirmed_at IS NULL) OR
|
|
702
|
+
(status = 'confirmed' AND length(confirmation_hash) = 64
|
|
703
|
+
AND confirmation_hash NOT GLOB '*[^0-9a-f]*' AND confirmed_at IS NOT NULL)
|
|
704
|
+
)
|
|
705
|
+
);
|
|
706
|
+
CREATE TABLE "experience_relation_edges" (
|
|
707
|
+
edge_id TEXT PRIMARY KEY,
|
|
708
|
+
pack_id TEXT NOT NULL,
|
|
709
|
+
from_node TEXT NOT NULL,
|
|
710
|
+
to_node TEXT NOT NULL,
|
|
711
|
+
edge_type TEXT NOT NULL
|
|
712
|
+
CHECK(edge_type IN (
|
|
713
|
+
'has_release','exact_base_binding','contains','applies_to_task',
|
|
714
|
+
'applies_in_environment','requires_mcp','supports_mcp',
|
|
715
|
+
'alternative_mcp','supported_by','supersedes','contradicts',
|
|
716
|
+
'similar_to','similar_by_tag'
|
|
717
|
+
)),
|
|
718
|
+
project_scope_key TEXT NOT NULL,
|
|
719
|
+
environment_key TEXT NOT NULL,
|
|
720
|
+
base_package_hash TEXT NOT NULL,
|
|
721
|
+
payload_json TEXT NOT NULL DEFAULT '{}',
|
|
722
|
+
source_fingerprint TEXT NOT NULL,
|
|
723
|
+
rebuilt_at TEXT NOT NULL,
|
|
724
|
+
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
725
|
+
FOREIGN KEY(from_node) REFERENCES experience_relation_nodes(node_id) ON DELETE CASCADE,
|
|
726
|
+
FOREIGN KEY(to_node) REFERENCES experience_relation_nodes(node_id) ON DELETE CASCADE
|
|
727
|
+
);
|
|
728
|
+
CREATE TABLE experience_relation_index_state (
|
|
729
|
+
scope_key TEXT PRIMARY KEY CHECK(scope_key = 'shared'),
|
|
730
|
+
source_fingerprint TEXT NOT NULL,
|
|
731
|
+
rebuilt_at TEXT NOT NULL,
|
|
732
|
+
node_count INTEGER NOT NULL,
|
|
733
|
+
edge_count INTEGER NOT NULL
|
|
734
|
+
);
|
|
650
735
|
CREATE TABLE experience_relation_nodes (
|
|
651
736
|
node_id TEXT PRIMARY KEY,
|
|
652
737
|
pack_id TEXT NOT NULL,
|
|
@@ -663,75 +748,59 @@ CREATE TABLE experience_relation_nodes (
|
|
|
663
748
|
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
664
749
|
UNIQUE(pack_id, node_type, entity_ref)
|
|
665
750
|
);
|
|
666
|
-
CREATE
|
|
667
|
-
ON experience_relation_nodes(project_scope_key, environment_key, base_package_hash, node_type);
|
|
668
|
-
CREATE INDEX idx_experience_relation_nodes_pack_type
|
|
669
|
-
ON experience_relation_nodes(pack_id, node_type, normalized_value);
|
|
670
|
-
CREATE TABLE experience_relation_index_state (
|
|
671
|
-
scope_key TEXT PRIMARY KEY CHECK(scope_key = 'shared'),
|
|
672
|
-
source_fingerprint TEXT NOT NULL,
|
|
673
|
-
rebuilt_at TEXT NOT NULL,
|
|
674
|
-
node_count INTEGER NOT NULL,
|
|
675
|
-
edge_count INTEGER NOT NULL
|
|
676
|
-
);
|
|
677
|
-
CREATE TABLE experience_cloud_uploads (
|
|
751
|
+
CREATE TABLE failure_events (
|
|
678
752
|
id TEXT PRIMARY KEY,
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
CHECK(remote_status IN (
|
|
690
|
-
'local-ready','saving-private','private-saved','requesting-verification',
|
|
691
|
-
'verification-requested','verification-pending','verified-private',
|
|
692
|
-
'public-active','conflict','offline','error','withdrawn','rejected'
|
|
693
|
-
)),
|
|
694
|
-
remote_error_code TEXT,
|
|
695
|
-
remote_error_message TEXT,
|
|
696
|
-
remote_receipt_json TEXT,
|
|
697
|
-
attempt_count INTEGER NOT NULL DEFAULT 0 CHECK(attempt_count >= 0),
|
|
698
|
-
created_at TEXT NOT NULL,
|
|
699
|
-
updated_at TEXT NOT NULL,
|
|
700
|
-
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
701
|
-
UNIQUE(pack_id, bundle_hash, requested_visibility)
|
|
753
|
+
run_id TEXT,
|
|
754
|
+
ts TEXT NOT NULL,
|
|
755
|
+
source TEXT NOT NULL,
|
|
756
|
+
chat_id TEXT,
|
|
757
|
+
automation_id TEXT,
|
|
758
|
+
node_id TEXT,
|
|
759
|
+
agent_id TEXT,
|
|
760
|
+
error_code TEXT,
|
|
761
|
+
error_message TEXT NOT NULL,
|
|
762
|
+
payload_json TEXT NOT NULL DEFAULT '{}'
|
|
702
763
|
);
|
|
703
|
-
CREATE
|
|
704
|
-
ON experience_cloud_uploads(pack_id, updated_at DESC);
|
|
705
|
-
CREATE UNIQUE INDEX idx_experience_cloud_uploads_remote
|
|
706
|
-
ON experience_cloud_uploads(remote_upload_id)
|
|
707
|
-
WHERE remote_upload_id IS NOT NULL;
|
|
708
|
-
CREATE INDEX idx_experience_cloud_uploads_recovery
|
|
709
|
-
ON experience_cloud_uploads(remote_status, updated_at ASC);
|
|
710
|
-
CREATE UNIQUE INDEX idx_experience_auto_pack_exact
|
|
711
|
-
ON experience_packs(agent_id, project_scope_key, environment_key, base_package_hash)
|
|
712
|
-
WHERE auto_managed = 1 AND status = 'active';
|
|
713
|
-
CREATE TABLE experience_auto_intake_receipts (
|
|
764
|
+
CREATE TABLE firms (
|
|
714
765
|
id TEXT PRIMARY KEY,
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
CREATE
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
766
|
+
slug TEXT UNIQUE NOT NULL,
|
|
767
|
+
name TEXT NOT NULL,
|
|
768
|
+
tagline TEXT NOT NULL,
|
|
769
|
+
persona TEXT NOT NULL,
|
|
770
|
+
ceo_agent_id TEXT NOT NULL,
|
|
771
|
+
org_chart_json TEXT NOT NULL,
|
|
772
|
+
installed_at TEXT NOT NULL, name_en TEXT NOT NULL DEFAULT '', tagline_en TEXT NOT NULL DEFAULT '',
|
|
773
|
+
FOREIGN KEY(ceo_agent_id) REFERENCES installed_agents(id) ON DELETE RESTRICT
|
|
774
|
+
);
|
|
775
|
+
CREATE TABLE folder_activity (
|
|
776
|
+
path TEXT PRIMARY KEY,
|
|
777
|
+
visits INTEGER NOT NULL DEFAULT 0,
|
|
778
|
+
activated_at TEXT,
|
|
779
|
+
first_seen TEXT NOT NULL,
|
|
780
|
+
last_seen TEXT NOT NULL
|
|
781
|
+
);
|
|
782
|
+
CREATE TABLE graph_run_journal (
|
|
783
|
+
run_id TEXT NOT NULL,
|
|
784
|
+
seq INTEGER NOT NULL,
|
|
785
|
+
ts TEXT NOT NULL,
|
|
786
|
+
kind TEXT NOT NULL,
|
|
787
|
+
node_id TEXT,
|
|
788
|
+
payload_json TEXT,
|
|
789
|
+
PRIMARY KEY (run_id, seq)
|
|
790
|
+
);
|
|
791
|
+
CREATE TABLE hub_agent_bookmarks (
|
|
792
|
+
workspace_id TEXT NOT NULL,
|
|
793
|
+
slug TEXT NOT NULL,
|
|
794
|
+
entity_kind TEXT NOT NULL DEFAULT 'agent',
|
|
795
|
+
listing_json TEXT NOT NULL,
|
|
796
|
+
bookmarked_at TEXT NOT NULL,
|
|
797
|
+
server_updated_at TEXT,
|
|
798
|
+
sync_state TEXT NOT NULL DEFAULT 'clean'
|
|
799
|
+
CHECK(sync_state IN ('clean','pending_upsert','pending_delete')),
|
|
800
|
+
last_sync_error TEXT,
|
|
801
|
+
claim_workspace_id TEXT,
|
|
802
|
+
PRIMARY KEY(workspace_id, entity_kind, slug)
|
|
803
|
+
);
|
|
735
804
|
CREATE TABLE installed_agent_hub_bindings (
|
|
736
805
|
installed_agent_id TEXT PRIMARY KEY,
|
|
737
806
|
agent_definition_id TEXT NOT NULL,
|
|
@@ -741,188 +810,42 @@ CREATE TABLE installed_agent_hub_bindings (
|
|
|
741
810
|
FOREIGN KEY(installed_agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
742
811
|
UNIQUE(agent_definition_id, agent_release_id, installed_agent_id)
|
|
743
812
|
);
|
|
744
|
-
CREATE
|
|
745
|
-
ON installed_agent_hub_bindings(agent_definition_id, agent_release_id);
|
|
746
|
-
CREATE TABLE taste_draft_candidates (
|
|
813
|
+
CREATE TABLE installed_agents (
|
|
747
814
|
id TEXT PRIMARY KEY,
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
base_agent_definition_id TEXT NOT NULL,
|
|
782
|
-
base_agent_release_id TEXT NOT NULL,
|
|
783
|
-
environment_key TEXT NOT NULL,
|
|
784
|
-
taste_style_id TEXT NOT NULL,
|
|
785
|
-
release_id TEXT NOT NULL UNIQUE,
|
|
786
|
-
title TEXT NOT NULL,
|
|
787
|
-
summary TEXT NOT NULL,
|
|
788
|
-
rule_statement TEXT NOT NULL,
|
|
789
|
-
axis TEXT NOT NULL,
|
|
790
|
-
task_signature TEXT NOT NULL,
|
|
791
|
-
contexts_json TEXT NOT NULL,
|
|
792
|
-
generalization_hash TEXT NOT NULL,
|
|
793
|
-
privacy_issue_codes_json TEXT NOT NULL DEFAULT '[]',
|
|
794
|
-
status TEXT NOT NULL CHECK(status IN ('proposal','confirmed','moderation-pending','ab-ready','error')),
|
|
795
|
-
confirmed_at TEXT,
|
|
796
|
-
preview_grants_json TEXT,
|
|
797
|
-
preview_names_json TEXT,
|
|
798
|
-
preview_digests_json TEXT,
|
|
799
|
-
preview_rights TEXT,
|
|
800
|
-
remote_preview_asset_ids_json TEXT,
|
|
801
|
-
remote_revision TEXT,
|
|
802
|
-
remote_error_code TEXT,
|
|
803
|
-
created_at TEXT NOT NULL,
|
|
804
|
-
updated_at TEXT NOT NULL, preview_provenance_json TEXT,
|
|
805
|
-
FOREIGN KEY(draft_id) REFERENCES taste_draft_candidates(id) ON DELETE CASCADE,
|
|
806
|
-
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE
|
|
807
|
-
);
|
|
808
|
-
CREATE INDEX idx_taste_chip_workflows_agent_status
|
|
809
|
-
ON taste_chip_workflows(agent_id, status, updated_at DESC);
|
|
810
|
-
CREATE TABLE experience_public_projections (
|
|
811
|
-
projection_id TEXT PRIMARY KEY,
|
|
812
|
-
pack_id TEXT NOT NULL UNIQUE,
|
|
813
|
-
agent_id TEXT NOT NULL,
|
|
814
|
-
base_package_hash TEXT NOT NULL
|
|
815
|
-
CHECK(length(base_package_hash) = 64 AND base_package_hash NOT GLOB '*[^0-9a-f]*'),
|
|
816
|
-
base_agent_definition_id TEXT NOT NULL,
|
|
817
|
-
base_agent_release_id TEXT NOT NULL,
|
|
818
|
-
environment_key TEXT NOT NULL,
|
|
819
|
-
source_bindings_json TEXT NOT NULL,
|
|
820
|
-
source_snapshot_hash TEXT NOT NULL
|
|
821
|
-
CHECK(length(source_snapshot_hash) = 64 AND source_snapshot_hash NOT GLOB '*[^0-9a-f]*'),
|
|
822
|
-
title TEXT NOT NULL,
|
|
823
|
-
instructions_json TEXT NOT NULL,
|
|
824
|
-
task_signatures_json TEXT NOT NULL,
|
|
825
|
-
environment_constraints_json TEXT NOT NULL,
|
|
826
|
-
proposal_hash TEXT NOT NULL
|
|
827
|
-
CHECK(length(proposal_hash) = 64 AND proposal_hash NOT GLOB '*[^0-9a-f]*'),
|
|
828
|
-
privacy_issue_codes_json TEXT NOT NULL DEFAULT '[]',
|
|
829
|
-
status TEXT NOT NULL CHECK(status IN ('proposal','confirmed')),
|
|
830
|
-
confirmation_hash TEXT,
|
|
831
|
-
confirmed_at TEXT,
|
|
832
|
-
created_at TEXT NOT NULL,
|
|
833
|
-
updated_at TEXT NOT NULL,
|
|
834
|
-
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
835
|
-
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
836
|
-
CHECK(
|
|
837
|
-
(status = 'proposal' AND confirmation_hash IS NULL AND confirmed_at IS NULL) OR
|
|
838
|
-
(status = 'confirmed' AND length(confirmation_hash) = 64
|
|
839
|
-
AND confirmation_hash NOT GLOB '*[^0-9a-f]*' AND confirmed_at IS NOT NULL)
|
|
840
|
-
)
|
|
841
|
-
);
|
|
842
|
-
CREATE INDEX idx_experience_public_projection_agent_status
|
|
843
|
-
ON experience_public_projections(agent_id, status, updated_at DESC);
|
|
844
|
-
CREATE INDEX idx_experience_public_projection_exact_base
|
|
845
|
-
ON experience_public_projections(
|
|
846
|
-
base_agent_definition_id, base_agent_release_id, base_package_hash, environment_key
|
|
847
|
-
);
|
|
848
|
-
CREATE TABLE experience_governance_relations (
|
|
849
|
-
relation_id TEXT PRIMARY KEY,
|
|
850
|
-
agent_id TEXT NOT NULL,
|
|
851
|
-
pack_id TEXT NOT NULL,
|
|
852
|
-
from_candidate_id TEXT NOT NULL,
|
|
853
|
-
to_candidate_id TEXT NOT NULL,
|
|
854
|
-
relation_type TEXT NOT NULL CHECK(relation_type IN ('supersedes','contradicts')),
|
|
855
|
-
reason TEXT NOT NULL,
|
|
856
|
-
created_at TEXT NOT NULL,
|
|
857
|
-
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
858
|
-
FOREIGN KEY(from_candidate_id) REFERENCES experience_candidates(id) ON DELETE CASCADE,
|
|
859
|
-
FOREIGN KEY(to_candidate_id) REFERENCES experience_candidates(id) ON DELETE CASCADE,
|
|
860
|
-
UNIQUE(from_candidate_id, to_candidate_id, relation_type)
|
|
861
|
-
);
|
|
862
|
-
CREATE INDEX idx_experience_governance_pack
|
|
863
|
-
ON experience_governance_relations(pack_id, relation_type, created_at ASC);
|
|
864
|
-
CREATE TABLE IF NOT EXISTS "experience_relation_edges" (
|
|
865
|
-
edge_id TEXT PRIMARY KEY,
|
|
866
|
-
pack_id TEXT NOT NULL,
|
|
867
|
-
from_node TEXT NOT NULL,
|
|
868
|
-
to_node TEXT NOT NULL,
|
|
869
|
-
edge_type TEXT NOT NULL
|
|
870
|
-
CHECK(edge_type IN (
|
|
871
|
-
'has_release','exact_base_binding','contains','applies_to_task',
|
|
872
|
-
'applies_in_environment','requires_mcp','supports_mcp',
|
|
873
|
-
'alternative_mcp','supported_by','supersedes','contradicts',
|
|
874
|
-
'similar_to','similar_by_tag'
|
|
875
|
-
)),
|
|
876
|
-
project_scope_key TEXT NOT NULL,
|
|
877
|
-
environment_key TEXT NOT NULL,
|
|
878
|
-
base_package_hash TEXT NOT NULL,
|
|
879
|
-
payload_json TEXT NOT NULL DEFAULT '{}',
|
|
880
|
-
source_fingerprint TEXT NOT NULL,
|
|
881
|
-
rebuilt_at TEXT NOT NULL,
|
|
882
|
-
FOREIGN KEY(pack_id) REFERENCES experience_packs(id) ON DELETE CASCADE,
|
|
883
|
-
FOREIGN KEY(from_node) REFERENCES experience_relation_nodes(node_id) ON DELETE CASCADE,
|
|
884
|
-
FOREIGN KEY(to_node) REFERENCES experience_relation_nodes(node_id) ON DELETE CASCADE
|
|
885
|
-
);
|
|
886
|
-
CREATE INDEX idx_experience_relation_edges_scope
|
|
887
|
-
ON experience_relation_edges(project_scope_key, environment_key, base_package_hash, edge_type);
|
|
888
|
-
CREATE INDEX idx_experience_relation_edges_from
|
|
889
|
-
ON experience_relation_edges(pack_id, from_node, edge_type);
|
|
890
|
-
CREATE INDEX idx_experience_relation_edges_to
|
|
891
|
-
ON experience_relation_edges(pack_id, to_node, edge_type);
|
|
892
|
-
CREATE TABLE memory_tickets (
|
|
893
|
-
ticket_id TEXT PRIMARY KEY,
|
|
894
|
-
turn_key TEXT NOT NULL UNIQUE,
|
|
895
|
-
turn_id TEXT,
|
|
896
|
-
run_id TEXT,
|
|
897
|
-
node_id TEXT,
|
|
898
|
-
chat_id TEXT,
|
|
899
|
-
agent_id TEXT,
|
|
900
|
-
project_id TEXT,
|
|
901
|
-
project_path_hash TEXT,
|
|
902
|
-
emitter_status TEXT NOT NULL
|
|
903
|
-
CHECK(emitter_status IN ('valid','empty','missing','malformed','read_only')),
|
|
904
|
-
candidate_count INTEGER NOT NULL DEFAULT 0 CHECK(candidate_count >= 0),
|
|
905
|
-
state TEXT NOT NULL DEFAULT 'received'
|
|
906
|
-
CHECK(state IN ('received','completed','read_only','failed')),
|
|
907
|
-
curator_mode TEXT NOT NULL DEFAULT 'policy'
|
|
908
|
-
CHECK(curator_mode IN ('semantic','policy','policy_fallback','read_only')),
|
|
909
|
-
curation_outcome TEXT NOT NULL DEFAULT 'no_candidates'
|
|
910
|
-
CHECK(curation_outcome IN ('decided','no_candidates','malformed_output','curator_failed','read_only')),
|
|
911
|
-
written_count INTEGER NOT NULL DEFAULT 0 CHECK(written_count >= 0),
|
|
912
|
-
deduped_count INTEGER NOT NULL DEFAULT 0 CHECK(deduped_count >= 0),
|
|
913
|
-
redacted_count INTEGER NOT NULL DEFAULT 0 CHECK(redacted_count >= 0),
|
|
914
|
-
session_count INTEGER NOT NULL DEFAULT 0 CHECK(session_count >= 0),
|
|
915
|
-
discarded_count INTEGER NOT NULL DEFAULT 0 CHECK(discarded_count >= 0),
|
|
916
|
-
failure_code TEXT,
|
|
917
|
-
created_at TEXT NOT NULL,
|
|
918
|
-
updated_at TEXT NOT NULL
|
|
815
|
+
slug TEXT UNIQUE NOT NULL,
|
|
816
|
+
name TEXT NOT NULL,
|
|
817
|
+
tagline TEXT NOT NULL,
|
|
818
|
+
system_prompt TEXT NOT NULL DEFAULT '',
|
|
819
|
+
mcp_servers_json TEXT NOT NULL,
|
|
820
|
+
preferred_backend TEXT,
|
|
821
|
+
trust_grade TEXT NOT NULL,
|
|
822
|
+
installed_at TEXT NOT NULL,
|
|
823
|
+
tone TEXT NOT NULL
|
|
824
|
+
, env_requirements_json TEXT NOT NULL DEFAULT '[]', name_en TEXT NOT NULL DEFAULT '', tagline_en TEXT NOT NULL DEFAULT '', builtin INTEGER NOT NULL DEFAULT 0, role TEXT, visibility TEXT NOT NULL DEFAULT 'visible' CHECK(visibility IN ('visible','background','private')), entity_kind TEXT, local_display_name TEXT, bookmarked_at TEXT NULL, parent_team_id TEXT NULL);
|
|
825
|
+
CREATE TABLE judgment_verdicts (
|
|
826
|
+
kind TEXT NOT NULL,
|
|
827
|
+
signature TEXT NOT NULL,
|
|
828
|
+
verdict TEXT NOT NULL,
|
|
829
|
+
confidence REAL NOT NULL DEFAULT 0,
|
|
830
|
+
reason TEXT NOT NULL DEFAULT '',
|
|
831
|
+
created_at TEXT NOT NULL,
|
|
832
|
+
last_hit_at TEXT NOT NULL,
|
|
833
|
+
hits INTEGER NOT NULL DEFAULT 1,
|
|
834
|
+
PRIMARY KEY (kind, signature)
|
|
835
|
+
);
|
|
836
|
+
CREATE TABLE mcp_servers (
|
|
837
|
+
id TEXT PRIMARY KEY,
|
|
838
|
+
catalog_id TEXT,
|
|
839
|
+
name TEXT NOT NULL,
|
|
840
|
+
name_en TEXT NOT NULL DEFAULT '',
|
|
841
|
+
transport TEXT NOT NULL,
|
|
842
|
+
command TEXT,
|
|
843
|
+
args_json TEXT NOT NULL DEFAULT '[]',
|
|
844
|
+
url TEXT,
|
|
845
|
+
env_keys_json TEXT NOT NULL DEFAULT '[]',
|
|
846
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
847
|
+
installed_at TEXT NOT NULL
|
|
919
848
|
);
|
|
920
|
-
CREATE INDEX idx_memory_tickets_project_created
|
|
921
|
-
ON memory_tickets(project_id, created_at DESC);
|
|
922
|
-
CREATE INDEX idx_memory_tickets_agent_created
|
|
923
|
-
ON memory_tickets(agent_id, created_at DESC);
|
|
924
|
-
CREATE INDEX idx_memory_tickets_status_created
|
|
925
|
-
ON memory_tickets(emitter_status, state, created_at DESC);
|
|
926
849
|
CREATE TABLE memory_decisions (
|
|
927
850
|
decision_id TEXT PRIMARY KEY,
|
|
928
851
|
ticket_id TEXT NOT NULL,
|
|
@@ -945,32 +868,21 @@ CREATE TABLE memory_decisions (
|
|
|
945
868
|
FOREIGN KEY(target_memory_id) REFERENCES memory_entries(id) ON DELETE SET NULL,
|
|
946
869
|
UNIQUE(ticket_id, candidate_index)
|
|
947
870
|
);
|
|
948
|
-
CREATE
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
created_at TEXT NOT NULL
|
|
962
|
-
|
|
963
|
-
FOREIGN KEY(to_memory_id) REFERENCES memory_entries(id) ON DELETE CASCADE,
|
|
964
|
-
CHECK(from_memory_id <> to_memory_id),
|
|
965
|
-
CHECK(score IS NULL OR (score >= -1.0 AND score <= 1.0)),
|
|
966
|
-
UNIQUE(from_memory_id, to_memory_id, relation_type)
|
|
967
|
-
);
|
|
968
|
-
CREATE INDEX idx_memory_relation_from
|
|
969
|
-
ON memory_relation_edges(from_memory_id, relation_type, score DESC);
|
|
970
|
-
CREATE INDEX idx_memory_relation_to
|
|
971
|
-
ON memory_relation_edges(to_memory_id, relation_type, score DESC);
|
|
972
|
-
CREATE INDEX idx_memory_relation_owner
|
|
973
|
-
ON memory_relation_edges(owner_scope_key, relation_type, score DESC);
|
|
871
|
+
CREATE TABLE memory_entries (
|
|
872
|
+
id TEXT PRIMARY KEY,
|
|
873
|
+
scope TEXT NOT NULL,
|
|
874
|
+
kind TEXT NOT NULL,
|
|
875
|
+
content TEXT NOT NULL,
|
|
876
|
+
project_id TEXT,
|
|
877
|
+
project_path TEXT,
|
|
878
|
+
agent_id TEXT,
|
|
879
|
+
chat_id TEXT,
|
|
880
|
+
confidence TEXT NOT NULL DEFAULT 'medium',
|
|
881
|
+
sensitivity TEXT NOT NULL DEFAULT 'internal',
|
|
882
|
+
evidence_json TEXT NOT NULL DEFAULT '[]',
|
|
883
|
+
superseded_at TEXT,
|
|
884
|
+
created_at TEXT NOT NULL
|
|
885
|
+
, context_json TEXT NOT NULL DEFAULT '{}', embedding_model TEXT, embedding_adapter TEXT, embedding_model_sha256 TEXT, embedding_content_hash TEXT, embedding_dimensions INTEGER, embedding_json TEXT);
|
|
974
886
|
CREATE TABLE memory_episodes (
|
|
975
887
|
episode_id TEXT PRIMARY KEY,
|
|
976
888
|
ticket_id TEXT NOT NULL UNIQUE,
|
|
@@ -993,324 +905,439 @@ CREATE TABLE memory_episodes (
|
|
|
993
905
|
CHECK(summary_hash IS NULL OR
|
|
994
906
|
(length(summary_hash) = 64 AND summary_hash NOT GLOB '*[^0-9a-f]*'))
|
|
995
907
|
);
|
|
996
|
-
CREATE
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
project_id TEXT,
|
|
1008
|
-
firm_id TEXT,
|
|
1009
|
-
status TEXT NOT NULL DEFAULT 'open',
|
|
908
|
+
CREATE TABLE memory_relation_edges (
|
|
909
|
+
relation_id TEXT PRIMARY KEY,
|
|
910
|
+
from_memory_id TEXT NOT NULL,
|
|
911
|
+
to_memory_id TEXT NOT NULL,
|
|
912
|
+
relation_type TEXT NOT NULL
|
|
913
|
+
CHECK(relation_type IN ('similar_to','supersedes','contradicts')),
|
|
914
|
+
score REAL,
|
|
915
|
+
owner_scope_key TEXT NOT NULL,
|
|
916
|
+
embedding_model TEXT,
|
|
917
|
+
embedding_adapter TEXT,
|
|
918
|
+
embedding_model_sha256 TEXT,
|
|
1010
919
|
created_at TEXT NOT NULL,
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
920
|
+
FOREIGN KEY(from_memory_id) REFERENCES memory_entries(id) ON DELETE CASCADE,
|
|
921
|
+
FOREIGN KEY(to_memory_id) REFERENCES memory_entries(id) ON DELETE CASCADE,
|
|
922
|
+
CHECK(from_memory_id <> to_memory_id),
|
|
923
|
+
CHECK(score IS NULL OR (score >= -1.0 AND score <= 1.0)),
|
|
924
|
+
UNIQUE(from_memory_id, to_memory_id, relation_type)
|
|
1016
925
|
);
|
|
1017
|
-
CREATE
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
926
|
+
CREATE TABLE memory_tickets (
|
|
927
|
+
ticket_id TEXT PRIMARY KEY,
|
|
928
|
+
turn_key TEXT NOT NULL UNIQUE,
|
|
929
|
+
turn_id TEXT,
|
|
930
|
+
run_id TEXT,
|
|
931
|
+
node_id TEXT,
|
|
932
|
+
chat_id TEXT,
|
|
1023
933
|
agent_id TEXT,
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
CREATE INDEX idx_installed_agents_parent_team ON installed_agents(parent_team_id) WHERE parent_team_id IS NOT NULL;
|
|
1044
|
-
CREATE TABLE IF NOT EXISTS "borrowed_agent_careers_v76_legacy" (
|
|
1045
|
-
owner_scope_key TEXT NOT NULL,
|
|
1046
|
-
entity_kind TEXT NOT NULL CHECK(entity_kind IN ('agent','team')),
|
|
1047
|
-
slug TEXT NOT NULL,
|
|
1048
|
-
first_used_at TEXT NOT NULL,
|
|
1049
|
-
last_used_at TEXT NOT NULL,
|
|
1050
|
-
use_count INTEGER NOT NULL DEFAULT 0 CHECK(use_count >= 0),
|
|
1051
|
-
latest_runtime_json TEXT,
|
|
1052
|
-
name_en TEXT,
|
|
1053
|
-
name_ko TEXT,
|
|
1054
|
-
tagline_en TEXT,
|
|
1055
|
-
tagline_ko TEXT,
|
|
1056
|
-
PRIMARY KEY(owner_scope_key, entity_kind, slug)
|
|
1057
|
-
);
|
|
1058
|
-
CREATE TABLE IF NOT EXISTS "borrowed_agent_career_runs_v76_legacy" (
|
|
1059
|
-
owner_scope_key TEXT NOT NULL,
|
|
1060
|
-
entity_kind TEXT NOT NULL CHECK(entity_kind IN ('agent','team')),
|
|
1061
|
-
slug TEXT NOT NULL,
|
|
1062
|
-
run_id_hash TEXT NOT NULL,
|
|
1063
|
-
recorded_at TEXT NOT NULL,
|
|
1064
|
-
PRIMARY KEY(owner_scope_key, entity_kind, slug, run_id_hash),
|
|
1065
|
-
FOREIGN KEY(owner_scope_key, entity_kind, slug)
|
|
1066
|
-
REFERENCES "borrowed_agent_careers_v76_legacy"(owner_scope_key, entity_kind, slug)
|
|
1067
|
-
ON DELETE CASCADE
|
|
1068
|
-
);
|
|
1069
|
-
CREATE TABLE borrowed_agent_careers (
|
|
1070
|
-
owner_scope_key TEXT NOT NULL,
|
|
1071
|
-
entity_kind TEXT NOT NULL CHECK(entity_kind IN ('agent','team')),
|
|
1072
|
-
agent_definition_id TEXT NOT NULL,
|
|
1073
|
-
agent_release_id TEXT NOT NULL,
|
|
1074
|
-
component_id TEXT NOT NULL DEFAULT '',
|
|
1075
|
-
slug TEXT NOT NULL,
|
|
1076
|
-
memory_key TEXT NOT NULL,
|
|
1077
|
-
first_used_at TEXT NOT NULL,
|
|
1078
|
-
last_used_at TEXT NOT NULL,
|
|
1079
|
-
use_count INTEGER NOT NULL DEFAULT 0 CHECK(use_count >= 0),
|
|
1080
|
-
latest_runtime_json TEXT,
|
|
1081
|
-
name_en TEXT,
|
|
1082
|
-
name_ko TEXT,
|
|
1083
|
-
tagline_en TEXT,
|
|
1084
|
-
tagline_ko TEXT,
|
|
1085
|
-
PRIMARY KEY(
|
|
1086
|
-
owner_scope_key, entity_kind, agent_definition_id,
|
|
1087
|
-
agent_release_id, component_id
|
|
1088
|
-
)
|
|
934
|
+
project_id TEXT,
|
|
935
|
+
project_path_hash TEXT,
|
|
936
|
+
emitter_status TEXT NOT NULL
|
|
937
|
+
CHECK(emitter_status IN ('valid','empty','missing','malformed','read_only')),
|
|
938
|
+
candidate_count INTEGER NOT NULL DEFAULT 0 CHECK(candidate_count >= 0),
|
|
939
|
+
state TEXT NOT NULL DEFAULT 'received'
|
|
940
|
+
CHECK(state IN ('received','completed','read_only','failed')),
|
|
941
|
+
curator_mode TEXT NOT NULL DEFAULT 'policy'
|
|
942
|
+
CHECK(curator_mode IN ('semantic','policy','policy_fallback','read_only')),
|
|
943
|
+
curation_outcome TEXT NOT NULL DEFAULT 'no_candidates'
|
|
944
|
+
CHECK(curation_outcome IN ('decided','no_candidates','malformed_output','curator_failed','read_only')),
|
|
945
|
+
written_count INTEGER NOT NULL DEFAULT 0 CHECK(written_count >= 0),
|
|
946
|
+
deduped_count INTEGER NOT NULL DEFAULT 0 CHECK(deduped_count >= 0),
|
|
947
|
+
redacted_count INTEGER NOT NULL DEFAULT 0 CHECK(redacted_count >= 0),
|
|
948
|
+
session_count INTEGER NOT NULL DEFAULT 0 CHECK(session_count >= 0),
|
|
949
|
+
discarded_count INTEGER NOT NULL DEFAULT 0 CHECK(discarded_count >= 0),
|
|
950
|
+
failure_code TEXT,
|
|
951
|
+
created_at TEXT NOT NULL,
|
|
952
|
+
updated_at TEXT NOT NULL
|
|
1089
953
|
);
|
|
1090
|
-
CREATE
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
ON borrowed_agent_careers(owner_scope_key, last_used_at DESC);
|
|
1094
|
-
CREATE TABLE borrowed_agent_career_runs (
|
|
1095
|
-
owner_scope_key TEXT NOT NULL,
|
|
1096
|
-
entity_kind TEXT NOT NULL CHECK(entity_kind IN ('agent','team')),
|
|
1097
|
-
agent_definition_id TEXT NOT NULL,
|
|
1098
|
-
agent_release_id TEXT NOT NULL,
|
|
1099
|
-
component_id TEXT NOT NULL DEFAULT '',
|
|
1100
|
-
run_id_hash TEXT NOT NULL,
|
|
1101
|
-
recorded_at TEXT NOT NULL,
|
|
1102
|
-
PRIMARY KEY(
|
|
1103
|
-
owner_scope_key, entity_kind, agent_definition_id,
|
|
1104
|
-
agent_release_id, component_id, run_id_hash
|
|
1105
|
-
),
|
|
1106
|
-
FOREIGN KEY(
|
|
1107
|
-
owner_scope_key, entity_kind, agent_definition_id,
|
|
1108
|
-
agent_release_id, component_id
|
|
1109
|
-
)
|
|
1110
|
-
REFERENCES borrowed_agent_careers(
|
|
1111
|
-
owner_scope_key, entity_kind, agent_definition_id,
|
|
1112
|
-
agent_release_id, component_id
|
|
1113
|
-
)
|
|
1114
|
-
ON DELETE CASCADE
|
|
954
|
+
CREATE TABLE meta (
|
|
955
|
+
key TEXT PRIMARY KEY,
|
|
956
|
+
value TEXT NOT NULL
|
|
1115
957
|
);
|
|
1116
|
-
CREATE TABLE
|
|
1117
|
-
role TEXT
|
|
958
|
+
CREATE TABLE model_role_members (
|
|
959
|
+
role TEXT NOT NULL CHECK(role IN ('orchestrator','worker')),
|
|
960
|
+
position INTEGER NOT NULL CHECK(position >= 1),
|
|
1118
961
|
kind TEXT NOT NULL,
|
|
1119
962
|
backend TEXT,
|
|
1120
963
|
source TEXT,
|
|
1121
964
|
model TEXT,
|
|
1122
965
|
effort TEXT,
|
|
1123
966
|
long_context INTEGER NOT NULL DEFAULT 0 CHECK(long_context IN (0,1)),
|
|
1124
|
-
inherit INTEGER NOT NULL DEFAULT 0 CHECK(inherit IN (0,1)),
|
|
1125
967
|
updated_at TEXT NOT NULL,
|
|
1126
|
-
|
|
968
|
+
PRIMARY KEY(role, position)
|
|
1127
969
|
);
|
|
1128
|
-
CREATE TABLE
|
|
1129
|
-
role TEXT
|
|
1130
|
-
position INTEGER NOT NULL CHECK(position >= 1),
|
|
970
|
+
CREATE TABLE model_roles (
|
|
971
|
+
role TEXT PRIMARY KEY CHECK(role IN ('orchestrator','worker')),
|
|
1131
972
|
kind TEXT NOT NULL,
|
|
1132
973
|
backend TEXT,
|
|
1133
974
|
source TEXT,
|
|
1134
975
|
model TEXT,
|
|
1135
976
|
effort TEXT,
|
|
1136
977
|
long_context INTEGER NOT NULL DEFAULT 0 CHECK(long_context IN (0,1)),
|
|
978
|
+
inherit INTEGER NOT NULL DEFAULT 0 CHECK(inherit IN (0,1)),
|
|
1137
979
|
updated_at TEXT NOT NULL,
|
|
1138
|
-
|
|
980
|
+
CHECK(role = 'worker' OR inherit = 0)
|
|
1139
981
|
);
|
|
1140
|
-
CREATE TABLE
|
|
982
|
+
CREATE TABLE project_agent_rent_allow (
|
|
983
|
+
project_id TEXT NOT NULL,
|
|
984
|
+
slug TEXT NOT NULL,
|
|
985
|
+
allowed INTEGER NOT NULL DEFAULT 0,
|
|
986
|
+
updated_at TEXT NOT NULL,
|
|
987
|
+
PRIMARY KEY (project_id, slug)
|
|
988
|
+
);
|
|
989
|
+
CREATE TABLE projects (
|
|
1141
990
|
id TEXT PRIMARY KEY,
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
991
|
+
name TEXT NOT NULL,
|
|
992
|
+
description TEXT,
|
|
993
|
+
default_agent_id TEXT,
|
|
994
|
+
context_note TEXT,
|
|
1146
995
|
created_at TEXT NOT NULL,
|
|
1147
|
-
updated_at TEXT NOT NULL,
|
|
1148
|
-
|
|
996
|
+
updated_at TEXT NOT NULL, folder_path TEXT, system_prompt TEXT, agent_pool_json TEXT NOT NULL DEFAULT '[]', source_type TEXT NOT NULL DEFAULT 'local', source_ref TEXT,
|
|
997
|
+
FOREIGN KEY(default_agent_id) REFERENCES installed_agents(id) ON DELETE SET NULL
|
|
1149
998
|
);
|
|
1150
|
-
CREATE
|
|
1151
|
-
ON automation_sessions(automation_id, updated_at DESC);
|
|
1152
|
-
CREATE TABLE IF NOT EXISTS "telegram_bindings" (
|
|
999
|
+
CREATE TABLE run_events (
|
|
1153
1000
|
id TEXT PRIMARY KEY,
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
last_test_at TEXT,
|
|
1167
|
-
created_at TEXT NOT NULL,
|
|
1168
|
-
updated_at TEXT NOT NULL,
|
|
1169
|
-
automation_report_enabled INTEGER NOT NULL DEFAULT 0,
|
|
1170
|
-
token_saved INTEGER NOT NULL DEFAULT 0,
|
|
1171
|
-
token_fingerprint TEXT,
|
|
1172
|
-
designated_project_id TEXT REFERENCES projects(id) ON DELETE SET NULL,
|
|
1173
|
-
designated_graph_id TEXT,
|
|
1174
|
-
legacy_notice_at TEXT
|
|
1175
|
-
);
|
|
1176
|
-
CREATE INDEX idx_telegram_bindings_target
|
|
1177
|
-
ON telegram_bindings(target_kind, target_id);
|
|
1178
|
-
CREATE INDEX idx_telegram_bindings_chat
|
|
1179
|
-
ON telegram_bindings(telegram_chat_id);
|
|
1180
|
-
CREATE INDEX idx_telegram_bindings_enabled
|
|
1181
|
-
ON telegram_bindings(enabled, status);
|
|
1182
|
-
CREATE INDEX idx_telegram_bindings_automation_report
|
|
1183
|
-
ON telegram_bindings(automation_report_enabled, enabled, telegram_chat_id);
|
|
1184
|
-
CREATE UNIQUE INDEX idx_telegram_bindings_one_singleton
|
|
1185
|
-
ON telegram_bindings(target_kind) WHERE target_kind = 'one';
|
|
1186
|
-
CREATE TABLE automation_node_approvals (
|
|
1187
|
-
automation_id TEXT NOT NULL,
|
|
1188
|
-
occurrence_id TEXT NOT NULL,
|
|
1189
|
-
node_id TEXT NOT NULL,
|
|
1190
|
-
decision TEXT NOT NULL,
|
|
1191
|
-
decided_at TEXT NOT NULL,
|
|
1192
|
-
decided_by TEXT NOT NULL, scope TEXT NOT NULL DEFAULT 'once',
|
|
1193
|
-
PRIMARY KEY (automation_id, occurrence_id, node_id)
|
|
1194
|
-
);
|
|
1195
|
-
CREATE INDEX idx_automation_node_approvals_node ON automation_node_approvals(automation_id, node_id, decided_at);
|
|
1196
|
-
CREATE TABLE automation_eval_corrections (
|
|
1197
|
-
automation_id TEXT NOT NULL,
|
|
1198
|
-
node_id TEXT NOT NULL,
|
|
1199
|
-
subject_preview TEXT NOT NULL,
|
|
1200
|
-
corrected_verdict TEXT NOT NULL,
|
|
1201
|
-
note TEXT NOT NULL DEFAULT '',
|
|
1202
|
-
created_at TEXT NOT NULL,
|
|
1203
|
-
PRIMARY KEY (automation_id, node_id, created_at)
|
|
1204
|
-
);
|
|
1205
|
-
CREATE TABLE graph_run_journal (
|
|
1206
|
-
run_id TEXT NOT NULL,
|
|
1207
|
-
seq INTEGER NOT NULL,
|
|
1208
|
-
ts TEXT NOT NULL,
|
|
1209
|
-
kind TEXT NOT NULL,
|
|
1210
|
-
node_id TEXT,
|
|
1211
|
-
payload_json TEXT,
|
|
1212
|
-
PRIMARY KEY (run_id, seq)
|
|
1213
|
-
);
|
|
1214
|
-
CREATE INDEX idx_graph_run_journal_run ON graph_run_journal(run_id, seq);
|
|
1215
|
-
CREATE TABLE automation_graph_versions (
|
|
1216
|
-
id TEXT PRIMARY KEY,
|
|
1217
|
-
automation_id TEXT NOT NULL,
|
|
1218
|
-
saved_at TEXT NOT NULL,
|
|
1219
|
-
note TEXT,
|
|
1220
|
-
node_count INTEGER NOT NULL DEFAULT 0,
|
|
1221
|
-
graph_json TEXT NOT NULL
|
|
1222
|
-
);
|
|
1223
|
-
CREATE INDEX idx_automation_graph_versions ON automation_graph_versions(automation_id, saved_at DESC);
|
|
1224
|
-
CREATE TABLE automation_run_inputs (
|
|
1225
|
-
id TEXT PRIMARY KEY,
|
|
1226
|
-
automation_id TEXT NOT NULL,
|
|
1227
|
-
payload_json TEXT NOT NULL,
|
|
1228
|
-
requested_by TEXT NOT NULL,
|
|
1229
|
-
created_at TEXT NOT NULL,
|
|
1230
|
-
consumed_at TEXT,
|
|
1231
|
-
consumed_run_id TEXT
|
|
1232
|
-
);
|
|
1233
|
-
CREATE INDEX idx_automation_run_inputs_pending ON automation_run_inputs(automation_id, consumed_at, created_at);
|
|
1234
|
-
CREATE TABLE automation_approval_waits (
|
|
1235
|
-
automation_id TEXT NOT NULL,
|
|
1236
|
-
node_id TEXT NOT NULL,
|
|
1237
|
-
first_requested_at TEXT NOT NULL,
|
|
1238
|
-
PRIMARY KEY (automation_id, node_id)
|
|
1239
|
-
);
|
|
1240
|
-
CREATE TABLE automation_trigger_events (
|
|
1001
|
+
run_id TEXT NOT NULL,
|
|
1002
|
+
seq INTEGER NOT NULL,
|
|
1003
|
+
ts TEXT NOT NULL,
|
|
1004
|
+
kind TEXT NOT NULL,
|
|
1005
|
+
chat_id TEXT,
|
|
1006
|
+
automation_id TEXT,
|
|
1007
|
+
node_id TEXT,
|
|
1008
|
+
agent_id TEXT,
|
|
1009
|
+
payload_json TEXT NOT NULL DEFAULT '{}',
|
|
1010
|
+
UNIQUE(run_id, seq)
|
|
1011
|
+
);
|
|
1012
|
+
CREATE TABLE run_history (
|
|
1241
1013
|
id TEXT PRIMARY KEY,
|
|
1242
|
-
automation_id TEXT
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1014
|
+
automation_id TEXT,
|
|
1015
|
+
scheduled_for TEXT,
|
|
1016
|
+
ran_at TEXT,
|
|
1017
|
+
status TEXT,
|
|
1018
|
+
skipped_count INTEGER DEFAULT 0,
|
|
1019
|
+
error TEXT
|
|
1020
|
+
, outcome TEXT, outcome_reason TEXT, acknowledged_at TEXT);
|
|
1021
|
+
CREATE TABLE task_agent_participants (
|
|
1022
|
+
task_id TEXT NOT NULL,
|
|
1023
|
+
agent_id TEXT,
|
|
1024
|
+
agent_slug TEXT NOT NULL,
|
|
1025
|
+
role TEXT,
|
|
1026
|
+
first_seen_at TEXT NOT NULL,
|
|
1027
|
+
last_seen_at TEXT NOT NULL,
|
|
1028
|
+
PRIMARY KEY(task_id, agent_slug),
|
|
1029
|
+
FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE,
|
|
1030
|
+
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE SET NULL
|
|
1031
|
+
);
|
|
1032
|
+
CREATE TABLE tasks (
|
|
1033
|
+
id TEXT PRIMARY KEY,
|
|
1034
|
+
title TEXT NOT NULL DEFAULT '',
|
|
1035
|
+
project_id TEXT,
|
|
1036
|
+
firm_id TEXT,
|
|
1037
|
+
status TEXT NOT NULL DEFAULT 'open',
|
|
1038
|
+
created_at TEXT NOT NULL,
|
|
1039
|
+
updated_at TEXT NOT NULL,
|
|
1040
|
+
archived_at TEXT,
|
|
1041
|
+
origin_chat_id TEXT,
|
|
1042
|
+
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE SET NULL,
|
|
1043
|
+
FOREIGN KEY(firm_id) REFERENCES firms(id) ON DELETE SET NULL
|
|
1044
|
+
);
|
|
1045
|
+
CREATE TABLE taste_chip_workflows (
|
|
1046
|
+
workflow_id TEXT PRIMARY KEY,
|
|
1047
|
+
draft_id TEXT NOT NULL UNIQUE,
|
|
1048
|
+
agent_id TEXT NOT NULL,
|
|
1049
|
+
base_package_hash TEXT NOT NULL,
|
|
1050
|
+
base_agent_definition_id TEXT NOT NULL,
|
|
1051
|
+
base_agent_release_id TEXT NOT NULL,
|
|
1052
|
+
environment_key TEXT NOT NULL,
|
|
1053
|
+
taste_style_id TEXT NOT NULL,
|
|
1054
|
+
release_id TEXT NOT NULL UNIQUE,
|
|
1055
|
+
title TEXT NOT NULL,
|
|
1056
|
+
summary TEXT NOT NULL,
|
|
1057
|
+
rule_statement TEXT NOT NULL,
|
|
1058
|
+
axis TEXT NOT NULL,
|
|
1059
|
+
task_signature TEXT NOT NULL,
|
|
1060
|
+
contexts_json TEXT NOT NULL,
|
|
1061
|
+
generalization_hash TEXT NOT NULL,
|
|
1062
|
+
privacy_issue_codes_json TEXT NOT NULL DEFAULT '[]',
|
|
1063
|
+
status TEXT NOT NULL CHECK(status IN ('proposal','confirmed','moderation-pending','ab-ready','error')),
|
|
1064
|
+
confirmed_at TEXT,
|
|
1065
|
+
preview_grants_json TEXT,
|
|
1066
|
+
preview_names_json TEXT,
|
|
1067
|
+
preview_digests_json TEXT,
|
|
1068
|
+
preview_rights TEXT,
|
|
1069
|
+
remote_preview_asset_ids_json TEXT,
|
|
1070
|
+
remote_revision TEXT,
|
|
1071
|
+
remote_error_code TEXT,
|
|
1072
|
+
created_at TEXT NOT NULL,
|
|
1073
|
+
updated_at TEXT NOT NULL, preview_provenance_json TEXT,
|
|
1074
|
+
FOREIGN KEY(draft_id) REFERENCES taste_draft_candidates(id) ON DELETE CASCADE,
|
|
1075
|
+
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE
|
|
1076
|
+
);
|
|
1077
|
+
CREATE TABLE taste_draft_candidates (
|
|
1078
|
+
id TEXT PRIMARY KEY,
|
|
1079
|
+
agent_id TEXT NOT NULL,
|
|
1080
|
+
source_memory_id TEXT NOT NULL,
|
|
1081
|
+
source_memory_hash TEXT NOT NULL,
|
|
1082
|
+
project_scope_key TEXT NOT NULL,
|
|
1083
|
+
environment_key TEXT NOT NULL,
|
|
1084
|
+
base_package_hash TEXT NOT NULL
|
|
1085
|
+
CHECK(length(base_package_hash) = 64 AND base_package_hash NOT GLOB '*[^0-9a-f]*'),
|
|
1086
|
+
base_agent_definition_id TEXT,
|
|
1087
|
+
base_agent_release_id TEXT,
|
|
1088
|
+
sensitivity TEXT NOT NULL
|
|
1089
|
+
CHECK(sensitivity IN ('public','internal','private')),
|
|
1090
|
+
confidence TEXT NOT NULL
|
|
1091
|
+
CHECK(confidence IN ('high','medium','low')),
|
|
1092
|
+
axis_candidates_json TEXT NOT NULL DEFAULT '[]',
|
|
1093
|
+
task_signatures_json TEXT NOT NULL DEFAULT '[]',
|
|
1094
|
+
evidence_state TEXT NOT NULL DEFAULT 'pairwise-required'
|
|
1095
|
+
CHECK(evidence_state = 'pairwise-required'),
|
|
1096
|
+
status TEXT NOT NULL DEFAULT 'observation'
|
|
1097
|
+
CHECK(status IN ('observation','rejected')),
|
|
1098
|
+
created_at TEXT NOT NULL,
|
|
1099
|
+
updated_at TEXT NOT NULL,
|
|
1100
|
+
FOREIGN KEY(agent_id) REFERENCES installed_agents(id) ON DELETE CASCADE,
|
|
1101
|
+
UNIQUE(agent_id, source_memory_hash, base_package_hash)
|
|
1102
|
+
);
|
|
1103
|
+
CREATE TABLE "telegram_bindings" (
|
|
1104
|
+
id TEXT PRIMARY KEY,
|
|
1105
|
+
target_kind TEXT NOT NULL CHECK(target_kind IN ('agent','firm','one')),
|
|
1106
|
+
target_id TEXT NOT NULL,
|
|
1107
|
+
telegram_chat_id TEXT,
|
|
1108
|
+
telegram_chat_title TEXT,
|
|
1109
|
+
bot_user_id INTEGER,
|
|
1110
|
+
bot_username TEXT,
|
|
1111
|
+
bot_display_name TEXT,
|
|
1112
|
+
chat_session_id TEXT REFERENCES chats(id) ON DELETE SET NULL,
|
|
1113
|
+
status TEXT NOT NULL,
|
|
1114
|
+
enabled INTEGER NOT NULL DEFAULT 0,
|
|
1115
|
+
last_update_id INTEGER NOT NULL DEFAULT 0,
|
|
1255
1116
|
last_error TEXT,
|
|
1117
|
+
last_test_at TEXT,
|
|
1256
1118
|
created_at TEXT NOT NULL,
|
|
1257
1119
|
updated_at TEXT NOT NULL,
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
),
|
|
1265
|
-
CHECK((status = 'delivered' AND delivered_at IS NOT NULL) OR status <> 'delivered')
|
|
1120
|
+
automation_report_enabled INTEGER NOT NULL DEFAULT 0,
|
|
1121
|
+
token_saved INTEGER NOT NULL DEFAULT 0,
|
|
1122
|
+
token_fingerprint TEXT,
|
|
1123
|
+
designated_project_id TEXT REFERENCES projects(id) ON DELETE SET NULL,
|
|
1124
|
+
designated_graph_id TEXT,
|
|
1125
|
+
legacy_notice_at TEXT
|
|
1266
1126
|
);
|
|
1267
|
-
CREATE INDEX
|
|
1268
|
-
|
|
1127
|
+
CREATE INDEX idx_agent_app_ops_app_created
|
|
1128
|
+
ON agent_app_operations(app_id, created_at DESC);
|
|
1129
|
+
CREATE INDEX idx_agent_apps_chat_updated
|
|
1130
|
+
ON agent_apps(chat_id, updated_at DESC);
|
|
1131
|
+
CREATE UNIQUE INDEX idx_agent_apps_root
|
|
1132
|
+
ON agent_apps(root_path);
|
|
1133
|
+
CREATE INDEX idx_agent_apps_surface
|
|
1134
|
+
ON agent_apps(chat_id, surface_id, updated_at DESC);
|
|
1135
|
+
CREATE INDEX idx_agent_architecture_migrations_step
|
|
1136
|
+
ON agent_architecture_migrations(step_id, outcome);
|
|
1137
|
+
CREATE INDEX idx_agent_evolution_agent_status
|
|
1138
|
+
ON agent_evolution_proposals(agent_id, status, updated_at DESC);
|
|
1139
|
+
CREATE INDEX idx_agent_evolution_created
|
|
1140
|
+
ON agent_evolution_proposals(created_at DESC);
|
|
1141
|
+
CREATE INDEX idx_agent_evolution_receipts_agent
|
|
1142
|
+
ON agent_evolution_receipts(agent_id, created_at DESC);
|
|
1143
|
+
CREATE INDEX idx_agent_evolution_receipts_proposal
|
|
1144
|
+
ON agent_evolution_receipts(proposal_id, created_at ASC);
|
|
1145
|
+
CREATE INDEX idx_agent_mcp_agent ON agent_mcp_servers(agent_id);
|
|
1146
|
+
CREATE INDEX idx_agent_runtime_overrides_updated
|
|
1147
|
+
ON agent_runtime_overrides(updated_at DESC);
|
|
1148
|
+
CREATE INDEX idx_agent_surface_approvals_scope_active
|
|
1149
|
+
ON agent_surface_approvals(surface_id, scope_key, revoked_at, created_at DESC);
|
|
1150
|
+
CREATE INDEX idx_agent_surface_approvals_surface_created
|
|
1151
|
+
ON agent_surface_approvals(surface_id, created_at DESC);
|
|
1152
|
+
CREATE INDEX idx_agent_surface_asset_pack_ops_pack_created
|
|
1153
|
+
ON agent_surface_asset_pack_operations(pack_id, created_at DESC);
|
|
1154
|
+
CREATE INDEX idx_agent_surface_asset_packs_chat_updated
|
|
1155
|
+
ON agent_surface_asset_packs(chat_id, updated_at DESC);
|
|
1156
|
+
CREATE UNIQUE INDEX idx_agent_surface_asset_packs_root
|
|
1157
|
+
ON agent_surface_asset_packs(root_path);
|
|
1158
|
+
CREATE INDEX idx_agent_surface_asset_packs_surface_updated
|
|
1159
|
+
ON agent_surface_asset_packs(chat_id, surface_id, updated_at DESC);
|
|
1160
|
+
CREATE INDEX idx_agent_surface_events_chat_created
|
|
1161
|
+
ON agent_surface_events(chat_id, created_at DESC);
|
|
1162
|
+
CREATE INDEX idx_agent_surface_events_surface_created
|
|
1163
|
+
ON agent_surface_events(surface_id, created_at DESC);
|
|
1164
|
+
CREATE INDEX idx_agent_surface_jobs_chat_updated
|
|
1165
|
+
ON agent_surface_jobs(chat_id, updated_at DESC);
|
|
1166
|
+
CREATE INDEX idx_agent_surface_jobs_status_updated
|
|
1167
|
+
ON agent_surface_jobs(status, updated_at DESC);
|
|
1168
|
+
CREATE INDEX idx_agent_surface_jobs_surface_updated
|
|
1169
|
+
ON agent_surface_jobs(surface_id, updated_at DESC);
|
|
1170
|
+
CREATE INDEX idx_agent_surfaces_chat_updated
|
|
1171
|
+
ON agent_surfaces(chat_id, updated_at DESC);
|
|
1172
|
+
CREATE INDEX idx_agent_surfaces_domain_updated
|
|
1173
|
+
ON agent_surfaces(domain, updated_at DESC);
|
|
1174
|
+
CREATE INDEX idx_agent_surfaces_project_updated
|
|
1175
|
+
ON agent_surfaces(project_id, updated_at DESC);
|
|
1176
|
+
CREATE INDEX idx_agent_tool_ops_tool_created
|
|
1177
|
+
ON agent_tool_operations(tool_id, created_at DESC);
|
|
1178
|
+
CREATE INDEX idx_agent_tools_chat_updated
|
|
1179
|
+
ON agent_tools(chat_id, updated_at DESC);
|
|
1180
|
+
CREATE UNIQUE INDEX idx_agent_tools_root
|
|
1181
|
+
ON agent_tools(root_path);
|
|
1182
|
+
CREATE INDEX idx_agent_tools_surface
|
|
1183
|
+
ON agent_tools(chat_id, surface_id, requested_tool_id, updated_at DESC);
|
|
1184
|
+
CREATE INDEX idx_automation_graph_versions ON automation_graph_versions(automation_id, saved_at DESC);
|
|
1185
|
+
CREATE INDEX idx_automation_node_approvals_node ON automation_node_approvals(automation_id, node_id, decided_at);
|
|
1186
|
+
CREATE INDEX idx_automation_run_inputs_pending ON automation_run_inputs(automation_id, consumed_at, created_at);
|
|
1187
|
+
CREATE INDEX idx_automation_runs_auto
|
|
1188
|
+
ON automation_runs(automation_id, started_at);
|
|
1189
|
+
CREATE INDEX idx_automation_runs_occurrence
|
|
1190
|
+
ON automation_runs(automation_id, occurrence_id, started_at);
|
|
1191
|
+
CREATE INDEX idx_automation_sessions_owner
|
|
1192
|
+
ON automation_sessions(automation_id, updated_at DESC);
|
|
1269
1193
|
CREATE INDEX idx_automation_trigger_events_automation
|
|
1270
1194
|
ON automation_trigger_events(automation_id, status, created_at);
|
|
1195
|
+
CREATE INDEX idx_automation_trigger_events_due
|
|
1196
|
+
ON automation_trigger_events(status, next_attempt_at, created_at);
|
|
1271
1197
|
CREATE INDEX idx_automation_trigger_events_run
|
|
1272
1198
|
ON automation_trigger_events(run_id) WHERE run_id IS NOT NULL;
|
|
1273
|
-
CREATE INDEX
|
|
1274
|
-
|
|
1199
|
+
CREATE INDEX idx_automations_due ON automations(enabled, next_run_at);
|
|
1200
|
+
CREATE UNIQUE INDEX idx_borrowed_agent_careers_owner_memory
|
|
1201
|
+
ON borrowed_agent_careers(owner_scope_key, memory_key);
|
|
1202
|
+
CREATE INDEX idx_borrowed_agent_careers_owner_recent
|
|
1203
|
+
ON borrowed_agent_careers(owner_scope_key, last_used_at DESC);
|
|
1204
|
+
CREATE INDEX idx_browser_logs_ts ON browser_action_logs(ts DESC);
|
|
1205
|
+
CREATE UNIQUE INDEX idx_browser_perm_site_action
|
|
1206
|
+
ON browser_permissions(site, action_type);
|
|
1207
|
+
CREATE UNIQUE INDEX idx_browser_sessions_site ON browser_sessions(site);
|
|
1208
|
+
CREATE UNIQUE INDEX idx_chat_goal_contracts_active_chat
|
|
1209
|
+
ON chat_goal_contracts(chat_id)
|
|
1210
|
+
WHERE status = 'active';
|
|
1211
|
+
CREATE INDEX idx_chat_message_attachments_message
|
|
1212
|
+
ON chat_message_attachments(message_id, created_at, id);
|
|
1213
|
+
CREATE INDEX idx_chat_messages_chat_created
|
|
1214
|
+
ON chat_messages(chat_id, created_at);
|
|
1215
|
+
CREATE INDEX idx_chats_archived_updated ON chats(archived_at, updated_at DESC);
|
|
1216
|
+
CREATE INDEX idx_chats_firm_updated ON chats(firm_id, updated_at DESC);
|
|
1217
|
+
CREATE INDEX idx_chats_parent ON chats(parent_chat_id);
|
|
1218
|
+
CREATE INDEX idx_chats_project_updated
|
|
1219
|
+
ON chats(project_id, updated_at DESC);
|
|
1220
|
+
CREATE INDEX idx_chats_updated ON chats(updated_at DESC);
|
|
1221
|
+
CREATE INDEX idx_chats_used_updated ON chats(used_at, updated_at DESC);
|
|
1222
|
+
CREATE INDEX idx_experience_auto_intake_agent_status
|
|
1223
|
+
ON experience_auto_intake_receipts(agent_id, status, created_at DESC);
|
|
1224
|
+
CREATE INDEX idx_experience_auto_intake_run
|
|
1225
|
+
ON experience_auto_intake_receipts(agent_id, run_id)
|
|
1226
|
+
WHERE run_id IS NOT NULL;
|
|
1227
|
+
CREATE UNIQUE INDEX idx_experience_auto_pack_exact
|
|
1228
|
+
ON experience_packs(agent_id, project_scope_key, environment_key, base_package_hash)
|
|
1229
|
+
WHERE auto_managed = 1 AND status = 'active';
|
|
1230
|
+
CREATE INDEX idx_experience_candidates_pack
|
|
1231
|
+
ON experience_candidates(pack_id, created_at DESC);
|
|
1232
|
+
CREATE INDEX idx_experience_candidates_retrieval
|
|
1233
|
+
ON experience_candidates(agent_id, project_scope_key, environment_key, status, outcome_status, updated_at DESC);
|
|
1234
|
+
CREATE INDEX idx_experience_cloud_uploads_pack
|
|
1235
|
+
ON experience_cloud_uploads(pack_id, updated_at DESC);
|
|
1236
|
+
CREATE INDEX idx_experience_cloud_uploads_recovery
|
|
1237
|
+
ON experience_cloud_uploads(remote_status, updated_at ASC);
|
|
1238
|
+
CREATE UNIQUE INDEX idx_experience_cloud_uploads_remote
|
|
1239
|
+
ON experience_cloud_uploads(remote_upload_id)
|
|
1240
|
+
WHERE remote_upload_id IS NOT NULL;
|
|
1241
|
+
CREATE INDEX idx_experience_export_intents_pack
|
|
1242
|
+
ON experience_export_intents(pack_id, created_at DESC);
|
|
1243
|
+
CREATE INDEX idx_experience_governance_pack
|
|
1244
|
+
ON experience_governance_relations(pack_id, relation_type, created_at ASC);
|
|
1245
|
+
CREATE INDEX idx_experience_lineage_pack_created
|
|
1246
|
+
ON experience_lineage_events(pack_id, created_at ASC, id ASC);
|
|
1247
|
+
CREATE INDEX idx_experience_packs_agent_scope
|
|
1248
|
+
ON experience_packs(agent_id, project_scope_key, environment_key, updated_at DESC);
|
|
1275
1249
|
CREATE INDEX idx_experience_packs_core_axis
|
|
1276
1250
|
ON experience_packs(agent_id, project_scope_key, environment_key, base_core_hash);
|
|
1277
|
-
CREATE
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1251
|
+
CREATE INDEX idx_experience_public_projection_agent_status
|
|
1252
|
+
ON experience_public_projections(agent_id, status, updated_at DESC);
|
|
1253
|
+
CREATE INDEX idx_experience_public_projection_exact_base
|
|
1254
|
+
ON experience_public_projections(
|
|
1255
|
+
base_agent_definition_id, base_agent_release_id, base_package_hash, environment_key
|
|
1256
|
+
);
|
|
1257
|
+
CREATE INDEX idx_experience_receipts_pack
|
|
1258
|
+
ON experience_promotion_receipts(pack_id, created_at DESC);
|
|
1259
|
+
CREATE INDEX idx_experience_relation_edges_from
|
|
1260
|
+
ON experience_relation_edges(pack_id, from_node, edge_type);
|
|
1261
|
+
CREATE INDEX idx_experience_relation_edges_scope
|
|
1262
|
+
ON experience_relation_edges(project_scope_key, environment_key, base_package_hash, edge_type);
|
|
1263
|
+
CREATE INDEX idx_experience_relation_edges_to
|
|
1264
|
+
ON experience_relation_edges(pack_id, to_node, edge_type);
|
|
1265
|
+
CREATE INDEX idx_experience_relation_nodes_pack_type
|
|
1266
|
+
ON experience_relation_nodes(pack_id, node_type, normalized_value);
|
|
1267
|
+
CREATE INDEX idx_experience_relation_nodes_scope
|
|
1268
|
+
ON experience_relation_nodes(project_scope_key, environment_key, base_package_hash, node_type);
|
|
1269
|
+
CREATE INDEX idx_failure_events_agent_ts ON failure_events(agent_id, ts DESC);
|
|
1270
|
+
CREATE INDEX idx_failure_events_automation
|
|
1271
|
+
ON failure_events(automation_id, ts DESC);
|
|
1272
|
+
CREATE INDEX idx_failure_events_run
|
|
1273
|
+
ON failure_events(run_id, ts DESC);
|
|
1274
|
+
CREATE INDEX idx_failure_events_ts
|
|
1275
|
+
ON failure_events(ts DESC);
|
|
1276
|
+
CREATE INDEX idx_firms_installed ON firms(installed_at DESC);
|
|
1277
|
+
CREATE INDEX idx_graph_run_journal_run ON graph_run_journal(run_id, seq);
|
|
1278
|
+
CREATE INDEX idx_hub_agent_bookmarks_outbox
|
|
1279
|
+
ON hub_agent_bookmarks(workspace_id, sync_state, bookmarked_at ASC);
|
|
1280
|
+
CREATE INDEX idx_hub_agent_bookmarks_workspace_time
|
|
1281
|
+
ON hub_agent_bookmarks(workspace_id, bookmarked_at DESC);
|
|
1282
|
+
CREATE INDEX idx_installed_agent_hub_binding_exact
|
|
1283
|
+
ON installed_agent_hub_bindings(agent_definition_id, agent_release_id);
|
|
1284
|
+
CREATE INDEX idx_installed_agents_parent_team ON installed_agents(parent_team_id) WHERE parent_team_id IS NOT NULL;
|
|
1285
|
+
CREATE INDEX idx_installed_agents_visibility ON installed_agents(visibility, installed_at DESC);
|
|
1288
1286
|
CREATE INDEX idx_judgment_verdicts_recency ON judgment_verdicts(last_hit_at);
|
|
1289
|
-
CREATE
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
CREATE INDEX
|
|
1316
|
-
|
|
1287
|
+
CREATE INDEX idx_memory_agent ON memory_entries(agent_id, superseded_at);
|
|
1288
|
+
CREATE INDEX idx_memory_chat ON memory_entries(chat_id);
|
|
1289
|
+
CREATE INDEX idx_memory_decisions_ticket_action
|
|
1290
|
+
ON memory_decisions(ticket_id, action, candidate_index);
|
|
1291
|
+
CREATE INDEX idx_memory_episodes_agent_created
|
|
1292
|
+
ON memory_episodes(agent_id, created_at DESC);
|
|
1293
|
+
CREATE INDEX idx_memory_episodes_project_created
|
|
1294
|
+
ON memory_episodes(project_id, created_at DESC);
|
|
1295
|
+
CREATE INDEX idx_memory_episodes_project_path_created
|
|
1296
|
+
ON memory_episodes(project_path_hash, created_at DESC);
|
|
1297
|
+
CREATE INDEX idx_memory_path ON memory_entries(project_path, superseded_at);
|
|
1298
|
+
CREATE INDEX idx_memory_relation_from
|
|
1299
|
+
ON memory_relation_edges(from_memory_id, relation_type, score DESC);
|
|
1300
|
+
CREATE INDEX idx_memory_relation_owner
|
|
1301
|
+
ON memory_relation_edges(owner_scope_key, relation_type, score DESC);
|
|
1302
|
+
CREATE INDEX idx_memory_relation_to
|
|
1303
|
+
ON memory_relation_edges(to_memory_id, relation_type, score DESC);
|
|
1304
|
+
CREATE INDEX idx_memory_scope ON memory_entries(scope, superseded_at);
|
|
1305
|
+
CREATE INDEX idx_memory_tickets_agent_created
|
|
1306
|
+
ON memory_tickets(agent_id, created_at DESC);
|
|
1307
|
+
CREATE INDEX idx_memory_tickets_project_created
|
|
1308
|
+
ON memory_tickets(project_id, created_at DESC);
|
|
1309
|
+
CREATE INDEX idx_memory_tickets_status_created
|
|
1310
|
+
ON memory_tickets(emitter_status, state, created_at DESC);
|
|
1311
|
+
CREATE INDEX idx_run_events_agent_kind_ts
|
|
1312
|
+
ON run_events(agent_id, kind, ts DESC);
|
|
1313
|
+
CREATE INDEX idx_run_events_agent_ts ON run_events(agent_id, ts DESC);
|
|
1314
|
+
CREATE INDEX idx_run_events_automation
|
|
1315
|
+
ON run_events(automation_id, ts DESC);
|
|
1316
|
+
CREATE INDEX idx_run_events_chat_kind_ts
|
|
1317
|
+
ON run_events(chat_id, kind, ts DESC);
|
|
1318
|
+
CREATE INDEX idx_run_events_run_seq
|
|
1319
|
+
ON run_events(run_id, seq);
|
|
1320
|
+
CREATE INDEX idx_run_events_ts
|
|
1321
|
+
ON run_events(ts DESC);
|
|
1322
|
+
CREATE INDEX idx_run_history_automation ON run_history(automation_id);
|
|
1323
|
+
CREATE INDEX idx_task_participants_agent ON task_agent_participants(agent_id);
|
|
1324
|
+
CREATE INDEX idx_tasks_firm_updated ON tasks(firm_id, updated_at DESC);
|
|
1325
|
+
CREATE INDEX idx_tasks_origin_chat ON tasks(origin_chat_id);
|
|
1326
|
+
CREATE INDEX idx_tasks_project_updated ON tasks(project_id, updated_at DESC);
|
|
1327
|
+
CREATE INDEX idx_tasks_updated ON tasks(updated_at DESC);
|
|
1328
|
+
CREATE INDEX idx_taste_chip_workflows_agent_status
|
|
1329
|
+
ON taste_chip_workflows(agent_id, status, updated_at DESC);
|
|
1330
|
+
CREATE INDEX idx_taste_drafts_agent_status
|
|
1331
|
+
ON taste_draft_candidates(agent_id, status, updated_at DESC);
|
|
1332
|
+
CREATE INDEX idx_taste_drafts_exact_base
|
|
1333
|
+
ON taste_draft_candidates(agent_id, base_package_hash, project_scope_key, environment_key);
|
|
1334
|
+
CREATE INDEX idx_telegram_bindings_automation_report
|
|
1335
|
+
ON telegram_bindings(automation_report_enabled, enabled, telegram_chat_id);
|
|
1336
|
+
CREATE INDEX idx_telegram_bindings_chat
|
|
1337
|
+
ON telegram_bindings(telegram_chat_id);
|
|
1338
|
+
CREATE INDEX idx_telegram_bindings_enabled
|
|
1339
|
+
ON telegram_bindings(enabled, status);
|
|
1340
|
+
CREATE UNIQUE INDEX idx_telegram_bindings_one_singleton
|
|
1341
|
+
ON telegram_bindings(target_kind) WHERE target_kind = 'one';
|
|
1342
|
+
CREATE INDEX idx_telegram_bindings_target
|
|
1343
|
+
ON telegram_bindings(target_kind, target_id);
|