diragent 0.1.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.
@@ -0,0 +1,256 @@
1
+ export { ServerOptions, startServer } from './server/index.js';
2
+ import { z } from 'zod';
3
+ import { EventEmitter } from 'events';
4
+ import { ChildProcess } from 'child_process';
5
+ import { Logger } from 'pino';
6
+ import Database from 'better-sqlite3';
7
+
8
+ declare const AgentTemplateSchema: z.ZodObject<{
9
+ driver: z.ZodString;
10
+ model: z.ZodOptional<z.ZodString>;
11
+ maxTokens: z.ZodOptional<z.ZodNumber>;
12
+ command: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ driver: string;
16
+ model?: string | undefined;
17
+ maxTokens?: number | undefined;
18
+ command?: string[] | undefined;
19
+ env?: Record<string, string> | undefined;
20
+ }, {
21
+ driver: string;
22
+ model?: string | undefined;
23
+ maxTokens?: number | undefined;
24
+ command?: string[] | undefined;
25
+ env?: Record<string, string> | undefined;
26
+ }>;
27
+ declare const ConfigSchema: z.ZodObject<{
28
+ version: z.ZodDefault<z.ZodString>;
29
+ server: z.ZodDefault<z.ZodObject<{
30
+ port: z.ZodDefault<z.ZodNumber>;
31
+ host: z.ZodDefault<z.ZodString>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ port: number;
34
+ host: string;
35
+ }, {
36
+ port?: number | undefined;
37
+ host?: string | undefined;
38
+ }>>;
39
+ auth: z.ZodDefault<z.ZodObject<{
40
+ enabled: z.ZodDefault<z.ZodBoolean>;
41
+ adminToken: z.ZodOptional<z.ZodString>;
42
+ apiKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ enabled: boolean;
45
+ adminToken?: string | undefined;
46
+ apiKeys?: string[] | undefined;
47
+ }, {
48
+ enabled?: boolean | undefined;
49
+ adminToken?: string | undefined;
50
+ apiKeys?: string[] | undefined;
51
+ }>>;
52
+ agents: z.ZodDefault<z.ZodObject<{
53
+ maxConcurrent: z.ZodDefault<z.ZodNumber>;
54
+ defaultTimeout: z.ZodDefault<z.ZodNumber>;
55
+ templates: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
56
+ driver: z.ZodString;
57
+ model: z.ZodOptional<z.ZodString>;
58
+ maxTokens: z.ZodOptional<z.ZodNumber>;
59
+ command: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
60
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ driver: string;
63
+ model?: string | undefined;
64
+ maxTokens?: number | undefined;
65
+ command?: string[] | undefined;
66
+ env?: Record<string, string> | undefined;
67
+ }, {
68
+ driver: string;
69
+ model?: string | undefined;
70
+ maxTokens?: number | undefined;
71
+ command?: string[] | undefined;
72
+ env?: Record<string, string> | undefined;
73
+ }>>>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ maxConcurrent: number;
76
+ defaultTimeout: number;
77
+ templates: Record<string, {
78
+ driver: string;
79
+ model?: string | undefined;
80
+ maxTokens?: number | undefined;
81
+ command?: string[] | undefined;
82
+ env?: Record<string, string> | undefined;
83
+ }>;
84
+ }, {
85
+ maxConcurrent?: number | undefined;
86
+ defaultTimeout?: number | undefined;
87
+ templates?: Record<string, {
88
+ driver: string;
89
+ model?: string | undefined;
90
+ maxTokens?: number | undefined;
91
+ command?: string[] | undefined;
92
+ env?: Record<string, string> | undefined;
93
+ }> | undefined;
94
+ }>>;
95
+ logging: z.ZodDefault<z.ZodObject<{
96
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
97
+ format: z.ZodDefault<z.ZodEnum<["pretty", "json"]>>;
98
+ file: z.ZodOptional<z.ZodString>;
99
+ }, "strip", z.ZodTypeAny, {
100
+ level: "debug" | "info" | "warn" | "error";
101
+ format: "pretty" | "json";
102
+ file?: string | undefined;
103
+ }, {
104
+ level?: "debug" | "info" | "warn" | "error" | undefined;
105
+ format?: "pretty" | "json" | undefined;
106
+ file?: string | undefined;
107
+ }>>;
108
+ database: z.ZodDefault<z.ZodObject<{
109
+ path: z.ZodDefault<z.ZodString>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ path: string;
112
+ }, {
113
+ path?: string | undefined;
114
+ }>>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ version: string;
117
+ server: {
118
+ port: number;
119
+ host: string;
120
+ };
121
+ auth: {
122
+ enabled: boolean;
123
+ adminToken?: string | undefined;
124
+ apiKeys?: string[] | undefined;
125
+ };
126
+ agents: {
127
+ maxConcurrent: number;
128
+ defaultTimeout: number;
129
+ templates: Record<string, {
130
+ driver: string;
131
+ model?: string | undefined;
132
+ maxTokens?: number | undefined;
133
+ command?: string[] | undefined;
134
+ env?: Record<string, string> | undefined;
135
+ }>;
136
+ };
137
+ logging: {
138
+ level: "debug" | "info" | "warn" | "error";
139
+ format: "pretty" | "json";
140
+ file?: string | undefined;
141
+ };
142
+ database: {
143
+ path: string;
144
+ };
145
+ }, {
146
+ version?: string | undefined;
147
+ server?: {
148
+ port?: number | undefined;
149
+ host?: string | undefined;
150
+ } | undefined;
151
+ auth?: {
152
+ enabled?: boolean | undefined;
153
+ adminToken?: string | undefined;
154
+ apiKeys?: string[] | undefined;
155
+ } | undefined;
156
+ agents?: {
157
+ maxConcurrent?: number | undefined;
158
+ defaultTimeout?: number | undefined;
159
+ templates?: Record<string, {
160
+ driver: string;
161
+ model?: string | undefined;
162
+ maxTokens?: number | undefined;
163
+ command?: string[] | undefined;
164
+ env?: Record<string, string> | undefined;
165
+ }> | undefined;
166
+ } | undefined;
167
+ logging?: {
168
+ level?: "debug" | "info" | "warn" | "error" | undefined;
169
+ format?: "pretty" | "json" | undefined;
170
+ file?: string | undefined;
171
+ } | undefined;
172
+ database?: {
173
+ path?: string | undefined;
174
+ } | undefined;
175
+ }>;
176
+ type DirigentConfig = z.infer<typeof ConfigSchema>;
177
+ type AgentTemplate = z.infer<typeof AgentTemplateSchema>;
178
+ declare function loadConfig(configPath?: string): DirigentConfig;
179
+ declare function validateAuth(token: string, config: DirigentConfig): boolean;
180
+
181
+ interface Agent {
182
+ id: string;
183
+ name: string;
184
+ template: string;
185
+ status: 'created' | 'starting' | 'running' | 'idle' | 'stopping' | 'stopped' | 'error';
186
+ workspace?: string;
187
+ model?: string;
188
+ pid?: number;
189
+ process?: ChildProcess;
190
+ currentTask?: string;
191
+ createdAt: number;
192
+ startedAt?: number;
193
+ stoppedAt?: number;
194
+ error?: string;
195
+ }
196
+ interface ManagerOptions {
197
+ dataDir: string;
198
+ config: DirigentConfig;
199
+ logger: Logger;
200
+ }
201
+ declare class AgentManager extends EventEmitter {
202
+ private agents;
203
+ private processes;
204
+ private dataDir;
205
+ private config;
206
+ private logger;
207
+ constructor(options: ManagerOptions);
208
+ private loadAgents;
209
+ spawn(options: {
210
+ template: string;
211
+ name?: string;
212
+ workspace?: string;
213
+ task?: string;
214
+ model?: string;
215
+ }): Promise<Agent>;
216
+ private startAgent;
217
+ private buildCommand;
218
+ stop(id: string, force?: boolean): Promise<void>;
219
+ stopAll(): Promise<void>;
220
+ send(id: string, message: string): Promise<void>;
221
+ get(id: string): Agent | undefined;
222
+ list(includeStopped?: boolean): Agent[];
223
+ log(agentId: string, level: string, message: string): void;
224
+ getLogs(agentId: string, limit?: number): any[];
225
+ getStats(): {
226
+ total: number;
227
+ running: number;
228
+ idle: number;
229
+ stopped: number;
230
+ error: number;
231
+ };
232
+ }
233
+
234
+ declare function initDatabase(path: string): Database.Database;
235
+ declare function getDatabase(): Database.Database | null;
236
+ declare function insertAgent(agent: {
237
+ id: string;
238
+ name: string;
239
+ template: string;
240
+ workspace?: string;
241
+ model?: string;
242
+ config?: object;
243
+ }): void;
244
+ declare function updateAgent(id: string, updates: Record<string, any>): void;
245
+ declare function getAgent(id: string): any;
246
+ declare function getAgents(includesStopped?: boolean): any[];
247
+ declare function insertLog(log: {
248
+ agentId: string;
249
+ level: string;
250
+ message: string;
251
+ metadata?: object;
252
+ }): void;
253
+ declare function getLogs(agentId: string, limit?: number): any[];
254
+ declare function audit(action: string, actor: string | null, targetType: string | null, targetId: string | null, details?: object): void;
255
+
256
+ export { type Agent, AgentManager, type AgentTemplate, type DirigentConfig, audit, getAgent, getAgents, getDatabase, getLogs, initDatabase, insertAgent, insertLog, loadConfig, updateAgent, validateAuth };