@dbx-tools/shared-genie-code 0.9.61 → 0.9.65

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
@@ -6,9 +6,9 @@ model-gateway sidecar.
6
6
  ## Resolve Runtime Options
7
7
 
8
8
  Use `resolveGenieCodeOptions()` to apply the shared defaults. Use
9
- `genieCodePairingName()` with the first twelve hexadecimal characters of a
10
- SHA-256 over the exact profile and model values to derive a stable home
11
- directory name.
9
+ `genieCodeHomeName()` with the first twelve hexadecimal characters of a
10
+ SHA-256 over the exact profile value to derive a stable profile home. Models
11
+ use invocation overlays within that home.
12
12
 
13
13
  ```ts
14
14
  import { resolveGenieCodeOptions } from "@dbx-tools/shared-genie-code/options";
package/index.ts CHANGED
@@ -3,10 +3,10 @@
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/shared-genie-code";
6
- export const PACKAGE_VERSION = "0.9.61";
6
+ export const PACKAGE_VERSION = "0.9.65";
7
7
  export * as config from "./src/config.ts";
8
8
  export * as options from "./src/options.ts";
9
9
  export { GenieCodeModelProviderSchema, GenieCodeBaseConfigSchema, GenieCodeProviderOverlaySchema, GenieCodeConfigSchema } from "./src/config.ts";
10
10
  export type { GenieCodeBaseConfig, GenieCodeProviderOverlay, GenieCodeConfig } from "./src/config.ts";
11
- export { GENIE_CODE_VERSION, GenieCodeOptionsSchema, GenieCodePairingSchema, GenieCodeRunnerOptionsSchema, GENIE_CODE_DEFAULTS } from "./src/options.ts";
12
- export type { GenieCodeOptions, ResolvedGenieCodeOptions, GenieCodePairing, GenieCodeRunnerOptions } from "./src/options.ts";
11
+ export { GENIE_CODE_VERSION, GenieCodeOptionsSchema, GenieCodeHomeSchema, GenieCodeRunnerOptionsSchema, GENIE_CODE_DEFAULTS } from "./src/options.ts";
12
+ export type { GenieCodeOptions, ResolvedGenieCodeOptions, GenieCodeHome, GenieCodeRunnerOptions } from "./src/options.ts";
package/lib/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-genie-code";
2
- export declare const PACKAGE_VERSION = "0.9.61";
2
+ export declare const PACKAGE_VERSION = "0.9.65";
3
3
  export * as config from "./src/config.ts";
4
4
  export * as options from "./src/options.ts";
5
5
  export { GenieCodeModelProviderSchema, GenieCodeBaseConfigSchema, GenieCodeProviderOverlaySchema, GenieCodeConfigSchema } from "./src/config.ts";
6
6
  export type { GenieCodeBaseConfig, GenieCodeProviderOverlay, GenieCodeConfig } from "./src/config.ts";
7
- export { GENIE_CODE_VERSION, GenieCodeOptionsSchema, GenieCodePairingSchema, GenieCodeRunnerOptionsSchema, GENIE_CODE_DEFAULTS } from "./src/options.ts";
8
- export type { GenieCodeOptions, ResolvedGenieCodeOptions, GenieCodePairing, GenieCodeRunnerOptions } from "./src/options.ts";
7
+ export { GENIE_CODE_VERSION, GenieCodeOptionsSchema, GenieCodeHomeSchema, GenieCodeRunnerOptionsSchema, GENIE_CODE_DEFAULTS } from "./src/options.ts";
8
+ export type { GenieCodeOptions, ResolvedGenieCodeOptions, GenieCodeHome, GenieCodeRunnerOptions } from "./src/options.ts";
package/lib/index.js CHANGED
@@ -2,9 +2,9 @@
2
2
  // Regenerated from the exporting modules in ./src.
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-genie-code";
5
- export const PACKAGE_VERSION = "0.9.61";
5
+ export const PACKAGE_VERSION = "0.9.65";
6
6
  export * as config from "./src/config.js";
7
7
  export * as options from "./src/options.js";
8
8
  export { GenieCodeModelProviderSchema, GenieCodeBaseConfigSchema, GenieCodeProviderOverlaySchema, GenieCodeConfigSchema } from "./src/config.js";
9
- export { GENIE_CODE_VERSION, GenieCodeOptionsSchema, GenieCodePairingSchema, GenieCodeRunnerOptionsSchema, GENIE_CODE_DEFAULTS } from "./src/options.js";
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqSixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsNEJBQTRCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmllLWNvZGVcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS42MVwiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIG9wdGlvbnMgZnJvbSBcIi4vc3JjL29wdGlvbnMudHNcIjtcbmV4cG9ydCB7IEdlbmllQ29kZU1vZGVsUHJvdmlkZXJTY2hlbWEsIEdlbmllQ29kZUJhc2VDb25maWdTY2hlbWEsIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheVNjaGVtYSwgR2VuaWVDb2RlQ29uZmlnU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUNvZGVCYXNlQ29uZmlnLCBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXksIEdlbmllQ29kZUNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IEdFTklFX0NPREVfVkVSU0lPTiwgR2VuaWVDb2RlT3B0aW9uc1NjaGVtYSwgR2VuaWVDb2RlUGFpcmluZ1NjaGVtYSwgR2VuaWVDb2RlUnVubmVyT3B0aW9uc1NjaGVtYSwgR0VOSUVfQ09ERV9ERUZBVUxUUyB9IGZyb20gXCIuL3NyYy9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllQ29kZU9wdGlvbnMsIFJlc29sdmVkR2VuaWVDb2RlT3B0aW9ucywgR2VuaWVDb2RlUGFpcmluZywgR2VuaWVDb2RlUnVubmVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vcHRpb25zLnRzXCI7XG4iXX0=
9
+ export { GENIE_CODE_VERSION, GenieCodeOptionsSchema, GenieCodeHomeSchema, GenieCodeRunnerOptionsSchema, GENIE_CODE_DEFAULTS } from "./src/options.js";
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqSixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsNEJBQTRCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmllLWNvZGVcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS42NVwiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIG9wdGlvbnMgZnJvbSBcIi4vc3JjL29wdGlvbnMudHNcIjtcbmV4cG9ydCB7IEdlbmllQ29kZU1vZGVsUHJvdmlkZXJTY2hlbWEsIEdlbmllQ29kZUJhc2VDb25maWdTY2hlbWEsIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheVNjaGVtYSwgR2VuaWVDb2RlQ29uZmlnU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUNvZGVCYXNlQ29uZmlnLCBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXksIEdlbmllQ29kZUNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IEdFTklFX0NPREVfVkVSU0lPTiwgR2VuaWVDb2RlT3B0aW9uc1NjaGVtYSwgR2VuaWVDb2RlSG9tZVNjaGVtYSwgR2VuaWVDb2RlUnVubmVyT3B0aW9uc1NjaGVtYSwgR0VOSUVfQ09ERV9ERUZBVUxUUyB9IGZyb20gXCIuL3NyYy9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllQ29kZU9wdGlvbnMsIFJlc29sdmVkR2VuaWVDb2RlT3B0aW9ucywgR2VuaWVDb2RlSG9tZSwgR2VuaWVDb2RlUnVubmVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vcHRpb25zLnRzXCI7XG4iXX0=
@@ -13,17 +13,14 @@ export declare const GenieCodeModelProviderSchema: z.ZodObject<{
13
13
  http_headers: z.ZodRecord<z.ZodString, z.ZodString>;
14
14
  }, z.core.$strict>;
15
15
  export declare const GenieCodeBaseConfigSchema: z.ZodObject<{
16
- model_provider: z.ZodString;
17
- model: z.ZodString;
18
16
  databricks_profile: z.ZodString;
19
17
  projects: z.ZodRecord<z.ZodString, z.ZodObject<{
20
18
  trust_level: z.ZodLiteral<"trusted">;
21
19
  }, z.core.$strict>>;
22
- tui: z.ZodObject<{
23
- model_availability_nux: z.ZodRecord<z.ZodString, z.ZodLiteral<1>>;
24
- }, z.core.$strict>;
25
20
  }, z.core.$strict>;
26
21
  export declare const GenieCodeProviderOverlaySchema: z.ZodObject<{
22
+ model_provider: z.ZodString;
23
+ model: z.ZodString;
27
24
  model_providers: z.ZodRecord<z.ZodString, z.ZodObject<{
28
25
  name: z.ZodString;
29
26
  base_url: z.ZodURL;
@@ -32,17 +29,17 @@ export declare const GenieCodeProviderOverlaySchema: z.ZodObject<{
32
29
  supports_websockets: z.ZodBoolean;
33
30
  http_headers: z.ZodRecord<z.ZodString, z.ZodString>;
34
31
  }, z.core.$strict>>;
32
+ tui: z.ZodObject<{
33
+ model_availability_nux: z.ZodRecord<z.ZodString, z.ZodLiteral<1>>;
34
+ }, z.core.$strict>;
35
35
  }, z.core.$strict>;
36
36
  export declare const GenieCodeConfigSchema: z.ZodObject<{
37
- model_provider: z.ZodString;
38
- model: z.ZodString;
39
37
  databricks_profile: z.ZodString;
40
38
  projects: z.ZodRecord<z.ZodString, z.ZodObject<{
41
39
  trust_level: z.ZodLiteral<"trusted">;
42
40
  }, z.core.$strict>>;
43
- tui: z.ZodObject<{
44
- model_availability_nux: z.ZodRecord<z.ZodString, z.ZodLiteral<1>>;
45
- }, z.core.$strict>;
41
+ model_provider: z.ZodString;
42
+ model: z.ZodString;
46
43
  model_providers: z.ZodRecord<z.ZodString, z.ZodObject<{
47
44
  name: z.ZodString;
48
45
  base_url: z.ZodURL;
@@ -51,6 +48,9 @@ export declare const GenieCodeConfigSchema: z.ZodObject<{
51
48
  supports_websockets: z.ZodBoolean;
52
49
  http_headers: z.ZodRecord<z.ZodString, z.ZodString>;
53
50
  }, z.core.$strict>>;
51
+ tui: z.ZodObject<{
52
+ model_availability_nux: z.ZodRecord<z.ZodString, z.ZodLiteral<1>>;
53
+ }, z.core.$strict>;
54
54
  }, z.core.$strict>;
55
55
  export type GenieCodeBaseConfig = z.infer<typeof GenieCodeBaseConfigSchema>;
56
56
  export type GenieCodeProviderOverlay = z.infer<typeof GenieCodeProviderOverlaySchema>;
package/lib/src/config.js CHANGED
@@ -17,32 +17,35 @@ export const GenieCodeModelProviderSchema = z
17
17
  .describe("One custom Genie Code model provider.");
18
18
  export const GenieCodeBaseConfigSchema = z
19
19
  .object({
20
- model_provider: z.string().describe("Selected provider identifier."),
21
- model: z.string().describe("Selected model name."),
22
20
  databricks_profile: z.string().describe("Databricks profile represented by this home."),
23
21
  projects: z
24
22
  .record(z.string(), z.object({ trust_level: z.literal("trusted").describe("Project trust level.") }).strict())
25
23
  .describe("Trusted local projects keyed by absolute path."),
26
- tui: z
27
- .object({
28
- model_availability_nux: z
29
- .record(z.string(), z.literal(1))
30
- .describe("Models whose availability notice has been acknowledged."),
31
- })
32
- .strict()
33
- .describe("Genie terminal UI settings."),
34
24
  })
35
25
  .strict()
36
- .describe("Persistent profile-model Genie Code configuration.");
26
+ .describe("Persistent profile-scoped Genie Code configuration.");
37
27
  export const GenieCodeProviderOverlaySchema = z
38
28
  .object({
29
+ model_provider: z.string().describe("Selected provider identifier."),
30
+ model: z.string().describe("Selected model name."),
39
31
  model_providers: z
40
32
  .record(z.string(), GenieCodeModelProviderSchema)
41
33
  .describe("Invocation-local model providers keyed by identifier."),
34
+ tui: z
35
+ .object({
36
+ model_availability_nux: z
37
+ .record(z.string(), z.literal(1))
38
+ .describe("Models whose availability notice has been acknowledged."),
39
+ })
40
+ .strict()
41
+ .describe("Invocation-specific Genie terminal UI settings."),
42
42
  })
43
43
  .strict()
44
44
  .describe("Invocation-specific Genie Code provider overlay.");
45
45
  export const GenieCodeConfigSchema = GenieCodeBaseConfigSchema.extend({
46
+ model_provider: GenieCodeProviderOverlaySchema.shape.model_provider,
47
+ model: GenieCodeProviderOverlaySchema.shape.model,
46
48
  model_providers: GenieCodeProviderOverlaySchema.shape.model_providers,
49
+ tui: GenieCodeProviderOverlaySchema.shape.tui,
47
50
  }).describe("Merged persistent and invocation-specific Genie Code configuration.");
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDO0tBQzFDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDO0lBQ25ELFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0lBQ2xFLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQztJQUN0RSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLGdEQUFnRCxDQUFDO0lBQzVGLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDL0YsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztDQUNoRixDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQztLQUN2QyxNQUFNLENBQUM7SUFDTixjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQztJQUNwRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRCxrQkFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLDhDQUE4QyxDQUFDO0lBQ3ZGLFFBQVEsRUFBRSxDQUFDO1NBQ1IsTUFBTSxDQUNMLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFDVixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUMxRjtTQUNBLFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQztJQUM3RCxHQUFHLEVBQUUsQ0FBQztTQUNILE1BQU0sQ0FBQztRQUNOLHNCQUFzQixFQUFFLENBQUM7YUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hDLFFBQVEsQ0FBQyx5REFBeUQsQ0FBQztLQUN2RSxDQUFDO1NBQ0QsTUFBTSxFQUFFO1NBQ1IsUUFBUSxDQUFDLDZCQUE2QixDQUFDO0NBQzNDLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsb0RBQW9ELENBQUMsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDO0tBQzVDLE1BQU0sQ0FBQztJQUNOLGVBQWUsRUFBRSxDQUFDO1NBQ2YsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQztTQUNoRCxRQUFRLENBQUMsdURBQXVELENBQUM7Q0FDckUsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQztJQUNwRSxlQUFlLEVBQUUsOEJBQThCLENBQUMsS0FBSyxDQUFDLGVBQWU7Q0FDdEUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5pZSBDb2RlIGBjb25maWcudG9tbGAgd2lyZSBjb250cmFjdC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IEdlbmllQ29kZU1vZGVsUHJvdmlkZXJTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG5hbWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJQcm92aWRlciBkaXNwbGF5IG5hbWUuXCIpLFxuICAgIGJhc2VfdXJsOiB6LnVybCgpLmRlc2NyaWJlKFwiT3BlbkFJLWNvbXBhdGlibGUgcHJvdmlkZXIgYmFzZSBVUkwuXCIpLFxuICAgIHdpcmVfYXBpOiB6LmxpdGVyYWwoXCJyZXNwb25zZXNcIikuZGVzY3JpYmUoXCJHZW5pZSB0cmFuc3BvcnQgcHJvdG9jb2wuXCIpLFxuICAgIHJlcXVpcmVzX29wZW5haV9hdXRoOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIldoZXRoZXIgR2VuaWUgbXVzdCByZXNvbHZlIE9wZW5BSSBjcmVkZW50aWFscy5cIiksXG4gICAgc3VwcG9ydHNfd2Vic29ja2V0czogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRoZSBwcm92aWRlciBhY2NlcHRzIFJlc3BvbnNlcyBXZWJTb2NrZXRzLlwiKSxcbiAgICBodHRwX2hlYWRlcnM6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLmRlc2NyaWJlKFwiU3RhdGljIEhUVFAgaGVhZGVycy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJPbmUgY3VzdG9tIEdlbmllIENvZGUgbW9kZWwgcHJvdmlkZXIuXCIpO1xuXG5leHBvcnQgY29uc3QgR2VuaWVDb2RlQmFzZUNvbmZpZ1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgbW9kZWxfcHJvdmlkZXI6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJTZWxlY3RlZCBwcm92aWRlciBpZGVudGlmaWVyLlwiKSxcbiAgICBtb2RlbDogei5zdHJpbmcoKS5kZXNjcmliZShcIlNlbGVjdGVkIG1vZGVsIG5hbWUuXCIpLFxuICAgIGRhdGFicmlja3NfcHJvZmlsZTogei5zdHJpbmcoKS5kZXNjcmliZShcIkRhdGFicmlja3MgcHJvZmlsZSByZXByZXNlbnRlZCBieSB0aGlzIGhvbWUuXCIpLFxuICAgIHByb2plY3RzOiB6XG4gICAgICAucmVjb3JkKFxuICAgICAgICB6LnN0cmluZygpLFxuICAgICAgICB6Lm9iamVjdCh7IHRydXN0X2xldmVsOiB6LmxpdGVyYWwoXCJ0cnVzdGVkXCIpLmRlc2NyaWJlKFwiUHJvamVjdCB0cnVzdCBsZXZlbC5cIikgfSkuc3RyaWN0KCksXG4gICAgICApXG4gICAgICAuZGVzY3JpYmUoXCJUcnVzdGVkIGxvY2FsIHByb2plY3RzIGtleWVkIGJ5IGFic29sdXRlIHBhdGguXCIpLFxuICAgIHR1aTogelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIG1vZGVsX2F2YWlsYWJpbGl0eV9udXg6IHpcbiAgICAgICAgICAucmVjb3JkKHouc3RyaW5nKCksIHoubGl0ZXJhbCgxKSlcbiAgICAgICAgICAuZGVzY3JpYmUoXCJNb2RlbHMgd2hvc2UgYXZhaWxhYmlsaXR5IG5vdGljZSBoYXMgYmVlbiBhY2tub3dsZWRnZWQuXCIpLFxuICAgICAgfSlcbiAgICAgIC5zdHJpY3QoKVxuICAgICAgLmRlc2NyaWJlKFwiR2VuaWUgdGVybWluYWwgVUkgc2V0dGluZ3MuXCIpLFxuICB9KVxuICAuc3RyaWN0KClcbiAgLmRlc2NyaWJlKFwiUGVyc2lzdGVudCBwcm9maWxlLW1vZGVsIEdlbmllIENvZGUgY29uZmlndXJhdGlvbi5cIik7XG5cbmV4cG9ydCBjb25zdCBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG1vZGVsX3Byb3ZpZGVyczogelxuICAgICAgLnJlY29yZCh6LnN0cmluZygpLCBHZW5pZUNvZGVNb2RlbFByb3ZpZGVyU2NoZW1hKVxuICAgICAgLmRlc2NyaWJlKFwiSW52b2NhdGlvbi1sb2NhbCBtb2RlbCBwcm92aWRlcnMga2V5ZWQgYnkgaWRlbnRpZmllci5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJJbnZvY2F0aW9uLXNwZWNpZmljIEdlbmllIENvZGUgcHJvdmlkZXIgb3ZlcmxheS5cIik7XG5cbmV4cG9ydCBjb25zdCBHZW5pZUNvZGVDb25maWdTY2hlbWEgPSBHZW5pZUNvZGVCYXNlQ29uZmlnU2NoZW1hLmV4dGVuZCh7XG4gIG1vZGVsX3Byb3ZpZGVyczogR2VuaWVDb2RlUHJvdmlkZXJPdmVybGF5U2NoZW1hLnNoYXBlLm1vZGVsX3Byb3ZpZGVycyxcbn0pLmRlc2NyaWJlKFwiTWVyZ2VkIHBlcnNpc3RlbnQgYW5kIGludm9jYXRpb24tc3BlY2lmaWMgR2VuaWUgQ29kZSBjb25maWd1cmF0aW9uLlwiKTtcblxuZXhwb3J0IHR5cGUgR2VuaWVDb2RlQmFzZUNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIEdlbmllQ29kZUJhc2VDb25maWdTY2hlbWE+O1xuXG5leHBvcnQgdHlwZSBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXkgPSB6LmluZmVyPHR5cGVvZiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWE+O1xuXG5leHBvcnQgdHlwZSBHZW5pZUNvZGVDb25maWcgPSB6LmluZmVyPHR5cGVvZiBHZW5pZUNvZGVDb25maWdTY2hlbWE+O1xuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDO0tBQzFDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDO0lBQ25ELFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0lBQ2xFLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQztJQUN0RSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLGdEQUFnRCxDQUFDO0lBQzVGLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDL0YsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztDQUNoRixDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQztLQUN2QyxNQUFNLENBQUM7SUFDTixrQkFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLDhDQUE4QyxDQUFDO0lBQ3ZGLFFBQVEsRUFBRSxDQUFDO1NBQ1IsTUFBTSxDQUNMLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFDVixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUMxRjtTQUNBLFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQztDQUM5RCxDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHFEQUFxRCxDQUFDLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQztLQUM1QyxNQUFNLENBQUM7SUFDTixjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQztJQUNwRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRCxlQUFlLEVBQUUsQ0FBQztTQUNmLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsNEJBQTRCLENBQUM7U0FDaEQsUUFBUSxDQUFDLHVEQUF1RCxDQUFDO0lBQ3BFLEdBQUcsRUFBRSxDQUFDO1NBQ0gsTUFBTSxDQUFDO1FBQ04sc0JBQXNCLEVBQUUsQ0FBQzthQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEMsUUFBUSxDQUFDLHlEQUF5RCxDQUFDO0tBQ3ZFLENBQUM7U0FDRCxNQUFNLEVBQUU7U0FDUixRQUFRLENBQUMsaURBQWlELENBQUM7Q0FDL0QsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQztJQUNwRSxjQUFjLEVBQUUsOEJBQThCLENBQUMsS0FBSyxDQUFDLGNBQWM7SUFDbkUsS0FBSyxFQUFFLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxLQUFLO0lBQ2pELGVBQWUsRUFBRSw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsZUFBZTtJQUNyRSxHQUFHLEVBQUUsOEJBQThCLENBQUMsS0FBSyxDQUFDLEdBQUc7Q0FDOUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5pZSBDb2RlIGBjb25maWcudG9tbGAgd2lyZSBjb250cmFjdC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IEdlbmllQ29kZU1vZGVsUHJvdmlkZXJTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG5hbWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJQcm92aWRlciBkaXNwbGF5IG5hbWUuXCIpLFxuICAgIGJhc2VfdXJsOiB6LnVybCgpLmRlc2NyaWJlKFwiT3BlbkFJLWNvbXBhdGlibGUgcHJvdmlkZXIgYmFzZSBVUkwuXCIpLFxuICAgIHdpcmVfYXBpOiB6LmxpdGVyYWwoXCJyZXNwb25zZXNcIikuZGVzY3JpYmUoXCJHZW5pZSB0cmFuc3BvcnQgcHJvdG9jb2wuXCIpLFxuICAgIHJlcXVpcmVzX29wZW5haV9hdXRoOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIldoZXRoZXIgR2VuaWUgbXVzdCByZXNvbHZlIE9wZW5BSSBjcmVkZW50aWFscy5cIiksXG4gICAgc3VwcG9ydHNfd2Vic29ja2V0czogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRoZSBwcm92aWRlciBhY2NlcHRzIFJlc3BvbnNlcyBXZWJTb2NrZXRzLlwiKSxcbiAgICBodHRwX2hlYWRlcnM6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLmRlc2NyaWJlKFwiU3RhdGljIEhUVFAgaGVhZGVycy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJPbmUgY3VzdG9tIEdlbmllIENvZGUgbW9kZWwgcHJvdmlkZXIuXCIpO1xuXG5leHBvcnQgY29uc3QgR2VuaWVDb2RlQmFzZUNvbmZpZ1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZGF0YWJyaWNrc19wcm9maWxlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiRGF0YWJyaWNrcyBwcm9maWxlIHJlcHJlc2VudGVkIGJ5IHRoaXMgaG9tZS5cIiksXG4gICAgcHJvamVjdHM6IHpcbiAgICAgIC5yZWNvcmQoXG4gICAgICAgIHouc3RyaW5nKCksXG4gICAgICAgIHoub2JqZWN0KHsgdHJ1c3RfbGV2ZWw6IHoubGl0ZXJhbChcInRydXN0ZWRcIikuZGVzY3JpYmUoXCJQcm9qZWN0IHRydXN0IGxldmVsLlwiKSB9KS5zdHJpY3QoKSxcbiAgICAgIClcbiAgICAgIC5kZXNjcmliZShcIlRydXN0ZWQgbG9jYWwgcHJvamVjdHMga2V5ZWQgYnkgYWJzb2x1dGUgcGF0aC5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJQZXJzaXN0ZW50IHByb2ZpbGUtc2NvcGVkIEdlbmllIENvZGUgY29uZmlndXJhdGlvbi5cIik7XG5cbmV4cG9ydCBjb25zdCBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG1vZGVsX3Byb3ZpZGVyOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiU2VsZWN0ZWQgcHJvdmlkZXIgaWRlbnRpZmllci5cIiksXG4gICAgbW9kZWw6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJTZWxlY3RlZCBtb2RlbCBuYW1lLlwiKSxcbiAgICBtb2RlbF9wcm92aWRlcnM6IHpcbiAgICAgIC5yZWNvcmQoei5zdHJpbmcoKSwgR2VuaWVDb2RlTW9kZWxQcm92aWRlclNjaGVtYSlcbiAgICAgIC5kZXNjcmliZShcIkludm9jYXRpb24tbG9jYWwgbW9kZWwgcHJvdmlkZXJzIGtleWVkIGJ5IGlkZW50aWZpZXIuXCIpLFxuICAgIHR1aTogelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIG1vZGVsX2F2YWlsYWJpbGl0eV9udXg6IHpcbiAgICAgICAgICAucmVjb3JkKHouc3RyaW5nKCksIHoubGl0ZXJhbCgxKSlcbiAgICAgICAgICAuZGVzY3JpYmUoXCJNb2RlbHMgd2hvc2UgYXZhaWxhYmlsaXR5IG5vdGljZSBoYXMgYmVlbiBhY2tub3dsZWRnZWQuXCIpLFxuICAgICAgfSlcbiAgICAgIC5zdHJpY3QoKVxuICAgICAgLmRlc2NyaWJlKFwiSW52b2NhdGlvbi1zcGVjaWZpYyBHZW5pZSB0ZXJtaW5hbCBVSSBzZXR0aW5ncy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJJbnZvY2F0aW9uLXNwZWNpZmljIEdlbmllIENvZGUgcHJvdmlkZXIgb3ZlcmxheS5cIik7XG5cbmV4cG9ydCBjb25zdCBHZW5pZUNvZGVDb25maWdTY2hlbWEgPSBHZW5pZUNvZGVCYXNlQ29uZmlnU2NoZW1hLmV4dGVuZCh7XG4gIG1vZGVsX3Byb3ZpZGVyOiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEuc2hhcGUubW9kZWxfcHJvdmlkZXIsXG4gIG1vZGVsOiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEuc2hhcGUubW9kZWwsXG4gIG1vZGVsX3Byb3ZpZGVyczogR2VuaWVDb2RlUHJvdmlkZXJPdmVybGF5U2NoZW1hLnNoYXBlLm1vZGVsX3Byb3ZpZGVycyxcbiAgdHVpOiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEuc2hhcGUudHVpLFxufSkuZGVzY3JpYmUoXCJNZXJnZWQgcGVyc2lzdGVudCBhbmQgaW52b2NhdGlvbi1zcGVjaWZpYyBHZW5pZSBDb2RlIGNvbmZpZ3VyYXRpb24uXCIpO1xuXG5leHBvcnQgdHlwZSBHZW5pZUNvZGVCYXNlQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgR2VuaWVDb2RlQmFzZUNvbmZpZ1NjaGVtYT47XG5cbmV4cG9ydCB0eXBlIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheSA9IHouaW5mZXI8dHlwZW9mIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheVNjaGVtYT47XG5cbmV4cG9ydCB0eXBlIEdlbmllQ29kZUNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIEdlbmllQ29kZUNvbmZpZ1NjaGVtYT47XG4iXX0=
@@ -8,13 +8,17 @@ import { z } from "zod";
8
8
  /** Pinned Genie Code release installed by the managed CLI. */
9
9
  export declare const GENIE_CODE_VERSION = "0.1.0-beta.2";
10
10
  export declare const GenieCodeOptionsSchema: z.ZodObject<{
11
+ model: z.ZodOptional<z.ZodString>;
12
+ modelClass: z.ZodOptional<z.ZodEnum<{
13
+ "chat-thinking": "chat-thinking";
14
+ "chat-balanced": "chat-balanced";
15
+ "chat-fast": "chat-fast";
16
+ }>>;
11
17
  profile: z.ZodOptional<z.ZodString>;
12
- model: z.ZodDefault<z.ZodString>;
13
18
  gatewayListen: z.ZodDefault<z.ZodType<options.TcpListenAddress, unknown, z.core.$ZodTypeInternals<options.TcpListenAddress, unknown>>>;
14
19
  }, z.core.$strict>;
15
- export declare const GenieCodePairingSchema: z.ZodObject<{
20
+ export declare const GenieCodeHomeSchema: z.ZodObject<{
16
21
  profile: z.ZodString;
17
- model: z.ZodString;
18
22
  digest: z.ZodString;
19
23
  }, z.core.$strict>;
20
24
  export declare const GenieCodeRunnerOptionsSchema: z.ZodObject<{
@@ -27,15 +31,16 @@ export declare const GenieCodeRunnerOptionsSchema: z.ZodObject<{
27
31
  }, z.core.$strict>;
28
32
  export type GenieCodeOptions = z.input<typeof GenieCodeOptionsSchema>;
29
33
  export type ResolvedGenieCodeOptions = z.output<typeof GenieCodeOptionsSchema>;
30
- export type GenieCodePairing = z.input<typeof GenieCodePairingSchema>;
34
+ export type GenieCodeHome = z.input<typeof GenieCodeHomeSchema>;
31
35
  export type GenieCodeRunnerOptions = z.input<typeof GenieCodeRunnerOptionsSchema>;
32
36
  /** Defaults derived from the owning managed Genie Code schema. */
33
37
  export declare const GENIE_CODE_DEFAULTS: Readonly<{
34
- model: string;
35
38
  gatewayListen: options.TcpListenAddress;
39
+ model?: string | undefined;
40
+ modelClass?: "chat-thinking" | "chat-balanced" | "chat-fast" | undefined;
36
41
  profile?: string | undefined;
37
42
  }>;
38
43
  /** Validate and default managed Genie Code options. */
39
44
  export declare function resolveGenieCodeOptions(value?: GenieCodeOptions): ResolvedGenieCodeOptions;
40
- /** Build the readable directory name for one exact profile-model pairing. */
41
- export declare function genieCodePairingName(value: GenieCodePairing): string;
45
+ /** Build the readable directory name for one exact Databricks profile. */
46
+ export declare function genieCodeHomeName(value: GenieCodeHome): string;
@@ -4,39 +4,33 @@
4
4
  * @module
5
5
  */
6
6
  import { options, stringUtils } from "@dbx-tools/shared-core";
7
+ import { ChatModelSelectionOptionsSchema } from "@dbx-tools/shared-model-gateway/options";
7
8
  import { z } from "zod";
8
9
  /** Pinned Genie Code release installed by the managed CLI. */
9
10
  export const GENIE_CODE_VERSION = "0.1.0-beta.2";
10
- const pairingText = (description) => z.string().trim().min(1).describe(description);
11
- export const GenieCodeOptionsSchema = z
12
- .object({
11
+ export const GenieCodeOptionsSchema = ChatModelSelectionOptionsSchema.safeExtend({
13
12
  profile: options.DatabricksOptionsSchema.shape.profile.describe("Databricks profile used by the model-gateway sidecar."),
14
- model: pairingText("Model name resolved by the model gateway.").default("gpt"),
15
13
  gatewayListen: options
16
14
  .listenAddressSchema({ host: "127.0.0.1", port: 0, loopback: true })
17
15
  .describe("Loopback listener allocated for the model-gateway sidecar."),
18
16
  })
19
17
  .strict()
20
18
  .describe("Managed Genie Code runtime options.");
21
- export const GenieCodePairingSchema = GenieCodeOptionsSchema.pick({
22
- profile: true,
23
- model: true,
24
- })
25
- .extend({
26
- profile: GenieCodeOptionsSchema.shape.profile.unwrap(),
27
- model: GenieCodeOptionsSchema.shape.model.removeDefault(),
19
+ export const GenieCodeHomeSchema = z
20
+ .object({
21
+ profile: options.DatabricksOptionsSchema.shape.profile.unwrap(),
28
22
  digest: z
29
23
  .string()
30
24
  .regex(/^[0-9a-f]{12}$/)
31
- .describe("First twelve lowercase hexadecimal characters of the exact pairing SHA-256."),
25
+ .describe("First twelve lowercase hexadecimal characters of the exact profile SHA-256."),
32
26
  })
33
27
  .strict()
34
- .describe("Inputs used to derive one profile-model Genie home.");
28
+ .describe("Inputs used to derive one profile-scoped Genie home.");
35
29
  export const GenieCodeRunnerOptionsSchema = z
36
30
  .object({
37
31
  executable: z.string().trim().min(1).describe("Installed Genie Code executable."),
38
32
  arguments: z.array(z.string()).readonly().describe("Arguments forwarded to Genie Code."),
39
- home: z.string().trim().min(1).describe("Profile-model-specific GENIE_HOME."),
33
+ home: z.string().trim().min(1).describe("Profile-specific GENIE_HOME."),
40
34
  gatewayHealthUrl: z.url().describe("Guarded model-gateway health URL."),
41
35
  bearerToken: z.string().min(1).describe("Ephemeral model-gateway bearer token."),
42
36
  startupTimeoutMs: z
@@ -54,11 +48,10 @@ export const GENIE_CODE_DEFAULTS = Object.freeze(GenieCodeOptionsSchema.parse({}
54
48
  export function resolveGenieCodeOptions(value = {}) {
55
49
  return GenieCodeOptionsSchema.parse(value);
56
50
  }
57
- /** Build the readable directory name for one exact profile-model pairing. */
58
- export function genieCodePairingName(value) {
59
- const pairing = GenieCodePairingSchema.parse(value);
60
- const profile = stringUtils.toSlugWithOptions({ maxLength: 40, truncateStrategy: "trim" }, pairing.profile);
61
- const model = stringUtils.toSlugWithOptions({ maxLength: 40, truncateStrategy: "trim" }, pairing.model);
62
- return `${profile}-${model}-${pairing.digest}`;
51
+ /** Build the readable directory name for one exact Databricks profile. */
52
+ export function genieCodeHomeName(value) {
53
+ const home = GenieCodeHomeSchema.parse(value);
54
+ const profile = stringUtils.toSlugWithOptions({ maxLength: 40, truncateStrategy: "trim" }, home.profile);
55
+ return `${profile}-${home.digest}`;
63
56
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsOERBQThEO0FBQzlELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRCxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRTVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUM7S0FDcEMsTUFBTSxDQUFDO0lBQ04sT0FBTyxFQUFFLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDN0QsdURBQXVELENBQ3hEO0lBQ0QsS0FBSyxFQUFFLFdBQVcsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDOUUsYUFBYSxFQUFFLE9BQU87U0FDbkIsbUJBQW1CLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ25FLFFBQVEsQ0FBQyw0REFBNEQsQ0FBQztDQUMxRSxDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDO0lBQ2hFLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0tBQ0MsTUFBTSxDQUFDO0lBQ04sT0FBTyxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO0lBQ3RELEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtJQUN6RCxNQUFNLEVBQUUsQ0FBQztTQUNOLE1BQU0sRUFBRTtTQUNSLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztTQUN2QixRQUFRLENBQUMsNkVBQTZFLENBQUM7Q0FDM0YsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUM7S0FDMUMsTUFBTSxDQUFDO0lBQ04sVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGtDQUFrQyxDQUFDO0lBQ2pGLFNBQVMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQztJQUN4RixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsb0NBQW9DLENBQUM7SUFDN0UsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQztJQUN2RSxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsdUNBQXVDLENBQUM7SUFDaEYsZ0JBQWdCLEVBQUUsQ0FBQztTQUNoQixNQUFNLEVBQUU7U0FDUixHQUFHLEVBQUU7U0FDTCxRQUFRLEVBQUU7U0FDVixPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ2YsUUFBUSxDQUFDLCtDQUErQyxDQUFDO0NBQzdELENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsK0RBQStELENBQUMsQ0FBQztBQVU3RSxrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUVuRix1REFBdUQ7QUFDdkQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFFBQTBCLEVBQUU7SUFDbEUsT0FBTyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELDZFQUE2RTtBQUM3RSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBdUI7SUFDMUQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FDM0MsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxFQUMzQyxPQUFPLENBQUMsT0FBTyxDQUNoQixDQUFDO0lBQ0YsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUN6QyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEVBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztJQUNGLE9BQU8sR0FBRyxPQUFPLElBQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyLXNhZmUgY29uZmlndXJhdGlvbiBmb3IgdGhlIG1hbmFnZWQgR2VuaWUgQ29kZSBDTEkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IG9wdGlvbnMsIHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbi8qKiBQaW5uZWQgR2VuaWUgQ29kZSByZWxlYXNlIGluc3RhbGxlZCBieSB0aGUgbWFuYWdlZCBDTEkuICovXG5leHBvcnQgY29uc3QgR0VOSUVfQ09ERV9WRVJTSU9OID0gXCIwLjEuMC1iZXRhLjJcIjtcblxuY29uc3QgcGFpcmluZ1RleHQgPSAoZGVzY3JpcHRpb246IHN0cmluZykgPT4gei5zdHJpbmcoKS50cmltKCkubWluKDEpLmRlc2NyaWJlKGRlc2NyaXB0aW9uKTtcblxuZXhwb3J0IGNvbnN0IEdlbmllQ29kZU9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHByb2ZpbGU6IG9wdGlvbnMuRGF0YWJyaWNrc09wdGlvbnNTY2hlbWEuc2hhcGUucHJvZmlsZS5kZXNjcmliZShcbiAgICAgIFwiRGF0YWJyaWNrcyBwcm9maWxlIHVzZWQgYnkgdGhlIG1vZGVsLWdhdGV3YXkgc2lkZWNhci5cIixcbiAgICApLFxuICAgIG1vZGVsOiBwYWlyaW5nVGV4dChcIk1vZGVsIG5hbWUgcmVzb2x2ZWQgYnkgdGhlIG1vZGVsIGdhdGV3YXkuXCIpLmRlZmF1bHQoXCJncHRcIiksXG4gICAgZ2F0ZXdheUxpc3Rlbjogb3B0aW9uc1xuICAgICAgLmxpc3RlbkFkZHJlc3NTY2hlbWEoeyBob3N0OiBcIjEyNy4wLjAuMVwiLCBwb3J0OiAwLCBsb29wYmFjazogdHJ1ZSB9KVxuICAgICAgLmRlc2NyaWJlKFwiTG9vcGJhY2sgbGlzdGVuZXIgYWxsb2NhdGVkIGZvciB0aGUgbW9kZWwtZ2F0ZXdheSBzaWRlY2FyLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIk1hbmFnZWQgR2VuaWUgQ29kZSBydW50aW1lIG9wdGlvbnMuXCIpO1xuXG5leHBvcnQgY29uc3QgR2VuaWVDb2RlUGFpcmluZ1NjaGVtYSA9IEdlbmllQ29kZU9wdGlvbnNTY2hlbWEucGljayh7XG4gIHByb2ZpbGU6IHRydWUsXG4gIG1vZGVsOiB0cnVlLFxufSlcbiAgLmV4dGVuZCh7XG4gICAgcHJvZmlsZTogR2VuaWVDb2RlT3B0aW9uc1NjaGVtYS5zaGFwZS5wcm9maWxlLnVud3JhcCgpLFxuICAgIG1vZGVsOiBHZW5pZUNvZGVPcHRpb25zU2NoZW1hLnNoYXBlLm1vZGVsLnJlbW92ZURlZmF1bHQoKSxcbiAgICBkaWdlc3Q6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLnJlZ2V4KC9eWzAtOWEtZl17MTJ9JC8pXG4gICAgICAuZGVzY3JpYmUoXCJGaXJzdCB0d2VsdmUgbG93ZXJjYXNlIGhleGFkZWNpbWFsIGNoYXJhY3RlcnMgb2YgdGhlIGV4YWN0IHBhaXJpbmcgU0hBLTI1Ni5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJJbnB1dHMgdXNlZCB0byBkZXJpdmUgb25lIHByb2ZpbGUtbW9kZWwgR2VuaWUgaG9tZS5cIik7XG5cbmV4cG9ydCBjb25zdCBHZW5pZUNvZGVSdW5uZXJPcHRpb25zU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBleGVjdXRhYmxlOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkuZGVzY3JpYmUoXCJJbnN0YWxsZWQgR2VuaWUgQ29kZSBleGVjdXRhYmxlLlwiKSxcbiAgICBhcmd1bWVudHM6IHouYXJyYXkoei5zdHJpbmcoKSkucmVhZG9ubHkoKS5kZXNjcmliZShcIkFyZ3VtZW50cyBmb3J3YXJkZWQgdG8gR2VuaWUgQ29kZS5cIiksXG4gICAgaG9tZTogei5zdHJpbmcoKS50cmltKCkubWluKDEpLmRlc2NyaWJlKFwiUHJvZmlsZS1tb2RlbC1zcGVjaWZpYyBHRU5JRV9IT01FLlwiKSxcbiAgICBnYXRld2F5SGVhbHRoVXJsOiB6LnVybCgpLmRlc2NyaWJlKFwiR3VhcmRlZCBtb2RlbC1nYXRld2F5IGhlYWx0aCBVUkwuXCIpLFxuICAgIGJlYXJlclRva2VuOiB6LnN0cmluZygpLm1pbigxKS5kZXNjcmliZShcIkVwaGVtZXJhbCBtb2RlbC1nYXRld2F5IGJlYXJlciB0b2tlbi5cIiksXG4gICAgc3RhcnR1cFRpbWVvdXRNczogelxuICAgICAgLm51bWJlcigpXG4gICAgICAuaW50KClcbiAgICAgIC5wb3NpdGl2ZSgpXG4gICAgICAuZGVmYXVsdCg2MF8wMDApXG4gICAgICAuZGVzY3JpYmUoXCJNYXhpbXVtIG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgZ2F0ZXdheS5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJTZXJpYWxpemVkIG9wdGlvbnMgcGFzc2VkIHRvIHRoZSBpbnRlcm5hbCBHZW5pZSBjaGlsZCBydW5uZXIuXCIpO1xuXG5leHBvcnQgdHlwZSBHZW5pZUNvZGVPcHRpb25zID0gei5pbnB1dDx0eXBlb2YgR2VuaWVDb2RlT3B0aW9uc1NjaGVtYT47XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkR2VuaWVDb2RlT3B0aW9ucyA9IHoub3V0cHV0PHR5cGVvZiBHZW5pZUNvZGVPcHRpb25zU2NoZW1hPjtcblxuZXhwb3J0IHR5cGUgR2VuaWVDb2RlUGFpcmluZyA9IHouaW5wdXQ8dHlwZW9mIEdlbmllQ29kZVBhaXJpbmdTY2hlbWE+O1xuXG5leHBvcnQgdHlwZSBHZW5pZUNvZGVSdW5uZXJPcHRpb25zID0gei5pbnB1dDx0eXBlb2YgR2VuaWVDb2RlUnVubmVyT3B0aW9uc1NjaGVtYT47XG5cbi8qKiBEZWZhdWx0cyBkZXJpdmVkIGZyb20gdGhlIG93bmluZyBtYW5hZ2VkIEdlbmllIENvZGUgc2NoZW1hLiAqL1xuZXhwb3J0IGNvbnN0IEdFTklFX0NPREVfREVGQVVMVFMgPSBPYmplY3QuZnJlZXplKEdlbmllQ29kZU9wdGlvbnNTY2hlbWEucGFyc2Uoe30pKTtcblxuLyoqIFZhbGlkYXRlIGFuZCBkZWZhdWx0IG1hbmFnZWQgR2VuaWUgQ29kZSBvcHRpb25zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVHZW5pZUNvZGVPcHRpb25zKHZhbHVlOiBHZW5pZUNvZGVPcHRpb25zID0ge30pOiBSZXNvbHZlZEdlbmllQ29kZU9wdGlvbnMge1xuICByZXR1cm4gR2VuaWVDb2RlT3B0aW9uc1NjaGVtYS5wYXJzZSh2YWx1ZSk7XG59XG5cbi8qKiBCdWlsZCB0aGUgcmVhZGFibGUgZGlyZWN0b3J5IG5hbWUgZm9yIG9uZSBleGFjdCBwcm9maWxlLW1vZGVsIHBhaXJpbmcuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuaWVDb2RlUGFpcmluZ05hbWUodmFsdWU6IEdlbmllQ29kZVBhaXJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBwYWlyaW5nID0gR2VuaWVDb2RlUGFpcmluZ1NjaGVtYS5wYXJzZSh2YWx1ZSk7XG4gIGNvbnN0IHByb2ZpbGUgPSBzdHJpbmdVdGlscy50b1NsdWdXaXRoT3B0aW9ucyhcbiAgICB7IG1heExlbmd0aDogNDAsIHRydW5jYXRlU3RyYXRlZ3k6IFwidHJpbVwiIH0sXG4gICAgcGFpcmluZy5wcm9maWxlLFxuICApO1xuICBjb25zdCBtb2RlbCA9IHN0cmluZ1V0aWxzLnRvU2x1Z1dpdGhPcHRpb25zKFxuICAgIHsgbWF4TGVuZ3RoOiA0MCwgdHJ1bmNhdGVTdHJhdGVneTogXCJ0cmltXCIgfSxcbiAgICBwYWlyaW5nLm1vZGVsLFxuICApO1xuICByZXR1cm4gYCR7cHJvZmlsZX0tJHttb2RlbH0tJHtwYWlyaW5nLmRpZ2VzdH1gO1xufVxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsOERBQThEO0FBQzlELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRywrQkFBK0IsQ0FBQyxVQUFVLENBQUM7SUFDL0UsT0FBTyxFQUFFLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDN0QsdURBQXVELENBQ3hEO0lBQ0QsYUFBYSxFQUFFLE9BQU87U0FDbkIsbUJBQW1CLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ25FLFFBQVEsQ0FBQyw0REFBNEQsQ0FBQztDQUMxRSxDQUFDO0tBQ0MsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQztLQUNqQyxNQUFNLENBQUM7SUFDTixPQUFPLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO0lBQy9ELE1BQU0sRUFBRSxDQUFDO1NBQ04sTUFBTSxFQUFFO1NBQ1IsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1NBQ3ZCLFFBQVEsQ0FBQyw2RUFBNkUsQ0FBQztDQUMzRixDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHNEQUFzRCxDQUFDLENBQUM7QUFFcEUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQztLQUMxQyxNQUFNLENBQUM7SUFDTixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsa0NBQWtDLENBQUM7SUFDakYsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLG9DQUFvQyxDQUFDO0lBQ3hGLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQztJQUN2RSxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDO0lBQ3ZFLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyx1Q0FBdUMsQ0FBQztJQUNoRixnQkFBZ0IsRUFBRSxDQUFDO1NBQ2hCLE1BQU0sRUFBRTtTQUNSLEdBQUcsRUFBRTtTQUNMLFFBQVEsRUFBRTtTQUNWLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDZixRQUFRLENBQUMsK0NBQStDLENBQUM7Q0FDN0QsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0FBVTdFLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRW5GLHVEQUF1RDtBQUN2RCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBMEIsRUFBRTtJQUNsRSxPQUFPLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsMEVBQTBFO0FBQzFFLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFvQjtJQUNwRCxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUMzQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEVBQzNDLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztJQUNGLE9BQU8sR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJyb3dzZXItc2FmZSBjb25maWd1cmF0aW9uIGZvciB0aGUgbWFuYWdlZCBHZW5pZSBDb2RlIENMSS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb3B0aW9ucywgc3RyaW5nVXRpbHMgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgQ2hhdE1vZGVsU2VsZWN0aW9uT3B0aW9uc1NjaGVtYSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbC1nYXRld2F5L29wdGlvbnNcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbi8qKiBQaW5uZWQgR2VuaWUgQ29kZSByZWxlYXNlIGluc3RhbGxlZCBieSB0aGUgbWFuYWdlZCBDTEkuICovXG5leHBvcnQgY29uc3QgR0VOSUVfQ09ERV9WRVJTSU9OID0gXCIwLjEuMC1iZXRhLjJcIjtcblxuZXhwb3J0IGNvbnN0IEdlbmllQ29kZU9wdGlvbnNTY2hlbWEgPSBDaGF0TW9kZWxTZWxlY3Rpb25PcHRpb25zU2NoZW1hLnNhZmVFeHRlbmQoe1xuICBwcm9maWxlOiBvcHRpb25zLkRhdGFicmlja3NPcHRpb25zU2NoZW1hLnNoYXBlLnByb2ZpbGUuZGVzY3JpYmUoXG4gICAgXCJEYXRhYnJpY2tzIHByb2ZpbGUgdXNlZCBieSB0aGUgbW9kZWwtZ2F0ZXdheSBzaWRlY2FyLlwiLFxuICApLFxuICBnYXRld2F5TGlzdGVuOiBvcHRpb25zXG4gICAgLmxpc3RlbkFkZHJlc3NTY2hlbWEoeyBob3N0OiBcIjEyNy4wLjAuMVwiLCBwb3J0OiAwLCBsb29wYmFjazogdHJ1ZSB9KVxuICAgIC5kZXNjcmliZShcIkxvb3BiYWNrIGxpc3RlbmVyIGFsbG9jYXRlZCBmb3IgdGhlIG1vZGVsLWdhdGV3YXkgc2lkZWNhci5cIiksXG59KVxuICAuc3RyaWN0KClcbiAgLmRlc2NyaWJlKFwiTWFuYWdlZCBHZW5pZSBDb2RlIHJ1bnRpbWUgb3B0aW9ucy5cIik7XG5cbmV4cG9ydCBjb25zdCBHZW5pZUNvZGVIb21lU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBwcm9maWxlOiBvcHRpb25zLkRhdGFicmlja3NPcHRpb25zU2NoZW1hLnNoYXBlLnByb2ZpbGUudW53cmFwKCksXG4gICAgZGlnZXN0OiB6XG4gICAgICAuc3RyaW5nKClcbiAgICAgIC5yZWdleCgvXlswLTlhLWZdezEyfSQvKVxuICAgICAgLmRlc2NyaWJlKFwiRmlyc3QgdHdlbHZlIGxvd2VyY2FzZSBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJzIG9mIHRoZSBleGFjdCBwcm9maWxlIFNIQS0yNTYuXCIpLFxuICB9KVxuICAuc3RyaWN0KClcbiAgLmRlc2NyaWJlKFwiSW5wdXRzIHVzZWQgdG8gZGVyaXZlIG9uZSBwcm9maWxlLXNjb3BlZCBHZW5pZSBob21lLlwiKTtcblxuZXhwb3J0IGNvbnN0IEdlbmllQ29kZVJ1bm5lck9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGV4ZWN1dGFibGU6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5kZXNjcmliZShcIkluc3RhbGxlZCBHZW5pZSBDb2RlIGV4ZWN1dGFibGUuXCIpLFxuICAgIGFyZ3VtZW50czogei5hcnJheSh6LnN0cmluZygpKS5yZWFkb25seSgpLmRlc2NyaWJlKFwiQXJndW1lbnRzIGZvcndhcmRlZCB0byBHZW5pZSBDb2RlLlwiKSxcbiAgICBob21lOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkuZGVzY3JpYmUoXCJQcm9maWxlLXNwZWNpZmljIEdFTklFX0hPTUUuXCIpLFxuICAgIGdhdGV3YXlIZWFsdGhVcmw6IHoudXJsKCkuZGVzY3JpYmUoXCJHdWFyZGVkIG1vZGVsLWdhdGV3YXkgaGVhbHRoIFVSTC5cIiksXG4gICAgYmVhcmVyVG9rZW46IHouc3RyaW5nKCkubWluKDEpLmRlc2NyaWJlKFwiRXBoZW1lcmFsIG1vZGVsLWdhdGV3YXkgYmVhcmVyIHRva2VuLlwiKSxcbiAgICBzdGFydHVwVGltZW91dE1zOiB6XG4gICAgICAubnVtYmVyKClcbiAgICAgIC5pbnQoKVxuICAgICAgLnBvc2l0aXZlKClcbiAgICAgIC5kZWZhdWx0KDYwXzAwMClcbiAgICAgIC5kZXNjcmliZShcIk1heGltdW0gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBnYXRld2F5LlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIlNlcmlhbGl6ZWQgb3B0aW9ucyBwYXNzZWQgdG8gdGhlIGludGVybmFsIEdlbmllIGNoaWxkIHJ1bm5lci5cIik7XG5cbmV4cG9ydCB0eXBlIEdlbmllQ29kZU9wdGlvbnMgPSB6LmlucHV0PHR5cGVvZiBHZW5pZUNvZGVPcHRpb25zU2NoZW1hPjtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRHZW5pZUNvZGVPcHRpb25zID0gei5vdXRwdXQ8dHlwZW9mIEdlbmllQ29kZU9wdGlvbnNTY2hlbWE+O1xuXG5leHBvcnQgdHlwZSBHZW5pZUNvZGVIb21lID0gei5pbnB1dDx0eXBlb2YgR2VuaWVDb2RlSG9tZVNjaGVtYT47XG5cbmV4cG9ydCB0eXBlIEdlbmllQ29kZVJ1bm5lck9wdGlvbnMgPSB6LmlucHV0PHR5cGVvZiBHZW5pZUNvZGVSdW5uZXJPcHRpb25zU2NoZW1hPjtcblxuLyoqIERlZmF1bHRzIGRlcml2ZWQgZnJvbSB0aGUgb3duaW5nIG1hbmFnZWQgR2VuaWUgQ29kZSBzY2hlbWEuICovXG5leHBvcnQgY29uc3QgR0VOSUVfQ09ERV9ERUZBVUxUUyA9IE9iamVjdC5mcmVlemUoR2VuaWVDb2RlT3B0aW9uc1NjaGVtYS5wYXJzZSh7fSkpO1xuXG4vKiogVmFsaWRhdGUgYW5kIGRlZmF1bHQgbWFuYWdlZCBHZW5pZSBDb2RlIG9wdGlvbnMuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUdlbmllQ29kZU9wdGlvbnModmFsdWU6IEdlbmllQ29kZU9wdGlvbnMgPSB7fSk6IFJlc29sdmVkR2VuaWVDb2RlT3B0aW9ucyB7XG4gIHJldHVybiBHZW5pZUNvZGVPcHRpb25zU2NoZW1hLnBhcnNlKHZhbHVlKTtcbn1cblxuLyoqIEJ1aWxkIHRoZSByZWFkYWJsZSBkaXJlY3RvcnkgbmFtZSBmb3Igb25lIGV4YWN0IERhdGFicmlja3MgcHJvZmlsZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5pZUNvZGVIb21lTmFtZSh2YWx1ZTogR2VuaWVDb2RlSG9tZSk6IHN0cmluZyB7XG4gIGNvbnN0IGhvbWUgPSBHZW5pZUNvZGVIb21lU2NoZW1hLnBhcnNlKHZhbHVlKTtcbiAgY29uc3QgcHJvZmlsZSA9IHN0cmluZ1V0aWxzLnRvU2x1Z1dpdGhPcHRpb25zKFxuICAgIHsgbWF4TGVuZ3RoOiA0MCwgdHJ1bmNhdGVTdHJhdGVneTogXCJ0cmltXCIgfSxcbiAgICBob21lLnByb2ZpbGUsXG4gICk7XG4gIHJldHVybiBgJHtwcm9maWxlfS0ke2hvbWUuZGlnZXN0fWA7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbx-tools/shared-genie-code",
3
- "description": "Browser-safe managed Genie Code options and profile-model pairing contracts",
3
+ "description": "Browser-safe managed Genie Code options and profile-scoped home contracts",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/reggie-db/dbx-tools.git",
@@ -22,7 +22,9 @@
22
22
  "typescript": "^5.9.3"
23
23
  },
24
24
  "dependencies": {
25
- "@dbx-tools/shared-core": "^0.9.61",
25
+ "@dbx-tools/shared-core": "^0.9.65",
26
+ "@dbx-tools/shared-model": "^0.9.65",
27
+ "@dbx-tools/shared-model-gateway": "^0.9.65",
26
28
  "zod": "4.3.6"
27
29
  },
28
30
  "main": "./lib/index.js",
@@ -47,7 +49,7 @@
47
49
  "./package.json": "./package.json"
48
50
  }
49
51
  },
50
- "version": "0.9.61",
52
+ "version": "0.9.65",
51
53
  "types": "./lib/index.d.ts",
52
54
  "dbxToolsConfig": {
53
55
  "tags": [
package/src/config.ts CHANGED
@@ -20,8 +20,6 @@ export const GenieCodeModelProviderSchema = z
20
20
 
21
21
  export const GenieCodeBaseConfigSchema = z
22
22
  .object({
23
- model_provider: z.string().describe("Selected provider identifier."),
24
- model: z.string().describe("Selected model name."),
25
23
  databricks_profile: z.string().describe("Databricks profile represented by this home."),
26
24
  projects: z
27
25
  .record(
@@ -29,29 +27,34 @@ export const GenieCodeBaseConfigSchema = z
29
27
  z.object({ trust_level: z.literal("trusted").describe("Project trust level.") }).strict(),
30
28
  )
31
29
  .describe("Trusted local projects keyed by absolute path."),
32
- tui: z
33
- .object({
34
- model_availability_nux: z
35
- .record(z.string(), z.literal(1))
36
- .describe("Models whose availability notice has been acknowledged."),
37
- })
38
- .strict()
39
- .describe("Genie terminal UI settings."),
40
30
  })
41
31
  .strict()
42
- .describe("Persistent profile-model Genie Code configuration.");
32
+ .describe("Persistent profile-scoped Genie Code configuration.");
43
33
 
44
34
  export const GenieCodeProviderOverlaySchema = z
45
35
  .object({
36
+ model_provider: z.string().describe("Selected provider identifier."),
37
+ model: z.string().describe("Selected model name."),
46
38
  model_providers: z
47
39
  .record(z.string(), GenieCodeModelProviderSchema)
48
40
  .describe("Invocation-local model providers keyed by identifier."),
41
+ tui: z
42
+ .object({
43
+ model_availability_nux: z
44
+ .record(z.string(), z.literal(1))
45
+ .describe("Models whose availability notice has been acknowledged."),
46
+ })
47
+ .strict()
48
+ .describe("Invocation-specific Genie terminal UI settings."),
49
49
  })
50
50
  .strict()
51
51
  .describe("Invocation-specific Genie Code provider overlay.");
52
52
 
53
53
  export const GenieCodeConfigSchema = GenieCodeBaseConfigSchema.extend({
54
+ model_provider: GenieCodeProviderOverlaySchema.shape.model_provider,
55
+ model: GenieCodeProviderOverlaySchema.shape.model,
54
56
  model_providers: GenieCodeProviderOverlaySchema.shape.model_providers,
57
+ tui: GenieCodeProviderOverlaySchema.shape.tui,
55
58
  }).describe("Merged persistent and invocation-specific Genie Code configuration.");
56
59
 
57
60
  export type GenieCodeBaseConfig = z.infer<typeof GenieCodeBaseConfigSchema>;
package/src/options.ts CHANGED
@@ -5,46 +5,39 @@
5
5
  */
6
6
 
7
7
  import { options, stringUtils } from "@dbx-tools/shared-core";
8
+ import { ChatModelSelectionOptionsSchema } from "@dbx-tools/shared-model-gateway/options";
8
9
  import { z } from "zod";
9
10
 
10
11
  /** Pinned Genie Code release installed by the managed CLI. */
11
12
  export const GENIE_CODE_VERSION = "0.1.0-beta.2";
12
13
 
13
- const pairingText = (description: string) => z.string().trim().min(1).describe(description);
14
-
15
- export const GenieCodeOptionsSchema = z
16
- .object({
17
- profile: options.DatabricksOptionsSchema.shape.profile.describe(
18
- "Databricks profile used by the model-gateway sidecar.",
19
- ),
20
- model: pairingText("Model name resolved by the model gateway.").default("gpt"),
21
- gatewayListen: options
22
- .listenAddressSchema({ host: "127.0.0.1", port: 0, loopback: true })
23
- .describe("Loopback listener allocated for the model-gateway sidecar."),
24
- })
14
+ export const GenieCodeOptionsSchema = ChatModelSelectionOptionsSchema.safeExtend({
15
+ profile: options.DatabricksOptionsSchema.shape.profile.describe(
16
+ "Databricks profile used by the model-gateway sidecar.",
17
+ ),
18
+ gatewayListen: options
19
+ .listenAddressSchema({ host: "127.0.0.1", port: 0, loopback: true })
20
+ .describe("Loopback listener allocated for the model-gateway sidecar."),
21
+ })
25
22
  .strict()
26
23
  .describe("Managed Genie Code runtime options.");
27
24
 
28
- export const GenieCodePairingSchema = GenieCodeOptionsSchema.pick({
29
- profile: true,
30
- model: true,
31
- })
32
- .extend({
33
- profile: GenieCodeOptionsSchema.shape.profile.unwrap(),
34
- model: GenieCodeOptionsSchema.shape.model.removeDefault(),
25
+ export const GenieCodeHomeSchema = z
26
+ .object({
27
+ profile: options.DatabricksOptionsSchema.shape.profile.unwrap(),
35
28
  digest: z
36
29
  .string()
37
30
  .regex(/^[0-9a-f]{12}$/)
38
- .describe("First twelve lowercase hexadecimal characters of the exact pairing SHA-256."),
31
+ .describe("First twelve lowercase hexadecimal characters of the exact profile SHA-256."),
39
32
  })
40
33
  .strict()
41
- .describe("Inputs used to derive one profile-model Genie home.");
34
+ .describe("Inputs used to derive one profile-scoped Genie home.");
42
35
 
43
36
  export const GenieCodeRunnerOptionsSchema = z
44
37
  .object({
45
38
  executable: z.string().trim().min(1).describe("Installed Genie Code executable."),
46
39
  arguments: z.array(z.string()).readonly().describe("Arguments forwarded to Genie Code."),
47
- home: z.string().trim().min(1).describe("Profile-model-specific GENIE_HOME."),
40
+ home: z.string().trim().min(1).describe("Profile-specific GENIE_HOME."),
48
41
  gatewayHealthUrl: z.url().describe("Guarded model-gateway health URL."),
49
42
  bearerToken: z.string().min(1).describe("Ephemeral model-gateway bearer token."),
50
43
  startupTimeoutMs: z
@@ -61,7 +54,7 @@ export type GenieCodeOptions = z.input<typeof GenieCodeOptionsSchema>;
61
54
 
62
55
  export type ResolvedGenieCodeOptions = z.output<typeof GenieCodeOptionsSchema>;
63
56
 
64
- export type GenieCodePairing = z.input<typeof GenieCodePairingSchema>;
57
+ export type GenieCodeHome = z.input<typeof GenieCodeHomeSchema>;
65
58
 
66
59
  export type GenieCodeRunnerOptions = z.input<typeof GenieCodeRunnerOptionsSchema>;
67
60
 
@@ -73,16 +66,12 @@ export function resolveGenieCodeOptions(value: GenieCodeOptions = {}): ResolvedG
73
66
  return GenieCodeOptionsSchema.parse(value);
74
67
  }
75
68
 
76
- /** Build the readable directory name for one exact profile-model pairing. */
77
- export function genieCodePairingName(value: GenieCodePairing): string {
78
- const pairing = GenieCodePairingSchema.parse(value);
69
+ /** Build the readable directory name for one exact Databricks profile. */
70
+ export function genieCodeHomeName(value: GenieCodeHome): string {
71
+ const home = GenieCodeHomeSchema.parse(value);
79
72
  const profile = stringUtils.toSlugWithOptions(
80
73
  { maxLength: 40, truncateStrategy: "trim" },
81
- pairing.profile,
82
- );
83
- const model = stringUtils.toSlugWithOptions(
84
- { maxLength: 40, truncateStrategy: "trim" },
85
- pairing.model,
74
+ home.profile,
86
75
  );
87
- return `${profile}-${model}-${pairing.digest}`;
76
+ return `${profile}-${home.digest}`;
88
77
  }