@alisio/core 0.1.0-alpha.10

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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/dist/application.d.ts +225 -0
  4. package/dist/application.js +950 -0
  5. package/dist/config.d.ts +481 -0
  6. package/dist/config.js +592 -0
  7. package/dist/core/compaction.d.ts +136 -0
  8. package/dist/core/compaction.js +404 -0
  9. package/dist/core/contracts.d.ts +147 -0
  10. package/dist/core/contracts.js +1 -0
  11. package/dist/core/registry.d.ts +8 -0
  12. package/dist/core/registry.js +54 -0
  13. package/dist/core/runner.d.ts +160 -0
  14. package/dist/core/runner.js +625 -0
  15. package/dist/extensions/registry.d.ts +28 -0
  16. package/dist/extensions/registry.js +58 -0
  17. package/dist/index.d.ts +29 -0
  18. package/dist/index.js +28 -0
  19. package/dist/integrations/herdr.d.ts +34 -0
  20. package/dist/integrations/herdr.js +174 -0
  21. package/dist/mcp/connector.d.ts +65 -0
  22. package/dist/mcp/connector.js +423 -0
  23. package/dist/plugins/host.d.ts +169 -0
  24. package/dist/plugins/host.js +585 -0
  25. package/dist/plugins/install.d.ts +100 -0
  26. package/dist/plugins/install.js +322 -0
  27. package/dist/providers/openai-compatible.d.ts +14 -0
  28. package/dist/providers/openai-compatible.js +228 -0
  29. package/dist/providers/registry.d.ts +35 -0
  30. package/dist/providers/registry.js +74 -0
  31. package/dist/providers/routing.d.ts +11 -0
  32. package/dist/providers/routing.js +41 -0
  33. package/dist/providers/settings.d.ts +30 -0
  34. package/dist/providers/settings.js +80 -0
  35. package/dist/resources/context.d.ts +44 -0
  36. package/dist/resources/context.js +171 -0
  37. package/dist/resources/prompts.d.ts +77 -0
  38. package/dist/resources/prompts.js +182 -0
  39. package/dist/resources/skills.d.ts +82 -0
  40. package/dist/resources/skills.js +214 -0
  41. package/dist/runtime/fs.d.ts +9 -0
  42. package/dist/runtime/fs.js +73 -0
  43. package/dist/runtime/modules.d.ts +16 -0
  44. package/dist/runtime/modules.js +83 -0
  45. package/dist/runtime/paths.d.ts +4 -0
  46. package/dist/runtime/paths.js +42 -0
  47. package/dist/runtime/process.d.ts +25 -0
  48. package/dist/runtime/process.js +122 -0
  49. package/dist/runtime/sqlite.d.ts +3 -0
  50. package/dist/runtime/sqlite.js +85 -0
  51. package/dist/runtime/store.d.ts +38 -0
  52. package/dist/runtime/store.js +259 -0
  53. package/dist/sessions/children.d.ts +55 -0
  54. package/dist/sessions/children.js +233 -0
  55. package/dist/startup/index.d.ts +41 -0
  56. package/dist/startup/index.js +105 -0
  57. package/dist/startup/mascot.d.ts +6 -0
  58. package/dist/startup/mascot.js +30 -0
  59. package/dist/startup/screen.d.ts +18 -0
  60. package/dist/startup/screen.js +117 -0
  61. package/dist/startup/text.d.ts +19 -0
  62. package/dist/startup/text.js +68 -0
  63. package/dist/tools/execute.d.ts +16 -0
  64. package/dist/tools/execute.js +96 -0
  65. package/dist/tools/search.d.ts +69 -0
  66. package/dist/tools/search.js +232 -0
  67. package/dist/tools/standard.d.ts +22 -0
  68. package/dist/tools/standard.js +419 -0
  69. package/dist/tools/webfetch.d.ts +26 -0
  70. package/dist/tools/webfetch.js +119 -0
  71. package/dist/trust.d.ts +34 -0
  72. package/dist/trust.js +113 -0
  73. package/dist/version.d.ts +7 -0
  74. package/dist/version.js +26 -0
  75. package/package.json +62 -0
@@ -0,0 +1,481 @@
1
+ import { z } from "zod";
2
+ declare const serverSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
+ transport: z.ZodLiteral<"stdio">;
4
+ enabled: z.ZodDefault<z.ZodBoolean>;
5
+ command: z.ZodString;
6
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
7
+ envAllow: z.ZodDefault<z.ZodArray<z.ZodString>>;
8
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
9
+ }, z.core.$strict>, z.ZodObject<{
10
+ transport: z.ZodLiteral<"http">;
11
+ enabled: z.ZodDefault<z.ZodBoolean>;
12
+ url: z.ZodString;
13
+ bearerTokenEnv: z.ZodOptional<z.ZodString>;
14
+ }, z.core.$strict>], "transport">;
15
+ export declare const configSchema: z.ZodPipe<z.ZodObject<{
16
+ schemaVersion: z.ZodDefault<z.ZodLiteral<1>>;
17
+ provider: z.ZodDefault<z.ZodObject<{
18
+ baseURL: z.ZodDefault<z.ZodURL>;
19
+ apiKeyEnv: z.ZodDefault<z.ZodString>;
20
+ model: z.ZodDefault<z.ZodString>;
21
+ apiMode: z.ZodDefault<z.ZodEnum<{
22
+ chat: "chat";
23
+ responses: "responses";
24
+ }>>;
25
+ auth: z.ZodDefault<z.ZodEnum<{
26
+ bearer: "bearer";
27
+ none: "none";
28
+ }>>;
29
+ tokenParameter: z.ZodDefault<z.ZodEnum<{
30
+ max_completion_tokens: "max_completion_tokens";
31
+ max_tokens: "max_tokens";
32
+ omit: "omit";
33
+ }>>;
34
+ streamUsage: z.ZodDefault<z.ZodBoolean>;
35
+ contextWindow: z.ZodOptional<z.ZodNumber>;
36
+ }, z.core.$strict>>;
37
+ plugins: z.ZodDefault<z.ZodArray<z.ZodString>>;
38
+ skills: z.ZodDefault<z.ZodArray<z.ZodString>>;
39
+ skillOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
40
+ enabled: z.ZodBoolean;
41
+ }, z.core.$strict>>>;
42
+ mcp: z.ZodDefault<z.ZodObject<{
43
+ servers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
44
+ transport: z.ZodLiteral<"stdio">;
45
+ enabled: z.ZodDefault<z.ZodBoolean>;
46
+ command: z.ZodString;
47
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
48
+ envAllow: z.ZodDefault<z.ZodArray<z.ZodString>>;
49
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
50
+ }, z.core.$strict>, z.ZodObject<{
51
+ transport: z.ZodLiteral<"http">;
52
+ enabled: z.ZodDefault<z.ZodBoolean>;
53
+ url: z.ZodString;
54
+ bearerTokenEnv: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strict>], "transport">, z.ZodPipe<z.ZodObject<{
56
+ command: z.ZodString;
57
+ enabled: z.ZodDefault<z.ZodBoolean>;
58
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
59
+ envAllow: z.ZodDefault<z.ZodArray<z.ZodString>>;
60
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
61
+ }, z.core.$strict>, z.ZodTransform<{
62
+ command: string;
63
+ enabled: boolean;
64
+ args: string[];
65
+ envAllow: string[];
66
+ env: Record<string, string>;
67
+ transport: "stdio";
68
+ }, {
69
+ command: string;
70
+ enabled: boolean;
71
+ args: string[];
72
+ envAllow: string[];
73
+ env: Record<string, string>;
74
+ }>>, z.ZodPipe<z.ZodObject<{
75
+ url: z.ZodString;
76
+ enabled: z.ZodDefault<z.ZodBoolean>;
77
+ bearerTokenEnv: z.ZodOptional<z.ZodString>;
78
+ }, z.core.$strict>, z.ZodTransform<{
79
+ url: string;
80
+ enabled: boolean;
81
+ bearerTokenEnv?: string | undefined;
82
+ transport: "http";
83
+ }, {
84
+ url: string;
85
+ enabled: boolean;
86
+ bearerTokenEnv?: string | undefined;
87
+ }>>]>>>;
88
+ allow: z.ZodOptional<z.ZodBoolean>;
89
+ }, z.core.$strict>>;
90
+ mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
91
+ transport: z.ZodLiteral<"stdio">;
92
+ enabled: z.ZodDefault<z.ZodBoolean>;
93
+ command: z.ZodString;
94
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
95
+ envAllow: z.ZodDefault<z.ZodArray<z.ZodString>>;
96
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
97
+ }, z.core.$strict>, z.ZodObject<{
98
+ transport: z.ZodLiteral<"http">;
99
+ enabled: z.ZodDefault<z.ZodBoolean>;
100
+ url: z.ZodString;
101
+ bearerTokenEnv: z.ZodOptional<z.ZodString>;
102
+ }, z.core.$strict>], "transport">, z.ZodPipe<z.ZodObject<{
103
+ command: z.ZodString;
104
+ enabled: z.ZodDefault<z.ZodBoolean>;
105
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
106
+ envAllow: z.ZodDefault<z.ZodArray<z.ZodString>>;
107
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
108
+ }, z.core.$strict>, z.ZodTransform<{
109
+ command: string;
110
+ enabled: boolean;
111
+ args: string[];
112
+ envAllow: string[];
113
+ env: Record<string, string>;
114
+ transport: "stdio";
115
+ }, {
116
+ command: string;
117
+ enabled: boolean;
118
+ args: string[];
119
+ envAllow: string[];
120
+ env: Record<string, string>;
121
+ }>>, z.ZodPipe<z.ZodObject<{
122
+ url: z.ZodString;
123
+ enabled: z.ZodDefault<z.ZodBoolean>;
124
+ bearerTokenEnv: z.ZodOptional<z.ZodString>;
125
+ }, z.core.$strict>, z.ZodTransform<{
126
+ url: string;
127
+ enabled: boolean;
128
+ bearerTokenEnv?: string | undefined;
129
+ transport: "http";
130
+ }, {
131
+ url: string;
132
+ enabled: boolean;
133
+ bearerTokenEnv?: string | undefined;
134
+ }>>]>>>;
135
+ builtinPlugins: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
136
+ enabled: z.ZodOptional<z.ZodBoolean>;
137
+ }, z.core.$loose>>>;
138
+ pluginOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
139
+ enabled: z.ZodBoolean;
140
+ }, z.core.$strict>>>;
141
+ pluginHooks: z.ZodDefault<z.ZodObject<{
142
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
143
+ sessionEndTimeoutMs: z.ZodDefault<z.ZodNumber>;
144
+ }, z.core.$strict>>;
145
+ context: z.ZodDefault<z.ZodObject<{
146
+ claudeMdFallback: z.ZodDefault<z.ZodBoolean>;
147
+ maxBytes: z.ZodDefault<z.ZodNumber>;
148
+ }, z.core.$strict>>;
149
+ compaction: z.ZodDefault<z.ZodObject<{
150
+ auto: z.ZodDefault<z.ZodBoolean>;
151
+ threshold: z.ZodDefault<z.ZodNumber>;
152
+ keepTurns: z.ZodDefault<z.ZodNumber>;
153
+ maxOutputTokens: z.ZodDefault<z.ZodNumber>;
154
+ }, z.core.$strict>>;
155
+ websearch: z.ZodDefault<z.ZodObject<{
156
+ provider: z.ZodOptional<z.ZodEnum<{
157
+ brave: "brave";
158
+ "duckduckgo-instant": "duckduckgo-instant";
159
+ native: "native";
160
+ searxng: "searxng";
161
+ serpapi: "serpapi";
162
+ tavily: "tavily";
163
+ }>>;
164
+ searxngUrl: z.ZodOptional<z.ZodString>;
165
+ apiKeyEnv: z.ZodOptional<z.ZodString>;
166
+ nativeToolType: z.ZodDefault<z.ZodString>;
167
+ }, z.core.$strict>>;
168
+ limits: z.ZodDefault<z.ZodObject<{
169
+ maxTurns: z.ZodDefault<z.ZodNumber>;
170
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
171
+ maxContextChars: z.ZodDefault<z.ZodNumber>;
172
+ maxOutputTokens: z.ZodDefault<z.ZodNumber>;
173
+ maxTokens: z.ZodOptional<z.ZodNumber>;
174
+ }, z.core.$strip>>;
175
+ tui: z.ZodDefault<z.ZodObject<{
176
+ paddingX: z.ZodDefault<z.ZodNumber>;
177
+ skillSlashCommands: z.ZodDefault<z.ZodBoolean>;
178
+ }, z.core.$strict>>;
179
+ }, z.core.$strict>, z.ZodTransform<{
180
+ schemaVersion: 1;
181
+ provider: {
182
+ baseURL: string;
183
+ apiKeyEnv: string;
184
+ model: string;
185
+ apiMode: "chat" | "responses";
186
+ auth: "bearer" | "none";
187
+ tokenParameter: "max_completion_tokens" | "max_tokens" | "omit";
188
+ streamUsage: boolean;
189
+ contextWindow?: number | undefined;
190
+ };
191
+ plugins: string[];
192
+ skills: string[];
193
+ skillOverrides: Record<string, {
194
+ enabled: boolean;
195
+ }>;
196
+ builtinPlugins: Record<string, {
197
+ [x: string]: unknown;
198
+ enabled?: boolean | undefined;
199
+ }>;
200
+ pluginOverrides: Record<string, {
201
+ enabled: boolean;
202
+ }>;
203
+ pluginHooks: {
204
+ timeoutMs: number;
205
+ sessionEndTimeoutMs: number;
206
+ };
207
+ context: {
208
+ claudeMdFallback: boolean;
209
+ maxBytes: number;
210
+ };
211
+ compaction: {
212
+ auto: boolean;
213
+ threshold: number;
214
+ keepTurns: number;
215
+ maxOutputTokens: number;
216
+ };
217
+ websearch: {
218
+ provider?: "brave" | "duckduckgo-instant" | "native" | "searxng" | "serpapi" | "tavily" | undefined;
219
+ searxngUrl?: string | undefined;
220
+ apiKeyEnv?: string | undefined;
221
+ nativeToolType: string;
222
+ };
223
+ limits: {
224
+ maxTurns: number;
225
+ timeoutMs: number;
226
+ maxContextChars: number;
227
+ maxOutputTokens: number;
228
+ maxTokens?: number | undefined;
229
+ };
230
+ tui: {
231
+ paddingX: number;
232
+ skillSlashCommands: boolean;
233
+ };
234
+ mcp: {
235
+ allow?: boolean | undefined;
236
+ servers: {
237
+ [x: string]: {
238
+ transport: "stdio";
239
+ enabled: boolean;
240
+ command: string;
241
+ args: string[];
242
+ envAllow: string[];
243
+ env: Record<string, string>;
244
+ } | {
245
+ transport: "http";
246
+ enabled: boolean;
247
+ url: string;
248
+ bearerTokenEnv?: string | undefined;
249
+ } | {
250
+ command: string;
251
+ enabled: boolean;
252
+ args: string[];
253
+ envAllow: string[];
254
+ env: Record<string, string>;
255
+ transport: "stdio";
256
+ } | {
257
+ url: string;
258
+ enabled: boolean;
259
+ bearerTokenEnv?: string | undefined;
260
+ transport: "http";
261
+ };
262
+ };
263
+ };
264
+ }, {
265
+ schemaVersion: 1;
266
+ provider: {
267
+ baseURL: string;
268
+ apiKeyEnv: string;
269
+ model: string;
270
+ apiMode: "chat" | "responses";
271
+ auth: "bearer" | "none";
272
+ tokenParameter: "max_completion_tokens" | "max_tokens" | "omit";
273
+ streamUsage: boolean;
274
+ contextWindow?: number | undefined;
275
+ };
276
+ plugins: string[];
277
+ skills: string[];
278
+ skillOverrides: Record<string, {
279
+ enabled: boolean;
280
+ }>;
281
+ mcp: {
282
+ servers: Record<string, {
283
+ transport: "stdio";
284
+ enabled: boolean;
285
+ command: string;
286
+ args: string[];
287
+ envAllow: string[];
288
+ env: Record<string, string>;
289
+ } | {
290
+ transport: "http";
291
+ enabled: boolean;
292
+ url: string;
293
+ bearerTokenEnv?: string | undefined;
294
+ } | {
295
+ command: string;
296
+ enabled: boolean;
297
+ args: string[];
298
+ envAllow: string[];
299
+ env: Record<string, string>;
300
+ transport: "stdio";
301
+ } | {
302
+ url: string;
303
+ enabled: boolean;
304
+ bearerTokenEnv?: string | undefined;
305
+ transport: "http";
306
+ }>;
307
+ allow?: boolean | undefined;
308
+ };
309
+ mcpServers?: Record<string, {
310
+ transport: "stdio";
311
+ enabled: boolean;
312
+ command: string;
313
+ args: string[];
314
+ envAllow: string[];
315
+ env: Record<string, string>;
316
+ } | {
317
+ transport: "http";
318
+ enabled: boolean;
319
+ url: string;
320
+ bearerTokenEnv?: string | undefined;
321
+ } | {
322
+ command: string;
323
+ enabled: boolean;
324
+ args: string[];
325
+ envAllow: string[];
326
+ env: Record<string, string>;
327
+ transport: "stdio";
328
+ } | {
329
+ url: string;
330
+ enabled: boolean;
331
+ bearerTokenEnv?: string | undefined;
332
+ transport: "http";
333
+ }> | undefined;
334
+ builtinPlugins: Record<string, {
335
+ [x: string]: unknown;
336
+ enabled?: boolean | undefined;
337
+ }>;
338
+ pluginOverrides: Record<string, {
339
+ enabled: boolean;
340
+ }>;
341
+ pluginHooks: {
342
+ timeoutMs: number;
343
+ sessionEndTimeoutMs: number;
344
+ };
345
+ context: {
346
+ claudeMdFallback: boolean;
347
+ maxBytes: number;
348
+ };
349
+ compaction: {
350
+ auto: boolean;
351
+ threshold: number;
352
+ keepTurns: number;
353
+ maxOutputTokens: number;
354
+ };
355
+ websearch: {
356
+ provider?: "brave" | "duckduckgo-instant" | "native" | "searxng" | "serpapi" | "tavily" | undefined;
357
+ searxngUrl?: string | undefined;
358
+ apiKeyEnv?: string | undefined;
359
+ nativeToolType: string;
360
+ };
361
+ limits: {
362
+ maxTurns: number;
363
+ timeoutMs: number;
364
+ maxContextChars: number;
365
+ maxOutputTokens: number;
366
+ maxTokens?: number | undefined;
367
+ };
368
+ tui: {
369
+ paddingX: number;
370
+ skillSlashCommands: boolean;
371
+ };
372
+ }>>;
373
+ export type Config = z.infer<typeof configSchema>;
374
+ export type ServerConfig = z.infer<typeof serverSchema>;
375
+ export type McpServerSourceKind = "global" | "project" | "explicit" | "builtin" | "plugin";
376
+ export interface McpServerSource {
377
+ kind: McpServerSourceKind;
378
+ file?: string;
379
+ form: "canonical" | "alias";
380
+ }
381
+ export type LoadedConfig = Config & {
382
+ mcpSources: Record<string, McpServerSource>;
383
+ };
384
+ export interface ConfigProvenance {
385
+ selectedLayer?: {
386
+ kind: "project" | "explicit";
387
+ hasLegacyProvider: boolean;
388
+ };
389
+ }
390
+ export interface ConfigLoadResult {
391
+ config: LoadedConfig;
392
+ provenance: ConfigProvenance;
393
+ }
394
+ /**
395
+ * Whether legacy provider selection should take priority over a saved plugin profile for this
396
+ * run: an explicit endpoint override, or a trusted project/explicit layer whose parsed root
397
+ * `provider.model` is actually usable (non-empty and not the `alisio setup` placeholder).
398
+ */
399
+ export declare function overridesSavedProviderProfile(provenance: ConfigProvenance, hasEndpointOverride: boolean): boolean;
400
+ export declare const configHome: () => string;
401
+ export declare const stateHome: () => string;
402
+ /** Highest-priority configuration file selected for a workspace (it may not exist). */
403
+ export declare function configFile(workspace: string, options?: {
404
+ file?: string;
405
+ trustProject?: boolean;
406
+ }): string;
407
+ export declare function loadConfigWithProvenance(workspace: string, options?: {
408
+ file?: string;
409
+ trustProject?: boolean;
410
+ baseURL?: string;
411
+ model?: string;
412
+ apiMode?: string;
413
+ }): Promise<ConfigLoadResult>;
414
+ export declare function loadConfig(workspace: string, options?: {
415
+ file?: string;
416
+ trustProject?: boolean;
417
+ baseURL?: string;
418
+ model?: string;
419
+ apiMode?: string;
420
+ }): Promise<LoadedConfig>;
421
+ /** Atomically toggles one MCP server in the form and file that defined it. */
422
+ export declare function setMcpServerEnabled(input: {
423
+ source: McpServerSource;
424
+ name: string;
425
+ enabled: boolean;
426
+ }): Promise<string>;
427
+ /** Atomically sets or clears the global `mcp.allow` consent preference in the user config file. */
428
+ export declare function setGlobalMcpAllow(input: {
429
+ allow: boolean;
430
+ }): Promise<string>;
431
+ declare const SETTABLE_KEYS: {
432
+ readonly "compaction.auto": z.ZodDefault<z.ZodBoolean>;
433
+ readonly "compaction.threshold": z.ZodDefault<z.ZodNumber>;
434
+ readonly "compaction.keepTurns": z.ZodDefault<z.ZodNumber>;
435
+ readonly "compaction.maxOutputTokens": z.ZodDefault<z.ZodNumber>;
436
+ readonly "context.claudeMdFallback": z.ZodDefault<z.ZodBoolean>;
437
+ readonly "context.maxBytes": z.ZodDefault<z.ZodNumber>;
438
+ readonly "limits.maxTurns": z.ZodDefault<z.ZodNumber>;
439
+ readonly "limits.maxOutputTokens": z.ZodDefault<z.ZodNumber>;
440
+ readonly "limits.maxContextChars": z.ZodDefault<z.ZodNumber>;
441
+ readonly "limits.timeoutMs": z.ZodDefault<z.ZodNumber>;
442
+ readonly "pluginHooks.timeoutMs": z.ZodDefault<z.ZodNumber>;
443
+ readonly "tui.paddingX": z.ZodDefault<z.ZodNumber>;
444
+ readonly "tui.skillSlashCommands": z.ZodDefault<z.ZodBoolean>;
445
+ readonly "websearch.provider": z.ZodOptional<z.ZodEnum<{
446
+ brave: "brave";
447
+ "duckduckgo-instant": "duckduckgo-instant";
448
+ native: "native";
449
+ searxng: "searxng";
450
+ serpapi: "serpapi";
451
+ tavily: "tavily";
452
+ }>>;
453
+ };
454
+ export type SettableSettingKey = keyof typeof SETTABLE_KEYS;
455
+ export declare function isSettableSettingKey(key: string): key is SettableSettingKey;
456
+ /**
457
+ * Atomically sets one user-facing setting in the global config file (`<config home>/config.json`)
458
+ * while preserving every unrelated JSON field. The value is validated against the same zod leaf
459
+ * used by `configSchema`, so a write can never produce a config the loader would reject. The
460
+ * caller is responsible for applying the change to the running process (see `application.ts`).
461
+ */
462
+ export declare function setConfigValue(input: {
463
+ key: SettableSettingKey;
464
+ value: unknown;
465
+ }): Promise<string>;
466
+ /** Atomically updates one project plugin override while preserving every unrelated JSON field. */
467
+ export declare function setProjectPluginEnabled(input: {
468
+ workspace: string;
469
+ id: string;
470
+ enabled: boolean;
471
+ builtin: boolean;
472
+ trusted: boolean;
473
+ }): Promise<string>;
474
+ /** Atomically updates one project skill override while preserving every unrelated JSON field. */
475
+ export declare function setProjectSkillEnabled(input: {
476
+ workspace: string;
477
+ id: string;
478
+ enabled: boolean;
479
+ trusted: boolean;
480
+ }): Promise<string>;
481
+ export {};