agent-world 0.13.0 → 0.15.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/README.md +90 -17
- package/dist/cli/commands.d.ts +7 -1
- package/dist/cli/commands.js +27 -10
- package/dist/cli/hitl.d.ts +4 -1
- package/dist/cli/hitl.js +55 -20
- package/dist/cli/index.js +249 -97
- package/dist/cli/system-events.d.ts +27 -0
- package/dist/cli/system-events.js +63 -0
- package/dist/core/activity-tracker.d.ts +26 -0
- package/dist/core/activity-tracker.d.ts.map +1 -1
- package/dist/core/activity-tracker.js +21 -4
- package/dist/core/activity-tracker.js.map +1 -1
- package/dist/core/anthropic-direct.d.ts +2 -0
- package/dist/core/anthropic-direct.d.ts.map +1 -1
- package/dist/core/anthropic-direct.js +43 -1
- package/dist/core/anthropic-direct.js.map +1 -1
- package/dist/core/chat-constants.d.ts +12 -0
- package/dist/core/chat-constants.d.ts.map +1 -1
- package/dist/core/chat-constants.js +5 -0
- package/dist/core/chat-constants.js.map +1 -1
- package/dist/core/create-agent-tool.d.ts +5 -0
- package/dist/core/create-agent-tool.d.ts.map +1 -1
- package/dist/core/create-agent-tool.js +57 -34
- package/dist/core/create-agent-tool.js.map +1 -1
- package/dist/core/events/index.d.ts +5 -2
- package/dist/core/events/index.d.ts.map +1 -1
- package/dist/core/events/index.js +5 -2
- package/dist/core/events/index.js.map +1 -1
- package/dist/core/events/memory-manager.d.ts +26 -1
- package/dist/core/events/memory-manager.d.ts.map +1 -1
- package/dist/core/events/memory-manager.js +877 -72
- package/dist/core/events/memory-manager.js.map +1 -1
- package/dist/core/events/orchestrator.d.ts +8 -0
- package/dist/core/events/orchestrator.d.ts.map +1 -1
- package/dist/core/events/orchestrator.js +203 -36
- package/dist/core/events/orchestrator.js.map +1 -1
- package/dist/core/events/persistence.d.ts +21 -14
- package/dist/core/events/persistence.d.ts.map +1 -1
- package/dist/core/events/persistence.js +100 -35
- package/dist/core/events/persistence.js.map +1 -1
- package/dist/core/events/publishers.d.ts +13 -7
- package/dist/core/events/publishers.d.ts.map +1 -1
- package/dist/core/events/publishers.js +53 -37
- package/dist/core/events/publishers.js.map +1 -1
- package/dist/core/events/subscribers.d.ts +17 -14
- package/dist/core/events/subscribers.d.ts.map +1 -1
- package/dist/core/events/subscribers.js +61 -148
- package/dist/core/events/subscribers.js.map +1 -1
- package/dist/core/events/title-scheduler.d.ts +27 -0
- package/dist/core/events/title-scheduler.d.ts.map +1 -0
- package/dist/core/events/title-scheduler.js +135 -0
- package/dist/core/events/title-scheduler.js.map +1 -0
- package/dist/core/events/tool-bridge-logging.d.ts +4 -1
- package/dist/core/events/tool-bridge-logging.d.ts.map +1 -1
- package/dist/core/events/tool-bridge-logging.js +112 -13
- package/dist/core/events/tool-bridge-logging.js.map +1 -1
- package/dist/core/events-metadata.d.ts.map +1 -1
- package/dist/core/events-metadata.js +8 -4
- package/dist/core/events-metadata.js.map +1 -1
- package/dist/core/export.d.ts +1 -1
- package/dist/core/export.d.ts.map +1 -1
- package/dist/core/export.js +2 -15
- package/dist/core/export.js.map +1 -1
- package/dist/core/feature-path-logging.d.ts +50 -0
- package/dist/core/feature-path-logging.d.ts.map +1 -0
- package/dist/core/feature-path-logging.js +130 -0
- package/dist/core/feature-path-logging.js.map +1 -0
- package/dist/core/file-tools.d.ts +57 -1
- package/dist/core/file-tools.d.ts.map +1 -1
- package/dist/core/file-tools.js +329 -29
- package/dist/core/file-tools.js.map +1 -1
- package/dist/core/google-direct.d.ts +6 -1
- package/dist/core/google-direct.d.ts.map +1 -1
- package/dist/core/google-direct.js +76 -7
- package/dist/core/google-direct.js.map +1 -1
- package/dist/core/heartbeat.d.ts +34 -0
- package/dist/core/heartbeat.d.ts.map +1 -0
- package/dist/core/heartbeat.js +153 -0
- package/dist/core/heartbeat.js.map +1 -0
- package/dist/core/hitl-tool.d.ts +6 -12
- package/dist/core/hitl-tool.d.ts.map +1 -1
- package/dist/core/hitl-tool.js +66 -88
- package/dist/core/hitl-tool.js.map +1 -1
- package/dist/core/hitl.d.ts +61 -4
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +324 -60
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/index.d.ts +11 -7
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +10 -6
- package/dist/core/index.js.map +1 -1
- package/dist/core/llm-manager.d.ts +15 -0
- package/dist/core/llm-manager.d.ts.map +1 -1
- package/dist/core/llm-manager.js +325 -40
- package/dist/core/llm-manager.js.map +1 -1
- package/dist/core/load-skill-tool.d.ts +36 -3
- package/dist/core/load-skill-tool.d.ts.map +1 -1
- package/dist/core/load-skill-tool.js +807 -93
- package/dist/core/load-skill-tool.js.map +1 -1
- package/dist/core/logger.d.ts +14 -0
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +15 -0
- package/dist/core/logger.js.map +1 -1
- package/dist/core/managers.d.ts +18 -50
- package/dist/core/managers.d.ts.map +1 -1
- package/dist/core/managers.js +340 -502
- package/dist/core/managers.js.map +1 -1
- package/dist/core/mcp-server-registry.d.ts +16 -1
- package/dist/core/mcp-server-registry.d.ts.map +1 -1
- package/dist/core/mcp-server-registry.js +162 -12
- package/dist/core/mcp-server-registry.js.map +1 -1
- package/dist/core/message-cutoff.d.ts +29 -0
- package/dist/core/message-cutoff.d.ts.map +1 -0
- package/dist/core/message-cutoff.js +63 -0
- package/dist/core/message-cutoff.js.map +1 -0
- package/dist/core/message-edit-manager.d.ts +54 -0
- package/dist/core/message-edit-manager.d.ts.map +1 -0
- package/dist/core/message-edit-manager.js +602 -0
- package/dist/core/message-edit-manager.js.map +1 -0
- package/dist/core/message-prep.d.ts +2 -0
- package/dist/core/message-prep.d.ts.map +1 -1
- package/dist/core/message-prep.js +39 -12
- package/dist/core/message-prep.js.map +1 -1
- package/dist/core/message-processing-control.d.ts +1 -0
- package/dist/core/message-processing-control.d.ts.map +1 -1
- package/dist/core/message-processing-control.js +23 -6
- package/dist/core/message-processing-control.js.map +1 -1
- package/dist/core/openai-direct.d.ts +9 -3
- package/dist/core/openai-direct.d.ts.map +1 -1
- package/dist/core/openai-direct.js +267 -33
- package/dist/core/openai-direct.js.map +1 -1
- package/dist/core/optional-tracers/opik-runtime.d.ts +32 -0
- package/dist/core/optional-tracers/opik-runtime.d.ts.map +1 -0
- package/dist/core/optional-tracers/opik-runtime.js +141 -0
- package/dist/core/optional-tracers/opik-runtime.js.map +1 -0
- package/dist/core/queue-manager.d.ts +84 -0
- package/dist/core/queue-manager.d.ts.map +1 -0
- package/dist/core/queue-manager.js +814 -0
- package/dist/core/queue-manager.js.map +1 -0
- package/dist/core/reasoning-controls.d.ts +30 -0
- package/dist/core/reasoning-controls.d.ts.map +1 -0
- package/dist/core/reasoning-controls.js +118 -0
- package/dist/core/reasoning-controls.js.map +1 -0
- package/dist/core/reliability-config.d.ts +82 -0
- package/dist/core/reliability-config.d.ts.map +1 -0
- package/dist/core/reliability-config.js +106 -0
- package/dist/core/reliability-config.js.map +1 -0
- package/dist/core/reliability-runtime.d.ts +53 -0
- package/dist/core/reliability-runtime.d.ts.map +1 -0
- package/dist/core/reliability-runtime.js +92 -0
- package/dist/core/reliability-runtime.js.map +1 -0
- package/dist/core/security/guardrails.d.ts +21 -0
- package/dist/core/security/guardrails.d.ts.map +1 -0
- package/dist/core/security/guardrails.js +111 -0
- package/dist/core/security/guardrails.js.map +1 -0
- package/dist/core/send-message-tool.d.ts +79 -0
- package/dist/core/send-message-tool.d.ts.map +1 -0
- package/dist/core/send-message-tool.js +222 -0
- package/dist/core/send-message-tool.js.map +1 -0
- package/dist/core/shell-cmd-tool.d.ts +82 -1
- package/dist/core/shell-cmd-tool.d.ts.map +1 -1
- package/dist/core/shell-cmd-tool.js +854 -42
- package/dist/core/shell-cmd-tool.js.map +1 -1
- package/dist/core/skill-registry.d.ts +2 -0
- package/dist/core/skill-registry.d.ts.map +1 -1
- package/dist/core/skill-registry.js +52 -2
- package/dist/core/skill-registry.js.map +1 -1
- package/dist/core/storage/eventStorage/fileEventStorage.d.ts +5 -0
- package/dist/core/storage/eventStorage/fileEventStorage.d.ts.map +1 -1
- package/dist/core/storage/eventStorage/fileEventStorage.js +61 -0
- package/dist/core/storage/eventStorage/fileEventStorage.js.map +1 -1
- package/dist/core/storage/eventStorage/memoryEventStorage.d.ts +5 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.d.ts.map +1 -1
- package/dist/core/storage/eventStorage/memoryEventStorage.js +34 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.js.map +1 -1
- package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts +1 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts.map +1 -1
- package/dist/core/storage/eventStorage/sqliteEventStorage.js +19 -2
- package/dist/core/storage/eventStorage/sqliteEventStorage.js.map +1 -1
- package/dist/core/storage/eventStorage/types.d.ts +6 -0
- package/dist/core/storage/eventStorage/types.d.ts.map +1 -1
- package/dist/core/storage/eventStorage/types.js +1 -0
- package/dist/core/storage/eventStorage/types.js.map +1 -1
- package/dist/core/storage/eventStorage/validation.d.ts.map +1 -1
- package/dist/core/storage/eventStorage/validation.js +2 -1
- package/dist/core/storage/eventStorage/validation.js.map +1 -1
- package/dist/core/storage/github-world-import.d.ts +84 -0
- package/dist/core/storage/github-world-import.d.ts.map +1 -0
- package/dist/core/storage/github-world-import.js +365 -0
- package/dist/core/storage/github-world-import.js.map +1 -0
- package/dist/core/storage/memory-storage.d.ts +19 -8
- package/dist/core/storage/memory-storage.d.ts.map +1 -1
- package/dist/core/storage/memory-storage.js +147 -49
- package/dist/core/storage/memory-storage.js.map +1 -1
- package/dist/core/storage/queue-storage.d.ts +1 -0
- package/dist/core/storage/queue-storage.d.ts.map +1 -1
- package/dist/core/storage/queue-storage.js +3 -2
- package/dist/core/storage/queue-storage.js.map +1 -1
- package/dist/core/storage/sqlite-storage.d.ts +14 -9
- package/dist/core/storage/sqlite-storage.d.ts.map +1 -1
- package/dist/core/storage/sqlite-storage.js +131 -154
- package/dist/core/storage/sqlite-storage.js.map +1 -1
- package/dist/core/storage/storage-factory.d.ts +3 -0
- package/dist/core/storage/storage-factory.d.ts.map +1 -1
- package/dist/core/storage/storage-factory.js +175 -89
- package/dist/core/storage/storage-factory.js.map +1 -1
- package/dist/core/storage/world-storage.d.ts +1 -1
- package/dist/core/storage/world-storage.d.ts.map +1 -1
- package/dist/core/storage/world-storage.js +5 -1
- package/dist/core/storage/world-storage.js.map +1 -1
- package/dist/core/storage-init.d.ts +11 -0
- package/dist/core/storage-init.d.ts.map +1 -0
- package/dist/core/storage-init.js +122 -0
- package/dist/core/storage-init.js.map +1 -0
- package/dist/core/subscription.d.ts +8 -1
- package/dist/core/subscription.d.ts.map +1 -1
- package/dist/core/subscription.js +130 -23
- package/dist/core/subscription.js.map +1 -1
- package/dist/core/tool-approval.d.ts +45 -0
- package/dist/core/tool-approval.d.ts.map +1 -0
- package/dist/core/tool-approval.js +223 -0
- package/dist/core/tool-approval.js.map +1 -0
- package/dist/core/tool-execution-envelope.d.ts +87 -0
- package/dist/core/tool-execution-envelope.d.ts.map +1 -0
- package/dist/core/tool-execution-envelope.js +168 -0
- package/dist/core/tool-execution-envelope.js.map +1 -0
- package/dist/core/tool-utils.d.ts +7 -2
- package/dist/core/tool-utils.d.ts.map +1 -1
- package/dist/core/tool-utils.js +81 -17
- package/dist/core/tool-utils.js.map +1 -1
- package/dist/core/types.d.ts +67 -19
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils.d.ts +7 -0
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +71 -21
- package/dist/core/utils.js.map +1 -1
- package/dist/core/web-fetch-tool.d.ts +72 -0
- package/dist/core/web-fetch-tool.d.ts.map +1 -0
- package/dist/core/web-fetch-tool.js +491 -0
- package/dist/core/web-fetch-tool.js.map +1 -0
- package/dist/core/world-registry.d.ts +84 -0
- package/dist/core/world-registry.d.ts.map +1 -0
- package/dist/core/world-registry.js +247 -0
- package/dist/core/world-registry.js.map +1 -0
- package/dist/public/assets/index-Be-1xtV-.js +104 -0
- package/dist/public/assets/index-tsDdiXDU.css +1 -0
- package/dist/public/index.html +2 -2
- package/dist/public/mcp-sandbox-proxy.html +148 -0
- package/dist/server/api.js +260 -18
- package/dist/server/error-response.d.ts +27 -0
- package/dist/server/error-response.js +77 -0
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.js +6 -2
- package/dist/server/sse-handler.d.ts +11 -1
- package/dist/server/sse-handler.js +194 -34
- package/migrations/0015_add_message_queue.sql +36 -0
- package/migrations/0016_add_world_heartbeat.sql +13 -0
- package/migrations/0017_add_title_provenance.sql +7 -0
- package/package.json +31 -10
- package/dist/public/assets/index-BW41BxMy.css +0 -1
- package/dist/public/assets/index-kO6UJFwK.js +0 -96
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
* - NOT used directly by llm-manager.ts (receives pre-filtered messages from utils.ts)
|
|
16
16
|
*
|
|
17
17
|
* Changes:
|
|
18
|
+
* - 2026-03-06: Unwrap persisted tool execution envelopes so only canonical `result` content flows back into LLM continuation.
|
|
19
|
+
* - 2026-02-28: Added canonical `llm.prep` category emission while preserving legacy `llm.message-prep` logs for migration compatibility.
|
|
18
20
|
* - 2026-02-11: Added unresolved-tool-call cleanup.
|
|
19
21
|
* - Assistant `tool_calls` are pruned to only IDs that have matching tool-result messages.
|
|
20
22
|
* - Prevents OpenAI 400 errors from legacy/incomplete tool-call history.
|
|
@@ -27,7 +29,28 @@
|
|
|
27
29
|
* - 2025-11-06: Consolidated with utils.ts - renamed to filterClientSideMessages, added alias
|
|
28
30
|
*/
|
|
29
31
|
import { createCategoryLogger } from './logger.js';
|
|
30
|
-
|
|
32
|
+
import { parseToolExecutionEnvelopeContent, stringifyToolExecutionResult } from './tool-execution-envelope.js';
|
|
33
|
+
const loggerLegacy = createCategoryLogger('llm.message-prep');
|
|
34
|
+
const loggerCanonical = createCategoryLogger('llm.prep');
|
|
35
|
+
function logPrep(level, message, data) {
|
|
36
|
+
if (level === 'debug') {
|
|
37
|
+
loggerCanonical.debug(message, data);
|
|
38
|
+
loggerLegacy.debug(message, data);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (level === 'info') {
|
|
42
|
+
loggerCanonical.info(message, data);
|
|
43
|
+
loggerLegacy.info(message, data);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (level === 'warn') {
|
|
47
|
+
loggerCanonical.warn(message, data);
|
|
48
|
+
loggerLegacy.warn(message, data);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
loggerCanonical.error(message, data);
|
|
52
|
+
loggerLegacy.error(message, data);
|
|
53
|
+
}
|
|
31
54
|
/**
|
|
32
55
|
* Parse message content to detect enhanced string format and convert to OpenAI ChatMessage.
|
|
33
56
|
*
|
|
@@ -66,7 +89,7 @@ export function parseMessageContent(content, defaultRole = 'user') {
|
|
|
66
89
|
// Enhanced format: tool_result
|
|
67
90
|
if (parsed.__type === 'tool_result') {
|
|
68
91
|
if (!parsed.tool_call_id) {
|
|
69
|
-
|
|
92
|
+
logPrep('warn', 'Enhanced format missing tool_call_id, falling back to default role', {
|
|
70
93
|
parsed
|
|
71
94
|
});
|
|
72
95
|
return {
|
|
@@ -77,7 +100,7 @@ export function parseMessageContent(content, defaultRole = 'user') {
|
|
|
77
100
|
}
|
|
78
101
|
};
|
|
79
102
|
}
|
|
80
|
-
|
|
103
|
+
logPrep('debug', 'Parsed enhanced tool_result format', {
|
|
81
104
|
toolCallId: parsed.tool_call_id,
|
|
82
105
|
agentId: parsed.agentId,
|
|
83
106
|
contentLength: parsed.content?.length || 0
|
|
@@ -93,11 +116,11 @@ export function parseMessageContent(content, defaultRole = 'user') {
|
|
|
93
116
|
};
|
|
94
117
|
}
|
|
95
118
|
// JSON without __type marker - treat as regular text
|
|
96
|
-
|
|
119
|
+
logPrep('debug', 'JSON without __type marker, treating as regular content');
|
|
97
120
|
}
|
|
98
121
|
catch {
|
|
99
122
|
// Not JSON - regular text
|
|
100
|
-
|
|
123
|
+
logPrep('debug', 'Non-JSON content, using default role', { role: defaultRole });
|
|
101
124
|
}
|
|
102
125
|
// Default: regular text message
|
|
103
126
|
return {
|
|
@@ -148,7 +171,7 @@ export function filterClientSideMessages(messages) {
|
|
|
148
171
|
filteredToolCalls.forEach(tc => validToolCallIds.add(tc.id));
|
|
149
172
|
// If all tool calls were client.* and no content, skip this message
|
|
150
173
|
if (filteredToolCalls.length === 0 && !clonedMessage.content) {
|
|
151
|
-
|
|
174
|
+
logPrep('debug', 'Dropping assistant message with only client.* tool calls', {
|
|
152
175
|
droppedToolCalls: clonedMessage.tool_calls.map(tc => tc.function.name),
|
|
153
176
|
droppedToolCallIds: Array.from(removedToolCallIds)
|
|
154
177
|
});
|
|
@@ -160,12 +183,12 @@ export function filterClientSideMessages(messages) {
|
|
|
160
183
|
if (clonedMessage.role === 'tool') {
|
|
161
184
|
// Drop tool messages without tool_call_id (invalid data)
|
|
162
185
|
if (!clonedMessage.tool_call_id) {
|
|
163
|
-
|
|
186
|
+
logPrep('debug', 'Dropping tool message without tool_call_id (invalid data)');
|
|
164
187
|
continue;
|
|
165
188
|
}
|
|
166
189
|
// Drop tool messages referencing removed client.* tool calls
|
|
167
190
|
if (removedToolCallIds.has(clonedMessage.tool_call_id)) {
|
|
168
|
-
|
|
191
|
+
logPrep('debug', 'Dropping orphaned tool message for removed client.* tool call', {
|
|
169
192
|
toolCallId: clonedMessage.tool_call_id
|
|
170
193
|
});
|
|
171
194
|
continue;
|
|
@@ -173,11 +196,15 @@ export function filterClientSideMessages(messages) {
|
|
|
173
196
|
// Drop tool messages that don't have a valid preceding tool_call
|
|
174
197
|
// This handles legacy data where tool_calls weren't properly saved
|
|
175
198
|
if (!validToolCallIds.has(clonedMessage.tool_call_id)) {
|
|
176
|
-
|
|
199
|
+
logPrep('debug', 'Dropping tool message with no matching tool_call (legacy data)', {
|
|
177
200
|
toolCallId: clonedMessage.tool_call_id
|
|
178
201
|
});
|
|
179
202
|
continue;
|
|
180
203
|
}
|
|
204
|
+
const envelope = parseToolExecutionEnvelopeContent(clonedMessage.content || '');
|
|
205
|
+
if (envelope) {
|
|
206
|
+
clonedMessage.content = stringifyToolExecutionResult(envelope.result);
|
|
207
|
+
}
|
|
181
208
|
}
|
|
182
209
|
prepared.push(clonedMessage);
|
|
183
210
|
}
|
|
@@ -198,14 +225,14 @@ export function filterClientSideMessages(messages) {
|
|
|
198
225
|
finalized.push(message);
|
|
199
226
|
continue;
|
|
200
227
|
}
|
|
201
|
-
|
|
228
|
+
logPrep('debug', 'Pruning unresolved assistant tool_calls from message history', {
|
|
202
229
|
removedCount: message.tool_calls.length - resolvedToolCalls.length,
|
|
203
230
|
removedToolCallIds: message.tool_calls
|
|
204
231
|
.filter((toolCall) => !answeredToolCallIds.has(toolCall.id))
|
|
205
232
|
.map((toolCall) => toolCall.id)
|
|
206
233
|
});
|
|
207
234
|
if (resolvedToolCalls.length === 0 && !message.content) {
|
|
208
|
-
|
|
235
|
+
logPrep('debug', 'Dropping assistant message with only unresolved tool_calls');
|
|
209
236
|
continue;
|
|
210
237
|
}
|
|
211
238
|
finalized.push({
|
|
@@ -213,7 +240,7 @@ export function filterClientSideMessages(messages) {
|
|
|
213
240
|
tool_calls: resolvedToolCalls
|
|
214
241
|
});
|
|
215
242
|
}
|
|
216
|
-
|
|
243
|
+
logPrep('debug', `Prepared ${finalized.length}/${messages.length} messages for LLM consumption`, {
|
|
217
244
|
removedToolCallIds: Array.from(removedToolCallIds),
|
|
218
245
|
validToolCallIds: Array.from(validToolCallIds),
|
|
219
246
|
answeredToolCallIds: Array.from(answeredToolCallIds)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-prep.js","sourceRoot":"","sources":["../../core/message-prep.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"message-prep.js","sourceRoot":"","sources":["../../core/message-prep.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* - Existing persisted output is preserved; only in-flight work is interrupted.
|
|
17
17
|
*
|
|
18
18
|
* Recent Changes:
|
|
19
|
+
* - 2026-03-04: Added stale-handle self-healing in `hasActiveChatMessageProcessing()` to clear orphaned chat locks.
|
|
19
20
|
* - 2026-02-13: Added chat-scoped processing handle registry with abort signals so stop requests also prevent follow-up continuation work.
|
|
20
21
|
* - 2026-02-14: Added `hasActiveChatMessageProcessing()` for chat-scoped lock checks (e.g., message edit guards).
|
|
21
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-processing-control.d.ts","sourceRoot":"","sources":["../../core/message-processing-control.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"message-processing-control.d.ts","sourceRoot":"","sources":["../../core/message-processing-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAiDH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,2BAA2B,CA2B7B;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAwBvF;AAED,wBAAgB,+BAA+B,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAI1E;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOxE;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,mBAAmB,CAAC;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE;QACH,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,2BAA2B,CA8B7B"}
|
|
@@ -16,12 +16,21 @@
|
|
|
16
16
|
* - Existing persisted output is preserved; only in-flight work is interrupted.
|
|
17
17
|
*
|
|
18
18
|
* Recent Changes:
|
|
19
|
+
* - 2026-03-04: Added stale-handle self-healing in `hasActiveChatMessageProcessing()` to clear orphaned chat locks.
|
|
19
20
|
* - 2026-02-13: Added chat-scoped processing handle registry with abort signals so stop requests also prevent follow-up continuation work.
|
|
20
21
|
* - 2026-02-14: Added `hasActiveChatMessageProcessing()` for chat-scoped lock checks (e.g., message edit guards).
|
|
21
22
|
*/
|
|
22
23
|
import { cancelLLMCallsForChat } from './llm-manager.js';
|
|
23
24
|
import { stopShellCommandsForChat } from './shell-cmd-tool.js';
|
|
24
25
|
import { generateId } from './utils.js';
|
|
26
|
+
const DEFAULT_STALE_PROCESSING_TTL_MS = 10 * 60 * 1000;
|
|
27
|
+
const ACTIVE_PROCESSING_STALE_TTL_MS = (() => {
|
|
28
|
+
const configured = Number.parseInt(String(process.env.AGENT_WORLD_ACTIVE_PROCESSING_TTL_MS || ''), 10);
|
|
29
|
+
if (!Number.isFinite(configured) || configured <= 0) {
|
|
30
|
+
return DEFAULT_STALE_PROCESSING_TTL_MS;
|
|
31
|
+
}
|
|
32
|
+
return Math.max(configured, 1000);
|
|
33
|
+
})();
|
|
25
34
|
const activeProcessingByChat = new Map();
|
|
26
35
|
function toChatKey(worldId, chatId) {
|
|
27
36
|
return `${worldId}::${chatId}`;
|
|
@@ -52,7 +61,10 @@ export function beginChatMessageProcessing(worldId, chatId) {
|
|
|
52
61
|
const operationId = generateId();
|
|
53
62
|
const controller = new AbortController();
|
|
54
63
|
const operations = getOrCreateChatProcessingMap(worldId, chatId);
|
|
55
|
-
operations.set(operationId,
|
|
64
|
+
operations.set(operationId, {
|
|
65
|
+
controller,
|
|
66
|
+
startedAtMs: Date.now(),
|
|
67
|
+
});
|
|
56
68
|
let completed = false;
|
|
57
69
|
return {
|
|
58
70
|
worldId,
|
|
@@ -79,8 +91,13 @@ export function hasActiveChatMessageProcessing(worldId, chatId) {
|
|
|
79
91
|
if (!operations || operations.size === 0) {
|
|
80
92
|
return false;
|
|
81
93
|
}
|
|
82
|
-
|
|
83
|
-
|
|
94
|
+
const nowMs = Date.now();
|
|
95
|
+
for (const [operationId, handle] of operations.entries()) {
|
|
96
|
+
const isStale = nowMs - handle.startedAtMs > ACTIVE_PROCESSING_STALE_TTL_MS;
|
|
97
|
+
if (isStale && !handle.controller.signal.aborted) {
|
|
98
|
+
handle.controller.abort();
|
|
99
|
+
}
|
|
100
|
+
if (handle.controller.signal.aborted || isStale) {
|
|
84
101
|
operations.delete(operationId);
|
|
85
102
|
}
|
|
86
103
|
}
|
|
@@ -111,10 +128,10 @@ export function stopMessageProcessing(worldId, chatId) {
|
|
|
111
128
|
const processingOperations = activeProcessingByChat.get(chatKey);
|
|
112
129
|
let abortedProcessing = 0;
|
|
113
130
|
if (processingOperations && processingOperations.size > 0) {
|
|
114
|
-
for (const
|
|
115
|
-
if (controller.signal.aborted)
|
|
131
|
+
for (const handle of processingOperations.values()) {
|
|
132
|
+
if (handle.controller.signal.aborted)
|
|
116
133
|
continue;
|
|
117
|
-
controller.abort();
|
|
134
|
+
handle.controller.abort();
|
|
118
135
|
abortedProcessing += 1;
|
|
119
136
|
}
|
|
120
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-processing-control.js","sourceRoot":"","sources":["../../core/message-processing-control.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"message-processing-control.js","sourceRoot":"","sources":["../../core/message-processing-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,10 +27,13 @@
|
|
|
27
27
|
* - NO event emission, NO storage, NO tool execution
|
|
28
28
|
*
|
|
29
29
|
* Recent Changes:
|
|
30
|
+
* - 2026-03-13: Switched world reasoning overrides to the `reasoning` request object with `default` omission and explicit `none|low|medium|high` effort values.
|
|
31
|
+
* - 2026-03-12: Reclassified streaming abort logs as info-level cancellations to suppress expected stop/edit noise.
|
|
32
|
+
* - 2026-02-28: Added canonical `llm.openai` category emission while preserving legacy `openai` logs during migration.
|
|
33
|
+
* - 2026-02-27: Normalized overlong tool-call IDs to OpenAI's 40-char limit and preserved assistant/tool ID linkage in outbound message conversion.
|
|
30
34
|
* - 2026-02-16: Fixed streaming tool-call chunk merge to preserve delayed tool `id`/`name` fields across deltas.
|
|
31
35
|
* - 2026-02-13: Added abort-signal support for streaming and non-streaming calls to enable chat stop cancellation.
|
|
32
|
-
* - 2026-02-
|
|
33
|
-
* - 2026-02-07: Disabled tool definitions for Ollama provider requests
|
|
36
|
+
* - 2026-02-07: Tool definitions now attached for all providers including Ollama
|
|
34
37
|
* - 2025-11-09: Phase 2 - Removed ALL tool execution logic (~200 lines)
|
|
35
38
|
* - Provider is now a pure client - only API calls and data transformation
|
|
36
39
|
* - Returns LLMResponse interface with type discriminator
|
|
@@ -67,7 +70,10 @@ export declare function createOllamaClient(config: OllamaConfig): OpenAI;
|
|
|
67
70
|
* Streaming OpenAI response handler - Pure client (no tool execution)
|
|
68
71
|
* Returns LLMResponse with type='text' or type='tool_calls'
|
|
69
72
|
*/
|
|
70
|
-
export declare function streamOpenAIResponse(client: OpenAI, model: string, messages: ChatMessage[], agent: Agent, mcpTools: Record<string, any>, world: World, onChunk: (
|
|
73
|
+
export declare function streamOpenAIResponse(client: OpenAI, model: string, messages: ChatMessage[], agent: Agent, mcpTools: Record<string, any>, world: World, onChunk: (chunk: {
|
|
74
|
+
content?: string;
|
|
75
|
+
reasoningContent?: string;
|
|
76
|
+
}) => void, messageId: string, abortSignal?: AbortSignal): Promise<LLMResponse>;
|
|
71
77
|
/**
|
|
72
78
|
* Non-streaming OpenAI response handler - Pure client (no tool execution)
|
|
73
79
|
* Returns LLMResponse with type='text' or type='tool_calls'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-direct.d.ts","sourceRoot":"","sources":["../../core/openai-direct.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"openai-direct.d.ts","sourceRoot":"","sources":["../../core/openai-direct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAwB,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA4MnI;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAI/D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAYnE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAKnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAKzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAK/D;AAkHD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,EACzE,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,WAAW,CAAC,CA0JtB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,KAAK,EAAE,KAAK,EACZ,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,WAAW,CAAC,CA2GtB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,CAejF"}
|