@crewx/sdk 0.8.0-rc.72 → 0.8.0-rc.74

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 +67 -102
  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
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * LayoutLoader — loads layout templates from templates/agents/*.yaml files.
4
+ * Ported 1:1 from packages/sdk-bak/src/services/layout-loader.service.ts.
5
+ * Only import paths and DEFAULT_OPTIONS.templatesPath are changed.
6
+ */
2
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
8
  if (k2 === undefined) k2 = k;
4
9
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -37,18 +42,30 @@ exports.LayoutLoader = void 0;
37
42
  const fs_1 = require("fs");
38
43
  const path = __importStar(require("path"));
39
44
  const js_yaml_1 = require("js-yaml");
40
- const layout_types_1 = require("../types/layout.types");
45
+ const types_1 = require("./types");
46
+ /**
47
+ * Default loader options — points to SDK's bundled templates directory.
48
+ */
41
49
  const DEFAULT_OPTIONS = {
42
50
  templatesPath: path.join(__dirname, '../../../templates/agents'),
43
51
  validationMode: 'lenient',
44
52
  fallbackLayoutId: 'crewx/default',
45
53
  };
54
+ /**
55
+ * Layout loader service.
56
+ * Loads and caches layout definitions from YAML files.
57
+ * Provides fallback mechanism and prop override support.
58
+ */
46
59
  class LayoutLoader {
60
+ layouts = new Map();
61
+ options;
47
62
  constructor(options) {
48
- this.layouts = new Map();
49
63
  this.options = { ...DEFAULT_OPTIONS, ...options };
50
64
  this.loadAllLayouts();
51
65
  }
66
+ /**
67
+ * Load a layout by ID with optional props override.
68
+ */
52
69
  load(layoutId, propsOverride) {
53
70
  let layout = this.layouts.get(layoutId);
54
71
  if (!layout) {
@@ -59,7 +76,7 @@ class LayoutLoader {
59
76
  console.warn(`Layout not found: ${layoutId}, falling back to ${this.options.fallbackLayoutId}`);
60
77
  layout = this.layouts.get(this.options.fallbackLayoutId);
61
78
  if (!layout) {
62
- throw new layout_types_1.LayoutLoadError(`Fallback layout not found: ${this.options.fallbackLayoutId}`, this.options.fallbackLayoutId);
79
+ throw new types_1.LayoutLoadError(`Fallback layout not found: ${this.options.fallbackLayoutId}`, this.options.fallbackLayoutId);
63
80
  }
64
81
  }
65
82
  if (propsOverride && Object.keys(propsOverride).length > 0) {
@@ -74,9 +91,8 @@ class LayoutLoader {
74
91
  return Array.from(this.layouts.keys());
75
92
  }
76
93
  hasLayout(layoutId) {
77
- if (this.layouts.has(layoutId)) {
94
+ if (this.layouts.has(layoutId))
78
95
  return true;
79
- }
80
96
  const normalizedId = this.normalizeLayoutId(layoutId);
81
97
  return this.layouts.has(normalizedId);
82
98
  }
@@ -84,10 +100,62 @@ class LayoutLoader {
84
100
  this.layouts.clear();
85
101
  this.loadAllLayouts();
86
102
  }
103
+ /**
104
+ * Register or override a layout at runtime.
105
+ */
106
+ registerLayout(layoutId, layoutConfig) {
107
+ if (!layoutId || typeof layoutId !== 'string') {
108
+ throw new types_1.LayoutLoadError('Layout ID must be a non-empty string', layoutId);
109
+ }
110
+ const config = typeof layoutConfig === 'string'
111
+ ? { template: layoutConfig }
112
+ : layoutConfig;
113
+ const template = typeof config.template === 'string' ? config.template : '';
114
+ if (!template || template.trim().length === 0) {
115
+ throw new types_1.LayoutLoadError(`Custom layout template is empty for ${layoutId}`, layoutId);
116
+ }
117
+ const propsSchemaRaw = config.propsSchema || {};
118
+ const defaultPropsFromSchema = this.extractDefaultProps(propsSchemaRaw);
119
+ const explicitDefaults = config.defaultProps || {};
120
+ const layoutDefinition = {
121
+ id: layoutId,
122
+ version: config.version || '1.0.0',
123
+ description: config.description || `Custom layout ${layoutId}`,
124
+ template,
125
+ propsSchema: this.parsePropsSchema(propsSchemaRaw),
126
+ defaultProps: { ...defaultPropsFromSchema, ...explicitDefaults },
127
+ };
128
+ const existingLayout = this.layouts.get(layoutId);
129
+ const templatesEqual = existingLayout?.template === template &&
130
+ JSON.stringify(existingLayout?.defaultProps ?? {}) === JSON.stringify(layoutDefinition.defaultProps ?? {}) &&
131
+ JSON.stringify(existingLayout?.propsSchema ?? {}) === JSON.stringify(layoutDefinition.propsSchema ?? {});
132
+ this.layouts.set(layoutId, layoutDefinition);
133
+ if (process.env.CREWX_VERBOSE === '1') {
134
+ if (!existingLayout) {
135
+ console.error(`Registered custom layout: ${layoutId}`);
136
+ }
137
+ else if (!templatesEqual) {
138
+ console.error(`Updated custom layout: ${layoutId}`);
139
+ }
140
+ }
141
+ }
142
+ /**
143
+ * Register multiple layouts from a map.
144
+ */
145
+ registerLayouts(layoutsMap) {
146
+ for (const [id, config] of Object.entries(layoutsMap)) {
147
+ try {
148
+ this.registerLayout(id, config);
149
+ }
150
+ catch (error) {
151
+ console.warn(`Failed to register custom layout ${id}:`, error instanceof Error ? error.message : error);
152
+ }
153
+ }
154
+ }
87
155
  loadAllLayouts() {
88
156
  const layoutsDir = this.options.templatesPath;
89
157
  if (!(0, fs_1.existsSync)(layoutsDir)) {
90
- throw new layout_types_1.LayoutLoadError(`Templates directory not found: ${layoutsDir}`, undefined, new Error(`Directory does not exist: ${layoutsDir}`));
158
+ throw new types_1.LayoutLoadError(`Templates directory not found: ${layoutsDir}`, undefined, new Error(`Directory does not exist: ${layoutsDir}`));
91
159
  }
92
160
  try {
93
161
  const files = (0, fs_1.readdirSync)(layoutsDir).filter(f => f.endsWith('.yaml') || f.endsWith('.yml'));
@@ -114,7 +182,7 @@ class LayoutLoader {
114
182
  console.error(`Loaded ${this.layouts.size} layouts from ${layoutsDir}`);
115
183
  }
116
184
  catch (error) {
117
- throw new layout_types_1.LayoutLoadError(`Failed to read layouts directory: ${layoutsDir}`, undefined, error instanceof Error ? error : new Error(String(error)));
185
+ throw new types_1.LayoutLoadError(`Failed to read layouts directory: ${layoutsDir}`, undefined, error instanceof Error ? error : new Error(String(error)));
118
186
  }
119
187
  }
120
188
  loadLayoutFile(filePath, layoutName) {
@@ -122,32 +190,36 @@ class LayoutLoader {
122
190
  const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
123
191
  if (!content || content.trim().length === 0) {
124
192
  console.warn(`Empty YAML file: ${filePath}, will use fallback`);
125
- throw new layout_types_1.LayoutLoadError(`Empty YAML file: ${filePath}`, layoutName, new Error('File content is empty'));
193
+ throw new types_1.LayoutLoadError(`Empty YAML file: ${filePath}`, layoutName, new Error('File content is empty'));
126
194
  }
127
195
  const parsed = (0, js_yaml_1.load)(content);
128
196
  if (!parsed || typeof parsed !== 'object') {
129
197
  console.warn(`Invalid YAML content in ${filePath} (parsed as ${typeof parsed}), will use fallback`);
130
- throw new layout_types_1.LayoutLoadError(`Invalid or empty YAML in ${filePath}`, layoutName, new Error('YAML parsing returned null/undefined or non-object'));
198
+ throw new types_1.LayoutLoadError(`Invalid or empty YAML in ${filePath}`, layoutName, new Error('YAML parsing returned null/undefined or non-object'));
131
199
  }
200
+ // Format 2: layouts map (templates/agents/default.yaml format)
132
201
  if (parsed.layouts && typeof parsed.layouts === 'object') {
133
- const layoutTemplate = this.resolveLayoutTemplate(parsed.layouts, layoutName);
134
- if (!layoutTemplate || (typeof layoutTemplate === 'string' && layoutTemplate.trim().length === 0)) {
202
+ const entry = this.resolveLayoutEntry(parsed.layouts, layoutName);
203
+ if (!entry || entry.template.trim().length === 0) {
135
204
  console.warn(`Empty or missing layout template in ${filePath} for ${layoutName}`);
136
- throw new layout_types_1.LayoutLoadError(`Layout template not found or empty in layouts map: ${layoutName}`, layoutName);
205
+ throw new types_1.LayoutLoadError(`Layout template not found or empty in layouts map: ${layoutName}`, layoutName);
137
206
  }
207
+ // propsSchema may be inline in the layout entry object (e.g. default.yaml) or at the top level
208
+ const propsSchemaRaw = entry.propsSchema || parsed.propsSchema || {};
138
209
  return {
139
210
  id: `crewx/${layoutName}`,
140
211
  version: parsed.version || '1.0.0',
141
212
  description: parsed.description || `CrewX ${layoutName} layout`,
142
- template: layoutTemplate,
143
- propsSchema: this.parsePropsSchema(parsed.propsSchema || {}),
144
- defaultProps: this.extractDefaultProps(parsed.propsSchema || {}),
213
+ template: entry.template,
214
+ propsSchema: this.parsePropsSchema(propsSchemaRaw),
215
+ defaultProps: this.extractDefaultProps(propsSchemaRaw),
145
216
  };
146
217
  }
147
218
  else {
219
+ // Format 1: direct layout definition
148
220
  if (!parsed.template || (typeof parsed.template === 'string' && parsed.template.trim().length === 0)) {
149
221
  console.warn(`Empty or missing template field in ${filePath}`);
150
- throw new layout_types_1.LayoutLoadError(`Layout template is missing or empty in ${filePath}`, layoutName);
222
+ throw new types_1.LayoutLoadError(`Layout template is missing or empty in ${filePath}`, layoutName);
151
223
  }
152
224
  return {
153
225
  id: parsed.id || `crewx/${layoutName}`,
@@ -160,7 +232,7 @@ class LayoutLoader {
160
232
  }
161
233
  }
162
234
  catch (error) {
163
- throw new layout_types_1.LayoutLoadError(`Failed to load layout file: ${filePath}`, layoutName, error instanceof Error ? error : new Error(String(error)));
235
+ throw new types_1.LayoutLoadError(`Failed to load layout file: ${filePath}`, layoutName, error instanceof Error ? error : new Error(String(error)));
164
236
  }
165
237
  }
166
238
  parsePropsSchema(raw) {
@@ -187,70 +259,21 @@ class LayoutLoader {
187
259
  return defaults;
188
260
  }
189
261
  normalizeLayoutId(layoutId) {
190
- if (!layoutId) {
262
+ if (!layoutId)
191
263
  return this.options.fallbackLayoutId;
192
- }
193
- if (layoutId.includes('/')) {
264
+ if (layoutId.includes('/'))
194
265
  return layoutId;
195
- }
196
266
  return `crewx/${layoutId}`;
197
267
  }
198
- registerLayout(layoutId, layoutConfig) {
199
- if (!layoutId || typeof layoutId !== 'string') {
200
- throw new layout_types_1.LayoutLoadError('Layout ID must be a non-empty string', layoutId);
201
- }
202
- const config = typeof layoutConfig === 'string'
203
- ? { template: layoutConfig }
204
- : layoutConfig;
205
- const template = typeof config.template === 'string' ? config.template : '';
206
- if (!template || template.trim().length === 0) {
207
- throw new layout_types_1.LayoutLoadError(`Custom layout template is empty for ${layoutId}`, layoutId);
208
- }
209
- const propsSchemaRaw = config.propsSchema || {};
210
- const defaultPropsFromSchema = this.extractDefaultProps(propsSchemaRaw);
211
- const explicitDefaults = config.defaultProps || {};
212
- const layoutDefinition = {
213
- id: layoutId,
214
- version: config.version || '1.0.0',
215
- description: config.description || `Custom layout ${layoutId}`,
216
- template,
217
- propsSchema: this.parsePropsSchema(propsSchemaRaw),
218
- defaultProps: { ...defaultPropsFromSchema, ...explicitDefaults },
219
- };
220
- const existingLayout = this.layouts.get(layoutId);
221
- const templatesEqual = existingLayout?.template === template &&
222
- JSON.stringify(existingLayout?.defaultProps ?? {}) === JSON.stringify(layoutDefinition.defaultProps ?? {}) &&
223
- JSON.stringify(existingLayout?.propsSchema ?? {}) === JSON.stringify(layoutDefinition.propsSchema ?? {});
224
- this.layouts.set(layoutId, layoutDefinition);
225
- if (process.env.CREWX_VERBOSE === '1') {
226
- if (!existingLayout) {
227
- console.error(`Registered custom layout: ${layoutId}`);
228
- }
229
- else if (!templatesEqual) {
230
- console.error(`Updated custom layout: ${layoutId}`);
231
- }
232
- }
233
- }
234
- registerLayouts(layoutsMap) {
235
- for (const [id, config] of Object.entries(layoutsMap)) {
236
- try {
237
- this.registerLayout(id, config);
238
- }
239
- catch (error) {
240
- console.warn(`Failed to register custom layout ${id}:`, error instanceof Error ? error.message : error);
241
- }
242
- }
243
- }
244
- resolveLayoutTemplate(layoutsMap, layoutName) {
268
+ resolveLayoutEntry(layoutsMap, layoutName) {
245
269
  const candidates = new Set();
246
270
  if (layoutName) {
247
271
  candidates.add(layoutName);
248
272
  if (layoutName.includes('/')) {
249
273
  const parts = layoutName.split('/');
250
274
  const last = parts[parts.length - 1];
251
- if (last) {
275
+ if (last)
252
276
  candidates.add(last);
253
- }
254
277
  }
255
278
  else {
256
279
  candidates.add(`crewx/${layoutName}`);
@@ -260,16 +283,23 @@ class LayoutLoader {
260
283
  for (const key of candidates) {
261
284
  const value = layoutsMap[key];
262
285
  if (typeof value === 'string' && value.trim().length > 0) {
263
- return value;
286
+ return { template: value };
287
+ }
288
+ if (value && typeof value === 'object' && typeof value.template === 'string' && value.template.trim().length > 0) {
289
+ return { template: value.template, propsSchema: value.propsSchema };
264
290
  }
265
291
  }
266
292
  for (const value of Object.values(layoutsMap)) {
267
293
  if (typeof value === 'string' && value.trim().length > 0) {
268
- return value;
294
+ return { template: value };
295
+ }
296
+ const v = value;
297
+ if (v && typeof v === 'object' && typeof v.template === 'string' && v.template.trim().length > 0) {
298
+ return { template: v.template, propsSchema: v.propsSchema };
269
299
  }
270
300
  }
271
301
  return undefined;
272
302
  }
273
303
  }
274
304
  exports.LayoutLoader = LayoutLoader;
275
- //# sourceMappingURL=layout-loader.service.js.map
305
+ //# sourceMappingURL=loader.js.map
@@ -1,4 +1,9 @@
1
- import { PropSchema, ValidationResult } from '../types/layout.types';
1
+ /**
2
+ * PropsValidator — React PropTypes style props validation.
3
+ * Ported 1:1 from packages/sdk-bak/src/services/props-validator.service.ts.
4
+ * Only the import path is changed.
5
+ */
6
+ import { PropSchema, ValidationResult } from './types';
2
7
  export type ValidationMode = 'strict' | 'lenient';
3
8
  export interface PropsValidatorOptions {
4
9
  defaultMode?: ValidationMode;
@@ -27,3 +32,4 @@ export declare class PropsValidator {
27
32
  private buildPath;
28
33
  private describeType;
29
34
  }
35
+ //# sourceMappingURL=props-validator.d.ts.map
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
+ /**
3
+ * PropsValidator — React PropTypes style props validation.
4
+ * Ported 1:1 from packages/sdk-bak/src/services/props-validator.service.ts.
5
+ * Only the import path is changed.
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.PropsValidator = void 0;
4
- const layout_types_1 = require("../types/layout.types");
9
+ const types_1 = require("./types");
5
10
  class PropsValidator {
11
+ defaultMode;
6
12
  constructor(options = {}) {
7
13
  this.defaultMode = options.defaultMode ?? 'lenient';
8
14
  }
@@ -10,7 +16,7 @@ class PropsValidator {
10
16
  const errors = [];
11
17
  const resolvedProps = this.validateObject(props ?? {}, schema, mode, ['props'], errors);
12
18
  if (errors.length > 0 && mode === 'strict') {
13
- throw new layout_types_1.PropsValidationError('Props validation failed in strict mode', errors);
19
+ throw new types_1.PropsValidationError('Props validation failed in strict mode', errors);
14
20
  }
15
21
  return {
16
22
  valid: errors.length === 0,
@@ -39,10 +45,6 @@ class PropsValidator {
39
45
  sanitized[key] = result.value;
40
46
  }
41
47
  }
42
- if (mode === 'lenient') {
43
- }
44
- else if (mode === 'strict') {
45
- }
46
48
  return sanitized;
47
49
  }
48
50
  resolveProp(value, schema, pathSegments, mode, errors) {
@@ -118,30 +120,18 @@ class PropsValidator {
118
120
  return { valid: false, error: `Expected string, got ${this.describeType(value)}` };
119
121
  }
120
122
  if (schema.oneOf && !schema.oneOf.includes(value)) {
121
- return {
122
- valid: false,
123
- error: `Expected one of: ${schema.oneOf.join(', ')}`,
124
- };
123
+ return { valid: false, error: `Expected one of: ${schema.oneOf.join(', ')}` };
125
124
  }
126
125
  if (schema.minLength !== undefined && value.length < schema.minLength) {
127
- return {
128
- valid: false,
129
- error: `String length must be >= ${schema.minLength}`,
130
- };
126
+ return { valid: false, error: `String length must be >= ${schema.minLength}` };
131
127
  }
132
128
  if (schema.maxLength !== undefined && value.length > schema.maxLength) {
133
- return {
134
- valid: false,
135
- error: `String length must be <= ${schema.maxLength}`,
136
- };
129
+ return { valid: false, error: `String length must be <= ${schema.maxLength}` };
137
130
  }
138
131
  if (schema.pattern) {
139
132
  const pattern = new RegExp(schema.pattern);
140
133
  if (!pattern.test(value)) {
141
- return {
142
- valid: false,
143
- error: `String does not match pattern ${schema.pattern}`,
144
- };
134
+ return { valid: false, error: `String does not match pattern ${schema.pattern}` };
145
135
  }
146
136
  }
147
137
  return { valid: true, value };
@@ -157,10 +147,7 @@ class PropsValidator {
157
147
  return { valid: false, error: `Number must be <= ${schema.max}` };
158
148
  }
159
149
  if (schema.oneOf && !schema.oneOf.includes(value)) {
160
- return {
161
- valid: false,
162
- error: `Expected one of: ${schema.oneOf.join(', ')}`,
163
- };
150
+ return { valid: false, error: `Expected one of: ${schema.oneOf.join(', ')}` };
164
151
  }
165
152
  return { valid: true, value };
166
153
  }
@@ -175,24 +162,17 @@ class PropsValidator {
175
162
  return { valid: false, error: `Expected array, got ${this.describeType(value)}` };
176
163
  }
177
164
  if (schema.minLength !== undefined && value.length < schema.minLength) {
178
- return {
179
- valid: false,
180
- error: `Array length must be >= ${schema.minLength}`,
181
- };
165
+ return { valid: false, error: `Array length must be >= ${schema.minLength}` };
182
166
  }
183
167
  if (schema.maxLength !== undefined && value.length > schema.maxLength) {
184
- return {
185
- valid: false,
186
- error: `Array length must be <= ${schema.maxLength}`,
187
- };
168
+ return { valid: false, error: `Array length must be <= ${schema.maxLength}` };
188
169
  }
189
170
  return { valid: true, value: [...value] };
190
171
  }
191
172
  validateArrayOf(value, schema, pathSegments, mode, errors) {
192
173
  const base = this.validateArray(value, schema);
193
- if (!base.valid) {
174
+ if (!base.valid)
194
175
  return base;
195
- }
196
176
  const itemValues = [];
197
177
  const itemType = schema.itemType;
198
178
  const itemOneOf = schema.itemOneOf;
@@ -258,26 +238,17 @@ class PropsValidator {
258
238
  }
259
239
  matchesType(value, typeName) {
260
240
  switch (typeName) {
261
- case 'string':
262
- return typeof value === 'string';
263
- case 'number':
264
- return typeof value === 'number' && !Number.isNaN(value);
241
+ case 'string': return typeof value === 'string';
242
+ case 'number': return typeof value === 'number' && !Number.isNaN(value);
265
243
  case 'bool':
266
- case 'boolean':
267
- return typeof value === 'boolean';
268
- case 'array':
269
- return Array.isArray(value);
270
- case 'object':
271
- return this.isPlainObject(value);
244
+ case 'boolean': return typeof value === 'boolean';
245
+ case 'array': return Array.isArray(value);
246
+ case 'object': return this.isPlainObject(value);
272
247
  case 'func':
273
- case 'function':
274
- return typeof value === 'function';
275
- case 'shape':
276
- return this.isPlainObject(value);
277
- case 'node':
278
- return value === null || value === undefined || typeof value !== 'symbol';
279
- default:
280
- return true;
248
+ case 'function': return typeof value === 'function';
249
+ case 'shape': return this.isPlainObject(value);
250
+ case 'node': return value === null || value === undefined || typeof value !== 'symbol';
251
+ default: return true;
281
252
  }
282
253
  }
283
254
  applyDefaults(schema) {
@@ -319,14 +290,12 @@ class PropsValidator {
319
290
  return segments.join('.');
320
291
  }
321
292
  describeType(value) {
322
- if (Array.isArray(value)) {
293
+ if (Array.isArray(value))
323
294
  return 'array';
324
- }
325
- if (value === null) {
295
+ if (value === null)
326
296
  return 'null';
327
- }
328
297
  return typeof value;
329
298
  }
330
299
  }
331
300
  exports.PropsValidator = PropsValidator;
332
- //# sourceMappingURL=props-validator.service.js.map
301
+ //# sourceMappingURL=props-validator.js.map
@@ -1,30 +1,43 @@
1
- import { PropsValidator } from './props-validator.service';
2
- import type { LayoutDefinition, RenderContext, PropSchema, ValidationResult } from '../types/layout.types';
3
- export { PropsValidationError } from '../types/layout.types';
4
- export type { LayoutDefinition, RenderContext, PropSchema, ValidationResult as PropsValidationResult, } from '../types/layout.types';
1
+ /**
2
+ * LayoutRenderer Handlebars-based layout rendering.
3
+ * Ported from packages/sdk-bak/src/services/layout-renderer.service.ts.
4
+ * Excluded: registerTemplateHelpers (exec/shell-quote).
5
+ * Exec is handled separately by TemplateEngine in the facade layer.
6
+ * WI-CONV-002: formatConversation helper restored.
7
+ */
8
+ import { PropsValidator } from './props-validator';
9
+ import type { LayoutDefinition, RenderContext, PropSchema, ValidationResult } from './types';
10
+ export { PropsValidationError } from './types';
11
+ export type { LayoutDefinition, RenderContext, PropSchema, ValidationResult as PropsValidationResult, } from './types';
5
12
  export interface RenderOptions {
6
13
  validationMode?: 'strict' | 'lenient';
7
14
  skipValidation?: boolean;
8
15
  }
9
- export interface ExecHelperConfig {
10
- timeout?: number;
11
- allow?: string[];
12
- deny?: string[];
13
- }
14
- export interface TemplateConfig {
15
- exec?: ExecHelperConfig;
16
- helpers?: Record<string, string>;
17
- }
16
+ /**
17
+ * LayoutRenderer — renders layout templates with Handlebars.
18
+ */
18
19
  export declare class LayoutRenderer {
19
20
  private readonly handlebars;
20
21
  private readonly propsValidator;
21
22
  constructor(propsValidator?: PropsValidator);
23
+ /**
24
+ * Render a layout template with the given context.
25
+ */
22
26
  render(layout: LayoutDefinition, context: RenderContext, options?: RenderOptions): string;
27
+ /**
28
+ * Validate props against schema.
29
+ */
23
30
  validate(props: Record<string, any> | undefined, propsSchema: Record<string, PropSchema>, mode?: 'strict' | 'lenient'): ValidationResult;
31
+ /**
32
+ * Merge default props and runtime props, then validate.
33
+ */
24
34
  resolveProps(layout: LayoutDefinition, props: Record<string, any> | undefined, mode?: 'strict' | 'lenient'): ValidationResult;
25
35
  private prepareRenderContext;
36
+ /**
37
+ * Register built-in Handlebars helpers (no exec).
38
+ * WI-CONV-002: formatConversation block helper registered for conversation history.
39
+ */
26
40
  private registerHelpers;
27
- registerTemplateHelpers(config: TemplateConfig): void;
28
41
  private executeValidation;
29
42
  private mergeProps;
30
43
  private deepMerge;
@@ -32,3 +45,4 @@ export declare class LayoutRenderer {
32
45
  private isPlainObject;
33
46
  private sanitizeVars;
34
47
  }
48
+ //# sourceMappingURL=renderer.d.ts.map