@syrin/cli 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +302 -0
  3. package/dist/cli/commands/analyse.d.ts +16 -0
  4. package/dist/cli/commands/analyse.js +61 -0
  5. package/dist/cli/commands/dev.d.ts +23 -0
  6. package/dist/cli/commands/dev.js +419 -0
  7. package/dist/cli/commands/doctor.d.ts +10 -0
  8. package/dist/cli/commands/doctor.js +195 -0
  9. package/dist/cli/commands/index.d.ts +12 -0
  10. package/dist/cli/commands/index.js +12 -0
  11. package/dist/cli/commands/init.d.ts +16 -0
  12. package/dist/cli/commands/init.js +90 -0
  13. package/dist/cli/commands/list.d.ts +15 -0
  14. package/dist/cli/commands/list.js +50 -0
  15. package/dist/cli/commands/rollback.d.ts +12 -0
  16. package/dist/cli/commands/rollback.js +101 -0
  17. package/dist/cli/commands/test.d.ts +31 -0
  18. package/dist/cli/commands/test.js +88 -0
  19. package/dist/cli/commands/update.d.ts +9 -0
  20. package/dist/cli/commands/update.js +76 -0
  21. package/dist/cli/index.d.ts +13 -0
  22. package/dist/cli/index.js +342 -0
  23. package/dist/cli/prompts/index.d.ts +5 -0
  24. package/dist/cli/prompts/index.js +5 -0
  25. package/dist/cli/prompts/init-prompt.d.ts +17 -0
  26. package/dist/cli/prompts/init-prompt.js +263 -0
  27. package/dist/cli/utils/command-error-handler.d.ts +14 -0
  28. package/dist/cli/utils/command-error-handler.js +35 -0
  29. package/dist/cli/utils/common-types.d.ts +24 -0
  30. package/dist/cli/utils/common-types.js +6 -0
  31. package/dist/cli/utils/connection-handler.d.ts +37 -0
  32. package/dist/cli/utils/connection-handler.js +90 -0
  33. package/dist/cli/utils/index.d.ts +11 -0
  34. package/dist/cli/utils/index.js +11 -0
  35. package/dist/cli/utils/option-parsers.d.ts +41 -0
  36. package/dist/cli/utils/option-parsers.js +92 -0
  37. package/dist/cli/utils/output-utils.d.ts +12 -0
  38. package/dist/cli/utils/output-utils.js +21 -0
  39. package/dist/cli/utils/transport-resolver.d.ts +33 -0
  40. package/dist/cli/utils/transport-resolver.js +82 -0
  41. package/dist/cli/utils/version-banner.d.ts +10 -0
  42. package/dist/cli/utils/version-banner.js +26 -0
  43. package/dist/config/env-checker.d.ts +37 -0
  44. package/dist/config/env-checker.js +136 -0
  45. package/dist/config/generator.d.ts +19 -0
  46. package/dist/config/generator.js +196 -0
  47. package/dist/config/index.d.ts +9 -0
  48. package/dist/config/index.js +9 -0
  49. package/dist/config/loader.d.ts +19 -0
  50. package/dist/config/loader.js +57 -0
  51. package/dist/config/schema.d.ts +42 -0
  52. package/dist/config/schema.js +181 -0
  53. package/dist/config/syrin.template.yaml +127 -0
  54. package/dist/config/types.d.ts +87 -0
  55. package/dist/config/types.js +6 -0
  56. package/dist/constants/app.d.ts +9 -0
  57. package/dist/constants/app.js +9 -0
  58. package/dist/constants/commands.d.ts +43 -0
  59. package/dist/constants/commands.js +43 -0
  60. package/dist/constants/defaults.d.ts +18 -0
  61. package/dist/constants/defaults.js +18 -0
  62. package/dist/constants/env-vars.d.ts +11 -0
  63. package/dist/constants/env-vars.js +11 -0
  64. package/dist/constants/icons.d.ts +23 -0
  65. package/dist/constants/icons.js +23 -0
  66. package/dist/constants/index.d.ts +17 -0
  67. package/dist/constants/index.js +17 -0
  68. package/dist/constants/labels.d.ts +38 -0
  69. package/dist/constants/labels.js +42 -0
  70. package/dist/constants/links.d.ts +10 -0
  71. package/dist/constants/links.js +11 -0
  72. package/dist/constants/list.d.ts +10 -0
  73. package/dist/constants/list.js +9 -0
  74. package/dist/constants/llm.d.ts +26 -0
  75. package/dist/constants/llm.js +25 -0
  76. package/dist/constants/messages.d.ts +107 -0
  77. package/dist/constants/messages.js +138 -0
  78. package/dist/constants/paths.d.ts +29 -0
  79. package/dist/constants/paths.js +29 -0
  80. package/dist/constants/transport.d.ts +9 -0
  81. package/dist/constants/transport.js +8 -0
  82. package/dist/events/emitter.d.ts +64 -0
  83. package/dist/events/emitter.js +142 -0
  84. package/dist/events/event-type.d.ts +66 -0
  85. package/dist/events/event-type.js +81 -0
  86. package/dist/events/payloads/diagnostics.d.ts +24 -0
  87. package/dist/events/payloads/diagnostics.js +5 -0
  88. package/dist/events/payloads/index.d.ts +15 -0
  89. package/dist/events/payloads/index.js +6 -0
  90. package/dist/events/payloads/llm.d.ts +58 -0
  91. package/dist/events/payloads/llm.js +6 -0
  92. package/dist/events/payloads/registry.d.ts +28 -0
  93. package/dist/events/payloads/registry.js +5 -0
  94. package/dist/events/payloads/session.d.ts +32 -0
  95. package/dist/events/payloads/session.js +5 -0
  96. package/dist/events/payloads/testing.d.ts +17 -0
  97. package/dist/events/payloads/testing.js +5 -0
  98. package/dist/events/payloads/tool.d.ts +29 -0
  99. package/dist/events/payloads/tool.js +5 -0
  100. package/dist/events/payloads/transport.d.ts +30 -0
  101. package/dist/events/payloads/transport.js +5 -0
  102. package/dist/events/payloads/validation.d.ts +37 -0
  103. package/dist/events/payloads/validation.js +5 -0
  104. package/dist/events/payloads/workflow.d.ts +45 -0
  105. package/dist/events/payloads/workflow.js +5 -0
  106. package/dist/events/store/file-store.d.ts +37 -0
  107. package/dist/events/store/file-store.js +113 -0
  108. package/dist/events/store/index.d.ts +7 -0
  109. package/dist/events/store/index.js +6 -0
  110. package/dist/events/store/memory-store.d.ts +26 -0
  111. package/dist/events/store/memory-store.js +39 -0
  112. package/dist/events/store.d.ts +11 -0
  113. package/dist/events/store.js +2 -0
  114. package/dist/events/types.d.ts +14 -0
  115. package/dist/events/types.js +2 -0
  116. package/dist/index.d.ts +8 -0
  117. package/dist/index.js +30 -0
  118. package/dist/presentation/analysis-ui.d.ts +24 -0
  119. package/dist/presentation/analysis-ui.js +158 -0
  120. package/dist/presentation/dev/chat-ui-types.d.ts +68 -0
  121. package/dist/presentation/dev/chat-ui-types.js +5 -0
  122. package/dist/presentation/dev/chat-ui.d.ts +61 -0
  123. package/dist/presentation/dev/chat-ui.js +714 -0
  124. package/dist/presentation/dev/components/assistant-message.d.ts +19 -0
  125. package/dist/presentation/dev/components/assistant-message.js +36 -0
  126. package/dist/presentation/dev/components/header.d.ts +16 -0
  127. package/dist/presentation/dev/components/header.js +22 -0
  128. package/dist/presentation/dev/components/index.d.ts +13 -0
  129. package/dist/presentation/dev/components/index.js +13 -0
  130. package/dist/presentation/dev/components/input-panel.d.ts +22 -0
  131. package/dist/presentation/dev/components/input-panel.js +43 -0
  132. package/dist/presentation/dev/components/message-component.d.ts +16 -0
  133. package/dist/presentation/dev/components/message-component.js +51 -0
  134. package/dist/presentation/dev/components/messages-list.d.ts +24 -0
  135. package/dist/presentation/dev/components/messages-list.js +48 -0
  136. package/dist/presentation/dev/components/system-message.d.ts +16 -0
  137. package/dist/presentation/dev/components/system-message.js +26 -0
  138. package/dist/presentation/dev/components/user-message.d.ts +21 -0
  139. package/dist/presentation/dev/components/user-message.js +35 -0
  140. package/dist/presentation/dev/components/welcome-banner.d.ts +24 -0
  141. package/dist/presentation/dev/components/welcome-banner.js +146 -0
  142. package/dist/presentation/dev/goodbye-messages.d.ts +31 -0
  143. package/dist/presentation/dev/goodbye-messages.js +100 -0
  144. package/dist/presentation/dev/index.d.ts +5 -0
  145. package/dist/presentation/dev/index.js +5 -0
  146. package/dist/presentation/dev/text-wrapper.d.ts +30 -0
  147. package/dist/presentation/dev/text-wrapper.js +74 -0
  148. package/dist/presentation/dev-ui.d.ts +33 -0
  149. package/dist/presentation/dev-ui.js +246 -0
  150. package/dist/presentation/doctor-ui.d.ts +40 -0
  151. package/dist/presentation/doctor-ui.js +157 -0
  152. package/dist/presentation/init-ui.d.ts +14 -0
  153. package/dist/presentation/init-ui.js +41 -0
  154. package/dist/presentation/list-ui.d.ts +44 -0
  155. package/dist/presentation/list-ui.js +139 -0
  156. package/dist/presentation/test-ui.d.ts +49 -0
  157. package/dist/presentation/test-ui.js +358 -0
  158. package/dist/runtime/analysis/analyser.d.ts +14 -0
  159. package/dist/runtime/analysis/analyser.js +88 -0
  160. package/dist/runtime/analysis/dependencies.d.ts +10 -0
  161. package/dist/runtime/analysis/dependencies.js +140 -0
  162. package/dist/runtime/analysis/index.d.ts +10 -0
  163. package/dist/runtime/analysis/index.js +10 -0
  164. package/dist/runtime/analysis/indexer.d.ts +10 -0
  165. package/dist/runtime/analysis/indexer.js +62 -0
  166. package/dist/runtime/analysis/loader.d.ts +15 -0
  167. package/dist/runtime/analysis/loader.js +47 -0
  168. package/dist/runtime/analysis/normalizer.d.ts +14 -0
  169. package/dist/runtime/analysis/normalizer.js +184 -0
  170. package/dist/runtime/analysis/rules/__test-helpers__.d.ts +18 -0
  171. package/dist/runtime/analysis/rules/__test-helpers__.js +40 -0
  172. package/dist/runtime/analysis/rules/base.d.ts +38 -0
  173. package/dist/runtime/analysis/rules/base.js +23 -0
  174. package/dist/runtime/analysis/rules/error-codes.d.ts +64 -0
  175. package/dist/runtime/analysis/rules/error-codes.js +73 -0
  176. package/dist/runtime/analysis/rules/errors/e000-tool-not-found.d.ts +35 -0
  177. package/dist/runtime/analysis/rules/errors/e000-tool-not-found.js +32 -0
  178. package/dist/runtime/analysis/rules/errors/e001-missing-output-schema.d.ts +22 -0
  179. package/dist/runtime/analysis/rules/errors/e001-missing-output-schema.js +30 -0
  180. package/dist/runtime/analysis/rules/errors/e002-underspecified-input.d.ts +24 -0
  181. package/dist/runtime/analysis/rules/errors/e002-underspecified-input.js +52 -0
  182. package/dist/runtime/analysis/rules/errors/e003-type-mismatch.d.ts +23 -0
  183. package/dist/runtime/analysis/rules/errors/e003-type-mismatch.js +73 -0
  184. package/dist/runtime/analysis/rules/errors/e004-free-text-propagation.d.ts +23 -0
  185. package/dist/runtime/analysis/rules/errors/e004-free-text-propagation.js +47 -0
  186. package/dist/runtime/analysis/rules/errors/e005-tool-ambiguity.d.ts +25 -0
  187. package/dist/runtime/analysis/rules/errors/e005-tool-ambiguity.js +73 -0
  188. package/dist/runtime/analysis/rules/errors/e006-param-not-in-description.d.ts +22 -0
  189. package/dist/runtime/analysis/rules/errors/e006-param-not-in-description.js +57 -0
  190. package/dist/runtime/analysis/rules/errors/e007-output-not-guaranteed.d.ts +23 -0
  191. package/dist/runtime/analysis/rules/errors/e007-output-not-guaranteed.js +56 -0
  192. package/dist/runtime/analysis/rules/errors/e008-circular-dependency.d.ts +22 -0
  193. package/dist/runtime/analysis/rules/errors/e008-circular-dependency.js +84 -0
  194. package/dist/runtime/analysis/rules/errors/e009-implicit-user-input.d.ts +23 -0
  195. package/dist/runtime/analysis/rules/errors/e009-implicit-user-input.js +89 -0
  196. package/dist/runtime/analysis/rules/errors/e010-non-serializable.d.ts +25 -0
  197. package/dist/runtime/analysis/rules/errors/e010-non-serializable.js +46 -0
  198. package/dist/runtime/analysis/rules/errors/e011-missing-tool-description.d.ts +24 -0
  199. package/dist/runtime/analysis/rules/errors/e011-missing-tool-description.js +33 -0
  200. package/dist/runtime/analysis/rules/errors/e012-side-effect-detected.d.ts +39 -0
  201. package/dist/runtime/analysis/rules/errors/e012-side-effect-detected.js +40 -0
  202. package/dist/runtime/analysis/rules/errors/e013-non-deterministic-output.d.ts +37 -0
  203. package/dist/runtime/analysis/rules/errors/e013-non-deterministic-output.js +34 -0
  204. package/dist/runtime/analysis/rules/errors/e013-output-explosion.d.ts +39 -0
  205. package/dist/runtime/analysis/rules/errors/e013-output-explosion.js +36 -0
  206. package/dist/runtime/analysis/rules/errors/e014-hidden-dependency.d.ts +42 -0
  207. package/dist/runtime/analysis/rules/errors/e014-hidden-dependency.js +46 -0
  208. package/dist/runtime/analysis/rules/errors/e014-output-explosion.d.ts +39 -0
  209. package/dist/runtime/analysis/rules/errors/e014-output-explosion.js +36 -0
  210. package/dist/runtime/analysis/rules/errors/e015-hidden-dependency.d.ts +42 -0
  211. package/dist/runtime/analysis/rules/errors/e015-hidden-dependency.js +46 -0
  212. package/dist/runtime/analysis/rules/errors/e015-unbounded-execution.d.ts +44 -0
  213. package/dist/runtime/analysis/rules/errors/e015-unbounded-execution.js +66 -0
  214. package/dist/runtime/analysis/rules/errors/e016-output-validation-failed.d.ts +43 -0
  215. package/dist/runtime/analysis/rules/errors/e016-output-validation-failed.js +42 -0
  216. package/dist/runtime/analysis/rules/errors/e016-unbounded-execution.d.ts +44 -0
  217. package/dist/runtime/analysis/rules/errors/e016-unbounded-execution.js +66 -0
  218. package/dist/runtime/analysis/rules/errors/e017-input-validation-failed.d.ts +57 -0
  219. package/dist/runtime/analysis/rules/errors/e017-input-validation-failed.js +80 -0
  220. package/dist/runtime/analysis/rules/errors/e017-output-validation-failed.d.ts +43 -0
  221. package/dist/runtime/analysis/rules/errors/e017-output-validation-failed.js +42 -0
  222. package/dist/runtime/analysis/rules/errors/e018-input-validation-failed.d.ts +57 -0
  223. package/dist/runtime/analysis/rules/errors/e018-input-validation-failed.js +80 -0
  224. package/dist/runtime/analysis/rules/errors/e018-tool-execution-failed.d.ts +38 -0
  225. package/dist/runtime/analysis/rules/errors/e018-tool-execution-failed.js +37 -0
  226. package/dist/runtime/analysis/rules/errors/e019-tool-execution-failed.d.ts +38 -0
  227. package/dist/runtime/analysis/rules/errors/e019-tool-execution-failed.js +37 -0
  228. package/dist/runtime/analysis/rules/errors/e019-unexpected-test-result.d.ts +65 -0
  229. package/dist/runtime/analysis/rules/errors/e019-unexpected-test-result.js +109 -0
  230. package/dist/runtime/analysis/rules/errors/e020-unexpected-test-result.d.ts +65 -0
  231. package/dist/runtime/analysis/rules/errors/e020-unexpected-test-result.js +109 -0
  232. package/dist/runtime/analysis/rules/errors/e100-missing-output-schema.d.ts +22 -0
  233. package/dist/runtime/analysis/rules/errors/e100-missing-output-schema.js +30 -0
  234. package/dist/runtime/analysis/rules/errors/e101-missing-tool-description.d.ts +24 -0
  235. package/dist/runtime/analysis/rules/errors/e101-missing-tool-description.js +33 -0
  236. package/dist/runtime/analysis/rules/errors/e102-underspecified-input.d.ts +24 -0
  237. package/dist/runtime/analysis/rules/errors/e102-underspecified-input.js +52 -0
  238. package/dist/runtime/analysis/rules/errors/e103-type-mismatch.d.ts +23 -0
  239. package/dist/runtime/analysis/rules/errors/e103-type-mismatch.js +72 -0
  240. package/dist/runtime/analysis/rules/errors/e104-param-not-in-description.d.ts +22 -0
  241. package/dist/runtime/analysis/rules/errors/e104-param-not-in-description.js +57 -0
  242. package/dist/runtime/analysis/rules/errors/e105-free-text-propagation.d.ts +23 -0
  243. package/dist/runtime/analysis/rules/errors/e105-free-text-propagation.js +47 -0
  244. package/dist/runtime/analysis/rules/errors/e106-output-not-guaranteed.d.ts +23 -0
  245. package/dist/runtime/analysis/rules/errors/e106-output-not-guaranteed.js +58 -0
  246. package/dist/runtime/analysis/rules/errors/e107-circular-dependency.d.ts +22 -0
  247. package/dist/runtime/analysis/rules/errors/e107-circular-dependency.js +84 -0
  248. package/dist/runtime/analysis/rules/errors/e108-implicit-user-input.d.ts +23 -0
  249. package/dist/runtime/analysis/rules/errors/e108-implicit-user-input.js +94 -0
  250. package/dist/runtime/analysis/rules/errors/e109-non-serializable.d.ts +25 -0
  251. package/dist/runtime/analysis/rules/errors/e109-non-serializable.js +44 -0
  252. package/dist/runtime/analysis/rules/errors/e110-tool-ambiguity.d.ts +25 -0
  253. package/dist/runtime/analysis/rules/errors/e110-tool-ambiguity.js +73 -0
  254. package/dist/runtime/analysis/rules/errors/e200-input-validation-failed.d.ts +57 -0
  255. package/dist/runtime/analysis/rules/errors/e200-input-validation-failed.js +71 -0
  256. package/dist/runtime/analysis/rules/errors/e300-output-validation-failed.d.ts +43 -0
  257. package/dist/runtime/analysis/rules/errors/e300-output-validation-failed.js +44 -0
  258. package/dist/runtime/analysis/rules/errors/e301-output-explosion.d.ts +39 -0
  259. package/dist/runtime/analysis/rules/errors/e301-output-explosion.js +36 -0
  260. package/dist/runtime/analysis/rules/errors/e400-tool-execution-failed.d.ts +38 -0
  261. package/dist/runtime/analysis/rules/errors/e400-tool-execution-failed.js +37 -0
  262. package/dist/runtime/analysis/rules/errors/e403-unbounded-execution.d.ts +44 -0
  263. package/dist/runtime/analysis/rules/errors/e403-unbounded-execution.js +66 -0
  264. package/dist/runtime/analysis/rules/errors/e500-side-effect-detected.d.ts +39 -0
  265. package/dist/runtime/analysis/rules/errors/e500-side-effect-detected.js +40 -0
  266. package/dist/runtime/analysis/rules/errors/e501-hidden-dependency.d.ts +47 -0
  267. package/dist/runtime/analysis/rules/errors/e501-hidden-dependency.js +46 -0
  268. package/dist/runtime/analysis/rules/errors/e600-unexpected-test-result.d.ts +65 -0
  269. package/dist/runtime/analysis/rules/errors/e600-unexpected-test-result.js +109 -0
  270. package/dist/runtime/analysis/rules/index.d.ts +18 -0
  271. package/dist/runtime/analysis/rules/index.js +94 -0
  272. package/dist/runtime/analysis/rules/warnings/w001-implicit-dependency.d.ts +22 -0
  273. package/dist/runtime/analysis/rules/warnings/w001-implicit-dependency.js +39 -0
  274. package/dist/runtime/analysis/rules/warnings/w002-free-text-without-normalization.d.ts +24 -0
  275. package/dist/runtime/analysis/rules/warnings/w002-free-text-without-normalization.js +40 -0
  276. package/dist/runtime/analysis/rules/warnings/w003-missing-examples.d.ts +22 -0
  277. package/dist/runtime/analysis/rules/warnings/w003-missing-examples.js +84 -0
  278. package/dist/runtime/analysis/rules/warnings/w004-overloaded-responsibility.d.ts +23 -0
  279. package/dist/runtime/analysis/rules/warnings/w004-overloaded-responsibility.js +96 -0
  280. package/dist/runtime/analysis/rules/warnings/w005-generic-description.d.ts +53 -0
  281. package/dist/runtime/analysis/rules/warnings/w005-generic-description.js +108 -0
  282. package/dist/runtime/analysis/rules/warnings/w006-optional-as-required.d.ts +22 -0
  283. package/dist/runtime/analysis/rules/warnings/w006-optional-as-required.js +44 -0
  284. package/dist/runtime/analysis/rules/warnings/w007-broad-output-schema.d.ts +23 -0
  285. package/dist/runtime/analysis/rules/warnings/w007-broad-output-schema.js +37 -0
  286. package/dist/runtime/analysis/rules/warnings/w008-multiple-entry-points.d.ts +22 -0
  287. package/dist/runtime/analysis/rules/warnings/w008-multiple-entry-points.js +97 -0
  288. package/dist/runtime/analysis/rules/warnings/w009-hidden-side-effects.d.ts +23 -0
  289. package/dist/runtime/analysis/rules/warnings/w009-hidden-side-effects.js +88 -0
  290. package/dist/runtime/analysis/rules/warnings/w010-output-not-reusable.d.ts +22 -0
  291. package/dist/runtime/analysis/rules/warnings/w010-output-not-reusable.js +81 -0
  292. package/dist/runtime/analysis/rules/warnings/w021-weak-schema.d.ts +40 -0
  293. package/dist/runtime/analysis/rules/warnings/w021-weak-schema.js +32 -0
  294. package/dist/runtime/analysis/rules/warnings/w022-high-entropy-output.d.ts +39 -0
  295. package/dist/runtime/analysis/rules/warnings/w022-high-entropy-output.js +36 -0
  296. package/dist/runtime/analysis/rules/warnings/w023-unstable-defaults.d.ts +38 -0
  297. package/dist/runtime/analysis/rules/warnings/w023-unstable-defaults.js +36 -0
  298. package/dist/runtime/analysis/rules/warnings/w100-implicit-dependency.d.ts +22 -0
  299. package/dist/runtime/analysis/rules/warnings/w100-implicit-dependency.js +89 -0
  300. package/dist/runtime/analysis/rules/warnings/w101-free-text-without-normalization.d.ts +24 -0
  301. package/dist/runtime/analysis/rules/warnings/w101-free-text-without-normalization.js +40 -0
  302. package/dist/runtime/analysis/rules/warnings/w102-missing-examples.d.ts +22 -0
  303. package/dist/runtime/analysis/rules/warnings/w102-missing-examples.js +76 -0
  304. package/dist/runtime/analysis/rules/warnings/w103-overloaded-responsibility.d.ts +23 -0
  305. package/dist/runtime/analysis/rules/warnings/w103-overloaded-responsibility.js +91 -0
  306. package/dist/runtime/analysis/rules/warnings/w104-generic-description.d.ts +53 -0
  307. package/dist/runtime/analysis/rules/warnings/w104-generic-description.js +108 -0
  308. package/dist/runtime/analysis/rules/warnings/w105-optional-as-required.d.ts +22 -0
  309. package/dist/runtime/analysis/rules/warnings/w105-optional-as-required.js +45 -0
  310. package/dist/runtime/analysis/rules/warnings/w106-broad-output-schema.d.ts +23 -0
  311. package/dist/runtime/analysis/rules/warnings/w106-broad-output-schema.js +37 -0
  312. package/dist/runtime/analysis/rules/warnings/w107-multiple-entry-points.d.ts +22 -0
  313. package/dist/runtime/analysis/rules/warnings/w107-multiple-entry-points.js +97 -0
  314. package/dist/runtime/analysis/rules/warnings/w108-hidden-side-effects.d.ts +23 -0
  315. package/dist/runtime/analysis/rules/warnings/w108-hidden-side-effects.js +94 -0
  316. package/dist/runtime/analysis/rules/warnings/w109-output-not-reusable.d.ts +22 -0
  317. package/dist/runtime/analysis/rules/warnings/w109-output-not-reusable.js +63 -0
  318. package/dist/runtime/analysis/rules/warnings/w110-weak-schema.d.ts +40 -0
  319. package/dist/runtime/analysis/rules/warnings/w110-weak-schema.js +32 -0
  320. package/dist/runtime/analysis/rules/warnings/w300-high-entropy-output.d.ts +39 -0
  321. package/dist/runtime/analysis/rules/warnings/w300-high-entropy-output.js +47 -0
  322. package/dist/runtime/analysis/rules/warnings/w301-unstable-defaults.d.ts +38 -0
  323. package/dist/runtime/analysis/rules/warnings/w301-unstable-defaults.js +36 -0
  324. package/dist/runtime/analysis/strict-mode.d.ts +21 -0
  325. package/dist/runtime/analysis/strict-mode.js +44 -0
  326. package/dist/runtime/analysis/types.d.ts +133 -0
  327. package/dist/runtime/analysis/types.js +6 -0
  328. package/dist/runtime/analysis/utils.d.ts +19 -0
  329. package/dist/runtime/analysis/utils.js +21 -0
  330. package/dist/runtime/dev/data-manager.d.ts +55 -0
  331. package/dist/runtime/dev/data-manager.js +87 -0
  332. package/dist/runtime/dev/event-mapper.d.ts +100 -0
  333. package/dist/runtime/dev/event-mapper.js +400 -0
  334. package/dist/runtime/dev/formatter.d.ts +94 -0
  335. package/dist/runtime/dev/formatter.js +236 -0
  336. package/dist/runtime/dev/index.d.ts +9 -0
  337. package/dist/runtime/dev/index.js +9 -0
  338. package/dist/runtime/dev/repl.d.ts +114 -0
  339. package/dist/runtime/dev/repl.js +310 -0
  340. package/dist/runtime/dev/session.d.ts +86 -0
  341. package/dist/runtime/dev/session.js +447 -0
  342. package/dist/runtime/dev/stack-trace.d.ts +77 -0
  343. package/dist/runtime/dev/stack-trace.js +286 -0
  344. package/dist/runtime/dev/types.d.ts +54 -0
  345. package/dist/runtime/dev/types.js +5 -0
  346. package/dist/runtime/llm/claude.d.ts +27 -0
  347. package/dist/runtime/llm/claude.js +150 -0
  348. package/dist/runtime/llm/factory.d.ts +30 -0
  349. package/dist/runtime/llm/factory.js +78 -0
  350. package/dist/runtime/llm/index.d.ts +10 -0
  351. package/dist/runtime/llm/index.js +10 -0
  352. package/dist/runtime/llm/ollama.d.ts +45 -0
  353. package/dist/runtime/llm/ollama.js +449 -0
  354. package/dist/runtime/llm/openai.d.ts +27 -0
  355. package/dist/runtime/llm/openai.js +170 -0
  356. package/dist/runtime/llm/provider.d.ts +32 -0
  357. package/dist/runtime/llm/provider.js +6 -0
  358. package/dist/runtime/llm/types.d.ts +55 -0
  359. package/dist/runtime/llm/types.js +6 -0
  360. package/dist/runtime/mcp/client/base.d.ts +40 -0
  361. package/dist/runtime/mcp/client/base.js +157 -0
  362. package/dist/runtime/mcp/client/manager.d.ts +91 -0
  363. package/dist/runtime/mcp/client/manager.js +248 -0
  364. package/dist/runtime/mcp/client/process.d.ts +31 -0
  365. package/dist/runtime/mcp/client/process.js +82 -0
  366. package/dist/runtime/mcp/connection.d.ts +63 -0
  367. package/dist/runtime/mcp/connection.js +449 -0
  368. package/dist/runtime/mcp/index.d.ts +9 -0
  369. package/dist/runtime/mcp/index.js +9 -0
  370. package/dist/runtime/mcp/list.d.ts +50 -0
  371. package/dist/runtime/mcp/list.js +65 -0
  372. package/dist/runtime/mcp/stdio-transport.d.ts +23 -0
  373. package/dist/runtime/mcp/stdio-transport.js +71 -0
  374. package/dist/runtime/mcp/types.d.ts +85 -0
  375. package/dist/runtime/mcp/types.js +6 -0
  376. package/dist/runtime/sandbox/executor.d.ts +102 -0
  377. package/dist/runtime/sandbox/executor.js +537 -0
  378. package/dist/runtime/sandbox/index.d.ts +9 -0
  379. package/dist/runtime/sandbox/index.js +9 -0
  380. package/dist/runtime/sandbox/io-monitor.d.ts +78 -0
  381. package/dist/runtime/sandbox/io-monitor.js +98 -0
  382. package/dist/runtime/sandbox/time-parser.d.ts +19 -0
  383. package/dist/runtime/sandbox/time-parser.js +67 -0
  384. package/dist/runtime/sandbox/types.d.ts +58 -0
  385. package/dist/runtime/sandbox/types.js +23 -0
  386. package/dist/runtime/test/behavior-observer.d.ts +61 -0
  387. package/dist/runtime/test/behavior-observer.js +140 -0
  388. package/dist/runtime/test/contract-loader.d.ts +41 -0
  389. package/dist/runtime/test/contract-loader.js +158 -0
  390. package/dist/runtime/test/contract-schema.d.ts +46 -0
  391. package/dist/runtime/test/contract-schema.js +107 -0
  392. package/dist/runtime/test/contract-types.d.ts +106 -0
  393. package/dist/runtime/test/contract-types.js +6 -0
  394. package/dist/runtime/test/dependency-tracker.d.ts +66 -0
  395. package/dist/runtime/test/dependency-tracker.js +80 -0
  396. package/dist/runtime/test/formatters.d.ts +18 -0
  397. package/dist/runtime/test/formatters.js +172 -0
  398. package/dist/runtime/test/index.d.ts +12 -0
  399. package/dist/runtime/test/index.js +13 -0
  400. package/dist/runtime/test/input-generator.d.ts +33 -0
  401. package/dist/runtime/test/input-generator.js +498 -0
  402. package/dist/runtime/test/mcp-root-detector.d.ts +31 -0
  403. package/dist/runtime/test/mcp-root-detector.js +105 -0
  404. package/dist/runtime/test/orchestrator.d.ts +131 -0
  405. package/dist/runtime/test/orchestrator.js +738 -0
  406. package/dist/runtime/test/output-validator.d.ts +44 -0
  407. package/dist/runtime/test/output-validator.js +262 -0
  408. package/dist/runtime/test/retry-tester.d.ts +44 -0
  409. package/dist/runtime/test/retry-tester.js +103 -0
  410. package/dist/runtime/test/runner.d.ts +28 -0
  411. package/dist/runtime/test/runner.js +55 -0
  412. package/dist/runtime/test/synthetic-input-generator.d.ts +11 -0
  413. package/dist/runtime/test/synthetic-input-generator.js +154 -0
  414. package/dist/runtime/test/test-runner.d.ts +28 -0
  415. package/dist/runtime/test/test-runner.js +55 -0
  416. package/dist/types/factories.d.ts +16 -0
  417. package/dist/types/factories.js +43 -0
  418. package/dist/types/ids.d.ts +16 -0
  419. package/dist/types/ids.js +2 -0
  420. package/dist/types/opaque.d.ts +4 -0
  421. package/dist/types/opaque.js +2 -0
  422. package/dist/utils/errors.d.ts +92 -0
  423. package/dist/utils/errors.js +97 -0
  424. package/dist/utils/gitignore.d.ts +11 -0
  425. package/dist/utils/gitignore.js +59 -0
  426. package/dist/utils/json-file-saver.d.ts +17 -0
  427. package/dist/utils/json-file-saver.js +81 -0
  428. package/dist/utils/json-formatter.d.ts +63 -0
  429. package/dist/utils/json-formatter.js +344 -0
  430. package/dist/utils/logger.d.ts +184 -0
  431. package/dist/utils/logger.js +330 -0
  432. package/dist/utils/package-manager.d.ts +30 -0
  433. package/dist/utils/package-manager.js +157 -0
  434. package/dist/utils/version-checker.d.ts +47 -0
  435. package/dist/utils/version-checker.js +167 -0
  436. package/dist/utils/version-display.d.ts +10 -0
  437. package/dist/utils/version-display.js +20 -0
  438. package/package.json +106 -0
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Message constants used throughout the application.
3
+ * Centralized for consistency and easy updates.
4
+ */
5
+ export declare const Messages: {
6
+ readonly DOCTOR_SETUP_SUCCESS: "Everything is set up well!";
7
+ readonly DOCTOR_ISSUES_FOUND: "Some issues found. Please fix them before proceeding.";
8
+ readonly INIT_ALREADY_INITIALIZED: "Syrin project is already initialized!";
9
+ readonly INIT_CONFIG_FILE: (configPath: string) => string;
10
+ readonly INIT_SUCCESS: "Syrin project initialized successfully!";
11
+ readonly INIT_NEXT_STEPS_HEADER: "Next steps:";
12
+ readonly INIT_ALREADY_INIT_MSG: (configPath: string) => string;
13
+ readonly INIT_VERIFY_SETUP: (doctorCommand: string) => string;
14
+ readonly INIT_REINITIALIZE_TIP: "Want to re-initialize?";
15
+ readonly INIT_REINITIALIZE_INSTRUCTION: (initCommand: string) => string;
16
+ readonly INIT_REVIEW_CONFIG: (configPath: string) => string;
17
+ readonly INIT_SETUP_ENV_VARS: "Set up your environment variables (API keys, etc.)";
18
+ readonly INIT_RUN_DOCTOR: (doctorCommand: string) => string;
19
+ readonly INIT_RUN_DEV: (devCommand: string) => string;
20
+ readonly ERROR_UNEXPECTED: "An unexpected error occurred";
21
+ readonly ERROR_LOADING_CONFIG: "Failed to load configuration file";
22
+ readonly ERROR_VALIDATION_FAILED: "Configuration validation failed";
23
+ readonly ERROR_CONFIG_NOT_FOUND: (command: string) => string;
24
+ readonly ERROR_CONFIG_EMPTY_OR_INVALID: "Configuration file is empty or invalid";
25
+ readonly ERROR_GENERATE_CONFIG: "Failed to generate configuration file";
26
+ readonly ENV_FILE_NOT_PRESENT: (_varName: string) => string;
27
+ readonly ENV_KEY_NOT_FOUND: (varName: string) => string;
28
+ readonly ENV_KEY_EMPTY: (varName: string) => string;
29
+ readonly ENV_SET_INSTRUCTIONS: (varName: string) => string;
30
+ readonly CONFIG_ADD_MCP_URL: "Add `mcp_url` to your config.yaml file when using http transport";
31
+ readonly CONFIG_ADD_SCRIPTS: "Add `scripts` section to your config.yaml with `dev` and `start` commands. For stdio transport, `scripts.dev` is required.";
32
+ readonly CONFIG_ADD_SCRIPT_STDIO: "Add script to your config.yaml file when using stdio transport";
33
+ readonly TRANSPORT_URL_REQUIRED: "MCP URL is required for HTTP transport. Set it in config.yaml or use --url option.";
34
+ readonly TRANSPORT_SCRIPT_REQUIRED: "Script is required for stdio transport. Set it in config.yaml or use --script option.";
35
+ readonly TRANSPORT_SCRIPT_REQUIRED_RUN_FLAG: "script is required when using --run-script flag";
36
+ readonly TRANSPORT_URL_REQUIRED_CONFIG: "MCP URL is required for HTTP transport. Set it in config.yaml.";
37
+ readonly CONNECTION_FAILED: (mcpUrl: string, source: string, transportType?: string) => string;
38
+ readonly CONNECTION_TIMEOUT_HTTP: (mcpUrl: string) => string;
39
+ readonly CONNECTION_FAILED_STDIO: (mcpCommand: string) => string;
40
+ readonly CONNECTION_TIMEOUT_STDIO: string;
41
+ readonly DEV_WELCOME: "Welcome to Syrin Dev Mode!";
42
+ readonly DEV_VERSION_INFO: (version: string, llm: string, tools: number) => string;
43
+ readonly DEV_TRANSPORT_HTTP: (transport: string, url: string) => string;
44
+ readonly DEV_TRANSPORT_STDIO: (transport: string, command: string) => string;
45
+ readonly DEV_HELP_MESSAGE: "Type your message below or /help for commands.";
46
+ readonly DEV_TOOLS_HEADER: "Available Tools:";
47
+ readonly DEV_NO_TOOLS: " No tools available";
48
+ readonly DEV_HISTORY_HEADER: "Command History (last 100 entries):";
49
+ readonly DEV_NO_HISTORY: "No command history yet.";
50
+ readonly DEV_ERROR_READING_HISTORY: (error: string) => string;
51
+ readonly DEV_TOOL_CALLING: (name: string) => string;
52
+ readonly DEV_TOOL_COMPLETED: (name: string, duration?: number) => string;
53
+ readonly DEV_ERROR_START: "Failed to start dev mode";
54
+ readonly DEV_GOODBYE: "\n\nGoodbye! 👋";
55
+ readonly DOCTOR_SCRIPT_MISSING: "script is missing";
56
+ readonly DOCTOR_COMMAND_NOT_FOUND: (command: string) => string;
57
+ readonly DOCTOR_COMMAND_INSTALL: (command: string) => string;
58
+ readonly DOCTOR_SCRIPT_WORKING: "working";
59
+ readonly DOCTOR_SCRIPT_INFO: (script: string) => string;
60
+ readonly DOCTOR_MCP_URL_INFO: (url: string) => string;
61
+ readonly LIST_INVALID_TYPE: (type: string) => string;
62
+ readonly LIST_VALID_TYPES: "Valid types are: tools, resources, prompts";
63
+ readonly LIST_ERROR_FAILED: (type: string) => string;
64
+ readonly LIST_SOURCE_CONFIG: " (from config.yaml)";
65
+ readonly LIST_SOURCE_CLI_URL: " (from --url)";
66
+ readonly PROMPT_PROJECT_NAME_REQUIRED: "Project name is required";
67
+ readonly PROMPT_PROJECT_NAME_INVALID: "Project name can only contain letters, numbers, and hyphens";
68
+ readonly PROMPT_AGENT_NAME_REQUIRED: "Agent name is required";
69
+ readonly PROMPT_MCP_URL_REQUIRED: "MCP server URL is required for http transport";
70
+ readonly PROMPT_URL_INVALID: "Invalid URL format";
71
+ readonly PROMPT_SCRIPT_REQUIRED: "Script command is required";
72
+ readonly PROMPT_LLM_PROVIDER_REQUIRED: "At least one LLM provider must be selected";
73
+ readonly PROMPT_OPENAI_API_KEY_REQUIRED: "OpenAI API key is required";
74
+ readonly PROMPT_OPENAI_MODEL_REQUIRED: "OpenAI model name is required";
75
+ readonly PROMPT_CLAUDE_API_KEY_REQUIRED: "Claude API key is required";
76
+ readonly PROMPT_CLAUDE_MODEL_REQUIRED: "Claude model name is required";
77
+ readonly PROMPT_OLLAMA_MODEL_REQUIRED: "Ollama model name is required";
78
+ readonly CLI_START_FAILED: "Failed to start CLI";
79
+ readonly UPDATE_CHECKING: "Checking for updates...";
80
+ readonly UPDATE_CURRENT_VERSION: (version: string) => string;
81
+ readonly UPDATE_LATEST_VERSION: (version: string) => string;
82
+ readonly UPDATE_ALREADY_LATEST: (version: string) => string;
83
+ readonly UPDATE_IN_PROGRESS: (packageName: string) => string;
84
+ readonly UPDATE_SUCCESS: (version: string) => string;
85
+ readonly UPDATE_FAILED: "Update failed";
86
+ readonly UPDATE_ERROR: (error: string) => string;
87
+ readonly UPDATE_PERMISSION_HINT: (command: string) => string;
88
+ readonly ROLLBACK_IN_PROGRESS: (version: string, packageName: string) => string;
89
+ readonly ROLLBACK_SUCCESS: (version: string) => string;
90
+ readonly ROLLBACK_FAILED: "Rollback failed";
91
+ readonly ROLLBACK_ERROR: (error: string) => string;
92
+ readonly ROLLBACK_INVALID_VERSION: (version: string) => string;
93
+ readonly ROLLBACK_VERSION_NOT_FOUND: (version: string) => string;
94
+ readonly ROLLBACK_CONFIRM: (currentVersion: string, targetVersion: string) => string;
95
+ readonly ANALYSE_CONNECTING: "Connecting to MCP server...";
96
+ readonly ANALYSE_LOADING_TOOLS: "Loading tools...";
97
+ readonly ANALYSE_ANALYZING: "Analyzing tools...";
98
+ readonly ANALYSE_ERROR_FAILED: "Failed to analyze MCP server";
99
+ readonly ANALYSE_NO_TOOLS: "No tools found in MCP server";
100
+ readonly ANALYSE_VERDICT_PASS: "Syrin analysis passed";
101
+ readonly ANALYSE_VERDICT_FAIL: (errors: number, warnings: number) => string;
102
+ readonly ANALYSE_VERDICT_PASS_WARNINGS: (warnings: number) => string;
103
+ readonly ANALYSE_ERRORS_HEADER: "Errors:";
104
+ readonly ANALYSE_WARNINGS_HEADER: "Warnings:";
105
+ readonly ANALYSE_SUGGESTIONS_HEADER: "Suggestions:";
106
+ };
107
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Message constants used throughout the application.
3
+ * Centralized for consistency and easy updates.
4
+ */
5
+ export const Messages = {
6
+ // Doctor Report Messages
7
+ DOCTOR_SETUP_SUCCESS: 'Everything is set up well!',
8
+ DOCTOR_ISSUES_FOUND: 'Some issues found. Please fix them before proceeding.',
9
+ // Init Command Messages
10
+ INIT_ALREADY_INITIALIZED: 'Syrin project is already initialized!',
11
+ INIT_CONFIG_FILE: (configPath) => `Configuration file: ${configPath}`,
12
+ INIT_SUCCESS: 'Syrin project initialized successfully!',
13
+ INIT_NEXT_STEPS_HEADER: 'Next steps:',
14
+ INIT_ALREADY_INIT_MSG: (configPath) => `Syrin is already initialized. Kindly go to ${configPath} to set up.`,
15
+ INIT_VERIFY_SETUP: (doctorCommand) => `After the setup, you can call \`${doctorCommand}\` to verify the setup process.`,
16
+ INIT_REINITIALIZE_TIP: 'Want to re-initialize?',
17
+ INIT_REINITIALIZE_INSTRUCTION: (initCommand) => `Delete the syrin.yaml file and run \`${initCommand}\` again.`,
18
+ INIT_REVIEW_CONFIG: (configPath) => `Review and edit ${configPath} if needed`,
19
+ INIT_SETUP_ENV_VARS: 'Set up your environment variables (API keys, etc.)',
20
+ INIT_RUN_DOCTOR: (doctorCommand) => `Run \`${doctorCommand}\` to verify your Syrin setup`,
21
+ INIT_RUN_DEV: (devCommand) => `Run \`${devCommand}\` to start development mode`,
22
+ // Error Messages
23
+ ERROR_UNEXPECTED: 'An unexpected error occurred',
24
+ ERROR_LOADING_CONFIG: 'Failed to load configuration file',
25
+ ERROR_VALIDATION_FAILED: 'Configuration validation failed',
26
+ ERROR_CONFIG_NOT_FOUND: (command) => `Configuration file not found. Run \`${command}\` to initialize the project.`,
27
+ ERROR_CONFIG_EMPTY_OR_INVALID: 'Configuration file is empty or invalid',
28
+ ERROR_GENERATE_CONFIG: 'Failed to generate configuration file',
29
+ // Environment Variable Messages
30
+ ENV_FILE_NOT_PRESENT: (_varName) => `.env file is not present in the project root`,
31
+ ENV_KEY_NOT_FOUND: (varName) => `.env file is present but key "${varName}" not found`,
32
+ ENV_KEY_EMPTY: (varName) => `Key "${varName}" found in .env file but the value is empty`,
33
+ ENV_SET_INSTRUCTIONS: (varName) => `Set ${varName} in your .env file or export it in your shell`,
34
+ // Config Fix Messages
35
+ CONFIG_ADD_MCP_URL: 'Add `mcp_url` to your config.yaml file when using http transport',
36
+ CONFIG_ADD_SCRIPTS: 'Add `scripts` section to your config.yaml with `dev` and `start` commands. For stdio transport, `scripts.dev` is required.',
37
+ CONFIG_ADD_SCRIPT_STDIO: 'Add script to your config.yaml file when using stdio transport',
38
+ // Transport/Connection Error Messages
39
+ TRANSPORT_URL_REQUIRED: 'MCP URL is required for HTTP transport. Set it in config.yaml or use --url option.',
40
+ TRANSPORT_SCRIPT_REQUIRED: 'Script is required for stdio transport. Set it in config.yaml or use --script option.',
41
+ TRANSPORT_SCRIPT_REQUIRED_RUN_FLAG: 'script is required when using --run-script flag',
42
+ TRANSPORT_URL_REQUIRED_CONFIG: 'MCP URL is required for HTTP transport. Set it in config.yaml.',
43
+ CONNECTION_FAILED: (mcpUrl, source, transportType = 'http') => `Cannot connect to MCP server using ${transportType.toUpperCase()} transport.\n` +
44
+ `\n` +
45
+ `MCP URL: ${mcpUrl}${source}\n` +
46
+ `Transport: ${transportType.toUpperCase()}\n` +
47
+ `\n` +
48
+ `The server appears to be not running or unreachable.\n` +
49
+ `\n` +
50
+ `To fix this:\n` +
51
+ ` 1. Make sure the MCP server is running\n` +
52
+ ` 2. Verify the URL is correct: ${mcpUrl}\n` +
53
+ ` 3. Check if the server is listening on the expected port\n` +
54
+ (transportType === 'http' && source.includes('config')
55
+ ? ` 4. If you intended to use stdio transport, use --script instead of --url\n`
56
+ : ''),
57
+ CONNECTION_TIMEOUT_HTTP: (mcpUrl) => `Connection to MCP server at ${mcpUrl} timed out.\n` +
58
+ `The server may be slow to respond or not running.`,
59
+ CONNECTION_FAILED_STDIO: (mcpCommand) => `Failed to start MCP server process: ${mcpCommand}\n` +
60
+ `\n` +
61
+ `The script may be incorrect or the executable not found.\n` +
62
+ `Verify the script path in config.yaml or use --script option.`,
63
+ CONNECTION_TIMEOUT_STDIO: `Connection to MCP server via stdio timed out.\n` +
64
+ `The server process may have failed to start or is not responding.`,
65
+ // Dev Command Messages
66
+ DEV_WELCOME: 'Welcome to Syrin Dev Mode!',
67
+ DEV_VERSION_INFO: (version, llm, tools) => `Version: ${version} | LLM: ${llm} | Tools: ${tools}`,
68
+ DEV_TRANSPORT_HTTP: (transport, url) => `Transport: ${transport} | MCP URL: ${url} ✅`,
69
+ DEV_TRANSPORT_STDIO: (transport, command) => `Transport: ${transport} | Command: ${command} ✅`,
70
+ DEV_HELP_MESSAGE: 'Type your message below or /help for commands.',
71
+ DEV_TOOLS_HEADER: 'Available Tools:',
72
+ DEV_NO_TOOLS: ' No tools available',
73
+ DEV_HISTORY_HEADER: 'Command History (last 100 entries):',
74
+ DEV_NO_HISTORY: 'No command history yet.',
75
+ DEV_ERROR_READING_HISTORY: (error) => `Error reading history: ${error}`,
76
+ DEV_TOOL_CALLING: (name) => `🔧 Calling tool: ${name}`,
77
+ DEV_TOOL_COMPLETED: (name, duration) => `✅ Tool ${name} completed${duration ? ` (${duration}ms)` : ''}`,
78
+ DEV_ERROR_START: 'Failed to start dev mode',
79
+ DEV_GOODBYE: '\n\nGoodbye! 👋',
80
+ // Doctor Command Messages
81
+ DOCTOR_SCRIPT_MISSING: 'script is missing',
82
+ DOCTOR_COMMAND_NOT_FOUND: (command) => `Command "${command}" not found in PATH`,
83
+ DOCTOR_COMMAND_INSTALL: (command) => `Make sure "${command}" is installed and available in your PATH`,
84
+ DOCTOR_SCRIPT_WORKING: 'working',
85
+ DOCTOR_SCRIPT_INFO: (script) => `Script: ${script}`,
86
+ DOCTOR_MCP_URL_INFO: (url) => `MCP URL: ${String(url)}`,
87
+ // List Command Messages
88
+ LIST_INVALID_TYPE: (type) => `Invalid list type: ${type}`,
89
+ LIST_VALID_TYPES: 'Valid types are: tools, resources, prompts',
90
+ LIST_ERROR_FAILED: (type) => `Failed to list ${type}`,
91
+ LIST_SOURCE_CONFIG: ' (from config.yaml)',
92
+ LIST_SOURCE_CLI_URL: ' (from --url)',
93
+ // Prompt Validation Messages
94
+ PROMPT_PROJECT_NAME_REQUIRED: 'Project name is required',
95
+ PROMPT_PROJECT_NAME_INVALID: 'Project name can only contain letters, numbers, and hyphens',
96
+ PROMPT_AGENT_NAME_REQUIRED: 'Agent name is required',
97
+ PROMPT_MCP_URL_REQUIRED: 'MCP server URL is required for http transport',
98
+ PROMPT_URL_INVALID: 'Invalid URL format',
99
+ PROMPT_SCRIPT_REQUIRED: 'Script command is required',
100
+ PROMPT_LLM_PROVIDER_REQUIRED: 'At least one LLM provider must be selected',
101
+ PROMPT_OPENAI_API_KEY_REQUIRED: 'OpenAI API key is required',
102
+ PROMPT_OPENAI_MODEL_REQUIRED: 'OpenAI model name is required',
103
+ PROMPT_CLAUDE_API_KEY_REQUIRED: 'Claude API key is required',
104
+ PROMPT_CLAUDE_MODEL_REQUIRED: 'Claude model name is required',
105
+ PROMPT_OLLAMA_MODEL_REQUIRED: 'Ollama model name is required',
106
+ // CLI Error Messages
107
+ CLI_START_FAILED: 'Failed to start CLI',
108
+ // Update/Rollback Messages
109
+ UPDATE_CHECKING: 'Checking for updates...',
110
+ UPDATE_CURRENT_VERSION: (version) => `Current version: ${version}`,
111
+ UPDATE_LATEST_VERSION: (version) => `Latest version: ${version}`,
112
+ UPDATE_ALREADY_LATEST: (version) => `Already on latest version: ${version}`,
113
+ UPDATE_IN_PROGRESS: (packageName) => `Updating ${packageName}...`,
114
+ UPDATE_SUCCESS: (version) => `Successfully updated to ${version}`,
115
+ UPDATE_FAILED: 'Update failed',
116
+ UPDATE_ERROR: (error) => `Error updating: ${error}`,
117
+ UPDATE_PERMISSION_HINT: (command) => `Permission denied. Try running: ${command}`,
118
+ ROLLBACK_IN_PROGRESS: (version, packageName) => `Rolling back ${packageName} to ${version}...`,
119
+ ROLLBACK_SUCCESS: (version) => `Successfully rolled back to ${version}`,
120
+ ROLLBACK_FAILED: 'Rollback failed',
121
+ ROLLBACK_ERROR: (error) => `Error rolling back: ${error}`,
122
+ ROLLBACK_INVALID_VERSION: (version) => `Invalid version format: ${version}. Expected format: 1.0.0 or v1.0.0`,
123
+ ROLLBACK_VERSION_NOT_FOUND: (version) => `Version ${version} not found on npm registry`,
124
+ ROLLBACK_CONFIRM: (currentVersion, targetVersion) => `Are you sure you want to rollback from ${currentVersion} to ${targetVersion}?`,
125
+ // Analyse Command Messages
126
+ ANALYSE_CONNECTING: 'Connecting to MCP server...',
127
+ ANALYSE_LOADING_TOOLS: 'Loading tools...',
128
+ ANALYSE_ANALYZING: 'Analyzing tools...',
129
+ ANALYSE_ERROR_FAILED: 'Failed to analyze MCP server',
130
+ ANALYSE_NO_TOOLS: 'No tools found in MCP server',
131
+ ANALYSE_VERDICT_PASS: 'Syrin analysis passed',
132
+ ANALYSE_VERDICT_FAIL: (errors, warnings) => `Syrin analysis failed (${errors} error${errors !== 1 ? 's' : ''}, ${warnings} warning${warnings !== 1 ? 's' : ''})`,
133
+ ANALYSE_VERDICT_PASS_WARNINGS: (warnings) => `Syrin analysis passed with ${warnings} warning${warnings !== 1 ? 's' : ''}`,
134
+ ANALYSE_ERRORS_HEADER: 'Errors:',
135
+ ANALYSE_WARNINGS_HEADER: 'Warnings:',
136
+ ANALYSE_SUGGESTIONS_HEADER: 'Suggestions:',
137
+ };
138
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * File and directory path constants.
3
+ * Centralized paths used throughout the application.
4
+ */
5
+ export declare const Paths: {
6
+ /** Syrin configuration directory name */
7
+ readonly SYRIN_DIR: ".syrin";
8
+ /** Configuration file name */
9
+ readonly CONFIG_FILE: "syrin.yaml";
10
+ /** Environment file name */
11
+ readonly ENV_FILE: ".env";
12
+ /** Full path to config file (relative to project root) */
13
+ readonly CONFIG_PATH: "syrin.yaml";
14
+ /** Full path to env file (relative to project root) */
15
+ readonly ENV_PATH: ".env";
16
+ /** Events directory (relative to project root) */
17
+ readonly EVENTS_DIR: ".syrin/events";
18
+ /** Dev history file (relative to project root) */
19
+ readonly DEV_HISTORY_FILE: ".syrin/.dev-history";
20
+ /** Data directory for JSON exports (relative to project root) */
21
+ readonly DATA_DIR: ".syrin/data";
22
+ };
23
+ /**
24
+ * File extension constants.
25
+ */
26
+ export declare const FileExtensions: {
27
+ readonly JSONL: ".jsonl";
28
+ };
29
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * File and directory path constants.
3
+ * Centralized paths used throughout the application.
4
+ */
5
+ export const Paths = {
6
+ /** Syrin configuration directory name */
7
+ SYRIN_DIR: '.syrin',
8
+ /** Configuration file name */
9
+ CONFIG_FILE: 'syrin.yaml',
10
+ /** Environment file name */
11
+ ENV_FILE: '.env',
12
+ /** Full path to config file (relative to project root) */
13
+ CONFIG_PATH: 'syrin.yaml',
14
+ /** Full path to env file (relative to project root) */
15
+ ENV_PATH: '.env',
16
+ /** Events directory (relative to project root) */
17
+ EVENTS_DIR: '.syrin/events',
18
+ /** Dev history file (relative to project root) */
19
+ DEV_HISTORY_FILE: '.syrin/.dev-history',
20
+ /** Data directory for JSON exports (relative to project root) */
21
+ DATA_DIR: '.syrin/data',
22
+ };
23
+ /**
24
+ * File extension constants.
25
+ */
26
+ export const FileExtensions = {
27
+ JSONL: '.jsonl',
28
+ };
29
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Transport type constants.
3
+ */
4
+ export declare const TransportTypes: {
5
+ readonly HTTP: "http";
6
+ readonly STDIO: "stdio";
7
+ };
8
+ export type TransportType = (typeof TransportTypes)[keyof typeof TransportTypes];
9
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Transport type constants.
3
+ */
4
+ export const TransportTypes = {
5
+ HTTP: 'http',
6
+ STDIO: 'stdio',
7
+ };
8
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1,64 @@
1
+ import type { EventEnvelope } from '../events/types.js';
2
+ import type { EventType } from '../events/event-type.js';
3
+ import type { EventStore } from '../events/store.js';
4
+ import type { SessionID, WorkflowID, PromptID } from '../types/ids.js';
5
+ /**
6
+ * Event subscriber callback type.
7
+ * Called when an event is emitted, after it's been persisted to the store.
8
+ */
9
+ export type EventSubscriber = (event: EventEnvelope) => void | Promise<void>;
10
+ /**
11
+ * Event emitter interface.
12
+ * Supports both sync and async event stores.
13
+ */
14
+ export interface EventEmitter {
15
+ /**
16
+ * Emit an event and append it to the event store.
17
+ * Returns the event envelope.
18
+ * For async stores, the promise resolves after the event is persisted.
19
+ */
20
+ emit<TPayload>(eventType: EventType, payload: TPayload): EventEnvelope<TPayload> | Promise<EventEnvelope<TPayload>>;
21
+ /**
22
+ * Subscribe to events.
23
+ * The callback will be called for all events emitted after subscription.
24
+ * Returns an unsubscribe function.
25
+ */
26
+ subscribe?(subscriber: EventSubscriber): () => void;
27
+ }
28
+ /**
29
+ * Runtime event emitter implementation.
30
+ * Handles event creation, sequencing, and persistence.
31
+ * Supports event subscribers for real-time event notifications.
32
+ */
33
+ export declare class RuntimeEventEmitter implements EventEmitter {
34
+ private readonly store;
35
+ private readonly sessionId;
36
+ private readonly workflowId;
37
+ private readonly promptId;
38
+ private sequence;
39
+ private subscribers;
40
+ constructor(store: EventStore, sessionId: SessionID, workflowId: WorkflowID | null, promptId: PromptID | null);
41
+ emit<TPayload>(eventType: EventType, payload: TPayload): EventEnvelope<TPayload> | Promise<EventEnvelope<TPayload>>;
42
+ /**
43
+ * Get the current sequence number.
44
+ */
45
+ getSequence(): number;
46
+ /**
47
+ * Get the session ID.
48
+ */
49
+ getSessionId(): SessionID;
50
+ /**
51
+ * Subscribe to events.
52
+ * The callback will be called for all events emitted after subscription.
53
+ * Returns an unsubscribe function.
54
+ */
55
+ subscribe(subscriber: EventSubscriber): () => void;
56
+ /**
57
+ * Notify all subscribers of a new event.
58
+ * Errors in subscribers are logged but don't affect event emission.
59
+ * Subscribers are called synchronously for real-time updates.
60
+ */
61
+ private notifySubscribers;
62
+ private generateEventID;
63
+ }
64
+ //# sourceMappingURL=emitter.d.ts.map
@@ -0,0 +1,142 @@
1
+ import { makeEventID, makeTimestamp } from '../types/factories.js';
2
+ import { logger } from '../utils/logger.js';
3
+ import { EventStoreError } from '../utils/errors.js';
4
+ /**
5
+ * Runtime event emitter implementation.
6
+ * Handles event creation, sequencing, and persistence.
7
+ * Supports event subscribers for real-time event notifications.
8
+ */
9
+ export class RuntimeEventEmitter {
10
+ store;
11
+ sessionId;
12
+ workflowId;
13
+ promptId;
14
+ sequence = 0;
15
+ subscribers = [];
16
+ constructor(store, sessionId, workflowId, promptId) {
17
+ this.store = store;
18
+ this.sessionId = sessionId;
19
+ this.workflowId = workflowId;
20
+ this.promptId = promptId;
21
+ }
22
+ emit(eventType, payload) {
23
+ const event = {
24
+ event_id: makeEventID(this.generateEventID()),
25
+ event_type: eventType,
26
+ session_id: this.sessionId,
27
+ workflow_id: this.workflowId,
28
+ prompt_id: this.promptId,
29
+ timestamp: makeTimestamp(new Date().toISOString()),
30
+ sequence: ++this.sequence,
31
+ source: 'runtime',
32
+ payload,
33
+ };
34
+ try {
35
+ const appendResult = this.store.append(event);
36
+ // Handle both sync and async stores
37
+ if (appendResult instanceof Promise) {
38
+ return appendResult
39
+ .then(() => {
40
+ logger.debug(`Event emitted: ${eventType}`, {
41
+ event_id: event.event_id,
42
+ sequence: event.sequence,
43
+ });
44
+ // Notify subscribers after event is persisted
45
+ this.notifySubscribers(event);
46
+ return event;
47
+ })
48
+ .catch((error) => {
49
+ const err = error instanceof Error ? error : new Error(String(error));
50
+ logger.error('Failed to persist event', err, {
51
+ event_id: event.event_id,
52
+ event_type: eventType,
53
+ });
54
+ throw new EventStoreError('Failed to persist event', {
55
+ event,
56
+ context: { event_type: eventType },
57
+ cause: err,
58
+ });
59
+ });
60
+ }
61
+ // Sync store
62
+ logger.debug(`Event emitted: ${eventType}`, {
63
+ event_id: event.event_id,
64
+ sequence: event.sequence,
65
+ });
66
+ // Notify subscribers after event is persisted
67
+ this.notifySubscribers(event);
68
+ return event;
69
+ }
70
+ catch (error) {
71
+ const err = error instanceof Error ? error : new Error(String(error));
72
+ logger.error('Failed to emit event', err, {
73
+ event_id: event.event_id,
74
+ event_type: eventType,
75
+ });
76
+ throw new EventStoreError('Failed to emit event', {
77
+ event,
78
+ context: { event_type: eventType },
79
+ cause: err,
80
+ });
81
+ }
82
+ }
83
+ /**
84
+ * Get the current sequence number.
85
+ */
86
+ getSequence() {
87
+ return this.sequence;
88
+ }
89
+ /**
90
+ * Get the session ID.
91
+ */
92
+ getSessionId() {
93
+ return this.sessionId;
94
+ }
95
+ /**
96
+ * Subscribe to events.
97
+ * The callback will be called for all events emitted after subscription.
98
+ * Returns an unsubscribe function.
99
+ */
100
+ subscribe(subscriber) {
101
+ this.subscribers.push(subscriber);
102
+ // Return unsubscribe function
103
+ return () => {
104
+ this.subscribers = this.subscribers.filter(sub => sub !== subscriber);
105
+ };
106
+ }
107
+ /**
108
+ * Notify all subscribers of a new event.
109
+ * Errors in subscribers are logged but don't affect event emission.
110
+ * Subscribers are called synchronously for real-time updates.
111
+ */
112
+ notifySubscribers(event) {
113
+ // Notify subscribers synchronously for real-time visibility
114
+ // Errors are caught to prevent breaking event emission
115
+ for (const subscriber of this.subscribers) {
116
+ try {
117
+ const result = subscriber(event);
118
+ // Handle async subscribers
119
+ if (result instanceof Promise) {
120
+ result.catch((error) => {
121
+ const err = error instanceof Error ? error : new Error(String(error));
122
+ logger.error('Error in event subscriber', err, {
123
+ event_id: event.event_id,
124
+ event_type: event.event_type,
125
+ });
126
+ });
127
+ }
128
+ }
129
+ catch (error) {
130
+ const err = error instanceof Error ? error : new Error(String(error));
131
+ logger.error('Error in event subscriber', err, {
132
+ event_id: event.event_id,
133
+ event_type: event.event_type,
134
+ });
135
+ }
136
+ }
137
+ }
138
+ generateEventID() {
139
+ return `${this.sessionId}-${this.sequence + 1}`;
140
+ }
141
+ }
142
+ //# sourceMappingURL=emitter.js.map
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Event types organized by category.
3
+ * Total: 36 event types across 10 categories.
4
+ */
5
+ export declare enum SessionLifecycleEventType {
6
+ SESSION_STARTED = "SESSION_STARTED",
7
+ PROMPT_VARIANT_STARTED = "PROMPT_VARIANT_STARTED",
8
+ SESSION_COMPLETED = "SESSION_COMPLETED",
9
+ SESSION_HALTED = "SESSION_HALTED",
10
+ WORKFLOW_RUN_SUMMARY = "WORKFLOW_RUN_SUMMARY"
11
+ }
12
+ export declare enum WorkflowEventType {
13
+ WORKFLOW_DEFINED = "WORKFLOW_DEFINED",
14
+ STEP_STARTED = "STEP_STARTED",
15
+ STEP_COMPLETED = "STEP_COMPLETED",
16
+ STEP_BLOCKED = "STEP_BLOCKED",
17
+ STEP_SKIPPED = "STEP_SKIPPED"
18
+ }
19
+ export declare enum LLMContextEventType {
20
+ LLM_CONTEXT_BUILT = "LLM_CONTEXT_BUILT",
21
+ POST_TOOL_LLM_PROMPT_BUILT = "POST_TOOL_LLM_PROMPT_BUILT"
22
+ }
23
+ export declare enum LLMProposalEventType {
24
+ LLM_PROPOSED_ACTION = "LLM_PROPOSED_ACTION",
25
+ LLM_PROPOSED_TOOL_CALL = "LLM_PROPOSED_TOOL_CALL",
26
+ LLM_FINAL_RESPONSE_GENERATED = "LLM_FINAL_RESPONSE_GENERATED"
27
+ }
28
+ export declare enum ValidationEventType {
29
+ TOOL_CALL_VALIDATION_STARTED = "TOOL_CALL_VALIDATION_STARTED",
30
+ TOOL_CALL_VALIDATION_PASSED = "TOOL_CALL_VALIDATION_PASSED",
31
+ TOOL_CALL_VALIDATION_FAILED = "TOOL_CALL_VALIDATION_FAILED",
32
+ CALL_BUDGET_EXCEEDED = "CALL_BUDGET_EXCEEDED",
33
+ TOOL_LOOP_DETECTED = "TOOL_LOOP_DETECTED"
34
+ }
35
+ export declare enum ToolExecutionEventType {
36
+ TOOL_EXECUTION_STARTED = "TOOL_EXECUTION_STARTED",
37
+ TOOL_EXECUTION_COMPLETED = "TOOL_EXECUTION_COMPLETED",
38
+ TOOL_EXECUTION_FAILED = "TOOL_EXECUTION_FAILED"
39
+ }
40
+ export declare enum TransportEventType {
41
+ TRANSPORT_INITIALIZED = "TRANSPORT_INITIALIZED",
42
+ TRANSPORT_MESSAGE_SENT = "TRANSPORT_MESSAGE_SENT",
43
+ TRANSPORT_MESSAGE_RECEIVED = "TRANSPORT_MESSAGE_RECEIVED",
44
+ TRANSPORT_ERROR = "TRANSPORT_ERROR"
45
+ }
46
+ export declare enum ToolRegistryEventType {
47
+ TOOL_REGISTRY_LOADED = "TOOL_REGISTRY_LOADED",
48
+ TOOL_REGISTERED = "TOOL_REGISTERED",
49
+ TOOL_REGISTRATION_FAILED = "TOOL_REGISTRATION_FAILED",
50
+ TOOL_AVAILABILITY_CHECKED = "TOOL_AVAILABILITY_CHECKED"
51
+ }
52
+ export declare enum TestingEventType {
53
+ ASSERTION_PASSED = "ASSERTION_PASSED",
54
+ ASSERTION_FAILED = "ASSERTION_FAILED"
55
+ }
56
+ export declare enum DiagnosticEventType {
57
+ RUNTIME_ERROR = "RUNTIME_ERROR",
58
+ ADAPTER_ERROR = "ADAPTER_ERROR",
59
+ CONTEXT_MUTATION_APPLIED = "CONTEXT_MUTATION_APPLIED"
60
+ }
61
+ /**
62
+ * Union type of all event types.
63
+ * This is the canonical EventType used throughout the system.
64
+ */
65
+ export type EventType = SessionLifecycleEventType | WorkflowEventType | LLMContextEventType | LLMProposalEventType | ValidationEventType | ToolExecutionEventType | TransportEventType | ToolRegistryEventType | TestingEventType | DiagnosticEventType;
66
+ //# sourceMappingURL=event-type.d.ts.map