@askexenow/exe-os 0.9.60 → 0.9.62
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/deploy/stack-manifests/v0.9.json +62 -13
- package/dist/bin/backfill-conversations.js +282 -7
- package/dist/bin/backfill-responses.js +282 -7
- package/dist/bin/backfill-vectors.js +119 -7
- package/dist/bin/cc-doctor.js +376 -0
- package/dist/bin/cleanup-stale-review-tasks.js +282 -7
- package/dist/bin/cli.js +455 -77
- package/dist/bin/customer-readiness.js +33 -0
- package/dist/bin/exe-agent-config.js +2 -2
- package/dist/bin/exe-agent.js +3 -3
- package/dist/bin/exe-assign.js +282 -7
- package/dist/bin/exe-boot.js +125 -13
- package/dist/bin/exe-call.js +3 -3
- package/dist/bin/exe-cloud.js +2 -2
- package/dist/bin/exe-dispatch.js +282 -7
- package/dist/bin/exe-doctor.js +119 -7
- package/dist/bin/exe-export-behaviors.js +282 -7
- package/dist/bin/exe-forget.js +336 -7
- package/dist/bin/exe-gateway.js +282 -7
- package/dist/bin/exe-heartbeat.js +284 -9
- package/dist/bin/exe-kill.js +282 -7
- package/dist/bin/exe-launch-agent.js +282 -7
- package/dist/bin/exe-link.js +121 -9
- package/dist/bin/exe-new-employee.js +50 -21
- package/dist/bin/exe-pending-messages.js +282 -7
- package/dist/bin/exe-pending-notifications.js +282 -7
- package/dist/bin/exe-pending-reviews.js +282 -7
- package/dist/bin/exe-rename.js +282 -7
- package/dist/bin/exe-review.js +282 -7
- package/dist/bin/exe-search.js +306 -8
- package/dist/bin/exe-session-cleanup.js +282 -7
- package/dist/bin/exe-settings.js +2 -2
- package/dist/bin/exe-start-codex.js +326 -21
- package/dist/bin/exe-start-opencode.js +304 -10
- package/dist/bin/exe-status.js +282 -7
- package/dist/bin/exe-team.js +282 -7
- package/dist/bin/git-sweep.js +282 -7
- package/dist/bin/graph-backfill.js +282 -7
- package/dist/bin/graph-export.js +282 -7
- package/dist/bin/install.js +58 -33
- package/dist/bin/intercom-check.js +282 -7
- package/dist/bin/pre-build-guard.js +98 -0
- package/dist/bin/scan-tasks.js +282 -7
- package/dist/bin/setup.js +122 -10
- package/dist/bin/shard-migrate.js +282 -7
- package/dist/bin/stack-update.js +79 -11
- package/dist/bin/update.js +2 -2
- package/dist/gateway/index.js +288 -13
- package/dist/hooks/bug-report-worker.js +282 -7
- package/dist/hooks/codex-stop-task-finalizer.js +282 -7
- package/dist/hooks/commit-complete.js +282 -7
- package/dist/hooks/error-recall.js +306 -8
- package/dist/hooks/exe-heartbeat-hook.js +2 -2
- package/dist/hooks/ingest-worker.js +2 -2
- package/dist/hooks/ingest.js +282 -7
- package/dist/hooks/instructions-loaded.js +282 -7
- package/dist/hooks/notification.js +282 -7
- package/dist/hooks/post-compact.js +282 -7
- package/dist/hooks/post-tool-combined.js +306 -8
- package/dist/hooks/pre-compact.js +282 -7
- package/dist/hooks/pre-tool-use.js +282 -7
- package/dist/hooks/prompt-submit.js +306 -8
- package/dist/hooks/session-end.js +282 -7
- package/dist/hooks/session-start.js +308 -10
- package/dist/hooks/stop.js +282 -7
- package/dist/hooks/subagent-stop.js +282 -7
- package/dist/hooks/summary-worker.js +125 -13
- package/dist/index.js +288 -13
- package/dist/lib/agent-config.js +2 -2
- package/dist/lib/cloud-sync.js +121 -9
- package/dist/lib/config.js +2 -2
- package/dist/lib/consolidation.js +2 -2
- package/dist/lib/database.js +115 -3
- package/dist/lib/db-daemon-client.js +2 -2
- package/dist/lib/db.js +115 -3
- package/dist/lib/device-registry.js +115 -3
- package/dist/lib/embedder.js +2 -2
- package/dist/lib/employee-templates.js +3 -3
- package/dist/lib/employees.js +2 -2
- package/dist/lib/exe-daemon-client.js +2 -2
- package/dist/lib/exe-daemon.js +339 -31
- package/dist/lib/hybrid-search.js +306 -8
- package/dist/lib/identity.js +2 -2
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +2 -2
- package/dist/lib/reminders.js +2 -2
- package/dist/lib/schedules.js +119 -7
- package/dist/lib/skill-learning.js +2 -2
- package/dist/lib/store.js +282 -7
- package/dist/lib/task-router.js +2 -2
- package/dist/lib/tasks.js +2 -2
- package/dist/lib/tmux-routing.js +2 -2
- package/dist/lib/token-spend.js +2 -2
- package/dist/mcp/server.js +339 -31
- package/dist/mcp/tools/complete-reminder.js +2 -2
- package/dist/mcp/tools/create-reminder.js +2 -2
- package/dist/mcp/tools/create-task.js +2 -2
- package/dist/mcp/tools/deactivate-behavior.js +2 -2
- package/dist/mcp/tools/list-reminders.js +2 -2
- package/dist/mcp/tools/list-tasks.js +2 -2
- package/dist/mcp/tools/send-message.js +2 -2
- package/dist/mcp/tools/update-task.js +2 -2
- package/dist/runtime/index.js +282 -7
- package/dist/tui/App.js +290 -15
- package/package.json +3 -2
- package/stack.release.json +23 -7
package/dist/lib/database.js
CHANGED
|
@@ -95,8 +95,8 @@ var init_config = __esm({
|
|
|
95
95
|
rerankerAutoTrigger: {
|
|
96
96
|
enabled: true,
|
|
97
97
|
broadQueryMinCardinality: 5e4,
|
|
98
|
-
fetchTopK:
|
|
99
|
-
returnTopK:
|
|
98
|
+
fetchTopK: 200,
|
|
99
|
+
returnTopK: 20
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
graphRagEnabled: true,
|
|
@@ -2153,7 +2153,7 @@ async function ensureSchema() {
|
|
|
2153
2153
|
ON session_kills(agent_id);
|
|
2154
2154
|
`);
|
|
2155
2155
|
await client.execute(`
|
|
2156
|
-
CREATE TABLE IF NOT EXISTS
|
|
2156
|
+
CREATE TABLE IF NOT EXISTS company_procedures (
|
|
2157
2157
|
id TEXT PRIMARY KEY,
|
|
2158
2158
|
title TEXT NOT NULL,
|
|
2159
2159
|
content TEXT NOT NULL,
|
|
@@ -2164,6 +2164,73 @@ async function ensureSchema() {
|
|
|
2164
2164
|
updated_at TEXT NOT NULL
|
|
2165
2165
|
)
|
|
2166
2166
|
`);
|
|
2167
|
+
const legacyProcedureObject = await client.execute({
|
|
2168
|
+
sql: "SELECT type FROM sqlite_master WHERE name = 'global_procedures'",
|
|
2169
|
+
args: []
|
|
2170
|
+
});
|
|
2171
|
+
const legacyProcedureType = legacyProcedureObject.rows[0]?.type == null ? null : String(legacyProcedureObject.rows[0].type);
|
|
2172
|
+
if (legacyProcedureType === "table") {
|
|
2173
|
+
await client.execute(`
|
|
2174
|
+
INSERT OR IGNORE INTO company_procedures
|
|
2175
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2176
|
+
SELECT id, title, content, priority, domain, active, created_at, updated_at
|
|
2177
|
+
FROM global_procedures
|
|
2178
|
+
`);
|
|
2179
|
+
await client.executeMultiple(`
|
|
2180
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_mirror_insert
|
|
2181
|
+
AFTER INSERT ON global_procedures
|
|
2182
|
+
BEGIN
|
|
2183
|
+
INSERT OR IGNORE INTO company_procedures
|
|
2184
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2185
|
+
VALUES
|
|
2186
|
+
(NEW.id, NEW.title, NEW.content, NEW.priority, NEW.domain, NEW.active, NEW.created_at, NEW.updated_at);
|
|
2187
|
+
END;
|
|
2188
|
+
|
|
2189
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_mirror_update
|
|
2190
|
+
AFTER UPDATE ON global_procedures
|
|
2191
|
+
BEGIN
|
|
2192
|
+
UPDATE company_procedures
|
|
2193
|
+
SET title = NEW.title,
|
|
2194
|
+
content = NEW.content,
|
|
2195
|
+
priority = NEW.priority,
|
|
2196
|
+
domain = NEW.domain,
|
|
2197
|
+
active = NEW.active,
|
|
2198
|
+
created_at = NEW.created_at,
|
|
2199
|
+
updated_at = NEW.updated_at
|
|
2200
|
+
WHERE id = OLD.id;
|
|
2201
|
+
END;
|
|
2202
|
+
`);
|
|
2203
|
+
} else {
|
|
2204
|
+
await client.execute(`
|
|
2205
|
+
CREATE VIEW IF NOT EXISTS global_procedures AS
|
|
2206
|
+
SELECT id, title, content, priority, domain, active, created_at, updated_at
|
|
2207
|
+
FROM company_procedures
|
|
2208
|
+
`);
|
|
2209
|
+
await client.executeMultiple(`
|
|
2210
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_insert
|
|
2211
|
+
INSTEAD OF INSERT ON global_procedures
|
|
2212
|
+
BEGIN
|
|
2213
|
+
INSERT INTO company_procedures
|
|
2214
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2215
|
+
VALUES
|
|
2216
|
+
(NEW.id, NEW.title, NEW.content, NEW.priority, NEW.domain, NEW.active, NEW.created_at, NEW.updated_at);
|
|
2217
|
+
END;
|
|
2218
|
+
|
|
2219
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_update
|
|
2220
|
+
INSTEAD OF UPDATE ON global_procedures
|
|
2221
|
+
BEGIN
|
|
2222
|
+
UPDATE company_procedures
|
|
2223
|
+
SET title = NEW.title,
|
|
2224
|
+
content = NEW.content,
|
|
2225
|
+
priority = NEW.priority,
|
|
2226
|
+
domain = NEW.domain,
|
|
2227
|
+
active = NEW.active,
|
|
2228
|
+
created_at = NEW.created_at,
|
|
2229
|
+
updated_at = NEW.updated_at
|
|
2230
|
+
WHERE id = OLD.id;
|
|
2231
|
+
END;
|
|
2232
|
+
`);
|
|
2233
|
+
}
|
|
2167
2234
|
await client.executeMultiple(`
|
|
2168
2235
|
CREATE TABLE IF NOT EXISTS conversations (
|
|
2169
2236
|
id TEXT PRIMARY KEY,
|
|
@@ -2303,6 +2370,51 @@ async function ensureSchema() {
|
|
|
2303
2370
|
VALUES (new.rowid, new.content_text, new.sender_name, new.agent_response);
|
|
2304
2371
|
END;
|
|
2305
2372
|
`);
|
|
2373
|
+
await client.executeMultiple(`
|
|
2374
|
+
CREATE TABLE IF NOT EXISTS memory_cards (
|
|
2375
|
+
id TEXT PRIMARY KEY,
|
|
2376
|
+
memory_id TEXT NOT NULL,
|
|
2377
|
+
agent_id TEXT NOT NULL,
|
|
2378
|
+
session_id TEXT NOT NULL,
|
|
2379
|
+
project_name TEXT,
|
|
2380
|
+
timestamp TEXT NOT NULL,
|
|
2381
|
+
card_type TEXT NOT NULL,
|
|
2382
|
+
subject TEXT,
|
|
2383
|
+
predicate TEXT,
|
|
2384
|
+
object TEXT,
|
|
2385
|
+
content TEXT NOT NULL,
|
|
2386
|
+
source_ref TEXT,
|
|
2387
|
+
confidence REAL DEFAULT 0.6,
|
|
2388
|
+
active INTEGER DEFAULT 1,
|
|
2389
|
+
created_at TEXT NOT NULL
|
|
2390
|
+
);
|
|
2391
|
+
|
|
2392
|
+
CREATE INDEX IF NOT EXISTS idx_memory_cards_agent
|
|
2393
|
+
ON memory_cards(agent_id, active, timestamp);
|
|
2394
|
+
|
|
2395
|
+
CREATE INDEX IF NOT EXISTS idx_memory_cards_memory
|
|
2396
|
+
ON memory_cards(memory_id);
|
|
2397
|
+
|
|
2398
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS memory_cards_fts
|
|
2399
|
+
USING fts5(content, subject, predicate, object, content='memory_cards', content_rowid='rowid');
|
|
2400
|
+
|
|
2401
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_ai AFTER INSERT ON memory_cards BEGIN
|
|
2402
|
+
INSERT INTO memory_cards_fts(rowid, content, subject, predicate, object)
|
|
2403
|
+
VALUES (new.rowid, new.content, new.subject, new.predicate, new.object);
|
|
2404
|
+
END;
|
|
2405
|
+
|
|
2406
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_ad AFTER DELETE ON memory_cards BEGIN
|
|
2407
|
+
INSERT INTO memory_cards_fts(memory_cards_fts, rowid, content, subject, predicate, object)
|
|
2408
|
+
VALUES('delete', old.rowid, old.content, old.subject, old.predicate, old.object);
|
|
2409
|
+
END;
|
|
2410
|
+
|
|
2411
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_au AFTER UPDATE ON memory_cards BEGIN
|
|
2412
|
+
INSERT INTO memory_cards_fts(memory_cards_fts, rowid, content, subject, predicate, object)
|
|
2413
|
+
VALUES('delete', old.rowid, old.content, old.subject, old.predicate, old.object);
|
|
2414
|
+
INSERT INTO memory_cards_fts(rowid, content, subject, predicate, object)
|
|
2415
|
+
VALUES (new.rowid, new.content, new.subject, new.predicate, new.object);
|
|
2416
|
+
END;
|
|
2417
|
+
`);
|
|
2306
2418
|
try {
|
|
2307
2419
|
await client.execute({
|
|
2308
2420
|
sql: `ALTER TABLE memories ADD COLUMN tier INTEGER DEFAULT 3`,
|
package/dist/lib/db.js
CHANGED
|
@@ -95,8 +95,8 @@ var init_config = __esm({
|
|
|
95
95
|
rerankerAutoTrigger: {
|
|
96
96
|
enabled: true,
|
|
97
97
|
broadQueryMinCardinality: 5e4,
|
|
98
|
-
fetchTopK:
|
|
99
|
-
returnTopK:
|
|
98
|
+
fetchTopK: 200,
|
|
99
|
+
returnTopK: 20
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
graphRagEnabled: true,
|
|
@@ -2153,7 +2153,7 @@ async function ensureSchema() {
|
|
|
2153
2153
|
ON session_kills(agent_id);
|
|
2154
2154
|
`);
|
|
2155
2155
|
await client.execute(`
|
|
2156
|
-
CREATE TABLE IF NOT EXISTS
|
|
2156
|
+
CREATE TABLE IF NOT EXISTS company_procedures (
|
|
2157
2157
|
id TEXT PRIMARY KEY,
|
|
2158
2158
|
title TEXT NOT NULL,
|
|
2159
2159
|
content TEXT NOT NULL,
|
|
@@ -2164,6 +2164,73 @@ async function ensureSchema() {
|
|
|
2164
2164
|
updated_at TEXT NOT NULL
|
|
2165
2165
|
)
|
|
2166
2166
|
`);
|
|
2167
|
+
const legacyProcedureObject = await client.execute({
|
|
2168
|
+
sql: "SELECT type FROM sqlite_master WHERE name = 'global_procedures'",
|
|
2169
|
+
args: []
|
|
2170
|
+
});
|
|
2171
|
+
const legacyProcedureType = legacyProcedureObject.rows[0]?.type == null ? null : String(legacyProcedureObject.rows[0].type);
|
|
2172
|
+
if (legacyProcedureType === "table") {
|
|
2173
|
+
await client.execute(`
|
|
2174
|
+
INSERT OR IGNORE INTO company_procedures
|
|
2175
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2176
|
+
SELECT id, title, content, priority, domain, active, created_at, updated_at
|
|
2177
|
+
FROM global_procedures
|
|
2178
|
+
`);
|
|
2179
|
+
await client.executeMultiple(`
|
|
2180
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_mirror_insert
|
|
2181
|
+
AFTER INSERT ON global_procedures
|
|
2182
|
+
BEGIN
|
|
2183
|
+
INSERT OR IGNORE INTO company_procedures
|
|
2184
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2185
|
+
VALUES
|
|
2186
|
+
(NEW.id, NEW.title, NEW.content, NEW.priority, NEW.domain, NEW.active, NEW.created_at, NEW.updated_at);
|
|
2187
|
+
END;
|
|
2188
|
+
|
|
2189
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_mirror_update
|
|
2190
|
+
AFTER UPDATE ON global_procedures
|
|
2191
|
+
BEGIN
|
|
2192
|
+
UPDATE company_procedures
|
|
2193
|
+
SET title = NEW.title,
|
|
2194
|
+
content = NEW.content,
|
|
2195
|
+
priority = NEW.priority,
|
|
2196
|
+
domain = NEW.domain,
|
|
2197
|
+
active = NEW.active,
|
|
2198
|
+
created_at = NEW.created_at,
|
|
2199
|
+
updated_at = NEW.updated_at
|
|
2200
|
+
WHERE id = OLD.id;
|
|
2201
|
+
END;
|
|
2202
|
+
`);
|
|
2203
|
+
} else {
|
|
2204
|
+
await client.execute(`
|
|
2205
|
+
CREATE VIEW IF NOT EXISTS global_procedures AS
|
|
2206
|
+
SELECT id, title, content, priority, domain, active, created_at, updated_at
|
|
2207
|
+
FROM company_procedures
|
|
2208
|
+
`);
|
|
2209
|
+
await client.executeMultiple(`
|
|
2210
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_insert
|
|
2211
|
+
INSTEAD OF INSERT ON global_procedures
|
|
2212
|
+
BEGIN
|
|
2213
|
+
INSERT INTO company_procedures
|
|
2214
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2215
|
+
VALUES
|
|
2216
|
+
(NEW.id, NEW.title, NEW.content, NEW.priority, NEW.domain, NEW.active, NEW.created_at, NEW.updated_at);
|
|
2217
|
+
END;
|
|
2218
|
+
|
|
2219
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_update
|
|
2220
|
+
INSTEAD OF UPDATE ON global_procedures
|
|
2221
|
+
BEGIN
|
|
2222
|
+
UPDATE company_procedures
|
|
2223
|
+
SET title = NEW.title,
|
|
2224
|
+
content = NEW.content,
|
|
2225
|
+
priority = NEW.priority,
|
|
2226
|
+
domain = NEW.domain,
|
|
2227
|
+
active = NEW.active,
|
|
2228
|
+
created_at = NEW.created_at,
|
|
2229
|
+
updated_at = NEW.updated_at
|
|
2230
|
+
WHERE id = OLD.id;
|
|
2231
|
+
END;
|
|
2232
|
+
`);
|
|
2233
|
+
}
|
|
2167
2234
|
await client.executeMultiple(`
|
|
2168
2235
|
CREATE TABLE IF NOT EXISTS conversations (
|
|
2169
2236
|
id TEXT PRIMARY KEY,
|
|
@@ -2303,6 +2370,51 @@ async function ensureSchema() {
|
|
|
2303
2370
|
VALUES (new.rowid, new.content_text, new.sender_name, new.agent_response);
|
|
2304
2371
|
END;
|
|
2305
2372
|
`);
|
|
2373
|
+
await client.executeMultiple(`
|
|
2374
|
+
CREATE TABLE IF NOT EXISTS memory_cards (
|
|
2375
|
+
id TEXT PRIMARY KEY,
|
|
2376
|
+
memory_id TEXT NOT NULL,
|
|
2377
|
+
agent_id TEXT NOT NULL,
|
|
2378
|
+
session_id TEXT NOT NULL,
|
|
2379
|
+
project_name TEXT,
|
|
2380
|
+
timestamp TEXT NOT NULL,
|
|
2381
|
+
card_type TEXT NOT NULL,
|
|
2382
|
+
subject TEXT,
|
|
2383
|
+
predicate TEXT,
|
|
2384
|
+
object TEXT,
|
|
2385
|
+
content TEXT NOT NULL,
|
|
2386
|
+
source_ref TEXT,
|
|
2387
|
+
confidence REAL DEFAULT 0.6,
|
|
2388
|
+
active INTEGER DEFAULT 1,
|
|
2389
|
+
created_at TEXT NOT NULL
|
|
2390
|
+
);
|
|
2391
|
+
|
|
2392
|
+
CREATE INDEX IF NOT EXISTS idx_memory_cards_agent
|
|
2393
|
+
ON memory_cards(agent_id, active, timestamp);
|
|
2394
|
+
|
|
2395
|
+
CREATE INDEX IF NOT EXISTS idx_memory_cards_memory
|
|
2396
|
+
ON memory_cards(memory_id);
|
|
2397
|
+
|
|
2398
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS memory_cards_fts
|
|
2399
|
+
USING fts5(content, subject, predicate, object, content='memory_cards', content_rowid='rowid');
|
|
2400
|
+
|
|
2401
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_ai AFTER INSERT ON memory_cards BEGIN
|
|
2402
|
+
INSERT INTO memory_cards_fts(rowid, content, subject, predicate, object)
|
|
2403
|
+
VALUES (new.rowid, new.content, new.subject, new.predicate, new.object);
|
|
2404
|
+
END;
|
|
2405
|
+
|
|
2406
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_ad AFTER DELETE ON memory_cards BEGIN
|
|
2407
|
+
INSERT INTO memory_cards_fts(memory_cards_fts, rowid, content, subject, predicate, object)
|
|
2408
|
+
VALUES('delete', old.rowid, old.content, old.subject, old.predicate, old.object);
|
|
2409
|
+
END;
|
|
2410
|
+
|
|
2411
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_au AFTER UPDATE ON memory_cards BEGIN
|
|
2412
|
+
INSERT INTO memory_cards_fts(memory_cards_fts, rowid, content, subject, predicate, object)
|
|
2413
|
+
VALUES('delete', old.rowid, old.content, old.subject, old.predicate, old.object);
|
|
2414
|
+
INSERT INTO memory_cards_fts(rowid, content, subject, predicate, object)
|
|
2415
|
+
VALUES (new.rowid, new.content, new.subject, new.predicate, new.object);
|
|
2416
|
+
END;
|
|
2417
|
+
`);
|
|
2306
2418
|
try {
|
|
2307
2419
|
await client.execute({
|
|
2308
2420
|
sql: `ALTER TABLE memories ADD COLUMN tier INTEGER DEFAULT 3`,
|
|
@@ -95,8 +95,8 @@ var init_config = __esm({
|
|
|
95
95
|
rerankerAutoTrigger: {
|
|
96
96
|
enabled: true,
|
|
97
97
|
broadQueryMinCardinality: 5e4,
|
|
98
|
-
fetchTopK:
|
|
99
|
-
returnTopK:
|
|
98
|
+
fetchTopK: 200,
|
|
99
|
+
returnTopK: 20
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
graphRagEnabled: true,
|
|
@@ -2182,7 +2182,7 @@ async function ensureSchema() {
|
|
|
2182
2182
|
ON session_kills(agent_id);
|
|
2183
2183
|
`);
|
|
2184
2184
|
await client.execute(`
|
|
2185
|
-
CREATE TABLE IF NOT EXISTS
|
|
2185
|
+
CREATE TABLE IF NOT EXISTS company_procedures (
|
|
2186
2186
|
id TEXT PRIMARY KEY,
|
|
2187
2187
|
title TEXT NOT NULL,
|
|
2188
2188
|
content TEXT NOT NULL,
|
|
@@ -2193,6 +2193,73 @@ async function ensureSchema() {
|
|
|
2193
2193
|
updated_at TEXT NOT NULL
|
|
2194
2194
|
)
|
|
2195
2195
|
`);
|
|
2196
|
+
const legacyProcedureObject = await client.execute({
|
|
2197
|
+
sql: "SELECT type FROM sqlite_master WHERE name = 'global_procedures'",
|
|
2198
|
+
args: []
|
|
2199
|
+
});
|
|
2200
|
+
const legacyProcedureType = legacyProcedureObject.rows[0]?.type == null ? null : String(legacyProcedureObject.rows[0].type);
|
|
2201
|
+
if (legacyProcedureType === "table") {
|
|
2202
|
+
await client.execute(`
|
|
2203
|
+
INSERT OR IGNORE INTO company_procedures
|
|
2204
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2205
|
+
SELECT id, title, content, priority, domain, active, created_at, updated_at
|
|
2206
|
+
FROM global_procedures
|
|
2207
|
+
`);
|
|
2208
|
+
await client.executeMultiple(`
|
|
2209
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_mirror_insert
|
|
2210
|
+
AFTER INSERT ON global_procedures
|
|
2211
|
+
BEGIN
|
|
2212
|
+
INSERT OR IGNORE INTO company_procedures
|
|
2213
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2214
|
+
VALUES
|
|
2215
|
+
(NEW.id, NEW.title, NEW.content, NEW.priority, NEW.domain, NEW.active, NEW.created_at, NEW.updated_at);
|
|
2216
|
+
END;
|
|
2217
|
+
|
|
2218
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_mirror_update
|
|
2219
|
+
AFTER UPDATE ON global_procedures
|
|
2220
|
+
BEGIN
|
|
2221
|
+
UPDATE company_procedures
|
|
2222
|
+
SET title = NEW.title,
|
|
2223
|
+
content = NEW.content,
|
|
2224
|
+
priority = NEW.priority,
|
|
2225
|
+
domain = NEW.domain,
|
|
2226
|
+
active = NEW.active,
|
|
2227
|
+
created_at = NEW.created_at,
|
|
2228
|
+
updated_at = NEW.updated_at
|
|
2229
|
+
WHERE id = OLD.id;
|
|
2230
|
+
END;
|
|
2231
|
+
`);
|
|
2232
|
+
} else {
|
|
2233
|
+
await client.execute(`
|
|
2234
|
+
CREATE VIEW IF NOT EXISTS global_procedures AS
|
|
2235
|
+
SELECT id, title, content, priority, domain, active, created_at, updated_at
|
|
2236
|
+
FROM company_procedures
|
|
2237
|
+
`);
|
|
2238
|
+
await client.executeMultiple(`
|
|
2239
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_insert
|
|
2240
|
+
INSTEAD OF INSERT ON global_procedures
|
|
2241
|
+
BEGIN
|
|
2242
|
+
INSERT INTO company_procedures
|
|
2243
|
+
(id, title, content, priority, domain, active, created_at, updated_at)
|
|
2244
|
+
VALUES
|
|
2245
|
+
(NEW.id, NEW.title, NEW.content, NEW.priority, NEW.domain, NEW.active, NEW.created_at, NEW.updated_at);
|
|
2246
|
+
END;
|
|
2247
|
+
|
|
2248
|
+
CREATE TRIGGER IF NOT EXISTS global_procedures_update
|
|
2249
|
+
INSTEAD OF UPDATE ON global_procedures
|
|
2250
|
+
BEGIN
|
|
2251
|
+
UPDATE company_procedures
|
|
2252
|
+
SET title = NEW.title,
|
|
2253
|
+
content = NEW.content,
|
|
2254
|
+
priority = NEW.priority,
|
|
2255
|
+
domain = NEW.domain,
|
|
2256
|
+
active = NEW.active,
|
|
2257
|
+
created_at = NEW.created_at,
|
|
2258
|
+
updated_at = NEW.updated_at
|
|
2259
|
+
WHERE id = OLD.id;
|
|
2260
|
+
END;
|
|
2261
|
+
`);
|
|
2262
|
+
}
|
|
2196
2263
|
await client.executeMultiple(`
|
|
2197
2264
|
CREATE TABLE IF NOT EXISTS conversations (
|
|
2198
2265
|
id TEXT PRIMARY KEY,
|
|
@@ -2332,6 +2399,51 @@ async function ensureSchema() {
|
|
|
2332
2399
|
VALUES (new.rowid, new.content_text, new.sender_name, new.agent_response);
|
|
2333
2400
|
END;
|
|
2334
2401
|
`);
|
|
2402
|
+
await client.executeMultiple(`
|
|
2403
|
+
CREATE TABLE IF NOT EXISTS memory_cards (
|
|
2404
|
+
id TEXT PRIMARY KEY,
|
|
2405
|
+
memory_id TEXT NOT NULL,
|
|
2406
|
+
agent_id TEXT NOT NULL,
|
|
2407
|
+
session_id TEXT NOT NULL,
|
|
2408
|
+
project_name TEXT,
|
|
2409
|
+
timestamp TEXT NOT NULL,
|
|
2410
|
+
card_type TEXT NOT NULL,
|
|
2411
|
+
subject TEXT,
|
|
2412
|
+
predicate TEXT,
|
|
2413
|
+
object TEXT,
|
|
2414
|
+
content TEXT NOT NULL,
|
|
2415
|
+
source_ref TEXT,
|
|
2416
|
+
confidence REAL DEFAULT 0.6,
|
|
2417
|
+
active INTEGER DEFAULT 1,
|
|
2418
|
+
created_at TEXT NOT NULL
|
|
2419
|
+
);
|
|
2420
|
+
|
|
2421
|
+
CREATE INDEX IF NOT EXISTS idx_memory_cards_agent
|
|
2422
|
+
ON memory_cards(agent_id, active, timestamp);
|
|
2423
|
+
|
|
2424
|
+
CREATE INDEX IF NOT EXISTS idx_memory_cards_memory
|
|
2425
|
+
ON memory_cards(memory_id);
|
|
2426
|
+
|
|
2427
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS memory_cards_fts
|
|
2428
|
+
USING fts5(content, subject, predicate, object, content='memory_cards', content_rowid='rowid');
|
|
2429
|
+
|
|
2430
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_ai AFTER INSERT ON memory_cards BEGIN
|
|
2431
|
+
INSERT INTO memory_cards_fts(rowid, content, subject, predicate, object)
|
|
2432
|
+
VALUES (new.rowid, new.content, new.subject, new.predicate, new.object);
|
|
2433
|
+
END;
|
|
2434
|
+
|
|
2435
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_ad AFTER DELETE ON memory_cards BEGIN
|
|
2436
|
+
INSERT INTO memory_cards_fts(memory_cards_fts, rowid, content, subject, predicate, object)
|
|
2437
|
+
VALUES('delete', old.rowid, old.content, old.subject, old.predicate, old.object);
|
|
2438
|
+
END;
|
|
2439
|
+
|
|
2440
|
+
CREATE TRIGGER IF NOT EXISTS memory_cards_fts_au AFTER UPDATE ON memory_cards BEGIN
|
|
2441
|
+
INSERT INTO memory_cards_fts(memory_cards_fts, rowid, content, subject, predicate, object)
|
|
2442
|
+
VALUES('delete', old.rowid, old.content, old.subject, old.predicate, old.object);
|
|
2443
|
+
INSERT INTO memory_cards_fts(rowid, content, subject, predicate, object)
|
|
2444
|
+
VALUES (new.rowid, new.content, new.subject, new.predicate, new.object);
|
|
2445
|
+
END;
|
|
2446
|
+
`);
|
|
2335
2447
|
try {
|
|
2336
2448
|
await client.execute({
|
|
2337
2449
|
sql: `ALTER TABLE memories ADD COLUMN tier INTEGER DEFAULT 3`,
|
package/dist/lib/embedder.js
CHANGED
|
@@ -68,8 +68,8 @@ var init_config = __esm({
|
|
|
68
68
|
rerankerAutoTrigger: {
|
|
69
69
|
enabled: true,
|
|
70
70
|
broadQueryMinCardinality: 5e4,
|
|
71
|
-
fetchTopK:
|
|
72
|
-
returnTopK:
|
|
71
|
+
fetchTopK: 200,
|
|
72
|
+
returnTopK: 20
|
|
73
73
|
}
|
|
74
74
|
},
|
|
75
75
|
graphRagEnabled: true,
|
|
@@ -306,7 +306,7 @@ var PLATFORM_PROCEDURES = [
|
|
|
306
306
|
title: "MCP tools \u2014 advanced (triggers, skills, orchestration)",
|
|
307
307
|
domain: "tool-use",
|
|
308
308
|
priority: "p1",
|
|
309
|
-
content: "create_trigger: set up a scheduled recurring agent job (cron). list_triggers: view active triggers. load_skill: load a slash-command skill dynamically. apply_starter_pack: import a pre-built behavior + identity pack for a role. export_orchestration: export full org state (tasks, behaviors, identities) as portable JSON. import_orchestration: import org state into a new instance. deploy_client: deploy a customer client instance. query_company_brain: unified RAG query across all company knowledge. create_reminder: set a text reminder (shown in boot brief). list_reminders: view pending reminders. complete_reminder: mark a reminder done.
|
|
309
|
+
content: "create_trigger: set up a scheduled recurring agent job (cron). list_triggers: view active triggers. load_skill: load a slash-command skill dynamically. apply_starter_pack: import a pre-built behavior + identity pack for a role. export_orchestration: export full org state (tasks, behaviors, identities) as portable JSON. import_orchestration: import org state into a new instance. deploy_client: deploy a customer client instance. query_company_brain: unified RAG query across all company knowledge. create_reminder: set a text reminder (shown in boot brief). list_reminders: view pending reminders. complete_reminder: mark a reminder done. company_procedure: manage customer-owned company procedures (Layer 0; actions: store, list, deactivate). Legacy aliases: global_procedure, store_global_procedure, list_global_procedures, deactivate_global_procedure."
|
|
310
310
|
}
|
|
311
311
|
];
|
|
312
312
|
var PLATFORM_PROCEDURE_TITLES = new Set(
|
package/dist/lib/employees.js
CHANGED