@dbx-tools/appkit-memory 0.9.175 → 0.9.177
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 +7 -5
- package/index.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/src/config.js +2 -2
- package/lib/src/plugin.js +4 -1
- package/package.json +9 -9
- package/src/config.ts +1 -1
- package/src/plugin.ts +2 -0
package/README.md
CHANGED
|
@@ -62,9 +62,10 @@ Mastra continues to store threads and messages in its configured
|
|
|
62
62
|
`PostgresStore` and semantic recall in `PgVector`. `saveTurns` defaults to
|
|
63
63
|
`"auto"`, which attaches the memory plugin's output processor when both Mastra
|
|
64
64
|
and Graphiti are registered. Set it to `true` to require attachment at startup
|
|
65
|
-
or `false` to disable it.
|
|
66
|
-
|
|
67
|
-
not
|
|
65
|
+
or `false` to disable it. Auto mode mirrors completed turns only after another
|
|
66
|
+
memory operation has already started Graphiti, so an ordinary chat turn does
|
|
67
|
+
not pay the sidecar startup cost. `saveTurns: true` may start Graphiti solely to
|
|
68
|
+
mirror a turn. Managed-memory session extraction is not used.
|
|
68
69
|
|
|
69
70
|
## Configure the backends
|
|
70
71
|
|
|
@@ -76,7 +77,7 @@ not used.
|
|
|
76
77
|
| `databricks.memoryStore` | Project-derived store name | Selects an existing memory store by ID or resource name. |
|
|
77
78
|
| `databricks.mode` | `"auto"` | Set to `"required"` to fail instead of selecting Graphiti. |
|
|
78
79
|
| `graphiti` | `true` | Enables the lazy Graphiti fallback. Pass a Graphiti options object to override its model, database, listener, or authentication settings. |
|
|
79
|
-
| `saveTurns` | `"auto"` | Attaches a Mastra output processor when
|
|
80
|
+
| `saveTurns` | `"auto"` | Attaches a Mastra output processor but starts Graphiti only when set to `true`; auto mode reuses an already-running fallback. |
|
|
80
81
|
|
|
81
82
|
At least one backend must remain enabled. `saveTurns: true` requires both a
|
|
82
83
|
registered Mastra plugin and the Graphiti backend. `databricks: true` requires
|
|
@@ -105,7 +106,8 @@ because the plugin supervises the fallback process.
|
|
|
105
106
|
|
|
106
107
|
- Memory is partitioned by the trusted AppKit request identity. An `actor_id`
|
|
107
108
|
is a storage key, not an authorization mechanism.
|
|
108
|
-
- Graphiti starts only after an operation cannot use Databricks
|
|
109
|
+
- Graphiti starts only after an explicit memory operation cannot use Databricks
|
|
110
|
+
managed memory, or when completed-turn saving is explicitly set to `true`.
|
|
109
111
|
Registering the plugin doesn't start Python or PostgreSQL.
|
|
110
112
|
- The plugin stops a Graphiti process that it started when AppKit shuts down.
|
|
111
113
|
- Mastra thread storage and PgVector semantic recall remain separate from these
|
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-memory";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.177";
|
|
7
7
|
export * as config from "./src/config.ts";
|
|
8
8
|
export * as plugin from "./src/plugin.ts";
|
|
9
9
|
export { DatabricksMemoryOptionsSchema, MemoryPluginOptionsSchema, MEMORY_CONFIG_SCHEMA, resolveMemoryPluginConfig } from "./src/config.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-memory";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.177";
|
|
3
3
|
export * as config from "./src/config.ts";
|
|
4
4
|
export * as plugin from "./src/plugin.ts";
|
|
5
5
|
export { DatabricksMemoryOptionsSchema, MemoryPluginOptionsSchema, MEMORY_CONFIG_SCHEMA, resolveMemoryPluginConfig } from "./src/config.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-memory";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.177";
|
|
6
6
|
export * as config from "./src/config.js";
|
|
7
7
|
export * as plugin from "./src/plugin.js";
|
|
8
8
|
export { DatabricksMemoryOptionsSchema, MemoryPluginOptionsSchema, MEMORY_CONFIG_SCHEMA, resolveMemoryPluginConfig } from "./src/config.js";
|
|
9
9
|
export { MemoryPlugin, memory } from "./src/plugin.js";
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9hcHBraXQtbWVtb3J5XCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMTc3XCI7XG5leHBvcnQgKiBhcyBjb25maWcgZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgcGx1Z2luIGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCB7IERhdGFicmlja3NNZW1vcnlPcHRpb25zU2NoZW1hLCBNZW1vcnlQbHVnaW5PcHRpb25zU2NoZW1hLCBNRU1PUllfQ09ORklHX1NDSEVNQSwgcmVzb2x2ZU1lbW9yeVBsdWdpbkNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc01lbW9yeU9wdGlvbnMsIE1lbW9yeVBsdWdpbk9wdGlvbnMsIE1lbW9yeVBsdWdpbkNvbmZpZywgUmVzb2x2ZWREYXRhYnJpY2tzTWVtb3J5T3B0aW9ucywgUmVzb2x2ZWRNZW1vcnlQbHVnaW5Db25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBNZW1vcnlQbHVnaW4sIG1lbW9yeSB9IGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbiJdfQ==
|
package/lib/src/config.js
CHANGED
|
@@ -36,7 +36,7 @@ export const MemoryPluginOptionsSchema = z
|
|
|
36
36
|
saveTurns: z
|
|
37
37
|
.union([z.literal("auto"), z.boolean()])
|
|
38
38
|
.default("auto")
|
|
39
|
-
.describe("Completed-turn saving mode: auto
|
|
39
|
+
.describe("Completed-turn saving mode: auto mirrors only through an already-running Graphiti fallback, true may start Graphiti and requires attachment, and false disables it."),
|
|
40
40
|
})
|
|
41
41
|
.strict()
|
|
42
42
|
.describe("AppKit memory plugin options.");
|
|
@@ -84,4 +84,4 @@ function resourceId(value, prefix) {
|
|
|
84
84
|
throw new Error(`${prefix} id is required`);
|
|
85
85
|
return trimmed;
|
|
86
86
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBR0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsdUJBQXVCLEdBRXhCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDO0tBQzNDLE1BQU0sQ0FBQztJQUNOLFdBQVcsRUFBRSxDQUFDO1NBQ1gsTUFBTSxFQUFFO1NBQ1IsSUFBSSxFQUFFO1NBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQyw2REFBNkQsQ0FBQztJQUMxRSxJQUFJLEVBQUUsQ0FBQztTQUNKLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ2YsUUFBUSxDQUFDLG1FQUFtRSxDQUFDO0NBQ2pGLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsa0RBQWtELENBQUMsQ0FBQztBQUloRSxNQUFNLDJCQUEyQixHQUFHLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FDMUUsa0RBQWtELENBQ25ELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDO0tBQ3ZDLE1BQU0sQ0FBQztJQUNOLFVBQVUsRUFBRSxDQUFDO1NBQ1YsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsNkJBQTZCLENBQUMsQ0FB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LENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhLEVBQUUsTUFBYztJQUMvQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxJQUFJLENBQUMsT0FBTztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVG9wLWxldmVsIEFwcEtpdCBtZW1vcnkgcGx1Z2luIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgQmFzZVBsdWdpbkNvbmZpZyB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IHByb2plY3RVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IHRvU2x1Z1dpdGhPcHRpb25zIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIEdyYXBoaXRpT3B0aW9uc1NjaGVtYSxcbiAgZ3JhcGhpdGlPcHRpb25PdmVycmlkZXMsXG4gIHR5cGUgR3JhcGhpdGlPcHRpb25zLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ3JhcGhpdGlcIjtcbmltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYTcgfSBmcm9tIFwianNvbi1zY2hlbWFcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBEYXRhYnJpY2tzTWVtb3J5T3B0aW9uc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgbWVtb3J5U3RvcmU6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgICAgLm1pbigxKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIkV4aXN0aW5nIERhdGFicmlja3MgQWdlbnQgTWVtb3J5IFN0b3JlIGlkIG9yIHJlc291cmNlIG5hbWUuXCIpLFxuICAgIG1vZGU6IHpcbiAgICAgIC5lbnVtKFtcImF1dG9cIiwgXCJyZXF1aXJlZFwiXSlcbiAgICAgIC5kZWZhdWx0KFwiYXV0b1wiKVxuICAgICAgLmRlc2NyaWJlKFwiV2hldGhlciBhbiBpbmFjY2Vzc2libGUgbWFuYWdlZC1tZW1vcnkgc3RvcmUgZmFsbHMgYmFjayBvciBmYWlscy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJEYXRhYnJpY2tzIG1hbmFnZWQtbWVtb3J5IGJhY2tlbmQgY29uZmlndXJhdGlvbi5cIik7XG5cbmV4cG9ydCB0eXBlIERhdGFicmlja3NNZW1vcnlPcHRpb25zID0gei5pbnB1dDx0eXBlb2YgRGF0YWJyaWNrc01lbW9yeU9wdGlvbnNTY2hlbWE+O1xuXG5jb25zdCBHcmFwaGl0aU1lbW9yeU9wdGlvbnNTY2hlbWEgPSBHcmFwaGl0aU9wdGlvbnNTY2hlbWEucGFydGlhbCgpLmRlc2NyaWJlKFxuICBcIkdyYXBoaXRpIG9wdGlvbiBvdmVycmlkZXMgZm9yIHRoZSBsYXp5IGZhbGxiYWNrLlwiLFxuKTtcblxuZXhwb3J0IGNvbnN0IE1lbW9yeVBsdWdpbk9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGRhdGFicmlja3M6IHpcbiAgICAgIC51bmlvbihbei5saXRlcmFsKFwiYXV0b1wiKSwgei5ib29sZWFuKCksIERhdGFicmlja3NNZW1vcnlPcHRpb25zU2NoZW1hXSlcbiAgICAgIC5kZWZhdWx0KFwiYXV0b1wiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIkRhdGFicmlja3MgbWFuYWdlZCBtZW1vcnkgbW9kZTogYXV0byBmYWxscyBiYWNrLCB0cnVlIHJlcXVpcmVzIGFjY2VzcywgYW5kIGZhbHNlIGRpc2FibGVzIGl0LlwiLFxuICAgICAgKSxcbiAgICBncmFwaGl0aTogelxuICAgICAgLnVuaW9uKFt6LmJvb2xlYW4oKSwgR3JhcGhpdGlNZW1vcnlPcHRpb25zU2NoZW1hXSlcbiAgICAgIC5kZWZhdWx0KHRydWUpXG4gICAgICAuZGVzY3JpYmUoXCJMYXp5IEdyYXBoaXRpIGZhbGxiYWNrIGNvbmZpZ3VyYXRpb24sIGVuYWJsZWQgYnkgZGVmYXVsdC5cIiksXG4gICAgc2F2ZVR1cm5zOiB6XG4gICAgICAudW5pb24oW3oubGl0ZXJhbChcImF1dG9cIiksIHouYm9vbGVhbigpXSlcbiAgICAgIC5kZWZhdWx0KFwiYXV0b1wiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIkNvbXBsZXRlZC10dXJuIHNhdmluZyBtb2RlOiBhdXRvIGF0dGFjaGVzIHdoZW4gcG9zc2libGUsIHRydWUgcmVxdWlyZXMgYXR0YWNobWVudCwgYW5kIGZhbHNlIGRpc2FibGVzIGl0LlwiLFxuICAgICAgKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIkFwcEtpdCBtZW1vcnkgcGx1Z2luIG9wdGlvbnMuXCIpO1xuXG5leHBvcnQgdHlwZSBNZW1vcnlQbHVnaW5PcHRpb25zID0gei5pbnB1dDx0eXBlb2YgTWVtb3J5UGx1Z2luT3B0aW9uc1NjaGVtYT47XG5cbi8qKiBBcHBLaXQgYmFzZSBjb25maWd1cmF0aW9uIHBsdXMgdGhlIG1lbW9yeSBwbHVnaW4ncyBzZXJpYWxpemVkIG9wdGlvbnMuICovXG5leHBvcnQgdHlwZSBNZW1vcnlQbHVnaW5Db25maWcgPSBCYXNlUGx1Z2luQ29uZmlnICYgTWVtb3J5UGx1Z2luT3B0aW9ucztcblxuLyoqIFJlc29sdmVkIERhdGFicmlja3Mgc3RvcmUgaWRlbnRpdHkgYW5kIGF2YWlsYWJpbGl0eSBwb2xpY3kuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkRGF0YWJyaWNrc01lbW9yeU9wdGlvbnMge1xuICByZWFkb25seSBtZW1vcnlTdG9yZTogc3RyaW5nO1xuICByZWFkb25seSBtb2RlOiBcImF1dG9cIiB8IFwicmVxdWlyZWRcIjtcbn1cblxuLyoqIEZ1bGx5IHJlc29sdmVkIHRvcC1sZXZlbCBtZW1vcnkgY29uZmlndXJhdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRNZW1vcnlQbHVnaW5Db25maWcge1xuICByZWFkb25seSBkYXRhYnJpY2tzOiBmYWxzZSB8IFJlc29sdmVkRGF0YWJyaWNrc01lbW9yeU9wdGlvbnM7XG4gIHJlYWRvbmx5IGdyYXBoaXRpOiBmYWxzZSB8IEdyYXBoaXRpT3B0aW9ucztcbiAgcmVhZG9ubHkgc2F2ZVR1cm5zOiBcImF1dG9cIiB8IGJvb2xlYW47XG59XG5cbi8qKiBKU09OIFNjaGVtYSBwdWJsaXNoZWQgdGhyb3VnaCB0aGUgQXBwS2l0IG1lbW9yeSBwbHVnaW4gbWFuaWZlc3QuICovXG5leHBvcnQgY29uc3QgTUVNT1JZX0NPTkZJR19TQ0hFTUEgPSB6LnRvSlNPTlNjaGVtYShNZW1vcnlQbHVnaW5PcHRpb25zU2NoZW1hKSBhcyBKU09OU2NoZW1hNztcblxuLyoqIFJlc29sdmUgcGx1Z2luIGRlZmF1bHRzIHdpdGhvdXQgcGFyc2luZyB1bnJlbGF0ZWQgQXBwS2l0IGJhc2UgZmllbGRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNZW1vcnlQbHVnaW5Db25maWcoXG4gIGNvbmZpZzogTWVtb3J5UGx1Z2luQ29uZmlnID0ge30sXG4pOiBSZXNvbHZlZE1lbW9yeVBsdWdpbkNvbmZpZyB7XG4gIGNvbnN0IHBhcnNlZCA9IE1lbW9yeVBsdWdpbk9wdGlvbnNTY2hlbWEucGFyc2Uoe1xuICAgIGRhdGFicmlja3M6IGNvbmZpZy5kYXRhYnJpY2tzLFxuICAgIGdyYXBoaXRpOiBjb25maWcuZ3JhcGhpdGksXG4gICAgc2F2ZVR1cm5zOiBjb25maWcuc2F2ZVR1cm5zLFxuICB9KTtcbiAgaWYgKHBhcnNlZC5kYXRhYnJpY2tzID09PSBmYWxzZSAmJiBwYXJzZWQuZ3JhcGhpdGkgPT09IGZhbHNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwS2l0IG1lbW9yeSByZXF1aXJlcyBhdCBsZWFzdCBvbmUgZW5hYmxlZCBiYWNrZW5kXCIpO1xuICB9XG4gIHJldHVybiB7XG4gICAgZGF0YWJyaWNrczpcbiAgICAgIHBhcnNlZC5kYXRhYnJpY2tzID09PSBmYWxzZVxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDoge1xuICAgICAgICAgICAgbWVtb3J5U3RvcmU6XG4gICAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuZGF0YWJyaWNrcyA9PT0gXCJvYmplY3RcIiAmJiBwYXJzZWQuZGF0YWJyaWNrcy5tZW1vcnlTdG9yZVxuICAgICAgICAgICAgICAgID8gcmVzb3VyY2VJZChwYXJzZWQuZGF0YWJyaWNrcy5tZW1vcnlTdG9yZSwgXCJtZW1vcnktc3RvcmVzXCIpXG4gICAgICAgICAgICAgICAgOiBkZWZhdWx0TWVtb3J5U3RvcmUoKSxcbiAgICAgICAgICAgIG1vZGU6XG4gICAgICAgICAgICAgIHBhcnNlZC5kYXRhYnJpY2tzID09PSB0cnVlXG4gICAgICAgICAgICAgICAgPyBcInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBwYXJzZWQuZGF0YWJyaWNrcyA9PT0gXCJvYmplY3RcIlxuICAgICAgICAgICAgICAgICAgPyBwYXJzZWQuZGF0YWJyaWNrcy5tb2RlXG4gICAgICAgICAgICAgICAgICA6IFwiYXV0b1wiLFxuICAgICAgICAgIH0sXG4gICAgZ3JhcGhpdGk6XG4gICAgICBjb25maWcuZ3JhcGhpdGkgPT09IGZhbHNlXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiBjb25maWcuZ3JhcGhpdGkgPT09IHVuZGVmaW5lZCB8fCBjb25maWcuZ3JhcGhpdGkgPT09IHRydWVcbiAgICAgICAgICA/IHt9XG4gICAgICAgICAgOiBncmFwaGl0aU9wdGlvbk92ZXJyaWRlcyhjb25maWcuZ3JhcGhpdGkpLFxuICAgIHNhdmVUdXJuczogcGFyc2VkLnNhdmVUdXJucyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdE1lbW9yeVN0b3JlKCk6IHN0cmluZyB7XG4gIGNvbnN0IHNsdWcgPSB0b1NsdWdXaXRoT3B0aW9ucyh7IG1heExlbmd0aDogNTYsIHRydW5jYXRlU3RyYXRlZ3k6IFwiaGFzaFwiIH0sIHByb2plY3RVdGlscy5uYW1lKCkpO1xuICBjb25zdCBpZCA9IC9eW2Etel0vLnRlc3Qoc2x1ZykgPyBzbHVnIDogYGFwcC0ke3NsdWd9YDtcbiAgcmV0dXJuIChpZC5sZW5ndGggPCAzID8gYCR7aWR9LXN0b3JlYCA6IGlkKS5zbGljZSgwLCA1Nik7XG59XG5cbmZ1bmN0aW9uIHJlc291cmNlSWQodmFsdWU6IHN0cmluZywgcHJlZml4OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7cHJlZml4fS9gKSwgXCJcIik7XG4gIGlmICghdHJpbW1lZCkgdGhyb3cgbmV3IEVycm9yKGAke3ByZWZpeH0gaWQgaXMgcmVxdWlyZWRgKTtcbiAgcmV0dXJuIHRyaW1tZWQ7XG59XG4iXX0=
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBR0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsdUJBQXVCLEdBRXhCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDO0tBQzNDLE1BQU0sQ0FBQztJQUNOLFdBQVcsRUFBRSxDQUFDO1NBQ1gsTUFBTSxFQUFFO1NBQ1IsSUFBSSxFQUFFO1NBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQyw2REFBNkQsQ0FBQztJQUMxRSxJQUFJLEVBQUUsQ0FBQztTQUNKLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ2YsUUFBUSxDQUFDLG1FQUFtRSxDQUFDO0NBQ2pGLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsa0RBQWtELENBQUMsQ0FBQztBQUloRSxNQUFNLDJCQUEyQixHQUFHLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FDMUUsa0RBQWtELENBQ25ELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDO0tBQ3ZDLE1BQU0sQ0FBQztJQUNOLFVBQVUsRUFBRSxDQUFDO1NBQ1YsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsNkJBQTZCLENBQUMsQ0FB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LENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhLEVBQUUsTUFBYztJQUMvQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxJQUFJLENBQUMsT0FBTztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVG9wLWxldmVsIEFwcEtpdCBtZW1vcnkgcGx1Z2luIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgQmFzZVBsdWdpbkNvbmZpZyB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IHByb2plY3RVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IHRvU2x1Z1dpdGhPcHRpb25zIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIEdyYXBoaXRpT3B0aW9uc1NjaGVtYSxcbiAgZ3JhcGhpdGlPcHRpb25PdmVycmlkZXMsXG4gIHR5cGUgR3JhcGhpdGlPcHRpb25zLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ3JhcGhpdGlcIjtcbmltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYTcgfSBmcm9tIFwianNvbi1zY2hlbWFcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBEYXRhYnJpY2tzTWVtb3J5T3B0aW9uc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgbWVtb3J5U3RvcmU6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgICAgLm1pbigxKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIkV4aXN0aW5nIERhdGFicmlja3MgQWdlbnQgTWVtb3J5IFN0b3JlIGlkIG9yIHJlc291cmNlIG5hbWUuXCIpLFxuICAgIG1vZGU6IHpcbiAgICAgIC5lbnVtKFtcImF1dG9cIiwgXCJyZXF1aXJlZFwiXSlcbiAgICAgIC5kZWZhdWx0KFwiYXV0b1wiKVxuICAgICAgLmRlc2NyaWJlKFwiV2hldGhlciBhbiBpbmFjY2Vzc2libGUgbWFuYWdlZC1tZW1vcnkgc3RvcmUgZmFsbHMgYmFjayBvciBmYWlscy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJEYXRhYnJpY2tzIG1hbmFnZWQtbWVtb3J5IGJhY2tlbmQgY29uZmlndXJhdGlvbi5cIik7XG5cbmV4cG9ydCB0eXBlIERhdGFicmlja3NNZW1vcnlPcHRpb25zID0gei5pbnB1dDx0eXBlb2YgRGF0YWJyaWNrc01lbW9yeU9wdGlvbnNTY2hlbWE+O1xuXG5jb25zdCBHcmFwaGl0aU1lbW9yeU9wdGlvbnNTY2hlbWEgPSBHcmFwaGl0aU9wdGlvbnNTY2hlbWEucGFydGlhbCgpLmRlc2NyaWJlKFxuICBcIkdyYXBoaXRpIG9wdGlvbiBvdmVycmlkZXMgZm9yIHRoZSBsYXp5IGZhbGxiYWNrLlwiLFxuKTtcblxuZXhwb3J0IGNvbnN0IE1lbW9yeVBsdWdpbk9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGRhdGFicmlja3M6IHpcbiAgICAgIC51bmlvbihbei5saXRlcmFsKFwiYXV0b1wiKSwgei5ib29sZWFuKCksIERhdGFicmlja3NNZW1vcnlPcHRpb25zU2NoZW1hXSlcbiAgICAgIC5kZWZhdWx0KFwiYXV0b1wiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIkRhdGFicmlja3MgbWFuYWdlZCBtZW1vcnkgbW9kZTogYXV0byBmYWxscyBiYWNrLCB0cnVlIHJlcXVpcmVzIGFjY2VzcywgYW5kIGZhbHNlIGRpc2FibGVzIGl0LlwiLFxuICAgICAgKSxcbiAgICBncmFwaGl0aTogelxuICAgICAgLnVuaW9uKFt6LmJvb2xlYW4oKSwgR3JhcGhpdGlNZW1vcnlPcHRpb25zU2NoZW1hXSlcbiAgICAgIC5kZWZhdWx0KHRydWUpXG4gICAgICAuZGVzY3JpYmUoXCJMYXp5IEdyYXBoaXRpIGZhbGxiYWNrIGNvbmZpZ3VyYXRpb24sIGVuYWJsZWQgYnkgZGVmYXVsdC5cIiksXG4gICAgc2F2ZVR1cm5zOiB6XG4gICAgICAudW5pb24oW3oubGl0ZXJhbChcImF1dG9cIiksIHouYm9vbGVhbigpXSlcbiAgICAgIC5kZWZhdWx0KFwiYXV0b1wiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIkNvbXBsZXRlZC10dXJuIHNhdmluZyBtb2RlOiBhdXRvIG1pcnJvcnMgb25seSB0aHJvdWdoIGFuIGFscmVhZHktcnVubmluZyBHcmFwaGl0aSBmYWxsYmFjaywgdHJ1ZSBtYXkgc3RhcnQgR3JhcGhpdGkgYW5kIHJlcXVpcmVzIGF0dGFjaG1lbnQsIGFuZCBmYWxzZSBkaXNhYmxlcyBpdC5cIixcbiAgICAgICksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJBcHBLaXQgbWVtb3J5IHBsdWdpbiBvcHRpb25zLlwiKTtcblxuZXhwb3J0IHR5cGUgTWVtb3J5UGx1Z2luT3B0aW9ucyA9IHouaW5wdXQ8dHlwZW9mIE1lbW9yeVBsdWdpbk9wdGlvbnNTY2hlbWE+O1xuXG4vKiogQXBwS2l0IGJhc2UgY29uZmlndXJhdGlvbiBwbHVzIHRoZSBtZW1vcnkgcGx1Z2luJ3Mgc2VyaWFsaXplZCBvcHRpb25zLiAqL1xuZXhwb3J0IHR5cGUgTWVtb3J5UGx1Z2luQ29uZmlnID0gQmFzZVBsdWdpbkNvbmZpZyAmIE1lbW9yeVBsdWdpbk9wdGlvbnM7XG5cbi8qKiBSZXNvbHZlZCBEYXRhYnJpY2tzIHN0b3JlIGlkZW50aXR5IGFuZCBhdmFpbGFiaWxpdHkgcG9saWN5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZERhdGFicmlja3NNZW1vcnlPcHRpb25zIHtcbiAgcmVhZG9ubHkgbWVtb3J5U3RvcmU6IHN0cmluZztcbiAgcmVhZG9ubHkgbW9kZTogXCJhdXRvXCIgfCBcInJlcXVpcmVkXCI7XG59XG5cbi8qKiBGdWxseSByZXNvbHZlZCB0b3AtbGV2ZWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkTWVtb3J5UGx1Z2luQ29uZmlnIHtcbiAgcmVhZG9ubHkgZGF0YWJyaWNrczogZmFsc2UgfCBSZXNvbHZlZERhdGFicmlja3NNZW1vcnlPcHRpb25zO1xuICByZWFkb25seSBncmFwaGl0aTogZmFsc2UgfCBHcmFwaGl0aU9wdGlvbnM7XG4gIHJlYWRvbmx5IHNhdmVUdXJuczogXCJhdXRvXCIgfCBib29sZWFuO1xufVxuXG4vKiogSlNPTiBTY2hlbWEgcHVibGlzaGVkIHRocm91Z2ggdGhlIEFwcEtpdCBtZW1vcnkgcGx1Z2luIG1hbmlmZXN0LiAqL1xuZXhwb3J0IGNvbnN0IE1FTU9SWV9DT05GSUdfU0NIRU1BID0gei50b0pTT05TY2hlbWEoTWVtb3J5UGx1Z2luT3B0aW9uc1NjaGVtYSkgYXMgSlNPTlNjaGVtYTc7XG5cbi8qKiBSZXNvbHZlIHBsdWdpbiBkZWZhdWx0cyB3aXRob3V0IHBhcnNpbmcgdW5yZWxhdGVkIEFwcEtpdCBiYXNlIGZpZWxkcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTWVtb3J5UGx1Z2luQ29uZmlnKFxuICBjb25maWc6IE1lbW9yeVBsdWdpbkNvbmZpZyA9IHt9LFxuKTogUmVzb2x2ZWRNZW1vcnlQbHVnaW5Db25maWcge1xuICBjb25zdCBwYXJzZWQgPSBNZW1vcnlQbHVnaW5PcHRpb25zU2NoZW1hLnBhcnNlKHtcbiAgICBkYXRhYnJpY2tzOiBjb25maWcuZGF0YWJyaWNrcyxcbiAgICBncmFwaGl0aTogY29uZmlnLmdyYXBoaXRpLFxuICAgIHNhdmVUdXJuczogY29uZmlnLnNhdmVUdXJucyxcbiAgfSk7XG4gIGlmIChwYXJzZWQuZGF0YWJyaWNrcyA9PT0gZmFsc2UgJiYgcGFyc2VkLmdyYXBoaXRpID09PSBmYWxzZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFwcEtpdCBtZW1vcnkgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGVuYWJsZWQgYmFja2VuZFwiKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGRhdGFicmlja3M6XG4gICAgICBwYXJzZWQuZGF0YWJyaWNrcyA9PT0gZmFsc2VcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIG1lbW9yeVN0b3JlOlxuICAgICAgICAgICAgICB0eXBlb2YgcGFyc2VkLmRhdGFicmlja3MgPT09IFwib2JqZWN0XCIgJiYgcGFyc2VkLmRhdGFicmlja3MubWVtb3J5U3RvcmVcbiAgICAgICAgICAgICAgICA/IHJlc291cmNlSWQocGFyc2VkLmRhdGFicmlja3MubWVtb3J5U3RvcmUsIFwibWVtb3J5LXN0b3Jlc1wiKVxuICAgICAgICAgICAgICAgIDogZGVmYXVsdE1lbW9yeVN0b3JlKCksXG4gICAgICAgICAgICBtb2RlOlxuICAgICAgICAgICAgICBwYXJzZWQuZGF0YWJyaWNrcyA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgID8gXCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgOiB0eXBlb2YgcGFyc2VkLmRhdGFicmlja3MgPT09IFwib2JqZWN0XCJcbiAgICAgICAgICAgICAgICAgID8gcGFyc2VkLmRhdGFicmlja3MubW9kZVxuICAgICAgICAgICAgICAgICAgOiBcImF1dG9cIixcbiAgICAgICAgICB9LFxuICAgIGdyYXBoaXRpOlxuICAgICAgY29uZmlnLmdyYXBoaXRpID09PSBmYWxzZVxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogY29uZmlnLmdyYXBoaXRpID09PSB1bmRlZmluZWQgfHwgY29uZmlnLmdyYXBoaXRpID09PSB0cnVlXG4gICAgICAgICAgPyB7fVxuICAgICAgICAgIDogZ3JhcGhpdGlPcHRpb25PdmVycmlkZXMoY29uZmlnLmdyYXBoaXRpKSxcbiAgICBzYXZlVHVybnM6IHBhcnNlZC5zYXZlVHVybnMsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRNZW1vcnlTdG9yZSgpOiBzdHJpbmcge1xuICBjb25zdCBzbHVnID0gdG9TbHVnV2l0aE9wdGlvbnMoeyBtYXhMZW5ndGg6IDU2LCB0cnVuY2F0ZVN0cmF0ZWd5OiBcImhhc2hcIiB9LCBwcm9qZWN0VXRpbHMubmFtZSgpKTtcbiAgY29uc3QgaWQgPSAvXlthLXpdLy50ZXN0KHNsdWcpID8gc2x1ZyA6IGBhcHAtJHtzbHVnfWA7XG4gIHJldHVybiAoaWQubGVuZ3RoIDwgMyA/IGAke2lkfS1zdG9yZWAgOiBpZCkuc2xpY2UoMCwgNTYpO1xufVxuXG5mdW5jdGlvbiByZXNvdXJjZUlkKHZhbHVlOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdHJpbW1lZCA9IHZhbHVlLnRyaW0oKS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3ByZWZpeH0vYCksIFwiXCIpO1xuICBpZiAoIXRyaW1tZWQpIHRocm93IG5ldyBFcnJvcihgJHtwcmVmaXh9IGlkIGlzIHJlcXVpcmVkYCk7XG4gIHJldHVybiB0cmltbWVkO1xufVxuIl19
|
package/lib/src/plugin.js
CHANGED
|
@@ -129,6 +129,9 @@ export class MemoryPlugin extends ToolRegistryPlugin {
|
|
|
129
129
|
async saveTurn(turn, signal) {
|
|
130
130
|
if (await this.databricksBackend(turn.actorId, signal))
|
|
131
131
|
return;
|
|
132
|
+
const saveTurns = this.requireConfig().saveTurns;
|
|
133
|
+
if (saveTurns !== true && !this.graphiti?.running && !this.graphitiStarting)
|
|
134
|
+
return;
|
|
132
135
|
await (await this.graphitiBackend()).saveTurn(turn, signal);
|
|
133
136
|
}
|
|
134
137
|
async databricksBackend(actorId, signal) {
|
|
@@ -193,4 +196,4 @@ export class MemoryPlugin extends ToolRegistryPlugin {
|
|
|
193
196
|
}
|
|
194
197
|
/** AppKit registration factory for {@link MemoryPlugin}. */
|
|
195
198
|
export const memory = toPlugin(MemoryPlugin);
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBdUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RixPQUFPLEVBQ0wsVUFBVSxFQUNWLG1CQUFtQixHQUlwQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxrQkFBa0IsRUFFbEIsc0JBQXNCLEVBQ3RCLE9BQU8sR0FDUixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix5QkFBeUIsR0FPMUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHlCQUF5QixHQUcxQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRSxpRkFBaUY7QUFDakYsTUFBTSxPQUFPLFlBQWEsU0FBUSxrQkFBc0M7SUFDdEUsTUFBTSxDQUFDLEtBQUssR0FBRyxVQUFtQixDQUFDO0lBQ25DLE1BQU0sQ0FBQyxRQUFRLEdBQTZCO1FBQzFDLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLFFBQVE7UUFDckIsV0FBVyxFQUFFLGdGQUFnRjtRQUM3RixTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7UUFDekMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFO0tBQ3pDLENBQUM7SUFFZSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLFFBQVEsQ0FBOEI7SUFDdEMsVUFBVSxDQUEyQjtJQUNy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QUM7Z0JBQ2xFLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQzthQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVPLE9BQU8sQ0FBQyxVQUFtQjtRQUNqQyxJQUFJLFVBQVU7WUFBRSxPQUFPLFVBQVUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUN0RSxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O0FBR0gsNERBQTREO0FBQzVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwcEtpdCBtZW1vcnkgcGx1Z2luIHdpdGggRGF0YWJyaWNrcy1maXJzdCB0b29scyBhbmQgbGF6eSBHcmFwaGl0aSBmYWxsYmFjay5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgZ2V0RXhlY3V0aW9uQ29udGV4dCwgdG9QbHVnaW4sIHR5cGUgUGx1Z2luTWFuaWZlc3QgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQge1xuICBkZWZpbmVUb29sLFxuICBleGVjdXRlRnJvbVJlZ2lzdHJ5LFxuICB0eXBlIFRvb2xraXRFbnRyeSxcbiAgdHlwZSBUb29sa2l0T3B0aW9ucyxcbiAgdHlwZSBUb29sUmVnaXN0cnksXG59IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXQvYmV0YVwiO1xuaW1wb3J0IHtcbiAgVG9vbFJlZ2lzdHJ5UGx1Z2luLFxuICB0eXBlIEFnZW50VG9vbEV4ZWN1dGlvbkNvbnRleHQsXG4gIHRyeUdldEV4ZWN1dGlvbkNvbnRleHQsXG4gIGVudHJpZXMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdFwiO1xuaW1wb3J0IHsgZXJyb3JDb250ZXh0LCBsb2dnZXIgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuXG5pbXBvcnQge1xuICBSZWNhbGxNZW1vcnlJbnB1dFNjaGVtYSxcbiAgUmVtZW1iZXJNZW1vcnlJbnB1dFNjaGVtYSxcbiAgdHlwZSBHcmFwaGl0aU1lbW9yeUJhY2tlbmQsXG4gIHR5cGUgTWVtb3J5VHVybixcbiAgdHlwZSBSZWNhbGxNZW1vcnlJbnB1dCxcbiAgdHlwZSBSZWNhbGxNZW1vcnlSZXN1bHQsXG4gIHR5cGUgUmVtZW1iZXJNZW1vcnlJbnB1dCxcbiAgdHlwZSBSZW1lbWJlck1lbW9yeVJlc3VsdCxcbn0gZnJvbSBcIi4vX2NvbnRyYWN0cy50c1wiO1xuaW1wb3J0IHtcbiAgTUVNT1JZX0NPTkZJR19TQ0hFTUEsXG4gIHJlc29sdmVNZW1vcnlQbHVnaW5Db25maWcsXG4gIHR5cGUgTWVtb3J5UGx1Z2luQ29uZmlnLFxuICB0eXBlIFJlc29sdmVkTWVtb3J5UGx1Z2luQ29uZmlnLFxufSBmcm9tIFwiLi9jb25maWcudHNcIjtcbmltcG9ydCB7IERhdGFicmlja3NNZW1vcnlSdW50aW1lIH0gZnJvbSBcIi4vZGF0YWJyaWNrcy9fcnVudGltZS50c1wiO1xuXG4vKiogQXBwS2l0IG1lbW9yeSBwbHVnaW4gd2l0aCBEYXRhYnJpY2tzIG1hbmFnZWQgbWVtb3J5IGFuZCBHcmFwaGl0aSBmYWxsYmFjay4gKi9cbmV4cG9ydCBjbGFzcyBNZW1vcnlQbHVnaW4gZXh0ZW5kcyBUb29sUmVnaXN0cnlQbHVnaW48TWVtb3J5UGx1Z2luQ29uZmlnPiB7XG4gIHN0YXRpYyBwaGFzZSA9IFwiZGVmZXJyZWRcIiBhcyBjb25zdDtcbiAgc3RhdGljIG1hbmlmZXN0OiBQbHVnaW5NYW5pZmVzdDxcIm1lbW9yeVwiPiA9IHtcbiAgICBuYW1lOiBcIm1lbW9yeVwiLFxuICAgIGRpc3BsYXlOYW1lOiBcIk1lbW9yeVwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlB1Ymxpc2hlcyBEYXRhYnJpY2tzLWZpcnN0IGR1cmFibGUgbWVtb3J5IHRvb2xzIHdpdGggYSBsYXp5IEdyYXBoaXRpIGZhbGxiYWNrLlwiLFxuICAgIHN0YWJpbGl0eTogXCJiZXRhXCIsXG4gICAgcmVzb3VyY2VzOiB7IHJlcXVpcmVkOiBbXSwgb3B0aW9uYWw6IFtdIH0sXG4gICAgY29uZmlnOiB7IHNjaGVtYTogTUVNT1JZX0NPTkZJR19TQ0hFTUEgfSxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGxvZ2dlcih0aGlzKTtcbiAgcHJpdmF0ZSByZXNvbHZlZD86IFJlc29sdmVkTWVtb3J5UGx1Z2luQ29uZmlnO1xuICBwcml2YXRlIGRhdGFicmlja3M/OiBEYXRhYnJpY2tzTWVtb3J5UnVudGltZTtcbiAgcHJpdmF0ZSBncmFwaGl0aT86IEdyYXBoaXRpTWVtb3J5QmFja2VuZDtcbiAgcHJpdmF0ZSBncmFwaGl0aVN0YXJ0aW5nPzogUHJvbWlzZTxHcmFwaGl0aU1lbW9yeUJhY2tlbmQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IGdyYXBoaXRpU3RhcnR1cEFib3J0ID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBwcml2YXRlIGNsb3NlZCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBnZXQgdG9vbFJlZ2lzdHJ5KCk6IFRvb2xSZWdpc3RyeSB7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHNldHVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZU1lbW9yeVBsdWdpbkNvbmZpZyh0aGlzLmNvbmZpZyk7XG4gICAgaWYgKHJlc29sdmVkLnNhdmVUdXJucyA9PT0gdHJ1ZSAmJiByZXNvbHZlZC5ncmFwaGl0aSA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcEtpdCBtZW1vcnkgc2F2ZVR1cm5zIHJlcXVpcmVzIHRoZSBHcmFwaGl0aSBmYWxsYmFja1wiKTtcbiAgICB9XG4gICAgdGhpcy5yZXNvbHZlZCA9IHJlc29sdmVkO1xuICAgIGlmIChyZXNvbHZlZC5kYXRhYnJpY2tzKSB7XG4gICAgICB0aGlzLmRhdGFicmlja3MgPSBuZXcgRGF0YWJyaWNrc01lbW9yeVJ1bnRpbWUoXG4gICAgICAgIGdldEV4ZWN1dGlvbkNvbnRleHQoKS5jbGllbnQsXG4gICAgICAgIHJlc29sdmVkLmRhdGFicmlja3MsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBtYXN0cmEgPSBmYWxzZTtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0O1xuICAgIGNvbnN0IHNob3VsZEF0dGFjaFR1cm5TYXZlciA9XG4gICAgICByZXNvbHZlZC5zYXZlVHVybnMgIT09IGZhbHNlICYmXG4gICAgICByZXNvbHZlZC5ncmFwaGl0aSAhPT0gZmFsc2UgJiZcbiAgICAgIGNvbnRleHQ/Lmhhc1BsdWdpbihcIm1hc3RyYVwiKSA9PT0gdHJ1ZTtcbiAgICBpZiAoc2hvdWxkQXR0YWNoVHVyblNhdmVyICYmIGNvbnRleHQpIHtcbiAgICAgIGNvbnN0IHsgYXR0YWNoTWFzdHJhVHVyblNhdmVyIH0gPSBhd2FpdCBpbXBvcnQoXCIuL19tYXN0cmEudHNcIik7XG4gICAgICBtYXN0cmEgPSBhd2FpdCBhdHRhY2hNYXN0cmFUdXJuU2F2ZXIoY29udGV4dCwgKHR1cm4sIHNpZ25hbCkgPT4gdGhpcy5zYXZlVHVybih0dXJuLCBzaWduYWwpKTtcbiAgICB9XG4gICAgaWYgKHJlc29sdmVkLnNhdmVUdXJucyA9PT0gdHJ1ZSAmJiAhbWFzdHJhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcHBLaXQgbWVtb3J5IHNhdmVUdXJucyByZXF1aXJlcyBhIHJlZ2lzdGVyZWQgTWFzdHJhIHBsdWdpblwiKTtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcInJlYWR5XCIsIHtcbiAgICAgIGRhdGFicmlja3M6IHJlc29sdmVkLmRhdGFicmlja3MgIT09IGZhbHNlLFxuICAgICAgZ3JhcGhpdGk6IHJlc29sdmVkLmdyYXBoaXRpICE9PSBmYWxzZSA/IFwibGF6eVwiIDogZmFsc2UsXG4gICAgICBtYXN0cmFUdXJuU2F2ZXI6IG1hc3RyYSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHRvb2xraXQob3B0aW9ucz86IFRvb2xraXRPcHRpb25zKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBUb29sa2l0RW50cnk+PiB7XG4gICAgcmV0dXJuIGVudHJpZXMoXCJtZW1vcnlcIiwgdGhpcy5nZXRBZ2VudFRvb2xzKCksIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwcmVmaXg6IG9wdGlvbnM/LnByZWZpeCA/PyBcIlwiLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgZXhlY3V0ZUFnZW50VG9vbChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgYXJnczogdW5rbm93bixcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbiAgICBjb250ZXh0PzogQWdlbnRUb29sRXhlY3V0aW9uQ29udGV4dCxcbiAgKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIGV4ZWN1dGVGcm9tUmVnaXN0cnkodGhpcy5yZWdpc3RyeShjb250ZXh0Py5yZXNvdXJjZUlkKSwgbmFtZSwgYXJncywgc2lnbmFsKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFib3J0QWN0aXZlT3BlcmF0aW9ucygpOiB2b2lkIHtcbiAgICBzdXBlci5hYm9ydEFjdGl2ZU9wZXJhdGlvbnMoKTtcbiAgICB0aGlzLmdyYXBoaXRpU3RhcnR1cEFib3J0LmFib3J0KG5ldyBFcnJvcihcIkFwcEtpdCBtZW1vcnkgaXMgc2h1dHRpbmcgZG93blwiKSk7XG4gIH1cblxuICBhc3luYyBzaHV0ZG93bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgdGhpcy5ncmFwaGl0aVN0YXJ0dXBBYm9ydC5hYm9ydChuZXcgRXJyb3IoXCJBcHBLaXQgbWVtb3J5IGlzIHNodXR0aW5nIGRvd25cIikpO1xuICAgIGNvbnN0IHN0YXJ0aW5nID0gdGhpcy5ncmFwaGl0aVN0YXJ0aW5nO1xuICAgIGNvbnN0IGJhY2tlbmQgPSB0aGlzLmdyYXBoaXRpO1xuICAgIHRoaXMuZ3JhcGhpdGlTdGFydGluZyA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmdyYXBoaXRpID0gdW5kZWZpbmVkO1xuICAgIGF3YWl0IHN0YXJ0aW5nPy5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgIGF3YWl0IGJhY2tlbmQ/LnNodXRkb3duKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdHJ5KHJlc291cmNlSWQ/OiBzdHJpbmcpOiBUb29sUmVnaXN0cnkge1xuICAgIHJldHVybiB7XG4gICAgICByZW1lbWJlcjogZGVmaW5lVG9vbCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgIFwiU2F2ZSBhIGR1cmFibGUgdXNlciBwcmVmZXJlbmNlLCBmYWN0LCBkZWNpc2lvbiwgb3IgaW5zdHJ1Y3Rpb24gZm9yIGZ1dHVyZSBjb252ZXJzYXRpb25zLlwiLFxuICAgICAgICBzY2hlbWE6IFJlbWVtYmVyTWVtb3J5SW5wdXRTY2hlbWEsXG4gICAgICAgIGFubm90YXRpb25zOiB7IGVmZmVjdDogXCJ3cml0ZVwiLCByZXF1aXJlc1VzZXJDb250ZXh0OiB0cnVlIH0sXG4gICAgICAgIGF1dG9Jbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgIGV4ZWN1dGU6IChpbnB1dCwgc2lnbmFsKSA9PiB0aGlzLnJlbWVtYmVyKHRoaXMuYWN0b3JJZChyZXNvdXJjZUlkKSwgaW5wdXQsIHNpZ25hbCksXG4gICAgICB9KSxcbiAgICAgIHJlY2FsbF9tZW1vcnk6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICBcIlNlYXJjaCBkdXJhYmxlIGFjdG9yLXNjb3BlZCBtZW1vcnkgZm9yIGZhY3RzIGFuZCBwcmVmZXJlbmNlcyByZWxldmFudCB0byB0aGUgY3VycmVudCB0YXNrLlwiLFxuICAgICAgICBzY2hlbWE6IFJlY2FsbE1lbW9yeUlucHV0U2NoZW1hLFxuICAgICAgICBhbm5vdGF0aW9uczogeyBlZmZlY3Q6IFwicmVhZFwiLCByZXF1aXJlc1VzZXJDb250ZXh0OiB0cnVlIH0sXG4gICAgICAgIGF1dG9Jbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgIGV4ZWN1dGU6IChpbnB1dCwgc2lnbmFsKSA9PiB0aGlzLnJlY2FsbCh0aGlzLmFjdG9ySWQocmVzb3VyY2VJZCksIGlucHV0LCBzaWduYWwpLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVtZW1iZXIoXG4gICAgYWN0b3JJZDogc3RyaW5nLFxuICAgIGlucHV0OiBSZW1lbWJlck1lbW9yeUlucHV0LFxuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuICApOiBQcm9taXNlPFJlbWVtYmVyTWVtb3J5UmVzdWx0PiB7XG4gICAgY29uc3QgZGF0YWJyaWNrcyA9IGF3YWl0IHRoaXMuZGF0YWJyaWNrc0JhY2tlbmQoYWN0b3JJZCwgc2lnbmFsKTtcbiAgICBpZiAoZGF0YWJyaWNrcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGRhdGFicmlja3MucmVtZW1iZXIoYWN0b3JJZCwgaW5wdXQsIHNpZ25hbCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkRmFsbGJhY2tGcm9tRGF0YWJyaWNrcyhlcnJvcikpIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ3JhcGhpdGlCYWNrZW5kKCkpLnJlbWVtYmVyKGFjdG9ySWQsIGlucHV0LCBzaWduYWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWNhbGwoXG4gICAgYWN0b3JJZDogc3RyaW5nLFxuICAgIGlucHV0OiBSZWNhbGxNZW1vcnlJbnB1dCxcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbiAgKTogUHJvbWlzZTxSZWNhbGxNZW1vcnlSZXN1bHQ+IHtcbiAgICBjb25zdCBwYXJzZWQgPSBSZWNhbGxNZW1vcnlJbnB1dFNjaGVtYS5wYXJzZShpbnB1dCk7XG4gICAgY29uc3QgZGF0YWJyaWNrcyA9IGF3YWl0IHRoaXMuZGF0YWJyaWNrc0JhY2tlbmQoYWN0b3JJZCwgc2lnbmFsKTtcbiAgICBpZiAoZGF0YWJyaWNrcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGRhdGFicmlja3MucmVjYWxsKGFjdG9ySWQsIHBhcnNlZCwgc2lnbmFsKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghdGhpcy5zaG91bGRGYWxsYmFja0Zyb21EYXRhYnJpY2tzKGVycm9yKSkgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ncmFwaGl0aUJhY2tlbmQoKSkucmVjYWxsKGFjdG9ySWQsIHBhcnNlZCwgc2lnbmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2F2ZVR1cm4odHVybjogTWVtb3J5VHVybiwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoYXdhaXQgdGhpcy5kYXRhYnJpY2tzQmFja2VuZCh0dXJuLmFjdG9ySWQsIHNpZ25hbCkpIHJldHVybjtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy5ncmFwaGl0aUJhY2tlbmQoKSkuc2F2ZVR1cm4odHVybiwgc2lnbmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGF0YWJyaWNrc0JhY2tlbmQoXG4gICAgYWN0b3JJZDogc3RyaW5nLFxuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuICApOiBQcm9taXNlPERhdGFicmlja3NNZW1vcnlSdW50aW1lIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgYmFja2VuZCA9IHRoaXMuZGF0YWJyaWNrcztcbiAgICBpZiAoIWJhY2tlbmQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKGF3YWl0IGJhY2tlbmQuYXZhaWxhYmxlKGFjdG9ySWQsIHNpZ25hbCkpIHJldHVybiBiYWNrZW5kO1xuICAgIGNvbnN0IGNvbmZpZ3VyZWQgPSB0aGlzLnJlcXVpcmVDb25maWcoKS5kYXRhYnJpY2tzO1xuICAgIGlmIChjb25maWd1cmVkICYmIGNvbmZpZ3VyZWQubW9kZSA9PT0gXCJyZXF1aXJlZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXF1aXJlZCBEYXRhYnJpY2tzIG1hbmFnZWQgbWVtb3J5IGlzIHVuYXZhaWxhYmxlIGZvciB0aGUgY3VycmVudCBhY3RvclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkRmFsbGJhY2tGcm9tRGF0YWJyaWNrcyhlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbmZpZ3VyZWQgPSB0aGlzLnJlcXVpcmVDb25maWcoKS5kYXRhYnJpY2tzO1xuICAgIHJldHVybiAoXG4gICAgICBjb25maWd1cmVkICE9PSBmYWxzZSAmJlxuICAgICAgY29uZmlndXJlZC5tb2RlID09PSBcImF1dG9cIiAmJlxuICAgICAgZXJyb3JDb250ZXh0KGVycm9yKS5oYXNTdGF0dXNDb2RlKDQwMywgNDA0KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdyYXBoaXRpQmFja2VuZCgpOiBQcm9taXNlPEdyYXBoaXRpTWVtb3J5QmFja2VuZD4ge1xuICAgIGlmICh0aGlzLmNsb3NlZCkgdGhyb3cgbmV3IEVycm9yKFwiQXBwS2l0IG1lbW9yeSBpcyBjbG9zZWRcIik7XG4gICAgaWYgKHRoaXMuZ3JhcGhpdGk/LnJ1bm5pbmcpIHJldHVybiB0aGlzLmdyYXBoaXRpO1xuICAgIGlmICh0aGlzLmdyYXBoaXRpKSB7XG4gICAgICBhd2FpdCB0aGlzLmdyYXBoaXRpLnNodXRkb3duKCk7XG4gICAgICB0aGlzLmdyYXBoaXRpID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5yZXF1aXJlQ29uZmlnKCkuZ3JhcGhpdGk7XG4gICAgaWYgKCFvcHRpb25zKSB0aHJvdyBuZXcgRXJyb3IoXCJHcmFwaGl0aSBmYWxsYmFjayBpcyBkaXNhYmxlZFwiKTtcbiAgICB0aGlzLmdyYXBoaXRpU3RhcnRpbmcgPz89IGltcG9ydChcIi4vZ3JhcGhpdGkvX2JhY2tlbmQudHNcIilcbiAgICAgIC50aGVuKCh7IHN0YXJ0R3JhcGhpdGlCYWNrZW5kIH0pID0+XG4gICAgICAgIHN0YXJ0R3JhcGhpdGlCYWNrZW5kKG9wdGlvbnMsIHRoaXMuZ3JhcGhpdGlTdGFydHVwQWJvcnQuc2lnbmFsKSxcbiAgICAgIClcbiAgICAgIC50aGVuKChiYWNrZW5kKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgICAgIHJldHVybiBiYWNrZW5kLnNodXRkb3duKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcHBLaXQgbWVtb3J5IGNsb3NlZCBkdXJpbmcgR3JhcGhpdGkgc3RhcnR1cFwiKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyYXBoaXRpID0gYmFja2VuZDtcbiAgICAgICAgcmV0dXJuIGJhY2tlbmQ7XG4gICAgICB9KVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICB0aGlzLmdyYXBoaXRpU3RhcnRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5ncmFwaGl0aVN0YXJ0aW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RvcklkKHJlc291cmNlSWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChyZXNvdXJjZUlkKSByZXR1cm4gcmVzb3VyY2VJZDtcbiAgICBjb25zdCBjb250ZXh0ID0gdHJ5R2V0RXhlY3V0aW9uQ29udGV4dCgpO1xuICAgIGlmICghY29udGV4dCkgdGhyb3cgbmV3IEVycm9yKFwiTWVtb3J5IHRvb2xzIHJlcXVpcmUgYW4gQXBwS2l0IGV4ZWN1dGlvbiBjb250ZXh0XCIpO1xuICAgIHJldHVybiBcInVzZXJJZFwiIGluIGNvbnRleHQgPyBjb250ZXh0LnVzZXJJZCA6IGNvbnRleHQuc2VydmljZVVzZXJJZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVxdWlyZUNvbmZpZygpOiBSZXNvbHZlZE1lbW9yeVBsdWdpbkNvbmZpZyB7XG4gICAgaWYgKCF0aGlzLnJlc29sdmVkKSB0aHJvdyBuZXcgRXJyb3IoXCJBcHBLaXQgbWVtb3J5IGlzIG5vdCBpbml0aWFsaXplZFwiKTtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZDtcbiAgfVxufVxuXG4vKiogQXBwS2l0IHJlZ2lzdHJhdGlvbiBmYWN0b3J5IGZvciB7QGxpbmsgTWVtb3J5UGx1Z2lufS4gKi9cbmV4cG9ydCBjb25zdCBtZW1vcnkgPSB0b1BsdWdpbihNZW1vcnlQbHVnaW4pO1xuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBdUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RixPQUFPLEVBQ0wsVUFBVSxFQUNWLG1CQUFtQixHQUlwQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxrQkFBa0IsRUFFbEIsc0JBQXNCLEVBQ3RCLE9BQU8sR0FDUixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix5QkFBeUIsR0FPMUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHlCQUF5QixHQUcxQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRSxpRkFBaUY7QUFDakYsTUFBTSxPQUFPLFlBQWEsU0FBUSxrQkFBc0M7SUFDdEUsTUFBTSxDQUFDLEtBQUssR0FBRyxVQUFtQixDQUFDO0lBQ25DLE1BQU0sQ0FBQyxRQUFRLEdBQTZCO1FBQzFDLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLFFBQVE7UUFDckIsV0FBVyxFQUFFLGdGQUFnRjtRQUM3RixTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7UUFDekMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFO0tBQ3pDLENBQUM7SUFFZSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLFFBQVEsQ0FBOEI7SUFDdEMsVUFBVSxDQUEyQjtJQUNy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cmlja3MtZmlyc3QgdG9vbHMgYW5kIGxhenkgR3JhcGhpdGkgZmFsbGJhY2suXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGdldEV4ZWN1dGlvbkNvbnRleHQsIHRvUGx1Z2luLCB0eXBlIFBsdWdpbk1hbmlmZXN0IH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHtcbiAgZGVmaW5lVG9vbCxcbiAgZXhlY3V0ZUZyb21SZWdpc3RyeSxcbiAgdHlwZSBUb29sa2l0RW50cnksXG4gIHR5cGUgVG9vbGtpdE9wdGlvbnMsXG4gIHR5cGUgVG9vbFJlZ2lzdHJ5LFxufSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0L2JldGFcIjtcbmltcG9ydCB7XG4gIFRvb2xSZWdpc3RyeVBsdWdpbixcbiAgdHlwZSBBZ2VudFRvb2xFeGVjdXRpb25Db250ZXh0LFxuICB0cnlHZXRFeGVjdXRpb25Db250ZXh0LFxuICBlbnRyaWVzLFxufSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGVycm9yQ29udGV4dCwgbG9nZ2VyIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcblxuaW1wb3J0IHtcbiAgUmVjYWxsTWVtb3J5SW5wdXRTY2hlbWEsXG4gIFJlbWVtYmVyTWVtb3J5SW5wdXRTY2hlbWEsXG4gIHR5cGUgR3JhcGhpdGlNZW1vcnlCYWNrZW5kLFxuICB0eXBlIE1lbW9yeVR1cm4sXG4gIHR5cGUgUmVjYWxsTWVtb3J5SW5wdXQsXG4gIHR5cGUgUmVjYWxsTWVtb3J5UmVzdWx0LFxuICB0eXBlIFJlbWVtYmVyTWVtb3J5SW5wdXQsXG4gIHR5cGUgUmVtZW1iZXJNZW1vcnlSZXN1bHQsXG59IGZyb20gXCIuL19jb250cmFjdHMudHNcIjtcbmltcG9ydCB7XG4gIE1FTU9SWV9DT05GSUdfU0NIRU1BLFxuICByZXNvbHZlTWVtb3J5UGx1Z2luQ29uZmlnLFxuICB0eXBlIE1lbW9yeVBsdWdpbkNvbmZpZyxcbiAgdHlwZSBSZXNvbHZlZE1lbW9yeVBsdWdpbkNvbmZpZyxcbn0gZnJvbSBcIi4vY29uZmlnLnRzXCI7XG5pbXBvcnQgeyBEYXRhYnJpY2tzTWVtb3J5UnVudGltZSB9IGZyb20gXCIuL2RhdGFicmlja3MvX3J1bnRpbWUudHNcIjtcblxuLyoqIEFwcEtpdCBtZW1vcnkgcGx1Z2luIHdpdGggRGF0YWJyaWNrcyBtYW5hZ2VkIG1lbW9yeSBhbmQgR3JhcGhpdGkgZmFsbGJhY2suICovXG5leHBvcnQgY2xhc3MgTWVtb3J5UGx1Z2luIGV4dGVuZHMgVG9vbFJlZ2lzdHJ5UGx1Z2luPE1lbW9yeVBsdWdpbkNvbmZpZz4ge1xuICBzdGF0aWMgcGhhc2UgPSBcImRlZmVycmVkXCIgYXMgY29uc3Q7XG4gIHN0YXRpYyBtYW5pZmVzdDogUGx1Z2luTWFuaWZlc3Q8XCJtZW1vcnlcIj4gPSB7XG4gICAgbmFtZTogXCJtZW1vcnlcIixcbiAgICBkaXNwbGF5TmFtZTogXCJNZW1vcnlcIixcbiAgICBkZXNjcmlwdGlvbjogXCJQdWJsaXNoZXMgRGF0YWJyaWNrcy1maXJzdCBkdXJhYmxlIG1lbW9yeSB0b29scyB3aXRoIGEgbGF6eSBHcmFwaGl0aSBmYWxsYmFjay5cIixcbiAgICBzdGFiaWxpdHk6IFwiYmV0YVwiLFxuICAgIHJlc291cmNlczogeyByZXF1aXJlZDogW10sIG9wdGlvbmFsOiBbXSB9LFxuICAgIGNvbmZpZzogeyBzY2hlbWE6IE1FTU9SWV9DT05GSUdfU0NIRU1BIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBsb2dnZXIodGhpcyk7XG4gIHByaXZhdGUgcmVzb2x2ZWQ/OiBSZXNvbHZlZE1lbW9yeVBsdWdpbkNvbmZpZztcbiAgcHJpdmF0ZSBkYXRhYnJpY2tzPzogRGF0YWJyaWNrc01lbW9yeVJ1bnRpbWU7XG4gIHByaXZhdGUgZ3JhcGhpdGk/OiBHcmFwaGl0aU1lbW9yeUJhY2tlbmQ7XG4gIHByaXZhdGUgZ3JhcGhpdGlTdGFydGluZz86IFByb21pc2U8R3JhcGhpdGlNZW1vcnlCYWNrZW5kPjtcbiAgcHJpdmF0ZSByZWFkb25seSBncmFwaGl0aVN0YXJ0dXBBYm9ydCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgcHJpdmF0ZSBjbG9zZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZ2V0IHRvb2xSZWdpc3RyeSgpOiBUb29sUmVnaXN0cnkge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5KCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBzZXR1cCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVNZW1vcnlQbHVnaW5Db25maWcodGhpcy5jb25maWcpO1xuICAgIGlmIChyZXNvbHZlZC5zYXZlVHVybnMgPT09IHRydWUgJiYgcmVzb2x2ZWQuZ3JhcGhpdGkgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcHBLaXQgbWVtb3J5IHNhdmVUdXJucyByZXF1aXJlcyB0aGUgR3JhcGhpdGkgZmFsbGJhY2tcIik7XG4gICAgfVxuICAgIHRoaXMucmVzb2x2ZWQgPSByZXNvbHZlZDtcbiAgICBpZiAocmVzb2x2ZWQuZGF0YWJyaWNrcykge1xuICAgICAgdGhpcy5kYXRhYnJpY2tzID0gbmV3IERhdGFicmlja3NNZW1vcnlSdW50aW1lKFxuICAgICAgICBnZXRFeGVjdXRpb25Db250ZXh0KCkuY2xpZW50LFxuICAgICAgICByZXNvbHZlZC5kYXRhYnJpY2tzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgbWFzdHJhID0gZmFsc2U7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dDtcbiAgICBjb25zdCBzaG91bGRBdHRhY2hUdXJuU2F2ZXIgPVxuICAgICAgcmVzb2x2ZWQuc2F2ZVR1cm5zICE9PSBmYWxzZSAmJlxuICAgICAgcmVzb2x2ZWQuZ3JhcGhpdGkgIT09IGZhbHNlICYmXG4gICAgICBjb250ZXh0Py5oYXNQbHVnaW4oXCJtYXN0cmFcIikgPT09IHRydWU7XG4gICAgaWYgKHNob3VsZEF0dGFjaFR1cm5TYXZlciAmJiBjb250ZXh0KSB7XG4gICAgICBjb25zdCB7IGF0dGFjaE1hc3RyYVR1cm5TYXZlciB9ID0gYXdhaXQgaW1wb3J0KFwiLi9fbWFzdHJhLnRzXCIpO1xuICAgICAgbWFzdHJhID0gYXdhaXQgYXR0YWNoTWFzdHJhVHVyblNhdmVyKGNvbnRleHQsICh0dXJuLCBzaWduYWwpID0+IHRoaXMuc2F2ZVR1cm4odHVybiwgc2lnbmFsKSk7XG4gICAgfVxuICAgIGlmIChyZXNvbHZlZC5zYXZlVHVybnMgPT09IHRydWUgJiYgIW1hc3RyYSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXBwS2l0IG1lbW9yeSBzYXZlVHVybnMgcmVxdWlyZXMgYSByZWdpc3RlcmVkIE1hc3RyYSBwbHVnaW5cIik7XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyLmluZm8oXCJyZWFkeVwiLCB7XG4gICAgICBkYXRhYnJpY2tzOiByZXNvbHZlZC5kYXRhYnJpY2tzICE9PSBmYWxzZSxcbiAgICAgIGdyYXBoaXRpOiByZXNvbHZlZC5ncmFwaGl0aSAhPT0gZmFsc2UgPyBcImxhenlcIiA6IGZhbHNlLFxuICAgICAgbWFzdHJhVHVyblNhdmVyOiBtYXN0cmEsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB0b29sa2l0KG9wdGlvbnM/OiBUb29sa2l0T3B0aW9ucyk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgVG9vbGtpdEVudHJ5Pj4ge1xuICAgIHJldHVybiBlbnRyaWVzKFwibWVtb3J5XCIsIHRoaXMuZ2V0QWdlbnRUb29scygpLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcHJlZml4OiBvcHRpb25zPy5wcmVmaXggPz8gXCJcIixcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGV4ZWN1dGVBZ2VudFRvb2woXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGFyZ3M6IHVua25vd24sXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICAgY29udGV4dD86IEFnZW50VG9vbEV4ZWN1dGlvbkNvbnRleHQsXG4gICk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHJldHVybiBleGVjdXRlRnJvbVJlZ2lzdHJ5KHRoaXMucmVnaXN0cnkoY29udGV4dD8ucmVzb3VyY2VJZCksIG5hbWUsIGFyZ3MsIHNpZ25hbCk7XG4gIH1cblxuICBvdmVycmlkZSBhYm9ydEFjdGl2ZU9wZXJhdGlvbnMoKTogdm9pZCB7XG4gICAgc3VwZXIuYWJvcnRBY3RpdmVPcGVyYXRpb25zKCk7XG4gICAgdGhpcy5ncmFwaGl0aVN0YXJ0dXBBYm9ydC5hYm9ydChuZXcgRXJyb3IoXCJBcHBLaXQgbWVtb3J5IGlzIHNodXR0aW5nIGRvd25cIikpO1xuICB9XG5cbiAgYXN5bmMgc2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIHRoaXMuZ3JhcGhpdGlTdGFydHVwQWJvcnQuYWJvcnQobmV3IEVycm9yKFwiQXBwS2l0IG1lbW9yeSBpcyBzaHV0dGluZyBkb3duXCIpKTtcbiAgICBjb25zdCBzdGFydGluZyA9IHRoaXMuZ3JhcGhpdGlTdGFydGluZztcbiAgICBjb25zdCBiYWNrZW5kID0gdGhpcy5ncmFwaGl0aTtcbiAgICB0aGlzLmdyYXBoaXRpU3RhcnRpbmcgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5ncmFwaGl0aSA9IHVuZGVmaW5lZDtcbiAgICBhd2FpdCBzdGFydGluZz8uY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICBhd2FpdCBiYWNrZW5kPy5zaHV0ZG93bigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RyeShyZXNvdXJjZUlkPzogc3RyaW5nKTogVG9vbFJlZ2lzdHJ5IHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVtZW1iZXI6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICBcIlNhdmUgYSBkdXJhYmxlIHVzZXIgcHJlZmVyZW5jZSwgZmFjdCwgZGVjaXNpb24sIG9yIGluc3RydWN0aW9uIGZvciBmdXR1cmUgY29udmVyc2F0aW9ucy5cIixcbiAgICAgICAgc2NoZW1hOiBSZW1lbWJlck1lbW9yeUlucHV0U2NoZW1hLFxuICAgICAgICBhbm5vdGF0aW9uczogeyBlZmZlY3Q6IFwid3JpdGVcIiwgcmVxdWlyZXNVc2VyQ29udGV4dDogdHJ1ZSB9LFxuICAgICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgICBleGVjdXRlOiAoaW5wdXQsIHNpZ25hbCkgPT4gdGhpcy5yZW1lbWJlcih0aGlzLmFjdG9ySWQocmVzb3VyY2VJZCksIGlucHV0LCBzaWduYWwpLFxuICAgICAgfSksXG4gICAgICByZWNhbGxfbWVtb3J5OiBkZWZpbmVUb29sKHtcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJTZWFyY2ggZHVyYWJsZSBhY3Rvci1zY29wZWQgbWVtb3J5IGZvciBmYWN0cyBhbmQgcHJlZmVyZW5jZXMgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgdGFzay5cIixcbiAgICAgICAgc2NoZW1hOiBSZWNhbGxNZW1vcnlJbnB1dFNjaGVtYSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IHsgZWZmZWN0OiBcInJlYWRcIiwgcmVxdWlyZXNVc2VyQ29udGV4dDogdHJ1ZSB9LFxuICAgICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgICBleGVjdXRlOiAoaW5wdXQsIHNpZ25hbCkgPT4gdGhpcy5yZWNhbGwodGhpcy5hY3RvcklkKHJlc291cmNlSWQpLCBpbnB1dCwgc2lnbmFsKSxcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlbWVtYmVyKFxuICAgIGFjdG9ySWQ6IHN0cmluZyxcbiAgICBpbnB1dDogUmVtZW1iZXJNZW1vcnlJbnB1dCxcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbiAgKTogUHJvbWlzZTxSZW1lbWJlck1lbW9yeVJlc3VsdD4ge1xuICAgIGNvbnN0IGRhdGFicmlja3MgPSBhd2FpdCB0aGlzLmRhdGFicmlja3NCYWNrZW5kKGFjdG9ySWQsIHNpZ25hbCk7XG4gICAgaWYgKGRhdGFicmlja3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBkYXRhYnJpY2tzLnJlbWVtYmVyKGFjdG9ySWQsIGlucHV0LCBzaWduYWwpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3VsZEZhbGxiYWNrRnJvbURhdGFicmlja3MoZXJyb3IpKSB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdyYXBoaXRpQmFja2VuZCgpKS5yZW1lbWJlcihhY3RvcklkLCBpbnB1dCwgc2lnbmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVjYWxsKFxuICAgIGFjdG9ySWQ6IHN0cmluZyxcbiAgICBpbnB1dDogUmVjYWxsTWVtb3J5SW5wdXQsXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICk6IFByb21pc2U8UmVjYWxsTWVtb3J5UmVzdWx0PiB7XG4gICAgY29uc3QgcGFyc2VkID0gUmVjYWxsTWVtb3J5SW5wdXRTY2hlbWEucGFyc2UoaW5wdXQpO1xuICAgIGNvbnN0IGRhdGFicmlja3MgPSBhd2FpdCB0aGlzLmRhdGFicmlja3NCYWNrZW5kKGFjdG9ySWQsIHNpZ25hbCk7XG4gICAgaWYgKGRhdGFicmlja3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBkYXRhYnJpY2tzLnJlY2FsbChhY3RvcklkLCBwYXJzZWQsIHNpZ25hbCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkRmFsbGJhY2tGcm9tRGF0YWJyaWNrcyhlcnJvcikpIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ3JhcGhpdGlCYWNrZW5kKCkpLnJlY2FsbChhY3RvcklkLCBwYXJzZWQsIHNpZ25hbCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNhdmVUdXJuKHR1cm46IE1lbW9yeVR1cm4sIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGF3YWl0IHRoaXMuZGF0YWJyaWNrc0JhY2tlbmQodHVybi5hY3RvcklkLCBzaWduYWwpKSByZXR1cm47XG4gICAgY29uc3Qgc2F2ZVR1cm5zID0gdGhpcy5yZXF1aXJlQ29uZmlnKCkuc2F2ZVR1cm5zO1xuICAgIGlmIChzYXZlVHVybnMgIT09IHRydWUgJiYgIXRoaXMuZ3JhcGhpdGk/LnJ1bm5pbmcgJiYgIXRoaXMuZ3JhcGhpdGlTdGFydGluZykgcmV0dXJuO1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLmdyYXBoaXRpQmFja2VuZCgpKS5zYXZlVHVybih0dXJuLCBzaWduYWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkYXRhYnJpY2tzQmFja2VuZChcbiAgICBhY3RvcklkOiBzdHJpbmcsXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICk6IFByb21pc2U8RGF0YWJyaWNrc01lbW9yeVJ1bnRpbWUgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBiYWNrZW5kID0gdGhpcy5kYXRhYnJpY2tzO1xuICAgIGlmICghYmFja2VuZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoYXdhaXQgYmFja2VuZC5hdmFpbGFibGUoYWN0b3JJZCwgc2lnbmFsKSkgcmV0dXJuIGJhY2tlbmQ7XG4gICAgY29uc3QgY29uZmlndXJlZCA9IHRoaXMucmVxdWlyZUNvbmZpZygpLmRhdGFicmlja3M7XG4gICAgaWYgKGNvbmZpZ3VyZWQgJiYgY29uZmlndXJlZC5tb2RlID09PSBcInJlcXVpcmVkXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlcXVpcmVkIERhdGFicmlja3MgbWFuYWdlZCBtZW1vcnkgaXMgdW5hdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IGFjdG9yXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRGYWxsYmFja0Zyb21EYXRhYnJpY2tzKGVycm9yOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29uZmlndXJlZCA9IHRoaXMucmVxdWlyZUNvbmZpZygpLmRhdGFicmlja3M7XG4gICAgcmV0dXJuIChcbiAgICAgIGNvbmZpZ3VyZWQgIT09IGZhbHNlICYmXG4gICAgICBjb25maWd1cmVkLm1vZGUgPT09IFwiYXV0b1wiICYmXG4gICAgICBlcnJvckNvbnRleHQoZXJyb3IpLmhhc1N0YXR1c0NvZGUoNDAzLCA0MDQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ3JhcGhpdGlCYWNrZW5kKCk6IFByb21pc2U8R3JhcGhpdGlNZW1vcnlCYWNrZW5kPiB7XG4gICAgaWYgKHRoaXMuY2xvc2VkKSB0aHJvdyBuZXcgRXJyb3IoXCJBcHBLaXQgbWVtb3J5IGlzIGNsb3NlZFwiKTtcbiAgICBpZiAodGhpcy5ncmFwaGl0aT8ucnVubmluZykgcmV0dXJuIHRoaXMuZ3JhcGhpdGk7XG4gICAgaWYgKHRoaXMuZ3JhcGhpdGkpIHtcbiAgICAgIGF3YWl0IHRoaXMuZ3JhcGhpdGkuc2h1dGRvd24oKTtcbiAgICAgIHRoaXMuZ3JhcGhpdGkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnJlcXVpcmVDb25maWcoKS5ncmFwaGl0aTtcbiAgICBpZiAoIW9wdGlvbnMpIHRocm93IG5ldyBFcnJvcihcIkdyYXBoaXRpIGZhbGxiYWNrIGlzIGRpc2FibGVkXCIpO1xuICAgIHRoaXMuZ3JhcGhpdGlTdGFydGluZyA/Pz0gaW1wb3J0KFwiLi9ncmFwaGl0aS9fYmFja2VuZC50c1wiKVxuICAgICAgLnRoZW4oKHsgc3RhcnRHcmFwaGl0aUJhY2tlbmQgfSkgPT5cbiAgICAgICAgc3RhcnRHcmFwaGl0aUJhY2tlbmQob3B0aW9ucywgdGhpcy5ncmFwaGl0aVN0YXJ0dXBBYm9ydC5zaWduYWwpLFxuICAgICAgKVxuICAgICAgLnRoZW4oKGJhY2tlbmQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2tlbmQuc2h1dGRvd24oKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwcEtpdCBtZW1vcnkgY2xvc2VkIGR1cmluZyBHcmFwaGl0aSBzdGFydHVwXCIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JhcGhpdGkgPSBiYWNrZW5kO1xuICAgICAgICByZXR1cm4gYmFja2VuZDtcbiAgICAgIH0pXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JhcGhpdGlTdGFydGluZyA9IHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmdyYXBoaXRpU3RhcnRpbmc7XG4gIH1cblxuICBwcml2YXRlIGFjdG9ySWQocmVzb3VyY2VJZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHJlc291cmNlSWQpIHJldHVybiByZXNvdXJjZUlkO1xuICAgIGNvbnN0IGNvbnRleHQgPSB0cnlHZXRFeGVjdXRpb25Db250ZXh0KCk7XG4gICAgaWYgKCFjb250ZXh0KSB0aHJvdyBuZXcgRXJyb3IoXCJNZW1vcnkgdG9vbHMgcmVxdWlyZSBhbiBBcHBLaXQgZXhlY3V0aW9uIGNvbnRleHRcIik7XG4gICAgcmV0dXJuIFwidXNlcklkXCIgaW4gY29udGV4dCA/IGNvbnRleHQudXNlcklkIDogY29udGV4dC5zZXJ2aWNlVXNlcklkO1xuICB9XG5cbiAgcHJpdmF0ZSByZXF1aXJlQ29uZmlnKCk6IFJlc29sdmVkTWVtb3J5UGx1Z2luQ29uZmlnIHtcbiAgICBpZiAoIXRoaXMucmVzb2x2ZWQpIHRocm93IG5ldyBFcnJvcihcIkFwcEtpdCBtZW1vcnkgaXMgbm90IGluaXRpYWxpemVkXCIpO1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkO1xuICB9XG59XG5cbi8qKiBBcHBLaXQgcmVnaXN0cmF0aW9uIGZhY3RvcnkgZm9yIHtAbGluayBNZW1vcnlQbHVnaW59LiAqL1xuZXhwb3J0IGNvbnN0IG1lbW9yeSA9IHRvUGx1Z2luKE1lbW9yeVBsdWdpbik7XG4iXX0=
|
package/package.json
CHANGED
|
@@ -19,23 +19,23 @@
|
|
|
19
19
|
"projen": "projen"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@dbx-tools/appkit-mastra": "^0.9.
|
|
22
|
+
"@dbx-tools/appkit-mastra": "^0.9.177",
|
|
23
23
|
"@types/json-schema": "^7",
|
|
24
24
|
"@types/node": "^24.6.0",
|
|
25
25
|
"typescript": "^5.9.3",
|
|
26
26
|
"vitest": "3.2.4"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@dbx-tools/appkit-mastra": "^0.9.
|
|
29
|
+
"@dbx-tools/appkit-mastra": "^0.9.177"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@databricks/appkit": "0.81.0",
|
|
33
|
-
"@dbx-tools/appkit": "^0.9.
|
|
34
|
-
"@dbx-tools/auth": "^0.9.
|
|
35
|
-
"@dbx-tools/cache": "^0.9.
|
|
36
|
-
"@dbx-tools/core": "^0.9.
|
|
37
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
38
|
-
"@dbx-tools/shared-graphiti": "^0.9.
|
|
33
|
+
"@dbx-tools/appkit": "^0.9.177",
|
|
34
|
+
"@dbx-tools/auth": "^0.9.177",
|
|
35
|
+
"@dbx-tools/cache": "^0.9.177",
|
|
36
|
+
"@dbx-tools/core": "^0.9.177",
|
|
37
|
+
"@dbx-tools/shared-core": "^0.9.177",
|
|
38
|
+
"@dbx-tools/shared-graphiti": "^0.9.177",
|
|
39
39
|
"semver": "^7.7.3",
|
|
40
40
|
"zod": "4.3.6"
|
|
41
41
|
},
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"./package.json": "./package.json"
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
|
-
"version": "0.9.
|
|
64
|
+
"version": "0.9.177",
|
|
65
65
|
"types": "./lib/index.d.ts",
|
|
66
66
|
"dbxToolsConfig": {
|
|
67
67
|
"tags": [
|
package/src/config.ts
CHANGED
|
@@ -53,7 +53,7 @@ export const MemoryPluginOptionsSchema = z
|
|
|
53
53
|
.union([z.literal("auto"), z.boolean()])
|
|
54
54
|
.default("auto")
|
|
55
55
|
.describe(
|
|
56
|
-
"Completed-turn saving mode: auto
|
|
56
|
+
"Completed-turn saving mode: auto mirrors only through an already-running Graphiti fallback, true may start Graphiti and requires attachment, and false disables it.",
|
|
57
57
|
),
|
|
58
58
|
})
|
|
59
59
|
.strict()
|
package/src/plugin.ts
CHANGED
|
@@ -183,6 +183,8 @@ export class MemoryPlugin extends ToolRegistryPlugin<MemoryPluginConfig> {
|
|
|
183
183
|
|
|
184
184
|
private async saveTurn(turn: MemoryTurn, signal?: AbortSignal): Promise<void> {
|
|
185
185
|
if (await this.databricksBackend(turn.actorId, signal)) return;
|
|
186
|
+
const saveTurns = this.requireConfig().saveTurns;
|
|
187
|
+
if (saveTurns !== true && !this.graphiti?.running && !this.graphitiStarting) return;
|
|
186
188
|
await (await this.graphitiBackend()).saveTurn(turn, signal);
|
|
187
189
|
}
|
|
188
190
|
|