@johpaz/hive 1.1.3 → 1.1.5

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 (69) hide show
  1. package/package.json +5 -6
  2. package/packages/cli/dist/commands/agent-run.d.ts +1 -0
  3. package/packages/cli/dist/commands/agent-run.js +178 -0
  4. package/packages/cli/dist/commands/agents.d.ts +1 -0
  5. package/packages/cli/dist/commands/agents.js +372 -0
  6. package/packages/cli/dist/commands/chat.d.ts +1 -0
  7. package/packages/cli/dist/commands/chat.js +152 -0
  8. package/packages/cli/dist/commands/config.d.ts +1 -0
  9. package/packages/cli/dist/commands/config.js +49 -0
  10. package/packages/cli/dist/commands/cron.d.ts +1 -0
  11. package/packages/cli/dist/commands/cron.js +166 -0
  12. package/packages/cli/dist/commands/dev.d.ts +1 -0
  13. package/packages/cli/dist/commands/dev.js +120 -0
  14. package/packages/cli/dist/commands/doctor.d.ts +1 -0
  15. package/packages/cli/dist/commands/doctor.js +161 -0
  16. package/packages/cli/dist/commands/gateway.d.ts +4 -0
  17. package/packages/cli/dist/commands/gateway.js +444 -0
  18. package/packages/cli/dist/commands/logs.d.ts +1 -0
  19. package/packages/cli/dist/commands/logs.js +87 -0
  20. package/packages/cli/dist/commands/mcp.d.ts +1 -0
  21. package/packages/cli/dist/commands/mcp.js +175 -0
  22. package/packages/cli/dist/commands/message.d.ts +1 -0
  23. package/packages/cli/dist/commands/message.js +65 -0
  24. package/packages/cli/dist/commands/onboard.d.ts +1 -0
  25. package/packages/cli/dist/commands/onboard.js +1715 -0
  26. package/packages/cli/dist/commands/security.d.ts +1 -0
  27. package/packages/cli/dist/commands/security.js +155 -0
  28. package/packages/cli/dist/commands/service.d.ts +1 -0
  29. package/packages/cli/dist/commands/service.js +77 -0
  30. package/packages/cli/dist/commands/sessions.d.ts +1 -0
  31. package/packages/cli/dist/commands/sessions.js +132 -0
  32. package/packages/cli/dist/commands/skills.d.ts +1 -0
  33. package/packages/cli/dist/commands/skills.js +190 -0
  34. package/packages/cli/dist/commands/update.d.ts +1 -0
  35. package/packages/cli/dist/commands/update.js +27 -0
  36. package/packages/cli/dist/hive-binary +0 -0
  37. package/packages/cli/dist/index.d.ts +2 -0
  38. package/packages/cli/dist/index.js +184 -0
  39. package/packages/cli/dist/utils/token.d.ts +1 -0
  40. package/packages/cli/dist/utils/token.js +8 -0
  41. package/packages/cli/package.json +3 -1
  42. package/packages/core/package.json +9 -1
  43. package/packages/core/src/config/loader.d.ts +298 -0
  44. package/packages/core/src/config/loader.js +513 -0
  45. package/packages/core/src/storage/schema.d.ts +3 -0
  46. package/packages/core/src/storage/schema.js +541 -0
  47. package/packages/core/src/storage/sqlite.d.ts +51 -0
  48. package/packages/core/src/storage/sqlite.js +350 -0
  49. package/packages/core/src/utils/logger.d.ts +84 -0
  50. package/packages/core/src/utils/logger.js +352 -0
  51. package/packages/cli/src/commands/agent-run.ts +0 -168
  52. package/packages/cli/src/commands/agents.ts +0 -398
  53. package/packages/cli/src/commands/chat.ts +0 -142
  54. package/packages/cli/src/commands/config.ts +0 -50
  55. package/packages/cli/src/commands/cron.ts +0 -161
  56. package/packages/cli/src/commands/dev.ts +0 -95
  57. package/packages/cli/src/commands/doctor.ts +0 -133
  58. package/packages/cli/src/commands/gateway.ts +0 -443
  59. package/packages/cli/src/commands/logs.ts +0 -57
  60. package/packages/cli/src/commands/mcp.ts +0 -175
  61. package/packages/cli/src/commands/message.ts +0 -77
  62. package/packages/cli/src/commands/onboard.ts +0 -1868
  63. package/packages/cli/src/commands/security.ts +0 -144
  64. package/packages/cli/src/commands/service.ts +0 -50
  65. package/packages/cli/src/commands/sessions.ts +0 -116
  66. package/packages/cli/src/commands/skills.ts +0 -187
  67. package/packages/cli/src/commands/update.ts +0 -25
  68. package/packages/cli/src/index.ts +0 -185
  69. package/packages/cli/src/utils/token.ts +0 -6
@@ -0,0 +1,184 @@
1
+ #!/usr/bin/env bun
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const onboard_1 = require("./commands/onboard");
5
+ const gateway_1 = require("./commands/gateway");
6
+ const dev_1 = require("./commands/dev");
7
+ const agents_1 = require("./commands/agents");
8
+ const mcp_1 = require("./commands/mcp");
9
+ const skills_1 = require("./commands/skills");
10
+ const config_1 = require("./commands/config");
11
+ const logs_1 = require("./commands/logs");
12
+ const chat_1 = require("./commands/chat");
13
+ const sessions_1 = require("./commands/sessions");
14
+ const cron_1 = require("./commands/cron");
15
+ const doctor_1 = require("./commands/doctor");
16
+ const security_1 = require("./commands/security");
17
+ const service_1 = require("./commands/service");
18
+ const update_1 = require("./commands/update");
19
+ const message_1 = require("./commands/message");
20
+ const agent_run_1 = require("./commands/agent-run");
21
+ const VERSION = "1.1.0";
22
+ const HELP = `
23
+ 🐝 Hive — Personal Swarm AI Gateway v${VERSION}
24
+
25
+ Usage: hive <command> [subcommand] [options]
26
+
27
+ Commands:
28
+ onboard Wizard de configuración inicial
29
+ dev Modo desarrollo (onboard + start)
30
+ start [--daemon] Arrancar el Gateway
31
+ stop Detener el Gateway
32
+ reload Recargar config sin reiniciar
33
+ status Estado del Gateway y agentes
34
+ chat [--agent <id>] Chat directo en terminal
35
+ logs [--follow] [--level] Ver logs del Gateway
36
+
37
+ message send --to <id> --content <text>
38
+ Enviar mensaje por canal
39
+ agent run --message <text> Ejecutar agente con mensaje
40
+
41
+ agents add <id> Crear nuevo agente
42
+ agents list [--bindings] Listar agentes
43
+ agents remove <id> Eliminar agente
44
+
45
+ mcp list Listar servidores MCP
46
+ mcp add Añadir servidor MCP
47
+ mcp test <nombre> Verificar servidor MCP
48
+ mcp tools <nombre> Listar tools de un servidor
49
+ mcp remove <nombre> Eliminar servidor MCP
50
+
51
+ skills list Listar skills instaladas
52
+ skills search <query> Buscar skills
53
+ skills install <slug> Instalar skill
54
+ skills remove <nombre> Eliminar skill
55
+ skills update Actualizar skills
56
+
57
+ config get <key> Leer valor de config
58
+ config set <key> <value> Escribir valor de config
59
+ config show Mostrar config completa
60
+
61
+ sessions list Listar sesiones
62
+ sessions view <id> Ver transcripción
63
+ sessions prune Eliminar sesiones inactivas
64
+
65
+ cron list Listar cron jobs
66
+ cron add Añadir cron job
67
+ cron remove <id> Eliminar cron job
68
+ cron logs Ver logs de cron
69
+
70
+ doctor Diagnóstico y auto-reparación
71
+ security audit Auditoría de seguridad
72
+ install-service Instalar servicio systemd
73
+ update Actualizar Hive
74
+
75
+ Options:
76
+ --help, -h Mostrar ayuda
77
+ --version, -v Mostrar versión
78
+
79
+ Examples:
80
+ hive onboard Configurar Hive por primera vez
81
+ hive start Arrancar el Gateway
82
+ hive chat Chatear con el agente en terminal
83
+ hive message send --to 123 --content "Hola"
84
+ hive agent run --message "Analiza README.md" --wait
85
+ hive agents add work Crear agente "work"
86
+ hive mcp add Añadir servidor MCP
87
+ hive doctor Diagnosticar problemas
88
+
89
+ Documentation:
90
+ English: https://github.com/johpaz/hive/docs
91
+ Español: https://github.com/johpaz/hive/docs/es
92
+ `;
93
+ async function main() {
94
+ const args = process.argv.slice(2);
95
+ const command = args[0];
96
+ const subcommand = args[1];
97
+ const flags = args.filter((a) => a.startsWith("--"));
98
+ switch (command) {
99
+ case "onboard":
100
+ await (0, onboard_1.onboard)();
101
+ break;
102
+ case "dev":
103
+ await (0, dev_1.dev)();
104
+ break;
105
+ case "start":
106
+ await (0, gateway_1.start)(flags);
107
+ break;
108
+ case "stop":
109
+ await (0, gateway_1.stop)();
110
+ break;
111
+ case "reload":
112
+ await (0, gateway_1.reload)();
113
+ break;
114
+ case "status":
115
+ await (0, gateway_1.status)(flags);
116
+ break;
117
+ case "chat":
118
+ await (0, chat_1.chat)(flags);
119
+ break;
120
+ case "logs":
121
+ await (0, logs_1.logs)(flags);
122
+ break;
123
+ case "message":
124
+ await (0, message_1.message)(subcommand, args.slice(2));
125
+ break;
126
+ case "agent":
127
+ await (0, agent_run_1.agent)(subcommand, args.slice(2));
128
+ break;
129
+ case "agents":
130
+ await (0, agents_1.agents)(subcommand, args.slice(2));
131
+ break;
132
+ case "mcp":
133
+ await (0, mcp_1.mcp)(subcommand, args.slice(2));
134
+ break;
135
+ case "skills":
136
+ await (0, skills_1.skills)(subcommand, args.slice(2));
137
+ break;
138
+ case "config":
139
+ await (0, config_1.config)(subcommand, args.slice(2));
140
+ break;
141
+ case "sessions":
142
+ await (0, sessions_1.sessions)(subcommand, args.slice(2));
143
+ break;
144
+ case "cron":
145
+ await (0, cron_1.cron)(subcommand, args.slice(2));
146
+ break;
147
+ case "doctor":
148
+ await (0, doctor_1.doctor)();
149
+ break;
150
+ case "security":
151
+ if (subcommand === "audit") {
152
+ await (0, security_1.securityAudit)();
153
+ }
154
+ else {
155
+ console.log("Usage: hive security audit");
156
+ }
157
+ break;
158
+ case "install-service":
159
+ await (0, service_1.installService)();
160
+ break;
161
+ case "update":
162
+ await (0, update_1.update)();
163
+ break;
164
+ case "--version":
165
+ case "-v":
166
+ case "version":
167
+ console.log(`Hive v${VERSION}`);
168
+ break;
169
+ case "--help":
170
+ case "-h":
171
+ case "help":
172
+ case undefined:
173
+ console.log(HELP);
174
+ break;
175
+ default:
176
+ console.error(`❌ Comando desconocido: "${command}"\n`);
177
+ console.log(HELP);
178
+ process.exit(1);
179
+ }
180
+ }
181
+ main().catch((error) => {
182
+ console.error("Fatal error:", error.message);
183
+ process.exit(1);
184
+ });
@@ -0,0 +1 @@
1
+ export declare function generateAuthToken(): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAuthToken = generateAuthToken;
4
+ const node_crypto_1 = require("node:crypto");
5
+ function generateAuthToken() {
6
+ // 32 bytes → 43 caracteres base64url seguros
7
+ return (0, node_crypto_1.randomBytes)(32).toString("base64url");
8
+ }
@@ -4,14 +4,16 @@
4
4
  "private": true,
5
5
  "description": "Hive CLI — Command line interface for the Hive AI Gateway",
6
6
  "bin": {
7
- "hive": "src/index.ts"
7
+ "hive": "dist/hive-binary"
8
8
  },
9
9
  "main": "./src/index.ts",
10
10
  "license": "MIT",
11
11
  "files": [
12
+ "dist/",
12
13
  "src/"
13
14
  ],
14
15
  "scripts": {
16
+ "build": "bun build src/index.ts --compile --outfile dist/hive-binary",
15
17
  "test": "bun test"
16
18
  },
17
19
  "dependencies": {
@@ -40,7 +40,15 @@
40
40
  "./agent": "./src/agent/index.ts",
41
41
  "./channels": "./src/channels/index.ts",
42
42
  "./config": "./src/config/loader.ts",
43
+ "./config/loader": "./src/config/loader.ts",
43
44
  "./utils": "./src/utils/logger.ts",
44
- "./storage/sqlite": "./src/storage/sqlite.ts"
45
+ "./utils/logger": "./src/utils/logger.ts",
46
+ "./storage/sqlite": "./src/storage/sqlite.ts",
47
+ "./storage/onboarding": "./src/storage/onboarding.ts",
48
+ "./storage/crypto": "./src/storage/crypto.ts",
49
+ "./integrations": "./src/integrations/index.ts",
50
+ "./integrations/catalog": "./src/integrations/catalog.ts",
51
+ "./integrations/env": "./src/integrations/env.ts",
52
+ "./voice": "./src/voice/index.ts"
45
53
  }
46
54
  }
@@ -0,0 +1,298 @@
1
+ import * as z from "zod";
2
+ export declare function loadEnv(hiveDir: string): void;
3
+ export declare function getHiveDir(): string;
4
+ declare const expandPath: (p: string) => string;
5
+ declare const ProviderConfigSchema: z.ZodObject<{
6
+ apiKey: z.ZodOptional<z.ZodString>;
7
+ baseUrl: z.ZodOptional<z.ZodString>;
8
+ rateLimit: z.ZodOptional<z.ZodNumber>;
9
+ retries: z.ZodOptional<z.ZodNumber>;
10
+ retryDelayMs: z.ZodOptional<z.ZodNumber>;
11
+ }, z.core.$strip>;
12
+ declare const AgentEntrySchema: z.ZodObject<{
13
+ id: z.ZodString;
14
+ default: z.ZodOptional<z.ZodBoolean>;
15
+ workspace: z.ZodString;
16
+ description: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$strip>;
18
+ declare const BindingSchema: z.ZodObject<{
19
+ agentId: z.ZodString;
20
+ match: z.ZodObject<{
21
+ channel: z.ZodOptional<z.ZodString>;
22
+ accountId: z.ZodOptional<z.ZodString>;
23
+ peer: z.ZodOptional<z.ZodObject<{
24
+ kind: z.ZodOptional<z.ZodEnum<{
25
+ group: "group";
26
+ direct: "direct";
27
+ }>>;
28
+ id: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>>;
30
+ guildId: z.ZodOptional<z.ZodString>;
31
+ teamId: z.ZodOptional<z.ZodString>;
32
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
33
+ }, z.core.$strip>;
34
+ }, z.core.$strip>;
35
+ declare const MCPServerConfigSchema: z.ZodObject<{
36
+ enabled: z.ZodOptional<z.ZodBoolean>;
37
+ transport: z.ZodEnum<{
38
+ stdio: "stdio";
39
+ sse: "sse";
40
+ websocket: "websocket";
41
+ }>;
42
+ command: z.ZodOptional<z.ZodString>;
43
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
44
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
45
+ url: z.ZodOptional<z.ZodString>;
46
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
47
+ reconnect: z.ZodOptional<z.ZodObject<{
48
+ enabled: z.ZodOptional<z.ZodBoolean>;
49
+ maxRetries: z.ZodOptional<z.ZodNumber>;
50
+ delayMs: z.ZodOptional<z.ZodNumber>;
51
+ backoffMultiplier: z.ZodOptional<z.ZodNumber>;
52
+ }, z.core.$strip>>;
53
+ }, z.core.$strip>;
54
+ declare const UserConfigSchema: z.ZodObject<{
55
+ id: z.ZodString;
56
+ name: z.ZodString;
57
+ channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
58
+ }, z.core.$strip>;
59
+ declare const ConfigSchema: z.ZodObject<{
60
+ gateway: z.ZodOptional<z.ZodObject<{
61
+ host: z.ZodOptional<z.ZodString>;
62
+ port: z.ZodOptional<z.ZodNumber>;
63
+ authToken: z.ZodOptional<z.ZodString>;
64
+ pidFile: z.ZodOptional<z.ZodString>;
65
+ tools: z.ZodOptional<z.ZodObject<{
66
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
67
+ deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
68
+ }, z.core.$strip>>;
69
+ }, z.core.$strip>>;
70
+ logging: z.ZodOptional<z.ZodObject<{
71
+ level: z.ZodOptional<z.ZodEnum<{
72
+ debug: "debug";
73
+ info: "info";
74
+ warn: "warn";
75
+ error: "error";
76
+ }>>;
77
+ dir: z.ZodOptional<z.ZodString>;
78
+ maxSizeMB: z.ZodOptional<z.ZodNumber>;
79
+ maxFiles: z.ZodOptional<z.ZodNumber>;
80
+ redactSensitive: z.ZodOptional<z.ZodBoolean>;
81
+ console: z.ZodOptional<z.ZodBoolean>;
82
+ }, z.core.$strip>>;
83
+ user: z.ZodOptional<z.ZodObject<{
84
+ id: z.ZodString;
85
+ name: z.ZodString;
86
+ channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
87
+ }, z.core.$strip>>;
88
+ agent: z.ZodOptional<z.ZodObject<{
89
+ defaultAgentId: z.ZodOptional<z.ZodString>;
90
+ baseDir: z.ZodOptional<z.ZodString>;
91
+ context: z.ZodOptional<z.ZodObject<{
92
+ maxTokens: z.ZodOptional<z.ZodNumber>;
93
+ compactionThreshold: z.ZodOptional<z.ZodNumber>;
94
+ minMessagesAfterCompaction: z.ZodOptional<z.ZodNumber>;
95
+ maxCompactionRetries: z.ZodOptional<z.ZodNumber>;
96
+ }, z.core.$strip>>;
97
+ }, z.core.$strip>>;
98
+ models: z.ZodOptional<z.ZodObject<{
99
+ defaultProvider: z.ZodOptional<z.ZodEnum<{
100
+ openai: "openai";
101
+ anthropic: "anthropic";
102
+ gemini: "gemini";
103
+ mistral: "mistral";
104
+ kimi: "kimi";
105
+ ollama: "ollama";
106
+ openrouter: "openrouter";
107
+ deepseek: "deepseek";
108
+ }>>;
109
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
110
+ providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
111
+ apiKey: z.ZodOptional<z.ZodString>;
112
+ baseUrl: z.ZodOptional<z.ZodString>;
113
+ rateLimit: z.ZodOptional<z.ZodNumber>;
114
+ retries: z.ZodOptional<z.ZodNumber>;
115
+ retryDelayMs: z.ZodOptional<z.ZodNumber>;
116
+ }, z.core.$strip>>>;
117
+ }, z.core.$strip>>;
118
+ sessions: z.ZodOptional<z.ZodObject<{
119
+ dir: z.ZodOptional<z.ZodString>;
120
+ pruneAfterHours: z.ZodOptional<z.ZodNumber>;
121
+ maxTranscriptSizeMB: z.ZodOptional<z.ZodNumber>;
122
+ }, z.core.$strip>>;
123
+ agents: z.ZodOptional<z.ZodObject<{
124
+ list: z.ZodOptional<z.ZodArray<z.ZodObject<{
125
+ id: z.ZodString;
126
+ default: z.ZodOptional<z.ZodBoolean>;
127
+ workspace: z.ZodString;
128
+ description: z.ZodOptional<z.ZodString>;
129
+ }, z.core.$strip>>>;
130
+ }, z.core.$strip>>;
131
+ bindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
132
+ agentId: z.ZodString;
133
+ match: z.ZodObject<{
134
+ channel: z.ZodOptional<z.ZodString>;
135
+ accountId: z.ZodOptional<z.ZodString>;
136
+ peer: z.ZodOptional<z.ZodObject<{
137
+ kind: z.ZodOptional<z.ZodEnum<{
138
+ group: "group";
139
+ direct: "direct";
140
+ }>>;
141
+ id: z.ZodOptional<z.ZodString>;
142
+ }, z.core.$strip>>;
143
+ guildId: z.ZodOptional<z.ZodString>;
144
+ teamId: z.ZodOptional<z.ZodString>;
145
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
146
+ }, z.core.$strip>;
147
+ }, z.core.$strip>>>;
148
+ channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
149
+ enabled: z.ZodOptional<z.ZodBoolean>;
150
+ accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
151
+ botToken: z.ZodOptional<z.ZodString>;
152
+ applicationId: z.ZodOptional<z.ZodString>;
153
+ appToken: z.ZodOptional<z.ZodString>;
154
+ signingSecret: z.ZodOptional<z.ZodString>;
155
+ dmPolicy: z.ZodOptional<z.ZodEnum<{
156
+ open: "open";
157
+ pairing: "pairing";
158
+ allowlist: "allowlist";
159
+ }>>;
160
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodString>>;
161
+ }, z.core.$strip>>>;
162
+ dmPolicy: z.ZodOptional<z.ZodEnum<{
163
+ open: "open";
164
+ pairing: "pairing";
165
+ allowlist: "allowlist";
166
+ }>>;
167
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodString>>;
168
+ groups: z.ZodOptional<z.ZodBoolean>;
169
+ guilds: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
170
+ experimental: z.ZodOptional<z.ZodBoolean>;
171
+ }, z.core.$strip>>>;
172
+ tools: z.ZodOptional<z.ZodObject<{
173
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
174
+ deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
175
+ exec: z.ZodOptional<z.ZodObject<{
176
+ enabled: z.ZodOptional<z.ZodBoolean>;
177
+ allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
178
+ denylist: z.ZodOptional<z.ZodArray<z.ZodString>>;
179
+ timeoutSeconds: z.ZodOptional<z.ZodNumber>;
180
+ workDir: z.ZodOptional<z.ZodString>;
181
+ }, z.core.$strip>>;
182
+ web: z.ZodOptional<z.ZodObject<{
183
+ allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
184
+ denylist: z.ZodOptional<z.ZodArray<z.ZodString>>;
185
+ timeoutSeconds: z.ZodOptional<z.ZodNumber>;
186
+ }, z.core.$strip>>;
187
+ browser: z.ZodOptional<z.ZodObject<{
188
+ enabled: z.ZodOptional<z.ZodBoolean>;
189
+ browserPath: z.ZodOptional<z.ZodString>;
190
+ headless: z.ZodOptional<z.ZodBoolean>;
191
+ timeoutSeconds: z.ZodOptional<z.ZodNumber>;
192
+ }, z.core.$strip>>;
193
+ canvas: z.ZodOptional<z.ZodObject<{
194
+ enabled: z.ZodOptional<z.ZodBoolean>;
195
+ port: z.ZodOptional<z.ZodNumber>;
196
+ }, z.core.$strip>>;
197
+ sandbox: z.ZodOptional<z.ZodObject<{
198
+ dm: z.ZodOptional<z.ZodObject<{
199
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
200
+ deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
201
+ }, z.core.$strip>>;
202
+ group: z.ZodOptional<z.ZodObject<{
203
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
204
+ deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
205
+ }, z.core.$strip>>;
206
+ }, z.core.$strip>>;
207
+ }, z.core.$strip>>;
208
+ skills: z.ZodOptional<z.ZodObject<{
209
+ allowBundled: z.ZodOptional<z.ZodArray<z.ZodString>>;
210
+ managedDir: z.ZodOptional<z.ZodString>;
211
+ extraDirs: z.ZodOptional<z.ZodArray<z.ZodString>>;
212
+ hotReload: z.ZodOptional<z.ZodBoolean>;
213
+ maxSkillSizeKB: z.ZodOptional<z.ZodNumber>;
214
+ }, z.core.$strip>>;
215
+ mcp: z.ZodOptional<z.ZodObject<{
216
+ enabled: z.ZodOptional<z.ZodBoolean>;
217
+ servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
218
+ enabled: z.ZodOptional<z.ZodBoolean>;
219
+ transport: z.ZodEnum<{
220
+ stdio: "stdio";
221
+ sse: "sse";
222
+ websocket: "websocket";
223
+ }>;
224
+ command: z.ZodOptional<z.ZodString>;
225
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
226
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
227
+ url: z.ZodOptional<z.ZodString>;
228
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
229
+ reconnect: z.ZodOptional<z.ZodObject<{
230
+ enabled: z.ZodOptional<z.ZodBoolean>;
231
+ maxRetries: z.ZodOptional<z.ZodNumber>;
232
+ delayMs: z.ZodOptional<z.ZodNumber>;
233
+ backoffMultiplier: z.ZodOptional<z.ZodNumber>;
234
+ }, z.core.$strip>>;
235
+ }, z.core.$strip>>>;
236
+ healthCheck: z.ZodOptional<z.ZodObject<{
237
+ enabled: z.ZodOptional<z.ZodBoolean>;
238
+ intervalSeconds: z.ZodOptional<z.ZodNumber>;
239
+ }, z.core.$strip>>;
240
+ }, z.core.$strip>>;
241
+ memory: z.ZodOptional<z.ZodObject<{
242
+ dbPath: z.ZodOptional<z.ZodString>;
243
+ notesDir: z.ZodOptional<z.ZodString>;
244
+ episodic: z.ZodOptional<z.ZodObject<{
245
+ enabled: z.ZodOptional<z.ZodBoolean>;
246
+ provider: z.ZodOptional<z.ZodEnum<{
247
+ openai: "openai";
248
+ local: "local";
249
+ }>>;
250
+ maxEpisodesPerSession: z.ZodOptional<z.ZodNumber>;
251
+ }, z.core.$strip>>;
252
+ }, z.core.$strip>>;
253
+ cron: z.ZodOptional<z.ZodObject<{
254
+ enabled: z.ZodOptional<z.ZodBoolean>;
255
+ dbPath: z.ZodOptional<z.ZodString>;
256
+ maxConcurrentJobs: z.ZodOptional<z.ZodNumber>;
257
+ timezone: z.ZodOptional<z.ZodString>;
258
+ }, z.core.$strip>>;
259
+ retry: z.ZodOptional<z.ZodObject<{
260
+ maxAttempts: z.ZodOptional<z.ZodNumber>;
261
+ initialDelayMs: z.ZodOptional<z.ZodNumber>;
262
+ backoffMultiplier: z.ZodOptional<z.ZodNumber>;
263
+ maxDelayMs: z.ZodOptional<z.ZodNumber>;
264
+ }, z.core.$strip>>;
265
+ security: z.ZodOptional<z.ZodObject<{
266
+ maxMessageLength: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
267
+ skillScanning: z.ZodOptional<z.ZodBoolean>;
268
+ warnOnInsecureConfig: z.ZodOptional<z.ZodBoolean>;
269
+ allowedUsers: z.ZodOptional<z.ZodArray<z.ZodString>>;
270
+ }, z.core.$strip>>;
271
+ hooks: z.ZodOptional<z.ZodObject<{
272
+ scripts: z.ZodOptional<z.ZodObject<{
273
+ before_model_resolve: z.ZodOptional<z.ZodString>;
274
+ before_prompt_build: z.ZodOptional<z.ZodString>;
275
+ before_tool_call: z.ZodOptional<z.ZodString>;
276
+ after_tool_call: z.ZodOptional<z.ZodString>;
277
+ tool_result_persist: z.ZodOptional<z.ZodString>;
278
+ before_compaction: z.ZodOptional<z.ZodString>;
279
+ after_compaction: z.ZodOptional<z.ZodString>;
280
+ message_received: z.ZodOptional<z.ZodString>;
281
+ message_sending: z.ZodOptional<z.ZodString>;
282
+ message_sent: z.ZodOptional<z.ZodString>;
283
+ session_start: z.ZodOptional<z.ZodString>;
284
+ session_end: z.ZodOptional<z.ZodString>;
285
+ gateway_start: z.ZodOptional<z.ZodString>;
286
+ gateway_stop: z.ZodOptional<z.ZodString>;
287
+ }, z.core.$strip>>;
288
+ }, z.core.$strip>>;
289
+ }, z.core.$strip>;
290
+ export type Config = z.infer<typeof ConfigSchema>;
291
+ export type ProviderConfig = z.infer<typeof ProviderConfigSchema>;
292
+ export type MCPServerConfig = z.infer<typeof MCPServerConfigSchema>;
293
+ export type AgentEntry = z.infer<typeof AgentEntrySchema>;
294
+ export type Binding = z.infer<typeof BindingSchema>;
295
+ export type UserConfig = z.infer<typeof UserConfigSchema>;
296
+ export declare function loadConfig(): Config;
297
+ export declare function expandConfigPath(p: string | undefined): string | undefined;
298
+ export { expandPath };