@poolzin/pool-bot 2026.3.7 → 2026.3.10
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/CHANGELOG.md +40 -0
- package/README.md +147 -69
- package/dist/.buildstamp +1 -1
- package/dist/agents/error-classifier.js +251 -0
- package/dist/agents/skills/security.js +211 -0
- package/dist/build-info.json +3 -3
- package/dist/cli/cron-cli/register.cron-dashboard.js +339 -0
- package/dist/cli/cron-cli/register.js +2 -0
- package/dist/cli/errors.js +187 -0
- package/dist/cli/lazy-commands.example.js +113 -0
- package/dist/cli/lazy-commands.js +329 -0
- package/dist/cli/program/command-registry.js +26 -0
- package/dist/cli/program/register.maintenance.js +21 -0
- package/dist/cli/program/register.skills.js +4 -0
- package/dist/cli/program/register.subclis.js +9 -0
- package/dist/cli/swarm-cli/register.js +8 -0
- package/dist/cli/swarm-cli/register.swarm-status.js +488 -0
- package/dist/cli/telemetry-cli/register.js +10 -0
- package/dist/cli/telemetry-cli/register.telemetry-alerts.js +176 -0
- package/dist/cli/telemetry-cli/register.telemetry-metrics.js +323 -0
- package/dist/cli/telemetry-cli/register.telemetry-status.js +179 -0
- package/dist/commands/doctor-checks.js +498 -0
- package/dist/config/config.js +1 -0
- package/dist/config/secrets-integration.js +88 -0
- package/dist/context-engine/index.js +33 -0
- package/dist/context-engine/legacy.js +179 -0
- package/dist/context-engine/registry.js +86 -0
- package/dist/context-engine/summarizing.js +290 -0
- package/dist/context-engine/types.js +7 -0
- package/dist/cron/service/timer.js +18 -0
- package/dist/gateway/protocol/index.js +5 -2
- package/dist/gateway/protocol/schema/error-codes.js +1 -0
- package/dist/gateway/protocol/schema/swarm.js +80 -0
- package/dist/gateway/protocol/schema.js +1 -0
- package/dist/gateway/server-close.js +4 -0
- package/dist/gateway/server-constants.js +1 -0
- package/dist/gateway/server-cron.js +29 -0
- package/dist/gateway/server-maintenance.js +35 -2
- package/dist/gateway/server-methods/swarm.js +58 -0
- package/dist/gateway/server-methods/telemetry.js +71 -0
- package/dist/gateway/server-methods-list.js +8 -0
- package/dist/gateway/server-methods.js +9 -2
- package/dist/gateway/server.impl.js +33 -16
- package/dist/infra/abort-pattern.js +106 -0
- package/dist/infra/retry.js +96 -0
- package/dist/secrets/index.js +28 -0
- package/dist/secrets/resolver.js +185 -0
- package/dist/secrets/runtime.js +142 -0
- package/dist/secrets/types.js +11 -0
- package/dist/security/dangerous-tools.js +80 -0
- package/dist/security/types.js +12 -0
- package/dist/skills/commands.js +333 -0
- package/dist/skills/index.js +164 -0
- package/dist/skills/loader.js +282 -0
- package/dist/skills/parser.js +446 -0
- package/dist/skills/registry.js +394 -0
- package/dist/skills/security.js +312 -0
- package/dist/skills/types.js +21 -0
- package/dist/swarm/service.js +247 -0
- package/dist/telemetry/alert-engine.js +258 -0
- package/dist/telemetry/cron-instrumentation.js +49 -0
- package/dist/telemetry/gateway-instrumentation.js +80 -0
- package/dist/telemetry/instrumentation.js +66 -0
- package/dist/telemetry/service.js +345 -0
- package/dist/test-utils/index.js +219 -0
- package/dist/tui/components/assistant-message.js +6 -2
- package/dist/tui/components/hyperlink-markdown.js +32 -0
- package/dist/tui/components/searchable-select-list.js +12 -1
- package/dist/tui/components/user-message.js +6 -2
- package/dist/tui/index.js +611 -0
- package/dist/tui/theme/theme-detection.js +226 -0
- package/dist/tui/tui-command-handlers.js +20 -0
- package/dist/tui/tui-formatters.js +4 -3
- package/dist/tui/utils/ctrl-c-handler.js +67 -0
- package/dist/tui/utils/osc8-hyperlinks.js +208 -0
- package/dist/tui/utils/safe-stop.js +180 -0
- package/dist/tui/utils/session-key-utils.js +81 -0
- package/dist/tui/utils/text-sanitization.js +284 -0
- package/dist/utils/lru-cache.js +116 -0
- package/dist/utils/performance.js +199 -0
- package/dist/utils/retry.js +240 -0
- package/docs/INTEGRATION_PLAN.md +475 -0
- package/docs/INTEGRATION_SUMMARY.md +215 -0
- package/docs/MELHORIAS_IMPLEMENTADAS.md +228 -0
- package/docs/MELHORIAS_PROFISSIONAIS.md +282 -0
- package/docs/PLANO_ACAO_TUI.md +357 -0
- package/docs/PROGRESSO_TUI.md +66 -0
- package/docs/RELATORIO_FINAL.md +217 -0
- package/docs/diagnostico-shell-completion.md +265 -0
- package/docs/features/advanced-memory.md +585 -0
- package/docs/features/discord-components-v2.md +277 -0
- package/docs/features/swarm.md +100 -0
- package/docs/features/telemetry.md +284 -0
- package/docs/integrations/HEXSTRIKE_PLAN.md +796 -0
- package/docs/integrations/INTEGRATION_PLAN.md +744 -0
- package/docs/integrations/PAGE_AGENT_PLAN.md +370 -0
- package/docs/integrations/XYOPS_PLAN.md +978 -0
- package/docs/models/provider-infrastructure.md +400 -0
- package/docs/security/exec-approvals.md +294 -0
- package/docs/skills/IMPLEMENTATION_SUMMARY.md +145 -0
- package/docs/skills/SKILL.md +524 -0
- package/docs/skills.md +405 -0
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/hexstrike-bridge/README.md +119 -0
- package/extensions/hexstrike-bridge/index.test.ts +247 -0
- package/extensions/hexstrike-bridge/index.ts +487 -0
- package/extensions/hexstrike-bridge/package.json +17 -0
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +5 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/mcp-server/index.ts +14 -0
- package/extensions/mcp-server/package.json +11 -0
- package/extensions/mcp-server/src/service.ts +540 -0
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +5 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +5 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/openai-codex-auth/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +5 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +5 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +5 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +5 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +8 -1
- package/skills/example-skill/SKILL.md +195 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Legacy Context Engine
|
|
3
|
+
*
|
|
4
|
+
* Maintains PoolBot's original context management behavior.
|
|
5
|
+
* This is the default engine that preserves backward compatibility.
|
|
6
|
+
*
|
|
7
|
+
* Strategy:
|
|
8
|
+
* - Simple message accumulation
|
|
9
|
+
* - Truncation-based overflow handling
|
|
10
|
+
* - Basic compaction via summarization
|
|
11
|
+
*/
|
|
12
|
+
export class LegacyContextEngine {
|
|
13
|
+
info = {
|
|
14
|
+
id: "legacy",
|
|
15
|
+
name: "Legacy Context Engine",
|
|
16
|
+
description: "PoolBot's original context management with simple accumulation and truncation",
|
|
17
|
+
supportsVectorSearch: false,
|
|
18
|
+
supportsFullTextSearch: false,
|
|
19
|
+
tokenLimit: undefined, // No explicit limit
|
|
20
|
+
};
|
|
21
|
+
sessions = new Map();
|
|
22
|
+
async bootstrap(params) {
|
|
23
|
+
try {
|
|
24
|
+
// Initialize session storage
|
|
25
|
+
this.sessions.set(params.sessionId, {
|
|
26
|
+
messages: [],
|
|
27
|
+
lastAccessed: new Date(),
|
|
28
|
+
});
|
|
29
|
+
return {
|
|
30
|
+
success: true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
return {
|
|
35
|
+
success: false,
|
|
36
|
+
error: error instanceof Error ? error.message : String(error),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async ingest(params) {
|
|
41
|
+
try {
|
|
42
|
+
const session = this.sessions.get(params.sessionId);
|
|
43
|
+
if (!session) {
|
|
44
|
+
return {
|
|
45
|
+
success: false,
|
|
46
|
+
error: `Session ${params.sessionId} not found`,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
session.messages.push(params.message);
|
|
50
|
+
session.lastAccessed = new Date();
|
|
51
|
+
// Estimate tokens (rough approximation)
|
|
52
|
+
const content = typeof params.message.content === "string"
|
|
53
|
+
? params.message.content
|
|
54
|
+
: JSON.stringify(params.message.content);
|
|
55
|
+
const estimatedTokens = Math.ceil(content.length / 4);
|
|
56
|
+
return {
|
|
57
|
+
success: true,
|
|
58
|
+
tokensConsumed: estimatedTokens,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
error: error instanceof Error ? error.message : String(error),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async assemble(params) {
|
|
69
|
+
const session = this.sessions.get(params.sessionId);
|
|
70
|
+
const messages = session?.messages ?? params.messages;
|
|
71
|
+
// Apply token budget if specified
|
|
72
|
+
let resultMessages = messages;
|
|
73
|
+
let wasTruncated = false;
|
|
74
|
+
let excludedMessages = [];
|
|
75
|
+
if (params.tokenBudget && params.tokenBudget > 0) {
|
|
76
|
+
const estimate = this.estimateTokenCount(messages);
|
|
77
|
+
if (estimate > params.tokenBudget) {
|
|
78
|
+
// Simple truncation: keep newest messages that fit
|
|
79
|
+
const reversed = [...messages].reverse();
|
|
80
|
+
const fitting = [];
|
|
81
|
+
let currentTokens = 0;
|
|
82
|
+
for (const msg of reversed) {
|
|
83
|
+
const msgTokens = this.estimateTokenCount([msg]);
|
|
84
|
+
if (currentTokens + msgTokens <= params.tokenBudget) {
|
|
85
|
+
fitting.unshift(msg);
|
|
86
|
+
currentTokens += msgTokens;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
excludedMessages.unshift(msg);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
resultMessages = fitting;
|
|
93
|
+
wasTruncated = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
messages: resultMessages,
|
|
98
|
+
totalTokens: this.estimateTokenCount(resultMessages),
|
|
99
|
+
wasTruncated,
|
|
100
|
+
excludedMessages: wasTruncated ? excludedMessages : undefined,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async compact(params) {
|
|
104
|
+
try {
|
|
105
|
+
const session = this.sessions.get(params.sessionId);
|
|
106
|
+
if (!session || session.messages.length === 0) {
|
|
107
|
+
return {
|
|
108
|
+
success: true,
|
|
109
|
+
tokensSaved: 0,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const originalTokens = this.estimateTokenCount(session.messages);
|
|
113
|
+
// Legacy compaction: summarize older messages
|
|
114
|
+
// Keep recent messages, summarize older ones
|
|
115
|
+
const keepRecent = 4; // Keep last 2 exchanges
|
|
116
|
+
const toSummarize = session.messages.slice(0, -keepRecent);
|
|
117
|
+
const toKeep = session.messages.slice(-keepRecent);
|
|
118
|
+
if (toSummarize.length === 0) {
|
|
119
|
+
return {
|
|
120
|
+
success: true,
|
|
121
|
+
tokensSaved: 0,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
// Create summary message
|
|
125
|
+
const summary = {
|
|
126
|
+
role: "system",
|
|
127
|
+
content: `[${toSummarize.length} earlier messages summarized]`,
|
|
128
|
+
metadata: { compacted: true, originalCount: toSummarize.length },
|
|
129
|
+
};
|
|
130
|
+
session.messages = [summary, ...toKeep];
|
|
131
|
+
const newTokens = this.estimateTokenCount(session.messages);
|
|
132
|
+
return {
|
|
133
|
+
success: true,
|
|
134
|
+
summary: summary.content,
|
|
135
|
+
tokensSaved: originalTokens - newTokens,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
return {
|
|
140
|
+
success: false,
|
|
141
|
+
error: error instanceof Error ? error.message : String(error),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async cleanup(params) {
|
|
146
|
+
this.sessions.delete(params.sessionId);
|
|
147
|
+
}
|
|
148
|
+
async getStats(params) {
|
|
149
|
+
const session = this.sessions.get(params.sessionId);
|
|
150
|
+
if (!session) {
|
|
151
|
+
return {
|
|
152
|
+
messageCount: 0,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
messageCount: session.messages.length,
|
|
157
|
+
totalTokens: this.estimateTokenCount(session.messages),
|
|
158
|
+
lastAccessed: session.lastAccessed,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Estimate token count for messages
|
|
163
|
+
* Rough approximation: ~4 characters per token
|
|
164
|
+
*/
|
|
165
|
+
estimateTokenCount(messages) {
|
|
166
|
+
let totalChars = 0;
|
|
167
|
+
for (const msg of messages) {
|
|
168
|
+
const content = typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content);
|
|
169
|
+
totalChars += content.length;
|
|
170
|
+
}
|
|
171
|
+
return Math.ceil(totalChars / 4);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Create the default legacy context engine
|
|
176
|
+
*/
|
|
177
|
+
export function createLegacyContextEngine() {
|
|
178
|
+
return new LegacyContextEngine();
|
|
179
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Engine Registry
|
|
3
|
+
*
|
|
4
|
+
* Manages available context engines and provides
|
|
5
|
+
* factory methods for creating engine instances.
|
|
6
|
+
*/
|
|
7
|
+
export class ContextEngineRegistry {
|
|
8
|
+
engines = new Map();
|
|
9
|
+
instances = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Register a new context engine
|
|
12
|
+
*/
|
|
13
|
+
register(id, EngineClass) {
|
|
14
|
+
this.engines.set(id, EngineClass);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if an engine is registered
|
|
18
|
+
*/
|
|
19
|
+
has(id) {
|
|
20
|
+
return this.engines.has(id);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get available engine IDs
|
|
24
|
+
*/
|
|
25
|
+
getAvailableEngines() {
|
|
26
|
+
return Array.from(this.engines.keys());
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create or get a cached engine instance
|
|
30
|
+
*/
|
|
31
|
+
getEngine(id) {
|
|
32
|
+
// Return cached instance if exists
|
|
33
|
+
const cached = this.instances.get(id);
|
|
34
|
+
if (cached) {
|
|
35
|
+
return cached;
|
|
36
|
+
}
|
|
37
|
+
// Create new instance
|
|
38
|
+
const EngineClass = this.engines.get(id);
|
|
39
|
+
if (!EngineClass) {
|
|
40
|
+
throw new Error(`Context engine "${id}" not registered. Available: ${this.getAvailableEngines().join(", ")}`);
|
|
41
|
+
}
|
|
42
|
+
const instance = new EngineClass();
|
|
43
|
+
this.instances.set(id, instance);
|
|
44
|
+
return instance;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Remove cached instance (for cleanup/testing)
|
|
48
|
+
*/
|
|
49
|
+
clearCache(id) {
|
|
50
|
+
if (id) {
|
|
51
|
+
this.instances.delete(id);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.instances.clear();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get engine info for all registered engines
|
|
59
|
+
*/
|
|
60
|
+
getEngineInfos() {
|
|
61
|
+
return this.getAvailableEngines().map((id) => {
|
|
62
|
+
const engine = this.getEngine(id);
|
|
63
|
+
return {
|
|
64
|
+
id,
|
|
65
|
+
name: engine.info.name,
|
|
66
|
+
description: engine.info.description,
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Global registry instance
|
|
73
|
+
*/
|
|
74
|
+
export const globalContextEngineRegistry = new ContextEngineRegistry();
|
|
75
|
+
/**
|
|
76
|
+
* Resolve which engine to use based on configuration
|
|
77
|
+
*/
|
|
78
|
+
export function resolveContextEngine(sessionId, config, registry = globalContextEngineRegistry) {
|
|
79
|
+
// Check for session-specific override
|
|
80
|
+
const engineId = config.sessionEngines?.[sessionId] ?? config.defaultEngine;
|
|
81
|
+
if (!registry.has(engineId)) {
|
|
82
|
+
throw new Error(`Context engine "${engineId}" not found for session ${sessionId}. ` +
|
|
83
|
+
`Available engines: ${registry.getAvailableEngines().join(", ")}`);
|
|
84
|
+
}
|
|
85
|
+
return registry.getEngine(engineId);
|
|
86
|
+
}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Summarizing Context Engine
|
|
3
|
+
*
|
|
4
|
+
* Advanced context management with intelligent summarization.
|
|
5
|
+
* Provides better token efficiency than the legacy engine.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Sliding window with summarization
|
|
9
|
+
* - Token-aware message prioritization
|
|
10
|
+
* - Configurable summarization strategy
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Token estimator using character-based approximation
|
|
14
|
+
* More accurate than simple division
|
|
15
|
+
*/
|
|
16
|
+
function estimateTokens(text) {
|
|
17
|
+
// GPT-style tokenization approximation
|
|
18
|
+
// - Average English word: ~1.3 tokens
|
|
19
|
+
// - Whitespace and punctuation: ~0.5 tokens each
|
|
20
|
+
// - Code/non-English: ~2-3 tokens per word
|
|
21
|
+
const words = text.trim().split(/\s+/).length;
|
|
22
|
+
const chars = text.length;
|
|
23
|
+
const punctuation = (text.match(/[.,!?;:()[\]{}"']/g) ?? []).length;
|
|
24
|
+
// Heuristic: code detection (high special char ratio)
|
|
25
|
+
const specialChars = (text.match(/[^\w\s]/g) ?? []).length;
|
|
26
|
+
const isCode = specialChars / chars > 0.15;
|
|
27
|
+
if (isCode) {
|
|
28
|
+
return Math.ceil(chars / 2.5); // Code: ~2.5 chars/token
|
|
29
|
+
}
|
|
30
|
+
// Regular text estimation
|
|
31
|
+
const wordTokens = words * 1.3;
|
|
32
|
+
const punctTokens = punctuation * 0.5;
|
|
33
|
+
const overhead = Math.ceil(chars / 100); // Metadata overhead
|
|
34
|
+
return Math.ceil(wordTokens + punctTokens + overhead);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Summarizing Context Engine
|
|
38
|
+
*
|
|
39
|
+
* Implements sliding window with intelligent summarization:
|
|
40
|
+
* 1. Keep system messages (highest priority)
|
|
41
|
+
* 2. Keep recent conversation (high priority)
|
|
42
|
+
* 3. Summarize older messages into running summary
|
|
43
|
+
*/
|
|
44
|
+
export class SummarizingContextEngine {
|
|
45
|
+
info = {
|
|
46
|
+
id: "summarizing",
|
|
47
|
+
name: "Summarizing Context Engine",
|
|
48
|
+
description: "Sliding window with intelligent message summarization",
|
|
49
|
+
supportsVectorSearch: false,
|
|
50
|
+
supportsFullTextSearch: false,
|
|
51
|
+
tokenLimit: undefined,
|
|
52
|
+
};
|
|
53
|
+
config;
|
|
54
|
+
sessions = new Map();
|
|
55
|
+
constructor(config) {
|
|
56
|
+
this.config = {
|
|
57
|
+
maxTokens: config?.maxTokens ?? 8000,
|
|
58
|
+
keepRecentMessages: config?.keepRecentMessages ?? 6,
|
|
59
|
+
summarizationThreshold: config?.summarizationThreshold ?? 4000,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
async bootstrap(params) {
|
|
63
|
+
try {
|
|
64
|
+
this.sessions.set(params.sessionId, {
|
|
65
|
+
messages: [],
|
|
66
|
+
summary: undefined,
|
|
67
|
+
summaryTokens: 0,
|
|
68
|
+
lastAccessed: new Date(),
|
|
69
|
+
totalIngested: 0,
|
|
70
|
+
});
|
|
71
|
+
return { success: true };
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
return {
|
|
75
|
+
success: false,
|
|
76
|
+
error: error instanceof Error ? error.message : String(error),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async ingest(params) {
|
|
81
|
+
try {
|
|
82
|
+
const session = this.sessions.get(params.sessionId);
|
|
83
|
+
if (!session) {
|
|
84
|
+
return {
|
|
85
|
+
success: false,
|
|
86
|
+
error: `Session ${params.sessionId} not found`,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const content = typeof params.message.content === "string"
|
|
90
|
+
? params.message.content
|
|
91
|
+
: JSON.stringify(params.message.content);
|
|
92
|
+
const estimatedTokens = estimateTokens(content);
|
|
93
|
+
// Calculate priority
|
|
94
|
+
const priority = this.calculatePriority(params.message, session.messages.length);
|
|
95
|
+
const prioritized = {
|
|
96
|
+
...params.message,
|
|
97
|
+
priority,
|
|
98
|
+
estimatedTokens,
|
|
99
|
+
internalTimestamp: Date.now(),
|
|
100
|
+
};
|
|
101
|
+
session.messages.push(prioritized);
|
|
102
|
+
session.totalIngested++;
|
|
103
|
+
session.lastAccessed = new Date();
|
|
104
|
+
// Check if we need to compact
|
|
105
|
+
const currentTokens = this.getTotalTokenCount(session);
|
|
106
|
+
if (currentTokens > this.config.summarizationThreshold) {
|
|
107
|
+
await this.compact({ sessionId: params.sessionId });
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
success: true,
|
|
111
|
+
tokensConsumed: estimatedTokens,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
return {
|
|
116
|
+
success: false,
|
|
117
|
+
error: error instanceof Error ? error.message : String(error),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async assemble(params) {
|
|
122
|
+
const session = this.sessions.get(params.sessionId);
|
|
123
|
+
if (!session) {
|
|
124
|
+
return {
|
|
125
|
+
messages: params.messages ?? [],
|
|
126
|
+
totalTokens: 0,
|
|
127
|
+
wasTruncated: false,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
// Build context: summary + recent messages
|
|
131
|
+
const resultMessages = [];
|
|
132
|
+
let totalTokens = 0;
|
|
133
|
+
// Add summary if exists
|
|
134
|
+
if (session.summary) {
|
|
135
|
+
const summaryMsg = {
|
|
136
|
+
role: "system",
|
|
137
|
+
content: `[Previous conversation summary: ${session.summary}]`,
|
|
138
|
+
metadata: { isSummary: true },
|
|
139
|
+
};
|
|
140
|
+
resultMessages.push(summaryMsg);
|
|
141
|
+
totalTokens += session.summaryTokens;
|
|
142
|
+
}
|
|
143
|
+
// Add messages within budget
|
|
144
|
+
const budget = params.tokenBudget ?? this.config.maxTokens;
|
|
145
|
+
const sortedMessages = [...session.messages].sort((a, b) => b.priority - a.priority || a.internalTimestamp - b.internalTimestamp);
|
|
146
|
+
const included = [];
|
|
147
|
+
const excluded = [];
|
|
148
|
+
for (const msg of sortedMessages) {
|
|
149
|
+
if (totalTokens + msg.estimatedTokens <= budget) {
|
|
150
|
+
// Strip priority metadata before returning
|
|
151
|
+
const { priority: _, estimatedTokens: __, internalTimestamp: ___, ...cleanMsg } = msg;
|
|
152
|
+
included.push(cleanMsg);
|
|
153
|
+
totalTokens += msg.estimatedTokens;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
const { priority: _, estimatedTokens: __, internalTimestamp: ___, ...cleanMsg } = msg;
|
|
157
|
+
excluded.push(cleanMsg);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Sort by internalTimestamp for final output
|
|
161
|
+
included.sort((a, b) => {
|
|
162
|
+
const ta = session.messages.find((m) => m.id === a.id)?.internalTimestamp ?? 0;
|
|
163
|
+
const tb = session.messages.find((m) => m.id === b.id)?.internalTimestamp ?? 0;
|
|
164
|
+
return ta - tb;
|
|
165
|
+
});
|
|
166
|
+
resultMessages.push(...included);
|
|
167
|
+
return {
|
|
168
|
+
messages: resultMessages,
|
|
169
|
+
totalTokens,
|
|
170
|
+
wasTruncated: excluded.length > 0,
|
|
171
|
+
excludedMessages: excluded.length > 0 ? excluded : undefined,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
async compact(params) {
|
|
175
|
+
try {
|
|
176
|
+
const session = this.sessions.get(params.sessionId);
|
|
177
|
+
if (!session || session.messages.length <= this.config.keepRecentMessages) {
|
|
178
|
+
return { success: true, tokensSaved: 0 };
|
|
179
|
+
}
|
|
180
|
+
const originalTokens = this.getTotalTokenCount(session);
|
|
181
|
+
// Messages to summarize (older ones)
|
|
182
|
+
const toSummarize = session.messages.slice(0, -this.config.keepRecentMessages);
|
|
183
|
+
const toKeep = session.messages.slice(-this.config.keepRecentMessages);
|
|
184
|
+
if (toSummarize.length === 0) {
|
|
185
|
+
return { success: true, tokensSaved: 0 };
|
|
186
|
+
}
|
|
187
|
+
// Generate summary (simplified - in production, use LLM)
|
|
188
|
+
const summary = this.generateSummary(toSummarize);
|
|
189
|
+
const _summaryTokens = estimateTokens(summary);
|
|
190
|
+
// Update session
|
|
191
|
+
session.summary = session.summary ? `${session.summary} ${summary}` : summary;
|
|
192
|
+
session.summaryTokens = estimateTokens(session.summary);
|
|
193
|
+
session.messages = toKeep;
|
|
194
|
+
const newTokens = this.getTotalTokenCount(session);
|
|
195
|
+
const tokensSaved = originalTokens - newTokens;
|
|
196
|
+
return {
|
|
197
|
+
success: true,
|
|
198
|
+
summary: session.summary,
|
|
199
|
+
tokensSaved: Math.max(0, tokensSaved),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
return {
|
|
204
|
+
success: false,
|
|
205
|
+
error: error instanceof Error ? error.message : String(error),
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
async cleanup(params) {
|
|
210
|
+
this.sessions.delete(params.sessionId);
|
|
211
|
+
}
|
|
212
|
+
async getStats(params) {
|
|
213
|
+
const session = this.sessions.get(params.sessionId);
|
|
214
|
+
if (!session) {
|
|
215
|
+
return { messageCount: 0 };
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
messageCount: session.messages.length,
|
|
219
|
+
totalTokens: this.getTotalTokenCount(session),
|
|
220
|
+
lastAccessed: session.lastAccessed,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Calculate message priority (0-100)
|
|
225
|
+
*/
|
|
226
|
+
calculatePriority(message, index) {
|
|
227
|
+
let priority = 50; // Base priority
|
|
228
|
+
// System messages are highest priority
|
|
229
|
+
if (message.role === "system") {
|
|
230
|
+
priority += 40;
|
|
231
|
+
}
|
|
232
|
+
// Recent messages get boost
|
|
233
|
+
if (index > -5) {
|
|
234
|
+
priority += 20;
|
|
235
|
+
}
|
|
236
|
+
// Messages with tool calls/results are important
|
|
237
|
+
if (message.metadata?.tool_calls || message.metadata?.tool_call_id) {
|
|
238
|
+
priority += 15;
|
|
239
|
+
}
|
|
240
|
+
return Math.min(100, priority);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Get total token count for session
|
|
244
|
+
*/
|
|
245
|
+
getTotalTokenCount(session) {
|
|
246
|
+
const messageTokens = session.messages.reduce((sum, m) => sum + m.estimatedTokens, 0);
|
|
247
|
+
return messageTokens + session.summaryTokens;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Generate a simple summary of messages
|
|
251
|
+
* In production, this would use an LLM
|
|
252
|
+
*/
|
|
253
|
+
generateSummary(messages) {
|
|
254
|
+
const userMsgs = messages.filter((m) => m.role === "user");
|
|
255
|
+
const assistantMsgs = messages.filter((m) => m.role === "assistant");
|
|
256
|
+
const topics = this.extractTopics(messages);
|
|
257
|
+
return (`Conversation covered ${userMsgs.length} user queries and ${assistantMsgs.length} responses. ` +
|
|
258
|
+
`Topics: ${topics.join(", ") || "general discussion"}.`);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Extract key topics from messages (simplified)
|
|
262
|
+
*/
|
|
263
|
+
extractTopics(messages) {
|
|
264
|
+
const allContent = messages
|
|
265
|
+
.map((m) => (typeof m.content === "string" ? m.content : JSON.stringify(m.content)))
|
|
266
|
+
.join(" ")
|
|
267
|
+
.toLowerCase();
|
|
268
|
+
// Simple keyword extraction
|
|
269
|
+
const keywords = [
|
|
270
|
+
"code",
|
|
271
|
+
"function",
|
|
272
|
+
"error",
|
|
273
|
+
"bug",
|
|
274
|
+
"fix",
|
|
275
|
+
"implement",
|
|
276
|
+
"create",
|
|
277
|
+
"update",
|
|
278
|
+
"delete",
|
|
279
|
+
"configure",
|
|
280
|
+
"setup",
|
|
281
|
+
];
|
|
282
|
+
return keywords.filter((kw) => allContent.includes(kw)).slice(0, 3);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Create a summarizing context engine
|
|
287
|
+
*/
|
|
288
|
+
export function createSummarizingContextEngine(config) {
|
|
289
|
+
return new SummarizingContextEngine(config);
|
|
290
|
+
}
|
|
@@ -618,6 +618,24 @@ function emitJobFinished(state, job, result, runAtMs) {
|
|
|
618
618
|
provider: result.provider,
|
|
619
619
|
usage: result.usage,
|
|
620
620
|
});
|
|
621
|
+
// Emit telemetry metrics
|
|
622
|
+
if (state.deps.onJobMetrics) {
|
|
623
|
+
const scheduleStr = job.schedule.kind === "cron"
|
|
624
|
+
? job.schedule.expr
|
|
625
|
+
: job.schedule.kind === "every"
|
|
626
|
+
? `every ${job.schedule.everyMs}ms`
|
|
627
|
+
: job.schedule.kind === "at"
|
|
628
|
+
? job.schedule.at
|
|
629
|
+
: "unknown";
|
|
630
|
+
state.deps.onJobMetrics({
|
|
631
|
+
jobId: job.id,
|
|
632
|
+
jobName: job.name,
|
|
633
|
+
schedule: scheduleStr,
|
|
634
|
+
success: result.status === "ok",
|
|
635
|
+
durationMs: job.state.lastDurationMs ?? 0,
|
|
636
|
+
errorType: result.status === "error" ? (result.error ?? "unknown") : undefined,
|
|
637
|
+
});
|
|
638
|
+
}
|
|
621
639
|
}
|
|
622
640
|
export function wake(state, opts) {
|
|
623
641
|
const text = opts.text.trim();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import AjvPkg from "ajv";
|
|
2
|
-
import { AgentEventSchema, AgentIdentityParamsSchema, AgentIdentityResultSchema, AgentParamsSchema, AgentSummarySchema, AgentsFileEntrySchema, AgentsCreateParamsSchema, AgentsCreateResultSchema, AgentsUpdateParamsSchema, AgentsUpdateResultSchema, AgentsDeleteParamsSchema, AgentsDeleteResultSchema, AgentsFilesGetParamsSchema, AgentsFilesGetResultSchema, AgentsFilesListParamsSchema, AgentsFilesListResultSchema, AgentsFilesSetParamsSchema, AgentsFilesSetResultSchema, AgentsListParamsSchema, AgentsListResultSchema, AgentWaitParamsSchema, ChannelsLogoutParamsSchema, TalkConfigParamsSchema, TalkConfigResultSchema, ChannelsStatusParamsSchema, ChannelsStatusResultSchema, ChatAbortParamsSchema, ChatEventSchema, ChatHistoryParamsSchema, ChatInjectParamsSchema, ChatSendParamsSchema, ConfigApplyParamsSchema, ConfigGetParamsSchema, ConfigPatchParamsSchema, ConfigSchemaParamsSchema, ConfigSchemaResponseSchema, ConfigSetParamsSchema, ConnectParamsSchema, CronAddParamsSchema, CronJobSchema, CronListParamsSchema, CronRemoveParamsSchema, CronRunParamsSchema, CronRunsParamsSchema, CronStatusParamsSchema, CronUpdateParamsSchema, DevicePairApproveParamsSchema, DevicePairListParamsSchema, DevicePairRemoveParamsSchema, DevicePairRejectParamsSchema, DeviceTokenRevokeParamsSchema, DeviceTokenRotateParamsSchema, ExecApprovalsGetParamsSchema, ExecApprovalsNodeGetParamsSchema, ExecApprovalsNodeSetParamsSchema, ExecApprovalsSetParamsSchema, ExecApprovalRequestParamsSchema, ExecApprovalResolveParamsSchema, ErrorCodes, ErrorShapeSchema, EventFrameSchema, errorShape, GatewayFrameSchema, HelloOkSchema, LogsTailParamsSchema, LogsTailResultSchema, ModelsListParamsSchema, NodeDescribeParamsSchema, NodeEventParamsSchema, NodeInvokeParamsSchema, NodeInvokeResultParamsSchema, NodeListParamsSchema, NodePairApproveParamsSchema, NodePairListParamsSchema, NodePairRejectParamsSchema, NodePairRequestParamsSchema, NodePairVerifyParamsSchema, NodeRenameParamsSchema, PollParamsSchema, PROTOCOL_VERSION, PushTestParamsSchema, PushTestResultSchema, PresenceEntrySchema, ProtocolSchemas, RequestFrameSchema, ResponseFrameSchema, SendParamsSchema, SessionsCompactParamsSchema, SessionsDeleteParamsSchema, SessionsListParamsSchema, SessionsPatchParamsSchema, SessionsPreviewParamsSchema, SessionsResetParamsSchema, SessionsResolveParamsSchema, SessionsUsageParamsSchema, ShutdownEventSchema, SkillsBinsParamsSchema, SkillsInstallParamsSchema, SkillsStatusParamsSchema, SkillsUpdateParamsSchema, SnapshotSchema, StateVersionSchema, TalkModeParamsSchema, TickEventSchema, UpdateRunParamsSchema, WakeParamsSchema, WebLoginStartParamsSchema, WebLoginWaitParamsSchema, WizardCancelParamsSchema, WizardNextParamsSchema, WizardNextResultSchema, WizardStartParamsSchema, WizardStartResultSchema, WizardStatusParamsSchema, WizardStatusResultSchema, WizardStepSchema, } from "./schema.js";
|
|
2
|
+
import { AgentEventSchema, AgentIdentityParamsSchema, AgentIdentityResultSchema, AgentParamsSchema, AgentSummarySchema, AgentsFileEntrySchema, AgentsCreateParamsSchema, AgentsCreateResultSchema, AgentsUpdateParamsSchema, AgentsUpdateResultSchema, AgentsDeleteParamsSchema, AgentsDeleteResultSchema, AgentsFilesGetParamsSchema, AgentsFilesGetResultSchema, AgentsFilesListParamsSchema, AgentsFilesListResultSchema, AgentsFilesSetParamsSchema, AgentsFilesSetResultSchema, AgentsListParamsSchema, AgentsListResultSchema, AgentWaitParamsSchema, ChannelsLogoutParamsSchema, TalkConfigParamsSchema, TalkConfigResultSchema, ChannelsStatusParamsSchema, ChannelsStatusResultSchema, ChatAbortParamsSchema, ChatEventSchema, ChatHistoryParamsSchema, ChatInjectParamsSchema, ChatSendParamsSchema, ConfigApplyParamsSchema, ConfigGetParamsSchema, ConfigPatchParamsSchema, ConfigSchemaParamsSchema, ConfigSchemaResponseSchema, ConfigSetParamsSchema, ConnectParamsSchema, CronAddParamsSchema, CronJobSchema, CronListParamsSchema, CronRemoveParamsSchema, CronRunParamsSchema, CronRunsParamsSchema, CronStatusParamsSchema, CronUpdateParamsSchema, DevicePairApproveParamsSchema, DevicePairListParamsSchema, DevicePairRemoveParamsSchema, DevicePairRejectParamsSchema, DeviceTokenRevokeParamsSchema, DeviceTokenRotateParamsSchema, ExecApprovalsGetParamsSchema, ExecApprovalsNodeGetParamsSchema, ExecApprovalsNodeSetParamsSchema, ExecApprovalsSetParamsSchema, ExecApprovalRequestParamsSchema, ExecApprovalResolveParamsSchema, ErrorCodes, ErrorShapeSchema, EventFrameSchema, errorShape, GatewayFrameSchema, HelloOkSchema, LogsTailParamsSchema, LogsTailResultSchema, ModelsListParamsSchema, NodeDescribeParamsSchema, NodeEventParamsSchema, NodeInvokeParamsSchema, NodeInvokeResultParamsSchema, NodeListParamsSchema, NodePairApproveParamsSchema, NodePairListParamsSchema, NodePairRejectParamsSchema, NodePairRequestParamsSchema, NodePairVerifyParamsSchema, NodeRenameParamsSchema, PollParamsSchema, PROTOCOL_VERSION, PushTestParamsSchema, PushTestResultSchema, PresenceEntrySchema, ProtocolSchemas, RequestFrameSchema, ResponseFrameSchema, SendParamsSchema, SessionsCompactParamsSchema, SessionsDeleteParamsSchema, SessionsListParamsSchema, SessionsPatchParamsSchema, SessionsPreviewParamsSchema, SessionsResetParamsSchema, SessionsResolveParamsSchema, SessionsUsageParamsSchema, ShutdownEventSchema, SkillsBinsParamsSchema, SkillsInstallParamsSchema, SkillsStatusParamsSchema, SkillsUpdateParamsSchema, SnapshotSchema, StateVersionSchema, TalkModeParamsSchema, TickEventSchema, UpdateRunParamsSchema, WakeParamsSchema, WebLoginStartParamsSchema, WebLoginWaitParamsSchema, WizardCancelParamsSchema, WizardNextParamsSchema, WizardNextResultSchema, WizardStartParamsSchema, WizardStartResultSchema, WizardStatusParamsSchema, WizardStatusResultSchema, WizardStepSchema, SwarmListParamsSchema, SwarmStatusParamsSchema, SwarmCreateParamsSchema, SwarmListResultSchema, SwarmStatusResultSchema, SwarmCreateResultSchema, SwarmStateSchema, SwarmMemberSchema, SwarmTaskSchema, SwarmStrategySchema, } from "./schema.js";
|
|
3
3
|
const ajv = new AjvPkg({
|
|
4
4
|
allErrors: true,
|
|
5
5
|
strict: false,
|
|
@@ -88,6 +88,9 @@ export const validateChatEvent = ajv.compile(ChatEventSchema);
|
|
|
88
88
|
export const validateUpdateRunParams = ajv.compile(UpdateRunParamsSchema);
|
|
89
89
|
export const validateWebLoginStartParams = ajv.compile(WebLoginStartParamsSchema);
|
|
90
90
|
export const validateWebLoginWaitParams = ajv.compile(WebLoginWaitParamsSchema);
|
|
91
|
+
export const validateSwarmListParams = ajv.compile(SwarmListParamsSchema);
|
|
92
|
+
export const validateSwarmStatusParams = ajv.compile(SwarmStatusParamsSchema);
|
|
93
|
+
export const validateSwarmCreateParams = ajv.compile(SwarmCreateParamsSchema);
|
|
91
94
|
export function formatValidationErrors(errors) {
|
|
92
95
|
if (!errors?.length) {
|
|
93
96
|
return "unknown validation error";
|
|
@@ -117,4 +120,4 @@ export function formatValidationErrors(errors) {
|
|
|
117
120
|
}
|
|
118
121
|
return unique.join("; ");
|
|
119
122
|
}
|
|
120
|
-
export { ConnectParamsSchema, HelloOkSchema, RequestFrameSchema, ResponseFrameSchema, EventFrameSchema, GatewayFrameSchema, PresenceEntrySchema, SnapshotSchema, ErrorShapeSchema, StateVersionSchema, AgentEventSchema, ChatEventSchema, SendParamsSchema, PollParamsSchema, AgentParamsSchema, AgentIdentityParamsSchema, AgentIdentityResultSchema, WakeParamsSchema, PushTestParamsSchema, PushTestResultSchema, NodePairRequestParamsSchema, NodePairListParamsSchema, NodePairApproveParamsSchema, NodePairRejectParamsSchema, NodePairVerifyParamsSchema, NodeListParamsSchema, NodeInvokeParamsSchema, SessionsListParamsSchema, SessionsPreviewParamsSchema, SessionsPatchParamsSchema, SessionsResetParamsSchema, SessionsDeleteParamsSchema, SessionsCompactParamsSchema, SessionsUsageParamsSchema, ConfigGetParamsSchema, ConfigSetParamsSchema, ConfigApplyParamsSchema, ConfigPatchParamsSchema, ConfigSchemaParamsSchema, ConfigSchemaResponseSchema, WizardStartParamsSchema, WizardNextParamsSchema, WizardCancelParamsSchema, WizardStatusParamsSchema, WizardStepSchema, WizardNextResultSchema, WizardStartResultSchema, WizardStatusResultSchema, TalkConfigParamsSchema, TalkConfigResultSchema, ChannelsStatusParamsSchema, ChannelsStatusResultSchema, ChannelsLogoutParamsSchema, WebLoginStartParamsSchema, WebLoginWaitParamsSchema, AgentSummarySchema, AgentsFileEntrySchema, AgentsCreateParamsSchema, AgentsCreateResultSchema, AgentsUpdateParamsSchema, AgentsUpdateResultSchema, AgentsDeleteParamsSchema, AgentsDeleteResultSchema, AgentsFilesListParamsSchema, AgentsFilesListResultSchema, AgentsFilesGetParamsSchema, AgentsFilesGetResultSchema, AgentsFilesSetParamsSchema, AgentsFilesSetResultSchema, AgentsListParamsSchema, AgentsListResultSchema, ModelsListParamsSchema, SkillsStatusParamsSchema, SkillsInstallParamsSchema, SkillsUpdateParamsSchema, CronJobSchema, CronListParamsSchema, CronStatusParamsSchema, CronAddParamsSchema, CronUpdateParamsSchema, CronRemoveParamsSchema, CronRunParamsSchema, CronRunsParamsSchema, LogsTailParamsSchema, LogsTailResultSchema, ChatHistoryParamsSchema, ChatSendParamsSchema, ChatInjectParamsSchema, UpdateRunParamsSchema, TickEventSchema, ShutdownEventSchema, ProtocolSchemas, PROTOCOL_VERSION, ErrorCodes, errorShape, };
|
|
123
|
+
export { ConnectParamsSchema, HelloOkSchema, RequestFrameSchema, ResponseFrameSchema, EventFrameSchema, GatewayFrameSchema, PresenceEntrySchema, SnapshotSchema, ErrorShapeSchema, StateVersionSchema, AgentEventSchema, ChatEventSchema, SendParamsSchema, PollParamsSchema, AgentParamsSchema, AgentIdentityParamsSchema, AgentIdentityResultSchema, WakeParamsSchema, PushTestParamsSchema, PushTestResultSchema, NodePairRequestParamsSchema, NodePairListParamsSchema, NodePairApproveParamsSchema, NodePairRejectParamsSchema, NodePairVerifyParamsSchema, NodeListParamsSchema, NodeInvokeParamsSchema, SessionsListParamsSchema, SessionsPreviewParamsSchema, SessionsPatchParamsSchema, SessionsResetParamsSchema, SessionsDeleteParamsSchema, SessionsCompactParamsSchema, SessionsUsageParamsSchema, ConfigGetParamsSchema, ConfigSetParamsSchema, ConfigApplyParamsSchema, ConfigPatchParamsSchema, ConfigSchemaParamsSchema, ConfigSchemaResponseSchema, WizardStartParamsSchema, WizardNextParamsSchema, WizardCancelParamsSchema, WizardStatusParamsSchema, WizardStepSchema, WizardNextResultSchema, WizardStartResultSchema, WizardStatusResultSchema, TalkConfigParamsSchema, TalkConfigResultSchema, ChannelsStatusParamsSchema, ChannelsStatusResultSchema, ChannelsLogoutParamsSchema, WebLoginStartParamsSchema, WebLoginWaitParamsSchema, AgentSummarySchema, AgentsFileEntrySchema, AgentsCreateParamsSchema, AgentsCreateResultSchema, AgentsUpdateParamsSchema, AgentsUpdateResultSchema, AgentsDeleteParamsSchema, AgentsDeleteResultSchema, AgentsFilesListParamsSchema, AgentsFilesListResultSchema, AgentsFilesGetParamsSchema, AgentsFilesGetResultSchema, AgentsFilesSetParamsSchema, AgentsFilesSetResultSchema, AgentsListParamsSchema, AgentsListResultSchema, ModelsListParamsSchema, SkillsStatusParamsSchema, SkillsInstallParamsSchema, SkillsUpdateParamsSchema, CronJobSchema, CronListParamsSchema, CronStatusParamsSchema, CronAddParamsSchema, CronUpdateParamsSchema, CronRemoveParamsSchema, CronRunParamsSchema, CronRunsParamsSchema, LogsTailParamsSchema, LogsTailResultSchema, ChatHistoryParamsSchema, ChatSendParamsSchema, ChatInjectParamsSchema, UpdateRunParamsSchema, TickEventSchema, ShutdownEventSchema, ProtocolSchemas, PROTOCOL_VERSION, ErrorCodes, errorShape, SwarmListParamsSchema, SwarmStatusParamsSchema, SwarmCreateParamsSchema, SwarmListResultSchema, SwarmStatusResultSchema, SwarmCreateResultSchema, SwarmStateSchema, SwarmMemberSchema, SwarmTaskSchema, SwarmStrategySchema, };
|