@vainplex/openclaw-leuko 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 (65) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +160 -0
  4. package/dist/src/check-runner.d.ts +65 -0
  5. package/dist/src/check-runner.d.ts.map +1 -0
  6. package/dist/src/check-runner.js +40 -0
  7. package/dist/src/check-runner.js.map +1 -0
  8. package/dist/src/check-utils.d.ts +21 -0
  9. package/dist/src/check-utils.d.ts.map +1 -0
  10. package/dist/src/check-utils.js +39 -0
  11. package/dist/src/check-utils.js.map +1 -0
  12. package/dist/src/checks/anomaly-detection.d.ts +3 -0
  13. package/dist/src/checks/anomaly-detection.d.ts.map +1 -0
  14. package/dist/src/checks/anomaly-detection.js +127 -0
  15. package/dist/src/checks/anomaly-detection.js.map +1 -0
  16. package/dist/src/checks/bootstrap-integrity.d.ts +3 -0
  17. package/dist/src/checks/bootstrap-integrity.d.ts.map +1 -0
  18. package/dist/src/checks/bootstrap-integrity.js +107 -0
  19. package/dist/src/checks/bootstrap-integrity.js.map +1 -0
  20. package/dist/src/checks/goal-quality.d.ts +3 -0
  21. package/dist/src/checks/goal-quality.d.ts.map +1 -0
  22. package/dist/src/checks/goal-quality.js +143 -0
  23. package/dist/src/checks/goal-quality.js.map +1 -0
  24. package/dist/src/checks/pipeline-correlation.d.ts +7 -0
  25. package/dist/src/checks/pipeline-correlation.d.ts.map +1 -0
  26. package/dist/src/checks/pipeline-correlation.js +118 -0
  27. package/dist/src/checks/pipeline-correlation.js.map +1 -0
  28. package/dist/src/checks/recommendations.d.ts +3 -0
  29. package/dist/src/checks/recommendations.d.ts.map +1 -0
  30. package/dist/src/checks/recommendations.js +132 -0
  31. package/dist/src/checks/recommendations.js.map +1 -0
  32. package/dist/src/checks/thread-health.d.ts +3 -0
  33. package/dist/src/checks/thread-health.d.ts.map +1 -0
  34. package/dist/src/checks/thread-health.js +129 -0
  35. package/dist/src/checks/thread-health.js.map +1 -0
  36. package/dist/src/config.d.ts +10 -0
  37. package/dist/src/config.d.ts.map +1 -0
  38. package/dist/src/config.js +301 -0
  39. package/dist/src/config.js.map +1 -0
  40. package/dist/src/index.d.ts +27 -0
  41. package/dist/src/index.d.ts.map +1 -0
  42. package/dist/src/index.js +198 -0
  43. package/dist/src/index.js.map +1 -0
  44. package/dist/src/llm-client.d.ts +7 -0
  45. package/dist/src/llm-client.d.ts.map +1 -0
  46. package/dist/src/llm-client.js +111 -0
  47. package/dist/src/llm-client.js.map +1 -0
  48. package/dist/src/status-reader.d.ts +6 -0
  49. package/dist/src/status-reader.d.ts.map +1 -0
  50. package/dist/src/status-reader.js +156 -0
  51. package/dist/src/status-reader.js.map +1 -0
  52. package/dist/src/status-writer.d.ts +14 -0
  53. package/dist/src/status-writer.d.ts.map +1 -0
  54. package/dist/src/status-writer.js +52 -0
  55. package/dist/src/status-writer.js.map +1 -0
  56. package/dist/src/tool.d.ts +9 -0
  57. package/dist/src/tool.d.ts.map +1 -0
  58. package/dist/src/tool.js +129 -0
  59. package/dist/src/tool.js.map +1 -0
  60. package/dist/src/types.d.ts +261 -0
  61. package/dist/src/types.d.ts.map +1 -0
  62. package/dist/src/types.js +5 -0
  63. package/dist/src/types.js.map +1 -0
  64. package/openclaw.plugin.json +22 -0
  65. package/package.json +51 -0
@@ -0,0 +1,261 @@
1
+ export interface PluginLogger {
2
+ info(msg: string): void;
3
+ warn(msg: string): void;
4
+ error(msg: string): void;
5
+ debug(msg: string): void;
6
+ }
7
+ export interface PluginApi {
8
+ pluginConfig?: Record<string, unknown>;
9
+ logger: PluginLogger;
10
+ registerTool(tool: ToolDefinition): void;
11
+ registerCommand(command: PluginCommand): void;
12
+ on(hookName: string, handler: (...args: unknown[]) => unknown | Promise<unknown>, opts?: {
13
+ priority?: number;
14
+ }): void;
15
+ }
16
+ export interface ToolDefinition {
17
+ name: string;
18
+ description: string;
19
+ parameters: {
20
+ type: string;
21
+ properties: Record<string, unknown>;
22
+ required?: string[];
23
+ };
24
+ execute(toolCallId: string, params: Record<string, unknown>): Promise<ToolResult>;
25
+ }
26
+ export interface ToolResult {
27
+ content: Array<{
28
+ type: string;
29
+ text: string;
30
+ }>;
31
+ }
32
+ export interface PluginCommand {
33
+ name: string;
34
+ description: string;
35
+ handler(args?: Record<string, unknown>): {
36
+ text: string;
37
+ } | Promise<{
38
+ text: string;
39
+ }>;
40
+ }
41
+ export type Severity = "ok" | "warn" | "critical";
42
+ export interface CognitiveCheckResult {
43
+ check_name: string;
44
+ severity: Severity;
45
+ detail: string;
46
+ findings?: ReadonlyArray<CheckFinding>;
47
+ correlations?: ReadonlyArray<CorrelationEntry>;
48
+ anomalies?: ReadonlyArray<AnomalyEntry>;
49
+ baselines?: Record<string, number>;
50
+ recommendations?: ReadonlyArray<Recommendation>;
51
+ escalation_needed?: boolean;
52
+ consecutive_critical_count?: number;
53
+ first_critical_at?: string;
54
+ timestamp: string;
55
+ model_used?: string;
56
+ tokens_used?: number;
57
+ duration_ms: number;
58
+ }
59
+ export interface CheckFinding {
60
+ item_id?: string;
61
+ thread_id?: string;
62
+ issue: string;
63
+ detail: string;
64
+ recommendation?: string;
65
+ days_since_update?: number;
66
+ line?: string;
67
+ }
68
+ export interface CorrelationEntry {
69
+ input: string;
70
+ input_value: number;
71
+ output: string;
72
+ output_value: number;
73
+ diagnosis: string;
74
+ }
75
+ export interface AnomalyEntry {
76
+ metric: string;
77
+ current: number;
78
+ baseline: number;
79
+ deviation: string;
80
+ severity: Severity;
81
+ }
82
+ export interface Recommendation {
83
+ type: string;
84
+ target: string;
85
+ reason: string;
86
+ priority: "low" | "medium" | "high";
87
+ }
88
+ export interface CognitiveMeta {
89
+ last_run: string;
90
+ total_duration_ms: number;
91
+ total_tokens: number;
92
+ total_cost_usd: number;
93
+ model: string;
94
+ checks_completed: number;
95
+ checks_failed: number;
96
+ plugin_version: string;
97
+ }
98
+ export interface DaemonCheck {
99
+ check_name: string;
100
+ severity: Severity;
101
+ detail: string;
102
+ auto_healed: boolean;
103
+ timestamp: string;
104
+ heal_action?: string | null;
105
+ heal_key?: string | null;
106
+ }
107
+ export interface LeukoStatus {
108
+ last_check: string;
109
+ overall_severity: Severity;
110
+ daemon_checks: DaemonCheck[];
111
+ auto_heal_history?: unknown[];
112
+ cognitive_checks?: CognitiveCheckResult[];
113
+ cognitive_meta?: CognitiveMeta;
114
+ sitrep_collectors?: SitrepCollectorResult[];
115
+ }
116
+ export interface SitrepCollectorResult {
117
+ collector_name: string;
118
+ status: Severity;
119
+ items: ReadonlyArray<Record<string, unknown>>;
120
+ summary: string;
121
+ duration_ms: number;
122
+ timestamp: string;
123
+ }
124
+ export interface LlmProviderConfig {
125
+ provider: string;
126
+ model: string;
127
+ baseUrl: string;
128
+ timeoutSec: number;
129
+ apiKey?: string;
130
+ maxCostUsd?: number;
131
+ }
132
+ export interface LlmConfig {
133
+ primary: LlmProviderConfig;
134
+ fallback: LlmProviderConfig;
135
+ }
136
+ export interface GoalQualityCheckConfig {
137
+ enabled: boolean;
138
+ inputPath: string;
139
+ usesLlm: boolean;
140
+ }
141
+ export interface ThreadHealthCheckConfig {
142
+ enabled: boolean;
143
+ inputPath: string;
144
+ usesLlm: boolean;
145
+ staleDays: number;
146
+ }
147
+ export interface PipelineCorrelationCheckConfig {
148
+ enabled: boolean;
149
+ usesLlm: boolean;
150
+ natsStream: string;
151
+ correlationWindowHours: number;
152
+ businessHours: {
153
+ start: number;
154
+ end: number;
155
+ tz: string;
156
+ };
157
+ }
158
+ export interface AnomalyDetectionCheckConfig {
159
+ enabled: boolean;
160
+ usesLlm: boolean;
161
+ monitoredDirs: ReadonlyArray<{
162
+ path: string;
163
+ label: string;
164
+ }>;
165
+ }
166
+ export interface BootstrapIntegrityCheckConfig {
167
+ enabled: boolean;
168
+ inputPath: string;
169
+ usesLlm: boolean;
170
+ }
171
+ export interface RecommendationsCheckConfig {
172
+ enabled: boolean;
173
+ usesLlm: boolean;
174
+ maxRecommendations: number;
175
+ }
176
+ export interface ChecksConfig {
177
+ goal_quality: GoalQualityCheckConfig;
178
+ thread_health: ThreadHealthCheckConfig;
179
+ pipeline_correlation: PipelineCorrelationCheckConfig;
180
+ anomaly_detection: AnomalyDetectionCheckConfig;
181
+ bootstrap_integrity: BootstrapIntegrityCheckConfig;
182
+ recommendations: RecommendationsCheckConfig;
183
+ }
184
+ export interface ErrorsCollectorConfig {
185
+ enabled: boolean;
186
+ patternsPath: string;
187
+ recentHours: number;
188
+ }
189
+ export interface CustomCollectorEntry {
190
+ name: string;
191
+ command: string;
192
+ warnThreshold?: number;
193
+ criticalThreshold?: number;
194
+ }
195
+ export interface AdoptedCollectorsConfig {
196
+ errors: ErrorsCollectorConfig;
197
+ custom: CustomCollectorEntry[];
198
+ }
199
+ export interface HealthInjectionConfig {
200
+ enabled: boolean;
201
+ onlyOnIssues: boolean;
202
+ maxLength: number;
203
+ }
204
+ export interface LeukoConfig {
205
+ enabled: boolean;
206
+ statusPath: string;
207
+ historyPath: string;
208
+ intervalMinutes: number;
209
+ runTimeoutSec: number;
210
+ llm: LlmConfig;
211
+ checks: ChecksConfig;
212
+ adoptedCollectors: AdoptedCollectorsConfig;
213
+ healthInjection: HealthInjectionConfig;
214
+ }
215
+ export interface LlmClient {
216
+ generate(systemPrompt: string, userPrompt: string, timeoutMs: number): Promise<LlmResponse>;
217
+ }
218
+ export interface LlmResponse {
219
+ content: string | null;
220
+ model: string;
221
+ tokens: number;
222
+ durationMs: number;
223
+ error?: string;
224
+ }
225
+ export interface PendingGoal {
226
+ id: string;
227
+ title: string;
228
+ proposed_action?: string;
229
+ proposed_at?: string;
230
+ expires?: string;
231
+ status?: string;
232
+ priority?: string;
233
+ category?: string;
234
+ [key: string]: unknown;
235
+ }
236
+ export interface ThreadEntry {
237
+ id: string;
238
+ title: string;
239
+ status: string;
240
+ summary?: string;
241
+ description?: string;
242
+ last_activity?: string;
243
+ created?: string;
244
+ priority?: string;
245
+ decisions?: string[];
246
+ waiting_for?: string | null;
247
+ [key: string]: unknown;
248
+ }
249
+ export interface ThreadsFile {
250
+ version?: number;
251
+ updated?: string;
252
+ threads: ThreadEntry[];
253
+ }
254
+ export interface HistorySnapshot {
255
+ timestamp: string;
256
+ metrics: Record<string, number>;
257
+ }
258
+ export interface LeukoHistory {
259
+ snapshots: HistorySnapshot[];
260
+ }
261
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ // ============================================================
2
+ // OpenClaw Plugin API Types (contract — subset we use)
3
+ // ============================================================
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uDAAuD;AACvD,+DAA+D"}
@@ -0,0 +1,22 @@
1
+ {
2
+ "id": "openclaw-leuko",
3
+ "name": "Leuko Health System",
4
+ "version": "0.1.0",
5
+ "description": "Cognitive immune system — L2 semantic health checks with LLM analysis, tool exposure for agent queries, and Sitrep replacement",
6
+ "author": "Vainplex",
7
+ "license": "MIT",
8
+ "configSchema": {
9
+ "type": "object",
10
+ "properties": {
11
+ "enabled": {
12
+ "type": "boolean",
13
+ "default": true,
14
+ "description": "Enable/disable the leuko plugin entirely"
15
+ },
16
+ "configPath": {
17
+ "type": "string",
18
+ "description": "Override path to external config file"
19
+ }
20
+ }
21
+ }
22
+ }
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@vainplex/openclaw-leuko",
3
+ "version": "0.1.0",
4
+ "description": "Cognitive immune system — L2 semantic health checks with LLM analysis, tool exposure for agent queries, and Sitrep replacement",
5
+ "type": "module",
6
+ "main": "dist/src/index.js",
7
+ "types": "dist/src/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "openclaw.plugin.json",
11
+ "README.md",
12
+ "CHANGELOG.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "prepublishOnly": "npm run build",
18
+ "test": "vitest run",
19
+ "test:watch": "vitest",
20
+ "test:coverage": "vitest run --coverage",
21
+ "typecheck": "tsc --noEmit"
22
+ },
23
+ "devDependencies": {
24
+ "@types/node": "^22.0.0",
25
+ "typescript": "^5.7.0",
26
+ "vitest": "^3.0.0",
27
+ "@vitest/coverage-v8": "^3.0.0"
28
+ },
29
+ "openclaw": {
30
+ "id": "openclaw-leuko",
31
+ "extensions": [
32
+ "./dist/src/index.js"
33
+ ]
34
+ },
35
+ "keywords": [
36
+ "openclaw",
37
+ "plugin",
38
+ "leuko",
39
+ "health",
40
+ "cognitive-checks",
41
+ "immune-system",
42
+ "monitoring"
43
+ ],
44
+ "license": "MIT",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "https://github.com/alberthild/openclaw-leuko.git"
48
+ },
49
+ "homepage": "https://github.com/alberthild/openclaw-leuko#readme",
50
+ "author": "Albert Hild <a.hild@vainplex.de>"
51
+ }