@dbx-tools/cli 0.9.128 → 0.9.131

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 CHANGED
@@ -586,16 +586,18 @@ dbx model-gateway [options] [command]
586
586
 
587
587
  #### Options
588
588
 
589
- | Option | Description |
590
- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
591
- | `-v, --version` | output the version number |
592
- | `--model <value>` | Optional fuzzy or exact model name. (env: MODEL) |
593
- | `--model-class <value>` | Optional model capability class used when selecting a default model. (choices: "chat-thinking", "chat-balanced", "chat-fast", "embedding", env: MODEL_CLASS) |
594
- | `-l, --listen <value>` | Loopback listener address. (default: tcp://localhost:4000, env: LISTEN) |
595
- | `-p, --profile <value>` | Databricks profile used for model discovery and requests. (env: DATABRICKS_CONFIG_PROFILE) |
596
- | `--body-limit <value>` | Maximum JSON request body size. (default: "100mb", env: BODY_LIMIT) |
597
- | `-r, --runtime-info` | Print runtime implementation metadata. (default: false, env: RUNTIME_INFO) |
598
- | `--no-runtime-info` | Disable print runtime implementation metadata. |
589
+ | Option | Description |
590
+ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
591
+ | `-v, --version` | output the version number |
592
+ | `--model <value>` | Optional fuzzy or exact model name. (env: MODEL) |
593
+ | `--model-class <value>` | Optional model capability class used when selecting a default model. (choices: "chat-thinking", "chat-balanced", "chat-fast", "embedding", env: MODEL_CLASS) |
594
+ | `--prefer-system-models` | Prefer system.ai services over serving endpoints for non-exact model selection. (default: false, env: PREFER_SYSTEM_MODELS) |
595
+ | `--no-prefer-system-models` | Disable prefer system.ai services over serving endpoints for non-exact model selection. |
596
+ | `-l, --listen <value>` | Loopback listener address. (default: tcp://localhost:4000, env: LISTEN) |
597
+ | `--profile <value>` | Databricks profile used for model discovery and requests. (env: DATABRICKS_CONFIG_PROFILE) |
598
+ | `--body-limit <value>` | Maximum JSON request body size. (default: "100mb", env: BODY_LIMIT) |
599
+ | `-r, --runtime-info` | Print runtime implementation metadata. (default: false, env: RUNTIME_INFO) |
600
+ | `--no-runtime-info` | Disable print runtime implementation metadata. |
599
601
 
600
602
  #### Commands
601
603
 
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/cli";
6
- export const PACKAGE_VERSION = "0.9.128";
6
+ export const PACKAGE_VERSION = "0.9.131";
7
7
  export * as appkitCli from "./src/appkit/cli.ts";
8
8
  export * as appkitEnvExport from "./src/appkit/env-export.ts";
9
9
  export * as authCli from "./src/auth/cli.ts";
@@ -43,6 +43,8 @@ export type { InstallGenieCodeOptions } from "./src/genie-code/install.ts";
43
43
  export { RUNNER_OPTIONS_ENV } from "./src/genie-code/runner.ts";
44
44
  export type { GenieCodeRuntimeDependencies, RunGenieCodeOptions, PreparedGenieCodeRuntime } from "./src/genie-code/runtime.ts";
45
45
  export type { GraphitiCliDependencies, GraphitiServiceOptions } from "./src/graphiti/cli.ts";
46
+ export { GRAPHITI_DEFAULTS, GraphitiCliOptionsSchema, GraphitiOptionsSchema, ResolvedGraphitiOptionsSchema, graphitiOptionOverrides, graphitiOptionsEnvironment, graphitiOptionsFromEnvironment, resolveGraphitiOptions } from "./src/graphiti/options.ts";
47
+ export type { GraphitiOptions, ResolvedGraphitiOptions } from "./src/graphiti/options.ts";
46
48
  export { CancellationRegistry } from "./src/lakebase-proxy/cancellation.ts";
47
49
  export type { CancellationTarget, CancellationForwarder } from "./src/lakebase-proxy/cancellation.ts";
48
50
  export type { LakebaseProxyCliDependencies } from "./src/lakebase-proxy/cli.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/cli";
2
- export declare const PACKAGE_VERSION = "0.9.128";
2
+ export declare const PACKAGE_VERSION = "0.9.131";
3
3
  export * as appkitCli from "./src/appkit/cli.ts";
4
4
  export * as appkitEnvExport from "./src/appkit/env-export.ts";
5
5
  export * as authCli from "./src/auth/cli.ts";
@@ -39,6 +39,8 @@ export type { InstallGenieCodeOptions } from "./src/genie-code/install.ts";
39
39
  export { RUNNER_OPTIONS_ENV } from "./src/genie-code/runner.ts";
40
40
  export type { GenieCodeRuntimeDependencies, RunGenieCodeOptions, PreparedGenieCodeRuntime } from "./src/genie-code/runtime.ts";
41
41
  export type { GraphitiCliDependencies, GraphitiServiceOptions } from "./src/graphiti/cli.ts";
42
+ export { GRAPHITI_DEFAULTS, GraphitiCliOptionsSchema, GraphitiOptionsSchema, ResolvedGraphitiOptionsSchema, graphitiOptionOverrides, graphitiOptionsEnvironment, graphitiOptionsFromEnvironment, resolveGraphitiOptions } from "./src/graphiti/options.ts";
43
+ export type { GraphitiOptions, ResolvedGraphitiOptions } from "./src/graphiti/options.ts";
42
44
  export { CancellationRegistry } from "./src/lakebase-proxy/cancellation.ts";
43
45
  export type { CancellationTarget, CancellationForwarder } from "./src/lakebase-proxy/cancellation.ts";
44
46
  export type { LakebaseProxyCliDependencies } from "./src/lakebase-proxy/cli.ts";
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
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/cli";
5
- export const PACKAGE_VERSION = "0.9.128";
5
+ export const PACKAGE_VERSION = "0.9.131";
6
6
  export * as appkitCli from "./src/appkit/cli.js";
7
7
  export * as appkitEnvExport from "./src/appkit/env-export.js";
8
8
  export * as authCli from "./src/auth/cli.js";
@@ -35,10 +35,11 @@ export { AuthCliOptionsSchema, TokenCommandOptionsSchema } from "./src/auth/opti
35
35
  export { resolveBunArgv } from "./src/bun.js";
36
36
  export { GENIE_CODE_GATEWAY_PROVIDER } from "./src/genie-code/config.js";
37
37
  export { RUNNER_OPTIONS_ENV } from "./src/genie-code/runner.js";
38
+ export { GRAPHITI_DEFAULTS, GraphitiCliOptionsSchema, GraphitiOptionsSchema, ResolvedGraphitiOptionsSchema, graphitiOptionOverrides, graphitiOptionsEnvironment, graphitiOptionsFromEnvironment, resolveGraphitiOptions } from "./src/graphiti/options.js";
38
39
  export { CancellationRegistry } from "./src/lakebase-proxy/cancellation.js";
39
40
  export { LakebaseProxyOptionsSchema, LakebaseProxyUrlOptionsSchema } from "./src/lakebase-proxy/options.js";
40
41
  export { SSL_REQUEST, CANCEL_REQUEST, PROTOCOL_3, PostgresProtocolError } from "./src/lakebase-proxy/protocol.js";
41
42
  export { LakebaseProxy } from "./src/lakebase-proxy/proxy.js";
42
43
  export { workspaceRoot } from "./src/root.js";
43
44
  export { TunnelOptionsSchema } from "./src/tunnel/options.js";
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLGVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssWUFBWSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxlQUFlLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLGdCQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssZUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxLQUFLLHlCQUF5QixNQUFNLHNDQUFzQyxDQUFDO0FBQ2xGLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssb0JBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxLQUFLLHFCQUFxQixNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sS0FBSyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssZUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLGFBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL2NsaVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEyOFwiO1xuZXhwb3J0ICogYXMgYXBwa2l0Q2xpIGZyb20gXCIuL3NyYy9hcHBraXQvY2xpLnRzXCI7XG5leHBvcnQgKiBhcyBhcHBraXRFbnZFeHBvcnQgZnJvbSBcIi4vc3JjL2FwcGtpdC9lbnYtZXhwb3J0LnRzXCI7XG5leHBvcnQgKiBhcyBhdXRoQ2xpIGZyb20gXCIuL3NyYy9hdXRoL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgYXV0aE9wdGlvbnMgZnJvbSBcIi4vc3JjL2F1dGgvb3B0aW9ucy50c1wiO1xuZXhwb3J0ICogYXMgYm9vdHN0cmFwIGZyb20gXCIuL3NyYy9ib290c3RyYXAudHNcIjtcbmV4cG9ydCAqIGFzIGJ1biBmcm9tIFwiLi9zcmMvYnVuLnRzXCI7XG5leHBvcnQgKiBhcyBjbGkgZnJvbSBcIi4vc3JjL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDb2RlQ2xpIGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDb2RlQ29uZmlnIGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDb2RlSW5zdGFsbCBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9pbnN0YWxsLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5pZUNvZGVPcHRpb25zIGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllQ29kZVJ1bm5lciBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9ydW5uZXIudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllQ29kZVJ1bnRpbWUgZnJvbSBcIi4vc3JjL2dlbmllLWNvZGUvcnVudGltZS50c1wiO1xuZXhwb3J0ICogYXMgZ3JhcGhpdGlDbGkgZnJvbSBcIi4vc3JjL2dyYXBoaXRpL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgZ3JhcGhpdGlPcHRpb25zIGZyb20gXCIuL3NyYy9ncmFwaGl0aS9vcHRpb25zLnRzXCI7XG5leHBvcnQgKiBhcyBsYWtlYmFzZVByb3h5Q2FuY2VsbGF0aW9uIGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9jYW5jZWxsYXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUHJveHlDbGkgZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L2NsaS50c1wiO1xuZXhwb3J0ICogYXMgbGFrZWJhc2VQcm94eU9wdGlvbnMgZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUHJveHlQcm90b2NvbCBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJvdG9jb2wudHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUHJveHlQcm94eSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJveHkudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsR2F0ZXdheUNsaSBmcm9tIFwiLi9zcmMvbW9kZWwtZ2F0ZXdheS9jbGkudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsR2F0ZXdheVNlcnZlciBmcm9tIFwiLi9zcmMvbW9kZWwtZ2F0ZXdheS9zZXJ2ZXIudHNcIjtcbmV4cG9ydCAqIGFzIHJvb3QgZnJvbSBcIi4vc3JjL3Jvb3QudHNcIjtcbmV4cG9ydCAqIGFzIHR1bm5lbEFwcCBmcm9tIFwiLi9zcmMvdHVubmVsL2FwcC50c1wiO1xuZXhwb3J0ICogYXMgdHVubmVsQ2xpIGZyb20gXCIuL3NyYy90dW5uZWwvY2xpLnRzXCI7XG5leHBvcnQgKiBhcyB0dW5uZWxPcHRpb25zIGZyb20gXCIuL3NyYy90dW5uZWwvb3B0aW9ucy50c1wiO1xuZXhwb3J0ICogYXMgdHVubmVsUHJveHkgZnJvbSBcIi4vc3JjL3R1bm5lbC9wcm94eS50c1wiO1xuZXhwb3J0IHsgRW52RXhwb3J0Rm9ybWF0U2NoZW1hLCBFbnZDb21tYW5kT3B0aW9uc1NjaGVtYSB9IGZyb20gXCIuL3NyYy9hcHBraXQvZW52LWV4cG9ydC50c1wiO1xuZXhwb3J0IHR5cGUgeyBFbnZFeHBvcnRGb3JtYXQsIEVudkNvbW1hbmRPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2FwcGtpdC9lbnYtZXhwb3J0LnRzXCI7XG5leHBvcnQgeyBBdXRoQ2xpT3B0aW9uc1NjaGVtYSwgVG9rZW5Db21tYW5kT3B0aW9uc1NjaGVtYSB9IGZyb20gXCIuL3NyYy9hdXRoL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aENsaU9wdGlvbnMsIFRva2VuQ29tbWFuZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvYXV0aC9vcHRpb25zLnRzXCI7XG5leHBvcnQgeyByZXNvbHZlQnVuQXJndiB9IGZyb20gXCIuL3NyYy9idW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVDb2RlQ2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIi4vc3JjL2dlbmllLWNvZGUvY2xpLnRzXCI7XG5leHBvcnQgeyBHRU5JRV9DT0RFX0dBVEVXQVlfUFJPVklERVIgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgV3JpdGVHZW5pZUNvZGVDb25maWdPcHRpb25zLCBHZW5pZUNvZGVQcm9maWxlSG9tZSwgR2VuaWVDb2RlSG9tZSB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBJbnN0YWxsR2VuaWVDb2RlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2luc3RhbGwudHNcIjtcbmV4cG9ydCB7IFJVTk5FUl9PUFRJT05TX0VOViB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL3J1bm5lci50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzLCBSdW5HZW5pZUNvZGVPcHRpb25zLCBQcmVwYXJlZEdlbmllQ29kZVJ1bnRpbWUgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9ydW50aW1lLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdyYXBoaXRpQ2xpRGVwZW5kZW5jaWVzLCBHcmFwaGl0aVNlcnZpY2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2dyYXBoaXRpL2NsaS50c1wiO1xuZXhwb3J0IHsgQ2FuY2VsbGF0aW9uUmVnaXN0cnkgfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvY2FuY2VsbGF0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IENhbmNlbGxhdGlvblRhcmdldCwgQ2FuY2VsbGF0aW9uRm9yd2FyZGVyIH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L2NhbmNlbGxhdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBMYWtlYmFzZVByb3h5Q2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L2NsaS50c1wiO1xuZXhwb3J0IHsgTGFrZWJhc2VQcm94eU9wdGlvbnNTY2hlbWEsIExha2ViYXNlUHJveHlVcmxPcHRpb25zU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTGFrZWJhc2VQcm94eU9wdGlvbnMsIFJlc29sdmVkTGFrZWJhc2VQcm94eU9wdGlvbnMsIExha2ViYXNlUHJveHlVcmxPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L29wdGlvbnMudHNcIjtcbmV4cG9ydCB7IFNTTF9SRVFVRVNULCBDQU5DRUxfUkVRVUVTVCwgUFJPVE9DT0xfMywgUG9zdGdyZXNQcm90b2NvbEVycm9yIH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L3Byb3RvY29sLnRzXCI7XG5leHBvcnQgdHlwZSB7IFN0YXJ0dXBNZXNzYWdlLCBDYW5jZWxNZXNzYWdlLCBJbml0aWFsTWVzc2FnZSB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9wcm90b2NvbC50c1wiO1xuZXhwb3J0IHsgTGFrZWJhc2VQcm94eSB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9wcm94eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbEdhdGV3YXlDbGlEZXBlbmRlbmNpZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWwtZ2F0ZXdheS9jbGkudHNcIjtcbmV4cG9ydCB7IHdvcmtzcGFjZVJvb3QgfSBmcm9tIFwiLi9zcmMvcm9vdC50c1wiO1xuZXhwb3J0IHsgVHVubmVsT3B0aW9uc1NjaGVtYSB9IGZyb20gXCIuL3NyYy90dW5uZWwvb3B0aW9ucy50c1wiO1xuZXhwb3J0IHR5cGUgeyBUdW5uZWxPcHRpb25zLCBSZXNvbHZlZFR1bm5lbE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvdHVubmVsL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgUHJveHlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3R1bm5lbC9wcm94eS50c1wiO1xuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLGVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssWUFBWSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxlQUFlLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLGdCQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssZUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxLQUFLLHlCQUF5QixNQUFNLHNDQUFzQyxDQUFDO0FBQ2xGLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssb0JBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxLQUFLLHFCQUFxQixNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sS0FBSyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssZUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLGFBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLDZCQUE2QixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLDhCQUE4QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFM1AsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL2NsaVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzMVwiO1xuZXhwb3J0ICogYXMgYXBwa2l0Q2xpIGZyb20gXCIuL3NyYy9hcHBraXQvY2xpLnRzXCI7XG5leHBvcnQgKiBhcyBhcHBraXRFbnZFeHBvcnQgZnJvbSBcIi4vc3JjL2FwcGtpdC9lbnYtZXhwb3J0LnRzXCI7XG5leHBvcnQgKiBhcyBhdXRoQ2xpIGZyb20gXCIuL3NyYy9hdXRoL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgYXV0aE9wdGlvbnMgZnJvbSBcIi4vc3JjL2F1dGgvb3B0aW9ucy50c1wiO1xuZXhwb3J0ICogYXMgYm9vdHN0cmFwIGZyb20gXCIuL3NyYy9ib290c3RyYXAudHNcIjtcbmV4cG9ydCAqIGFzIGJ1biBmcm9tIFwiLi9zcmMvYnVuLnRzXCI7XG5leHBvcnQgKiBhcyBjbGkgZnJvbSBcIi4vc3JjL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDb2RlQ2xpIGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDb2RlQ29uZmlnIGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDb2RlSW5zdGFsbCBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9pbnN0YWxsLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5pZUNvZGVPcHRpb25zIGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllQ29kZVJ1bm5lciBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9ydW5uZXIudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllQ29kZVJ1bnRpbWUgZnJvbSBcIi4vc3JjL2dlbmllLWNvZGUvcnVudGltZS50c1wiO1xuZXhwb3J0ICogYXMgZ3JhcGhpdGlDbGkgZnJvbSBcIi4vc3JjL2dyYXBoaXRpL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgZ3JhcGhpdGlPcHRpb25zIGZyb20gXCIuL3NyYy9ncmFwaGl0aS9vcHRpb25zLnRzXCI7XG5leHBvcnQgKiBhcyBsYWtlYmFzZVByb3h5Q2FuY2VsbGF0aW9uIGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9jYW5jZWxsYXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUHJveHlDbGkgZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L2NsaS50c1wiO1xuZXhwb3J0ICogYXMgbGFrZWJhc2VQcm94eU9wdGlvbnMgZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUHJveHlQcm90b2NvbCBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJvdG9jb2wudHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUHJveHlQcm94eSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJveHkudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsR2F0ZXdheUNsaSBmcm9tIFwiLi9zcmMvbW9kZWwtZ2F0ZXdheS9jbGkudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsR2F0ZXdheVNlcnZlciBmcm9tIFwiLi9zcmMvbW9kZWwtZ2F0ZXdheS9zZXJ2ZXIudHNcIjtcbmV4cG9ydCAqIGFzIHJvb3QgZnJvbSBcIi4vc3JjL3Jvb3QudHNcIjtcbmV4cG9ydCAqIGFzIHR1bm5lbEFwcCBmcm9tIFwiLi9zcmMvdHVubmVsL2FwcC50c1wiO1xuZXhwb3J0ICogYXMgdHVubmVsQ2xpIGZyb20gXCIuL3NyYy90dW5uZWwvY2xpLnRzXCI7XG5leHBvcnQgKiBhcyB0dW5uZWxPcHRpb25zIGZyb20gXCIuL3NyYy90dW5uZWwvb3B0aW9ucy50c1wiO1xuZXhwb3J0ICogYXMgdHVubmVsUHJveHkgZnJvbSBcIi4vc3JjL3R1bm5lbC9wcm94eS50c1wiO1xuZXhwb3J0IHsgRW52RXhwb3J0Rm9ybWF0U2NoZW1hLCBFbnZDb21tYW5kT3B0aW9uc1NjaGVtYSB9IGZyb20gXCIuL3NyYy9hcHBraXQvZW52LWV4cG9ydC50c1wiO1xuZXhwb3J0IHR5cGUgeyBFbnZFeHBvcnRGb3JtYXQsIEVudkNvbW1hbmRPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2FwcGtpdC9lbnYtZXhwb3J0LnRzXCI7XG5leHBvcnQgeyBBdXRoQ2xpT3B0aW9uc1NjaGVtYSwgVG9rZW5Db21tYW5kT3B0aW9uc1NjaGVtYSB9IGZyb20gXCIuL3NyYy9hdXRoL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aENsaU9wdGlvbnMsIFRva2VuQ29tbWFuZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvYXV0aC9vcHRpb25zLnRzXCI7XG5leHBvcnQgeyByZXNvbHZlQnVuQXJndiB9IGZyb20gXCIuL3NyYy9idW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVDb2RlQ2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIi4vc3JjL2dlbmllLWNvZGUvY2xpLnRzXCI7XG5leHBvcnQgeyBHRU5JRV9DT0RFX0dBVEVXQVlfUFJPVklERVIgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgV3JpdGVHZW5pZUNvZGVDb25maWdPcHRpb25zLCBHZW5pZUNvZGVQcm9maWxlSG9tZSwgR2VuaWVDb2RlSG9tZSB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBJbnN0YWxsR2VuaWVDb2RlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2luc3RhbGwudHNcIjtcbmV4cG9ydCB7IFJVTk5FUl9PUFRJT05TX0VOViB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL3J1bm5lci50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzLCBSdW5HZW5pZUNvZGVPcHRpb25zLCBQcmVwYXJlZEdlbmllQ29kZVJ1bnRpbWUgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9ydW50aW1lLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdyYXBoaXRpQ2xpRGVwZW5kZW5jaWVzLCBHcmFwaGl0aVNlcnZpY2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2dyYXBoaXRpL2NsaS50c1wiO1xuZXhwb3J0IHsgR1JBUEhJVElfREVGQVVMVFMsIEdyYXBoaXRpQ2xpT3B0aW9uc1NjaGVtYSwgR3JhcGhpdGlPcHRpb25zU2NoZW1hLCBSZXNvbHZlZEdyYXBoaXRpT3B0aW9uc1NjaGVtYSwgZ3JhcGhpdGlPcHRpb25PdmVycmlkZXMsIGdyYXBoaXRpT3B0aW9uc0Vudmlyb25tZW50LCBncmFwaGl0aU9wdGlvbnNGcm9tRW52aXJvbm1lbnQsIHJlc29sdmVHcmFwaGl0aU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZ3JhcGhpdGkvb3B0aW9ucy50c1wiO1xuZXhwb3J0IHR5cGUgeyBHcmFwaGl0aU9wdGlvbnMsIFJlc29sdmVkR3JhcGhpdGlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2dyYXBoaXRpL29wdGlvbnMudHNcIjtcbmV4cG9ydCB7IENhbmNlbGxhdGlvblJlZ2lzdHJ5IH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L2NhbmNlbGxhdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBDYW5jZWxsYXRpb25UYXJnZXQsIENhbmNlbGxhdGlvbkZvcndhcmRlciB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9jYW5jZWxsYXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgTGFrZWJhc2VQcm94eUNsaURlcGVuZGVuY2llcyB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9jbGkudHNcIjtcbmV4cG9ydCB7IExha2ViYXNlUHJveHlPcHRpb25zU2NoZW1hLCBMYWtlYmFzZVByb3h5VXJsT3B0aW9uc1NjaGVtYSB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IExha2ViYXNlUHJveHlPcHRpb25zLCBSZXNvbHZlZExha2ViYXNlUHJveHlPcHRpb25zLCBMYWtlYmFzZVByb3h5VXJsT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9vcHRpb25zLnRzXCI7XG5leHBvcnQgeyBTU0xfUkVRVUVTVCwgQ0FOQ0VMX1JFUVVFU1QsIFBST1RPQ09MXzMsIFBvc3RncmVzUHJvdG9jb2xFcnJvciB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9wcm90b2NvbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdGFydHVwTWVzc2FnZSwgQ2FuY2VsTWVzc2FnZSwgSW5pdGlhbE1lc3NhZ2UgfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJvdG9jb2wudHNcIjtcbmV4cG9ydCB7IExha2ViYXNlUHJveHkgfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJveHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5Q2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIi4vc3JjL21vZGVsLWdhdGV3YXkvY2xpLnRzXCI7XG5leHBvcnQgeyB3b3Jrc3BhY2VSb290IH0gZnJvbSBcIi4vc3JjL3Jvb3QudHNcIjtcbmV4cG9ydCB7IFR1bm5lbE9wdGlvbnNTY2hlbWEgfSBmcm9tIFwiLi9zcmMvdHVubmVsL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgVHVubmVsT3B0aW9ucywgUmVzb2x2ZWRUdW5uZWxPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3R1bm5lbC9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IFByb3h5T3B0aW9ucyB9IGZyb20gXCIuL3NyYy90dW5uZWwvcHJveHkudHNcIjtcbiJdfQ==
@@ -38,7 +38,8 @@ async function resolveCodexModel(model, profile, modelClass) {
38
38
  if (!target) {
39
39
  throw new Error(model ? `Genie Code model not found: ${model}` : "No tool-capable chat model is available");
40
40
  }
41
- return models.codexModelSlug(target);
41
+ // Genie Code pins the exact system.ai service slug, which wins regardless of gateway preference.
42
+ return models.codexModelSlug(target, true);
42
43
  }
43
44
  /** Resolve auth, installation, listener, and configuration before spawning children. */
44
45
  export async function prepareGenieCodeRuntime(input = {}) {
@@ -166,4 +167,4 @@ export async function runGenieCode(input = {}) {
166
167
  await rm(prepared.home.overlayPath, { force: true });
167
168
  }
168
169
  }
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5pZS1jb2RlL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEtBQUssSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixHQUd4QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFzQixNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFrQnhDLE1BQU0sb0JBQW9CLEdBQWlDO0lBQ3pELGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO0lBQzlDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFLENBQUMs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QUksT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUMvQixHQUFHLEVBQUUsSUFBSTtRQUNULFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDcEMsVUFBVSxFQUFFLFNBQVM7UUFDckIsV0FBVyxFQUFFLE1BQU07UUFDbkIsZ0JBQWdCLEVBQUUsZUFBZTtLQUNsQyxDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFO1FBQ2xELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztRQUN6QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7UUFDckIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxjQUFjO1FBQ2hDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUk7S0FDekIsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLENBQUM7SUFDZixDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN1cGVydmlzZSBHZW5pZSBDb2RlIGFuZCBpdHMgYXV0aGVudGljYXRlZCBsb2NhbCBtb2RlbCBnYXRld2F5LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgcm0gfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgZGVsaW1pdGVyLCBkaXJuYW1lIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgRGF0YWJyaWNrc01vZGVsUmVnaXN0cnksIG1vZGVscyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tb2RlbC1nYXRld2F5XCI7XG5pbXBvcnQgKiBhcyBhdXRoIGZyb20gXCJAZGJ4LXRvb2xzL2F1dGhcIjtcbmltcG9ydCB7IHJlc29sdmVTZXJ2aWNlUGFja2FnZUJpbiB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1zZXJ2aWNlL2RlZmluaXRpb25cIjtcbmltcG9ydCB0eXBlIHsgQmluQ29udGV4dCB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmUvYmluXCI7XG5pbXBvcnQgeyB3b3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRieC10b29scy9kYXRhYnJpY2tzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZUdlbmllQ29kZU9wdGlvbnMsXG4gIHR5cGUgR2VuaWVDb2RlT3B0aW9ucyxcbiAgdHlwZSBHZW5pZUNvZGVSdW5uZXJPcHRpb25zLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuaWUtY29kZS9vcHRpb25zXCI7XG5pbXBvcnQgdHlwZSB7IE1vZGVsQ2xhc3MgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwvY29udHJhY3RzXCI7XG5pbXBvcnQgY29uY3VycmVudGx5IGZyb20gXCJjb25jdXJyZW50bHlcIjtcbmltcG9ydCBnZXRQb3J0IGZyb20gXCJnZXQtcG9ydFwiO1xuXG5pbXBvcnQgeyB3cml0ZUdlbmllQ29kZUNvbmZpZywgdHlwZSBHZW5pZUNvZGVIb21lIH0gZnJvbSBcIi4vY29uZmlnLnRzXCI7XG5pbXBvcnQgeyBpbnN0YWxsR2VuaWVDb2RlIH0gZnJvbSBcIi4vaW5zdGFsbC50c1wiO1xuaW1wb3J0IHsgUlVOTkVSX09QVElPTlNfRU5WIH0gZnJvbSBcIi4vcnVubmVyLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJnZW5pZS1jb2RlXCIpO1xuXG4vKiogSW5qZWN0YWJsZSBvd25lcnMgdXNlZCB0byBwcmVwYXJlIGFuZCBzdXBlcnZpc2UgbWFuYWdlZCBHZW5pZSBDb2RlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzIHtcbiAgY3JlYXRlQXV0aENsaWVudDogdHlwZW9mIGF1dGguY2xpZW50LmNyZWF0ZUF1dGhDbGllbnQ7XG4gIGluc3RhbGw6IHR5cGVvZiBpbnN0YWxsR2VuaWVDb2RlO1xuICBwb3J0KG9wdGlvbnM6IHsgaG9zdDogc3RyaW5nOyBwb3J0PzogbnVtYmVyIH0pOiBQcm9taXNlPG51bWJlcj47XG4gIHJlc29sdmVCaW4ocGFja2FnZVJlZmVyZW5jZTogc3RyaW5nLCBiaW5OYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG4gIHJlc29sdmVDb2RleE1vZGVsKFxuICAgIG1vZGVsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcHJvZmlsZTogc3RyaW5nLFxuICAgIG1vZGVsQ2xhc3M/OiBNb2RlbENsYXNzLFxuICApOiBQcm9taXNlPHN0cmluZz47XG4gIHN1cGVydmlzZTogdHlwZW9mIGNvbmN1cnJlbnRseTtcbiAgdG9rZW4oKTogc3RyaW5nO1xuICB3cml0ZUNvbmZpZzogdHlwZW9mIHdyaXRlR2VuaWVDb2RlQ29uZmlnO1xufVxuXG5jb25zdCBERUZBVUxUX0RFUEVOREVOQ0lFUzogR2VuaWVDb2RlUnVudGltZURlcGVuZGVuY2llcyA9IHtcbiAgY3JlYXRlQXV0aENsaWVudDogYXV0aC5jbGllbnQuY3JlYXRlQXV0aENsaWVudCxcbiAgaW5zdGFsbDogaW5zdGFsbEdlbmllQ29kZSxcbiAgcG9ydDogKHsgaG9zdCwgcG9ydCB9KSA9PiBnZXRQb3J0KHsgaG9zdCwgLi4uKHBvcnQgPyB7IHBvcnQgfSA6IHt9KSB9KSxcbiAgcmVzb2x2ZUJpbjogcmVzb2x2ZVNlcnZpY2VQYWNrYWdlQmluLFxuICByZXNvbHZlQ29kZXhNb2RlbCxcbiAgc3VwZXJ2aXNlOiBjb25jdXJyZW50bHksXG4gIHRva2VuOiAoKSA9PiByYW5kb21CeXRlcygzMikudG9TdHJpbmcoXCJiYXNlNjR1cmxcIiksXG4gIHdyaXRlQ29uZmlnOiB3cml0ZUdlbmllQ29kZUNvbmZpZyxcbn07XG5cbi8qKiBSZXNvbHZlIGEgR2VuaWUgYC0tbW9kZWxgIHZhbHVlIHRvIHRoZSBDb2RleCBjYXRhbG9ndWUgc2x1ZyB0aGUgZ2F0ZXdheSBwdWJsaXNoZXMuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlQ29kZXhNb2RlbChcbiAgbW9kZWw6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgcHJvZmlsZTogc3RyaW5nLFxuICBtb2RlbENsYXNzPzogTW9kZWxDbGFzcyxcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGNsaWVudCA9IGF3YWl0IHdvcmtzcGFjZUNsaWVudC5jcmVhdGVXb3Jrc3BhY2VDbGllbnQoeyBwcm9maWxlIH0pO1xuICBjb25zdCB0YXJnZXQgPSBhd2FpdCBuZXcgRGF0YWJyaWNrc01vZGVsUmVnaXN0cnkoeyBjbGllbnQgfSkucmVzb2x2ZShtb2RlbCwge1xuICAgIHJlcXVpcmVzVG9vbHM6IHRydWUsXG4gICAgLi4uKG1vZGVsQ2xhc3MgPyB7IG1vZGVsQ2xhc3MgfSA6IHt9KSxcbiAgfSk7XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgbW9kZWwgPyBgR2VuaWUgQ29kZSBtb2RlbCBub3QgZm91bmQ6ICR7bW9kZWx9YCA6IFwiTm8gdG9vbC1jYXBhYmxlIGNoYXQgbW9kZWwgaXMgYXZhaWxhYmxlXCIsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbW9kZWxzLmNvZGV4TW9kZWxTbHVnKHRhcmdldCk7XG59XG5cbi8qKiBJbnB1dHMgYWNjZXB0ZWQgYnkgbWFuYWdlZCBHZW5pZSBDb2RlIHByZXBhcmF0aW9uIGFuZCBleGVjdXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bkdlbmllQ29kZU9wdGlvbnMge1xuICBjd2Q/OiBzdHJpbmc7XG4gIGRlcGVuZGVuY2llcz86IFBhcnRpYWw8R2VuaWVDb2RlUnVudGltZURlcGVuZGVuY2llcz47XG4gIGdlbmllQXJncz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBvcHRpb25zPzogR2VuaWVDb2RlT3B0aW9ucztcbn1cblxuLyoqIFJlc29sdmVkIGluc3RhbGxhdGlvbiwgYXV0aCwgbGlzdGVuZXIsIGFuZCBob21lIGZvciBvbmUgaW52b2NhdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcGFyZWRHZW5pZUNvZGVSdW50aW1lIHtcbiAgYmVhcmVyVG9rZW46IHN0cmluZztcbiAgZ2F0ZXdheUJhc2VVcmw6IHN0cmluZztcbiAgZ2F0ZXdheUhlYWx0aFVybDogc3RyaW5nO1xuICBnYXRld2F5TGlzdGVuOiBzdHJpbmc7XG4gIGdhdGV3YXlQb3J0OiBudW1iZXI7XG4gIGhvbWU6IEdlbmllQ29kZUhvbWU7XG4gIGluc3RhbGxhdGlvbjogQmluQ29udGV4dDtcbiAgbW9kZWw6IHN0cmluZztcbiAgcHJvZmlsZTogc3RyaW5nO1xufVxuXG4vKiogUmVzb2x2ZSBhdXRoLCBpbnN0YWxsYXRpb24sIGxpc3RlbmVyLCBhbmQgY29uZmlndXJhdGlvbiBiZWZvcmUgc3Bhd25pbmcgY2hpbGRyZW4uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUdlbmllQ29kZVJ1bnRpbWUoXG4gIGlucHV0OiBSdW5HZW5pZUNvZGVPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPFByZXBhcmVkR2VuaWVDb2RlUnVudGltZT4ge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSB7IC4uLkRFRkFVTFRfREVQRU5ERU5DSUVTLCAuLi5pbnB1dC5kZXBlbmRlbmNpZXMgfTtcbiAgY29uc3Qgb3B0aW9ucyA9IHJlc29sdmVHZW5pZUNvZGVPcHRpb25zKGlucHV0Lm9wdGlvbnMpO1xuICBsb2dnZXIuaW5mbyhcInJlc29sdmluZyBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uXCIsIHtcbiAgICByZXF1ZXN0ZWRQcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gIH0pO1xuICBjb25zdCBhdXRoQ2xpZW50ID0gYXdhaXQgZGVwZW5kZW5jaWVzLmNyZWF0ZUF1dGhDbGllbnQoXG4gICAgb3B0aW9ucy5wcm9maWxlID8geyBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUgfSA6IHt9LFxuICApO1xuICBjb25zdCBwcm9maWxlID0gYXV0aENsaWVudC5wcm9maWxlO1xuICBpZiAoIXByb2ZpbGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJHZW5pZSBDb2RlIHJlcXVpcmVzIGEgY29uZmlndXJlZCBEYXRhYnJpY2tzIHByb2ZpbGVcIik7XG4gIH1cbiAgbG9nZ2VyLmluZm8oXCJwcmVwYXJpbmcgR2VuaWUgQ29kZSBydW50aW1lXCIsIHtcbiAgICBwcm9maWxlLFxuICAgIG1vZGVsOiBvcHRpb25zLm1vZGVsLFxuICAgIG1vZGVsQ2xhc3M6IG9wdGlvbnMubW9kZWxDbGFzcyxcbiAgfSk7XG4gIGNvbnN0IGluc3RhbGxhdGlvbiA9IGF3YWl0IGRlcGVuZGVuY2llcy5pbnN0YWxsKCk7XG4gIGNvbnN0IGhvc3QgPSBvcHRpb25zLmdhdGV3YXlMaXN0ZW4uaG9zdDtcbiAgY29uc3QgcmVxdWVzdGVkUG9ydCA9IG9wdGlvbnMuZ2F0ZXdheUxpc3Rlbi5wb3J0O1xuICBjb25zdCBnYXRld2F5UG9ydCA9IGF3YWl0IGRlcGVuZGVuY2llcy5wb3J0KHtcbiAgICBob3N0LFxuICAgIC4uLihyZXF1ZXN0ZWRQb3J0ID4gMCA/IHsgcG9ydDogcmVxdWVzdGVkUG9ydCB9IDoge30pLFxuICB9KTtcbiAgaWYgKHJlcXVlc3RlZFBvcnQgPiAwICYmIGdhdGV3YXlQb3J0ICE9PSByZXF1ZXN0ZWRQb3J0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBHZW5pZSBDb2RlIGdhdGV3YXkgcG9ydCAke3JlcXVlc3RlZFBvcnR9IGlzIGFscmVhZHkgaW4gdXNlYCk7XG4gIH1cbiAgY29uc3QgbW9kZWwgPSBhd2FpdCBkZXBlbmRlbmNpZXMucmVzb2x2ZUNvZGV4TW9kZWwob3B0aW9ucy5tb2RlbCwgcHJvZmlsZSwgb3B0aW9ucy5tb2RlbENsYXNzKTtcbiAgbG9nZ2VyLmluZm8oXCJyZXNvbHZlZCBHZW5pZSBDb2RlIG1vZGVsXCIsIHtcbiAgICByZXF1ZXN0ZWQ6IG9wdGlvbnMubW9kZWwsXG4gICAgbW9kZWxDbGFzczogb3B0aW9ucy5tb2RlbENsYXNzLFxuICAgIG1vZGVsLFxuICB9KTtcbiAgY29uc3QgdXJsSG9zdCA9IGhvc3QuaW5jbHVkZXMoXCI6XCIpID8gYFske2hvc3R9XWAgOiBob3N0O1xuICBjb25zdCBnYXRld2F5QmFzZVVybCA9IGBodHRwOi8vJHt1cmxIb3N0fToke2dhdGV3YXlQb3J0fS92MWA7XG4gIGNvbnN0IGdhdGV3YXlIZWFsdGhVcmwgPSBgaHR0cDovLyR7dXJsSG9zdH06JHtnYXRld2F5UG9ydH0vYXBpL2hlYWx0aHpgO1xuICBjb25zdCBnYXRld2F5TGlzdGVuID0gYHRjcDovLyR7dXJsSG9zdH06JHtnYXRld2F5UG9ydH1gO1xuICBjb25zdCBiZWFyZXJUb2tlbiA9IGRlcGVuZGVuY2llcy50b2tlbigpO1xuICBjb25zdCBob21lID0gYXdhaXQgZGVwZW5kZW5jaWVzLndyaXRlQ29uZmlnKHtcbiAgICBiZWFyZXJUb2tlbixcbiAgICBnYXRld2F5QmFzZVVybCxcbiAgICBtb2RlbCxcbiAgICBwcm9maWxlLFxuICAgIHByb2plY3REaXJlY3Rvcnk6IGlucHV0LmN3ZCA/PyBwcm9jZXNzLmN3ZCgpLFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBiZWFyZXJUb2tlbixcbiAgICBnYXRld2F5QmFzZVVybCxcbiAgICBnYXRld2F5SGVhbHRoVXJsLFxuICAgIGdhdGV3YXlMaXN0ZW4sXG4gICAgZ2F0ZXdheVBvcnQsXG4gICAgaG9tZSxcbiAgICBpbnN0YWxsYXRpb24sXG4gICAgbW9kZWwsXG4gICAgcHJvZmlsZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc2hlbGxFeGVjdXRhYmxlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIpIHJldHVybiBgXCIke3BhdGgucmVwbGFjZUFsbCgnXCInLCAnXCJcIicpfVwiYDtcbiAgcmV0dXJuIGAnJHtwYXRoLnJlcGxhY2VBbGwoXCInXCIsIFwiJ1xcXFwnJ1wiKX0nYDtcbn1cblxuZnVuY3Rpb24gY2hpbGRQYXRoKC4uLnBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBbLi4ubmV3IFNldChbLi4ucGF0aHMubWFwKGRpcm5hbWUpLCBwcm9jZXNzLmVudi5QQVRIXS5maWx0ZXIoQm9vbGVhbikpXS5qb2luKGRlbGltaXRlcik7XG59XG5cbi8qKiBSdW4gR2VuaWUgQ29kZSBhbmQgdGhlIG1vZGVsIGdhdGV3YXkgdW50aWwgZWl0aGVyIHByb2Nlc3MgZXhpdHMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuR2VuaWVDb2RlKGlucHV0OiBSdW5HZW5pZUNvZGVPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0geyAuLi5ERUZBVUxUX0RFUEVOREVOQ0lFUywgLi4uaW5wdXQuZGVwZW5kZW5jaWVzIH07XG4gIGNvbnN0IHByZXBhcmVkID0gYXdhaXQgcHJlcGFyZUdlbmllQ29kZVJ1bnRpbWUoe1xuICAgIC4uLmlucHV0LFxuICAgIGRlcGVuZGVuY2llcyxcbiAgfSk7XG4gIGNvbnN0IGdhdGV3YXlCaW4gPSBkZXBlbmRlbmNpZXMucmVzb2x2ZUJpbihpbXBvcnQubWV0YS51cmwsIFwiZGJ4LW1vZGVsLWdhdGV3YXlcIik7XG4gIGNvbnN0IHJ1bm5lckJpbiA9IGRlcGVuZGVuY2llcy5yZXNvbHZlQmluKGltcG9ydC5tZXRhLnVybCwgXCJkYngtZ2VuaWVcIik7XG4gIGNvbnN0IHBhdGggPSBjaGlsZFBhdGgoZ2F0ZXdheUJpbiwgcnVubmVyQmluKTtcbiAgY29uc3QgcnVubmVyT3B0aW9uczogR2VuaWVDb2RlUnVubmVyT3B0aW9ucyA9IHtcbiAgICBleGVjdXRhYmxlOiBwcmVwYXJlZC5pbnN0YWxsYXRpb24ucGF0aCxcbiAgICBhcmd1bWVudHM6IFtcIi1wXCIsIHByZXBhcmVkLmhvbWUub3ZlcmxheU5hbWUsIC4uLihpbnB1dC5nZW5pZUFyZ3MgPz8gW10pXSxcbiAgICBob21lOiBwcmVwYXJlZC5ob21lLmhvbWUsXG4gICAgZ2F0ZXdheUhlYWx0aFVybDogcHJlcGFyZWQuZ2F0ZXdheUhlYWx0aFVybCxcbiAgICBiZWFyZXJUb2tlbjogcHJlcGFyZWQuYmVhcmVyVG9rZW4sXG4gICAgc3RhcnR1cFRpbWVvdXRNczogNjBfMDAwLFxuICB9O1xuICBjb25zdCB7IHJlc3VsdCB9ID0gZGVwZW5kZW5jaWVzLnN1cGVydmlzZShcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6IHNoZWxsRXhlY3V0YWJsZShnYXRld2F5QmluKSxcbiAgICAgICAgbmFtZTogXCJnYXRld2F5XCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgICAgIFBBVEg6IHBhdGgsXG4gICAgICAgICAgTElTVEVOOiBwcmVwYXJlZC5nYXRld2F5TGlzdGVuLFxuICAgICAgICAgIERBVEFCUklDS1NfQ09ORklHX1BST0ZJTEU6IHByZXBhcmVkLnByb2ZpbGUsXG4gICAgICAgICAgREJYX1RPT0xTX01PREVMX0dBVEVXQVlfQkVBUkVSX1RPS0VOOiBwcmVwYXJlZC5iZWFyZXJUb2tlbixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6IHNoZWxsRXhlY3V0YWJsZShydW5uZXJCaW4pLFxuICAgICAgICBuYW1lOiBcImdlbmllXCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgICAgIFBBVEg6IHBhdGgsXG4gICAgICAgICAgREFUQUJSSUNLU19DT05GSUdfUFJPRklMRTogcHJlcGFyZWQucHJvZmlsZSxcbiAgICAgICAgICBbUlVOTkVSX09QVElPTlNfRU5WXTogSlNPTi5zdHJpbmdpZnkocnVubmVyT3B0aW9ucyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAge1xuICAgICAgY3dkOiBpbnB1dC5jd2QgPz8gcHJvY2Vzcy5jd2QoKSxcbiAgICAgIHJhdzogdHJ1ZSxcbiAgICAgIGtpbGxPdGhlcnNPbjogW1wiZmFpbHVyZVwiLCBcInN1Y2Nlc3NcIl0sXG4gICAgICBraWxsU2lnbmFsOiBcIlNJR1RFUk1cIixcbiAgICAgIGtpbGxUaW1lb3V0OiAxN18wMDAsXG4gICAgICBzdWNjZXNzQ29uZGl0aW9uOiBcImNvbW1hbmQtZ2VuaWVcIixcbiAgICB9LFxuICApO1xuICBsb2dnZXIuaW5mbyhcInN0YXJ0ZWQgR2VuaWUgQ29kZSBhbmQgbW9kZWwgZ2F0ZXdheVwiLCB7XG4gICAgcHJvZmlsZTogcHJlcGFyZWQucHJvZmlsZSxcbiAgICBtb2RlbDogcHJlcGFyZWQubW9kZWwsXG4gICAgZ2F0ZXdheTogcHJlcGFyZWQuZ2F0ZXdheUJhc2VVcmwsXG4gICAgaG9tZTogcHJlcGFyZWQuaG9tZS5ob21lLFxuICB9KTtcbiAgdHJ5IHtcbiAgICBhd2FpdCByZXN1bHQ7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgcm0ocHJlcGFyZWQuaG9tZS5vdmVybGF5UGF0aCwgeyBmb3JjZTogdHJ1ZSB9KTtcbiAgfVxufVxuIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5pZS1jb2RlL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEtBQUssSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixHQUd4QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFzQixNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFrQnhDLE1BQU0sb0JBQW9CLEdBQWlDO0lBQ3pELGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO0lBQzlDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFLENBQUMs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LEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQy9CLEdBQUcsRUFBRSxJQUFJO1FBQ1QsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUNwQyxVQUFVLEVBQUUsU0FBUztRQUNyQixXQUFXLEVBQUUsTUFBTTtRQUNuQixnQkFBZ0IsRUFBRSxlQUFlO0tBQ2xDLENBQ0YsQ0FBQztJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUU7UUFDbEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztRQUNyQixPQUFPLEVBQUUsUUFBUSxDQUFDLGNBQWM7UUFDaEMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSTtLQUN6QixDQUFDLENBQUM7SUFDSCxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sQ0FBQztJQUNmLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3VwZXJ2aXNlIEdlbmllIENvZGUgYW5kIGl0cyBhdXRoZW50aWNhdGVkIGxvY2FsIG1vZGVsIGdhdGV3YXkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBybSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBkZWxpbWl0ZXIsIGRpcm5hbWUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBEYXRhYnJpY2tzTW9kZWxSZWdpc3RyeSwgbW9kZWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1vZGVsLWdhdGV3YXlcIjtcbmltcG9ydCAqIGFzIGF1dGggZnJvbSBcIkBkYngtdG9vbHMvYXV0aFwiO1xuaW1wb3J0IHsgcmVzb2x2ZVNlcnZpY2VQYWNrYWdlQmluIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvZGVmaW5pdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBCaW5Db250ZXh0IH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZS9iaW5cIjtcbmltcG9ydCB7IHdvcmtzcGFjZUNsaWVudCB9IGZyb20gXCJAZGJ4LXRvb2xzL2RhdGFicmlja3NcIjtcbmltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICByZXNvbHZlR2VuaWVDb2RlT3B0aW9ucyxcbiAgdHlwZSBHZW5pZUNvZGVPcHRpb25zLFxuICB0eXBlIEdlbmllQ29kZVJ1bm5lck9wdGlvbnMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZS1jb2RlL29wdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgTW9kZWxDbGFzcyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbC9jb250cmFjdHNcIjtcbmltcG9ydCBjb25jdXJyZW50bHkgZnJvbSBcImNvbmN1cnJlbnRseVwiO1xuaW1wb3J0IGdldFBvcnQgZnJvbSBcImdldC1wb3J0XCI7XG5cbmltcG9ydCB7IHdyaXRlR2VuaWVDb2RlQ29uZmlnLCB0eXBlIEdlbmllQ29kZUhvbWUgfSBmcm9tIFwiLi9jb25maWcudHNcIjtcbmltcG9ydCB7IGluc3RhbGxHZW5pZUNvZGUgfSBmcm9tIFwiLi9pbnN0YWxsLnRzXCI7XG5pbXBvcnQgeyBSVU5ORVJfT1BUSU9OU19FTlYgfSBmcm9tIFwiLi9ydW5uZXIudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImdlbmllLWNvZGVcIik7XG5cbi8qKiBJbmplY3RhYmxlIG93bmVycyB1c2VkIHRvIHByZXBhcmUgYW5kIHN1cGVydmlzZSBtYW5hZ2VkIEdlbmllIENvZGUuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmllQ29kZVJ1bnRpbWVEZXBlbmRlbmNpZXMge1xuICBjcmVhdGVBdXRoQ2xpZW50OiB0eXBlb2YgYXV0aC5jbGllbnQuY3JlYXRlQXV0aENsaWVudDtcbiAgaW5zdGFsbDogdHlwZW9mIGluc3RhbGxHZW5pZUNvZGU7XG4gIHBvcnQob3B0aW9uczogeyBob3N0OiBzdHJpbmc7IHBvcnQ/OiBudW1iZXIgfSk6IFByb21pc2U8bnVtYmVyPjtcbiAgcmVzb2x2ZUJpbihwYWNrYWdlUmVmZXJlbmNlOiBzdHJpbmcsIGJpbk5hbWU6IHN0cmluZyk6IHN0cmluZztcbiAgcmVzb2x2ZUNvZGV4TW9kZWwoXG4gICAgbW9kZWw6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwcm9maWxlOiBzdHJpbmcsXG4gICAgbW9kZWxDbGFzcz86IE1vZGVsQ2xhc3MsXG4gICk6IFByb21pc2U8c3RyaW5nPjtcbiAgc3VwZXJ2aXNlOiB0eXBlb2YgY29uY3VycmVudGx5O1xuICB0b2tlbigpOiBzdHJpbmc7XG4gIHdyaXRlQ29uZmlnOiB0eXBlb2Ygd3JpdGVHZW5pZUNvZGVDb25maWc7XG59XG5cbmNvbnN0IERFRkFVTFRfREVQRU5ERU5DSUVTOiBHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzID0ge1xuICBjcmVhdGVBdXRoQ2xpZW50OiBhdXRoLmNsaWVudC5jcmVhdGVBdXRoQ2xpZW50LFxuICBpbnN0YWxsOiBpbnN0YWxsR2VuaWVDb2RlLFxuICBwb3J0OiAoeyBob3N0LCBwb3J0IH0pID0+IGdldFBvcnQoeyBob3N0LCAuLi4ocG9ydCA/IHsgcG9ydCB9IDoge30pIH0pLFxuICByZXNvbHZlQmluOiByZXNvbHZlU2VydmljZVBhY2thZ2VCaW4sXG4gIHJlc29sdmVDb2RleE1vZGVsLFxuICBzdXBlcnZpc2U6IGNvbmN1cnJlbnRseSxcbiAgdG9rZW46ICgpID0+IHJhbmRvbUJ5dGVzKDMyKS50b1N0cmluZyhcImJhc2U2NHVybFwiKSxcbiAgd3JpdGVDb25maWc6IHdyaXRlR2VuaWVDb2RlQ29uZmlnLFxufTtcblxuLyoqIFJlc29sdmUgYSBHZW5pZSBgLS1tb2RlbGAgdmFsdWUgdG8gdGhlIENvZGV4IGNhdGFsb2d1ZSBzbHVnIHRoZSBnYXRld2F5IHB1Ymxpc2hlcy4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVDb2RleE1vZGVsKFxuICBtb2RlbDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBwcm9maWxlOiBzdHJpbmcsXG4gIG1vZGVsQ2xhc3M/OiBNb2RlbENsYXNzLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgY2xpZW50ID0gYXdhaXQgd29ya3NwYWNlQ2xpZW50LmNyZWF0ZVdvcmtzcGFjZUNsaWVudCh7IHByb2ZpbGUgfSk7XG4gIGNvbnN0IHRhcmdldCA9IGF3YWl0IG5ldyBEYXRhYnJpY2tzTW9kZWxSZWdpc3RyeSh7IGNsaWVudCB9KS5yZXNvbHZlKG1vZGVsLCB7XG4gICAgcmVxdWlyZXNUb29sczogdHJ1ZSxcbiAgICAuLi4obW9kZWxDbGFzcyA/IHsgbW9kZWxDbGFzcyB9IDoge30pLFxuICB9KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBtb2RlbCA/IGBHZW5pZSBDb2RlIG1vZGVsIG5vdCBmb3VuZDogJHttb2RlbH1gIDogXCJObyB0b29sLWNhcGFibGUgY2hhdCBtb2RlbCBpcyBhdmFpbGFibGVcIixcbiAgICApO1xuICB9XG4gIC8vIEdlbmllIENvZGUgcGlucyB0aGUgZXhhY3Qgc3lzdGVtLmFpIHNlcnZpY2Ugc2x1Zywgd2hpY2ggd2lucyByZWdhcmRsZXNzIG9mIGdhdGV3YXkgcHJlZmVyZW5jZS5cbiAgcmV0dXJuIG1vZGVscy5jb2RleE1vZGVsU2x1Zyh0YXJnZXQsIHRydWUpO1xufVxuXG4vKiogSW5wdXRzIGFjY2VwdGVkIGJ5IG1hbmFnZWQgR2VuaWUgQ29kZSBwcmVwYXJhdGlvbiBhbmQgZXhlY3V0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5HZW5pZUNvZGVPcHRpb25zIHtcbiAgY3dkPzogc3RyaW5nO1xuICBkZXBlbmRlbmNpZXM/OiBQYXJ0aWFsPEdlbmllQ29kZVJ1bnRpbWVEZXBlbmRlbmNpZXM+O1xuICBnZW5pZUFyZ3M/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgb3B0aW9ucz86IEdlbmllQ29kZU9wdGlvbnM7XG59XG5cbi8qKiBSZXNvbHZlZCBpbnN0YWxsYXRpb24sIGF1dGgsIGxpc3RlbmVyLCBhbmQgaG9tZSBmb3Igb25lIGludm9jYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFByZXBhcmVkR2VuaWVDb2RlUnVudGltZSB7XG4gIGJlYXJlclRva2VuOiBzdHJpbmc7XG4gIGdhdGV3YXlCYXNlVXJsOiBzdHJpbmc7XG4gIGdhdGV3YXlIZWFsdGhVcmw6IHN0cmluZztcbiAgZ2F0ZXdheUxpc3Rlbjogc3RyaW5nO1xuICBnYXRld2F5UG9ydDogbnVtYmVyO1xuICBob21lOiBHZW5pZUNvZGVIb21lO1xuICBpbnN0YWxsYXRpb246IEJpbkNvbnRleHQ7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIHByb2ZpbGU6IHN0cmluZztcbn1cblxuLyoqIFJlc29sdmUgYXV0aCwgaW5zdGFsbGF0aW9uLCBsaXN0ZW5lciwgYW5kIGNvbmZpZ3VyYXRpb24gYmVmb3JlIHNwYXduaW5nIGNoaWxkcmVuLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVHZW5pZUNvZGVSdW50aW1lKFxuICBpbnB1dDogUnVuR2VuaWVDb2RlT3B0aW9ucyA9IHt9LFxuKTogUHJvbWlzZTxQcmVwYXJlZEdlbmllQ29kZVJ1bnRpbWU+IHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0geyAuLi5ERUZBVUxUX0RFUEVOREVOQ0lFUywgLi4uaW5wdXQuZGVwZW5kZW5jaWVzIH07XG4gIGNvbnN0IG9wdGlvbnMgPSByZXNvbHZlR2VuaWVDb2RlT3B0aW9ucyhpbnB1dC5vcHRpb25zKTtcbiAgbG9nZ2VyLmluZm8oXCJyZXNvbHZpbmcgRGF0YWJyaWNrcyBhdXRoZW50aWNhdGlvblwiLCB7XG4gICAgcmVxdWVzdGVkUHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICB9KTtcbiAgY29uc3QgYXV0aENsaWVudCA9IGF3YWl0IGRlcGVuZGVuY2llcy5jcmVhdGVBdXRoQ2xpZW50KFxuICAgIG9wdGlvbnMucHJvZmlsZSA/IHsgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlIH0gOiB7fSxcbiAgKTtcbiAgY29uc3QgcHJvZmlsZSA9IGF1dGhDbGllbnQucHJvZmlsZTtcbiAgaWYgKCFwcm9maWxlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiR2VuaWUgQ29kZSByZXF1aXJlcyBhIGNvbmZpZ3VyZWQgRGF0YWJyaWNrcyBwcm9maWxlXCIpO1xuICB9XG4gIGxvZ2dlci5pbmZvKFwicHJlcGFyaW5nIEdlbmllIENvZGUgcnVudGltZVwiLCB7XG4gICAgcHJvZmlsZSxcbiAgICBtb2RlbDogb3B0aW9ucy5tb2RlbCxcbiAgICBtb2RlbENsYXNzOiBvcHRpb25zLm1vZGVsQ2xhc3MsXG4gIH0pO1xuICBjb25zdCBpbnN0YWxsYXRpb24gPSBhd2FpdCBkZXBlbmRlbmNpZXMuaW5zdGFsbCgpO1xuICBjb25zdCBob3N0ID0gb3B0aW9ucy5nYXRld2F5TGlzdGVuLmhvc3Q7XG4gIGNvbnN0IHJlcXVlc3RlZFBvcnQgPSBvcHRpb25zLmdhdGV3YXlMaXN0ZW4ucG9ydDtcbiAgY29uc3QgZ2F0ZXdheVBvcnQgPSBhd2FpdCBkZXBlbmRlbmNpZXMucG9ydCh7XG4gICAgaG9zdCxcbiAgICAuLi4ocmVxdWVzdGVkUG9ydCA+IDAgPyB7IHBvcnQ6IHJlcXVlc3RlZFBvcnQgfSA6IHt9KSxcbiAgfSk7XG4gIGlmIChyZXF1ZXN0ZWRQb3J0ID4gMCAmJiBnYXRld2F5UG9ydCAhPT0gcmVxdWVzdGVkUG9ydCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgR2VuaWUgQ29kZSBnYXRld2F5IHBvcnQgJHtyZXF1ZXN0ZWRQb3J0fSBpcyBhbHJlYWR5IGluIHVzZWApO1xuICB9XG4gIGNvbnN0IG1vZGVsID0gYXdhaXQgZGVwZW5kZW5jaWVzLnJlc29sdmVDb2RleE1vZGVsKG9wdGlvbnMubW9kZWwsIHByb2ZpbGUsIG9wdGlvbnMubW9kZWxDbGFzcyk7XG4gIGxvZ2dlci5pbmZvKFwicmVzb2x2ZWQgR2VuaWUgQ29kZSBtb2RlbFwiLCB7XG4gICAgcmVxdWVzdGVkOiBvcHRpb25zLm1vZGVsLFxuICAgIG1vZGVsQ2xhc3M6IG9wdGlvbnMubW9kZWxDbGFzcyxcbiAgICBtb2RlbCxcbiAgfSk7XG4gIGNvbnN0IHVybEhvc3QgPSBob3N0LmluY2x1ZGVzKFwiOlwiKSA/IGBbJHtob3N0fV1gIDogaG9zdDtcbiAgY29uc3QgZ2F0ZXdheUJhc2VVcmwgPSBgaHR0cDovLyR7dXJsSG9zdH06JHtnYXRld2F5UG9ydH0vdjFgO1xuICBjb25zdCBnYXRld2F5SGVhbHRoVXJsID0gYGh0dHA6Ly8ke3VybEhvc3R9OiR7Z2F0ZXdheVBvcnR9L2FwaS9oZWFsdGh6YDtcbiAgY29uc3QgZ2F0ZXdheUxpc3RlbiA9IGB0Y3A6Ly8ke3VybEhvc3R9OiR7Z2F0ZXdheVBvcnR9YDtcbiAgY29uc3QgYmVhcmVyVG9rZW4gPSBkZXBlbmRlbmNpZXMudG9rZW4oKTtcbiAgY29uc3QgaG9tZSA9IGF3YWl0IGRlcGVuZGVuY2llcy53cml0ZUNvbmZpZyh7XG4gICAgYmVhcmVyVG9rZW4sXG4gICAgZ2F0ZXdheUJhc2VVcmwsXG4gICAgbW9kZWwsXG4gICAgcHJvZmlsZSxcbiAgICBwcm9qZWN0RGlyZWN0b3J5OiBpbnB1dC5jd2QgPz8gcHJvY2Vzcy5jd2QoKSxcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgYmVhcmVyVG9rZW4sXG4gICAgZ2F0ZXdheUJhc2VVcmwsXG4gICAgZ2F0ZXdheUhlYWx0aFVybCxcbiAgICBnYXRld2F5TGlzdGVuLFxuICAgIGdhdGV3YXlQb3J0LFxuICAgIGhvbWUsXG4gICAgaW5zdGFsbGF0aW9uLFxuICAgIG1vZGVsLFxuICAgIHByb2ZpbGUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHNoZWxsRXhlY3V0YWJsZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKSByZXR1cm4gYFwiJHtwYXRoLnJlcGxhY2VBbGwoJ1wiJywgJ1wiXCInKX1cImA7XG4gIHJldHVybiBgJyR7cGF0aC5yZXBsYWNlQWxsKFwiJ1wiLCBcIidcXFxcJydcIil9J2A7XG59XG5cbmZ1bmN0aW9uIGNoaWxkUGF0aCguLi5wYXRoczogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gWy4uLm5ldyBTZXQoWy4uLnBhdGhzLm1hcChkaXJuYW1lKSwgcHJvY2Vzcy5lbnYuUEFUSF0uZmlsdGVyKEJvb2xlYW4pKV0uam9pbihkZWxpbWl0ZXIpO1xufVxuXG4vKiogUnVuIEdlbmllIENvZGUgYW5kIHRoZSBtb2RlbCBnYXRld2F5IHVudGlsIGVpdGhlciBwcm9jZXNzIGV4aXRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkdlbmllQ29kZShpbnB1dDogUnVuR2VuaWVDb2RlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHsgLi4uREVGQVVMVF9ERVBFTkRFTkNJRVMsIC4uLmlucHV0LmRlcGVuZGVuY2llcyB9O1xuICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IHByZXBhcmVHZW5pZUNvZGVSdW50aW1lKHtcbiAgICAuLi5pbnB1dCxcbiAgICBkZXBlbmRlbmNpZXMsXG4gIH0pO1xuICBjb25zdCBnYXRld2F5QmluID0gZGVwZW5kZW5jaWVzLnJlc29sdmVCaW4oaW1wb3J0Lm1ldGEudXJsLCBcImRieC1tb2RlbC1nYXRld2F5XCIpO1xuICBjb25zdCBydW5uZXJCaW4gPSBkZXBlbmRlbmNpZXMucmVzb2x2ZUJpbihpbXBvcnQubWV0YS51cmwsIFwiZGJ4LWdlbmllXCIpO1xuICBjb25zdCBwYXRoID0gY2hpbGRQYXRoKGdhdGV3YXlCaW4sIHJ1bm5lckJpbik7XG4gIGNvbnN0IHJ1bm5lck9wdGlvbnM6IEdlbmllQ29kZVJ1bm5lck9wdGlvbnMgPSB7XG4gICAgZXhlY3V0YWJsZTogcHJlcGFyZWQuaW5zdGFsbGF0aW9uLnBhdGgsXG4gICAgYXJndW1lbnRzOiBbXCItcFwiLCBwcmVwYXJlZC5ob21lLm92ZXJsYXlOYW1lLCAuLi4oaW5wdXQuZ2VuaWVBcmdzID8/IFtdKV0sXG4gICAgaG9tZTogcHJlcGFyZWQuaG9tZS5ob21lLFxuICAgIGdhdGV3YXlIZWFsdGhVcmw6IHByZXBhcmVkLmdhdGV3YXlIZWFsdGhVcmwsXG4gICAgYmVhcmVyVG9rZW46IHByZXBhcmVkLmJlYXJlclRva2VuLFxuICAgIHN0YXJ0dXBUaW1lb3V0TXM6IDYwXzAwMCxcbiAgfTtcbiAgY29uc3QgeyByZXN1bHQgfSA9IGRlcGVuZGVuY2llcy5zdXBlcnZpc2UoXG4gICAgW1xuICAgICAge1xuICAgICAgICBjb21tYW5kOiBzaGVsbEV4ZWN1dGFibGUoZ2F0ZXdheUJpbiksXG4gICAgICAgIG5hbWU6IFwiZ2F0ZXdheVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICAuLi5wcm9jZXNzLmVudixcbiAgICAgICAgICBQQVRIOiBwYXRoLFxuICAgICAgICAgIExJU1RFTjogcHJlcGFyZWQuZ2F0ZXdheUxpc3RlbixcbiAgICAgICAgICBEQVRBQlJJQ0tTX0NPTkZJR19QUk9GSUxFOiBwcmVwYXJlZC5wcm9maWxlLFxuICAgICAgICAgIERCWF9UT09MU19NT0RFTF9HQVRFV0FZX0JFQVJFUl9UT0tFTjogcHJlcGFyZWQuYmVhcmVyVG9rZW4sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb21tYW5kOiBzaGVsbEV4ZWN1dGFibGUocnVubmVyQmluKSxcbiAgICAgICAgbmFtZTogXCJnZW5pZVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICAuLi5wcm9jZXNzLmVudixcbiAgICAgICAgICBQQVRIOiBwYXRoLFxuICAgICAgICAgIERBVEFCUklDS1NfQ09ORklHX1BST0ZJTEU6IHByZXBhcmVkLnByb2ZpbGUsXG4gICAgICAgICAgW1JVTk5FUl9PUFRJT05TX0VOVl06IEpTT04uc3RyaW5naWZ5KHJ1bm5lck9wdGlvbnMpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIHtcbiAgICAgIGN3ZDogaW5wdXQuY3dkID8/IHByb2Nlc3MuY3dkKCksXG4gICAgICByYXc6IHRydWUsXG4gICAgICBraWxsT3RoZXJzT246IFtcImZhaWx1cmVcIiwgXCJzdWNjZXNzXCJdLFxuICAgICAga2lsbFNpZ25hbDogXCJTSUdURVJNXCIsXG4gICAgICBraWxsVGltZW91dDogMTdfMDAwLFxuICAgICAgc3VjY2Vzc0NvbmRpdGlvbjogXCJjb21tYW5kLWdlbmllXCIsXG4gICAgfSxcbiAgKTtcbiAgbG9nZ2VyLmluZm8oXCJzdGFydGVkIEdlbmllIENvZGUgYW5kIG1vZGVsIGdhdGV3YXlcIiwge1xuICAgIHByb2ZpbGU6IHByZXBhcmVkLnByb2ZpbGUsXG4gICAgbW9kZWw6IHByZXBhcmVkLm1vZGVsLFxuICAgIGdhdGV3YXk6IHByZXBhcmVkLmdhdGV3YXlCYXNlVXJsLFxuICAgIGhvbWU6IHByZXBhcmVkLmhvbWUuaG9tZSxcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgcmVzdWx0O1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHJtKHByZXBhcmVkLmhvbWUub3ZlcmxheVBhdGgsIHsgZm9yY2U6IHRydWUgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,9 @@
1
- import { type GraphitiRuntimeOptions } from "@dbx-tools/appkit-graphiti/runtime";
1
+ import { runtime as graphitiRuntime } from "@dbx-tools/appkit-memory/graphiti";
2
2
  import { type CliServiceCliDependencies } from "@dbx-tools/cli-service/cli";
3
3
  import { type CliServiceDefinition } from "@dbx-tools/cli-service/definition";
4
4
  import { Command } from "commander";
5
5
  import { type GraphitiOptions } from "./options.ts";
6
+ type GraphitiRuntimeOptions = graphitiRuntime.GraphitiRuntimeOptions;
6
7
  /** Injectable runtime and service lifecycle boundaries for CLI callers. */
7
8
  export interface GraphitiCliDependencies {
8
9
  /** Run the Graphiti stack through the Node runtime owner. */
@@ -16,3 +17,4 @@ export type GraphitiServiceOptions = GraphitiOptions;
16
17
  export declare function graphitiServiceDefinition(options?: GraphitiServiceOptions): CliServiceDefinition;
17
18
  /** Build foreground execution and shared desktop-service commands. */
18
19
  export declare function buildProgram(name?: string, dependencies?: GraphitiCliDependencies): Command;
20
+ export {};
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { homedir } from "node:os";
11
11
  import { join } from "node:path";
12
- import { runGraphiti } from "@dbx-tools/appkit-graphiti/runtime";
12
+ import { runtime as graphitiRuntime } from "@dbx-tools/appkit-memory/graphiti";
13
13
  import { addArgs, parseArgs, serializeArgs } from "@dbx-tools/cli-args";
14
14
  import { buildServiceCommand } from "@dbx-tools/cli-service/cli";
15
15
  import { defineService } from "@dbx-tools/cli-service/definition";
@@ -40,7 +40,7 @@ export function graphitiServiceDefinition(options = {}) {
40
40
  });
41
41
  }
42
42
  /** Build foreground execution and shared desktop-service commands. */
43
- export function buildProgram(name = "dbx graphiti", dependencies = { run: runGraphiti }) {
43
+ export function buildProgram(name = "dbx graphiti", dependencies = { run: graphitiRuntime.runGraphiti }) {
44
44
  const program = addArgs(new Command()
45
45
  .name(name)
46
46
  .description("Run Graphiti or manage its current-user desktop service")
@@ -53,4 +53,4 @@ export function buildProgram(name = "dbx graphiti", dependencies = { run: runGra
53
53
  function graphitiOptions(command) {
54
54
  return GraphitiOptionsSchema.parse(parseArgs(command, GraphitiCliOptionsSchema));
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBoaXRpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUErQixNQUFNLG9DQUFvQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0MsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUE2QixNQUFNLG1DQUFtQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEdBRXRCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3hGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztBQWF2RSxzRkFBc0Y7QUFDdEYsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxVQUFrQyxFQUFFO0lBRXBDLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUMzQyxHQUFHLE9BQU87UUFDVixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVksSUFBSSxvQkFBb0I7S0FDM0QsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDcEMsRUFBRSxFQUFFLHdCQUF3QjtRQUM1QixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxhQUFhLEVBQUUseUJBQXlCO1FBQ3hDLGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1NBQzlFO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLGNBQWM7WUFDdkIsU0FBUyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDbkM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxZQUFZLENBQzFCLElBQUksR0FBRyxjQUFjLEVBQ3JCLGVBQXdDLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRTtJQUU1RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQ3JCLElBQUksT0FBTyxFQUFFO1NBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNWLFdBQVcsQ0FBQyx5REFBeUQsQ0FBQztTQUN0RSxPQUFPLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxFQUM1Qyx3QkFBd0IsQ0FDekIsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEIsTUFBTSxZQUFZLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFVBQVUsQ0FDaEIsbUJBQW1CLENBQ2pCLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUN6RCxZQUFZLENBQUMsT0FBTyxDQUNyQixDQUNGLENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsT0FBZ0I7SUFDdkMsT0FBTyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29tbWFuZGVyLW93bmVkIEdyYXBoaXRpIENMSSBhbmQgc2hhcmVkIGN1cnJlbnQtdXNlciBzZXJ2aWNlIGRlZmluaXRpb24uXG4gKlxuICogVGhpcyBtb2R1bGUgb3ducyBldmVyeSB1c2VyLWZhY2luZyBHcmFwaGl0aSBjb21tYW5kLiBUaGUgc2hhcmVkIEdyYXBoaXRpIFpvZFxuICogc2NoZW1hIG93bnMgaXRzIG9wdGlvbnMsIGVudmlyb25tZW50IG5hbWVzLCBkZWZhdWx0cywgYW5kIHZhbGlkYXRpb24uIFRoZVxuICogTm9kZSBHcmFwaGl0aSBwYWNrYWdlIG93bnMgcnVudGltZSBhbmQgUHl0aG9uIGludGVyYWN0aW9uLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuXG5pbXBvcnQgeyBydW5HcmFwaGl0aSwgdHlwZSBHcmFwaGl0aVJ1bnRpbWVPcHRpb25zIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LWdyYXBoaXRpL3J1bnRpbWVcIjtcbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncywgc2VyaWFsaXplQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgeyBidWlsZFNlcnZpY2VDb21tYW5kLCB0eXBlIENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXMgfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZS9jbGlcIjtcbmltcG9ydCB7IGRlZmluZVNlcnZpY2UsIHR5cGUgQ2xpU2VydmljZURlZmluaXRpb24gfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZS9kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBzZXJ2aWNlVHJheUljb24gfSBmcm9tIFwiQGRieC10b29scy9jbGktc2VydmljZS9pY29uXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuXG5pbXBvcnQge1xuICBHcmFwaGl0aUNsaU9wdGlvbnNTY2hlbWEsXG4gIEdyYXBoaXRpT3B0aW9uc1NjaGVtYSxcbiAgdHlwZSBHcmFwaGl0aU9wdGlvbnMsXG59IGZyb20gXCIuL29wdGlvbnMudHNcIjtcbmltcG9ydCB7IFBBQ0tBR0VfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi9pbmRleC50c1wiO1xuXG5jb25zdCBERUZBVUxUX1NFUlZJQ0VfRElSRUNUT1JZID0gam9pbihob21lZGlyKCksIFwiLmRieC10b29sc1wiLCBcInNlcnZpY2VzXCIsIFwiZ3JhcGhpdGlcIik7XG5jb25zdCBERUZBVUxUX1NFUlZJQ0VfSE9NRSA9IGpvaW4oaG9tZWRpcigpLCBcIi5kYngtdG9vbHNcIiwgXCJncmFwaGl0aVwiKTtcblxuLyoqIEluamVjdGFibGUgcnVudGltZSBhbmQgc2VydmljZSBsaWZlY3ljbGUgYm91bmRhcmllcyBmb3IgQ0xJIGNhbGxlcnMuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoaXRpQ2xpRGVwZW5kZW5jaWVzIHtcbiAgLyoqIFJ1biB0aGUgR3JhcGhpdGkgc3RhY2sgdGhyb3VnaCB0aGUgTm9kZSBydW50aW1lIG93bmVyLiAqL1xuICBydW4ob3B0aW9uczogR3JhcGhpdGlSdW50aW1lT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gIC8qKiBTaGFyZWQgc2VydmljZSBjb21tYW5kIGRlcGVuZGVuY2llcyBmb3IgdGVzdHMgYW5kIGVtYmVkZGluZy4gKi9cbiAgcmVhZG9ubHkgc2VydmljZT86IENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXM7XG59XG5cbi8qKiBSdW50aW1lIG9wdGlvbnMgcGVyc2lzdGVkIHdoZW4gaW5zdGFsbGluZyB0aGUgR3JhcGhpdGkgZGVza3RvcCBzZXJ2aWNlLiAqL1xuZXhwb3J0IHR5cGUgR3JhcGhpdGlTZXJ2aWNlT3B0aW9ucyA9IEdyYXBoaXRpT3B0aW9ucztcblxuLyoqIERlZmluZSBhIEdyYXBoaXRpIHNlcnZpY2Ugd2l0aG91dCBkdXBsaWNhdGluZyBpbnN0YWxsYXRpb24gb3IgbGlmZWN5Y2xlIHBvbGljeS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaGl0aVNlcnZpY2VEZWZpbml0aW9uKFxuICBvcHRpb25zOiBHcmFwaGl0aVNlcnZpY2VPcHRpb25zID0ge30sXG4pOiBDbGlTZXJ2aWNlRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHJlc29sdmVkID0gR3JhcGhpdGlPcHRpb25zU2NoZW1hLnBhcnNlKHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGdyYXBoaXRpSG9tZTogb3B0aW9ucy5ncmFwaGl0aUhvbWUgPz8gREVGQVVMVF9TRVJWSUNFX0hPTUUsXG4gIH0pO1xuICByZXR1cm4gZGVmaW5lU2VydmljZShpbXBvcnQubWV0YS51cmwsIHtcbiAgICBpZDogXCJkYngtdG9vbHMuY2xpLWdyYXBoaXRpXCIsXG4gICAgbmFtZTogXCJkYnggZ3JhcGhpdGlcIixcbiAgICBpY29uOiBzZXJ2aWNlVHJheUljb24oXCJncmFwaGl0aVwiKSxcbiAgICBkYXRhRGlyZWN0b3J5OiBERUZBVUxUX1NFUlZJQ0VfRElSRUNUT1JZLFxuICAgIHB5dGhvblBhY2thZ2U6IHtcbiAgICAgIG5hbWU6IHJlc29sdmVkLmRhdGFiYXNlVXJsID8gXCJkYngtdG9vbHMtZ3JhcGhpdGlcIiA6IFwiZGJ4LXRvb2xzLWdyYXBoaXRpW2Rldl1cIixcbiAgICB9LFxuICAgIGNvbW1hbmQ6IHtcbiAgICAgIGJpbk5hbWU6IFwiZGJ4LWdyYXBoaXRpXCIsXG4gICAgICBhcmd1bWVudHM6IHNlcmlhbGl6ZUFyZ3MocmVzb2x2ZWQpLFxuICAgIH0sXG4gIH0pO1xufVxuXG4vKiogQnVpbGQgZm9yZWdyb3VuZCBleGVjdXRpb24gYW5kIHNoYXJlZCBkZXNrdG9wLXNlcnZpY2UgY29tbWFuZHMuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKFxuICBuYW1lID0gXCJkYnggZ3JhcGhpdGlcIixcbiAgZGVwZW5kZW5jaWVzOiBHcmFwaGl0aUNsaURlcGVuZGVuY2llcyA9IHsgcnVuOiBydW5HcmFwaGl0aSB9LFxuKTogQ29tbWFuZCB7XG4gIGNvbnN0IHByb2dyYW0gPSBhZGRBcmdzKFxuICAgIG5ldyBDb21tYW5kKClcbiAgICAgIC5uYW1lKG5hbWUpXG4gICAgICAuZGVzY3JpcHRpb24oXCJSdW4gR3JhcGhpdGkgb3IgbWFuYWdlIGl0cyBjdXJyZW50LXVzZXIgZGVza3RvcCBzZXJ2aWNlXCIpXG4gICAgICAudmVyc2lvbihQQUNLQUdFX1ZFUlNJT04sIFwiLXYsIC0tdmVyc2lvblwiKSxcbiAgICBHcmFwaGl0aUNsaU9wdGlvbnNTY2hlbWEsXG4gICkuYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBkZXBlbmRlbmNpZXMucnVuKGdyYXBoaXRpT3B0aW9ucyhwcm9ncmFtKSk7XG4gIH0pO1xuXG4gIHByb2dyYW0uYWRkQ29tbWFuZChcbiAgICBidWlsZFNlcnZpY2VDb21tYW5kKFxuICAgICAgKCkgPT4gZ3JhcGhpdGlTZXJ2aWNlRGVmaW5pdGlvbihncmFwaGl0aU9wdGlvbnMocHJvZ3JhbSkpLFxuICAgICAgZGVwZW5kZW5jaWVzLnNlcnZpY2UsXG4gICAgKSxcbiAgKTtcbiAgcmV0dXJuIHByb2dyYW07XG59XG5cbmZ1bmN0aW9uIGdyYXBoaXRpT3B0aW9ucyhjb21tYW5kOiBDb21tYW5kKTogR3JhcGhpdGlPcHRpb25zIHtcbiAgcmV0dXJuIEdyYXBoaXRpT3B0aW9uc1NjaGVtYS5wYXJzZShwYXJzZUFyZ3MoY29tbWFuZCwgR3JhcGhpdGlDbGlPcHRpb25zU2NoZW1hKSk7XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBoaXRpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEVBQUUsT0FBTyxJQUFJLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0MsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUE2QixNQUFNLG1DQUFtQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEdBRXRCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3hGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztBQWN2RSxzRkFBc0Y7QUFDdEYsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxVQUFrQyxFQUFFO0lBRXBDLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUMzQyxHQUFHLE9BQU87UUFDVixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVksSUFBSSxvQkFBb0I7S0FDM0QsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDcEMsRUFBRSxFQUFFLHdCQUF3QjtRQUM1QixJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxhQUFhLEVBQUUseUJBQXlCO1FBQ3hDLGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1NBQzlFO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLGNBQWM7WUFDdkIsU0FBUyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDbkM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxZQUFZLENBQzFCLElBQUksR0FBRyxjQUFjLEVBQ3JCLGVBQXdDLEVBQUUsR0FBRyxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUU7SUFFNUUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUNyQixJQUFJLE9BQU8sRUFBRTtTQUNWLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDVixXQUFXLENBQUMseURBQXlELENBQUM7U0FDdEUsT0FBTyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFDNUMsd0JBQXdCLENBQ3pCLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxVQUFVLENBQ2hCLG1CQUFtQixDQUNqQixHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDekQsWUFBWSxDQUFDLE9BQU8sQ0FDckIsQ0FDRixDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE9BQWdCO0lBQ3ZDLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0FBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbW1hbmRlci1vd25lZCBHcmFwaGl0aSBDTEkgYW5kIHNoYXJlZCBjdXJyZW50LXVzZXIgc2VydmljZSBkZWZpbml0aW9uLlxuICpcbiAqIFRoaXMgbW9kdWxlIG93bnMgZXZlcnkgdXNlci1mYWNpbmcgR3JhcGhpdGkgY29tbWFuZC4gVGhlIHNoYXJlZCBHcmFwaGl0aSBab2RcbiAqIHNjaGVtYSBvd25zIGl0cyBvcHRpb25zLCBlbnZpcm9ubWVudCBuYW1lcywgZGVmYXVsdHMsIGFuZCB2YWxpZGF0aW9uLiBUaGVcbiAqIE5vZGUgR3JhcGhpdGkgcGFja2FnZSBvd25zIHJ1bnRpbWUgYW5kIFB5dGhvbiBpbnRlcmFjdGlvbi5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0IHsgcnVudGltZSBhcyBncmFwaGl0aVJ1bnRpbWUgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtbWVtb3J5L2dyYXBoaXRpXCI7XG5pbXBvcnQgeyBhZGRBcmdzLCBwYXJzZUFyZ3MsIHNlcmlhbGl6ZUFyZ3MgfSBmcm9tIFwiQGRieC10b29scy9jbGktYXJnc1wiO1xuaW1wb3J0IHsgYnVpbGRTZXJ2aWNlQ29tbWFuZCwgdHlwZSBDbGlTZXJ2aWNlQ2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvY2xpXCI7XG5pbXBvcnQgeyBkZWZpbmVTZXJ2aWNlLCB0eXBlIENsaVNlcnZpY2VEZWZpbml0aW9uIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgc2VydmljZVRyYXlJY29uIH0gZnJvbSBcIkBkYngtdG9vbHMvY2xpLXNlcnZpY2UvaWNvblwiO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcblxuaW1wb3J0IHtcbiAgR3JhcGhpdGlDbGlPcHRpb25zU2NoZW1hLFxuICBHcmFwaGl0aU9wdGlvbnNTY2hlbWEsXG4gIHR5cGUgR3JhcGhpdGlPcHRpb25zLFxufSBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5pbXBvcnQgeyBQQUNLQUdFX1ZFUlNJT04gfSBmcm9tIFwiLi4vLi4vaW5kZXgudHNcIjtcblxuY29uc3QgREVGQVVMVF9TRVJWSUNFX0RJUkVDVE9SWSA9IGpvaW4oaG9tZWRpcigpLCBcIi5kYngtdG9vbHNcIiwgXCJzZXJ2aWNlc1wiLCBcImdyYXBoaXRpXCIpO1xuY29uc3QgREVGQVVMVF9TRVJWSUNFX0hPTUUgPSBqb2luKGhvbWVkaXIoKSwgXCIuZGJ4LXRvb2xzXCIsIFwiZ3JhcGhpdGlcIik7XG50eXBlIEdyYXBoaXRpUnVudGltZU9wdGlvbnMgPSBncmFwaGl0aVJ1bnRpbWUuR3JhcGhpdGlSdW50aW1lT3B0aW9ucztcblxuLyoqIEluamVjdGFibGUgcnVudGltZSBhbmQgc2VydmljZSBsaWZlY3ljbGUgYm91bmRhcmllcyBmb3IgQ0xJIGNhbGxlcnMuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoaXRpQ2xpRGVwZW5kZW5jaWVzIHtcbiAgLyoqIFJ1biB0aGUgR3JhcGhpdGkgc3RhY2sgdGhyb3VnaCB0aGUgTm9kZSBydW50aW1lIG93bmVyLiAqL1xuICBydW4ob3B0aW9uczogR3JhcGhpdGlSdW50aW1lT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gIC8qKiBTaGFyZWQgc2VydmljZSBjb21tYW5kIGRlcGVuZGVuY2llcyBmb3IgdGVzdHMgYW5kIGVtYmVkZGluZy4gKi9cbiAgcmVhZG9ubHkgc2VydmljZT86IENsaVNlcnZpY2VDbGlEZXBlbmRlbmNpZXM7XG59XG5cbi8qKiBSdW50aW1lIG9wdGlvbnMgcGVyc2lzdGVkIHdoZW4gaW5zdGFsbGluZyB0aGUgR3JhcGhpdGkgZGVza3RvcCBzZXJ2aWNlLiAqL1xuZXhwb3J0IHR5cGUgR3JhcGhpdGlTZXJ2aWNlT3B0aW9ucyA9IEdyYXBoaXRpT3B0aW9ucztcblxuLyoqIERlZmluZSBhIEdyYXBoaXRpIHNlcnZpY2Ugd2l0aG91dCBkdXBsaWNhdGluZyBpbnN0YWxsYXRpb24gb3IgbGlmZWN5Y2xlIHBvbGljeS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaGl0aVNlcnZpY2VEZWZpbml0aW9uKFxuICBvcHRpb25zOiBHcmFwaGl0aVNlcnZpY2VPcHRpb25zID0ge30sXG4pOiBDbGlTZXJ2aWNlRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHJlc29sdmVkID0gR3JhcGhpdGlPcHRpb25zU2NoZW1hLnBhcnNlKHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGdyYXBoaXRpSG9tZTogb3B0aW9ucy5ncmFwaGl0aUhvbWUgPz8gREVGQVVMVF9TRVJWSUNFX0hPTUUsXG4gIH0pO1xuICByZXR1cm4gZGVmaW5lU2VydmljZShpbXBvcnQubWV0YS51cmwsIHtcbiAgICBpZDogXCJkYngtdG9vbHMuY2xpLWdyYXBoaXRpXCIsXG4gICAgbmFtZTogXCJkYnggZ3JhcGhpdGlcIixcbiAgICBpY29uOiBzZXJ2aWNlVHJheUljb24oXCJncmFwaGl0aVwiKSxcbiAgICBkYXRhRGlyZWN0b3J5OiBERUZBVUxUX1NFUlZJQ0VfRElSRUNUT1JZLFxuICAgIHB5dGhvblBhY2thZ2U6IHtcbiAgICAgIG5hbWU6IHJlc29sdmVkLmRhdGFiYXNlVXJsID8gXCJkYngtdG9vbHMtZ3JhcGhpdGlcIiA6IFwiZGJ4LXRvb2xzLWdyYXBoaXRpW2Rldl1cIixcbiAgICB9LFxuICAgIGNvbW1hbmQ6IHtcbiAgICAgIGJpbk5hbWU6IFwiZGJ4LWdyYXBoaXRpXCIsXG4gICAgICBhcmd1bWVudHM6IHNlcmlhbGl6ZUFyZ3MocmVzb2x2ZWQpLFxuICAgIH0sXG4gIH0pO1xufVxuXG4vKiogQnVpbGQgZm9yZWdyb3VuZCBleGVjdXRpb24gYW5kIHNoYXJlZCBkZXNrdG9wLXNlcnZpY2UgY29tbWFuZHMuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKFxuICBuYW1lID0gXCJkYnggZ3JhcGhpdGlcIixcbiAgZGVwZW5kZW5jaWVzOiBHcmFwaGl0aUNsaURlcGVuZGVuY2llcyA9IHsgcnVuOiBncmFwaGl0aVJ1bnRpbWUucnVuR3JhcGhpdGkgfSxcbik6IENvbW1hbmQge1xuICBjb25zdCBwcm9ncmFtID0gYWRkQXJncyhcbiAgICBuZXcgQ29tbWFuZCgpXG4gICAgICAubmFtZShuYW1lKVxuICAgICAgLmRlc2NyaXB0aW9uKFwiUnVuIEdyYXBoaXRpIG9yIG1hbmFnZSBpdHMgY3VycmVudC11c2VyIGRlc2t0b3Agc2VydmljZVwiKVxuICAgICAgLnZlcnNpb24oUEFDS0FHRV9WRVJTSU9OLCBcIi12LCAtLXZlcnNpb25cIiksXG4gICAgR3JhcGhpdGlDbGlPcHRpb25zU2NoZW1hLFxuICApLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZGVwZW5kZW5jaWVzLnJ1bihncmFwaGl0aU9wdGlvbnMocHJvZ3JhbSkpO1xuICB9KTtcblxuICBwcm9ncmFtLmFkZENvbW1hbmQoXG4gICAgYnVpbGRTZXJ2aWNlQ29tbWFuZChcbiAgICAgICgpID0+IGdyYXBoaXRpU2VydmljZURlZmluaXRpb24oZ3JhcGhpdGlPcHRpb25zKHByb2dyYW0pKSxcbiAgICAgIGRlcGVuZGVuY2llcy5zZXJ2aWNlLFxuICAgICksXG4gICk7XG4gIHJldHVybiBwcm9ncmFtO1xufVxuXG5mdW5jdGlvbiBncmFwaGl0aU9wdGlvbnMoY29tbWFuZDogQ29tbWFuZCk6IEdyYXBoaXRpT3B0aW9ucyB7XG4gIHJldHVybiBHcmFwaGl0aU9wdGlvbnNTY2hlbWEucGFyc2UocGFyc2VBcmdzKGNvbW1hbmQsIEdyYXBoaXRpQ2xpT3B0aW9uc1NjaGVtYSkpO1xufVxuIl19
@@ -1,3 +1,5 @@
1
1
  export * as cli from "./cli.ts";
2
2
  export * as options from "./options.ts";
3
3
  export type { GraphitiCliDependencies, GraphitiServiceOptions } from "./cli.ts";
4
+ export { GRAPHITI_DEFAULTS, GraphitiCliOptionsSchema, GraphitiOptionsSchema, ResolvedGraphitiOptionsSchema, graphitiOptionOverrides, graphitiOptionsEnvironment, graphitiOptionsFromEnvironment, resolveGraphitiOptions } from "./options.ts";
5
+ export type { GraphitiOptions, ResolvedGraphitiOptions } from "./options.ts";
@@ -3,4 +3,5 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export * as cli from "./cli.js";
5
5
  export * as options from "./options.js";
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ3JhcGhpdGkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLG1EQUFtRDtBQUNuRCx3RUFBd0U7QUFFeEUsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgKiBhcyBjbGkgZnJvbSBcIi4vY2xpLnRzXCI7XG5leHBvcnQgKiBhcyBvcHRpb25zIGZyb20gXCIuL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgR3JhcGhpdGlDbGlEZXBlbmRlbmNpZXMsIEdyYXBoaXRpU2VydmljZU9wdGlvbnMgfSBmcm9tIFwiLi9jbGkudHNcIjtcbiJdfQ==
6
+ export { GRAPHITI_DEFAULTS, GraphitiCliOptionsSchema, GraphitiOptionsSchema, ResolvedGraphitiOptionsSchema, graphitiOptionOverrides, graphitiOptionsEnvironment, graphitiOptionsFromEnvironment, resolveGraphitiOptions } from "./options.js";
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ3JhcGhpdGkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLG1EQUFtRDtBQUNuRCx3RUFBd0U7QUFFeEUsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFFeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLDZCQUE2QixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLDhCQUE4QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0ICogYXMgY2xpIGZyb20gXCIuL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgb3B0aW9ucyBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdyYXBoaXRpQ2xpRGVwZW5kZW5jaWVzLCBHcmFwaGl0aVNlcnZpY2VPcHRpb25zIH0gZnJvbSBcIi4vY2xpLnRzXCI7XG5leHBvcnQgeyBHUkFQSElUSV9ERUZBVUxUUywgR3JhcGhpdGlDbGlPcHRpb25zU2NoZW1hLCBHcmFwaGl0aU9wdGlvbnNTY2hlbWEsIFJlc29sdmVkR3JhcGhpdGlPcHRpb25zU2NoZW1hLCBncmFwaGl0aU9wdGlvbk92ZXJyaWRlcywgZ3JhcGhpdGlPcHRpb25zRW52aXJvbm1lbnQsIGdyYXBoaXRpT3B0aW9uc0Zyb21FbnZpcm9ubWVudCwgcmVzb2x2ZUdyYXBoaXRpT3B0aW9ucyB9IGZyb20gXCIuL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgR3JhcGhpdGlPcHRpb25zLCBSZXNvbHZlZEdyYXBoaXRpT3B0aW9ucyB9IGZyb20gXCIuL29wdGlvbnMudHNcIjtcbiJdfQ==
@@ -6,5 +6,112 @@
6
6
  *
7
7
  * @module
8
8
  */
9
- export { GRAPHITI_DEFAULTS, GraphitiCliOptionsSchema, GraphitiOptionsSchema, ResolvedGraphitiOptionsSchema, graphitiOptionOverrides, graphitiOptionsEnvironment, graphitiOptionsFromEnvironment, resolveGraphitiOptions, } from "@dbx-tools/appkit-graphiti/options";
10
- export type { GraphitiOptions, ResolvedGraphitiOptions } from "@dbx-tools/appkit-graphiti/options";
9
+ import { options } from "@dbx-tools/appkit-memory/graphiti";
10
+ /** Graphiti defaults derived from the shared owning schema. */
11
+ export declare const GRAPHITI_DEFAULTS: Readonly<{
12
+ modelClass: "chat-thinking" | "chat-balanced" | "chat-fast";
13
+ temperature: number;
14
+ structuredOutputMode: string;
15
+ startupTimeoutMs: number;
16
+ listen: {
17
+ scheme: "tcp";
18
+ host: string;
19
+ port: number;
20
+ };
21
+ databaseSchema: string;
22
+ postgresRole?: string | undefined;
23
+ profile?: string | undefined;
24
+ bearer?: string | undefined;
25
+ graphitiHome?: string | undefined;
26
+ databaseUrl?: string | undefined;
27
+ }>;
28
+ /** Graphiti options represented as Commander flags. */
29
+ export declare const GraphitiCliOptionsSchema: import("zod").ZodObject<{
30
+ postgresRole: import("zod").ZodOptional<import("zod").ZodString>;
31
+ profile: import("zod").ZodOptional<import("zod").ZodString>;
32
+ bearer: import("zod").ZodOptional<import("zod").ZodString>;
33
+ graphitiHome: import("zod").ZodOptional<import("zod").ZodString>;
34
+ modelClass: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<{
35
+ "chat-thinking": "chat-thinking";
36
+ "chat-balanced": "chat-balanced";
37
+ "chat-fast": "chat-fast";
38
+ }>>>;
39
+ temperature: import("zod").ZodDefault<import("zod").ZodCoercedNumber<number>>;
40
+ structuredOutputMode: import("zod").ZodDefault<import("zod").ZodString>;
41
+ startupTimeoutMs: import("zod").ZodDefault<import("zod").ZodCoercedNumber<number>>;
42
+ listen: import("zod").ZodDefault<import("zod").ZodType<{
43
+ scheme: "tcp";
44
+ host: string;
45
+ port: number;
46
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
47
+ scheme: "tcp";
48
+ host: string;
49
+ port: number;
50
+ }, unknown>>>;
51
+ databaseUrl: import("zod").ZodOptional<import("zod").ZodString>;
52
+ databaseSchema: import("zod").ZodDefault<import("zod").ZodString>;
53
+ }, import("zod/v4/core").$strict>;
54
+ /** Shared Graphiti option schema used by the CLI runtime. */
55
+ export declare const GraphitiOptionsSchema: import("zod").ZodObject<{
56
+ postgresRole: import("zod").ZodOptional<import("zod").ZodString>;
57
+ profile: import("zod").ZodOptional<import("zod").ZodString>;
58
+ bearer: import("zod").ZodOptional<import("zod").ZodString>;
59
+ graphitiHome: import("zod").ZodOptional<import("zod").ZodString>;
60
+ modelClass: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<{
61
+ "chat-thinking": "chat-thinking";
62
+ "chat-balanced": "chat-balanced";
63
+ "chat-fast": "chat-fast";
64
+ }>>>;
65
+ temperature: import("zod").ZodDefault<import("zod").ZodCoercedNumber<number>>;
66
+ structuredOutputMode: import("zod").ZodDefault<import("zod").ZodString>;
67
+ startupTimeoutMs: import("zod").ZodDefault<import("zod").ZodCoercedNumber<number>>;
68
+ listen: import("zod").ZodDefault<import("zod").ZodType<{
69
+ scheme: "tcp";
70
+ host: string;
71
+ port: number;
72
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
73
+ scheme: "tcp";
74
+ host: string;
75
+ port: number;
76
+ }, unknown>>>;
77
+ databaseUrl: import("zod").ZodOptional<import("zod").ZodString>;
78
+ databaseSchema: import("zod").ZodDefault<import("zod").ZodString>;
79
+ }, import("zod/v4/core").$strict>;
80
+ /** Schema for Graphiti options after defaults are resolved. */
81
+ export declare const ResolvedGraphitiOptionsSchema: import("zod").ZodObject<{
82
+ postgresRole: import("zod").ZodOptional<import("zod").ZodString>;
83
+ profile: import("zod").ZodOptional<import("zod").ZodString>;
84
+ bearer: import("zod").ZodOptional<import("zod").ZodString>;
85
+ graphitiHome: import("zod").ZodOptional<import("zod").ZodString>;
86
+ modelClass: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<{
87
+ "chat-thinking": "chat-thinking";
88
+ "chat-balanced": "chat-balanced";
89
+ "chat-fast": "chat-fast";
90
+ }>>>;
91
+ temperature: import("zod").ZodDefault<import("zod").ZodCoercedNumber<number>>;
92
+ structuredOutputMode: import("zod").ZodDefault<import("zod").ZodString>;
93
+ startupTimeoutMs: import("zod").ZodDefault<import("zod").ZodCoercedNumber<number>>;
94
+ listen: import("zod").ZodDefault<import("zod").ZodType<{
95
+ scheme: "tcp";
96
+ host: string;
97
+ port: number;
98
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
99
+ scheme: "tcp";
100
+ host: string;
101
+ port: number;
102
+ }, unknown>>>;
103
+ databaseUrl: import("zod").ZodOptional<import("zod").ZodString>;
104
+ databaseSchema: import("zod").ZodDefault<import("zod").ZodString>;
105
+ }, import("zod/v4/core").$strict>;
106
+ /** Keep only explicitly supplied Graphiti fields and validate their values. */
107
+ export declare const graphitiOptionOverrides: typeof options.graphitiOptionOverrides;
108
+ /** Serialize Graphiti options into the Python runtime environment. */
109
+ export declare const graphitiOptionsEnvironment: typeof options.graphitiOptionsEnvironment;
110
+ /** Parse Graphiti option overrides from an environment record. */
111
+ export declare const graphitiOptionsFromEnvironment: typeof options.graphitiOptionsFromEnvironment;
112
+ /** Apply shared defaults and validate Graphiti runtime invariants. */
113
+ export declare const resolveGraphitiOptions: typeof options.resolveGraphitiOptions;
114
+ /** Graphiti option inputs accepted by the CLI. */
115
+ export type GraphitiOptions = options.GraphitiOptions;
116
+ /** Graphiti options after shared defaults are resolved. */
117
+ export type ResolvedGraphitiOptions = options.ResolvedGraphitiOptions;
@@ -6,5 +6,21 @@
6
6
  *
7
7
  * @module
8
8
  */
9
- export { GRAPHITI_DEFAULTS, GraphitiCliOptionsSchema, GraphitiOptionsSchema, ResolvedGraphitiOptionsSchema, graphitiOptionOverrides, graphitiOptionsEnvironment, graphitiOptionsFromEnvironment, resolveGraphitiOptions, } from "@dbx-tools/appkit-graphiti/options";
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaGl0aS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLHNCQUFzQixHQUN2QixNQUFNLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcmFwaGl0aSBDTEkgb3B0aW9uIHN1cmZhY2UuXG4gKlxuICogVGhlIE5vZGUgR3JhcGhpdGkgcnVudGltZSBvd25zIHRoZSBjb21wbGV0ZSBzaGFyZWQgb3B0aW9uIGNvbnRyYWN0LiBUaGlzXG4gKiBtb2R1bGUgcmUtZXhwb3J0cyB0aGF0IHN1cmZhY2Ugd2l0aG91dCBjcmVhdGluZyBwYXJhbGxlbCBDTEkgcG9saWN5LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5leHBvcnQge1xuICBHUkFQSElUSV9ERUZBVUxUUyxcbiAgR3JhcGhpdGlDbGlPcHRpb25zU2NoZW1hLFxuICBHcmFwaGl0aU9wdGlvbnNTY2hlbWEsXG4gIFJlc29sdmVkR3JhcGhpdGlPcHRpb25zU2NoZW1hLFxuICBncmFwaGl0aU9wdGlvbk92ZXJyaWRlcyxcbiAgZ3JhcGhpdGlPcHRpb25zRW52aXJvbm1lbnQsXG4gIGdyYXBoaXRpT3B0aW9uc0Zyb21FbnZpcm9ubWVudCxcbiAgcmVzb2x2ZUdyYXBoaXRpT3B0aW9ucyxcbn0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LWdyYXBoaXRpL29wdGlvbnNcIjtcbmV4cG9ydCB0eXBlIHsgR3JhcGhpdGlPcHRpb25zLCBSZXNvbHZlZEdyYXBoaXRpT3B0aW9ucyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1ncmFwaGl0aS9vcHRpb25zXCI7XG4iXX0=
9
+ import { options } from "@dbx-tools/appkit-memory/graphiti";
10
+ /** Graphiti defaults derived from the shared owning schema. */
11
+ export const GRAPHITI_DEFAULTS = options.GRAPHITI_DEFAULTS;
12
+ /** Graphiti options represented as Commander flags. */
13
+ export const GraphitiCliOptionsSchema = options.GraphitiCliOptionsSchema;
14
+ /** Shared Graphiti option schema used by the CLI runtime. */
15
+ export const GraphitiOptionsSchema = options.GraphitiOptionsSchema;
16
+ /** Schema for Graphiti options after defaults are resolved. */
17
+ export const ResolvedGraphitiOptionsSchema = options.ResolvedGraphitiOptionsSchema;
18
+ /** Keep only explicitly supplied Graphiti fields and validate their values. */
19
+ export const graphitiOptionOverrides = options.graphitiOptionOverrides;
20
+ /** Serialize Graphiti options into the Python runtime environment. */
21
+ export const graphitiOptionsEnvironment = options.graphitiOptionsEnvironment;
22
+ /** Parse Graphiti option overrides from an environment record. */
23
+ export const graphitiOptionsFromEnvironment = options.graphitiOptionsFromEnvironment;
24
+ /** Apply shared defaults and validate Graphiti runtime invariants. */
25
+ export const resolveGraphitiOptions = options.resolveGraphitiOptions;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaGl0aS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFNUQsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUUzRCx1REFBdUQ7QUFDdkQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDO0FBRXpFLDZEQUE2RDtBQUM3RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUM7QUFFbkUsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQztBQUVuRiwrRUFBK0U7QUFDL0UsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDO0FBRXZFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxPQUFPLENBQUMsMEJBQTBCLENBQUM7QUFFN0Usa0VBQWtFO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztBQUVyRixzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcmFwaGl0aSBDTEkgb3B0aW9uIHN1cmZhY2UuXG4gKlxuICogVGhlIE5vZGUgR3JhcGhpdGkgcnVudGltZSBvd25zIHRoZSBjb21wbGV0ZSBzaGFyZWQgb3B0aW9uIGNvbnRyYWN0LiBUaGlzXG4gKiBtb2R1bGUgcmUtZXhwb3J0cyB0aGF0IHN1cmZhY2Ugd2l0aG91dCBjcmVhdGluZyBwYXJhbGxlbCBDTEkgcG9saWN5LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1lbW9yeS9ncmFwaGl0aVwiO1xuXG4vKiogR3JhcGhpdGkgZGVmYXVsdHMgZGVyaXZlZCBmcm9tIHRoZSBzaGFyZWQgb3duaW5nIHNjaGVtYS4gKi9cbmV4cG9ydCBjb25zdCBHUkFQSElUSV9ERUZBVUxUUyA9IG9wdGlvbnMuR1JBUEhJVElfREVGQVVMVFM7XG5cbi8qKiBHcmFwaGl0aSBvcHRpb25zIHJlcHJlc2VudGVkIGFzIENvbW1hbmRlciBmbGFncy4gKi9cbmV4cG9ydCBjb25zdCBHcmFwaGl0aUNsaU9wdGlvbnNTY2hlbWEgPSBvcHRpb25zLkdyYXBoaXRpQ2xpT3B0aW9uc1NjaGVtYTtcblxuLyoqIFNoYXJlZCBHcmFwaGl0aSBvcHRpb24gc2NoZW1hIHVzZWQgYnkgdGhlIENMSSBydW50aW1lLiAqL1xuZXhwb3J0IGNvbnN0IEdyYXBoaXRpT3B0aW9uc1NjaGVtYSA9IG9wdGlvbnMuR3JhcGhpdGlPcHRpb25zU2NoZW1hO1xuXG4vKiogU2NoZW1hIGZvciBHcmFwaGl0aSBvcHRpb25zIGFmdGVyIGRlZmF1bHRzIGFyZSByZXNvbHZlZC4gKi9cbmV4cG9ydCBjb25zdCBSZXNvbHZlZEdyYXBoaXRpT3B0aW9uc1NjaGVtYSA9IG9wdGlvbnMuUmVzb2x2ZWRHcmFwaGl0aU9wdGlvbnNTY2hlbWE7XG5cbi8qKiBLZWVwIG9ubHkgZXhwbGljaXRseSBzdXBwbGllZCBHcmFwaGl0aSBmaWVsZHMgYW5kIHZhbGlkYXRlIHRoZWlyIHZhbHVlcy4gKi9cbmV4cG9ydCBjb25zdCBncmFwaGl0aU9wdGlvbk92ZXJyaWRlcyA9IG9wdGlvbnMuZ3JhcGhpdGlPcHRpb25PdmVycmlkZXM7XG5cbi8qKiBTZXJpYWxpemUgR3JhcGhpdGkgb3B0aW9ucyBpbnRvIHRoZSBQeXRob24gcnVudGltZSBlbnZpcm9ubWVudC4gKi9cbmV4cG9ydCBjb25zdCBncmFwaGl0aU9wdGlvbnNFbnZpcm9ubWVudCA9IG9wdGlvbnMuZ3JhcGhpdGlPcHRpb25zRW52aXJvbm1lbnQ7XG5cbi8qKiBQYXJzZSBHcmFwaGl0aSBvcHRpb24gb3ZlcnJpZGVzIGZyb20gYW4gZW52aXJvbm1lbnQgcmVjb3JkLiAqL1xuZXhwb3J0IGNvbnN0IGdyYXBoaXRpT3B0aW9uc0Zyb21FbnZpcm9ubWVudCA9IG9wdGlvbnMuZ3JhcGhpdGlPcHRpb25zRnJvbUVudmlyb25tZW50O1xuXG4vKiogQXBwbHkgc2hhcmVkIGRlZmF1bHRzIGFuZCB2YWxpZGF0ZSBHcmFwaGl0aSBydW50aW1lIGludmFyaWFudHMuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZUdyYXBoaXRpT3B0aW9ucyA9IG9wdGlvbnMucmVzb2x2ZUdyYXBoaXRpT3B0aW9ucztcblxuLyoqIEdyYXBoaXRpIG9wdGlvbiBpbnB1dHMgYWNjZXB0ZWQgYnkgdGhlIENMSS4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoaXRpT3B0aW9ucyA9IG9wdGlvbnMuR3JhcGhpdGlPcHRpb25zO1xuXG4vKiogR3JhcGhpdGkgb3B0aW9ucyBhZnRlciBzaGFyZWQgZGVmYXVsdHMgYXJlIHJlc29sdmVkLiAqL1xuZXhwb3J0IHR5cGUgUmVzb2x2ZWRHcmFwaGl0aU9wdGlvbnMgPSBvcHRpb25zLlJlc29sdmVkR3JhcGhpdGlPcHRpb25zO1xuIl19
@@ -51,6 +51,7 @@ export async function startModelGateway(options = {}) {
51
51
  const gateway = new ModelGateway({
52
52
  ...(resolved.model ? { model: resolved.model } : {}),
53
53
  ...(resolved.modelClass ? { modelClass: resolved.modelClass } : {}),
54
+ preferSystemModels: resolved.preferSystemModels,
54
55
  });
55
56
  const client = await workspaceClient.createWorkspaceClient({
56
57
  ...(resolved.profile ? { profile: resolved.profile } : {}),
@@ -83,4 +84,4 @@ export async function startModelGateway(options = {}) {
83
84
  },
84
85
  });
85
86
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsLWdhdGV3YXkvc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUNMLDBCQUEwQixHQUczQixNQUFNLHlDQUF5QyxDQUFDO0FBS2pELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUseUJBQXlCLENBQUMsVUFBK0IsRUFBRTtJQUN6RSxPQUFPLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsT0FBb0M7SUFDL0QsT0FBTztRQUNMLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQ3pCLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUk7S0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQWE7SUFDbkQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3RCxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUs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QUFvQixDQUFDO29CQUN0QyxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDO2lCQUMvQixFQUFFLENBQUM7b0JBQ1gsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7d0JBQzNDLEtBQUssYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUMzRCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yZWdyb3VuZCBtb2RlbC1nYXRld2F5IHNlcnZlciBvd25lZCBieSB0aGUgQ0xJIHBhY2thZ2UuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2gsIHRpbWluZ1NhZmVFcXVhbCB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgY3JlYXRlQXBwLCBzZXJ2ZXIgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBNb2RlbEdhdGV3YXkgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtbW9kZWwtZ2F0ZXdheVwiO1xuaW1wb3J0IHsgc2VuZEhlYWx0aCwgc2VuZEluZmVyZW5jZSwgc2VuZE1vZGVscyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tb2RlbC1nYXRld2F5L3JvdXRlc1wiO1xuaW1wb3J0IHsgd29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvZGF0YWJyaWNrc1wiO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZU1vZGVsR2F0ZXdheU9wdGlvbnMsXG4gIHR5cGUgTW9kZWxHYXRld2F5T3B0aW9ucyxcbiAgdHlwZSBSZXNvbHZlZE1vZGVsR2F0ZXdheU9wdGlvbnMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbC1nYXRld2F5L29wdGlvbnNcIjtcbmltcG9ydCB0eXBlIGV4cHJlc3MgZnJvbSBcImV4cHJlc3NcIjtcblxudHlwZSBBcHBLaXRTZXJ2ZXJPcHRpb25zID0gTm9uTnVsbGFibGU8UGFyYW1ldGVyczx0eXBlb2Ygc2VydmVyPlswXT47XG5cbi8qKiBSZXNvbHZlIEFwcEtpdCBzZXJ2ZXIgc2V0dGluZ3MgZm9yIHRoZSBsb29wYmFjayBtb2RlbCBnYXRld2F5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsR2F0ZXdheVNlcnZlck9wdGlvbnMob3B0aW9uczogTW9kZWxHYXRld2F5T3B0aW9ucyA9IHt9KTogQXBwS2l0U2VydmVyT3B0aW9ucyB7XG4gIHJldHVybiBhcHBLaXRTZXJ2ZXJPcHRpb25zKHJlc29sdmVNb2RlbEdhdGV3YXlPcHRpb25zKG9wdGlvbnMpKTtcbn1cblxuZnVuY3Rpb24gYXBwS2l0U2VydmVyT3B0aW9ucyhvcHRpb25zOiBSZXNvbHZlZE1vZGVsR2F0ZXdheU9wdGlvbnMpOiBBcHBLaXRTZXJ2ZXJPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBib2R5TGltaXQ6IG9wdGlvbnMuYm9keUxpbWl0LFxuICAgIGhvc3Q6IG9wdGlvbnMubGlzdGVuLmhvc3QsXG4gICAgcG9ydDogb3B0aW9ucy5saXN0ZW4ucG9ydCxcbiAgfTtcbn1cblxuLyoqIFJlcXVpcmUgb25lIGJlYXJlciB0b2tlbiB3aXRob3V0IHJldGFpbmluZyBvciBsb2dnaW5nIHJlcXVlc3QgY3JlZGVudGlhbHMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2F0ZXdheUJlYXJlck1pZGRsZXdhcmUodG9rZW46IHN0cmluZyk6IGV4cHJlc3MuUmVxdWVzdEhhbmRsZXIge1xuICBjb25zdCBleHBlY3RlZCA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHRva2VuKS5kaWdlc3QoKTtcbiAgcmV0dXJuIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IGF1dGhvcml6YXRpb24gPSByZXF1ZXN0LmhlYWRlcihcImF1dGhvcml6YXRpb25cIik7XG4gICAgY29uc3QgbWF0Y2ggPSAvXkJlYXJlclxccysoLispJC9pLmV4ZWMoYXV0aG9yaXphdGlvbiA/PyBcIlwiKTtcbiAgICBjb25zdCBhY3R1YWwgPSBjcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gICAgICAudXBkYXRlKG1hdGNoPy5bMV0gPz8gXCJcIilcbiAgICAgIC5kaWdlc3QoKTtcbiAgICBpZiAobWF0Y2ggJiYgdGltaW5nU2FmZUVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpKSB7XG4gICAgICBuZXh0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJlc3BvbnNlXG4gICAgICAuc3RhdHVzKDQwMSlcbiAgICAgIC5zZXRIZWFkZXIoXCJ3d3ctYXV0aGVudGljYXRlXCIsIFwiQmVhcmVyXCIpXG4gICAgICAuanNvbih7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgbWVzc2FnZTogXCJJbnZhbGlkIG9yIG1pc3NpbmcgbW9kZWwtZ2F0ZXdheSBiZWFyZXIgdG9rZW4uXCIsXG4gICAgICAgICAgdHlwZTogXCJhdXRoZW50aWNhdGlvbl9lcnJvclwiLFxuICAgICAgICAgIGNvZGU6IFwiaW52YWxpZF9iZWFyZXJfdG9rZW5cIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9O1xufVxuXG4vKiogU3RhcnQgdGhlIGZvcmVncm91bmQgbW9kZWwgZ2F0ZXdheSBhbmQga2VlcCBpdHMgQXBwS2l0IHNlcnZlciBhY3RpdmUuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRNb2RlbEdhdGV3YXkob3B0aW9uczogTW9kZWxHYXRld2F5T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZU1vZGVsR2F0ZXdheU9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGdhdGV3YXkgPSBuZXcgTW9kZWxHYXRld2F5KHtcbiAgICAuLi4ocmVzb2x2ZWQubW9kZWwgPyB7IG1vZGVsOiByZXNvbHZlZC5tb2RlbCB9IDoge30pLFxuICAgIC4uLihyZXNvbHZlZC5tb2RlbENsYXNzID8geyBtb2RlbENsYXNzOiByZXNvbHZlZC5tb2RlbENsYXNzIH0gOiB7fSksXG4gIH0pO1xuICBjb25zdCBjbGllbnQgPSBhd2FpdCB3b3Jrc3BhY2VDbGllbnQuY3JlYXRlV29ya3NwYWNlQ2xpZW50KHtcbiAgICAuLi4ocmVzb2x2ZWQucHJvZmlsZSA/IHsgcHJvZmlsZTogcmVzb2x2ZWQucHJvZmlsZSB9IDoge30pLFxuICB9KTtcbiAgYXdhaXQgY3JlYXRlQXBwKHtcbiAgICBjbGllbnQsXG4gICAgcGx1Z2luczogW3NlcnZlcihhcHBLaXRTZXJ2ZXJPcHRpb25zKHJlc29sdmVkKSldLFxuICAgIG9uUGx1Z2luc1JlYWR5KGFwcGtpdCkge1xuICAgICAgYXBwa2l0LnNlcnZlci5leHRlbmQoKGFwcGxpY2F0aW9uKSA9PiB7XG4gICAgICAgIGlmIChyZXNvbHZlZC5iZWFyZXJUb2tlbikge1xuICAgICAgICAgIGFwcGxpY2F0aW9uLnVzZShnYXRld2F5QmVhcmVyTWlkZGxld2FyZShyZXNvbHZlZC5iZWFyZXJUb2tlbikpO1xuICAgICAgICB9XG4gICAgICAgIGFwcGxpY2F0aW9uLmdldChcIi9hcGkvaGVhbHRoelwiLCAoX3JlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgc2VuZEhlYWx0aChyZXNwb25zZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBhcHBsaWNhdGlvbi5nZXQoXCIvdjEvbW9kZWxzXCIsIChyZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHZvaWQgc2VuZE1vZGVscyhnYXRld2F5LCByZXF1ZXN0LCByZXNwb25zZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmb3IgKGNvbnN0IFtwYXRoLCBwcm90b2NvbF0gb2YgW1xuICAgICAgICAgIFtcIi92MS9jaGF0L2NvbXBsZXRpb25zXCIsIFwib3BlbmFpLWNoYXRcIl0sXG4gICAgICAgICAgW1wiL3YxL3Jlc3BvbnNlc1wiLCBcIm9wZW5haS1yZXNwb25zZXNcIl0sXG4gICAgICAgICAgW1wiL3YxL21lc3NhZ2VzXCIsIFwiYW50aHJvcGljLW1lc3NhZ2VzXCJdLFxuICAgICAgICAgIFtcIi92MS9lbWJlZGRpbmdzXCIsIFwib3BlbmFpLWVtYmVkZGluZ3NcIl0sXG4gICAgICAgIF0gYXMgY29uc3QpIHtcbiAgICAgICAgICBhcHBsaWNhdGlvbi5wb3N0KHBhdGgsIChyZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdm9pZCBzZW5kSW5mZXJlbmNlKGdhdGV3YXksIHByb3RvY29sLCByZXF1ZXN0LCByZXNwb25zZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsLWdhdGV3YXkvc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUNMLDBCQUEwQixHQUczQixNQUFNLHlDQUF5QyxDQUFDO0FBS2pELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUseUJBQXlCLENBQUMsVUFBK0IsRUFBRTtJQUN6RSxPQUFPLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsT0FBb0M7SUFDL0QsT0FBTztRQUNMLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQ3pCLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUk7S0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQWE7SUFDbkQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3RCxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUs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QkFBa0IsQ0FBQztvQkFDckMsQ0FBQyxjQUFjLEVBQUUsb0JBQW9CLENBQUM7b0JBQ3RDLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7aUJBQy9CLEVBQUUsQ0FBQztvQkFDWCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTt3QkFDM0MsS0FBSyxhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQzNELENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JlZ3JvdW5kIG1vZGVsLWdhdGV3YXkgc2VydmVyIG93bmVkIGJ5IHRoZSBDTEkgcGFja2FnZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlSGFzaCwgdGltaW5nU2FmZUVxdWFsIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBjcmVhdGVBcHAsIHNlcnZlciB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IE1vZGVsR2F0ZXdheSB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tb2RlbC1nYXRld2F5XCI7XG5pbXBvcnQgeyBzZW5kSGVhbHRoLCBzZW5kSW5mZXJlbmNlLCBzZW5kTW9kZWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1vZGVsLWdhdGV3YXkvcm91dGVzXCI7XG5pbXBvcnQgeyB3b3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRieC10b29scy9kYXRhYnJpY2tzXCI7XG5pbXBvcnQge1xuICByZXNvbHZlTW9kZWxHYXRld2F5T3B0aW9ucyxcbiAgdHlwZSBNb2RlbEdhdGV3YXlPcHRpb25zLFxuICB0eXBlIFJlc29sdmVkTW9kZWxHYXRld2F5T3B0aW9ucyxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLW1vZGVsLWdhdGV3YXkvb3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgZXhwcmVzcyBmcm9tIFwiZXhwcmVzc1wiO1xuXG50eXBlIEFwcEtpdFNlcnZlck9wdGlvbnMgPSBOb25OdWxsYWJsZTxQYXJhbWV0ZXJzPHR5cGVvZiBzZXJ2ZXI+WzBdPjtcblxuLyoqIFJlc29sdmUgQXBwS2l0IHNlcnZlciBzZXR0aW5ncyBmb3IgdGhlIGxvb3BiYWNrIG1vZGVsIGdhdGV3YXkuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxHYXRld2F5U2VydmVyT3B0aW9ucyhvcHRpb25zOiBNb2RlbEdhdGV3YXlPcHRpb25zID0ge30pOiBBcHBLaXRTZXJ2ZXJPcHRpb25zIHtcbiAgcmV0dXJuIGFwcEtpdFNlcnZlck9wdGlvbnMocmVzb2x2ZU1vZGVsR2F0ZXdheU9wdGlvbnMob3B0aW9ucykpO1xufVxuXG5mdW5jdGlvbiBhcHBLaXRTZXJ2ZXJPcHRpb25zKG9wdGlvbnM6IFJlc29sdmVkTW9kZWxHYXRld2F5T3B0aW9ucyk6IEFwcEtpdFNlcnZlck9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIGJvZHlMaW1pdDogb3B0aW9ucy5ib2R5TGltaXQsXG4gICAgaG9zdDogb3B0aW9ucy5saXN0ZW4uaG9zdCxcbiAgICBwb3J0OiBvcHRpb25zLmxpc3Rlbi5wb3J0LFxuICB9O1xufVxuXG4vKiogUmVxdWlyZSBvbmUgYmVhcmVyIHRva2VuIHdpdGhvdXQgcmV0YWluaW5nIG9yIGxvZ2dpbmcgcmVxdWVzdCBjcmVkZW50aWFscy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnYXRld2F5QmVhcmVyTWlkZGxld2FyZSh0b2tlbjogc3RyaW5nKTogZXhwcmVzcy5SZXF1ZXN0SGFuZGxlciB7XG4gIGNvbnN0IGV4cGVjdGVkID0gY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUodG9rZW4pLmRpZ2VzdCgpO1xuICByZXR1cm4gKHJlcXVlc3QsIHJlc3BvbnNlLCBuZXh0KSA9PiB7XG4gICAgY29uc3QgYXV0aG9yaXphdGlvbiA9IHJlcXVlc3QuaGVhZGVyKFwiYXV0aG9yaXphdGlvblwiKTtcbiAgICBjb25zdCBtYXRjaCA9IC9eQmVhcmVyXFxzKyguKykkL2kuZXhlYyhhdXRob3JpemF0aW9uID8/IFwiXCIpO1xuICAgIGNvbnN0IGFjdHVhbCA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIilcbiAgICAgIC51cGRhdGUobWF0Y2g/LlsxXSA/PyBcIlwiKVxuICAgICAgLmRpZ2VzdCgpO1xuICAgIGlmIChtYXRjaCAmJiB0aW1pbmdTYWZlRXF1YWwoYWN0dWFsLCBleHBlY3RlZCkpIHtcbiAgICAgIG5leHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmVzcG9uc2VcbiAgICAgIC5zdGF0dXMoNDAxKVxuICAgICAgLnNldEhlYWRlcihcInd3dy1hdXRoZW50aWNhdGVcIiwgXCJCZWFyZXJcIilcbiAgICAgIC5qc29uKHtcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBtZXNzYWdlOiBcIkludmFsaWQgb3IgbWlzc2luZyBtb2RlbC1nYXRld2F5IGJlYXJlciB0b2tlbi5cIixcbiAgICAgICAgICB0eXBlOiBcImF1dGhlbnRpY2F0aW9uX2Vycm9yXCIsXG4gICAgICAgICAgY29kZTogXCJpbnZhbGlkX2JlYXJlcl90b2tlblwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH07XG59XG5cbi8qKiBTdGFydCB0aGUgZm9yZWdyb3VuZCBtb2RlbCBnYXRld2F5IGFuZCBrZWVwIGl0cyBBcHBLaXQgc2VydmVyIGFjdGl2ZS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydE1vZGVsR2F0ZXdheShvcHRpb25zOiBNb2RlbEdhdGV3YXlPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlTW9kZWxHYXRld2F5T3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgZ2F0ZXdheSA9IG5ldyBNb2RlbEdhdGV3YXkoe1xuICAgIC4uLihyZXNvbHZlZC5tb2RlbCA/IHsgbW9kZWw6IHJlc29sdmVkLm1vZGVsIH0gOiB7fSksXG4gICAgLi4uKHJlc29sdmVkLm1vZGVsQ2xhc3MgPyB7IG1vZGVsQ2xhc3M6IHJlc29sdmVkLm1vZGVsQ2xhc3MgfSA6IHt9KSxcbiAgICBwcmVmZXJTeXN0ZW1Nb2RlbHM6IHJlc29sdmVkLnByZWZlclN5c3RlbU1vZGVscyxcbiAgfSk7XG4gIGNvbnN0IGNsaWVudCA9IGF3YWl0IHdvcmtzcGFjZUNsaWVudC5jcmVhdGVXb3Jrc3BhY2VDbGllbnQoe1xuICAgIC4uLihyZXNvbHZlZC5wcm9maWxlID8geyBwcm9maWxlOiByZXNvbHZlZC5wcm9maWxlIH0gOiB7fSksXG4gIH0pO1xuICBhd2FpdCBjcmVhdGVBcHAoe1xuICAgIGNsaWVudCxcbiAgICBwbHVnaW5zOiBbc2VydmVyKGFwcEtpdFNlcnZlck9wdGlvbnMocmVzb2x2ZWQpKV0sXG4gICAgb25QbHVnaW5zUmVhZHkoYXBwa2l0KSB7XG4gICAgICBhcHBraXQuc2VydmVyLmV4dGVuZCgoYXBwbGljYXRpb24pID0+IHtcbiAgICAgICAgaWYgKHJlc29sdmVkLmJlYXJlclRva2VuKSB7XG4gICAgICAgICAgYXBwbGljYXRpb24udXNlKGdhdGV3YXlCZWFyZXJNaWRkbGV3YXJlKHJlc29sdmVkLmJlYXJlclRva2VuKSk7XG4gICAgICAgIH1cbiAgICAgICAgYXBwbGljYXRpb24uZ2V0KFwiL2FwaS9oZWFsdGh6XCIsIChfcmVxdWVzdCwgcmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBzZW5kSGVhbHRoKHJlc3BvbnNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGFwcGxpY2F0aW9uLmdldChcIi92MS9tb2RlbHNcIiwgKHJlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdm9pZCBzZW5kTW9kZWxzKGdhdGV3YXksIHJlcXVlc3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3QgW3BhdGgsIHByb3RvY29sXSBvZiBbXG4gICAgICAgICAgW1wiL3YxL2NoYXQvY29tcGxldGlvbnNcIiwgXCJvcGVuYWktY2hhdFwiXSxcbiAgICAgICAgICBbXCIvdjEvcmVzcG9uc2VzXCIsIFwib3BlbmFpLXJlc3BvbnNlc1wiXSxcbiAgICAgICAgICBbXCIvdjEvbWVzc2FnZXNcIiwgXCJhbnRocm9waWMtbWVzc2FnZXNcIl0sXG4gICAgICAgICAgW1wiL3YxL2VtYmVkZGluZ3NcIiwgXCJvcGVuYWktZW1iZWRkaW5nc1wiXSxcbiAgICAgICAgXSBhcyBjb25zdCkge1xuICAgICAgICAgIGFwcGxpY2F0aW9uLnBvc3QocGF0aCwgKHJlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB2b2lkIHNlbmRJbmZlcmVuY2UoZ2F0ZXdheSwgcHJvdG9jb2wsIHJlcXVlc3QsIHJlc3BvbnNlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
package/package.json CHANGED
@@ -34,24 +34,24 @@
34
34
  "dependencies": {
35
35
  "@clack/prompts": "^1.7.0",
36
36
  "@databricks/appkit": "0.81.0",
37
- "@dbx-tools/appkit": "^0.9.128",
38
- "@dbx-tools/appkit-graphiti": "^0.9.128",
39
- "@dbx-tools/appkit-model-gateway": "^0.9.128",
40
- "@dbx-tools/auth": "^0.9.128",
41
- "@dbx-tools/auth-gate": "^0.9.128",
42
- "@dbx-tools/cli-args": "^0.9.128",
43
- "@dbx-tools/cli-service": "^0.9.128",
44
- "@dbx-tools/core": "^0.9.128",
45
- "@dbx-tools/databricks": "^0.9.128",
46
- "@dbx-tools/email": "^0.9.128",
47
- "@dbx-tools/lakebase": "^0.9.128",
48
- "@dbx-tools/postgres": "^0.9.128",
49
- "@dbx-tools/shared-auth": "^0.9.128",
50
- "@dbx-tools/shared-core": "^0.9.128",
51
- "@dbx-tools/shared-email": "^0.9.128",
52
- "@dbx-tools/shared-genie-code": "^0.9.128",
53
- "@dbx-tools/shared-model-gateway": "^0.9.128",
54
- "@dbx-tools/tunnel": "^0.9.128",
37
+ "@dbx-tools/appkit": "^0.9.131",
38
+ "@dbx-tools/appkit-memory": "^0.9.131",
39
+ "@dbx-tools/appkit-model-gateway": "^0.9.131",
40
+ "@dbx-tools/auth": "^0.9.131",
41
+ "@dbx-tools/auth-gate": "^0.9.131",
42
+ "@dbx-tools/cli-args": "^0.9.131",
43
+ "@dbx-tools/cli-service": "^0.9.131",
44
+ "@dbx-tools/core": "^0.9.131",
45
+ "@dbx-tools/databricks": "^0.9.131",
46
+ "@dbx-tools/email": "^0.9.131",
47
+ "@dbx-tools/lakebase": "^0.9.131",
48
+ "@dbx-tools/postgres": "^0.9.131",
49
+ "@dbx-tools/shared-auth": "^0.9.131",
50
+ "@dbx-tools/shared-core": "^0.9.131",
51
+ "@dbx-tools/shared-email": "^0.9.131",
52
+ "@dbx-tools/shared-genie-code": "^0.9.131",
53
+ "@dbx-tools/shared-model-gateway": "^0.9.131",
54
+ "@dbx-tools/tunnel": "^0.9.131",
55
55
  "commander": "^15.0.0",
56
56
  "concurrently": "^10.0.3",
57
57
  "get-port": "^7.1.0",
@@ -158,7 +158,7 @@
158
158
  "./package.json": "./package.json"
159
159
  }
160
160
  },
161
- "version": "0.9.128",
161
+ "version": "0.9.131",
162
162
  "types": "./lib/index.d.ts",
163
163
  "dbxToolsConfig": {
164
164
  "tags": [
@@ -71,7 +71,8 @@ async function resolveCodexModel(
71
71
  model ? `Genie Code model not found: ${model}` : "No tool-capable chat model is available",
72
72
  );
73
73
  }
74
- return models.codexModelSlug(target);
74
+ // Genie Code pins the exact system.ai service slug, which wins regardless of gateway preference.
75
+ return models.codexModelSlug(target, true);
75
76
  }
76
77
 
77
78
  /** Inputs accepted by managed Genie Code preparation and execution. */
@@ -10,7 +10,7 @@
10
10
  import { homedir } from "node:os";
11
11
  import { join } from "node:path";
12
12
 
13
- import { runGraphiti, type GraphitiRuntimeOptions } from "@dbx-tools/appkit-graphiti/runtime";
13
+ import { runtime as graphitiRuntime } from "@dbx-tools/appkit-memory/graphiti";
14
14
  import { addArgs, parseArgs, serializeArgs } from "@dbx-tools/cli-args";
15
15
  import { buildServiceCommand, type CliServiceCliDependencies } from "@dbx-tools/cli-service/cli";
16
16
  import { defineService, type CliServiceDefinition } from "@dbx-tools/cli-service/definition";
@@ -26,6 +26,7 @@ import { PACKAGE_VERSION } from "../../index.ts";
26
26
 
27
27
  const DEFAULT_SERVICE_DIRECTORY = join(homedir(), ".dbx-tools", "services", "graphiti");
28
28
  const DEFAULT_SERVICE_HOME = join(homedir(), ".dbx-tools", "graphiti");
29
+ type GraphitiRuntimeOptions = graphitiRuntime.GraphitiRuntimeOptions;
29
30
 
30
31
  /** Injectable runtime and service lifecycle boundaries for CLI callers. */
31
32
  export interface GraphitiCliDependencies {
@@ -64,7 +65,7 @@ export function graphitiServiceDefinition(
64
65
  /** Build foreground execution and shared desktop-service commands. */
65
66
  export function buildProgram(
66
67
  name = "dbx graphiti",
67
- dependencies: GraphitiCliDependencies = { run: runGraphiti },
68
+ dependencies: GraphitiCliDependencies = { run: graphitiRuntime.runGraphiti },
68
69
  ): Command {
69
70
  const program = addArgs(
70
71
  new Command()
@@ -5,3 +5,5 @@
5
5
  export * as cli from "./cli.ts";
6
6
  export * as options from "./options.ts";
7
7
  export type { GraphitiCliDependencies, GraphitiServiceOptions } from "./cli.ts";
8
+ export { GRAPHITI_DEFAULTS, GraphitiCliOptionsSchema, GraphitiOptionsSchema, ResolvedGraphitiOptionsSchema, graphitiOptionOverrides, graphitiOptionsEnvironment, graphitiOptionsFromEnvironment, resolveGraphitiOptions } from "./options.ts";
9
+ export type { GraphitiOptions, ResolvedGraphitiOptions } from "./options.ts";
@@ -7,14 +7,34 @@
7
7
  * @module
8
8
  */
9
9
 
10
- export {
11
- GRAPHITI_DEFAULTS,
12
- GraphitiCliOptionsSchema,
13
- GraphitiOptionsSchema,
14
- ResolvedGraphitiOptionsSchema,
15
- graphitiOptionOverrides,
16
- graphitiOptionsEnvironment,
17
- graphitiOptionsFromEnvironment,
18
- resolveGraphitiOptions,
19
- } from "@dbx-tools/appkit-graphiti/options";
20
- export type { GraphitiOptions, ResolvedGraphitiOptions } from "@dbx-tools/appkit-graphiti/options";
10
+ import { options } from "@dbx-tools/appkit-memory/graphiti";
11
+
12
+ /** Graphiti defaults derived from the shared owning schema. */
13
+ export const GRAPHITI_DEFAULTS = options.GRAPHITI_DEFAULTS;
14
+
15
+ /** Graphiti options represented as Commander flags. */
16
+ export const GraphitiCliOptionsSchema = options.GraphitiCliOptionsSchema;
17
+
18
+ /** Shared Graphiti option schema used by the CLI runtime. */
19
+ export const GraphitiOptionsSchema = options.GraphitiOptionsSchema;
20
+
21
+ /** Schema for Graphiti options after defaults are resolved. */
22
+ export const ResolvedGraphitiOptionsSchema = options.ResolvedGraphitiOptionsSchema;
23
+
24
+ /** Keep only explicitly supplied Graphiti fields and validate their values. */
25
+ export const graphitiOptionOverrides = options.graphitiOptionOverrides;
26
+
27
+ /** Serialize Graphiti options into the Python runtime environment. */
28
+ export const graphitiOptionsEnvironment = options.graphitiOptionsEnvironment;
29
+
30
+ /** Parse Graphiti option overrides from an environment record. */
31
+ export const graphitiOptionsFromEnvironment = options.graphitiOptionsFromEnvironment;
32
+
33
+ /** Apply shared defaults and validate Graphiti runtime invariants. */
34
+ export const resolveGraphitiOptions = options.resolveGraphitiOptions;
35
+
36
+ /** Graphiti option inputs accepted by the CLI. */
37
+ export type GraphitiOptions = options.GraphitiOptions;
38
+
39
+ /** Graphiti options after shared defaults are resolved. */
40
+ export type ResolvedGraphitiOptions = options.ResolvedGraphitiOptions;
@@ -63,6 +63,7 @@ export async function startModelGateway(options: ModelGatewayOptions = {}): Prom
63
63
  const gateway = new ModelGateway({
64
64
  ...(resolved.model ? { model: resolved.model } : {}),
65
65
  ...(resolved.modelClass ? { modelClass: resolved.modelClass } : {}),
66
+ preferSystemModels: resolved.preferSystemModels,
66
67
  });
67
68
  const client = await workspaceClient.createWorkspaceClient({
68
69
  ...(resolved.profile ? { profile: resolved.profile } : {}),