@cogitator-ai/core 0.24.0 → 0.26.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/README.md +531 -167
- package/dist/agent-tool.d.ts +4 -3
- package/dist/agent-tool.d.ts.map +1 -1
- package/dist/agent-tool.js +15 -2
- package/dist/agent-tool.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +3 -1
- package/dist/agent.js.map +1 -1
- package/dist/cache/cache-key.d.ts +1 -0
- package/dist/cache/cache-key.d.ts.map +1 -1
- package/dist/cache/cache-key.js +2 -1
- package/dist/cache/cache-key.js.map +1 -1
- package/dist/cache/storage/memory.d.ts +8 -1
- package/dist/cache/storage/memory.d.ts.map +1 -1
- package/dist/cache/storage/memory.js +8 -1
- package/dist/cache/storage/memory.js.map +1 -1
- package/dist/cache/storage/redis.d.ts +4 -0
- package/dist/cache/storage/redis.d.ts.map +1 -1
- package/dist/cache/storage/redis.js +17 -18
- package/dist/cache/storage/redis.js.map +1 -1
- package/dist/cache/tool-cache.d.ts +2 -0
- package/dist/cache/tool-cache.d.ts.map +1 -1
- package/dist/cache/tool-cache.js +4 -2
- package/dist/cache/tool-cache.js.map +1 -1
- package/dist/causal/inference/counterfactual.d.ts +2 -0
- package/dist/causal/inference/counterfactual.d.ts.map +1 -1
- package/dist/causal/inference/counterfactual.js +24 -3
- package/dist/causal/inference/counterfactual.js.map +1 -1
- package/dist/causal/inference/expression.d.ts +19 -0
- package/dist/causal/inference/expression.d.ts.map +1 -0
- package/dist/causal/inference/expression.js +177 -0
- package/dist/causal/inference/expression.js.map +1 -0
- package/dist/cogitator/initializers.d.ts +4 -3
- package/dist/cogitator/initializers.d.ts.map +1 -1
- package/dist/cogitator/initializers.js +100 -46
- package/dist/cogitator/initializers.js.map +1 -1
- package/dist/cogitator/message-builder.d.ts.map +1 -1
- package/dist/cogitator/message-builder.js +5 -1
- package/dist/cogitator/message-builder.js.map +1 -1
- package/dist/cogitator/prompts.d.ts.map +1 -1
- package/dist/cogitator/prompts.js +5 -1
- package/dist/cogitator/prompts.js.map +1 -1
- package/dist/cogitator/response-format.d.ts +7 -2
- package/dist/cogitator/response-format.d.ts.map +1 -1
- package/dist/cogitator/response-format.js +45 -7
- package/dist/cogitator/response-format.js.map +1 -1
- package/dist/cogitator/run-limiter.d.ts.map +1 -1
- package/dist/cogitator/run-limiter.js +5 -1
- package/dist/cogitator/run-limiter.js.map +1 -1
- package/dist/cogitator/tool-executor.d.ts +8 -2
- package/dist/cogitator/tool-executor.d.ts.map +1 -1
- package/dist/cogitator/tool-executor.js +54 -5
- package/dist/cogitator/tool-executor.js.map +1 -1
- package/dist/constitutional/constitutional-ai.d.ts +7 -0
- package/dist/constitutional/constitutional-ai.d.ts.map +1 -1
- package/dist/constitutional/constitutional-ai.js +11 -0
- package/dist/constitutional/constitutional-ai.js.map +1 -1
- package/dist/constitutional/tool-guard.d.ts +9 -0
- package/dist/constitutional/tool-guard.d.ts.map +1 -1
- package/dist/constitutional/tool-guard.js +25 -20
- package/dist/constitutional/tool-guard.js.map +1 -1
- package/dist/cost-routing/cost-estimator.d.ts.map +1 -1
- package/dist/cost-routing/cost-estimator.js +5 -1
- package/dist/cost-routing/cost-estimator.js.map +1 -1
- package/dist/cost-routing/cost-router.d.ts +13 -0
- package/dist/cost-routing/cost-router.d.ts.map +1 -1
- package/dist/cost-routing/cost-router.js +22 -1
- package/dist/cost-routing/cost-router.js.map +1 -1
- package/dist/cost-routing/model-selector.d.ts +13 -0
- package/dist/cost-routing/model-selector.d.ts.map +1 -1
- package/dist/cost-routing/model-selector.js +25 -16
- package/dist/cost-routing/model-selector.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/learning/ab-testing.d.ts +1 -1
- package/dist/learning/ab-testing.d.ts.map +1 -1
- package/dist/learning/ab-testing.js +6 -28
- package/dist/learning/ab-testing.js.map +1 -1
- package/dist/learning/agent-optimizer.d.ts +2 -0
- package/dist/learning/agent-optimizer.d.ts.map +1 -1
- package/dist/learning/agent-optimizer.js +20 -2
- package/dist/learning/agent-optimizer.js.map +1 -1
- package/dist/learning/auto-optimizer.d.ts +11 -0
- package/dist/learning/auto-optimizer.d.ts.map +1 -1
- package/dist/learning/auto-optimizer.js +47 -16
- package/dist/learning/auto-optimizer.js.map +1 -1
- package/dist/learning/metrics.d.ts +8 -1
- package/dist/learning/metrics.d.ts.map +1 -1
- package/dist/learning/metrics.js +48 -16
- package/dist/learning/metrics.js.map +1 -1
- package/dist/learning/postgres-trace-store.d.ts +3 -1
- package/dist/learning/postgres-trace-store.d.ts.map +1 -1
- package/dist/learning/postgres-trace-store.js +27 -4
- package/dist/learning/postgres-trace-store.js.map +1 -1
- package/dist/learning/prompt-logger.d.ts +2 -2
- package/dist/learning/prompt-logger.d.ts.map +1 -1
- package/dist/learning/prompt-logger.js.map +1 -1
- package/dist/learning/trace-builder.d.ts.map +1 -1
- package/dist/learning/trace-builder.js +1 -0
- package/dist/learning/trace-builder.js.map +1 -1
- package/dist/llm/anthropic.d.ts +1 -0
- package/dist/llm/anthropic.d.ts.map +1 -1
- package/dist/llm/anthropic.js +6 -1
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/base.d.ts +2 -2
- package/dist/llm/base.d.ts.map +1 -1
- package/dist/llm/bedrock.d.ts.map +1 -1
- package/dist/llm/bedrock.js +3 -1
- package/dist/llm/bedrock.js.map +1 -1
- package/dist/llm/debug.d.ts +2 -2
- package/dist/llm/debug.d.ts.map +1 -1
- package/dist/llm/debug.js.map +1 -1
- package/dist/llm/google.d.ts.map +1 -1
- package/dist/llm/google.js +56 -6
- package/dist/llm/google.js.map +1 -1
- package/dist/llm/openai-compatible-base.d.ts +4 -0
- package/dist/llm/openai-compatible-base.d.ts.map +1 -1
- package/dist/llm/openai-compatible-base.js +38 -13
- package/dist/llm/openai-compatible-base.js.map +1 -1
- package/dist/llm/openai-responses.js +1 -1
- package/dist/llm/openai-responses.js.map +1 -1
- package/dist/llm/retry.d.ts +2 -2
- package/dist/llm/retry.d.ts.map +1 -1
- package/dist/llm/retry.js.map +1 -1
- package/dist/logger.d.ts +11 -2
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +35 -6
- package/dist/logger.js.map +1 -1
- package/dist/observability/langfuse.d.ts +1 -0
- package/dist/observability/langfuse.d.ts.map +1 -1
- package/dist/observability/langfuse.js.map +1 -1
- package/dist/observability/opentelemetry.d.ts +1 -0
- package/dist/observability/opentelemetry.d.ts.map +1 -1
- package/dist/observability/opentelemetry.js.map +1 -1
- package/dist/reasoning/thought-tree.d.ts +28 -4
- package/dist/reasoning/thought-tree.d.ts.map +1 -1
- package/dist/reasoning/thought-tree.js +173 -110
- package/dist/reasoning/thought-tree.js.map +1 -1
- package/dist/runtime.d.ts +39 -5
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +158 -50
- package/dist/runtime.js.map +1 -1
- package/dist/security/pii.d.ts +2 -2
- package/dist/security/pii.d.ts.map +1 -1
- package/dist/security/pii.js.map +1 -1
- package/dist/time-travel/checkpoint-store.d.ts +6 -1
- package/dist/time-travel/checkpoint-store.d.ts.map +1 -1
- package/dist/time-travel/checkpoint-store.js +15 -18
- package/dist/time-travel/checkpoint-store.js.map +1 -1
- package/dist/time-travel/replayer.d.ts +0 -1
- package/dist/time-travel/replayer.d.ts.map +1 -1
- package/dist/time-travel/replayer.js +12 -19
- package/dist/time-travel/replayer.js.map +1 -1
- package/dist/time-travel/time-travel.d.ts +0 -1
- package/dist/time-travel/time-travel.d.ts.map +1 -1
- package/dist/time-travel/time-travel.js +15 -14
- package/dist/time-travel/time-travel.js.map +1 -1
- package/dist/tool.d.ts +7 -0
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +10 -0
- package/dist/tool.js.map +1 -1
- package/dist/tools/index.d.ts +3 -416
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +4 -4
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +2 -2
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/scheduler-tools.d.ts +4 -4
- package/dist/tools/scheduler-tools.d.ts.map +1 -1
- package/dist/tools/scheduler-tools.js +2 -2
- package/dist/tools/scheduler-tools.js.map +1 -1
- package/dist/tools/sql-query.d.ts.map +1 -1
- package/dist/tools/sql-query.js +2 -1
- package/dist/tools/sql-query.js.map +1 -1
- package/dist/tools/vector-search.d.ts.map +1 -1
- package/dist/tools/vector-search.js +12 -3
- package/dist/tools/vector-search.js.map +1 -1
- package/package.json +6 -6
package/dist/agent-tool.d.ts
CHANGED
|
@@ -8,9 +8,10 @@ export interface AgentAsToolOptions {
|
|
|
8
8
|
includeUsage?: boolean;
|
|
9
9
|
includeToolCalls?: boolean;
|
|
10
10
|
/**
|
|
11
|
-
* Decides the calls of the inner agent that need approval. Without it
|
|
12
|
-
* are declined, since a delegated run
|
|
13
|
-
* agent is told why and answers
|
|
11
|
+
* Decides the calls of the inner agent that need approval. Without it — or
|
|
12
|
+
* when it answers `'pause'` — they are declined, since a delegated run
|
|
13
|
+
* cannot wait for a person; the inner agent is told why and answers
|
|
14
|
+
* accordingly.
|
|
14
15
|
*/
|
|
15
16
|
onApproval?: RunOptions['onApproval'];
|
|
16
17
|
}
|
package/dist/agent-tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-tool.d.ts","sourceRoot":"","sources":["../src/agent-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"agent-tool.d.ts","sourceRoot":"","sources":["../src/agent-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAqC,MAAM,qBAAqB,CAAC;AAC/F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAI3C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACzD;AAWD,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,eAAe,CAAC,CA4DzC"}
|
package/dist/agent-tool.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { tool } from './tool.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
+
const DELEGATED_DECLINE = {
|
|
4
|
+
approved: false,
|
|
5
|
+
reason: 'no one can approve calls of a delegated agent',
|
|
6
|
+
};
|
|
3
7
|
const DEFAULT_SCHEMA = z.object({
|
|
4
8
|
task: z.string().describe('The task to delegate to the agent'),
|
|
5
9
|
});
|
|
@@ -19,9 +23,18 @@ export function agentAsTool(cogitator, agent, options) {
|
|
|
19
23
|
timeout: effectiveTimeout,
|
|
20
24
|
signal: context.signal,
|
|
21
25
|
...(context.userId !== undefined && { userId: context.userId }),
|
|
22
|
-
onApproval:
|
|
23
|
-
|
|
26
|
+
onApproval: async (request) => {
|
|
27
|
+
const decision = onApproval ? await onApproval(request) : 'pause';
|
|
28
|
+
return decision === 'pause' ? DELEGATED_DECLINE : decision;
|
|
29
|
+
},
|
|
24
30
|
});
|
|
31
|
+
if (result.status === 'paused') {
|
|
32
|
+
return {
|
|
33
|
+
output: result.output,
|
|
34
|
+
success: false,
|
|
35
|
+
error: `The delegated agent paused for approval of ${(result.pendingApprovals ?? []).map((p) => p.toolName).join(', ')}, which a delegated run cannot wait for`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
25
38
|
return {
|
|
26
39
|
output: result.output,
|
|
27
40
|
success: true,
|
package/dist/agent-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-tool.js","sourceRoot":"","sources":["../src/agent-tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-tool.js","sourceRoot":"","sources":["../src/agent-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,IAAI,MAAM,EACf,WAAW,EACX,IAAI,EACJ,aAAa,EACb,kBAAkB,EAGnB,MAAM,qBAAqB,CAAC;AAM7B,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AA2BD,qBAAa,KAAM,YAAW,MAAM;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B;;;;;;;;;;;OAWG;gBACS,MAAM,EAAE,WAAW;IAgB/B;;;;OAIG;IACH,IAAI,EAAE,IAAI,MAAM,CAQf;IAED,2BAA2B;IAC3B,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,4CAA4C;IAC5C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,oCAAoC;IACpC,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK;IAQ7C;;;;;;;;;;;OAWG;IACH,SAAS,IAAI,aAAa;IA0B1B;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK;IA8CpF;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,IAAI,MAAM,EACf,WAAW,EACX,IAAI,EACJ,aAAa,EACb,kBAAkB,EAGnB,MAAM,qBAAqB,CAAC;AAM7B,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AA2BD,qBAAa,KAAM,YAAW,MAAM;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B;;;;;;;;;;;OAWG;gBACS,MAAM,EAAE,WAAW;IAgB/B;;;;OAIG;IACH,IAAI,EAAE,IAAI,MAAM,CAQf;IAED,2BAA2B;IAC3B,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,4CAA4C;IAC5C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,oCAAoC;IACpC,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK;IAQ7C;;;;;;;;;;;OAWG;IACH,SAAS,IAAI,aAAa;IA0B1B;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK;IA8CpF;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa;CAkBtE"}
|
package/dist/agent.js
CHANGED
|
@@ -218,7 +218,9 @@ export class Agent {
|
|
|
218
218
|
if (!s.config || typeof s.config !== 'object')
|
|
219
219
|
return false;
|
|
220
220
|
const config = s.config;
|
|
221
|
-
if (typeof config.model !== 'string')
|
|
221
|
+
if (config.model !== undefined && typeof config.model !== 'string')
|
|
222
|
+
return false;
|
|
223
|
+
if (config.provider !== undefined && typeof config.provider !== 'string')
|
|
222
224
|
return false;
|
|
223
225
|
if (typeof config.instructions !== 'string')
|
|
224
226
|
return false;
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-key.d.ts","sourceRoot":"","sources":["../../src/cache/cache-key.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-key.d.ts","sourceRoot":"","sources":["../../src/cache/cache-key.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAMjE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAkBpD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAe3D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAejE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmBtD"}
|
package/dist/cache/cache-key.js
CHANGED
|
@@ -3,7 +3,8 @@ export function generateCacheKey(options) {
|
|
|
3
3
|
const { toolName, params, prefix = 'toolcache' } = options;
|
|
4
4
|
const paramsStr = stableStringify(params);
|
|
5
5
|
const hash = createHash('sha256').update(`${toolName}:${paramsStr}`).digest('hex').slice(0, 16);
|
|
6
|
-
|
|
6
|
+
const separator = prefix.endsWith(':') ? '' : ':';
|
|
7
|
+
return `${prefix}${separator}${toolName}:${hash}`;
|
|
7
8
|
}
|
|
8
9
|
export function stableStringify(obj) {
|
|
9
10
|
if (obj === null || typeof obj !== 'object') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-key.js","sourceRoot":"","sources":["../../src/cache/cache-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cache-key.js","sourceRoot":"","sources":["../../src/cache/cache-key.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,15 @@ import type { CacheEntry, CacheStats, ToolCacheStorage } from '@cogitator-ai/typ
|
|
|
2
2
|
export declare class InMemoryToolCacheStorage implements ToolCacheStorage {
|
|
3
3
|
private cache;
|
|
4
4
|
private maxSize;
|
|
5
|
+
private onEvict?;
|
|
5
6
|
private stats;
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* @param maxSize - Entries kept before the least recently used is evicted
|
|
9
|
+
* @param options.onEvict - Called with the key of each evicted entry
|
|
10
|
+
*/
|
|
11
|
+
constructor(maxSize?: number, options?: {
|
|
12
|
+
onEvict?: (key: string) => void;
|
|
13
|
+
});
|
|
7
14
|
private updateHitRate;
|
|
8
15
|
recordHit(): void;
|
|
9
16
|
recordMiss(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/cache/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGpF,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAMX;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/cache/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGpF,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAwB;IACxC,OAAO,CAAC,KAAK,CAMX;IAEF;;;OAGG;gBACS,OAAO,GAAE,MAAa,EAAE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAO;IAKrF,OAAO,CAAC,aAAa;IAKrB,SAAS,IAAI,IAAI;IAKjB,UAAU,IAAI,IAAI;IAKlB,cAAc,IAAI,IAAI;IAItB,QAAQ,IAAI,UAAU;IAIhB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAe5C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IASlD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAYvC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvB,WAAW,CACf,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;YAiBnC,WAAW;CAS1B"}
|
|
@@ -2,6 +2,7 @@ import { cosineSimilarity } from '../cache-key.js';
|
|
|
2
2
|
export class InMemoryToolCacheStorage {
|
|
3
3
|
cache = new Map();
|
|
4
4
|
maxSize;
|
|
5
|
+
onEvict;
|
|
5
6
|
stats = {
|
|
6
7
|
hits: 0,
|
|
7
8
|
misses: 0,
|
|
@@ -9,8 +10,13 @@ export class InMemoryToolCacheStorage {
|
|
|
9
10
|
evictions: 0,
|
|
10
11
|
hitRate: 0,
|
|
11
12
|
};
|
|
12
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @param maxSize - Entries kept before the least recently used is evicted
|
|
15
|
+
* @param options.onEvict - Called with the key of each evicted entry
|
|
16
|
+
*/
|
|
17
|
+
constructor(maxSize = 1000, options = {}) {
|
|
13
18
|
this.maxSize = maxSize;
|
|
19
|
+
this.onEvict = options.onEvict;
|
|
14
20
|
}
|
|
15
21
|
updateHitRate() {
|
|
16
22
|
const total = this.stats.hits + this.stats.misses;
|
|
@@ -104,6 +110,7 @@ export class InMemoryToolCacheStorage {
|
|
|
104
110
|
this.cache.delete(oldest.key);
|
|
105
111
|
this.stats.size = this.cache.size;
|
|
106
112
|
this.recordEviction();
|
|
113
|
+
this.onEvict?.(oldest.key);
|
|
107
114
|
}
|
|
108
115
|
}
|
|
109
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/cache/storage/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,OAAO,wBAAwB;IAC3B,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IACtC,OAAO,CAAS;IAChB,KAAK,GAAe;QAC1B,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;KACX,CAAC;IAEF,YAAY,UAAkB,IAAI;
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/cache/storage/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { CacheEntry, CacheStats, ToolCacheStorage, RedisClientLike } from '@cogitator-ai/types';
|
|
2
2
|
export interface RedisToolCacheStorageConfig {
|
|
3
3
|
client: RedisClientLike;
|
|
4
|
+
/** Prefix of every key the cache writes; a `:` is added when it does not end with one */
|
|
4
5
|
keyPrefix?: string;
|
|
5
6
|
maxSize?: number;
|
|
7
|
+
/** Called with the key of each entry dropped to make room */
|
|
8
|
+
onEvict?: (key: string) => void;
|
|
6
9
|
}
|
|
7
10
|
export declare class RedisToolCacheStorage implements ToolCacheStorage {
|
|
8
11
|
private client;
|
|
@@ -10,6 +13,7 @@ export declare class RedisToolCacheStorage implements ToolCacheStorage {
|
|
|
10
13
|
private maxSize;
|
|
11
14
|
private lruKey;
|
|
12
15
|
private counterKey;
|
|
16
|
+
private onEvict?;
|
|
13
17
|
private stats;
|
|
14
18
|
constructor(config: RedisToolCacheStorageConfig);
|
|
15
19
|
private entryKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/cache/storage/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/cache/storage/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAM7B,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,eAAe,CAAC;IACxB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAwB;IACxC,OAAO,CAAC,KAAK,CAMX;gBAEU,MAAM,EAAE,2BAA2B;IAU/C,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAKrB,SAAS,IAAI,IAAI;IAKjB,UAAU,IAAI,IAAI;IAKlB,cAAc,IAAI,IAAI;IAItB,QAAQ,IAAI,UAAU;IAIhB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAuB5C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBtB,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMvC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAKvB,WAAW,CACf,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;YAoCnC,YAAY;YAaZ,WAAW;CAQ1B"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { cosineSimilarity } from '../cache-key.js';
|
|
2
2
|
const PRUNE_BATCH_SIZE = 100;
|
|
3
|
+
const SCAN_BATCH_SIZE = 100;
|
|
3
4
|
export class RedisToolCacheStorage {
|
|
4
5
|
client;
|
|
5
6
|
prefix;
|
|
6
7
|
maxSize;
|
|
7
8
|
lruKey;
|
|
8
9
|
counterKey;
|
|
10
|
+
onEvict;
|
|
9
11
|
stats = {
|
|
10
12
|
hits: 0,
|
|
11
13
|
misses: 0,
|
|
@@ -15,7 +17,9 @@ export class RedisToolCacheStorage {
|
|
|
15
17
|
};
|
|
16
18
|
constructor(config) {
|
|
17
19
|
this.client = config.client;
|
|
18
|
-
|
|
20
|
+
const prefix = config.keyPrefix ?? 'toolcache:';
|
|
21
|
+
this.prefix = prefix.endsWith(':') ? prefix : `${prefix}:`;
|
|
22
|
+
this.onEvict = config.onEvict;
|
|
19
23
|
this.maxSize = config.maxSize ?? 1000;
|
|
20
24
|
this.lruKey = `${this.prefix}lru`;
|
|
21
25
|
this.counterKey = `${this.prefix}counter`;
|
|
@@ -93,21 +97,18 @@ export class RedisToolCacheStorage {
|
|
|
93
97
|
return data !== null;
|
|
94
98
|
}
|
|
95
99
|
async clear() {
|
|
96
|
-
let cursor = 0;
|
|
100
|
+
let cursor = '0';
|
|
97
101
|
do {
|
|
98
|
-
const [nextCursor, keys] = await this.client.scan(cursor, {
|
|
99
|
-
|
|
100
|
-
count: 100,
|
|
101
|
-
});
|
|
102
|
-
cursor = typeof nextCursor === 'string' ? parseInt(nextCursor, 10) : nextCursor;
|
|
102
|
+
const [nextCursor, keys] = await this.client.scan(cursor, 'MATCH', `${this.prefix}*`, 'COUNT', SCAN_BATCH_SIZE);
|
|
103
|
+
cursor = String(nextCursor);
|
|
103
104
|
if (keys.length > 0) {
|
|
104
105
|
await this.client.del(...keys);
|
|
105
106
|
}
|
|
106
|
-
} while (cursor !== 0);
|
|
107
|
+
} while (cursor !== '0');
|
|
107
108
|
this.stats.size = 0;
|
|
108
109
|
}
|
|
109
110
|
async getOldest() {
|
|
110
|
-
const keys = await this.client.zrange(this.lruKey, 0, 0);
|
|
111
|
+
const keys = await this.client.zrange(this.lruKey, 0, '0');
|
|
111
112
|
if (keys.length === 0)
|
|
112
113
|
return null;
|
|
113
114
|
return this.get(keys[0]);
|
|
@@ -120,13 +121,10 @@ export class RedisToolCacheStorage {
|
|
|
120
121
|
const results = [];
|
|
121
122
|
const now = Date.now();
|
|
122
123
|
const pattern = `${this.prefix}entry:*`;
|
|
123
|
-
let cursor = 0;
|
|
124
|
+
let cursor = '0';
|
|
124
125
|
do {
|
|
125
|
-
const [nextCursor, keys] = await this.client.scan(cursor,
|
|
126
|
-
|
|
127
|
-
count: 100,
|
|
128
|
-
});
|
|
129
|
-
cursor = typeof nextCursor === 'string' ? parseInt(nextCursor, 10) : nextCursor;
|
|
126
|
+
const [nextCursor, keys] = await this.client.scan(cursor, 'MATCH', pattern, 'COUNT', SCAN_BATCH_SIZE);
|
|
127
|
+
cursor = String(nextCursor);
|
|
130
128
|
if (keys.length === 0)
|
|
131
129
|
continue;
|
|
132
130
|
const values = await this.client.mget(...keys);
|
|
@@ -143,11 +141,11 @@ export class RedisToolCacheStorage {
|
|
|
143
141
|
results.push({ ...entry, score });
|
|
144
142
|
}
|
|
145
143
|
}
|
|
146
|
-
} while (cursor !== 0);
|
|
144
|
+
} while (cursor !== '0');
|
|
147
145
|
return results.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
148
146
|
}
|
|
149
147
|
async pruneExpired() {
|
|
150
|
-
const members = await this.client.zrange(this.lruKey, 0, -1);
|
|
148
|
+
const members = await this.client.zrange(this.lruKey, 0, '-1');
|
|
151
149
|
for (let start = 0; start < members.length; start += PRUNE_BATCH_SIZE) {
|
|
152
150
|
const batch = members.slice(start, start + PRUNE_BATCH_SIZE);
|
|
153
151
|
const values = await this.client.mget(...batch.map((member) => this.entryKey(member)));
|
|
@@ -159,10 +157,11 @@ export class RedisToolCacheStorage {
|
|
|
159
157
|
}
|
|
160
158
|
}
|
|
161
159
|
async evictOldest() {
|
|
162
|
-
const keys = await this.client.zrange(this.lruKey, 0, 0);
|
|
160
|
+
const keys = await this.client.zrange(this.lruKey, 0, '0');
|
|
163
161
|
if (keys.length > 0) {
|
|
164
162
|
await this.delete(keys[0]);
|
|
165
163
|
this.recordEviction();
|
|
164
|
+
this.onEvict?.(keys[0]);
|
|
166
165
|
}
|
|
167
166
|
}
|
|
168
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/cache/storage/redis.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,gBAAgB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/cache/storage/redis.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,7 @@ export declare function createToolCacheStorage(type: 'memory' | 'redis', options
|
|
|
4
4
|
maxSize?: number;
|
|
5
5
|
redisClient?: RedisClientLike;
|
|
6
6
|
keyPrefix?: string;
|
|
7
|
+
/** Called with the key of each entry evicted to make room (`maxSize`) */
|
|
8
|
+
onEvict?: (key: string) => void;
|
|
7
9
|
}): ToolCacheStorage;
|
|
8
10
|
//# sourceMappingURL=tool-cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../src/cache/tool-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAEJ,UAAU,EAEV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAK7B,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAC5B,MAAM,EAAE,gBAAgB,GACvB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../src/cache/tool-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAEJ,UAAU,EAEV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAK7B,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAC5B,MAAM,EAAE,gBAAgB,GACvB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAqI9B;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,QAAQ,GAAG,OAAO,EACxB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,GACL,gBAAgB,CAclB"}
|
package/dist/cache/tool-cache.js
CHANGED
|
@@ -14,10 +14,11 @@ export function withCache(tool, config) {
|
|
|
14
14
|
client: config.redisClient,
|
|
15
15
|
keyPrefix: prefix,
|
|
16
16
|
maxSize: config.maxSize,
|
|
17
|
+
onEvict: config.onEvict,
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
20
|
else {
|
|
20
|
-
storage = new InMemoryToolCacheStorage(config.maxSize);
|
|
21
|
+
storage = new InMemoryToolCacheStorage(config.maxSize, { onEvict: config.onEvict });
|
|
21
22
|
}
|
|
22
23
|
const cachedExecute = async (params, context) => {
|
|
23
24
|
const cacheKey = generateCacheKey({
|
|
@@ -127,8 +128,9 @@ export function createToolCacheStorage(type, options = {}) {
|
|
|
127
128
|
client: options.redisClient,
|
|
128
129
|
keyPrefix: options.keyPrefix,
|
|
129
130
|
maxSize: options.maxSize,
|
|
131
|
+
onEvict: options.onEvict,
|
|
130
132
|
});
|
|
131
133
|
}
|
|
132
|
-
return new InMemoryToolCacheStorage(options.maxSize);
|
|
134
|
+
return new InMemoryToolCacheStorage(options.maxSize, { onEvict: options.onEvict });
|
|
133
135
|
}
|
|
134
136
|
//# sourceMappingURL=tool-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-cache.js","sourceRoot":"","sources":["../../src/cache/tool-cache.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,UAAU,SAAS,CACvB,IAA4B,EAC5B,MAAwB;IAExB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,IAAI,WAAW,CAAC;IAE/C,IAAI,OAAyB,CAAC;IAC9B,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,GAAG,IAAI,qBAAqB,CAAC;YAClC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-cache.js","sourceRoot":"","sources":["../../src/cache/tool-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export interface CounterfactualReasonerOptions {
|
|
|
7
7
|
}
|
|
8
8
|
export declare class CounterfactualReasoner {
|
|
9
9
|
private options;
|
|
10
|
+
private expressions;
|
|
10
11
|
constructor(options?: CounterfactualReasonerOptions);
|
|
11
12
|
evaluate(graph: CausalGraph, query: CounterfactualQuery): CounterfactualResult;
|
|
12
13
|
private abduction;
|
|
@@ -17,6 +18,7 @@ export declare class CounterfactualReasoner {
|
|
|
17
18
|
private computeValue;
|
|
18
19
|
private sampleNoise;
|
|
19
20
|
private sampleGaussian;
|
|
21
|
+
private compile;
|
|
20
22
|
private toNumber;
|
|
21
23
|
private generateExplanation;
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"counterfactual.d.ts","sourceRoot":"","sources":["../../../src/causal/inference/counterfactual.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"counterfactual.d.ts","sourceRoot":"","sources":["../../../src/causal/inference/counterfactual.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,WAAW,CAAyC;gBAEhD,OAAO,GAAE,6BAAkC;IASvD,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,GAAG,oBAAoB;IAyB9E,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,MAAM;IAyBd,OAAO,CAAC,UAAU;IA8ClB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,yBAAyB;IAwDjC,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,mBAAmB;CAe5B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,6BAA6B,GACtC,oBAAoB,CAGtB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { compileExpression } from './expression.js';
|
|
1
2
|
export class CounterfactualReasoner {
|
|
2
3
|
options;
|
|
4
|
+
expressions = new Map();
|
|
3
5
|
constructor(options = {}) {
|
|
4
6
|
this.options = {
|
|
5
7
|
defaultNoiseMean: options.defaultNoiseMean ?? 0,
|
|
@@ -10,7 +12,7 @@ export class CounterfactualReasoner {
|
|
|
10
12
|
}
|
|
11
13
|
evaluate(graph, query) {
|
|
12
14
|
const abductionResult = this.abduction(graph, query.factual);
|
|
13
|
-
const actionResult = this.action(graph, query.intervention, abductionResult);
|
|
15
|
+
const actionResult = this.action(graph, query.intervention, abductionResult, query.factual);
|
|
14
16
|
const predictionResult = this.prediction(graph, query.target, actionResult);
|
|
15
17
|
const factualValue = query.factual[query.target] ??
|
|
16
18
|
this.computeValue(graph, query.target, query.factual, abductionResult);
|
|
@@ -45,11 +47,16 @@ export class CounterfactualReasoner {
|
|
|
45
47
|
}
|
|
46
48
|
return noiseTerms;
|
|
47
49
|
}
|
|
48
|
-
action(
|
|
50
|
+
action(graph, intervention, noiseTerms, factual) {
|
|
49
51
|
const result = {};
|
|
50
52
|
for (const [key, value] of Object.entries(noiseTerms)) {
|
|
51
53
|
result[key] = value;
|
|
52
54
|
}
|
|
55
|
+
for (const [variable, value] of Object.entries(factual)) {
|
|
56
|
+
if (!graph.getNode(variable)?.equation) {
|
|
57
|
+
result[variable] = value;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
53
60
|
for (const [variable, value] of Object.entries(intervention)) {
|
|
54
61
|
result[variable] = value;
|
|
55
62
|
}
|
|
@@ -128,7 +135,13 @@ export class CounterfactualReasoner {
|
|
|
128
135
|
return result + noise;
|
|
129
136
|
}
|
|
130
137
|
case 'custom': {
|
|
131
|
-
|
|
138
|
+
if (!equation.customFn)
|
|
139
|
+
return noise;
|
|
140
|
+
const variables = {};
|
|
141
|
+
for (const [variable, value] of Object.entries(parentValues)) {
|
|
142
|
+
variables[variable] = this.toNumber(value);
|
|
143
|
+
}
|
|
144
|
+
return this.compile(equation.customFn)(variables) + noise;
|
|
132
145
|
}
|
|
133
146
|
default:
|
|
134
147
|
return noise;
|
|
@@ -173,6 +186,14 @@ export class CounterfactualReasoner {
|
|
|
173
186
|
const z = Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
|
|
174
187
|
return mean + std * z;
|
|
175
188
|
}
|
|
189
|
+
compile(source) {
|
|
190
|
+
let compiled = this.expressions.get(source);
|
|
191
|
+
if (!compiled) {
|
|
192
|
+
compiled = compileExpression(source);
|
|
193
|
+
this.expressions.set(source, compiled);
|
|
194
|
+
}
|
|
195
|
+
return compiled;
|
|
196
|
+
}
|
|
176
197
|
toNumber(value) {
|
|
177
198
|
if (typeof value === 'number')
|
|
178
199
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"counterfactual.js","sourceRoot":"","sources":["../../../src/causal/inference/counterfactual.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"counterfactual.js","sourceRoot":"","sources":["../../../src/causal/inference/counterfactual.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,cAAc,CAAC;AAS1E,MAAM,OAAO,sBAAsB;IACzB,OAAO,CAA0C;IACjD,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE5D,YAAY,UAAyC,EAAE;QACrD,IAAI,CAAC,OAAO,GAAG;YACb,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,CAAC;YAC/C,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;YAC7C,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,GAAG;YAC3C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,KAAK;SAC5D,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAkB,EAAE,KAA0B;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE7D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE5F,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAE5E,MAAM,YAAY,GAChB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAEzE,OAAO;YACL,KAAK;YACL,YAAY;YACZ,mBAAmB,EAAE,gBAAgB,CAAC,KAAK;YAC3C,WAAW,EAAE,gBAAgB,CAAC,WAAW;YACzC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC;YAClF,SAAS,EAAE;gBACT,SAAS,EAAE,eAAe;gBAC1B,MAAM,EAAE,YAAY;gBACpB,UAAU,EAAE,gBAAgB,CAAC,MAAM;aACpC;SACF,CAAC;IACJ,CAAC;IAEO,SAAS,CACf,KAAkB,EAClB,OAAkD;QAElD,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAE5C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBACxF,UAAU,CAAC,MAAM,CAAC,GAAG,aAAa,GAAG,cAAc,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,MAAM,CACZ,KAAkB,EAClB,YAAuD,EACvD,UAAkC,EAClC,OAAkD;QAElD,MAAM,MAAM,GAA8C,EAAE,CAAC;QAE7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,UAAU,CAChB,KAAkB,EAClB,MAAc,EACd,KAAgD;QAMhD,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,cAAc,GAA8C,EAAE,GAAG,KAAK,EAAE,CAAC;QAE/E,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACvF,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,UAAU,GACd,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,cAAc,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEtF,MAAM,YAAY,GAA8C,EAAE,CAAC;gBACnE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9C,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;wBAC5C,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;gBAED,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,yBAAyB,CACrD,IAAI,CAAC,QAAQ,EACb,YAAY,EACZ,UAAU,CACX,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,cAAc;SACvB,CAAC;IACJ,CAAC;IAEO,gBAAgB,CACtB,QAA4B,EAC5B,KAAkB,EAClB,MAAc,EACd,MAAiD,EACjD,WAAmC;QAEnC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,YAAY,GAA8C,EAAE,CAAC;QAEnE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,yBAAyB,CAC/B,QAA4B,EAC5B,YAAuD,EACvD,KAAa;QAEb,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;gBACrC,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;oBAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;wBACzD,MAAM,IAAI,WAAW,GAAG,KAAK,CAAC;oBAChC,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,GAAG,KAAK,CAAC;YACxB,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,UAAU,GAAG,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;gBACzC,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;oBAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;wBACzD,UAAU,IAAI,WAAW,GAAG,KAAK,CAAC;oBACpC,CAAC;gBACH,CAAC;gBACD,UAAU,IAAI,KAAK,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACzC,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;gBACrC,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;oBAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC5E,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;wBACxD,MAAM,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,GAAG,KAAK,CAAC;YACxB,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBACrC,MAAM,SAAS,GAA2B,EAAE,CAAC;gBAC7C,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC7D,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7C,CAAC;gBACD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YAC5D,CAAC;YAED;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,YAAY,CAClB,KAAkB,EAClB,MAAc,EACd,QAAmD,EACnD,UAAkC;QAElC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,YAAY,GAA8C,EAAE,CAAC;QACnE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9F,CAAC;IAEO,WAAW,CAAC,IAAgB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,IAAI,UAAU,CAAC;QAEpE,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;gBACvD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC5B,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3C,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC;gBAC1B,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YACD;gBACE,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,GAAW;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;IACxB,CAAC;IAEO,OAAO,CAAC,MAAc;QAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,QAAQ,CAAC,KAAgC;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACpC,CAAC;IAEO,mBAAmB,CACzB,KAA0B,EAC1B,YAAuC,EACvC,mBAA8C;QAE9C,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;aACxD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,CACL,uCAAuC,KAAK,CAAC,MAAM,IAAI,YAAY,IAAI;YACvE,+BAA+B,gBAAgB,IAAI;YACnD,QAAQ,KAAK,CAAC,MAAM,oBAAoB,mBAAmB,GAAG,CAC/D,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAkB,EAClB,KAA0B,EAC1B,OAAuC;IAEvC,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC"}
|