1import {
2 CustomModelSetting,
3 makeBinaryPathSetting,
4 makeProviderSettingsSchema,
5} from "@t3tools/contracts";
6import * as Effect from "effect/Effect";
7import * as Schema from "effect/Schema";
8
9export const KiroSettings = makeProviderSettingsSchema(
10 {
11 // Off by default like Grok: users opt in from Settings.
12 enabled: Schema.Boolean.pipe(
13 Schema.withDecodingDefault(Effect.succeed(false)),
14 Schema.annotateKey({ providerSettingsForm: { hidden: true } }),
15 ),
16 binaryPath: makeBinaryPathSetting("kiro-cli").pipe(
17 Schema.annotateKey({
18 title: "Binary path",
19 description: "Path to the Kiro CLI binary.",
20 providerSettingsForm: { placeholder: "kiro-cli", clearWhenEmpty: "omit" },
21 }),
22 ),
23 customModels: Schema.Array(CustomModelSetting).pipe(
24 Schema.withDecodingDefault(Effect.succeed([])),
25 Schema.annotateKey({ providerSettingsForm: { hidden: true } }),
26 ),
27 },
28 {
29 order: ["binaryPath"],
30 },
31);
32export type KiroSettings = typeof KiroSettings.Type;