agent-world 0.12.3 → 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 +105 -17
- package/dist/cli/commands.d.ts +7 -1
- package/dist/cli/commands.js +27 -10
- package/dist/cli/hitl.d.ts +9 -2
- package/dist/cli/hitl.js +61 -20
- package/dist/cli/index.js +250 -96
- package/dist/cli/system-events.d.ts +27 -0
- package/dist/cli/system-events.js +63 -0
- package/dist/core/activity-tracker.d.ts +38 -2
- package/dist/core/activity-tracker.d.ts.map +1 -1
- package/dist/core/activity-tracker.js +62 -9
- 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 +28 -25
- package/dist/core/create-agent-tool.d.ts.map +1 -1
- package/dist/core/create-agent-tool.js +264 -141
- 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 +214 -38
- 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 -61
- package/dist/core/events/persistence.js.map +1 -1
- package/dist/core/events/publishers.d.ts +13 -16
- package/dist/core/events/publishers.d.ts.map +1 -1
- package/dist/core/events/publishers.js +54 -55
- 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 +68 -147
- 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 +73 -0
- package/dist/core/hitl-tool.d.ts.map +1 -0
- package/dist/core/hitl-tool.js +284 -0
- package/dist/core/hitl-tool.js.map +1 -0
- package/dist/core/hitl.d.ts +85 -8
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +375 -61
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/index.d.ts +12 -7
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +11 -6
- package/dist/core/index.js.map +1 -1
- package/dist/core/llm-manager.d.ts +17 -0
- package/dist/core/llm-manager.d.ts.map +1 -1
- package/dist/core/llm-manager.js +335 -43
- 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 +41 -52
- package/dist/core/managers.d.ts.map +1 -1
- package/dist/core/managers.js +422 -533
- package/dist/core/managers.js.map +1 -1
- package/dist/core/mcp-server-registry.d.ts +19 -2
- package/dist/core/mcp-server-registry.d.ts.map +1 -1
- package/dist/core/mcp-server-registry.js +168 -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 +9 -2
- package/dist/core/tool-utils.d.ts.map +1 -1
- package/dist/core/tool-utils.js +122 -28
- package/dist/core/tool-utils.js.map +1 -1
- package/dist/core/types.d.ts +69 -36
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +3 -2
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils.d.ts +16 -0
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +99 -24
- 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 +288 -58
- 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 +13 -2
- package/dist/server/sse-handler.js +194 -26
- 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-BO20H4xt.js +0 -96
- package/dist/public/assets/index-ETY7W5_S.css +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Title Scheduler Module
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* - Encapsulate all chat-title auto-generation logic (Layer 4).
|
|
6
|
+
* - Previously embedded in subscribers.ts (Layer 6); extracted so persistence.ts (Layer 4) can
|
|
7
|
+
* call title-scheduling directly without a cross-layer import violation.
|
|
8
|
+
*
|
|
9
|
+
* Key Features:
|
|
10
|
+
* - Idle-triggered title generation on world activity events.
|
|
11
|
+
* - In-flight deduplication and compare-and-set storage commit.
|
|
12
|
+
* - World teardown cleanup helper that preserves the listener contract.
|
|
13
|
+
*
|
|
14
|
+
* Implementation Notes:
|
|
15
|
+
* - All state (in-flight set, storage cache) is module-level to preserve
|
|
16
|
+
* singleton semantics previously in subscribers.ts.
|
|
17
|
+
*
|
|
18
|
+
* Recent Changes:
|
|
19
|
+
* - 2026-03-10: Removed the human-message debounce trigger so idle activity is the sole
|
|
20
|
+
* automatic chat-title generation entry point.
|
|
21
|
+
* - 2026-03-03: Extracted from subscribers.ts to eliminate duplicate world-level EventEmitter
|
|
22
|
+
* listeners (persistence + activity + title-scheduler each had their own handler per channel).
|
|
23
|
+
*/
|
|
24
|
+
import type { World } from '../types.js';
|
|
25
|
+
export declare function isHumanSender(sender?: string): boolean;
|
|
26
|
+
export declare function runIdleTitleUpdate(world: World, event: any): Promise<void>;
|
|
27
|
+
export declare function clearWorldTitleTimers(worldId: string): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title-scheduler.d.ts","sourceRoot":"","sources":["../../../core/events/title-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAc,MAAM,aAAa,CAAC;AAuBrD,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3D"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Title Scheduler Module
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* - Encapsulate all chat-title auto-generation logic (Layer 4).
|
|
6
|
+
* - Previously embedded in subscribers.ts (Layer 6); extracted so persistence.ts (Layer 4) can
|
|
7
|
+
* call title-scheduling directly without a cross-layer import violation.
|
|
8
|
+
*
|
|
9
|
+
* Key Features:
|
|
10
|
+
* - Idle-triggered title generation on world activity events.
|
|
11
|
+
* - In-flight deduplication and compare-and-set storage commit.
|
|
12
|
+
* - World teardown cleanup helper that preserves the listener contract.
|
|
13
|
+
*
|
|
14
|
+
* Implementation Notes:
|
|
15
|
+
* - All state (in-flight set, storage cache) is module-level to preserve
|
|
16
|
+
* singleton semantics previously in subscribers.ts.
|
|
17
|
+
*
|
|
18
|
+
* Recent Changes:
|
|
19
|
+
* - 2026-03-10: Removed the human-message debounce trigger so idle activity is the sole
|
|
20
|
+
* automatic chat-title generation entry point.
|
|
21
|
+
* - 2026-03-03: Extracted from subscribers.ts to eliminate duplicate world-level EventEmitter
|
|
22
|
+
* listeners (persistence + activity + title-scheduler each had their own handler per channel).
|
|
23
|
+
*/
|
|
24
|
+
import { createCategoryLogger } from '../logger.js';
|
|
25
|
+
import { createStorageWithWrappers } from '../storage/storage-factory.js';
|
|
26
|
+
import { generateChatTitleFromMessages } from './memory-manager.js';
|
|
27
|
+
import { publishEvent } from './publishers.js';
|
|
28
|
+
import { isDefaultChatTitle, NEW_CHAT_TITLE, TITLE_PROVENANCE_AUTO } from '../chat-constants.js';
|
|
29
|
+
const loggerChatTitle = createCategoryLogger('chattitle');
|
|
30
|
+
const titleGenerationInFlight = new Set();
|
|
31
|
+
let storageWrappers = null;
|
|
32
|
+
async function getStorageWrappers() {
|
|
33
|
+
if (!storageWrappers) {
|
|
34
|
+
storageWrappers = await createStorageWithWrappers();
|
|
35
|
+
}
|
|
36
|
+
return storageWrappers;
|
|
37
|
+
}
|
|
38
|
+
function getTitleGenerationKey(worldId, chatId) {
|
|
39
|
+
return `${worldId}:${chatId}`;
|
|
40
|
+
}
|
|
41
|
+
export function isHumanSender(sender) {
|
|
42
|
+
const normalized = String(sender ?? '').trim().toLowerCase();
|
|
43
|
+
return normalized === 'human' || normalized === 'world' || normalized.startsWith('user');
|
|
44
|
+
}
|
|
45
|
+
export async function runIdleTitleUpdate(world, event) {
|
|
46
|
+
if (event.type !== 'idle' || event.pendingOperations !== 0) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const targetChatIdRaw = typeof event?.chatId === 'string' ? event.chatId.trim() : '';
|
|
50
|
+
const targetChatId = targetChatIdRaw || null;
|
|
51
|
+
if (!targetChatId) {
|
|
52
|
+
loggerChatTitle.debug('Skipping idle title update due to missing chatId on activity event', {
|
|
53
|
+
worldId: world.id,
|
|
54
|
+
eventType: event?.type,
|
|
55
|
+
pendingOperations: event?.pendingOperations
|
|
56
|
+
});
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
await tryGenerateAndApplyTitle(world, targetChatId, '', 'idle');
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
loggerChatTitle.warn('Activity-based title update failed', { error: err instanceof Error ? err.message : err });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function clearWorldTitleTimers(worldId) {
|
|
67
|
+
void worldId;
|
|
68
|
+
}
|
|
69
|
+
async function commitChatTitleIfDefault(world, chatId, nextTitle) {
|
|
70
|
+
const storage = await getStorageWrappers();
|
|
71
|
+
if (typeof storage.updateChatNameIfCurrent === 'function') {
|
|
72
|
+
return storage.updateChatNameIfCurrent(world.id, chatId, NEW_CHAT_TITLE, nextTitle, TITLE_PROVENANCE_AUTO);
|
|
73
|
+
}
|
|
74
|
+
// Legacy fallback when storage backend does not provide compare-and-set helper.
|
|
75
|
+
const persistedChat = await storage.loadChatData(world.id, chatId);
|
|
76
|
+
if (!persistedChat || !isDefaultChatTitle(persistedChat.name)) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
const updated = await storage.updateChatData(world.id, chatId, { name: nextTitle, titleProvenance: TITLE_PROVENANCE_AUTO });
|
|
80
|
+
return !!updated;
|
|
81
|
+
}
|
|
82
|
+
async function tryGenerateAndApplyTitle(world, targetChatId, content, source) {
|
|
83
|
+
const inFlightKey = getTitleGenerationKey(world.id, targetChatId);
|
|
84
|
+
if (titleGenerationInFlight.has(inFlightKey)) {
|
|
85
|
+
loggerChatTitle.debug('Skipping title update because generation is already in flight', {
|
|
86
|
+
worldId: world.id,
|
|
87
|
+
chatId: targetChatId,
|
|
88
|
+
source
|
|
89
|
+
});
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const chat = world.chats.get(targetChatId);
|
|
93
|
+
if (!chat || !isDefaultChatTitle(chat.name)) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
titleGenerationInFlight.add(inFlightKey);
|
|
97
|
+
try {
|
|
98
|
+
const title = await generateChatTitleFromMessages(world, content, targetChatId);
|
|
99
|
+
if (!title) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// Re-check in-memory state before commit.
|
|
103
|
+
const currentChat = world.chats.get(targetChatId);
|
|
104
|
+
if (!currentChat || !isDefaultChatTitle(currentChat.name)) {
|
|
105
|
+
loggerChatTitle.debug('Skipping title commit because in-memory chat title is no longer default', {
|
|
106
|
+
worldId: world.id,
|
|
107
|
+
chatId: targetChatId,
|
|
108
|
+
source,
|
|
109
|
+
currentName: currentChat?.name
|
|
110
|
+
});
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const committed = await commitChatTitleIfDefault(world, targetChatId, title);
|
|
114
|
+
if (!committed) {
|
|
115
|
+
loggerChatTitle.debug('Skipping title commit because persisted chat title no longer matches default', {
|
|
116
|
+
worldId: world.id,
|
|
117
|
+
chatId: targetChatId,
|
|
118
|
+
source
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
currentChat.name = title;
|
|
123
|
+
currentChat.titleProvenance = TITLE_PROVENANCE_AUTO;
|
|
124
|
+
publishEvent(world, 'system', {
|
|
125
|
+
eventType: 'chat-title-updated',
|
|
126
|
+
chatId: targetChatId,
|
|
127
|
+
title,
|
|
128
|
+
source,
|
|
129
|
+
message: `Chat title updated: ${title}`,
|
|
130
|
+
}, targetChatId);
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
titleGenerationInFlight.delete(inFlightKey);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title-scheduler.js","sourceRoot":"","sources":["../../../core/events/title-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* memory-manager to trace request/result/error handoff payloads.
|
|
7
7
|
*
|
|
8
8
|
* Key Features:
|
|
9
|
-
* -
|
|
9
|
+
* - Structured bridge logs through the core logger (`llm.tool.bridge`) for realtime log streaming
|
|
10
|
+
* - LOG_LLM_TOOL_BRIDGE supports explicit levels (`trace|debug|info|warn|error`) and boolean aliases (`1|true|on` => debug)
|
|
10
11
|
* - Simplified output showing only type, tool name, and truncated content (100-200 chars)
|
|
11
12
|
* - Safe JSON serialization with fallback to `String()`
|
|
12
13
|
*
|
|
@@ -15,6 +16,8 @@
|
|
|
15
16
|
* - Filters verbose metadata, keeps only essential debugging fields
|
|
16
17
|
*
|
|
17
18
|
* Changes:
|
|
19
|
+
* - 2026-02-28: Added canonical feature-path category emission (`tool.call.*`, `tool.continuation`) while preserving legacy bridge logging behavior.
|
|
20
|
+
* - 2026-02-27: Replaced ad-hoc `[LLM↔TOOLS]` console logging with structured category logger events.
|
|
18
21
|
* - 2026-02-16: Extracted shared tool-bridge logging utilities from orchestrator
|
|
19
22
|
* and memory-manager into a dedicated module.
|
|
20
23
|
* - 2026-02-17: Simplified logToolBridge to show only type, tool name, and truncated
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-bridge-logging.d.ts","sourceRoot":"","sources":["../../../core/events/tool-bridge-logging.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool-bridge-logging.d.ts","sourceRoot":"","sources":["../../../core/events/tool-bridge-logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAmHH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM9D;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAcD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAoCvE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAU3D"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* memory-manager to trace request/result/error handoff payloads.
|
|
7
7
|
*
|
|
8
8
|
* Key Features:
|
|
9
|
-
* -
|
|
9
|
+
* - Structured bridge logs through the core logger (`llm.tool.bridge`) for realtime log streaming
|
|
10
|
+
* - LOG_LLM_TOOL_BRIDGE supports explicit levels (`trace|debug|info|warn|error`) and boolean aliases (`1|true|on` => debug)
|
|
10
11
|
* - Simplified output showing only type, tool name, and truncated content (100-200 chars)
|
|
11
12
|
* - Safe JSON serialization with fallback to `String()`
|
|
12
13
|
*
|
|
@@ -15,13 +16,111 @@
|
|
|
15
16
|
* - Filters verbose metadata, keeps only essential debugging fields
|
|
16
17
|
*
|
|
17
18
|
* Changes:
|
|
19
|
+
* - 2026-02-28: Added canonical feature-path category emission (`tool.call.*`, `tool.continuation`) while preserving legacy bridge logging behavior.
|
|
20
|
+
* - 2026-02-27: Replaced ad-hoc `[LLM↔TOOLS]` console logging with structured category logger events.
|
|
18
21
|
* - 2026-02-16: Extracted shared tool-bridge logging utilities from orchestrator
|
|
19
22
|
* and memory-manager into a dedicated module.
|
|
20
23
|
* - 2026-02-17: Simplified logToolBridge to show only type, tool name, and truncated
|
|
21
24
|
* content/args/result (100-300 chars max) for better debugging ergonomics. Removed
|
|
22
25
|
* worldId, agentId, chatId, hopCount, retryCount and other verbose metadata.
|
|
23
26
|
*/
|
|
27
|
+
import { createCategoryLogger, initializeLogger } from '../logger.js';
|
|
28
|
+
import { buildFeaturePathCorrelation, mergeFeaturePathData, sanitizeRawPayloadForLog, } from '../feature-path-logging.js';
|
|
24
29
|
const TOOL_DEBUG_RESULT_PREVIEW_LIMIT = 200;
|
|
30
|
+
const TOOL_BRIDGE_LOG_CATEGORY = 'llm.tool.bridge';
|
|
31
|
+
let configuredToolBridgeLevel = null;
|
|
32
|
+
function resolveCanonicalToolCategory(direction) {
|
|
33
|
+
const compact = String(direction || '')
|
|
34
|
+
.toUpperCase()
|
|
35
|
+
.replace(/\s+/g, '');
|
|
36
|
+
if (/^LLM->TOOLS?/.test(compact)) {
|
|
37
|
+
return 'tool.call.request';
|
|
38
|
+
}
|
|
39
|
+
if (/^TOOLS?->LLM/.test(compact)) {
|
|
40
|
+
return 'tool.call.response';
|
|
41
|
+
}
|
|
42
|
+
if (/^TOOLS?ERROR->LLM/.test(compact)) {
|
|
43
|
+
return 'tool.call.error';
|
|
44
|
+
}
|
|
45
|
+
if (compact.includes('CONTINUE')) {
|
|
46
|
+
return 'tool.continuation';
|
|
47
|
+
}
|
|
48
|
+
return 'tool.continuation';
|
|
49
|
+
}
|
|
50
|
+
function emitCanonicalToolPathLog(direction, payload) {
|
|
51
|
+
const category = resolveCanonicalToolCategory(direction);
|
|
52
|
+
const logger = createCategoryLogger(category);
|
|
53
|
+
const obj = payload && typeof payload === 'object' && !Array.isArray(payload)
|
|
54
|
+
? payload
|
|
55
|
+
: undefined;
|
|
56
|
+
const correlation = buildFeaturePathCorrelation({
|
|
57
|
+
worldId: typeof obj?.worldId === 'string' ? obj.worldId : undefined,
|
|
58
|
+
chatId: typeof obj?.chatId === 'string' || obj?.chatId === null ? obj.chatId : undefined,
|
|
59
|
+
agentId: typeof obj?.agentId === 'string' ? obj.agentId : undefined,
|
|
60
|
+
messageId: typeof obj?.messageId === 'string' ? obj.messageId : undefined,
|
|
61
|
+
turnId: typeof obj?.turnId === 'string' ? obj.turnId : undefined,
|
|
62
|
+
runId: typeof obj?.runId === 'string' ? obj.runId : undefined,
|
|
63
|
+
toolCallId: typeof obj?.toolCallId === 'string' ? obj.toolCallId : undefined,
|
|
64
|
+
toolName: typeof obj?.toolName === 'string' ? obj.toolName : undefined,
|
|
65
|
+
});
|
|
66
|
+
logger.debug('Tool path event', mergeFeaturePathData(correlation, {
|
|
67
|
+
direction,
|
|
68
|
+
payload: sanitizeRawPayloadForLog(payload, { maxStringLength: 800 }),
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
function resolveToolBridgeLogLevel() {
|
|
72
|
+
const rawValue = typeof process !== 'undefined' && process.env
|
|
73
|
+
? process.env.LOG_LLM_TOOL_BRIDGE
|
|
74
|
+
: undefined;
|
|
75
|
+
if (!rawValue)
|
|
76
|
+
return null;
|
|
77
|
+
const normalized = rawValue.toLowerCase().trim();
|
|
78
|
+
if (normalized === '1' || normalized === 'true' || normalized === 'on') {
|
|
79
|
+
return 'debug';
|
|
80
|
+
}
|
|
81
|
+
if (normalized === '0' || normalized === 'false' || normalized === 'off') {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
if (normalized === 'trace'
|
|
85
|
+
|| normalized === 'debug'
|
|
86
|
+
|| normalized === 'info'
|
|
87
|
+
|| normalized === 'warn'
|
|
88
|
+
|| normalized === 'error') {
|
|
89
|
+
return normalized;
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
function ensureToolBridgeLoggerLevel(level) {
|
|
94
|
+
if (configuredToolBridgeLevel === level) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
initializeLogger({
|
|
98
|
+
categoryLevels: {
|
|
99
|
+
[TOOL_BRIDGE_LOG_CATEGORY]: level,
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
configuredToolBridgeLevel = level;
|
|
103
|
+
}
|
|
104
|
+
function emitToolBridgeLog(level, message, data) {
|
|
105
|
+
const logger = createCategoryLogger(TOOL_BRIDGE_LOG_CATEGORY);
|
|
106
|
+
if (level === 'trace') {
|
|
107
|
+
logger.trace(message, data);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (level === 'debug') {
|
|
111
|
+
logger.debug(message, data);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (level === 'info') {
|
|
115
|
+
logger.info(message, data);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (level === 'warn') {
|
|
119
|
+
logger.warn(message, data);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
logger.error(message, data);
|
|
123
|
+
}
|
|
25
124
|
export function safeSerializeForConsole(value) {
|
|
26
125
|
try {
|
|
27
126
|
return JSON.stringify(value, null, 2);
|
|
@@ -31,31 +130,28 @@ export function safeSerializeForConsole(value) {
|
|
|
31
130
|
}
|
|
32
131
|
}
|
|
33
132
|
export function isToolBridgeLoggingEnabled() {
|
|
34
|
-
|
|
35
|
-
? process.env.LOG_LLM_TOOL_BRIDGE
|
|
36
|
-
: undefined;
|
|
37
|
-
if (!rawValue)
|
|
38
|
-
return false;
|
|
39
|
-
const normalized = rawValue.toLowerCase().trim();
|
|
40
|
-
return normalized === '1' || normalized === 'true' || normalized === 'debug' || normalized === 'on';
|
|
133
|
+
return resolveToolBridgeLogLevel() !== null;
|
|
41
134
|
}
|
|
42
135
|
function truncateContent(value, maxLength = TOOL_DEBUG_RESULT_PREVIEW_LIMIT) {
|
|
43
136
|
const str = typeof value === 'string'
|
|
44
137
|
? value
|
|
45
|
-
:
|
|
138
|
+
: safeSerializeForConsole(value);
|
|
46
139
|
if (str.length <= maxLength) {
|
|
47
140
|
return str;
|
|
48
141
|
}
|
|
49
142
|
return `${str.slice(0, maxLength)}...[${str.length - maxLength} more]`;
|
|
50
143
|
}
|
|
51
144
|
export function logToolBridge(direction, payload) {
|
|
52
|
-
|
|
145
|
+
emitCanonicalToolPathLog(direction, payload);
|
|
146
|
+
const logLevel = resolveToolBridgeLogLevel();
|
|
147
|
+
if (!logLevel) {
|
|
53
148
|
return;
|
|
54
149
|
}
|
|
150
|
+
ensureToolBridgeLoggerLevel(logLevel);
|
|
55
151
|
// Extract only essential fields: type and shortened content
|
|
56
152
|
if (payload && typeof payload === 'object' && !Array.isArray(payload)) {
|
|
57
153
|
const obj = payload;
|
|
58
|
-
const essential = {};
|
|
154
|
+
const essential = { direction };
|
|
59
155
|
// Keep type fields
|
|
60
156
|
if ('type' in obj)
|
|
61
157
|
essential.type = obj.type;
|
|
@@ -75,11 +171,14 @@ export function logToolBridge(direction, payload) {
|
|
|
75
171
|
essential.result = truncateContent(obj.resultPreview, 150);
|
|
76
172
|
if ('args' in obj)
|
|
77
173
|
essential.args = truncateContent(obj.args, 100);
|
|
78
|
-
|
|
174
|
+
emitToolBridgeLog(logLevel, 'LLM tool bridge event', essential);
|
|
79
175
|
}
|
|
80
176
|
else {
|
|
81
177
|
// Raw responses (LLM RAW -> CONTINUE)
|
|
82
|
-
|
|
178
|
+
emitToolBridgeLog(logLevel, 'LLM tool bridge event', {
|
|
179
|
+
direction,
|
|
180
|
+
payload: truncateContent(payload, 300),
|
|
181
|
+
});
|
|
83
182
|
}
|
|
84
183
|
}
|
|
85
184
|
export function getToolResultPreview(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-bridge-logging.js","sourceRoot":"","sources":["../../../core/events/tool-bridge-logging.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool-bridge-logging.js","sourceRoot":"","sources":["../../../core/events/tool-bridge-logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAiB,MAAM,cAAc,CAAC;AACrF,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAC5C,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AACnD,IAAI,yBAAyB,GAAoB,IAAI,CAAC;AAEtD,SAAS,4BAA4B,CAAC,SAAiB;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;SACpC,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvB,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAiB,EAAE,OAAgB;IACnE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3E,CAAC,CAAC,OAAkC;QACpC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,WAAW,GAAG,2BAA2B,CAAC;QAC9C,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACnE,MAAM,EAAE,OAAO,GAAG,EAAE,MAAM,KAAK,QAAQ,IAAI,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAuB,CAAC,CAAC,CAAC,SAAS;QACzG,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACnE,SAAS,EAAE,OAAO,GAAG,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACzE,MAAM,EAAE,OAAO,GAAG,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAChE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC7D,UAAU,EAAE,OAAO,GAAG,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC5E,QAAQ,EAAE,OAAO,GAAG,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACvE,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CACV,iBAAiB,EACjB,oBAAoB,CAAC,WAAW,EAAE;QAChC,SAAS;QACT,OAAO,EAAE,wBAAwB,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC;KACrE,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB;IAChC,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG;QAC5D,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB;QACjC,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,UAAU,KAAK,OAAO;WACnB,UAAU,KAAK,OAAO;WACtB,UAAU,KAAK,MAAM;WACrB,UAAU,KAAK,MAAM;WACrB,UAAU,KAAK,OAAO,EACzB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAe;IAClD,IAAI,yBAAyB,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IACD,gBAAgB,CAAC;QACf,cAAc,EAAE;YACd,CAAC,wBAAwB,CAAC,EAAE,KAAK;SAClC;KACF,CAAC,CAAC;IACH,yBAAyB,GAAG,KAAK,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe,EAAE,OAAe,EAAE,IAA6B;IACxF,MAAM,MAAM,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAC9D,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,yBAAyB,EAAE,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,SAAS,GAAG,+BAA+B;IAClF,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ;QACnC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS,QAAQ,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,OAAgB;IAC/D,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAEtC,4DAA4D;IAC5D,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,OAAkC,CAAC;QAC/C,MAAM,SAAS,GAA4B,EAAE,SAAS,EAAE,CAAC;QAEzD,mBAAmB;QACnB,IAAI,MAAM,IAAI,GAAG;YAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAC7C,IAAI,cAAc,IAAI,GAAG;YAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC;QAE7D,4CAA4C;QAC5C,IAAI,UAAU,IAAI,GAAG;YAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QACrD,IAAI,YAAY,IAAI,GAAG;YAAE,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3E,iCAAiC;QACjC,IAAI,SAAS,IAAI,GAAG;YAAE,SAAS,CAAC,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5E,IAAI,gBAAgB,IAAI,GAAG;YAAE,SAAS,CAAC,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC1F,IAAI,eAAe,IAAI,GAAG;YAAE,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACvF,IAAI,MAAM,IAAI,GAAG;YAAE,SAAS,CAAC,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEnE,iBAAiB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,iBAAiB,CAAC,QAAQ,EAAE,uBAAuB,EAAE;YACnD,SAAS;YACT,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ;QAC1C,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,UAAU,CAAC,MAAM,IAAI,+BAA+B,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,+BAA+B,CAAC,kBAAkB,UAAU,CAAC,MAAM,GAAG,+BAA+B,SAAS,CAAC;AAC/I,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-metadata.d.ts","sourceRoot":"","sources":["../../core/events-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"events-metadata.d.ts","sourceRoot":"","sources":["../../core/events-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwBzE;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,MAAM,EAAE,CAiBV;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,MAAM,GAAG,IAAI,CAEf;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,UAAU,GAAG,UAAU,GAAG,WAAW,CAavC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAMT;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,YAAY,EAAE,GAC1B;IACD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CA2DA"}
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
* - Thread depth calculation with circular reference protection
|
|
22
22
|
*/
|
|
23
23
|
import { extractParagraphBeginningMentions } from './utils.js';
|
|
24
|
+
function isHumanLikeMessageSender(sender) {
|
|
25
|
+
const normalized = String(sender || '').trim().toLowerCase();
|
|
26
|
+
return normalized === 'human' || normalized === 'world' || normalized === 'user';
|
|
27
|
+
}
|
|
24
28
|
function resolveRecipientAgentId(world, message) {
|
|
25
29
|
const mentions = extractParagraphBeginningMentions(message.content || '');
|
|
26
30
|
if (mentions.length === 0) {
|
|
@@ -41,7 +45,7 @@ function resolveRecipientAgentId(world, message) {
|
|
|
41
45
|
* - Cross-agent messages: Both sender and recipient
|
|
42
46
|
*/
|
|
43
47
|
export function calculateOwnerAgentIds(world, message) {
|
|
44
|
-
const isHuman = message.sender
|
|
48
|
+
const isHuman = isHumanLikeMessageSender(message.sender);
|
|
45
49
|
// Human messages go to all agents
|
|
46
50
|
if (isHuman) {
|
|
47
51
|
return Array.from(world.agents.keys());
|
|
@@ -70,7 +74,7 @@ export function calculateRecipientAgentId(world, message) {
|
|
|
70
74
|
* - broadcast: No specific recipient
|
|
71
75
|
*/
|
|
72
76
|
export function calculateMessageDirection(world, message) {
|
|
73
|
-
const isHuman = message.sender
|
|
77
|
+
const isHuman = isHumanLikeMessageSender(message.sender);
|
|
74
78
|
if (isHuman) {
|
|
75
79
|
return 'broadcast'; // Human messages are always broadcast
|
|
76
80
|
}
|
|
@@ -88,7 +92,7 @@ export function calculateMessageDirection(world, message) {
|
|
|
88
92
|
* - Saved to recipient's memory but doesn't trigger response
|
|
89
93
|
*/
|
|
90
94
|
export function calculateIsMemoryOnly(world, message) {
|
|
91
|
-
const isHuman = message.sender
|
|
95
|
+
const isHuman = isHumanLikeMessageSender(message.sender);
|
|
92
96
|
if (isHuman)
|
|
93
97
|
return false; // Human messages always trigger responses
|
|
94
98
|
const recipientId = calculateRecipientAgentId(world, message);
|
|
@@ -98,7 +102,7 @@ export function calculateIsMemoryOnly(world, message) {
|
|
|
98
102
|
* Calculate if message is agent-to-agent communication
|
|
99
103
|
*/
|
|
100
104
|
export function calculateIsCrossAgentMessage(world, message) {
|
|
101
|
-
const isHuman = message.sender
|
|
105
|
+
const isHuman = isHumanLikeMessageSender(message.sender);
|
|
102
106
|
if (isHuman)
|
|
103
107
|
return false;
|
|
104
108
|
const recipientId = calculateRecipientAgentId(world, message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-metadata.js","sourceRoot":"","sources":["../../core/events-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAE/D,SAAS,uBAAuB,CAAC,KAAY,EAAE,OAA0B;IACvE,MAAM,QAAQ,GAAG,iCAAiC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC1E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACxD,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa;QACxC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,aAAa,CAC7C,CAAC;IAEF,OAAO,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAY,EACZ,OAA0B;IAE1B,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"events-metadata.js","sourceRoot":"","sources":["../../core/events-metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/core/export.d.ts
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
* Time: 2025-10-25T21:24:57.105Z
|
|
49
49
|
* [2 tool calls:
|
|
50
50
|
* 1. read_file (filePath: /path/to/file.txt, limit: 100)
|
|
51
|
-
* 2.
|
|
51
|
+
* 2. grep (query: pattern, isRegexp: true, ...)]
|
|
52
52
|
*
|
|
53
53
|
* Agent: a1 (tool result)
|
|
54
54
|
* Time: 2025-10-25T21:24:58.395Z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../core/export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../core/export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AA2CH;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAogB9E;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6D3F"}
|
package/dist/core/export.js
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
* Time: 2025-10-25T21:24:57.105Z
|
|
49
49
|
* [2 tool calls:
|
|
50
50
|
* 1. read_file (filePath: /path/to/file.txt, limit: 100)
|
|
51
|
-
* 2.
|
|
51
|
+
* 2. grep (query: pattern, isRegexp: true, ...)]
|
|
52
52
|
*
|
|
53
53
|
* Agent: a1 (tool result)
|
|
54
54
|
* Time: 2025-10-25T21:24:58.395Z
|
|
@@ -101,19 +101,8 @@
|
|
|
101
101
|
// Core module imports
|
|
102
102
|
import { createCategoryLogger } from './logger.js';
|
|
103
103
|
import { getWorld, listAgents, getAgent, getMemory } from './managers.js';
|
|
104
|
-
|
|
105
|
-
// Initialize logger and storage
|
|
104
|
+
// Initialize logger
|
|
106
105
|
const logger = createCategoryLogger('core.export');
|
|
107
|
-
let storageWrappers = null;
|
|
108
|
-
async function initializeModules() {
|
|
109
|
-
// Skip storage initialization in test environment to prevent SQLite errors
|
|
110
|
-
// Tests use mocked storage from vitest-setup.ts
|
|
111
|
-
if (process.env.NODE_ENV === 'test') {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
storageWrappers = await createStorageWithWrappers();
|
|
115
|
-
}
|
|
116
|
-
const moduleInitialization = initializeModules();
|
|
117
106
|
async function buildAgentMap(worldId, agentSummaries) {
|
|
118
107
|
const summaries = agentSummaries ?? await listAgents(worldId);
|
|
119
108
|
const agentsMap = new Map();
|
|
@@ -145,7 +134,6 @@ function formatSenderLabel(message, agentsMap) {
|
|
|
145
134
|
* Export world configuration, agents, and chats to Markdown format
|
|
146
135
|
*/
|
|
147
136
|
export async function exportWorldToMarkdown(worldName) {
|
|
148
|
-
await moduleInitialization;
|
|
149
137
|
// Load world configuration
|
|
150
138
|
const worldData = await getWorld(worldName);
|
|
151
139
|
if (!worldData) {
|
|
@@ -631,7 +619,6 @@ export async function exportWorldToMarkdown(worldName) {
|
|
|
631
619
|
return markdown;
|
|
632
620
|
}
|
|
633
621
|
export async function exportChatToMarkdown(worldId, chatId) {
|
|
634
|
-
await moduleInitialization;
|
|
635
622
|
const worldData = await getWorld(worldId);
|
|
636
623
|
if (!worldData) {
|
|
637
624
|
throw new Error(`World '${worldId}' not found`);
|