@gaunt-sloth/core 2.0.0-alpha.2 → 2.0.0-alpha.21
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/.gsloth.code.md +10 -0
- package/README.md +6 -6
- package/dist/config/defaults.d.ts +85 -0
- package/dist/config/defaults.js +103 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/jsonc.d.ts +12 -0
- package/dist/config/jsonc.js +41 -0
- package/dist/config/jsonc.js.map +1 -0
- package/dist/config/loader.d.ts +169 -0
- package/dist/config/loader.js +872 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +673 -0
- package/dist/config/schema.js +524 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/shell-policy.d.ts +331 -0
- package/dist/config/shell-policy.js +238 -0
- package/dist/config/shell-policy.js.map +1 -0
- package/dist/config/types.d.ts +596 -0
- package/dist/config/types.js +13 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config.d.ts +18 -647
- package/dist/config.js +15 -516
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +42 -0
- package/dist/constants.js +42 -0
- package/dist/constants.js.map +1 -1
- package/dist/core/GthAbstractAgent.d.ts +85 -2
- package/dist/core/GthAbstractAgent.js +398 -28
- package/dist/core/GthAbstractAgent.js.map +1 -1
- package/dist/core/GthAgentRunner.d.ts +158 -1
- package/dist/core/GthAgentRunner.js +367 -4
- package/dist/core/GthAgentRunner.js.map +1 -1
- package/dist/core/GthLangChainAgent.js +193 -16
- package/dist/core/GthLangChainAgent.js.map +1 -1
- package/dist/core/debugCapture.d.ts +59 -0
- package/dist/core/debugCapture.js +101 -0
- package/dist/core/debugCapture.js.map +1 -0
- package/dist/core/gthLeanAgentFactory.d.ts +9 -0
- package/dist/core/gthLeanAgentFactory.js +10 -0
- package/dist/core/gthLeanAgentFactory.js.map +1 -0
- package/dist/core/plainToolIndication.d.ts +15 -0
- package/dist/core/plainToolIndication.js +148 -0
- package/dist/core/plainToolIndication.js.map +1 -0
- package/dist/core/runStats.d.ts +41 -0
- package/dist/core/runStats.js +73 -0
- package/dist/core/runStats.js.map +1 -0
- package/dist/core/shell/ShellCommandFailedError.d.ts +54 -0
- package/dist/core/shell/ShellCommandFailedError.js +68 -0
- package/dist/core/shell/ShellCommandFailedError.js.map +1 -0
- package/dist/core/shell/allowlist.d.ts +75 -0
- package/dist/core/shell/allowlist.js +187 -0
- package/dist/core/shell/allowlist.js.map +1 -0
- package/dist/core/shell/arity.d.ts +75 -0
- package/dist/core/shell/arity.js +313 -0
- package/dist/core/shell/arity.js.map +1 -0
- package/dist/core/shell/judge.d.ts +161 -0
- package/dist/core/shell/judge.js +261 -0
- package/dist/core/shell/judge.js.map +1 -0
- package/dist/core/shell/normalize.d.ts +27 -0
- package/dist/core/shell/normalize.js +53 -0
- package/dist/core/shell/normalize.js.map +1 -0
- package/dist/core/toolDisplay.d.ts +101 -0
- package/dist/core/toolDisplay.js +374 -0
- package/dist/core/toolDisplay.js.map +1 -0
- package/dist/core/toolOutputChannel.d.ts +68 -0
- package/dist/core/toolOutputChannel.js +112 -0
- package/dist/core/toolOutputChannel.js.map +1 -0
- package/dist/core/types.d.ts +173 -0
- package/dist/core/types.js.map +1 -1
- package/dist/history/historyFormat.d.ts +28 -0
- package/dist/history/historyFormat.js +127 -0
- package/dist/history/historyFormat.js.map +1 -0
- package/dist/history/historyStore.d.ts +198 -0
- package/dist/history/historyStore.js +482 -0
- package/dist/history/historyStore.js.map +1 -0
- package/dist/history/recordSession.d.ts +37 -0
- package/dist/history/recordSession.js +56 -0
- package/dist/history/recordSession.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/anthropic.d.ts +1 -1
- package/dist/providers/anthropic.js +5 -10
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/deepseek.d.ts +1 -1
- package/dist/providers/deepseek.js +5 -10
- package/dist/providers/deepseek.js.map +1 -1
- package/dist/providers/geminiSchemaSanitizer.d.ts +52 -0
- package/dist/providers/geminiSchemaSanitizer.js +201 -0
- package/dist/providers/geminiSchemaSanitizer.js.map +1 -0
- package/dist/providers/google-genai.d.ts +1 -1
- package/dist/providers/google-genai.js +9 -11
- package/dist/providers/google-genai.js.map +1 -1
- package/dist/providers/groq.d.ts +1 -1
- package/dist/providers/groq.js +5 -10
- package/dist/providers/groq.js.map +1 -1
- package/dist/providers/huggingface.d.ts +25 -0
- package/dist/providers/huggingface.js +69 -0
- package/dist/providers/huggingface.js.map +1 -0
- package/dist/providers/modelCatalog.d.ts +109 -0
- package/dist/providers/modelCatalog.js +245 -0
- package/dist/providers/modelCatalog.js.map +1 -0
- package/dist/providers/modelDiscovery.d.ts +111 -3
- package/dist/providers/modelDiscovery.js +183 -27
- package/dist/providers/modelDiscovery.js.map +1 -1
- package/dist/providers/ollama.d.ts +19 -5
- package/dist/providers/ollama.js +60 -52
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.d.ts +1 -1
- package/dist/providers/openai.js +5 -10
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/openrouter.d.ts +1 -1
- package/dist/providers/openrouter.js +12 -12
- package/dist/providers/openrouter.js.map +1 -1
- package/dist/providers/vertexai.d.ts +1 -1
- package/dist/providers/vertexai.js +9 -11
- package/dist/providers/vertexai.js.map +1 -1
- package/dist/providers/xai.d.ts +1 -1
- package/dist/providers/xai.js +5 -10
- package/dist/providers/xai.js.map +1 -1
- package/dist/runtime/askStructured.d.ts +62 -0
- package/dist/runtime/askStructured.js +76 -0
- package/dist/runtime/askStructured.js.map +1 -0
- package/dist/runtime/conversation.d.ts +59 -0
- package/dist/runtime/conversation.js +137 -0
- package/dist/runtime/conversation.js.map +1 -0
- package/dist/runtime/singleShot.d.ts +24 -5
- package/dist/runtime/singleShot.js +56 -9
- package/dist/runtime/singleShot.js.map +1 -1
- package/dist/utils/aiignoreUtils.js.map +1 -1
- package/dist/utils/binaryOutputUtils.js.map +1 -1
- package/dist/utils/consoleUtils.d.ts +22 -0
- package/dist/utils/consoleUtils.js +45 -0
- package/dist/utils/consoleUtils.js.map +1 -1
- package/dist/utils/debugDump.d.ts +57 -0
- package/dist/utils/debugDump.js +236 -0
- package/dist/utils/debugDump.js.map +1 -0
- package/dist/utils/debugUtils.d.ts +13 -4
- package/dist/utils/debugUtils.js +36 -13
- package/dist/utils/debugUtils.js.map +1 -1
- package/dist/utils/fileUtils.d.ts +24 -2
- package/dist/utils/fileUtils.js +54 -12
- package/dist/utils/fileUtils.js.map +1 -1
- package/dist/utils/llmUtils.js.map +1 -1
- package/dist/utils/redactSecrets.d.ts +63 -0
- package/dist/utils/redactSecrets.js +238 -0
- package/dist/utils/redactSecrets.js.map +1 -0
- package/dist/utils/systemPromptNotes.d.ts +181 -0
- package/dist/utils/systemPromptNotes.js +298 -0
- package/dist/utils/systemPromptNotes.js.map +1 -0
- package/dist/utils/systemUtils.d.ts +32 -1
- package/dist/utils/systemUtils.js +50 -3
- package/dist/utils/systemUtils.js.map +1 -1
- package/dist/utils/toolMatching.d.ts +30 -0
- package/dist/utils/toolMatching.js +44 -0
- package/dist/utils/toolMatching.js.map +1 -0
- package/package.json +17 -8
- package/schema/gsloth-config.schema.json +2111 -0
|
@@ -0,0 +1,673 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Zod schema for the on-disk raw Gaunt Sloth config (`RawGthConfig`).
|
|
4
|
+
*
|
|
5
|
+
* This is the single source of truth for config validation and for the generated
|
|
6
|
+
* JSON Schema (`packages/core/schema/gsloth-config.schema.json`). It models the
|
|
7
|
+
* canonical config shape only — the deprecated aliases (`contentProvider`,
|
|
8
|
+
* `requirementsProvider`, `contentProviderConfig`, `requirementsProviderConfig`)
|
|
9
|
+
* are intentionally NOT part of the schema. GS2-28 (a 2.0 breaking release with NO
|
|
10
|
+
* back-compat coercion) turns those deprecated shapes into HARD validation errors:
|
|
11
|
+
* {@link findDeprecatedConfigIssues} detects them on the raw input BEFORE the schema
|
|
12
|
+
* parse and each entry point (loader `validateRawConfigLayer`, read-side
|
|
13
|
+
* {@link validateRawGthConfig}) rejects the config with a message naming the canonical
|
|
14
|
+
* replacement + migration path. Detection runs on the RAW input on purpose: zod's
|
|
15
|
+
* per-command `z.object` strips unknown keys, so a nested `commands.*.contentProvider`
|
|
16
|
+
* would vanish before any schema-embedded check could see it.
|
|
17
|
+
*
|
|
18
|
+
* Design notes:
|
|
19
|
+
* - The top-level object is a {@link z.looseObject} so unknown keys PASS THROUGH
|
|
20
|
+
* (they are neither stripped nor a hard failure). The loader separately diffs
|
|
21
|
+
* present-vs-known top-level keys ({@link findUnknownTopLevelKeys}) to warn about
|
|
22
|
+
* likely typos without failing. That typo-tolerance is deliberate: only the KNOWN
|
|
23
|
+
* deprecated names ({@link findDeprecatedConfigIssues}) hard-fail; a genuine typo
|
|
24
|
+
* (e.g. `pulrequest`) still only warns.
|
|
25
|
+
* - Every field is optional. The schema validates the *shape/type of what is
|
|
26
|
+
* present*, not requiredness. In particular `llm` is optional so the loader's
|
|
27
|
+
* existing "must at least define llm.type" checks remain the authority on llm
|
|
28
|
+
* validity (and keep emitting their established messages).
|
|
29
|
+
* - Runtime-object-bearing fields (`tools`, `middleware`, `mcpServers`,
|
|
30
|
+
* `a2aAgents`, `builtInToolsConfig`) are modelled permissively because JS/MJS
|
|
31
|
+
* `configure()` returns live instances/objects there.
|
|
32
|
+
*
|
|
33
|
+
* The exported {@link RawGthConfig}/{@link GthConfig} interfaces in `config.ts`
|
|
34
|
+
* remain the public type surface; the `z.infer` here ({@link RawGthConfigInput})
|
|
35
|
+
* is additive and legitimately differs (no deprecated fields).
|
|
36
|
+
*/
|
|
37
|
+
import { z } from 'zod';
|
|
38
|
+
/**
|
|
39
|
+
* Zod schema for the raw, on-disk Gaunt Sloth config. Loose at the top level so
|
|
40
|
+
* unknown keys are preserved (warn-only via {@link findUnknownTopLevelKeys}).
|
|
41
|
+
*/
|
|
42
|
+
export declare const rawGthConfigSchema: z.ZodObject<{
|
|
43
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
44
|
+
llm: z.ZodOptional<z.ZodObject<{
|
|
45
|
+
type: z.ZodOptional<z.ZodString>;
|
|
46
|
+
model: z.ZodOptional<z.ZodString>;
|
|
47
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
48
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
49
|
+
}, z.core.$loose>>;
|
|
50
|
+
agent: z.ZodOptional<z.ZodObject<{
|
|
51
|
+
backend: z.ZodOptional<z.ZodEnum<{
|
|
52
|
+
deep: "deep";
|
|
53
|
+
lean: "lean";
|
|
54
|
+
}>>;
|
|
55
|
+
}, z.core.$strip>>;
|
|
56
|
+
history: z.ZodOptional<z.ZodObject<{
|
|
57
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
+
dbPath: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, z.core.$strip>>;
|
|
60
|
+
memory: z.ZodOptional<z.ZodObject<{
|
|
61
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
62
|
+
}, z.core.$strip>>;
|
|
63
|
+
binaryFormats: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodObject<{
|
|
64
|
+
type: z.ZodEnum<{
|
|
65
|
+
audio: "audio";
|
|
66
|
+
binary: "binary";
|
|
67
|
+
file: "file";
|
|
68
|
+
image: "image";
|
|
69
|
+
video: "video";
|
|
70
|
+
}>;
|
|
71
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
72
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
mimeTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
74
|
+
}, z.core.$strip>>]>>;
|
|
75
|
+
contentSource: z.ZodOptional<z.ZodString>;
|
|
76
|
+
requirementSource: z.ZodOptional<z.ZodString>;
|
|
77
|
+
contentSourceConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
78
|
+
requirementSourceConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
79
|
+
projectGuidelines: z.ZodOptional<z.ZodString>;
|
|
80
|
+
identityProfile: z.ZodOptional<z.ZodString>;
|
|
81
|
+
includeCurrentDateAfterGuidelines: z.ZodOptional<z.ZodBoolean>;
|
|
82
|
+
organization: z.ZodOptional<z.ZodObject<{
|
|
83
|
+
name: z.ZodOptional<z.ZodString>;
|
|
84
|
+
locale: z.ZodOptional<z.ZodString>;
|
|
85
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
86
|
+
}, z.core.$strip>>;
|
|
87
|
+
projectReviewInstructions: z.ZodOptional<z.ZodString>;
|
|
88
|
+
noDefaultPrompts: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
+
filesystem: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
|
|
90
|
+
all: "all";
|
|
91
|
+
none: "none";
|
|
92
|
+
read: "read";
|
|
93
|
+
}>]>>;
|
|
94
|
+
builtInTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
95
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
96
|
+
command: z.ZodOptional<z.ZodString>;
|
|
97
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
98
|
+
maxOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
99
|
+
allowlist: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
persistAllowlist: z.ZodOptional<z.ZodBoolean>;
|
|
101
|
+
judge: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
102
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
103
|
+
autoApproveLow: z.ZodOptional<z.ZodBoolean>;
|
|
104
|
+
blockHigh: z.ZodOptional<z.ZodBoolean>;
|
|
105
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
106
|
+
type: z.ZodOptional<z.ZodString>;
|
|
107
|
+
model: z.ZodOptional<z.ZodString>;
|
|
108
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
109
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
110
|
+
}, z.core.$loose>>;
|
|
111
|
+
}, z.core.$strip>]>>;
|
|
112
|
+
yolo: z.ZodOptional<z.ZodBoolean>;
|
|
113
|
+
fileSet: z.ZodOptional<z.ZodEnum<{
|
|
114
|
+
all: "all";
|
|
115
|
+
gitignore: "gitignore";
|
|
116
|
+
}>>;
|
|
117
|
+
}, z.core.$strip>]>>]>>;
|
|
118
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
119
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
120
|
+
middleware: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
121
|
+
streamOutput: z.ZodOptional<z.ZodBoolean>;
|
|
122
|
+
writeOutputToFile: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
123
|
+
writeBinaryOutputsToFile: z.ZodOptional<z.ZodBoolean>;
|
|
124
|
+
useColour: z.ZodOptional<z.ZodBoolean>;
|
|
125
|
+
streamSessionInferenceLog: z.ZodOptional<z.ZodBoolean>;
|
|
126
|
+
canInterruptInferenceWithEsc: z.ZodOptional<z.ZodBoolean>;
|
|
127
|
+
debugLog: z.ZodOptional<z.ZodBoolean>;
|
|
128
|
+
recursionLimit: z.ZodOptional<z.ZodNumber>;
|
|
129
|
+
consoleLevel: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
130
|
+
customTools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
131
|
+
command: z.ZodString;
|
|
132
|
+
description: z.ZodString;
|
|
133
|
+
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
134
|
+
description: z.ZodString;
|
|
135
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
136
|
+
"absolute-paths": "absolute-paths";
|
|
137
|
+
"directory-traversal": "directory-traversal";
|
|
138
|
+
"null-bytes": "null-bytes";
|
|
139
|
+
"shell-injection": "shell-injection";
|
|
140
|
+
}>>>;
|
|
141
|
+
}, z.core.$strip>>>;
|
|
142
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
143
|
+
}, z.core.$strip>>>;
|
|
144
|
+
mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
145
|
+
tls: z.ZodOptional<z.ZodObject<{
|
|
146
|
+
extraCaCerts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
147
|
+
rejectUnauthorized: z.ZodOptional<z.ZodBoolean>;
|
|
148
|
+
}, z.core.$strip>>;
|
|
149
|
+
a2aAgents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
150
|
+
builtInToolsConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
151
|
+
aiignore: z.ZodOptional<z.ZodObject<{
|
|
152
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
153
|
+
patterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
154
|
+
}, z.core.$strip>>;
|
|
155
|
+
commands: z.ZodOptional<z.ZodObject<{
|
|
156
|
+
pr: z.ZodOptional<z.ZodObject<{
|
|
157
|
+
contentSource: z.ZodOptional<z.ZodString>;
|
|
158
|
+
requirementSource: z.ZodOptional<z.ZodString>;
|
|
159
|
+
filesystem: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
|
|
160
|
+
all: "all";
|
|
161
|
+
none: "none";
|
|
162
|
+
read: "read";
|
|
163
|
+
}>]>>;
|
|
164
|
+
builtInTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
165
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
166
|
+
command: z.ZodOptional<z.ZodString>;
|
|
167
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
168
|
+
maxOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
169
|
+
allowlist: z.ZodOptional<z.ZodBoolean>;
|
|
170
|
+
persistAllowlist: z.ZodOptional<z.ZodBoolean>;
|
|
171
|
+
judge: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
172
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
173
|
+
autoApproveLow: z.ZodOptional<z.ZodBoolean>;
|
|
174
|
+
blockHigh: z.ZodOptional<z.ZodBoolean>;
|
|
175
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
176
|
+
type: z.ZodOptional<z.ZodString>;
|
|
177
|
+
model: z.ZodOptional<z.ZodString>;
|
|
178
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
179
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
180
|
+
}, z.core.$loose>>;
|
|
181
|
+
}, z.core.$strip>]>>;
|
|
182
|
+
yolo: z.ZodOptional<z.ZodBoolean>;
|
|
183
|
+
fileSet: z.ZodOptional<z.ZodEnum<{
|
|
184
|
+
all: "all";
|
|
185
|
+
gitignore: "gitignore";
|
|
186
|
+
}>>;
|
|
187
|
+
}, z.core.$strip>]>>]>>;
|
|
188
|
+
customTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
189
|
+
command: z.ZodString;
|
|
190
|
+
description: z.ZodString;
|
|
191
|
+
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
192
|
+
description: z.ZodString;
|
|
193
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
194
|
+
"absolute-paths": "absolute-paths";
|
|
195
|
+
"directory-traversal": "directory-traversal";
|
|
196
|
+
"null-bytes": "null-bytes";
|
|
197
|
+
"shell-injection": "shell-injection";
|
|
198
|
+
}>>>;
|
|
199
|
+
}, z.core.$strip>>>;
|
|
200
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
201
|
+
}, z.core.$strip>>]>>;
|
|
202
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
203
|
+
logWorkForReviewInSeconds: z.ZodOptional<z.ZodNumber>;
|
|
204
|
+
rating: z.ZodOptional<z.ZodObject<{
|
|
205
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
206
|
+
passThreshold: z.ZodOptional<z.ZodNumber>;
|
|
207
|
+
maxRating: z.ZodOptional<z.ZodNumber>;
|
|
208
|
+
minRating: z.ZodOptional<z.ZodNumber>;
|
|
209
|
+
errorOnReviewFail: z.ZodOptional<z.ZodBoolean>;
|
|
210
|
+
}, z.core.$strip>>;
|
|
211
|
+
binaryFormats: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodObject<{
|
|
212
|
+
type: z.ZodEnum<{
|
|
213
|
+
audio: "audio";
|
|
214
|
+
binary: "binary";
|
|
215
|
+
file: "file";
|
|
216
|
+
image: "image";
|
|
217
|
+
video: "video";
|
|
218
|
+
}>;
|
|
219
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
220
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
221
|
+
mimeTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
222
|
+
}, z.core.$strip>>]>>;
|
|
223
|
+
}, z.core.$strip>>;
|
|
224
|
+
review: z.ZodOptional<z.ZodObject<{
|
|
225
|
+
contentSource: z.ZodOptional<z.ZodString>;
|
|
226
|
+
requirementSource: z.ZodOptional<z.ZodString>;
|
|
227
|
+
filesystem: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
|
|
228
|
+
all: "all";
|
|
229
|
+
none: "none";
|
|
230
|
+
read: "read";
|
|
231
|
+
}>]>>;
|
|
232
|
+
builtInTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
233
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
234
|
+
command: z.ZodOptional<z.ZodString>;
|
|
235
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
236
|
+
maxOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
237
|
+
allowlist: z.ZodOptional<z.ZodBoolean>;
|
|
238
|
+
persistAllowlist: z.ZodOptional<z.ZodBoolean>;
|
|
239
|
+
judge: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
240
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
241
|
+
autoApproveLow: z.ZodOptional<z.ZodBoolean>;
|
|
242
|
+
blockHigh: z.ZodOptional<z.ZodBoolean>;
|
|
243
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
244
|
+
type: z.ZodOptional<z.ZodString>;
|
|
245
|
+
model: z.ZodOptional<z.ZodString>;
|
|
246
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
247
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
248
|
+
}, z.core.$loose>>;
|
|
249
|
+
}, z.core.$strip>]>>;
|
|
250
|
+
yolo: z.ZodOptional<z.ZodBoolean>;
|
|
251
|
+
fileSet: z.ZodOptional<z.ZodEnum<{
|
|
252
|
+
all: "all";
|
|
253
|
+
gitignore: "gitignore";
|
|
254
|
+
}>>;
|
|
255
|
+
}, z.core.$strip>]>>]>>;
|
|
256
|
+
customTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
257
|
+
command: z.ZodString;
|
|
258
|
+
description: z.ZodString;
|
|
259
|
+
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
260
|
+
description: z.ZodString;
|
|
261
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
262
|
+
"absolute-paths": "absolute-paths";
|
|
263
|
+
"directory-traversal": "directory-traversal";
|
|
264
|
+
"null-bytes": "null-bytes";
|
|
265
|
+
"shell-injection": "shell-injection";
|
|
266
|
+
}>>>;
|
|
267
|
+
}, z.core.$strip>>>;
|
|
268
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
269
|
+
}, z.core.$strip>>]>>;
|
|
270
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
271
|
+
rating: z.ZodOptional<z.ZodObject<{
|
|
272
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
273
|
+
passThreshold: z.ZodOptional<z.ZodNumber>;
|
|
274
|
+
maxRating: z.ZodOptional<z.ZodNumber>;
|
|
275
|
+
minRating: z.ZodOptional<z.ZodNumber>;
|
|
276
|
+
errorOnReviewFail: z.ZodOptional<z.ZodBoolean>;
|
|
277
|
+
}, z.core.$strip>>;
|
|
278
|
+
binaryFormats: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodObject<{
|
|
279
|
+
type: z.ZodEnum<{
|
|
280
|
+
audio: "audio";
|
|
281
|
+
binary: "binary";
|
|
282
|
+
file: "file";
|
|
283
|
+
image: "image";
|
|
284
|
+
video: "video";
|
|
285
|
+
}>;
|
|
286
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
287
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
288
|
+
mimeTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
289
|
+
}, z.core.$strip>>]>>;
|
|
290
|
+
}, z.core.$strip>>;
|
|
291
|
+
ask: z.ZodOptional<z.ZodObject<{
|
|
292
|
+
filesystem: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
|
|
293
|
+
all: "all";
|
|
294
|
+
none: "none";
|
|
295
|
+
read: "read";
|
|
296
|
+
}>]>>;
|
|
297
|
+
builtInTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
298
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
299
|
+
command: z.ZodOptional<z.ZodString>;
|
|
300
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
301
|
+
maxOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
302
|
+
allowlist: z.ZodOptional<z.ZodBoolean>;
|
|
303
|
+
persistAllowlist: z.ZodOptional<z.ZodBoolean>;
|
|
304
|
+
judge: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
305
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
306
|
+
autoApproveLow: z.ZodOptional<z.ZodBoolean>;
|
|
307
|
+
blockHigh: z.ZodOptional<z.ZodBoolean>;
|
|
308
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
309
|
+
type: z.ZodOptional<z.ZodString>;
|
|
310
|
+
model: z.ZodOptional<z.ZodString>;
|
|
311
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
312
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
313
|
+
}, z.core.$loose>>;
|
|
314
|
+
}, z.core.$strip>]>>;
|
|
315
|
+
yolo: z.ZodOptional<z.ZodBoolean>;
|
|
316
|
+
fileSet: z.ZodOptional<z.ZodEnum<{
|
|
317
|
+
all: "all";
|
|
318
|
+
gitignore: "gitignore";
|
|
319
|
+
}>>;
|
|
320
|
+
}, z.core.$strip>]>>]>>;
|
|
321
|
+
customTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
322
|
+
command: z.ZodString;
|
|
323
|
+
description: z.ZodString;
|
|
324
|
+
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
325
|
+
description: z.ZodString;
|
|
326
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
327
|
+
"absolute-paths": "absolute-paths";
|
|
328
|
+
"directory-traversal": "directory-traversal";
|
|
329
|
+
"null-bytes": "null-bytes";
|
|
330
|
+
"shell-injection": "shell-injection";
|
|
331
|
+
}>>>;
|
|
332
|
+
}, z.core.$strip>>>;
|
|
333
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
334
|
+
}, z.core.$strip>>]>>;
|
|
335
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
336
|
+
binaryFormats: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodObject<{
|
|
337
|
+
type: z.ZodEnum<{
|
|
338
|
+
audio: "audio";
|
|
339
|
+
binary: "binary";
|
|
340
|
+
file: "file";
|
|
341
|
+
image: "image";
|
|
342
|
+
video: "video";
|
|
343
|
+
}>;
|
|
344
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
345
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
346
|
+
mimeTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
347
|
+
}, z.core.$strip>>]>>;
|
|
348
|
+
}, z.core.$strip>>;
|
|
349
|
+
chat: z.ZodOptional<z.ZodObject<{
|
|
350
|
+
filesystem: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
|
|
351
|
+
all: "all";
|
|
352
|
+
none: "none";
|
|
353
|
+
read: "read";
|
|
354
|
+
}>]>>;
|
|
355
|
+
builtInTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
356
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
357
|
+
command: z.ZodOptional<z.ZodString>;
|
|
358
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
359
|
+
maxOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
360
|
+
allowlist: z.ZodOptional<z.ZodBoolean>;
|
|
361
|
+
persistAllowlist: z.ZodOptional<z.ZodBoolean>;
|
|
362
|
+
judge: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
363
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
364
|
+
autoApproveLow: z.ZodOptional<z.ZodBoolean>;
|
|
365
|
+
blockHigh: z.ZodOptional<z.ZodBoolean>;
|
|
366
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
367
|
+
type: z.ZodOptional<z.ZodString>;
|
|
368
|
+
model: z.ZodOptional<z.ZodString>;
|
|
369
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
370
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
371
|
+
}, z.core.$loose>>;
|
|
372
|
+
}, z.core.$strip>]>>;
|
|
373
|
+
yolo: z.ZodOptional<z.ZodBoolean>;
|
|
374
|
+
fileSet: z.ZodOptional<z.ZodEnum<{
|
|
375
|
+
all: "all";
|
|
376
|
+
gitignore: "gitignore";
|
|
377
|
+
}>>;
|
|
378
|
+
}, z.core.$strip>]>>]>>;
|
|
379
|
+
customTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
380
|
+
command: z.ZodString;
|
|
381
|
+
description: z.ZodString;
|
|
382
|
+
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
383
|
+
description: z.ZodString;
|
|
384
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
385
|
+
"absolute-paths": "absolute-paths";
|
|
386
|
+
"directory-traversal": "directory-traversal";
|
|
387
|
+
"null-bytes": "null-bytes";
|
|
388
|
+
"shell-injection": "shell-injection";
|
|
389
|
+
}>>>;
|
|
390
|
+
}, z.core.$strip>>>;
|
|
391
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
392
|
+
}, z.core.$strip>>]>>;
|
|
393
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
394
|
+
binaryFormats: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodObject<{
|
|
395
|
+
type: z.ZodEnum<{
|
|
396
|
+
audio: "audio";
|
|
397
|
+
binary: "binary";
|
|
398
|
+
file: "file";
|
|
399
|
+
image: "image";
|
|
400
|
+
video: "video";
|
|
401
|
+
}>;
|
|
402
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
403
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
404
|
+
mimeTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
405
|
+
}, z.core.$strip>>]>>;
|
|
406
|
+
}, z.core.$strip>>;
|
|
407
|
+
code: z.ZodOptional<z.ZodObject<{
|
|
408
|
+
filesystem: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
|
|
409
|
+
all: "all";
|
|
410
|
+
none: "none";
|
|
411
|
+
read: "read";
|
|
412
|
+
}>]>>;
|
|
413
|
+
builtInTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
414
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
415
|
+
command: z.ZodOptional<z.ZodString>;
|
|
416
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
417
|
+
maxOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
418
|
+
allowlist: z.ZodOptional<z.ZodBoolean>;
|
|
419
|
+
persistAllowlist: z.ZodOptional<z.ZodBoolean>;
|
|
420
|
+
judge: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
421
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
422
|
+
autoApproveLow: z.ZodOptional<z.ZodBoolean>;
|
|
423
|
+
blockHigh: z.ZodOptional<z.ZodBoolean>;
|
|
424
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
425
|
+
type: z.ZodOptional<z.ZodString>;
|
|
426
|
+
model: z.ZodOptional<z.ZodString>;
|
|
427
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
428
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
429
|
+
}, z.core.$loose>>;
|
|
430
|
+
}, z.core.$strip>]>>;
|
|
431
|
+
yolo: z.ZodOptional<z.ZodBoolean>;
|
|
432
|
+
fileSet: z.ZodOptional<z.ZodEnum<{
|
|
433
|
+
all: "all";
|
|
434
|
+
gitignore: "gitignore";
|
|
435
|
+
}>>;
|
|
436
|
+
}, z.core.$strip>]>>]>>;
|
|
437
|
+
customTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
438
|
+
command: z.ZodString;
|
|
439
|
+
description: z.ZodString;
|
|
440
|
+
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
441
|
+
description: z.ZodString;
|
|
442
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
443
|
+
"absolute-paths": "absolute-paths";
|
|
444
|
+
"directory-traversal": "directory-traversal";
|
|
445
|
+
"null-bytes": "null-bytes";
|
|
446
|
+
"shell-injection": "shell-injection";
|
|
447
|
+
}>>>;
|
|
448
|
+
}, z.core.$strip>>>;
|
|
449
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
450
|
+
}, z.core.$strip>>]>>;
|
|
451
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
452
|
+
binaryFormats: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodObject<{
|
|
453
|
+
type: z.ZodEnum<{
|
|
454
|
+
audio: "audio";
|
|
455
|
+
binary: "binary";
|
|
456
|
+
file: "file";
|
|
457
|
+
image: "image";
|
|
458
|
+
video: "video";
|
|
459
|
+
}>;
|
|
460
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
461
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
462
|
+
mimeTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
463
|
+
}, z.core.$strip>>]>>;
|
|
464
|
+
}, z.core.$strip>>;
|
|
465
|
+
exec: z.ZodOptional<z.ZodObject<{
|
|
466
|
+
filesystem: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
|
|
467
|
+
all: "all";
|
|
468
|
+
none: "none";
|
|
469
|
+
read: "read";
|
|
470
|
+
}>]>>;
|
|
471
|
+
builtInTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
472
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
473
|
+
command: z.ZodOptional<z.ZodString>;
|
|
474
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
475
|
+
maxOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
476
|
+
allowlist: z.ZodOptional<z.ZodBoolean>;
|
|
477
|
+
persistAllowlist: z.ZodOptional<z.ZodBoolean>;
|
|
478
|
+
judge: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
479
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
480
|
+
autoApproveLow: z.ZodOptional<z.ZodBoolean>;
|
|
481
|
+
blockHigh: z.ZodOptional<z.ZodBoolean>;
|
|
482
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
483
|
+
type: z.ZodOptional<z.ZodString>;
|
|
484
|
+
model: z.ZodOptional<z.ZodString>;
|
|
485
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
486
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
487
|
+
}, z.core.$loose>>;
|
|
488
|
+
}, z.core.$strip>]>>;
|
|
489
|
+
yolo: z.ZodOptional<z.ZodBoolean>;
|
|
490
|
+
fileSet: z.ZodOptional<z.ZodEnum<{
|
|
491
|
+
all: "all";
|
|
492
|
+
gitignore: "gitignore";
|
|
493
|
+
}>>;
|
|
494
|
+
}, z.core.$strip>]>>]>>;
|
|
495
|
+
customTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
496
|
+
command: z.ZodString;
|
|
497
|
+
description: z.ZodString;
|
|
498
|
+
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
499
|
+
description: z.ZodString;
|
|
500
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
501
|
+
"absolute-paths": "absolute-paths";
|
|
502
|
+
"directory-traversal": "directory-traversal";
|
|
503
|
+
"null-bytes": "null-bytes";
|
|
504
|
+
"shell-injection": "shell-injection";
|
|
505
|
+
}>>>;
|
|
506
|
+
}, z.core.$strip>>>;
|
|
507
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
508
|
+
}, z.core.$strip>>]>>;
|
|
509
|
+
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
510
|
+
binaryFormats: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodObject<{
|
|
511
|
+
type: z.ZodEnum<{
|
|
512
|
+
audio: "audio";
|
|
513
|
+
binary: "binary";
|
|
514
|
+
file: "file";
|
|
515
|
+
image: "image";
|
|
516
|
+
video: "video";
|
|
517
|
+
}>;
|
|
518
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
519
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
520
|
+
mimeTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
521
|
+
}, z.core.$strip>>]>>;
|
|
522
|
+
}, z.core.$strip>>;
|
|
523
|
+
api: z.ZodOptional<z.ZodObject<{
|
|
524
|
+
filesystem: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodEnum<{
|
|
525
|
+
all: "all";
|
|
526
|
+
none: "none";
|
|
527
|
+
read: "read";
|
|
528
|
+
}>]>>;
|
|
529
|
+
builtInTools: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
530
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
531
|
+
command: z.ZodOptional<z.ZodString>;
|
|
532
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
533
|
+
maxOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
534
|
+
allowlist: z.ZodOptional<z.ZodBoolean>;
|
|
535
|
+
persistAllowlist: z.ZodOptional<z.ZodBoolean>;
|
|
536
|
+
judge: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
537
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
538
|
+
autoApproveLow: z.ZodOptional<z.ZodBoolean>;
|
|
539
|
+
blockHigh: z.ZodOptional<z.ZodBoolean>;
|
|
540
|
+
model: z.ZodOptional<z.ZodObject<{
|
|
541
|
+
type: z.ZodOptional<z.ZodString>;
|
|
542
|
+
model: z.ZodOptional<z.ZodString>;
|
|
543
|
+
configuration: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
544
|
+
apiKeyEnvironmentVariable: z.ZodOptional<z.ZodString>;
|
|
545
|
+
}, z.core.$loose>>;
|
|
546
|
+
}, z.core.$strip>]>>;
|
|
547
|
+
yolo: z.ZodOptional<z.ZodBoolean>;
|
|
548
|
+
fileSet: z.ZodOptional<z.ZodEnum<{
|
|
549
|
+
all: "all";
|
|
550
|
+
gitignore: "gitignore";
|
|
551
|
+
}>>;
|
|
552
|
+
}, z.core.$strip>]>>]>>;
|
|
553
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
554
|
+
cors: z.ZodOptional<z.ZodObject<{
|
|
555
|
+
allowOrigin: z.ZodOptional<z.ZodString>;
|
|
556
|
+
allowMethods: z.ZodOptional<z.ZodString>;
|
|
557
|
+
allowHeaders: z.ZodOptional<z.ZodString>;
|
|
558
|
+
}, z.core.$strip>>;
|
|
559
|
+
}, z.core.$strip>>;
|
|
560
|
+
}, z.core.$strip>>;
|
|
561
|
+
commit: z.ZodOptional<z.ZodObject<{
|
|
562
|
+
coAuthor: z.ZodOptional<z.ZodObject<{
|
|
563
|
+
name: z.ZodOptional<z.ZodString>;
|
|
564
|
+
email: z.ZodOptional<z.ZodString>;
|
|
565
|
+
}, z.core.$strip>>;
|
|
566
|
+
}, z.core.$strip>>;
|
|
567
|
+
modelDisplayName: z.ZodOptional<z.ZodString>;
|
|
568
|
+
injectModelContext: z.ZodOptional<z.ZodBoolean>;
|
|
569
|
+
debugDump: z.ZodOptional<z.ZodObject<{
|
|
570
|
+
redact: z.ZodOptional<z.ZodBoolean>;
|
|
571
|
+
}, z.core.$strip>>;
|
|
572
|
+
allowDirs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
573
|
+
askWriteMode: z.ZodOptional<z.ZodBoolean>;
|
|
574
|
+
output: z.ZodOptional<z.ZodObject<{
|
|
575
|
+
header: z.ZodOptional<z.ZodBoolean>;
|
|
576
|
+
}, z.core.$strip>>;
|
|
577
|
+
reporters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
578
|
+
}, z.core.$loose>;
|
|
579
|
+
/**
|
|
580
|
+
* Type inferred from {@link rawGthConfigSchema}. This is additive and intentionally
|
|
581
|
+
* separate from the hand-written `RawGthConfig` interface in `config.ts` (it omits
|
|
582
|
+
* the deprecated aliases). Prefer `RawGthConfig` for the public surface.
|
|
583
|
+
*/
|
|
584
|
+
export type RawGthConfigInput = z.infer<typeof rawGthConfigSchema>;
|
|
585
|
+
/**
|
|
586
|
+
* The set of known top-level config keys, derived from the schema shape so it can
|
|
587
|
+
* never drift from {@link rawGthConfigSchema}. Includes `$schema`.
|
|
588
|
+
*/
|
|
589
|
+
export declare const KNOWN_TOP_LEVEL_KEYS: ReadonlySet<string>;
|
|
590
|
+
/**
|
|
591
|
+
* True when a raw config value is a plain (non-null, non-array) object, so the key scans
|
|
592
|
+
* ({@link findDeprecatedConfigIssues}, {@link findUnknownTopLevelKeys}) are safe to run. A
|
|
593
|
+
* `null`/array/primitive config (e.g. a JSON file that is just `null`, or a module
|
|
594
|
+
* `configure()` returning null) must NOT reach those scans — they'd throw on
|
|
595
|
+
* `hasOwnProperty`/`Object.keys`; the entry points instead hand it straight to
|
|
596
|
+
* `rawGthConfigSchema.safeParse`, which reports a clean "expected object" error.
|
|
597
|
+
*/
|
|
598
|
+
export declare function isRecordConfig(value: unknown): value is Record<string, unknown>;
|
|
599
|
+
/**
|
|
600
|
+
* Return the top-level keys present in `raw` that are not part of the known config
|
|
601
|
+
* surface. KNOWN deprecated names are rejected earlier by {@link findDeprecatedConfigIssues}
|
|
602
|
+
* (the entry points short-circuit on those), so a key that reaches here is a genuinely
|
|
603
|
+
* unknown key (a likely typo) that only warrants a warning.
|
|
604
|
+
*/
|
|
605
|
+
export declare function findUnknownTopLevelKeys(raw: Record<string, unknown>): string[];
|
|
606
|
+
/**
|
|
607
|
+
* Render a friendly, path-scoped validation message from a Zod error. Each issue
|
|
608
|
+
* becomes a line ` - <path>: <message>`, with `(root)` for top-level issues.
|
|
609
|
+
*/
|
|
610
|
+
export declare function formatConfigValidationError(error: z.ZodError): string;
|
|
611
|
+
/** A single deprecated-config-shape rejection: the offending `path` and the migration message. */
|
|
612
|
+
export interface DeprecatedConfigIssue {
|
|
613
|
+
/** Dotted path of the offending key (e.g. `pr`, `commands.pr.contentProvider`). */
|
|
614
|
+
path: string;
|
|
615
|
+
/** Human message naming the canonical replacement + migration path. */
|
|
616
|
+
message: string;
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* GS2-28 — detect the removed pre-2.0 config shapes on the RAW input (read-only; no
|
|
620
|
+
* mutation), returning one {@link DeprecatedConfigIssue} per occurrence. A non-empty
|
|
621
|
+
* result is a HARD validation failure: 2.0 dropped back-compat coercion, so an old shape
|
|
622
|
+
* must error and point at the fix rather than be silently remapped or ignored.
|
|
623
|
+
*
|
|
624
|
+
* Detects:
|
|
625
|
+
* - (A) a COMMAND name ({@link COMMAND_KEYS}) at the config ROOT — must move under `commands.<cmd>`;
|
|
626
|
+
* - (C) a deprecated `*Provider*` name ({@link DEPRECATED_ROOT_PAIRS} at root,
|
|
627
|
+
* {@link DEPRECATED_COMMAND_PAIRS} per command) — must use its `*Source*` replacement;
|
|
628
|
+
* - (D, CFG-18) a removed per-command key folded into another ({@link REMOVED_COMMAND_KEYS}, e.g.
|
|
629
|
+
* `commands.<cmd>.devTools` → configure under `builtInTools`).
|
|
630
|
+
*
|
|
631
|
+
* Runs on the raw input specifically so nested `commands.*.contentProvider` is still visible
|
|
632
|
+
* (zod's per-command `z.object` would strip it before any schema-embedded check could fire).
|
|
633
|
+
* A genuinely-unknown key is NOT flagged here (it stays a warn-only unknown key), preserving
|
|
634
|
+
* the deliberate typo-tolerance.
|
|
635
|
+
*/
|
|
636
|
+
export declare function findDeprecatedConfigIssues(raw: Record<string, unknown>): DeprecatedConfigIssue[];
|
|
637
|
+
/**
|
|
638
|
+
* Render {@link DeprecatedConfigIssue}s as the same ` - <path>: <message>` block used for
|
|
639
|
+
* Zod validation errors, so a deprecated-shape rejection reads identically to a type-mismatch
|
|
640
|
+
* rejection (loader wraps it with `Invalid configuration in <source>:`).
|
|
641
|
+
*/
|
|
642
|
+
export declare function formatDeprecatedConfigIssues(issues: ReadonlyArray<DeprecatedConfigIssue>): string;
|
|
643
|
+
/**
|
|
644
|
+
* Generate the JSON Schema for the raw config from {@link rawGthConfigSchema} using
|
|
645
|
+
* zod 4's native `z.toJSONSchema`. The output is committed to
|
|
646
|
+
* `packages/core/schema/gsloth-config.schema.json` and asserted by a golden test.
|
|
647
|
+
*/
|
|
648
|
+
export declare function generateConfigJsonSchema(): Record<string, unknown>;
|
|
649
|
+
/**
|
|
650
|
+
* The structured outcome of validating a single raw config layer, WITHOUT any side
|
|
651
|
+
* effects (no console output, no `exit`). This is the read-side counterpart to the
|
|
652
|
+
* loader's `validateRawConfigLayer` (which warns + `exit`s inline): `gth config validate`
|
|
653
|
+
* uses it to render its own output and choose its own exit code.
|
|
654
|
+
*/
|
|
655
|
+
export interface RawConfigValidationResult {
|
|
656
|
+
/** True when the config parses against the schema (unknown keys do NOT make it false). */
|
|
657
|
+
ok: boolean;
|
|
658
|
+
/** Non-fatal advisories: unknown top-level keys (likely typos). Deprecated shapes are hard errors, not warnings. */
|
|
659
|
+
warnings: string[];
|
|
660
|
+
/** Present only when `ok` is false: the path-scoped, multi-line validation message. */
|
|
661
|
+
errorMessage?: string;
|
|
662
|
+
}
|
|
663
|
+
/**
|
|
664
|
+
* Validate a freshly-loaded raw config object against {@link rawGthConfigSchema} and
|
|
665
|
+
* report the outcome as data (a pure function — no `displayWarning`/`exit`). Mirrors the
|
|
666
|
+
* loader's policy: a removed pre-2.0 shape (a top-level command key or a deprecated
|
|
667
|
+
* `*Provider*` name) is a HARD failure that names the fix, unknown top-level keys warn but
|
|
668
|
+
* do not fail, and a genuine type mismatch on a known field fails with a path-scoped message.
|
|
669
|
+
*
|
|
670
|
+
* Read-only: `findDeprecatedConfigIssues`, `findUnknownTopLevelKeys` and `safeParse` never
|
|
671
|
+
* mutate `raw`, so no defensive copy is needed.
|
|
672
|
+
*/
|
|
673
|
+
export declare function validateRawGthConfig(raw: Record<string, unknown>): RawConfigValidationResult;
|