@framers/agentos 0.13.74 → 0.13.76
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/io/channels/meetings/MeetingManager.d.ts +257 -0
- package/dist/io/channels/meetings/MeetingManager.d.ts.map +1 -0
- package/dist/io/channels/meetings/MeetingManager.js +1173 -0
- package/dist/io/channels/meetings/MeetingManager.js.map +1 -0
- package/dist/io/channels/meetings/MeetingRoom.d.ts +86 -0
- package/dist/io/channels/meetings/MeetingRoom.d.ts.map +1 -0
- package/dist/io/channels/meetings/MeetingRoom.js +51 -0
- package/dist/io/channels/meetings/MeetingRoom.js.map +1 -0
- package/dist/io/channels/meetings/MeetingTranscriptSink.d.ts +29 -0
- package/dist/io/channels/meetings/MeetingTranscriptSink.d.ts.map +1 -0
- package/dist/io/channels/meetings/MeetingTranscriptSink.js +47 -0
- package/dist/io/channels/meetings/MeetingTranscriptSink.js.map +1 -0
- package/dist/io/channels/meetings/signing.d.ts +7 -4
- package/dist/io/channels/meetings/signing.d.ts.map +1 -1
- package/dist/io/channels/meetings/signing.js +18 -6
- package/dist/io/channels/meetings/signing.js.map +1 -1
- package/dist/io/channels/meetings/stores/memory.d.ts +31 -2
- package/dist/io/channels/meetings/stores/memory.d.ts.map +1 -1
- package/dist/io/channels/meetings/stores/memory.js +102 -9
- package/dist/io/channels/meetings/stores/memory.js.map +1 -1
- package/dist/io/channels/meetings/stores/types.d.ts +29 -10
- package/dist/io/channels/meetings/stores/types.d.ts.map +1 -1
- package/dist/io/channels/meetings/stores/types.js.map +1 -1
- package/dist/io/channels/meetings/types.d.ts +10 -0
- package/dist/io/channels/meetings/types.d.ts.map +1 -1
- package/dist/io/channels/meetings/types.js.map +1 -1
- package/dist/io/media/images/providers/ReplicateImageProvider.d.ts +45 -1
- package/dist/io/media/images/providers/ReplicateImageProvider.d.ts.map +1 -1
- package/dist/io/media/images/providers/ReplicateImageProvider.js +141 -38
- package/dist/io/media/images/providers/ReplicateImageProvider.js.map +1 -1
- package/dist/io/voice-pipeline/types.d.ts +13 -8
- package/dist/io/voice-pipeline/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingManager.js","sourceRoot":"","sources":["../../../../src/io/channels/meetings/MeetingManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module channels/meetings/MeetingRoom
|
|
3
|
+
*
|
|
4
|
+
* The room-per-run helper. A run's LiveKit room is made at dispatch, never at
|
|
5
|
+
* scheduling: an empty room closes after its empty timeout and a join token
|
|
6
|
+
* expires, so a room made ahead of its meeting would be gone or unusable when
|
|
7
|
+
* the bot connects. The bot gets a publish-only token and the listening agent
|
|
8
|
+
* a subscribe-only one. The library imports no LiveKit server package: the
|
|
9
|
+
* host implements {@link IMeetingRoomService} on the server SDK it already
|
|
10
|
+
* holds.
|
|
11
|
+
*/
|
|
12
|
+
/** What the product implements on its LiveKit server SDK. */
|
|
13
|
+
export interface IMeetingRoomService {
|
|
14
|
+
/** The url a participant connects to (`wss://…`). */
|
|
15
|
+
readonly url: string;
|
|
16
|
+
/** Creates the room, which the server closes when nobody has joined within `emptyTimeoutSeconds` or `departureTimeoutSeconds` after the last participant leaves, and which holds at most `maxParticipants` at once. A room of that name that exists already is not an error (LiveKit's `CreateRoom` returns it): a dispatch tried again after a failure may ask for a room its first attempt made. */
|
|
17
|
+
createRoom(input: {
|
|
18
|
+
name: string;
|
|
19
|
+
emptyTimeoutSeconds: number;
|
|
20
|
+
departureTimeoutSeconds: number;
|
|
21
|
+
maxParticipants: number;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
/** Deletes the room. For a room that does not exist it must reject with an error whose `status` is 404 (the LiveKit server SDK's errors carry the response's HTTP status, so passing its error through does). */
|
|
24
|
+
deleteRoom(name: string): Promise<void>;
|
|
25
|
+
/** Mints a join token for one identity in one room with exactly the publish and subscribe rights given and no right to publish data, valid for `ttlSeconds`. With the LiveKit server SDK, set `canPublishData: false` in the grant: left unset, LiveKit allows data wherever `canPublish` is true. */
|
|
26
|
+
mintToken(input: {
|
|
27
|
+
room: string;
|
|
28
|
+
identity: string;
|
|
29
|
+
canPublish: boolean;
|
|
30
|
+
canSubscribe: boolean;
|
|
31
|
+
ttlSeconds: number;
|
|
32
|
+
}): Promise<string>;
|
|
33
|
+
}
|
|
34
|
+
/** How a host shapes each run's room. Every field has a default. */
|
|
35
|
+
export interface MeetingRoomOptions {
|
|
36
|
+
/** Put before the run id to name the room. Default `'bot-'`. */
|
|
37
|
+
prefix?: string;
|
|
38
|
+
/** Seconds the room stays open before anyone joins. Default 60. */
|
|
39
|
+
emptyTimeoutSeconds?: number;
|
|
40
|
+
/** Seconds the room stays open after the last participant leaves. Default 45. */
|
|
41
|
+
departureTimeoutSeconds?: number;
|
|
42
|
+
/** Seconds each token stays valid, long enough for the bot to connect after dispatch. Default 600. */
|
|
43
|
+
tokenTtlSeconds?: number;
|
|
44
|
+
/** The bot's identity in the room. Default `'bot'`. */
|
|
45
|
+
botIdentity?: string;
|
|
46
|
+
/** The listening agent's identity in the room. Default `'agent'`. */
|
|
47
|
+
agentIdentity?: string;
|
|
48
|
+
}
|
|
49
|
+
/** A run's room as {@link MeetingRoom.create} made it. The two tokens are secrets: the manager keeps neither on the run's record. */
|
|
50
|
+
export interface MeetingRoomHandle {
|
|
51
|
+
/** The service's url, the address the bot is given. An agent that reaches the server by another address, such as one inside the host's own network, connects there. */
|
|
52
|
+
url: string;
|
|
53
|
+
/** The room's name: the prefix, then the run id. */
|
|
54
|
+
name: string;
|
|
55
|
+
/** The identity the bot joins as. */
|
|
56
|
+
botIdentity: string;
|
|
57
|
+
/** The identity the listening agent joins as. */
|
|
58
|
+
agentIdentity: string;
|
|
59
|
+
/** The bot's token: it may publish and may not subscribe. */
|
|
60
|
+
publishToken: string;
|
|
61
|
+
/** The agent's token: it may subscribe and may not publish. */
|
|
62
|
+
subscribeToken: string;
|
|
63
|
+
}
|
|
64
|
+
/** One room per run, made at dispatch: a publish-only token for the bot, a subscribe-only token for the agent. */
|
|
65
|
+
export declare class MeetingRoom {
|
|
66
|
+
private readonly service;
|
|
67
|
+
private readonly prefix;
|
|
68
|
+
private readonly emptyTimeoutSeconds;
|
|
69
|
+
private readonly departureTimeoutSeconds;
|
|
70
|
+
private readonly tokenTtlSeconds;
|
|
71
|
+
private readonly botIdentity;
|
|
72
|
+
private readonly agentIdentity;
|
|
73
|
+
/**
|
|
74
|
+
* @param service - The host's room service on its LiveKit server SDK.
|
|
75
|
+
* @param options - The name prefix, the timeouts, the tokens' lifetime and the two identities; each has a default.
|
|
76
|
+
*/
|
|
77
|
+
constructor(service: IMeetingRoomService, options?: MeetingRoomOptions);
|
|
78
|
+
/**
|
|
79
|
+
* Makes the run's room, the prefix then the run id, for two participants (the bot and the agent), and mints the
|
|
80
|
+
* bot's publish-only token and the agent's subscribe-only token for it. Call it at dispatch, never at scheduling.
|
|
81
|
+
*/
|
|
82
|
+
create(runId: string): Promise<MeetingRoomHandle>;
|
|
83
|
+
/** Deletes the room; a room that is already gone is not an error. The service reports a missing room with `status` 404; any other error is thrown. */
|
|
84
|
+
delete(name: string): Promise<void>;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=MeetingRoom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingRoom.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/meetings/MeetingRoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sYAAsY;IACtY,UAAU,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,uBAAuB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1I,iNAAiN;IACjN,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,sSAAsS;IACtS,SAAS,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvI;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iFAAiF;IACjF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sGAAsG;IACtG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qIAAqI;AACrI,MAAM,WAAW,iBAAiB;IAChC,uKAAuK;IACvK,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,kHAAkH;AAClH,qBAAa,WAAW;IAYV,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;OAGG;gBAC0B,OAAO,EAAE,mBAAmB,EAAE,OAAO,GAAE,kBAAuB;IAS3F;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQvD,sJAAsJ;IAChJ,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS1C"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module channels/meetings/MeetingRoom
|
|
3
|
+
*
|
|
4
|
+
* The room-per-run helper. A run's LiveKit room is made at dispatch, never at
|
|
5
|
+
* scheduling: an empty room closes after its empty timeout and a join token
|
|
6
|
+
* expires, so a room made ahead of its meeting would be gone or unusable when
|
|
7
|
+
* the bot connects. The bot gets a publish-only token and the listening agent
|
|
8
|
+
* a subscribe-only one. The library imports no LiveKit server package: the
|
|
9
|
+
* host implements {@link IMeetingRoomService} on the server SDK it already
|
|
10
|
+
* holds.
|
|
11
|
+
*/
|
|
12
|
+
/** One room per run, made at dispatch: a publish-only token for the bot, a subscribe-only token for the agent. */
|
|
13
|
+
export class MeetingRoom {
|
|
14
|
+
/**
|
|
15
|
+
* @param service - The host's room service on its LiveKit server SDK.
|
|
16
|
+
* @param options - The name prefix, the timeouts, the tokens' lifetime and the two identities; each has a default.
|
|
17
|
+
*/
|
|
18
|
+
constructor(service, options = {}) {
|
|
19
|
+
this.service = service;
|
|
20
|
+
this.prefix = options.prefix ?? 'bot-';
|
|
21
|
+
this.emptyTimeoutSeconds = options.emptyTimeoutSeconds ?? 60;
|
|
22
|
+
this.departureTimeoutSeconds = options.departureTimeoutSeconds ?? 45;
|
|
23
|
+
this.tokenTtlSeconds = options.tokenTtlSeconds ?? 600;
|
|
24
|
+
this.botIdentity = options.botIdentity ?? 'bot';
|
|
25
|
+
this.agentIdentity = options.agentIdentity ?? 'agent';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Makes the run's room, the prefix then the run id, for two participants (the bot and the agent), and mints the
|
|
29
|
+
* bot's publish-only token and the agent's subscribe-only token for it. Call it at dispatch, never at scheduling.
|
|
30
|
+
*/
|
|
31
|
+
async create(runId) {
|
|
32
|
+
const name = `${this.prefix}${runId}`;
|
|
33
|
+
await this.service.createRoom({ name, emptyTimeoutSeconds: this.emptyTimeoutSeconds, departureTimeoutSeconds: this.departureTimeoutSeconds, maxParticipants: 2 });
|
|
34
|
+
const publishToken = await this.service.mintToken({ room: name, identity: this.botIdentity, canPublish: true, canSubscribe: false, ttlSeconds: this.tokenTtlSeconds });
|
|
35
|
+
const subscribeToken = await this.service.mintToken({ room: name, identity: this.agentIdentity, canPublish: false, canSubscribe: true, ttlSeconds: this.tokenTtlSeconds });
|
|
36
|
+
return { url: this.service.url, name, botIdentity: this.botIdentity, agentIdentity: this.agentIdentity, publishToken, subscribeToken };
|
|
37
|
+
}
|
|
38
|
+
/** Deletes the room; a room that is already gone is not an error. The service reports a missing room with `status` 404; any other error is thrown. */
|
|
39
|
+
async delete(name) {
|
|
40
|
+
try {
|
|
41
|
+
await this.service.deleteRoom(name);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
const status = err.status;
|
|
45
|
+
if (status === 404)
|
|
46
|
+
return;
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=MeetingRoom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingRoom.js","sourceRoot":"","sources":["../../../../src/io/channels/meetings/MeetingRoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA8CH,kHAAkH;AAClH,MAAM,OAAO,WAAW;IAQtB;;;OAGG;IACH,YAA6B,OAA4B,EAAE,UAA8B,EAAE;QAA9D,YAAO,GAAP,OAAO,CAAqB;QACvD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,EAAE,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;QAClK,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACvK,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3K,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;IACzI,CAAC;IAED,sJAAsJ;IACtJ,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;YACnD,IAAI,MAAM,KAAK,GAAG;gBAAE,OAAO;YAC3B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module channels/meetings/MeetingTranscriptSink
|
|
3
|
+
*
|
|
4
|
+
* The sink a listen session writes one run's transcript to: each final is
|
|
5
|
+
* stored as the run's next turn and recorded by the manager as a
|
|
6
|
+
* `bot:transcript` event. A turn that reaches a run behind the fence, or a run
|
|
7
|
+
* that is over, is dropped.
|
|
8
|
+
*/
|
|
9
|
+
import type { ITranscriptInputSink, TranscriptInput, TranscriptTurn } from '../../voice-pipeline/types.js';
|
|
10
|
+
import type { MeetingManager } from './MeetingManager.js';
|
|
11
|
+
import { type ITranscriptStore } from './stores/types.js';
|
|
12
|
+
/** Turn ids are assigned by the sink in arrival order, using the store's atomic counter for the run across sink instances. */
|
|
13
|
+
export declare class MeetingTranscriptSink implements ITranscriptInputSink {
|
|
14
|
+
private readonly options;
|
|
15
|
+
/**
|
|
16
|
+
* @param options - The manager that records each turn's event, the run's transcript store and the run the sink writes.
|
|
17
|
+
* @throws Error when the transcript store does not implement `appendNext`.
|
|
18
|
+
*/
|
|
19
|
+
constructor(options: {
|
|
20
|
+
manager: MeetingManager;
|
|
21
|
+
transcript: ITranscriptStore;
|
|
22
|
+
runId: string;
|
|
23
|
+
});
|
|
24
|
+
/** Retains the numbered-turn entry point for existing callers. */
|
|
25
|
+
append(turn: TranscriptTurn): Promise<void>;
|
|
26
|
+
/** Stores the final as the run's next turn and records its `bot:transcript` event; undefined when a fence or a run that is over drops it. */
|
|
27
|
+
appendNext(input: TranscriptInput): Promise<TranscriptTurn | undefined>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=MeetingTranscriptSink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingTranscriptSink.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/meetings/MeetingTranscriptSink.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,8HAA8H;AAC9H,qBAAa,qBAAsB,YAAW,oBAAoB;IAKpD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC;;;OAGG;gBAC0B,OAAO,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,UAAU,EAAE,gBAAgB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAI9G,kEAAkE;IAC5D,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD,6IAA6I;IACvI,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;CAY9E"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { FencedError } from './stores/types.js';
|
|
2
|
+
/** Turn ids are assigned by the sink in arrival order, using the store's atomic counter for the run across sink instances. */
|
|
3
|
+
export class MeetingTranscriptSink {
|
|
4
|
+
/**
|
|
5
|
+
* @param options - The manager that records each turn's event, the run's transcript store and the run the sink writes.
|
|
6
|
+
* @throws Error when the transcript store does not implement `appendNext`.
|
|
7
|
+
*/
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.options = options;
|
|
10
|
+
if (!options.transcript.appendNext)
|
|
11
|
+
throw new Error('the transcript store must allocate turn ids');
|
|
12
|
+
}
|
|
13
|
+
/** Retains the numbered-turn entry point for existing callers. */
|
|
14
|
+
async append(turn) {
|
|
15
|
+
if (turn.runId !== this.options.runId)
|
|
16
|
+
throw new Error('a sink writes one run');
|
|
17
|
+
const run = await this.options.manager.getRun(turn.runId);
|
|
18
|
+
if (!run || run.state === 'purging' || run.state === 'done' || run.state === 'failed')
|
|
19
|
+
return;
|
|
20
|
+
try {
|
|
21
|
+
await this.options.transcript.append(turn);
|
|
22
|
+
await this.options.manager.recordTranscript(turn);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
if (!(err instanceof FencedError))
|
|
26
|
+
throw err;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** Stores the final as the run's next turn and records its `bot:transcript` event; undefined when a fence or a run that is over drops it. */
|
|
30
|
+
async appendNext(input) {
|
|
31
|
+
if (input.runId !== this.options.runId)
|
|
32
|
+
throw new Error('a sink writes one run');
|
|
33
|
+
const run = await this.options.manager.getRun(input.runId);
|
|
34
|
+
if (!run || run.state === 'purging' || run.state === 'done' || run.state === 'failed')
|
|
35
|
+
return undefined;
|
|
36
|
+
try {
|
|
37
|
+
const turn = await this.options.transcript.appendNext(input);
|
|
38
|
+
return await this.options.manager.recordTranscript(turn) ? turn : undefined;
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
if (err instanceof FencedError)
|
|
42
|
+
return undefined;
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=MeetingTranscriptSink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingTranscriptSink.js","sourceRoot":"","sources":["../../../../src/io/channels/meetings/MeetingTranscriptSink.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEvE,8HAA8H;AAC9H,MAAM,OAAO,qBAAqB;IAChC;;;OAGG;IACH,YAA6B,OAAiF;QAAjF,YAAO,GAAP,OAAO,CAA0E;QAC5G,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACrG,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,MAAM,CAAC,IAAoB;QAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO;QAC9F,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,WAAW,CAAC;gBAAE,MAAM,GAAG,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,6IAA6I;IAC7I,KAAK,CAAC,UAAU,CAAC,KAAsB;QACrC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACxG,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAW,CAAC,KAAK,CAAC,CAAC;YAC9D,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,WAAW;gBAAE,OAAO,SAAS,CAAC;YACjD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -23,10 +23,11 @@ export declare const ENVELOPE_WINDOW_MS = 300000;
|
|
|
23
23
|
/**
|
|
24
24
|
* `v1,` then the base64 HMAC-SHA256 of `<id>.<timestamp>.<payload>` under the destination's secret.
|
|
25
25
|
*
|
|
26
|
-
* @param secret - The destination's secret.
|
|
26
|
+
* @param secret - The destination's nonempty secret, used as UTF-8 bytes without base64 decoding.
|
|
27
27
|
* @param id - The delivery's id.
|
|
28
28
|
* @param timestampMs - The time the delivery is signed, in milliseconds since the epoch.
|
|
29
29
|
* @param payload - The body exactly as it is sent.
|
|
30
|
+
* @throws Error when the secret is empty.
|
|
30
31
|
*/
|
|
31
32
|
export declare function signEnvelope(secret: string, id: string, timestampMs: number, payload: string): string;
|
|
32
33
|
/**
|
|
@@ -42,12 +43,12 @@ export declare function envelopeHeaders(secret: string, id: string, timestampMs:
|
|
|
42
43
|
/**
|
|
43
44
|
* The receiving side: the three headers, the raw payload and the receiver's clock.
|
|
44
45
|
*
|
|
45
|
-
* @param secret - The destination's secret.
|
|
46
|
-
* @param headers - The delivery's headers.
|
|
46
|
+
* @param secret - The destination's nonempty secret, used as UTF-8 bytes without base64 decoding.
|
|
47
|
+
* @param headers - The delivery's headers; the timestamp must contain only ASCII digits and is authenticated literally.
|
|
47
48
|
* @param payload - The body exactly as it arrived, before any parse.
|
|
48
49
|
* @param nowMs - The receiver's clock, in milliseconds since the epoch.
|
|
49
50
|
* @param options - `windowMs`, how far the delivery's time may be from `nowMs` ({@link ENVELOPE_WINDOW_MS} when absent); `names`, the header names ({@link DEFAULT_ENVELOPE_HEADERS} when absent).
|
|
50
|
-
* @returns `{ valid: true }`, or `valid: false` with why: a header missing, a timestamp
|
|
51
|
+
* @returns `{ valid: true }`, or `valid: false` with why: an empty secret, a header missing, a bad timestamp, a timestamp outside the window (including a NaN clock or window), or a signature that does not match.
|
|
51
52
|
*/
|
|
52
53
|
export declare function verifyEnvelope(secret: string, headers: Record<string, string | string[] | undefined>, payload: string, nowMs: number, options?: {
|
|
53
54
|
windowMs?: number;
|
|
@@ -83,6 +84,8 @@ export declare class SecretBox {
|
|
|
83
84
|
* @throws RangeError when `key` is not 32 bytes.
|
|
84
85
|
*/
|
|
85
86
|
constructor(key: Buffer);
|
|
87
|
+
/** Serialises only a redacted marker, never key bytes. */
|
|
88
|
+
toJSON(): string;
|
|
86
89
|
/**
|
|
87
90
|
* Seals `plain`; the sealed text differs on every call.
|
|
88
91
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/meetings/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,+IAA+I;AAC/I,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,iGAAiG;IACjG,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,mBAAmB,CAA8F,CAAC;AAClK,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/meetings/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,+IAA+I;AAC/I,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,iGAAiG;IACjG,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,mBAAmB,CAA8F,CAAC;AAClK,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAE1C;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrG;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,mBAA8C,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM/K;AAQD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,mBAAmB,CAAA;CAAO,GAC/D;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBpC;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,2GAA2G;AAC3G,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMvE;AAKD;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IAEjC;;;OAGG;gBACS,GAAG,EAAE,MAAM;IAKvB,0DAA0D;IAC1D,MAAM,IAAI,MAAM;IAIhB;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM;IAIzC;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM;CAG3C"}
|
|
@@ -16,12 +16,15 @@ export const ENVELOPE_WINDOW_MS = 300000;
|
|
|
16
16
|
/**
|
|
17
17
|
* `v1,` then the base64 HMAC-SHA256 of `<id>.<timestamp>.<payload>` under the destination's secret.
|
|
18
18
|
*
|
|
19
|
-
* @param secret - The destination's secret.
|
|
19
|
+
* @param secret - The destination's nonempty secret, used as UTF-8 bytes without base64 decoding.
|
|
20
20
|
* @param id - The delivery's id.
|
|
21
21
|
* @param timestampMs - The time the delivery is signed, in milliseconds since the epoch.
|
|
22
22
|
* @param payload - The body exactly as it is sent.
|
|
23
|
+
* @throws Error when the secret is empty.
|
|
23
24
|
*/
|
|
24
25
|
export function signEnvelope(secret, id, timestampMs, payload) {
|
|
26
|
+
if (secret.length === 0)
|
|
27
|
+
throw new Error('empty envelope secret');
|
|
25
28
|
const mac = createHmac('sha256', secret).update(`${id}.${timestampMs}.${payload}`).digest('base64');
|
|
26
29
|
return `v1,${mac}`;
|
|
27
30
|
}
|
|
@@ -49,14 +52,16 @@ function header(headers, name) {
|
|
|
49
52
|
/**
|
|
50
53
|
* The receiving side: the three headers, the raw payload and the receiver's clock.
|
|
51
54
|
*
|
|
52
|
-
* @param secret - The destination's secret.
|
|
53
|
-
* @param headers - The delivery's headers.
|
|
55
|
+
* @param secret - The destination's nonempty secret, used as UTF-8 bytes without base64 decoding.
|
|
56
|
+
* @param headers - The delivery's headers; the timestamp must contain only ASCII digits and is authenticated literally.
|
|
54
57
|
* @param payload - The body exactly as it arrived, before any parse.
|
|
55
58
|
* @param nowMs - The receiver's clock, in milliseconds since the epoch.
|
|
56
59
|
* @param options - `windowMs`, how far the delivery's time may be from `nowMs` ({@link ENVELOPE_WINDOW_MS} when absent); `names`, the header names ({@link DEFAULT_ENVELOPE_HEADERS} when absent).
|
|
57
|
-
* @returns `{ valid: true }`, or `valid: false` with why: a header missing, a timestamp
|
|
60
|
+
* @returns `{ valid: true }`, or `valid: false` with why: an empty secret, a header missing, a bad timestamp, a timestamp outside the window (including a NaN clock or window), or a signature that does not match.
|
|
58
61
|
*/
|
|
59
62
|
export function verifyEnvelope(secret, headers, payload, nowMs, options = {}) {
|
|
63
|
+
if (secret.length === 0)
|
|
64
|
+
return { valid: false, error: 'empty envelope secret' };
|
|
60
65
|
const names = options.names ?? DEFAULT_ENVELOPE_HEADERS;
|
|
61
66
|
const windowMs = options.windowMs ?? ENVELOPE_WINDOW_MS;
|
|
62
67
|
const id = header(headers, names.id);
|
|
@@ -64,12 +69,15 @@ export function verifyEnvelope(secret, headers, payload, nowMs, options = {}) {
|
|
|
64
69
|
const sig = header(headers, names.signature);
|
|
65
70
|
if (!id || !ts || !sig)
|
|
66
71
|
return { valid: false, error: 'missing envelope header' };
|
|
72
|
+
if (/[^0-9]/.test(ts))
|
|
73
|
+
return { valid: false, error: 'bad timestamp' };
|
|
67
74
|
const timestamp = Number(ts);
|
|
68
75
|
if (!Number.isFinite(timestamp))
|
|
69
76
|
return { valid: false, error: 'bad timestamp' };
|
|
70
|
-
if (Math.abs(nowMs - timestamp)
|
|
77
|
+
if (!(Math.abs(nowMs - timestamp) <= windowMs))
|
|
71
78
|
return { valid: false, error: 'outside the window' };
|
|
72
|
-
const
|
|
79
|
+
const mac = createHmac('sha256', secret).update(`${id}.${ts}.${payload}`).digest('base64');
|
|
80
|
+
const expected = Buffer.from(`v1,${mac}`);
|
|
73
81
|
const given = Buffer.from(sig);
|
|
74
82
|
if (expected.length !== given.length || !timingSafeEqual(expected, given))
|
|
75
83
|
return { valid: false, error: 'signature mismatch' };
|
|
@@ -118,6 +126,10 @@ export class SecretBox {
|
|
|
118
126
|
throw new RangeError('SecretBox needs a 32-byte key');
|
|
119
127
|
this.key = { id: SECRET_BOX_KEY_ID, key: Buffer.from(key) };
|
|
120
128
|
}
|
|
129
|
+
/** Serialises only a redacted marker, never key bytes. */
|
|
130
|
+
toJSON() {
|
|
131
|
+
return '[SecretBox redacted]';
|
|
132
|
+
}
|
|
121
133
|
/**
|
|
122
134
|
* Seals `plain`; the sealed text differs on every call.
|
|
123
135
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../../src/io/channels/meetings/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,mCAAmC,CAAC;AAW5F,kEAAkE;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAkC,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAClK,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAO,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../../src/io/channels/meetings/signing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { TranscriptInput } from '../../../voice-pipeline/types.js';
|
|
1
2
|
import { type MeetingEvent, type MeetingRunRecord, type MeetingRunState, type TranscriptTurn } from '../types.js';
|
|
2
|
-
import { type IClock, type IEventStore, type IJobStore, type IOutbox, type IRunStore, type ITranscriptStore, type MeetingJob, type OutboxDelivery, type RunFilter } from './types.js';
|
|
3
|
+
import { type IClock, type IEntitlementHook, type ReserveResult, type IEventStore, type IJobStore, type IOutbox, type IRunStore, type ITranscriptStore, type MeetingJob, type OutboxDelivery, type RunFilter } from './types.js';
|
|
3
4
|
/** The wall clock. */
|
|
4
5
|
export declare class SystemClock implements IClock {
|
|
5
6
|
now(): number;
|
|
@@ -17,6 +18,7 @@ export declare class FakeClock implements IClock {
|
|
|
17
18
|
}
|
|
18
19
|
/** Runs in memory, for tests and single-process hosts. Rows are copied in and out, so a caller never holds the stored row. */
|
|
19
20
|
export declare class InMemoryRunStore implements IRunStore {
|
|
21
|
+
forget(runId: string): Promise<void>;
|
|
20
22
|
private readonly runs;
|
|
21
23
|
insert(run: MeetingRunRecord): Promise<void>;
|
|
22
24
|
get(runId: string): Promise<MeetingRunRecord | undefined>;
|
|
@@ -27,6 +29,7 @@ export declare class InMemoryRunStore implements IRunStore {
|
|
|
27
29
|
}
|
|
28
30
|
/** Dispatch jobs in memory, for tests and single-process hosts: its leases hold within one process. */
|
|
29
31
|
export declare class InMemoryJobStore implements IJobStore {
|
|
32
|
+
forget(runId: string): Promise<void>;
|
|
30
33
|
private readonly jobs;
|
|
31
34
|
schedule(job: {
|
|
32
35
|
runId: string;
|
|
@@ -46,14 +49,17 @@ export declare class InMemoryJobStore implements IJobStore {
|
|
|
46
49
|
}
|
|
47
50
|
/** Transcript turns in memory: for tests, single-process hosts and runs that are not kept. */
|
|
48
51
|
export declare class InMemoryTranscriptStore implements ITranscriptStore {
|
|
52
|
+
forget(runId: string): Promise<void>;
|
|
49
53
|
private readonly turns;
|
|
54
|
+
private readonly lastSeq;
|
|
50
55
|
private readonly fenced;
|
|
51
56
|
append(turn: TranscriptTurn): Promise<void>;
|
|
57
|
+
appendNext(input: TranscriptInput): Promise<TranscriptTurn>;
|
|
52
58
|
read(runId: string, fromSeq: number, limit?: number): Promise<TranscriptTurn[]>;
|
|
53
59
|
fence(runId: string): Promise<void>;
|
|
54
60
|
isFenced(runId: string): Promise<boolean>;
|
|
55
61
|
purge(runId: string): Promise<void>;
|
|
56
|
-
/**
|
|
62
|
+
/** Alias for whole-run eviction after the retention grace. */
|
|
57
63
|
drop(runId: string): Promise<void>;
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
@@ -61,6 +67,7 @@ export declare class InMemoryTranscriptStore implements ITranscriptStore {
|
|
|
61
67
|
* Events are copied in and out, payloads included, so a caller never holds a stored event.
|
|
62
68
|
*/
|
|
63
69
|
export declare class InMemoryEventStore implements IEventStore {
|
|
70
|
+
forget(runId: string): Promise<void>;
|
|
64
71
|
private readonly byRun;
|
|
65
72
|
private readonly byId;
|
|
66
73
|
private readonly fenced;
|
|
@@ -74,6 +81,7 @@ export declare class InMemoryEventStore implements IEventStore {
|
|
|
74
81
|
}
|
|
75
82
|
/** Outbound deliveries in memory, for tests and single-process hosts. */
|
|
76
83
|
export declare class InMemoryOutbox implements IOutbox {
|
|
84
|
+
forget(runId: string): Promise<void>;
|
|
77
85
|
private readonly deliveries;
|
|
78
86
|
/** The runs whose content was purged: the outbox's fence. */
|
|
79
87
|
private readonly purgedRuns;
|
|
@@ -85,4 +93,25 @@ export declare class InMemoryOutbox implements IOutbox {
|
|
|
85
93
|
purgeContent(runId: string): Promise<void>;
|
|
86
94
|
listByRun(runId: string): Promise<OutboxDelivery[]>;
|
|
87
95
|
}
|
|
96
|
+
/** Reservations in memory for tests and single-process hosts; no external billing policy is applied. */
|
|
97
|
+
export declare class InMemoryEntitlementHook implements IEntitlementHook {
|
|
98
|
+
private readonly maxSeconds;
|
|
99
|
+
private readonly reservations;
|
|
100
|
+
/** @param maxSeconds - The most one reservation covers, in seconds; four hours when absent. */
|
|
101
|
+
constructor(maxSeconds?: number);
|
|
102
|
+
reserve(input: Parameters<IEntitlementHook['reserve']>[0]): Promise<ReserveResult>;
|
|
103
|
+
revalidate(id: string): Promise<boolean>;
|
|
104
|
+
meter(id: string, seconds: number): Promise<void>;
|
|
105
|
+
settle(id: string, billedSeconds: number): Promise<void>;
|
|
106
|
+
release(id: string): Promise<void>;
|
|
107
|
+
/** A copied reservation, for inspection by a single-process host. */
|
|
108
|
+
get(id: string): {
|
|
109
|
+
runId: string;
|
|
110
|
+
maxSeconds: number;
|
|
111
|
+
metered: number;
|
|
112
|
+
settled?: number;
|
|
113
|
+
released: boolean;
|
|
114
|
+
} | undefined;
|
|
115
|
+
forget(runId: string): Promise<void>;
|
|
116
|
+
}
|
|
88
117
|
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../../src/io/channels/meetings/stores/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACvI,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAEpB,sBAAsB;AACtB,qBAAa,WAAY,YAAW,MAAM;IACxC,GAAG,IAAI,MAAM;CAGd;AAED,6CAA6C;AAC7C,qBAAa,SAAU,YAAW,MAAM;IAE1B,OAAO,CAAC,CAAC;IADrB,qDAAqD;gBACjC,CAAC,EAAE,MAAM;IAC7B,GAAG,IAAI,MAAM;IAGb,uCAAuC;IACvC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAGzB,6BAA6B;IAC7B,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;CAGrB;AAED,8HAA8H;AAC9H,qBAAa,gBAAiB,YAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../../src/io/channels/meetings/stores/memory.ts"],"names":[],"mappings":"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"}
|