@cogitator-ai/self-modifying 19.2.1 → 19.3.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.
- package/README.md +23 -6
- package/dist/architecture-evolution/capability-analyzer.d.ts +3 -0
- package/dist/architecture-evolution/capability-analyzer.d.ts.map +1 -1
- package/dist/architecture-evolution/capability-analyzer.js +3 -1
- package/dist/architecture-evolution/capability-analyzer.js.map +1 -1
- package/dist/architecture-evolution/parameter-optimizer.d.ts +6 -0
- package/dist/architecture-evolution/parameter-optimizer.d.ts.map +1 -1
- package/dist/architecture-evolution/parameter-optimizer.js +5 -2
- package/dist/architecture-evolution/parameter-optimizer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/self-modifying-agent.d.ts +6 -0
- package/dist/self-modifying-agent.d.ts.map +1 -1
- package/dist/self-modifying-agent.js +12 -2
- package/dist/self-modifying-agent.js.map +1 -1
- package/dist/tool-generation/gap-analyzer.d.ts +13 -4
- package/dist/tool-generation/gap-analyzer.d.ts.map +1 -1
- package/dist/tool-generation/gap-analyzer.js +5 -2
- package/dist/tool-generation/gap-analyzer.js.map +1 -1
- package/dist/tool-generation/index.d.ts +2 -2
- package/dist/tool-generation/index.d.ts.map +1 -1
- package/dist/tool-generation/index.js.map +1 -1
- package/dist/tool-generation/prompts.d.ts +7 -2
- package/dist/tool-generation/prompts.d.ts.map +1 -1
- package/dist/tool-generation/prompts.js +44 -12
- package/dist/tool-generation/prompts.js.map +1 -1
- package/dist/tool-generation/tool-generator.d.ts +6 -0
- package/dist/tool-generation/tool-generator.d.ts.map +1 -1
- package/dist/tool-generation/tool-generator.js +26 -2
- package/dist/tool-generation/tool-generator.js.map +1 -1
- package/dist/tool-generation/tool-validator.d.ts +16 -0
- package/dist/tool-generation/tool-validator.d.ts.map +1 -1
- package/dist/tool-generation/tool-validator.js +110 -17
- package/dist/tool-generation/tool-validator.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/self-modifying-agent.test.ts +52 -0
- package/src/__tests__/tool-review-regressions.test.ts +473 -0
- package/src/architecture-evolution/capability-analyzer.ts +5 -1
- package/src/architecture-evolution/parameter-optimizer.ts +10 -2
- package/src/index.ts +2 -0
- package/src/self-modifying-agent.ts +18 -2
- package/src/tool-generation/gap-analyzer.ts +24 -11
- package/src/tool-generation/index.ts +2 -1
- package/src/tool-generation/prompts.ts +52 -13
- package/src/tool-generation/tool-generator.ts +33 -2
- package/src/tool-generation/tool-validator.ts +121 -20
|
@@ -137,18 +137,83 @@ const STATIC_VALIDATION_RULES = [
|
|
|
137
137
|
},
|
|
138
138
|
},
|
|
139
139
|
];
|
|
140
|
+
/** Edge cases and approved review notes lower the score, but never below a passing grade on their own. */
|
|
141
|
+
const MAX_ADVISORY_PENALTY = 0.3;
|
|
142
|
+
function isRecord(value) {
|
|
143
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
144
|
+
}
|
|
145
|
+
function primaryType(type) {
|
|
146
|
+
return Array.isArray(type) ? type.find((t) => t !== 'null') : type;
|
|
147
|
+
}
|
|
148
|
+
function matchesType(value, type) {
|
|
149
|
+
if (type === undefined)
|
|
150
|
+
return true;
|
|
151
|
+
const types = Array.isArray(type) ? type : [type];
|
|
152
|
+
return types.some((t) => {
|
|
153
|
+
switch (t) {
|
|
154
|
+
case 'string':
|
|
155
|
+
return typeof value === 'string';
|
|
156
|
+
case 'number':
|
|
157
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
158
|
+
case 'integer':
|
|
159
|
+
return Number.isInteger(value);
|
|
160
|
+
case 'boolean':
|
|
161
|
+
return typeof value === 'boolean';
|
|
162
|
+
case 'array':
|
|
163
|
+
return Array.isArray(value);
|
|
164
|
+
case 'object':
|
|
165
|
+
return isRecord(value);
|
|
166
|
+
case 'null':
|
|
167
|
+
return value === null;
|
|
168
|
+
default:
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/** Whether an input has every required parameter, no unknown one, and values of the declared types. */
|
|
174
|
+
function fitsSchema(input, parameters) {
|
|
175
|
+
const properties = isRecord(parameters.properties)
|
|
176
|
+
? parameters.properties
|
|
177
|
+
: {};
|
|
178
|
+
const required = Array.isArray(parameters.required) ? parameters.required : [];
|
|
179
|
+
if (required.some((key) => typeof key === 'string' && !(key in input)))
|
|
180
|
+
return false;
|
|
181
|
+
if (Object.keys(properties).length === 0)
|
|
182
|
+
return true;
|
|
183
|
+
return Object.entries(input).every(([key, value]) => {
|
|
184
|
+
const schema = properties[key];
|
|
185
|
+
return schema !== undefined && matchesType(value, schema.type);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/** A review approves when it calls the tool valid and does not ask for a revision or a rejection. */
|
|
189
|
+
function approves(review) {
|
|
190
|
+
return review.isValid && (review.recommendation ?? 'approve') === 'approve';
|
|
191
|
+
}
|
|
140
192
|
export class ToolValidator {
|
|
141
193
|
llm;
|
|
142
194
|
config;
|
|
143
195
|
model;
|
|
196
|
+
maxTokens;
|
|
144
197
|
sandbox;
|
|
145
198
|
customRules = [];
|
|
146
199
|
constructor(options) {
|
|
147
200
|
this.llm = options.llm;
|
|
201
|
+
this.maxTokens = options.maxTokens;
|
|
148
202
|
this.config = options.config;
|
|
149
203
|
this.model = requireModelForLLM(options.llm, options.model, 'ToolValidator');
|
|
150
204
|
this.sandbox = new ToolSandbox(options.config.sandboxConfig);
|
|
151
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Grades a tool. Static security checks and sandbox test failures are authoritative: either
|
|
208
|
+
* makes the tool invalid whatever a review says. When `requireLLMValidation` is on, the
|
|
209
|
+
* reviewer's verdict decides the rest: an approving review keeps its security and logic
|
|
210
|
+
* notes as suggestions, while a review that recommends a revision or rejects the tool makes
|
|
211
|
+
* it invalid and its findings become the issues to fix.
|
|
212
|
+
*
|
|
213
|
+
* Without `testCases`, the tool runs on the example inputs it was generated with (they must
|
|
214
|
+
* succeed) and on inputs synthesized from its parameters schema (they only prove the tool
|
|
215
|
+
* runs: a descriptive error is accepted).
|
|
216
|
+
*/
|
|
152
217
|
async validate(tool, testCases) {
|
|
153
218
|
const securityIssues = [];
|
|
154
219
|
const logicIssues = [];
|
|
@@ -168,7 +233,10 @@ export class ToolValidator {
|
|
|
168
233
|
overallScore: 0,
|
|
169
234
|
};
|
|
170
235
|
}
|
|
171
|
-
const effectiveTestCases = testCases
|
|
236
|
+
const effectiveTestCases = testCases ?? [
|
|
237
|
+
...this.exampleTestCases(tool),
|
|
238
|
+
...this.generateBasicTestCases(tool),
|
|
239
|
+
];
|
|
172
240
|
const sandboxResult = await this.sandbox.testWithCases(tool, effectiveTestCases);
|
|
173
241
|
const testResults = sandboxResult.results.map((r) => ({
|
|
174
242
|
input: r.input,
|
|
@@ -180,18 +248,32 @@ export class ToolValidator {
|
|
|
180
248
|
const failedTests = sandboxResult.results.filter((r) => !r.passed);
|
|
181
249
|
logicIssues.push(...failedTests.map((t) => `Test failed for input ${JSON.stringify(t.input)}: ${t.error || 'unexpected output'}`));
|
|
182
250
|
}
|
|
251
|
+
let advisoryNotes = 0;
|
|
183
252
|
if (this.llm && this.config.requireLLMValidation) {
|
|
184
|
-
const
|
|
185
|
-
if (
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
253
|
+
const review = await this.runLLMValidation(tool, effectiveTestCases);
|
|
254
|
+
if (review) {
|
|
255
|
+
edgeCases.push(...review.edgeCases);
|
|
256
|
+
suggestions.push(...review.suggestions);
|
|
257
|
+
if (approves(review)) {
|
|
258
|
+
const notes = [
|
|
259
|
+
...review.securityIssues.map((issue) => `Review note (security): ${issue}`),
|
|
260
|
+
...review.logicIssues.map((issue) => `Review note (logic): ${issue}`),
|
|
261
|
+
];
|
|
262
|
+
advisoryNotes = notes.length;
|
|
263
|
+
suggestions.push(...notes);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
securityIssues.push(...review.securityIssues);
|
|
267
|
+
logicIssues.push(...review.logicIssues);
|
|
268
|
+
if (review.securityIssues.length === 0 && review.logicIssues.length === 0) {
|
|
269
|
+
logicIssues.push(`The review recommends to ${review.recommendation ?? 'reject'} the tool without naming an issue: check it against its description`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
190
272
|
}
|
|
191
273
|
}
|
|
192
|
-
const score = this.calculateScore(securityIssues.length, logicIssues.length, edgeCases.length, sandboxResult.passed, sandboxResult.failed);
|
|
274
|
+
const score = this.calculateScore(securityIssues.length, logicIssues.length, edgeCases.length + advisoryNotes, sandboxResult.passed, sandboxResult.failed);
|
|
193
275
|
return {
|
|
194
|
-
isValid: securityIssues.length === 0 && logicIssues.length === 0
|
|
276
|
+
isValid: securityIssues.length === 0 && logicIssues.length === 0,
|
|
195
277
|
securityIssues: [...new Set(securityIssues)],
|
|
196
278
|
logicIssues: [...new Set(logicIssues)],
|
|
197
279
|
edgeCases: [...new Set(edgeCases)],
|
|
@@ -242,13 +324,24 @@ Analyze code for security vulnerabilities, logic errors, and edge cases.
|
|
|
242
324
|
Be thorough but practical - focus on real issues.`,
|
|
243
325
|
},
|
|
244
326
|
{ role: 'user', content: prompt },
|
|
245
|
-
], { model: this.model, temperature: 0.2 });
|
|
327
|
+
], { model: this.model, temperature: 0.2, maxTokens: this.maxTokens });
|
|
246
328
|
return parseValidationResponse(content);
|
|
247
329
|
}
|
|
248
330
|
catch {
|
|
249
331
|
return null;
|
|
250
332
|
}
|
|
251
333
|
}
|
|
334
|
+
/** The example inputs the tool was generated with that fit its schema, as cases that must succeed. */
|
|
335
|
+
exampleTestCases(tool) {
|
|
336
|
+
const examples = tool.metadata?.examples;
|
|
337
|
+
if (!Array.isArray(examples))
|
|
338
|
+
return [];
|
|
339
|
+
return examples.flatMap((example) => {
|
|
340
|
+
if (!isRecord(example) || !isRecord(example.input))
|
|
341
|
+
return [];
|
|
342
|
+
return fitsSchema(example.input, tool.parameters) ? [{ input: example.input }] : [];
|
|
343
|
+
});
|
|
344
|
+
}
|
|
252
345
|
generateBasicTestCases(tool) {
|
|
253
346
|
const params = tool.parameters;
|
|
254
347
|
if (params.type !== 'object' || !params.properties || typeof params.properties !== 'object') {
|
|
@@ -260,11 +353,11 @@ Be thorough but practical - focus on real issues.`,
|
|
|
260
353
|
: []);
|
|
261
354
|
const entries = Object.entries(properties);
|
|
262
355
|
const testCases = [];
|
|
263
|
-
const
|
|
356
|
+
const sampleInput = {};
|
|
264
357
|
for (const [key, schema] of entries) {
|
|
265
|
-
|
|
358
|
+
sampleInput[key] = this.generateSampleValue(schema);
|
|
266
359
|
}
|
|
267
|
-
testCases.push({ input:
|
|
360
|
+
testCases.push({ input: sampleInput, allowThrow: true });
|
|
268
361
|
const hasOptional = entries.some(([key]) => !required.has(key));
|
|
269
362
|
if (required.size > 0 && hasOptional) {
|
|
270
363
|
const requiredOnlyInput = {};
|
|
@@ -273,11 +366,11 @@ Be thorough but practical - focus on real issues.`,
|
|
|
273
366
|
requiredOnlyInput[key] = this.generateSampleValue(schema);
|
|
274
367
|
}
|
|
275
368
|
}
|
|
276
|
-
testCases.push({ input: requiredOnlyInput });
|
|
369
|
+
testCases.push({ input: requiredOnlyInput, allowThrow: true });
|
|
277
370
|
}
|
|
278
371
|
const edgeInput = {};
|
|
279
372
|
for (const [key, schema] of entries) {
|
|
280
|
-
edgeInput[key] = this.generateEdgeValue(schema.type);
|
|
373
|
+
edgeInput[key] = this.generateEdgeValue(primaryType(schema.type));
|
|
281
374
|
}
|
|
282
375
|
testCases.push({ input: edgeInput, allowThrow: true });
|
|
283
376
|
if (required.size > 0) {
|
|
@@ -298,7 +391,7 @@ Be thorough but practical - focus on real issues.`,
|
|
|
298
391
|
return schema.examples[0];
|
|
299
392
|
if (Array.isArray(schema.enum) && schema.enum.length > 0)
|
|
300
393
|
return schema.enum[0];
|
|
301
|
-
switch (schema.type) {
|
|
394
|
+
switch (primaryType(schema.type)) {
|
|
302
395
|
case 'string':
|
|
303
396
|
return 'test';
|
|
304
397
|
case 'number':
|
|
@@ -337,7 +430,7 @@ Be thorough but practical - focus on real issues.`,
|
|
|
337
430
|
return 0;
|
|
338
431
|
let score = 1.0;
|
|
339
432
|
score -= logicCount * 0.2;
|
|
340
|
-
score -= edgeCaseCount * 0.05;
|
|
433
|
+
score -= Math.min(MAX_ADVISORY_PENALTY, edgeCaseCount * 0.05);
|
|
341
434
|
const totalTests = testsPassed + testsFailed;
|
|
342
435
|
if (totalTests > 0) {
|
|
343
436
|
const testScore = testsPassed / totalTests;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-validator.js","sourceRoot":"","sources":["../../src/tool-generation/tool-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-validator.js","sourceRoot":"","sources":["../../src/tool-generation/tool-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogitator-ai/self-modifying",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.3.0",
|
|
4
4
|
"description": "Self-modifying agent capabilities for Cogitator - tool generation, meta-reasoning, architecture evolution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"node": ">=22.12.0"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@cogitator-ai/types": "0.
|
|
23
|
+
"@cogitator-ai/types": "0.30.0",
|
|
24
24
|
"nanoid": "^6.0.1",
|
|
25
25
|
"zod": "^4.6.5"
|
|
26
26
|
},
|
|
@@ -497,6 +497,58 @@ describe('SelfModifyingAgent tool generation', () => {
|
|
|
497
497
|
expect.objectContaining({ success: false, error: 'Rejected by modification constraints' }),
|
|
498
498
|
]);
|
|
499
499
|
});
|
|
500
|
+
|
|
501
|
+
it('shows the next gap analysis what a generated tool does, and the agent instructions', async () => {
|
|
502
|
+
const gap = JSON.stringify({
|
|
503
|
+
hasGap: true,
|
|
504
|
+
gaps: [
|
|
505
|
+
{
|
|
506
|
+
id: 'gap_crc',
|
|
507
|
+
description: 'No available tool can compute a CRC-32 checksum',
|
|
508
|
+
requiredCapability: 'CRC-32 checksum of a text',
|
|
509
|
+
suggestedToolName: 'crc32_calculator',
|
|
510
|
+
complexity: 'simple',
|
|
511
|
+
confidence: 0.95,
|
|
512
|
+
},
|
|
513
|
+
],
|
|
514
|
+
canProceed: false,
|
|
515
|
+
});
|
|
516
|
+
const tool = JSON.stringify({
|
|
517
|
+
name: 'crc32_calculator',
|
|
518
|
+
description: 'No available tool can compute a CRC-32 checksum',
|
|
519
|
+
implementation:
|
|
520
|
+
"async function execute(params) { if (typeof params.text !== 'string') { throw new Error('text must be a string'); } return params.text.length; }",
|
|
521
|
+
parameters: { type: 'object', properties: { text: { type: 'string' } }, required: ['text'] },
|
|
522
|
+
});
|
|
523
|
+
const llm = routedLLM({ gap, tool, agent: () => chatResponse('done') });
|
|
524
|
+
const agent = {
|
|
525
|
+
...createMockAgent(),
|
|
526
|
+
instructions: 'Never compute checksums yourself: always call a tool.',
|
|
527
|
+
} as Agent;
|
|
528
|
+
const selfMod = new SelfModifyingAgent({
|
|
529
|
+
agent,
|
|
530
|
+
llm,
|
|
531
|
+
config: {
|
|
532
|
+
toolGeneration: { requireLLMValidation: false },
|
|
533
|
+
metaReasoning: { enabled: false },
|
|
534
|
+
architectureEvolution: { enabled: false },
|
|
535
|
+
maxInternalTokens: 800,
|
|
536
|
+
},
|
|
537
|
+
});
|
|
538
|
+
|
|
539
|
+
await selfMod.run('CRC-32 of "abc"?');
|
|
540
|
+
llm.chat.mockClear();
|
|
541
|
+
await selfMod.run('CRC-32 of "xyz"?');
|
|
542
|
+
|
|
543
|
+
const gapRequest = llm.chat.mock.calls
|
|
544
|
+
.map((call) => call[0] as ChatRequest)
|
|
545
|
+
.find((request) => String(request.messages[0]?.content).includes('capability analyzer'));
|
|
546
|
+
const prompt = String(gapRequest?.messages[1]?.content);
|
|
547
|
+
expect(prompt).toContain('- crc32_calculator: CRC-32 checksum of a text');
|
|
548
|
+
expect(prompt).not.toContain('crc32_calculator: No available tool');
|
|
549
|
+
expect(prompt).toContain('Never compute checksums yourself: always call a tool.');
|
|
550
|
+
expect(gapRequest?.maxTokens).toBe(800);
|
|
551
|
+
});
|
|
500
552
|
});
|
|
501
553
|
|
|
502
554
|
describe('SelfModifyingAgent meta-reasoning', () => {
|