@dcyfr/ai 1.0.1 → 1.0.2
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/dist/ai/agents/agent-loader.d.ts +131 -0
- package/dist/ai/agents/agent-loader.d.ts.map +1 -0
- package/dist/ai/agents/agent-loader.js +397 -0
- package/dist/ai/agents/agent-loader.js.map +1 -0
- package/dist/ai/agents/agent-registry.d.ts +120 -0
- package/dist/ai/agents/agent-registry.d.ts.map +1 -0
- package/dist/ai/agents/agent-registry.js +345 -0
- package/dist/ai/agents/agent-registry.js.map +1 -0
- package/dist/ai/agents/agent-router.d.ts +97 -0
- package/dist/ai/agents/agent-router.d.ts.map +1 -0
- package/dist/ai/agents/agent-router.js +375 -0
- package/dist/ai/agents/agent-router.js.map +1 -0
- package/dist/ai/agents/index.d.ts +10 -0
- package/dist/ai/agents/index.d.ts.map +1 -0
- package/dist/ai/agents/index.js +12 -0
- package/dist/ai/agents/index.js.map +1 -0
- package/dist/ai/agents/types.d.ts +264 -0
- package/dist/ai/agents/types.d.ts.map +1 -0
- package/dist/ai/agents/types.js +10 -0
- package/dist/ai/agents/types.js.map +1 -0
- package/dist/ai/agents-builtin/architecture/architecture-reviewer.d.ts +12 -0
- package/dist/ai/agents-builtin/architecture/architecture-reviewer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/architecture/architecture-reviewer.js +92 -0
- package/dist/ai/agents-builtin/architecture/architecture-reviewer.js.map +1 -0
- package/dist/ai/agents-builtin/architecture/cloud-architect.d.ts +12 -0
- package/dist/ai/agents-builtin/architecture/cloud-architect.d.ts.map +1 -0
- package/dist/ai/agents-builtin/architecture/cloud-architect.js +103 -0
- package/dist/ai/agents-builtin/architecture/cloud-architect.js.map +1 -0
- package/dist/ai/agents-builtin/architecture/database-architect.d.ts +12 -0
- package/dist/ai/agents-builtin/architecture/database-architect.d.ts.map +1 -0
- package/dist/ai/agents-builtin/architecture/database-architect.js +95 -0
- package/dist/ai/agents-builtin/architecture/database-architect.js.map +1 -0
- package/dist/ai/agents-builtin/architecture/index.d.ts +11 -0
- package/dist/ai/agents-builtin/architecture/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/architecture/index.js +11 -0
- package/dist/ai/agents-builtin/architecture/index.js.map +1 -0
- package/dist/ai/agents-builtin/content/index.d.ts +9 -0
- package/dist/ai/agents-builtin/content/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/content/index.js +9 -0
- package/dist/ai/agents-builtin/content/index.js.map +1 -0
- package/dist/ai/agents-builtin/content/technical-writer.d.ts +12 -0
- package/dist/ai/agents-builtin/content/technical-writer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/content/technical-writer.js +93 -0
- package/dist/ai/agents-builtin/content/technical-writer.js.map +1 -0
- package/dist/ai/agents-builtin/data/data-scientist.d.ts +12 -0
- package/dist/ai/agents-builtin/data/data-scientist.d.ts.map +1 -0
- package/dist/ai/agents-builtin/data/data-scientist.js +92 -0
- package/dist/ai/agents-builtin/data/data-scientist.js.map +1 -0
- package/dist/ai/agents-builtin/data/index.d.ts +9 -0
- package/dist/ai/agents-builtin/data/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/data/index.js +9 -0
- package/dist/ai/agents-builtin/data/index.js.map +1 -0
- package/dist/ai/agents-builtin/development/backend-architect.d.ts +12 -0
- package/dist/ai/agents-builtin/development/backend-architect.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/backend-architect.js +99 -0
- package/dist/ai/agents-builtin/development/backend-architect.js.map +1 -0
- package/dist/ai/agents-builtin/development/frontend-developer.d.ts +12 -0
- package/dist/ai/agents-builtin/development/frontend-developer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/frontend-developer.js +106 -0
- package/dist/ai/agents-builtin/development/frontend-developer.js.map +1 -0
- package/dist/ai/agents-builtin/development/fullstack-developer.d.ts +12 -0
- package/dist/ai/agents-builtin/development/fullstack-developer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/fullstack-developer.js +86 -0
- package/dist/ai/agents-builtin/development/fullstack-developer.js.map +1 -0
- package/dist/ai/agents-builtin/development/index.d.ts +12 -0
- package/dist/ai/agents-builtin/development/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/index.js +12 -0
- package/dist/ai/agents-builtin/development/index.js.map +1 -0
- package/dist/ai/agents-builtin/development/typescript-pro.d.ts +12 -0
- package/dist/ai/agents-builtin/development/typescript-pro.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/typescript-pro.js +98 -0
- package/dist/ai/agents-builtin/development/typescript-pro.js.map +1 -0
- package/dist/ai/agents-builtin/devops/devops-engineer.d.ts +12 -0
- package/dist/ai/agents-builtin/devops/devops-engineer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/devops/devops-engineer.js +98 -0
- package/dist/ai/agents-builtin/devops/devops-engineer.js.map +1 -0
- package/dist/ai/agents-builtin/devops/index.d.ts +9 -0
- package/dist/ai/agents-builtin/devops/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/devops/index.js +9 -0
- package/dist/ai/agents-builtin/devops/index.js.map +1 -0
- package/dist/ai/agents-builtin/index.d.ts +36 -0
- package/dist/ai/agents-builtin/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/index.js +107 -0
- package/dist/ai/agents-builtin/index.js.map +1 -0
- package/dist/ai/agents-builtin/performance/index.d.ts +9 -0
- package/dist/ai/agents-builtin/performance/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/performance/index.js +9 -0
- package/dist/ai/agents-builtin/performance/index.js.map +1 -0
- package/dist/ai/agents-builtin/performance/performance-profiler.d.ts +12 -0
- package/dist/ai/agents-builtin/performance/performance-profiler.d.ts.map +1 -0
- package/dist/ai/agents-builtin/performance/performance-profiler.js +89 -0
- package/dist/ai/agents-builtin/performance/performance-profiler.js.map +1 -0
- package/dist/ai/agents-builtin/research/index.d.ts +9 -0
- package/dist/ai/agents-builtin/research/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/research/index.js +9 -0
- package/dist/ai/agents-builtin/research/index.js.map +1 -0
- package/dist/ai/agents-builtin/research/research-orchestrator.d.ts +12 -0
- package/dist/ai/agents-builtin/research/research-orchestrator.d.ts.map +1 -0
- package/dist/ai/agents-builtin/research/research-orchestrator.js +83 -0
- package/dist/ai/agents-builtin/research/research-orchestrator.js.map +1 -0
- package/dist/ai/agents-builtin/security/index.d.ts +9 -0
- package/dist/ai/agents-builtin/security/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/security/index.js +9 -0
- package/dist/ai/agents-builtin/security/index.js.map +1 -0
- package/dist/ai/agents-builtin/security/security-engineer.d.ts +12 -0
- package/dist/ai/agents-builtin/security/security-engineer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/security/security-engineer.js +90 -0
- package/dist/ai/agents-builtin/security/security-engineer.js.map +1 -0
- package/dist/ai/agents-builtin/testing/debugger.d.ts +13 -0
- package/dist/ai/agents-builtin/testing/debugger.d.ts.map +1 -0
- package/dist/ai/agents-builtin/testing/debugger.js +89 -0
- package/dist/ai/agents-builtin/testing/debugger.js.map +1 -0
- package/dist/ai/agents-builtin/testing/index.d.ts +10 -0
- package/dist/ai/agents-builtin/testing/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/testing/index.js +10 -0
- package/dist/ai/agents-builtin/testing/index.js.map +1 -0
- package/dist/ai/agents-builtin/testing/test-engineer.d.ts +12 -0
- package/dist/ai/agents-builtin/testing/test-engineer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/testing/test-engineer.js +93 -0
- package/dist/ai/agents-builtin/testing/test-engineer.js.map +1 -0
- package/dist/ai/config/loader.d.ts +19 -5
- package/dist/ai/config/loader.d.ts.map +1 -1
- package/dist/ai/config/loader.js +53 -18
- package/dist/ai/config/loader.js.map +1 -1
- package/dist/ai/config/schema.d.ts +600 -8
- package/dist/ai/config/schema.d.ts.map +1 -1
- package/dist/ai/config/schema.js +156 -0
- package/dist/ai/config/schema.js.map +1 -1
- package/dist/ai/index.d.ts +4 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +35 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/mcp/index.d.ts +8 -0
- package/dist/ai/mcp/index.d.ts.map +1 -0
- package/dist/ai/mcp/index.js +8 -0
- package/dist/ai/mcp/index.js.map +1 -0
- package/dist/ai/mcp/mcp-registry.d.ts +127 -0
- package/dist/ai/mcp/mcp-registry.d.ts.map +1 -0
- package/dist/ai/mcp/mcp-registry.js +355 -0
- package/dist/ai/mcp/mcp-registry.js.map +1 -0
- package/dist/ai/mcp/types.d.ts +126 -0
- package/dist/ai/mcp/types.d.ts.map +1 -0
- package/dist/ai/mcp/types.js +9 -0
- package/dist/ai/mcp/types.js.map +1 -0
- package/dist/ai/utils/storage.d.ts +6 -1
- package/dist/ai/utils/storage.d.ts.map +1 -1
- package/dist/ai/utils/storage.js +57 -22
- package/dist/ai/utils/storage.js.map +1 -1
- package/package.json +1 -1
package/dist/ai/utils/storage.js
CHANGED
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
* @module @dcyfr/ai/utils/storage
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Check if running in browser environment
|
|
7
|
+
*/
|
|
8
|
+
const isBrowser = typeof globalThis !== 'undefined' &&
|
|
9
|
+
typeof globalThis.window !== 'undefined' &&
|
|
10
|
+
typeof globalThis.window.document !== 'undefined';
|
|
11
|
+
/**
|
|
12
|
+
* In-memory storage adapter (default, works in both browser and Node.js)
|
|
7
13
|
*/
|
|
8
14
|
export class MemoryStorageAdapter {
|
|
9
15
|
type = 'memory';
|
|
@@ -30,19 +36,29 @@ export class MemoryStorageAdapter {
|
|
|
30
36
|
}
|
|
31
37
|
/**
|
|
32
38
|
* File-based storage adapter (Node.js only)
|
|
39
|
+
*
|
|
40
|
+
* This adapter requires Node.js and will throw an error if used in a browser environment.
|
|
33
41
|
*/
|
|
34
42
|
export class FileStorageAdapter {
|
|
35
43
|
type = 'file';
|
|
36
44
|
basePath;
|
|
37
45
|
constructor(basePath) {
|
|
46
|
+
if (isBrowser) {
|
|
47
|
+
throw new Error('FileStorageAdapter is not available in browser environments. ' +
|
|
48
|
+
'Use MemoryStorageAdapter instead, or run this code on the server.');
|
|
49
|
+
}
|
|
38
50
|
this.basePath = basePath;
|
|
39
51
|
}
|
|
40
52
|
async get(key) {
|
|
53
|
+
if (isBrowser) {
|
|
54
|
+
throw new Error('FileStorageAdapter.get() is not available in browser environments.');
|
|
55
|
+
}
|
|
41
56
|
try {
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
57
|
+
// Dynamic imports for Node.js modules
|
|
58
|
+
const { readFile } = await import('fs/promises');
|
|
59
|
+
const { join } = await import('path');
|
|
60
|
+
const filePath = join(this.basePath, `${key}.json`);
|
|
61
|
+
const content = await readFile(filePath, 'utf-8');
|
|
46
62
|
return JSON.parse(content);
|
|
47
63
|
}
|
|
48
64
|
catch (error) {
|
|
@@ -53,19 +69,25 @@ export class FileStorageAdapter {
|
|
|
53
69
|
}
|
|
54
70
|
}
|
|
55
71
|
async set(key, value) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
72
|
+
if (isBrowser) {
|
|
73
|
+
throw new Error('FileStorageAdapter.set() is not available in browser environments.');
|
|
74
|
+
}
|
|
75
|
+
const { writeFile, mkdir } = await import('fs/promises');
|
|
76
|
+
const { join } = await import('path');
|
|
77
|
+
const filePath = join(this.basePath, `${key}.json`);
|
|
59
78
|
// Ensure directory exists
|
|
60
|
-
await
|
|
61
|
-
await
|
|
79
|
+
await mkdir(this.basePath, { recursive: true });
|
|
80
|
+
await writeFile(filePath, JSON.stringify(value, null, 2), 'utf-8');
|
|
62
81
|
}
|
|
63
82
|
async delete(key) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
83
|
+
if (isBrowser) {
|
|
84
|
+
throw new Error('FileStorageAdapter.delete() is not available in browser environments.');
|
|
85
|
+
}
|
|
86
|
+
const { unlink } = await import('fs/promises');
|
|
87
|
+
const { join } = await import('path');
|
|
88
|
+
const filePath = join(this.basePath, `${key}.json`);
|
|
67
89
|
try {
|
|
68
|
-
await
|
|
90
|
+
await unlink(filePath);
|
|
69
91
|
}
|
|
70
92
|
catch (error) {
|
|
71
93
|
if (error.code !== 'ENOENT') {
|
|
@@ -74,10 +96,12 @@ export class FileStorageAdapter {
|
|
|
74
96
|
}
|
|
75
97
|
}
|
|
76
98
|
async list(prefix) {
|
|
77
|
-
|
|
78
|
-
|
|
99
|
+
if (isBrowser) {
|
|
100
|
+
throw new Error('FileStorageAdapter.list() is not available in browser environments.');
|
|
101
|
+
}
|
|
102
|
+
const { readdir } = await import('fs/promises');
|
|
79
103
|
try {
|
|
80
|
-
const files = await
|
|
104
|
+
const files = await readdir(this.basePath);
|
|
81
105
|
const jsonFiles = files
|
|
82
106
|
.filter(f => f.endsWith('.json'))
|
|
83
107
|
.map(f => f.replace(/\.json$/, ''));
|
|
@@ -93,28 +117,39 @@ export class FileStorageAdapter {
|
|
|
93
117
|
}
|
|
94
118
|
}
|
|
95
119
|
async clear() {
|
|
96
|
-
|
|
97
|
-
|
|
120
|
+
if (isBrowser) {
|
|
121
|
+
throw new Error('FileStorageAdapter.clear() is not available in browser environments.');
|
|
122
|
+
}
|
|
123
|
+
const { unlink } = await import('fs/promises');
|
|
124
|
+
const { join } = await import('path');
|
|
98
125
|
try {
|
|
99
126
|
const files = await this.list();
|
|
100
127
|
await Promise.all(files.map(key => {
|
|
101
|
-
const filePath =
|
|
102
|
-
return
|
|
128
|
+
const filePath = join(this.basePath, `${key}.json`);
|
|
129
|
+
return unlink(filePath);
|
|
103
130
|
}));
|
|
104
131
|
}
|
|
105
|
-
catch
|
|
132
|
+
catch {
|
|
106
133
|
// Ignore errors during clear
|
|
107
134
|
}
|
|
108
135
|
}
|
|
109
136
|
}
|
|
110
137
|
/**
|
|
111
138
|
* Storage adapter factory
|
|
139
|
+
*
|
|
140
|
+
* In browser environments, only 'memory' storage is available.
|
|
141
|
+
* File-based storage requires a Node.js environment.
|
|
112
142
|
*/
|
|
113
143
|
export function createStorageAdapter(type, options) {
|
|
114
144
|
switch (type) {
|
|
115
145
|
case 'memory':
|
|
116
146
|
return new MemoryStorageAdapter();
|
|
117
147
|
case 'file':
|
|
148
|
+
if (isBrowser) {
|
|
149
|
+
console.warn('⚠️ FileStorageAdapter requested in browser environment. ' +
|
|
150
|
+
'Falling back to MemoryStorageAdapter. Data will not persist.');
|
|
151
|
+
return new MemoryStorageAdapter();
|
|
152
|
+
}
|
|
118
153
|
if (!options?.basePath) {
|
|
119
154
|
throw new Error('FileStorageAdapter requires basePath option');
|
|
120
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../packages/ai/utils/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAC/B,IAAI,GAAgB,QAAQ,CAAC;IACrB,KAAK,GAAyB,IAAI,GAAG,EAAE,CAAC;IAEhD,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAE,KAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAED
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../packages/ai/utils/storage.ts"],"names":[],"mappings":"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"}
|