@hasna/mementos 0.4.2 → 0.4.3
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/cli/index.js +9 -0
- package/dist/db/agents.d.ts +3 -0
- package/dist/db/agents.d.ts.map +1 -1
- package/dist/db/database.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/mcp/index.js +59 -8
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +70 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -2400,6 +2400,11 @@ var init_database = __esm(() => {
|
|
|
2400
2400
|
CREATE INDEX IF NOT EXISTS idx_entity_memories_memory ON entity_memories(memory_id);
|
|
2401
2401
|
|
|
2402
2402
|
INSERT OR IGNORE INTO _migrations (id) VALUES (5);
|
|
2403
|
+
`,
|
|
2404
|
+
`
|
|
2405
|
+
ALTER TABLE agents ADD COLUMN active_project_id TEXT REFERENCES projects(id) ON DELETE SET NULL;
|
|
2406
|
+
CREATE INDEX IF NOT EXISTS idx_agents_active_project ON agents(active_project_id);
|
|
2407
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (6);
|
|
2403
2408
|
`
|
|
2404
2409
|
];
|
|
2405
2410
|
});
|
|
@@ -2469,6 +2474,7 @@ function parseAgentRow(row) {
|
|
|
2469
2474
|
description: row["description"] || null,
|
|
2470
2475
|
role: row["role"] || null,
|
|
2471
2476
|
metadata: JSON.parse(row["metadata"] || "{}"),
|
|
2477
|
+
active_project_id: row["active_project_id"] || null,
|
|
2472
2478
|
created_at: row["created_at"],
|
|
2473
2479
|
last_seen_at: row["last_seen_at"]
|
|
2474
2480
|
};
|
|
@@ -2545,6 +2551,9 @@ function updateAgent(id, updates, db) {
|
|
|
2545
2551
|
if (updates.metadata !== undefined) {
|
|
2546
2552
|
d.run("UPDATE agents SET metadata = ? WHERE id = ?", [JSON.stringify(updates.metadata), agent.id]);
|
|
2547
2553
|
}
|
|
2554
|
+
if ("active_project_id" in updates) {
|
|
2555
|
+
d.run("UPDATE agents SET active_project_id = ? WHERE id = ?", [updates.active_project_id ?? null, agent.id]);
|
|
2556
|
+
}
|
|
2548
2557
|
d.run("UPDATE agents SET last_seen_at = ? WHERE id = ?", [timestamp, agent.id]);
|
|
2549
2558
|
return getAgent(agent.id, d);
|
|
2550
2559
|
}
|
package/dist/db/agents.d.ts
CHANGED
|
@@ -3,10 +3,13 @@ import type { Agent } from "../types/index.js";
|
|
|
3
3
|
export declare function registerAgent(name: string, description?: string, role?: string, db?: Database): Agent;
|
|
4
4
|
export declare function getAgent(idOrName: string, db?: Database): Agent | null;
|
|
5
5
|
export declare function listAgents(db?: Database): Agent[];
|
|
6
|
+
export declare function touchAgent(idOrName: string, db?: Database): void;
|
|
7
|
+
export declare function listAgentsByProject(projectId: string, db?: Database): Agent[];
|
|
6
8
|
export declare function updateAgent(id: string, updates: {
|
|
7
9
|
name?: string;
|
|
8
10
|
description?: string;
|
|
9
11
|
role?: string;
|
|
10
12
|
metadata?: Record<string, unknown>;
|
|
13
|
+
active_project_id?: string | null;
|
|
11
14
|
}, db?: Database): Agent | null;
|
|
12
15
|
//# sourceMappingURL=agents.d.ts.map
|
package/dist/db/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/db/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/db/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAgB/C,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,CAsCP;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,GAAG,IAAI,CAsBd;AAED,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAMjD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAKhE;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAM7E;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACtI,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,GAAG,IAAI,CAyCd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmCtC,wBAAgB,SAAS,IAAI,MAAM,CAkBlC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmCtC,wBAAgB,SAAS,IAAI,MAAM,CAkBlC;AAyOD,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAerD;AA+BD,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAef"}
|
package/dist/index.js
CHANGED
|
@@ -296,6 +296,11 @@ var MIGRATIONS = [
|
|
|
296
296
|
CREATE INDEX IF NOT EXISTS idx_entity_memories_memory ON entity_memories(memory_id);
|
|
297
297
|
|
|
298
298
|
INSERT OR IGNORE INTO _migrations (id) VALUES (5);
|
|
299
|
+
`,
|
|
300
|
+
`
|
|
301
|
+
ALTER TABLE agents ADD COLUMN active_project_id TEXT REFERENCES projects(id) ON DELETE SET NULL;
|
|
302
|
+
CREATE INDEX IF NOT EXISTS idx_agents_active_project ON agents(active_project_id);
|
|
303
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (6);
|
|
299
304
|
`
|
|
300
305
|
];
|
|
301
306
|
var _db = null;
|
|
@@ -401,6 +406,7 @@ function parseAgentRow(row) {
|
|
|
401
406
|
description: row["description"] || null,
|
|
402
407
|
role: row["role"] || null,
|
|
403
408
|
metadata: JSON.parse(row["metadata"] || "{}"),
|
|
409
|
+
active_project_id: row["active_project_id"] || null,
|
|
404
410
|
created_at: row["created_at"],
|
|
405
411
|
last_seen_at: row["last_seen_at"]
|
|
406
412
|
};
|
|
@@ -477,6 +483,9 @@ function updateAgent(id, updates, db) {
|
|
|
477
483
|
if (updates.metadata !== undefined) {
|
|
478
484
|
d.run("UPDATE agents SET metadata = ? WHERE id = ?", [JSON.stringify(updates.metadata), agent.id]);
|
|
479
485
|
}
|
|
486
|
+
if ("active_project_id" in updates) {
|
|
487
|
+
d.run("UPDATE agents SET active_project_id = ? WHERE id = ?", [updates.active_project_id ?? null, agent.id]);
|
|
488
|
+
}
|
|
480
489
|
d.run("UPDATE agents SET last_seen_at = ? WHERE id = ?", [timestamp, agent.id]);
|
|
481
490
|
return getAgent(agent.id, d);
|
|
482
491
|
}
|
package/dist/mcp/index.js
CHANGED
|
@@ -4278,6 +4278,11 @@ var MIGRATIONS = [
|
|
|
4278
4278
|
CREATE INDEX IF NOT EXISTS idx_entity_memories_memory ON entity_memories(memory_id);
|
|
4279
4279
|
|
|
4280
4280
|
INSERT OR IGNORE INTO _migrations (id) VALUES (5);
|
|
4281
|
+
`,
|
|
4282
|
+
`
|
|
4283
|
+
ALTER TABLE agents ADD COLUMN active_project_id TEXT REFERENCES projects(id) ON DELETE SET NULL;
|
|
4284
|
+
CREATE INDEX IF NOT EXISTS idx_agents_active_project ON agents(active_project_id);
|
|
4285
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (6);
|
|
4281
4286
|
`
|
|
4282
4287
|
];
|
|
4283
4288
|
var _db = null;
|
|
@@ -4367,6 +4372,7 @@ function parseAgentRow(row) {
|
|
|
4367
4372
|
description: row["description"] || null,
|
|
4368
4373
|
role: row["role"] || null,
|
|
4369
4374
|
metadata: JSON.parse(row["metadata"] || "{}"),
|
|
4375
|
+
active_project_id: row["active_project_id"] || null,
|
|
4370
4376
|
created_at: row["created_at"],
|
|
4371
4377
|
last_seen_at: row["last_seen_at"]
|
|
4372
4378
|
};
|
|
@@ -4418,6 +4424,18 @@ function listAgents(db) {
|
|
|
4418
4424
|
const rows = d.query("SELECT * FROM agents ORDER BY last_seen_at DESC").all();
|
|
4419
4425
|
return rows.map(parseAgentRow);
|
|
4420
4426
|
}
|
|
4427
|
+
function touchAgent(idOrName, db) {
|
|
4428
|
+
const d = db || getDatabase();
|
|
4429
|
+
const agent = getAgent(idOrName, d);
|
|
4430
|
+
if (!agent)
|
|
4431
|
+
return;
|
|
4432
|
+
d.run("UPDATE agents SET last_seen_at = ? WHERE id = ?", [now(), agent.id]);
|
|
4433
|
+
}
|
|
4434
|
+
function listAgentsByProject(projectId, db) {
|
|
4435
|
+
const d = db || getDatabase();
|
|
4436
|
+
const rows = d.query("SELECT * FROM agents WHERE active_project_id = ? ORDER BY last_seen_at DESC").all(projectId);
|
|
4437
|
+
return rows.map(parseAgentRow);
|
|
4438
|
+
}
|
|
4421
4439
|
function updateAgent(id, updates, db) {
|
|
4422
4440
|
const d = db || getDatabase();
|
|
4423
4441
|
const agent = getAgent(id, d);
|
|
@@ -4443,6 +4461,9 @@ function updateAgent(id, updates, db) {
|
|
|
4443
4461
|
if (updates.metadata !== undefined) {
|
|
4444
4462
|
d.run("UPDATE agents SET metadata = ? WHERE id = ?", [JSON.stringify(updates.metadata), agent.id]);
|
|
4445
4463
|
}
|
|
4464
|
+
if ("active_project_id" in updates) {
|
|
4465
|
+
d.run("UPDATE agents SET active_project_id = ? WHERE id = ?", [updates.active_project_id ?? null, agent.id]);
|
|
4466
|
+
}
|
|
4446
4467
|
d.run("UPDATE agents SET last_seen_at = ? WHERE id = ?", [timestamp, agent.id]);
|
|
4447
4468
|
return getAgent(agent.id, d);
|
|
4448
4469
|
}
|
|
@@ -6059,6 +6080,8 @@ server.tool("memory_save", "Save/upsert a memory. scope: global=all agents, shar
|
|
|
6059
6080
|
input.ttl_ms = parseDuration(args.ttl_ms);
|
|
6060
6081
|
}
|
|
6061
6082
|
const memory = createMemory(input);
|
|
6083
|
+
if (args.agent_id)
|
|
6084
|
+
touchAgent(args.agent_id);
|
|
6062
6085
|
return { content: [{ type: "text", text: `Saved: ${memory.key} (${memory.id.slice(0, 8)})` }] };
|
|
6063
6086
|
} catch (e) {
|
|
6064
6087
|
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
@@ -6076,6 +6099,8 @@ server.tool("memory_recall", "Recall a memory by key. Returns the best matching
|
|
|
6076
6099
|
const memory = getMemoryByKey(args.key, args.scope, args.agent_id, args.project_id, args.session_id);
|
|
6077
6100
|
if (memory) {
|
|
6078
6101
|
touchMemory(memory.id);
|
|
6102
|
+
if (args.agent_id)
|
|
6103
|
+
touchAgent(args.agent_id);
|
|
6079
6104
|
return { content: [{ type: "text", text: formatMemory(memory) }] };
|
|
6080
6105
|
}
|
|
6081
6106
|
const results = searchMemories(args.key, {
|
|
@@ -6424,7 +6449,7 @@ server.tool("list_agents", "List all registered agents", {}, async () => {
|
|
|
6424
6449
|
if (agents.length === 0) {
|
|
6425
6450
|
return { content: [{ type: "text", text: "No agents registered." }] };
|
|
6426
6451
|
}
|
|
6427
|
-
const lines = agents.map((a) => `${a.id} | ${a.name} | ${a.role || "agent"} | last seen: ${a.last_seen_at}`);
|
|
6452
|
+
const lines = agents.map((a) => `${a.id} | ${a.name} | ${a.role || "agent"} | project: ${a.active_project_id || "-"} | last seen: ${a.last_seen_at}`);
|
|
6428
6453
|
return { content: [{ type: "text", text: `${agents.length} agent(s):
|
|
6429
6454
|
${lines.join(`
|
|
6430
6455
|
`)}` }] };
|
|
@@ -6456,12 +6481,13 @@ Last seen: ${agent.last_seen_at}`
|
|
|
6456
6481
|
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
6457
6482
|
}
|
|
6458
6483
|
});
|
|
6459
|
-
server.tool("update_agent", "Update agent name, description, role, or
|
|
6484
|
+
server.tool("update_agent", "Update agent name, description, role, metadata, or active_project_id.", {
|
|
6460
6485
|
id: exports_external.string(),
|
|
6461
6486
|
name: exports_external.string().optional(),
|
|
6462
6487
|
description: exports_external.string().optional(),
|
|
6463
6488
|
role: exports_external.string().optional(),
|
|
6464
|
-
metadata: exports_external.record(exports_external.unknown()).optional()
|
|
6489
|
+
metadata: exports_external.record(exports_external.unknown()).optional(),
|
|
6490
|
+
active_project_id: exports_external.string().nullable().optional()
|
|
6465
6491
|
}, async (args) => {
|
|
6466
6492
|
try {
|
|
6467
6493
|
const { id, ...updates } = args;
|
|
@@ -6477,7 +6503,7 @@ ID: ${agent.id}
|
|
|
6477
6503
|
Name: ${agent.name}
|
|
6478
6504
|
Description: ${agent.description || "-"}
|
|
6479
6505
|
Role: ${agent.role || "agent"}
|
|
6480
|
-
|
|
6506
|
+
Active project: ${agent.active_project_id || "-"}
|
|
6481
6507
|
Last seen: ${agent.last_seen_at}`
|
|
6482
6508
|
}]
|
|
6483
6509
|
};
|
|
@@ -6485,6 +6511,22 @@ Last seen: ${agent.last_seen_at}`
|
|
|
6485
6511
|
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
6486
6512
|
}
|
|
6487
6513
|
});
|
|
6514
|
+
server.tool("list_agents_by_project", "List agents currently active on a project.", {
|
|
6515
|
+
project_id: exports_external.string()
|
|
6516
|
+
}, async (args) => {
|
|
6517
|
+
try {
|
|
6518
|
+
const agents = listAgentsByProject(args.project_id);
|
|
6519
|
+
if (agents.length === 0) {
|
|
6520
|
+
return { content: [{ type: "text", text: `No active agents for project: ${args.project_id}` }] };
|
|
6521
|
+
}
|
|
6522
|
+
const lines = agents.map((a) => `${a.id} | ${a.name} | ${a.role || "agent"} | last seen: ${a.last_seen_at}`);
|
|
6523
|
+
return { content: [{ type: "text", text: `${agents.length} agent(s) on project ${args.project_id}:
|
|
6524
|
+
${lines.join(`
|
|
6525
|
+
`)}` }] };
|
|
6526
|
+
} catch (e) {
|
|
6527
|
+
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
6528
|
+
}
|
|
6529
|
+
});
|
|
6488
6530
|
server.tool("register_project", "Register a project for memory scoping", {
|
|
6489
6531
|
name: exports_external.string(),
|
|
6490
6532
|
path: exports_external.string(),
|
|
@@ -6998,16 +7040,25 @@ var FULL_SCHEMAS = {
|
|
|
6998
7040
|
example: '{"id":"maximus"}'
|
|
6999
7041
|
},
|
|
7000
7042
|
update_agent: {
|
|
7001
|
-
description: "Update agent name, description, role, or
|
|
7043
|
+
description: "Update agent name, description, role, metadata, or active_project_id. Call on session start to bind agent to current project.",
|
|
7002
7044
|
category: "agent",
|
|
7003
7045
|
params: {
|
|
7004
|
-
id: { type: "string", description: "Agent UUID", required: true },
|
|
7046
|
+
id: { type: "string", description: "Agent UUID or name", required: true },
|
|
7005
7047
|
name: { type: "string", description: "New name" },
|
|
7006
7048
|
description: { type: "string", description: "New description" },
|
|
7007
7049
|
role: { type: "string", description: "New role" },
|
|
7008
|
-
metadata: { type: "object", description: "New metadata" }
|
|
7050
|
+
metadata: { type: "object", description: "New metadata" },
|
|
7051
|
+
active_project_id: { type: "string", description: "Project ID this agent is currently working on (null to clear)" }
|
|
7052
|
+
},
|
|
7053
|
+
example: '{"id":"galba","active_project_id":"80a0be92-e0cc-4710-bce4-fb8a2e78e69e"}'
|
|
7054
|
+
},
|
|
7055
|
+
list_agents_by_project: {
|
|
7056
|
+
description: "List all agents currently active on a specific project.",
|
|
7057
|
+
category: "agent",
|
|
7058
|
+
params: {
|
|
7059
|
+
project_id: { type: "string", description: "Project ID", required: true }
|
|
7009
7060
|
},
|
|
7010
|
-
example: '{"
|
|
7061
|
+
example: '{"project_id":"80a0be92-e0cc-4710-bce4-fb8a2e78e69e"}'
|
|
7011
7062
|
},
|
|
7012
7063
|
register_project: {
|
|
7013
7064
|
description: "Register a project for memory scoping. Idempotent by name.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AACA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AA45BH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAoG9C"}
|
package/dist/server/index.js
CHANGED
|
@@ -289,6 +289,11 @@ var MIGRATIONS = [
|
|
|
289
289
|
CREATE INDEX IF NOT EXISTS idx_entity_memories_memory ON entity_memories(memory_id);
|
|
290
290
|
|
|
291
291
|
INSERT OR IGNORE INTO _migrations (id) VALUES (5);
|
|
292
|
+
`,
|
|
293
|
+
`
|
|
294
|
+
ALTER TABLE agents ADD COLUMN active_project_id TEXT REFERENCES projects(id) ON DELETE SET NULL;
|
|
295
|
+
CREATE INDEX IF NOT EXISTS idx_agents_active_project ON agents(active_project_id);
|
|
296
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (6);
|
|
292
297
|
`
|
|
293
298
|
];
|
|
294
299
|
var _db = null;
|
|
@@ -367,6 +372,7 @@ function parseAgentRow(row) {
|
|
|
367
372
|
description: row["description"] || null,
|
|
368
373
|
role: row["role"] || null,
|
|
369
374
|
metadata: JSON.parse(row["metadata"] || "{}"),
|
|
375
|
+
active_project_id: row["active_project_id"] || null,
|
|
370
376
|
created_at: row["created_at"],
|
|
371
377
|
last_seen_at: row["last_seen_at"]
|
|
372
378
|
};
|
|
@@ -418,6 +424,42 @@ function listAgents(db) {
|
|
|
418
424
|
const rows = d.query("SELECT * FROM agents ORDER BY last_seen_at DESC").all();
|
|
419
425
|
return rows.map(parseAgentRow);
|
|
420
426
|
}
|
|
427
|
+
function listAgentsByProject(projectId, db) {
|
|
428
|
+
const d = db || getDatabase();
|
|
429
|
+
const rows = d.query("SELECT * FROM agents WHERE active_project_id = ? ORDER BY last_seen_at DESC").all(projectId);
|
|
430
|
+
return rows.map(parseAgentRow);
|
|
431
|
+
}
|
|
432
|
+
function updateAgent(id, updates, db) {
|
|
433
|
+
const d = db || getDatabase();
|
|
434
|
+
const agent = getAgent(id, d);
|
|
435
|
+
if (!agent)
|
|
436
|
+
return null;
|
|
437
|
+
const timestamp = now();
|
|
438
|
+
if (updates.name) {
|
|
439
|
+
const normalizedNewName = updates.name.trim().toLowerCase();
|
|
440
|
+
if (normalizedNewName !== agent.name) {
|
|
441
|
+
const existing = d.query("SELECT id FROM agents WHERE LOWER(name) = ? AND id != ?").get(normalizedNewName, agent.id);
|
|
442
|
+
if (existing) {
|
|
443
|
+
throw new Error(`Agent name already taken: ${normalizedNewName}`);
|
|
444
|
+
}
|
|
445
|
+
d.run("UPDATE agents SET name = ? WHERE id = ?", [normalizedNewName, agent.id]);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
if (updates.description !== undefined) {
|
|
449
|
+
d.run("UPDATE agents SET description = ? WHERE id = ?", [updates.description, agent.id]);
|
|
450
|
+
}
|
|
451
|
+
if (updates.role !== undefined) {
|
|
452
|
+
d.run("UPDATE agents SET role = ? WHERE id = ?", [updates.role, agent.id]);
|
|
453
|
+
}
|
|
454
|
+
if (updates.metadata !== undefined) {
|
|
455
|
+
d.run("UPDATE agents SET metadata = ? WHERE id = ?", [JSON.stringify(updates.metadata), agent.id]);
|
|
456
|
+
}
|
|
457
|
+
if ("active_project_id" in updates) {
|
|
458
|
+
d.run("UPDATE agents SET active_project_id = ? WHERE id = ?", [updates.active_project_id ?? null, agent.id]);
|
|
459
|
+
}
|
|
460
|
+
d.run("UPDATE agents SET last_seen_at = ? WHERE id = ?", [timestamp, agent.id]);
|
|
461
|
+
return getAgent(agent.id, d);
|
|
462
|
+
}
|
|
421
463
|
|
|
422
464
|
// src/db/projects.ts
|
|
423
465
|
function parseProjectRow(row) {
|
|
@@ -2198,8 +2240,9 @@ addRoute("DELETE", "/api/memories/:id", (_req, _url, params) => {
|
|
|
2198
2240
|
}
|
|
2199
2241
|
return json({ deleted: true });
|
|
2200
2242
|
});
|
|
2201
|
-
addRoute("GET", "/api/agents", () => {
|
|
2202
|
-
const
|
|
2243
|
+
addRoute("GET", "/api/agents", (_req, url) => {
|
|
2244
|
+
const q = getSearchParams(url);
|
|
2245
|
+
const agents = q["project_id"] ? listAgentsByProject(q["project_id"]) : listAgents();
|
|
2203
2246
|
return json({ agents, count: agents.length });
|
|
2204
2247
|
});
|
|
2205
2248
|
addRoute("POST", "/api/agents", async (req) => {
|
|
@@ -2217,6 +2260,31 @@ addRoute("GET", "/api/agents/:id", (_req, _url, params) => {
|
|
|
2217
2260
|
}
|
|
2218
2261
|
return json(agent);
|
|
2219
2262
|
});
|
|
2263
|
+
addRoute("PATCH", "/api/agents/:id", async (req, _url, params) => {
|
|
2264
|
+
const body = await readJson(req);
|
|
2265
|
+
if (!body) {
|
|
2266
|
+
return errorResponse("Invalid JSON body", 400);
|
|
2267
|
+
}
|
|
2268
|
+
const updates = {};
|
|
2269
|
+
if (body["name"] !== undefined)
|
|
2270
|
+
updates.name = body["name"];
|
|
2271
|
+
if (body["description"] !== undefined)
|
|
2272
|
+
updates.description = body["description"];
|
|
2273
|
+
if (body["role"] !== undefined)
|
|
2274
|
+
updates.role = body["role"];
|
|
2275
|
+
if (body["metadata"] !== undefined)
|
|
2276
|
+
updates.metadata = body["metadata"];
|
|
2277
|
+
if ("active_project_id" in body)
|
|
2278
|
+
updates.active_project_id = body["active_project_id"] ?? null;
|
|
2279
|
+
try {
|
|
2280
|
+
const agent = updateAgent(params["id"], updates);
|
|
2281
|
+
if (!agent)
|
|
2282
|
+
return errorResponse("Agent not found", 404);
|
|
2283
|
+
return json(agent);
|
|
2284
|
+
} catch (e) {
|
|
2285
|
+
return errorResponse(e instanceof Error ? e.message : "Update failed", 400);
|
|
2286
|
+
}
|
|
2287
|
+
});
|
|
2220
2288
|
addRoute("GET", "/api/projects", () => {
|
|
2221
2289
|
const projects = listProjects();
|
|
2222
2290
|
return json({ projects, count: projects.length });
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|