@standardagents/builder 0.35.0 → 0.35.1
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/dist/built-in-routes.js +486 -1
- package/dist/built-in-routes.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime.js +4 -1
- package/dist/runtime.js.map +1 -1
- package/package.json +5 -5
package/dist/built-in-routes.js
CHANGED
|
@@ -66658,7 +66658,7 @@ var config_get_default = defineController2(async ({ config, env: env2, req }) =>
|
|
|
66658
66658
|
});
|
|
66659
66659
|
|
|
66660
66660
|
// src/version.ts
|
|
66661
|
-
var BUILDER_VERSION = "0.35.
|
|
66661
|
+
var BUILDER_VERSION = "0.35.1".length > 0 ? "0.35.1" : "dev";
|
|
66662
66662
|
|
|
66663
66663
|
// src/api/diagnostics.get.ts
|
|
66664
66664
|
init_LLMRequest();
|
|
@@ -67335,6 +67335,491 @@ var index_post_default4 = defineController2(async ({ req, env: env2 }) => {
|
|
|
67335
67335
|
);
|
|
67336
67336
|
}
|
|
67337
67337
|
});
|
|
67338
|
+
|
|
67339
|
+
// src/durable-objects/agentbuilder-migrations/0001_initial.ts
|
|
67340
|
+
var migration = {
|
|
67341
|
+
version: 1,
|
|
67342
|
+
async up(sql) {
|
|
67343
|
+
sql.exec(`
|
|
67344
|
+
CREATE TABLE IF NOT EXISTS _metadata (
|
|
67345
|
+
key TEXT PRIMARY KEY NOT NULL,
|
|
67346
|
+
value TEXT NOT NULL
|
|
67347
|
+
)
|
|
67348
|
+
`);
|
|
67349
|
+
sql.exec(`
|
|
67350
|
+
CREATE TABLE threads (
|
|
67351
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67352
|
+
agent_name TEXT NOT NULL,
|
|
67353
|
+
user_id TEXT,
|
|
67354
|
+
tags TEXT,
|
|
67355
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now'))
|
|
67356
|
+
)
|
|
67357
|
+
`);
|
|
67358
|
+
sql.exec(`CREATE INDEX idx_threads_agent_name ON threads(agent_name)`);
|
|
67359
|
+
sql.exec(`CREATE INDEX idx_threads_user_id ON threads(user_id)`);
|
|
67360
|
+
sql.exec(`CREATE INDEX idx_threads_created_at ON threads(created_at)`);
|
|
67361
|
+
sql.exec(`
|
|
67362
|
+
CREATE TABLE users (
|
|
67363
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67364
|
+
username TEXT UNIQUE NOT NULL,
|
|
67365
|
+
password_hash TEXT NOT NULL,
|
|
67366
|
+
role TEXT NOT NULL DEFAULT 'admin' CHECK (role IN ('admin')),
|
|
67367
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67368
|
+
updated_at INTEGER DEFAULT (strftime('%s', 'now'))
|
|
67369
|
+
)
|
|
67370
|
+
`);
|
|
67371
|
+
sql.exec(`CREATE INDEX idx_users_username ON users(username)`);
|
|
67372
|
+
sql.exec(`CREATE INDEX idx_users_role ON users(role)`);
|
|
67373
|
+
sql.exec(`
|
|
67374
|
+
CREATE TABLE oauth_accounts (
|
|
67375
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67376
|
+
user_id TEXT NOT NULL,
|
|
67377
|
+
provider TEXT NOT NULL CHECK (provider IN ('github', 'google')),
|
|
67378
|
+
provider_user_id TEXT NOT NULL,
|
|
67379
|
+
provider_username TEXT,
|
|
67380
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67381
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
67382
|
+
)
|
|
67383
|
+
`);
|
|
67384
|
+
sql.exec(`CREATE UNIQUE INDEX idx_oauth_accounts_provider ON oauth_accounts(provider, provider_user_id)`);
|
|
67385
|
+
sql.exec(`CREATE INDEX idx_oauth_accounts_user_id ON oauth_accounts(user_id)`);
|
|
67386
|
+
sql.exec(`
|
|
67387
|
+
CREATE TABLE api_keys (
|
|
67388
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67389
|
+
name TEXT NOT NULL,
|
|
67390
|
+
key_hash TEXT NOT NULL,
|
|
67391
|
+
key_prefix TEXT NOT NULL,
|
|
67392
|
+
last_five TEXT NOT NULL,
|
|
67393
|
+
user_id TEXT NOT NULL,
|
|
67394
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67395
|
+
last_used_at INTEGER,
|
|
67396
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
67397
|
+
)
|
|
67398
|
+
`);
|
|
67399
|
+
sql.exec(`CREATE INDEX idx_api_keys_key_hash ON api_keys(key_hash)`);
|
|
67400
|
+
sql.exec(`CREATE INDEX idx_api_keys_user_id ON api_keys(user_id)`);
|
|
67401
|
+
sql.exec(`CREATE INDEX idx_api_keys_key_prefix ON api_keys(key_prefix)`);
|
|
67402
|
+
sql.exec(`
|
|
67403
|
+
CREATE TABLE sessions (
|
|
67404
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67405
|
+
user_id TEXT NOT NULL,
|
|
67406
|
+
token_hash TEXT NOT NULL,
|
|
67407
|
+
expires_at INTEGER NOT NULL,
|
|
67408
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67409
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
67410
|
+
)
|
|
67411
|
+
`);
|
|
67412
|
+
sql.exec(`CREATE INDEX idx_sessions_token_hash ON sessions(token_hash)`);
|
|
67413
|
+
sql.exec(`CREATE INDEX idx_sessions_user_id ON sessions(user_id)`);
|
|
67414
|
+
sql.exec(`CREATE INDEX idx_sessions_expires_at ON sessions(expires_at)`);
|
|
67415
|
+
sql.exec(`
|
|
67416
|
+
CREATE TABLE providers (
|
|
67417
|
+
name TEXT PRIMARY KEY NOT NULL,
|
|
67418
|
+
sdk TEXT NOT NULL,
|
|
67419
|
+
api_key TEXT NOT NULL
|
|
67420
|
+
)
|
|
67421
|
+
`);
|
|
67422
|
+
sql.exec(`
|
|
67423
|
+
CREATE TABLE edit_lock (
|
|
67424
|
+
id TEXT PRIMARY KEY DEFAULT 'singleton' CHECK (id = 'singleton'),
|
|
67425
|
+
locked_by TEXT,
|
|
67426
|
+
locked_at INTEGER,
|
|
67427
|
+
lock_reason TEXT,
|
|
67428
|
+
pending_changes TEXT
|
|
67429
|
+
)
|
|
67430
|
+
`);
|
|
67431
|
+
sql.exec(`INSERT INTO edit_lock (id) VALUES ('singleton')`);
|
|
67432
|
+
sql.exec(`
|
|
67433
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '1')
|
|
67434
|
+
`);
|
|
67435
|
+
}
|
|
67436
|
+
};
|
|
67437
|
+
|
|
67438
|
+
// src/durable-objects/agentbuilder-migrations/0002_add_tenvs_properties.ts
|
|
67439
|
+
var migration2 = {
|
|
67440
|
+
version: 2,
|
|
67441
|
+
async up(sql) {
|
|
67442
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN tenvs TEXT`);
|
|
67443
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN properties TEXT`);
|
|
67444
|
+
sql.exec(`
|
|
67445
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '2')
|
|
67446
|
+
`);
|
|
67447
|
+
}
|
|
67448
|
+
};
|
|
67449
|
+
|
|
67450
|
+
// src/durable-objects/agentbuilder-migrations/0003_add_parent_and_terminated.ts
|
|
67451
|
+
var migration3 = {
|
|
67452
|
+
version: 3,
|
|
67453
|
+
async up(sql) {
|
|
67454
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN parent TEXT REFERENCES threads(id)`);
|
|
67455
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN terminated INTEGER`);
|
|
67456
|
+
sql.exec(`CREATE INDEX IF NOT EXISTS idx_threads_parent ON threads(parent)`);
|
|
67457
|
+
sql.exec(`
|
|
67458
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '3')
|
|
67459
|
+
`);
|
|
67460
|
+
}
|
|
67461
|
+
};
|
|
67462
|
+
|
|
67463
|
+
// src/durable-objects/agentbuilder-migrations/0004_add_env_tables.ts
|
|
67464
|
+
var migration4 = {
|
|
67465
|
+
version: 4,
|
|
67466
|
+
async up(sql) {
|
|
67467
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN env TEXT`);
|
|
67468
|
+
sql.exec(`UPDATE threads SET env = tenvs WHERE env IS NULL AND tenvs IS NOT NULL`);
|
|
67469
|
+
sql.exec(`
|
|
67470
|
+
CREATE TABLE IF NOT EXISTS envs (
|
|
67471
|
+
scope TEXT NOT NULL CHECK (scope IN ('instance', 'user')),
|
|
67472
|
+
user_id TEXT NOT NULL DEFAULT '',
|
|
67473
|
+
name TEXT NOT NULL,
|
|
67474
|
+
value TEXT NOT NULL,
|
|
67475
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67476
|
+
updated_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67477
|
+
PRIMARY KEY (scope, user_id, name)
|
|
67478
|
+
)
|
|
67479
|
+
`);
|
|
67480
|
+
sql.exec(`CREATE INDEX IF NOT EXISTS idx_envs_scope_user ON envs(scope, user_id)`);
|
|
67481
|
+
sql.exec(`
|
|
67482
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '4')
|
|
67483
|
+
`);
|
|
67484
|
+
}
|
|
67485
|
+
};
|
|
67486
|
+
|
|
67487
|
+
// src/durable-objects/agentbuilder-migrations/0005_add_pending_subagent_env_requests.ts
|
|
67488
|
+
var migration5 = {
|
|
67489
|
+
version: 5,
|
|
67490
|
+
async up(sql) {
|
|
67491
|
+
sql.exec(`
|
|
67492
|
+
CREATE TABLE IF NOT EXISTS pending_subagent_env_requests (
|
|
67493
|
+
id TEXT PRIMARY KEY,
|
|
67494
|
+
parent_thread_id TEXT NOT NULL,
|
|
67495
|
+
agent_name TEXT NOT NULL,
|
|
67496
|
+
registry_agent_name TEXT NOT NULL,
|
|
67497
|
+
required_variables TEXT NOT NULL,
|
|
67498
|
+
missing_variables TEXT NOT NULL,
|
|
67499
|
+
payload TEXT NOT NULL,
|
|
67500
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67501
|
+
completed_at INTEGER
|
|
67502
|
+
)
|
|
67503
|
+
`);
|
|
67504
|
+
sql.exec(
|
|
67505
|
+
`CREATE INDEX IF NOT EXISTS idx_pending_subagent_env_parent ON pending_subagent_env_requests(parent_thread_id)`
|
|
67506
|
+
);
|
|
67507
|
+
sql.exec(`
|
|
67508
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '5')
|
|
67509
|
+
`);
|
|
67510
|
+
}
|
|
67511
|
+
};
|
|
67512
|
+
|
|
67513
|
+
// src/durable-objects/agentbuilder-migrations/0006_add_env_value_types.ts
|
|
67514
|
+
var migration6 = {
|
|
67515
|
+
version: 6,
|
|
67516
|
+
async up(sql) {
|
|
67517
|
+
sql.exec(
|
|
67518
|
+
`ALTER TABLE envs
|
|
67519
|
+
ADD COLUMN value_type TEXT NOT NULL DEFAULT 'secret'
|
|
67520
|
+
CHECK (value_type IN ('text', 'secret'))`
|
|
67521
|
+
);
|
|
67522
|
+
sql.exec(`
|
|
67523
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '6')
|
|
67524
|
+
`);
|
|
67525
|
+
}
|
|
67526
|
+
};
|
|
67527
|
+
|
|
67528
|
+
// src/durable-objects/agentbuilder-migrations/0007_platform_identity_replica.ts
|
|
67529
|
+
var migration7 = {
|
|
67530
|
+
version: 7,
|
|
67531
|
+
async up(sql) {
|
|
67532
|
+
sql.exec(`ALTER TABLE users ADD COLUMN platform_user_id TEXT`);
|
|
67533
|
+
sql.exec(`ALTER TABLE users ADD COLUMN email TEXT`);
|
|
67534
|
+
sql.exec(`ALTER TABLE users ADD COLUMN display_name TEXT`);
|
|
67535
|
+
sql.exec(`ALTER TABLE users ADD COLUMN avatar_url TEXT`);
|
|
67536
|
+
sql.exec(`ALTER TABLE users ADD COLUMN instance_role TEXT NOT NULL DEFAULT 'admin' CHECK (instance_role IN ('admin', 'user'))`);
|
|
67537
|
+
sql.exec(`ALTER TABLE users ADD COLUMN source TEXT NOT NULL DEFAULT 'local' CHECK (source IN ('local', 'standard_agents'))`);
|
|
67538
|
+
sql.exec(`ALTER TABLE users ADD COLUMN replica_active INTEGER NOT NULL DEFAULT 1`);
|
|
67539
|
+
sql.exec(`ALTER TABLE users ADD COLUMN replica_updated_at INTEGER`);
|
|
67540
|
+
sql.exec(`ALTER TABLE users ADD COLUMN deleted_at INTEGER`);
|
|
67541
|
+
sql.exec(`CREATE INDEX IF NOT EXISTS idx_users_platform_user_id ON users(platform_user_id)`);
|
|
67542
|
+
sql.exec(`CREATE INDEX IF NOT EXISTS idx_users_replica_active ON users(replica_active)`);
|
|
67543
|
+
sql.exec(`CREATE INDEX IF NOT EXISTS idx_users_instance_role ON users(instance_role)`);
|
|
67544
|
+
sql.exec(`ALTER TABLE api_keys ADD COLUMN platform_key_id TEXT`);
|
|
67545
|
+
sql.exec(`ALTER TABLE api_keys ADD COLUMN scope TEXT`);
|
|
67546
|
+
sql.exec(`ALTER TABLE api_keys ADD COLUMN source TEXT NOT NULL DEFAULT 'local' CHECK (source IN ('local', 'standard_agents'))`);
|
|
67547
|
+
sql.exec(`ALTER TABLE api_keys ADD COLUMN replica_active INTEGER NOT NULL DEFAULT 1`);
|
|
67548
|
+
sql.exec(`ALTER TABLE api_keys ADD COLUMN replica_updated_at INTEGER`);
|
|
67549
|
+
sql.exec(`CREATE INDEX IF NOT EXISTS idx_api_keys_platform_key_id ON api_keys(platform_key_id)`);
|
|
67550
|
+
sql.exec(`CREATE INDEX IF NOT EXISTS idx_api_keys_replica_active ON api_keys(replica_active)`);
|
|
67551
|
+
sql.exec(`
|
|
67552
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '7')
|
|
67553
|
+
`);
|
|
67554
|
+
}
|
|
67555
|
+
};
|
|
67556
|
+
|
|
67557
|
+
// src/durable-objects/agentbuilder-migrations/0008_add_skills.ts
|
|
67558
|
+
var migration8 = {
|
|
67559
|
+
version: 8,
|
|
67560
|
+
async up(sql) {
|
|
67561
|
+
sql.exec(`
|
|
67562
|
+
CREATE TABLE IF NOT EXISTS skills (
|
|
67563
|
+
name TEXT PRIMARY KEY,
|
|
67564
|
+
description TEXT NOT NULL,
|
|
67565
|
+
version TEXT,
|
|
67566
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
67567
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67568
|
+
updated_at INTEGER DEFAULT (strftime('%s', 'now'))
|
|
67569
|
+
)
|
|
67570
|
+
`);
|
|
67571
|
+
sql.exec(`
|
|
67572
|
+
CREATE TABLE IF NOT EXISTS skill_files (
|
|
67573
|
+
skill_name TEXT NOT NULL,
|
|
67574
|
+
path TEXT NOT NULL,
|
|
67575
|
+
content TEXT NOT NULL,
|
|
67576
|
+
size INTEGER NOT NULL,
|
|
67577
|
+
PRIMARY KEY (skill_name, path),
|
|
67578
|
+
FOREIGN KEY (skill_name) REFERENCES skills(name) ON DELETE CASCADE
|
|
67579
|
+
)
|
|
67580
|
+
`);
|
|
67581
|
+
sql.exec(`CREATE INDEX IF NOT EXISTS idx_skill_files_skill ON skill_files(skill_name)`);
|
|
67582
|
+
sql.exec(`
|
|
67583
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '8')
|
|
67584
|
+
`);
|
|
67585
|
+
}
|
|
67586
|
+
};
|
|
67587
|
+
|
|
67588
|
+
// src/durable-objects/agentbuilder-migrations/0009_add_user_permissions.ts
|
|
67589
|
+
var migration9 = {
|
|
67590
|
+
version: 9,
|
|
67591
|
+
async up(sql) {
|
|
67592
|
+
sql.exec(`ALTER TABLE users ADD COLUMN permissions TEXT`);
|
|
67593
|
+
sql.exec(`
|
|
67594
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '9')
|
|
67595
|
+
`);
|
|
67596
|
+
}
|
|
67597
|
+
};
|
|
67598
|
+
|
|
67599
|
+
// src/durable-objects/agentbuilder-migrations/0010_add_device_logins.ts
|
|
67600
|
+
var migration10 = {
|
|
67601
|
+
version: 10,
|
|
67602
|
+
async up(sql) {
|
|
67603
|
+
sql.exec(`
|
|
67604
|
+
CREATE TABLE IF NOT EXISTS device_logins (
|
|
67605
|
+
code_hash TEXT PRIMARY KEY,
|
|
67606
|
+
status TEXT NOT NULL DEFAULT 'pending', -- pending | approved | claimed | denied
|
|
67607
|
+
user_id TEXT,
|
|
67608
|
+
token TEXT, -- plaintext api key parked until the single claim
|
|
67609
|
+
created_at INTEGER NOT NULL,
|
|
67610
|
+
expires_at INTEGER NOT NULL
|
|
67611
|
+
)
|
|
67612
|
+
`);
|
|
67613
|
+
sql.exec(`
|
|
67614
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '10')
|
|
67615
|
+
`);
|
|
67616
|
+
}
|
|
67617
|
+
};
|
|
67618
|
+
|
|
67619
|
+
// src/durable-objects/agentbuilder-migrations/0011_add_user_values.ts
|
|
67620
|
+
var migration11 = {
|
|
67621
|
+
version: 11,
|
|
67622
|
+
async up(sql) {
|
|
67623
|
+
sql.exec(`
|
|
67624
|
+
CREATE TABLE IF NOT EXISTS user_values (
|
|
67625
|
+
user_id TEXT NOT NULL,
|
|
67626
|
+
key TEXT NOT NULL,
|
|
67627
|
+
value TEXT NOT NULL,
|
|
67628
|
+
created_at INTEGER NOT NULL,
|
|
67629
|
+
updated_at INTEGER NOT NULL,
|
|
67630
|
+
PRIMARY KEY (user_id, key)
|
|
67631
|
+
)
|
|
67632
|
+
`);
|
|
67633
|
+
sql.exec(`
|
|
67634
|
+
CREATE INDEX IF NOT EXISTS idx_user_values_user ON user_values(user_id)
|
|
67635
|
+
`);
|
|
67636
|
+
sql.exec(`
|
|
67637
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '11')
|
|
67638
|
+
`);
|
|
67639
|
+
}
|
|
67640
|
+
};
|
|
67641
|
+
|
|
67642
|
+
// src/durable-objects/agentbuilder-migrations/0012_allow_api_instance_role.ts
|
|
67643
|
+
var migration12 = {
|
|
67644
|
+
version: 12,
|
|
67645
|
+
async up(sql) {
|
|
67646
|
+
sql.exec(`CREATE TABLE oauth_accounts_0012_backup AS SELECT * FROM oauth_accounts`);
|
|
67647
|
+
sql.exec(`CREATE TABLE api_keys_0012_backup AS SELECT * FROM api_keys`);
|
|
67648
|
+
sql.exec(`CREATE TABLE sessions_0012_backup AS SELECT * FROM sessions`);
|
|
67649
|
+
sql.exec(`DROP TABLE oauth_accounts`);
|
|
67650
|
+
sql.exec(`DROP TABLE api_keys`);
|
|
67651
|
+
sql.exec(`DROP TABLE sessions`);
|
|
67652
|
+
sql.exec(`ALTER TABLE users RENAME TO users_0012_old`);
|
|
67653
|
+
sql.exec(`
|
|
67654
|
+
CREATE TABLE users (
|
|
67655
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67656
|
+
username TEXT UNIQUE NOT NULL,
|
|
67657
|
+
password_hash TEXT NOT NULL,
|
|
67658
|
+
role TEXT NOT NULL DEFAULT 'admin' CHECK (role IN ('admin')),
|
|
67659
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67660
|
+
updated_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67661
|
+
platform_user_id TEXT,
|
|
67662
|
+
email TEXT,
|
|
67663
|
+
display_name TEXT,
|
|
67664
|
+
avatar_url TEXT,
|
|
67665
|
+
instance_role TEXT NOT NULL DEFAULT 'admin' CHECK (instance_role IN ('admin', 'user', 'api')),
|
|
67666
|
+
source TEXT NOT NULL DEFAULT 'local' CHECK (source IN ('local', 'standard_agents')),
|
|
67667
|
+
replica_active INTEGER NOT NULL DEFAULT 1,
|
|
67668
|
+
replica_updated_at INTEGER,
|
|
67669
|
+
deleted_at INTEGER,
|
|
67670
|
+
permissions TEXT
|
|
67671
|
+
)
|
|
67672
|
+
`);
|
|
67673
|
+
sql.exec(`
|
|
67674
|
+
INSERT INTO users (
|
|
67675
|
+
id, username, password_hash, role, created_at, updated_at,
|
|
67676
|
+
platform_user_id, email, display_name, avatar_url, instance_role,
|
|
67677
|
+
source, replica_active, replica_updated_at, deleted_at, permissions
|
|
67678
|
+
)
|
|
67679
|
+
SELECT
|
|
67680
|
+
id, username, password_hash, role, created_at, updated_at,
|
|
67681
|
+
platform_user_id, email, display_name, avatar_url, instance_role,
|
|
67682
|
+
source, replica_active, replica_updated_at, deleted_at, permissions
|
|
67683
|
+
FROM users_0012_old
|
|
67684
|
+
`);
|
|
67685
|
+
sql.exec(`DROP TABLE users_0012_old`);
|
|
67686
|
+
sql.exec(`CREATE INDEX idx_users_username ON users(username)`);
|
|
67687
|
+
sql.exec(`CREATE INDEX idx_users_role ON users(role)`);
|
|
67688
|
+
sql.exec(`CREATE INDEX idx_users_platform_user_id ON users(platform_user_id)`);
|
|
67689
|
+
sql.exec(`CREATE INDEX idx_users_replica_active ON users(replica_active)`);
|
|
67690
|
+
sql.exec(`CREATE INDEX idx_users_instance_role ON users(instance_role)`);
|
|
67691
|
+
sql.exec(`
|
|
67692
|
+
CREATE TABLE oauth_accounts (
|
|
67693
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67694
|
+
user_id TEXT NOT NULL,
|
|
67695
|
+
provider TEXT NOT NULL CHECK (provider IN ('github', 'google')),
|
|
67696
|
+
provider_user_id TEXT NOT NULL,
|
|
67697
|
+
provider_username TEXT,
|
|
67698
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67699
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
67700
|
+
)
|
|
67701
|
+
`);
|
|
67702
|
+
sql.exec(`INSERT INTO oauth_accounts SELECT * FROM oauth_accounts_0012_backup`);
|
|
67703
|
+
sql.exec(`CREATE UNIQUE INDEX idx_oauth_accounts_provider ON oauth_accounts(provider, provider_user_id)`);
|
|
67704
|
+
sql.exec(`CREATE INDEX idx_oauth_accounts_user_id ON oauth_accounts(user_id)`);
|
|
67705
|
+
sql.exec(`
|
|
67706
|
+
CREATE TABLE api_keys (
|
|
67707
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67708
|
+
name TEXT NOT NULL,
|
|
67709
|
+
key_hash TEXT NOT NULL,
|
|
67710
|
+
key_prefix TEXT NOT NULL,
|
|
67711
|
+
last_five TEXT NOT NULL,
|
|
67712
|
+
user_id TEXT NOT NULL,
|
|
67713
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67714
|
+
last_used_at INTEGER,
|
|
67715
|
+
platform_key_id TEXT,
|
|
67716
|
+
scope TEXT,
|
|
67717
|
+
source TEXT NOT NULL DEFAULT 'local' CHECK (source IN ('local', 'standard_agents')),
|
|
67718
|
+
replica_active INTEGER NOT NULL DEFAULT 1,
|
|
67719
|
+
replica_updated_at INTEGER,
|
|
67720
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
67721
|
+
)
|
|
67722
|
+
`);
|
|
67723
|
+
sql.exec(`INSERT INTO api_keys SELECT * FROM api_keys_0012_backup`);
|
|
67724
|
+
sql.exec(`CREATE INDEX idx_api_keys_key_hash ON api_keys(key_hash)`);
|
|
67725
|
+
sql.exec(`CREATE INDEX idx_api_keys_user_id ON api_keys(user_id)`);
|
|
67726
|
+
sql.exec(`CREATE INDEX idx_api_keys_key_prefix ON api_keys(key_prefix)`);
|
|
67727
|
+
sql.exec(`CREATE INDEX idx_api_keys_platform_key_id ON api_keys(platform_key_id)`);
|
|
67728
|
+
sql.exec(`CREATE INDEX idx_api_keys_replica_active ON api_keys(replica_active)`);
|
|
67729
|
+
sql.exec(`
|
|
67730
|
+
CREATE TABLE sessions (
|
|
67731
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
67732
|
+
user_id TEXT NOT NULL,
|
|
67733
|
+
token_hash TEXT NOT NULL,
|
|
67734
|
+
expires_at INTEGER NOT NULL,
|
|
67735
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
67736
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
67737
|
+
)
|
|
67738
|
+
`);
|
|
67739
|
+
sql.exec(`INSERT INTO sessions SELECT * FROM sessions_0012_backup`);
|
|
67740
|
+
sql.exec(`CREATE INDEX idx_sessions_token_hash ON sessions(token_hash)`);
|
|
67741
|
+
sql.exec(`CREATE INDEX idx_sessions_user_id ON sessions(user_id)`);
|
|
67742
|
+
sql.exec(`CREATE INDEX idx_sessions_expires_at ON sessions(expires_at)`);
|
|
67743
|
+
sql.exec(`DROP TABLE oauth_accounts_0012_backup`);
|
|
67744
|
+
sql.exec(`DROP TABLE api_keys_0012_backup`);
|
|
67745
|
+
sql.exec(`DROP TABLE sessions_0012_backup`);
|
|
67746
|
+
sql.exec(`
|
|
67747
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '12')
|
|
67748
|
+
`);
|
|
67749
|
+
}
|
|
67750
|
+
};
|
|
67751
|
+
|
|
67752
|
+
// src/durable-objects/agentbuilder-migrations/0013_add_thread_activity.ts
|
|
67753
|
+
var migration13 = {
|
|
67754
|
+
version: 13,
|
|
67755
|
+
async up(sql) {
|
|
67756
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN last_activity_at INTEGER`);
|
|
67757
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN executing_since INTEGER`);
|
|
67758
|
+
sql.exec(
|
|
67759
|
+
`CREATE INDEX IF NOT EXISTS idx_threads_last_activity_at ON threads(last_activity_at)`
|
|
67760
|
+
);
|
|
67761
|
+
sql.exec(`UPDATE threads SET last_activity_at = created_at`);
|
|
67762
|
+
sql.exec(`
|
|
67763
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '13')
|
|
67764
|
+
`);
|
|
67765
|
+
}
|
|
67766
|
+
};
|
|
67767
|
+
|
|
67768
|
+
// src/durable-objects/agentbuilder-migrations/0014_thread_activity_scale.ts
|
|
67769
|
+
var migration14 = {
|
|
67770
|
+
version: 14,
|
|
67771
|
+
async up(sql) {
|
|
67772
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN last_message_preview TEXT`);
|
|
67773
|
+
sql.exec(
|
|
67774
|
+
`CREATE INDEX IF NOT EXISTS idx_threads_executing_since
|
|
67775
|
+
ON threads(executing_since) WHERE executing_since IS NOT NULL`
|
|
67776
|
+
);
|
|
67777
|
+
sql.exec(
|
|
67778
|
+
`UPDATE threads SET last_activity_at = created_at WHERE last_activity_at IS NULL`
|
|
67779
|
+
);
|
|
67780
|
+
sql.exec(`
|
|
67781
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '14')
|
|
67782
|
+
`);
|
|
67783
|
+
}
|
|
67784
|
+
};
|
|
67785
|
+
|
|
67786
|
+
// src/durable-objects/agentbuilder-migrations/0015_clear_envelope_previews.ts
|
|
67787
|
+
var migration15 = {
|
|
67788
|
+
version: 15,
|
|
67789
|
+
async up(sql) {
|
|
67790
|
+
sql.exec(
|
|
67791
|
+
`UPDATE threads SET last_message_preview = NULL
|
|
67792
|
+
WHERE last_message_preview LIKE 'Subagent (reference: %'`
|
|
67793
|
+
);
|
|
67794
|
+
sql.exec(`
|
|
67795
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '15')
|
|
67796
|
+
`);
|
|
67797
|
+
}
|
|
67798
|
+
};
|
|
67799
|
+
|
|
67800
|
+
// src/durable-objects/agentbuilder-migrations/0016_add_origin_agent.ts
|
|
67801
|
+
var migration16 = {
|
|
67802
|
+
version: 16,
|
|
67803
|
+
async up(sql) {
|
|
67804
|
+
sql.exec(`ALTER TABLE threads ADD COLUMN origin_agent_name TEXT`);
|
|
67805
|
+
sql.exec(
|
|
67806
|
+
`CREATE INDEX IF NOT EXISTS idx_threads_origin_agent_name ON threads(origin_agent_name)`
|
|
67807
|
+
);
|
|
67808
|
+
sql.exec(`UPDATE threads SET origin_agent_name = agent_name`);
|
|
67809
|
+
sql.exec(`
|
|
67810
|
+
INSERT OR REPLACE INTO _metadata (key, value) VALUES ('schema_version', '16')
|
|
67811
|
+
`);
|
|
67812
|
+
}
|
|
67813
|
+
};
|
|
67814
|
+
|
|
67815
|
+
// src/durable-objects/agentbuilder-migrations/index.ts
|
|
67816
|
+
var migrations = [migration, migration2, migration3, migration4, migration5, migration6, migration7, migration8, migration9, migration10, migration11, migration12, migration13, migration14, migration15, migration16];
|
|
67817
|
+
migrations.reduce(
|
|
67818
|
+
(max, migration17) => Math.max(max, migration17.version),
|
|
67819
|
+
0
|
|
67820
|
+
);
|
|
67821
|
+
|
|
67822
|
+
// src/durable-objects/DurableAgentBuilder.ts
|
|
67338
67823
|
init_types();
|
|
67339
67824
|
var THREAD_PREVIEW_MAX_CHARS = 140;
|
|
67340
67825
|
var buildThreadPreview = (content) => {
|