@kernel.chat/kbot 3.7.1 → 3.8.1
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 +2 -2
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +26 -1
- package/dist/agent.js.map +1 -1
- package/dist/cli.js +38 -0
- package/dist/cli.js.map +1 -1
- package/dist/collective.d.ts +55 -0
- package/dist/collective.d.ts.map +1 -0
- package/dist/collective.js +248 -0
- package/dist/collective.js.map +1 -0
- package/dist/tools/index.test.js +1 -1
- package/dist/tools/index.test.js.map +1 -1
- package/dist/ui.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
// kbot Collective Learning — The Hive Mind
|
|
2
|
+
//
|
|
3
|
+
// 4,619 installs learning independently. This module connects them.
|
|
4
|
+
// Every kbot contributes anonymized signals. Every kbot benefits from all.
|
|
5
|
+
//
|
|
6
|
+
// What gets shared (anonymized):
|
|
7
|
+
// - Tool sequences that solved task types (not code, not file contents)
|
|
8
|
+
// - Agent routing accuracy per category
|
|
9
|
+
// - Strategy outcomes (which approach works for which task type)
|
|
10
|
+
//
|
|
11
|
+
// What NEVER gets shared:
|
|
12
|
+
// - Source code, file contents, API keys, user identity
|
|
13
|
+
// - Project names, file paths, conversation content
|
|
14
|
+
// - Anything from ~/.kbot/config.json
|
|
15
|
+
//
|
|
16
|
+
// The flywheel:
|
|
17
|
+
// 1 user → learns from own sessions
|
|
18
|
+
// 100 → patterns stabilize, routing gets accurate
|
|
19
|
+
// 1,000 → kbot knows best tool sequence for most tasks before you ask
|
|
20
|
+
// 10,000 → collective intelligence no single user could build alone
|
|
21
|
+
import { homedir } from 'node:os';
|
|
22
|
+
import { join } from 'node:path';
|
|
23
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
24
|
+
import { createHash } from 'node:crypto';
|
|
25
|
+
const ENGINE_URL = 'https://eoxxpyixdieprsxlpwcs.supabase.co/functions/v1/kbot-engine';
|
|
26
|
+
const KBOT_DIR = join(homedir(), '.kbot');
|
|
27
|
+
const COLLECTIVE_DIR = join(KBOT_DIR, 'collective');
|
|
28
|
+
const HINTS_FILE = join(COLLECTIVE_DIR, 'routing-hints.json');
|
|
29
|
+
const PATTERNS_FILE = join(COLLECTIVE_DIR, 'collective-patterns.json');
|
|
30
|
+
const OPT_FILE = join(COLLECTIVE_DIR, 'opt-in.json');
|
|
31
|
+
// ── Opt-in Management ──
|
|
32
|
+
function ensureDir() {
|
|
33
|
+
if (!existsSync(COLLECTIVE_DIR)) {
|
|
34
|
+
mkdirSync(COLLECTIVE_DIR, { recursive: true });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function getOptInState() {
|
|
38
|
+
ensureDir();
|
|
39
|
+
try {
|
|
40
|
+
if (existsSync(OPT_FILE)) {
|
|
41
|
+
return JSON.parse(readFileSync(OPT_FILE, 'utf-8'));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch { /* corrupt file */ }
|
|
45
|
+
return { enabled: false, opted_in_at: null, total_signals_sent: 0, last_signal_at: null };
|
|
46
|
+
}
|
|
47
|
+
export function setOptIn(enabled) {
|
|
48
|
+
ensureDir();
|
|
49
|
+
const state = getOptInState();
|
|
50
|
+
state.enabled = enabled;
|
|
51
|
+
if (enabled && !state.opted_in_at) {
|
|
52
|
+
state.opted_in_at = new Date().toISOString();
|
|
53
|
+
}
|
|
54
|
+
writeFileSync(OPT_FILE, JSON.stringify(state, null, 2));
|
|
55
|
+
}
|
|
56
|
+
export function isCollectiveEnabled() {
|
|
57
|
+
return getOptInState().enabled;
|
|
58
|
+
}
|
|
59
|
+
// ── Anonymization ──
|
|
60
|
+
/** Hash a message into a non-reversible identifier. No PII leaks. */
|
|
61
|
+
function hashMessage(message) {
|
|
62
|
+
const normalized = message.toLowerCase().trim().replace(/\s+/g, ' ');
|
|
63
|
+
return createHash('sha256').update(normalized).digest('hex').slice(0, 16);
|
|
64
|
+
}
|
|
65
|
+
/** Strip anything that could be PII from a tool sequence */
|
|
66
|
+
function sanitizeToolSequence(tools) {
|
|
67
|
+
// Only keep tool names, strip any args or paths that might have leaked in
|
|
68
|
+
return tools.map(t => t.replace(/[^a-z0-9_-]/gi, '').slice(0, 50)).filter(Boolean);
|
|
69
|
+
}
|
|
70
|
+
// ── Signal Sending ──
|
|
71
|
+
/** Send an anonymized routing signal to the collective */
|
|
72
|
+
export async function sendSignal(signal) {
|
|
73
|
+
if (!isCollectiveEnabled())
|
|
74
|
+
return false;
|
|
75
|
+
try {
|
|
76
|
+
const sanitized = {
|
|
77
|
+
message_hash: hashMessage(signal.message_hash),
|
|
78
|
+
message_category: signal.message_category,
|
|
79
|
+
message_length: Math.min(signal.message_length, 10000), // Cap length
|
|
80
|
+
routed_agent: signal.routed_agent,
|
|
81
|
+
classifier_confidence: Math.round(signal.classifier_confidence * 100) / 100,
|
|
82
|
+
was_rerouted: signal.was_rerouted,
|
|
83
|
+
response_quality: Math.round(signal.response_quality * 100) / 100,
|
|
84
|
+
tool_sequence: sanitizeToolSequence(signal.tool_sequence).slice(0, 20),
|
|
85
|
+
strategy: signal.strategy?.slice(0, 50) || 'default',
|
|
86
|
+
source: 'kbot',
|
|
87
|
+
};
|
|
88
|
+
const res = await fetch(`${ENGINE_URL}/collective`, {
|
|
89
|
+
method: 'POST',
|
|
90
|
+
headers: { 'Content-Type': 'application/json' },
|
|
91
|
+
body: JSON.stringify({ action: 'signal', ...sanitized }),
|
|
92
|
+
signal: AbortSignal.timeout(5_000),
|
|
93
|
+
});
|
|
94
|
+
if (res.ok) {
|
|
95
|
+
// Update local stats
|
|
96
|
+
const state = getOptInState();
|
|
97
|
+
state.total_signals_sent++;
|
|
98
|
+
state.last_signal_at = new Date().toISOString();
|
|
99
|
+
writeFileSync(OPT_FILE, JSON.stringify(state, null, 2));
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return false; // Network errors are silent — never block the agent loop
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// ── Signal Queue (batch sending) ──
|
|
109
|
+
const signalQueue = [];
|
|
110
|
+
let flushTimer = null;
|
|
111
|
+
const FLUSH_INTERVAL_MS = 10_000; // Batch signals every 10 seconds
|
|
112
|
+
/** Queue a signal for batch sending */
|
|
113
|
+
export function queueSignal(signal) {
|
|
114
|
+
if (!isCollectiveEnabled())
|
|
115
|
+
return;
|
|
116
|
+
signalQueue.push(signal);
|
|
117
|
+
if (!flushTimer) {
|
|
118
|
+
flushTimer = setTimeout(() => {
|
|
119
|
+
flushSignals();
|
|
120
|
+
flushTimer = null;
|
|
121
|
+
}, FLUSH_INTERVAL_MS);
|
|
122
|
+
// Don't keep the process alive just for signal flushing
|
|
123
|
+
if (flushTimer && typeof flushTimer === 'object' && 'unref' in flushTimer) {
|
|
124
|
+
flushTimer.unref();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/** Flush all queued signals (call on exit) */
|
|
129
|
+
export async function flushSignals() {
|
|
130
|
+
if (signalQueue.length === 0)
|
|
131
|
+
return;
|
|
132
|
+
const batch = signalQueue.splice(0, signalQueue.length);
|
|
133
|
+
// Send each signal sequentially to avoid race condition on opt-in.json
|
|
134
|
+
for (const s of batch) {
|
|
135
|
+
await sendSignal(s).catch(() => { });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Register exit handlers to flush signals
|
|
139
|
+
process.on('beforeExit', () => { flushSignals().catch(() => { }); });
|
|
140
|
+
process.on('SIGINT', () => { flushSignals().catch(() => { }); process.exit(0); });
|
|
141
|
+
process.on('SIGTERM', () => { flushSignals().catch(() => { }); process.exit(0); });
|
|
142
|
+
// ── Pulling Collective Intelligence ──
|
|
143
|
+
/** Pull routing hints from the collective (proven patterns from all users) */
|
|
144
|
+
export async function pullCollectiveHints() {
|
|
145
|
+
try {
|
|
146
|
+
const res = await fetch(`${ENGINE_URL}/collective`, {
|
|
147
|
+
method: 'POST',
|
|
148
|
+
headers: { 'Content-Type': 'application/json' },
|
|
149
|
+
body: JSON.stringify({ action: 'hints' }),
|
|
150
|
+
signal: AbortSignal.timeout(5_000),
|
|
151
|
+
});
|
|
152
|
+
if (!res.ok)
|
|
153
|
+
return loadCachedHints();
|
|
154
|
+
const { hints } = await res.json();
|
|
155
|
+
if (hints && Array.isArray(hints) && hints.length > 0) {
|
|
156
|
+
// Cache locally for offline use
|
|
157
|
+
ensureDir();
|
|
158
|
+
writeFileSync(HINTS_FILE, JSON.stringify(hints, null, 2));
|
|
159
|
+
return hints;
|
|
160
|
+
}
|
|
161
|
+
return loadCachedHints();
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return loadCachedHints(); // Offline fallback
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/** Pull collective patterns (tool sequences, strategies) */
|
|
168
|
+
export async function pullCollectivePatterns() {
|
|
169
|
+
try {
|
|
170
|
+
const res = await fetch(`${ENGINE_URL}/collective`, {
|
|
171
|
+
method: 'POST',
|
|
172
|
+
headers: { 'Content-Type': 'application/json' },
|
|
173
|
+
body: JSON.stringify({ action: 'patterns' }),
|
|
174
|
+
signal: AbortSignal.timeout(5_000),
|
|
175
|
+
});
|
|
176
|
+
if (!res.ok)
|
|
177
|
+
return loadCachedPatterns();
|
|
178
|
+
const { patterns } = await res.json();
|
|
179
|
+
if (patterns && Array.isArray(patterns) && patterns.length > 0) {
|
|
180
|
+
ensureDir();
|
|
181
|
+
writeFileSync(PATTERNS_FILE, JSON.stringify(patterns, null, 2));
|
|
182
|
+
return patterns;
|
|
183
|
+
}
|
|
184
|
+
return loadCachedPatterns();
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return loadCachedPatterns();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/** Load cached hints (for offline use) */
|
|
191
|
+
function loadCachedHints() {
|
|
192
|
+
try {
|
|
193
|
+
if (existsSync(HINTS_FILE)) {
|
|
194
|
+
return JSON.parse(readFileSync(HINTS_FILE, 'utf-8'));
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch { /* corrupt cache */ }
|
|
198
|
+
return [];
|
|
199
|
+
}
|
|
200
|
+
/** Load cached patterns (for offline use) */
|
|
201
|
+
function loadCachedPatterns() {
|
|
202
|
+
try {
|
|
203
|
+
if (existsSync(PATTERNS_FILE)) {
|
|
204
|
+
return JSON.parse(readFileSync(PATTERNS_FILE, 'utf-8'));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
catch { /* corrupt cache */ }
|
|
208
|
+
return [];
|
|
209
|
+
}
|
|
210
|
+
// ── Integration Helpers ──
|
|
211
|
+
/** Get the best agent for a task category based on collective wisdom */
|
|
212
|
+
export function getCollectiveRecommendation(category) {
|
|
213
|
+
const hints = loadCachedHints();
|
|
214
|
+
const match = hints.find(h => h.category === category && h.confidence > 0.7 && h.sample_count > 50);
|
|
215
|
+
if (match) {
|
|
216
|
+
return { agent: match.best_agent, confidence: match.confidence };
|
|
217
|
+
}
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
/** Get the best tool sequence for a task category based on collective wisdom */
|
|
221
|
+
export function getCollectiveToolSequence(category) {
|
|
222
|
+
const patterns = loadCachedPatterns();
|
|
223
|
+
const match = patterns.find(p => p.type === 'tool_sequence' &&
|
|
224
|
+
p.pattern.category === category &&
|
|
225
|
+
p.confidence > 0.7 &&
|
|
226
|
+
p.sample_count > 50);
|
|
227
|
+
if (match && match.pattern.tools) {
|
|
228
|
+
return match.pattern.tools;
|
|
229
|
+
}
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
/** Format collective stats for display */
|
|
233
|
+
export function getCollectiveStats() {
|
|
234
|
+
const state = getOptInState();
|
|
235
|
+
const hints = loadCachedHints();
|
|
236
|
+
const patterns = loadCachedPatterns();
|
|
237
|
+
if (!state.enabled) {
|
|
238
|
+
return 'Collective learning: disabled. Run `kbot collective --enable` to join.';
|
|
239
|
+
}
|
|
240
|
+
return [
|
|
241
|
+
`Collective learning: enabled`,
|
|
242
|
+
`Signals sent: ${state.total_signals_sent}`,
|
|
243
|
+
`Last signal: ${state.last_signal_at || 'never'}`,
|
|
244
|
+
`Routing hints cached: ${hints.length}`,
|
|
245
|
+
`Patterns cached: ${patterns.length}`,
|
|
246
|
+
].join('\n');
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=collective.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collective.js","sourceRoot":"","sources":["../src/collective.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.test.js
CHANGED
|
@@ -33,7 +33,7 @@ describe('Tool Registry', () => {
|
|
|
33
33
|
describe('Tier Gating', () => {
|
|
34
34
|
it('free tier only gets free tools', () => {
|
|
35
35
|
registerTool(makeTool({ name: 'tier_free', tier: 'free' }));
|
|
36
|
-
registerTool(makeTool({ name: 'tier_pro', tier: '
|
|
36
|
+
registerTool(makeTool({ name: 'tier_pro', tier: 'pro' }));
|
|
37
37
|
registerTool(makeTool({ name: 'tier_enterprise', tier: 'enterprise' }));
|
|
38
38
|
const freeNames = getToolsForTier('free').map(t => t.name);
|
|
39
39
|
expect(freeNames).toContain('tier_free');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/tools/index.test.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EACnD,WAAW,EAAE,cAAc,EAAE,wBAAwB,GAEtD,MAAM,YAAY,CAAA;AAEnB,SAAS,QAAQ,CAAC,YAAqC,EAAE;IACvD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;SACrE;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE;QAChD,IAAI,EAAE,MAAM;QACZ,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3C,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QAC9C,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACrC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAC3D,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/tools/index.test.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.js
CHANGED
|
@@ -276,7 +276,7 @@ export function printHelp() {
|
|
|
276
276
|
'',
|
|
277
277
|
` ${chalk.bold('Community')}`,
|
|
278
278
|
` ${DIM('─'.repeat(50))}`,
|
|
279
|
-
` ${CYAN('https://discord.gg/
|
|
279
|
+
` ${CYAN('https://discord.gg/kdMauM9abG')} ${DIM('Discord')}`,
|
|
280
280
|
` ${CYAN('https://kernel.chat')} ${DIM('Web companion')}`,
|
|
281
281
|
` ${CYAN('https://github.com/isaacsight/kernel')} ${DIM('GitHub')}`,
|
|
282
282
|
'',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kernel.chat/kbot",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.1",
|
|
4
4
|
"description": "The only AI agent that builds its own tools. Self-evolving terminal AI: 290 tools, 23 agents, 20 providers. Runtime tool forging via forge_tool, Forge Registry for community tools, autopoietic health monitoring, immune self-audit agent. Cost-aware model routing, fallback chains, Bayesian skill routing. Embedded llama.cpp, MCP server, programmatic SDK. MIT.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|