@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,313 @@
1
+ import { createDefaultConstraints, mergeConstraints } from './safety-constraints';
2
+ export class ModificationValidator {
3
+ constraints;
4
+ strictMode;
5
+ constructor(options = {}) {
6
+ this.constraints = mergeConstraints(createDefaultConstraints(), options.constraints ?? {});
7
+ this.strictMode = options.strictMode ?? false;
8
+ }
9
+ async validate(request) {
10
+ const results = [];
11
+ const errors = [];
12
+ const warnings = [];
13
+ const safetyResults = await this.checkSafetyConstraints(request);
14
+ results.push(...safetyResults);
15
+ const capabilityResults = await this.checkCapabilityConstraints(request);
16
+ results.push(...capabilityResults);
17
+ const resourceResults = await this.checkResourceConstraints(request);
18
+ results.push(...resourceResults);
19
+ const customResults = await this.checkCustomConstraints(request);
20
+ results.push(...customResults);
21
+ for (const result of results) {
22
+ if (!result.satisfied) {
23
+ if (result.severity === 'critical' || result.severity === 'error') {
24
+ errors.push(result.message ?? `Constraint ${result.constraintName} violated`);
25
+ }
26
+ else {
27
+ warnings.push(result.message ?? `Constraint ${result.constraintName} warning`);
28
+ }
29
+ }
30
+ }
31
+ const hasCriticalViolation = results.some((r) => !r.satisfied && r.severity === 'critical');
32
+ const hasErrorViolation = results.some((r) => !r.satisfied && r.severity === 'error');
33
+ const valid = this.strictMode
34
+ ? results.every((r) => r.satisfied)
35
+ : !hasCriticalViolation && !hasErrorViolation;
36
+ return {
37
+ valid,
38
+ constraintResults: results,
39
+ errors,
40
+ warnings,
41
+ rollbackRequired: hasCriticalViolation,
42
+ };
43
+ }
44
+ async checkSafetyConstraints(request) {
45
+ const results = [];
46
+ for (const constraint of this.constraints.safety) {
47
+ const satisfied = this.evaluateSafetyRule(constraint.rule, request);
48
+ results.push({
49
+ constraintId: constraint.id,
50
+ constraintName: constraint.name,
51
+ satisfied,
52
+ severity: constraint.severity,
53
+ message: satisfied ? undefined : constraint.description,
54
+ });
55
+ }
56
+ return results;
57
+ }
58
+ evaluateSafetyRule(rule, request) {
59
+ if (typeof rule === 'string') {
60
+ return this.evaluateExpression(rule, request.payload);
61
+ }
62
+ const payload = request.payload;
63
+ switch (rule.type) {
64
+ case 'invariant':
65
+ return this.evaluateExpression(rule.expression ?? '', payload);
66
+ case 'precondition':
67
+ return this.evaluateExpression(rule.expression ?? '', payload);
68
+ case 'postcondition':
69
+ return true;
70
+ case 'temporal':
71
+ if (rule.pattern?.source === 'never') {
72
+ return !this.evaluateExpression(rule.expression ?? '', payload);
73
+ }
74
+ return true;
75
+ default:
76
+ return true;
77
+ }
78
+ }
79
+ evaluateExpression(expression, context) {
80
+ const parts = expression.split(/\s+(AND|OR)\s+/i);
81
+ const conditions = [];
82
+ const operators = [];
83
+ for (let i = 0; i < parts.length; i++) {
84
+ const part = parts[i].trim();
85
+ if (part.toUpperCase() === 'AND' || part.toUpperCase() === 'OR') {
86
+ operators.push(part.toUpperCase());
87
+ }
88
+ else {
89
+ conditions.push(this.evaluateSimpleCondition(part, context));
90
+ }
91
+ }
92
+ if (conditions.length === 0)
93
+ return true;
94
+ let result = conditions[0];
95
+ for (let i = 0; i < operators.length; i++) {
96
+ if (operators[i] === 'AND') {
97
+ result = result && conditions[i + 1];
98
+ }
99
+ else {
100
+ result = result || conditions[i + 1];
101
+ }
102
+ }
103
+ return result;
104
+ }
105
+ evaluateSimpleCondition(condition, context) {
106
+ const operators = ['<=', '>=', '<', '>', '!=', '='];
107
+ for (const op of operators) {
108
+ const idx = condition.indexOf(op);
109
+ if (idx !== -1) {
110
+ const left = condition.substring(0, idx).trim();
111
+ const right = condition.substring(idx + op.length).trim();
112
+ const leftValue = this.resolveValue(left, context);
113
+ const rightValue = this.resolveValue(right, context);
114
+ switch (op) {
115
+ case '=':
116
+ return leftValue === rightValue;
117
+ case '!=':
118
+ return leftValue !== rightValue;
119
+ case '<':
120
+ return Number(leftValue) < Number(rightValue);
121
+ case '>':
122
+ return Number(leftValue) > Number(rightValue);
123
+ case '<=':
124
+ return Number(leftValue) <= Number(rightValue);
125
+ case '>=':
126
+ return Number(leftValue) >= Number(rightValue);
127
+ }
128
+ }
129
+ }
130
+ const value = this.resolveValue(condition, context);
131
+ return Boolean(value);
132
+ }
133
+ resolveValue(expr, context) {
134
+ if (expr === 'true')
135
+ return true;
136
+ if (expr === 'false')
137
+ return false;
138
+ if (/^\d+(\.\d+)?$/.test(expr))
139
+ return parseFloat(expr);
140
+ const keys = expr.split('.');
141
+ let current = context;
142
+ for (const key of keys) {
143
+ if (current && typeof current === 'object') {
144
+ current = current[key];
145
+ }
146
+ else {
147
+ return undefined;
148
+ }
149
+ }
150
+ return current;
151
+ }
152
+ async checkCapabilityConstraints(request) {
153
+ const results = [];
154
+ if (request.type !== 'tool_generation') {
155
+ return results;
156
+ }
157
+ const payload = request.payload;
158
+ for (const constraint of this.constraints.capability) {
159
+ let satisfied = true;
160
+ let message;
161
+ if (payload.category) {
162
+ if (constraint.forbidden?.includes(payload.category)) {
163
+ satisfied = false;
164
+ message = `Category '${payload.category}' is forbidden`;
165
+ }
166
+ else if (constraint.allowed?.length &&
167
+ !constraint.allowed.includes(payload.category)) {
168
+ satisfied = false;
169
+ message = `Category '${payload.category}' is not in allowed list`;
170
+ }
171
+ }
172
+ if (satisfied &&
173
+ constraint.maxComplexity &&
174
+ payload.complexity &&
175
+ payload.complexity > constraint.maxComplexity) {
176
+ satisfied = false;
177
+ message = `Complexity ${payload.complexity} exceeds max ${constraint.maxComplexity}`;
178
+ }
179
+ results.push({
180
+ constraintId: constraint.id,
181
+ constraintName: constraint.name,
182
+ satisfied,
183
+ severity: 'error',
184
+ message,
185
+ });
186
+ }
187
+ return results;
188
+ }
189
+ async checkResourceConstraints(request) {
190
+ const results = [];
191
+ const payload = request.payload;
192
+ for (const constraint of this.constraints.resource) {
193
+ let satisfied = true;
194
+ let message;
195
+ if (constraint.maxTokensPerRun &&
196
+ payload.tokensUsed &&
197
+ payload.tokensUsed > constraint.maxTokensPerRun) {
198
+ satisfied = false;
199
+ message = `Tokens ${payload.tokensUsed} exceeds max ${constraint.maxTokensPerRun}`;
200
+ }
201
+ if (satisfied &&
202
+ constraint.maxCostPerRun &&
203
+ payload.cost &&
204
+ payload.cost > constraint.maxCostPerRun) {
205
+ satisfied = false;
206
+ message = `Cost ${payload.cost} exceeds max ${constraint.maxCostPerRun}`;
207
+ }
208
+ if (satisfied &&
209
+ constraint.maxToolsActive &&
210
+ payload.activeTools &&
211
+ payload.activeTools > constraint.maxToolsActive) {
212
+ satisfied = false;
213
+ message = `Active tools ${payload.activeTools} exceeds max ${constraint.maxToolsActive}`;
214
+ }
215
+ results.push({
216
+ constraintId: constraint.id,
217
+ constraintName: constraint.name,
218
+ satisfied,
219
+ severity: 'error',
220
+ message,
221
+ });
222
+ }
223
+ return results;
224
+ }
225
+ async checkCustomConstraints(request) {
226
+ const results = [];
227
+ for (const constraint of this.constraints.custom ?? []) {
228
+ let satisfied;
229
+ try {
230
+ satisfied = await constraint.predicate(request);
231
+ }
232
+ catch {
233
+ satisfied = false;
234
+ }
235
+ results.push({
236
+ constraintId: constraint.id,
237
+ constraintName: constraint.name,
238
+ satisfied,
239
+ severity: 'error',
240
+ message: satisfied ? undefined : constraint.description,
241
+ });
242
+ }
243
+ return results;
244
+ }
245
+ addSafetyConstraint(constraint) {
246
+ const idx = this.constraints.safety.findIndex((c) => c.id === constraint.id);
247
+ if (idx >= 0) {
248
+ this.constraints.safety[idx] = constraint;
249
+ }
250
+ else {
251
+ this.constraints.safety.push(constraint);
252
+ }
253
+ }
254
+ addCapabilityConstraint(constraint) {
255
+ const idx = this.constraints.capability.findIndex((c) => c.id === constraint.id);
256
+ if (idx >= 0) {
257
+ this.constraints.capability[idx] = constraint;
258
+ }
259
+ else {
260
+ this.constraints.capability.push(constraint);
261
+ }
262
+ }
263
+ addResourceConstraint(constraint) {
264
+ const idx = this.constraints.resource.findIndex((c) => c.id === constraint.id);
265
+ if (idx >= 0) {
266
+ this.constraints.resource[idx] = constraint;
267
+ }
268
+ else {
269
+ this.constraints.resource.push(constraint);
270
+ }
271
+ }
272
+ addCustomConstraint(constraint) {
273
+ if (!this.constraints.custom) {
274
+ this.constraints.custom = [];
275
+ }
276
+ const idx = this.constraints.custom.findIndex((c) => c.id === constraint.id);
277
+ if (idx >= 0) {
278
+ this.constraints.custom[idx] = constraint;
279
+ }
280
+ else {
281
+ this.constraints.custom.push(constraint);
282
+ }
283
+ }
284
+ removeConstraint(id) {
285
+ const safetyIdx = this.constraints.safety.findIndex((c) => c.id === id);
286
+ if (safetyIdx >= 0) {
287
+ this.constraints.safety.splice(safetyIdx, 1);
288
+ return true;
289
+ }
290
+ const capIdx = this.constraints.capability.findIndex((c) => c.id === id);
291
+ if (capIdx >= 0) {
292
+ this.constraints.capability.splice(capIdx, 1);
293
+ return true;
294
+ }
295
+ const resIdx = this.constraints.resource.findIndex((c) => c.id === id);
296
+ if (resIdx >= 0) {
297
+ this.constraints.resource.splice(resIdx, 1);
298
+ return true;
299
+ }
300
+ if (this.constraints.custom) {
301
+ const customIdx = this.constraints.custom.findIndex((c) => c.id === id);
302
+ if (customIdx >= 0) {
303
+ this.constraints.custom.splice(customIdx, 1);
304
+ return true;
305
+ }
306
+ }
307
+ return false;
308
+ }
309
+ getConstraints() {
310
+ return { ...this.constraints };
311
+ }
312
+ }
313
+ //# sourceMappingURL=modification-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modification-validator.js","sourceRoot":"","sources":["../../src/constraints/modification-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { ModificationCheckpoint, AppliedModification, AgentConfig, Tool } from '@cogitator-ai/types';
2
+ export interface CheckpointStore {
3
+ save(checkpoint: ModificationCheckpoint): Promise<void>;
4
+ get(id: string): Promise<ModificationCheckpoint | null>;
5
+ list(agentId: string): Promise<ModificationCheckpoint[]>;
6
+ delete(id: string): Promise<boolean>;
7
+ prune(agentId: string, keepCount: number): Promise<number>;
8
+ }
9
+ export declare class InMemoryCheckpointStore implements CheckpointStore {
10
+ private checkpoints;
11
+ private agentIndex;
12
+ save(checkpoint: ModificationCheckpoint): Promise<void>;
13
+ get(id: string): Promise<ModificationCheckpoint | null>;
14
+ list(agentId: string): Promise<ModificationCheckpoint[]>;
15
+ delete(id: string): Promise<boolean>;
16
+ prune(agentId: string, keepCount: number): Promise<number>;
17
+ }
18
+ export interface RollbackManagerOptions {
19
+ maxCheckpoints: number;
20
+ checkpointStore?: CheckpointStore;
21
+ }
22
+ export interface CheckpointDiff {
23
+ configChanges: Array<{
24
+ key: string;
25
+ before: unknown;
26
+ after: unknown;
27
+ }>;
28
+ toolsAdded: string[];
29
+ toolsRemoved: string[];
30
+ modificationsApplied: AppliedModification[];
31
+ }
32
+ export declare class RollbackManager {
33
+ private maxCheckpoints;
34
+ private store;
35
+ constructor(options: RollbackManagerOptions);
36
+ createCheckpoint(agentId: string, agentConfig: AgentConfig, tools: Tool[], modifications: AppliedModification[]): Promise<ModificationCheckpoint>;
37
+ getCheckpoint(id: string): Promise<ModificationCheckpoint | null>;
38
+ listCheckpoints(agentId: string): Promise<ModificationCheckpoint[]>;
39
+ getLatestCheckpoint(agentId: string): Promise<ModificationCheckpoint | null>;
40
+ rollbackTo(checkpointId: string): Promise<{
41
+ agentConfig: AgentConfig;
42
+ tools: Tool[];
43
+ } | null>;
44
+ rollbackToLatest(agentId: string): Promise<{
45
+ agentConfig: AgentConfig;
46
+ tools: Tool[];
47
+ } | null>;
48
+ compareCheckpoints(checkpointA: ModificationCheckpoint, checkpointB: ModificationCheckpoint): CheckpointDiff;
49
+ pruneCheckpoints(agentId: string, keepCount?: number): Promise<number>;
50
+ deleteCheckpoint(id: string): Promise<boolean>;
51
+ }
52
+ //# sourceMappingURL=rollback-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback-manager.d.ts","sourceRoot":"","sources":["../../src/constraints/rollback-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { nanoid } from 'nanoid';
2
+ export class InMemoryCheckpointStore {
3
+ checkpoints = new Map();
4
+ agentIndex = new Map();
5
+ async save(checkpoint) {
6
+ this.checkpoints.set(checkpoint.id, checkpoint);
7
+ if (!this.agentIndex.has(checkpoint.agentId)) {
8
+ this.agentIndex.set(checkpoint.agentId, new Set());
9
+ }
10
+ this.agentIndex.get(checkpoint.agentId).add(checkpoint.id);
11
+ }
12
+ async get(id) {
13
+ return this.checkpoints.get(id) ?? null;
14
+ }
15
+ async list(agentId) {
16
+ const ids = this.agentIndex.get(agentId);
17
+ if (!ids)
18
+ return [];
19
+ return [...ids]
20
+ .map((id) => this.checkpoints.get(id))
21
+ .filter(Boolean)
22
+ .sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime());
23
+ }
24
+ async delete(id) {
25
+ const checkpoint = this.checkpoints.get(id);
26
+ if (!checkpoint)
27
+ return false;
28
+ this.checkpoints.delete(id);
29
+ this.agentIndex.get(checkpoint.agentId)?.delete(id);
30
+ return true;
31
+ }
32
+ async prune(agentId, keepCount) {
33
+ const checkpoints = await this.list(agentId);
34
+ const toDelete = checkpoints.slice(keepCount);
35
+ for (const cp of toDelete) {
36
+ await this.delete(cp.id);
37
+ }
38
+ return toDelete.length;
39
+ }
40
+ }
41
+ export class RollbackManager {
42
+ maxCheckpoints;
43
+ store;
44
+ constructor(options) {
45
+ this.maxCheckpoints = options.maxCheckpoints;
46
+ this.store = options.checkpointStore ?? new InMemoryCheckpointStore();
47
+ }
48
+ async createCheckpoint(agentId, agentConfig, tools, modifications) {
49
+ const checkpoint = {
50
+ id: `ckpt_${nanoid(12)}`,
51
+ agentId,
52
+ timestamp: new Date(),
53
+ agentConfig: { ...agentConfig },
54
+ tools: tools.map((t) => ({ ...t })),
55
+ modifications: [...modifications],
56
+ };
57
+ await this.store.save(checkpoint);
58
+ await this.store.prune(agentId, this.maxCheckpoints);
59
+ return checkpoint;
60
+ }
61
+ async getCheckpoint(id) {
62
+ return this.store.get(id);
63
+ }
64
+ async listCheckpoints(agentId) {
65
+ return this.store.list(agentId);
66
+ }
67
+ async getLatestCheckpoint(agentId) {
68
+ const checkpoints = await this.store.list(agentId);
69
+ return checkpoints[0] ?? null;
70
+ }
71
+ async rollbackTo(checkpointId) {
72
+ const checkpoint = await this.store.get(checkpointId);
73
+ if (!checkpoint)
74
+ return null;
75
+ return {
76
+ agentConfig: checkpoint.agentConfig,
77
+ tools: checkpoint.tools.map((t) => ({ ...t })),
78
+ };
79
+ }
80
+ async rollbackToLatest(agentId) {
81
+ const latest = await this.getLatestCheckpoint(agentId);
82
+ if (!latest)
83
+ return null;
84
+ return this.rollbackTo(latest.id);
85
+ }
86
+ compareCheckpoints(checkpointA, checkpointB) {
87
+ const configChanges = [];
88
+ const keysA = Object.keys(checkpointA.agentConfig);
89
+ const keysB = Object.keys(checkpointB.agentConfig);
90
+ const allKeys = new Set([...keysA, ...keysB]);
91
+ for (const key of allKeys) {
92
+ const valA = checkpointA.agentConfig[key];
93
+ const valB = checkpointB.agentConfig[key];
94
+ if (JSON.stringify(valA) !== JSON.stringify(valB)) {
95
+ configChanges.push({ key, before: valA, after: valB });
96
+ }
97
+ }
98
+ const toolsA = new Set(checkpointA.tools.map((t) => t.name));
99
+ const toolsB = new Set(checkpointB.tools.map((t) => t.name));
100
+ const toolsAdded = [...toolsB].filter((t) => !toolsA.has(t));
101
+ const toolsRemoved = [...toolsA].filter((t) => !toolsB.has(t));
102
+ const modsBefore = new Set(checkpointA.modifications.map((m) => m.id));
103
+ const modificationsApplied = checkpointB.modifications.filter((m) => !modsBefore.has(m.id));
104
+ return { configChanges, toolsAdded, toolsRemoved, modificationsApplied };
105
+ }
106
+ async pruneCheckpoints(agentId, keepCount) {
107
+ return this.store.prune(agentId, keepCount ?? this.maxCheckpoints);
108
+ }
109
+ async deleteCheckpoint(id) {
110
+ return this.store.delete(id);
111
+ }
112
+ }
113
+ //# sourceMappingURL=rollback-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback-manager.js","sourceRoot":"","sources":["../../src/constraints/rollback-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { SafetyConstraint, CapabilityConstraint, ResourceConstraint, ModificationConstraints } from '@cogitator-ai/types';
2
+ import { DEFAULT_SAFETY_CONSTRAINTS } from '@cogitator-ai/types';
3
+ export { DEFAULT_SAFETY_CONSTRAINTS };
4
+ export declare const DEFAULT_CAPABILITY_CONSTRAINTS: CapabilityConstraint[];
5
+ export declare const DEFAULT_RESOURCE_CONSTRAINTS: ResourceConstraint[];
6
+ export declare function createDefaultConstraints(): ModificationConstraints;
7
+ export declare function mergeSafetyConstraints(base: SafetyConstraint[], additions: SafetyConstraint[]): SafetyConstraint[];
8
+ export declare function mergeCapabilityConstraints(base: CapabilityConstraint[], additions: CapabilityConstraint[]): CapabilityConstraint[];
9
+ export declare function mergeResourceConstraints(base: ResourceConstraint[], additions: ResourceConstraint[]): ResourceConstraint[];
10
+ export declare function mergeConstraints(base: ModificationConstraints, additions: Partial<ModificationConstraints>): ModificationConstraints;
11
+ //# sourceMappingURL=safety-constraints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-constraints.d.ts","sourceRoot":"","sources":["../../src/constraints/safety-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAEtC,eAAO,MAAM,8BAA8B,EAAE,oBAAoB,EAUhE,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,kBAAkB,EAW5D,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,uBAAuB,CAOlE;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EAAE,EACxB,SAAS,EAAE,gBAAgB,EAAE,GAC5B,gBAAgB,EAAE,CASpB;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,oBAAoB,EAAE,EAC5B,SAAS,EAAE,oBAAoB,EAAE,GAChC,oBAAoB,EAAE,CASxB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,kBAAkB,EAAE,EAC1B,SAAS,EAAE,kBAAkB,EAAE,GAC9B,kBAAkB,EAAE,CAStB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,uBAAuB,EAC7B,SAAS,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC1C,uBAAuB,CAazB"}
@@ -0,0 +1,78 @@
1
+ import { DEFAULT_SAFETY_CONSTRAINTS } from '@cogitator-ai/types';
2
+ export { DEFAULT_SAFETY_CONSTRAINTS };
3
+ export const DEFAULT_CAPABILITY_CONSTRAINTS = [
4
+ {
5
+ id: 'allowed_tool_categories',
6
+ name: 'Allowed Tool Categories',
7
+ type: 'tool_category',
8
+ description: 'Allowed and forbidden tool categories',
9
+ allowed: ['math', 'text', 'utility', 'data'],
10
+ forbidden: ['system', 'network', 'file'],
11
+ maxComplexity: 100,
12
+ },
13
+ ];
14
+ export const DEFAULT_RESOURCE_CONSTRAINTS = [
15
+ {
16
+ id: 'default_resource_limits',
17
+ name: 'Default Resource Limits',
18
+ resource: 'runtime',
19
+ description: 'Default runtime resource limits',
20
+ maxMemory: 128,
21
+ maxTokensPerRun: 100000,
22
+ maxCostPerRun: 1.0,
23
+ maxToolsActive: 20,
24
+ },
25
+ ];
26
+ export function createDefaultConstraints() {
27
+ return {
28
+ safety: [...DEFAULT_SAFETY_CONSTRAINTS],
29
+ capability: [...DEFAULT_CAPABILITY_CONSTRAINTS],
30
+ resource: [...DEFAULT_RESOURCE_CONSTRAINTS],
31
+ custom: [],
32
+ };
33
+ }
34
+ export function mergeSafetyConstraints(base, additions) {
35
+ const result = new Map();
36
+ for (const c of base) {
37
+ result.set(c.id, c);
38
+ }
39
+ for (const c of additions) {
40
+ result.set(c.id, c);
41
+ }
42
+ return [...result.values()];
43
+ }
44
+ export function mergeCapabilityConstraints(base, additions) {
45
+ const result = new Map();
46
+ for (const c of base) {
47
+ result.set(c.id, c);
48
+ }
49
+ for (const c of additions) {
50
+ result.set(c.id, c);
51
+ }
52
+ return [...result.values()];
53
+ }
54
+ export function mergeResourceConstraints(base, additions) {
55
+ const result = new Map();
56
+ for (const c of base) {
57
+ result.set(c.id, c);
58
+ }
59
+ for (const c of additions) {
60
+ result.set(c.id, c);
61
+ }
62
+ return [...result.values()];
63
+ }
64
+ export function mergeConstraints(base, additions) {
65
+ return {
66
+ safety: additions.safety
67
+ ? mergeSafetyConstraints(base.safety, additions.safety)
68
+ : base.safety,
69
+ capability: additions.capability
70
+ ? mergeCapabilityConstraints(base.capability, additions.capability)
71
+ : base.capability,
72
+ resource: additions.resource
73
+ ? mergeResourceConstraints(base.resource, additions.resource)
74
+ : base.resource,
75
+ custom: [...(base.custom ?? []), ...(additions.custom ?? [])],
76
+ };
77
+ }
78
+ //# sourceMappingURL=safety-constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-constraints.js","sourceRoot":"","sources":["../../src/constraints/safety-constraints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { SelfModifyingEvent, SelfModifyingEventType, SelfModifyingEventHandler } from '@cogitator-ai/types';
2
+ export type { SelfModifyingEventHandler };
3
+ export declare class SelfModifyingEventEmitter {
4
+ private handlers;
5
+ on(event: SelfModifyingEventType | '*', handler: SelfModifyingEventHandler): () => void;
6
+ off(event: SelfModifyingEventType | '*', handler: SelfModifyingEventHandler): void;
7
+ emit(event: SelfModifyingEvent): Promise<void>;
8
+ createEvent(type: SelfModifyingEventType, runId: string, agentId: string, data: unknown): SelfModifyingEvent;
9
+ removeAllListeners(event?: SelfModifyingEventType | '*'): void;
10
+ listenerCount(event: SelfModifyingEventType | '*'): number;
11
+ }
12
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/events/event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAA2E;IAE3F,EAAE,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,EAAE,OAAO,EAAE,yBAAyB,GAAG,MAAM,IAAI;IAQvF,GAAG,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,EAAE,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAI5E,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpD,WAAW,CACT,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,GACZ,kBAAkB;IAUrB,kBAAkB,CAAC,KAAK,CAAC,EAAE,sBAAsB,GAAG,GAAG,GAAG,IAAI;IAQ9D,aAAa,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,GAAG,MAAM;CAG3D"}