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.
Files changed (263) hide show
  1. package/README.md +105 -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 +9 -2
  5. package/dist/cli/hitl.js +61 -20
  6. package/dist/cli/index.js +250 -96
  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 +38 -2
  10. package/dist/core/activity-tracker.d.ts.map +1 -1
  11. package/dist/core/activity-tracker.js +62 -9
  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 +28 -25
  22. package/dist/core/create-agent-tool.d.ts.map +1 -1
  23. package/dist/core/create-agent-tool.js +264 -141
  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 +214 -38
  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 -61
  40. package/dist/core/events/persistence.js.map +1 -1
  41. package/dist/core/events/publishers.d.ts +13 -16
  42. package/dist/core/events/publishers.d.ts.map +1 -1
  43. package/dist/core/events/publishers.js +54 -55
  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 +68 -147
  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 +73 -0
  81. package/dist/core/hitl-tool.d.ts.map +1 -0
  82. package/dist/core/hitl-tool.js +284 -0
  83. package/dist/core/hitl-tool.js.map +1 -0
  84. package/dist/core/hitl.d.ts +85 -8
  85. package/dist/core/hitl.d.ts.map +1 -1
  86. package/dist/core/hitl.js +375 -61
  87. package/dist/core/hitl.js.map +1 -1
  88. package/dist/core/index.d.ts +12 -7
  89. package/dist/core/index.d.ts.map +1 -1
  90. package/dist/core/index.js +11 -6
  91. package/dist/core/index.js.map +1 -1
  92. package/dist/core/llm-manager.d.ts +17 -0
  93. package/dist/core/llm-manager.d.ts.map +1 -1
  94. package/dist/core/llm-manager.js +335 -43
  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 +41 -52
  105. package/dist/core/managers.d.ts.map +1 -1
  106. package/dist/core/managers.js +422 -533
  107. package/dist/core/managers.js.map +1 -1
  108. package/dist/core/mcp-server-registry.d.ts +19 -2
  109. package/dist/core/mcp-server-registry.d.ts.map +1 -1
  110. package/dist/core/mcp-server-registry.js +168 -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 +9 -2
  228. package/dist/core/tool-utils.d.ts.map +1 -1
  229. package/dist/core/tool-utils.js +122 -28
  230. package/dist/core/tool-utils.js.map +1 -1
  231. package/dist/core/types.d.ts +69 -36
  232. package/dist/core/types.d.ts.map +1 -1
  233. package/dist/core/types.js +3 -2
  234. package/dist/core/types.js.map +1 -1
  235. package/dist/core/utils.d.ts +16 -0
  236. package/dist/core/utils.d.ts.map +1 -1
  237. package/dist/core/utils.js +99 -24
  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 +288 -58
  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 +13 -2
  257. package/dist/server/sse-handler.js +194 -26
  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-BO20H4xt.js +0 -96
  263. package/dist/public/assets/index-ETY7W5_S.css +0 -1
@@ -1,210 +1,333 @@
1
1
  /**
2
- * Create Agent Tool Module - Built-in tool for approval-gated agent creation.
2
+ * Create Agent Tool Module - Built-in tool for approval-gated agent creation
3
3
  *
4
4
  * Purpose:
5
- * - Provide a deterministic `create_agent` built-in tool that creates agents after explicit user approval.
5
+ * - Expose a built-in `create_agent` tool that creates one new agent after explicit user approval.
6
6
  *
7
7
  * Key Features:
8
- * - Requires `name` and supports optional `autoReply`, `role`, and `nextAgent` arguments.
9
- * - Enforces a mandatory HITL approval check before creating any agent.
10
- * - Inherits provider/model from world-level `chatLLMProvider` / `chatLLMModel` when configured.
11
- * - Generates a stable system prompt template for new agents.
12
- * - Returns structured JSON payloads for success, denial, and error outcomes.
8
+ * - Requires `name` and supports optional `autoReply`, `role`, and `nextAgent` inputs.
9
+ * - Enforces HITL approval with deterministic deny/timeout handling before persistence.
10
+ * - Generates deterministic system prompt text for multi-agent routing.
11
+ * - Uses world-level chat provider/model settings with deterministic fallbacks.
13
12
  *
14
- * Notes on Implementation:
15
- * - Uses `requestWorldOption` for approval (no custom approval protocol).
16
- * - Uses core `createAgent` manager API to preserve existing persistence and CRUD event behavior.
17
- * - Applies deterministic defaults when world-level provider/model are not configured.
13
+ * Implementation Notes:
14
+ * - Uses manager-level `createAgent` as the persistence boundary.
15
+ * - Returns deterministic JSON-string payloads for success, denial, and errors.
16
+ * - Keeps runtime contract canonical (`autoReply`, `nextAgent`) while aliases are handled upstream.
18
17
  *
19
18
  * Recent Changes:
20
- * - 2026-02-19: Initial implementation of approval-gated `create_agent` built-in tool.
19
+ * - 2026-03-12: Shared tool approval flow now persists durable approval prompt/resolution messages for replay-safe denial history.
20
+ * - 2026-03-12: Added `read` permission level guard — returns a blocked-tool error when world toolPermission is 'read'.
21
+ * - 2026-02-20: Added post-create HITL informational confirmation (`Agent <name> has been created`) with `refreshAfterDismiss` metadata set to true.
22
+ * - 2026-02-20: Pre-claim agent creation slot before approval dialog to prevent parallel-call race where both calls pass approval before either calls createAgent.
23
+ * - 2026-02-20: Updated tool create path to allow manager-level create during the current in-flight world processing turn.
24
+ * - 2026-02-20: Updated `create_agent` default behavior so omitted `autoReply` resolves to `false`.
25
+ * - 2026-02-20: Added initial built-in `create_agent` tool implementation with mandatory approval gate.
21
26
  */
22
27
  import { requestWorldOption } from './hitl.js';
23
- import { createAgent } from './managers.js';
24
- import { LLMProvider } from './types.js';
25
- import { toKebabCase } from './utils.js';
28
+ import { requestToolApproval } from './tool-approval.js';
29
+ import { createAgent, claimAgentCreationSlot } from './managers.js';
30
+ import { getEnvValueFromText } from './utils.js';
31
+ import { LLMProvider, EventType } from './types.js';
32
+ import { publishEvent } from './events/publishers.js';
26
33
  const APPROVAL_OPTION_YES = 'yes';
27
34
  const APPROVAL_OPTION_NO = 'no';
35
+ const INFO_OPTION_DISMISS = 'dismiss';
36
+ const DEFAULT_NEXT_AGENT = 'human';
28
37
  const DEFAULT_PROVIDER = LLMProvider.OPENAI;
29
38
  const DEFAULT_MODEL = 'gpt-4';
30
- const DEFAULT_NEXT_AGENT = 'human';
31
- const MAX_ROLE_LENGTH = 240;
32
- function normalizeSingleLineText(value) {
33
- if (typeof value !== 'string')
34
- return '';
35
- return value.replace(/\s+/g, ' ').trim();
39
+ function stringifyResult(payload) {
40
+ return JSON.stringify(payload);
36
41
  }
37
- function resolveRole(role) {
38
- const normalized = normalizeSingleLineText(role);
39
- if (!normalized)
40
- return '';
41
- return normalized.slice(0, MAX_ROLE_LENGTH);
42
- }
43
- function resolveNextAgent(nextAgent) {
44
- const normalized = normalizeSingleLineText(nextAgent);
45
- if (!normalized)
46
- return DEFAULT_NEXT_AGENT;
47
- const stripped = normalized.startsWith('@') ? normalized.slice(1) : normalized;
48
- const token = toKebabCase(stripped);
49
- return token || DEFAULT_NEXT_AGENT;
42
+ function normalizeWhitespace(value) {
43
+ return value.replace(/\s+/g, ' ').trim();
50
44
  }
51
- function resolveProvider(world) {
52
- const configured = normalizeSingleLineText(world?.chatLLMProvider).toLowerCase();
53
- const allProviders = new Set(Object.values(LLMProvider));
54
- if (configured && allProviders.has(configured)) {
55
- return configured;
45
+ function validateAndNormalizeArgs(args) {
46
+ if (typeof args.name !== 'string' || !args.name.trim()) {
47
+ return { valid: false, error: 'Missing required parameter: name' };
56
48
  }
57
- return DEFAULT_PROVIDER;
58
- }
59
- function resolveModel(world) {
60
- const configured = normalizeSingleLineText(world?.chatLLMModel);
61
- return configured || DEFAULT_MODEL;
49
+ if (args.autoReply !== undefined && typeof args.autoReply !== 'boolean') {
50
+ return { valid: false, error: 'Parameter autoReply must be a boolean when provided' };
51
+ }
52
+ if (args.role !== undefined && typeof args.role !== 'string') {
53
+ return { valid: false, error: 'Parameter role must be a string when provided' };
54
+ }
55
+ if (args.nextAgent !== undefined && typeof args.nextAgent !== 'string') {
56
+ return { valid: false, error: 'Parameter nextAgent must be a string when provided' };
57
+ }
58
+ const name = normalizeWhitespace(args.name);
59
+ const autoReply = args.autoReply ?? false;
60
+ const role = typeof args.role === 'string' && args.role.trim()
61
+ ? normalizeWhitespace(args.role)
62
+ : null;
63
+ const nextAgent = typeof args.nextAgent === 'string' && args.nextAgent.trim()
64
+ ? normalizeWhitespace(args.nextAgent)
65
+ : DEFAULT_NEXT_AGENT;
66
+ return {
67
+ valid: true,
68
+ args: { name, autoReply, role, nextAgent },
69
+ };
62
70
  }
63
- function buildSystemPrompt(name, role, nextAgent) {
64
- const roleSentence = role ? `Your role is ${role}.` : 'Your role is not specified.';
65
- return [
66
- `You are agent ${name}. ${roleSentence}`,
67
- '',
68
- 'Always respond in exactly this structure:',
69
- `@${nextAgent}`,
70
- '{Your response}',
71
- ].join('\n');
71
+ function buildDeterministicSystemPrompt(name, role, nextAgent) {
72
+ const firstLine = role
73
+ ? `You are agent ${name}. Your role is ${role}.`
74
+ : `You are agent ${name}.`;
75
+ return `${firstLine}\n\nAlways respond in exactly this structure:\n@${nextAgent}\n{Your response}`;
72
76
  }
73
- function formatResult(payload) {
74
- return JSON.stringify(payload, null, 2);
77
+ function resolveProviderAndModel(world) {
78
+ const provider = typeof world?.chatLLMProvider === 'string' && world.chatLLMProvider.trim()
79
+ ? world.chatLLMProvider
80
+ : DEFAULT_PROVIDER;
81
+ const model = typeof world?.chatLLMModel === 'string' && world.chatLLMModel.trim()
82
+ ? world.chatLLMModel.trim()
83
+ : DEFAULT_MODEL;
84
+ return { provider: provider, model };
75
85
  }
76
- function formatErrorResult(message) {
77
- return formatResult({
78
- success: false,
79
- created: false,
80
- error: message,
86
+ async function requestCreateAgentApproval(options) {
87
+ const approval = await requestToolApproval({
88
+ world: options.world,
89
+ title: `Create agent ${options.name}?`,
90
+ message: [
91
+ `Create a new agent named "${options.name}"?`,
92
+ `Auto reply: ${options.autoReply ? 'enabled' : 'disabled'}`,
93
+ `Role: ${options.role ?? '(none)'}`,
94
+ `Next agent: ${options.nextAgent}`,
95
+ ].join('\n'),
96
+ chatId: options.chatId,
97
+ toolCallId: options.toolCallId,
98
+ defaultOptionId: APPROVAL_OPTION_NO,
99
+ options: [
100
+ { id: APPROVAL_OPTION_YES, label: 'Yes', description: 'Create the agent now.' },
101
+ { id: APPROVAL_OPTION_NO, label: 'No', description: 'Do not create the agent.' },
102
+ ],
103
+ approvedOptionIds: [APPROVAL_OPTION_YES],
104
+ metadata: {
105
+ tool: 'create_agent',
106
+ name: options.name,
107
+ autoReply: options.autoReply,
108
+ role: options.role,
109
+ nextAgent: options.nextAgent,
110
+ },
111
+ agentName: options.agentName ?? null,
112
+ messages: options.messages,
81
113
  });
114
+ return {
115
+ approved: approval.approved,
116
+ reason: approval.reason,
117
+ };
82
118
  }
83
- function formatDeniedResult(optionId, source, message) {
84
- return formatResult({
85
- success: false,
86
- created: false,
87
- approval: {
88
- optionId,
89
- source,
90
- approved: false,
119
+ async function requestCreateAgentCreatedInfo(options) {
120
+ await requestWorldOption(options.world, {
121
+ title: `Agent ${options.name} created`,
122
+ message: [
123
+ `Agent ${options.name} has been created.`,
124
+ `Auto reply: ${options.autoReply ? 'enabled' : 'disabled'}`,
125
+ `Role: ${options.role ?? '(none)'}`,
126
+ `Next agent: ${options.nextAgent}`,
127
+ `Provider: ${options.provider}`,
128
+ `Model: ${options.model}`,
129
+ ].join('\n'),
130
+ chatId: options.chatId,
131
+ defaultOptionId: INFO_OPTION_DISMISS,
132
+ options: [
133
+ { id: INFO_OPTION_DISMISS, label: 'Dismiss', description: 'Close this confirmation.' },
134
+ ],
135
+ metadata: {
136
+ kind: 'create_agent_created',
137
+ refreshAfterDismiss: true,
138
+ agent: {
139
+ name: options.name,
140
+ autoReply: options.autoReply,
141
+ role: options.role,
142
+ nextAgent: options.nextAgent,
143
+ provider: options.provider,
144
+ model: options.model,
145
+ },
91
146
  },
92
- message,
93
147
  });
94
148
  }
95
149
  export function createCreateAgentToolDefinition() {
96
150
  return {
97
- description: 'Create a new agent after explicit user approval. Requires `name`; supports optional `autoReply`, `role`, and `nextAgent`.',
151
+ description: 'Create a new agent after explicit user approval. Requires name. Optional: autoReply (alias auto-reply), role, nextAgent (alias next agent).',
98
152
  parameters: {
99
153
  type: 'object',
100
154
  properties: {
101
155
  name: {
102
156
  type: 'string',
103
- description: 'Name for the new agent.',
157
+ description: 'Required agent display name.',
104
158
  },
105
159
  autoReply: {
106
160
  type: 'boolean',
107
- description: 'Optional auto-reply flag. Defaults to true.',
161
+ description: 'Optional auto-reply toggle. Alias forms like "auto-reply" are accepted.',
108
162
  },
109
163
  role: {
110
164
  type: 'string',
111
- description: 'Optional role sentence used in the generated system prompt.',
165
+ description: 'Optional role sentence fragment for deterministic system prompt generation.',
112
166
  },
113
167
  nextAgent: {
114
168
  type: 'string',
115
- description: 'Optional mention target used in the generated response template.',
169
+ description: 'Optional next agent mention target. Alias forms like "next agent" are accepted.',
116
170
  },
117
171
  },
118
172
  required: ['name'],
119
173
  additionalProperties: false,
120
174
  },
121
175
  execute: async (args, _sequenceId, _parentToolCall, context) => {
176
+ const normalized = validateAndNormalizeArgs(args || {});
177
+ if (!normalized.valid) {
178
+ return stringifyResult({
179
+ ok: false,
180
+ status: 'error',
181
+ code: 'validation_error',
182
+ created: false,
183
+ message: normalized.error,
184
+ });
185
+ }
186
+ const world = context?.world;
187
+ const worldId = String(world?.id || '').trim();
188
+ const chatId = typeof context?.chatId === 'string' && context.chatId.trim()
189
+ ? context.chatId.trim()
190
+ : null;
191
+ // Check world-level tool permission
192
+ const toolPermission = getEnvValueFromText(world?.variables, 'tool_permission') ?? 'auto';
193
+ if (toolPermission === 'read') {
194
+ return stringifyResult({
195
+ ok: false,
196
+ status: 'blocked',
197
+ created: false,
198
+ message: 'create_agent is blocked by the current permission level (read).',
199
+ });
200
+ }
201
+ if (!world || !worldId) {
202
+ return stringifyResult({
203
+ ok: false,
204
+ status: 'error',
205
+ code: 'approval_unavailable',
206
+ created: false,
207
+ message: 'create_agent requires a valid world context to request approval.',
208
+ });
209
+ }
210
+ // Claim the creation slot BEFORE showing the approval dialog.
211
+ // This prevents a race where two parallel create_agent calls both pass approval
212
+ // before either calls createAgent — the second call would then find the agent
213
+ // already exists and fail with a confusing post-approval error.
214
+ const slot = await claimAgentCreationSlot(worldId, normalized.args.name);
215
+ if (!slot.claimed) {
216
+ return stringifyResult({
217
+ ok: false,
218
+ status: 'error',
219
+ code: 'agent_exists',
220
+ created: false,
221
+ name: normalized.args.name,
222
+ message: slot.reason === 'already_pending'
223
+ ? `Agent '${normalized.args.name}' is already being created.`
224
+ : `Agent '${normalized.args.name}' already exists.`,
225
+ });
226
+ }
227
+ // Track whether createAgent was called so the finally block knows whether
228
+ // to release the slot manually (createAgent's own finally handles it otherwise).
229
+ let createAgentCalled = false;
122
230
  try {
123
- const name = normalizeSingleLineText(args?.name);
124
- if (!name) {
125
- return formatErrorResult('Missing required parameter: name');
126
- }
127
- const world = context?.world;
128
- const worldId = normalizeSingleLineText(world?.id);
129
- if (!world || !worldId || !world.eventEmitter) {
130
- return formatErrorResult('Approval context unavailable: world runtime is required for create_agent.');
131
- }
132
- const autoReply = args?.autoReply !== undefined ? !!args.autoReply : true;
133
- const role = resolveRole(args?.role);
134
- const nextAgent = resolveNextAgent(args?.nextAgent);
135
- const provider = resolveProvider(world);
136
- const model = resolveModel(world);
137
- const systemPrompt = buildSystemPrompt(name, role, nextAgent);
138
- const chatId = context?.chatId ?? world.currentChatId ?? null;
139
- const approval = await requestWorldOption(world, {
140
- title: `Create agent ${name}?`,
141
- message: [
142
- `Create a new agent with name "${name}"?`,
143
- `autoReply: ${String(autoReply)}`,
144
- `role: ${role || '(not specified)'}`,
145
- `nextAgent: ${nextAgent}`,
146
- `provider: ${provider}`,
147
- `model: ${model}`,
148
- ].join('\n'),
231
+ const approval = await requestCreateAgentApproval({
232
+ world,
149
233
  chatId,
150
- defaultOptionId: APPROVAL_OPTION_NO,
151
- options: [
152
- {
153
- id: APPROVAL_OPTION_YES,
154
- label: 'Yes',
155
- description: 'Create this agent now.',
156
- },
157
- {
158
- id: APPROVAL_OPTION_NO,
159
- label: 'No',
160
- description: 'Do not create this agent.',
161
- },
162
- ],
163
- metadata: {
164
- tool: 'create_agent',
165
- name,
166
- autoReply,
167
- role,
168
- nextAgent,
169
- provider,
170
- model,
171
- },
234
+ name: normalized.args.name,
235
+ autoReply: normalized.args.autoReply,
236
+ role: normalized.args.role,
237
+ nextAgent: normalized.args.nextAgent,
238
+ messages: context?.messages,
239
+ toolCallId: context?.toolCallId,
240
+ agentName: context?.agentName ?? null,
172
241
  });
173
- if (approval.optionId !== APPROVAL_OPTION_YES) {
174
- const denialMessage = approval.source === 'timeout'
175
- ? `Agent creation timed out and defaulted to ${approval.optionId}.`
176
- : 'User denied agent creation.';
177
- return formatDeniedResult(approval.optionId, approval.source, denialMessage);
242
+ if (!approval.approved) {
243
+ return stringifyResult({
244
+ ok: false,
245
+ status: 'denied',
246
+ created: false,
247
+ reason: approval.reason,
248
+ name: normalized.args.name,
249
+ });
178
250
  }
179
- const createdAgent = await createAgent(worldId, {
180
- name,
251
+ const { provider, model } = resolveProviderAndModel(world);
252
+ const systemPrompt = buildDeterministicSystemPrompt(normalized.args.name, normalized.args.role, normalized.args.nextAgent);
253
+ const createParams = {
254
+ name: normalized.args.name,
181
255
  type: 'default',
182
- autoReply,
256
+ autoReply: normalized.args.autoReply,
183
257
  provider,
184
258
  model,
185
259
  systemPrompt,
186
- }, { allowWhileProcessing: true });
187
- return formatResult({
188
- success: true,
260
+ };
261
+ createAgentCalled = true;
262
+ const createdAgent = await createAgent(worldId, createParams, {
263
+ allowWhileWorldProcessing: true,
264
+ slotAlreadyClaimed: true,
265
+ });
266
+ if (chatId) {
267
+ // Notify UI to refresh the agent list
268
+ publishEvent(world, EventType.SYSTEM, {
269
+ eventType: 'agent-created',
270
+ agent: {
271
+ id: createdAgent.id,
272
+ name: createdAgent.name,
273
+ type: createdAgent.type,
274
+ autoReply: createdAgent.autoReply ?? false,
275
+ },
276
+ }, chatId);
277
+ try {
278
+ await requestCreateAgentCreatedInfo({
279
+ world,
280
+ chatId,
281
+ name: createdAgent.name,
282
+ autoReply: createdAgent.autoReply ?? false,
283
+ role: normalized.args.role,
284
+ nextAgent: normalized.args.nextAgent,
285
+ provider: createdAgent.provider,
286
+ model: createdAgent.model,
287
+ });
288
+ }
289
+ catch {
290
+ // Agent creation already succeeded. Failure to show a follow-up info
291
+ // prompt must not turn a successful create into an error result.
292
+ }
293
+ }
294
+ return stringifyResult({
295
+ ok: true,
296
+ status: 'created',
189
297
  created: true,
190
298
  agent: {
191
299
  id: createdAgent.id,
192
300
  name: createdAgent.name,
193
- autoReply: createdAgent.autoReply !== false,
301
+ type: createdAgent.type,
302
+ autoReply: createdAgent.autoReply ?? false,
194
303
  provider: createdAgent.provider,
195
304
  model: createdAgent.model,
196
- role: role || null,
197
- nextAgent,
198
- systemPrompt: createdAgent.systemPrompt || systemPrompt,
305
+ },
306
+ effective: {
307
+ role: normalized.args.role,
308
+ nextAgent: normalized.args.nextAgent,
309
+ systemPrompt,
199
310
  },
200
311
  });
201
312
  }
202
313
  catch (error) {
203
- if (error instanceof Error && error.name === 'AbortError') {
204
- throw error;
205
- }
206
314
  const message = error instanceof Error ? error.message : String(error);
207
- return formatErrorResult(message);
315
+ return stringifyResult({
316
+ ok: false,
317
+ status: 'error',
318
+ code: 'create_failed',
319
+ created: false,
320
+ name: normalized.args.name,
321
+ message,
322
+ });
323
+ }
324
+ finally {
325
+ // Release the slot if createAgent was never called (denial, timeout, or
326
+ // pre-creation error). If createAgent was called, its own finally already
327
+ // cleaned up — calling release() again is safe (idempotent Set.delete).
328
+ if (!createAgentCalled) {
329
+ slot.release();
330
+ }
208
331
  }
209
332
  },
210
333
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create-agent-tool.js","sourceRoot":"","sources":["../../core/create-agent-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-agent-tool.js","sourceRoot":"","sources":["../../core/create-agent-tool.ts"],"names":[],"mappings":"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"}
@@ -9,16 +9,19 @@
9
9
  * - mention-logic.ts: Auto-mention processing (Layer 2)
10
10
  * - persistence.ts: Event persistence (Layer 4)
11
11
  * - memory-manager.ts: Memory & LLM resumption (Layer 4)
12
+ * - title-scheduler.ts: Chat-title scheduling & idle logic (Layer 4)
12
13
  * - orchestrator.ts: Agent message processing (Layer 5)
13
14
  * - subscribers.ts: Event subscriptions (Layer 6)
14
15
  *
15
16
  * Changes:
16
- * - 2026-02-08: Removed outdated manual tool-intervention checker module reference
17
- * - 2025-11-09: Completed extraction of all layers (2-6) from monolithic events.ts
17
+ * - 2026-03-03: Added title-scheduler.ts (Layer 4) export.
18
+ * - 2026-02-08: Removed outdated manual tool-intervention checker module reference.
19
+ * - 2025-11-09: Completed extraction of all layers (2-6) from monolithic events.ts.
18
20
  */
19
21
  export * from './mention-logic.js';
20
22
  export * from './publishers.js';
21
23
  export * from './persistence.js';
22
24
  export * from './memory-manager.js';
25
+ export * from './title-scheduler.js';
23
26
  export * from './orchestrator.js';
24
27
  export * from './subscribers.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,cAAc,oBAAoB,CAAC;AAGnC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,cAAc,oBAAoB,CAAC;AAGnC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC"}
@@ -9,12 +9,14 @@
9
9
  * - mention-logic.ts: Auto-mention processing (Layer 2)
10
10
  * - persistence.ts: Event persistence (Layer 4)
11
11
  * - memory-manager.ts: Memory & LLM resumption (Layer 4)
12
+ * - title-scheduler.ts: Chat-title scheduling & idle logic (Layer 4)
12
13
  * - orchestrator.ts: Agent message processing (Layer 5)
13
14
  * - subscribers.ts: Event subscriptions (Layer 6)
14
15
  *
15
16
  * Changes:
16
- * - 2026-02-08: Removed outdated manual tool-intervention checker module reference
17
- * - 2025-11-09: Completed extraction of all layers (2-6) from monolithic events.ts
17
+ * - 2026-03-03: Added title-scheduler.ts (Layer 4) export.
18
+ * - 2026-02-08: Removed outdated manual tool-intervention checker module reference.
19
+ * - 2025-11-09: Completed extraction of all layers (2-6) from monolithic events.ts.
18
20
  */
19
21
  // Layer 2: Pure utilities (no dependencies)
20
22
  export * from './mention-logic.js';
@@ -23,6 +25,7 @@ export * from './publishers.js';
23
25
  // Layer 4: Persistence & Memory
24
26
  export * from './persistence.js';
25
27
  export * from './memory-manager.js';
28
+ export * from './title-scheduler.js';
26
29
  // Layer 5: Orchestration
27
30
  export * from './orchestrator.js';
28
31
  // Layer 6: Subscriptions
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../core/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,4CAA4C;AAC5C,cAAc,oBAAoB,CAAC;AAEnC,4BAA4B;AAC5B,cAAc,iBAAiB,CAAC;AAEhC,gCAAgC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAEpC,yBAAyB;AACzB,cAAc,mBAAmB,CAAC;AAElC,yBAAyB;AACzB,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../core/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4CAA4C;AAC5C,cAAc,oBAAoB,CAAC;AAEnC,4BAA4B;AAC5B,cAAc,iBAAiB,CAAC;AAEhC,gCAAgC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,yBAAyB;AACzB,cAAc,mBAAmB,CAAC;AAElC,yBAAyB;AACzB,cAAc,kBAAkB,CAAC"}