@ugm/desiagent 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -3
- package/dist/core/execution/agents.d.ts.map +1 -1
- package/dist/core/execution/agents.js +18 -4
- package/dist/core/execution/agents.js.map +1 -1
- package/dist/core/execution/dagExecutor.d.ts +8 -1
- package/dist/core/execution/dagExecutor.d.ts.map +1 -1
- package/dist/core/execution/dagExecutor.js +156 -28
- package/dist/core/execution/dagExecutor.js.map +1 -1
- package/dist/core/execution/dags.d.ts +10 -0
- package/dist/core/execution/dags.d.ts.map +1 -1
- package/dist/core/execution/dags.js +152 -88
- package/dist/core/execution/dags.js.map +1 -1
- package/dist/core/execution/inference.d.ts +10 -10
- package/dist/core/providers/openrouter.d.ts.map +1 -1
- package/dist/core/providers/openrouter.js +13 -7
- package/dist/core/providers/openrouter.js.map +1 -1
- package/dist/core/providers/types.d.ts +9 -0
- package/dist/core/providers/types.d.ts.map +1 -1
- package/dist/core/skills/detector.d.ts +8 -0
- package/dist/core/skills/detector.d.ts.map +1 -0
- package/dist/core/skills/detector.js +60 -0
- package/dist/core/skills/detector.js.map +1 -0
- package/dist/core/skills/registry.d.ts +44 -0
- package/dist/core/skills/registry.d.ts.map +1 -0
- package/dist/core/skills/registry.js +149 -0
- package/dist/core/skills/registry.js.map +1 -0
- package/dist/core/tools/edit.d.ts +1 -1
- package/dist/core/tools/fetchPage.d.ts +1 -1
- package/dist/core/tools/llmExecute.d.ts +17 -16
- package/dist/core/tools/llmExecute.d.ts.map +1 -1
- package/dist/core/tools/llmExecute.js +1 -0
- package/dist/core/tools/llmExecute.js.map +1 -1
- package/dist/core/tools/readEmail.d.ts +1 -1
- package/dist/core/tools/sendEmail.d.ts +11 -11
- package/dist/core/tools/writeFile.d.ts +3 -3
- package/dist/core/workers/statsQueue.d.ts +69 -0
- package/dist/core/workers/statsQueue.d.ts.map +1 -0
- package/dist/core/workers/statsQueue.js +106 -0
- package/dist/core/workers/statsQueue.js.map +1 -0
- package/dist/core/workers/statsWorker.d.ts +11 -0
- package/dist/core/workers/statsWorker.d.ts.map +1 -0
- package/dist/core/workers/statsWorker.js +235 -0
- package/dist/core/workers/statsWorker.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -1
- package/dist/services/agentsSeedData.d.ts.map +1 -1
- package/dist/services/agentsSeedData.js +14 -0
- package/dist/services/agentsSeedData.js.map +1 -1
- package/dist/test/setup.d.ts +1 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +3 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/types/client.d.ts +1 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/config.d.ts +7 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/dag.d.ts +20 -20
- package/dist/types/dag.js +1 -1
- package/dist/types/dag.js.map +1 -1
- package/dist/util/sendEmailTool.d.ts +11 -11
- package/package.json +2 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// SkillRegistry - Discovers and manages SKILL.md files from multiple locations.
|
|
2
|
+
//
|
|
3
|
+
// Discovery priority (first-match wins on name conflicts):
|
|
4
|
+
// 1. .agents/skills/<name>/SKILL.md (workspace)
|
|
5
|
+
// 2. skills/<name>/SKILL.md (workspace)
|
|
6
|
+
// 3. SKILL.md (workspace root)
|
|
7
|
+
// 4. ~/.config/agents/skills/<name>/SKILL.md (global)
|
|
8
|
+
// 5. ~/.desiAgent/skills/<name>/SKILL.md (global)
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { resolve } from 'path';
|
|
11
|
+
import { homedir } from 'os';
|
|
12
|
+
import { readdir, readFile, stat } from 'fs/promises';
|
|
13
|
+
import matter from 'gray-matter';
|
|
14
|
+
import { getLogger } from '../../util/logger.js';
|
|
15
|
+
export const SkillFrontmatterSchema = z.object({
|
|
16
|
+
name: z.string().min(1),
|
|
17
|
+
description: z.string().min(10),
|
|
18
|
+
type: z.enum(['context', 'executable']).default('context'),
|
|
19
|
+
model: z.string().optional(),
|
|
20
|
+
provider: z.string().optional(),
|
|
21
|
+
});
|
|
22
|
+
export class SkillRegistry {
|
|
23
|
+
skills = new Map();
|
|
24
|
+
logger = getLogger();
|
|
25
|
+
workspaceRoot;
|
|
26
|
+
constructor(workspaceRoot) {
|
|
27
|
+
this.workspaceRoot = workspaceRoot;
|
|
28
|
+
}
|
|
29
|
+
async discover() {
|
|
30
|
+
const home = homedir();
|
|
31
|
+
const locations = [
|
|
32
|
+
{ pattern: 'glob', dir: resolve(this.workspaceRoot, '.agents', 'skills'), source: 'workspace' },
|
|
33
|
+
{ pattern: 'glob', dir: resolve(this.workspaceRoot, 'skills'), source: 'workspace' },
|
|
34
|
+
{ pattern: 'root', dir: this.workspaceRoot, source: 'workspace' },
|
|
35
|
+
{ pattern: 'glob', dir: resolve(home, '.config', 'agents', 'skills'), source: 'global' },
|
|
36
|
+
{ pattern: 'glob', dir: resolve(home, '.desiAgent', 'skills'), source: 'global' },
|
|
37
|
+
];
|
|
38
|
+
for (const loc of locations) {
|
|
39
|
+
try {
|
|
40
|
+
if (loc.pattern === 'root') {
|
|
41
|
+
await this.discoverRootSkill(loc.dir, loc.source);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
await this.discoverGlobSkills(loc.dir, loc.source);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Directory doesn't exist or isn't readable — skip silently
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
this.logger.info({ count: this.skills.size }, 'Skill discovery complete');
|
|
52
|
+
}
|
|
53
|
+
async discoverGlobSkills(dir, source) {
|
|
54
|
+
let entries;
|
|
55
|
+
try {
|
|
56
|
+
entries = await readdir(dir);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
for (const entry of entries) {
|
|
62
|
+
const skillDir = resolve(dir, entry);
|
|
63
|
+
const skillFile = resolve(skillDir, 'SKILL.md');
|
|
64
|
+
try {
|
|
65
|
+
const st = await stat(skillDir);
|
|
66
|
+
if (!st.isDirectory())
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
await stat(skillFile);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
await this.parseAndRegister(skillFile, entry, source);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async discoverRootSkill(dir, source) {
|
|
82
|
+
const skillFile = resolve(dir, 'SKILL.md');
|
|
83
|
+
try {
|
|
84
|
+
await stat(skillFile);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
await this.parseAndRegister(skillFile, null, source);
|
|
90
|
+
}
|
|
91
|
+
async parseAndRegister(filePath, expectedDirName, source) {
|
|
92
|
+
try {
|
|
93
|
+
const raw = await readFile(filePath, 'utf-8');
|
|
94
|
+
const { data } = matter(raw);
|
|
95
|
+
const parsed = SkillFrontmatterSchema.safeParse(data);
|
|
96
|
+
if (!parsed.success) {
|
|
97
|
+
this.logger.warn({ filePath, errors: parsed.error.format() }, 'Invalid SKILL.md frontmatter — skipping');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const meta = parsed.data;
|
|
101
|
+
// Enforce name === directory name (root SKILL.md is exempt)
|
|
102
|
+
if (expectedDirName !== null && meta.name !== expectedDirName) {
|
|
103
|
+
this.logger.warn({ filePath, expected: expectedDirName, got: meta.name }, 'Skill name does not match directory name — skipping');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
// First-match wins
|
|
107
|
+
if (this.skills.has(meta.name)) {
|
|
108
|
+
this.logger.debug({ name: meta.name, filePath }, 'Skill already registered — skipping lower-priority duplicate');
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.skills.set(meta.name, {
|
|
112
|
+
name: meta.name,
|
|
113
|
+
description: meta.description,
|
|
114
|
+
type: meta.type,
|
|
115
|
+
filePath,
|
|
116
|
+
source,
|
|
117
|
+
model: meta.model,
|
|
118
|
+
provider: meta.provider,
|
|
119
|
+
});
|
|
120
|
+
this.logger.debug({ name: meta.name, source, filePath }, 'Registered skill');
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
this.logger.warn({ filePath, err }, 'Failed to parse SKILL.md — skipping');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async loadContent(name) {
|
|
127
|
+
const skill = this.skills.get(name);
|
|
128
|
+
if (!skill)
|
|
129
|
+
return undefined;
|
|
130
|
+
const raw = await readFile(skill.filePath, 'utf-8');
|
|
131
|
+
const { content } = matter(raw);
|
|
132
|
+
return content;
|
|
133
|
+
}
|
|
134
|
+
getAll() {
|
|
135
|
+
return Array.from(this.skills.values());
|
|
136
|
+
}
|
|
137
|
+
getByName(name) {
|
|
138
|
+
return this.skills.get(name);
|
|
139
|
+
}
|
|
140
|
+
getFormattedList() {
|
|
141
|
+
const all = this.getAll();
|
|
142
|
+
if (all.length === 0)
|
|
143
|
+
return 'No skills available.';
|
|
144
|
+
return all
|
|
145
|
+
.map(s => `- **${s.name}** (${s.type}): ${s.description}`)
|
|
146
|
+
.join('\n');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/skills/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ declare const fetchPageInputSchema: z.ZodObject<{
|
|
|
11
11
|
maxLength: z.ZodDefault<z.ZodNumber>;
|
|
12
12
|
timeout: z.ZodDefault<z.ZodNumber>;
|
|
13
13
|
}, "strip", z.ZodTypeAny, {
|
|
14
|
-
url: string;
|
|
15
14
|
maxLength: number;
|
|
15
|
+
url: string;
|
|
16
16
|
timeout: number;
|
|
17
17
|
}, {
|
|
18
18
|
url: string;
|
|
@@ -29,21 +29,21 @@ declare const llmExecuteInputSchema: z.ZodObject<{
|
|
|
29
29
|
max_tokens: z.ZodOptional<z.ZodNumber>;
|
|
30
30
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
31
31
|
}, "strip", z.ZodTypeAny, {
|
|
32
|
-
reasoning_effort?: "low" | "
|
|
32
|
+
reasoning_effort?: "low" | "high" | "medium" | undefined;
|
|
33
33
|
max_tokens?: number | undefined;
|
|
34
34
|
temperature?: number | undefined;
|
|
35
35
|
}, {
|
|
36
|
-
reasoning_effort?: "low" | "
|
|
36
|
+
reasoning_effort?: "low" | "high" | "medium" | undefined;
|
|
37
37
|
max_tokens?: number | undefined;
|
|
38
38
|
temperature?: number | undefined;
|
|
39
39
|
}>>;
|
|
40
40
|
}, "strip", z.ZodTypeAny, {
|
|
41
|
-
provider: "openai" | "openrouter" | "ollama";
|
|
42
41
|
model: string;
|
|
43
|
-
|
|
42
|
+
provider: "openai" | "openrouter" | "ollama";
|
|
44
43
|
task: string;
|
|
44
|
+
prompt: string;
|
|
45
45
|
params?: {
|
|
46
|
-
reasoning_effort?: "low" | "
|
|
46
|
+
reasoning_effort?: "low" | "high" | "medium" | undefined;
|
|
47
47
|
max_tokens?: number | undefined;
|
|
48
48
|
temperature?: number | undefined;
|
|
49
49
|
} | undefined;
|
|
@@ -53,12 +53,12 @@ declare const llmExecuteInputSchema: z.ZodObject<{
|
|
|
53
53
|
mimeType?: string | undefined;
|
|
54
54
|
}[] | undefined;
|
|
55
55
|
}, {
|
|
56
|
-
provider: "openai" | "openrouter" | "ollama";
|
|
57
56
|
model: string;
|
|
58
|
-
|
|
57
|
+
provider: "openai" | "openrouter" | "ollama";
|
|
59
58
|
task: string;
|
|
59
|
+
prompt: string;
|
|
60
60
|
params?: {
|
|
61
|
-
reasoning_effort?: "low" | "
|
|
61
|
+
reasoning_effort?: "low" | "high" | "medium" | undefined;
|
|
62
62
|
max_tokens?: number | undefined;
|
|
63
63
|
temperature?: number | undefined;
|
|
64
64
|
} | undefined;
|
|
@@ -78,6 +78,7 @@ interface LlmExecuteOutput {
|
|
|
78
78
|
};
|
|
79
79
|
costUsd?: number;
|
|
80
80
|
generationStats?: Record<string, any>;
|
|
81
|
+
generationId?: string;
|
|
81
82
|
finishReason?: string;
|
|
82
83
|
reasoning?: string;
|
|
83
84
|
}
|
|
@@ -107,21 +108,21 @@ export declare class LlmExecuteTool extends BaseTool<LlmExecuteInput, LlmExecute
|
|
|
107
108
|
max_tokens: z.ZodOptional<z.ZodNumber>;
|
|
108
109
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
109
110
|
}, "strip", z.ZodTypeAny, {
|
|
110
|
-
reasoning_effort?: "low" | "
|
|
111
|
+
reasoning_effort?: "low" | "high" | "medium" | undefined;
|
|
111
112
|
max_tokens?: number | undefined;
|
|
112
113
|
temperature?: number | undefined;
|
|
113
114
|
}, {
|
|
114
|
-
reasoning_effort?: "low" | "
|
|
115
|
+
reasoning_effort?: "low" | "high" | "medium" | undefined;
|
|
115
116
|
max_tokens?: number | undefined;
|
|
116
117
|
temperature?: number | undefined;
|
|
117
118
|
}>>;
|
|
118
119
|
}, "strip", z.ZodTypeAny, {
|
|
119
|
-
provider: "openai" | "openrouter" | "ollama";
|
|
120
120
|
model: string;
|
|
121
|
-
|
|
121
|
+
provider: "openai" | "openrouter" | "ollama";
|
|
122
122
|
task: string;
|
|
123
|
+
prompt: string;
|
|
123
124
|
params?: {
|
|
124
|
-
reasoning_effort?: "low" | "
|
|
125
|
+
reasoning_effort?: "low" | "high" | "medium" | undefined;
|
|
125
126
|
max_tokens?: number | undefined;
|
|
126
127
|
temperature?: number | undefined;
|
|
127
128
|
} | undefined;
|
|
@@ -131,12 +132,12 @@ export declare class LlmExecuteTool extends BaseTool<LlmExecuteInput, LlmExecute
|
|
|
131
132
|
mimeType?: string | undefined;
|
|
132
133
|
}[] | undefined;
|
|
133
134
|
}, {
|
|
134
|
-
provider: "openai" | "openrouter" | "ollama";
|
|
135
135
|
model: string;
|
|
136
|
-
|
|
136
|
+
provider: "openai" | "openrouter" | "ollama";
|
|
137
137
|
task: string;
|
|
138
|
+
prompt: string;
|
|
138
139
|
params?: {
|
|
139
|
-
reasoning_effort?: "low" | "
|
|
140
|
+
reasoning_effort?: "low" | "high" | "medium" | undefined;
|
|
140
141
|
max_tokens?: number | undefined;
|
|
141
142
|
temperature?: number | undefined;
|
|
142
143
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmExecute.d.ts","sourceRoot":"","sources":["../../../src/core/tools/llmExecute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAgBvD,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOzB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE7D,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAe,SAAQ,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC7E,IAAI,SAAgB;IACpB,WAAW,SAA2G;IACtH,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyB;IAEpC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,mBAAmB,CAAC,CAAU;gBAE1B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE;IAO1F,OAAO,CAAC,WAAW;IAeb,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"llmExecute.d.ts","sourceRoot":"","sources":["../../../src/core/tools/llmExecute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAgBvD,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOzB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE7D,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAe,SAAQ,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC7E,IAAI,SAAgB;IACpB,WAAW,SAA2G;IACtH,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyB;IAEpC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,mBAAmB,CAAC,CAAU;gBAE1B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE;IAO1F,OAAO,CAAC,WAAW;IAeb,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAyHnF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmExecute.js","sourceRoot":"","sources":["../../../src/core/tools/llmExecute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAoB,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACjG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACzF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACjG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEd,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAClF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACpD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACxD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAChG,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CAClE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"llmExecute.js","sourceRoot":"","sources":["../../../src/core/tools/llmExecute.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,8 +27,8 @@ declare const readEmailInputSchema: z.ZodObject<{
|
|
|
27
27
|
}, {
|
|
28
28
|
search?: string | undefined;
|
|
29
29
|
maxResults?: number | undefined;
|
|
30
|
-
unreadOnly?: boolean | undefined;
|
|
31
30
|
sender?: string | undefined;
|
|
31
|
+
unreadOnly?: boolean | undefined;
|
|
32
32
|
mailbox?: string | undefined;
|
|
33
33
|
markAsRead?: boolean | undefined;
|
|
34
34
|
snippets?: boolean | undefined;
|
|
@@ -20,45 +20,45 @@ declare const sendEmailInputSchema: z.ZodObject<{
|
|
|
20
20
|
encoding: z.ZodOptional<z.ZodEnum<["base64", "utf-8"]>>;
|
|
21
21
|
}, "strip", z.ZodTypeAny, {
|
|
22
22
|
filename: string;
|
|
23
|
-
content?: string | undefined;
|
|
24
23
|
path?: string | undefined;
|
|
24
|
+
content?: string | undefined;
|
|
25
25
|
contentType?: string | undefined;
|
|
26
26
|
encoding?: "utf-8" | "base64" | undefined;
|
|
27
27
|
}, {
|
|
28
28
|
filename: string;
|
|
29
|
-
content?: string | undefined;
|
|
30
29
|
path?: string | undefined;
|
|
30
|
+
content?: string | undefined;
|
|
31
31
|
contentType?: string | undefined;
|
|
32
32
|
encoding?: "utf-8" | "base64" | undefined;
|
|
33
33
|
}>, "many">>;
|
|
34
34
|
}, "strip", z.ZodTypeAny, {
|
|
35
35
|
body: string;
|
|
36
|
-
subject: string;
|
|
37
36
|
to: string | string[];
|
|
37
|
+
subject: string;
|
|
38
38
|
html: boolean;
|
|
39
|
+
cc?: string | string[] | undefined;
|
|
40
|
+
bcc?: string | string[] | undefined;
|
|
39
41
|
attachments?: {
|
|
40
42
|
filename: string;
|
|
41
|
-
content?: string | undefined;
|
|
42
43
|
path?: string | undefined;
|
|
44
|
+
content?: string | undefined;
|
|
43
45
|
contentType?: string | undefined;
|
|
44
46
|
encoding?: "utf-8" | "base64" | undefined;
|
|
45
47
|
}[] | undefined;
|
|
46
|
-
cc?: string | string[] | undefined;
|
|
47
|
-
bcc?: string | string[] | undefined;
|
|
48
48
|
}, {
|
|
49
49
|
body: string;
|
|
50
|
-
subject: string;
|
|
51
50
|
to: string | string[];
|
|
51
|
+
subject: string;
|
|
52
|
+
cc?: string | string[] | undefined;
|
|
53
|
+
bcc?: string | string[] | undefined;
|
|
54
|
+
html?: boolean | undefined;
|
|
52
55
|
attachments?: {
|
|
53
56
|
filename: string;
|
|
54
|
-
content?: string | undefined;
|
|
55
57
|
path?: string | undefined;
|
|
58
|
+
content?: string | undefined;
|
|
56
59
|
contentType?: string | undefined;
|
|
57
60
|
encoding?: "utf-8" | "base64" | undefined;
|
|
58
61
|
}[] | undefined;
|
|
59
|
-
cc?: string | string[] | undefined;
|
|
60
|
-
bcc?: string | string[] | undefined;
|
|
61
|
-
html?: boolean | undefined;
|
|
62
62
|
}>;
|
|
63
63
|
type SendEmailInput = z.infer<typeof sendEmailInputSchema>;
|
|
64
64
|
interface SendEmailOutput {
|
|
@@ -11,12 +11,12 @@ declare const writeFileInputSchema: z.ZodObject<{
|
|
|
11
11
|
content: z.ZodString;
|
|
12
12
|
mode: z.ZodDefault<z.ZodEnum<["overwrite", "append"]>>;
|
|
13
13
|
}, "strip", z.ZodTypeAny, {
|
|
14
|
-
mode: "overwrite" | "append";
|
|
15
|
-
content: string;
|
|
16
14
|
path: string;
|
|
17
|
-
}, {
|
|
18
15
|
content: string;
|
|
16
|
+
mode: "overwrite" | "append";
|
|
17
|
+
}, {
|
|
19
18
|
path: string;
|
|
19
|
+
content: string;
|
|
20
20
|
mode?: "overwrite" | "append" | undefined;
|
|
21
21
|
}>;
|
|
22
22
|
type WriteFileInput = z.infer<typeof writeFileInputSchema>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StatsQueue - Main-thread interface for enqueueing generation stats updates
|
|
3
|
+
*
|
|
4
|
+
* Spawns a Bun Worker thread that fetches OpenRouter generation stats
|
|
5
|
+
* and updates the DB in the background, keeping the hot path fast.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* A stats update job to be processed by the worker.
|
|
9
|
+
*/
|
|
10
|
+
export interface StatsJob {
|
|
11
|
+
/** Which table to update */
|
|
12
|
+
table: 'sub_steps' | 'dag_executions' | 'dags';
|
|
13
|
+
/** Row ID in that table (dagId for 'dags', executionId for 'dag_executions') */
|
|
14
|
+
id: string;
|
|
15
|
+
/** OpenRouter generation ID for fetching stats */
|
|
16
|
+
generationId: string;
|
|
17
|
+
/**
|
|
18
|
+
* For 'sub_steps': the taskId used with executionId to locate the row.
|
|
19
|
+
*/
|
|
20
|
+
taskId?: string;
|
|
21
|
+
/**
|
|
22
|
+
* For 'sub_steps': the executionId the sub-step belongs to.
|
|
23
|
+
*/
|
|
24
|
+
executionId?: string;
|
|
25
|
+
/**
|
|
26
|
+
* For 'dags' table: which planning attempt index to annotate with costUsd/generationStats.
|
|
27
|
+
* The worker reads the current planningAttempts JSON, patches the entry, and recalculates totals.
|
|
28
|
+
*/
|
|
29
|
+
attemptIndex?: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Message sent from main thread → worker
|
|
33
|
+
*/
|
|
34
|
+
export interface WorkerInMessage {
|
|
35
|
+
type: 'job' | 'shutdown';
|
|
36
|
+
job?: StatsJob;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Message sent from worker → main thread
|
|
40
|
+
*/
|
|
41
|
+
export interface WorkerOutMessage {
|
|
42
|
+
type: 'done' | 'error' | 'drained';
|
|
43
|
+
table?: string;
|
|
44
|
+
id?: string;
|
|
45
|
+
error?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare class StatsQueue {
|
|
48
|
+
private worker;
|
|
49
|
+
private logger;
|
|
50
|
+
private dbPath;
|
|
51
|
+
private apiKey;
|
|
52
|
+
private pendingCount;
|
|
53
|
+
constructor(dbPath: string, apiKey: string);
|
|
54
|
+
/**
|
|
55
|
+
* Start the background worker. Safe to call multiple times (idempotent).
|
|
56
|
+
*/
|
|
57
|
+
start(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Enqueue a stats update job for background processing.
|
|
60
|
+
* If the worker isn't started, silently drops the job with a warning.
|
|
61
|
+
*/
|
|
62
|
+
enqueue(job: StatsJob): void;
|
|
63
|
+
/**
|
|
64
|
+
* Gracefully terminate the worker after all pending jobs are processed.
|
|
65
|
+
* Waits up to DRAIN_TIMEOUT_MS for the worker to drain, then force-terminates.
|
|
66
|
+
*/
|
|
67
|
+
terminate(): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=statsQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statsQueue.d.ts","sourceRoot":"","sources":["../../../src/core/workers/statsQueue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,4BAA4B;IAC5B,KAAK,EAAE,WAAW,GAAG,gBAAgB,GAAG,MAAM,CAAC;IAC/C,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;IACzB,GAAG,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAK;gBAEb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK1C;;OAEG;IACH,KAAK,IAAI,IAAI;IAmCb;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAY5B;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAyCjC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StatsQueue - Main-thread interface for enqueueing generation stats updates
|
|
3
|
+
*
|
|
4
|
+
* Spawns a Bun Worker thread that fetches OpenRouter generation stats
|
|
5
|
+
* and updates the DB in the background, keeping the hot path fast.
|
|
6
|
+
*/
|
|
7
|
+
import { getLogger } from '../../util/logger.js';
|
|
8
|
+
/** Max time (ms) to wait for the worker to drain before force-terminating */
|
|
9
|
+
const DRAIN_TIMEOUT_MS = 30_000;
|
|
10
|
+
export class StatsQueue {
|
|
11
|
+
worker = null;
|
|
12
|
+
logger = getLogger();
|
|
13
|
+
dbPath;
|
|
14
|
+
apiKey;
|
|
15
|
+
pendingCount = 0;
|
|
16
|
+
constructor(dbPath, apiKey) {
|
|
17
|
+
this.dbPath = dbPath;
|
|
18
|
+
this.apiKey = apiKey;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Start the background worker. Safe to call multiple times (idempotent).
|
|
22
|
+
*/
|
|
23
|
+
start() {
|
|
24
|
+
if (this.worker)
|
|
25
|
+
return;
|
|
26
|
+
const workerUrl = new URL('./statsWorker.js', import.meta.url).href;
|
|
27
|
+
this.worker = new Worker(workerUrl);
|
|
28
|
+
// Send init config
|
|
29
|
+
this.worker.postMessage({
|
|
30
|
+
type: 'init',
|
|
31
|
+
dbPath: this.dbPath,
|
|
32
|
+
apiKey: this.apiKey,
|
|
33
|
+
});
|
|
34
|
+
this.worker.onmessage = (event) => {
|
|
35
|
+
const msg = event.data;
|
|
36
|
+
if (msg.type === 'done') {
|
|
37
|
+
this.pendingCount--;
|
|
38
|
+
this.logger.debug({ table: msg.table, id: msg.id }, 'StatsWorker: update complete');
|
|
39
|
+
}
|
|
40
|
+
else if (msg.type === 'error') {
|
|
41
|
+
this.pendingCount--;
|
|
42
|
+
this.logger.warn({ table: msg.table, id: msg.id, error: msg.error }, 'StatsWorker: update failed');
|
|
43
|
+
}
|
|
44
|
+
// 'drained' is handled by the terminate() promise listener
|
|
45
|
+
};
|
|
46
|
+
this.worker.onerror = (event) => {
|
|
47
|
+
this.logger.error({ error: event.message }, 'StatsWorker: worker error');
|
|
48
|
+
};
|
|
49
|
+
// Don't let the worker keep the process alive during normal operation
|
|
50
|
+
this.worker.unref();
|
|
51
|
+
this.logger.info('StatsQueue: background worker started');
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Enqueue a stats update job for background processing.
|
|
55
|
+
* If the worker isn't started, silently drops the job with a warning.
|
|
56
|
+
*/
|
|
57
|
+
enqueue(job) {
|
|
58
|
+
if (!this.worker) {
|
|
59
|
+
this.logger.warn({ job }, 'StatsQueue: worker not started, dropping job');
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.pendingCount++;
|
|
63
|
+
const msg = { type: 'job', job };
|
|
64
|
+
this.worker.postMessage(msg);
|
|
65
|
+
this.logger.debug({ table: job.table, id: job.id, generationId: job.generationId }, 'StatsQueue: job enqueued');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Gracefully terminate the worker after all pending jobs are processed.
|
|
69
|
+
* Waits up to DRAIN_TIMEOUT_MS for the worker to drain, then force-terminates.
|
|
70
|
+
*/
|
|
71
|
+
async terminate() {
|
|
72
|
+
if (!this.worker)
|
|
73
|
+
return;
|
|
74
|
+
// Fast path: no pending work
|
|
75
|
+
if (this.pendingCount <= 0) {
|
|
76
|
+
this.worker.terminate();
|
|
77
|
+
this.worker = null;
|
|
78
|
+
this.logger.info('StatsQueue: worker terminated (no pending jobs)');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.logger.info({ pendingCount: this.pendingCount }, 'StatsQueue: draining pending jobs before shutdown');
|
|
82
|
+
// Need to ref the worker so the process stays alive while draining
|
|
83
|
+
this.worker.ref();
|
|
84
|
+
const worker = this.worker;
|
|
85
|
+
await new Promise((resolve) => {
|
|
86
|
+
const timeout = setTimeout(() => {
|
|
87
|
+
this.logger.warn({ pendingCount: this.pendingCount }, 'StatsQueue: drain timeout reached, force-terminating');
|
|
88
|
+
worker.terminate();
|
|
89
|
+
resolve();
|
|
90
|
+
}, DRAIN_TIMEOUT_MS);
|
|
91
|
+
const onMessage = (event) => {
|
|
92
|
+
if (event.data.type === 'drained') {
|
|
93
|
+
clearTimeout(timeout);
|
|
94
|
+
worker.terminate();
|
|
95
|
+
this.logger.info('StatsQueue: worker drained and terminated');
|
|
96
|
+
resolve();
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
worker.addEventListener('message', onMessage);
|
|
100
|
+
worker.postMessage({ type: 'shutdown' });
|
|
101
|
+
});
|
|
102
|
+
this.worker = null;
|
|
103
|
+
this.pendingCount = 0;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=statsQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statsQueue.js","sourceRoot":"","sources":["../../../src/core/workers/statsQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StatsWorker - Background Bun Worker thread
|
|
3
|
+
*
|
|
4
|
+
* Receives stats jobs from the main thread, fetches generation stats
|
|
5
|
+
* from OpenRouter, and updates the appropriate DB tables.
|
|
6
|
+
*
|
|
7
|
+
* Runs on a separate thread with its own DB connection.
|
|
8
|
+
* Supports graceful shutdown: drains all pending jobs before exiting.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=statsWorker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statsWorker.d.ts","sourceRoot":"","sources":["../../../src/core/workers/statsWorker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|