@dbx-tools/shared-genie-code 0.9.61 → 0.9.64
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 +3 -3
- package/index.ts +3 -3
- package/lib/index.d.ts +3 -3
- package/lib/index.js +3 -3
- package/lib/src/config.d.ts +10 -10
- package/lib/src/config.js +15 -12
- package/lib/src/options.d.ts +12 -7
- package/lib/src/options.js +14 -21
- package/package.json +5 -3
- package/src/config.ts +14 -11
- package/src/options.ts +21 -32
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
|
-
`
|
|
10
|
-
SHA-256 over the exact profile
|
|
11
|
-
|
|
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.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.64";
|
|
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,
|
|
12
|
-
export type { GenieCodeOptions, ResolvedGenieCodeOptions,
|
|
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.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.64";
|
|
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,
|
|
8
|
-
export type { GenieCodeOptions, ResolvedGenieCodeOptions,
|
|
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.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.64";
|
|
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,
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
export { GENIE_CODE_VERSION, GenieCodeOptionsSchema, GenieCodeHomeSchema, GenieCodeRunnerOptionsSchema, GENIE_CODE_DEFAULTS } from "./src/options.js";
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqSixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsNEJBQTRCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmllLWNvZGVcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS42NFwiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIG9wdGlvbnMgZnJvbSBcIi4vc3JjL29wdGlvbnMudHNcIjtcbmV4cG9ydCB7IEdlbmllQ29kZU1vZGVsUHJvdmlkZXJTY2hlbWEsIEdlbmllQ29kZUJhc2VDb25maWdTY2hlbWEsIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheVNjaGVtYSwgR2VuaWVDb2RlQ29uZmlnU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUNvZGVCYXNlQ29uZmlnLCBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXksIEdlbmllQ29kZUNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IEdFTklFX0NPREVfVkVSU0lPTiwgR2VuaWVDb2RlT3B0aW9uc1NjaGVtYSwgR2VuaWVDb2RlSG9tZVNjaGVtYSwgR2VuaWVDb2RlUnVubmVyT3B0aW9uc1NjaGVtYSwgR0VOSUVfQ09ERV9ERUZBVUxUUyB9IGZyb20gXCIuL3NyYy9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllQ29kZU9wdGlvbnMsIFJlc29sdmVkR2VuaWVDb2RlT3B0aW9ucywgR2VuaWVDb2RlSG9tZSwgR2VuaWVDb2RlUnVubmVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vcHRpb25zLnRzXCI7XG4iXX0=
|
package/lib/src/config.d.ts
CHANGED
|
@@ -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
|
-
|
|
44
|
-
|
|
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-
|
|
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,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDO0tBQzFDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDO0lBQ25ELFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0lBQ2xFLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQztJQUN0RSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLGdEQUFnRCxDQUFDO0lBQzVGLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDL0YsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztDQUNoRixDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQztLQUN2QyxNQUFNLENBQUM7SUFDTixrQkFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLDhDQUE4QyxDQUFDO0lBQ3ZGLFFBQVEsRUFBRSxDQUFDO1NBQ1IsTUFBTSxDQUNMLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFDVixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUMxRjtTQUNBLFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQztDQUM5RCxDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLHFEQUFxRCxDQUFDLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQztLQUM1QyxNQUFNLENBQUM7SUFDTixjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQztJQUNwRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRCxlQUFlLEVBQUUsQ0FBQztTQUNmLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsNEJBQTRCLENBQUM7U0FDaEQsUUFBUSxDQUFDLHVEQUF1RCxDQUFDO0lBQ3BFLEdBQUcsRUFBRSxDQUFDO1NBQ0gsTUFBTSxDQUFDO1FBQ04sc0JBQXNCLEVBQUUsQ0FBQzthQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEMsUUFBUSxDQUFDLHlEQUF5RCxDQUFDO0tBQ3ZFLENBQUM7U0FDRCxNQUFNLEVBQUU7U0FDUixRQUFRLENBQUMsaURBQWlELENBQUM7Q0FDL0QsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQztJQUNwRSxjQUFjLEVBQUUsOEJBQThCLENBQUMsS0FBSyxDQUFDLGNBQWM7SUFDbkUsS0FBSyxFQUFFLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxLQUFLO0lBQ2pELGVBQWUsRUFBRSw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsZUFBZTtJQUNyRSxHQUFHLEVBQUUsOEJBQThCLENBQUMsS0FBSyxDQUFDLEdBQUc7Q0FDOUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5pZSBDb2RlIGBjb25maWcudG9tbGAgd2lyZSBjb250cmFjdC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IEdlbmllQ29kZU1vZGVsUHJvdmlkZXJTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG5hbWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJQcm92aWRlciBkaXNwbGF5IG5hbWUuXCIpLFxuICAgIGJhc2VfdXJsOiB6LnVybCgpLmRlc2NyaWJlKFwiT3BlbkFJLWNvbXBhdGlibGUgcHJvdmlkZXIgYmFzZSBVUkwuXCIpLFxuICAgIHdpcmVfYXBpOiB6LmxpdGVyYWwoXCJyZXNwb25zZXNcIikuZGVzY3JpYmUoXCJHZW5pZSB0cmFuc3BvcnQgcHJvdG9jb2wuXCIpLFxuICAgIHJlcXVpcmVzX29wZW5haV9hdXRoOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIldoZXRoZXIgR2VuaWUgbXVzdCByZXNvbHZlIE9wZW5BSSBjcmVkZW50aWFscy5cIiksXG4gICAgc3VwcG9ydHNfd2Vic29ja2V0czogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRoZSBwcm92aWRlciBhY2NlcHRzIFJlc3BvbnNlcyBXZWJTb2NrZXRzLlwiKSxcbiAgICBodHRwX2hlYWRlcnM6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLmRlc2NyaWJlKFwiU3RhdGljIEhUVFAgaGVhZGVycy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJPbmUgY3VzdG9tIEdlbmllIENvZGUgbW9kZWwgcHJvdmlkZXIuXCIpO1xuXG5leHBvcnQgY29uc3QgR2VuaWVDb2RlQmFzZUNvbmZpZ1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZGF0YWJyaWNrc19wcm9maWxlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiRGF0YWJyaWNrcyBwcm9maWxlIHJlcHJlc2VudGVkIGJ5IHRoaXMgaG9tZS5cIiksXG4gICAgcHJvamVjdHM6IHpcbiAgICAgIC5yZWNvcmQoXG4gICAgICAgIHouc3RyaW5nKCksXG4gICAgICAgIHoub2JqZWN0KHsgdHJ1c3RfbGV2ZWw6IHoubGl0ZXJhbChcInRydXN0ZWRcIikuZGVzY3JpYmUoXCJQcm9qZWN0IHRydXN0IGxldmVsLlwiKSB9KS5zdHJpY3QoKSxcbiAgICAgIClcbiAgICAgIC5kZXNjcmliZShcIlRydXN0ZWQgbG9jYWwgcHJvamVjdHMga2V5ZWQgYnkgYWJzb2x1dGUgcGF0aC5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJQZXJzaXN0ZW50IHByb2ZpbGUtc2NvcGVkIEdlbmllIENvZGUgY29uZmlndXJhdGlvbi5cIik7XG5cbmV4cG9ydCBjb25zdCBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG1vZGVsX3Byb3ZpZGVyOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiU2VsZWN0ZWQgcHJvdmlkZXIgaWRlbnRpZmllci5cIiksXG4gICAgbW9kZWw6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJTZWxlY3RlZCBtb2RlbCBuYW1lLlwiKSxcbiAgICBtb2RlbF9wcm92aWRlcnM6IHpcbiAgICAgIC5yZWNvcmQoei5zdHJpbmcoKSwgR2VuaWVDb2RlTW9kZWxQcm92aWRlclNjaGVtYSlcbiAgICAgIC5kZXNjcmliZShcIkludm9jYXRpb24tbG9jYWwgbW9kZWwgcHJvdmlkZXJzIGtleWVkIGJ5IGlkZW50aWZpZXIuXCIpLFxuICAgIHR1aTogelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIG1vZGVsX2F2YWlsYWJpbGl0eV9udXg6IHpcbiAgICAgICAgICAucmVjb3JkKHouc3RyaW5nKCksIHoubGl0ZXJhbCgxKSlcbiAgICAgICAgICAuZGVzY3JpYmUoXCJNb2RlbHMgd2hvc2UgYXZhaWxhYmlsaXR5IG5vdGljZSBoYXMgYmVlbiBhY2tub3dsZWRnZWQuXCIpLFxuICAgICAgfSlcbiAgICAgIC5zdHJpY3QoKVxuICAgICAgLmRlc2NyaWJlKFwiSW52b2NhdGlvbi1zcGVjaWZpYyBHZW5pZSB0ZXJtaW5hbCBVSSBzZXR0aW5ncy5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJJbnZvY2F0aW9uLXNwZWNpZmljIEdlbmllIENvZGUgcHJvdmlkZXIgb3ZlcmxheS5cIik7XG5cbmV4cG9ydCBjb25zdCBHZW5pZUNvZGVDb25maWdTY2hlbWEgPSBHZW5pZUNvZGVCYXNlQ29uZmlnU2NoZW1hLmV4dGVuZCh7XG4gIG1vZGVsX3Byb3ZpZGVyOiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEuc2hhcGUubW9kZWxfcHJvdmlkZXIsXG4gIG1vZGVsOiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEuc2hhcGUubW9kZWwsXG4gIG1vZGVsX3Byb3ZpZGVyczogR2VuaWVDb2RlUHJvdmlkZXJPdmVybGF5U2NoZW1hLnNoYXBlLm1vZGVsX3Byb3ZpZGVycyxcbiAgdHVpOiBHZW5pZUNvZGVQcm92aWRlck92ZXJsYXlTY2hlbWEuc2hhcGUudHVpLFxufSkuZGVzY3JpYmUoXCJNZXJnZWQgcGVyc2lzdGVudCBhbmQgaW52b2NhdGlvbi1zcGVjaWZpYyBHZW5pZSBDb2RlIGNvbmZpZ3VyYXRpb24uXCIpO1xuXG5leHBvcnQgdHlwZSBHZW5pZUNvZGVCYXNlQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgR2VuaWVDb2RlQmFzZUNvbmZpZ1NjaGVtYT47XG5cbmV4cG9ydCB0eXBlIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheSA9IHouaW5mZXI8dHlwZW9mIEdlbmllQ29kZVByb3ZpZGVyT3ZlcmxheVNjaGVtYT47XG5cbmV4cG9ydCB0eXBlIEdlbmllQ29kZUNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIEdlbmllQ29kZUNvbmZpZ1NjaGVtYT47XG4iXX0=
|
package/lib/src/options.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
41
|
-
export declare function
|
|
45
|
+
/** Build the readable directory name for one exact Databricks profile. */
|
|
46
|
+
export declare function genieCodeHomeName(value: GenieCodeHome): string;
|
package/lib/src/options.js
CHANGED
|
@@ -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
|
|
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
|
|
22
|
-
|
|
23
|
-
|
|
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
|
|
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-
|
|
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-
|
|
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
|
|
58
|
-
export function
|
|
59
|
-
const
|
|
60
|
-
const profile = stringUtils.toSlugWithOptions({ maxLength: 40, truncateStrategy: "trim" },
|
|
61
|
-
|
|
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,
|
|
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-
|
|
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.
|
|
25
|
+
"@dbx-tools/shared-core": "^0.9.64",
|
|
26
|
+
"@dbx-tools/shared-model": "^0.9.64",
|
|
27
|
+
"@dbx-tools/shared-model-gateway": "^0.9.64",
|
|
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.
|
|
52
|
+
"version": "0.9.64",
|
|
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-
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
),
|
|
20
|
-
|
|
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
|
|
29
|
-
|
|
30
|
-
|
|
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
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
77
|
-
export function
|
|
78
|
-
const
|
|
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
|
-
|
|
82
|
-
);
|
|
83
|
-
const model = stringUtils.toSlugWithOptions(
|
|
84
|
-
{ maxLength: 40, truncateStrategy: "trim" },
|
|
85
|
-
pairing.model,
|
|
74
|
+
home.profile,
|
|
86
75
|
);
|
|
87
|
-
return `${profile}-${
|
|
76
|
+
return `${profile}-${home.digest}`;
|
|
88
77
|
}
|