@framers/agentos 0.13.79 → 0.13.81
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/agents/agency/AgencyMemoryManager.js +1 -1
- package/dist/agents/agency/AgencyMemoryManager.js.map +1 -1
- package/dist/agents/definitions/AgentCore.d.ts.map +1 -1
- package/dist/agents/definitions/AgentCore.js +7 -3
- package/dist/agents/definitions/AgentCore.js.map +1 -1
- package/dist/agents/definitions/AgentPoolAgent.d.ts +1 -0
- package/dist/agents/definitions/AgentPoolAgent.d.ts.map +1 -1
- package/dist/agents/definitions/AgentPoolAgent.js +24 -6
- package/dist/agents/definitions/AgentPoolAgent.js.map +1 -1
- package/dist/api/AgentOS.js +1 -1
- package/dist/api/AgentOS.js.map +1 -1
- package/dist/api/runtime/GMIChunkTransformer.d.ts.map +1 -1
- package/dist/api/runtime/GMIChunkTransformer.js +1 -1
- package/dist/api/runtime/GMIChunkTransformer.js.map +1 -1
- package/dist/api/runtime/strategies/shared.d.ts +7 -4
- package/dist/api/runtime/strategies/shared.d.ts.map +1 -1
- package/dist/api/runtime/strategies/shared.js +12 -4
- package/dist/api/runtime/strategies/shared.js.map +1 -1
- package/dist/api/structured/output/StructuredOutputManager.js +1 -1
- package/dist/api/structured/output/StructuredOutputManager.js.map +1 -1
- package/dist/api/types.d.ts +5 -4
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/cognition/nlp/ai_utilities/LLMUtilityAI.js +7 -7
- package/dist/cognition/nlp/ai_utilities/LLMUtilityAI.js.map +1 -1
- package/dist/cognition/rag/VectorStoreManager.d.ts.map +1 -1
- package/dist/cognition/rag/VectorStoreManager.js +5 -2
- package/dist/cognition/rag/VectorStoreManager.js.map +1 -1
- package/dist/cognition/substrate/GMIManager.d.ts.map +1 -1
- package/dist/cognition/substrate/GMIManager.js +4 -1
- package/dist/cognition/substrate/GMIManager.js.map +1 -1
- package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/AnthropicProvider.js +8 -2
- package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/GeminiProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/GeminiProvider.js +4 -1
- package/dist/core/llm/providers/implementations/GeminiProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/OllamaProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OllamaProvider.js +81 -60
- package/dist/core/llm/providers/implementations/OllamaProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OpenAIProvider.js +14 -5
- package/dist/core/llm/providers/implementations/OpenAIProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js +19 -6
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -1
- package/dist/io/channels/ChannelRouter.d.ts.map +1 -1
- package/dist/io/channels/ChannelRouter.js +4 -1
- package/dist/io/channels/ChannelRouter.js.map +1 -1
- package/dist/io/channels/meetings/signing.d.ts +19 -18
- package/dist/io/channels/meetings/signing.d.ts.map +1 -1
- package/dist/io/channels/meetings/signing.js +32 -20
- package/dist/io/channels/meetings/signing.js.map +1 -1
- package/dist/io/channels/meetings/stores/sql.d.ts +160 -0
- package/dist/io/channels/meetings/stores/sql.d.ts.map +1 -0
- package/dist/io/channels/meetings/stores/sql.js +497 -0
- package/dist/io/channels/meetings/stores/sql.js.map +1 -0
- package/dist/io/voice-pipeline/LiveKitStreamTransport.d.ts +8 -0
- package/dist/io/voice-pipeline/LiveKitStreamTransport.d.ts.map +1 -1
- package/dist/io/voice-pipeline/LiveKitStreamTransport.js +32 -1
- package/dist/io/voice-pipeline/LiveKitStreamTransport.js.map +1 -1
- package/dist/orchestration/planner/PlanningEngine.js +5 -5
- package/dist/orchestration/planner/PlanningEngine.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelRouter.d.ts","sourceRoot":"","sources":["../../../src/io/channels/ChannelRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"ChannelRouter.d.ts","sourceRoot":"","sources":["../../../src/io/channels/ChannelRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @module @framers/agentos/channels/ChannelRouter
|
|
14
14
|
*/
|
|
15
|
+
import { createHash } from 'node:crypto';
|
|
15
16
|
import { evaluateGroupPolicy } from './group-policy.js';
|
|
16
17
|
// ============================================================================
|
|
17
18
|
// ChannelRouter
|
|
@@ -311,7 +312,9 @@ export class ChannelRouter {
|
|
|
311
312
|
await Promise.resolve(handler(message, binding, session));
|
|
312
313
|
}
|
|
313
314
|
catch (err) {
|
|
314
|
-
console.error(`[ChannelRouter] Handler error for ${message.platform}:${message.conversationId}:`, err
|
|
315
|
+
console.error(`[ChannelRouter] Handler error for ${message.platform}:${createHash('sha256').update(message.conversationId).digest('hex').slice(0, 8)}:`, err instanceof Error
|
|
316
|
+
? { name: err.name, message: err.message }
|
|
317
|
+
: { name: 'Error', message: 'Inbound message handler failed.' });
|
|
315
318
|
}
|
|
316
319
|
});
|
|
317
320
|
await Promise.allSettled(handlerPromises);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelRouter.js","sourceRoot":"","sources":["../../../src/io/channels/ChannelRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"ChannelRouter.js","sourceRoot":"","sources":["../../../src/io/channels/ChannelRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAgCxD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,aAAa;IAA1B;QACE,6CAA6C;QACrC,aAAQ,GAAiC,IAAI,GAAG,EAAE,CAAC;QAE3D,0CAA0C;QAClC,aAAQ,GAAsC,IAAI,GAAG,EAAE,CAAC;QAEhE,0CAA0C;QAClC,aAAQ,GAAgC,IAAI,GAAG,EAAE,CAAC;QAE1D,gCAAgC;QACxB,oBAAe,GAA+B,IAAI,GAAG,EAAE,CAAC;QAEhE,oEAAoE;QAC5D,iBAAY,GAA0B,IAAI,GAAG,EAAE,CAAC;QAExD,yDAAyD;QACjD,kBAAa,GAA4B,IAAI,GAAG,EAAE,CAAC;IA8V7D,CAAC;IA5VC,2BAA2B;IAE3B;;OAEG;IACH,eAAe,CAAC,OAAwB,EAAE,OAAgC;QACxE,MAAM,GAAG,GAAG,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;QAErD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,+CAA+C;YAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEhC,4CAA4C;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAsB,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,kBAAkB;gBACrD,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;gBACvC,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,WAAW;gBACtC,eAAe,EAAE,EAAE,EAAE,oCAAoC;aAC1D,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2BAA2B;IAE3B;;OAEG;IACH,UAAU,CAAC,OAA6B;QACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAiB;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc;QAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,0BAA0B,CAAC,QAAyB,EAAE,cAAsB;QAC1E,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,cAAc,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpD,OAAO,UAAU;aACd,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAA6B,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAc;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,aAAa,CAC5D,CAAC;IACJ,CAAC;IAED,yBAAyB;IAEzB;;OAEG;IACH,SAAS,CAAC,OAA8B;QACtC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,MAAc,EACd,QAAyB,EACzB,cAAsB,EACtB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,GAAG,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAElE,yBAAyB;QACzB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QAEpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAuB;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,MAAM,EACN,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,SAAS,EACjB,OAAO,CACR,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACX,gCAAgC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,UAAU,EAC/E,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,QAAyB,EACzB,cAAsB,EACtB,QAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,2BAA2B;IAE3B;;OAEG;IACH,kBAAkB,CAChB,MAAc,EACd,QAAyB,EACzB,cAAsB;QAEtB,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;QAC7D,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG;gBACR,SAAS,EAAE,UAAU;gBACrB,MAAM;gBACN,QAAQ;gBACR,cAAc;gBACd,gBAAgB,EAAE,QAAQ;gBAC1B,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACvC,YAAY,EAAE,CAAC;gBACf,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc;QAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtF,CAAC;IAED,cAAc;IAEd,QAAQ;QAMN,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,QAAQ;gBAAE,cAAc,EAAE,CAAC;QACnC,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC5B,cAAc;YACd,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;SAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,mBAAmB,CAAC,OAAuB;QACtD,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,gBAAgB;IAER,KAAK,CAAC,oBAAoB,CAAC,OAAuB;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAE3F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,6DAA6D;YAC7D,OAAO;QACT,CAAC;QAED,qFAAqF;QACrF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,sEAAsE;YACtE,mEAAmE;YACnE,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC5D,OAAO,EAAE,OAAO,CAAC,gBAAgB,KAAK,QAAQ;gBAC9C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC3B,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;gBAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,KAAK,IAAI;gBACnD,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,SAA+B;gBAClE,kBAAkB,EAAE,OAAO,CAAC,WAAW;aACxC,CAAC,CAAC;YACH,IAAI,YAAY,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBACpC,qEAAqE;gBACrE,uEAAuE;gBACvE,yEAAyE;gBACzE,6DAA6D;gBAC7D,OAAO,CAAC,IAAI,CACV,4CAA4C,YAAY,CAAC,MAAM,aAAa,OAAO,CAAC,QAAQ,YAAY,OAAO,CAAC,SAAS,EAAE,CAC5H,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CACrC,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,cAAc,CACvB,CAAC;YACF,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;YAC1C,OAAO,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YACpD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;YACtC,CAAC;YAED,sCAAsC;YACtC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACtE,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CACX,qCAAqC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EACzI,GAAG,YAAY,KAAK;wBAClB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;wBAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAClE,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,YAAY,CAClB,MAAc,EACd,QAAyB,EACzB,cAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC1E,OAAO,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,YAAY,EAAE,CAAC;IACzB,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAAE,SAAS;YAChC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -70,35 +70,36 @@ export declare function hashWorkerToken(token: string): string;
|
|
|
70
70
|
*/
|
|
71
71
|
export declare function workerTokenMatches(token: string, hash: string): boolean;
|
|
72
72
|
/**
|
|
73
|
-
* Seals a run's meeting url at rest under
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* run's row does not open there.
|
|
73
|
+
* Seals a run's meeting url at rest under the current 32-byte key, with the
|
|
74
|
+
* library's AES-256-GCM sealing ({@link sealSecret}, {@link openSecret}).
|
|
75
|
+
* Previous keys open older texts. Every seal uses a fresh nonce and the
|
|
76
|
+
* stored form remains `v1.box.<base64url(nonce | ciphertext | tag)>`.
|
|
77
|
+
* The run's id is bound as context, so moving a text to another row fails.
|
|
79
78
|
*/
|
|
80
79
|
export declare class SecretBox {
|
|
81
80
|
private readonly key;
|
|
81
|
+
private readonly previousKeys;
|
|
82
82
|
/**
|
|
83
|
-
* @param key - The
|
|
84
|
-
* @
|
|
83
|
+
* @param key - The current 32-byte key, copied so later buffer changes cannot change the box.
|
|
84
|
+
* @param options - Previous 32-byte keys, copied and tried in order on open; never used to seal new text.
|
|
85
|
+
* @throws RangeError when any key is not 32 bytes.
|
|
85
86
|
*/
|
|
86
|
-
constructor(key: Buffer
|
|
87
|
-
|
|
87
|
+
constructor(key: Buffer, options?: {
|
|
88
|
+
previousKeys?: readonly Buffer[];
|
|
89
|
+
});
|
|
90
|
+
/** Serialises only a redacted marker, never current or previous key bytes. */
|
|
88
91
|
toJSON(): string;
|
|
89
92
|
/**
|
|
90
|
-
* Seals
|
|
91
|
-
*
|
|
93
|
+
* Seals with the current key and a fresh nonce.
|
|
92
94
|
* @param plain - The text to seal.
|
|
93
|
-
* @param context -
|
|
95
|
+
* @param context - The run's id, bound as additional authenticated data; empty when absent.
|
|
94
96
|
*/
|
|
95
97
|
seal(plain: string, context?: string): string;
|
|
96
98
|
/**
|
|
97
|
-
* Opens
|
|
98
|
-
*
|
|
99
|
-
* @param
|
|
100
|
-
* @
|
|
101
|
-
* @throws SealedSecretError when the text is not a sealed text, was sealed under another key or with another context, or was changed.
|
|
99
|
+
* Opens with the current key, then each previous key in order.
|
|
100
|
+
* @param sealed - The sealed text, including an older `v1.box` text.
|
|
101
|
+
* @param context - The context used to seal; empty when absent.
|
|
102
|
+
* @throws SealedSecretError when the format, key, context or authentication fails for every candidate.
|
|
102
103
|
*/
|
|
103
104
|
open(sealed: string, context?: string): string;
|
|
104
105
|
}
|
|
@@ -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;;;;;;;;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
|
|
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;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;OAIG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAO;IAS3E,8EAA8E;IAC9E,MAAM,IAAI,MAAM;IAIhB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM;IAIzC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM;CAU3C"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* provider.
|
|
9
9
|
*/
|
|
10
10
|
import { createHash, createHmac, randomBytes, timingSafeEqual } from 'node:crypto';
|
|
11
|
-
import { openSecret, sealSecret } from '../../../core/llm/auth/sealing.js';
|
|
11
|
+
import { openSecret, sealSecret, SealedSecretError } from '../../../core/llm/auth/sealing.js';
|
|
12
12
|
/** The header names the envelope uses when a host passes none. */
|
|
13
13
|
export const DEFAULT_ENVELOPE_HEADERS = { id: 'x-webhook-id', timestamp: 'x-webhook-timestamp', signature: 'x-webhook-signature' };
|
|
14
14
|
/** How far a delivery's timestamp may be from the receiver's clock. */
|
|
@@ -109,45 +109,57 @@ export function workerTokenMatches(token, hash) {
|
|
|
109
109
|
// The key id the box writes into each sealed text. It is part of the stored form: a text sealed under one id opens only under that id.
|
|
110
110
|
const SECRET_BOX_KEY_ID = 'box';
|
|
111
111
|
/**
|
|
112
|
-
* Seals a run's meeting url at rest under
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
* run's row does not open there.
|
|
112
|
+
* Seals a run's meeting url at rest under the current 32-byte key, with the
|
|
113
|
+
* library's AES-256-GCM sealing ({@link sealSecret}, {@link openSecret}).
|
|
114
|
+
* Previous keys open older texts. Every seal uses a fresh nonce and the
|
|
115
|
+
* stored form remains `v1.box.<base64url(nonce | ciphertext | tag)>`.
|
|
116
|
+
* The run's id is bound as context, so moving a text to another row fails.
|
|
118
117
|
*/
|
|
119
118
|
export class SecretBox {
|
|
120
119
|
/**
|
|
121
|
-
* @param key - The
|
|
122
|
-
* @
|
|
120
|
+
* @param key - The current 32-byte key, copied so later buffer changes cannot change the box.
|
|
121
|
+
* @param options - Previous 32-byte keys, copied and tried in order on open; never used to seal new text.
|
|
122
|
+
* @throws RangeError when any key is not 32 bytes.
|
|
123
123
|
*/
|
|
124
|
-
constructor(key) {
|
|
124
|
+
constructor(key, options = {}) {
|
|
125
125
|
if (key.length !== 32)
|
|
126
126
|
throw new RangeError('SecretBox needs a 32-byte key');
|
|
127
127
|
this.key = { id: SECRET_BOX_KEY_ID, key: Buffer.from(key) };
|
|
128
|
+
this.previousKeys = (options.previousKeys ?? []).map((previous) => {
|
|
129
|
+
if (previous.length !== 32)
|
|
130
|
+
throw new RangeError('SecretBox needs a 32-byte key');
|
|
131
|
+
return { id: SECRET_BOX_KEY_ID, key: Buffer.from(previous) };
|
|
132
|
+
});
|
|
128
133
|
}
|
|
129
|
-
/** Serialises only a redacted marker, never key bytes. */
|
|
134
|
+
/** Serialises only a redacted marker, never current or previous key bytes. */
|
|
130
135
|
toJSON() {
|
|
131
136
|
return '[SecretBox redacted]';
|
|
132
137
|
}
|
|
133
138
|
/**
|
|
134
|
-
* Seals
|
|
135
|
-
*
|
|
139
|
+
* Seals with the current key and a fresh nonce.
|
|
136
140
|
* @param plain - The text to seal.
|
|
137
|
-
* @param context -
|
|
141
|
+
* @param context - The run's id, bound as additional authenticated data; empty when absent.
|
|
138
142
|
*/
|
|
139
143
|
seal(plain, context = '') {
|
|
140
144
|
return sealSecret(plain, this.key.key, this.key.id, context);
|
|
141
145
|
}
|
|
142
146
|
/**
|
|
143
|
-
* Opens
|
|
144
|
-
*
|
|
145
|
-
* @param
|
|
146
|
-
* @
|
|
147
|
-
* @throws SealedSecretError when the text is not a sealed text, was sealed under another key or with another context, or was changed.
|
|
147
|
+
* Opens with the current key, then each previous key in order.
|
|
148
|
+
* @param sealed - The sealed text, including an older `v1.box` text.
|
|
149
|
+
* @param context - The context used to seal; empty when absent.
|
|
150
|
+
* @throws SealedSecretError when the format, key, context or authentication fails for every candidate.
|
|
148
151
|
*/
|
|
149
152
|
open(sealed, context = '') {
|
|
150
|
-
|
|
153
|
+
for (const key of [this.key, ...this.previousKeys]) {
|
|
154
|
+
try {
|
|
155
|
+
return Buffer.from(openSecret(sealed, [key], context)).toString('utf8');
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
if (!(error instanceof SealedSecretError) || error.reason !== 'tampered')
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
throw new SealedSecretError('tampered');
|
|
151
163
|
}
|
|
152
164
|
}
|
|
153
165
|
//# sourceMappingURL=signing.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../../src/io/channels/meetings/signing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { TranscriptInput } from '../../../voice-pipeline/types.js';
|
|
2
|
+
import type { StorageAdapter } from '@framers/sql-storage-adapter';
|
|
3
|
+
import { type MeetingEvent, type MeetingRunRecord, type MeetingRunState, type TranscriptTurn } from '../types.js';
|
|
4
|
+
import type { SecretBox } from '../signing.js';
|
|
5
|
+
import { type IEventStore, type IJobStore, type IOutbox, type IRunStore, type ITranscriptStore, type MeetingJob, type OutboxDelivery, type RunFilter } from './types.js';
|
|
6
|
+
/** Default prefix for all meeting tables and indexes. */
|
|
7
|
+
export declare const DEFAULT_TABLE_PREFIX = "agentos_meeting";
|
|
8
|
+
/** Validated names for one set of durable meeting stores. */
|
|
9
|
+
export interface MeetingStoreTables {
|
|
10
|
+
/** Run records, with sealed meeting URLs. */
|
|
11
|
+
runs: string;
|
|
12
|
+
/** Dispatch jobs and their leases. */
|
|
13
|
+
jobs: string;
|
|
14
|
+
/** Numbered transcript turns. */
|
|
15
|
+
turns: string;
|
|
16
|
+
/** Numbered events with globally unique event ids. */
|
|
17
|
+
events: string;
|
|
18
|
+
/** Outbound deliveries and retry state. */
|
|
19
|
+
outbox: string;
|
|
20
|
+
/** One row per run: the row every content write of the run locks, the event counter and the fence. */
|
|
21
|
+
locks: string;
|
|
22
|
+
}
|
|
23
|
+
/** Builds the table names, rejecting a prefix outside the identifier length and character bounds. */
|
|
24
|
+
export declare function meetingStoreTables(tablePrefix?: string): MeetingStoreTables;
|
|
25
|
+
/** The six tables and their indexes under one prefix. A product copies this text into its migration. */
|
|
26
|
+
export declare function meetingStoresDdl(tablePrefix?: string): string;
|
|
27
|
+
/** Schema under {@link DEFAULT_TABLE_PREFIX}; apply it before constructing the stores. */
|
|
28
|
+
export declare const MEETING_STORES_DDL: string;
|
|
29
|
+
/** Connection and table names shared by all five stores for a run. */
|
|
30
|
+
export interface SqlStoreOptions {
|
|
31
|
+
/** Open Postgres adapter supporting transactions, persistence and concurrent access. */
|
|
32
|
+
db: StorageAdapter;
|
|
33
|
+
/** Prefix of an already applied {@link meetingStoresDdl} schema. */
|
|
34
|
+
tablePrefix?: string;
|
|
35
|
+
}
|
|
36
|
+
/** Run storage options, including the host's meeting URL sealing key. */
|
|
37
|
+
export interface SqlRunStoreOptions extends SqlStoreOptions {
|
|
38
|
+
/** Seals `meetingUrl` at rest. */
|
|
39
|
+
box: SecretBox;
|
|
40
|
+
}
|
|
41
|
+
/** Durable run records with sealed URLs and expected-state updates under the run anchor. */
|
|
42
|
+
export declare class SqlRunStore implements IRunStore {
|
|
43
|
+
private readonly opts;
|
|
44
|
+
private readonly t;
|
|
45
|
+
/** Checks the adapter capabilities and prefix; the caller applies the exported DDL. */
|
|
46
|
+
constructor(opts: SqlRunStoreOptions);
|
|
47
|
+
/** Serialises no options, database or box; persistence uses only the explicit row fields. */
|
|
48
|
+
toJSON(): string;
|
|
49
|
+
private static readonly COLUMNS;
|
|
50
|
+
private row;
|
|
51
|
+
private fromRow;
|
|
52
|
+
/** Inserts a run, mapping an owner's repeated idempotency key to the public conflict error. */
|
|
53
|
+
insert(run: MeetingRunRecord): Promise<void>;
|
|
54
|
+
/** Reads a run, opening its URL with its run id as authenticated context. */
|
|
55
|
+
get(runId: string): Promise<MeetingRunRecord | undefined>;
|
|
56
|
+
/** Re-reads and patches under the anchor, setting the content fence atomically on entry to purging. */
|
|
57
|
+
update(runId: string, patch: Partial<MeetingRunRecord>, expectState?: MeetingRunState | readonly MeetingRunState[]): Promise<MeetingRunRecord | undefined>;
|
|
58
|
+
/** Rewrites an existing row under the anchor, including its content-free form after a purge. */
|
|
59
|
+
replace(run: MeetingRunRecord): Promise<void>;
|
|
60
|
+
/** Lists matching runs by requested time descending, then run id ascending. */
|
|
61
|
+
list(filter: RunFilter): Promise<MeetingRunRecord[]>;
|
|
62
|
+
/** Finds the owner's run for a previously used idempotency key. */
|
|
63
|
+
findByIdempotencyKey(ownerRef: string, key: string): Promise<MeetingRunRecord | undefined>;
|
|
64
|
+
}
|
|
65
|
+
/** Postgres dispatch jobs with atomic leases and holder-checked writes. */
|
|
66
|
+
export declare class SqlJobStore implements IJobStore {
|
|
67
|
+
private readonly opts;
|
|
68
|
+
private readonly t;
|
|
69
|
+
/** Checks the adapter capabilities and prefix without creating tables. */
|
|
70
|
+
constructor(opts: SqlStoreOptions);
|
|
71
|
+
private fromRow;
|
|
72
|
+
/** Schedules a job; an existing job keeps its lease, dispatch and cancellation fields. */
|
|
73
|
+
schedule(job: {
|
|
74
|
+
runId: string;
|
|
75
|
+
dispatchAt: number;
|
|
76
|
+
}): Promise<void>;
|
|
77
|
+
/** One statement: the row is locked, skipped by any other taker, and leased in the same UPDATE. */
|
|
78
|
+
lease(holder: string, now: number, ttlMs: number): Promise<MeetingJob | undefined>;
|
|
79
|
+
/** Extends an unexpired lease only for its current holder. */
|
|
80
|
+
renew(runId: string, holder: string, now: number, ttlMs: number): Promise<boolean>;
|
|
81
|
+
/** Records the holder's dispatch and reports a cancellation that arrived during it. */
|
|
82
|
+
markDispatched(runId: string, holder: string, workerId: string | undefined): Promise<{
|
|
83
|
+
recorded: boolean;
|
|
84
|
+
cancelled: boolean;
|
|
85
|
+
}>;
|
|
86
|
+
/** Releases the holder's lease and moves the job's due time to its retry. */
|
|
87
|
+
release(runId: string, holder: string, retryAt: number): Promise<boolean>;
|
|
88
|
+
/** Cancels a pending job or reports that the caller must leave an already dispatched bot. */
|
|
89
|
+
cancel(runId: string): Promise<'cancelled' | 'already_dispatched' | 'missing'>;
|
|
90
|
+
/** Reads one dispatch job. */
|
|
91
|
+
get(runId: string): Promise<MeetingJob | undefined>;
|
|
92
|
+
/** Lists the dispatched jobs reconciliation compares with provider usage. */
|
|
93
|
+
listDispatched(): Promise<MeetingJob[]>;
|
|
94
|
+
/** Removes a run's job. */
|
|
95
|
+
remove(runId: string): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
/** Durable transcript turns, allocated and written under the same anchor as the content fence. */
|
|
98
|
+
export declare class SqlTranscriptStore implements ITranscriptStore {
|
|
99
|
+
private readonly opts;
|
|
100
|
+
private readonly t;
|
|
101
|
+
/** Checks the adapter capabilities and prefix without creating tables. */
|
|
102
|
+
constructor(opts: SqlStoreOptions);
|
|
103
|
+
/** The anchor row is locked first, so an append and a fence of one run never interleave: a fence that commits first is seen, a fence that waits sees the turn and purges it. */
|
|
104
|
+
append(turn: TranscriptTurn): Promise<void>;
|
|
105
|
+
/** Allocates the next run sequence and stores the turn atomically, rejecting fenced runs. */
|
|
106
|
+
appendNext(input: TranscriptInput): Promise<TranscriptTurn>;
|
|
107
|
+
/** Reads turns after the cursor in sequence order. */
|
|
108
|
+
read(runId: string, fromSeq: number, limit?: number): Promise<TranscriptTurn[]>;
|
|
109
|
+
/** Fences the run against further transcript and content writes. */
|
|
110
|
+
fence(runId: string): Promise<void>;
|
|
111
|
+
/** Reports whether the run's durable fence is set. */
|
|
112
|
+
isFenced(runId: string): Promise<boolean>;
|
|
113
|
+
/** Removes turns under the anchor, retaining its fence and sequence counters. */
|
|
114
|
+
purge(runId: string): Promise<void>;
|
|
115
|
+
}
|
|
116
|
+
/** Durable per-run event sequences with idempotent event ids and payload fencing. */
|
|
117
|
+
export declare class SqlEventStore implements IEventStore {
|
|
118
|
+
private readonly opts;
|
|
119
|
+
private readonly t;
|
|
120
|
+
/** Checks the adapter capabilities and prefix without creating tables. */
|
|
121
|
+
constructor(opts: SqlStoreOptions);
|
|
122
|
+
/**
|
|
123
|
+
* One transaction: the run's anchor row is locked (so sequence numbers of one run are handed out one at a time and the
|
|
124
|
+
* fence is read under the same lock), a repeated event id answers its existing sequence, the counter advances, the row
|
|
125
|
+
* is written; behind the fence a content event is written without its payload.
|
|
126
|
+
*/
|
|
127
|
+
append(event: Omit<MeetingEvent, 'seq'>): Promise<{
|
|
128
|
+
inserted: boolean;
|
|
129
|
+
seq: number;
|
|
130
|
+
}>;
|
|
131
|
+
/** Reads events after the cursor in sequence order. */
|
|
132
|
+
read(runId: string, fromSeq: number, limit?: number): Promise<MeetingEvent[]>;
|
|
133
|
+
/** Prevents further content payloads from being stored for the run. */
|
|
134
|
+
fence(runId: string): Promise<void>;
|
|
135
|
+
/** Scrubs content payloads under the anchor, preserving event ids, types, times and sequences. */
|
|
136
|
+
purgePayloads(runId: string): Promise<void>;
|
|
137
|
+
}
|
|
138
|
+
/** Durable outbound deliveries with retry backoff, manual replay and content scrubbing. */
|
|
139
|
+
export declare class SqlOutbox implements IOutbox {
|
|
140
|
+
private readonly opts;
|
|
141
|
+
private readonly t;
|
|
142
|
+
/** Checks the adapter capabilities and prefix without creating tables. */
|
|
143
|
+
constructor(opts: SqlStoreOptions);
|
|
144
|
+
private fromRow;
|
|
145
|
+
/** Enqueues once per delivery id, refusing new content behind the run's fence. */
|
|
146
|
+
enqueue(d: Pick<OutboxDelivery, 'id' | 'runId' | 'destinationRef' | 'eventId' | 'type' | 'payload'>, now: number): Promise<void>;
|
|
147
|
+
/** Lists pending deliveries due at now, ordered by due time and id. */
|
|
148
|
+
due(now: number, limit?: number): Promise<OutboxDelivery[]>;
|
|
149
|
+
/** Marks a delivery accepted by its destination. */
|
|
150
|
+
markDelivered(id: string): Promise<void>;
|
|
151
|
+
/** Advances retry backoff, giving up a day after the first failed attempt. */
|
|
152
|
+
markFailed(id: string, now: number): Promise<void>;
|
|
153
|
+
/** Resets attempts and makes a delivery due now without restoring any purged payload. */
|
|
154
|
+
replay(id: string, now: number): Promise<void>;
|
|
155
|
+
/** Fences new content and scrubs content deliveries, including delivered rows; content-free deliveries keep their type and payload. */
|
|
156
|
+
purgeContent(runId: string): Promise<void>;
|
|
157
|
+
/** Lists all deliveries of a run, including delivered and dead ones. */
|
|
158
|
+
listByRun(runId: string): Promise<OutboxDelivery[]>;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=sql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../../src/io/channels/meetings/stores/sql.ts"],"names":[],"mappings":"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"}
|