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.
Files changed (263) hide show
  1. package/README.md +90 -17
  2. package/dist/cli/commands.d.ts +7 -1
  3. package/dist/cli/commands.js +27 -10
  4. package/dist/cli/hitl.d.ts +4 -1
  5. package/dist/cli/hitl.js +55 -20
  6. package/dist/cli/index.js +249 -97
  7. package/dist/cli/system-events.d.ts +27 -0
  8. package/dist/cli/system-events.js +63 -0
  9. package/dist/core/activity-tracker.d.ts +26 -0
  10. package/dist/core/activity-tracker.d.ts.map +1 -1
  11. package/dist/core/activity-tracker.js +21 -4
  12. package/dist/core/activity-tracker.js.map +1 -1
  13. package/dist/core/anthropic-direct.d.ts +2 -0
  14. package/dist/core/anthropic-direct.d.ts.map +1 -1
  15. package/dist/core/anthropic-direct.js +43 -1
  16. package/dist/core/anthropic-direct.js.map +1 -1
  17. package/dist/core/chat-constants.d.ts +12 -0
  18. package/dist/core/chat-constants.d.ts.map +1 -1
  19. package/dist/core/chat-constants.js +5 -0
  20. package/dist/core/chat-constants.js.map +1 -1
  21. package/dist/core/create-agent-tool.d.ts +5 -0
  22. package/dist/core/create-agent-tool.d.ts.map +1 -1
  23. package/dist/core/create-agent-tool.js +57 -34
  24. package/dist/core/create-agent-tool.js.map +1 -1
  25. package/dist/core/events/index.d.ts +5 -2
  26. package/dist/core/events/index.d.ts.map +1 -1
  27. package/dist/core/events/index.js +5 -2
  28. package/dist/core/events/index.js.map +1 -1
  29. package/dist/core/events/memory-manager.d.ts +26 -1
  30. package/dist/core/events/memory-manager.d.ts.map +1 -1
  31. package/dist/core/events/memory-manager.js +877 -72
  32. package/dist/core/events/memory-manager.js.map +1 -1
  33. package/dist/core/events/orchestrator.d.ts +8 -0
  34. package/dist/core/events/orchestrator.d.ts.map +1 -1
  35. package/dist/core/events/orchestrator.js +203 -36
  36. package/dist/core/events/orchestrator.js.map +1 -1
  37. package/dist/core/events/persistence.d.ts +21 -14
  38. package/dist/core/events/persistence.d.ts.map +1 -1
  39. package/dist/core/events/persistence.js +100 -35
  40. package/dist/core/events/persistence.js.map +1 -1
  41. package/dist/core/events/publishers.d.ts +13 -7
  42. package/dist/core/events/publishers.d.ts.map +1 -1
  43. package/dist/core/events/publishers.js +53 -37
  44. package/dist/core/events/publishers.js.map +1 -1
  45. package/dist/core/events/subscribers.d.ts +17 -14
  46. package/dist/core/events/subscribers.d.ts.map +1 -1
  47. package/dist/core/events/subscribers.js +61 -148
  48. package/dist/core/events/subscribers.js.map +1 -1
  49. package/dist/core/events/title-scheduler.d.ts +27 -0
  50. package/dist/core/events/title-scheduler.d.ts.map +1 -0
  51. package/dist/core/events/title-scheduler.js +135 -0
  52. package/dist/core/events/title-scheduler.js.map +1 -0
  53. package/dist/core/events/tool-bridge-logging.d.ts +4 -1
  54. package/dist/core/events/tool-bridge-logging.d.ts.map +1 -1
  55. package/dist/core/events/tool-bridge-logging.js +112 -13
  56. package/dist/core/events/tool-bridge-logging.js.map +1 -1
  57. package/dist/core/events-metadata.d.ts.map +1 -1
  58. package/dist/core/events-metadata.js +8 -4
  59. package/dist/core/events-metadata.js.map +1 -1
  60. package/dist/core/export.d.ts +1 -1
  61. package/dist/core/export.d.ts.map +1 -1
  62. package/dist/core/export.js +2 -15
  63. package/dist/core/export.js.map +1 -1
  64. package/dist/core/feature-path-logging.d.ts +50 -0
  65. package/dist/core/feature-path-logging.d.ts.map +1 -0
  66. package/dist/core/feature-path-logging.js +130 -0
  67. package/dist/core/feature-path-logging.js.map +1 -0
  68. package/dist/core/file-tools.d.ts +57 -1
  69. package/dist/core/file-tools.d.ts.map +1 -1
  70. package/dist/core/file-tools.js +329 -29
  71. package/dist/core/file-tools.js.map +1 -1
  72. package/dist/core/google-direct.d.ts +6 -1
  73. package/dist/core/google-direct.d.ts.map +1 -1
  74. package/dist/core/google-direct.js +76 -7
  75. package/dist/core/google-direct.js.map +1 -1
  76. package/dist/core/heartbeat.d.ts +34 -0
  77. package/dist/core/heartbeat.d.ts.map +1 -0
  78. package/dist/core/heartbeat.js +153 -0
  79. package/dist/core/heartbeat.js.map +1 -0
  80. package/dist/core/hitl-tool.d.ts +6 -12
  81. package/dist/core/hitl-tool.d.ts.map +1 -1
  82. package/dist/core/hitl-tool.js +66 -88
  83. package/dist/core/hitl-tool.js.map +1 -1
  84. package/dist/core/hitl.d.ts +61 -4
  85. package/dist/core/hitl.d.ts.map +1 -1
  86. package/dist/core/hitl.js +324 -60
  87. package/dist/core/hitl.js.map +1 -1
  88. package/dist/core/index.d.ts +11 -7
  89. package/dist/core/index.d.ts.map +1 -1
  90. package/dist/core/index.js +10 -6
  91. package/dist/core/index.js.map +1 -1
  92. package/dist/core/llm-manager.d.ts +15 -0
  93. package/dist/core/llm-manager.d.ts.map +1 -1
  94. package/dist/core/llm-manager.js +325 -40
  95. package/dist/core/llm-manager.js.map +1 -1
  96. package/dist/core/load-skill-tool.d.ts +36 -3
  97. package/dist/core/load-skill-tool.d.ts.map +1 -1
  98. package/dist/core/load-skill-tool.js +807 -93
  99. package/dist/core/load-skill-tool.js.map +1 -1
  100. package/dist/core/logger.d.ts +14 -0
  101. package/dist/core/logger.d.ts.map +1 -1
  102. package/dist/core/logger.js +15 -0
  103. package/dist/core/logger.js.map +1 -1
  104. package/dist/core/managers.d.ts +18 -50
  105. package/dist/core/managers.d.ts.map +1 -1
  106. package/dist/core/managers.js +340 -502
  107. package/dist/core/managers.js.map +1 -1
  108. package/dist/core/mcp-server-registry.d.ts +16 -1
  109. package/dist/core/mcp-server-registry.d.ts.map +1 -1
  110. package/dist/core/mcp-server-registry.js +162 -12
  111. package/dist/core/mcp-server-registry.js.map +1 -1
  112. package/dist/core/message-cutoff.d.ts +29 -0
  113. package/dist/core/message-cutoff.d.ts.map +1 -0
  114. package/dist/core/message-cutoff.js +63 -0
  115. package/dist/core/message-cutoff.js.map +1 -0
  116. package/dist/core/message-edit-manager.d.ts +54 -0
  117. package/dist/core/message-edit-manager.d.ts.map +1 -0
  118. package/dist/core/message-edit-manager.js +602 -0
  119. package/dist/core/message-edit-manager.js.map +1 -0
  120. package/dist/core/message-prep.d.ts +2 -0
  121. package/dist/core/message-prep.d.ts.map +1 -1
  122. package/dist/core/message-prep.js +39 -12
  123. package/dist/core/message-prep.js.map +1 -1
  124. package/dist/core/message-processing-control.d.ts +1 -0
  125. package/dist/core/message-processing-control.d.ts.map +1 -1
  126. package/dist/core/message-processing-control.js +23 -6
  127. package/dist/core/message-processing-control.js.map +1 -1
  128. package/dist/core/openai-direct.d.ts +9 -3
  129. package/dist/core/openai-direct.d.ts.map +1 -1
  130. package/dist/core/openai-direct.js +267 -33
  131. package/dist/core/openai-direct.js.map +1 -1
  132. package/dist/core/optional-tracers/opik-runtime.d.ts +32 -0
  133. package/dist/core/optional-tracers/opik-runtime.d.ts.map +1 -0
  134. package/dist/core/optional-tracers/opik-runtime.js +141 -0
  135. package/dist/core/optional-tracers/opik-runtime.js.map +1 -0
  136. package/dist/core/queue-manager.d.ts +84 -0
  137. package/dist/core/queue-manager.d.ts.map +1 -0
  138. package/dist/core/queue-manager.js +814 -0
  139. package/dist/core/queue-manager.js.map +1 -0
  140. package/dist/core/reasoning-controls.d.ts +30 -0
  141. package/dist/core/reasoning-controls.d.ts.map +1 -0
  142. package/dist/core/reasoning-controls.js +118 -0
  143. package/dist/core/reasoning-controls.js.map +1 -0
  144. package/dist/core/reliability-config.d.ts +82 -0
  145. package/dist/core/reliability-config.d.ts.map +1 -0
  146. package/dist/core/reliability-config.js +106 -0
  147. package/dist/core/reliability-config.js.map +1 -0
  148. package/dist/core/reliability-runtime.d.ts +53 -0
  149. package/dist/core/reliability-runtime.d.ts.map +1 -0
  150. package/dist/core/reliability-runtime.js +92 -0
  151. package/dist/core/reliability-runtime.js.map +1 -0
  152. package/dist/core/security/guardrails.d.ts +21 -0
  153. package/dist/core/security/guardrails.d.ts.map +1 -0
  154. package/dist/core/security/guardrails.js +111 -0
  155. package/dist/core/security/guardrails.js.map +1 -0
  156. package/dist/core/send-message-tool.d.ts +79 -0
  157. package/dist/core/send-message-tool.d.ts.map +1 -0
  158. package/dist/core/send-message-tool.js +222 -0
  159. package/dist/core/send-message-tool.js.map +1 -0
  160. package/dist/core/shell-cmd-tool.d.ts +82 -1
  161. package/dist/core/shell-cmd-tool.d.ts.map +1 -1
  162. package/dist/core/shell-cmd-tool.js +854 -42
  163. package/dist/core/shell-cmd-tool.js.map +1 -1
  164. package/dist/core/skill-registry.d.ts +2 -0
  165. package/dist/core/skill-registry.d.ts.map +1 -1
  166. package/dist/core/skill-registry.js +52 -2
  167. package/dist/core/skill-registry.js.map +1 -1
  168. package/dist/core/storage/eventStorage/fileEventStorage.d.ts +5 -0
  169. package/dist/core/storage/eventStorage/fileEventStorage.d.ts.map +1 -1
  170. package/dist/core/storage/eventStorage/fileEventStorage.js +61 -0
  171. package/dist/core/storage/eventStorage/fileEventStorage.js.map +1 -1
  172. package/dist/core/storage/eventStorage/memoryEventStorage.d.ts +5 -0
  173. package/dist/core/storage/eventStorage/memoryEventStorage.d.ts.map +1 -1
  174. package/dist/core/storage/eventStorage/memoryEventStorage.js +34 -0
  175. package/dist/core/storage/eventStorage/memoryEventStorage.js.map +1 -1
  176. package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts +1 -0
  177. package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts.map +1 -1
  178. package/dist/core/storage/eventStorage/sqliteEventStorage.js +19 -2
  179. package/dist/core/storage/eventStorage/sqliteEventStorage.js.map +1 -1
  180. package/dist/core/storage/eventStorage/types.d.ts +6 -0
  181. package/dist/core/storage/eventStorage/types.d.ts.map +1 -1
  182. package/dist/core/storage/eventStorage/types.js +1 -0
  183. package/dist/core/storage/eventStorage/types.js.map +1 -1
  184. package/dist/core/storage/eventStorage/validation.d.ts.map +1 -1
  185. package/dist/core/storage/eventStorage/validation.js +2 -1
  186. package/dist/core/storage/eventStorage/validation.js.map +1 -1
  187. package/dist/core/storage/github-world-import.d.ts +84 -0
  188. package/dist/core/storage/github-world-import.d.ts.map +1 -0
  189. package/dist/core/storage/github-world-import.js +365 -0
  190. package/dist/core/storage/github-world-import.js.map +1 -0
  191. package/dist/core/storage/memory-storage.d.ts +19 -8
  192. package/dist/core/storage/memory-storage.d.ts.map +1 -1
  193. package/dist/core/storage/memory-storage.js +147 -49
  194. package/dist/core/storage/memory-storage.js.map +1 -1
  195. package/dist/core/storage/queue-storage.d.ts +1 -0
  196. package/dist/core/storage/queue-storage.d.ts.map +1 -1
  197. package/dist/core/storage/queue-storage.js +3 -2
  198. package/dist/core/storage/queue-storage.js.map +1 -1
  199. package/dist/core/storage/sqlite-storage.d.ts +14 -9
  200. package/dist/core/storage/sqlite-storage.d.ts.map +1 -1
  201. package/dist/core/storage/sqlite-storage.js +131 -154
  202. package/dist/core/storage/sqlite-storage.js.map +1 -1
  203. package/dist/core/storage/storage-factory.d.ts +3 -0
  204. package/dist/core/storage/storage-factory.d.ts.map +1 -1
  205. package/dist/core/storage/storage-factory.js +175 -89
  206. package/dist/core/storage/storage-factory.js.map +1 -1
  207. package/dist/core/storage/world-storage.d.ts +1 -1
  208. package/dist/core/storage/world-storage.d.ts.map +1 -1
  209. package/dist/core/storage/world-storage.js +5 -1
  210. package/dist/core/storage/world-storage.js.map +1 -1
  211. package/dist/core/storage-init.d.ts +11 -0
  212. package/dist/core/storage-init.d.ts.map +1 -0
  213. package/dist/core/storage-init.js +122 -0
  214. package/dist/core/storage-init.js.map +1 -0
  215. package/dist/core/subscription.d.ts +8 -1
  216. package/dist/core/subscription.d.ts.map +1 -1
  217. package/dist/core/subscription.js +130 -23
  218. package/dist/core/subscription.js.map +1 -1
  219. package/dist/core/tool-approval.d.ts +45 -0
  220. package/dist/core/tool-approval.d.ts.map +1 -0
  221. package/dist/core/tool-approval.js +223 -0
  222. package/dist/core/tool-approval.js.map +1 -0
  223. package/dist/core/tool-execution-envelope.d.ts +87 -0
  224. package/dist/core/tool-execution-envelope.d.ts.map +1 -0
  225. package/dist/core/tool-execution-envelope.js +168 -0
  226. package/dist/core/tool-execution-envelope.js.map +1 -0
  227. package/dist/core/tool-utils.d.ts +7 -2
  228. package/dist/core/tool-utils.d.ts.map +1 -1
  229. package/dist/core/tool-utils.js +81 -17
  230. package/dist/core/tool-utils.js.map +1 -1
  231. package/dist/core/types.d.ts +67 -19
  232. package/dist/core/types.d.ts.map +1 -1
  233. package/dist/core/types.js +3 -0
  234. package/dist/core/types.js.map +1 -1
  235. package/dist/core/utils.d.ts +7 -0
  236. package/dist/core/utils.d.ts.map +1 -1
  237. package/dist/core/utils.js +71 -21
  238. package/dist/core/utils.js.map +1 -1
  239. package/dist/core/web-fetch-tool.d.ts +72 -0
  240. package/dist/core/web-fetch-tool.d.ts.map +1 -0
  241. package/dist/core/web-fetch-tool.js +491 -0
  242. package/dist/core/web-fetch-tool.js.map +1 -0
  243. package/dist/core/world-registry.d.ts +84 -0
  244. package/dist/core/world-registry.d.ts.map +1 -0
  245. package/dist/core/world-registry.js +247 -0
  246. package/dist/core/world-registry.js.map +1 -0
  247. package/dist/public/assets/index-Be-1xtV-.js +104 -0
  248. package/dist/public/assets/index-tsDdiXDU.css +1 -0
  249. package/dist/public/index.html +2 -2
  250. package/dist/public/mcp-sandbox-proxy.html +148 -0
  251. package/dist/server/api.js +260 -18
  252. package/dist/server/error-response.d.ts +27 -0
  253. package/dist/server/error-response.js +77 -0
  254. package/dist/server/index.d.ts +2 -1
  255. package/dist/server/index.js +6 -2
  256. package/dist/server/sse-handler.d.ts +11 -1
  257. package/dist/server/sse-handler.js +194 -34
  258. package/migrations/0015_add_message_queue.sql +36 -0
  259. package/migrations/0016_add_world_heartbeat.sql +13 -0
  260. package/migrations/0017_add_title_provenance.sql +7 -0
  261. package/package.json +31 -10
  262. package/dist/public/assets/index-BW41BxMy.css +0 -1
  263. 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 validateShellCommandScope(command: unknown, parameters: unknown, trustedWorkingDirectory: string): {
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":"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"}
1
+ {"version":3,"file":"shell-cmd-tool.d.ts","sourceRoot":"","sources":["../../core/shell-cmd-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAsBH,OAAO,EAYL,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC9B,MAAM,6BAA6B,CAAC;AAmBrC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,UAAU,GACV,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,eAAe,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAOD,UAAU,uBAAuB;IAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAgED,wBAAgB,mCAAmC,CAAC,OAAO,CAAC,EAAE;IAC5D,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAWT;AAED,wBAAgB,6BAA6B,CAC3C,kBAAkB,EAAE,OAAO,EAC3B,uBAAuB,EAAE,MAAM,GAC9B;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAmBnD;AA+RD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO,GAClB,0BAA0B,CA8D5B;AAgLD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO,EACnB,uBAAuB,EAAE,MAAM,EAC/B,sBAAsB,CAAC,EAAE,MAAM,EAAE,GAChC;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA8DnD;AA6ID,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAAE,EACpB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE;IACR,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,GACA;IAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAgDxD;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAE5F;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAGlF;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,YAAK,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC1D,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC7B,GACL,OAAO,CAAC,sBAAsB,CAAC,CAqWjC;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC7C,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAE3F;AAED,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,iCAAsC,GAC9C,2BAA2B,EAAE,CAE/B;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAEpF;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,4BAA4B,CAsBxF;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,GACjD,MAAM,IAAI,CAEZ;AAED,wBAAgB,kCAAkC,IAAI;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAQA;AA4BD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,MAAY,GAAG,sBAAsB,EAAE,CAQjF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAK9C;AAuED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,sBAAsB,EAC9B,SAAS,GAAE,wBAAwB,EAAO,EAC1C,OAAO,GAAE,uBAA4B,GACpC,gCAAgC,CAoBlC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,sBAAsB,GAC7B,qBAAqB,CA0BvB;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAErF;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc7D;AAgCD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,qBAAqB,CAgBvB;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,MAAM,CAkCR;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC,GAAG,MAAM,CAqBT;AA8ED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CA4BT;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAmER;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA2ClB,GAAG,eAAe,MAAM,mBAAmB,MAAM,YAAY,GAAG;EA8SzF"}