@mce-bt/microagents-memory 0.10.0 → 0.11.0

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/index.d.ts CHANGED
@@ -8,4 +8,5 @@ export { MemoryExtractor, createExtractionAdapter, type ExtractionLLMAdapter, ty
8
8
  export { createMemoryTools } from './memory-tools.js';
9
9
  export { SummarizationPipeline, type SummarizationPipelineConfig, type PipelineResult, } from './summarization-pipeline.js';
10
10
  export { RedisSessionStore, RedisChannelSessionStore, RedisSchedulerStateStore, IoredisLockClient, createRedisStateStores, type RedisStateConfig, type RedisStateStores, } from './redis-state.js';
11
+ export { PostgresJobStore, type PostgresJobStoreConfig } from './job-store-postgres.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -8,4 +8,5 @@ export { MemoryExtractor, createExtractionAdapter, } from './memory-extractor.js
8
8
  export { createMemoryTools } from './memory-tools.js';
9
9
  export { SummarizationPipeline, } from './summarization-pipeline.js';
10
10
  export { RedisSessionStore, RedisChannelSessionStore, RedisSchedulerStateStore, IoredisLockClient, createRedisStateStores, } from './redis-state.js';
11
+ export { PostgresJobStore } from './job-store-postgres.js';
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAuC,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAsC,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,aAAa,GAId,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,GAMf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,uBAAuB,GAMxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,qBAAqB,GAGtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,GAGvB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAuC,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAsC,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,aAAa,GAId,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,GAMf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,uBAAuB,GAMxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,qBAAqB,GAGtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,GAGvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAA+B,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { AgentJob, CreateJobInput, JobStore } from '@mce-bt/microagents-core';
2
+ /**
3
+ * Postgres-backed durable job store for agent-authored scheduled work
4
+ * (schedule_task). Same conventions as the other stores here: lazy
5
+ * CREATE TABLE at start, a namespace column as the tenant isolation boundary,
6
+ * and unqualified table names (the host's search_path decides the schema).
7
+ *
8
+ * Claiming uses FOR UPDATE SKIP LOCKED inside a single UPDATE…RETURNING, so
9
+ * exactly one worker wins a due job across replicas — the same guarantee the
10
+ * heartbeat Redis lock provides, but transactional with the reschedule.
11
+ */
12
+ export interface PostgresJobStoreConfig {
13
+ connectionString: string;
14
+ namespace?: string;
15
+ }
16
+ export declare class PostgresJobStore implements JobStore {
17
+ private readonly config;
18
+ private pool;
19
+ private readonly namespace;
20
+ constructor(config: PostgresJobStoreConfig);
21
+ start(): Promise<void>;
22
+ stop(): Promise<void>;
23
+ private db;
24
+ private ensureSchema;
25
+ create(input: CreateJobInput): Promise<AgentJob>;
26
+ listActive(namespace: string, agentId: string): Promise<AgentJob[]>;
27
+ claimDue(agentId: string, limit: number): Promise<AgentJob[]>;
28
+ recordRun(id: string, outcome: {
29
+ status: AgentJob['status'];
30
+ nextRunAt?: Date;
31
+ lastResultHash?: string;
32
+ failed?: boolean;
33
+ }): Promise<void>;
34
+ cancel(namespace: string, agentId: string, id: string): Promise<boolean>;
35
+ }
36
+ //# sourceMappingURL=job-store-postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-store-postgres.d.ts","sourceRoot":"","sources":["../src/job-store-postgres.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD,qBAAa,gBAAiB,YAAW,QAAQ;IAInC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,IAAI,CAA0C;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEN,MAAM,EAAE,sBAAsB;IAIrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,EAAE;YAKI,YAAY;IA+BpB,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4BhD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUnE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkB7D,SAAS,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;QACP,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3B,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GACA,OAAO,CAAC,IAAI,CAAC;IAaV,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ/E"}
@@ -0,0 +1,141 @@
1
+ import pkg from 'pg';
2
+ const { Pool } = pkg;
3
+ function rowToJob(r) {
4
+ return {
5
+ id: r.id,
6
+ agentId: r.agent_id,
7
+ namespace: r.namespace,
8
+ kind: r.kind,
9
+ runAt: new Date(r.run_at),
10
+ cron: r.cron ?? null,
11
+ intervalMs: r.interval_ms === null ? null : Number(r.interval_ms),
12
+ timezone: r.timezone ?? null,
13
+ goal: r.goal,
14
+ sendToChannels: Boolean(r.send_to_channels),
15
+ toolAllowlist: r.tool_allowlist ?? null,
16
+ endCondition: r.end_condition ?? null,
17
+ dedupKey: r.dedup_key ?? null,
18
+ status: r.status,
19
+ attempts: Number(r.attempts),
20
+ lastRunAt: r.last_run_at ? new Date(r.last_run_at) : null,
21
+ lastResultHash: r.last_result_hash ?? null,
22
+ createdBySession: r.created_by_session ?? null,
23
+ createdAt: new Date(r.created_at),
24
+ };
25
+ }
26
+ const COLUMNS = `id, agent_id, namespace, kind, run_at, cron, interval_ms, timezone, goal,
27
+ send_to_channels, tool_allowlist, end_condition, dedup_key, status, attempts,
28
+ last_run_at, last_result_hash, created_by_session, created_at`;
29
+ export class PostgresJobStore {
30
+ config;
31
+ pool = null;
32
+ namespace;
33
+ constructor(config) {
34
+ this.config = config;
35
+ this.namespace = config.namespace ?? 'default';
36
+ }
37
+ async start() {
38
+ this.pool = new Pool({ connectionString: this.config.connectionString });
39
+ await this.ensureSchema();
40
+ }
41
+ async stop() {
42
+ if (this.pool) {
43
+ await this.pool.end();
44
+ this.pool = null;
45
+ }
46
+ }
47
+ db() {
48
+ if (!this.pool)
49
+ throw new Error('PostgresJobStore not started');
50
+ return this.pool;
51
+ }
52
+ async ensureSchema() {
53
+ await this.db().query(`
54
+ CREATE TABLE IF NOT EXISTS agent_jobs (
55
+ id TEXT PRIMARY KEY,
56
+ agent_id TEXT NOT NULL,
57
+ namespace TEXT NOT NULL DEFAULT 'default',
58
+ kind TEXT NOT NULL,
59
+ run_at TIMESTAMPTZ NOT NULL,
60
+ cron TEXT,
61
+ interval_ms BIGINT,
62
+ timezone TEXT,
63
+ goal TEXT NOT NULL,
64
+ send_to_channels BOOLEAN NOT NULL DEFAULT TRUE,
65
+ tool_allowlist TEXT[],
66
+ end_condition TEXT,
67
+ dedup_key TEXT,
68
+ status TEXT NOT NULL DEFAULT 'active',
69
+ attempts INT NOT NULL DEFAULT 0,
70
+ last_run_at TIMESTAMPTZ,
71
+ last_result_hash TEXT,
72
+ created_by_session TEXT,
73
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
74
+ );
75
+ CREATE INDEX IF NOT EXISTS idx_agent_jobs_due
76
+ ON agent_jobs (agent_id, run_at) WHERE status = 'active';
77
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_agent_jobs_dedup
78
+ ON agent_jobs (namespace, agent_id, dedup_key)
79
+ WHERE status = 'active' AND dedup_key IS NOT NULL;
80
+ `);
81
+ }
82
+ async create(input) {
83
+ const id = `job-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
84
+ const { rows } = await this.db().query(`INSERT INTO agent_jobs
85
+ (id, agent_id, namespace, kind, run_at, cron, interval_ms, timezone, goal,
86
+ send_to_channels, tool_allowlist, end_condition, dedup_key, created_by_session)
87
+ VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14)
88
+ RETURNING ${COLUMNS}`, [
89
+ id,
90
+ input.agentId,
91
+ input.namespace,
92
+ input.kind,
93
+ input.runAt,
94
+ input.cron ?? null,
95
+ input.intervalMs ?? null,
96
+ input.timezone ?? null,
97
+ input.goal,
98
+ input.sendToChannels ?? true,
99
+ input.toolAllowlist ?? null,
100
+ input.endCondition ?? null,
101
+ input.dedupKey ?? null,
102
+ input.createdBySession ?? null,
103
+ ]);
104
+ return rowToJob(rows[0]);
105
+ }
106
+ async listActive(namespace, agentId) {
107
+ const { rows } = await this.db().query(`SELECT ${COLUMNS} FROM agent_jobs
108
+ WHERE namespace = $1 AND agent_id = $2 AND status = 'active'
109
+ ORDER BY run_at ASC`, [namespace, agentId]);
110
+ return rows.map((r) => rowToJob(r));
111
+ }
112
+ async claimDue(agentId, limit) {
113
+ // Push run_at forward on claim so a crashed worker's job re-becomes due
114
+ // after the visibility window instead of being lost mid-run.
115
+ const { rows } = await this.db().query(`UPDATE agent_jobs SET run_at = NOW() + interval '5 minutes'
116
+ WHERE id IN (
117
+ SELECT id FROM agent_jobs
118
+ WHERE agent_id = $1 AND status = 'active' AND run_at <= NOW()
119
+ ORDER BY run_at ASC
120
+ LIMIT $2
121
+ FOR UPDATE SKIP LOCKED
122
+ )
123
+ RETURNING ${COLUMNS}`, [agentId, limit]);
124
+ return rows.map((r) => rowToJob(r));
125
+ }
126
+ async recordRun(id, outcome) {
127
+ await this.db().query(`UPDATE agent_jobs
128
+ SET status = $2,
129
+ run_at = COALESCE($3, run_at),
130
+ last_run_at = NOW(),
131
+ last_result_hash = COALESCE($4, last_result_hash),
132
+ attempts = attempts + $5
133
+ WHERE id = $1`, [id, outcome.status, outcome.nextRunAt ?? null, outcome.lastResultHash ?? null, outcome.failed ? 1 : 0]);
134
+ }
135
+ async cancel(namespace, agentId, id) {
136
+ const { rowCount } = await this.db().query(`UPDATE agent_jobs SET status = 'cancelled'
137
+ WHERE namespace = $1 AND agent_id = $2 AND id = $3 AND status = 'active'`, [namespace, agentId, id]);
138
+ return (rowCount ?? 0) > 0;
139
+ }
140
+ }
141
+ //# sourceMappingURL=job-store-postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-store-postgres.js","sourceRoot":"","sources":["../src/job-store-postgres.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mce-bt/microagents-memory",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "3-tier memory system — STM (Redis), MTM (Postgres), LTM (Postgres + pgvector)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",