@analyticscli/growth-engineer 0.1.0-preview.0

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.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/dist/config.d.ts +1663 -0
  4. package/dist/config.js +266 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +1188 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/runtime/export-analytics-summary.d.mts +2 -0
  10. package/dist/runtime/export-analytics-summary.mjs +303 -0
  11. package/dist/runtime/export-analytics-summary.mjs.map +1 -0
  12. package/dist/runtime/export-asc-summary.d.mts +2 -0
  13. package/dist/runtime/export-asc-summary.mjs +376 -0
  14. package/dist/runtime/export-asc-summary.mjs.map +1 -0
  15. package/dist/runtime/export-revenuecat-summary.d.mts +2 -0
  16. package/dist/runtime/export-revenuecat-summary.mjs +176 -0
  17. package/dist/runtime/export-revenuecat-summary.mjs.map +1 -0
  18. package/dist/runtime/export-sentry-summary.d.mts +2 -0
  19. package/dist/runtime/export-sentry-summary.mjs +352 -0
  20. package/dist/runtime/export-sentry-summary.mjs.map +1 -0
  21. package/dist/runtime/openclaw-exporters-lib.d.mts +101 -0
  22. package/dist/runtime/openclaw-exporters-lib.mjs +1276 -0
  23. package/dist/runtime/openclaw-exporters-lib.mjs.map +1 -0
  24. package/dist/runtime/openclaw-feedback-api.d.mts +2 -0
  25. package/dist/runtime/openclaw-feedback-api.mjs +255 -0
  26. package/dist/runtime/openclaw-feedback-api.mjs.map +1 -0
  27. package/dist/runtime/openclaw-growth-charts.py +154 -0
  28. package/dist/runtime/openclaw-growth-engineer.d.mts +2 -0
  29. package/dist/runtime/openclaw-growth-engineer.mjs +1258 -0
  30. package/dist/runtime/openclaw-growth-engineer.mjs.map +1 -0
  31. package/dist/runtime/openclaw-growth-env.d.mts +9 -0
  32. package/dist/runtime/openclaw-growth-env.mjs +125 -0
  33. package/dist/runtime/openclaw-growth-env.mjs.map +1 -0
  34. package/dist/runtime/openclaw-growth-preflight.d.mts +2 -0
  35. package/dist/runtime/openclaw-growth-preflight.mjs +1111 -0
  36. package/dist/runtime/openclaw-growth-preflight.mjs.map +1 -0
  37. package/dist/runtime/openclaw-growth-runner.d.mts +2 -0
  38. package/dist/runtime/openclaw-growth-runner.mjs +1302 -0
  39. package/dist/runtime/openclaw-growth-runner.mjs.map +1 -0
  40. package/dist/runtime/openclaw-growth-shared.d.mts +33 -0
  41. package/dist/runtime/openclaw-growth-shared.mjs +208 -0
  42. package/dist/runtime/openclaw-growth-shared.mjs.map +1 -0
  43. package/dist/runtime/openclaw-growth-start.d.mts +2 -0
  44. package/dist/runtime/openclaw-growth-start.mjs +1575 -0
  45. package/dist/runtime/openclaw-growth-start.mjs.map +1 -0
  46. package/dist/runtime/openclaw-growth-status.d.mts +2 -0
  47. package/dist/runtime/openclaw-growth-status.mjs +387 -0
  48. package/dist/runtime/openclaw-growth-status.mjs.map +1 -0
  49. package/dist/runtime/openclaw-growth-wizard.d.mts +2 -0
  50. package/dist/runtime/openclaw-growth-wizard.mjs +3519 -0
  51. package/dist/runtime/openclaw-growth-wizard.mjs.map +1 -0
  52. package/dist/shell.d.ts +17 -0
  53. package/dist/shell.js +40 -0
  54. package/dist/shell.js.map +1 -0
  55. package/package.json +38 -0
  56. package/templates/analytics_summary.example.json +40 -0
  57. package/templates/config.example.json +197 -0
  58. package/templates/feedback_summary.example.json +37 -0
  59. package/templates/revenuecat_summary.example.json +25 -0
  60. package/templates/sentry_summary.example.json +23 -0
@@ -0,0 +1,1663 @@
1
+ import { z } from 'zod';
2
+ declare const sourceSchema: z.ZodObject<{
3
+ enabled: z.ZodOptional<z.ZodBoolean>;
4
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
5
+ command: z.ZodOptional<z.ZodString>;
6
+ path: z.ZodOptional<z.ZodString>;
7
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
8
+ initialLookback: z.ZodOptional<z.ZodString>;
9
+ key: z.ZodOptional<z.ZodString>;
10
+ label: z.ZodOptional<z.ZodString>;
11
+ service: z.ZodOptional<z.ZodString>;
12
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13
+ hint: z.ZodOptional<z.ZodString>;
14
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
15
+ enabled: z.ZodOptional<z.ZodBoolean>;
16
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
17
+ command: z.ZodOptional<z.ZodString>;
18
+ path: z.ZodOptional<z.ZodString>;
19
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
20
+ initialLookback: z.ZodOptional<z.ZodString>;
21
+ key: z.ZodOptional<z.ZodString>;
22
+ label: z.ZodOptional<z.ZodString>;
23
+ service: z.ZodOptional<z.ZodString>;
24
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
+ hint: z.ZodOptional<z.ZodString>;
26
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
27
+ enabled: z.ZodOptional<z.ZodBoolean>;
28
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
29
+ command: z.ZodOptional<z.ZodString>;
30
+ path: z.ZodOptional<z.ZodString>;
31
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
32
+ initialLookback: z.ZodOptional<z.ZodString>;
33
+ key: z.ZodOptional<z.ZodString>;
34
+ label: z.ZodOptional<z.ZodString>;
35
+ service: z.ZodOptional<z.ZodString>;
36
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
37
+ hint: z.ZodOptional<z.ZodString>;
38
+ }, z.ZodTypeAny, "passthrough">>;
39
+ declare const scheduleSchema: z.ZodDefault<z.ZodObject<{
40
+ intervalMinutes: z.ZodDefault<z.ZodNumber>;
41
+ connectorHealthCheckIntervalMinutes: z.ZodDefault<z.ZodNumber>;
42
+ skipIfNoDataChange: z.ZodDefault<z.ZodBoolean>;
43
+ skipIfIssueSetUnchanged: z.ZodDefault<z.ZodBoolean>;
44
+ cadences: z.ZodDefault<z.ZodArray<z.ZodObject<{
45
+ key: z.ZodString;
46
+ title: z.ZodOptional<z.ZodString>;
47
+ intervalDays: z.ZodOptional<z.ZodNumber>;
48
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
49
+ objective: z.ZodOptional<z.ZodString>;
50
+ instructions: z.ZodOptional<z.ZodString>;
51
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
52
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
53
+ enabled: z.ZodDefault<z.ZodBoolean>;
54
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
55
+ key: z.ZodString;
56
+ title: z.ZodOptional<z.ZodString>;
57
+ intervalDays: z.ZodOptional<z.ZodNumber>;
58
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
59
+ objective: z.ZodOptional<z.ZodString>;
60
+ instructions: z.ZodOptional<z.ZodString>;
61
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
62
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
63
+ enabled: z.ZodDefault<z.ZodBoolean>;
64
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
65
+ key: z.ZodString;
66
+ title: z.ZodOptional<z.ZodString>;
67
+ intervalDays: z.ZodOptional<z.ZodNumber>;
68
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
69
+ objective: z.ZodOptional<z.ZodString>;
70
+ instructions: z.ZodOptional<z.ZodString>;
71
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
72
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
73
+ enabled: z.ZodDefault<z.ZodBoolean>;
74
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
75
+ }, "strip", z.ZodTypeAny, {
76
+ intervalMinutes?: number;
77
+ connectorHealthCheckIntervalMinutes?: number;
78
+ skipIfNoDataChange?: boolean;
79
+ skipIfIssueSetUnchanged?: boolean;
80
+ cadences?: z.objectOutputType<{
81
+ key: z.ZodString;
82
+ title: z.ZodOptional<z.ZodString>;
83
+ intervalDays: z.ZodOptional<z.ZodNumber>;
84
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
85
+ objective: z.ZodOptional<z.ZodString>;
86
+ instructions: z.ZodOptional<z.ZodString>;
87
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
88
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
89
+ enabled: z.ZodDefault<z.ZodBoolean>;
90
+ }, z.ZodTypeAny, "passthrough">[];
91
+ }, {
92
+ intervalMinutes?: number;
93
+ connectorHealthCheckIntervalMinutes?: number;
94
+ skipIfNoDataChange?: boolean;
95
+ skipIfIssueSetUnchanged?: boolean;
96
+ cadences?: z.objectInputType<{
97
+ key: z.ZodString;
98
+ title: z.ZodOptional<z.ZodString>;
99
+ intervalDays: z.ZodOptional<z.ZodNumber>;
100
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
101
+ objective: z.ZodOptional<z.ZodString>;
102
+ instructions: z.ZodOptional<z.ZodString>;
103
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
104
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
105
+ enabled: z.ZodDefault<z.ZodBoolean>;
106
+ }, z.ZodTypeAny, "passthrough">[];
107
+ }>>;
108
+ declare const strategySchema: z.ZodDefault<z.ZodObject<{
109
+ proposalMode: z.ZodDefault<z.ZodEnum<["mandatory", "balanced", "creative"]>>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ proposalMode?: "mandatory" | "balanced" | "creative";
112
+ }, {
113
+ proposalMode?: "mandatory" | "balanced" | "creative";
114
+ }>>;
115
+ declare const secretsSchema: z.ZodDefault<z.ZodObject<{
116
+ githubTokenEnv: z.ZodDefault<z.ZodString>;
117
+ githubTokenRef: z.ZodOptional<z.ZodObject<{
118
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
119
+ provider: z.ZodDefault<z.ZodString>;
120
+ id: z.ZodString;
121
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
122
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
123
+ provider: z.ZodDefault<z.ZodString>;
124
+ id: z.ZodString;
125
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
126
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
127
+ provider: z.ZodDefault<z.ZodString>;
128
+ id: z.ZodString;
129
+ }, z.ZodTypeAny, "passthrough">>>;
130
+ analyticsTokenEnv: z.ZodDefault<z.ZodString>;
131
+ analyticsTokenRef: z.ZodOptional<z.ZodObject<{
132
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
133
+ provider: z.ZodDefault<z.ZodString>;
134
+ id: z.ZodString;
135
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
136
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
137
+ provider: z.ZodDefault<z.ZodString>;
138
+ id: z.ZodString;
139
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
140
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
141
+ provider: z.ZodDefault<z.ZodString>;
142
+ id: z.ZodString;
143
+ }, z.ZodTypeAny, "passthrough">>>;
144
+ revenuecatTokenEnv: z.ZodDefault<z.ZodString>;
145
+ revenuecatTokenRef: z.ZodOptional<z.ZodObject<{
146
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
147
+ provider: z.ZodDefault<z.ZodString>;
148
+ id: z.ZodString;
149
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
150
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
151
+ provider: z.ZodDefault<z.ZodString>;
152
+ id: z.ZodString;
153
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
154
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
155
+ provider: z.ZodDefault<z.ZodString>;
156
+ id: z.ZodString;
157
+ }, z.ZodTypeAny, "passthrough">>>;
158
+ sentryTokenEnv: z.ZodDefault<z.ZodString>;
159
+ sentryTokenRef: z.ZodOptional<z.ZodObject<{
160
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
161
+ provider: z.ZodDefault<z.ZodString>;
162
+ id: z.ZodString;
163
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
164
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
165
+ provider: z.ZodDefault<z.ZodString>;
166
+ id: z.ZodString;
167
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
168
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
169
+ provider: z.ZodDefault<z.ZodString>;
170
+ id: z.ZodString;
171
+ }, z.ZodTypeAny, "passthrough">>>;
172
+ }, "strip", z.ZodTypeAny, {
173
+ githubTokenEnv?: string;
174
+ githubTokenRef?: {
175
+ source?: "file" | "env" | "exec";
176
+ provider?: string;
177
+ id?: string;
178
+ } & {
179
+ [k: string]: unknown;
180
+ };
181
+ analyticsTokenEnv?: string;
182
+ analyticsTokenRef?: {
183
+ source?: "file" | "env" | "exec";
184
+ provider?: string;
185
+ id?: string;
186
+ } & {
187
+ [k: string]: unknown;
188
+ };
189
+ revenuecatTokenEnv?: string;
190
+ revenuecatTokenRef?: {
191
+ source?: "file" | "env" | "exec";
192
+ provider?: string;
193
+ id?: string;
194
+ } & {
195
+ [k: string]: unknown;
196
+ };
197
+ sentryTokenEnv?: string;
198
+ sentryTokenRef?: {
199
+ source?: "file" | "env" | "exec";
200
+ provider?: string;
201
+ id?: string;
202
+ } & {
203
+ [k: string]: unknown;
204
+ };
205
+ }, {
206
+ githubTokenEnv?: string;
207
+ githubTokenRef?: {
208
+ source?: "file" | "env" | "exec";
209
+ provider?: string;
210
+ id?: string;
211
+ } & {
212
+ [k: string]: unknown;
213
+ };
214
+ analyticsTokenEnv?: string;
215
+ analyticsTokenRef?: {
216
+ source?: "file" | "env" | "exec";
217
+ provider?: string;
218
+ id?: string;
219
+ } & {
220
+ [k: string]: unknown;
221
+ };
222
+ revenuecatTokenEnv?: string;
223
+ revenuecatTokenRef?: {
224
+ source?: "file" | "env" | "exec";
225
+ provider?: string;
226
+ id?: string;
227
+ } & {
228
+ [k: string]: unknown;
229
+ };
230
+ sentryTokenEnv?: string;
231
+ sentryTokenRef?: {
232
+ source?: "file" | "env" | "exec";
233
+ provider?: string;
234
+ id?: string;
235
+ } & {
236
+ [k: string]: unknown;
237
+ };
238
+ }>>;
239
+ declare const templateConfigSchema: z.ZodObject<{
240
+ version: z.ZodDefault<z.ZodNumber>;
241
+ generatedAt: z.ZodOptional<z.ZodString>;
242
+ project: z.ZodObject<{
243
+ githubRepo: z.ZodString;
244
+ repoRoot: z.ZodDefault<z.ZodString>;
245
+ outFile: z.ZodDefault<z.ZodString>;
246
+ maxIssues: z.ZodDefault<z.ZodNumber>;
247
+ titlePrefix: z.ZodDefault<z.ZodString>;
248
+ labels: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
249
+ }, "strip", z.ZodTypeAny, {
250
+ githubRepo?: string;
251
+ repoRoot?: string;
252
+ outFile?: string;
253
+ maxIssues?: number;
254
+ titlePrefix?: string;
255
+ labels?: string[];
256
+ }, {
257
+ githubRepo?: string;
258
+ repoRoot?: string;
259
+ outFile?: string;
260
+ maxIssues?: number;
261
+ titlePrefix?: string;
262
+ labels?: string[];
263
+ }>;
264
+ sources: z.ZodDefault<z.ZodObject<{
265
+ analytics: z.ZodDefault<z.ZodObject<{
266
+ enabled: z.ZodOptional<z.ZodBoolean>;
267
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
268
+ command: z.ZodOptional<z.ZodString>;
269
+ path: z.ZodOptional<z.ZodString>;
270
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
271
+ initialLookback: z.ZodOptional<z.ZodString>;
272
+ key: z.ZodOptional<z.ZodString>;
273
+ label: z.ZodOptional<z.ZodString>;
274
+ service: z.ZodOptional<z.ZodString>;
275
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
276
+ hint: z.ZodOptional<z.ZodString>;
277
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
278
+ enabled: z.ZodOptional<z.ZodBoolean>;
279
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
280
+ command: z.ZodOptional<z.ZodString>;
281
+ path: z.ZodOptional<z.ZodString>;
282
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
283
+ initialLookback: z.ZodOptional<z.ZodString>;
284
+ key: z.ZodOptional<z.ZodString>;
285
+ label: z.ZodOptional<z.ZodString>;
286
+ service: z.ZodOptional<z.ZodString>;
287
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
288
+ hint: z.ZodOptional<z.ZodString>;
289
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
290
+ enabled: z.ZodOptional<z.ZodBoolean>;
291
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
292
+ command: z.ZodOptional<z.ZodString>;
293
+ path: z.ZodOptional<z.ZodString>;
294
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
295
+ initialLookback: z.ZodOptional<z.ZodString>;
296
+ key: z.ZodOptional<z.ZodString>;
297
+ label: z.ZodOptional<z.ZodString>;
298
+ service: z.ZodOptional<z.ZodString>;
299
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
300
+ hint: z.ZodOptional<z.ZodString>;
301
+ }, z.ZodTypeAny, "passthrough">>>;
302
+ revenuecat: z.ZodDefault<z.ZodObject<{
303
+ enabled: z.ZodOptional<z.ZodBoolean>;
304
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
305
+ command: z.ZodOptional<z.ZodString>;
306
+ path: z.ZodOptional<z.ZodString>;
307
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
308
+ initialLookback: z.ZodOptional<z.ZodString>;
309
+ key: z.ZodOptional<z.ZodString>;
310
+ label: z.ZodOptional<z.ZodString>;
311
+ service: z.ZodOptional<z.ZodString>;
312
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
313
+ hint: z.ZodOptional<z.ZodString>;
314
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
315
+ enabled: z.ZodOptional<z.ZodBoolean>;
316
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
317
+ command: z.ZodOptional<z.ZodString>;
318
+ path: z.ZodOptional<z.ZodString>;
319
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
320
+ initialLookback: z.ZodOptional<z.ZodString>;
321
+ key: z.ZodOptional<z.ZodString>;
322
+ label: z.ZodOptional<z.ZodString>;
323
+ service: z.ZodOptional<z.ZodString>;
324
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
325
+ hint: z.ZodOptional<z.ZodString>;
326
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
327
+ enabled: z.ZodOptional<z.ZodBoolean>;
328
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
329
+ command: z.ZodOptional<z.ZodString>;
330
+ path: z.ZodOptional<z.ZodString>;
331
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
332
+ initialLookback: z.ZodOptional<z.ZodString>;
333
+ key: z.ZodOptional<z.ZodString>;
334
+ label: z.ZodOptional<z.ZodString>;
335
+ service: z.ZodOptional<z.ZodString>;
336
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
337
+ hint: z.ZodOptional<z.ZodString>;
338
+ }, z.ZodTypeAny, "passthrough">>>;
339
+ sentry: z.ZodDefault<z.ZodObject<{
340
+ enabled: z.ZodOptional<z.ZodBoolean>;
341
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
342
+ command: z.ZodOptional<z.ZodString>;
343
+ path: z.ZodOptional<z.ZodString>;
344
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
345
+ initialLookback: z.ZodOptional<z.ZodString>;
346
+ key: z.ZodOptional<z.ZodString>;
347
+ label: z.ZodOptional<z.ZodString>;
348
+ service: z.ZodOptional<z.ZodString>;
349
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
350
+ hint: z.ZodOptional<z.ZodString>;
351
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
352
+ enabled: z.ZodOptional<z.ZodBoolean>;
353
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
354
+ command: z.ZodOptional<z.ZodString>;
355
+ path: z.ZodOptional<z.ZodString>;
356
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
357
+ initialLookback: z.ZodOptional<z.ZodString>;
358
+ key: z.ZodOptional<z.ZodString>;
359
+ label: z.ZodOptional<z.ZodString>;
360
+ service: z.ZodOptional<z.ZodString>;
361
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
362
+ hint: z.ZodOptional<z.ZodString>;
363
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
364
+ enabled: z.ZodOptional<z.ZodBoolean>;
365
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
366
+ command: z.ZodOptional<z.ZodString>;
367
+ path: z.ZodOptional<z.ZodString>;
368
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
369
+ initialLookback: z.ZodOptional<z.ZodString>;
370
+ key: z.ZodOptional<z.ZodString>;
371
+ label: z.ZodOptional<z.ZodString>;
372
+ service: z.ZodOptional<z.ZodString>;
373
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
374
+ hint: z.ZodOptional<z.ZodString>;
375
+ }, z.ZodTypeAny, "passthrough">>>;
376
+ feedback: z.ZodDefault<z.ZodObject<{
377
+ enabled: z.ZodOptional<z.ZodBoolean>;
378
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
379
+ command: z.ZodOptional<z.ZodString>;
380
+ path: z.ZodOptional<z.ZodString>;
381
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
382
+ initialLookback: z.ZodOptional<z.ZodString>;
383
+ key: z.ZodOptional<z.ZodString>;
384
+ label: z.ZodOptional<z.ZodString>;
385
+ service: z.ZodOptional<z.ZodString>;
386
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
387
+ hint: z.ZodOptional<z.ZodString>;
388
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
389
+ enabled: z.ZodOptional<z.ZodBoolean>;
390
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
391
+ command: z.ZodOptional<z.ZodString>;
392
+ path: z.ZodOptional<z.ZodString>;
393
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
394
+ initialLookback: z.ZodOptional<z.ZodString>;
395
+ key: z.ZodOptional<z.ZodString>;
396
+ label: z.ZodOptional<z.ZodString>;
397
+ service: z.ZodOptional<z.ZodString>;
398
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
399
+ hint: z.ZodOptional<z.ZodString>;
400
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
401
+ enabled: z.ZodOptional<z.ZodBoolean>;
402
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
403
+ command: z.ZodOptional<z.ZodString>;
404
+ path: z.ZodOptional<z.ZodString>;
405
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
406
+ initialLookback: z.ZodOptional<z.ZodString>;
407
+ key: z.ZodOptional<z.ZodString>;
408
+ label: z.ZodOptional<z.ZodString>;
409
+ service: z.ZodOptional<z.ZodString>;
410
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
411
+ hint: z.ZodOptional<z.ZodString>;
412
+ }, z.ZodTypeAny, "passthrough">>>;
413
+ extra: z.ZodDefault<z.ZodArray<z.ZodObject<{
414
+ enabled: z.ZodOptional<z.ZodBoolean>;
415
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
416
+ command: z.ZodOptional<z.ZodString>;
417
+ path: z.ZodOptional<z.ZodString>;
418
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
419
+ initialLookback: z.ZodOptional<z.ZodString>;
420
+ key: z.ZodOptional<z.ZodString>;
421
+ label: z.ZodOptional<z.ZodString>;
422
+ service: z.ZodOptional<z.ZodString>;
423
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
424
+ hint: z.ZodOptional<z.ZodString>;
425
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
426
+ enabled: z.ZodOptional<z.ZodBoolean>;
427
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
428
+ command: z.ZodOptional<z.ZodString>;
429
+ path: z.ZodOptional<z.ZodString>;
430
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
431
+ initialLookback: z.ZodOptional<z.ZodString>;
432
+ key: z.ZodOptional<z.ZodString>;
433
+ label: z.ZodOptional<z.ZodString>;
434
+ service: z.ZodOptional<z.ZodString>;
435
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
436
+ hint: z.ZodOptional<z.ZodString>;
437
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
438
+ enabled: z.ZodOptional<z.ZodBoolean>;
439
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
440
+ command: z.ZodOptional<z.ZodString>;
441
+ path: z.ZodOptional<z.ZodString>;
442
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
443
+ initialLookback: z.ZodOptional<z.ZodString>;
444
+ key: z.ZodOptional<z.ZodString>;
445
+ label: z.ZodOptional<z.ZodString>;
446
+ service: z.ZodOptional<z.ZodString>;
447
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
448
+ hint: z.ZodOptional<z.ZodString>;
449
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
450
+ }, "strip", z.ZodTypeAny, {
451
+ analytics?: {
452
+ enabled?: boolean;
453
+ command?: string;
454
+ mode?: "command" | "file";
455
+ path?: string;
456
+ cursorMode?: "manual" | "auto_since_last_fetch";
457
+ initialLookback?: string;
458
+ key?: string;
459
+ label?: string;
460
+ service?: string;
461
+ secretEnv?: string;
462
+ hint?: string;
463
+ } & {
464
+ [k: string]: unknown;
465
+ };
466
+ revenuecat?: {
467
+ enabled?: boolean;
468
+ command?: string;
469
+ mode?: "command" | "file";
470
+ path?: string;
471
+ cursorMode?: "manual" | "auto_since_last_fetch";
472
+ initialLookback?: string;
473
+ key?: string;
474
+ label?: string;
475
+ service?: string;
476
+ secretEnv?: string;
477
+ hint?: string;
478
+ } & {
479
+ [k: string]: unknown;
480
+ };
481
+ sentry?: {
482
+ enabled?: boolean;
483
+ command?: string;
484
+ mode?: "command" | "file";
485
+ path?: string;
486
+ cursorMode?: "manual" | "auto_since_last_fetch";
487
+ initialLookback?: string;
488
+ key?: string;
489
+ label?: string;
490
+ service?: string;
491
+ secretEnv?: string;
492
+ hint?: string;
493
+ } & {
494
+ [k: string]: unknown;
495
+ };
496
+ feedback?: {
497
+ enabled?: boolean;
498
+ command?: string;
499
+ mode?: "command" | "file";
500
+ path?: string;
501
+ cursorMode?: "manual" | "auto_since_last_fetch";
502
+ initialLookback?: string;
503
+ key?: string;
504
+ label?: string;
505
+ service?: string;
506
+ secretEnv?: string;
507
+ hint?: string;
508
+ } & {
509
+ [k: string]: unknown;
510
+ };
511
+ extra?: z.objectOutputType<{
512
+ enabled: z.ZodOptional<z.ZodBoolean>;
513
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
514
+ command: z.ZodOptional<z.ZodString>;
515
+ path: z.ZodOptional<z.ZodString>;
516
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
517
+ initialLookback: z.ZodOptional<z.ZodString>;
518
+ key: z.ZodOptional<z.ZodString>;
519
+ label: z.ZodOptional<z.ZodString>;
520
+ service: z.ZodOptional<z.ZodString>;
521
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
522
+ hint: z.ZodOptional<z.ZodString>;
523
+ }, z.ZodTypeAny, "passthrough">[];
524
+ }, {
525
+ analytics?: {
526
+ enabled?: boolean;
527
+ command?: string;
528
+ mode?: "command" | "file";
529
+ path?: string;
530
+ cursorMode?: "manual" | "auto_since_last_fetch";
531
+ initialLookback?: string;
532
+ key?: string;
533
+ label?: string;
534
+ service?: string;
535
+ secretEnv?: string;
536
+ hint?: string;
537
+ } & {
538
+ [k: string]: unknown;
539
+ };
540
+ revenuecat?: {
541
+ enabled?: boolean;
542
+ command?: string;
543
+ mode?: "command" | "file";
544
+ path?: string;
545
+ cursorMode?: "manual" | "auto_since_last_fetch";
546
+ initialLookback?: string;
547
+ key?: string;
548
+ label?: string;
549
+ service?: string;
550
+ secretEnv?: string;
551
+ hint?: string;
552
+ } & {
553
+ [k: string]: unknown;
554
+ };
555
+ sentry?: {
556
+ enabled?: boolean;
557
+ command?: string;
558
+ mode?: "command" | "file";
559
+ path?: string;
560
+ cursorMode?: "manual" | "auto_since_last_fetch";
561
+ initialLookback?: string;
562
+ key?: string;
563
+ label?: string;
564
+ service?: string;
565
+ secretEnv?: string;
566
+ hint?: string;
567
+ } & {
568
+ [k: string]: unknown;
569
+ };
570
+ feedback?: {
571
+ enabled?: boolean;
572
+ command?: string;
573
+ mode?: "command" | "file";
574
+ path?: string;
575
+ cursorMode?: "manual" | "auto_since_last_fetch";
576
+ initialLookback?: string;
577
+ key?: string;
578
+ label?: string;
579
+ service?: string;
580
+ secretEnv?: string;
581
+ hint?: string;
582
+ } & {
583
+ [k: string]: unknown;
584
+ };
585
+ extra?: z.objectInputType<{
586
+ enabled: z.ZodOptional<z.ZodBoolean>;
587
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
588
+ command: z.ZodOptional<z.ZodString>;
589
+ path: z.ZodOptional<z.ZodString>;
590
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
591
+ initialLookback: z.ZodOptional<z.ZodString>;
592
+ key: z.ZodOptional<z.ZodString>;
593
+ label: z.ZodOptional<z.ZodString>;
594
+ service: z.ZodOptional<z.ZodString>;
595
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
596
+ hint: z.ZodOptional<z.ZodString>;
597
+ }, z.ZodTypeAny, "passthrough">[];
598
+ }>>;
599
+ schedule: z.ZodDefault<z.ZodObject<{
600
+ intervalMinutes: z.ZodDefault<z.ZodNumber>;
601
+ connectorHealthCheckIntervalMinutes: z.ZodDefault<z.ZodNumber>;
602
+ skipIfNoDataChange: z.ZodDefault<z.ZodBoolean>;
603
+ skipIfIssueSetUnchanged: z.ZodDefault<z.ZodBoolean>;
604
+ cadences: z.ZodDefault<z.ZodArray<z.ZodObject<{
605
+ key: z.ZodString;
606
+ title: z.ZodOptional<z.ZodString>;
607
+ intervalDays: z.ZodOptional<z.ZodNumber>;
608
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
609
+ objective: z.ZodOptional<z.ZodString>;
610
+ instructions: z.ZodOptional<z.ZodString>;
611
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
612
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
613
+ enabled: z.ZodDefault<z.ZodBoolean>;
614
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
615
+ key: z.ZodString;
616
+ title: z.ZodOptional<z.ZodString>;
617
+ intervalDays: z.ZodOptional<z.ZodNumber>;
618
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
619
+ objective: z.ZodOptional<z.ZodString>;
620
+ instructions: z.ZodOptional<z.ZodString>;
621
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
622
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
623
+ enabled: z.ZodDefault<z.ZodBoolean>;
624
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
625
+ key: z.ZodString;
626
+ title: z.ZodOptional<z.ZodString>;
627
+ intervalDays: z.ZodOptional<z.ZodNumber>;
628
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
629
+ objective: z.ZodOptional<z.ZodString>;
630
+ instructions: z.ZodOptional<z.ZodString>;
631
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
632
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
633
+ enabled: z.ZodDefault<z.ZodBoolean>;
634
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
635
+ }, "strip", z.ZodTypeAny, {
636
+ intervalMinutes?: number;
637
+ connectorHealthCheckIntervalMinutes?: number;
638
+ skipIfNoDataChange?: boolean;
639
+ skipIfIssueSetUnchanged?: boolean;
640
+ cadences?: z.objectOutputType<{
641
+ key: z.ZodString;
642
+ title: z.ZodOptional<z.ZodString>;
643
+ intervalDays: z.ZodOptional<z.ZodNumber>;
644
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
645
+ objective: z.ZodOptional<z.ZodString>;
646
+ instructions: z.ZodOptional<z.ZodString>;
647
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
648
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
649
+ enabled: z.ZodDefault<z.ZodBoolean>;
650
+ }, z.ZodTypeAny, "passthrough">[];
651
+ }, {
652
+ intervalMinutes?: number;
653
+ connectorHealthCheckIntervalMinutes?: number;
654
+ skipIfNoDataChange?: boolean;
655
+ skipIfIssueSetUnchanged?: boolean;
656
+ cadences?: z.objectInputType<{
657
+ key: z.ZodString;
658
+ title: z.ZodOptional<z.ZodString>;
659
+ intervalDays: z.ZodOptional<z.ZodNumber>;
660
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
661
+ objective: z.ZodOptional<z.ZodString>;
662
+ instructions: z.ZodOptional<z.ZodString>;
663
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
664
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
665
+ enabled: z.ZodDefault<z.ZodBoolean>;
666
+ }, z.ZodTypeAny, "passthrough">[];
667
+ }>>;
668
+ strategy: z.ZodDefault<z.ZodObject<{
669
+ proposalMode: z.ZodDefault<z.ZodEnum<["mandatory", "balanced", "creative"]>>;
670
+ }, "strip", z.ZodTypeAny, {
671
+ proposalMode?: "mandatory" | "balanced" | "creative";
672
+ }, {
673
+ proposalMode?: "mandatory" | "balanced" | "creative";
674
+ }>>;
675
+ deliveries: z.ZodDefault<z.ZodObject<{
676
+ openclawChat: z.ZodDefault<z.ZodObject<{
677
+ enabled: z.ZodDefault<z.ZodBoolean>;
678
+ markdownPath: z.ZodDefault<z.ZodString>;
679
+ jsonPath: z.ZodDefault<z.ZodString>;
680
+ }, "strip", z.ZodTypeAny, {
681
+ enabled?: boolean;
682
+ markdownPath?: string;
683
+ jsonPath?: string;
684
+ }, {
685
+ enabled?: boolean;
686
+ markdownPath?: string;
687
+ jsonPath?: string;
688
+ }>>;
689
+ github: z.ZodDefault<z.ZodObject<{
690
+ enabled: z.ZodDefault<z.ZodBoolean>;
691
+ mode: z.ZodDefault<z.ZodEnum<["issue", "pull_request"]>>;
692
+ autoCreate: z.ZodDefault<z.ZodBoolean>;
693
+ draftPullRequests: z.ZodDefault<z.ZodBoolean>;
694
+ proposalBranchPrefix: z.ZodDefault<z.ZodString>;
695
+ }, "strip", z.ZodTypeAny, {
696
+ enabled?: boolean;
697
+ mode?: "issue" | "pull_request";
698
+ autoCreate?: boolean;
699
+ draftPullRequests?: boolean;
700
+ proposalBranchPrefix?: string;
701
+ }, {
702
+ enabled?: boolean;
703
+ mode?: "issue" | "pull_request";
704
+ autoCreate?: boolean;
705
+ draftPullRequests?: boolean;
706
+ proposalBranchPrefix?: string;
707
+ }>>;
708
+ slack: z.ZodDefault<z.ZodObject<{
709
+ enabled: z.ZodDefault<z.ZodBoolean>;
710
+ webhookEnv: z.ZodDefault<z.ZodString>;
711
+ username: z.ZodOptional<z.ZodString>;
712
+ }, "strip", z.ZodTypeAny, {
713
+ enabled?: boolean;
714
+ webhookEnv?: string;
715
+ username?: string;
716
+ }, {
717
+ enabled?: boolean;
718
+ webhookEnv?: string;
719
+ username?: string;
720
+ }>>;
721
+ webhook: z.ZodDefault<z.ZodObject<{
722
+ enabled: z.ZodDefault<z.ZodBoolean>;
723
+ urlEnv: z.ZodDefault<z.ZodString>;
724
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
725
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
726
+ }, "strip", z.ZodTypeAny, {
727
+ enabled?: boolean;
728
+ urlEnv?: string;
729
+ method?: "POST";
730
+ headers?: Record<string, string>;
731
+ }, {
732
+ enabled?: boolean;
733
+ urlEnv?: string;
734
+ method?: "POST";
735
+ headers?: Record<string, string>;
736
+ }>>;
737
+ discord: z.ZodDefault<z.ZodObject<{
738
+ enabled: z.ZodDefault<z.ZodBoolean>;
739
+ command: z.ZodDefault<z.ZodString>;
740
+ }, "strip", z.ZodTypeAny, {
741
+ enabled?: boolean;
742
+ command?: string;
743
+ }, {
744
+ enabled?: boolean;
745
+ command?: string;
746
+ }>>;
747
+ }, "strip", z.ZodTypeAny, {
748
+ slack?: {
749
+ enabled?: boolean;
750
+ webhookEnv?: string;
751
+ username?: string;
752
+ };
753
+ webhook?: {
754
+ enabled?: boolean;
755
+ urlEnv?: string;
756
+ method?: "POST";
757
+ headers?: Record<string, string>;
758
+ };
759
+ openclawChat?: {
760
+ enabled?: boolean;
761
+ markdownPath?: string;
762
+ jsonPath?: string;
763
+ };
764
+ github?: {
765
+ enabled?: boolean;
766
+ mode?: "issue" | "pull_request";
767
+ autoCreate?: boolean;
768
+ draftPullRequests?: boolean;
769
+ proposalBranchPrefix?: string;
770
+ };
771
+ discord?: {
772
+ enabled?: boolean;
773
+ command?: string;
774
+ };
775
+ }, {
776
+ slack?: {
777
+ enabled?: boolean;
778
+ webhookEnv?: string;
779
+ username?: string;
780
+ };
781
+ webhook?: {
782
+ enabled?: boolean;
783
+ urlEnv?: string;
784
+ method?: "POST";
785
+ headers?: Record<string, string>;
786
+ };
787
+ openclawChat?: {
788
+ enabled?: boolean;
789
+ markdownPath?: string;
790
+ jsonPath?: string;
791
+ };
792
+ github?: {
793
+ enabled?: boolean;
794
+ mode?: "issue" | "pull_request";
795
+ autoCreate?: boolean;
796
+ draftPullRequests?: boolean;
797
+ proposalBranchPrefix?: string;
798
+ };
799
+ discord?: {
800
+ enabled?: boolean;
801
+ command?: string;
802
+ };
803
+ }>>;
804
+ charting: z.ZodDefault<z.ZodObject<{
805
+ enabled: z.ZodDefault<z.ZodBoolean>;
806
+ command: z.ZodDefault<z.ZodNullable<z.ZodString>>;
807
+ }, "strip", z.ZodTypeAny, {
808
+ enabled?: boolean;
809
+ command?: string;
810
+ }, {
811
+ enabled?: boolean;
812
+ command?: string;
813
+ }>>;
814
+ notifications: z.ZodDefault<z.ZodObject<{
815
+ connectorHealth: z.ZodDefault<z.ZodObject<{
816
+ enabled: z.ZodDefault<z.ZodBoolean>;
817
+ channels: z.ZodDefault<z.ZodArray<z.ZodObject<{
818
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
819
+ enabled: z.ZodDefault<z.ZodBoolean>;
820
+ label: z.ZodOptional<z.ZodString>;
821
+ markdownPath: z.ZodOptional<z.ZodString>;
822
+ jsonPath: z.ZodOptional<z.ZodString>;
823
+ webhookEnv: z.ZodOptional<z.ZodString>;
824
+ urlEnv: z.ZodOptional<z.ZodString>;
825
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
826
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
827
+ command: z.ZodOptional<z.ZodString>;
828
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
829
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
830
+ enabled: z.ZodDefault<z.ZodBoolean>;
831
+ label: z.ZodOptional<z.ZodString>;
832
+ markdownPath: z.ZodOptional<z.ZodString>;
833
+ jsonPath: z.ZodOptional<z.ZodString>;
834
+ webhookEnv: z.ZodOptional<z.ZodString>;
835
+ urlEnv: z.ZodOptional<z.ZodString>;
836
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
837
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
838
+ command: z.ZodOptional<z.ZodString>;
839
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
840
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
841
+ enabled: z.ZodDefault<z.ZodBoolean>;
842
+ label: z.ZodOptional<z.ZodString>;
843
+ markdownPath: z.ZodOptional<z.ZodString>;
844
+ jsonPath: z.ZodOptional<z.ZodString>;
845
+ webhookEnv: z.ZodOptional<z.ZodString>;
846
+ urlEnv: z.ZodOptional<z.ZodString>;
847
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
848
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
849
+ command: z.ZodOptional<z.ZodString>;
850
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
851
+ }, "strip", z.ZodTypeAny, {
852
+ enabled?: boolean;
853
+ channels?: z.objectOutputType<{
854
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
855
+ enabled: z.ZodDefault<z.ZodBoolean>;
856
+ label: z.ZodOptional<z.ZodString>;
857
+ markdownPath: z.ZodOptional<z.ZodString>;
858
+ jsonPath: z.ZodOptional<z.ZodString>;
859
+ webhookEnv: z.ZodOptional<z.ZodString>;
860
+ urlEnv: z.ZodOptional<z.ZodString>;
861
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
862
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
863
+ command: z.ZodOptional<z.ZodString>;
864
+ }, z.ZodTypeAny, "passthrough">[];
865
+ }, {
866
+ enabled?: boolean;
867
+ channels?: z.objectInputType<{
868
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
869
+ enabled: z.ZodDefault<z.ZodBoolean>;
870
+ label: z.ZodOptional<z.ZodString>;
871
+ markdownPath: z.ZodOptional<z.ZodString>;
872
+ jsonPath: z.ZodOptional<z.ZodString>;
873
+ webhookEnv: z.ZodOptional<z.ZodString>;
874
+ urlEnv: z.ZodOptional<z.ZodString>;
875
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
876
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
877
+ command: z.ZodOptional<z.ZodString>;
878
+ }, z.ZodTypeAny, "passthrough">[];
879
+ }>>;
880
+ growthRun: z.ZodDefault<z.ZodObject<{
881
+ enabled: z.ZodDefault<z.ZodBoolean>;
882
+ channels: z.ZodDefault<z.ZodArray<z.ZodObject<{
883
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
884
+ enabled: z.ZodDefault<z.ZodBoolean>;
885
+ label: z.ZodOptional<z.ZodString>;
886
+ markdownPath: z.ZodOptional<z.ZodString>;
887
+ jsonPath: z.ZodOptional<z.ZodString>;
888
+ webhookEnv: z.ZodOptional<z.ZodString>;
889
+ urlEnv: z.ZodOptional<z.ZodString>;
890
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
891
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
892
+ command: z.ZodOptional<z.ZodString>;
893
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
894
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
895
+ enabled: z.ZodDefault<z.ZodBoolean>;
896
+ label: z.ZodOptional<z.ZodString>;
897
+ markdownPath: z.ZodOptional<z.ZodString>;
898
+ jsonPath: z.ZodOptional<z.ZodString>;
899
+ webhookEnv: z.ZodOptional<z.ZodString>;
900
+ urlEnv: z.ZodOptional<z.ZodString>;
901
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
902
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
903
+ command: z.ZodOptional<z.ZodString>;
904
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
905
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
906
+ enabled: z.ZodDefault<z.ZodBoolean>;
907
+ label: z.ZodOptional<z.ZodString>;
908
+ markdownPath: z.ZodOptional<z.ZodString>;
909
+ jsonPath: z.ZodOptional<z.ZodString>;
910
+ webhookEnv: z.ZodOptional<z.ZodString>;
911
+ urlEnv: z.ZodOptional<z.ZodString>;
912
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
913
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
914
+ command: z.ZodOptional<z.ZodString>;
915
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
916
+ }, "strip", z.ZodTypeAny, {
917
+ enabled?: boolean;
918
+ channels?: z.objectOutputType<{
919
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
920
+ enabled: z.ZodDefault<z.ZodBoolean>;
921
+ label: z.ZodOptional<z.ZodString>;
922
+ markdownPath: z.ZodOptional<z.ZodString>;
923
+ jsonPath: z.ZodOptional<z.ZodString>;
924
+ webhookEnv: z.ZodOptional<z.ZodString>;
925
+ urlEnv: z.ZodOptional<z.ZodString>;
926
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
927
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
928
+ command: z.ZodOptional<z.ZodString>;
929
+ }, z.ZodTypeAny, "passthrough">[];
930
+ }, {
931
+ enabled?: boolean;
932
+ channels?: z.objectInputType<{
933
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
934
+ enabled: z.ZodDefault<z.ZodBoolean>;
935
+ label: z.ZodOptional<z.ZodString>;
936
+ markdownPath: z.ZodOptional<z.ZodString>;
937
+ jsonPath: z.ZodOptional<z.ZodString>;
938
+ webhookEnv: z.ZodOptional<z.ZodString>;
939
+ urlEnv: z.ZodOptional<z.ZodString>;
940
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
941
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
942
+ command: z.ZodOptional<z.ZodString>;
943
+ }, z.ZodTypeAny, "passthrough">[];
944
+ }>>;
945
+ }, "strip", z.ZodTypeAny, {
946
+ connectorHealth?: {
947
+ enabled?: boolean;
948
+ channels?: z.objectOutputType<{
949
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
950
+ enabled: z.ZodDefault<z.ZodBoolean>;
951
+ label: z.ZodOptional<z.ZodString>;
952
+ markdownPath: z.ZodOptional<z.ZodString>;
953
+ jsonPath: z.ZodOptional<z.ZodString>;
954
+ webhookEnv: z.ZodOptional<z.ZodString>;
955
+ urlEnv: z.ZodOptional<z.ZodString>;
956
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
957
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
958
+ command: z.ZodOptional<z.ZodString>;
959
+ }, z.ZodTypeAny, "passthrough">[];
960
+ };
961
+ growthRun?: {
962
+ enabled?: boolean;
963
+ channels?: z.objectOutputType<{
964
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
965
+ enabled: z.ZodDefault<z.ZodBoolean>;
966
+ label: z.ZodOptional<z.ZodString>;
967
+ markdownPath: z.ZodOptional<z.ZodString>;
968
+ jsonPath: z.ZodOptional<z.ZodString>;
969
+ webhookEnv: z.ZodOptional<z.ZodString>;
970
+ urlEnv: z.ZodOptional<z.ZodString>;
971
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
972
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
973
+ command: z.ZodOptional<z.ZodString>;
974
+ }, z.ZodTypeAny, "passthrough">[];
975
+ };
976
+ }, {
977
+ connectorHealth?: {
978
+ enabled?: boolean;
979
+ channels?: z.objectInputType<{
980
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
981
+ enabled: z.ZodDefault<z.ZodBoolean>;
982
+ label: z.ZodOptional<z.ZodString>;
983
+ markdownPath: z.ZodOptional<z.ZodString>;
984
+ jsonPath: z.ZodOptional<z.ZodString>;
985
+ webhookEnv: z.ZodOptional<z.ZodString>;
986
+ urlEnv: z.ZodOptional<z.ZodString>;
987
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
988
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
989
+ command: z.ZodOptional<z.ZodString>;
990
+ }, z.ZodTypeAny, "passthrough">[];
991
+ };
992
+ growthRun?: {
993
+ enabled?: boolean;
994
+ channels?: z.objectInputType<{
995
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
996
+ enabled: z.ZodDefault<z.ZodBoolean>;
997
+ label: z.ZodOptional<z.ZodString>;
998
+ markdownPath: z.ZodOptional<z.ZodString>;
999
+ jsonPath: z.ZodOptional<z.ZodString>;
1000
+ webhookEnv: z.ZodOptional<z.ZodString>;
1001
+ urlEnv: z.ZodOptional<z.ZodString>;
1002
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
1003
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1004
+ command: z.ZodOptional<z.ZodString>;
1005
+ }, z.ZodTypeAny, "passthrough">[];
1006
+ };
1007
+ }>>;
1008
+ security: z.ZodDefault<z.ZodObject<{
1009
+ connectorSecrets: z.ZodOptional<z.ZodObject<{
1010
+ mode: z.ZodDefault<z.ZodString>;
1011
+ persisted: z.ZodDefault<z.ZodBoolean>;
1012
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1013
+ secretsFile: z.ZodOptional<z.ZodString>;
1014
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1015
+ mode: z.ZodDefault<z.ZodString>;
1016
+ persisted: z.ZodDefault<z.ZodBoolean>;
1017
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1018
+ secretsFile: z.ZodOptional<z.ZodString>;
1019
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1020
+ mode: z.ZodDefault<z.ZodString>;
1021
+ persisted: z.ZodDefault<z.ZodBoolean>;
1022
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1023
+ secretsFile: z.ZodOptional<z.ZodString>;
1024
+ }, z.ZodTypeAny, "passthrough">>>;
1025
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1026
+ connectorSecrets: z.ZodOptional<z.ZodObject<{
1027
+ mode: z.ZodDefault<z.ZodString>;
1028
+ persisted: z.ZodDefault<z.ZodBoolean>;
1029
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1030
+ secretsFile: z.ZodOptional<z.ZodString>;
1031
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1032
+ mode: z.ZodDefault<z.ZodString>;
1033
+ persisted: z.ZodDefault<z.ZodBoolean>;
1034
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1035
+ secretsFile: z.ZodOptional<z.ZodString>;
1036
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1037
+ mode: z.ZodDefault<z.ZodString>;
1038
+ persisted: z.ZodDefault<z.ZodBoolean>;
1039
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1040
+ secretsFile: z.ZodOptional<z.ZodString>;
1041
+ }, z.ZodTypeAny, "passthrough">>>;
1042
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1043
+ connectorSecrets: z.ZodOptional<z.ZodObject<{
1044
+ mode: z.ZodDefault<z.ZodString>;
1045
+ persisted: z.ZodDefault<z.ZodBoolean>;
1046
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1047
+ secretsFile: z.ZodOptional<z.ZodString>;
1048
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1049
+ mode: z.ZodDefault<z.ZodString>;
1050
+ persisted: z.ZodDefault<z.ZodBoolean>;
1051
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1052
+ secretsFile: z.ZodOptional<z.ZodString>;
1053
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1054
+ mode: z.ZodDefault<z.ZodString>;
1055
+ persisted: z.ZodDefault<z.ZodBoolean>;
1056
+ agentReadable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
1057
+ secretsFile: z.ZodOptional<z.ZodString>;
1058
+ }, z.ZodTypeAny, "passthrough">>>;
1059
+ }, z.ZodTypeAny, "passthrough">>>;
1060
+ secrets: z.ZodDefault<z.ZodObject<{
1061
+ githubTokenEnv: z.ZodDefault<z.ZodString>;
1062
+ githubTokenRef: z.ZodOptional<z.ZodObject<{
1063
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1064
+ provider: z.ZodDefault<z.ZodString>;
1065
+ id: z.ZodString;
1066
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1067
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1068
+ provider: z.ZodDefault<z.ZodString>;
1069
+ id: z.ZodString;
1070
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1071
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1072
+ provider: z.ZodDefault<z.ZodString>;
1073
+ id: z.ZodString;
1074
+ }, z.ZodTypeAny, "passthrough">>>;
1075
+ analyticsTokenEnv: z.ZodDefault<z.ZodString>;
1076
+ analyticsTokenRef: z.ZodOptional<z.ZodObject<{
1077
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1078
+ provider: z.ZodDefault<z.ZodString>;
1079
+ id: z.ZodString;
1080
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1081
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1082
+ provider: z.ZodDefault<z.ZodString>;
1083
+ id: z.ZodString;
1084
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1085
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1086
+ provider: z.ZodDefault<z.ZodString>;
1087
+ id: z.ZodString;
1088
+ }, z.ZodTypeAny, "passthrough">>>;
1089
+ revenuecatTokenEnv: z.ZodDefault<z.ZodString>;
1090
+ revenuecatTokenRef: z.ZodOptional<z.ZodObject<{
1091
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1092
+ provider: z.ZodDefault<z.ZodString>;
1093
+ id: z.ZodString;
1094
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1095
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1096
+ provider: z.ZodDefault<z.ZodString>;
1097
+ id: z.ZodString;
1098
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1099
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1100
+ provider: z.ZodDefault<z.ZodString>;
1101
+ id: z.ZodString;
1102
+ }, z.ZodTypeAny, "passthrough">>>;
1103
+ sentryTokenEnv: z.ZodDefault<z.ZodString>;
1104
+ sentryTokenRef: z.ZodOptional<z.ZodObject<{
1105
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1106
+ provider: z.ZodDefault<z.ZodString>;
1107
+ id: z.ZodString;
1108
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1109
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1110
+ provider: z.ZodDefault<z.ZodString>;
1111
+ id: z.ZodString;
1112
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1113
+ source: z.ZodDefault<z.ZodEnum<["env", "file", "exec"]>>;
1114
+ provider: z.ZodDefault<z.ZodString>;
1115
+ id: z.ZodString;
1116
+ }, z.ZodTypeAny, "passthrough">>>;
1117
+ }, "strip", z.ZodTypeAny, {
1118
+ githubTokenEnv?: string;
1119
+ githubTokenRef?: {
1120
+ source?: "file" | "env" | "exec";
1121
+ provider?: string;
1122
+ id?: string;
1123
+ } & {
1124
+ [k: string]: unknown;
1125
+ };
1126
+ analyticsTokenEnv?: string;
1127
+ analyticsTokenRef?: {
1128
+ source?: "file" | "env" | "exec";
1129
+ provider?: string;
1130
+ id?: string;
1131
+ } & {
1132
+ [k: string]: unknown;
1133
+ };
1134
+ revenuecatTokenEnv?: string;
1135
+ revenuecatTokenRef?: {
1136
+ source?: "file" | "env" | "exec";
1137
+ provider?: string;
1138
+ id?: string;
1139
+ } & {
1140
+ [k: string]: unknown;
1141
+ };
1142
+ sentryTokenEnv?: string;
1143
+ sentryTokenRef?: {
1144
+ source?: "file" | "env" | "exec";
1145
+ provider?: string;
1146
+ id?: string;
1147
+ } & {
1148
+ [k: string]: unknown;
1149
+ };
1150
+ }, {
1151
+ githubTokenEnv?: string;
1152
+ githubTokenRef?: {
1153
+ source?: "file" | "env" | "exec";
1154
+ provider?: string;
1155
+ id?: string;
1156
+ } & {
1157
+ [k: string]: unknown;
1158
+ };
1159
+ analyticsTokenEnv?: string;
1160
+ analyticsTokenRef?: {
1161
+ source?: "file" | "env" | "exec";
1162
+ provider?: string;
1163
+ id?: string;
1164
+ } & {
1165
+ [k: string]: unknown;
1166
+ };
1167
+ revenuecatTokenEnv?: string;
1168
+ revenuecatTokenRef?: {
1169
+ source?: "file" | "env" | "exec";
1170
+ provider?: string;
1171
+ id?: string;
1172
+ } & {
1173
+ [k: string]: unknown;
1174
+ };
1175
+ sentryTokenEnv?: string;
1176
+ sentryTokenRef?: {
1177
+ source?: "file" | "env" | "exec";
1178
+ provider?: string;
1179
+ id?: string;
1180
+ } & {
1181
+ [k: string]: unknown;
1182
+ };
1183
+ }>>;
1184
+ }, "strip", z.ZodTypeAny, {
1185
+ version?: number;
1186
+ generatedAt?: string;
1187
+ project?: {
1188
+ githubRepo?: string;
1189
+ repoRoot?: string;
1190
+ outFile?: string;
1191
+ maxIssues?: number;
1192
+ titlePrefix?: string;
1193
+ labels?: string[];
1194
+ };
1195
+ sources?: {
1196
+ analytics?: {
1197
+ enabled?: boolean;
1198
+ command?: string;
1199
+ mode?: "command" | "file";
1200
+ path?: string;
1201
+ cursorMode?: "manual" | "auto_since_last_fetch";
1202
+ initialLookback?: string;
1203
+ key?: string;
1204
+ label?: string;
1205
+ service?: string;
1206
+ secretEnv?: string;
1207
+ hint?: string;
1208
+ } & {
1209
+ [k: string]: unknown;
1210
+ };
1211
+ revenuecat?: {
1212
+ enabled?: boolean;
1213
+ command?: string;
1214
+ mode?: "command" | "file";
1215
+ path?: string;
1216
+ cursorMode?: "manual" | "auto_since_last_fetch";
1217
+ initialLookback?: string;
1218
+ key?: string;
1219
+ label?: string;
1220
+ service?: string;
1221
+ secretEnv?: string;
1222
+ hint?: string;
1223
+ } & {
1224
+ [k: string]: unknown;
1225
+ };
1226
+ sentry?: {
1227
+ enabled?: boolean;
1228
+ command?: string;
1229
+ mode?: "command" | "file";
1230
+ path?: string;
1231
+ cursorMode?: "manual" | "auto_since_last_fetch";
1232
+ initialLookback?: string;
1233
+ key?: string;
1234
+ label?: string;
1235
+ service?: string;
1236
+ secretEnv?: string;
1237
+ hint?: string;
1238
+ } & {
1239
+ [k: string]: unknown;
1240
+ };
1241
+ feedback?: {
1242
+ enabled?: boolean;
1243
+ command?: string;
1244
+ mode?: "command" | "file";
1245
+ path?: string;
1246
+ cursorMode?: "manual" | "auto_since_last_fetch";
1247
+ initialLookback?: string;
1248
+ key?: string;
1249
+ label?: string;
1250
+ service?: string;
1251
+ secretEnv?: string;
1252
+ hint?: string;
1253
+ } & {
1254
+ [k: string]: unknown;
1255
+ };
1256
+ extra?: z.objectOutputType<{
1257
+ enabled: z.ZodOptional<z.ZodBoolean>;
1258
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
1259
+ command: z.ZodOptional<z.ZodString>;
1260
+ path: z.ZodOptional<z.ZodString>;
1261
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
1262
+ initialLookback: z.ZodOptional<z.ZodString>;
1263
+ key: z.ZodOptional<z.ZodString>;
1264
+ label: z.ZodOptional<z.ZodString>;
1265
+ service: z.ZodOptional<z.ZodString>;
1266
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1267
+ hint: z.ZodOptional<z.ZodString>;
1268
+ }, z.ZodTypeAny, "passthrough">[];
1269
+ };
1270
+ schedule?: {
1271
+ intervalMinutes?: number;
1272
+ connectorHealthCheckIntervalMinutes?: number;
1273
+ skipIfNoDataChange?: boolean;
1274
+ skipIfIssueSetUnchanged?: boolean;
1275
+ cadences?: z.objectOutputType<{
1276
+ key: z.ZodString;
1277
+ title: z.ZodOptional<z.ZodString>;
1278
+ intervalDays: z.ZodOptional<z.ZodNumber>;
1279
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
1280
+ objective: z.ZodOptional<z.ZodString>;
1281
+ instructions: z.ZodOptional<z.ZodString>;
1282
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1283
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1284
+ enabled: z.ZodDefault<z.ZodBoolean>;
1285
+ }, z.ZodTypeAny, "passthrough">[];
1286
+ };
1287
+ strategy?: {
1288
+ proposalMode?: "mandatory" | "balanced" | "creative";
1289
+ };
1290
+ deliveries?: {
1291
+ slack?: {
1292
+ enabled?: boolean;
1293
+ webhookEnv?: string;
1294
+ username?: string;
1295
+ };
1296
+ webhook?: {
1297
+ enabled?: boolean;
1298
+ urlEnv?: string;
1299
+ method?: "POST";
1300
+ headers?: Record<string, string>;
1301
+ };
1302
+ openclawChat?: {
1303
+ enabled?: boolean;
1304
+ markdownPath?: string;
1305
+ jsonPath?: string;
1306
+ };
1307
+ github?: {
1308
+ enabled?: boolean;
1309
+ mode?: "issue" | "pull_request";
1310
+ autoCreate?: boolean;
1311
+ draftPullRequests?: boolean;
1312
+ proposalBranchPrefix?: string;
1313
+ };
1314
+ discord?: {
1315
+ enabled?: boolean;
1316
+ command?: string;
1317
+ };
1318
+ };
1319
+ charting?: {
1320
+ enabled?: boolean;
1321
+ command?: string;
1322
+ };
1323
+ notifications?: {
1324
+ connectorHealth?: {
1325
+ enabled?: boolean;
1326
+ channels?: z.objectOutputType<{
1327
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
1328
+ enabled: z.ZodDefault<z.ZodBoolean>;
1329
+ label: z.ZodOptional<z.ZodString>;
1330
+ markdownPath: z.ZodOptional<z.ZodString>;
1331
+ jsonPath: z.ZodOptional<z.ZodString>;
1332
+ webhookEnv: z.ZodOptional<z.ZodString>;
1333
+ urlEnv: z.ZodOptional<z.ZodString>;
1334
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
1335
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1336
+ command: z.ZodOptional<z.ZodString>;
1337
+ }, z.ZodTypeAny, "passthrough">[];
1338
+ };
1339
+ growthRun?: {
1340
+ enabled?: boolean;
1341
+ channels?: z.objectOutputType<{
1342
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
1343
+ enabled: z.ZodDefault<z.ZodBoolean>;
1344
+ label: z.ZodOptional<z.ZodString>;
1345
+ markdownPath: z.ZodOptional<z.ZodString>;
1346
+ jsonPath: z.ZodOptional<z.ZodString>;
1347
+ webhookEnv: z.ZodOptional<z.ZodString>;
1348
+ urlEnv: z.ZodOptional<z.ZodString>;
1349
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
1350
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1351
+ command: z.ZodOptional<z.ZodString>;
1352
+ }, z.ZodTypeAny, "passthrough">[];
1353
+ };
1354
+ };
1355
+ security?: {
1356
+ connectorSecrets?: {
1357
+ mode?: string;
1358
+ persisted?: boolean;
1359
+ agentReadable?: string | boolean;
1360
+ secretsFile?: string;
1361
+ } & {
1362
+ [k: string]: unknown;
1363
+ };
1364
+ } & {
1365
+ [k: string]: unknown;
1366
+ };
1367
+ secrets?: {
1368
+ githubTokenEnv?: string;
1369
+ githubTokenRef?: {
1370
+ source?: "file" | "env" | "exec";
1371
+ provider?: string;
1372
+ id?: string;
1373
+ } & {
1374
+ [k: string]: unknown;
1375
+ };
1376
+ analyticsTokenEnv?: string;
1377
+ analyticsTokenRef?: {
1378
+ source?: "file" | "env" | "exec";
1379
+ provider?: string;
1380
+ id?: string;
1381
+ } & {
1382
+ [k: string]: unknown;
1383
+ };
1384
+ revenuecatTokenEnv?: string;
1385
+ revenuecatTokenRef?: {
1386
+ source?: "file" | "env" | "exec";
1387
+ provider?: string;
1388
+ id?: string;
1389
+ } & {
1390
+ [k: string]: unknown;
1391
+ };
1392
+ sentryTokenEnv?: string;
1393
+ sentryTokenRef?: {
1394
+ source?: "file" | "env" | "exec";
1395
+ provider?: string;
1396
+ id?: string;
1397
+ } & {
1398
+ [k: string]: unknown;
1399
+ };
1400
+ };
1401
+ }, {
1402
+ version?: number;
1403
+ generatedAt?: string;
1404
+ project?: {
1405
+ githubRepo?: string;
1406
+ repoRoot?: string;
1407
+ outFile?: string;
1408
+ maxIssues?: number;
1409
+ titlePrefix?: string;
1410
+ labels?: string[];
1411
+ };
1412
+ sources?: {
1413
+ analytics?: {
1414
+ enabled?: boolean;
1415
+ command?: string;
1416
+ mode?: "command" | "file";
1417
+ path?: string;
1418
+ cursorMode?: "manual" | "auto_since_last_fetch";
1419
+ initialLookback?: string;
1420
+ key?: string;
1421
+ label?: string;
1422
+ service?: string;
1423
+ secretEnv?: string;
1424
+ hint?: string;
1425
+ } & {
1426
+ [k: string]: unknown;
1427
+ };
1428
+ revenuecat?: {
1429
+ enabled?: boolean;
1430
+ command?: string;
1431
+ mode?: "command" | "file";
1432
+ path?: string;
1433
+ cursorMode?: "manual" | "auto_since_last_fetch";
1434
+ initialLookback?: string;
1435
+ key?: string;
1436
+ label?: string;
1437
+ service?: string;
1438
+ secretEnv?: string;
1439
+ hint?: string;
1440
+ } & {
1441
+ [k: string]: unknown;
1442
+ };
1443
+ sentry?: {
1444
+ enabled?: boolean;
1445
+ command?: string;
1446
+ mode?: "command" | "file";
1447
+ path?: string;
1448
+ cursorMode?: "manual" | "auto_since_last_fetch";
1449
+ initialLookback?: string;
1450
+ key?: string;
1451
+ label?: string;
1452
+ service?: string;
1453
+ secretEnv?: string;
1454
+ hint?: string;
1455
+ } & {
1456
+ [k: string]: unknown;
1457
+ };
1458
+ feedback?: {
1459
+ enabled?: boolean;
1460
+ command?: string;
1461
+ mode?: "command" | "file";
1462
+ path?: string;
1463
+ cursorMode?: "manual" | "auto_since_last_fetch";
1464
+ initialLookback?: string;
1465
+ key?: string;
1466
+ label?: string;
1467
+ service?: string;
1468
+ secretEnv?: string;
1469
+ hint?: string;
1470
+ } & {
1471
+ [k: string]: unknown;
1472
+ };
1473
+ extra?: z.objectInputType<{
1474
+ enabled: z.ZodOptional<z.ZodBoolean>;
1475
+ mode: z.ZodOptional<z.ZodEnum<["command", "file"]>>;
1476
+ command: z.ZodOptional<z.ZodString>;
1477
+ path: z.ZodOptional<z.ZodString>;
1478
+ cursorMode: z.ZodOptional<z.ZodEnum<["manual", "auto_since_last_fetch"]>>;
1479
+ initialLookback: z.ZodOptional<z.ZodString>;
1480
+ key: z.ZodOptional<z.ZodString>;
1481
+ label: z.ZodOptional<z.ZodString>;
1482
+ service: z.ZodOptional<z.ZodString>;
1483
+ secretEnv: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1484
+ hint: z.ZodOptional<z.ZodString>;
1485
+ }, z.ZodTypeAny, "passthrough">[];
1486
+ };
1487
+ schedule?: {
1488
+ intervalMinutes?: number;
1489
+ connectorHealthCheckIntervalMinutes?: number;
1490
+ skipIfNoDataChange?: boolean;
1491
+ skipIfIssueSetUnchanged?: boolean;
1492
+ cadences?: z.objectInputType<{
1493
+ key: z.ZodString;
1494
+ title: z.ZodOptional<z.ZodString>;
1495
+ intervalDays: z.ZodOptional<z.ZodNumber>;
1496
+ criticalOnly: z.ZodOptional<z.ZodBoolean>;
1497
+ objective: z.ZodOptional<z.ZodString>;
1498
+ instructions: z.ZodOptional<z.ZodString>;
1499
+ focusAreas: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1500
+ sourcePriorities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1501
+ enabled: z.ZodDefault<z.ZodBoolean>;
1502
+ }, z.ZodTypeAny, "passthrough">[];
1503
+ };
1504
+ strategy?: {
1505
+ proposalMode?: "mandatory" | "balanced" | "creative";
1506
+ };
1507
+ deliveries?: {
1508
+ slack?: {
1509
+ enabled?: boolean;
1510
+ webhookEnv?: string;
1511
+ username?: string;
1512
+ };
1513
+ webhook?: {
1514
+ enabled?: boolean;
1515
+ urlEnv?: string;
1516
+ method?: "POST";
1517
+ headers?: Record<string, string>;
1518
+ };
1519
+ openclawChat?: {
1520
+ enabled?: boolean;
1521
+ markdownPath?: string;
1522
+ jsonPath?: string;
1523
+ };
1524
+ github?: {
1525
+ enabled?: boolean;
1526
+ mode?: "issue" | "pull_request";
1527
+ autoCreate?: boolean;
1528
+ draftPullRequests?: boolean;
1529
+ proposalBranchPrefix?: string;
1530
+ };
1531
+ discord?: {
1532
+ enabled?: boolean;
1533
+ command?: string;
1534
+ };
1535
+ };
1536
+ charting?: {
1537
+ enabled?: boolean;
1538
+ command?: string;
1539
+ };
1540
+ notifications?: {
1541
+ connectorHealth?: {
1542
+ enabled?: boolean;
1543
+ channels?: z.objectInputType<{
1544
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
1545
+ enabled: z.ZodDefault<z.ZodBoolean>;
1546
+ label: z.ZodOptional<z.ZodString>;
1547
+ markdownPath: z.ZodOptional<z.ZodString>;
1548
+ jsonPath: z.ZodOptional<z.ZodString>;
1549
+ webhookEnv: z.ZodOptional<z.ZodString>;
1550
+ urlEnv: z.ZodOptional<z.ZodString>;
1551
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
1552
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1553
+ command: z.ZodOptional<z.ZodString>;
1554
+ }, z.ZodTypeAny, "passthrough">[];
1555
+ };
1556
+ growthRun?: {
1557
+ enabled?: boolean;
1558
+ channels?: z.objectInputType<{
1559
+ type: z.ZodDefault<z.ZodEnum<["openclaw-chat", "slack", "webhook", "command"]>>;
1560
+ enabled: z.ZodDefault<z.ZodBoolean>;
1561
+ label: z.ZodOptional<z.ZodString>;
1562
+ markdownPath: z.ZodOptional<z.ZodString>;
1563
+ jsonPath: z.ZodOptional<z.ZodString>;
1564
+ webhookEnv: z.ZodOptional<z.ZodString>;
1565
+ urlEnv: z.ZodOptional<z.ZodString>;
1566
+ method: z.ZodDefault<z.ZodEnum<["POST"]>>;
1567
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1568
+ command: z.ZodOptional<z.ZodString>;
1569
+ }, z.ZodTypeAny, "passthrough">[];
1570
+ };
1571
+ };
1572
+ security?: {
1573
+ connectorSecrets?: {
1574
+ mode?: string;
1575
+ persisted?: boolean;
1576
+ agentReadable?: string | boolean;
1577
+ secretsFile?: string;
1578
+ } & {
1579
+ [k: string]: unknown;
1580
+ };
1581
+ } & {
1582
+ [k: string]: unknown;
1583
+ };
1584
+ secrets?: {
1585
+ githubTokenEnv?: string;
1586
+ githubTokenRef?: {
1587
+ source?: "file" | "env" | "exec";
1588
+ provider?: string;
1589
+ id?: string;
1590
+ } & {
1591
+ [k: string]: unknown;
1592
+ };
1593
+ analyticsTokenEnv?: string;
1594
+ analyticsTokenRef?: {
1595
+ source?: "file" | "env" | "exec";
1596
+ provider?: string;
1597
+ id?: string;
1598
+ } & {
1599
+ [k: string]: unknown;
1600
+ };
1601
+ revenuecatTokenEnv?: string;
1602
+ revenuecatTokenRef?: {
1603
+ source?: "file" | "env" | "exec";
1604
+ provider?: string;
1605
+ id?: string;
1606
+ } & {
1607
+ [k: string]: unknown;
1608
+ };
1609
+ sentryTokenEnv?: string;
1610
+ sentryTokenRef?: {
1611
+ source?: "file" | "env" | "exec";
1612
+ provider?: string;
1613
+ id?: string;
1614
+ } & {
1615
+ [k: string]: unknown;
1616
+ };
1617
+ };
1618
+ }>;
1619
+ export type OpenClawConfig = z.infer<typeof templateConfigSchema>;
1620
+ export type LegacyGrowthConfig = {
1621
+ version: number;
1622
+ generatedAt?: string;
1623
+ project: {
1624
+ githubRepo: string;
1625
+ repoRoot: string;
1626
+ outFile: string;
1627
+ maxIssues: number;
1628
+ titlePrefix: string;
1629
+ labels: string[];
1630
+ };
1631
+ sources: {
1632
+ analytics: z.infer<typeof sourceSchema>;
1633
+ revenuecat: z.infer<typeof sourceSchema>;
1634
+ sentry: z.infer<typeof sourceSchema>;
1635
+ feedback: z.infer<typeof sourceSchema>;
1636
+ extra: Array<z.infer<typeof sourceSchema>>;
1637
+ };
1638
+ schedule: z.infer<typeof scheduleSchema>;
1639
+ strategy: z.infer<typeof strategySchema>;
1640
+ actions: {
1641
+ mode: 'issue' | 'pull_request';
1642
+ autoCreateIssues: boolean;
1643
+ autoCreatePullRequests: boolean;
1644
+ draftPullRequests: boolean;
1645
+ proposalBranchPrefix: string;
1646
+ };
1647
+ charting: {
1648
+ enabled: boolean;
1649
+ command: string | null;
1650
+ };
1651
+ deliveries?: OpenClawConfig['deliveries'];
1652
+ notifications?: OpenClawConfig['notifications'];
1653
+ security?: OpenClawConfig['security'];
1654
+ secrets: z.infer<typeof secretsSchema>;
1655
+ };
1656
+ export declare const parseOpenClawConfig: (value: unknown) => OpenClawConfig;
1657
+ export declare const readOpenClawConfig: (configPath: string) => Promise<OpenClawConfig>;
1658
+ export declare const writeOpenClawConfig: (configPath: string, value: OpenClawConfig) => Promise<void>;
1659
+ export declare const toLegacyGrowthConfig: (configPath: string, config: OpenClawConfig) => LegacyGrowthConfig;
1660
+ export declare const readJsonFile: <T>(filePath: string) => Promise<T>;
1661
+ export declare const writeJsonFile: (filePath: string, value: unknown) => Promise<void>;
1662
+ export declare const fileExists: (filePath: string) => boolean;
1663
+ export {};