@mce-bt/microagents-memory 0.16.0 → 0.17.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/redis-state.d.ts +19 -1
- package/dist/redis-state.d.ts.map +1 -1
- package/dist/redis-state.js +39 -0
- package/dist/redis-state.js.map +1 -1
- package/package.json +1 -1
package/dist/redis-state.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Redis } from 'ioredis';
|
|
2
|
-
import type { Session, SessionStore, SchedulerJobState, SchedulerStateStore, ChannelSessionStore } from '@mce-bt/microagents-core';
|
|
2
|
+
import type { Session, SessionStore, SchedulerJobState, SchedulerStateStore, ChannelSessionStore, ChannelAuthStore } from '@mce-bt/microagents-core';
|
|
3
3
|
/**
|
|
4
4
|
* Redis-backed durable state for agents: sessions, channel↔session mappings,
|
|
5
5
|
* scheduler run-state, and the client adapter for core's RedisLockProvider.
|
|
@@ -52,6 +52,23 @@ export declare class RedisChannelSessionStore implements ChannelSessionStore {
|
|
|
52
52
|
reset(channelType: string, externalId: string): Promise<void>;
|
|
53
53
|
listExternalIds(channelType: string): Promise<string[]>;
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Pairing credentials for token-less channel adapters (WhatsApp linked-device
|
|
57
|
+
* state). Deliberately NO TTL: an expired session mapping is a mild UX bump,
|
|
58
|
+
* an expired credential blob silently unlinks the channel and demands a
|
|
59
|
+
* human re-pair — auth lives until logout() or an explicit clear().
|
|
60
|
+
*/
|
|
61
|
+
export declare class RedisChannelAuthStore implements ChannelAuthStore {
|
|
62
|
+
private redis;
|
|
63
|
+
private agentId;
|
|
64
|
+
constructor(redis: Redis, agentId: string);
|
|
65
|
+
private key;
|
|
66
|
+
private indexKey;
|
|
67
|
+
get(channelType: string, name: string): Promise<Buffer | null>;
|
|
68
|
+
set(channelType: string, name: string, value: Buffer): Promise<void>;
|
|
69
|
+
delete(channelType: string, name: string): Promise<void>;
|
|
70
|
+
clear(channelType: string): Promise<void>;
|
|
71
|
+
}
|
|
55
72
|
export declare class RedisSchedulerStateStore implements SchedulerStateStore {
|
|
56
73
|
private redis;
|
|
57
74
|
private agentId;
|
|
@@ -77,6 +94,7 @@ export declare class IoredisLockClient {
|
|
|
77
94
|
export interface RedisStateStores {
|
|
78
95
|
sessionStore: RedisSessionStore;
|
|
79
96
|
channelSessions: RedisChannelSessionStore;
|
|
97
|
+
channelAuth: RedisChannelAuthStore;
|
|
80
98
|
schedulerState: RedisSchedulerStateStore;
|
|
81
99
|
lockClient: IoredisLockClient;
|
|
82
100
|
/** Connect + ping. The agent races this against a boot timeout. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-state.d.ts","sourceRoot":"","sources":["../src/redis-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"redis-state.d.ts","sourceRoot":"","sources":["../src/redis-state.ts"],"names":[],"mappings":"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"}
|
package/dist/redis-state.js
CHANGED
|
@@ -114,6 +114,44 @@ export class RedisChannelSessionStore {
|
|
|
114
114
|
return this.redis.zrevrange(this.indexKey(channelType), 0, -1);
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Pairing credentials for token-less channel adapters (WhatsApp linked-device
|
|
119
|
+
* state). Deliberately NO TTL: an expired session mapping is a mild UX bump,
|
|
120
|
+
* an expired credential blob silently unlinks the channel and demands a
|
|
121
|
+
* human re-pair — auth lives until logout() or an explicit clear().
|
|
122
|
+
*/
|
|
123
|
+
export class RedisChannelAuthStore {
|
|
124
|
+
redis;
|
|
125
|
+
agentId;
|
|
126
|
+
constructor(redis, agentId) {
|
|
127
|
+
this.redis = redis;
|
|
128
|
+
this.agentId = agentId;
|
|
129
|
+
}
|
|
130
|
+
key(channelType, name) {
|
|
131
|
+
return `chanauth:${this.agentId}:${channelType}:${name}`;
|
|
132
|
+
}
|
|
133
|
+
indexKey(channelType) {
|
|
134
|
+
return `chanauthidx:${this.agentId}:${channelType}`;
|
|
135
|
+
}
|
|
136
|
+
async get(channelType, name) {
|
|
137
|
+
return this.redis.getBuffer(this.key(channelType, name));
|
|
138
|
+
}
|
|
139
|
+
async set(channelType, name, value) {
|
|
140
|
+
await this.redis.set(this.key(channelType, name), value);
|
|
141
|
+
await this.redis.sadd(this.indexKey(channelType), name);
|
|
142
|
+
}
|
|
143
|
+
async delete(channelType, name) {
|
|
144
|
+
await this.redis.del(this.key(channelType, name));
|
|
145
|
+
await this.redis.srem(this.indexKey(channelType), name);
|
|
146
|
+
}
|
|
147
|
+
async clear(channelType) {
|
|
148
|
+
const names = await this.redis.smembers(this.indexKey(channelType));
|
|
149
|
+
if (names.length > 0) {
|
|
150
|
+
await this.redis.del(names.map((n) => this.key(channelType, n)));
|
|
151
|
+
}
|
|
152
|
+
await this.redis.del(this.indexKey(channelType));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
117
155
|
export class RedisSchedulerStateStore {
|
|
118
156
|
redis;
|
|
119
157
|
agentId;
|
|
@@ -162,6 +200,7 @@ export function createRedisStateStores(config) {
|
|
|
162
200
|
return {
|
|
163
201
|
sessionStore: new RedisSessionStore(redis, config.agentId, config.sessionTtlS),
|
|
164
202
|
channelSessions: new RedisChannelSessionStore(redis, config.agentId, config.channelTtlS),
|
|
203
|
+
channelAuth: new RedisChannelAuthStore(redis, config.agentId),
|
|
165
204
|
schedulerState: new RedisSchedulerStateStore(redis, config.agentId, config.schedulerTtlS),
|
|
166
205
|
lockClient: new IoredisLockClient(redis),
|
|
167
206
|
async start() {
|
package/dist/redis-state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-state.js","sourceRoot":"","sources":["../src/redis-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"redis-state.js","sourceRoot":"","sources":["../src/redis-state.ts"],"names":[],"mappings":"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"}
|