@cogitator-ai/self-modifying 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.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +714 -0
  3. package/dist/architecture-evolution/capability-analyzer.d.ts +32 -0
  4. package/dist/architecture-evolution/capability-analyzer.d.ts.map +1 -0
  5. package/dist/architecture-evolution/capability-analyzer.js +264 -0
  6. package/dist/architecture-evolution/capability-analyzer.js.map +1 -0
  7. package/dist/architecture-evolution/evolution-strategy.d.ts +29 -0
  8. package/dist/architecture-evolution/evolution-strategy.d.ts.map +1 -0
  9. package/dist/architecture-evolution/evolution-strategy.js +176 -0
  10. package/dist/architecture-evolution/evolution-strategy.js.map +1 -0
  11. package/dist/architecture-evolution/index.d.ts +5 -0
  12. package/dist/architecture-evolution/index.d.ts.map +1 -0
  13. package/dist/architecture-evolution/index.js +5 -0
  14. package/dist/architecture-evolution/index.js.map +1 -0
  15. package/dist/architecture-evolution/parameter-optimizer.d.ts +67 -0
  16. package/dist/architecture-evolution/parameter-optimizer.d.ts.map +1 -0
  17. package/dist/architecture-evolution/parameter-optimizer.js +341 -0
  18. package/dist/architecture-evolution/parameter-optimizer.js.map +1 -0
  19. package/dist/architecture-evolution/prompts.d.ts +33 -0
  20. package/dist/architecture-evolution/prompts.d.ts.map +1 -0
  21. package/dist/architecture-evolution/prompts.js +169 -0
  22. package/dist/architecture-evolution/prompts.js.map +1 -0
  23. package/dist/constraints/index.d.ts +4 -0
  24. package/dist/constraints/index.d.ts.map +1 -0
  25. package/dist/constraints/index.js +4 -0
  26. package/dist/constraints/index.js.map +1 -0
  27. package/dist/constraints/modification-validator.d.ts +26 -0
  28. package/dist/constraints/modification-validator.d.ts.map +1 -0
  29. package/dist/constraints/modification-validator.js +313 -0
  30. package/dist/constraints/modification-validator.js.map +1 -0
  31. package/dist/constraints/rollback-manager.d.ts +52 -0
  32. package/dist/constraints/rollback-manager.d.ts.map +1 -0
  33. package/dist/constraints/rollback-manager.js +113 -0
  34. package/dist/constraints/rollback-manager.js.map +1 -0
  35. package/dist/constraints/safety-constraints.d.ts +11 -0
  36. package/dist/constraints/safety-constraints.d.ts.map +1 -0
  37. package/dist/constraints/safety-constraints.js +78 -0
  38. package/dist/constraints/safety-constraints.js.map +1 -0
  39. package/dist/events/event-emitter.d.ts +12 -0
  40. package/dist/events/event-emitter.d.ts.map +1 -0
  41. package/dist/events/event-emitter.js +43 -0
  42. package/dist/events/event-emitter.js.map +1 -0
  43. package/dist/events/index.d.ts +2 -0
  44. package/dist/events/index.d.ts.map +1 -0
  45. package/dist/events/index.js +2 -0
  46. package/dist/events/index.js.map +1 -0
  47. package/dist/index.d.ts +8 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +7 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/meta-reasoning/index.d.ts +5 -0
  52. package/dist/meta-reasoning/index.d.ts.map +1 -0
  53. package/dist/meta-reasoning/index.js +5 -0
  54. package/dist/meta-reasoning/index.js.map +1 -0
  55. package/dist/meta-reasoning/meta-reasoner.d.ts +53 -0
  56. package/dist/meta-reasoning/meta-reasoner.d.ts.map +1 -0
  57. package/dist/meta-reasoning/meta-reasoner.js +261 -0
  58. package/dist/meta-reasoning/meta-reasoner.js.map +1 -0
  59. package/dist/meta-reasoning/observation-collector.d.ts +37 -0
  60. package/dist/meta-reasoning/observation-collector.d.ts.map +1 -0
  61. package/dist/meta-reasoning/observation-collector.js +123 -0
  62. package/dist/meta-reasoning/observation-collector.js.map +1 -0
  63. package/dist/meta-reasoning/prompts.d.ts +31 -0
  64. package/dist/meta-reasoning/prompts.d.ts.map +1 -0
  65. package/dist/meta-reasoning/prompts.js +96 -0
  66. package/dist/meta-reasoning/prompts.js.map +1 -0
  67. package/dist/meta-reasoning/strategy-selector.d.ts +27 -0
  68. package/dist/meta-reasoning/strategy-selector.d.ts.map +1 -0
  69. package/dist/meta-reasoning/strategy-selector.js +138 -0
  70. package/dist/meta-reasoning/strategy-selector.js.map +1 -0
  71. package/dist/self-modifying-agent.d.ts +61 -0
  72. package/dist/self-modifying-agent.d.ts.map +1 -0
  73. package/dist/self-modifying-agent.js +449 -0
  74. package/dist/self-modifying-agent.js.map +1 -0
  75. package/dist/tool-generation/gap-analyzer.d.ts +25 -0
  76. package/dist/tool-generation/gap-analyzer.d.ts.map +1 -0
  77. package/dist/tool-generation/gap-analyzer.js +153 -0
  78. package/dist/tool-generation/gap-analyzer.js.map +1 -0
  79. package/dist/tool-generation/generated-tool-store.d.ts +51 -0
  80. package/dist/tool-generation/generated-tool-store.d.ts.map +1 -0
  81. package/dist/tool-generation/generated-tool-store.js +195 -0
  82. package/dist/tool-generation/generated-tool-store.js.map +1 -0
  83. package/dist/tool-generation/index.d.ts +7 -0
  84. package/dist/tool-generation/index.d.ts.map +1 -0
  85. package/dist/tool-generation/index.js +7 -0
  86. package/dist/tool-generation/index.js.map +1 -0
  87. package/dist/tool-generation/prompts.d.ts +28 -0
  88. package/dist/tool-generation/prompts.d.ts.map +1 -0
  89. package/dist/tool-generation/prompts.js +269 -0
  90. package/dist/tool-generation/prompts.js.map +1 -0
  91. package/dist/tool-generation/tool-generator.d.ts +29 -0
  92. package/dist/tool-generation/tool-generator.d.ts.map +1 -0
  93. package/dist/tool-generation/tool-generator.js +169 -0
  94. package/dist/tool-generation/tool-generator.js.map +1 -0
  95. package/dist/tool-generation/tool-sandbox.d.ts +31 -0
  96. package/dist/tool-generation/tool-sandbox.d.ts.map +1 -0
  97. package/dist/tool-generation/tool-sandbox.js +240 -0
  98. package/dist/tool-generation/tool-sandbox.js.map +1 -0
  99. package/dist/tool-generation/tool-validator.d.ts +32 -0
  100. package/dist/tool-generation/tool-validator.d.ts.map +1 -0
  101. package/dist/tool-generation/tool-validator.js +304 -0
  102. package/dist/tool-generation/tool-validator.js.map +1 -0
  103. package/dist/utils/index.d.ts +2 -0
  104. package/dist/utils/index.d.ts.map +1 -0
  105. package/dist/utils/index.js +2 -0
  106. package/dist/utils/index.js.map +1 -0
  107. package/dist/utils/llm-helper.d.ts +6 -0
  108. package/dist/utils/llm-helper.d.ts.map +1 -0
  109. package/dist/utils/llm-helper.js +18 -0
  110. package/dist/utils/llm-helper.js.map +1 -0
  111. package/package.json +61 -0
  112. package/src/__tests__/architecture-evolution.test.ts +368 -0
  113. package/src/__tests__/constraints.test.ts +266 -0
  114. package/src/__tests__/index.test.ts +99 -0
  115. package/src/__tests__/meta-reasoning.test.ts +343 -0
  116. package/src/__tests__/tool-generation.test.ts +455 -0
  117. package/src/architecture-evolution/capability-analyzer.ts +337 -0
  118. package/src/architecture-evolution/evolution-strategy.ts +224 -0
  119. package/src/architecture-evolution/index.ts +26 -0
  120. package/src/architecture-evolution/parameter-optimizer.ts +489 -0
  121. package/src/architecture-evolution/prompts.ts +216 -0
  122. package/src/constraints/index.ts +23 -0
  123. package/src/constraints/modification-validator.ts +402 -0
  124. package/src/constraints/rollback-manager.ts +173 -0
  125. package/src/constraints/safety-constraints.ts +103 -0
  126. package/src/events/event-emitter.ts +62 -0
  127. package/src/events/index.ts +1 -0
  128. package/src/index.ts +112 -0
  129. package/src/meta-reasoning/index.ts +24 -0
  130. package/src/meta-reasoning/meta-reasoner.ts +381 -0
  131. package/src/meta-reasoning/observation-collector.ts +161 -0
  132. package/src/meta-reasoning/prompts.ts +131 -0
  133. package/src/meta-reasoning/strategy-selector.ts +179 -0
  134. package/src/self-modifying-agent.ts +585 -0
  135. package/src/tool-generation/gap-analyzer.ts +234 -0
  136. package/src/tool-generation/generated-tool-store.ts +268 -0
  137. package/src/tool-generation/index.ts +19 -0
  138. package/src/tool-generation/prompts.ts +308 -0
  139. package/src/tool-generation/tool-generator.ts +243 -0
  140. package/src/tool-generation/tool-sandbox.ts +332 -0
  141. package/src/tool-generation/tool-validator.ts +365 -0
  142. package/src/utils/index.ts +1 -0
  143. package/src/utils/llm-helper.ts +24 -0
@@ -0,0 +1,304 @@
1
+ import { ToolSandbox } from './tool-sandbox';
2
+ import { buildToolValidationPrompt, parseValidationResponse } from './prompts';
3
+ const STATIC_VALIDATION_RULES = [
4
+ {
5
+ id: 'no_eval',
6
+ name: 'No eval() or Function constructor',
7
+ severity: 'error',
8
+ check: (code) => {
9
+ if (/\beval\s*\(/.test(code))
10
+ return 'Uses eval()';
11
+ if (/\bnew\s+Function\s*\(/.test(code))
12
+ return 'Uses Function constructor';
13
+ return null;
14
+ },
15
+ },
16
+ {
17
+ id: 'no_dynamic_import',
18
+ name: 'No dynamic imports',
19
+ severity: 'error',
20
+ check: (code) => {
21
+ if (/\bimport\s*\(/.test(code))
22
+ return 'Uses dynamic import()';
23
+ if (/\brequire\s*\(/.test(code))
24
+ return 'Uses require()';
25
+ return null;
26
+ },
27
+ },
28
+ {
29
+ id: 'no_global_access',
30
+ name: 'No global object access',
31
+ severity: 'error',
32
+ check: (code) => {
33
+ if (/\bprocess\./.test(code))
34
+ return 'Accesses process object';
35
+ if (/\bglobal\./.test(code))
36
+ return 'Accesses global object';
37
+ if (/\bglobalThis\./.test(code))
38
+ return 'Accesses globalThis';
39
+ return null;
40
+ },
41
+ },
42
+ {
43
+ id: 'no_prototype_pollution',
44
+ name: 'No prototype pollution',
45
+ severity: 'error',
46
+ check: (code) => {
47
+ if (/__proto__/.test(code))
48
+ return 'Uses __proto__';
49
+ if (/\.prototype\s*=/.test(code))
50
+ return 'Modifies prototype';
51
+ if (/Object\.setPrototypeOf/.test(code))
52
+ return 'Uses setPrototypeOf';
53
+ return null;
54
+ },
55
+ },
56
+ {
57
+ id: 'no_infinite_loops',
58
+ name: 'No obvious infinite loops',
59
+ severity: 'warning',
60
+ check: (code) => {
61
+ if (/while\s*\(\s*true\s*\)/.test(code) && !/break/.test(code)) {
62
+ return 'Contains while(true) without break';
63
+ }
64
+ if (/for\s*\(\s*;\s*;\s*\)/.test(code) && !/break/.test(code)) {
65
+ return 'Contains for(;;) without break';
66
+ }
67
+ return null;
68
+ },
69
+ },
70
+ {
71
+ id: 'has_execute_function',
72
+ name: 'Has execute function',
73
+ severity: 'error',
74
+ check: (code) => {
75
+ const patterns = [
76
+ /(?:async\s+)?function\s+execute\s*\(/,
77
+ /const\s+execute\s*=\s*(?:async\s*)?\(/,
78
+ /const\s+execute\s*=\s*(?:async\s+)?function/,
79
+ /let\s+execute\s*=\s*(?:async\s*)?\(/,
80
+ /execute\s*=\s*(?:async\s*)?\(/,
81
+ ];
82
+ const hasExecute = patterns.some((p) => p.test(code));
83
+ return hasExecute ? null : 'Missing execute function';
84
+ },
85
+ },
86
+ {
87
+ id: 'reasonable_length',
88
+ name: 'Reasonable code length',
89
+ severity: 'warning',
90
+ check: (code) => {
91
+ const lines = code.split('\n').length;
92
+ if (lines > 150)
93
+ return `Too long: ${lines} lines (recommended < 150)`;
94
+ return null;
95
+ },
96
+ },
97
+ {
98
+ id: 'no_shell_commands',
99
+ name: 'No shell command execution',
100
+ severity: 'error',
101
+ check: (code) => {
102
+ if (/child_process/.test(code))
103
+ return 'Uses child_process';
104
+ if (/\bexec\s*\(/.test(code))
105
+ return 'Uses exec()';
106
+ if (/\bspawn\s*\(/.test(code))
107
+ return 'Uses spawn()';
108
+ if (/\bexecSync\s*\(/.test(code))
109
+ return 'Uses execSync()';
110
+ return null;
111
+ },
112
+ },
113
+ {
114
+ id: 'no_file_system',
115
+ name: 'No file system access',
116
+ severity: 'error',
117
+ check: (code) => {
118
+ if (/\bfs\./.test(code))
119
+ return 'Uses fs module';
120
+ if (/readFileSync|writeFileSync/.test(code))
121
+ return 'Uses file system sync methods';
122
+ if (/readFile|writeFile/.test(code))
123
+ return 'Uses file system methods';
124
+ return null;
125
+ },
126
+ },
127
+ {
128
+ id: 'has_error_handling',
129
+ name: 'Has error handling',
130
+ severity: 'info',
131
+ check: (code) => {
132
+ if (!/try\s*\{/.test(code) && !/\.catch\s*\(/.test(code)) {
133
+ return 'No try-catch or .catch() error handling';
134
+ }
135
+ return null;
136
+ },
137
+ },
138
+ ];
139
+ export class ToolValidator {
140
+ llm;
141
+ config;
142
+ sandbox;
143
+ customRules = [];
144
+ constructor(options) {
145
+ this.llm = options.llm;
146
+ this.config = options.config;
147
+ this.sandbox = new ToolSandbox(options.config.sandboxConfig);
148
+ }
149
+ async validate(tool, testCases) {
150
+ const securityIssues = [];
151
+ const logicIssues = [];
152
+ const edgeCases = [];
153
+ const suggestions = [];
154
+ const staticResult = this.runStaticAnalysis(tool);
155
+ securityIssues.push(...staticResult.errors);
156
+ suggestions.push(...staticResult.warnings);
157
+ if (securityIssues.length > 0) {
158
+ return {
159
+ isValid: false,
160
+ securityIssues,
161
+ logicIssues,
162
+ edgeCases,
163
+ suggestions,
164
+ testResults: [],
165
+ overallScore: 0,
166
+ };
167
+ }
168
+ const effectiveTestCases = testCases || this.generateBasicTestCases(tool);
169
+ const sandboxResult = await this.sandbox.testWithCases(tool, effectiveTestCases);
170
+ const testResults = sandboxResult.results.map((r) => ({
171
+ input: r.input,
172
+ output: r.output,
173
+ passed: r.passed,
174
+ error: r.error,
175
+ }));
176
+ if (sandboxResult.failed > 0) {
177
+ const failedTests = sandboxResult.results.filter((r) => !r.passed);
178
+ logicIssues.push(...failedTests.map((t) => `Test failed for input ${JSON.stringify(t.input)}: ${t.error || 'unexpected output'}`));
179
+ }
180
+ if (this.llm && this.config.requireLLMValidation) {
181
+ const llmResult = await this.runLLMValidation(tool, effectiveTestCases);
182
+ if (llmResult) {
183
+ securityIssues.push(...llmResult.securityIssues);
184
+ logicIssues.push(...llmResult.logicIssues);
185
+ edgeCases.push(...llmResult.edgeCases);
186
+ suggestions.push(...llmResult.suggestions);
187
+ }
188
+ }
189
+ const score = this.calculateScore(securityIssues.length, logicIssues.length, edgeCases.length, sandboxResult.passed, sandboxResult.failed);
190
+ return {
191
+ isValid: securityIssues.length === 0 && logicIssues.length === 0 && score >= 0.7,
192
+ securityIssues: [...new Set(securityIssues)],
193
+ logicIssues: [...new Set(logicIssues)],
194
+ edgeCases: [...new Set(edgeCases)],
195
+ suggestions: [...new Set(suggestions)],
196
+ testResults,
197
+ overallScore: score,
198
+ };
199
+ }
200
+ addRule(rule) {
201
+ this.customRules.push(rule);
202
+ }
203
+ runStaticAnalysis(tool) {
204
+ const errors = [];
205
+ const warnings = [];
206
+ const allRules = [...STATIC_VALIDATION_RULES, ...this.customRules];
207
+ for (const rule of allRules) {
208
+ const result = rule.check(tool.implementation, tool);
209
+ if (result) {
210
+ if (rule.severity === 'error') {
211
+ errors.push(`[${rule.id}] ${result}`);
212
+ }
213
+ else if (rule.severity === 'warning') {
214
+ warnings.push(`[${rule.id}] ${result}`);
215
+ }
216
+ }
217
+ }
218
+ return { errors, warnings };
219
+ }
220
+ async runLLMValidation(tool, testCases) {
221
+ if (!this.llm)
222
+ return null;
223
+ try {
224
+ const prompt = buildToolValidationPrompt(tool, testCases.map((tc) => ({
225
+ input: tc.input,
226
+ expectedBehavior: tc.expectedOutput
227
+ ? `Should return ${JSON.stringify(tc.expectedOutput)}`
228
+ : tc.shouldThrow
229
+ ? 'Should throw an error'
230
+ : 'Should execute successfully',
231
+ })));
232
+ const response = await this.callLLM([
233
+ {
234
+ role: 'system',
235
+ content: `You are a security auditor and code reviewer.
236
+ Analyze code for security vulnerabilities, logic errors, and edge cases.
237
+ Be thorough but practical - focus on real issues.`,
238
+ },
239
+ { role: 'user', content: prompt },
240
+ ], 0.2);
241
+ return response ? parseValidationResponse(response.content) : null;
242
+ }
243
+ catch {
244
+ return null;
245
+ }
246
+ }
247
+ generateBasicTestCases(tool) {
248
+ const testCases = [];
249
+ const params = tool.parameters;
250
+ if (params.type === 'object' && params.properties) {
251
+ const validInput = {};
252
+ const properties = params.properties;
253
+ for (const [key, schema] of Object.entries(properties)) {
254
+ validInput[key] = this.generateSampleValue(schema.type, schema.default);
255
+ }
256
+ testCases.push({ input: validInput });
257
+ const required = params.required;
258
+ testCases.push({ input: {}, shouldThrow: (required?.length ?? 0) > 0 });
259
+ testCases.push({ input: null, shouldThrow: true });
260
+ }
261
+ return testCases;
262
+ }
263
+ generateSampleValue(type, defaultValue) {
264
+ if (defaultValue !== undefined)
265
+ return defaultValue;
266
+ switch (type) {
267
+ case 'string':
268
+ return 'test';
269
+ case 'number':
270
+ case 'integer':
271
+ return 42;
272
+ case 'boolean':
273
+ return true;
274
+ case 'array':
275
+ return [];
276
+ case 'object':
277
+ return {};
278
+ default:
279
+ return null;
280
+ }
281
+ }
282
+ calculateScore(securityCount, logicCount, edgeCaseCount, testsPassed, testsFailed) {
283
+ if (securityCount > 0)
284
+ return 0;
285
+ let score = 1.0;
286
+ score -= logicCount * 0.2;
287
+ score -= edgeCaseCount * 0.05;
288
+ const totalTests = testsPassed + testsFailed;
289
+ if (totalTests > 0) {
290
+ const testScore = testsPassed / totalTests;
291
+ score = score * 0.6 + testScore * 0.4;
292
+ }
293
+ return Math.max(0, Math.min(1, score));
294
+ }
295
+ async callLLM(messages, temperature) {
296
+ if (!this.llm)
297
+ return null;
298
+ if (this.llm.complete) {
299
+ return this.llm.complete({ messages, temperature });
300
+ }
301
+ return this.llm.chat({ model: 'default', messages, temperature });
302
+ }
303
+ }
304
+ //# sourceMappingURL=tool-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-validator.js","sourceRoot":"","sources":["../../src/tool-generation/tool-validator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAc/E,MAAM,uBAAuB,GAAqB;IAChD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,mCAAmC;QACzC,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,aAAa,CAAC;YACnD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,2BAA2B,CAAC;YAC3E,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,uBAAuB,CAAC;YAC/D,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,gBAAgB,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,yBAAyB,CAAC;YAC/D,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,wBAAwB,CAAC;YAC7D,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,qBAAqB,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,gBAAgB,CAAC;YACpD,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,oBAAoB,CAAC;YAC9D,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,qBAAqB,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,OAAO,oCAAoC,CAAC;YAC9C,CAAC;YACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,OAAO,gCAAgC,CAAC;YAC1C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,MAAM,QAAQ,GAAG;gBACf,sCAAsC;gBACtC,uCAAuC;gBACvC,6CAA6C;gBAC7C,qCAAqC;gBACrC,+BAA+B;aAChC,CAAC;YACF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACxD,CAAC;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACtC,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO,aAAa,KAAK,4BAA4B,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,oBAAoB,CAAC;YAC5D,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,aAAa,CAAC;YACnD,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,cAAc,CAAC;YACrD,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,iBAAiB,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,gBAAgB,CAAC;YACjD,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,+BAA+B,CAAC;YACpF,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,0BAA0B,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,OAAO,yCAAyC,CAAC;YACnD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF;CACF,CAAC;AAEF,MAAM,OAAO,aAAa;IACP,GAAG,CAAc;IACjB,MAAM,CAA2B;IACjC,OAAO,CAAc;IACrB,WAAW,GAAqB,EAAE,CAAC;IAEpD,YAAY,OAA6B;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAmB,EACnB,SAAsF;QAEtF,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAClD,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,cAAc;gBACd,WAAW;gBACX,SAAS;gBACT,WAAW;gBACX,WAAW,EAAE,EAAE;gBACf,YAAY,EAAE,CAAC;aAChB,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,SAAS,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAEjF,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CAAC;QAEJ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACnE,WAAW,CAAC,IAAI,CACd,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC,CACjH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;YACxE,IAAI,SAAS,EAAE,CAAC;gBACd,cAAc,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;gBACjD,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAC/B,cAAc,CAAC,MAAM,EACrB,WAAW,CAAC,MAAM,EAClB,SAAS,CAAC,MAAM,EAChB,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,MAAM,CACrB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG;YAChF,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5C,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;YACtC,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW;YACX,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,iBAAiB,CAAC,IAAmB;QAI3C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,GAAG,uBAAuB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAEnE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;gBACxC,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,IAAmB,EACnB,SAAqF;QAErF,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,yBAAyB,CACtC,IAAI,EACJ,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrB,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,gBAAgB,EAAE,EAAE,CAAC,cAAc;oBACjC,CAAC,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE;oBACtD,CAAC,CAAC,EAAE,CAAC,WAAW;wBACd,CAAC,CAAC,uBAAuB;wBACzB,CAAC,CAAC,6BAA6B;aACpC,CAAC,CAAC,CACJ,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAClC;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;;kDAE+B;iBACzC;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;aAClC,EAAE,GAAG,CAAC,CAAC;YAER,OAAO,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,sBAAsB,CAC5B,IAAmB;QAEnB,MAAM,SAAS,GAA+E,EAAE,CAAC;QACjG,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAClD,MAAM,UAAU,GAA4B,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,UAGzB,CAAC;YAEF,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvD,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1E,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAEtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAgC,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAExE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,mBAAmB,CAAC,IAAa,EAAE,YAAsB;QAC/D,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,YAAY,CAAC;QAEpD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC;YAChB,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,EAAE,CAAC;YACZ,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,EAAE,CAAC;YACZ,KAAK,QAAQ;gBACX,OAAO,EAAE,CAAC;YACZ;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,cAAc,CACpB,aAAqB,EACrB,UAAkB,EAClB,aAAqB,EACrB,WAAmB,EACnB,WAAmB;QAEnB,IAAI,aAAa,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAEhC,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,KAAK,IAAI,UAAU,GAAG,GAAG,CAAC;QAC1B,KAAK,IAAI,aAAa,GAAG,IAAI,CAAC;QAE9B,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;QAC7C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;YAC3C,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,QAA2E,EAC3E,WAAmB;QAEnB,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export { llmChat } from './llm-helper';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { llmChat } from './llm-helper';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LLMBackend, Message } from '@cogitator-ai/types';
2
+ export declare function llmChat(llm: LLMBackend, messages: Message[], options?: {
3
+ temperature?: number;
4
+ maxTokens?: number;
5
+ }): Promise<string>;
6
+ //# sourceMappingURL=llm-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-helper.d.ts","sourceRoot":"","sources":["../../src/utils/llm-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE/D,wBAAsB,OAAO,CAC3B,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -0,0 +1,18 @@
1
+ export async function llmChat(llm, messages, options) {
2
+ if (llm.complete) {
3
+ const response = await llm.complete({
4
+ messages,
5
+ temperature: options?.temperature,
6
+ maxTokens: options?.maxTokens,
7
+ });
8
+ return response.content;
9
+ }
10
+ const response = await llm.chat({
11
+ model: 'default',
12
+ messages,
13
+ temperature: options?.temperature,
14
+ maxTokens: options?.maxTokens,
15
+ });
16
+ return response.content;
17
+ }
18
+ //# sourceMappingURL=llm-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-helper.js","sourceRoot":"","sources":["../../src/utils/llm-helper.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAe,EACf,QAAmB,EACnB,OAAsD;IAEtD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC;YAClC,QAAQ;YACR,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,SAAS,EAAE,OAAO,EAAE,SAAS;SAC9B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;QAC9B,KAAK,EAAE,SAAS;QAChB,QAAQ;QACR,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,SAAS,EAAE,OAAO,EAAE,SAAS;KAC9B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@cogitator-ai/self-modifying",
3
+ "version": "0.1.0",
4
+ "description": "Self-modifying agent capabilities for Cogitator - tool generation, meta-reasoning, architecture evolution",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "src"
18
+ ],
19
+ "dependencies": {
20
+ "nanoid": "^5.0.4",
21
+ "zod": "^3.22.4",
22
+ "@cogitator-ai/types": "0.4.0"
23
+ },
24
+ "peerDependencies": {
25
+ "@cogitator-ai/core": "0.3.0",
26
+ "@cogitator-ai/neuro-symbolic": "0.1.0"
27
+ },
28
+ "peerDependenciesMeta": {
29
+ "@cogitator-ai/neuro-symbolic": {
30
+ "optional": true
31
+ }
32
+ },
33
+ "devDependencies": {
34
+ "@types/node": "^20.10.0",
35
+ "typescript": "^5.3.2",
36
+ "vitest": "^1.0.4"
37
+ },
38
+ "keywords": [
39
+ "ai",
40
+ "agent",
41
+ "self-modifying",
42
+ "meta-reasoning",
43
+ "tool-generation",
44
+ "llm"
45
+ ],
46
+ "author": "Cogitator Team",
47
+ "license": "MIT",
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/eL1fe/Cogitator.git",
51
+ "directory": "packages/self-modifying"
52
+ },
53
+ "scripts": {
54
+ "build": "tsc",
55
+ "dev": "tsc --watch",
56
+ "test": "vitest run",
57
+ "test:watch": "vitest",
58
+ "lint": "eslint src --ext .ts",
59
+ "typecheck": "tsc --noEmit"
60
+ }
61
+ }