@crewx/sdk 0.8.0-rc.73 → 0.8.0-rc.75

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 (548) hide show
  1. package/README.md +380 -818
  2. package/dist/adapter/context-builder.d.ts +35 -0
  3. package/dist/adapter/context-builder.js +87 -0
  4. package/dist/adapter/index.d.ts +5 -0
  5. package/dist/{core/remote → adapter}/index.js +3 -2
  6. package/dist/adapter/plugin-helper.d.ts +19 -0
  7. package/dist/adapter/plugin-helper.js +45 -0
  8. package/dist/adapter/scoped-store.d.ts +12 -0
  9. package/dist/adapter/scoped-store.js +43 -0
  10. package/dist/adapter/types.d.ts +264 -0
  11. package/dist/adapter/types.js +23 -0
  12. package/dist/agent/resolver.d.ts +18 -0
  13. package/dist/agent/resolver.js +46 -0
  14. package/dist/boxing/box-storage.interface.d.ts +12 -0
  15. package/dist/boxing/box-storage.interface.js +3 -0
  16. package/dist/boxing/box.service.d.ts +4 -0
  17. package/dist/boxing/box.service.js +5 -1
  18. package/dist/boxing/box.types.d.ts +4 -0
  19. package/dist/boxing/box.types.js +3 -0
  20. package/dist/boxing/context-builder.d.ts +6 -7
  21. package/dist/boxing/context-builder.js +3 -0
  22. package/dist/client/CrewxClient.d.ts +65 -0
  23. package/dist/client/CrewxClient.js +86 -0
  24. package/dist/client/index.d.ts +3 -0
  25. package/dist/client/index.js +6 -0
  26. package/dist/config/loader.browser.d.ts +14 -0
  27. package/dist/config/loader.browser.js +59 -0
  28. package/dist/config/loader.d.ts +19 -0
  29. package/dist/config/loader.js +95 -0
  30. package/dist/conversation/index.d.ts +5 -3
  31. package/dist/conversation/index.js +8 -3
  32. package/dist/conversation/sqlite-provider.d.ts +21 -0
  33. package/dist/conversation/sqlite-provider.js +178 -0
  34. package/dist/conversation/to-task-reader.d.ts +14 -0
  35. package/dist/conversation/to-task-reader.js +28 -0
  36. package/dist/conversation/to-template-messages.d.ts +15 -0
  37. package/dist/conversation/to-template-messages.js +34 -0
  38. package/dist/conversation/types.d.ts +101 -0
  39. package/dist/conversation/types.js +10 -0
  40. package/dist/esm/agent/resolver.js +41 -0
  41. package/dist/esm/boxing/box-storage.interface.js +5 -0
  42. package/dist/esm/boxing/box.service.js +69 -0
  43. package/dist/esm/boxing/box.types.js +5 -0
  44. package/dist/esm/boxing/context-builder.js +76 -0
  45. package/dist/esm/client/CrewxClient.js +82 -0
  46. package/dist/esm/client/index.js +2 -0
  47. package/dist/esm/config/loader.browser.js +54 -0
  48. package/dist/esm/config/loader.js +77 -0
  49. package/dist/esm/events/TypedEventEmitter.js +61 -0
  50. package/dist/esm/events/types.js +8 -0
  51. package/dist/esm/facade/Crewx.browser.js +310 -0
  52. package/dist/esm/facade/Crewx.js +941 -0
  53. package/dist/esm/hooks/define.js +10 -0
  54. package/dist/esm/hooks/dispatch.js +76 -0
  55. package/dist/esm/hooks/index.js +6 -0
  56. package/dist/esm/hooks/observer.js +56 -0
  57. package/dist/esm/hooks/plugin.js +12 -0
  58. package/dist/esm/hooks/types.js +9 -0
  59. package/dist/esm/index.browser.js +15 -0
  60. package/dist/esm/index.js +60 -0
  61. package/dist/esm/layout/loader.js +268 -0
  62. package/dist/esm/layout/props-validator.js +297 -0
  63. package/dist/esm/layout/renderer.js +180 -0
  64. package/dist/esm/layout/types.js +31 -0
  65. package/dist/esm/parallel/agent-runtime.js +21 -0
  66. package/dist/esm/parallel/helpers.js +214 -0
  67. package/dist/esm/parallel/index.js +5 -0
  68. package/dist/esm/parallel/parallel-runner.js +221 -0
  69. package/dist/esm/parallel/types.js +5 -0
  70. package/dist/esm/parsers/agent-call.util.js +15 -0
  71. package/dist/esm/parsers/claude.parser.js +64 -0
  72. package/dist/esm/parsers/codex.parser.js +97 -0
  73. package/dist/esm/parsers/copilot.parser.js +63 -0
  74. package/dist/esm/parsers/gemini.parser.js +43 -0
  75. package/dist/esm/parsers/opencode.parser.js +73 -0
  76. package/dist/esm/parsers/router.js +53 -0
  77. package/dist/esm/platform/BrowserFsAdapter.js +80 -0
  78. package/dist/esm/platform/IFsAdapter.js +2 -0
  79. package/dist/esm/platform/NodeFsAdapter.js +34 -0
  80. package/dist/esm/plugin/plugin-provider.js +202 -0
  81. package/dist/esm/plugin/types.js +8 -0
  82. package/dist/esm/plugin.js +25 -0
  83. package/dist/esm/provider/bridge.browser.js +43 -0
  84. package/dist/esm/provider/bridge.js +373 -0
  85. package/dist/esm/provider/parse-usage.js +80 -0
  86. package/dist/esm/provider/register-api.js +21 -0
  87. package/dist/esm/provider/vercel-runtime.js +310 -0
  88. package/dist/esm/remote/index.js +10 -0
  89. package/dist/esm/remote/remote-agent-manager.js +194 -0
  90. package/dist/esm/remote/remote-provider.js +98 -0
  91. package/dist/esm/remote/remote-transport.js +79 -0
  92. package/dist/esm/remote/types.js +8 -0
  93. package/dist/esm/server/auth.js +31 -0
  94. package/dist/esm/server/handler.js +72 -0
  95. package/dist/esm/server/index.js +5 -0
  96. package/dist/esm/server/tool-adapter.js +92 -0
  97. package/dist/esm/template/engine.js +100 -0
  98. package/dist/esm/template/helpers/exec.browser.js +31 -0
  99. package/dist/esm/template/helpers/exec.js +220 -0
  100. package/dist/esm/template/helpers/fenced_code.js +17 -0
  101. package/dist/esm/template/helpers/include.js +20 -0
  102. package/dist/esm/template/helpers/p1p2.js +83 -0
  103. package/dist/esm/template/loader/DocumentLoader.js +124 -0
  104. package/dist/esm/template/types.js +5 -0
  105. package/dist/esm/tools/delegate.js +57 -0
  106. package/dist/esm/tools/index.js +5 -0
  107. package/dist/esm/tools/node/builtin.js +541 -0
  108. package/dist/esm/tools/node/index.js +54 -0
  109. package/dist/esm/types/index.js +27 -0
  110. package/dist/esm/types/task-log.types.js +5 -0
  111. package/dist/esm/utils/env-defaults.js +23 -0
  112. package/dist/esm/utils/glob-match.js +38 -0
  113. package/dist/esm/utils/id.js +46 -0
  114. package/dist/esm/utils/workspace.js +21 -0
  115. package/dist/events/TypedEventEmitter.d.ts +31 -0
  116. package/dist/events/TypedEventEmitter.js +65 -0
  117. package/dist/events/types.d.ts +139 -0
  118. package/dist/events/types.js +9 -0
  119. package/dist/facade/Crewx.browser.d.ts +73 -0
  120. package/dist/facade/Crewx.browser.js +314 -0
  121. package/dist/facade/Crewx.d.ts +267 -0
  122. package/dist/facade/Crewx.js +1299 -0
  123. package/dist/hooks/define.d.ts +10 -0
  124. package/dist/hooks/define.js +13 -0
  125. package/dist/hooks/dispatch.d.ts +61 -0
  126. package/dist/hooks/dispatch.js +147 -0
  127. package/dist/hooks/index.d.ts +13 -0
  128. package/dist/hooks/index.js +24 -0
  129. package/dist/hooks/observer.d.ts +20 -0
  130. package/dist/hooks/observer.js +60 -0
  131. package/dist/hooks/plugin.d.ts +19 -0
  132. package/dist/hooks/plugin.js +17 -0
  133. package/dist/hooks/tool-normalize.d.ts +29 -0
  134. package/dist/hooks/tool-normalize.js +110 -0
  135. package/dist/hooks/types.d.ts +79 -0
  136. package/dist/hooks/types.js +12 -0
  137. package/dist/hooks/yaml-plugin.d.ts +29 -0
  138. package/dist/hooks/yaml-plugin.js +356 -0
  139. package/dist/index.browser.d.ts +15 -0
  140. package/dist/index.browser.js +25 -0
  141. package/dist/index.d.ts +70 -58
  142. package/dist/index.js +144 -133
  143. package/dist/{services/layout-loader.service.d.ts → layout/loader.d.ts} +24 -4
  144. package/dist/{services/layout-loader.service.js → layout/loader.js} +103 -73
  145. package/dist/{services/props-validator.service.d.ts → layout/props-validator.d.ts} +7 -1
  146. package/dist/{services/props-validator.service.js → layout/props-validator.js} +28 -59
  147. package/dist/{services/layout-renderer.service.d.ts → layout/renderer.d.ts} +28 -14
  148. package/dist/layout/renderer.js +193 -0
  149. package/dist/{types/layout.types.d.ts → layout/types.d.ts} +47 -1
  150. package/dist/{types/layout.types.js → layout/types.js} +15 -1
  151. package/dist/parallel/agent-runtime.d.ts +31 -0
  152. package/dist/parallel/agent-runtime.js +25 -0
  153. package/dist/{core/parallel → parallel}/helpers.d.ts +2 -1
  154. package/dist/{core/parallel → parallel}/helpers.js +55 -88
  155. package/dist/parallel/index.d.ts +8 -0
  156. package/dist/{core/parallel → parallel}/index.js +5 -3
  157. package/dist/{core/parallel → parallel}/parallel-runner.d.ts +8 -1
  158. package/dist/{core/parallel → parallel}/parallel-runner.js +53 -57
  159. package/dist/parallel/types.d.ts +65 -0
  160. package/dist/parallel/types.js +6 -0
  161. package/dist/parsers/agent-call.util.d.ts +3 -0
  162. package/dist/parsers/agent-call.util.js +2 -0
  163. package/dist/parsers/api.parser.d.ts +10 -0
  164. package/dist/parsers/api.parser.js +26 -0
  165. package/dist/parsers/claude.parser.d.ts +8 -0
  166. package/dist/parsers/claude.parser.js +22 -1
  167. package/dist/parsers/codex.parser.d.ts +8 -0
  168. package/dist/parsers/codex.parser.js +11 -0
  169. package/dist/parsers/copilot.parser.d.ts +9 -0
  170. package/dist/parsers/copilot.parser.js +8 -0
  171. package/dist/parsers/gemini.parser.d.ts +10 -0
  172. package/dist/parsers/gemini.parser.js +10 -0
  173. package/dist/parsers/opencode.parser.d.ts +12 -0
  174. package/dist/parsers/opencode.parser.js +76 -0
  175. package/dist/parsers/router.d.ts +7 -0
  176. package/dist/parsers/router.js +56 -0
  177. package/dist/platform/BrowserFsAdapter.d.ts +37 -0
  178. package/dist/platform/BrowserFsAdapter.js +84 -0
  179. package/dist/platform/IFsAdapter.d.ts +29 -0
  180. package/dist/{core/remote/types.js → platform/IFsAdapter.js} +1 -1
  181. package/dist/platform/NodeFsAdapter.d.ts +16 -0
  182. package/dist/platform/NodeFsAdapter.js +38 -0
  183. package/dist/plugin/plugin-provider.d.ts +33 -0
  184. package/dist/plugin/plugin-provider.js +207 -0
  185. package/dist/plugin/types.d.ts +53 -0
  186. package/dist/plugin/types.js +9 -0
  187. package/dist/plugin.d.ts +33 -0
  188. package/dist/plugin.js +29 -0
  189. package/dist/plugins/conversation.d.ts +18 -0
  190. package/dist/plugins/conversation.js +59 -0
  191. package/dist/plugins/file-logger.d.ts +29 -0
  192. package/dist/plugins/file-logger.js +87 -0
  193. package/dist/plugins/index.d.ts +16 -0
  194. package/dist/plugins/index.js +19 -0
  195. package/dist/plugins/sqlite-tracing.d.ts +29 -0
  196. package/dist/plugins/sqlite-tracing.js +112 -0
  197. package/dist/provider/bridge.browser.d.ts +49 -0
  198. package/dist/provider/bridge.browser.js +49 -0
  199. package/dist/provider/bridge.d.ts +106 -0
  200. package/dist/provider/bridge.js +380 -0
  201. package/dist/provider/mastra-runtime.d.ts +45 -0
  202. package/dist/provider/mastra-runtime.js +208 -0
  203. package/dist/provider/parse-usage.d.ts +20 -0
  204. package/dist/provider/parse-usage.js +83 -0
  205. package/dist/provider/register-api.d.ts +14 -0
  206. package/dist/provider/register-api.js +24 -0
  207. package/dist/provider/vercel-runtime.d.ts +54 -0
  208. package/dist/provider/vercel-runtime.js +347 -0
  209. package/dist/remote/index.d.ts +13 -0
  210. package/dist/remote/index.js +32 -0
  211. package/dist/remote/remote-agent-manager.d.ts +54 -0
  212. package/dist/{core/remote → remote}/remote-agent-manager.js +100 -97
  213. package/dist/remote/remote-provider.d.ts +47 -0
  214. package/dist/remote/remote-provider.js +141 -0
  215. package/dist/remote/remote-transport.d.ts +32 -0
  216. package/dist/remote/remote-transport.js +83 -0
  217. package/dist/remote/types.d.ts +147 -0
  218. package/dist/remote/types.js +9 -0
  219. package/dist/server/auth.d.ts +21 -0
  220. package/dist/server/auth.js +35 -0
  221. package/dist/server/handler.d.ts +24 -0
  222. package/dist/server/handler.js +75 -0
  223. package/dist/server/index.d.ts +7 -0
  224. package/dist/server/index.js +9 -0
  225. package/dist/server/tool-adapter.d.ts +19 -0
  226. package/dist/server/tool-adapter.js +95 -0
  227. package/dist/template/engine.d.ts +28 -0
  228. package/dist/template/engine.js +137 -0
  229. package/dist/template/helpers/exec.browser.d.ts +22 -0
  230. package/dist/template/helpers/exec.browser.js +41 -0
  231. package/dist/template/helpers/exec.d.ts +60 -0
  232. package/dist/template/helpers/exec.js +230 -0
  233. package/dist/template/helpers/fenced_code.d.ts +22 -0
  234. package/dist/template/helpers/fenced_code.js +20 -0
  235. package/dist/template/helpers/format-conversation.d.ts +30 -0
  236. package/dist/template/helpers/format-conversation.js +53 -0
  237. package/dist/template/helpers/include.d.ts +16 -0
  238. package/dist/template/helpers/include.js +23 -0
  239. package/dist/template/helpers/p1p2.d.ts +37 -0
  240. package/dist/template/helpers/p1p2.js +90 -0
  241. package/dist/template/loader/DocumentLoader.d.ts +48 -0
  242. package/dist/template/loader/DocumentLoader.js +128 -0
  243. package/dist/template/types.d.ts +51 -0
  244. package/dist/template/types.js +6 -0
  245. package/dist/testing/index.d.ts +12 -0
  246. package/dist/testing/index.js +16 -0
  247. package/dist/testing/mock-audit.d.ts +10 -0
  248. package/dist/testing/mock-audit.js +13 -0
  249. package/dist/testing/mock-context.d.ts +27 -0
  250. package/dist/testing/mock-context.js +68 -0
  251. package/dist/testing/mock-logger.d.ts +15 -0
  252. package/dist/testing/mock-logger.js +27 -0
  253. package/dist/testing/mock-router.d.ts +16 -0
  254. package/dist/testing/mock-router.js +67 -0
  255. package/dist/testing/mock-storage.d.ts +9 -0
  256. package/dist/testing/mock-storage.js +21 -0
  257. package/dist/testing/mock-store.d.ts +3 -0
  258. package/dist/testing/mock-store.js +8 -0
  259. package/dist/tools/delegate.d.ts +10 -0
  260. package/dist/tools/delegate.js +60 -0
  261. package/dist/tools/index.d.ts +5 -12
  262. package/dist/tools/index.js +6 -37
  263. package/dist/tools/node/builtin.d.ts +23 -0
  264. package/dist/tools/node/builtin.js +547 -0
  265. package/dist/tools/node/index.d.ts +23 -0
  266. package/dist/tools/node/index.js +59 -0
  267. package/dist/types/index.d.ts +804 -6
  268. package/dist/types/index.js +29 -20
  269. package/dist/types/task-log.types.d.ts +4 -0
  270. package/dist/types/task-log.types.js +3 -0
  271. package/dist/utils/env-defaults.d.ts +18 -0
  272. package/dist/utils/env-defaults.js +27 -0
  273. package/dist/utils/glob-match.d.ts +18 -0
  274. package/dist/utils/glob-match.js +42 -0
  275. package/dist/{core → utils}/id.d.ts +15 -0
  276. package/dist/utils/id.js +50 -0
  277. package/dist/utils/timestamp.d.ts +2 -0
  278. package/dist/utils/timestamp.js +13 -0
  279. package/dist/{core → utils}/workspace.d.ts +4 -0
  280. package/dist/{core → utils}/workspace.js +3 -0
  281. package/package.json +68 -103
  282. package/src/schemas/hooks.schema.json +59 -0
  283. package/templates/agents/default.yaml +490 -0
  284. package/templates/agents/minimal.yaml +16 -0
  285. package/LICENSE +0 -201
  286. package/dist/adapters/MastraToolAdapter.d.ts +0 -9
  287. package/dist/adapters/MastraToolAdapter.js +0 -66
  288. package/dist/adapters/MastraToolAdapter.js.map +0 -1
  289. package/dist/api/index.d.ts +0 -2
  290. package/dist/api/index.js +0 -8
  291. package/dist/api/index.js.map +0 -1
  292. package/dist/boxing/box-storage.interface.js.map +0 -1
  293. package/dist/boxing/box.service.js.map +0 -1
  294. package/dist/boxing/box.types.js.map +0 -1
  295. package/dist/boxing/context-builder.js.map +0 -1
  296. package/dist/boxing/index.d.ts +0 -6
  297. package/dist/boxing/index.js +0 -11
  298. package/dist/boxing/index.js.map +0 -1
  299. package/dist/boxing/tokenizer.d.ts +0 -3
  300. package/dist/boxing/tokenizer.js +0 -11
  301. package/dist/boxing/tokenizer.js.map +0 -1
  302. package/dist/config/api-provider-parser.d.ts +0 -58
  303. package/dist/config/api-provider-parser.js +0 -212
  304. package/dist/config/api-provider-parser.js.map +0 -1
  305. package/dist/config/index.d.ts +0 -3
  306. package/dist/config/index.js +0 -20
  307. package/dist/config/index.js.map +0 -1
  308. package/dist/config/log.config.d.ts +0 -7
  309. package/dist/config/log.config.js +0 -20
  310. package/dist/config/log.config.js.map +0 -1
  311. package/dist/config/pricing.d.ts +0 -11
  312. package/dist/config/pricing.js +0 -53
  313. package/dist/config/pricing.js.map +0 -1
  314. package/dist/config/timeout.config.d.ts +0 -14
  315. package/dist/config/timeout.config.js +0 -34
  316. package/dist/config/timeout.config.js.map +0 -1
  317. package/dist/config/yaml-loader.d.ts +0 -8
  318. package/dist/config/yaml-loader.js +0 -155
  319. package/dist/config/yaml-loader.js.map +0 -1
  320. package/dist/constants/index.d.ts +0 -4
  321. package/dist/constants/index.js +0 -8
  322. package/dist/constants/index.js.map +0 -1
  323. package/dist/constants.d.ts +0 -1
  324. package/dist/constants.js +0 -18
  325. package/dist/constants.js.map +0 -1
  326. package/dist/conversation/conversation-config.d.ts +0 -9
  327. package/dist/conversation/conversation-config.js +0 -22
  328. package/dist/conversation/conversation-config.js.map +0 -1
  329. package/dist/conversation/conversation-history.interface.d.ts +0 -36
  330. package/dist/conversation/conversation-history.interface.js +0 -3
  331. package/dist/conversation/conversation-history.interface.js.map +0 -1
  332. package/dist/conversation/conversation-storage.service.d.ts +0 -16
  333. package/dist/conversation/conversation-storage.service.js +0 -213
  334. package/dist/conversation/conversation-storage.service.js.map +0 -1
  335. package/dist/conversation/index.js.map +0 -1
  336. package/dist/core/__tests__/id.test.d.ts +0 -1
  337. package/dist/core/__tests__/id.test.js +0 -115
  338. package/dist/core/__tests__/id.test.js.map +0 -1
  339. package/dist/core/agent/agent-factory.d.ts +0 -37
  340. package/dist/core/agent/agent-factory.js +0 -68
  341. package/dist/core/agent/agent-factory.js.map +0 -1
  342. package/dist/core/agent/agent-runtime.d.ts +0 -52
  343. package/dist/core/agent/agent-runtime.js +0 -206
  344. package/dist/core/agent/agent-runtime.js.map +0 -1
  345. package/dist/core/agent/event-bus.d.ts +0 -44
  346. package/dist/core/agent/event-bus.js +0 -43
  347. package/dist/core/agent/event-bus.js.map +0 -1
  348. package/dist/core/agent/index.d.ts +0 -3
  349. package/dist/core/agent/index.js +0 -13
  350. package/dist/core/agent/index.js.map +0 -1
  351. package/dist/core/env-defaults.d.ts +0 -1
  352. package/dist/core/env-defaults.js +0 -7
  353. package/dist/core/env-defaults.js.map +0 -1
  354. package/dist/core/id.js +0 -27
  355. package/dist/core/id.js.map +0 -1
  356. package/dist/core/parallel/helpers.js.map +0 -1
  357. package/dist/core/parallel/index.d.ts +0 -4
  358. package/dist/core/parallel/index.js.map +0 -1
  359. package/dist/core/parallel/parallel-runner.js.map +0 -1
  360. package/dist/core/parallel/types.d.ts +0 -41
  361. package/dist/core/parallel/types.js +0 -3
  362. package/dist/core/parallel/types.js.map +0 -1
  363. package/dist/core/providers/MastraAPIProvider.d.ts +0 -31
  364. package/dist/core/providers/MastraAPIProvider.js +0 -365
  365. package/dist/core/providers/MastraAPIProvider.js.map +0 -1
  366. package/dist/core/providers/ai-provider.interface.d.ts +0 -79
  367. package/dist/core/providers/ai-provider.interface.js +0 -23
  368. package/dist/core/providers/ai-provider.interface.js.map +0 -1
  369. package/dist/core/providers/base-ai.provider.d.ts +0 -84
  370. package/dist/core/providers/base-ai.provider.js +0 -1237
  371. package/dist/core/providers/base-ai.provider.js.map +0 -1
  372. package/dist/core/providers/base-ai.types.d.ts +0 -26
  373. package/dist/core/providers/base-ai.types.js +0 -3
  374. package/dist/core/providers/base-ai.types.js.map +0 -1
  375. package/dist/core/providers/claude.provider.d.ts +0 -19
  376. package/dist/core/providers/claude.provider.js +0 -170
  377. package/dist/core/providers/claude.provider.js.map +0 -1
  378. package/dist/core/providers/codex.provider.d.ts +0 -21
  379. package/dist/core/providers/codex.provider.js +0 -134
  380. package/dist/core/providers/codex.provider.js.map +0 -1
  381. package/dist/core/providers/copilot.provider.d.ts +0 -25
  382. package/dist/core/providers/copilot.provider.js +0 -146
  383. package/dist/core/providers/copilot.provider.js.map +0 -1
  384. package/dist/core/providers/dynamic-provider.factory.d.ts +0 -74
  385. package/dist/core/providers/dynamic-provider.factory.js +0 -645
  386. package/dist/core/providers/dynamic-provider.factory.js.map +0 -1
  387. package/dist/core/providers/gemini.provider.d.ts +0 -16
  388. package/dist/core/providers/gemini.provider.js +0 -101
  389. package/dist/core/providers/gemini.provider.js.map +0 -1
  390. package/dist/core/providers/index.d.ts +0 -8
  391. package/dist/core/providers/index.js +0 -20
  392. package/dist/core/providers/index.js.map +0 -1
  393. package/dist/core/providers/mock.provider.d.ts +0 -13
  394. package/dist/core/providers/mock.provider.js +0 -55
  395. package/dist/core/providers/mock.provider.js.map +0 -1
  396. package/dist/core/providers/provider-factory.d.ts +0 -3
  397. package/dist/core/providers/provider-factory.js +0 -65
  398. package/dist/core/providers/provider-factory.js.map +0 -1
  399. package/dist/core/providers/tool-call.types.d.ts +0 -39
  400. package/dist/core/providers/tool-call.types.js +0 -3
  401. package/dist/core/providers/tool-call.types.js.map +0 -1
  402. package/dist/core/remote/index.d.ts +0 -3
  403. package/dist/core/remote/index.js.map +0 -1
  404. package/dist/core/remote/remote-agent-manager.d.ts +0 -24
  405. package/dist/core/remote/remote-agent-manager.js.map +0 -1
  406. package/dist/core/remote/remote-transport.d.ts +0 -15
  407. package/dist/core/remote/remote-transport.js +0 -70
  408. package/dist/core/remote/remote-transport.js.map +0 -1
  409. package/dist/core/remote/types.d.ts +0 -79
  410. package/dist/core/remote/types.js.map +0 -1
  411. package/dist/core/workspace.js.map +0 -1
  412. package/dist/index.js.map +0 -1
  413. package/dist/internal/index.d.ts +0 -1
  414. package/dist/internal/index.js +0 -6
  415. package/dist/internal/index.js.map +0 -1
  416. package/dist/knowledge/DocumentManager.d.ts +0 -4
  417. package/dist/knowledge/DocumentManager.js +0 -119
  418. package/dist/knowledge/DocumentManager.js.map +0 -1
  419. package/dist/knowledge/index.d.ts +0 -1
  420. package/dist/knowledge/index.js +0 -18
  421. package/dist/knowledge/index.js.map +0 -1
  422. package/dist/parsers/agent-call.util.js.map +0 -1
  423. package/dist/parsers/claude.parser.js.map +0 -1
  424. package/dist/parsers/codex.parser.js.map +0 -1
  425. package/dist/parsers/copilot.parser.js.map +0 -1
  426. package/dist/parsers/gemini.parser.js.map +0 -1
  427. package/dist/parsers/index.d.ts +0 -7
  428. package/dist/parsers/index.js +0 -45
  429. package/dist/parsers/index.js.map +0 -1
  430. package/dist/schema/skills-parser.d.ts +0 -8
  431. package/dist/schema/skills-parser.js +0 -438
  432. package/dist/schema/skills-parser.js.map +0 -1
  433. package/dist/schema/skills.types.d.ts +0 -158
  434. package/dist/schema/skills.types.js +0 -41
  435. package/dist/schema/skills.types.js.map +0 -1
  436. package/dist/schemas/api-provider.schema.d.ts +0 -432
  437. package/dist/schemas/api-provider.schema.js +0 -50
  438. package/dist/schemas/api-provider.schema.js.map +0 -1
  439. package/dist/services/index.d.ts +0 -2
  440. package/dist/services/index.js +0 -19
  441. package/dist/services/index.js.map +0 -1
  442. package/dist/services/layout-loader.service.js.map +0 -1
  443. package/dist/services/layout-renderer.service.js +0 -325
  444. package/dist/services/layout-renderer.service.js.map +0 -1
  445. package/dist/services/props-validator.service.js.map +0 -1
  446. package/dist/skills/adapter/claude-skill-adapter.d.ts +0 -11
  447. package/dist/skills/adapter/claude-skill-adapter.js +0 -222
  448. package/dist/skills/adapter/claude-skill-adapter.js.map +0 -1
  449. package/dist/skills/index.d.ts +0 -6
  450. package/dist/skills/index.js +0 -31
  451. package/dist/skills/index.js.map +0 -1
  452. package/dist/skills/runtime/progressive-loader.d.ts +0 -27
  453. package/dist/skills/runtime/progressive-loader.js +0 -186
  454. package/dist/skills/runtime/progressive-loader.js.map +0 -1
  455. package/dist/skills/runtime/runtime-requirements-validator.d.ts +0 -23
  456. package/dist/skills/runtime/runtime-requirements-validator.js +0 -248
  457. package/dist/skills/runtime/runtime-requirements-validator.js.map +0 -1
  458. package/dist/skills/runtime/skill-runtime.service.d.ts +0 -42
  459. package/dist/skills/runtime/skill-runtime.service.js +0 -434
  460. package/dist/skills/runtime/skill-runtime.service.js.map +0 -1
  461. package/dist/tools/file-system.service.d.ts +0 -10
  462. package/dist/tools/file-system.service.js +0 -33
  463. package/dist/tools/file-system.service.js.map +0 -1
  464. package/dist/tools/find.tool.d.ts +0 -21
  465. package/dist/tools/find.tool.js +0 -139
  466. package/dist/tools/find.tool.js.map +0 -1
  467. package/dist/tools/glob.tool.d.ts +0 -24
  468. package/dist/tools/glob.tool.js +0 -153
  469. package/dist/tools/glob.tool.js.map +0 -1
  470. package/dist/tools/grep.tool.d.ts +0 -1
  471. package/dist/tools/grep.tool.js +0 -137
  472. package/dist/tools/grep.tool.js.map +0 -1
  473. package/dist/tools/index.js.map +0 -1
  474. package/dist/tools/ls.tool.d.ts +0 -1
  475. package/dist/tools/ls.tool.js +0 -94
  476. package/dist/tools/ls.tool.js.map +0 -1
  477. package/dist/tools/read-file.tool.d.ts +0 -1
  478. package/dist/tools/read-file.tool.js +0 -69
  479. package/dist/tools/read-file.tool.js.map +0 -1
  480. package/dist/tools/replace.tool.d.ts +0 -1
  481. package/dist/tools/replace.tool.js +0 -68
  482. package/dist/tools/replace.tool.js.map +0 -1
  483. package/dist/tools/run-shell-command.tool.d.ts +0 -1
  484. package/dist/tools/run-shell-command.tool.js +0 -64
  485. package/dist/tools/run-shell-command.tool.js.map +0 -1
  486. package/dist/tools/tree.tool.d.ts +0 -1
  487. package/dist/tools/tree.tool.js +0 -109
  488. package/dist/tools/tree.tool.js.map +0 -1
  489. package/dist/tools/types.d.ts +0 -42
  490. package/dist/tools/types.js +0 -13
  491. package/dist/tools/types.js.map +0 -1
  492. package/dist/tools/utils/file-utils.d.ts +0 -5
  493. package/dist/tools/utils/file-utils.js +0 -221
  494. package/dist/tools/utils/file-utils.js.map +0 -1
  495. package/dist/tools/write-file.tool.d.ts +0 -1
  496. package/dist/tools/write-file.tool.js +0 -55
  497. package/dist/tools/write-file.tool.js.map +0 -1
  498. package/dist/types/agent.types.d.ts +0 -134
  499. package/dist/types/agent.types.js +0 -16
  500. package/dist/types/agent.types.js.map +0 -1
  501. package/dist/types/api-provider.types.d.ts +0 -85
  502. package/dist/types/api-provider.types.js +0 -65
  503. package/dist/types/api-provider.types.js.map +0 -1
  504. package/dist/types/index.js.map +0 -1
  505. package/dist/types/layout.types.js.map +0 -1
  506. package/dist/types/provider.types.d.ts +0 -12
  507. package/dist/types/provider.types.js +0 -3
  508. package/dist/types/provider.types.js.map +0 -1
  509. package/dist/types/skill-runtime.types.d.ts +0 -244
  510. package/dist/types/skill-runtime.types.js +0 -44
  511. package/dist/types/skill-runtime.types.js.map +0 -1
  512. package/dist/types/structured-payload.types.d.ts +0 -46
  513. package/dist/types/structured-payload.types.js +0 -65
  514. package/dist/types/structured-payload.types.js.map +0 -1
  515. package/dist/types/task-log.types.js.map +0 -1
  516. package/dist/types/template.types.d.ts +0 -38
  517. package/dist/types/template.types.js +0 -3
  518. package/dist/types/template.types.js.map +0 -1
  519. package/dist/types.d.ts +0 -1
  520. package/dist/types.js +0 -18
  521. package/dist/types.js.map +0 -1
  522. package/dist/utils/api-provider-normalizer.d.ts +0 -16
  523. package/dist/utils/api-provider-normalizer.js +0 -135
  524. package/dist/utils/api-provider-normalizer.js.map +0 -1
  525. package/dist/utils/base-message-formatter.d.ts +0 -32
  526. package/dist/utils/base-message-formatter.js +0 -170
  527. package/dist/utils/base-message-formatter.js.map +0 -1
  528. package/dist/utils/error-utils.d.ts +0 -3
  529. package/dist/utils/error-utils.js +0 -27
  530. package/dist/utils/error-utils.js.map +0 -1
  531. package/dist/utils/index.d.ts +0 -4
  532. package/dist/utils/index.js +0 -21
  533. package/dist/utils/index.js.map +0 -1
  534. package/dist/utils/math-utils.d.ts +0 -3
  535. package/dist/utils/math-utils.js +0 -10
  536. package/dist/utils/math-utils.js.map +0 -1
  537. package/dist/utils/mention-parser.d.ts +0 -18
  538. package/dist/utils/mention-parser.js +0 -136
  539. package/dist/utils/mention-parser.js.map +0 -1
  540. package/dist/utils/string-utils.d.ts +0 -1
  541. package/dist/utils/string-utils.js +0 -10
  542. package/dist/utils/string-utils.js.map +0 -1
  543. package/dist/utils.d.ts +0 -3
  544. package/dist/utils.js +0 -20
  545. package/dist/utils.js.map +0 -1
  546. package/schema/api-provider-config.json +0 -138
  547. package/schema/crewx-config.json +0 -224
  548. package/schema/skills-config.json +0 -306
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Remote Agent Module — Type Definitions
3
+ *
4
+ * Types for remote agent communication via MCP (Model Context Protocol).
5
+ * Migrated from sdk-bak/src/core/remote/types.ts and adapted to SDK conventions.
6
+ */
7
+ /**
8
+ * Transport abstraction for remote MCP communication.
9
+ * Designed for future extension (WebSocket, gRPC, etc.).
10
+ */
11
+ export interface RemoteTransport {
12
+ /** Send a JSON-RPC 2.0 request and receive a response. */
13
+ send(request: McpJsonRpcRequest): Promise<McpJsonRpcResponse>;
14
+ /** Release transport resources. */
15
+ close(): Promise<void>;
16
+ }
17
+ /** MCP JSON-RPC 2.0 Request */
18
+ export interface McpJsonRpcRequest {
19
+ jsonrpc: '2.0';
20
+ id: string;
21
+ method: string;
22
+ params?: Record<string, unknown>;
23
+ }
24
+ /** MCP JSON-RPC 2.0 Response */
25
+ export interface McpJsonRpcResponse<T = unknown> {
26
+ jsonrpc: '2.0';
27
+ id: string;
28
+ result?: T;
29
+ error?: {
30
+ code: number;
31
+ message: string;
32
+ data?: unknown;
33
+ };
34
+ }
35
+ /** Remote agent configuration (SDK-internal format). */
36
+ export interface RemoteAgentConfig {
37
+ /** Remote agent type (currently only mcp-http supported). */
38
+ type: 'mcp-http';
39
+ /** Base URL for the remote MCP server. */
40
+ url: string;
41
+ /** Optional API key for authentication. */
42
+ apiKey?: string;
43
+ /** Optional custom headers. */
44
+ headers?: Record<string, string>;
45
+ /** Optional timeout in milliseconds. */
46
+ timeoutMs?: number;
47
+ /** Remote agent ID (may differ from local agent ID). */
48
+ agentId?: string;
49
+ /** Tool name mappings (optional). */
50
+ tools?: {
51
+ query?: string;
52
+ execute?: string;
53
+ };
54
+ }
55
+ /** Remote provider config as defined in crewx.yaml `providers:` section. */
56
+ export interface RemoteProviderConfig {
57
+ /** Provider ID (e.g. "remote_cto"). */
58
+ id: string;
59
+ /** Provider type — must be "remote". */
60
+ type: 'remote';
61
+ /** Location of the remote agent (file:// or http(s)://). */
62
+ location: string;
63
+ /** Agent ID on the remote side. */
64
+ external_agent_id?: string;
65
+ /** Display name for UI. */
66
+ display_name?: string;
67
+ /** Description. */
68
+ description?: string;
69
+ /** Timeout per mode (ms). */
70
+ timeout?: {
71
+ query?: number;
72
+ execute?: number;
73
+ };
74
+ /** Optional API key for MCP-HTTP authentication. */
75
+ apiKey?: string;
76
+ /** Optional custom headers for MCP-HTTP. */
77
+ headers?: Record<string, string>;
78
+ }
79
+ /** Remote agent query request parameters. */
80
+ export interface RemoteAgentQueryRequest {
81
+ /** The agent ID to query. */
82
+ agentId: string;
83
+ /** The query text. */
84
+ query: string;
85
+ /** Optional context. */
86
+ context?: string;
87
+ /** Optional model override. */
88
+ model?: string;
89
+ /** Optional platform identifier. */
90
+ platform?: string;
91
+ /** Optional conversation messages. */
92
+ messages?: Array<{
93
+ text: string;
94
+ isAssistant: boolean;
95
+ metadata?: Record<string, unknown>;
96
+ }>;
97
+ }
98
+ /** Remote agent execute request parameters. */
99
+ export interface RemoteAgentExecuteRequest {
100
+ /** The agent ID to execute. */
101
+ agentId: string;
102
+ /** The task to execute. */
103
+ task: string;
104
+ /** Optional context. */
105
+ context?: string;
106
+ /** Optional model override. */
107
+ model?: string;
108
+ /** Optional platform identifier. */
109
+ platform?: string;
110
+ /** Optional conversation messages. */
111
+ messages?: Array<{
112
+ text: string;
113
+ isAssistant: boolean;
114
+ metadata?: Record<string, unknown>;
115
+ }>;
116
+ }
117
+ /** Remote agent response. */
118
+ export interface RemoteAgentResponse {
119
+ /** Response content blocks. */
120
+ content: Array<{
121
+ type: string;
122
+ text: string;
123
+ }>;
124
+ /** Success flag. */
125
+ success?: boolean;
126
+ /** Error message if failed. */
127
+ error?: string;
128
+ /** Additional metadata. */
129
+ [key: string]: unknown;
130
+ }
131
+ /** Tool name mapping for remote agents. */
132
+ export interface ToolNameMapping {
133
+ /** Tool name for query operations. */
134
+ query: string;
135
+ /** Tool name for execute operations. */
136
+ execute: string;
137
+ }
138
+ /** Remote agent descriptor containing configuration and metadata. */
139
+ export interface RemoteAgentDescriptor {
140
+ /** Local agent ID. */
141
+ localAgentId: string;
142
+ /** Remote agent ID (may differ). */
143
+ remoteAgentId: string;
144
+ /** Remote agent configuration. */
145
+ config: RemoteAgentConfig;
146
+ }
147
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Remote Agent Module — Type Definitions
4
+ *
5
+ * Types for remote agent communication via MCP (Model Context Protocol).
6
+ * Migrated from sdk-bak/src/core/remote/types.ts and adapted to SDK conventions.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,21 @@
1
+ /**
2
+ * MCP Server authentication & Origin validation.
3
+ *
4
+ * - Origin header 검증 (DNS rebinding 방어, MCP 스펙 필수)
5
+ * - 커스텀 auth 콜백 래퍼
6
+ */
7
+ export interface AuthOptions {
8
+ /** Custom auth callback. Return false to reject the request. */
9
+ auth?: (req: Request) => Promise<boolean>;
10
+ }
11
+ /**
12
+ * Validate the Origin header is present (MCP spec requirement).
13
+ * Returns a 403 Response if validation fails, or null if ok.
14
+ */
15
+ export declare function validateOrigin(req: Request): Response | null;
16
+ /**
17
+ * Run the custom auth callback if provided.
18
+ * Returns a 401 Response if auth fails, or null if ok.
19
+ */
20
+ export declare function runAuthCallback(req: Request, auth?: (req: Request) => Promise<boolean>): Promise<Response | null>;
21
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Server authentication & Origin validation.
4
+ *
5
+ * - Origin header 검증 (DNS rebinding 방어, MCP 스펙 필수)
6
+ * - 커스텀 auth 콜백 래퍼
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.validateOrigin = validateOrigin;
10
+ exports.runAuthCallback = runAuthCallback;
11
+ /**
12
+ * Validate the Origin header is present (MCP spec requirement).
13
+ * Returns a 403 Response if validation fails, or null if ok.
14
+ */
15
+ function validateOrigin(req) {
16
+ const origin = req.headers.get('Origin');
17
+ if (!origin) {
18
+ return new Response(JSON.stringify({ error: 'Forbidden: Origin header required' }), { status: 403, headers: { 'Content-Type': 'application/json' } });
19
+ }
20
+ return null;
21
+ }
22
+ /**
23
+ * Run the custom auth callback if provided.
24
+ * Returns a 401 Response if auth fails, or null if ok.
25
+ */
26
+ async function runAuthCallback(req, auth) {
27
+ if (!auth)
28
+ return null;
29
+ const allowed = await auth(req);
30
+ if (!allowed) {
31
+ return new Response(JSON.stringify({ error: 'Unauthorized' }), { status: 401, headers: { 'Content-Type': 'application/json' } });
32
+ }
33
+ return null;
34
+ }
35
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1,24 @@
1
+ /**
2
+ * crewx.handler() — Framework-independent MCP HTTP handler.
3
+ *
4
+ * Returns a Web Standard `(req: Request) => Promise<Response>` handler
5
+ * that can be mounted on Express, Next.js, Hono, Bun, etc.
6
+ */
7
+ import type { Crewx } from '../facade/Crewx';
8
+ export interface HandlerOptions {
9
+ /** Agent IDs to expose via MCP. Required — explicit selection for security. */
10
+ agents: string[];
11
+ /** Custom auth callback. Return false to reject the request. */
12
+ auth?: (req: Request) => Promise<boolean>;
13
+ }
14
+ /** The Web Standard handler type returned by crewx.handler(). */
15
+ export type CrewxHandler = (req: Request) => Promise<Response>;
16
+ /**
17
+ * Create an MCP handler bound to the given Crewx instance.
18
+ *
19
+ * @param crewx - Crewx facade instance
20
+ * @param options - Handler configuration (agents list required)
21
+ * @returns Web Standard request handler
22
+ */
23
+ export declare function createHandler(crewx: Crewx, options: HandlerOptions): CrewxHandler;
24
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * crewx.handler() — Framework-independent MCP HTTP handler.
4
+ *
5
+ * Returns a Web Standard `(req: Request) => Promise<Response>` handler
6
+ * that can be mounted on Express, Next.js, Hono, Bun, etc.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createHandler = createHandler;
10
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
11
+ const webStandardStreamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js");
12
+ const tool_adapter_1 = require("./tool-adapter");
13
+ const auth_1 = require("./auth");
14
+ /**
15
+ * Create a fresh McpServer with tools registered.
16
+ */
17
+ function createMcpServer(crewx, allowedAgents) {
18
+ const mcpServer = new mcp_js_1.McpServer({
19
+ name: 'crewx-mcp-server',
20
+ version: '1.0.0',
21
+ }, {
22
+ capabilities: {
23
+ tools: {},
24
+ },
25
+ });
26
+ (0, tool_adapter_1.registerCrewxTools)(mcpServer, crewx, allowedAgents);
27
+ return mcpServer;
28
+ }
29
+ /**
30
+ * Create an MCP handler bound to the given Crewx instance.
31
+ *
32
+ * @param crewx - Crewx facade instance
33
+ * @param options - Handler configuration (agents list required)
34
+ * @returns Web Standard request handler
35
+ */
36
+ function createHandler(crewx, options) {
37
+ if (!options.agents || options.agents.length === 0) {
38
+ throw new Error('crewx.handler() requires at least one agent in the agents option');
39
+ }
40
+ const allowedAgents = new Set(options.agents);
41
+ // Per-session transport + server map
42
+ const sessions = new Map();
43
+ return async (req) => {
44
+ // ── Security: Origin validation ──────────────────────────────────────
45
+ const originError = (0, auth_1.validateOrigin)(req);
46
+ if (originError)
47
+ return originError;
48
+ // ── Security: Custom auth callback ───────────────────────────────────
49
+ const authError = await (0, auth_1.runAuthCallback)(req, options.auth);
50
+ if (authError)
51
+ return authError;
52
+ // ── Route to transport ───────────────────────────────────────────────
53
+ const sessionId = req.headers.get('mcp-session-id');
54
+ if (sessionId && sessions.has(sessionId)) {
55
+ // Existing session — reuse transport
56
+ const session = sessions.get(sessionId);
57
+ return session.transport.handleRequest(req);
58
+ }
59
+ // New session: create McpServer + transport pair
60
+ const mcpServer = createMcpServer(crewx, allowedAgents);
61
+ const transport = new webStandardStreamableHttp_js_1.WebStandardStreamableHTTPServerTransport({
62
+ sessionIdGenerator: () => crypto.randomUUID(),
63
+ onsessioninitialized: (sid) => {
64
+ sessions.set(sid, { transport, server: mcpServer });
65
+ },
66
+ onsessionclosed: (sid) => {
67
+ sessions.delete(sid);
68
+ },
69
+ enableJsonResponse: true,
70
+ });
71
+ await mcpServer.connect(transport);
72
+ return transport.handleRequest(req);
73
+ };
74
+ }
75
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @crewx/sdk server module — MCP HTTP handler for exposing agents.
3
+ */
4
+ export { createHandler } from './handler';
5
+ export type { HandlerOptions, CrewxHandler } from './handler';
6
+ export type { AuthOptions } from './auth';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * @crewx/sdk server module — MCP HTTP handler for exposing agents.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createHandler = void 0;
7
+ var handler_1 = require("./handler");
8
+ Object.defineProperty(exports, "createHandler", { enumerable: true, get: function () { return handler_1.createHandler; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * MCP tool adapter — 범용 MCP 도구 3개를 McpServer에 등록한다.
3
+ *
4
+ * 도구:
5
+ * crewx_queryAgent(agentId, query, context?, thread?)
6
+ * crewx_executeAgent(agentId, task, context?, thread?)
7
+ * crewx_listAgents()
8
+ */
9
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
10
+ import type { Crewx } from '../facade/Crewx';
11
+ /**
12
+ * Register the 3 universal tools on the given McpServer.
13
+ *
14
+ * @param server - McpServer instance
15
+ * @param crewx - Crewx facade instance
16
+ * @param allowedAgents - Set of agent IDs exposed via handler
17
+ */
18
+ export declare function registerCrewxTools(server: McpServer, crewx: Crewx, allowedAgents: Set<string>): void;
19
+ //# sourceMappingURL=tool-adapter.d.ts.map
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * MCP tool adapter — 범용 MCP 도구 3개를 McpServer에 등록한다.
4
+ *
5
+ * 도구:
6
+ * crewx_queryAgent(agentId, query, context?, thread?)
7
+ * crewx_executeAgent(agentId, task, context?, thread?)
8
+ * crewx_listAgents()
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.registerCrewxTools = registerCrewxTools;
12
+ const zod_1 = require("zod");
13
+ const querySchema = {
14
+ agentId: zod_1.z.string().describe('The agent ID to query'),
15
+ query: zod_1.z.string().describe('The query message to send'),
16
+ context: zod_1.z.string().optional().describe('Additional context'),
17
+ thread: zod_1.z.string().optional().describe('Thread ID for conversation continuity'),
18
+ };
19
+ const executeSchema = {
20
+ agentId: zod_1.z.string().describe('The agent ID to execute'),
21
+ task: zod_1.z.string().describe('The task description to execute'),
22
+ context: zod_1.z.string().optional().describe('Additional context'),
23
+ thread: zod_1.z.string().optional().describe('Thread ID for conversation continuity'),
24
+ };
25
+ /**
26
+ * Register the 3 universal tools on the given McpServer.
27
+ *
28
+ * @param server - McpServer instance
29
+ * @param crewx - Crewx facade instance
30
+ * @param allowedAgents - Set of agent IDs exposed via handler
31
+ */
32
+ function registerCrewxTools(server, crewx, allowedAgents) {
33
+ // ── crewx_listAgents (no schema — zero-arg tool) ────────────────────────
34
+ server.tool('crewx_listAgents', 'List available CrewX agents exposed by this server', async () => {
35
+ const agents = [];
36
+ for (const agentId of allowedAgents) {
37
+ const agent = crewx.agents.get(agentId);
38
+ if (agent) {
39
+ agents.push({
40
+ id: agent.id,
41
+ name: agent.name ?? agent.id,
42
+ description: agent.description ?? '',
43
+ });
44
+ }
45
+ }
46
+ return {
47
+ content: [{ type: 'text', text: JSON.stringify(agents, null, 2) }],
48
+ };
49
+ });
50
+ // ── crewx_queryAgent ────────────────────────────────────────────────────
51
+ server.tool('crewx_queryAgent', 'Query a CrewX agent with a read-only question', querySchema, async ({ agentId, query, context, thread }) => {
52
+ if (!allowedAgents.has(agentId)) {
53
+ return {
54
+ content: [{ type: 'text', text: `Agent '${agentId}' is not exposed by this server` }],
55
+ isError: true,
56
+ };
57
+ }
58
+ const result = await crewx.query(agentId, query, {
59
+ context,
60
+ threadId: thread,
61
+ });
62
+ if (!result.ok) {
63
+ return {
64
+ content: [{ type: 'text', text: result.error?.message ?? 'Query failed' }],
65
+ isError: true,
66
+ };
67
+ }
68
+ return {
69
+ content: [{ type: 'text', text: result.data }],
70
+ };
71
+ });
72
+ // ── crewx_executeAgent ──────────────────────────────────────────────────
73
+ server.tool('crewx_executeAgent', 'Execute a task on a CrewX agent (may modify state)', executeSchema, async ({ agentId, task, context, thread }) => {
74
+ if (!allowedAgents.has(agentId)) {
75
+ return {
76
+ content: [{ type: 'text', text: `Agent '${agentId}' is not exposed by this server` }],
77
+ isError: true,
78
+ };
79
+ }
80
+ const result = await crewx.execute(agentId, task, {
81
+ context,
82
+ threadId: thread,
83
+ });
84
+ if (!result.ok) {
85
+ return {
86
+ content: [{ type: 'text', text: result.error?.message ?? 'Execute failed' }],
87
+ isError: true,
88
+ };
89
+ }
90
+ return {
91
+ content: [{ type: 'text', text: result.data }],
92
+ };
93
+ });
94
+ }
95
+ //# sourceMappingURL=tool-adapter.js.map
@@ -0,0 +1,28 @@
1
+ /**
2
+ * CrewX template engine — Handlebars-based rendering with P0 helpers.
3
+ *
4
+ * P0 helpers implemented here:
5
+ * - exec : shell command execution (5-stage security)
6
+ * - include : inline string content passthrough
7
+ * - fenced_code : Markdown fenced code block wrapper
8
+ * - eq, ne, and, or, not, json (condition helpers)
9
+ */
10
+ import type { TemplateContext, TemplateEngineOptions } from './types';
11
+ export declare class TemplateEngine {
12
+ private readonly hbs;
13
+ private readonly execPolicy;
14
+ private readonly execEnabled;
15
+ constructor(options?: TemplateEngineOptions);
16
+ /**
17
+ * Register all P0 helpers onto this engine's Handlebars instance.
18
+ */
19
+ private registerHelpers;
20
+ /**
21
+ * Render a Handlebars template string with the given context.
22
+ * @param template - Handlebars template string
23
+ * @param context - Template context (documents, env, agent, etc.)
24
+ * @returns Rendered string
25
+ */
26
+ render(template: string, context?: TemplateContext): Promise<string>;
27
+ }
28
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ /**
3
+ * CrewX template engine — Handlebars-based rendering with P0 helpers.
4
+ *
5
+ * P0 helpers implemented here:
6
+ * - exec : shell command execution (5-stage security)
7
+ * - include : inline string content passthrough
8
+ * - fenced_code : Markdown fenced code block wrapper
9
+ * - eq, ne, and, or, not, json (condition helpers)
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.TemplateEngine = void 0;
46
+ const Handlebars = __importStar(require("handlebars"));
47
+ const exec_1 = require("./helpers/exec");
48
+ const include_1 = require("./helpers/include");
49
+ const fenced_code_1 = require("./helpers/fenced_code");
50
+ const p1p2_1 = require("./helpers/p1p2");
51
+ class TemplateEngine {
52
+ hbs;
53
+ execPolicy;
54
+ execEnabled;
55
+ constructor(options = {}) {
56
+ // Create an isolated Handlebars environment to avoid global state conflicts
57
+ this.hbs = Handlebars.create();
58
+ this.execPolicy = options.execPolicy ?? { allow: [], deny: [] };
59
+ this.execEnabled = options.execEnabled ?? true;
60
+ this.registerHelpers();
61
+ }
62
+ /**
63
+ * Register all P0 helpers onto this engine's Handlebars instance.
64
+ */
65
+ registerHelpers() {
66
+ const hbs = this.hbs;
67
+ const policy = this.execPolicy;
68
+ // ── exec: shell command execution ────────────────────────────────────────
69
+ const execEnabled = this.execEnabled;
70
+ hbs.registerHelper('exec', function (command) {
71
+ if (typeof command !== 'string')
72
+ return '';
73
+ if (!execEnabled)
74
+ return '(exec disabled)';
75
+ return new hbs.SafeString((0, exec_1.executeCommand)(command, policy));
76
+ });
77
+ // ── include: inline string passthrough ───────────────────────────────────
78
+ hbs.registerHelper('include', function (content) {
79
+ return new hbs.SafeString((0, include_1.includeHelper)(content));
80
+ });
81
+ // ── fenced_code: Markdown code block wrapper ──────────────────────────────
82
+ hbs.registerHelper('fenced_code', function (content, options) {
83
+ return new hbs.SafeString((0, fenced_code_1.fencedCodeHelper)(content, options));
84
+ });
85
+ // ── Condition helpers ─────────────────────────────────────────────────────
86
+ hbs.registerHelper('eq', function (a, b) {
87
+ return a === b;
88
+ });
89
+ hbs.registerHelper('ne', function (a, b) {
90
+ return a !== b;
91
+ });
92
+ hbs.registerHelper('and', function (a, b) {
93
+ return a && b;
94
+ });
95
+ hbs.registerHelper('or', function (a, b) {
96
+ return a || b;
97
+ });
98
+ hbs.registerHelper('not', function (a) {
99
+ return !a;
100
+ });
101
+ hbs.registerHelper('contains', function (array, value) {
102
+ return Array.isArray(array) && array.includes(value);
103
+ });
104
+ hbs.registerHelper('json', function (context) {
105
+ return JSON.stringify(context, null, 2);
106
+ });
107
+ // ── P1 helpers ────────────────────────────────────────────────────────────
108
+ hbs.registerHelper('truncate', function (text, maxLength) {
109
+ return (0, p1p2_1.truncateHelper)(text, maxLength);
110
+ });
111
+ hbs.registerHelper('length', function (value) {
112
+ return (0, p1p2_1.lengthHelper)(value);
113
+ });
114
+ hbs.registerHelper('escapeHandlebars', function (text) {
115
+ return new hbs.SafeString((0, p1p2_1.escapeHandlebarsHelper)(text));
116
+ });
117
+ // ── P2 helpers ────────────────────────────────────────────────────────────
118
+ hbs.registerHelper('formatFileSize', function (bytes) {
119
+ return (0, p1p2_1.formatFileSizeHelper)(bytes);
120
+ });
121
+ hbs.registerHelper('formatTimestamp', function (timestamp) {
122
+ return (0, p1p2_1.formatTimestampHelper)(timestamp);
123
+ });
124
+ }
125
+ /**
126
+ * Render a Handlebars template string with the given context.
127
+ * @param template - Handlebars template string
128
+ * @param context - Template context (documents, env, agent, etc.)
129
+ * @returns Rendered string
130
+ */
131
+ async render(template, context = {}) {
132
+ const compiled = this.hbs.compile(template, { noEscape: true });
133
+ return compiled(context);
134
+ }
135
+ }
136
+ exports.TemplateEngine = TemplateEngine;
137
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Browser stub for the exec helper.
3
+ *
4
+ * Replaces the Node.js exec helper in browser bundles (via package.json "browser" field).
5
+ * All functions are no-ops or return safe defaults — child_process is not available in browsers.
6
+ */
7
+ import type { ExecPolicy } from '../types';
8
+ export declare function getSanitizedEnv(): Record<string, string>;
9
+ export declare function validateCommand(_command: string): void;
10
+ export declare function isBuiltinAllowed(_command: string): boolean;
11
+ export declare function validateAllowPattern(_pattern: string): void;
12
+ export declare function isAllowed(_command: string, _policy: ExecPolicy): boolean;
13
+ export declare function setAuditVerbose(_enabled: boolean): void;
14
+ export declare function logExecAudit(_entry: {
15
+ command: string;
16
+ status: 'allowed' | 'denied' | 'error';
17
+ allowed_by?: string;
18
+ reason?: string;
19
+ duration_ms?: number;
20
+ }): void;
21
+ export declare function executeCommand(_command: string, _policy: ExecPolicy): string;
22
+ //# sourceMappingURL=exec.browser.d.ts.map