@helix-agent/core 0.1.0 → 0.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/dist/engine/gene-map.d.ts +13 -1
- package/dist/engine/gene-map.d.ts.map +1 -1
- package/dist/engine/gene-map.js +95 -45
- package/dist/engine/gene-map.js.map +1 -1
- package/dist/engine/pcec.d.ts +9 -11
- package/dist/engine/pcec.d.ts.map +1 -1
- package/dist/engine/pcec.js +206 -155
- package/dist/engine/pcec.js.map +1 -1
- package/dist/engine/provider.d.ts +19 -0
- package/dist/engine/provider.d.ts.map +1 -0
- package/dist/engine/provider.js +297 -0
- package/dist/engine/provider.js.map +1 -0
- package/dist/engine/types.d.ts +36 -2
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/engine/types.js +4 -16
- package/dist/engine/types.js.map +1 -1
- package/dist/engine/wrap.d.ts.map +1 -1
- package/dist/engine/wrap.js +42 -16
- package/dist/engine/wrap.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/platforms/coinbase/index.d.ts +3 -0
- package/dist/platforms/coinbase/index.d.ts.map +1 -0
- package/dist/platforms/coinbase/index.js +3 -0
- package/dist/platforms/coinbase/index.js.map +1 -0
- package/dist/platforms/coinbase/perceive.d.ts +3 -0
- package/dist/platforms/coinbase/perceive.d.ts.map +1 -0
- package/dist/platforms/coinbase/perceive.js +71 -0
- package/dist/platforms/coinbase/perceive.js.map +1 -0
- package/dist/platforms/coinbase/strategies.d.ts +3 -0
- package/dist/platforms/coinbase/strategies.d.ts.map +1 -0
- package/dist/platforms/coinbase/strategies.js +45 -0
- package/dist/platforms/coinbase/strategies.js.map +1 -0
- package/dist/platforms/index.d.ts +1 -0
- package/dist/platforms/index.d.ts.map +1 -1
- package/dist/platforms/index.js +10 -22
- package/dist/platforms/index.js.map +1 -1
- package/package.json +15 -5
|
@@ -8,12 +8,24 @@ export declare class GeneMap {
|
|
|
8
8
|
private stmtUpdatePlatforms;
|
|
9
9
|
constructor(dbPath?: string);
|
|
10
10
|
lookup(code: ErrorCode, category: FailureCategory): GeneCapsule | null;
|
|
11
|
-
/** Add a platform to an existing gene if not already present */
|
|
12
11
|
addPlatform(code: ErrorCode, category: FailureCategory, platform: Platform): void;
|
|
13
12
|
store(gene: GeneCapsule): void;
|
|
13
|
+
/** RL update after successful repair */
|
|
14
|
+
recordSuccess(code: string, category: string, repairMs: number): void;
|
|
15
|
+
/** RL update after failed repair */
|
|
16
|
+
recordFailure(code: string, category: string): void;
|
|
14
17
|
list(): GeneCapsule[];
|
|
15
18
|
immuneCount(): number;
|
|
16
19
|
getSuccessRate(failureCode: string, strategy: string): number;
|
|
20
|
+
stats(): {
|
|
21
|
+
totalGenes: number;
|
|
22
|
+
avgQValue: number;
|
|
23
|
+
platforms: string[];
|
|
24
|
+
topStrategies: {
|
|
25
|
+
strategy: string;
|
|
26
|
+
count: number;
|
|
27
|
+
}[];
|
|
28
|
+
};
|
|
17
29
|
close(): void;
|
|
18
30
|
}
|
|
19
31
|
//# sourceMappingURL=gene-map.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gene-map.d.ts","sourceRoot":"","sources":["../../src/engine/gene-map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"gene-map.d.ts","sourceRoot":"","sources":["../../src/engine/gene-map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAyCpF,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,mBAAmB,CAAqB;gBAEpC,MAAM,GAAE,MAAmB;IA8BvC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IActE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAUjF,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAc9B,wCAAwC;IACxC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAkBrE,oCAAoC;IACpC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgBnD,IAAI,IAAI,WAAW,EAAE;IAIrB,WAAW,IAAI,MAAM;IAIrB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQ7D,KAAK,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE;IAmB7H,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/engine/gene-map.js
CHANGED
|
@@ -9,11 +9,33 @@ CREATE TABLE IF NOT EXISTS genes (
|
|
|
9
9
|
success_count INTEGER NOT NULL DEFAULT 1,
|
|
10
10
|
avg_repair_ms REAL NOT NULL DEFAULT 0,
|
|
11
11
|
platforms TEXT NOT NULL DEFAULT '[]',
|
|
12
|
+
q_value REAL NOT NULL DEFAULT 0.5,
|
|
13
|
+
last_success_at INTEGER,
|
|
14
|
+
last_failed_at INTEGER,
|
|
15
|
+
consecutive_failures INTEGER NOT NULL DEFAULT 0,
|
|
12
16
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
13
17
|
last_used_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
14
18
|
UNIQUE(failure_code, category)
|
|
15
19
|
);
|
|
16
20
|
`;
|
|
21
|
+
function parseRow(row) {
|
|
22
|
+
return {
|
|
23
|
+
id: row.id,
|
|
24
|
+
failureCode: row.failure_code,
|
|
25
|
+
category: row.category,
|
|
26
|
+
strategy: row.strategy,
|
|
27
|
+
params: JSON.parse(row.params),
|
|
28
|
+
successCount: row.success_count,
|
|
29
|
+
avgRepairMs: row.avg_repair_ms,
|
|
30
|
+
platforms: JSON.parse(row.platforms),
|
|
31
|
+
qValue: row.q_value,
|
|
32
|
+
consecutiveFailures: row.consecutive_failures,
|
|
33
|
+
lastSuccessAt: row.last_success_at,
|
|
34
|
+
lastFailedAt: row.last_failed_at,
|
|
35
|
+
createdAt: row.created_at,
|
|
36
|
+
lastUsedAt: row.last_used_at,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
17
39
|
export class GeneMap {
|
|
18
40
|
db;
|
|
19
41
|
stmtLookup;
|
|
@@ -26,53 +48,39 @@ export class GeneMap {
|
|
|
26
48
|
this.db.pragma('journal_mode = WAL');
|
|
27
49
|
this.db.exec(SCHEMA);
|
|
28
50
|
this.stmtLookup = this.db.prepare(`
|
|
29
|
-
SELECT * FROM genes WHERE failure_code = ? AND category = ?
|
|
51
|
+
SELECT * FROM genes WHERE failure_code = ? AND category = ? ORDER BY q_value DESC LIMIT 1
|
|
30
52
|
`);
|
|
31
53
|
this.stmtUpsert = this.db.prepare(`
|
|
32
|
-
INSERT INTO genes (failure_code, category, strategy, params, success_count, avg_repair_ms, platforms)
|
|
33
|
-
VALUES (@failureCode, @category, @strategy, @params, @successCount, @avgRepairMs, @platforms)
|
|
54
|
+
INSERT INTO genes (failure_code, category, strategy, params, success_count, avg_repair_ms, platforms, q_value, consecutive_failures)
|
|
55
|
+
VALUES (@failureCode, @category, @strategy, @params, @successCount, @avgRepairMs, @platforms, @qValue, @consecutiveFailures)
|
|
34
56
|
ON CONFLICT(failure_code, category) DO UPDATE SET
|
|
35
57
|
strategy = @strategy,
|
|
36
58
|
params = @params,
|
|
37
59
|
success_count = success_count + 1,
|
|
38
60
|
avg_repair_ms = (avg_repair_ms * success_count + @avgRepairMs) / (success_count + 1),
|
|
39
61
|
platforms = @platforms,
|
|
62
|
+
q_value = @qValue,
|
|
63
|
+
consecutive_failures = @consecutiveFailures,
|
|
40
64
|
last_used_at = datetime('now')
|
|
41
65
|
`);
|
|
42
|
-
this.stmtList = this.db.prepare(`
|
|
43
|
-
|
|
44
|
-
`);
|
|
45
|
-
this.stmtCount = this.db.prepare(`
|
|
46
|
-
SELECT COUNT(*) as count FROM genes
|
|
47
|
-
`);
|
|
66
|
+
this.stmtList = this.db.prepare(`SELECT * FROM genes ORDER BY q_value DESC, success_count DESC`);
|
|
67
|
+
this.stmtCount = this.db.prepare(`SELECT COUNT(*) as count FROM genes`);
|
|
48
68
|
this.stmtUpdatePlatforms = this.db.prepare(`
|
|
49
|
-
UPDATE genes SET platforms = ?, last_used_at = datetime('now')
|
|
50
|
-
WHERE failure_code = ? AND category = ?
|
|
69
|
+
UPDATE genes SET platforms = ?, last_used_at = datetime('now') WHERE failure_code = ? AND category = ?
|
|
51
70
|
`);
|
|
52
71
|
}
|
|
53
72
|
lookup(code, category) {
|
|
54
73
|
const row = this.stmtLookup.get(code, category);
|
|
55
74
|
if (!row)
|
|
56
75
|
return null;
|
|
57
|
-
// Update last_used_at and increment success_count on hit
|
|
58
76
|
this.db.prepare(`
|
|
59
77
|
UPDATE genes SET last_used_at = datetime('now'), success_count = success_count + 1
|
|
60
78
|
WHERE failure_code = ? AND category = ?
|
|
61
79
|
`).run(code, category);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
category: row.category,
|
|
66
|
-
strategy: row.strategy,
|
|
67
|
-
params: JSON.parse(row.params),
|
|
68
|
-
successCount: row.success_count + 1,
|
|
69
|
-
avgRepairMs: row.avg_repair_ms,
|
|
70
|
-
platforms: JSON.parse(row.platforms),
|
|
71
|
-
createdAt: row.created_at,
|
|
72
|
-
lastUsedAt: row.last_used_at,
|
|
73
|
-
};
|
|
80
|
+
const gene = parseRow(row);
|
|
81
|
+
gene.successCount += 1; // reflect the bump we just did
|
|
82
|
+
return gene;
|
|
74
83
|
}
|
|
75
|
-
/** Add a platform to an existing gene if not already present */
|
|
76
84
|
addPlatform(code, category, platform) {
|
|
77
85
|
const row = this.stmtLookup.get(code, category);
|
|
78
86
|
if (!row)
|
|
@@ -88,41 +96,83 @@ export class GeneMap {
|
|
|
88
96
|
failureCode: gene.failureCode,
|
|
89
97
|
category: gene.category,
|
|
90
98
|
strategy: gene.strategy,
|
|
91
|
-
params: JSON.stringify(gene.params),
|
|
99
|
+
params: JSON.stringify(gene.params, (_k, v) => typeof v === 'bigint' ? v.toString() : v),
|
|
92
100
|
successCount: gene.successCount,
|
|
93
101
|
avgRepairMs: gene.avgRepairMs,
|
|
94
102
|
platforms: JSON.stringify(gene.platforms),
|
|
103
|
+
qValue: gene.qValue ?? 0.5,
|
|
104
|
+
consecutiveFailures: gene.consecutiveFailures ?? 0,
|
|
95
105
|
});
|
|
96
106
|
}
|
|
107
|
+
/** RL update after successful repair */
|
|
108
|
+
recordSuccess(code, category, repairMs) {
|
|
109
|
+
const row = this.stmtLookup.get(code, category);
|
|
110
|
+
if (!row)
|
|
111
|
+
return;
|
|
112
|
+
const alpha = 0.1;
|
|
113
|
+
const oldQ = row.q_value;
|
|
114
|
+
const newQ = oldQ + alpha * (1.0 - oldQ);
|
|
115
|
+
this.db.prepare(`
|
|
116
|
+
UPDATE genes SET
|
|
117
|
+
q_value = ?,
|
|
118
|
+
avg_repair_ms = (avg_repair_ms * success_count + ?) / (success_count + 1),
|
|
119
|
+
success_count = success_count + 1,
|
|
120
|
+
last_success_at = ?,
|
|
121
|
+
consecutive_failures = 0,
|
|
122
|
+
last_used_at = datetime('now')
|
|
123
|
+
WHERE failure_code = ? AND category = ?
|
|
124
|
+
`).run(newQ, repairMs, Date.now(), code, category);
|
|
125
|
+
}
|
|
126
|
+
/** RL update after failed repair */
|
|
127
|
+
recordFailure(code, category) {
|
|
128
|
+
const row = this.stmtLookup.get(code, category);
|
|
129
|
+
if (!row)
|
|
130
|
+
return;
|
|
131
|
+
const alpha = 0.1;
|
|
132
|
+
const oldQ = row.q_value;
|
|
133
|
+
const newQ = oldQ + alpha * (0.0 - oldQ);
|
|
134
|
+
this.db.prepare(`
|
|
135
|
+
UPDATE genes SET
|
|
136
|
+
q_value = ?,
|
|
137
|
+
last_failed_at = ?,
|
|
138
|
+
consecutive_failures = consecutive_failures + 1,
|
|
139
|
+
last_used_at = datetime('now')
|
|
140
|
+
WHERE failure_code = ? AND category = ?
|
|
141
|
+
`).run(newQ, Date.now(), code, category);
|
|
142
|
+
}
|
|
97
143
|
list() {
|
|
98
|
-
|
|
99
|
-
return rows.map((row) => ({
|
|
100
|
-
id: row.id,
|
|
101
|
-
failureCode: row.failure_code,
|
|
102
|
-
category: row.category,
|
|
103
|
-
strategy: row.strategy,
|
|
104
|
-
params: JSON.parse(row.params),
|
|
105
|
-
successCount: row.success_count,
|
|
106
|
-
avgRepairMs: row.avg_repair_ms,
|
|
107
|
-
platforms: JSON.parse(row.platforms),
|
|
108
|
-
createdAt: row.created_at,
|
|
109
|
-
lastUsedAt: row.last_used_at,
|
|
110
|
-
}));
|
|
144
|
+
return this.stmtList.all().map(parseRow);
|
|
111
145
|
}
|
|
112
146
|
immuneCount() {
|
|
113
|
-
|
|
114
|
-
return row.count;
|
|
147
|
+
return this.stmtCount.get().count;
|
|
115
148
|
}
|
|
116
149
|
getSuccessRate(failureCode, strategy) {
|
|
117
150
|
const row = this.db.prepare(`
|
|
118
|
-
SELECT success_count FROM genes
|
|
119
|
-
WHERE failure_code = ? AND strategy = ?
|
|
151
|
+
SELECT success_count, q_value FROM genes WHERE failure_code = ? AND strategy = ?
|
|
120
152
|
`).get(failureCode, strategy);
|
|
121
153
|
if (!row || row.success_count < 3)
|
|
122
|
-
return 0.5;
|
|
123
|
-
// More successes → higher probability, capped at 0.95
|
|
154
|
+
return 0.5;
|
|
124
155
|
return Math.min(0.5 + (row.success_count / 100), 0.95);
|
|
125
156
|
}
|
|
157
|
+
stats() {
|
|
158
|
+
const rows = this.stmtList.all();
|
|
159
|
+
const allPlatforms = new Set();
|
|
160
|
+
let qSum = 0;
|
|
161
|
+
for (const r of rows) {
|
|
162
|
+
qSum += r.q_value;
|
|
163
|
+
for (const p of JSON.parse(r.platforms))
|
|
164
|
+
allPlatforms.add(p);
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
totalGenes: rows.length,
|
|
168
|
+
avgQValue: rows.length > 0 ? Math.round((qSum / rows.length) * 100) / 100 : 0,
|
|
169
|
+
platforms: [...allPlatforms],
|
|
170
|
+
topStrategies: rows.slice(0, 10).map(r => ({
|
|
171
|
+
strategy: r.strategy,
|
|
172
|
+
count: r.success_count,
|
|
173
|
+
})),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
126
176
|
close() {
|
|
127
177
|
this.db.close();
|
|
128
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gene-map.js","sourceRoot":"","sources":["../../src/engine/gene-map.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"gene-map.js","sourceRoot":"","sources":["../../src/engine/gene-map.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/pcec.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { GeneMap } from './gene-map.js';
|
|
2
|
-
import type {
|
|
3
|
-
export declare function commit(winner: RepairCandidate, _failure: FailureClassification): Promise<{
|
|
4
|
-
success: boolean;
|
|
5
|
-
result: string;
|
|
6
|
-
}>;
|
|
2
|
+
import type { GeneCapsule, PlatformAdapter, RepairResult, WrapOptions } from './types.js';
|
|
7
3
|
export declare class PcecEngine {
|
|
8
4
|
private adapters;
|
|
9
5
|
private geneMap;
|
|
10
6
|
private agentId;
|
|
7
|
+
private provider;
|
|
8
|
+
private options;
|
|
11
9
|
stats: {
|
|
12
10
|
repairs: number;
|
|
13
11
|
savedRevenue: number;
|
|
@@ -15,14 +13,13 @@ export declare class PcecEngine {
|
|
|
15
13
|
};
|
|
16
14
|
private readonly MAX_CYCLES;
|
|
17
15
|
private cycleCount;
|
|
18
|
-
constructor(geneMap: GeneMap, agentId?: string);
|
|
19
|
-
/** Register platform adapters (order matters — first match wins for perceive) */
|
|
16
|
+
constructor(geneMap: GeneMap, agentId?: string, options?: WrapOptions);
|
|
20
17
|
registerAdapter(adapter: PlatformAdapter): void;
|
|
21
|
-
/**
|
|
18
|
+
/** D16: Negative pattern guard — prevent false positives from success messages */
|
|
19
|
+
private shouldSkipPerceive;
|
|
22
20
|
private perceive;
|
|
23
|
-
|
|
24
|
-
private
|
|
25
|
-
/** Full P→C→E→K repair flow */
|
|
21
|
+
private constructCandidates;
|
|
22
|
+
private verify;
|
|
26
23
|
repair(error: Error, context?: Record<string, unknown>): Promise<RepairResult>;
|
|
27
24
|
getStats(): {
|
|
28
25
|
geneCount: number;
|
|
@@ -31,5 +28,6 @@ export declare class PcecEngine {
|
|
|
31
28
|
savedRevenue: number;
|
|
32
29
|
immuneHits: number;
|
|
33
30
|
};
|
|
31
|
+
getGeneMap(): GeneMap;
|
|
34
32
|
}
|
|
35
33
|
//# sourceMappingURL=pcec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pcec.d.ts","sourceRoot":"","sources":["../../src/engine/pcec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pcec.d.ts","sourceRoot":"","sources":["../../src/engine/pcec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,EAEV,WAAW,EAEX,eAAe,EAEf,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AA6BpB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,OAAO,CAAc;IACtB,KAAK;;;;MAAkD;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAM;IACjC,OAAO,CAAC,UAAU,CAAK;gBAEX,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,MAAkB,EAAE,OAAO,CAAC,EAAE,WAAW;IAOhF,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAI/C,kFAAkF;IAClF,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,mBAAmB;YAWb,MAAM;IAyBd,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAgOpF,QAAQ;;;;;;;IAQR,UAAU,IAAI,OAAO;CAGtB"}
|