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
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
const API_KEY_PATTERNS = [
|
|
2
|
+
{ reason: 'PII_API_KEY_OPENAI', pattern: /\bsk-[A-Za-z0-9]{20,}\b/g },
|
|
3
|
+
{ reason: 'PII_API_KEY_GENERIC', pattern: /\b(?:api[-_ ]?key|token|secret)\s*[:=]\s*[A-Za-z0-9_\-]{12,}\b/gi },
|
|
4
|
+
{ reason: 'PII_BEARER_TOKEN', pattern: /\bBearer\s+[A-Za-z0-9._\-]{20,}\b/gi },
|
|
5
|
+
];
|
|
6
|
+
const CREDIT_CARD_PATTERN = /\b(?:\d[ -]*?){13,19}\b/g;
|
|
7
|
+
const PHONE_PATTERN = /\b(?:\+?1[\s.-]?)?(?:\(?\d{3}\)?[\s.-]?)\d{3}[\s.-]?\d{4}\b/g;
|
|
8
|
+
const JAILBREAK_PATTERNS = [
|
|
9
|
+
/ignore\s+(all\s+)?previous\s+instructions/i,
|
|
10
|
+
/jailbreak/i,
|
|
11
|
+
/system\s+override/i,
|
|
12
|
+
/developer\s+mode/i,
|
|
13
|
+
/reveal\s+(the\s+)?system\s+prompt/i,
|
|
14
|
+
];
|
|
15
|
+
const RESTRICTED_TOPIC_PATTERNS = [
|
|
16
|
+
/build\s+(a\s+)?bomb/i,
|
|
17
|
+
/how\s+to\s+make\s+malware/i,
|
|
18
|
+
/credit\s+card\s+fraud/i,
|
|
19
|
+
/exploit\s+zero-day/i,
|
|
20
|
+
];
|
|
21
|
+
function luhnValid(input) {
|
|
22
|
+
const digits = input.replace(/\D/g, '');
|
|
23
|
+
if (digits.length < 13 || digits.length > 19) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
let sum = 0;
|
|
27
|
+
let shouldDouble = false;
|
|
28
|
+
for (let i = digits.length - 1; i >= 0; i--) {
|
|
29
|
+
let digit = Number(digits[i]);
|
|
30
|
+
if (shouldDouble) {
|
|
31
|
+
digit *= 2;
|
|
32
|
+
if (digit > 9) {
|
|
33
|
+
digit -= 9;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
sum += digit;
|
|
37
|
+
shouldDouble = !shouldDouble;
|
|
38
|
+
}
|
|
39
|
+
return sum % 10 === 0;
|
|
40
|
+
}
|
|
41
|
+
export function checkPII(content) {
|
|
42
|
+
const findings = [];
|
|
43
|
+
const text = content || '';
|
|
44
|
+
for (const candidate of API_KEY_PATTERNS) {
|
|
45
|
+
if (candidate.pattern.test(text)) {
|
|
46
|
+
findings.push({ type: 'pii', reason: candidate.reason, severity: 'high' });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const ccMatches = text.match(CREDIT_CARD_PATTERN) || [];
|
|
50
|
+
const hasLuhnCard = ccMatches.some((match) => luhnValid(match));
|
|
51
|
+
if (hasLuhnCard) {
|
|
52
|
+
findings.push({ type: 'pii', reason: 'PII_CREDIT_CARD', severity: 'high' });
|
|
53
|
+
}
|
|
54
|
+
if (PHONE_PATTERN.test(text)) {
|
|
55
|
+
findings.push({ type: 'pii', reason: 'PII_PHONE_NUMBER', severity: 'medium' });
|
|
56
|
+
}
|
|
57
|
+
return findings;
|
|
58
|
+
}
|
|
59
|
+
export function checkJailbreak(content, inputs) {
|
|
60
|
+
const findings = [];
|
|
61
|
+
const combined = `${content || ''}\n${inputs || ''}`;
|
|
62
|
+
for (const pattern of JAILBREAK_PATTERNS) {
|
|
63
|
+
if (pattern.test(combined)) {
|
|
64
|
+
findings.push({ type: 'jailbreak', reason: 'JAILBREAK_DETECTED', severity: 'high' });
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
for (const pattern of RESTRICTED_TOPIC_PATTERNS) {
|
|
69
|
+
if (pattern.test(combined)) {
|
|
70
|
+
findings.push({ type: 'restricted-topic', reason: 'RESTRICTED_TOPIC_DETECTED', severity: 'high' });
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return findings;
|
|
75
|
+
}
|
|
76
|
+
function redactContent(content) {
|
|
77
|
+
let redacted = content;
|
|
78
|
+
for (const candidate of API_KEY_PATTERNS) {
|
|
79
|
+
redacted = redacted.replace(candidate.pattern, '[REDACTED_API_KEY]');
|
|
80
|
+
}
|
|
81
|
+
redacted = redacted.replace(CREDIT_CARD_PATTERN, (value) => (luhnValid(value) ? '[REDACTED_CREDIT_CARD]' : value));
|
|
82
|
+
redacted = redacted.replace(PHONE_PATTERN, '[REDACTED_PHONE]');
|
|
83
|
+
return redacted;
|
|
84
|
+
}
|
|
85
|
+
function highestSeverity(findings) {
|
|
86
|
+
if (findings.some((finding) => finding.severity === 'high')) {
|
|
87
|
+
return 'high';
|
|
88
|
+
}
|
|
89
|
+
if (findings.some((finding) => finding.severity === 'medium')) {
|
|
90
|
+
return 'medium';
|
|
91
|
+
}
|
|
92
|
+
return 'low';
|
|
93
|
+
}
|
|
94
|
+
export function runGuardrails(content, inputs, policy = { redact: true, blockOnHighSeverity: true }) {
|
|
95
|
+
const findings = [
|
|
96
|
+
...checkPII(content),
|
|
97
|
+
...checkJailbreak(content, inputs),
|
|
98
|
+
];
|
|
99
|
+
const flagged = findings.length > 0;
|
|
100
|
+
const severity = highestSeverity(findings);
|
|
101
|
+
const blocked = Boolean(policy.blockOnHighSeverity && severity === 'high' && flagged);
|
|
102
|
+
const redactedText = policy.redact ? redactContent(content) : content;
|
|
103
|
+
return {
|
|
104
|
+
flagged,
|
|
105
|
+
blocked,
|
|
106
|
+
severity,
|
|
107
|
+
reasons: findings.map((finding) => finding.reason),
|
|
108
|
+
findings,
|
|
109
|
+
redactedText,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../../core/security/guardrails.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Send Message Tool Module - Built-in tool for dispatching message arrays to the active world/chat scope.
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* - Expose a built-in `send_message` tool that dispatches one or more messages in order.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* - Accepts `messages` as `Array<string | { content: string; sender?: string }>`.
|
|
9
|
+
* - Injects trusted `worldId` and `chatId` from tool execution context.
|
|
10
|
+
* - Ignores model-provided routing fields (`worldId`, `chatId`) for safety.
|
|
11
|
+
* - Delegates human/user senders to queue-backed `enqueueAndProcessUserTurn`.
|
|
12
|
+
* - Delegates assistant/tool/system senders to explicit immediate dispatch.
|
|
13
|
+
* - Returns deterministic JSON-string summaries with per-item status.
|
|
14
|
+
*
|
|
15
|
+
* Implementation Notes:
|
|
16
|
+
* - This tool does not claim downstream response completion; it reports dispatch/enqueue outcomes only.
|
|
17
|
+
* - Root-level `worldId` and `chatId` are accepted for compatibility but never used for routing.
|
|
18
|
+
* - Runtime routing requires explicit `context.chatId`; it does not fall back to `world.currentChatId`.
|
|
19
|
+
*
|
|
20
|
+
* Recent Changes:
|
|
21
|
+
* - 2026-03-14: Routed `world` sender messages through the same queue-backed ingress as human/user turns.
|
|
22
|
+
* - 2026-03-10: Split sender routing so queue-backed dispatch is user-only and non-user senders use immediate dispatch.
|
|
23
|
+
* - 2026-03-04: Removed `world.currentChatId` fallback from trusted runtime routing; `context.chatId` is now required.
|
|
24
|
+
* - 2026-03-04: Initial implementation of built-in `send_message` tool with trusted context injection.
|
|
25
|
+
*/
|
|
26
|
+
import type { World } from './types.js';
|
|
27
|
+
type SendMessageArgs = {
|
|
28
|
+
messages?: unknown;
|
|
29
|
+
worldId?: unknown;
|
|
30
|
+
chatId?: unknown;
|
|
31
|
+
};
|
|
32
|
+
type SendMessageContext = {
|
|
33
|
+
world?: World;
|
|
34
|
+
chatId?: string | null;
|
|
35
|
+
};
|
|
36
|
+
export declare function createSendMessageToolDefinition(): {
|
|
37
|
+
description: string;
|
|
38
|
+
parameters: {
|
|
39
|
+
type: string;
|
|
40
|
+
properties: {
|
|
41
|
+
messages: {
|
|
42
|
+
type: string;
|
|
43
|
+
description: string;
|
|
44
|
+
items: {
|
|
45
|
+
anyOf: ({
|
|
46
|
+
type: string;
|
|
47
|
+
properties?: undefined;
|
|
48
|
+
required?: undefined;
|
|
49
|
+
additionalProperties?: undefined;
|
|
50
|
+
} | {
|
|
51
|
+
type: string;
|
|
52
|
+
properties: {
|
|
53
|
+
content: {
|
|
54
|
+
type: string;
|
|
55
|
+
};
|
|
56
|
+
sender: {
|
|
57
|
+
type: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
required: string[];
|
|
61
|
+
additionalProperties: boolean;
|
|
62
|
+
})[];
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
worldId: {
|
|
66
|
+
type: string;
|
|
67
|
+
description: string;
|
|
68
|
+
};
|
|
69
|
+
chatId: {
|
|
70
|
+
type: string;
|
|
71
|
+
description: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
required: string[];
|
|
75
|
+
additionalProperties: boolean;
|
|
76
|
+
};
|
|
77
|
+
execute: (args: SendMessageArgs, _sequenceId?: string, _parentToolCall?: string, context?: SendMessageContext) => Promise<string>;
|
|
78
|
+
};
|
|
79
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-message-tool.d.ts","sourceRoot":"","sources":["../../core/send-message-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AA0GF,wBAAgB,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAqCrB,eAAe,gBAAgB,MAAM,oBAAoB,MAAM,YAAY,kBAAkB;EAwGtH"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Send Message Tool Module - Built-in tool for dispatching message arrays to the active world/chat scope.
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* - Expose a built-in `send_message` tool that dispatches one or more messages in order.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* - Accepts `messages` as `Array<string | { content: string; sender?: string }>`.
|
|
9
|
+
* - Injects trusted `worldId` and `chatId` from tool execution context.
|
|
10
|
+
* - Ignores model-provided routing fields (`worldId`, `chatId`) for safety.
|
|
11
|
+
* - Delegates human/user senders to queue-backed `enqueueAndProcessUserTurn`.
|
|
12
|
+
* - Delegates assistant/tool/system senders to explicit immediate dispatch.
|
|
13
|
+
* - Returns deterministic JSON-string summaries with per-item status.
|
|
14
|
+
*
|
|
15
|
+
* Implementation Notes:
|
|
16
|
+
* - This tool does not claim downstream response completion; it reports dispatch/enqueue outcomes only.
|
|
17
|
+
* - Root-level `worldId` and `chatId` are accepted for compatibility but never used for routing.
|
|
18
|
+
* - Runtime routing requires explicit `context.chatId`; it does not fall back to `world.currentChatId`.
|
|
19
|
+
*
|
|
20
|
+
* Recent Changes:
|
|
21
|
+
* - 2026-03-14: Routed `world` sender messages through the same queue-backed ingress as human/user turns.
|
|
22
|
+
* - 2026-03-10: Split sender routing so queue-backed dispatch is user-only and non-user senders use immediate dispatch.
|
|
23
|
+
* - 2026-03-04: Removed `world.currentChatId` fallback from trusted runtime routing; `context.chatId` is now required.
|
|
24
|
+
* - 2026-03-04: Initial implementation of built-in `send_message` tool with trusted context injection.
|
|
25
|
+
*/
|
|
26
|
+
import { dispatchImmediateChatMessage, enqueueAndProcessUserTurn } from './managers.js';
|
|
27
|
+
function stringifyResult(payload) {
|
|
28
|
+
return JSON.stringify(payload);
|
|
29
|
+
}
|
|
30
|
+
function normalizeSender(sender) {
|
|
31
|
+
if (sender === undefined || sender === null) {
|
|
32
|
+
return { ok: true, value: 'human' };
|
|
33
|
+
}
|
|
34
|
+
if (typeof sender !== 'string') {
|
|
35
|
+
return { ok: false, error: 'sender must be a string when provided' };
|
|
36
|
+
}
|
|
37
|
+
const normalized = sender.trim();
|
|
38
|
+
if (!normalized) {
|
|
39
|
+
return { ok: false, error: 'sender must not be empty when provided' };
|
|
40
|
+
}
|
|
41
|
+
return { ok: true, value: normalized };
|
|
42
|
+
}
|
|
43
|
+
function isUserSender(sender) {
|
|
44
|
+
const normalized = String(sender || '').trim().toLowerCase();
|
|
45
|
+
return normalized === 'human' || normalized === 'world' || normalized.startsWith('user');
|
|
46
|
+
}
|
|
47
|
+
function normalizeMessageEntry(entry, index) {
|
|
48
|
+
if (typeof entry === 'string') {
|
|
49
|
+
if (!entry.trim()) {
|
|
50
|
+
return { ok: false, error: 'content must not be empty' };
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
ok: true,
|
|
54
|
+
value: {
|
|
55
|
+
index,
|
|
56
|
+
content: entry,
|
|
57
|
+
sender: 'human',
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
|
|
62
|
+
return { ok: false, error: 'message entry must be a string or object with content' };
|
|
63
|
+
}
|
|
64
|
+
const candidate = entry;
|
|
65
|
+
if (typeof candidate.content !== 'string' || !candidate.content.trim()) {
|
|
66
|
+
return { ok: false, error: 'content must be a non-empty string' };
|
|
67
|
+
}
|
|
68
|
+
const sender = normalizeSender(candidate.sender);
|
|
69
|
+
if (!sender.ok) {
|
|
70
|
+
return { ok: false, error: sender.error };
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
ok: true,
|
|
74
|
+
value: {
|
|
75
|
+
index,
|
|
76
|
+
content: candidate.content,
|
|
77
|
+
sender: sender.value,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function resolveTrustedContext(context) {
|
|
82
|
+
const world = context?.world;
|
|
83
|
+
const worldId = typeof world?.id === 'string' ? world.id.trim() : '';
|
|
84
|
+
if (!world || !worldId) {
|
|
85
|
+
return {
|
|
86
|
+
ok: false,
|
|
87
|
+
code: 'context_unavailable',
|
|
88
|
+
message: 'send_message requires a valid world context.',
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const chatId = typeof context?.chatId === 'string' ? context.chatId.trim() : '';
|
|
92
|
+
if (!chatId) {
|
|
93
|
+
return {
|
|
94
|
+
ok: false,
|
|
95
|
+
code: 'chat_context_missing',
|
|
96
|
+
message: 'send_message requires a chatId in trusted runtime context.',
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return { ok: true, world, worldId, chatId };
|
|
100
|
+
}
|
|
101
|
+
export function createSendMessageToolDefinition() {
|
|
102
|
+
return {
|
|
103
|
+
description: 'Dispatch multiple messages to the active world/chat context. Requires messages array. worldId/chatId are injected from trusted runtime context.',
|
|
104
|
+
parameters: {
|
|
105
|
+
type: 'object',
|
|
106
|
+
properties: {
|
|
107
|
+
messages: {
|
|
108
|
+
type: 'array',
|
|
109
|
+
description: 'Required array of messages. Each entry can be a string or { content, sender? } object.',
|
|
110
|
+
items: {
|
|
111
|
+
anyOf: [
|
|
112
|
+
{ type: 'string' },
|
|
113
|
+
{
|
|
114
|
+
type: 'object',
|
|
115
|
+
properties: {
|
|
116
|
+
content: { type: 'string' },
|
|
117
|
+
sender: { type: 'string' },
|
|
118
|
+
},
|
|
119
|
+
required: ['content'],
|
|
120
|
+
additionalProperties: true,
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
worldId: {
|
|
126
|
+
type: 'string',
|
|
127
|
+
description: 'Compatibility-only field. Ignored for routing; trusted context worldId is always used.',
|
|
128
|
+
},
|
|
129
|
+
chatId: {
|
|
130
|
+
type: 'string',
|
|
131
|
+
description: 'Compatibility-only field. Ignored for routing; trusted context chatId is always used.',
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
required: ['messages'],
|
|
135
|
+
additionalProperties: false,
|
|
136
|
+
},
|
|
137
|
+
execute: async (args, _sequenceId, _parentToolCall, context) => {
|
|
138
|
+
const resolved = resolveTrustedContext(context);
|
|
139
|
+
if (!resolved.ok) {
|
|
140
|
+
return stringifyResult({
|
|
141
|
+
ok: false,
|
|
142
|
+
status: 'error',
|
|
143
|
+
code: resolved.code,
|
|
144
|
+
message: resolved.message,
|
|
145
|
+
requested: 0,
|
|
146
|
+
accepted: 0,
|
|
147
|
+
dispatched: 0,
|
|
148
|
+
failed: 0,
|
|
149
|
+
results: [],
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (!Array.isArray(args?.messages) || args.messages.length === 0) {
|
|
153
|
+
return stringifyResult({
|
|
154
|
+
ok: false,
|
|
155
|
+
status: 'error',
|
|
156
|
+
code: 'validation_error',
|
|
157
|
+
message: 'messages must be a non-empty array.',
|
|
158
|
+
worldId: resolved.worldId,
|
|
159
|
+
chatId: resolved.chatId,
|
|
160
|
+
requested: Array.isArray(args?.messages) ? args.messages.length : 0,
|
|
161
|
+
accepted: 0,
|
|
162
|
+
dispatched: 0,
|
|
163
|
+
failed: 0,
|
|
164
|
+
results: [],
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
const results = [];
|
|
168
|
+
let accepted = 0;
|
|
169
|
+
let dispatched = 0;
|
|
170
|
+
let failed = 0;
|
|
171
|
+
for (let index = 0; index < args.messages.length; index += 1) {
|
|
172
|
+
const normalized = normalizeMessageEntry(args.messages[index], index);
|
|
173
|
+
if (!normalized.ok) {
|
|
174
|
+
failed += 1;
|
|
175
|
+
results.push({
|
|
176
|
+
index,
|
|
177
|
+
status: 'error',
|
|
178
|
+
error: normalized.error,
|
|
179
|
+
});
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
accepted += 1;
|
|
183
|
+
try {
|
|
184
|
+
const queuedMessage = isUserSender(normalized.value.sender)
|
|
185
|
+
? await enqueueAndProcessUserTurn(resolved.worldId, resolved.chatId, normalized.value.content, normalized.value.sender, resolved.world, { source: 'direct' })
|
|
186
|
+
: null;
|
|
187
|
+
const immediateMessage = queuedMessage
|
|
188
|
+
? null
|
|
189
|
+
: await dispatchImmediateChatMessage(resolved.worldId, resolved.chatId, normalized.value.content, normalized.value.sender, resolved.world, { source: 'direct' });
|
|
190
|
+
dispatched += 1;
|
|
191
|
+
results.push({
|
|
192
|
+
index,
|
|
193
|
+
sender: normalized.value.sender,
|
|
194
|
+
status: 'dispatched',
|
|
195
|
+
dispatchMode: queuedMessage ? 'queued' : 'immediate',
|
|
196
|
+
messageId: queuedMessage?.messageId ?? immediateMessage?.messageId ?? null,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
failed += 1;
|
|
201
|
+
results.push({
|
|
202
|
+
index,
|
|
203
|
+
sender: normalized.value.sender,
|
|
204
|
+
status: 'error',
|
|
205
|
+
error: error instanceof Error ? error.message : String(error),
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return stringifyResult({
|
|
210
|
+
ok: true,
|
|
211
|
+
status: failed > 0 ? 'partial' : 'dispatched',
|
|
212
|
+
worldId: resolved.worldId,
|
|
213
|
+
chatId: resolved.chatId,
|
|
214
|
+
requested: args.messages.length,
|
|
215
|
+
accepted,
|
|
216
|
+
dispatched,
|
|
217
|
+
failed,
|
|
218
|
+
results,
|
|
219
|
+
});
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-message-tool.js","sourceRoot":"","sources":["../../core/send-message-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,21 @@
|
|
|
27
27
|
* - Uses universal validation framework for consistent parameter checking
|
|
28
28
|
*
|
|
29
29
|
* Recent Changes:
|
|
30
|
+
* - 2026-03-12: Shared tool approval flow now persists durable approval prompt/resolution messages for replay-safe shell approval history.
|
|
31
|
+
* - 2026-03-12: Added `toolPermission` enforcement: 'read' level blocks execution with an error result; 'ask' level forces every invocation through HITL approval regardless of risk tier.
|
|
32
|
+
* - 2026-03-06: Added explicit canonical failure reasons for shell validation/policy failures so approval denials and validation errors no longer masquerade as non-zero exits.
|
|
33
|
+
* - 2026-03-06: Unified shell continuation output on one bounded-preview result contract, removed `smart`-mode branching, and stopped persisting a synthetic assistant stdout mirror message after shell completion.
|
|
34
|
+
* - 2026-03-06: Added canonical shell error-result formatting helper so upstream tool persistence can normalize shell failures without falling back to ad hoc error strings.
|
|
35
|
+
* - 2026-03-05: Hardened timeout termination to target process groups/process trees (SIGTERM + SIGKILL fallback) and removed child-process builtin timeout to keep timeout outcomes deterministic in the tool layer.
|
|
36
|
+
* - 2026-03-05: Switched shell timeout grace config to shared reliability config helper.
|
|
37
|
+
* - 2026-03-01: Prevented `./` and `../` parameter tokens from being misclassified as `<skill-id>/<path>` so non-skill shell paths remain unchanged.
|
|
38
|
+
* - 2026-02-28: Generalized skill-relative path fallback to work with any folder prefix, removing `scripts/`-specific behavior.
|
|
39
|
+
* - 2026-02-28: Added skill-aware script path resolution so `<skill-id>/scripts/<file>` parameters are auto-resolved to absolute paths under the skill root directory.
|
|
40
|
+
* - 2026-02-28: Added deterministic shell risk tiering (`allow`/`hitl_required`/`block`) with per-call HITL approve/deny gating via shared `requestToolApproval` helper for high-risk in-scope commands.
|
|
41
|
+
* - 2026-02-24: Required explicit chatId context for stdout/stderr streaming event emission to preserve chat isolation under strict frontend filtering.
|
|
42
|
+
* - 2026-02-21: Streamed stderr via legacy `tool-stream` events while streaming stdout as assistant SSE; persisted only finalized stdout assistant message after execution completes.
|
|
43
|
+
* - 2026-02-21: Added assistant-style SSE start/chunk/end streaming for shell runtime output so command chunks are delivered as assistant stream events instead of `tool-stream` messages.
|
|
44
|
+
* - 2026-02-21: Added minimal LLM shell-result mode (`status` + `exit_code` semantics) for tool-call continuations, excluding stdout/stderr transcript bodies.
|
|
30
45
|
* - 2026-02-15: Moved core cwd-boundary enforcement into `executeShellCommand` via optional `trustedWorkingDirectory` execution option.
|
|
31
46
|
* - 2026-02-15: Added optional `output_format=json` for machine-readable command results.
|
|
32
47
|
* - 2026-02-15: Added optional `artifact_paths` support with SHA-256 hashing and byte-size metadata for files within trusted scope.
|
|
@@ -75,6 +90,7 @@ export interface CommandExecutionResult {
|
|
|
75
90
|
exitCode: number | null;
|
|
76
91
|
signal: string | null;
|
|
77
92
|
error?: string;
|
|
93
|
+
failureReason?: ShellFailureReason;
|
|
78
94
|
canceled?: boolean;
|
|
79
95
|
timedOut?: boolean;
|
|
80
96
|
executedAt: Date;
|
|
@@ -95,6 +111,28 @@ export interface StructuredCommandExecutionResult {
|
|
|
95
111
|
stdout_truncated?: boolean;
|
|
96
112
|
stderr_truncated?: boolean;
|
|
97
113
|
}
|
|
114
|
+
export type ShellFailureReason = 'timeout' | 'canceled' | 'non_zero_exit' | 'execution_error' | 'validation_error' | 'approval_denied';
|
|
115
|
+
export interface MinimalShellLLMResult {
|
|
116
|
+
status: 'success' | 'failed';
|
|
117
|
+
exit_code: number | null;
|
|
118
|
+
timed_out: boolean;
|
|
119
|
+
canceled: boolean;
|
|
120
|
+
reason?: ShellFailureReason;
|
|
121
|
+
}
|
|
122
|
+
export interface PreviewShellLLMResult extends MinimalShellLLMResult {
|
|
123
|
+
stdout_preview?: string;
|
|
124
|
+
stderr_preview?: string;
|
|
125
|
+
stdout_truncated?: boolean;
|
|
126
|
+
stderr_truncated?: boolean;
|
|
127
|
+
stdout_redacted?: boolean;
|
|
128
|
+
stderr_redacted?: boolean;
|
|
129
|
+
}
|
|
130
|
+
export type ShellCommandRiskTier = 'allow' | 'hitl_required' | 'block';
|
|
131
|
+
export interface ShellCommandRiskAssessment {
|
|
132
|
+
tier: ShellCommandRiskTier;
|
|
133
|
+
reason: string;
|
|
134
|
+
tags: string[];
|
|
135
|
+
}
|
|
98
136
|
interface OutputFormattingOptions {
|
|
99
137
|
detail?: 'minimal' | 'full';
|
|
100
138
|
maxOutputChars?: number;
|
|
@@ -111,12 +149,19 @@ export declare function validateShellDirectoryRequest(requestedDirectory: unknow
|
|
|
111
149
|
valid: false;
|
|
112
150
|
error: string;
|
|
113
151
|
};
|
|
114
|
-
export declare function
|
|
152
|
+
export declare function classifyShellCommandRisk(command: unknown, parameters: unknown): ShellCommandRiskAssessment;
|
|
153
|
+
export declare function validateShellCommandScope(command: unknown, parameters: unknown, trustedWorkingDirectory: string, additionalTrustedRoots?: string[]): {
|
|
115
154
|
valid: true;
|
|
116
155
|
} | {
|
|
117
156
|
valid: false;
|
|
118
157
|
error: string;
|
|
119
158
|
};
|
|
159
|
+
export declare function resolveSkillScriptParameters(parameters: string[], runtimeSkillsRoot?: string, options?: {
|
|
160
|
+
allowBareScriptsResolution?: boolean;
|
|
161
|
+
}): {
|
|
162
|
+
resolvedParameters: string[];
|
|
163
|
+
skillRoots: string[];
|
|
164
|
+
};
|
|
120
165
|
export declare function stopShellCommandsForChat(worldId: string, chatId: string): {
|
|
121
166
|
killed: number;
|
|
122
167
|
};
|
|
@@ -170,6 +215,42 @@ export declare function getExecutionHistory(limit?: number): CommandExecutionRes
|
|
|
170
215
|
*/
|
|
171
216
|
export declare function clearExecutionHistory(): number;
|
|
172
217
|
export declare function formatStructuredResult(result: CommandExecutionResult, artifacts?: CommandExecutionArtifact[], options?: OutputFormattingOptions): StructuredCommandExecutionResult;
|
|
218
|
+
export declare function formatMinimalShellResult(result: CommandExecutionResult): MinimalShellLLMResult;
|
|
219
|
+
export declare function formatMinimalShellResultForLLM(result: CommandExecutionResult): string;
|
|
220
|
+
/**
|
|
221
|
+
* Strip ANSI escape sequences and terminal control characters from shell output
|
|
222
|
+
* before sending to the LLM. Raw terminal output often contains spinner animations
|
|
223
|
+
* (◒◐◓◑), cursor-control codes (\x1b[?25l, \x1b[999D\x1b[J), and ANSI color codes
|
|
224
|
+
* that confuse LLMs into thinking a process is still running when it has already
|
|
225
|
+
* completed successfully (exit_code: 0).
|
|
226
|
+
*
|
|
227
|
+
* Strips:
|
|
228
|
+
* - CSI sequences: \x1b[ ... final-byte (colors, cursor movement, erase, etc.)
|
|
229
|
+
* - OSC sequences: \x1b] ... \x07 or \x1b\ (terminal title/hyperlinks)
|
|
230
|
+
* - DCS/SOS/PM/APC sequences: \x1bP/\x1bX/\x1b^/\x1b_ ... \x1b\
|
|
231
|
+
* - Single-char Fe escapes: \x1b followed by non-[ byte
|
|
232
|
+
* - Bare carriage returns used by spinner overwrites
|
|
233
|
+
*/
|
|
234
|
+
export declare function stripAnsiFromShellOutput(text: string): string;
|
|
235
|
+
export declare function formatPreviewShellResult(result: CommandExecutionResult, options?: {
|
|
236
|
+
maxOutputChars?: number;
|
|
237
|
+
}): PreviewShellLLMResult;
|
|
238
|
+
export declare function formatPreviewShellResultForLLM(result: CommandExecutionResult, options?: {
|
|
239
|
+
maxOutputChars?: number;
|
|
240
|
+
}): string;
|
|
241
|
+
export declare function formatShellToolErrorResultForLLM(options: {
|
|
242
|
+
command?: unknown;
|
|
243
|
+
parameters?: unknown;
|
|
244
|
+
error: unknown;
|
|
245
|
+
failureReason?: ShellFailureReason;
|
|
246
|
+
}): string;
|
|
247
|
+
export declare function formatShellToolErrorEnvelopeContent(options: {
|
|
248
|
+
command?: unknown;
|
|
249
|
+
parameters?: unknown;
|
|
250
|
+
error: unknown;
|
|
251
|
+
failureReason?: ShellFailureReason;
|
|
252
|
+
toolCallId?: string;
|
|
253
|
+
}): string;
|
|
173
254
|
/**
|
|
174
255
|
* Format command execution result for LLM consumption
|
|
175
256
|
* Provides a human-readable summary of the execution with improved markdown formatting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-cmd-tool.d.ts","sourceRoot":"","sources":["../../core/shell-cmd-tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"shell-cmd-tool.d.ts","sourceRoot":"","sources":["../../core/shell-cmd-tool.ts"],"names":[],"mappings":"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"}
|