@helix-agent/core 0.4.0 → 0.6.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/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env node
2
+ import { createEngine } from './engine/wrap.js';
3
+ const command = process.argv[2];
4
+ function printHelp() {
5
+ console.log(`
6
+ \x1b[36m╔═══════════════════════════════════════╗\x1b[0m
7
+ \x1b[36m║\x1b[0m \x1b[1mHELIX\x1b[0m — Self-Healing Agent Infra \x1b[36m║\x1b[0m
8
+ \x1b[36m╚═══════════════════════════════════════╝\x1b[0m
9
+
10
+ Usage: npx helix <command>
11
+
12
+ Commands:
13
+ status Show Gene Map health
14
+ simulate Dry-run diagnosis
15
+ gc Gene Map garbage collection
16
+ stats Agent attribution stats
17
+ help Show this help
18
+
19
+ Examples:
20
+ npx helix status
21
+ npx helix simulate "AA25 Invalid account nonce"
22
+ npx helix gc
23
+ npx helix stats bot-1
24
+ `);
25
+ }
26
+ function status() {
27
+ const engine = createEngine({ mode: 'observe', agentId: 'cli', geneMapPath: ':memory:' });
28
+ const h = engine.getGeneMap().health();
29
+ console.log(`
30
+ ┌─────────────────────────────────────┐
31
+ │ HELIX Gene Map Status │
32
+ ├─────────────────────────────────────┤
33
+ │ Total Genes: ${String(h.totalGenes).padStart(6)} │
34
+ │ Avg Q-Value: ${h.avgQValue.toFixed(3).padStart(6)} │
35
+ │ Platforms: ${(h.platforms || []).join(', ').slice(0, 18).padEnd(18)}│
36
+ ├─────────────────────────────────────┤
37
+ │ Top Strategies: │`);
38
+ for (const s of (h.topStrategies || []).slice(0, 5)) {
39
+ console.log(` │ ${s.strategy.padEnd(22)} q=${s.qValue.toFixed(2)} │`);
40
+ }
41
+ console.log(` └─────────────────────────────────────┘`);
42
+ engine.getGeneMap().close();
43
+ }
44
+ async function simulateCmd(errorMsg) {
45
+ const { simulateAsync } = await import('./testing.js');
46
+ const result = await simulateAsync({ error: errorMsg });
47
+ const strategy = result.winner?.strategy ?? result.gene?.strategy ?? 'none';
48
+ console.log(`
49
+ ┌─────────────────────────────────────┐
50
+ │ HELIX Simulate │
51
+ ├─────────────────────────────────────┤
52
+ │ Error: ${errorMsg.slice(0, 25).padEnd(25)}│
53
+ │ Code: ${(result.failure.code).padEnd(25)}│
54
+ │ Category: ${(result.failure.category).padEnd(25)}│
55
+ │ Immune: ${String(result.immune).padEnd(25)}│
56
+ │ Strategy: ${strategy.padEnd(25)}│
57
+ │ Mode: observe (dry-run) │
58
+ └─────────────────────────────────────┘
59
+ `);
60
+ }
61
+ function gc() {
62
+ const engine = createEngine({ mode: 'observe', agentId: 'cli', geneMapPath: ':memory:' });
63
+ const r = engine.getGeneMap().gc();
64
+ console.log(`
65
+ ┌─────────────────────────────────────┐
66
+ │ HELIX Gene Map GC │
67
+ ├─────────────────────────────────────┤
68
+ │ Merged: ${String(r.merged).padStart(6)} │
69
+ │ Pruned: ${String(r.pruned).padStart(6)} │
70
+ │ Archived: ${String(r.archived).padStart(6)} │
71
+ └─────────────────────────────────────┘
72
+ `);
73
+ engine.getGeneMap().close();
74
+ }
75
+ function agentStats(agentId) {
76
+ const engine = createEngine({ mode: 'observe', agentId: 'cli', geneMapPath: ':memory:' });
77
+ const s = engine.getGeneMap().getAgentStats(agentId);
78
+ console.log(`
79
+ ┌─────────────────────────────────────┐
80
+ │ HELIX Agent: ${agentId.slice(0, 21).padEnd(21)}│
81
+ ├─────────────────────────────────────┤
82
+ │ Total Failures: ${String(s.totalFailures).padStart(6)} │
83
+ │ Success Rate: ${(s.successRate * 100).toFixed(1).padStart(5)}% │
84
+ └─────────────────────────────────────┘
85
+ `);
86
+ engine.getGeneMap().close();
87
+ }
88
+ (async () => {
89
+ switch (command) {
90
+ case 'status':
91
+ status();
92
+ break;
93
+ case 'simulate': {
94
+ const msg = process.argv[3];
95
+ if (!msg) {
96
+ console.error('Usage: npx helix simulate "error message"');
97
+ process.exit(1);
98
+ }
99
+ await simulateCmd(msg);
100
+ break;
101
+ }
102
+ case 'gc':
103
+ gc();
104
+ break;
105
+ case 'stats': {
106
+ const id = process.argv[3];
107
+ if (!id) {
108
+ console.error('Usage: npx helix stats <agent-id>');
109
+ process.exit(1);
110
+ }
111
+ agentStats(id);
112
+ break;
113
+ }
114
+ case 'help':
115
+ case '--help':
116
+ case '-h':
117
+ case undefined:
118
+ printHelp();
119
+ break;
120
+ default:
121
+ console.error(`Unknown command: ${command}`);
122
+ printHelp();
123
+ process.exit(1);
124
+ }
125
+ })();
126
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,26 @@
1
1
  import type { ErrorCode, FailureCategory, GeneCapsule, Platform } from './types.js';
2
2
  export declare class GeneMap {
3
+ private static readonly SCHEMA_VERSION;
3
4
  private db;
4
5
  private stmtLookup;
5
6
  private stmtUpsert;
6
7
  private stmtList;
7
8
  private stmtCount;
8
9
  private stmtUpdatePlatforms;
10
+ private cache;
11
+ private cacheLoadedAt;
12
+ private readonly CACHE_TTL_MS;
9
13
  constructor(dbPath?: string);
14
+ private ensureSchema;
15
+ private migrate;
16
+ private prepareStatements;
17
+ private cacheKey;
18
+ private warmCache;
19
+ private isCacheStale;
10
20
  lookup(code: ErrorCode, category: FailureCategory): GeneCapsule | null;
11
21
  addPlatform(code: ErrorCode, category: FailureCategory, platform: Platform): void;
12
22
  store(gene: GeneCapsule): void;
13
- /** RL update after successful repair */
14
23
  recordSuccess(code: string, category: string, repairMs: number): void;
15
- /** RL update after failed repair */
16
24
  recordFailure(code: string, category: string): void;
17
25
  list(): GeneCapsule[];
18
26
  immuneCount(): number;
@@ -26,6 +34,83 @@ export declare class GeneMap {
26
34
  count: number;
27
35
  }[];
28
36
  };
37
+ seed(): {
38
+ seeded: number;
39
+ };
40
+ combine(): {
41
+ merged: number;
42
+ };
43
+ gc(): {
44
+ merged: number;
45
+ pruned: number;
46
+ archived: number;
47
+ };
48
+ recordFailureAnalysis(code: string, category: string, analysis: string): void;
49
+ updateContext(code: string, category: string, success: boolean, context: {
50
+ chain?: string;
51
+ walletType?: string;
52
+ platform?: string;
53
+ }): void;
54
+ generateRepairId(): string;
55
+ checkRepairInProgress(code: string, category: string): {
56
+ inProgress: boolean;
57
+ repairId?: string;
58
+ txHash?: string;
59
+ };
60
+ logRepairStart(id: string, code: string, category: string, strategy: string): void;
61
+ logRepairComplete(id: string, txHash?: string): void;
62
+ logRepairFailed(id: string): void;
63
+ recordAttribution(data: {
64
+ repairId: string;
65
+ agentId: string;
66
+ stepId?: string;
67
+ workflow?: string;
68
+ failureCode: string;
69
+ category: string;
70
+ strategy?: string;
71
+ success: boolean;
72
+ }): void;
73
+ getAgentStats(agentId: string): {
74
+ totalFailures: number;
75
+ topCategories: {
76
+ category: string;
77
+ count: number;
78
+ }[];
79
+ topSteps: {
80
+ stepId: string;
81
+ count: number;
82
+ }[];
83
+ successRate: number;
84
+ };
85
+ getGlobalAttributionStats(): {
86
+ totalRepairs: number;
87
+ topAgents: {
88
+ agentId: string;
89
+ failures: number;
90
+ }[];
91
+ topCategories: {
92
+ category: string;
93
+ count: number;
94
+ }[];
95
+ overallSuccessRate: number;
96
+ };
97
+ recordCoOccurrence(codeA: string, catA: string, codeB: string, catB: string): void;
98
+ getRelatedFailures(code: string, category: string): {
99
+ code: string;
100
+ category: string;
101
+ strength: number;
102
+ coOccurrences: number;
103
+ }[];
104
+ health(): {
105
+ totalGenes: number;
106
+ avgQValue: number;
107
+ platforms: string[];
108
+ topStrategies: {
109
+ strategy: string;
110
+ qValue: number;
111
+ count: number;
112
+ }[];
113
+ };
29
114
  close(): void;
30
115
  }
31
116
  //# 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;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"}
1
+ {"version":3,"file":"gene-map.d.ts","sourceRoot":"","sources":["../../src/engine/gene-map.ts"],"names":[],"mappings":"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"}