@mainwp/control 1.0.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/LICENSE +674 -0
- package/README.md +583 -0
- package/bin/_exit.js +12 -0
- package/bin/dev.js +7 -0
- package/bin/run.js +7 -0
- package/dist/chat/chat-engine.d.ts +213 -0
- package/dist/chat/chat-engine.d.ts.map +1 -0
- package/dist/chat/chat-engine.js +636 -0
- package/dist/chat/chat-engine.js.map +1 -0
- package/dist/chat/index.d.ts +10 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +14 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/providers/anthropic.d.ts +52 -0
- package/dist/chat/providers/anthropic.d.ts.map +1 -0
- package/dist/chat/providers/anthropic.js +292 -0
- package/dist/chat/providers/anthropic.js.map +1 -0
- package/dist/chat/providers/gemini.d.ts +52 -0
- package/dist/chat/providers/gemini.d.ts.map +1 -0
- package/dist/chat/providers/gemini.js +284 -0
- package/dist/chat/providers/gemini.js.map +1 -0
- package/dist/chat/providers/index.d.ts +19 -0
- package/dist/chat/providers/index.d.ts.map +1 -0
- package/dist/chat/providers/index.js +23 -0
- package/dist/chat/providers/index.js.map +1 -0
- package/dist/chat/providers/local.d.ts +37 -0
- package/dist/chat/providers/local.d.ts.map +1 -0
- package/dist/chat/providers/local.js +130 -0
- package/dist/chat/providers/local.js.map +1 -0
- package/dist/chat/providers/openai-compatible.d.ts +155 -0
- package/dist/chat/providers/openai-compatible.d.ts.map +1 -0
- package/dist/chat/providers/openai-compatible.js +264 -0
- package/dist/chat/providers/openai-compatible.js.map +1 -0
- package/dist/chat/providers/openai.d.ts +24 -0
- package/dist/chat/providers/openai.d.ts.map +1 -0
- package/dist/chat/providers/openai.js +62 -0
- package/dist/chat/providers/openai.js.map +1 -0
- package/dist/chat/providers/openrouter.d.ts +26 -0
- package/dist/chat/providers/openrouter.d.ts.map +1 -0
- package/dist/chat/providers/openrouter.js +65 -0
- package/dist/chat/providers/openrouter.js.map +1 -0
- package/dist/chat/providers/provider-fetch.d.ts +15 -0
- package/dist/chat/providers/provider-fetch.d.ts.map +1 -0
- package/dist/chat/providers/provider-fetch.js +35 -0
- package/dist/chat/providers/provider-fetch.js.map +1 -0
- package/dist/chat/providers/provider.d.ts +214 -0
- package/dist/chat/providers/provider.d.ts.map +1 -0
- package/dist/chat/providers/provider.js +166 -0
- package/dist/chat/providers/provider.js.map +1 -0
- package/dist/chat/providers/sse-reader.d.ts +21 -0
- package/dist/chat/providers/sse-reader.d.ts.map +1 -0
- package/dist/chat/providers/sse-reader.js +48 -0
- package/dist/chat/providers/sse-reader.js.map +1 -0
- package/dist/chat/system-prompt.d.ts +33 -0
- package/dist/chat/system-prompt.d.ts.map +1 -0
- package/dist/chat/system-prompt.js +166 -0
- package/dist/chat/system-prompt.js.map +1 -0
- package/dist/chat/tool-envelope.d.ts +72 -0
- package/dist/chat/tool-envelope.d.ts.map +1 -0
- package/dist/chat/tool-envelope.js +263 -0
- package/dist/chat/tool-envelope.js.map +1 -0
- package/dist/commands/abilities/info.d.ts +21 -0
- package/dist/commands/abilities/info.d.ts.map +1 -0
- package/dist/commands/abilities/info.js +80 -0
- package/dist/commands/abilities/info.js.map +1 -0
- package/dist/commands/abilities/list.d.ts +19 -0
- package/dist/commands/abilities/list.d.ts.map +1 -0
- package/dist/commands/abilities/list.js +98 -0
- package/dist/commands/abilities/list.js.map +1 -0
- package/dist/commands/abilities/run.d.ts +75 -0
- package/dist/commands/abilities/run.d.ts.map +1 -0
- package/dist/commands/abilities/run.js +468 -0
- package/dist/commands/abilities/run.js.map +1 -0
- package/dist/commands/chat.d.ts +54 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +384 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/config/show.d.ts +54 -0
- package/dist/commands/config/show.d.ts.map +1 -0
- package/dist/commands/config/show.js +324 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/doctor.d.ts +77 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +412 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/jobs/watch.d.ts +50 -0
- package/dist/commands/jobs/watch.d.ts.map +1 -0
- package/dist/commands/jobs/watch.js +269 -0
- package/dist/commands/jobs/watch.js.map +1 -0
- package/dist/commands/login.d.ts +25 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +165 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/profile/delete.d.ts +22 -0
- package/dist/commands/profile/delete.d.ts.map +1 -0
- package/dist/commands/profile/delete.js +57 -0
- package/dist/commands/profile/delete.js.map +1 -0
- package/dist/commands/profile/list.d.ts +19 -0
- package/dist/commands/profile/list.d.ts.map +1 -0
- package/dist/commands/profile/list.js +53 -0
- package/dist/commands/profile/list.js.map +1 -0
- package/dist/commands/profile/use.d.ts +22 -0
- package/dist/commands/profile/use.d.ts.map +1 -0
- package/dist/commands/profile/use.js +46 -0
- package/dist/commands/profile/use.js.map +1 -0
- package/dist/config/fs-utils.d.ts +14 -0
- package/dist/config/fs-utils.d.ts.map +1 -0
- package/dist/config/fs-utils.js +31 -0
- package/dist/config/fs-utils.js.map +1 -0
- package/dist/config/keychain.d.ts +53 -0
- package/dist/config/keychain.d.ts.map +1 -0
- package/dist/config/keychain.js +175 -0
- package/dist/config/keychain.js.map +1 -0
- package/dist/config/profile-store.d.ts +85 -0
- package/dist/config/profile-store.d.ts.map +1 -0
- package/dist/config/profile-store.js +228 -0
- package/dist/config/profile-store.js.map +1 -0
- package/dist/config/settings.d.ts +71 -0
- package/dist/config/settings.d.ts.map +1 -0
- package/dist/config/settings.js +151 -0
- package/dist/config/settings.js.map +1 -0
- package/dist/core/abilities-executor.d.ts +126 -0
- package/dist/core/abilities-executor.d.ts.map +1 -0
- package/dist/core/abilities-executor.js +264 -0
- package/dist/core/abilities-executor.js.map +1 -0
- package/dist/core/batch-manager.d.ts +113 -0
- package/dist/core/batch-manager.d.ts.map +1 -0
- package/dist/core/batch-manager.js +244 -0
- package/dist/core/batch-manager.js.map +1 -0
- package/dist/core/http-client.d.ts +111 -0
- package/dist/core/http-client.d.ts.map +1 -0
- package/dist/core/http-client.js +329 -0
- package/dist/core/http-client.js.map +1 -0
- package/dist/core/safety-controller.d.ts +114 -0
- package/dist/core/safety-controller.d.ts.map +1 -0
- package/dist/core/safety-controller.js +229 -0
- package/dist/core/safety-controller.js.map +1 -0
- package/dist/hooks/command-not-found.d.ts +12 -0
- package/dist/hooks/command-not-found.d.ts.map +1 -0
- package/dist/hooks/command-not-found.js +58 -0
- package/dist/hooks/command-not-found.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/base-command.d.ts +123 -0
- package/dist/lib/base-command.d.ts.map +1 -0
- package/dist/lib/base-command.js +285 -0
- package/dist/lib/base-command.js.map +1 -0
- package/dist/output/formatter.d.ts +48 -0
- package/dist/output/formatter.d.ts.map +1 -0
- package/dist/output/formatter.js +138 -0
- package/dist/output/formatter.js.map +1 -0
- package/dist/output/json-envelope.d.ts +43 -0
- package/dist/output/json-envelope.d.ts.map +1 -0
- package/dist/output/json-envelope.js +73 -0
- package/dist/output/json-envelope.js.map +1 -0
- package/dist/utils/audit-logger.d.ts +97 -0
- package/dist/utils/audit-logger.d.ts.map +1 -0
- package/dist/utils/audit-logger.js +169 -0
- package/dist/utils/audit-logger.js.map +1 -0
- package/dist/utils/colors.d.ts +29 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +36 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/errors.d.ts +107 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +149 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/exit-codes.d.ts +21 -0
- package/dist/utils/exit-codes.d.ts.map +1 -0
- package/dist/utils/exit-codes.js +20 -0
- package/dist/utils/exit-codes.js.map +1 -0
- package/dist/utils/format.d.ts +64 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +69 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/prompt.d.ts +34 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +132 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/retry.d.ts +59 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +96 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/terminal-sanitizer.d.ts +60 -0
- package/dist/utils/terminal-sanitizer.d.ts.map +1 -0
- package/dist/utils/terminal-sanitizer.js +166 -0
- package/dist/utils/terminal-sanitizer.js.map +1 -0
- package/dist/validation/input-sanitizer.d.ts +76 -0
- package/dist/validation/input-sanitizer.d.ts.map +1 -0
- package/dist/validation/input-sanitizer.js +199 -0
- package/dist/validation/input-sanitizer.js.map +1 -0
- package/dist/validation/schema-validator.d.ts +75 -0
- package/dist/validation/schema-validator.d.ts.map +1 -0
- package/dist/validation/schema-validator.js +147 -0
- package/dist/validation/schema-validator.js.map +1 -0
- package/oclif.manifest.json +857 -0
- package/package.json +101 -0
- package/scripts/completions/README.md +221 -0
- package/scripts/completions/mainwpcontrol.bash +193 -0
- package/scripts/completions/mainwpcontrol.zsh +267 -0
- package/scripts/completions/profile-completer.sh +35 -0
- package/scripts/completions/regenerate.sh +78 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat Engine for mainwpcontrol
|
|
3
|
+
*
|
|
4
|
+
* LLM interaction loop with safety enforcement.
|
|
5
|
+
*
|
|
6
|
+
* CRITICAL INVARIANTS (from PLAN.md, CHAT_PROMPT.md):
|
|
7
|
+
* - AI proposes tool calls; ChatEngine executes via AbilitiesExecutor
|
|
8
|
+
* - AI NEVER executes directly
|
|
9
|
+
* - Destructive actions always preview first
|
|
10
|
+
* - Max tool calls per turn enforced
|
|
11
|
+
* - JSON retry logic (max 2 retries)
|
|
12
|
+
*/
|
|
13
|
+
import type { LLMProvider, Message } from './providers/provider.js';
|
|
14
|
+
import { type SystemPromptConfig } from './system-prompt.js';
|
|
15
|
+
import { type AbilitiesExecutor, type Ability, type ExecutionResult } from '../core/abilities-executor.js';
|
|
16
|
+
import { type PreviewResult } from '../core/safety-controller.js';
|
|
17
|
+
/**
|
|
18
|
+
* Chat response types
|
|
19
|
+
*/
|
|
20
|
+
export type ChatResponse = {
|
|
21
|
+
type: 'message';
|
|
22
|
+
content: string;
|
|
23
|
+
} | {
|
|
24
|
+
type: 'tool_result';
|
|
25
|
+
tool: string;
|
|
26
|
+
result: ExecutionResult;
|
|
27
|
+
preview?: PreviewResult;
|
|
28
|
+
} | {
|
|
29
|
+
type: 'preview';
|
|
30
|
+
preview: PreviewResult;
|
|
31
|
+
requiresApproval: boolean;
|
|
32
|
+
} | {
|
|
33
|
+
type: 'error';
|
|
34
|
+
error: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Chat engine options
|
|
38
|
+
*/
|
|
39
|
+
export interface ChatEngineOptions {
|
|
40
|
+
/** LLM provider */
|
|
41
|
+
provider: LLMProvider;
|
|
42
|
+
/** Abilities executor */
|
|
43
|
+
executor: AbilitiesExecutor;
|
|
44
|
+
/** Maximum tool calls per turn */
|
|
45
|
+
maxToolCallsPerTurn?: number;
|
|
46
|
+
/** Maximum JSON parse retries */
|
|
47
|
+
maxParseRetries?: number;
|
|
48
|
+
/** Model to use */
|
|
49
|
+
model?: string;
|
|
50
|
+
/** Temperature */
|
|
51
|
+
temperature?: number;
|
|
52
|
+
/** System prompt config */
|
|
53
|
+
promptConfig?: Partial<SystemPromptConfig>;
|
|
54
|
+
/** Maximum messages to keep in context (excluding system prompt). undefined = no limit */
|
|
55
|
+
maxContextMessages?: number;
|
|
56
|
+
/** Maximum estimated tokens in context. Reserved for future use. */
|
|
57
|
+
maxContextTokens?: number;
|
|
58
|
+
/** Whether to use streaming responses (default: false) */
|
|
59
|
+
stream?: boolean;
|
|
60
|
+
/** Callback for streaming content chunks (called as content arrives) */
|
|
61
|
+
onStreamChunk?: (content: string) => void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Chat engine class
|
|
65
|
+
*
|
|
66
|
+
* SAFETY: All execution flows through SafetyController and AbilitiesExecutor.
|
|
67
|
+
* ChatEngine never bypasses safety checks.
|
|
68
|
+
*
|
|
69
|
+
* Context window management: The engine maintains a sliding window of messages
|
|
70
|
+
* to prevent unbounded memory growth. The system prompt is always preserved,
|
|
71
|
+
* and message coherence (user-assistant pairs, tool call-result pairs) is maintained.
|
|
72
|
+
*/
|
|
73
|
+
export declare class ChatEngine {
|
|
74
|
+
private readonly provider;
|
|
75
|
+
private readonly executor;
|
|
76
|
+
private readonly safetyController;
|
|
77
|
+
private readonly maxToolCallsPerTurn;
|
|
78
|
+
private readonly maxParseRetries;
|
|
79
|
+
private readonly model;
|
|
80
|
+
private readonly temperature;
|
|
81
|
+
private readonly promptConfig;
|
|
82
|
+
private readonly maxContextMessages;
|
|
83
|
+
private readonly stream;
|
|
84
|
+
private readonly onStreamChunk?;
|
|
85
|
+
private messages;
|
|
86
|
+
private abilities;
|
|
87
|
+
private tools;
|
|
88
|
+
private pendingPreview;
|
|
89
|
+
private initialized;
|
|
90
|
+
constructor(options: ChatEngineOptions);
|
|
91
|
+
/**
|
|
92
|
+
* Initialize the chat session
|
|
93
|
+
*/
|
|
94
|
+
initialize(): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Send a user message and process the response
|
|
97
|
+
*/
|
|
98
|
+
sendMessage(userMessage: string): Promise<ChatResponse[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Handle response to a pending preview
|
|
101
|
+
*/
|
|
102
|
+
private handlePreviewResponse;
|
|
103
|
+
/**
|
|
104
|
+
* Process LLM response with tool calling loop
|
|
105
|
+
*/
|
|
106
|
+
private processLLMResponse;
|
|
107
|
+
/**
|
|
108
|
+
* Execute a tool with safety checks
|
|
109
|
+
*
|
|
110
|
+
* CRITICAL: All execution goes through SafetyController
|
|
111
|
+
*/
|
|
112
|
+
private executeTool;
|
|
113
|
+
/**
|
|
114
|
+
* Execute destructive action with preview
|
|
115
|
+
*/
|
|
116
|
+
private executeWithPreview;
|
|
117
|
+
/**
|
|
118
|
+
* Accumulate streaming chunks into a complete LLM response.
|
|
119
|
+
* This method consumes an AsyncGenerator<StreamChunk> and reconstructs
|
|
120
|
+
* a complete LLMResponse compatible with the existing parseResponse() logic.
|
|
121
|
+
*
|
|
122
|
+
* @param stream - The streaming generator from the provider
|
|
123
|
+
* @returns A complete LLMResponse with accumulated content and tool calls
|
|
124
|
+
*/
|
|
125
|
+
private accumulateStream;
|
|
126
|
+
/**
|
|
127
|
+
* Check if there's a pending preview awaiting approval
|
|
128
|
+
*/
|
|
129
|
+
hasPendingPreview(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Get the pending preview
|
|
132
|
+
*/
|
|
133
|
+
getPendingPreview(): PreviewResult | null;
|
|
134
|
+
/**
|
|
135
|
+
* Cancel pending preview
|
|
136
|
+
*/
|
|
137
|
+
cancelPendingPreview(): void;
|
|
138
|
+
/**
|
|
139
|
+
* Get conversation history (for debugging)
|
|
140
|
+
*/
|
|
141
|
+
getHistory(): Message[];
|
|
142
|
+
/**
|
|
143
|
+
* Clear conversation history (keep system prompt)
|
|
144
|
+
*/
|
|
145
|
+
clearHistory(): void;
|
|
146
|
+
/**
|
|
147
|
+
* Get message count (excluding system prompt)
|
|
148
|
+
*/
|
|
149
|
+
private getMessageCount;
|
|
150
|
+
/**
|
|
151
|
+
* Estimate tokens for a set of messages using character count as a rough proxy.
|
|
152
|
+
* Uses character_count / 4 as a heuristic (common approximation for English text).
|
|
153
|
+
*
|
|
154
|
+
* NOTE: This is a rough estimate. Actual token counts from LLMResponse.usage
|
|
155
|
+
* are more accurate when available.
|
|
156
|
+
*
|
|
157
|
+
* @param messages - Messages to estimate tokens for
|
|
158
|
+
* @returns Estimated token count
|
|
159
|
+
*/
|
|
160
|
+
private estimateTokens;
|
|
161
|
+
/**
|
|
162
|
+
* Check if context truncation should occur based on message count limits.
|
|
163
|
+
* Token-based limits are reserved for future implementation.
|
|
164
|
+
*
|
|
165
|
+
* @returns true if truncation should occur, false if:
|
|
166
|
+
* - maxContextMessages is undefined (no limit)
|
|
167
|
+
* - maxContextMessages is 0 (explicit unlimited)
|
|
168
|
+
* - message count is within limit
|
|
169
|
+
*/
|
|
170
|
+
private shouldTruncate;
|
|
171
|
+
/**
|
|
172
|
+
* Find the index where truncation should start, respecting message boundaries.
|
|
173
|
+
* This ensures we keep complete user-assistant exchanges and tool call-result pairs.
|
|
174
|
+
*
|
|
175
|
+
* @returns Index in the messages array where truncation should start (exclusive of system prompt)
|
|
176
|
+
*/
|
|
177
|
+
private findTruncationPoint;
|
|
178
|
+
/**
|
|
179
|
+
* Truncate message history using a sliding window approach.
|
|
180
|
+
* Preserves:
|
|
181
|
+
* - System prompt (always first message)
|
|
182
|
+
* - Messages since pending preview (if any)
|
|
183
|
+
* - Most recent N messages where N = maxContextMessages
|
|
184
|
+
* - Complete message exchanges (user-assistant, tool call-result pairs)
|
|
185
|
+
*/
|
|
186
|
+
private truncateHistory;
|
|
187
|
+
/**
|
|
188
|
+
* Get context window statistics for monitoring.
|
|
189
|
+
*
|
|
190
|
+
* @returns Object with current message count, max limit, and estimated tokens
|
|
191
|
+
*/
|
|
192
|
+
getContextStats(): {
|
|
193
|
+
messageCount: number;
|
|
194
|
+
maxMessages: number | undefined;
|
|
195
|
+
estimatedTokens: number;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Get loaded abilities
|
|
199
|
+
*/
|
|
200
|
+
getAbilities(): Ability[];
|
|
201
|
+
/**
|
|
202
|
+
* Get provider info
|
|
203
|
+
*/
|
|
204
|
+
getProviderInfo(): {
|
|
205
|
+
name: string;
|
|
206
|
+
model: string;
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Create a chat engine
|
|
211
|
+
*/
|
|
212
|
+
export declare function createChatEngine(options: ChatEngineOptions): ChatEngine;
|
|
213
|
+
//# sourceMappingURL=chat-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-engine.d.ts","sourceRoot":"","sources":["../../src/chat/chat-engine.ts"],"names":[],"mappings":"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"}
|